[automerger skipped] [RESTRICT AUTOMERGE] Restrict WifiDialogActivity am: a0409e582c am: b33f9b8f8a am: 83a895fe12 -s ours

am skip reason: contains skip directive

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

Change-Id: I6a1a28844f8a03188e6f5db68a4ff9b06a80def2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
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 31895db..737c16c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -23,8 +23,8 @@
 genrule {
     name: "statslog-settings-java-gen",
     tools: ["stats-log-api-gen"],
-    cmd: "$(location stats-log-api-gen) --java $(out) --module settings"
-        + " --javaPackage com.android.settings.core.instrumentation --javaClass SettingsStatsLog",
+    cmd: "$(location stats-log-api-gen) --java $(out) --module settings" +
+        " --javaPackage com.android.settings.core.instrumentation --javaClass SettingsStatsLog",
     out: ["com/android/settings/core/instrumentation/SettingsStatsLog.java"],
 }
 
@@ -43,71 +43,84 @@
     ],
 }
 
-
-// Build the Settings APK
 android_library {
     name: "Settings-core",
     platform_apis: true,
     defaults: [
-        "SettingsLibDefaults",
         "SettingsLib-search-defaults",
+        "SettingsLintDefaults",
         "SpaPrivilegedLib-defaults",
     ],
 
-    srcs: ["src/**/*.java", "src/**/*.kt"],
+    srcs: [
+        "src/**/*.java",
+        "src/**/*.kt",
+    ],
+    exclude_srcs: [
+        "src/com/android/settings/biometrics/fingerprint2/shared/**/*.kt",
+    ],
+    use_resource_processor: true,
     resource_dirs: [
         "res",
         "res-export", // for external usage
         "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",
-        "androidx.preference_preference",
-        "androidx.recyclerview_recyclerview",
-        "androidx.window_window",
-        "com.google.android.material_material",
-        "setupcompat",
-        "setupdesign",
-        "androidx.lifecycle_lifecycle-runtime",
-        "androidx.lifecycle_lifecycle-viewmodel",
+        // External dependencies
+        "androidx.navigation_navigation-fragment-ktx",
+        "androidx.window_window-java",
+        "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.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",
+        "development_settings_flag_lib",
+        "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",
-        "WifiTrackerLib",
-        "SettingsLibActivityEmbedding",
-        "Settings-change-ids",
-        "androidx.room_room-runtime",
-        "SystemUIUnfoldLib",
+        "androidx.test.rules",
+        "telephony_flags_core_java_lib",
+        "setupdesign-lottie-loading-layout",
     ],
 
     plugins: ["androidx.room_room-compiler-plugin"],
 
+    errorprone: {
+        extra_check_modules: ["//external/nullaway:nullaway_plugin"],
+        javacflags: [
+            "-XepOpt:NullAway:AnnotatedPackages=com.android.settings",
+        ],
+    },
+
     libs: [
         "telephony-common",
         "ims-common",
@@ -120,6 +133,7 @@
     system_ext_specific: true,
 }
 
+// Build the Settings APK
 android_app {
     name: "Settings",
     defaults: [
@@ -136,6 +150,7 @@
     ],
     static_libs: ["Settings-core"],
     uses_libs: ["org.apache.http.legacy"],
+    use_resource_processor: true,
     resource_dirs: [],
     optimize: {
         proguard_flags_files: ["proguard.flags"],
@@ -151,19 +166,3 @@
     name: "Settings_proguard_flags",
     srcs: ["proguard.flags"],
 }
-
-// Deprecated. The sources for Settings need to be exposed to ArcSettings, so they can run the
-// com.android.settingslib.search.IndexableProcessor over all the sources together.
-// Use "-Acom.android.settingslib.search.processor.package=" instead to generate the search data
-// separately for different modules.
-filegroup {
-    name: "Settings_srcs",
-    srcs: ["src/**/*.java", "src/**/*.kt"],
-}
-
-// Deprecated. Do not depend on this, only depend on Settings-core, and its manifest is also
-// included.
-filegroup {
-    name: "Settings_manifest",
-    srcs: ["AndroidManifest.xml"],
-}
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 453a71e..c8f35ae 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -11,6 +11,11 @@
         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"/>
+
     <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" />
@@ -36,7 +41,7 @@
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS_PRIVILEGED" />
     <uses-permission android:name="android.permission.QUERY_AUDIO_STATE" />
     <uses-permission android:name="android.permission.MASTER_CLEAR" />
-    <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
+    <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" android:maxSdkVersion="34"/>
     <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER" />
     <uses-permission android:name="android.permission.READ_CONTACTS" />
     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
@@ -97,6 +102,7 @@
     <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
     <uses-permission android:name="android.permission.RESTART_WIFI_SUBSYSTEM" />
     <uses-permission android:name="android.permission.MANAGE_FINGERPRINT" />
+    <uses-permission android:name="android.permission.RECOVERY"/>
     <uses-permission android:name="android.permission.USE_BIOMETRIC" />
     <uses-permission android:name="android.permission.USE_BIOMETRIC_INTERNAL" />
     <uses-permission android:name="android.permission.USER_ACTIVITY" />
@@ -133,6 +139,9 @@
     <uses-permission android:name="android.permission.CUSTOMIZE_SYSTEM_UI" />
     <uses-permission android:name="android.permission.REMAP_MODIFIER_KEYS" />
     <uses-permission android:name="android.permission.ACCESS_GPU_SERVICE" />
+    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+    <uses-permission android:name="android.permission.MANAGE_GAME_MODE" />
+    <uses-permission android:name="android.permission.RESTART_PHONE_PROCESS" />
 
     <application
             android:name=".SettingsApplication"
@@ -305,6 +314,19 @@
                        android:value="true" />
         </activity>
 
+        <activity android:name=".Settings$ResetMobileNetworkSettingsActivity"
+                  android:exported="true"
+                  android:label="@string/reset_mobile_network_settings_title">
+            <intent-filter android:priority="1">
+                <action android:name="android.telephony.action.RESET_MOBILE_NETWORK_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.ResetNetwork"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_system"/>
+        </activity>
+
         <activity
             android:name=".Settings$ConnectedDeviceDashboardActivity"
             android:label="@string/connected_devices_dashboard_title"
@@ -433,6 +455,7 @@
         <activity
             android:name="Settings$NetworkSelectActivity"
             android:label="@string/choose_network_title"
+            android:permission="android.permission.SATELLITE_COMMUNICATION"
             android:configChanges="orientation|keyboard|keyboardHidden|screenSize|screenLayout|smallestScreenSize">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.network.telephony.NetworkSelectSettings" />
@@ -486,6 +509,17 @@
                 android:value="@string/menu_key_display"/>
         </activity>
 
+        <activity android:name=".Settings$ScreenTimeoutActivity"
+                  android:label="@string/screen_timeout"
+                  android:exported="true">
+            <intent-filter>
+                <action android:name="android.settings.SCREEN_TIMEOUT_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.display.ScreenTimeoutSettings"/>
+        </activity>
+
         <activity
             android:name="Settings$ConfigureWifiSettingsActivity"
             android:label="@string/wifi_configure_settings_preference_title"
@@ -593,6 +627,27 @@
                 android:value="true" />
         </activity>
 
+        <activity android:name="Settings$SatelliteSettingActivity"
+                  android:label="@string/satellite_setting"
+                  android:exported="true"
+                  android:configChanges="orientation|keyboardHidden|screenSize">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.SATELLITE_SETTING" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.VOICE_LAUNCH" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                       android:value="true" />
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.network.telephony.SatelliteSetting" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_network"/>
+        </activity>
+
         <activity android:name="Settings$ApnSettingsActivity"
                 android:label="@string/apn_settings"
                 android:exported="true"
@@ -607,7 +662,7 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
-                android:value="true" />
+                       android:value="true" />
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.network.apn.ApnSettings" />
             <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
@@ -642,20 +697,6 @@
                        android:value="@string/menu_key_connected_devices"/>
         </activity-alias>
 
-        <activity android:name="Settings$AssistGestureSettingsActivity"
-            android:label="@string/assist_gesture_title"
-            android:exported="true"
-            android:icon="@drawable/ic_settings_gestures">
-            <intent-filter>
-                <action android:name="android.settings.ASSIST_GESTURE_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.gestures.AssistGestureSettings" />
-            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
-                       android:value="@string/menu_key_system"/>
-        </activity>
-
         <activity android:name="Settings$FaceSettingsActivity"
             android:label="@string/security_settings_face_preference_title"
             android:exported="true"
@@ -716,6 +757,13 @@
                        android:value="@string/menu_key_security"/>
         </activity>
 
+        <activity android:name=".Settings$PrivateSpaceBiometricSettingsActivity"
+                  android:label="@string/private_space_biometric_title"
+                  android:exported="false">
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.privatespace.onelock.PrivateSpaceBiometricSettings" />
+        </activity>
+
         <activity android:name=".bluetooth.DevicePickerActivity"
                 android:label="@string/device_picker"
                 android:configChanges="orientation|keyboardHidden|screenSize"
@@ -961,6 +1009,11 @@
             </intent-filter>
         </activity>
 
+        <activity android:name=".localepicker.NotificationActionActivity"
+            android:excludeFromRecents="true"
+            android:theme="@android:style/Theme.NoDisplay">
+        </activity>
+
         <activity
             android:name=".Settings$LanguageAndInputSettingsActivity"
             android:label="@string/language_settings"
@@ -1636,7 +1689,7 @@
         </activity>
 
         <activity
-            android:name="Settings$HighPowerApplicationsActivity"
+            android:name="Settings$AppBatteryUsageActivity"
             android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
             android:exported="true"
             android:label="@string/high_power_apps">
@@ -1745,6 +1798,8 @@
                         android:targetActivity=".spa.SpaBridgeActivity">
             <meta-data android:name="com.android.settings.spa.DESTINATION"
                        android:value="TogglePermissionAppList/UseFullScreenIntent"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_apps"/>
         </activity-alias>
 
         <activity-alias android:name="AppManageFullScreenIntent"
@@ -1757,6 +1812,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.spa.DESTINATION"
                        android:value="TogglePermissionAppInfoPage/UseFullScreenIntent"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_apps"/>
         </activity-alias>
 
         <activity android:name=".applications.InstalledAppOpenByDefaultActivity"
@@ -1976,7 +2033,7 @@
         <activity android:name="MonitoringCertInfoActivity"
                 android:label=""
                 android:theme="@style/Transparent"
-                android:exported="true"
+                android:exported="false"
                 android:excludeFromRecents="true">
             <intent-filter android:priority="1">
                 <action android:name="com.android.settings.MONITORING_CERT_INFO" />
@@ -2226,6 +2283,21 @@
                 android:value="true" />
         </activity>
 
+        <activity
+            android:name="Settings$AccessibilityEditShortcutsActivity"
+            android:label="@string/accessibility_settings"
+            android:exported="true"
+            android:permission="android.permission.MANAGE_ACCESSIBILITY">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.ACCESSIBILITY_SHORTCUT_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment" />
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_accessibility"/>
+        </activity>
+
         <activity android:name=".accessibility.AccessibilitySettingsForSetupWizardActivity"
                 android:icon="@drawable/ic_accessibility_suggestion"
                 android:label="@string/vision_settings_title"
@@ -2505,7 +2577,7 @@
 
         <activity android:name=".biometrics.face.FaceEnrollIntroduction"
                   android:exported="true"
-                  android:screenOrientation="portrait">
+                  android:screenOrientation="nosensor">
             <intent-filter>
                 <action android:name="android.settings.FACE_ENROLL"/>
                 <category android:name="android.intent.category.DEFAULT"/>
@@ -2514,12 +2586,12 @@
 
         <activity android:name=".biometrics.face.FaceEnrollIntroductionInternal"
                   android:exported="false"
-                  android:screenOrientation="portrait"
+                  android:screenOrientation="nosensor"
                   android:taskAffinity="com.android.settings.root" />
 
         <activity android:name=".biometrics.face.FaceEnrollEducation"
             android:exported="false"
-            android:screenOrientation="portrait"/>
+            android:screenOrientation="nosensor"/>
 
         <activity android:name=".biometrics.face.FaceEnrollEnrolling"
             android:exported="false"
@@ -2567,8 +2639,17 @@
 
         <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity"
             android:exported="true"
+            android:theme="@style/GlifTheme.Light" />
+
+        <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity$InternalActivity"
+            android:exported="false"
+            android:theme="@style/GlifTheme.Light"
+            android:taskAffinity="com.android.settings.root" />
+
+        <activity android:name=".biometrics2.ui.view.FingerprintEnrollmentActivity$SetupActivity"
+            android:exported="true"
             android:permission="android.permission.MANAGE_FINGERPRINT"
-            android:theme="@style/GlifTheme.Light"/>
+            android:theme="@style/GlifTheme.Light" />
 
         <activity android:name=".biometrics.fingerprint.FingerprintEnrollIntroductionInternal"
                   android:exported="false"
@@ -2588,6 +2669,17 @@
             </intent-filter>
         </activity>
 
+
+        <activity android:name=".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity"
+            android:exported="true"
+            android:permission="android.permission.MANAGE_FINGERPRINT"
+            android:theme="@style/GlifTheme.Light">
+            <intent-filter>
+                <action android:name="android.settings.FINGERPRINT_SETUP" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
         <activity android:name=".biometrics.fingerprint.FingerprintSuggestionActivity"
             android:exported="true"
             android:permission="android.permission.MANAGE_FINGERPRINT"
@@ -2620,6 +2712,18 @@
 
         <activity android:name=".biometrics.activeunlock.ActiveUnlockRequireBiometricSetup" android:exported="false"/>
 
+        <activity android:name=".remoteauth.RemoteAuthActivity"
+                  android:exported="true">
+            <intent-filter>
+                <action android:name="android.settings.REMOTE_AUTHENTICATOR_ENROLL" />
+                <category android:name="android.intent.category.BROWSABLE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+        <activity android:name=".remoteauth.RemoteAuthActivityInternal"
+                  android:exported="false"
+                  android:taskAffinity="com.android.settings.root" />
+
         <!-- Note this must not be exported since it returns the password in the intent -->
         <activity android:name=".password.ConfirmLockPattern$InternalActivity"
             android:exported="false"
@@ -2806,6 +2910,8 @@
                 android:exported="true"
                 android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
 
+        <receiver android:name=".localepicker.NotificationCancelReceiver" />
+
         <activity android:name="Settings$ApnEditorActivity"
                 android:configChanges="orientation|keyboardHidden|screenSize"
                 android:exported="true"
@@ -2829,11 +2935,10 @@
         </activity>
 
         <activity
-            android:name="Settings$DevelopmentSettingsDashboardActivity"
+            android:name="Settings$DevelopmentSettingsActivity"
             android:label="@string/development_settings_title"
             android:icon="@drawable/ic_settings_development"
-            android:exported="true"
-            android:enabled="false">
+            android:exported="true">
             <intent-filter android:priority="1">
                 <action android:name="android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
                 <action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
@@ -2841,16 +2946,8 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             <intent-filter>
-                <action android:name="com.android.settings.action.SETTINGS" />
                 <action android:name="com.android.intent.action.SHOW_CONTRAST_DIALOG" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.order" android:value="-40"/>
-            <meta-data android:name="com.android.settings.category"
-                       android:value="com.android.settings.category.ia.system" />
-            <meta-data android:name="com.android.settings.summary"
-                       android:resource="@string/summary_empty"/>
-            <meta-data android:name="com.android.settings.icon"
-                       android:resource="@drawable/ic_settings_development" />
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.development.DevelopmentSettingsDashboardFragment" />
             <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
@@ -2859,22 +2956,6 @@
                        android:value="true" />
         </activity>
 
-        <!-- The opposite of DevelopmentSettingsActivity, it's no-op and only enabled when the real
-             activity is disabled to be CTS compliant. -->
-        <activity
-            android:name=".development.DevelopmentSettingsDisabledActivity"
-            android:icon="@drawable/ic_settings_development"
-            android:label="@string/development_settings_title"
-            android:excludeFromRecents="true"
-            android:exported="true"
-            android:theme="@style/Transparent">
-            <intent-filter android:priority="-1">
-                <action android:name="android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
-                <action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-        </activity>
-
         <activity
             android:name="Settings$PrintSettingsActivity"
             android:label="@string/print_settings"
@@ -3055,23 +3136,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"
@@ -3173,6 +3237,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>
 
@@ -3370,16 +3435,6 @@
                 <action android:name="android.settings.USER_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
-            <intent-filter>
-                <action android:name="com.android.settings.action.SETTINGS" />
-            </intent-filter>
-            <meta-data android:name="com.android.settings.order" android:value="-45"/>
-            <meta-data android:name="com.android.settings.category"
-                       android:value="com.android.settings.category.ia.system" />
-            <meta-data android:name="com.android.settings.summary_uri"
-                       android:value="content://com.android.settings.dashboard.SummaryProvider/user" />
-            <meta-data android:name="com.android.settings.icon"
-                       android:resource="@drawable/ic_settings_multiuser" />
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                        android:value="com.android.settings.users.UserSettings" />
             <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
@@ -3892,6 +3947,7 @@
             android:launchMode="singleTop"
             android:taskAffinity=".wifi.NetworkRequestDialogActivity"
             android:exported="true"
+            android:configChanges="orientation|keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout"
             android:permission="android.permission.NETWORK_SETTINGS">
             <intent-filter>
                 <action android:name="com.android.settings.wifi.action.NETWORK_REQUEST" />
@@ -4204,6 +4260,40 @@
                        android:value="@string/menu_key_apps"/>
         </activity>
 
+        <!-- @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") -->
+        <activity-alias
+            android:name="MediaRoutingControlActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
+            android:exported="true"
+            android:targetActivity=".spa.SpaBridgeActivity"
+            android:label="@string/media_routing_control_title">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.REQUEST_MEDIA_ROUTING_CONTROL" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.spa.DESTINATION"
+                       android:value="TogglePermissionAppList/MediaRoutingControl"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
+        </activity-alias>
+
+        <activity-alias
+            android:name="AppMediaRoutingControlActivity"
+            android:knownActivityEmbeddingCerts="@array/config_known_host_certs"
+            android:exported="true"
+            android:targetActivity=".spa.SpaAppBridgeActivity"
+            android:label="@string/media_routing_control_title">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.REQUEST_MEDIA_ROUTING_CONTROL" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <data android:scheme="package" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.spa.DESTINATION"
+                       android:value="TogglePermissionAppInfoPage/MediaRoutingControl"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                       android:value="@string/menu_key_apps"/>
+        </activity-alias>
+
         <!-- Keep compatibility with old WebView-picker implementation -->
         <activity-alias android:name=".WebViewImplementation"
                   android:targetActivity="Settings$WebViewAppPickerActivity"
@@ -4222,11 +4312,6 @@
                        android:value="@string/menu_key_system"/>
         </activity-alias>
 
-        <provider
-            android:name=".dashboard.SummaryProvider"
-            android:authorities="${applicationId}.dashboard.SummaryProvider">
-        </provider>
-
         <activity android:name=".backup.UserBackupSettingsActivity"
                   android:label="@string/privacy_settings_title"
                   android:exported="true"
@@ -4314,6 +4399,15 @@
                        android:value="true" />
         </activity>
 
+        <!-- Access to the Credential Manager list. -->
+        <activity android:name=".applications.credentials.CredentialsPickerActivity"
+                android:excludeFromRecents="true"
+                android:launchMode="singleInstance"
+                android:exported="false">
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.applications.credentials.DefaultCombinedPicker" />
+        </activity>
+
         <activity
             android:name=".Settings$SystemDashboardActivity"
             android:label="@string/header_category_system"
@@ -4401,20 +4495,6 @@
         </service>
 
         <service
-            android:name=".development.qstile.DevelopmentTiles$WinscopeTrace"
-            android:label="@string/winscope_trace_quick_settings_title"
-            android:icon="@drawable/tile_icon_winscope_trace"
-            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
-            android:exported="true"
-            android:enabled="false">
-            <intent-filter>
-                <action android:name="android.service.quicksettings.action.QS_TILE" />
-            </intent-filter>
-            <meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE"
-                       android:value="true"/>
-        </service>
-
-        <service
             android:name=".development.qstile.DevelopmentTiles$SensorsOff"
             android:label="@string/sensors_off_quick_settings_title"
             android:icon="@drawable/tile_icon_sensors_off"
@@ -4456,22 +4536,6 @@
                        android:value="true"/>
         </service>
 
-        <service
-            android:name=".development.qstile.DevelopmentTiles$DesktopMode"
-            android:label="@string/desktop_mode"
-            android:icon="@drawable/tile_icon_desktop_mode"
-            android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
-            android:exported="true"
-            android:enabled="false">
-            <intent-filter>
-                <action android:name="android.service.quicksettings.action.QS_TILE" />
-            </intent-filter>
-            <meta-data android:name="android.service.quicksettings.TOGGLEABLE_TILE"
-                android:value="true"/>
-            <meta-data android:name="com.android.settings.development.qstile.REQUIRES_SYSTEM_PROPERTY"
-                       android:value="persist.wm.debug.desktop_mode" />
-        </service>
-
         <activity
             android:name=".HelpTrampoline"
             android:exported="true"
@@ -4578,6 +4642,38 @@
         </activity>
 
         <activity
+            android:name="Settings$AudioStreamConfirmDialogActivity"
+            android:exported="true"
+            android:theme="@style/Transparent"
+            android:permission="android.permission.BLUETOOTH_CONNECT"
+            android:configChanges="orientation|keyboardHidden|screenSize">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.AUDIO_STREAM_DIALOG" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamConfirmDialog" />
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
+        <activity
+            android:name=".Settings$PreviouslyConnectedDeviceActivity"
+            android:label="@string/connected_device_saved_title"
+            android:exported="true"
+            android:permission="android.permission.BLUETOOTH_CONNECT"
+            android:icon="@drawable/ic_homepage_connected_device">
+            <intent-filter android:priority="1">
+                <action android:name="com.android.settings.PREVIOUSLY_CONNECTED_DEVICE" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment"/>
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
+        <activity
             android:name="Settings$StylusUsiDetailsActivity"
             android:label="@string/stylus_device_details_title"
             android:exported="true">
@@ -4650,28 +4746,6 @@
             android:permission="android.permission.MANAGE_SLICE_PERMISSIONS"
             android:exported="true" />
 
-        <!-- Couldn't be triggered from outside of settings. Statsd can trigger it because we send
-             PendingIntent to it-->
-        <receiver android:name=".fuelgauge.batterytip.AnomalyDetectionReceiver"
-                  android:exported="false" />
-
-        <receiver android:name=".fuelgauge.batterytip.AnomalyConfigReceiver"
-            android:exported="true">
-            <intent-filter>
-                <action android:name="android.app.action.STATSD_STARTED"/>
-                <action android:name="android.intent.action.BOOT_COMPLETED"/>
-            </intent-filter>
-        </receiver>
-
-        <service android:name=".fuelgauge.batterytip.AnomalyCleanupJobService"
-                 android:permission="android.permission.BIND_JOB_SERVICE" />
-
-        <service android:name=".fuelgauge.batterytip.AnomalyConfigJobService"
-                 android:permission="android.permission.BIND_JOB_SERVICE" />
-
-        <service android:name=".fuelgauge.batterytip.AnomalyDetectionJobService"
-                 android:permission="android.permission.BIND_JOB_SERVICE" />
-
         <provider
             android:name=".homepage.contextualcards.CardContentProvider"
             android:authorities="${applicationId}.homepage.CardContentProvider"
@@ -4704,6 +4778,16 @@
         </activity>
 
         <activity
+            android:name=".wifi.dpp.WifiDppConfiguratorAuthActivity"
+            android:theme="@style/Transparent"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.settings.WIFI_DPP_CONFIGURATOR_AUTH_QR_CODE_GENERATOR"/>
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+
+        <activity
             android:name=".wifi.dpp.WifiDppEnrolleeActivity"
             android:exported="true">
             <intent-filter>
@@ -4928,6 +5012,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"
@@ -4944,11 +5038,43 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                android:value="com.android.settings.biometrics.fingerprint2.ui.fragment.FingerprintSettingsV2Fragment" />
+                android:value="com.android.settings.biometrics.fingerprint2.ui.settings.fragment.FingerprintSettingsV2Fragment" />
             <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
                 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="true">
+            <intent-filter>
+                <action android:name="com.android.settings.action.PRIVATE_SPACE_SETUP_FLOW" />
+                <category android:name="android.intent.category.DEFAULT"/>
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".privatespace.PrivateProfileContextHelperActivity" android:exported="false"/>
+
+        <activity android:name=".privatespace.delete.PrivateSpaceDeleteActivity"
+                  android:label="@string/private_space_delete_header"
+                  android:exported="false">
+        </activity>
+
         <activity-alias android:name="UsageStatsActivity"
                         android:exported="true"
                         android:label="@string/testing_usage_stats"
@@ -4959,6 +5085,8 @@
             </intent-filter>
             <meta-data android:name="com.android.settings.spa.DESTINATION"
                        android:value="UsageStats"/>
+            <meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
+                android:value="@string/menu_key_apps"/>
         </activity-alias>
 
         <!-- [b/197780098] Disable eager initialization of Jetpack libraries. -->
@@ -4967,6 +5095,12 @@
             android:authorities="${applicationId}.androidx-startup"
             tools:node="remove" />
 
+        <activity
+            android:name="com.android.settings.network.WepNetworkDialogActivity"
+            android:exported="false"
+            android:theme="@style/Theme.SpaLib.Dialog">
+        </activity>
+
         <!-- This is the longest AndroidManifest.xml ever. -->
     </application>
 </manifest>
diff --git a/OWNERS b/OWNERS
index 6d4f95f..6698752 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,21 +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
+jiannan@google.com
 millchen@google.com
-songchenxi@google.com
 sunnyshao@google.com
 yantingyang@google.com
+
+# Android Settings extended
+chaohuiw@google.com
+songferngwang@google.com
+tomhsu@google.com
+wengsu@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/**=*
+per-file res*/**=*
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 4e85cb8..9722a85 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -28,6 +28,14 @@
       ]
     },
     {
+      "name": "SettingsUITests",
+      "options": [
+        {
+          "exclude-annotation": "org.junit.Ignore"
+        }
+      ]
+    },
+    {
       "name": "SettingsPerfTests"
     }
   ]
diff --git a/aconfig/Android.bp b/aconfig/Android.bp
new file mode 100644
index 0000000..d14cc6f
--- /dev/null
+++ b/aconfig/Android.bp
@@ -0,0 +1,62 @@
+package {
+    default_applicable_licenses: ["packages_apps_Settings_license"],
+}
+
+aconfig_declarations {
+    name: "aconfig_settings_flags",
+    package: "com.android.settings.flags",
+    srcs: [
+        "*.aconfig",
+    ],
+}
+
+java_aconfig_library {
+    name: "aconfig_settings_flags_lib",
+    aconfig_declarations: "aconfig_settings_flags",
+}
+
+aconfig_declarations {
+    name: "factory_reset_flags",
+    package: "com.android.settings.factory_reset",
+    srcs: ["factory_reset/*.aconfig"],
+}
+
+java_aconfig_library {
+    name: "factory_reset_flags_lib",
+    aconfig_declarations: "factory_reset_flags",
+}
+
+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",
+}
+
+aconfig_declarations {
+    name: "development_settings_flags",
+    package: "com.android.settings.development",
+    srcs: [
+        "development/**/*.aconfig"
+    ],
+}
+
+java_aconfig_library {
+    name: "development_settings_flag_lib",
+    aconfig_declarations: "development_settings_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..ad770fb
--- /dev/null
+++ b/aconfig/accessibility/accessibility_flags.aconfig
@@ -0,0 +1,31 @@
+package: "com.android.settings.accessibility"
+
+# NOTE: Keep alphabetized to help limit merge conflicts from multiple simultaneous editors.
+
+flag {
+  name: "edit_shortcuts_in_full_screen"
+  namespace: "accessibility"
+  description: "Show the edit shorcuts screen in full screen, since the shortcut options are increasing."
+  bug: "300302098"
+}
+
+flag {
+  name: "enable_hearing_aid_preset_control"
+  namespace: "accessibility"
+  description: "Allows users to control hearing aid preset in the Bluetooth device details page."
+  bug: "300015207"
+}
+
+flag {
+  name: "enable_hearing_aid_volume_offset_control"
+  namespace: "accessibility"
+  description: "Allows users to control hearing aid volume offset in the Bluetooth device details page."
+  bug: "301198830"
+}
+
+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"
+}
diff --git a/aconfig/development/settings_core_flag_declarations.aconfig b/aconfig/development/settings_core_flag_declarations.aconfig
new file mode 100644
index 0000000..c012263
--- /dev/null
+++ b/aconfig/development/settings_core_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.development"
+
+flag {
+  name: "deprecate_list_activity"
+  namespace: "android_settings"
+  description: "Feature flag for deprecating ListActivity in Settings"
+  bug: "299195099"
+}
diff --git a/aconfig/factory_reset/factory_reset_flag_declarations.aconfig b/aconfig/factory_reset/factory_reset_flag_declarations.aconfig
new file mode 100644
index 0000000..2b1ce72
--- /dev/null
+++ b/aconfig/factory_reset/factory_reset_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.factory_reset"
+
+flag {
+  name: "enable_factory_reset_wizard"
+  namespace: "wallet_integration"
+  description: "Gates whether to enable factory reset wizard."
+  bug: "301283840"
+}
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_legacy.aconfig b/aconfig/settings_accessibility_flag_declarations_legacy.aconfig
new file mode 100644
index 0000000..5a464b5
--- /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 extra MFi+ASHA filtering"
+    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_bluetooth_declarations.aconfig b/aconfig/settings_bluetooth_declarations.aconfig
new file mode 100644
index 0000000..58ddd25
--- /dev/null
+++ b/aconfig/settings_bluetooth_declarations.aconfig
@@ -0,0 +1,15 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "enable_offload_bluetooth_operations_to_background_thread"
+  namespace: "pixel_cross_device_control"
+  description: "Gates whether to offload bluetooth operations to background thread"
+  bug: "305636727"
+}
+
+flag {
+  name: "enable_bluetooth_profile_toggle_visibility_checker"
+  namespace: "pixel_cross_device_control"
+  description: "Gates whether to enable checker for bluetooth profile toggle visibility"
+  bug: "321178209"
+}
\ No newline at end of file
diff --git a/aconfig/settings_connecteddevice_flag_declarations.aconfig b/aconfig/settings_connecteddevice_flag_declarations.aconfig
new file mode 100644
index 0000000..0fc164e
--- /dev/null
+++ b/aconfig/settings_connecteddevice_flag_declarations.aconfig
@@ -0,0 +1,43 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "enable_subsequent_pair_settings_integration"
+  namespace: "pixel_cross_device_control"
+  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"
+}
+
+flag {
+  name: "enable_auth_challenge_for_usb_preferences"
+  namespace: "safety_center"
+  description: "Gates whether to require an auth challenge for changing USB preferences"
+  bug: "317367746"
+}
+
+flag {
+  name: "enable_saved_devices_order_by_recency"
+  namespace: "pixel_cross_device_control"
+  description: "Order the saved bluetooth devices by most recently connected."
+  bug: "306160434"
+}
+
+flag {
+  name: "enable_hide_exclusively_managed_bluetooth_device"
+  namespace: "dck_framework"
+  description: "Hide exclusively managed Bluetooth devices in BT settings menu."
+  bug: "322285078"
+}
\ No newline at end of file
diff --git a/aconfig/settings_development_flag_declarations.aconfig b/aconfig/settings_development_flag_declarations.aconfig
new file mode 100644
index 0000000..e12bccc
--- /dev/null
+++ b/aconfig/settings_development_flag_declarations.aconfig
@@ -0,0 +1,20 @@
+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_game_default_frame_rate"
+    namespace: "game"
+    description: "This flag guards the new behavior with the addition of Game Default Frame Rate feature."
+    bug: "286084594"
+}
+
+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_display_flag_declarations.aconfig b/aconfig/settings_display_flag_declarations.aconfig
new file mode 100644
index 0000000..52a326d
--- /dev/null
+++ b/aconfig/settings_display_flag_declarations.aconfig
@@ -0,0 +1,9 @@
+package: "com.android.settings.flags"
+
+flag {
+    name: "protect_screen_timeout_with_auth"
+    namespace: "safety_center"
+    description: "Require an auth challenge for increasing screen timeout."
+    bug: "315937886"
+}
+
diff --git a/aconfig/settings_experience_flag_declarations.aconfig b/aconfig/settings_experience_flag_declarations.aconfig
new file mode 100644
index 0000000..7642734
--- /dev/null
+++ b/aconfig/settings_experience_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+    name: "new_apn_page_enabled"
+    namespace: "settings_experience"
+    description: "Change to the new APN page."
+    bug: "298906796"
+}
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
new file mode 100644
index 0000000..56c4b32
--- /dev/null
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -0,0 +1,15 @@
+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"
+}
+
+flag {
+    name: "mainline_module_explicit_intent"
+    namespace: "android_settings"
+    description: "Enabling will provide an explicit package name for Intent to update mainline modules"
+    bug: "278987474"
+}
diff --git a/aconfig/settings_globalintl_flag_declarations.aconfig b/aconfig/settings_globalintl_flag_declarations.aconfig
new file mode 100644
index 0000000..68662d0
--- /dev/null
+++ b/aconfig/settings_globalintl_flag_declarations.aconfig
@@ -0,0 +1,15 @@
+package: "com.android.settings.flags"
+
+flag {
+    name: "terms_of_address_enabled"
+    namespace: "globalintl"
+    description: "Feature flag for Terms of Address"
+    bug: "297798866"
+}
+
+flag {
+    name: "locale_notification_enabled"
+    namespace: "globalintl"
+    description: "Feature flag for locale notification"
+    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_onboarding_experience_flag_declarations.aconfig b/aconfig/settings_onboarding_experience_flag_declarations.aconfig
new file mode 100644
index 0000000..6fb5377
--- /dev/null
+++ b/aconfig/settings_onboarding_experience_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "enable_sound_backup"
+  namespace: "onboarding_experience"
+  description: "Feature flag for B&R sound settings."
+  bug: "278975761"
+}
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_security_flag_declarations.aconfig b/aconfig/settings_security_flag_declarations.aconfig
new file mode 100644
index 0000000..42ef4d0
--- /dev/null
+++ b/aconfig/settings_security_flag_declarations.aconfig
@@ -0,0 +1,8 @@
+package: "com.android.settings.flags"
+
+flag {
+  name: "protect_lock_after_timeout_with_auth"
+  namespace: "safety_center"
+  description: "Require an auth challenge to open Lock after timeout page"
+  bug: "315937886"
+}
diff --git a/aconfig/settings_telephony_flag_declarations.aconfig b/aconfig/settings_telephony_flag_declarations.aconfig
new file mode 100644
index 0000000..0999a7b
--- /dev/null
+++ b/aconfig/settings_telephony_flag_declarations.aconfig
@@ -0,0 +1,15 @@
+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"
+}
+
+flag {
+    name: "is_dual_sim_onboarding_enabled"
+    namespace: "settings_experience"
+    description: "Control the Dual SIM onobarding feature"
+    bug: "298898436"
+}
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-af/strings.xml b/res-product/values-af/strings.xml
index 698883f..1f46168 100644
--- a/res-product/values-af/strings.xml
+++ b/res-product/values-af/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Jou foon is na fabriekinstellings teruggestel. Voer jou vorige wagwoord in om dié foon te gebruik."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Jou tablet is na fabriekinstellings teruggestel. Voer vorige wagwoord in om dié tablet te gebruik."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Jou toestel is na fabriekinstellings teruggestel. Voer vorige wagwoord in om dié toestel te gebruik."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Battery laai stadig of wil nie laai nie. Kyk of die kabel en kragprop met jou foon werk"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Battery laai stadig of wil nie laai nie. Kyk of die kabel en kragprop met jou toestel werk"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Battery laai stadig of wil nie laai nie. Kyk of die kabel en kragprop met jou tablet werk"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sonder om jou foon te ontsluit"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sonder om jou tablet te ontsluit"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Wanneer jy jou foon tussen portret en landskap beweeg"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Wanneer jy jou tablet tussen portret en landskap beweeg"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Wanneer jy jou tablet tussen portret en landskap beweeg"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Verstel hoe kleure op jou foon gewys word"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Verstel hoe kleure op jou tablet gewys word"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Foonluidsprekers"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tabletluidsprekers"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Toestelluidsprekers"</string>
 </resources>
diff --git a/res-product/values-am/strings.xml b/res-product/values-am/strings.xml
index a8449d8..89e4c36 100644
--- a/res-product/values-am/strings.xml
+++ b/res-product/values-am/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"የእርስዎ ስልክ ወደ የፋብሪካ ቅንብሮች ዳግም ተጀምሯል። ይህን ስልክ ለመጠቀም ቀዳሚውን ይለፍ ቃልዎን ያስገቡ።"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"የእርስዎ ጡባዊ ወደ የፋብሪካ ቅንብሮች ዳግም ተጀምሯል። ይህን ጡባዊ ለመጠቀም የእርስዎን ቀዳሚ የይለፍ ቃል ያስገቡ።"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"የእርስዎ መሣሪያ ወደ የፋብሪካ ቅንብሮች ዳግም ተጀምሯል። ይህን መሣሪያ ለመጠቀም የእርስዎን ቀዳሚ የይለፍ ቃል ያስገቡ።"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ባትሪው ኃይል በዝግታ በመሙላት ላይ ነው ወይም አይሞላም። ገመዱ እና የኃይል አስማሚው ከስልክዎ ጋር እንደሚሰሩ ይፈትሹ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ባትሪው ኃይል በዝግታ በመሙላት ላይ ነው ወይም አይሞላም። ገመዱ እና የኃይል አስማሚው ከእርስዎ መሣሪያ ጋር እንደሚሰሩ ይፈትሹ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ባትሪው ኃይል በዝግታ በመሙላት ላይ ነው ወይም አይሞላም። ገመዱ እና የኃይል አስማሚው ከጡባዊዎ ጋር እንደሚሰሩ ይፈትሹ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ስልክዎን ሳይከፍቱ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ጡባዊዎን ሳይክፍቱ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ስልክዎን በቁም ፎቶ እና በወርድ መካከል ሲያንቀሳቅሱ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"ጡባዊዎን በቁም ፎቶ እና በወርድ መካከል ሲያንቀሳቅሱ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"ጡባዊዎን በቁም ፎቶ እና በወርድ መካከል ሲያንቀሳቅሱ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ቀለሞች በስልክዎ ላይ እንዴት እንደሚታዩ ያስተካክሉ"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ቀለሞች በጡባዊዎ ላይ እንዴት እንደሚታዩ ያስተካክሉ"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"የስልክ ድምፅ ማውጫዎች"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"የጡባዊ ድምፅ ማውጫዎች"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"የመሣሪያ ድምፅ ማውጫዎች"</string>
 </resources>
diff --git a/res-product/values-ar/strings.xml b/res-product/values-ar/strings.xml
index 99811cf..be429c4 100644
--- a/res-product/values-ar/strings.xml
+++ b/res-product/values-ar/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"تمت إعادة ضبط هاتفك على الإعدادات الأصلية. لاستخدام هذا الهاتف، أدخِل كلمة المرور السابقة."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"تمت إعادة ضبط جهازك اللوحي على الإعدادات الأصلية. لاستخدام جهازك اللوحي، أدخِل كلمة المرور السابقة."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"تمت إعادة ضبط جهازك على الإعدادات الأصلية. لاستخدام هذا الجهاز، أدخِل كلمة المرور السابقة."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"البطارية تشحن ببطء أو لا يتم شحنها. عليك التأكّد من توافق محوِّل الطاقة والكابل مع هاتفك."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"البطارية تشحن ببطء أو لا يتم شحنها. عليك التأكّد من توافق محوِّل الطاقة والكابل مع جهازك."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"البطارية تشحن ببطء أو لا يتم شحنها. عليك التأكّد من توافق محوِّل الطاقة والكابل مع جهازك اللوحي."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"بدون فتح قفل هاتفك"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"بدون فتح قفل جهازك اللوحي"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"عند تغيير اتّجاه شاشة هاتفك بين الوضع العمودي والوضع الأفقي"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"عند تغيير اتّجاه شاشة جهازك اللوحي بين الوضع العمودي والوضع الأفقي"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"عند تغيير اتّجاه شاشة جهازك اللوحي بين الوضع العمودي والوضع الأفقي"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"يمكنك تعديل كيفية عرض الألوان على هاتفك."</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"يمكنك تعديل كيفية عرض الألوان على جهازك اللوحي."</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"مكبّرات صوت الهاتف"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"مكبّرات صوت الجهاز اللوحي"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"مكبّرات صوت الجهاز"</string>
 </resources>
diff --git a/res-product/values-as/strings.xml b/res-product/values-as/strings.xml
index 7dc0fec..fb39878 100644
--- a/res-product/values-as/strings.xml
+++ b/res-product/values-as/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"আপোনাৰ ফ’নটো ফেক্টৰী ছেটিঙলৈ ৰিছেট কৰা হৈছিল। ফ’নটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ আগৰ পাছৱৰ্ডটো দিয়ক।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"আপোনাৰ টেবলেটটো ফেক্টৰীৰ ছেটিঙলৈ ৰিছেট কৰা হৈছে। এই টেবলেটটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ আগৰ পাছৱৰ্ডটো দিয়ক।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"আপোনাৰ ডিভাইচটো ফেক্টৰীৰ ছেটিঙলৈ ৰিছেট কৰা হৈছে। এই ডিভাইচটো ব্যৱহাৰ কৰিবলৈ আপোনাৰ আগৰ পাছৱৰ্ডটো দিয়ক।"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"বেটাৰী লাহে লাহে চাৰ্জ হৈছে অথবা চাৰ্জ নহ’ব। কে’বল আৰু পাৱাৰ এডাপ্টাৰটোৱে আপোনাৰ ফ’নৰ সৈতে কাম কৰেনে নকৰে পৰীক্ষা কৰক"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"বেটাৰী লাহে লাহে চাৰ্জ হৈছে অথবা চাৰ্জ নহ’ব। কে’বল আৰু পাৱাৰ এডাপ্টাৰটোৱে আপোনাৰ ডিভাইচৰ সৈতে কাম কৰেনে নকৰে পৰীক্ষা কৰক"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"বেটাৰী লাহে লাহে চাৰ্জ হৈছে অথবা চাৰ্জ নহ’ব। কে’বল আৰু পাৱাৰ এডাপ্টাৰটোৱে আপোনাৰ টেবলেটৰ সৈতে কাম কৰেনে নকৰে পৰীক্ষা কৰক"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"আপোনাৰ ফ’নটো আনলক নকৰাকৈ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"আপোনাৰ টেবলেটটো আনলক নকৰাকৈ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"আপুনি নিজৰ ফ’নটো প’ৰ্ট্ৰেইট আৰু লেণ্ডস্কে’পৰ মাজত সালসলনি কৰিলে"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"আপুনি নিজৰ টেবলেটটো প’ৰ্ট্ৰেইট আৰু লেণ্ডস্কে’পৰ মাজত সালসলনি কৰিলে"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"আপুনি নিজৰ টেবলেটটো প’ৰ্ট্ৰেইট আৰু লেণ্ডস্কে’পৰ মাজত সালসলনি কৰিলে"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"আপোনাৰ ফ’নত ৰংবোৰ কেনেকৈ প্ৰদৰ্শিত হয় সেয়া মিলাওক"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"আপোনাৰ টেবলেটত ৰংবোৰ কেনেকৈ প্ৰদৰ্শিত হয় সেয়া মিলাওক"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ফ’নৰ স্পীকাৰ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"টেবলেটৰ স্পীকাৰ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ডিভাইচৰ স্পীকাৰ"</string>
 </resources>
diff --git a/res-product/values-az/strings.xml b/res-product/values-az/strings.xml
index ee0e2a1..8e0d0fd 100644
--- a/res-product/values-az/strings.xml
+++ b/res-product/values-az/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonunuz zavod ayarlarına sıfırlanıb. Telefondan istifadə etmək üçün əvvəlki parolu daxil edin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Planşetiniz zavod ayarlarına sıfırlanıb. Bu planşeti istifadə etmək üçün əvvəlki parolu daxil edin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Cihazınız zavod ayarlarına sıfırlanıb. Bu cihazı istifadə etmək üçün əvvəlki parolu daxil edin."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batareya asta şarj edilir və ya şarj edilmir. Kabel və cərəyan adapterinin telefon ilə işləyib-işləmədiyini yoxlayın"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batareya asta şarj edilir və ya şarj edilmir. Kabel və cərəyan adapterinin cihaz ilə işləyib-işləmədiyini yoxlayın"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batareya asta şarj edilir və ya şarj edilmir. Kabel və cərəyan adapterinin planşet ilə işləyib-işləmədiyini yoxlayın"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefonu kiliddən çıxarmadan"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Planşeti kiliddən çıxarmadan"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefon rejimini portret və landşaft arasında dəyişdikdə"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Planşet rejimini portret və landşaft arasında dəyişdikdə"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Planşet rejimini portret və landşaft arasında dəyişdikdə"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Telefonda rənglərin görünmə qaydasını tənzimləyin"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Planşetdə rənglərin görünmə qaydasını tənzimləyin"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefon dinamikləri"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Planşet dinamikləri"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Cihaz dinamikləri"</string>
 </resources>
diff --git a/res-product/values-b+sr+Latn/strings.xml b/res-product/values-b+sr+Latn/strings.xml
index 5df33ad..7d4af34 100644
--- a/res-product/values-b+sr+Latn/strings.xml
+++ b/res-product/values-b+sr+Latn/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Uređaj je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Baterija se sporo puni ili neće da se puni. Proverite da li kabl i adapter rade sa telefonom"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Baterija se sporo puni ili neće da se puni. Proverite da li kabl i adapter rade sa uređajem"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Baterija se sporo puni ili neće da se puni. Proverite da li kabl i adapter rade sa tabletom"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez otključavanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez otključavanja tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kada okrećete telefon u uspravni ili vodoravni režim"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kada okrećete tablet u uspravni ili vodoravni režim"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kada okrećete tablet u uspravni ili vodoravni režim"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Prilagodite način na koji se boje prikazuju na telefonu"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Prilagodite način na koji se boje prikazuju na tabletu"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Zvučnici telefona"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Zvučnici tableta"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Zvučnici uređaja"</string>
 </resources>
diff --git a/res-product/values-be/strings.xml b/res-product/values-be/strings.xml
index a77f689..b47d27f 100644
--- a/res-product/values-be/strings.xml
+++ b/res-product/values-be/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Налады тэлефона скінуты да заводскіх значэнняў. Каб карыстацца ім, увядзіце свой былы пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Налады планшэта скінуты да заводскіх значэнняў. Каб карыстацца ім, увядзіце свой былы пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Налады прылады скінуты да заводскіх значэнняў. Каб карыстацца ёю, увядзіце свой былы пароль."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Акумулятар не зараджаецца ці зараджаецца павольна. Праверце, ці падыходзяць да тэлефона кабель і адаптар сілкавання"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Акумулятар не зараджаецца ці зараджаецца павольна. Праверце, ці падыходзяць да прылады кабель і адаптар сілкавання"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Акумулятар не зараджаецца ці зараджаецца павольна. Праверце, ці падыходзяць да планшэта кабель і адаптар сілкавання"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без разблакіроўкі тэлефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без разблакіроўкі планшэта"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Калі вы паварочваеце тэлефон для змянення арыентацыі экрана"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Калі вы паварочваеце планшэт для змянення арыентацыі экрана"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Калі вы паварочваеце планшэт для змянення арыентацыі экрана"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Наладзьце адлюстраванне колераў на экране тэлефона"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Наладзьце адлюстраванне колераў на экране планшэта"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Дынамікі тэлефона"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Дынамiкi планшэта"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Дынамікі прылады"</string>
 </resources>
diff --git a/res-product/values-bg/strings.xml b/res-product/values-bg/strings.xml
index 6d3eaea..0adf002 100644
--- a/res-product/values-bg/strings.xml
+++ b/res-product/values-bg/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Фабр. настройки на телефона са били възстановени. За да го ползвате, въведете предишната си парола."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Фабр. настройки на таблета са били възстановени. За да го използвате, въведете предишната си парола."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Фабр. настройки на у-вото са били възстановени. За да го използвате, въведете предишната си парола."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батерията се зарежда бавно или не се зарежда. Проверете дали кабелът и захранващият адаптер са съвместими с телефона ви"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батерията се зарежда бавно или не се зарежда. Проверете дали кабелът и захранващият адаптер са съвместими с устройството ви"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батерията се зарежда бавно или не се зарежда. Проверете дали кабелът и захранващият адаптер са съвместими с таблета ви"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без отключване на телефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без отключване на таблета"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Когато завъртите телефона си вертикално или хоризонтално"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Когато завъртите таблета си вертикално или хоризонтално"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Когато завъртите таблета си вертикално или хоризонтално"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Коригирайте как цветовете се показват на телефона ви"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Коригирайте как цветовете се показват на таблета ви"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Високоговорители на телефона"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Високоговорители на таблета"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Високоговорители на устройството"</string>
 </resources>
diff --git a/res-product/values-bn/strings.xml b/res-product/values-bn/strings.xml
index 661f879..174a34f 100644
--- a/res-product/values-bn/strings.xml
+++ b/res-product/values-bn/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"আপনার ফোন ফ্যাক্টরি সেটিংসে রিসেট করা হয়েছে। এই ফোনটি ব্যবহার করতে হলে, আগের পাসওয়ার্ডটি লিখুন।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"আপনার ট্যাবলেট ফ্যাক্টরি সেটিংসে রিসেট করা হয়েছে। এই ট্যাবলেট ব্যবহার করতে, আগের পাসওয়ার্ড লিখুন।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"আপনার ডিভাইস ফ্যাক্টরি সেটিংসে রিসেট করা হয়েছে। এই ডিভাইস ব্যবহার করতে, আপনার আগের পাসওয়ার্ড লিখুন।"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ব্যাটারি ধীরে ধীরে চার্জ হচ্ছে অথবা চার্জ হচ্ছে না। কেবেল ও পাওয়ার অ্যাডাপ্টার আপনার ফোনের সাথে মানানসই কিনা চেক করে নিন"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ব্যাটারি ধীরে ধীরে চার্জ হচ্ছে অথবা চার্জ হচ্ছে না। কেবেল ও পাওয়ার অ্যাডাপ্টার আপনার ডিভাইসে মানানসই কিনা তা চেক করে নিন"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ব্যাটারি ধীরে ধীরে চার্জ হচ্ছে অথবা চার্জ হচ্ছে না। কেবেল ও পাওয়ার অ্যাডাপ্টার আপনার ট্যাবলেটে মানানসই কিনা তা চেক করে নিন"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"আপনার ফোন আনলক না করে"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"আপনার ট্যাবলেট আনলক না করে"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"আপনার ফোন, \'পোর্ট্রেট\' ও \'ল্যান্ডস্কেপ\' মোডের মধ্যে অদলবদল করলে"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"আপনার ট্যাবলেট, \'পোর্ট্রেট\' ও \'ল্যান্ডস্কেপ\' মোডের মধ্যে অদলবদল করলে"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"আপনার ট্যাবলেট, \'পোর্ট্রেট\' ও \'ল্যান্ডস্কেপ\' মোডের মধ্যে অদলবদল করলে"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"আপনার ফোনে রঙ কীভাবে দেখানো হবে তা অ্যাডজাস্ট করুন"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"আপনার ট্যাবলেটে রঙ কীভাবে দেখানো হবে তা অ্যাডজাস্ট করুন"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ফোন স্পিকার"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ট্যাবলেট স্পিকার"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ডিভাইস স্পিকার"</string>
 </resources>
diff --git a/res-product/values-bs/strings.xml b/res-product/values-bs/strings.xml
index 1897e7e..53710f8 100644
--- a/res-product/values-bs/strings.xml
+++ b/res-product/values-bs/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je vraćen na fabričke postavke. Da koristite telefon, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet je vraćen na fabričke postavke. Da koristite tablet, unesite prethodnu lozinku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Uređaj je vraćen na fabričke postavke. Da koristite uređaj, unesite prethodnu lozinku."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Baterija se sporo puni ili se uopće ne puni. Provjerite funkcioniraju li kabl i adapter za napajanje s telefonom"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Baterija se sporo puni ili se uopće ne puni. Provjerite funkcioniraju li kabl i adapter za napajanje s uređajem"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Baterija se sporo puni ili se uopće ne puni. Provjerite funkcioniraju li kabl i adapter za napajanje s tabletom"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez otključavanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez otključavanja tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kada mijenjate prikaz na telefonu između uspravnog i vodoravnog"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kada mijenjate prikaz na tabletu između uspravnog i vodoravnog"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kada mijenjate prikaz na tabletu između uspravnog i vodoravnog"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Podesite način na koji se boje prikazuju na telefonu"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Podesite način na koji se boje prikazuju na tabletu"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Zvučnici telefona"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Zvučnici tableta"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Zvučnici uređaja"</string>
 </resources>
diff --git a/res-product/values-ca/strings.xml b/res-product/values-ca/strings.xml
index eccdc4e..48690a9 100644
--- a/res-product/values-ca/strings.xml
+++ b/res-product/values-ca/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"S\'ha restablert la config. de fàbrica del dispositiu. Per utilitzar-lo, escriu la contrasenya antiga."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"S\'ha restablert la config. de fàbrica de la tauleta. Per utilitzar-la, escriu la contrasenya antiga."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"S\'ha restablert la config. de fàbrica del dispositiu. Per utilitzar-lo, escriu la contrasenya antiga."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"La bateria s\'està carregant lentament o no s\'està carregant. Comprova si el cable i l\'adaptador de corrent funcionen amb el teu telèfon."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"La bateria s\'està carregant lentament o no s\'està carregant. Comprova si el cable i l\'adaptador de corrent funcionen amb el teu dispositiu."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"La bateria s\'està carregant lentament o no s\'està carregant. Comprova si el cable i l\'adaptador de corrent funcionen amb la teva tauleta."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sense desbloquejar el telèfon"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sense desbloquejar la tauleta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quan canvies entre el mode vertical i horitzontal al telèfon"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Quan canvies entre el mode vertical i horitzontal a la tauleta"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Quan canvies entre el mode vertical i horitzontal a la tauleta"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajusta com es mostren els colors al telèfon"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajusta com es mostren els colors a la tauleta"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altaveus del telèfon"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altaveus de la tauleta"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altaveus del dispositiu"</string>
 </resources>
diff --git a/res-product/values-cs/strings.xml b/res-product/values-cs/strings.xml
index e347103..f2d2453 100644
--- a/res-product/values-cs/strings.xml
+++ b/res-product/values-cs/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon byl resetován do továrního nastavení. Chcete-li tento telefon použít, zadejte předchozí heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet byl resetován do továrního nastavení. Chcete-li tento tablet použít, zadejte předchozí heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Zařízení bylo resetováno do továrního nastavení. Chcete-li toto zařízení použít, zadejte předchozí heslo."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Baterie se nabíjí pomalu nebo se nenabíjí vůbec. Zkontrolujte, zda kabel a napájecí adaptér fungují s telefonem"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Baterie se nabíjí pomalu nebo se nenabíjí vůbec. Zkontrolujte, zda kabel a napájecí adaptér fungují se zařízením"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Baterie se nabíjí pomalu nebo se nenabíjí vůbec. Zkontrolujte, zda kabel a napájecí adaptér fungují s tabletem"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez odemknutí telefonu"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez odemknutí tabletu"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Když telefon otočíte z režimu na výšku do režimu na šířku nebo naopak"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Když tablet otočíte z režimu na výšku do režimu na šířku nebo naopak"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Když tablet otočíte z režimu na výšku do režimu na šířku nebo naopak"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Upravte si zobrazování barev v telefonu"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Upravte si zobrazování barev v tabletu"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Reproduktory telefonu"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Reproduktory tabletu"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Reproduktory zařízení"</string>
 </resources>
diff --git a/res-product/values-da/strings.xml b/res-product/values-da/strings.xml
index ab612e9..9b59b6c 100644
--- a/res-product/values-da/strings.xml
+++ b/res-product/values-da/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Fabriksindstillingerne er gendannet på telefonen. Angiv din tidligere adgangskode for at bruge den."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Fabriksindstillingerne er gendannet på tabletten. Angiv din tidligere adgangskode for at bruge den."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Fabriksindstillingerne er gendannet på enheden. Angiv din tidligere adgangskode for at bruge den."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batteriet oplader langsomt eller slet ikke. Tjek, om kablet og strømadapteren fungerer med din telefon"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batteriet oplader langsomt eller slet ikke. Tjek, om kablet og strømadapteren fungerer med din enhed"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batteriet oplader langsomt eller slet ikke. Tjek, om kablet og strømadapteren fungerer med din tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Uden at låse op for din telefon"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Uden at låse op for din tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Når du drejer telefonen til stående eller liggende format"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Når du drejer tabletten til stående eller liggende format"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Når du drejer tabletten til stående eller liggende format"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Juster, hvordan farverne vises på din telefon"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Juster, hvordan farverne vises på din tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefonens højttalere"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablettens højttalere"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Enhedens højttalere"</string>
 </resources>
diff --git a/res-product/values-de/strings.xml b/res-product/values-de/strings.xml
index 344ec70..0ac0b0b 100644
--- a/res-product/values-de/strings.xml
+++ b/res-product/values-de/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Smartphone wurde auf Werkseinstellungen zurückgesetzt. Zum Verwenden vorheriges Passwort eingeben."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet wurde auf Werkseinstellungen zurückgesetzt. Zum Verwenden vorheriges Passwort eingeben."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Gerät wurde auf Werkseinstellungen zurückgesetzt. Zum Verwenden vorheriges Passwort eingeben."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Der Akku wird nur langsam oder gar nicht geladen. Prüfe, ob Netzteil und Kabel mit deinem Smartphone kompatibel sind."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Der Akku wird nur langsam oder gar nicht geladen. Prüfe, ob Netzteil und Kabel mit deinem Gerät kompatibel sind."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Der Akku wird nur langsam oder gar nicht geladen. Prüfe, ob Netzteil und Kabel mit deinem Tablet kompatibel sind."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Ohne dein Smartphone zu entsperren"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Ohne dein Tablet zu entsperren"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Wenn du das Smartphone drehst"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Wenn du das Tablet drehst"</string>
+    <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>
+    <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-el/strings.xml b/res-product/values-el/strings.xml
index 494f08c..f5c1e38 100644
--- a/res-product/values-el/strings.xml
+++ b/res-product/values-el/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Έγινε επαναφ. των εργοστ. ρυθμ. τηλεφ. Για να χρησιμ. το τηλέφ. εισαγάγ. τον παλιό κωδ. πρόσβασης."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Έγινε επαναφορά των εργοστ. ρυθμίσ. του tablet. Για να χρησ. το tablet εισαγ. τον προηγ. κωδ. πρόσβ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Έγινε επαναφ. των εργοστ. ρυθμίσ. της συσκευής. Για να χρησ. τη συσκ. εισαγ. τον προηγ. κωδ. πρόσβ."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Η μπαταρία φορτίζει αργά ή δεν φορτίζει. Ελέγξτε αν το καλώδιο και ο μετασχηματιστής λειτουργούν με το τηλέφωνό σας"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Η μπαταρία φορτίζει αργά ή δεν φορτίζει. Ελέγξτε αν το καλώδιο και ο μετασχηματιστής λειτουργούν με τη συσκευή σας"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Η μπαταρία φορτίζει αργά ή δεν φορτίζει. Ελέγξτε αν το καλώδιο και ο μετασχηματιστής λειτουργούν με το tablet σας"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Χωρίς να ξεκλειδώσετε το τηλέφωνό σας"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Χωρίς να ξεκλειδώσετε το tablet σας"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Όταν μετακινείτε το τηλέφωνο σε κατακόρυφο ή οριζόντιο προσανατολισμό"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Όταν μετακινείτε το tablet σε κατακόρυφο ή οριζόντιο προσανατολισμό"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Όταν μετακινείτε το tablet σε κατακόρυφο ή οριζόντιο προσανατολισμό"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Προσαρμόστε πώς θα εμφανίζονται τα χρώματα στο τηλέφωνό σας"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Προσαρμόστε πώς θα εμφανίζονται τα χρώματα στο tablet σας"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Ηχεία τηλεφώνου"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Ηχεία tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Ηχεία συσκευής"</string>
 </resources>
diff --git a/res-product/values-en-rAU/strings.xml b/res-product/values-en-rAU/strings.xml
index 7fa11dc..6a2b50d 100644
--- a/res-product/values-en-rAU/strings.xml
+++ b/res-product/values-en-rAU/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your phone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your device"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Adjust how colours are displayed on your phone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Adjust how colours are displayed on your tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Phone speakers"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablet speakers"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Device speakers"</string>
 </resources>
diff --git a/res-product/values-en-rCA/strings.xml b/res-product/values-en-rCA/strings.xml
index 576c333..714b152 100644
--- a/res-product/values-en-rCA/strings.xml
+++ b/res-product/values-en-rCA/strings.xml
@@ -347,11 +347,16 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your phone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your device"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your tablet"</string>
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Your phone may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"Your device may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"Your tablet may be charging slowly or not charging. For faster charging, use a recommended cable and adapter."</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Adjust how colors display on your phone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Adjust how colors display on your tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Phone speakers"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablet speakers"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Device speakers"</string>
 </resources>
diff --git a/res-product/values-en-rGB/strings.xml b/res-product/values-en-rGB/strings.xml
index 92e82a1..5f7cd7b 100644
--- a/res-product/values-en-rGB/strings.xml
+++ b/res-product/values-en-rGB/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your phone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your device"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Adjust how colours are displayed on your phone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Adjust how colours are displayed on your tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Phone speakers"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablet speakers"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Device speakers"</string>
 </resources>
diff --git a/res-product/values-en-rIN/strings.xml b/res-product/values-en-rIN/strings.xml
index 92e82a1..5f7cd7b 100644
--- a/res-product/values-en-rIN/strings.xml
+++ b/res-product/values-en-rIN/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Your phone was reset to factory settings. To use this phone, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Your tablet was reset to factory settings. To use this tablet, enter your previous password."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Your device was reset to factory settings. To use this device, enter your previous password."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your phone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your device"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Battery charging slowly or won\'t charge. Check if the cable and power adaptor work with your tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Without unlocking your phone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Without unlocking your tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"When you move your phone between portrait and landscape"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"When you move your tablet between portrait and landscape"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Adjust how colours are displayed on your phone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Adjust how colours are displayed on your tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Phone speakers"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablet speakers"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Device speakers"</string>
 </resources>
diff --git a/res-product/values-en-rXC/strings.xml b/res-product/values-en-rXC/strings.xml
index c970f31..b28e995 100644
--- a/res-product/values-en-rXC/strings.xml
+++ b/res-product/values-en-rXC/strings.xml
@@ -347,11 +347,16 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‏‎Your phone was reset to factory settings. To use this phone, enter your previous password.‎‏‎‎‏‎"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎Your tablet was reset to factory settings. To use this tablet, enter your previous password.‎‏‎‎‏‎"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎Your device was reset to factory settings. To use this device, enter your previous password.‎‏‎‎‏‎"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your phone‎‏‎‎‏‎"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‏‎Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your device‎‏‎‎‏‎"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your tablet‎‏‎‎‏‎"</string>
+    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎Your phone may be charging slowly or not charging. For faster charging, use a recommended cable and adapter.‎‏‎‎‏‎"</string>
+    <string name="battery_tip_incompatible_charging_message" product="device" msgid="4208335872169818919">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎Your device may be charging slowly or not charging. For faster charging, use a recommended cable and adapter.‎‏‎‎‏‎"</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="5697523201841444736">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‎‎Your tablet may be charging slowly or not charging. For faster charging, use a recommended cable and adapter.‎‏‎‎‏‎"</string>
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎Without unlocking your phone‎‏‎‎‏‎"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‏‎Without unlocking your tablet‎‏‎‎‏‎"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎When you move your phone between portrait and landscape‎‏‎‎‏‎"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‎‏‎When you move your tablet between portrait and landscape‎‏‎‎‏‎"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‎‏‎When you move your tablet between portrait and landscape‎‏‎‎‏‎"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎Adjust how colors display on your phone‎‏‎‎‏‎"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎Adjust how colors display on your tablet‎‏‎‎‏‎"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎Phone speakers‎‏‎‎‏‎"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎Tablet speakers‎‏‎‎‏‎"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‏‎Device speakers‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res-product/values-es-rUS/strings.xml b/res-product/values-es-rUS/strings.xml
index 59c356a..ddbb0fc 100644
--- a/res-product/values-es-rUS/strings.xml
+++ b/res-product/values-es-rUS/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Configuración de fábrica restablecida. Para usar este teléfono, ingresa la contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Configuración de fábrica restablecida. Para usar esta tablet, ingresa la contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Configuración de fábrica restablecida. Para usar el dispositivo, ingresa la contraseña anterior."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"La batería está cargando lento o no carga. Comprueba que el cable y el adaptador de alimentación funcionen con tu teléfono."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"La batería está cargando lento o no carga. Comprueba que el cable y el adaptador de alimentación funcionen con tu dispositivo."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"La batería está cargando lento o no carga. Comprueba que el cable y el adaptador de alimentación funcionen con tu tablet."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sin desbloquear tu teléfono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sin desbloquear tu tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Cuando muevas el teléfono entre el modo vertical y el horizontal"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Cuando muevas la tablet entre el modo vertical y el horizontal"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Cuando muevas la tablet entre el modo vertical y el horizontal"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajusta cómo se muestran los colores en tu teléfono"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajusta cómo se muestran los colores en tu tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altavoces del teléfono"</string>
+    <string name="spatial_audio_speaker" product="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-es/strings.xml b/res-product/values-es/strings.xml
index 2d5333e..81ab874 100644
--- a/res-product/values-es/strings.xml
+++ b/res-product/values-es/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ajustes de fábrica del teléfono restablecidos. Para usarlo, introduce tu contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Ajustes de fábrica de la tablet restablecidos. Para usarla, introduce tu contraseña anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Ajustes de fábrica del dispositivo restablecidos. Para usarlo, introduce tu contraseña anterior."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"La batería se está cargando lentamente o no se está cargando. Comprueba que el cable y el adaptador de corriente funcionan con tu teléfono."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"La batería se está cargando lentamente o no se está cargando. Comprueba que el cable y el adaptador de corriente funcionan con tu dispositivo."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"La batería se está cargando lentamente o no se está cargando. Comprueba que el cable y el adaptador de corriente funcionan con tu tablet."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sin desbloquear tu teléfono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sin desbloquear tu tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Cuando cambias el teléfono entre vertical y horizontal"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Cuando cambias la tablet entre vertical y horizontal"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Cuando cambias la tablet entre vertical y horizontal"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajusta cómo se muestran los colores en tu teléfono"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajusta cómo se muestran los colores en tu tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altavoces del teléfono"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altavoces de la tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altavoces del dispositivo"</string>
 </resources>
diff --git a/res-product/values-et/strings.xml b/res-product/values-et/strings.xml
index d965b3c..e141b84 100644
--- a/res-product/values-et/strings.xml
+++ b/res-product/values-et/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon lähtestati tehaseseadetele. Telefoni kasutamiseks sisestage oma eelmine parool."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tahvelarvuti lähtestati tehaseseadetele. Tahvelarvuti kasutamiseks sisestage oma eelmine parool."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Seade lähtestati tehaseseadetele. Seadme kasutamiseks sisestage oma eelmine parool."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Akut ei laeta või laetakse aeglaselt. Kontrollige, kas kaabel ja toiteadapter töötavad teie telefoniga"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Akut ei laeta või laetakse aeglaselt. Kontrollige, kas kaabel ja toiteadapter töötavad teie seadmega."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Akut ei laeta või laetakse aeglaselt. Kontrollige, kas kaabel ja toiteadapter töötavad teie tahvelarvutiga."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Ilma telefoni avamata"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Ilma tahvelarvutit avamata"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Liigutades telefoni vertikaal- ja horisontaalrežiimi vahel"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Liigutades tahvelarvutit vertikaal- ja horisontaalrežiimi vahel"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Liigutades tahvelarvutit vertikaal- ja horisontaalrežiimi vahel"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Kohandage telefonis värvide kuvamist"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Kohandage tahvelarvutis värvide kuvamist"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefoni kõlarid"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tahvelarvuti kõlarid"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Seadme kõlarid"</string>
 </resources>
diff --git a/res-product/values-eu/strings.xml b/res-product/values-eu/strings.xml
index 403b483..a91b9b6 100644
--- a/res-product/values-eu/strings.xml
+++ b/res-product/values-eu/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonoaren jatorrizko ezarpenak berrezarri dira. Telefonoa erabiltzeko, idatzi aurreko pasahitza."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tabletaren jatorrizko ezarpenak berrezarri dira. Tableta erabiltzeko, idatzi aurreko pasahitza."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Gailuaren jatorrizko ezarpenak berrezarri dira. Gailua erabiltzeko, idatzi aurreko pasahitza."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateria mantso kargatzen ari da edo ez da kargatzen. Egiaztatu kableak eta egokigailuak telefonoarekin funtzionatzen dutela."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateria mantso kargatzen ari da edo ez da kargatzen. Egiaztatu kableak eta egokigailuak gailuarekin funtzionatzen dutela."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateria mantso kargatzen ari da edo ez da kargatzen. Egiaztatu kableak eta egokigailuak tabletarekin funtzionatzen dutela."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefonoa desblokeatu gabe"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tableta desblokeatu gabe"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefonoaren pantailaren orientazioa bertikaletik horizontalera, eta alderantziz, aldatzen duzunean"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Tabletaren pantailaren orientazioa bertikaletik horizontalera, eta alderantziz, aldatzen duzunean"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Tabletaren pantailaren orientazioa bertikaletik horizontalera, eta alderantziz, aldatzen duzunean"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Doitu nola bistaratzen diren koloreak telefonoan"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Doitu nola bistaratzen diren koloreak tabletan"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefonoaren bozgorailuak"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tabletaren bozgorailuak"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Gailuaren bozgorailuak"</string>
 </resources>
diff --git a/res-product/values-fa/strings.xml b/res-product/values-fa/strings.xml
index b1ab0e8..ad77798 100644
--- a/res-product/values-fa/strings.xml
+++ b/res-product/values-fa/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"تلفن به تنظیمات کارخانه بازنشانی شده است. برای استفاده از این تلفن، گذرواژه قبلی را وارد کنید."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"رایانه لوحی به تنظیمات کارخانه بازنشانی شده است. برای استفاده از این رایانه لوحی، گذرواژه قبلی را وارد کنید."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"دستگاه به تنظیمات کارخانه بازنشانی شده است. برای استفاده از این دستگاه، گذرواژه قبلی را وارد کنید."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"باتری به‌کندی شارژ می‌شود یا اصلاً شارژ نمی‌شود. ببینید کابل و آداپتور برق با تلفنتان سازگار است یا نه"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"باتری به‌کندی شارژ می‌شود یا اصلاً شارژ نمی‌شود. ببینید کابل و آداپتور برق با دستگاهتان سازگار است یا نه"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"باتری به‌کندی شارژ می‌شود یا اصلاً شارژ نمی‌شود. ببینید کابل و آداپتور برق با رایانه لوحی‌تان سازگار است یا نه"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"بدون باز کردن قفل تلفن"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"بدون باز کردن قفل رایانه لوحی"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"وقتی تلفن را بین حالت افقی و عمودی جابه‌جا می‌کنید"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"وقتی رایانه لوحی را بین حالت افقی و عمودی جابه‌جا می‌کنید"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"وقتی رایانه لوحی را بین حالت افقی و عمودی جابه‌جا می‌کنید"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"تعیین می‌کنید رنگ‌ها چگونه در تلفن نمایش داده شود"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"تعیین می‌کنید رنگ‌ها چگونه در رایانه لوحی نمایش داده شود"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"بلندگوهای تلفن"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"بلندگوهای رایانه لوحی"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"بلندگوهای دستگاه"</string>
 </resources>
diff --git a/res-product/values-fi/strings.xml b/res-product/values-fi/strings.xml
index eabf726..49aaa93 100644
--- a/res-product/values-fi/strings.xml
+++ b/res-product/values-fi/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Puhelimen laiteasetukset palautettiin. Jos haluat käyttää tätä puhelinta, lisää aiempi salasana."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tabletin tehdasasetukset palautettiin. Käytä tablettia lisäämällä aiempi salasana."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Laitteen tehdasasetukset palautettiin. Käytä laitetta lisäämällä aiempi salasana."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Akku ei lataudu tai latautuu hitaasti. Tarkista, toimiiko johto ja virtalähde puhelimesi kanssa"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Akku ei lataudu tai latautuu hitaasti. Tarkista, toimiiko johto ja virtalähde laitteesi kanssa"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Akku ei lataudu tai latautuu hitaasti. Tarkista, toimiiko johto ja virtalähde tablettisi kanssa"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Avaamatta puhelimen lukitusta"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Avaamatta tabletin lukitusta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kun käännät puhelimen pysty- tai vaaka-asentoon"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kun käännät tabletin pysty- tai vaaka-asentoon"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kun käännät tabletin pysty- tai vaaka-asentoon"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Muuta värien näkymistä puhelimellasi"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Muuta värien näkymistä tabletillasi"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Puhelimen kaiuttimet"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tabletin kaiuttimet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Laitteen kaiuttimet"</string>
 </resources>
diff --git a/res-product/values-fr-rCA/strings.xml b/res-product/values-fr-rCA/strings.xml
index 52f08f0..aa23b80 100644
--- a/res-product/values-fr-rCA/strings.xml
+++ b/res-product/values-fr-rCA/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Téléphone réinitialisé aux paramètres par défaut Pour l\'utiliser, entrez votre ancien mot de passe."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablette réinitialisée aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Appareil réinitialisé aux paramètres par défaut. Pour l\'utiliser, entrez votre ancien mot de passe."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"La pile se recharge lentement ou pas du tout. Vérifiez que le câble et l\'adaptateur d\'alimentation sont compatibles avec votre téléphone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"La pile se recharge lentement ou pas du tout. Vérifiez que le câble et l\'adaptateur d\'alimentation sont compatibles avec votre appareil"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"La pile se recharge lentement ou pas du tout. Vérifiez que le câble et l\'adaptateur d\'alimentation sont compatibles avec votre tablette"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sans déverrouiller votre téléphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sans déverrouiller votre tablette"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Lorsque vous orientez votre téléphone entre les modes portrait et paysage"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Lorsque vous orientez votre tablette entre les modes portrait et paysage"</string>
+    <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>
+    <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-fr/strings.xml b/res-product/values-fr/strings.xml
index add8604..222d414 100644
--- a/res-product/values-fr/strings.xml
+++ b/res-product/values-fr/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Configuration d\'usine du téléphone rétablie. Pour l\'utiliser, saisissez votre mot passe précédent."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Configuration d\'usine de la tablette rétablie. Pour l\'utiliser, saisissez le mot de passe précédent."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Configuration d\'usine de l\'appareil rétablie. Pour l\'utiliser, saisissez le mot de passe précédent."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"La batterie se recharge lentement ou pas du tout. Vérifiez si le câble et l\'adaptateur secteur fonctionnent avec votre téléphone."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"La batterie se recharge lentement ou pas du tout. Vérifiez si le câble et l\'adaptateur secteur fonctionnent avec votre appareil."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"La batterie se recharge lentement ou pas du tout. Vérifiez si le câble et l\'adaptateur secteur fonctionnent avec votre tablette."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sans déverrouiller votre téléphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sans déverrouiller votre tablette"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quand vous basculez votre téléphone en mode portrait ou paysage"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Quand vous basculez votre tablette en mode portrait ou paysage"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Quand vous basculez votre tablette en mode portrait ou paysage"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajuster l\'affichage des couleurs sur votre téléphone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajuster l\'affichage des couleurs sur votre tablette"</string>
+    <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-gl/strings.xml b/res-product/values-gl/strings.xml
index 03e12f5..b3bbcc4 100644
--- a/res-product/values-gl/strings.xml
+++ b/res-product/values-gl/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Restableceuse a configuración de fábrica do teléfono. Para usalo, pon o contrasinal anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Restableceuse a configuración de fábrica da tableta. Para usala, pon o contrasinal anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Restableceuse a configuración de fábrica do dispositivo. Para usalo, pon o contrasinal anterior."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"A batería está cargando lentamente ou non está cargando. Comproba se o cable e o adaptador de corrente son compatibles co teléfono"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"A batería está cargando lentamente ou non está cargando. Comproba se o cable e o adaptador de corrente son compatibles co dispositivo"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"A batería está cargando lentamente ou non está cargando. Comproba se o cable e o adaptador de corrente son compatibles coa tableta"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sen desbloquear o teléfono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sen desbloquear a tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ao cambiar o teléfono do modo vertical ao horizontal"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Ao cambiar a tableta do modo vertical ao horizontal"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Ao cambiar a tableta do modo vertical ao horizontal"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Axusta a maneira en que se mostran as cores no teléfono"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Axusta a maneira en que se mostran as cores na tableta"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altofalantes do teléfono"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altofalantes da tableta"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altofalantes do dispositivo"</string>
 </resources>
diff --git a/res-product/values-gu/strings.xml b/res-product/values-gu/strings.xml
index 4ed4e86..b741021 100644
--- a/res-product/values-gu/strings.xml
+++ b/res-product/values-gu/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ફોન ફેક્ટરી સેટિંગ પર રીસેટ કરવામાં આવ્યો છે. આ ફોનનો ઉપયોગ કરવા માટે તમારો અગાઉનો પાસવર્ડ દાખલ કરો."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"તમારું ટૅબ્લેટ ફેક્ટરી સેટિંગ પર રીસેટ કરાયું છે. આ ટૅબ્લેટનો ઉપયોગ કરવા, તમારો અગાઉનો પાસવર્ડ દાખલ કરો."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"તમારું ડિવાઇસ ફેક્ટરી સેટિંગ પર રીસેટ કરાયું છે. આ ડિવાઇસનો ઉપયોગ કરવા, અગાઉનો પાસવર્ડ દાખલ કરો."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"બૅટરી ખૂબ જ ધીમેથી ચાર્જ થઈ રહી છે અથવા તો તે ચાર્જ થઈ રહી નથી. કેબલ અને પાવર અડૅપ્ટર તમારા ફોન સાથે કામ કરે છે કે નહીં તે ચેક કરો"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"બૅટરી ખૂબ જ ધીમેથી ચાર્જ થઈ રહી છે અથવા તો તે ચાર્જ થઈ રહી નથી. કેબલ અને પાવર અડૅપ્ટર તમારા ડિવાઇસ સાથે કામ કરે છે કે નહીં તે ચેક કરો"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"બૅટરી ખૂબ જ ધીમેથી ચાર્જ થઈ રહી છે અથવા તો તે ચાર્જ થઈ રહી નથી. કેબલ અને પાવર અડૅપ્ટર તમારા ટૅબ્લેટ સાથે કામ કરે છે કે નહીં તે ચેક કરો"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"તમારો ફોન અનલૉક કર્યા વિના"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"તમારું ટૅબ્લેટ અનલૉક કર્યા વિના"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"તમારા ફોનને પોર્ટ્રેટ અને લૅન્ડસ્કેપ વચ્ચેની સ્થિતિમાં ખસેડતી વખતે"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"તમારા ટૅબ્લેટને પોર્ટ્રેટ અને લૅન્ડસ્કેપ વચ્ચેની સ્થિતિમાં ખસેડતી વખતે"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"તમારા ટૅબ્લેટને પોર્ટ્રેટ અને લૅન્ડસ્કેપ વચ્ચેની સ્થિતિમાં ખસેડતી વખતે"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"તમારા ફોન પર રંગો કેવી રીતે બતાવવામાં આવે તેની ગોઠવણી કરો"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"તમારા ટૅબ્લેટ પર રંગો કેવી રીતે બતાવવામાં આવે તેની ગોઠવણી કરો"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ફોનના સ્પીકર"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ટૅબ્લેટના સ્પીકર"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ડિવાઇસના સ્પીકર"</string>
 </resources>
diff --git a/res-product/values-hi/strings.xml b/res-product/values-hi/strings.xml
index b41c2d4..305deda 100644
--- a/res-product/values-hi/strings.xml
+++ b/res-product/values-hi/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"आपका फ़ोन, फ़ैक्ट्री सेटिंग पर रीसेट किया गया था. इस फ़ोन को चलाने के लिए, पिछला पासवर्ड डालें."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"आपका टैबलेट, फ़ैक्ट्री सेटिंग पर रीसेट किया गया था. इस टैबलेट को चलाने के लिए, पिछला पासवर्ड डालें."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"आपका डिवाइस, फ़ैक्ट्री सेटिंग पर रीसेट किया गया था. इस डिवाइस को चलाने के लिए, पिछला पासवर्ड डालें."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"डिवाइस की बैटरी धीरे चार्ज हो रही है या चार्ज नहीं हो रही है. देखें कि आपके फ़ोन के साथ यह केबल और पावर अडैप्टर काम करता है या नहीं"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"डिवाइस की बैटरी धीरे चार्ज हो रही है या चार्ज नहीं हो रही है. देखें कि आपके डिवाइस के साथ यह केबल और पावर अडैप्टर काम करता है या नहीं"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"डिवाइस की बैटरी धीरे चार्ज हो रही है या चार्ज नहीं हो रही है. देखें कि आपके टैबलेट के साथ यह केबल और पावर अडैप्टर काम करता है या नहीं"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"फ़ोन अनलॉक किए बिना"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"टैबलेट अनलॉक किए बिना"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"फ़ोन को पोर्ट्रेट से लैंडस्केप मोड में स्विच करने पर, स्क्रीन अपने-आप घूम जाएगी"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"टैबलेट को पोर्ट्रेट से लैंडस्केप मोड में स्विच करने पर, स्क्रीन अपने-आप घूम जाएगी"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"टैबलेट को पोर्ट्रेट से लैंडस्केप मोड में स्विच करने पर, स्क्रीन अपने-आप घूम जाएगी"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"अपने फ़ोन पर रंगों के दिखने का तरीका बदलें"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"अपने टैबलेट पर रंगों के दिखने का तरीका बदलें"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"फ़ोन के स्पीकर"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"टैबलेट के स्पीकर"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"डिवाइस के स्पीकर"</string>
 </resources>
diff --git a/res-product/values-hr/strings.xml b/res-product/values-hr/strings.xml
index cc3a3da..0f9c3b5 100644
--- a/res-product/values-hr/strings.xml
+++ b/res-product/values-hr/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je vraćen na tvorničke postavke. Da biste ga koristili, unesite prethodnu zaporku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet je vraćen na tvorničke postavke. Da biste ga koristili, unesite prethodnu zaporku."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Uređaj je vraćen na tvorničke postavke. Da biste ga koristili, unesite prethodnu zaporku."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Baterija se puni sporo ili se ne puni. Provjerite funkcioniraju li kabel i pretvarač napona s vašim telefonom"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Baterija se puni sporo ili se ne puni. Provjerite rade li kabel i pretvarač napona s vašim uređajem"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Baterija se puni sporo ili se ne puni. Provjerite rade li kabel i pretvarač napona s vašim tabletom"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez otključavanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez otključavanja tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kad izmjenjujete prikaz zaslona telefona između okomitog i vodoravnog"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kad izmjenjujete prikaz zaslona tableta između okomitog i vodoravnog"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kad izmjenjujete prikaz zaslona tableta između okomitog i vodoravnog"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Prilagodite način prikazivanja boja na telefonu"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Prilagodite način prikazivanja boja na svojem tabletu."</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Zvučnici telefona"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Zvučnici tableta"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Zvučnici uređaja"</string>
 </resources>
diff --git a/res-product/values-hu/strings.xml b/res-product/values-hu/strings.xml
index f27e3e6..ccf1caf 100644
--- a/res-product/values-hu/strings.xml
+++ b/res-product/values-hu/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"A telefon gyári beállításai visszaállítva. A telefon használatához adja meg az előző jelszavát."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"A táblagép gyári beállításai visszaállítva. A táblagép használatához adja meg az előző jelszavát."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Az eszköz gyári beállításai visszaállítva. Az eszköz használatához adja meg az előző jelszavát."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Az akkumulátor lassan vagy nem tölt. Ellenőrizze, hogy a kábel és a tápcsatlakozó használható-e a telefonjával."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Az akkumulátor lassan vagy nem tölt. Ellenőrizze, hogy a kábel és a tápcsatlakozó használható-e az eszközével."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Az akkumulátor lassan vagy nem tölt. Ellenőrizze, hogy a kábel és a tápcsatlakozó használható-e a táblagépével."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"A telefon zárolásának feloldása nélkül"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"A táblagép zárolásának feloldása nélkül"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Amikor Ön álló vagy fekvő helyzetbe fordítja a telefont"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Amikor Ön álló vagy fekvő helyzetbe fordítja a táblagépet"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Amikor Ön álló vagy fekvő helyzetbe fordítja a táblagépet"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Beállíthatja, hogy a színek miként jelenjenek meg a telefonon"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Beállíthatja, hogy a színek miként jelenjenek meg a táblagépen"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefon hangszórója"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Táblagép hangszórója"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Eszköz hangszórója"</string>
 </resources>
diff --git a/res-product/values-hy/strings.xml b/res-product/values-hy/strings.xml
index 278df90..b4d081f 100644
--- a/res-product/values-hy/strings.xml
+++ b/res-product/values-hy/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ձեր հեռախոսում վերականգնվել են գործարանային կարգավորումները։ Մուտքագրեք ձեր նախորդ գաղտնաբառը։"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Ձեր պլանշետում վերականգնվել են գործարանային կարգավորումները։ Մուտքագրեք ձեր նախորդ գաղտնաբառը։"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Ձեր սարքում վերականգնվել են գործարանային կարգավորումները։ Մուտքագրեք ձեր նախորդ գաղտնաբառը։"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Մարտկոցը դանդաղ է լիցքավորվում կամ չի լիցքավորվում։ Ստուգեք՝ արդյոք մալուխը և սնուցման ադապտերը համատեղելի են ձեր հեռախոսի հետ։"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Մարտկոցը դանդաղ է լիցքավորվում կամ չի լիցքավորվում։ Ստուգեք՝ արդյոք մալուխը և սնուցման ադապտերը համատեղելի են ձեր սարքի հետ։"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Մարտկոցը դանդաղ է լիցքավորվում կամ չի լիցքավորվում։ Ստուգեք՝ արդյոք մալուխը և սնուցման ադապտերը համատեղելի են ձեր պլանշետի հետ։"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Առանց հեռախոսն ապակողպելու"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Առանց պլանշետն ապակողպելու"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Փոխել էկրանի դիրքը ուղղաձիգի/հորիզոնականի՝ հեռախոսը պտտելիս"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Փոխել էկրանի դիրքը ուղղաձիգի/հորիզոնականի՝ պլանշետը պտտելիս"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Փոխել էկրանի դիրքը ուղղաձիգի/հորիզոնականի՝ պլանշետը պտտելիս"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Կարգավորեք գույների ցուցադրումը ձեր հեռախոսում"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Կարգավորեք գույների ցուցադրումը ձեր պլանշետում"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Հեռախոսի բարձրախոսներ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Պլանշետի բարձրախոսներ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Սարքի բարձրախոսներ"</string>
 </resources>
diff --git a/res-product/values-in/strings.xml b/res-product/values-in/strings.xml
index ce989ba..202863b 100644
--- a/res-product/values-in/strings.xml
+++ b/res-product/values-in/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ponsel direset ke setelan pabrik. Untuk menggunakan ponsel ini, masukkan sandi sebelumnya."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet direset ke setelan pabrik. Untuk menggunakan tablet ini, masukkan sandi sebelumnya."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Perangkat direset ke setelan pabrik. Untuk menggunakan perangkat ini, masukkan sandi sebelumnya."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Pengisian daya baterai lambat atau tidak mau mengisi daya sama sekali. Periksa apakah kabel dan adaptor daya berfungsi dengan ponsel Anda"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Pengisian daya baterai lambat atau tidak mau mengisi daya sama sekali. Periksa apakah kabel dan adaptor daya berfungsi dengan perangkat Anda"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Pengisian daya baterai lambat atau tidak mau mengisi daya sama sekali. Periksa apakah kabel dan adaptor daya berfungsi dengan tablet Anda"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Tanpa membuka kunci ponsel Anda"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tanpa membuka kunci tablet Anda"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Saat Anda berganti mode ponsel antara potret dan lanskap"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Saat Anda berganti mode tablet antara potret dan lanskap"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Saat Anda berganti mode tablet antara potret dan lanskap"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Sesuaikan tampilan warna di ponsel Anda"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Sesuaikan tampilan warna di tablet Anda"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Speaker ponsel"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Speaker tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Speaker perangkat"</string>
 </resources>
diff --git a/res-product/values-is/strings.xml b/res-product/values-is/strings.xml
index ce565db..d826f66 100644
--- a/res-product/values-is/strings.xml
+++ b/res-product/values-is/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Síminn var núllstilltur. Til að nota símann skaltu slá inn fyrra aðgangsorð."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Spjaldtölvan var núllstillt. Til að nota spjaldtölvuna skaltu slá inn fyrra aðgangsorð."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Tækið var núllstillt. Til að nota tækið skaltu slá inn fyrra aðgangsorð."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Rafhlaða hleðst hægt eða hleðst ekki. Athugaðu hvort snúran og straumbreytirinn virki með símanum"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Rafhlaða hleðst hægt eða hleðst ekki. Athugaðu hvort snúran og straumbreytirinn virki með tækinu"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Rafhlaða hleðst hægt eða hleðst ekki. Athugaðu hvort snúran og straumbreytirinn virki með spjaldtölvunni"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Án þess að taka símann úr lás"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Án þess að taka spjaldtölvuna úr lás"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Þegar þú skiptir á milli skammsniðs og langsniðs í símanum"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Þegar þú skiptir á milli skammsniðs og langsniðs í spjaldtölvunni"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Þegar þú skiptir á milli skammsniðs og langsniðs í spjaldtölvunni"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Stilltu litabirtingu í símanum þínum"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Stilltu litabirtingu í spjaldtölvunni þinni"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Hátalarar síma"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Hátalarar spjaldtölvu"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Hátalarar tækis"</string>
 </resources>
diff --git a/res-product/values-it/strings.xml b/res-product/values-it/strings.xml
index c9a228e..a60cc7a 100644
--- a/res-product/values-it/strings.xml
+++ b/res-product/values-it/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Impostazioni di fabbrica ripristinate. Per usare il telefono, inserisci la password precedente."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Impostazioni di fabbrica ripristinate. Per usare il tablet, inserisci la password precedente."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Impostazioni di fabbrica ripristinate. Per usare il dispositivo, inserisci la password precedente."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"La batteria si carica lentamente o non si carica. Controlla se il cavo e l\'alimentatore sono compatibili con il telefono"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"La batteria si carica lentamente o non si carica. Controlla se il cavo e l\'alimentatore sono compatibili con il dispositivo"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"La batteria si carica lentamente o non si carica. Controlla se il cavo e l\'alimentatore sono compatibili con il tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Senza sbloccare il telefono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Senza sbloccare il tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quando ruoti il telefono in orizzontale e verticale"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Quando ruoti il tablet in orizzontale e verticale"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Quando ruoti il tablet in orizzontale e verticale"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Regola la modalità di visualizzazione dei colori sullo smartphone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Regola la modalità di visualizzazione dei colori sul tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altoparlanti smartphone"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altoparlanti tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Speaker dispositivo"</string>
 </resources>
diff --git a/res-product/values-iw/strings.xml b/res-product/values-iw/strings.xml
index 521ff6c..890dc33 100644
--- a/res-product/values-iw/strings.xml
+++ b/res-product/values-iw/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"הטלפון שלך עבר איפוס להגדרות המקוריות. כדי להשתמש בטלפון הזה, יש להזין את הסיסמה הקודמת."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"הטאבלט שלך עבר איפוס להגדרות המקוריות. כדי להשתמש בטאבלט הזה, יש להזין את הסיסמה הקודמת."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"המכשיר שלך עבר איפוס להגדרות המקוריות. כדי להשתמש במכשיר הזה, יש להזין את הסיסמה הקודמת."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"הסוללה נטענת לאט, או שלא ניתן לטעון אותה כלל. צריך לבדוק אם הכבל ומתאם המתח עובדים עם הטלפון"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"הסוללה נטענת לאט, או שלא ניתן לטעון אותה כלל. צריך לבדוק אם הכבל ומתאם המתח עובדים עם המכשיר"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"הסוללה נטענת לאט, או שלא ניתן לטעון אותה כלל. צריך לבדוק אם הכבל ומתאם המתח עובדים עם הטאבלט"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"בלי לבטל את נעילת הטלפון"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"בלי לבטל את נעילת הטאבלט"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"כשמזיזים את הטלפון ממצב \'לאורך\' למצב \'לרוחב\' ולהפך"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"כשמזיזים את הטאבלט ממצב \'לאורך\' למצב \'לרוחב\' ולהפך"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"כשמזיזים את הטאבלט ממצב \'לאורך\' למצב \'לרוחב\' ולהפך"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"כוונון של תצוגת הצבעים בטלפון"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"כוונון של תצוגת הצבעים בטאבלט"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"רמקולים של טלפון"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"רמקולים של טאבלט"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"רמקולים של מכשיר"</string>
 </resources>
diff --git a/res-product/values-ja/strings.xml b/res-product/values-ja/strings.xml
index 786d44d..cb08c13 100644
--- a/res-product/values-ja/strings.xml
+++ b/res-product/values-ja/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"スマートフォンは出荷時の設定にリセットされました。使用するには、以前のパスワードを入力してください。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"タブレットは出荷時の設定にリセットされました。使用するには、以前のパスワードを入力してください。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"デバイスは出荷時の設定にリセットされました。使用するには、以前のパスワードを入力してください。"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"バッテリーの充電が遅くなるか、充電されないおそれがあります。お使いのスマートフォンで利用できるケーブルと電源アダプターであるか確認してください。"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"バッテリーの充電が遅くなるか、充電されないおそれがあります。お使いのデバイスで利用できるケーブルと電源アダプターであるか確認してください"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"バッテリーの充電が遅くなるか、充電されないおそれがあります。お使いのタブレットで利用できるケーブルと電源アダプターであるか確認してください"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"スマートフォンのロックを解除せずに操作"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"タブレットのロックを解除せずに操作"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"スマートフォンを動かして縦向きと横向きを切り替えたとき"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"タブレットを動かして縦向きと横向きを切り替えたとき"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"タブレットを動かして縦向きと横向きを切り替えたとき"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"スマートフォンでの色表示を補正できます"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"タブレットでの色表示を補正できます"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"スマートフォンのスピーカー"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"タブレットのスピーカー"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"デバイスのスピーカー"</string>
 </resources>
diff --git a/res-product/values-ka/strings.xml b/res-product/values-ka/strings.xml
index c56a58f..6a93bec 100644
--- a/res-product/values-ka/strings.xml
+++ b/res-product/values-ka/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"თქვენი ტელეფონი დაბრუნდა ქარხნულ პარამეტრებზე. ამ ტელეფონის გამოსაყენებლად, შეიყვანეთ თქვენი წინა პაროლი."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"თქვენი ტაბლეტი დაბრუნდა ქარხნულ პარამეტრებზე. ამ ტაბლეტის გამოსაყენებლად შეიყვანეთ თქვენი წინა პაროლი."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"თქვენი მოწყობილობა დაბრუნდა ქარხნულ პარამეტრებზე. ამ მოწყობილობის გამოსაყენებლად შეიყვანეთ თქვენი წინა პაროლი."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ბატარეა ძალიან ნელა ან საერთოდ არ იტენება. დარწმუნდით, რომ სადენი და ელკვების ადაპტერი თავსებადია თქვენს ტელეფონთან"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ბატარეა ძალიან ნელა ან საერთოდ არ იტენება. დარწმუნდით, რომ სადენი და ელკვების ადაპტერი თავსებადია თქვენს მოწყობილობასთან"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ბატარეა ძალიან ნელა ან საერთოდ არ იტენება. დარწმუნდით, რომ სადენი და ელკვების ადაპტერი თავსებადია თქვენს ტაბლეტთან"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"თქვენი ტელეფონის განბლოკვის გარეშე"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"თქვენი ტაბლეტის განბლოკვის გარეშე"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"როცა ტელეფონი პორტრეტის რეჟიმიდან პეიზაჟის რეჟიმზე გადაგყავთ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"როცა ტაბლეტი პორტრეტის რეჟიმიდან პეიზაჟის რეჟიმზე გადაგყავთ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"როცა ტაბლეტი პორტრეტის რეჟიმიდან პეიზაჟის რეჟიმზე გადაგყავთ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"დააკორექტირეთ, როგორ გამოჩნდეს ფერები თქვენს ტელეფონში"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"დააკორექტირეთ, როგორ გამოჩნდეს ფერები თქვენს ტაბლეტში"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ტელეფონის დინამიკები"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ტაბლეტის დინამიკები"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"მოწყობილობის დინამიკები"</string>
 </resources>
diff --git a/res-product/values-kk/strings.xml b/res-product/values-kk/strings.xml
index b5c2685..7222034 100644
--- a/res-product/values-kk/strings.xml
+++ b/res-product/values-kk/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефоныңыз зауыттық параметрлерге қайтарылды. Оны пайдалану үшін бұрынғы құпия сөзді енгізіңіз."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Планшетіңіз зауыттық параметрлерге қайтарылды. Оны пайдалану үшін бұрынғы құпия сөзді енгізіңіз."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Құрылғыңыз зауыттық параметрлерге қайтарылды. Оны пайдалану үшін бұрынғы құпия сөзді енгізіңіз."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батарея баяу зарядталып жатыр немесе зарядталмайды. Кабель мен қуат адаптерінің телефонда істейтінін-істемейтінін тексеріңіз."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батарея баяу зарядталып жатыр немесе зарядталмайды. Кабель мен қуат адаптерінің құрылғыда істейтінін-істемейтінін тексеріңіз."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батарея баяу зарядталып жатыр немесе зарядталмайды. Кабель мен қуат адаптерінің планшетте істейтінін-істемейтінін тексеріңіз."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Телефон құлпын ашпай-ақ қолдана аласыз."</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Планшет құлпын ашпай-ақ қолдана аласыз."</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Телефонды портрет және альбом режимі арасында ауыстырғанда"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Планшетті портрет және альбом режимі арасында ауыстырғанда"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Планшетті портрет және альбом режимі арасында ауыстырғанда"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Телефоныңызда түстердің қалай көрсетілетінін реттеңіз."</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Планшетіңізде түстердің қалай көрсетілетінін реттеңіз."</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Телефон динамиктері"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Планшет динамиктері"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Құрылғы динамиктері"</string>
 </resources>
diff --git a/res-product/values-km/strings.xml b/res-product/values-km/strings.xml
index 8ff49b3..6017a7d 100644
--- a/res-product/values-km/strings.xml
+++ b/res-product/values-km/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ទូរសព្ទរបស់អ្នក​ត្រូវបានកំណត់ឡើងវិញ​ដូចចេញពីរោងចក្រ។ ដើម្បីប្រើទូរសព្ទនេះ សូមបញ្ចូល​ពាក្យសម្ងាត់មុន​របស់អ្នក។"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ថេប្លេតរបស់អ្នកត្រូវបានកំណត់ឡើងវិញទៅការកំណត់ដូចចេញពីរោងចក្រ។ ដើម្បីប្រើថេប្លេតនេះ សូមបញ្ចូលពាក្យសម្ងាត់ពីមុនរបស់អ្នក។"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ឧបករណ៍របស់អ្នកត្រូវបានកំណត់ឡើងវិញទៅការកំណត់ដូចចេញពីរោងចក្រ។ ដើម្បីប្រើឧបករណ៍នេះ សូមបញ្ចូលពាក្យសម្ងាត់ពីមុនរបស់អ្នក។"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"សាកថ្មយឺត ឬសាកថ្មមិនចូល។ ពិនិត្យមើលថាតើខ្សែ និងឆ្នាំងសាកដំណើរការជាមួយទូរសព្ទរបស់អ្នកឬអត់"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"សាកថ្មយឺត ឬសាកថ្មមិនចូល។ ពិនិត្យមើលថាតើខ្សែ និងឆ្នាំងសាកដំណើរការជាមួយឧបករណ៍របស់អ្នកឬអត់"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"សាកថ្មយឺត ឬសាកថ្មមិនចូល។ ពិនិត្យមើលថាតើខ្សែ និងឆ្នាំងសាកដំណើរការជាមួយថេប្លេតរបស់អ្នកឬអត់"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ដោយមិនចាំបាច់​ដោះសោ​ទូរសព្ទរបស់អ្នក"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ដោយមិនចាំបាច់​ដោះសោ​ថេប្លេតរបស់អ្នក"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"នៅពេលដែល​អ្នកដាក់​ទូរសព្ទ​របស់អ្នកឱ្យ​បញ្ឈរ និងផ្ដេក"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"នៅពេលដែល​អ្នកដាក់ថេប្លេត​របស់អ្នកឱ្យ​បញ្ឈរ និងផ្ដេក"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"នៅពេលដែល​អ្នកដាក់ថេប្លេត​របស់អ្នកឱ្យ​បញ្ឈរ និងផ្ដេក"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"កែតម្រូវរបៀបដែលពណ៌បង្ហាញនៅលើទូរសព្ទរបស់អ្នក"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"កែតម្រូវ​របៀបដែលពណ៌​បង្ហាញនៅលើ​ថេប្លេត​របស់អ្នក"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ឧបករណ៍បំពងសំឡេងរបស់ទូរសព្ទ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ឧបករណ៍បំពងសំឡេងរបស់ថេប្លេត"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ឧបករណ៍បំពងសំឡេងរបស់ឧបករណ៍"</string>
 </resources>
diff --git a/res-product/values-kn/strings.xml b/res-product/values-kn/strings.xml
index 236ab02..efdea33 100644
--- a/res-product/values-kn/strings.xml
+++ b/res-product/values-kn/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ನಿಮ್ಮ ಫೋನ್‌ ಅನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈ ಫೋನ್‌ ಬಳಸಲು, ನಿಮ್ಮ ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಬಳಸಲು, ನಿಮ್ಮ ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಫ್ಯಾಕ್ಟರಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಮರುಹೊಂದಿಸಲಾಗಿದೆ. ಈ ಸಾಧನವನ್ನು ಬಳಸಲು, ನಿಮ್ಮ ಹಿಂದಿನ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ಬ್ಯಾಟರಿ ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ಅಥವಾ ಚಾರ್ಜ್ ಆಗುತ್ತಿಲ್ಲ. ಕೇಬಲ್ ಮತ್ತು ಪವರ್ ಅಡಾಪ್ಟರ್ ನಿಮ್ಮ ಫೋನ್ ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ಬ್ಯಾಟರಿ ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ಅಥವಾ ಚಾರ್ಜ್ ಆಗುತ್ತಿಲ್ಲ. ಕೇಬಲ್ ಮತ್ತು ಪವರ್ ಅಡಾಪ್ಟರ್ ನಿಮ್ಮ ಸಾಧನದ ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ಬ್ಯಾಟರಿ ನಿಧಾನವಾಗಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ಅಥವಾ ಚಾರ್ಜ್ ಆಗುತ್ತಿಲ್ಲ. ಕೇಬಲ್ ಮತ್ತು ಪವರ್ ಅಡಾಪ್ಟರ್ ನಿಮ್ಮ ಫೋನ್ ಜೊತೆಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡದೆಯೇ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್‌‌ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡದೆಯೇ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ಫೋನ್ ಅನ್ನು ಪೋರ್ಟ್ರೇಟ್ ಹಾಗೂ ಲ್ಯಾಂಡ್‌ಸ್ಕೇಪ್ ನಡುವೆ ಬದಲಾಯಿಸಿದಾಗ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಪೋರ್ಟ್ರೇಟ್ ಹಾಗೂ ಲ್ಯಾಂಡ್‌ಸ್ಕೇಪ್ ನಡುವೆ ಬದಲಾಯಿಸಿದಾಗ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಪೋರ್ಟ್ರೇಟ್ ಹಾಗೂ ಲ್ಯಾಂಡ್‌ಸ್ಕೇಪ್ ನಡುವೆ ಬದಲಾಯಿಸಿದಾಗ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿ ಬಣ್ಣಗಳು ಹೇಗೆ ಡಿಸ್‌ಪ್ಲೇ ಆಗಬೇಕೆಂದು ಅಡ್ಜಸ್ಟ್‌ ಮಾಡಿ"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್‌ನಲ್ಲಿ ಬಣ್ಣಗಳು ಹೇಗೆ ಡಿಸ್‌ಪ್ಲೇ ಆಗಬೇಕೆಂದು ಅಡ್ಜಸ್ಟ್‌ ಮಾಡಿ"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ಫೋನ್ ಸ್ಪೀಕರ್‌ಗಳು"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ಟ್ಯಾಬ್ಲೆಟ್‌‌ ಸ್ಪೀಕರ್‌ಗಳು"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ಸಾಧನದ ಸ್ಪೀಕರ್‌ಗಳು"</string>
 </resources>
diff --git a/res-product/values-ko/strings.xml b/res-product/values-ko/strings.xml
index 666967d..c4b50fe 100644
--- a/res-product/values-ko/strings.xml
+++ b/res-product/values-ko/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"휴대전화가 기본 설정으로 초기화되었습니다. 이 휴대전화를 사용하려면 이전 비밀번호를 입력하세요."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"태블릿이 기본 설정으로 초기화되었습니다. 이 태블릿을 사용하려면 이전 비밀번호를 입력하세요."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"기기가 기본 설정으로 초기화되었습니다. 이 기기를 사용하려면 이전 비밀번호를 입력하세요."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"배터리가 느리게 충전되거나 충전되지 않습니다. 케이블 및 전원 어댑터가 휴대전화와 호환되는지 확인하세요."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"배터리가 느리게 충전되거나 충전되지 않습니다. 케이블 및 전원 어댑터가 기기와 호환되는지 확인하세요."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"배터리가 느리게 충전되거나 충전되지 않습니다. 케이블 및 전원 어댑터가 태블릿과 호환되는지 확인하세요."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"휴대전화를 잠금 해제하지 않은 채 사용"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"태블릿을 잠금 해제하지 않은 채 사용"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"휴대전화를 가로 또는 세로로 움직이면 자동으로 방향 전환"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"태블릿을 가로 또는 세로로 움직이면 자동으로 방향 전환"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"태블릿을 가로 또는 세로로 움직이면 자동으로 방향 전환"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"휴대전화에서 색상이 표시되는 방식을 조정합니다."</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"태블릿에서 색상이 표시되는 방식을 조정합니다."</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"휴대전화 스피커"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"태블릿 스피커"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"기기 스피커"</string>
 </resources>
diff --git a/res-product/values-ky/strings.xml b/res-product/values-ky/strings.xml
index 5ae89ff..39b0e99 100644
--- a/res-product/values-ky/strings.xml
+++ b/res-product/values-ky/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефонуңуз демейки параметрлерге кайтарылды. Аны колдонуу үчүн мурунку сырсөзүңүздү киргизиңиз."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Планшет демейки параметрлерге кайтарылды. Аны колдонуу үчүн мурунку сырсөзүңүздү киргизиңиз."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Түзмөк демейки параметрлерге кайтарылды. Аны колдонуу үчүн мурунку сырсөзүңүздү киргизиңиз."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батарея кубатталган жок же жай кубатталып жатат. Кабель жана кубаттагыч адаптери телефонуңузга шайкеш келерин текшериңиз"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батарея кубатталган жок же жай кубатталып жатат. Кабель жана кубаттагыч адаптери түзмөгүңүзгө шайкеш келерин текшериңиз"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батарея кубатталган жок же жай кубатталып жатат. Кабель жана кубаттагыч адаптери планшетиңизге шайкеш келерин текшериңиз"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Телефонуңуздун кулпусун ачпай туруп"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Планшетиңиздин кулпусун ачпай туруп"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Телефонду тигинен же туурасынан кармаганда"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Планшетти тигинен же туурасынан кармаганда"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Планшетти тигинен же туурасынан кармаганда"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Телефонуңуздагы түстөрдү тууралаңыз"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Планшетиңиздеги түстөрдү тууралаңыз"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Телефондун динамиктери"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Планшеттин динамиктери"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Түзмөктүн динамиктери"</string>
 </resources>
diff --git a/res-product/values-lo/strings.xml b/res-product/values-lo/strings.xml
index ed6363f..5acf2a8 100644
--- a/res-product/values-lo/strings.xml
+++ b/res-product/values-lo/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ໂທລະສັບຂອງທ່ານຖືກຣີເຊັດເປັນຄ່າຈາກໂຮງງານແລ້ວ. ເພື່ອໃຊ້ໂທລະສັບນີ້, ໃຫ້ໃສ່ລະຫັດຜ່ານກ່ອນໜ້າຂອງທ່ານ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ແທັບເລັດຂອງທ່ານບໍ່ໄດ້ຖືກຣີເຊັດເປັນຄ່າຈາກໂຮງງານ. ເພື່ອໃຊ້ແທັບເລັດນີ້, ໃຫ້ໃສ່ລະຫັດຜ່ານກ່ອນໜ້າຂອງທ່ານ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ອຸປະກອນຂອງທ່ານບໍ່ໄດ້ຖືກຣີເຊັດເປັນຄ່າຈາກໂຮງງານ. ເພື່ອໃຊ້ອຸປະກອນນີ້, ໃຫ້ໃສ່ລະຫັດຜ່ານກ່ອນໜ້າຂອງທ່ານ."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ແບັດເຕີຣີສາກຊ້າ ຫຼື ບໍ່ສາກ. ກວດສອບວ່າສາຍ ແລະ ຕົວແປງໄຟຟ້າໃຊ້ກັບໂທລະສັບຂອງທ່ານໄດ້ຫຼືບໍ່"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ແບັດເຕີຣີສາກຊ້າ ຫຼື ບໍ່ສາກ. ກວດສອບວ່າສາຍ ແລະ ຕົວແປງໄຟຟ້າໃຊ້ກັບອຸປະກອນຂອງທ່ານໄດ້ຫຼືບໍ່"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ແບັດເຕີຣີສາກຊ້າ ຫຼື ບໍ່ສາກ. ກວດສອບວ່າສາຍ ແລະ ຕົວແປງໄຟຟ້າໃຊ້ກັບແທັບເລັດຂອງທ່ານໄດ້ຫຼືບໍ່"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ໂດຍບໍ່ຕ້ອງປົດລັອກໂທລະສັບຂອງທ່ານ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ໂດຍບໍ່ຕ້ອງປົດລັອກແທັບເລັດຂອງທ່ານ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ເມື່ອທ່ານປິ່ນໂທລະສັບຂອງທ່ານໄປມາລະຫວ່າງແນວຕັ້ງ ແລະ ແນວນອນ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"ເມື່ອທ່ານປິ່ນແທັບເລັດຂອງທ່ານໄປມາລະຫວ່າງແນວຕັ້ງ ແລະ ແນວນອນ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"ເມື່ອທ່ານປິ່ນແທັບເລັດຂອງທ່ານໄປມາລະຫວ່າງແນວຕັ້ງ ແລະ ແນວນອນ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ປັບວິທີສະແດງສີໃນໂທລະສັບຂອງທ່ານ"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ປັບວິທີສະແດງສີໃນແທັບເລັດຂອງທ່ານ"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ລຳໂພງຂອງໂທລະສັບ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ລຳໂພງຂອງແທັບເລັດ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ລຳໂພງຂອງອຸປະກອນ"</string>
 </resources>
diff --git a/res-product/values-lt/strings.xml b/res-product/values-lt/strings.xml
index 3da82b4..e909598 100644
--- a/res-product/values-lt/strings.xml
+++ b/res-product/values-lt/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Atkurti gamykliniai telefono nustatymai. Naudokite šį telefoną įvedę ankstesnį slaptažodį."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Atkurti gamykliniai planšetinio kompiuterio nustatymai. Naudokite jį įvedę ankstesnį slaptažodį."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Atkurti gamykliniai įrenginio nustatymai. Naudokite šį įrenginį įvedę ankstesnį slaptažodį."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Akumuliatorius įkraunamas lėtai arba neįkraunamas. Patikrinkite, ar laidas ir maitinimo adapteris suderinami su telefonu"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Akumuliatorius įkraunamas lėtai arba neįkraunamas. Patikrinkite, ar laidas ir maitinimo adapteris suderinami su įrenginiu"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Akumuliatorius įkraunamas lėtai arba neįkraunamas. Patikrinkite, ar laidas ir maitinimo adapteris suderinami su planšetiniu kompiuteriu"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Neatrakinus telefono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Neatrakinus planšetinio kompiuterio"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kai pasukate telefoną stačiai ar gulsčiai"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kai pasukate planšetinį kompiuterį stačiai ar gulsčiai"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kai pasukate planšetinį kompiuterį stačiai ar gulsčiai"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Koreguokite, kaip telefone rodomos spalvos"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Koreguokite, kaip planšetiniame kompiuteryje rodomos spalvos"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefono garsiakalbiai"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Planšetinio kompiuterio garsiakalbiai"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Įrenginio garsiakalbiai"</string>
 </resources>
diff --git a/res-product/values-lv/strings.xml b/res-product/values-lv/strings.xml
index 8dc3a6a..d2c0c8f 100644
--- a/res-product/values-lv/strings.xml
+++ b/res-product/values-lv/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Tālrunī atiestatīti rūpnīcas iestatījumi. Lai izmantotu tālruni, ievadiet iepriekšējo paroli."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Atiestatīti rūpnīcas iestatījumi. Lai izmantotu šo planšetdatoru, ievadiet iepriekšējo paroli."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Ierīcē atiestatīti rūpnīcas iestatījumi. Lai izmantotu šo ierīci, ievadiet iepriekšējo paroli."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Akumulators tiek uzlādēts lēni vai nemaz netiek uzlādēts. Pārbaudiet, vai vads un strāvas adapteris ir saderīgs ar jūsu tālruni."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Akumulators tiek uzlādēts lēni vai nemaz netiek uzlādēts. Pārbaudiet, vai vads un strāvas adapteris ir saderīgs ar jūsu ierīci."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Akumulators tiek uzlādēts lēni vai nemaz netiek uzlādēts. Pārbaudiet, vai vads un strāvas adapteris ir saderīgs ar jūsu planšetdatoru."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Neatbloķējot tālruni"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Neatbloķējot planšetdatoru"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Pārvietojot tālruni no portreta režīma ainavas režīmā vai otrādi"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Pārvietojot planšetdatoru no portreta režīma ainavas režīmā vai otrādi"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Pārvietojot planšetdatoru no portreta režīma ainavas režīmā vai otrādi"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Pielāgojiet krāsu attēlojumu savā tālrunī"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Pielāgojiet krāsu attēlojumu savā planšetdatorā"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Tālruņa skaļruņi"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Planšetdatora skaļruņi"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Ierīces skaļruņi"</string>
 </resources>
diff --git a/res-product/values-mk/strings.xml b/res-product/values-mk/strings.xml
index cd0eced..08571de 100644
--- a/res-product/values-mk/strings.xml
+++ b/res-product/values-mk/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефонот беше ресетиран на фабрички поставки. За да го користите, внесете ја претходната лозинка."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Таблетот беше ресетиран на фабрички поставки. За да го користите, внесете ја претходната лозинка."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Уредот беше ресетиран на фабрички поставки. За да го користите, внесете ја претходната лозинка."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батеријата се полни бавно или не се полни. Проверете дали функционираат кабелот и адаптерот за напојување со телефонот"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батеријата се полни бавно или не се полни. Проверете дали функционираат кабелот и адаптерот за напојување со уредот"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батеријата се полни бавно или не се полни. Проверете дали функционираат кабелот и адаптерот за напојување со таблетот"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без да го отклучите телефонот"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без да го отклучите таблетот"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Менување меѓу портрет и пејзаж кога го движите телефонот"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Менување меѓу портрет и пејзаж кога го движите таблетот"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Менување меѓу портрет и пејзаж кога го движите таблетот"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Приспособете го приказот на боите на телефонот"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Приспособете го приказот на боите на таблетот"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Звучници на телефонот"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Звучници на таблетот"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Звучници на уредот"</string>
 </resources>
diff --git a/res-product/values-ml/strings.xml b/res-product/values-ml/strings.xml
index 1bdee18..b186854 100644
--- a/res-product/values-ml/strings.xml
+++ b/res-product/values-ml/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ഫാക്‌ടറി ക്രമീകരണത്തിലേക്ക് ഫോൺ റീസെറ്റ് ചെയ്‌തു. ഫോൺ ഉപയോഗിക്കാനായി മുമ്പത്തെ പാസ്‌വേഡ് നൽകുക."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ഫാക്ടറി ക്രമീകരണത്തിലേക്ക് ടാബ്‌ലെറ്റ് റീസെറ്റുചെയ്തു. ഈ ടാബ്‌ലെറ്റ് ഉപയോഗിക്കാൻ മുമ്പത്തെ പാസ്‌വേഡ് നൽകൂ."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ഫാക്‌ടറി ക്രമീകരണത്തിലേക്ക് ഉപകരണം റീസെറ്റ് ചെയ്തു. ഈ ഉപകരണം ഉപയോഗിക്കാൻ, മുമ്പത്തെ പാസ്‌വേഡ് നൽകൂ."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ബാറ്ററി പതുക്കെയാണ് ചാർജ് ചെയ്യുന്നത്, അല്ലെങ്കിൽ ചാർജ് ചെയ്യുന്നില്ല. കേബിളും പവർ അഡാപ്റ്ററും നിങ്ങളുടെ ഫോണിന് അനുയോജ്യമാണോ എന്ന് പരിശോധിക്കുക"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ബാറ്ററി പതുക്കെയാണ് ചാർജ് ചെയ്യുന്നത്, അല്ലെങ്കിൽ ചാർജ് ചെയ്യുന്നില്ല. കേബിളും പവർ അഡാപ്റ്ററും നിങ്ങളുടെ ഉപകരണത്തിന് അനുയോജ്യമാണോ എന്ന് പരിശോധിക്കുക"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ബാറ്ററി പതുക്കെയാണ് ചാർജ് ചെയ്യുന്നത്, അല്ലെങ്കിൽ ചാർജ് ചെയ്യുന്നില്ല. കേബിളും പവർ അഡാപ്റ്ററും നിങ്ങളുടെ ടാബ്‌ലെറ്റിന് അനുയോജ്യമാണോ എന്ന് പരിശോധിക്കുക"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യാതെ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് അൺലോക്ക് ചെയ്യാതെ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"പോർട്രെയ്‌റ്റിനും ലാൻഡ്സ്കേപ്പിനും ഇടയിൽ നിങ്ങളുടെ ഫോൺ തിരിക്കുമ്പോൾ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"പോർട്രെയ്‌റ്റിനും ലാൻഡ്സ്കേപ്പിനും ഇടയിൽ നിങ്ങളുടെ ടാബ്‌ലെറ്റ് തിരിക്കുമ്പോൾ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"പോർട്രെയ്‌റ്റിനും ലാൻഡ്സ്കേപ്പിനും ഇടയിൽ നിങ്ങളുടെ ടാബ്‌ലെറ്റ് തിരിക്കുമ്പോൾ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"നിങ്ങളുടെ ഫോണിൽ നിറങ്ങൾ എങ്ങനെ പ്രദർശിപ്പിക്കണമെന്ന് ക്രമീകരിക്കുക"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"നിങ്ങളുടെ ടാബ്‌ലെറ്റിൽ നിറങ്ങൾ എങ്ങനെ പ്രദർശിപ്പിക്കണമെന്ന് ക്രമീകരിക്കുക"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ഫോൺ സ്‌പീക്കറുകൾ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ടാബ്‌ലെറ്റ് സ്‌പീക്കറുകൾ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ഉപകരണ സ്‌പീക്കറുകൾ"</string>
 </resources>
diff --git a/res-product/values-mn/strings.xml b/res-product/values-mn/strings.xml
index 41aefa0..7b54dd4 100644
--- a/res-product/values-mn/strings.xml
+++ b/res-product/values-mn/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Таны утсыг үйлдвэрийн тохиргоонд шинэчилсэн. Энэ утсыг ашиглахын тулд өмнөх нууц үгээ оруулна уу."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Таны таблетыг үйлдвэрийн тохиргоонд шинэчилсэн. Өмнөх нууц үгээ оруулж энэ таблетыг ашиглана уу."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Таны төхөөрөмжийг үйлдвэрийн тохиргоонд шинэчилсэн. Өмнөх нууц үгээ оруулж төхөөрөмжийг ашиглана уу."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батарей удаан цэнэглэж эсвэл цэнэглэхгүй байна. Кабель эсвэл тэжээлийн адаптер таны утастай ажилладаг эсэхийг шалгана уу"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батарей удаан цэнэглэж эсвэл цэнэглэхгүй байна. Кабель эсвэл тэжээлийн адаптер таны төхөөрөмжтэй ажилладаг эсэхийг шалгана уу"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батарей удаан цэнэглэж эсвэл цэнэглэхгүй байна. Кабель эсвэл тэжээлийн адаптер таны таблеттай ажилладаг эсэхийг шалгана уу"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Утасныхаа түгжээг тайлалгүйгээр"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Таблетынхаа түгжээг тайлалгүйгээр"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Таныг утсаа босоо болон хөндлөн чиглэлийн хооронд шилжүүлэх үед"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Таныг таблетаа босоо болон хөндлөн чиглэлийн хооронд шилжүүлэх үед"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Таныг таблетаа босоо болон хөндлөн чиглэлийн хооронд шилжүүлэх үед"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Таны утсан дээр өнгийг хэрхэн үзүүлэхийг тохируулна уу"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Таны таблет дээр өнгийг хэрхэн үзүүлэхийг тохируулна уу"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Утасны чанга яригч"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Таблетын чанга яригч"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Төхөөрөмжийн чанга яригч"</string>
 </resources>
diff --git a/res-product/values-mr/strings.xml b/res-product/values-mr/strings.xml
index cec709c..6c911f5 100644
--- a/res-product/values-mr/strings.xml
+++ b/res-product/values-mr/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"तुमचा फोन फॅक्टरी सेटिंग्जवर रीसेट केला होता. हा फोन वापरण्यासाठी, तुमचा मागील पासवर्ड एंटर करा."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"तुमचा टॅबलेट फॅक्टरी सेटिंग्जवर रीसेट केले होता. हा टॅबलेट वापरण्यासाठी, मागील पासवर्ड एंटर करा."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"तुमचे डिव्हाइस फॅक्टरी सेटिंग्जवर रीसेट केले होते. हे डिव्हाइस वापरण्यासाठी, मागील पासवर्ड एंटर करा."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"बॅटरी हळू चार्ज होत आहे किंवा चार्ज होणार नाही. केबल आणि पॉवर अडॅप्टर तुमच्या फोनसह काम करतात का ते तपासा"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"बॅटरी हळू चार्ज होत आहे किंवा चार्ज होणार नाही. केबल आणि पॉवर अडॅप्टर तुमच्या डिव्हाइससोबत काम करतात का ते तपासा"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"बॅटरी हळू चार्ज होत आहे किंवा चार्ज होणार नाही. केबल आणि पॉवर अडॅप्टर तुमच्या टॅबलेटसोबत काम करतात का ते तपासा"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"तुमचा फोन अनलॉक न करता"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"तुमचा टॅबलेट अनलॉक न करता"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"तुम्ही फोन हा पोर्ट्रेट व लॅंडस्केप मोडदरम्यान हलवल्यास"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"तुम्ही टॅबलेट हा पोर्ट्रेट व लॅंडस्केप मोडदरम्यान हलवल्यास"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"तुम्ही टॅबलेट हा पोर्ट्रेट व लॅंडस्केप मोडदरम्यान हलवल्यास"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"तुमच्या फोनवर रंग कसे दाखवले जातात ते अ‍ॅडजस्ट करा"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"तुमच्या टॅबलेटवर रंग कसे दाखवले जातात ते अ‍ॅडजस्ट करा"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"फोनचे स्पीकर"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"टॅबलेटचे स्पीकर"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"डिव्हाइसचे स्पीकर"</string>
 </resources>
diff --git a/res-product/values-ms/strings.xml b/res-product/values-ms/strings.xml
index e4a06e3..614decf 100644
--- a/res-product/values-ms/strings.xml
+++ b/res-product/values-ms/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon ditetapkan semula kepada tetapan kilang. Masukkan kata laluan terdahulu untuk menggunakan telefon."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet ditetapkan semula kepada tetapan kilang. Masukkan kata laluan terdahulu untuk menggunakan tablet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Peranti ditetapkan semula kepada tetapan kilang. Masukkan kata laluan terdahulu untuk menggunakan peranti."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateri mengecas dengan perlahan atau tidak dapat dicas. Pastikan kabel dan penyesuai kuasa berfungsi dengan telefon anda"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateri mengecas dengan perlahan atau tidak dapat dicas. Pastikan kabel dan penyesuai kuasa berfungsi dengan peranti anda"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateri mengecas dengan perlahan atau tidak dapat dicas. Pastikan kabel dan penyesuai kuasa berfungsi dengan tablet anda"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Tanpa membuka kunci telefon anda"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tanpa membuka kunci tablet anda"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Apabila anda menggerakkan telefon anda antara potret dengan landskap"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Apabila anda menggerakkan tablet anda antara potret dengan landskap"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Apabila anda menggerakkan tablet anda antara potret dengan landskap"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Laraskan cara warna dipaparkan pada telefon anda"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Laraskan cara warna dipaparkan pada tablet anda"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Pembesar suara telefon"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Pembesar suara tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Pembesar suara peranti"</string>
 </resources>
diff --git a/res-product/values-my/strings.xml b/res-product/values-my/strings.xml
index 30daeeb..a91ad22 100644
--- a/res-product/values-my/strings.xml
+++ b/res-product/values-my/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"သင့်ဖုန်းကို စက်ရုံဆက်တင်သို့ ပြင်ဆင်သတ်မှတ်ထားသည်။ ဤဖုန်းသုံးရန် ယခင်စကားဝှက် ထည့်ပါ။"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"တက်ဘလက်ကို စက်ရုံထုတ်ဆက်တင်သို့ ပြင်ဆင်သတ်မှတ်ထားသည်။ ဤတက်ဘလက်သုံးရန် ယခင်စကားဝှက် ထည့်ပါ။"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"စက်ကို စက်ရုံထုတ်ဆက်တင်သို့ ပြင်ဆင်သတ်မှတ်ထားသည်။ ဤစက်ပစ္စည်းသုံးရန် ယခင်စကားဝှက် ထည့်ပါ။"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ဘက်ထရီ နှေးကွေးစွာ အားသွင်းနေသည် (သို့) အားမသွင်းပါ။ ကြိုးနှင့် ပါဝါ ကြားခံကိရိယာကို သင့်ဖုန်းတွင် သုံးနိုင်ခြင်း ရှိ၊ မရှိ စစ်ဆေးပါ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ဘက်ထရီ နှေးကွေးစွာ အားသွင်းနေသည် (သို့) အားမသွင်းပါ။ ကြိုးနှင့် ပါဝါ ကြားခံကိရိယာကို သင့်စက်ပစ္စည်းတွင် သုံးနိုင်ခြင်း ရှိ၊ မရှိ စစ်ဆေးပါ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ဘက်ထရီ နှေးကွေးစွာ အားသွင်းနေသည် (သို့) အားမသွင်းပါ။ ကြိုးနှင့် ပါဝါ ကြားခံကိရိယာကို သင့်တက်ဘလက်တွင် သုံးနိုင်ခြင်း ရှိ၊ မရှိ စစ်ဆေးပါ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"သင့်ဖုန်းကို လော့ခ်မဖွင့်ဘဲ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"သင့်တက်ဘလက်ကို လော့ခ်မဖွင့်ဘဲ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"သင့်ဖုန်းကို အလျားလိုက်နှင့် ဒေါင်လိုက် ပြောင်းသောအခါ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"သင့်တက်ဘလက်ကို အလျားလိုက်နှင့် ဒေါင်လိုက် ပြောင်းသောအခါ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"သင့်တက်ဘလက်ကို အလျားလိုက်နှင့် ဒေါင်လိုက် ပြောင်းသောအခါ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"သင့်ဖုန်းတွင် အရောင်များပြသပုံကို ချိန်ညှိနိုင်သည်"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"သင့်တက်ဘလက်တွင် အရောင်များပြသပုံကို ချိန်ညှိနိုင်သည်"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ဖုန်းစပီကာများ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"တက်ဘလက် စပီကာများ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"စက်ပစ္စည်း စပီကာများ"</string>
 </resources>
diff --git a/res-product/values-nb/strings.xml b/res-product/values-nb/strings.xml
index f88df54..abb62b7 100644
--- a/res-product/values-nb/strings.xml
+++ b/res-product/values-nb/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonen er tilbakestilt til fabrikkstandard. For å bruke den, legg inn det forrige passordet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Nettbrettet er tilbakestilt til fabrikkstandard. For å bruke det, legg inn det forrige passordet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Enheten er tilbakestilt til fabrikkstandard. For å bruke den, legg inn det forrige passordet."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batteriet lades tregt eller ikke i det hele tatt. Sjekk om kabelen og strømadapteren fungerer med telefonen du har"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batteriet lades tregt eller ikke i det hele tatt. Sjekk om kabelen og strømadapteren fungerer med enheten du har"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batteriet lades tregt eller ikke i det hele tatt. Sjekk om kabelen og strømadapteren fungerer med nettbrettet du har"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Uten å låse opp telefonen"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Uten å låse opp nettbrettet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Når du beveger telefonen mellom stående og liggende format"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Når du beveger nettbrettet mellom stående og liggende format"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Når du beveger nettbrettet mellom stående og liggende format"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Juster hvordan farger vises på telefonen"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Juster hvordan farger vises på nettbrettet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefonhøyttalere"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Nettbretthøyttalere"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Enhetshøyttalere"</string>
 </resources>
diff --git a/res-product/values-ne/strings.xml b/res-product/values-ne/strings.xml
index fab13f1..e5b106c 100644
--- a/res-product/values-ne/strings.xml
+++ b/res-product/values-ne/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"तपाईंको फोन रिसेट गरी डिफल्ट सेटिङ लागू गरिएको छ। यो फोन प्रयोग गर्न अघिल्लो पासवर्ड हाल्नुहोस्।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"तपाईंको ट्याब्लेट रिसेट गरी डिफल्ट सेटिङ लागू गरिएको छ। यो ट्याब्लेट प्रयोग गर्न अघिल्लो पासवर्ड हाल्नुहोस्।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"तपाईंको डिभाइस रिसेट गरी डिफल्ट सेटिङ लागू गरिएको छ। यो डिभाइस प्रयोग गर्न अघिल्लो पासवर्ड हाल्नुहोस्।"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ब्याट्री कि त बिस्तारै चार्ज भइरहेको छ कि त चार्ज नै भएको छैन। केबल र पावर एडाप्टरले तपाईंको फोनमा काम गर्छ कि गर्दैन भन्ने कुरा जाँच्नुहोस्"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ब्याट्री कि त बिस्तारै चार्ज भइरहेको छ कि त चार्ज नै भएको छैन। केबल र पावर एडाप्टरले तपाईंको डिभाइसमा काम गर्छ कि गर्दैन भन्ने कुरा जाँच्नुहोस्"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ब्याट्री कि त बिस्तारै चार्ज भइरहेको छ कि त चार्ज नै भएको छैन। केबल र पावर एडाप्टरले तपाईंको ट्याब्लेटमा काम गर्छ कि गर्दैन भन्ने कुरा जाँच्नुहोस्"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"तपाईंको फोन अनलक नगरिकनै"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"तपाईंको ट्याब्लेट अनलक नगरिकनै"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"तपाईंले आफ्नो फोन पोर्ट्रेट र ल्यान्डस्केपबिच अदलबदल गर्दा"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"तपाईंले आफ्नो ट्याब्लेट पोर्ट्रेट र ल्यान्डस्केपबिच अदलबदल गर्दा"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"तपाईंले आफ्नो ट्याब्लेट पोर्ट्रेट र ल्यान्डस्केपबिच अदलबदल गर्दा"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"तपाईंको फोनमा रङहरू कस्ता देखिन्छन् भन्ने कुरा मिलाउनुहोस्"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"तपाईंको ट्याब्लेटमा रङहरू कस्ता देखिन्छन् भन्ने कुरा मिलाउनुहोस्"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"फोनका स्पिकरहरू"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ट्याब्लेटका स्पिकरहरू"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"डिभाइसका स्पिकरहरू"</string>
 </resources>
diff --git a/res-product/values-nl/strings.xml b/res-product/values-nl/strings.xml
index 7ebb96c..98751fc 100644
--- a/res-product/values-nl/strings.xml
+++ b/res-product/values-nl/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Je telefoon is teruggezet op de fabrieksinstellingen. Geef je vorige wachtwoord op."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Je tablet is teruggezet op de fabrieksinstellingen. Geef je vorige wachtwoord op."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Je apparaat is teruggezet op de fabrieksinstellingen. Geef je vorige wachtwoord op."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batterij wordt langzaam of helemaal niet opgeladen. Check of de kabel en de voedingsadapter werken met je telefoon."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batterij wordt langzaam of helemaal niet opgeladen. Check of de kabel en de voedingsadapter werken met je apparaat."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batterij wordt langzaam of helemaal niet opgeladen. Check of de kabel en de voedingsadapter werken met je tablet."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Zonder je telefoon te ontgrendelen"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Zonder je tablet te ontgrendelen"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Als je wisselt tussen de staande en liggende telefoonstand"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Als je wisselt tussen de staande en liggende tabletstand"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Als je wisselt tussen de staande en liggende tabletstand"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Pas aan hoe kleuren worden getoond op je telefoon"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Pas aan hoe kleuren worden getoond op je telefoon"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefoonspeakers"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tabletspeakers"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Apparaatspeakers"</string>
 </resources>
diff --git a/res-product/values-or/strings.xml b/res-product/values-or/strings.xml
index 870fac7..554cc67 100644
--- a/res-product/values-or/strings.xml
+++ b/res-product/values-or/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ଆପଣଙ୍କ ଫୋନ ଫେକ୍ଟୋରୀ ସେଟିଂସରେ ରିସେଟ ହୋଇଛି। ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ପୂର୍ବବର୍ତ୍ତୀ ପାସୱାର୍ଡ ଲେଖ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ଆପଣଙ୍କ ଟାବଲେଟ ଫେକ୍ଟୋରୀ ସେଟିଂସରେ ରିସେଟ ହୋଇଛି। ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ପୂର୍ବବର୍ତ୍ତୀ ପାସୱାର୍ଡ ଲେଖ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ଆପଣଙ୍କ ଡିଭାଇସ ଫେକ୍ଟୋରୀ ସେଟିଂସରେ ରିସେଟ ହୋଇଛି। ଏହାକୁ ବ୍ୟବହାର କରିବାକୁ ଆପଣଙ୍କ ପୂର୍ବବର୍ତ୍ତୀ ପାସୱାର୍ଡ ଲେଖ।"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ବେଟେରୀ ଧୀରେ ଚାର୍ଜ ହେଉଛି କିମ୍ବା ଏହା ଚାର୍ଜ ହେବ ନାହିଁ। କେବୁଲ ଏବଂ ପାୱାର ଆଡାପ୍ଟର ଆପଣଙ୍କ ଫୋନ ସହ କାମ କରୁଛି ନା ନାହିଁ ତାହା ଯାଞ୍ଚ କରନ୍ତୁ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ବେଟେରୀ ଧୀରେ ଚାର୍ଜ ହେଉଛି କିମ୍ବା ଏହା ଚାର୍ଜ ହେବ ନାହିଁ। କେବୁଲ ଏବଂ ପାୱାର ଆଡାପ୍ଟର ଆପଣଙ୍କ ଡିଭାଇସ ସହ କାମ କରୁଛି ନା ନାହିଁ ତାହା ଯାଞ୍ଚ କରନ୍ତୁ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ବେଟେରୀ ଧୀରେ ଚାର୍ଜ ହେଉଛି କିମ୍ବା ଏହା ଚାର୍ଜ ହେବ ନାହିଁ। କେବୁଲ ଏବଂ ପାୱାର ଆଡାପ୍ଟର ଆପଣଙ୍କ ଟାବଲେଟ ସହ କାମ କରୁଛି ନା ନାହିଁ ତାହା ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ ନକରି"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ଆପଣଙ୍କ ଟାବଲେଟକୁ ଅନଲକ ନକରି"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ଆପଣ ଆପଣଙ୍କ ଫୋନକୁ ପୋର୍ଟ୍ରେଟ ଓ ଲାଣ୍ଡସ୍କେପ ମଧ୍ୟରେ ମୁଭ କଲେ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"ଆପଣ ଆପଣଙ୍କ ଟାବଲେଟକୁ ପୋର୍ଟ୍ରେଟ ଓ ଲାଣ୍ଡସ୍କେପ ମଧ୍ୟରେ ମୁଭ କଲେ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"ଆପଣ ଆପଣଙ୍କ ଟାବଲେଟକୁ ପୋର୍ଟ୍ରେଟ ଓ ଲାଣ୍ଡସ୍କେପ ମଧ୍ୟରେ ମୁଭ କଲେ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ଆପଣଙ୍କ ଫୋନରେ ରଙ୍ଗଗୁଡ଼ିକ କିପରି ଡିସପ୍ଲେ ହୁଏ ତାହା ଆଡଜଷ୍ଟ କରନ୍ତୁ"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ଆପଣଙ୍କ ଟାବଲେଟରେ ରଙ୍ଗଗୁଡ଼ିକ କିପରି ଡିସପ୍ଲେ ହୁଏ ତାହା ଆଡଜଷ୍ଟ କରନ୍ତୁ"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ଫୋନ ସ୍ପିକରଗୁଡ଼ିକ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ଟାବଲେଟ ସ୍ପିକରଗୁଡ଼ିକ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ଡିଭାଇସ ସ୍ପିକରଗୁଡ଼ିକ"</string>
 </resources>
diff --git a/res-product/values-pa/strings.xml b/res-product/values-pa/strings.xml
index b4463e3..aac15f2 100644
--- a/res-product/values-pa/strings.xml
+++ b/res-product/values-pa/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਫੈਕਟਰੀ ਸੈਟਿੰਗਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਇਹ ਫ਼ੋਨ ਵਰਤਣ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਫੈਕਟਰੀ ਸੈਟਿੰਗਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਇਹ ਟੈਬਲੈੱਟ ਵਰਤਣ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਫੈਕਟਰੀ ਸੈਟਿੰਗਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ। ਇਹ ਡੀਵਾਈਸ ਵਰਤਣ ਲਈ, ਆਪਣਾ ਪੁਰਾਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ।"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"ਬੈਟਰੀ ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਹੀ ਹੈ ਜਾਂ ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਹੀ। ਜਾਂਚ ਕਰੋ ਕਿ ਕੇਬਲ ਅਤੇ ਪਾਵਰ ਅਡਾਪਟਰ ਤੁਹਾਡੇ ਫ਼ੋਨ ਨਾਲ ਕੰਮ ਕਰ ਰਹੇ ਹਨ ਜਾਂ ਨਹੀਂ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"ਬੈਟਰੀ ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਹੀ ਹੈ ਜਾਂ ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਹੀ। ਜਾਂਚ ਕਰੋ ਕਿ ਕੇਬਲ ਅਤੇ ਪਾਵਰ ਅਡਾਪਟਰ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨਾਲ ਕੰਮ ਕਰ ਰਹੇ ਹਨ ਜਾਂ ਨਹੀਂ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"ਬੈਟਰੀ ਹੌਲੀ ਚਾਰਜ ਹੋ ਰਹੀ ਹੈ ਜਾਂ ਚਾਰਜ ਨਹੀਂ ਹੋ ਰਹੀ। ਜਾਂਚ ਕਰੋ ਕਿ ਕੇਬਲ ਅਤੇ ਪਾਵਰ ਅਡਾਪਟਰ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਨਾਲ ਕੰਮ ਕਰ ਰਹੇ ਹਨ ਜਾਂ ਨਹੀਂ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕੀਤੇ ਬਿਨਾਂ"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਅਣਲਾਕ ਕੀਤੇ ਬਿਨਾਂ"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਪੋਰਟਰੇਟ ਅਤੇ ਲੈਂਡਸਕੇਪ ਮੋਡ ਵਿਚਕਾਰ ਅਦਲਾ-ਬਦਲੀ ਕਰਦੇ ਹੋ"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਪੋਰਟਰੇਟ ਅਤੇ ਲੈਂਡਸਕੇਪ ਮੋਡ ਵਿਚਕਾਰ ਅਦਲਾ-ਬਦਲੀ ਕਰਦੇ ਹੋ"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਪੋਰਟਰੇਟ ਅਤੇ ਲੈਂਡਸਕੇਪ ਮੋਡ ਵਿਚਕਾਰ ਅਦਲਾ-ਬਦਲੀ ਕਰਦੇ ਹੋ"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ਆਪਣੇ ਫ਼ੋਨ \'ਤੇ ਰੰਗਾਂ ਨੂੰ ਦਿਖਾਉਣ ਦੇ ਤਰੀਕੇ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰੋ"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ਆਪਣੇ ਟੈਬਲੈੱਟ \'ਤੇ ਰੰਗਾਂ ਨੂੰ ਦਿਖਾਉਣ ਦੇ ਤਰੀਕੇ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰੋ"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ਫ਼ੋਨ ਸਪੀਕਰ"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ਟੈਬਲੈੱਟ ਸਪੀਕਰ"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ਡੀਵਾਈਸ ਸਪੀਕਰ"</string>
 </resources>
diff --git a/res-product/values-pl/strings.xml b/res-product/values-pl/strings.xml
index 0c66115..f04d427 100644
--- a/res-product/values-pl/strings.xml
+++ b/res-product/values-pl/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon został zresetowany do ustawień fabrycznych. Aby go używać, wpisz poprzednie hasło."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablet został zresetowany do ustawień fabrycznych. Aby go używać, wpisz poprzednie hasło."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Urządzenie zostało zresetowane do ustawień fabrycznych. Aby go używać, wpisz poprzednie hasło."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateria ładuje się powoli lub nie ładuje wcale. Sprawdź, czy kabel i ładowarka działają z tym telefonem"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateria ładuje się powoli lub nie ładuje wcale. Sprawdź, czy kabel i ładowarka działają z tym urządzeniem"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateria ładuje się powoli lub nie ładuje wcale. Sprawdź, czy kabel i ładowarka działają z tym tabletem"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez odblokowywania telefonu"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez odblokowywania tabletu"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Gdy obracasz telefon do pionu lub poziomu"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Gdy obracasz tablet do pionu lub poziomu"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Gdy obracasz tablet do pionu lub poziomu"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Dostosuj sposób wyświetlania kolorów na ekranie telefonu"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Dostosuj sposób wyświetlania kolorów na ekranie tabletu"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Głośniki telefonu"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Głośniki tabletu"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Głośniki urządzenia"</string>
 </resources>
diff --git a/res-product/values-pt-rBR/strings.xml b/res-product/values-pt-rBR/strings.xml
index a80a951..ffabb2e 100644
--- a/res-product/values-pt-rBR/strings.xml
+++ b/res-product/values-pt-rBR/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"O smartphone foi redefinido para as configurações originais. Para usá-lo, digite a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"O tablet foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"O dispositivo foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateria carregando lentamente ou não carregando. Confira se o cabo e o adaptador de energia funcionam com o smartphone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateria carregando lentamente ou não carregando. Confira se o cabo e o adaptador de energia funcionam com o dispositivo"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateria carregando lentamente ou não carregando. Confira se o cabo e o adaptador de energia funcionam com o tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sem desbloquear o smartphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sem desbloquear o tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ao virar o smartphone para as posições vertical e horizontal"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Ao virar o tablet para as posições vertical e horizontal"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Ao virar o tablet para as posições vertical e horizontal"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajuste as cores mostradas no smartphone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajuste as cores mostradas no tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Alto-falantes do smartphone"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Alto-falantes do tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Alto-falantes do dispositivo"</string>
 </resources>
diff --git a/res-product/values-pt-rPT/strings.xml b/res-product/values-pt-rPT/strings.xml
index 8f0f1d8..234017a 100644
--- a/res-product/values-pt-rPT/strings.xml
+++ b/res-product/values-pt-rPT/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Definições de fábrica do telemóvel repostas. Para o usar, introduza a palavra-passe anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Definições de fábrica do tablet repostas. Para o usar, introduza a palavra-passe anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Definições de fábrica do dispositivo repostas. Para o usar, introduza a palavra-passe anterior."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"A bateria está a carregar lentamente ou não carrega. Verifique se o cabo e o transformador funcionam com o seu telemóvel"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"A bateria está a carregar lentamente ou não carrega. Verifique se o cabo e o transformador funcionam com o seu dispositivo"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"A bateria está a carregar lentamente ou não carrega. Verifique se o cabo e o transformador funcionam com o seu tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sem desbloquear o telemóvel"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sem desbloquear o tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Quando move o telemóvel entre o modo vertical e horizontal"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Quando move o tablet entre o modo vertical e horizontal"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Quando move o tablet entre o modo vertical e horizontal"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajuste a visualização das cores no telemóvel"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajuste a visualização das cores no tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altifalantes do telemóvel"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altifalantes do tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altifalantes do dispositivo"</string>
 </resources>
diff --git a/res-product/values-pt/strings.xml b/res-product/values-pt/strings.xml
index a80a951..ffabb2e 100644
--- a/res-product/values-pt/strings.xml
+++ b/res-product/values-pt/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"O smartphone foi redefinido para as configurações originais. Para usá-lo, digite a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"O tablet foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"O dispositivo foi redefinido para as configurações originais. Para usá-lo, insira a senha anterior."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateria carregando lentamente ou não carregando. Confira se o cabo e o adaptador de energia funcionam com o smartphone"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateria carregando lentamente ou não carregando. Confira se o cabo e o adaptador de energia funcionam com o dispositivo"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateria carregando lentamente ou não carregando. Confira se o cabo e o adaptador de energia funcionam com o tablet"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Sem desbloquear o smartphone"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Sem desbloquear o tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ao virar o smartphone para as posições vertical e horizontal"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Ao virar o tablet para as posições vertical e horizontal"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Ao virar o tablet para as posições vertical e horizontal"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajuste as cores mostradas no smartphone"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajuste as cores mostradas no tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Alto-falantes do smartphone"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Alto-falantes do tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Alto-falantes do dispositivo"</string>
 </resources>
diff --git a/res-product/values-ro/strings.xml b/res-product/values-ro/strings.xml
index b114c64..9cbc548 100644
--- a/res-product/values-ro/strings.xml
+++ b/res-product/values-ro/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"S-a revenit la setările din fabrică ale telefonului. Ca să-l folosești, introdu parola anterioară."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"S-a revenit la setările din fabrică ale tabletei. Ca să o folosești, introdu parola anterioară."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"S-a revenit la setările din fabrică ale dispozitivului. Ca să-l folosești, introdu parola anterioară."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateria se încarcă lent sau nu se încarcă. Verifică dacă adaptorul de curent și cablul sunt compatibile cu telefonul."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateria se încarcă lent sau nu se încarcă. Verifică dacă adaptorul de curent și cablul sunt compatibile cu dispozitivul."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateria se încarcă lent sau nu se încarcă. Verifică dacă adaptorul de curent și cablul sunt compatibile cu tableta."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Fără a debloca telefonul"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Fără a debloca tableta"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Când comuți telefonul între orientările portret și peisaj"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Când comuți tableta între orientările portret și peisaj"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Când comuți tableta între orientările portret și peisaj"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajustează modul în care se afișează culorile pe telefon"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajustează modul în care se afișează culorile pe tabletă"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Difuzoarele telefonului"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Difuzoarele tabletei"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Difuzoarele dispozitivului"</string>
 </resources>
diff --git a/res-product/values-ru/strings.xml b/res-product/values-ru/strings.xml
index 5500c75..ac503b9 100644
--- a/res-product/values-ru/strings.xml
+++ b/res-product/values-ru/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Настройки телефона были сброшены. Чтобы использовать его, введите свой прежний пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Настройки планшета были сброшены. Чтобы использовать его, введите свой прежний пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Настройки устройства были сброшены. Чтобы использовать его, введите свой прежний пароль."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батарея не заряжается или заряжается медленно. Убедитесь, что кабель и адаптер питания совместимы с вашим телефоном."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батарея не заряжается или заряжается медленно. Убедитесь, что кабель и адаптер питания совместимы с вашим устройством."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батарея не заряжается или заряжается медленно. Убедитесь, что кабель и адаптер питания совместимы с вашим планшетом."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без разблокировки телефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без разблокировки планшета"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Переключать ориентацию при изменении положения телефона"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Переключать ориентацию при изменении положения планшета"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Переключать ориентацию при изменении положения планшета"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Настроить цветопередачу на экране телефона"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Настроить цветопередачу на экране планшета"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Динамики телефона"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Динамики планшета"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Динамики устройства"</string>
 </resources>
diff --git a/res-product/values-si/strings.xml b/res-product/values-si/strings.xml
index 7b504c9..10ff8d0 100644
--- a/res-product/values-si/strings.xml
+++ b/res-product/values-si/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"ඔබේ දුරකථනය කම්හල් සැකසීම් වෙත යළි සකසා ඇත. මෙම දුරකථනය භාවිතා කිරීමට, ඔබේ පෙර මුරපදය ඇතුළු කරන්න."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"ඔබේ ටැබ්ලටය කම්හල් සැකසීම් වෙත යළි සකසන ලදි. මෙම ටැබ්ලටය භාවිතය සඳහා, ඔබේ පෙර මුරපදය ඇතුළු කරන්න."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"ඔබේ උපාංගය කම්හල් සැකසීම් වෙත යළි සකසන ලදි. මෙම උපාංගය භාවිතය සඳහා, ඔබේ පෙර මුරපදය ඇතුළු කරන්න."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"බැටරිය සෙමින් ආරෝපණය වේ හෝ ආරෝපණය නොවේ. කේබලය සහ බල ඇඩැප්ටරය ඔබේ දුරකථනය සමග ක්‍රියා කරන්නේ දැයි පරීක්ෂා කරන්න"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"බැටරිය සෙමින් ආරෝපණය වේ හෝ ආරෝපණය නොවේ. කේබලය සහ බල ඇඩැප්ටරය ඔබේ උපාංගය සමග ක්‍රියා කරන්නේ දැයි පරීක්ෂා කරන්න"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"බැටරිය සෙමින් ආරෝපණය වේ හෝ ආරෝපණය නොවේ. කේබලය සහ බල ඇඩැප්ටරය ඔබේ ටැබ්ලටය සමග ක්‍රියා කරන්නේ දැයි පරීක්ෂා කරන්න"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"ඔබේ දුරකථනය අගුළු හැරීමෙන් තොරව"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"ඔබේ ටැබ්ලටය අගුළු හැරීමෙන් තොරව"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ඔබ ඔබේ දුරකථනය සිරස් සහ තිරස් අතර ගෙන යන විට"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"ඔබ ඔබේ ටැබ්ලටය සිරස් සහ තිරස් අතර ගෙන යන විට"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"ඔබ ඔබේ ටැබ්ලටය සිරස් සහ තිරස් අතර ගෙන යන විට"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ඔබේ දුරකථනයෙහි වර්ණ සංදර්ශනය වන ආකාරය සීරුමාරු කරන්න"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ඔබේ ටැබ්ලටයෙහි වර්ණ සංදර්ශනය වන ආකාරය සීරුමාරු කරන්න"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"දුරකථන ස්පීකර්"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ටැබ්ලට් ස්පීකර්"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"උපාංග ස්පීකර්"</string>
 </resources>
diff --git a/res-product/values-sk/strings.xml b/res-product/values-sk/strings.xml
index 44836dc..8ffb92d 100644
--- a/res-product/values-sk/strings.xml
+++ b/res-product/values-sk/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"V telefóne boli obnovené výrobné nastavenia. Ak ho chcete použiť, zadajte predchádzajúce heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"V tablete boli obnovené výrobné nastavenia. Ak ho chcete používať, zadajte predchádzajúce heslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"V zariadení boli obnovené výrobné nastavenia. Ak ho chcete používať, zadajte predchádzajúce heslo."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batéria sa nabíja pomaly alebo sa nenabíja vôbec. Skontrolujte, či sú kábel a nabíjačka s telefónom kompatibilné."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batéria sa nabíja pomaly alebo sa nenabíja vôbec. Skontrolujte, či sú kábel a nabíjačka so zariadením kompatibilné."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batéria sa nabíja pomaly alebo sa nenabíja vôbec. Skontrolujte, či sú kábel a nabíjačka s tabletom kompatibilné."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bez odomykania telefónu"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bez odomykania tabletu"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Keď telefón otočíte z orientácie na výšku do polohy na šírku"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Keď tablet otočíte z orientácie na výšku do polohy na šírku"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Keď tablet otočíte z orientácie na výšku do polohy na šírku"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Upravte si zobrazovanie farieb v telefóne"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Upravte si zobrazovanie farieb v tablete"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Reproduktory telefónu"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Reproduktory tabletu"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Reproduktory zariadenia"</string>
 </resources>
diff --git a/res-product/values-sl/strings.xml b/res-product/values-sl/strings.xml
index 44bf365..c706abd 100644
--- a/res-product/values-sl/strings.xml
+++ b/res-product/values-sl/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefon je bil ponastavljen na tovarniške nastavitve. Če ga želite uporabljati, vnesite prejšnje geslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tablični računalnik je bil ponastavljen na tovarniške nastavitve. Če ga želite uporabljati, vnesite prejšnje geslo."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Naprava je bila ponastavljena na tovarniške nastavitve. Če jo želite uporabljati, vnesite prejšnje geslo."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Baterija se polni počasi ali se sploh ne polni. Preverite, ali sta kabel in napajalnik ustrezna za vaš telefon."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Baterija se polni počasi ali se sploh ne polni. Preverite, ali sta kabel in napajalnik ustrezna za vašo napravo."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Baterija se polni počasi ali se sploh ne polni. Preverite, ali sta kabel in napajalnik ustrezna za vaš tablični računalnik."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Brez odklepanja telefona"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Brez odklepanja tabličnega računalnika"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Ko telefon obrnete iz navpičnega v vodoravni položaj ali obratno."</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Ko tablični računalnik obrnete iz navpičnega v vodoravni položaj ali obratno."</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Ko tablični računalnik obrnete iz navpičnega v vodoravni položaj ali obratno."</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Prilagodite prikaz barv v telefonu."</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Prilagodite prikaz barv v tabličnem računalniku."</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Zvočniki telefona"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Zvočniki tabličnega računalnika"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Zvočniki naprave"</string>
 </resources>
diff --git a/res-product/values-sq/strings.xml b/res-product/values-sq/strings.xml
index 27e58d4..992a579 100644
--- a/res-product/values-sq/strings.xml
+++ b/res-product/values-sq/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefoni u rivendos në cilësimet e fabrikës. Për të përdorur telefonin, fut fjalëkalim të mëparshëm."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tableti u rivendos në cilësimet e fabrikës. Për të përdorur tabletin, fut fjalëkalimin e mëparshëm."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Pajisja u rivendos në cilësimet e fabrikës. Për të përdorur pajisjen, fut fjalëkalimin e mëparshëm."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Bateria po karikohet ngadalë ose nuk karikohet. Kontrollo nëse kablloja dhe përshtatësi elektrik funksionojnë me telefonin tënd"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Bateria po karikohet ngadalë ose nuk karikohet. Kontrollo nëse kablloja dhe përshtatësi elektrik funksionojnë me pajisjen tënde"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Bateria po karikohet ngadalë ose nuk karikohet. Kontrollo nëse kablloja dhe përshtatësi elektrik funksionojnë me tabletin tënd"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Pa e shkyçur telefonin"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Pa e shkyçur tabletin"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kur lëviz telefonin mes modalitetit \"portret\" e \"horizontal\""</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kur lëviz tabletin mes modalitetit \"portret\" e \"horizontal\""</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kur lëviz tabletin mes modalitetit \"portret\" e \"horizontal\""</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Rregullo mënyrën se si shfaqen ngjyrat në telefon"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Rregullo mënyrën se si shfaqen ngjyrat në tabletin tënd"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altoparlantët e telefonit"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Altoparlantët e tabletit"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altoparlantët e pajisjes"</string>
 </resources>
diff --git a/res-product/values-sr/strings.xml b/res-product/values-sr/strings.xml
index dc561b6..dd38414 100644
--- a/res-product/values-sr/strings.xml
+++ b/res-product/values-sr/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Телефон је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Таблет је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Уређај је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Батерија се споро пуни или неће да се пуни. Проверите да ли кабл и адаптер раде са телефоном"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Батерија се споро пуни или неће да се пуни. Проверите да ли кабл и адаптер раде са уређајем"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Батерија се споро пуни или неће да се пуни. Проверите да ли кабл и адаптер раде са таблетом"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Без откључавања телефона"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Без откључавања таблета"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Када окрећете телефон у усправни или водоравни режим"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Када окрећете таблет у усправни или водоравни режим"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Када окрећете таблет у усправни или водоравни режим"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Прилагодите начин на који се боје приказују на телефону"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Прилагодите начин на који се боје приказују на таблету"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Звучници телефона"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Звучници таблета"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Звучници уређаја"</string>
 </resources>
diff --git a/res-product/values-sv/strings.xml b/res-product/values-sv/strings.xml
index 3753b19..254c1fe 100644
--- a/res-product/values-sv/strings.xml
+++ b/res-product/values-sv/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonens standardinställningar har återställts. Ange det tidigare lösenordet för telefonen."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Surfplattans standardinställningar har återställts. Ange det tidigare lösenordet för surfplattan."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Enhetens standardinställningar har återställts. Ange det tidigare lösenordet för enheten."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batteriet laddas långsamt eller inte alls. Kontrollera om kabeln och nätadaptern fungerar med din telefon"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batteriet laddas långsamt eller inte alls. Kontrollera om kabeln och nätadaptern fungerar med din enhet"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batteriet laddas långsamt eller inte alls. Kontrollera om kabeln och nätadaptern fungerar med din surfplatta"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Utan att låsa upp telefonen"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Utan att låsa upp surfplattan"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"När du vänder telefonen mellan stående och liggande läge"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"När du vänder surfplattan mellan stående och liggande läge"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"När du vänder surfplattan mellan stående och liggande läge"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ändra hur färger visas på telefonen"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ändra hur färger visas på surfplattan"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefonens högtalare"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Surfplattans högtalare"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Enhetens högtalare"</string>
 </resources>
diff --git a/res-product/values-sw/strings.xml b/res-product/values-sw/strings.xml
index 572b719..c7b900e 100644
--- a/res-product/values-sw/strings.xml
+++ b/res-product/values-sw/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Mipangilio ya kiwandani ilirejeshwa kwenye simu yako. Ili utumie simu hii, weka nenosiri lako la awali."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Mipangilio ya kiwandani ilirejeshwa kwenye kompyuta kibao yako. Ili utumie kompyuta kibao hii, weka nenosiri lako la awali."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Mipangilio ya kiwandani ilirejeshwa kwenye kifaa chako. Ili utumie kifaa hiki, weka nenosiri lako la awali."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Betri inachaji polepole au haitachaji. Angalia ikiwa kebo na adapta ya nishati zinafanya kazi kwenye simu yako"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Betri inachaji polepole au haitachaji. Angalia ikiwa kebo na adapta ya nishati zinafanya kazi kwenye kifaa chako"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Betri inachaji polepole au haitachaji. Angalia ikiwa kebo na adapta ya nishati zinafanya kazi kwenye kompyuta kibao yako"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Bila kufungua simu yako"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Bila kufungua kompyuta kibao yako"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Unapobadilisha mkao wa simu yako kati ya wima na mlalo"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Unapobadilisha mkao wa kompyuta kibao yako kati ya wima na mlalo"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Unapobadilisha mkao wa kompyuta kibao yako kati ya wima na mlalo"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Rekebisha jinsi rangi zinaonekana kwenye simu yako"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Rekebisha jinsi rangi zinaonekana kwenye kishikwambi chako"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Spika za simu"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Spika za kishikwambi"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Spika za kifaa"</string>
 </resources>
diff --git a/res-product/values-ta/strings.xml b/res-product/values-ta/strings.xml
index 2ba064e..c0cb33e 100644
--- a/res-product/values-ta/strings.xml
+++ b/res-product/values-ta/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"உங்கள் மொபைல் ஆரம்பநிலைக்கு மீட்டமைக்கப்பட்டது. இதைப் பயன்படுத்த முந்தைய கடவுச்சொல்லை உள்ளிடுங்கள்."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"உங்கள் டேப்லெட் ஆரம்பநிலைக்கு மீட்டமைக்கப்பட்டது. இதை உபயோகிக்க முந்தைய கடவுச்சொல்லை உள்ளிடுங்கள்."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"உங்கள் சாதனம் ஆரம்பநிலைக்கு மீட்டமைக்கப்பட்டது. இதைப் பயன்படுத்த முந்தைய கடவுச்சொல்லை உள்ளிடுங்கள்."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"பேட்டரி மெதுவாகச் சார்ஜாகிறது அல்லது சார்ஜாகாது. கேபிளும் பவர் அடாப்டரும் உங்கள் மொபைலுக்குப் பொருந்துகின்றனவா என்று பாருங்கள்"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"பேட்டரி மெதுவாகச் சார்ஜாகிறது அல்லது சார்ஜாகாது. கேபிளும் பவர் அடாப்டரும் உங்கள் சாதனத்திற்குப் பொருந்துகின்றனவா என்று பாருங்கள்"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"பேட்டரி மெதுவாகச் சார்ஜாகிறது அல்லது சார்ஜாகாது. கேபிளும் பவர் அடாப்டரும் உங்கள் டேப்லெட்டிற்குப் பொருந்துகின்றனவா என்று பாருங்கள்"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"உங்கள் மொபைலைத் திறக்காமலேயே"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"உங்கள் டேப்லெட்டைத் திறக்காமலேயே"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"போர்ட்ரெய்ட் &amp; லேண்ட்ஸ்கேப் காட்சிக்கு மொபைலை மாற்றும்போது"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"போர்ட்ரெய்ட் &amp; லேண்ட்ஸ்கேப் காட்சிக்கு டேப்லெட்டை மாற்றும்போது"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"போர்ட்ரெய்ட் &amp; லேண்ட்ஸ்கேப் காட்சிக்கு டேப்லெட்டை மாற்றும்போது"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"மொபைலில் வண்ணங்கள் காட்டப்படும் விதத்தைச் சரிசெய்யலாம்"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"டேப்லெட்டில் வண்ணங்கள் காட்டப்படும் விதத்தைச் சரிசெய்யலாம்"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"மொபைல் ஸ்பீக்கர்கள்"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"டேப்லெட் ஸ்பீக்கர்கள்"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"சாதன ஸ்பீக்கர்கள்"</string>
 </resources>
diff --git a/res-product/values-te/strings.xml b/res-product/values-te/strings.xml
index f900578..8ff91d6 100644
--- a/res-product/values-te/strings.xml
+++ b/res-product/values-te/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"మీ ఫోన్ ఫ్యాక్టరీ సెట్టింగ్‌లకు రీసెట్ అయింది. ఈ ఫోన్‌ను వాడాలంటే, మీ పాత పాస్‌వర్డ్ ఎంటర్ చేయండి."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"మీ టాబ్లెట్ ఫ్యాక్టరీ సెట్టింగ్స్‌కు రీసెట్ అయింది. ఈ టాబ్లెట్ వాడాలంటే పాత పాస్‌వర్డ్ ఎంటర్ చేయండి."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"మీ పరికరం, ఫ్యాక్టరీ సెట్టింగ్‌లకు రీసెట్ అయింది. ఈ పరికరం వాడాలంటే, మీ పాత పాస్‌వర్డ్ ఎంటర్ చేయండి."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"బ్యాటరీ నెమ్మదిగా ఛార్జింగ్ అవుతోంది లేదా ఛార్జింగ్ అవ్వడం లేదు. మీ ఫోన్‌తో కేబుల్, పవర్ అడాప్టర్ పని చేస్తాయో లేదో చెక్ చేయండి"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"బ్యాటరీ నెమ్మదిగా ఛార్జింగ్ అవుతోంది లేదా ఛార్జింగ్ అవ్వడం లేదు. మీ పరికరంతో కేబుల్, పవర్ అడాప్టర్ పని చేస్తాయో లేదో చెక్ చేయండి"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"బ్యాటరీ నెమ్మదిగా ఛార్జింగ్ అవుతోంది లేదా ఛార్జింగ్ అవ్వడం లేదు. మీ టాబ్లెట్‌తో కేబుల్, పవర్ అడాప్టర్ పని చేస్తాయో లేదో చెక్ చేయండి"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"మీ ఫోన్‌ను అన్‌లాక్ చేయకుండా"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"మీ టాబ్లెట్‌ను అన్‌లాక్ చేయకుండా"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"ఫోన్‌ను పోర్ట్రెయిట్, ల్యాండ్‌స్కేప్‌‌ల మధ్య మార్చినప్పుడు"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"టాబ్లెట్‌ను పోర్ట్రెయిట్, ల్యాండ్‌స్కేప్‌‌ల మధ్య మార్చినప్పుడు"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"టాబ్లెట్‌ను పోర్ట్రెయిట్, ల్యాండ్‌స్కేప్‌‌ల మధ్య మార్చినప్పుడు"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"మీ ఫోన్‌లో రంగులు ఎలా ప్రదర్శించాలో సర్దుబాటు చేయండి"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"మీ టాబ్లెట్‌లో రంగులు కనిపించే విధానాన్ని సర్దుబాటు చేయండి"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ఫోన్ స్పీకర్‌లు"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"టాబ్లెట్ స్పీకర్‌లు"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"పరికర స్పీకర్‌లు"</string>
 </resources>
diff --git a/res-product/values-th/strings.xml b/res-product/values-th/strings.xml
index 76143dd..85d0d63 100644
--- a/res-product/values-th/strings.xml
+++ b/res-product/values-th/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"รีเซ็ตโทรศัพท์เป็นการตั้งค่าเริ่มต้นแล้ว หากต้องการใช้โทรศัพท์นี้ ให้ป้อนรหัสผ่านก่อนหน้าของคุณ"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"รีเซ็ตแท็บเล็ตเป็นการตั้งค่าเริ่มต้นแล้ว หากต้องการใช้แท็บเล็ตนี้ ให้ป้อนรหัสผ่านก่อนหน้าของคุณ"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"รีเซ็ตอุปกรณ์เป็นการตั้งค่าเริ่มต้นแล้ว หากต้องการใช้อุปกรณ์นี้ ให้ป้อนรหัสผ่านก่อนหน้าของคุณ"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"แบตเตอรี่จะชาร์จอย่างช้าๆ หรือไม่ชาร์จ ตรวจสอบว่าสายและอะแดปเตอร์ใช้กับโทรศัพท์ของคุณได้หรือไม่"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"แบตเตอรี่จะชาร์จอย่างช้าๆ หรือไม่ชาร์จ ตรวจสอบว่าสายและอะแดปเตอร์ใช้กับอุปกรณ์ของคุณได้หรือไม่"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"แบตเตอรี่จะชาร์จอย่างช้าๆ หรือไม่ชาร์จ ตรวจสอบว่าสายและอะแดปเตอร์ใช้กับแท็บเล็ตของคุณได้หรือไม่"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"โดยไม่ต้องปลดล็อกโทรศัพท์"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"โดยไม่ต้องปลดล็อกแท็บเล็ต"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"เมื่อคุณหมุนโทรศัพท์ไปมาระหว่างแนวตั้งกับแนวนอน"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"เมื่อคุณหมุนแท็บเล็ตไปมาระหว่างแนวตั้งกับแนวนอน"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"เมื่อคุณหมุนแท็บเล็ตไปมาระหว่างแนวตั้งกับแนวนอน"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"ปรับวิธีแสดงสีในโทรศัพท์"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"ปรับวิธีแสดงสีในแท็บเล็ต"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"ลำโพงโทรศัพท์"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ลำโพงแท็บเล็ต"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"ลำโพงอุปกรณ์"</string>
 </resources>
diff --git a/res-product/values-tl/strings.xml b/res-product/values-tl/strings.xml
index 6de3291..b2f9812 100644
--- a/res-product/values-tl/strings.xml
+++ b/res-product/values-tl/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Na-reset sa mga factory setting ang iyong telepono. Ilagay ang dati mong password para magamit ito."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Na-reset sa mga factory setting ang tablet mo. Ilagay ang dating password para magamit itong tablet."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Na-reset sa mga factory setting ang device mo. Ilagay ang dating password para magamit itong device."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Mabagal na nagcha-charge o hindi nagcha-charge ang baterya. Tingnan kung gumagana sa iyong telepono ang cable at power adapter"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Mabagal na nagcha-charge o hindi nagcha-charge ang baterya. Tingnan kung gumagana sa iyong device ang cable at power adapter"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Mabagal na nagcha-charge o hindi nagcha-charge ang baterya. Tingnan kung gumagana sa iyong tablet ang cable at power adapter"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Nang hindi ina-unlock ang iyong telepono"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Nang hindi ina-unlock ang iyong tablet"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Kapag pinalipat-lipat ang telepono sa portrait at landscape"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Kapag pinalipat-lipat mo ang tablet sa portrait at landscape"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Kapag pinalipat-lipat mo ang tablet sa portrait at landscape"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Isaayos kung paano ipinapakita ang mga kulay sa iyong telepono"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Isaayos kung paano ipinapakita ang mga kulay sa iyong tablet"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Mga speaker ng telepono"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Mga speaker ng tablet"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Mga speaker ng device"</string>
 </resources>
diff --git a/res-product/values-tr/strings.xml b/res-product/values-tr/strings.xml
index a9c7a59..b9083e7 100644
--- a/res-product/values-tr/strings.xml
+++ b/res-product/values-tr/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefonunuz fabrika ayarlarına sıfırlandı. Bu telefonu kullanmak için önceki şifrenizi girin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Tabletiniz fabrika ayarlarına sıfırlandı. Bu tableti kullanmak için önceki şifrenizi girin."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Cihazınız fabrika ayarlarına sıfırlandı. Bu cihazı kullanmak için önceki şifrenizi girin."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Pil yavaş şarj oluyor veya hiç şarj olmuyor. Kablo ve güç adaptörünün telefonunuzla çalışıp çalışmadığını kontrol edin"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Pil yavaş şarj oluyor veya hiç şarj olmuyor. Kablo ve güç adaptörünün cihazınızla çalışıp çalışmadığını kontrol edin"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Pil yavaş şarj oluyor veya hiç şarj olmuyor. Kablo ve güç adaptörünün tabletinizde çalışıp çalışmadığını kontrol edin"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefonunuzun kilidini açmak zorunda değilsiniz"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Tabletinizin kilidini açmak zorunda değilsiniz"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefonunuzu dikey/yatay mod arasında hareket ettirdiğinizde"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Tabletinizi dikey/yatay mod arasında hareket ettirdiğinizde"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Tabletinizi dikey/yatay mod arasında hareket ettirdiğinizde"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Renklerin telefonunuzda nasıl görüntüleneceğini düzenleyin"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Renklerin tabletinizde nasıl görüntüleneceğini düzenleyin"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefon hoparlörleri"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Tablet hoparlörleri"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Cihaz hoparlörleri"</string>
 </resources>
diff --git a/res-product/values-uk/strings.xml b/res-product/values-uk/strings.xml
index 0b118d9..bb40a2b 100644
--- a/res-product/values-uk/strings.xml
+++ b/res-product/values-uk/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Налаштування телефона скинуто. Щоб користуватися ним, введіть попередній пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Налаштування планшета скинуто. Щоб користуватися ним, введіть попередній пароль."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Налаштування пристрою скинуто. Щоб користуватися ним, введіть попередній пароль."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Акумулятор заряджається повільно або не заряджається взагалі. Перевірте, чи кабель і адаптер живлення сумісні з вашим телефоном."</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Акумулятор заряджається повільно або не заряджається взагалі. Перевірте, чи кабель і адаптер живлення сумісні з вашим пристроєм."</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Акумулятор заряджається повільно або не заряджається взагалі. Перевірте, чи кабель і адаптер живлення сумісні з вашим планшетом."</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Не розблоковуючи телефон"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Не розблоковуючи планшет"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Змінення орієнтації телефона з портретної на альбомну й навпаки"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Змінення орієнтації планшета з портретної на альбомну й навпаки"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Змінення орієнтації планшета з портретної на альбомну й навпаки"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Налаштуйте відтворення кольорів на екрані телефона"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Налаштуйте відтворення кольорів на екрані планшета"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Динаміки телефона"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Динаміки планшета"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Динаміки пристрою"</string>
 </resources>
diff --git a/res-product/values-ur/strings.xml b/res-product/values-ur/strings.xml
index 4272c9a..819e44e 100644
--- a/res-product/values-ur/strings.xml
+++ b/res-product/values-ur/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"آپ کا فون فیکٹری ترتیبات پر ری سیٹ کر دیا گیا تھا۔ یہ فون استعمال کرنے کیلئے، پچھلا پاس ورڈ ڈالیں۔"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"آپ کا ٹیبلیٹ فیکٹری ترتیبات پر ری سیٹ ہوا تھا۔ یہ ٹیبلیٹ استعمال کرنے کیلئے گزشتہ پاس ورڈ ڈالیں۔"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"آپ کا آلہ فیکٹری کی ترتیبات پر ری سیٹ ہوا تھا۔ یہ آلہ استعمال کرنے کیلئے گزشتہ پاس ورڈ درج کریں۔"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"بیٹری آہستہ چارج ہو رہی ہے یا چارج نہیں ہو رہی ہے۔ چیک کریں آیا کیبل اور پاور ایڈاپٹر آپ کے فون کے ساتھ کام کرتا ہے"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"بیٹری آہستہ چارج ہو رہی ہے یا چارج نہیں ہو رہی ہے۔ چیک کریں آیا کیبل اور پاور ایڈاپٹر آپ کے آلے کے ساتھ کام کرتا ہے"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"بیٹری آہستہ چارج ہو رہی ہے یا چارج نہیں ہو رہی ہے۔ چیک کریں آیا کیبل اور پاور ایڈاپٹر آپ کے ٹیبلیٹ کے ساتھ کام کرتا ہے"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"اپنے فون کو اَن لاک کئے بغیر"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"اپنے ٹیبلیٹ کو اَن لاک کئے بغیر"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"جب آپ اپنا فون پورٹریٹ اور لینڈ اسکیپ کے درمیان گھماتے ہیں"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"جب آپ اپنا ٹیبلیٹ پورٹریٹ اور لینڈ اسکیپ کے درمیان گھماتے ہیں"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"جب آپ اپنا ٹیبلیٹ پورٹریٹ اور لینڈ اسکیپ کے درمیان گھماتے ہیں"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"اپنے فون پر رنگوں کے ڈسپلے ہونے کا طریقہ ایڈجسٹ کریں"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"اپنے ٹیبلیٹ پر رنگوں کے ڈسپلے ہونے کے طریقے کو ایڈجسٹ کریں"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"فون کے اسپیکرز"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"ٹیبلیٹ کے اسپیکرز"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"آلے کے اسپیکرز"</string>
 </resources>
diff --git a/res-product/values-uz/strings.xml b/res-product/values-uz/strings.xml
index e588240..b3fa298 100644
--- a/res-product/values-uz/strings.xml
+++ b/res-product/values-uz/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Telefoningiz zavod sozlamalariga qaytarildi. Bu telefondan foydalanish uchun avvalgi parolni kiriting."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Planshet zavod sozlamalariga qaytarildi. Bu planshetdan foydalanish uchun avvalgi parolni kiriting."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Qurilma zavod sozlamalariga qaytarildi. Bu qurilmadan foydalanish uchun avvalgi parolni kiriting."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Batareya sekin quvvatlanmoqda yoki quvvatlanmayapti. Kabel va quvvat adapteri telefoningiz bilan mos ekanini tekshiring"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Batareya sekin quvvatlanmoqda yoki quvvatlanmayapti. Kabel va quvvat adapteri qurilma bilan mos ekanini tekshiring"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Batareya sekin quvvatlanmoqda yoki quvvatlanmayapti. Kabel va quvvat adapteri planshet bilan mos ekanini tekshiring"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Telefoningizni qulfdan chiqarmasdan"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Planshetingizni qulfdan chiqarmasdan"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Telefoningizni boʻyiga va eniga burganingizda"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Planshetingizni boʻyiga va eniga burganingizda"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Planshetingizni boʻyiga va eniga burganingizda"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Telefoningizda ranglar qanday chiqishini moslash"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Planshetda ranglar qanday chiqishini moslash"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Telefon karnaylari"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Planshet karnaylari"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Qurilma karnaylari"</string>
 </resources>
diff --git a/res-product/values-vi/strings.xml b/res-product/values-vi/strings.xml
index d64ea99..48d7e84 100644
--- a/res-product/values-vi/strings.xml
+++ b/res-product/values-vi/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Điện thoại đã được đặt lại về trạng thái cài đặt ban đầu. Để dùng điện thoại này, hãy nhập mật khẩu trước đây của bạn."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Máy tính bảng đã được đặt lại về trạng thái cài đặt ban đầu. Để dùng máy tính bảng này, hãy nhập mật khẩu trước đây của bạn."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Thiết bị đã được đặt lại về trạng thái cài đặt ban đầu. Để dùng thiết bị này, hãy nhập mật khẩu trước đây của bạn."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Pin sạc chậm hoặc không sạc được. Hãy kiểm tra xem bạn đã dùng cáp sạc và bộ sạc phù hợp cho điện thoại hay chưa"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Pin sạc chậm hoặc không sạc được. Hãy kiểm tra xem bạn đã dùng cáp sạc và bộ sạc phù hợp cho thiết bị hay chưa"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Pin sạc chậm hoặc không sạc được. Hãy kiểm tra xem bạn đã dùng cáp sạc và bộ sạc phù hợp cho máy tính bảng hay chưa"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Không cần mở khoá điện thoại của bạn"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Không cần mở khoá máy tính bảng của bạn"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Khi bạn chuyển điện thoại giữa chế độ dọc và chế độ ngang"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Khi bạn chuyển máy tính bảng giữa chế độ dọc và chế độ ngang"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Khi bạn chuyển máy tính bảng giữa chế độ dọc và chế độ ngang"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Điều chỉnh cách hiển thị màu sắc trên điện thoại"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Điều chỉnh cách hiển thị màu sắc trên máy tính bảng"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Loa điện thoại"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Loa máy tính bảng"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Loa thiết bị"</string>
 </resources>
diff --git a/res-product/values-zh-rCN/strings.xml b/res-product/values-zh-rCN/strings.xml
index d36c554..a59174a 100644
--- a/res-product/values-zh-rCN/strings.xml
+++ b/res-product/values-zh-rCN/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"您的手机已恢复出厂设置。如要使用此手机,请输入之前使用的密码。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"您的平板电脑已恢复出厂设置。如要使用此平板电脑,请输入之前使用的密码。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"您的设备已恢复出厂设置。如要使用此设备,请输入之前使用的密码。"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"电池充电缓慢或无法充电。请检查数据线和电源适配器与您的手机是否适配"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"电池充电缓慢或无法充电。请检查数据线和电源适配器与您的设备是否适配"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"电池充电缓慢或无法充电。请检查数据线和电源适配器与您的平板电脑是否适配"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"不解锁手机"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"不解锁平板电脑"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"当您在纵向与横向之间变换手机持握方向时"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"当您在纵向与横向之间变换平板电脑持握方向时"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"当您在纵向与横向之间变换平板电脑持握方向时"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"调整手机上的颜色显示方式"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"调整平板电脑上的颜色显示方式"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"手机扬声器"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"平板电脑扬声器"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"设备扬声器"</string>
 </resources>
diff --git a/res-product/values-zh-rHK/strings.xml b/res-product/values-zh-rHK/strings.xml
index 0c9806e..27321d9 100644
--- a/res-product/values-zh-rHK/strings.xml
+++ b/res-product/values-zh-rHK/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"你的手機已回復原廠設定。如要使用此手機,請輸入先前的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"你的平板電腦已回復原廠設定。如要使用此平板電腦,請輸入先前的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"你的裝置已回復原廠設定。如要使用此裝置,請輸入先前的密碼。"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"充電緩慢或無法充電。請檢查連接線和電源適配器是否適用於你的手機"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"充電緩慢或無法充電。請檢查連接線和電源適配器是否適用於你的裝置"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"充電緩慢或無法充電。請檢查連接線和電源適配器是否適用於你的平板電腦"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"無需解鎖手機"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"無需解鎖平板電腦"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"喺手機轉成直向或者橫向嘅時候自動旋轉畫面"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"喺平板電腦轉成直向或者橫向嘅時候自動旋轉畫面"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"喺平板電腦轉成直向或者橫向嘅時候自動旋轉畫面"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"調整手機上的顏色顯示效果"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"調整平板電腦上的顏色顯示效果"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"手機喇叭"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"平板電腦喇叭"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"裝置喇叭"</string>
 </resources>
diff --git a/res-product/values-zh-rTW/strings.xml b/res-product/values-zh-rTW/strings.xml
index ee8e176..81f09fa 100644
--- a/res-product/values-zh-rTW/strings.xml
+++ b/res-product/values-zh-rTW/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"你的手機已恢復原廠設定。如要使用這支手機,請輸入先前使用的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"平板電腦已恢復原廠設定。如要使用這台平板電腦,請輸入先前使用的密碼。"</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"裝置已恢復原廠設定。如要使用這部裝置,請輸入先前使用的密碼。"</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"充電速度太慢或未充電,請檢查充電線和電源變壓器是否支援你的手機"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"充電速度太慢或未充電,請檢查充電線和電源變壓器是否支援你的裝置"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"充電速度太慢或未充電,請檢查充電線和電源變壓器是否支援你的平板電腦"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"不必解鎖手機"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"不必解鎖平板電腦"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"在手機轉成直向或橫向時自動旋轉畫面"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"在平板電腦轉成直向或橫向時自動旋轉畫面"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"在平板電腦轉成直向或橫向時自動旋轉畫面"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"調整手機的顏色顯示方式"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"調整平板電腦的顏色顯示方式"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"手機喇叭"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"平板電腦喇叭"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"裝置喇叭"</string>
 </resources>
diff --git a/res-product/values-zu/strings.xml b/res-product/values-zu/strings.xml
index 8919f2d..f6ab35a 100644
--- a/res-product/values-zu/strings.xml
+++ b/res-product/values-zu/strings.xml
@@ -347,11 +347,19 @@
     <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Ifoni yakho isethwe kabusha kumasethingi asekuqaleni. Ukusebenzisa le foni, sicela ufake iphasiwedi yakho yangaphambilini."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Ithebulethi yakho isethwe kabusha kumasethingi asekuqaleni. Ukuze usebenzise le thebulethi, faka iphasiwedi yakho yangaphambilini."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Idivayisi yakho isethwe kabusha kumasethingi asekuqaleni. Ukuze usebenzise le divayisi, faka iphasiwedi yakho yangaphambilini."</string>
-    <string name="battery_tip_incompatible_charging_message" product="default" msgid="5315451445653379744">"Ibhethri lishaja kancane noma ngeke lishaje. Hlola ukuthi ikhebuli ne-adaptha yamandla ziyasebenza yini ngefoni yakho"</string>
-    <string name="battery_tip_incompatible_charging_message" product="device" msgid="7265524281090787927">"Ibhethri lishaja kancane noma ngeke lishaje. Hlola ukuthi ikhebuli ne-adaptha yamandla ziyasebenza yini ngefoni yakho"</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet" msgid="174383022413708569">"Ibhethri lishaja kancane noma ngeke lishaje. Hlola ukuthi ikhebuli ne-adaptha yamandla ziyasebenza yini ngefoni yakho"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_message (5097154279720383707) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (4208335872169818919) -->
+    <skip />
+    <!-- no translation found for battery_tip_incompatible_charging_message (5697523201841444736) -->
+    <skip />
     <string name="lockscreen_trivial_controls_summary" product="default" msgid="42562533085885152">"Ngaphandle kokuvula ifoni yakho"</string>
     <string name="lockscreen_trivial_controls_summary" product="tablet" msgid="9052068482124729345">"Ngaphandle kokuvula ithebulethi yakho"</string>
     <string name="auto_rotate_summary_a11y" product="default" msgid="2813368383309985185">"Uma uhambisa ifoni yakho phakathi kokuma ngobude nokuvundla"</string>
-    <string name="auto_rotate_summary_a11y" product="tabled" msgid="4708833814245913981">"Uma uhambisa ithebulethi yakho phakathi kokuma ngobude nokuvundla"</string>
+    <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Uma uhambisa ithebulethi yakho phakathi kokuma ngobude nokuvundla"</string>
+    <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Lungisa indlela imibala ebonisa ngayo efonini yakho"</string>
+    <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Lungisa indlela imibala ebonisa ngayo kuthebulethi yakho"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"izipikha zefoni"</string>
+    <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Izipikha zethebhulethi"</string>
+    <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Izipikha zedivayisi"</string>
 </resources>
diff --git a/res-product/values/strings.xml b/res-product/values/strings.xml
index dd2af3f..c9dc248 100644
--- a/res-product/values/strings.xml
+++ b/res-product/values/strings.xml
@@ -719,9 +719,9 @@
     <!-- An explanation text that the password needs to be solved because the device was factory reset. [CHAR LIMIT=100] -->
     <string name="lockpassword_confirm_your_password_details_frp" product="device">Your device was reset to factory settings. To use this device, enter your previous password.</string>
     <!-- Message of incompatible charging battery tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_incompatible_charging_message" product="default">Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your phone</string>
-    <string name="battery_tip_incompatible_charging_message" product="device">Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your device</string>
-    <string name="battery_tip_incompatible_charging_message" product="tablet">Battery charging slowly or won\'t charge. Check if the cable and power adapter work with your tablet</string>
+    <string name="battery_tip_incompatible_charging_message" product="default">Your phone may be charging slowly or not charging. For faster charging, use a recommended cable and adapter.</string>
+    <string name="battery_tip_incompatible_charging_message" product="device">Your device may be charging slowly or not charging. For faster charging, use a recommended cable and adapter.</string>
+    <string name="battery_tip_incompatible_charging_message" product="tablet">Your tablet may be charging slowly or not charging. For faster charging, use a recommended cable and adapter.</string>
 
     <!-- Description for using device controls feature with a locked phone [CHAR LIMIT=NONE] -->
     <string name="lockscreen_trivial_controls_summary" product="default">Without unlocking your phone</string>
@@ -731,6 +731,18 @@
     <!-- Accessibility summary text for auto rotate [CHAR LIMIT=NONE] -->
     <string name="auto_rotate_summary_a11y" product="default">When you move your phone between portrait and landscape</string>
     <!-- Accessibility summary text for auto rotate [CHAR LIMIT=NONE] -->
-    <string name="auto_rotate_summary_a11y" product="tabled">When you move your tablet between portrait and landscape</string>
+    <string name="auto_rotate_summary_a11y" product="tablet">When you move your tablet between portrait and landscape</string>
 
+
+    <!-- The daltonizer feature summary display as a subtext as an item in a list. -->
+    <string name="daltonizer_feature_summary" product="default">Adjust how colors display on your phone</string>
+    <!-- The daltonizer feature summary display as a subtext as an item in a list. -->
+    <string name="daltonizer_feature_summary" product="tablet">Adjust how colors display on your tablet</string>
+
+    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
+    <string name="spatial_audio_speaker" product="default">Phone speakers</string>
+    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
+    <string name="spatial_audio_speaker" product="tablet">Tablet speakers</string>
+    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
+    <string name="spatial_audio_speaker" product="device">Device speakers</string>
 </resources>
diff --git a/res/color/color_battery_anomaly_app_warning_selector.xml b/res/color/color_battery_anomaly_app_warning_selector.xml
new file mode 100644
index 0000000..4ad78e6
--- /dev/null
+++ b/res/color/color_battery_anomaly_app_warning_selector.xml
@@ -0,0 +1,18 @@
+<?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.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:color="@color/power_anomaly_app_warning_hint_color"/>
+</selector>
diff --git a/res/color/color_battery_anomaly_yellow_selector.xml b/res/color/color_battery_anomaly_yellow_selector.xml
deleted file mode 100644
index 0dd79c2..0000000
--- a/res/color/color_battery_anomaly_yellow_selector.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2023 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@color/palette_list_color_yellow"/>
-</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-nodpi/gesture_ambient_wake_screen.png b/res/drawable-nodpi/gesture_ambient_wake_screen.png
deleted file mode 100644
index 1914264..0000000
--- a/res/drawable-nodpi/gesture_ambient_wake_screen.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable-nodpi/gesture_assist.png b/res/drawable-nodpi/gesture_assist.png
deleted file mode 100644
index 1914264..0000000
--- a/res/drawable-nodpi/gesture_assist.png
+++ /dev/null
Binary files differ
diff --git a/res/drawable/accessibility_text_reading_preview.xml b/res/drawable/accessibility_text_reading_preview.xml
index 040ccdf..1c9e752 100644
--- a/res/drawable/accessibility_text_reading_preview.xml
+++ b/res/drawable/accessibility_text_reading_preview.xml
@@ -20,5 +20,5 @@
     android:shape="rectangle">
 
     <corners android:radius="28dp" />
-    <solid android:color="?androidprv:attr/materialColorSurfaceContainer" />
+    <solid android:color="@color/accessibility_text_reading_background" />
 </shape>
diff --git a/res/drawable/audio_sharing_guidance.png b/res/drawable/audio_sharing_guidance.png
new file mode 100644
index 0000000..c0ab637
--- /dev/null
+++ b/res/drawable/audio_sharing_guidance.png
Binary files differ
diff --git a/res/drawable/audio_sharing_rounded_bg.xml b/res/drawable/audio_sharing_rounded_bg.xml
new file mode 100644
index 0000000..db1e1bb
--- /dev/null
+++ b/res/drawable/audio_sharing_rounded_bg.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2023 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="?android:colorButtonNormal" />
+    <corners android:radius="12dp" />
+</shape>
\ No newline at end of file
diff --git a/res/drawable/audio_sharing_rounded_bg_ripple.xml b/res/drawable/audio_sharing_rounded_bg_ripple.xml
new file mode 100644
index 0000000..18696c6
--- /dev/null
+++ b/res/drawable/audio_sharing_rounded_bg_ripple.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.
+  -->
+
+<ripple xmlns:android="http://schemas.android.com/apk/res/android"
+    android:color="?android:attr/colorControlHighlight">
+    <item android:drawable="@drawable/audio_sharing_rounded_bg"/>
+</ripple>
\ No newline at end of file
diff --git a/res/drawable/battery_hints_chip_bg.xml b/res/drawable/battery_hints_chip_bg.xml
index e7d1d0f..c2b662c 100644
--- a/res/drawable/battery_hints_chip_bg.xml
+++ b/res/drawable/battery_hints_chip_bg.xml
@@ -16,7 +16,8 @@
   -->
 
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     android:shape="rectangle">
-    <solid android:color="@color/settingslib_dialog_background" />
+    <solid android:color="?androidprv:attr/materialColorPrimaryContainer" />
     <corners android:radius="@dimen/battery_hints_chip_corner_radius" />
 </shape>
\ No newline at end of file
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_audio_play_sample.xml b/res/drawable/ic_audio_play_sample.xml
new file mode 100644
index 0000000..3666c22
--- /dev/null
+++ b/res/drawable/ic_audio_play_sample.xml
@@ -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.
+  -->
+
+<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="M14,8C9.6,8 6,11.6 6,16H8C8,12.7 10.7,10 14,10V8Z"
+      android:fillColor="#4E4639"/>
+  <path
+      android:pathData="M14,6V4C7.4,4 2,9.4 2,16H4C4,10.5 8.5,6 14,6Z"
+      android:fillColor="#4E4639"/>
+  <path
+      android:pathData="M16,4V12.6C15.4,12.3 14.7,12 14,12C11.8,12 10,13.8 10,16C10,18.2 11.8,20 14,20C16.2,20 18,18.2 18,16V7H22V4H16ZM14,18C12.9,18 12,17.1 12,16C12,14.9 12.9,14 14,14C15.1,14 16,14.9 16,16C16,17.1 15.1,18 14,18Z"
+      android:fillColor="#4E4639"/>
+</vector>
diff --git a/res/drawable/ic_battery_incompatible_charger.xml b/res/drawable/ic_battery_incompatible_charger.xml
new file mode 100644
index 0000000..dd84c07
--- /dev/null
+++ b/res/drawable/ic_battery_incompatible_charger.xml
@@ -0,0 +1,25 @@
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="33dp"
+    android:height="33dp"
+    android:viewportWidth="33"
+    android:viewportHeight="33">
+  <path
+      android:pathData="M29.136,29.137L3.864,3.864L1.911,5.803L8.278,12.169C8.278,12.224 8.25,19.938 8.25,19.938L13.063,24.75V28.875H19.938V24.75L20.405,24.283L27.198,31.076L29.136,29.137ZM17.188,23.609V26.125H15.813V23.609L11,18.769V14.878L18.452,22.33L17.188,23.609ZM11,7.109L16.266,12.375H22V18.109L24.282,20.392L24.75,19.924V12.375C24.75,10.863 23.513,9.626 22,9.626V4.126H19.25V9.626H13.75V4.126H11V7.109Z"
+      android:fillColor="?android:attr/colorAccent"/>
+</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_block_24px.xml b/res/drawable/ic_block_24px.xml
new file mode 100644
index 0000000..1c80dc1
--- /dev/null
+++ b/res/drawable/ic_block_24px.xml
@@ -0,0 +1,25 @@
+<!--
+     Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?android:attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M480,880Q397,880 324,848.5Q251,817 197,763Q143,709 111.5,636Q80,563 80,480Q80,397 111.5,324Q143,251 197,197Q251,143 324,111.5Q397,80 480,80Q563,80 636,111.5Q709,143 763,197Q817,251 848.5,324Q880,397 880,480Q880,563 848.5,636Q817,709 763,763Q709,817 636,848.5Q563,880 480,880ZM480,800Q534,800 584,782.5Q634,765 676,732L228,284Q195,326 177.5,376Q160,426 160,480Q160,614 253,707Q346,800 480,800ZM732,676Q765,634 782.5,584Q800,534 800,480Q800,346 707,253Q614,160 480,160Q426,160 376,177.5Q326,195 284,228L732,676Z"/>
+</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_check_circle_24px.xml b/res/drawable/ic_check_circle_24px.xml
new file mode 100644
index 0000000..c0fdefb
--- /dev/null
+++ b/res/drawable/ic_check_circle_24px.xml
@@ -0,0 +1,25 @@
+<!--
+     Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M424,664L706,382L650,326L424,552L310,438L254,494L424,664ZM480,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_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_keyboard_arrow_down.xml b/res/drawable/ic_keyboard_arrow_down.xml
index d72f3df..2ec6575 100644
--- a/res/drawable/ic_keyboard_arrow_down.xml
+++ b/res/drawable/ic_keyboard_arrow_down.xml
@@ -20,6 +20,6 @@
         android:viewportWidth="48"
         android:width="32dp">
     <path
-        android:fillColor="#757575"
+        android:fillColor="?android:attr/colorAccent"
         android:pathData="M14.83,16.42L24,25.59l9.17,-9.17L36,19.25l-12,12 -12,-12z"/>
 </vector>
diff --git a/res/drawable/ic_lock_open_24dp.xml b/res/drawable/ic_lock_open_24dp.xml
new file mode 100644
index 0000000..ba80956
--- /dev/null
+++ b/res/drawable/ic_lock_open_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:color/white"
+        android:pathData="M240,320h360v-80q0,-50 -35,-85t-85,-35q-50,0 -85,35t-35,85h-80q0,-83 58.5,-141.5T480,40q83,0 141.5,58.5T680,240v80h40q33,0 56.5,23.5T800,400v400q0,33 -23.5,56.5T720,880L240,880q-33,0 -56.5,-23.5T160,800v-400q0,-33 23.5,-56.5T240,320ZM240,800h480v-400L240,400v400ZM480,680q33,0 56.5,-23.5T560,600q0,-33 -23.5,-56.5T480,520q-33,0 -56.5,23.5T400,600q0,33 23.5,56.5T480,680ZM240,800v-400,400Z"/>
+</vector>
\ No newline at end of file
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_satellite_alt_24px.xml b/res/drawable/ic_satellite_alt_24px.xml
new file mode 100644
index 0000000..f9ca7dc
--- /dev/null
+++ b/res/drawable/ic_satellite_alt_24px.xml
@@ -0,0 +1,25 @@
+<!--
+     Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?android:attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M560,928L560,848Q677,848 758.5,766.5Q840,685 840,568L920,568Q920,643 891.5,708.5Q863,774 814.5,822.5Q766,871 700.5,899.5Q635,928 560,928ZM560,768L560,688Q610,688 645,653Q680,618 680,568L760,568Q760,651 701.5,709.5Q643,768 560,768ZM222,903Q207,903 192,897Q177,891 165,880L23,738Q12,726 6,711Q0,696 0,681Q0,665 6,650.5Q12,636 23,625L150,498Q173,475 207,474.5Q241,474 264,497L314,547L342,519L292,469Q269,446 269,413Q269,380 292,357L349,300Q372,277 405.5,277Q439,277 462,300L512,350L540,322L490,272Q467,249 467,215.5Q467,182 490,159L617,32Q629,20 644,14Q659,8 674,8Q689,8 703.5,14Q718,20 730,32L872,174Q884,185 889.5,199.5Q895,214 895,230Q895,245 889.5,260Q884,275 872,287L745,414Q722,437 688.5,437Q655,437 632,414L582,364L554,392L604,442Q627,465 626.5,498.5Q626,532 603,555L547,611Q524,634 490.5,634Q457,634 434,611L384,561L356,589L406,639Q429,662 428.5,696Q428,730 405,753L278,880Q267,891 252.5,897Q238,903 222,903ZM222,824Q222,824 222,824Q222,824 222,824L264,782L122,640L80,682Q80,682 80,682Q80,682 80,682L222,824ZM307,739L349,697Q349,697 349,697Q349,697 349,697L207,555Q207,555 207,555Q207,555 207,555L165,597L307,739ZM491,555Q491,555 491,555Q491,555 491,555L547,499Q547,499 547,499Q547,499 547,499L405,357Q405,357 405,357Q405,357 405,357L349,413Q349,413 349,413Q349,413 349,413L491,555ZM689,357Q689,357 689,357Q689,357 689,357L731,315L589,173L547,215Q547,215 547,215Q547,215 547,215L689,357ZM774,272L816,230Q816,230 816,230Q816,230 816,230L674,88Q674,88 674,88Q674,88 674,88L632,130L774,272ZM448,456L448,456Q448,456 448,456Q448,456 448,456L448,456Q448,456 448,456Q448,456 448,456L448,456Q448,456 448,456Q448,456 448,456L448,456Q448,456 448,456Q448,456 448,456Z"/>
+</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_signal_cellular_nodata_24px.xml b/res/drawable/ic_signal_cellular_nodata_24px.xml
new file mode 100644
index 0000000..9b9f391
--- /dev/null
+++ b/res/drawable/ic_signal_cellular_nodata_24px.xml
@@ -0,0 +1,25 @@
+<!--
+     Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="960"
+    android:viewportHeight="960"
+    android:tint="?android:attr/colorControlNormal">
+  <path
+      android:fillColor="@android:color/white"
+      android:pathData="M676,860L620,804L704,720L620,636L676,580L760,664L844,580L900,636L817,720L900,804L844,860L760,777L676,860ZM80,880L880,81L880,508Q862,497 842,490.5Q822,484 800,480L800,274L273,800L530,800Q538,823 550,843Q562,863 577,880L80,880ZM273,800L800,274L800,274Q800,274 800,274Q800,274 800,274Q724,350 662,411.5Q600,473 540.5,532.5Q481,592 417,656Q353,720 273,800Q273,800 273,800Q273,800 273,800L273,800Z"/>
+</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/ic_watch_24dp.xml b/res/drawable/ic_watch_24dp.xml
new file mode 100644
index 0000000..c5a391c
--- /dev/null
+++ b/res/drawable/ic_watch_24dp.xml
@@ -0,0 +1,25 @@
+<!--
+    Copyright (C) 2023 The Android Open Source Project
+
+    Licensed under the Apache License, Version 2.0 (the "License")
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT 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="m360,880 l-54,-182q-48,-38 -77,-95t-29,-123q0,-66 29,-123t77,-95l54,-182h240l54,182q48,38 77,95t29,123q0,66 -29,123t-77,95L600,880L360,880ZM480,680q83,0 141.5,-58.5T680,480q0,-83 -58.5,-141.5T480,280q-83,0 -141.5,58.5T280,480q0,83 58.5,141.5T480,680Z"/>
+</vector>
diff --git a/res/drawable/ic_wifi_off.xml b/res/drawable/ic_wifi_off.xml
deleted file mode 100644
index 1480a59..0000000
--- a/res/drawable/ic_wifi_off.xml
+++ /dev/null
@@ -1,25 +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:fillColor="@android:color/white"
-        android:pathData="M23,9c-4.11,-4.11 -9.93,-5.43 -15.15,-3.98l9.57,9.57L23,9zM5.76,5.76L2.81,2.81 1.39,4.22l2.52,2.52C2.88,7.37 1.89,8.11 1,9l11,11 2.59,-2.59 5.19,5.19 1.41,-1.41L16,16 5.76,5.76z"/>
-</vector>
\ No newline at end of file
diff --git a/res/drawable/keyboard_review_layout_background.xml b/res/drawable/keyboard_review_layout_background.xml
new file mode 100644
index 0000000..7f93f80
--- /dev/null
+++ b/res/drawable/keyboard_review_layout_background.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2023 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <solid android:color="@color/settingslib_colorSurface"/>
+    <corners android:radius="@dimen/keyboard_picker_radius"/>
+</shape>
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/drawable/satellite_more_information_background_outline.xml b/res/drawable/satellite_more_information_background_outline.xml
new file mode 100644
index 0000000..b11ef07
--- /dev/null
+++ b/res/drawable/satellite_more_information_background_outline.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+     Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+  -->
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <corners android:radius="24dp"/>
+    <solid android:color="@android:color/transparent"/>
+    <stroke
+        android:width="1dp"
+        android:color="?android:attr/textColorPrimary"/>
+</shape>
diff --git a/res/drawable/tile_icon_winscope_trace.xml b/res/drawable/tile_icon_winscope_trace.xml
deleted file mode 100644
index 2563049..0000000
--- a/res/drawable/tile_icon_winscope_trace.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-    Copyright (C) 2018 The Android Open Source Project
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
-        android:tint="?android:attr/colorControlNormal">
-    <path
-        android:pathData="M17.115,1.535L9.984,1.535C9.38,1.535 8.887,2.029 8.887,2.632L8.887,5.923L7.241,5.923C6.638,5.923 6.144,6.417 6.144,7.021l0,5.486c0,0.603 0.494,1.097 1.097,1.097l7.131,0c0.603,0 1.097,-0.494 1.097,-1.097l0,-3.291l1.646,0c0.603,0 1.097,-0.494 1.097,-1.097L18.212,2.632C18.212,2.029 17.718,1.535 17.115,1.535ZM14.372,12.506L7.241,12.506l0,-4.388l7.131,0zM17.115,8.118L15.469,8.118L15.469,7.021C15.469,6.417 14.976,5.923 14.372,5.923L9.984,5.923L9.984,3.729l7.131,0z"
-        android:fillColor="#FFFFFFFF"/>
-    <path
-        android:pathData="m20.27,15.235c0,0.82 -0.671,1.491 -1.491,1.491 -0.134,0 -0.261,-0.015 -0.38,-0.052l-2.654,2.646C15.782,19.439 15.797,19.573 15.797,19.708c0,0.82 -0.671,1.491 -1.491,1.491 -0.82,0 -1.491,-0.671 -1.491,-1.491 0,-0.134 0.015,-0.268 0.052,-0.388L10.966,17.419C10.847,17.456 10.713,17.471 10.579,17.471 10.444,17.471 10.31,17.456 10.191,17.419L6.799,20.818C6.836,20.938 6.851,21.064 6.851,21.199 6.851,22.019 6.18,22.689 5.36,22.689 4.54,22.689 3.869,22.019 3.869,21.199c0,-0.82 0.671,-1.491 1.491,-1.491 0.134,0 0.261,0.015 0.38,0.052L9.14,16.368C9.103,16.249 9.088,16.114 9.088,15.98 9.088,15.16 9.759,14.489 10.579,14.489c0.82,0 1.491,0.671 1.491,1.491 0,0.134 -0.015,0.268 -0.052,0.388l1.901,1.901C14.038,18.232 14.172,18.217 14.306,18.217c0.134,0 0.268,0.015 0.388,0.052L17.34,15.615C17.303,15.496 17.288,15.369 17.288,15.235c0,-0.82 0.671,-1.491 1.491,-1.491 0.82,0 1.491,0.671 1.491,1.491z"
-        android:fillColor="#FFFFFFFF"/>
-</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_launch_activity_preference.xml b/res/layout/accessibility_launch_activity_preference.xml
index 6791206..f3841e2 100644
--- a/res/layout/accessibility_launch_activity_preference.xml
+++ b/res/layout/accessibility_launch_activity_preference.xml
@@ -21,8 +21,7 @@
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingVertical="@dimen/settingslib_switchbar_margin"
-    android:background="@android:color/transparent"
-    android:importantForAccessibility="no">
+    android:background="@android:color/transparent">
 
     <FrameLayout
         android:layout_height="wrap_content"
diff --git a/res/layout/accessibility_shortcut_option_checkable.xml b/res/layout/accessibility_shortcut_option_checkable.xml
new file mode 100644
index 0000000..1551352
--- /dev/null
+++ b/res/layout/accessibility_shortcut_option_checkable.xml
@@ -0,0 +1,85 @@
+<?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.constraintlayout.widget.ConstraintLayout
+    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:id="@+id/a11y_shortcut_option_container"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:paddingBottom="?android:attr/listPreferredItemPaddingEnd">
+
+    <CheckBox
+        android:id="@android:id/checkbox"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@null"
+        android:clickable="false"
+        android:focusable="false"
+        android:gravity="center_vertical"
+        android:orientation="vertical"
+        app:layout_constrainedHeight="true"
+        app:layout_constrainedWidth="true"
+        app:layout_constraintBottom_toBottomOf="@android:id/title"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@android:id/title"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="?android:attr/listPreferredItemPaddingStart"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toEndOf="@android:id/checkbox"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:text="Shortcut option title" />
+
+    <TextView
+        android:id="@android:id/summary"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="?android:attr/textColorSecondary"
+        app:layout_constrainedHeight="true"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="@android:id/title"
+        app:layout_constraintTop_toBottomOf="@android:id/title"
+        tools:text="Shortcut option summary" />
+
+    <com.airbnb.lottie.LottieAnimationView
+        android:id="@+id/image"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/settingslib_illustration_padding"
+        android:layout_marginBottom="@dimen/settingslib_illustration_padding"
+        android:adjustViewBounds="true"
+        android:background="@drawable/protection_background"
+        android:maxHeight="@dimen/accessibility_imageview_size"
+        app:layout_constrainedHeight="true"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0"
+        app:layout_constraintStart_toStartOf="@android:id/title"
+        app:layout_constraintTop_toBottomOf="@android:id/summary"
+        app:layout_constraintWidth_max="@dimen/settingslib_illustration_width" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
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..830d9e6 100644
--- a/res/layout/accessibility_text_reading_preview.xml
+++ b/res/layout/accessibility_text_reading_preview.xml
@@ -23,6 +23,7 @@
     android:paddingStart="?android:attr/listPreferredItemPaddingStart">
 
     <LinearLayout
+        android:id="@+id/preview_background"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@drawable/accessibility_text_reading_preview"
@@ -41,7 +42,8 @@
             android:id="@+id/preview_pager"
             android:layout_width="match_parent"
             android:layout_height="217dp"
-            android:contentDescription="@string/preview_pager_content_description" />
+            android:contentDescription="@string/preview_pager_content_description"
+            android:nestedScrollingEnabled="true" />
 
         <com.android.settings.widget.DotsPageIndicator
             android:id="@+id/page_indicator"
diff --git a/res/layout/anomaly_app_item_preference.xml b/res/layout/anomaly_app_item_preference.xml
index 0a19849..681fe68 100644
--- a/res/layout/anomaly_app_item_preference.xml
+++ b/res/layout/anomaly_app_item_preference.xml
@@ -35,33 +35,10 @@
 
         <Space
             android:layout_width="@dimen/secondary_app_icon_size"
-            android:layout_height="wrap_content" />
-
-        <LinearLayout
-            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:orientation="horizontal"
-            android:padding="8dp"
-            android:layout_marginStart="16dp"
-            android:background="@drawable/battery_hints_chip_bg_ripple">
+            android:layout_marginEnd="16dp"/>
 
-            <ImageView
-                android:layout_width="16dp"
-                android:layout_height="16dp"
-                android:layout_gravity="center_vertical|start"
-                android:contentDescription="@string/battery_hints_warning_icon_a11y"
-                android:src="@drawable/ic_battery_tips_warning_icon" />
-
-            <TextView
-                android:id="@+id/warning_info"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingHorizontal="8dp"
-                android:layout_gravity="center_vertical|start"
-                android:textAlignment="viewStart"
-                android:textAppearance="?android:attr/textAppearanceSmall"
-                android:textColor="?android:attr/textColorPrimary"/>
-        </LinearLayout>
+        <include layout="@layout/power_anomaly_hints" />
 
     </LinearLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/arrow_preference.xml b/res/layout/arrow_preference.xml
new file mode 100644
index 0000000..0924a44
--- /dev/null
+++ b/res/layout/arrow_preference.xml
@@ -0,0 +1,56 @@
+<?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: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:paddingVertical="@dimen/settingslib_switchbar_margin"
+    android:background="@android:color/transparent">
+
+    <LinearLayout
+        android:id="@+id/background"
+        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_on"
+        android:orientation="horizontal">
+
+        <TextView
+            android:id="@android:id/title"
+            android:layout_height="wrap_content"
+            android:layout_width="0dp"
+            android:layout_gravity="start|center_vertical"
+            android:layout_weight="1"
+            android:paddingVertical="@dimen/settingslib_switch_title_margin"
+            android:ellipsize="end"
+            android:textAppearance="?android:attr/textAppearanceListItem"
+            android:hyphenationFrequency="normalFast"
+            android:lineBreakWordStyle="phrase"
+            style="@style/MainSwitchText.Settingslib"/>
+
+        <ImageView
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:layout_gravity="center_vertical"
+            android:contentDescription="@null"
+            android:src="@drawable/ic_arrow_forward"/>
+
+    </LinearLayout>
+</FrameLayout>
diff --git a/res/layout/audio_sharing_device_item.xml b/res/layout/audio_sharing_device_item.xml
new file mode 100644
index 0000000..04ecdd7
--- /dev/null
+++ b/res/layout/audio_sharing_device_item.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"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <Button
+        android:id="@+id/device_button"
+        style="@style/SettingsLibActionButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="4dp"
+        android:background="@drawable/audio_sharing_rounded_bg_ripple"
+        android:textAlignment="center" />
+
+</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/bluetooth_find_broadcast_password_dialog.xml b/res/layout/bluetooth_find_broadcast_password_dialog.xml
index f9df3f5..938f103 100644
--- a/res/layout/bluetooth_find_broadcast_password_dialog.xml
+++ b/res/layout/bluetooth_find_broadcast_password_dialog.xml
@@ -31,6 +31,7 @@
         android:id="@+id/broadcast_edit_text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        android:maxLength="16"
         android:minHeight="48dp"
         android:textAlignment="viewStart"/>
     <TextView
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index 7b5b046..04f1b6f 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -76,15 +76,39 @@
             android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1"
             android:visibility="gone" />
 
-        <CheckBox
-            android:id="@+id/phonebook_sharing_message_confirm_pin"
-            android:layout_width="wrap_content"
+        <LinearLayout
+            android:id="@+id/phonebook_sharing"
             android:layout_height="wrap_content"
-            android:minHeight="@dimen/min_tap_target_size"
+            android:layout_width="match_parent"
             android:layout_marginStart="@dimen/bluetooth_dialog_padding"
             android:layout_marginEnd="@dimen/bluetooth_dialog_padding"
-            android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1" />
-
+            android:orientation="horizontal">
+            <LinearLayout
+                android:layout_height="wrap_content"
+                android:layout_width="wrap_content"
+                android:layout_weight="1"
+                android:layout_marginEnd="10dp"
+                android:orientation="vertical">
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/bluetooth_pairing_phonebook_toggle_text"
+                    android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1" />
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/bluetooth_pairing_phonebook_toggle_details"
+                    android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Caption" />
+            </LinearLayout>
+            <Switch
+                android:id="@+id/phonebook_sharing_message_confirm_pin"
+                android:layout_width="wrap_content"
+                android:layout_height="48dp"
+                android:layout_weight="0"
+                android:gravity="center_vertical"
+                android:contentDescription="@string/bluetooth_pairing_phonebook_toggle_text"
+                android:switchMinWidth="48dp" />
+        </LinearLayout>
     </LinearLayout>
 
 </ScrollView>
diff --git a/res/layout/color_picker_item.xml b/res/layout/color_picker_item.xml
index 5599eb4..a9239e2 100644
--- a/res/layout/color_picker_item.xml
+++ b/res/layout/color_picker_item.xml
@@ -26,14 +26,15 @@
 
     <ImageView
         android:id="@+id/color_swatch"
-        android:layout_width="96dp"
+        android:layout_width="match_parent"
         android:layout_height="96dp"
         android:contentDescription="@null" />
 
     <TextView
         android:id="@+id/summary"
-        android:layout_width="96dp"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:gravity="center" />
+        android:gravity="center"
+        android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Body1" />
 
 </LinearLayout>
diff --git a/res/layout/content_protection_preference_fragment.xml b/res/layout/content_protection_preference_fragment.xml
new file mode 100644
index 0000000..f85f2d1
--- /dev/null
+++ b/res/layout/content_protection_preference_fragment.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: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:controller="com.android.settings.security.ContentProtectionWorkSwitchController"
+        settings:restrictedSwitchSummary="@string/summary_placeholder"
+        settings:useAdditionalSummary="true"/>
+
+    <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/data_usage_summary_preference.xml b/res/layout/data_usage_summary_preference.xml
index 856d146..4cbd958 100644
--- a/res/layout/data_usage_summary_preference.xml
+++ b/res/layout/data_usage_summary_preference.xml
@@ -18,8 +18,8 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:paddingTop="22dp"
-    android:paddingBottom="32dp"
+    android:paddingTop="8dp"
+    android:paddingBottom="16dp"
     android:paddingStart="?android:attr/listPreferredItemPaddingStart"
     android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
     android:orientation="vertical"
@@ -99,6 +99,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:paddingTop="12dp"
+        android:minHeight="54dp"
         android:orientation="vertical">
 
         <TextView
@@ -121,14 +122,5 @@
 
     </LinearLayout>
 
-    <Button
-        android:id="@+id/launch_mdp_app_button"
-        android:layout_marginTop="12dp"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="start"
-        android:text="@string/launch_mdp_app_text"
-        style="@style/ActionPrimaryButton" />
-
 </LinearLayout>
 
diff --git a/res/layout/dialog_audio_sharing.xml b/res/layout/dialog_audio_sharing.xml
new file mode 100644
index 0000000..aace5ab
--- /dev/null
+++ b/res/layout/dialog_audio_sharing.xml
@@ -0,0 +1,82 @@
+<?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:orientation="vertical"
+    android:paddingHorizontal="?android:dialogPreferredPadding"
+    android:paddingBottom="?android:dialogPreferredPadding">
+
+    <TextView
+        android:id="@+id/share_audio_subtitle1"
+        style="@style/DeviceAudioSharingText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingBottom="14dp"
+        android:textFontWeight="500"
+        android:visibility="gone" />
+
+    <TextView
+        android:id="@+id/share_audio_subtitle2"
+        style="@style/DeviceAudioSharingText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingBottom="24dp"
+        android:textFontWeight="400" />
+
+    <ImageView
+        android:id="@+id/share_audio_guidance"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:src="@drawable/audio_sharing_guidance"
+        android:visibility="gone" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/btn_list"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:nestedScrollingEnabled="false"
+        android:overScrollMode="never"
+        android:visibility="gone" />
+
+    <Button
+        android:id="@+id/share_btn"
+        style="@style/SettingsLibActionButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="4dp"
+        android:background="@drawable/audio_sharing_rounded_bg_ripple"
+        android:visibility="gone" />
+
+    <Button
+        android:id="@+id/cancel_btn"
+        style="@style/SettingsLibActionButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="4dp"
+        android:background="@drawable/audio_sharing_rounded_bg_ripple"
+        android:text="Not now"
+        android:visibility="gone" />
+</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..592b41b
--- /dev/null
+++ b/res/layout/dialog_audio_sharing_disconnect.xml
@@ -0,0 +1,51 @@
+<?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:orientation="vertical"
+    android:paddingHorizontal="?android:dialogPreferredPadding"
+    android:paddingBottom="?android:dialogPreferredPadding">
+
+    <TextView
+        android:id="@+id/share_audio_disconnect_description"
+        style="@style/DeviceAudioSharingText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingBottom="24dp" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/device_btn_list"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:nestedScrollingEnabled="false"
+        android:overScrollMode="never" />
+
+    <Button
+        android:id="@+id/cancel_btn"
+        style="@style/SettingsLibActionButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="4dp"
+        android:background="@drawable/audio_sharing_rounded_bg_ripple"
+        android: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..4bdab7f
--- /dev/null
+++ b/res/layout/dialog_audio_sharing_join.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2023 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:paddingHorizontal="?android:dialogPreferredPadding"
+    android:paddingBottom="?android:dialogPreferredPadding">
+
+    <TextView
+        android:id="@+id/share_audio_subtitle1"
+        style="@style/DeviceAudioSharingText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingBottom="14dp"
+        android:textFontWeight="500" />
+
+    <TextView
+        android:id="@+id/share_audio_subtitle2"
+        style="@style/DeviceAudioSharingText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingBottom="24dp"
+        android:textFontWeight="400" />
+
+    <Button
+        android:id="@+id/share_btn"
+        style="@style/SettingsLibActionButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="4dp"
+        android:background="@drawable/audio_sharing_rounded_bg_ripple" />
+
+    <Button
+        android:id="@+id/cancel_btn"
+        style="@style/SettingsLibActionButton"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:layout_marginTop="4dp"
+        android:background="@drawable/audio_sharing_rounded_bg_ripple"
+        android:text="Not now" />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/dialog_custom_title_audio_sharing.xml b/res/layout/dialog_custom_title_audio_sharing.xml
new file mode 100644
index 0000000..0513c4b
--- /dev/null
+++ b/res/layout/dialog_custom_title_audio_sharing.xml
@@ -0,0 +1,41 @@
+<?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:orientation="vertical"
+    android:padding="?android:dialogPreferredPadding">
+
+    <ImageView
+        android:id="@+id/title_icon"
+        android:layout_width="32dp"
+        android:layout_height="32dp"
+        android:layout_gravity="center"
+        android:tint="?android:attr/colorControlNormal" />
+
+    <TextView
+        android:id="@+id/title_text"
+        style="?android:attr/windowTitleStyle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:maxLines="2"
+        android:paddingTop="14dp"
+        android:textAlignment="center"
+        android:textSize="24sp" />
+</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/dialog_mobile_network_rename.xml b/res/layout/dialog_mobile_network_rename.xml
index 921ab86..2c583d3 100644
--- a/res/layout/dialog_mobile_network_rename.xml
+++ b/res/layout/dialog_mobile_network_rename.xml
@@ -80,13 +80,15 @@
                 android:paddingTop="@dimen/sim_label_padding"
                 android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"
                 android:textColor="?android:attr/textColorPrimary"
-                android:text="@string/status_operator"/>
+                android:text="@string/status_operator"
+                android:visibility="gone"/>
 
             <TextView
                 android:id="@+id/operator_name_value"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:text="@string/device_info_not_available"/>
+                android:text="@string/device_info_not_available"
+                android:visibility="gone"/>
 
             <TextView
                 android:id="@+id/number_label"
@@ -95,13 +97,15 @@
                 android:paddingTop="@dimen/sim_label_padding"
                 android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"
                 android:textColor="?android:attr/textColorPrimary"
-                android:text="@string/status_number_sim_status"/>
+                android:text="@string/status_number_sim_status"
+                android:visibility="gone"/>
 
             <TextView
                 android:id="@+id/number_value"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:text="@string/device_info_not_available"/>
+                android:text="@string/device_info_not_available"
+                android:visibility="gone"/>
 
         </LinearLayout>
 
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_enroll_introduction.xml b/res/layout/fingerprint_enroll_introduction.xml
index 5271e6a..37587db 100644
--- a/res/layout/fingerprint_enroll_introduction.xml
+++ b/res/layout/fingerprint_enroll_introduction.xml
@@ -81,6 +81,7 @@
                     android:id="@+id/footer_message_2"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_message_2"
                     style="@style/BiometricEnrollIntroMessage" />
             </LinearLayout>
 
@@ -102,6 +103,7 @@
                     android:id="@+id/footer_message_3"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_message_3"
                     style="@style/BiometricEnrollIntroMessage" />
             </LinearLayout>
 
@@ -110,6 +112,7 @@
                 android:id="@+id/footer_title_1"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:text="@string/security_settings_fingerprint_enroll_introduction_footer_title_1"
                 style="@style/BiometricEnrollIntroTitle" />
 
             <LinearLayout
@@ -130,6 +133,7 @@
                     android:id="@+id/footer_message_4"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_message_4"
                     style="@style/BiometricEnrollIntroMessage" />
             </LinearLayout>
 
@@ -139,7 +143,7 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 style="@style/BiometricEnrollIntroTitle"
-                android:text="@string/security_settings_face_enroll_introduction_info_title"/>
+                android:text="@string/security_settings_fingerprint_enroll_introduction_footer_title_2"/>
 
             <LinearLayout
                 android:layout_width="match_parent"
@@ -159,6 +163,7 @@
                     android:id="@+id/footer_message_5"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_message_5"
                     style="@style/BiometricEnrollIntroMessage" />
             </LinearLayout>
 
@@ -180,6 +185,7 @@
                     android:id="@+id/footer_message_6"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_message_6"
                     style="@style/BiometricEnrollIntroMessage" />
             </LinearLayout>
 
diff --git a/res/layout/fingerprint_v2_enroll_find_sensor.xml b/res/layout/fingerprint_v2_enroll_find_sensor.xml
new file mode 100644
index 0000000..d2a495d
--- /dev/null
+++ b/res/layout/fingerprint_v2_enroll_find_sensor.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.
+  -->
+
+<com.google.android.setupdesign.GlifLayout
+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="match_parent">
+
+<LinearLayout
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:clipToPadding="false"
+    android:clipChildren="false">
+
+    <Space
+        android:layout_width="wrap_content"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <include
+        layout="@layout/fingerprint_enroll_find_sensor_graphic"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_horizontal"/>
+
+</LinearLayout>
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/fingerprint_v2_enroll_introduction.xml b/res/layout/fingerprint_v2_enroll_introduction.xml
new file mode 100644
index 0000000..cf39206
--- /dev/null
+++ b/res/layout/fingerprint_v2_enroll_introduction.xml
@@ -0,0 +1,226 @@
+<?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"
+    android:id="@+id/setup_wizard_layout"
+    style="?attr/fingerprint_layout_theme"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <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">
+
+        <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
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <!-- How it works -->
+            <TextView
+                style="@style/BiometricEnrollIntroTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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_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" />
+
+                <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"
+                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"
+                    style="@style/BiometricEnrollIntroMessage"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+            </LinearLayout>
+
+            <!-- You're in control -->
+            <TextView
+                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"
+                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" />
+
+                <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_title_2"
+                style="@style/BiometricEnrollIntroTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                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_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>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/fingerprint_v2_enroll_main.xml b/res/layout/fingerprint_v2_enroll_main.xml
new file mode 100644
index 0000000..b3d6c3d
--- /dev/null
+++ b/res/layout/fingerprint_v2_enroll_main.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.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+    <androidx.fragment.app.FragmentContainerView
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/fragment_container_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    />
+
+</FrameLayout>
\ 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/keyboard_layout_picker.xml b/res/layout/keyboard_layout_picker.xml
index 6b163da..5e62a2c 100644
--- a/res/layout/keyboard_layout_picker.xml
+++ b/res/layout/keyboard_layout_picker.xml
@@ -17,10 +17,35 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    android:layout_marginHorizontal="@dimen/keyboard_picker_margin"
     android:id="@+id/keyboard_layout_picker_container"
     android:orientation="vertical">
 
     <FrameLayout
+        android:id="@+id/keyboard_layout_preview_container"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/keyboard_review_layout_background">
+        <ImageView
+            android:id="@+id/keyboard_layout_preview"
+            android:layout_marginTop="@dimen/keyboard_picker_margin_small"
+            android:layout_marginBottom="@dimen/keyboard_picker_margin_large"
+            android:layout_marginHorizontal="@dimen/keyboard_picker_margin_small"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:adjustViewBounds="true"
+            android:scaleType="fitCenter" />
+        <TextView
+            android:id="@+id/keyboard_layout_preview_name"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/keyboard_picker_margin_large"
+            android:textSize="@dimen/keyboard_picker_text_size"
+            android:textColor="?android:attr/textColorPrimary"
+            android:layout_gravity="bottom"
+            android:gravity="center" />
+    </FrameLayout>
+
+    <FrameLayout
         android:id="@+id/keyboard_layout_title"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
diff --git a/res/layout/power_anomaly_hints.xml b/res/layout/power_anomaly_hints.xml
new file mode 100644
index 0000000..3781046
--- /dev/null
+++ b/res/layout/power_anomaly_hints.xml
@@ -0,0 +1,43 @@
+<?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"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal"
+    android:gravity="center_vertical|start"
+    android:padding="8dp"
+    android:background="@drawable/battery_hints_chip_bg_ripple">
+
+    <ImageView
+        android:layout_width="16dp"
+        android:layout_height="16dp"
+        android:contentDescription="@string/battery_hints_warning_icon_a11y"
+        android:src="@drawable/ic_battery_tips_warning_icon" />
+
+    <TextView
+        android:id="@+id/warning_info"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingHorizontal="8dp"
+        android:textAlignment="viewStart"
+        android:textAppearance="@style/TextAppearance.MaterialComponents.Subtitle2"
+        android:textColor="?androidprv:attr/materialColorOnSurface"/>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/power_usage_time.xml b/res/layout/power_usage_time.xml
new file mode 100644
index 0000000..bad68f4
--- /dev/null
+++ b/res/layout/power_usage_time.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:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/time_title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingTop="20dp"
+        android:textAlignment="viewStart"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textColor="?android:attr/textColorPrimary" />
+
+    <TextView
+        android:id="@+id/time_summary"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginVertical="4dp"
+        android:textAlignment="viewStart"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="?android:attr/textColorSecondary" />
+
+    <include layout="@layout/power_anomaly_hints"
+        android:visibility="gone"
+        android:id="@+id/anomaly_hints"
+        android:paddingBottom="20dp"/>
+
+</LinearLayout>
\ 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_credential_manager_with_buttons.xml b/res/layout/preference_credential_manager_with_buttons.xml
new file mode 100644
index 0000000..1889cea
--- /dev/null
+++ b/res/layout/preference_credential_manager_with_buttons.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright (C) 2024 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<!-- Based off preference_single_target.xml with buttons added below text. -->
+<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:orientation="vertical"
+    android:background="?android:attr/selectableItemBackground"
+    android:clipToPadding="false">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="1"
+        android:orientation="horizontal"
+        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="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="start|center_vertical"
+            android:minWidth="56dp"
+            android:orientation="horizontal"
+            android:clipToPadding="false"
+            android:paddingTop="4dp"
+            android:paddingBottom="4dp">
+            <androidx.preference.internal.PreferenceImageView
+                android:id="@android:id/icon"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                settings:maxWidth="48dp"
+                settings:maxHeight="48dp" />
+        </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:hyphenationFrequency="normalFast"
+                android:lineBreakWordStyle="phrase"
+                android:maxLines="10" />
+
+        </RelativeLayout>
+
+    </LinearLayout>
+
+    <!-- Preference should place its actual preference widget here. -->
+    <LinearLayout
+        android:id="@android:id/widget_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:minWidth="@dimen/two_target_min_width"
+        android:gravity="center"
+        android:orientation="vertical" />
+
+    <LinearLayout
+        android:id="@+id/credman_button_frame"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="start|center_vertical"
+        android:minWidth="56dp"
+        android:orientation="horizontal"
+        android:clipToPadding="false"
+        android:paddingTop="4dp"
+        android:paddingLeft="80dp"
+        android:paddingBottom="4dp">
+
+            <Button
+                android:id="@+id/change_button"
+                android:layout_width="match_parent"
+                style="@style/CredentialManagerChangeButton"
+                android:layout_height="wrap_content"
+                android:text="@string/credman_button_change"/>
+
+            <Button
+                android:id="@+id/open_button"
+                style="@style/CredentialManagerOpenButton"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                android:text="@string/credman_button_open"/>
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
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_lock.xml b/res/layout/preference_widget_lock.xml
new file mode 100644
index 0000000..a5ee455
--- /dev/null
+++ b/res/layout/preference_widget_lock.xml
@@ -0,0 +1,30 @@
+<?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.
+-->
+
+<!-- A lock icon for preference in the audio streams page. -->
+<ImageView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/lock_icon"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_gravity="center"
+    android:paddingStart="24dp"
+    android:paddingEnd="24dp"
+    android:background="?android:attr/selectableItemBackground"
+    android:scaleType="center"
+    android:src="@drawable/ic_lock_closed"
+    android:importantForAccessibility="no" />
+
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/private_space_confirm_deletion.xml b/res/layout/private_space_confirm_deletion.xml
new file mode 100644
index 0000000..31418e1
--- /dev/null
+++ b/res/layout/private_space_confirm_deletion.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<com.google.android.setupdesign.GlifLoadingLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/private_space_delete_confirm"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:icon="@drawable/ic_delete_accent"
+    app:sudUsePartnerHeavyTheme="true"
+    app:sudIllustrationType="default"
+    app:sudDescriptionText = "@string/private_space_confirm_deletion_summary"
+    app:sucHeaderText="@string/private_space_confirm_deletion_header">
+</com.google.android.setupdesign.GlifLoadingLayout>
\ No newline at end of file
diff --git a/res/layout/private_space_delete.xml b/res/layout/private_space_delete.xml
new file mode 100644
index 0000000..9fc3615
--- /dev/null
+++ b/res/layout/private_space_delete.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<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/private_space_delete_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:icon="@drawable/ic_delete_accent"
+    app:sucHeaderText="@string/private_space_delete_header">
+
+    <ScrollView
+        android:id="@+id/private_space_delete_scrollview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:id="@+id/private_space_delete_container"
+            style="@style/SudContentFrame"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="16dp"
+            android:orientation="vertical">
+
+            <TextView
+                style="@style/TextAppearance.PreferenceTitle.SettingsLib"
+                android:id="@+id/sud_layout_subtitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/private_space_delete_summary"/>
+
+            <TextView
+                android:id="@+id/accounts_label"
+                style="@style/TextAppearance.PreferenceTitle.SettingsLib"
+                android:layout_marginTop="20dp"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                android:text="@string/private_space_accounts"/>
+            <LinearLayout
+                android:id="@+id/accounts"
+                android:layout_marginTop="20dp"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:visibility="gone">
+                <!-- Do not add any children here as they will be removed in the MainClear.java
+                   code. A list of accounts will be inserted programmatically. -->
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/privatespace_account_login_error.xml b/res/layout/privatespace_account_login_error.xml
new file mode 100644
index 0000000..beae22f
--- /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/private_space_retry_signin_title"
+    app:sudDescriptionText="@string/private_space_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..3a85b16
--- /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/private_space_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/private_space_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..0ec0cb6
--- /dev/null
+++ b/res/layout/privatespace_creation_error.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.
+  -->
+
+<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/private_space_setup_error"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/private_space_error_screen_title"
+    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..350e780
--- /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/private_space_setup_title"
+    app:sudDescriptionText="@string/private_space_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/private_space_how_title"/>
+        <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/private_space_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/private_space_hidden_notifications_text"/>
+        </RelativeLayout>
+        <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/private_space_access_bottom_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/private_space_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..7211948
--- /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/private_space_lockscreen_title"
+    app:sudDescriptionText="@string/private_space_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..e3e6b68
--- /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/private_space_setup_success"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:filterTouchesWhenObscured="true"
+    app:sucHeaderText="@string/private_space_success_title"
+    app:sudDescriptionText="@string/private_space_access_text"
+    android:icon="@drawable/ic_privatespace_done">
+</com.google.android.setupdesign.GlifLayout>
diff --git a/res/layout/qrcode_scanner_fragment.xml b/res/layout/qrcode_scanner_fragment.xml
index e6d1c32..d402dc3 100644
--- a/res/layout/qrcode_scanner_fragment.xml
+++ b/res/layout/qrcode_scanner_fragment.xml
@@ -17,7 +17,6 @@
 
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical">
@@ -26,36 +25,22 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_weight="3"
-        android:layout_marginBottom="35dp">
+        android:layout_marginBottom="55dp">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
+            android:paddingStart="40dp"
+            android:paddingEnd="40dp"
             android:layout_gravity="bottom"
             android:gravity="center"
             android:orientation="vertical">
-            <ImageView
-                android:src="@drawable/ic_qr_code_scanner"
-                android:tint="?androidprv:attr/materialColorPrimaryContainer"
-                android:layout_width="@dimen/qrcode_icon_size"
-                android:layout_height="@dimen/qrcode_icon_size"
-                android:contentDescription="@null"/>
-
             <TextView
                 style="@style/QrCodeScanner"
-                android:textSize="24sp"
-                android:text="@string/bluetooth_find_broadcast_button_scan"
+                android:text="Scan an audio stream QR code to listen with the active LE device"
                 android:gravity="center"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="19dp"/>
-
-            <TextView
-                style="@style/QrCodeScanner"
-                android:text="@string/bt_le_audio_scan_qr_code_scanner"
-                android:gravity="center"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_marginTop="8dp"/>
+                android:layout_marginTop="20dp"/>
         </LinearLayout>
     </LinearLayout>
 
diff --git a/res/layout/remote_auth_enroll_enrolling.xml b/res/layout/remote_auth_enroll_enrolling.xml
new file mode 100644
index 0000000..45886f7
--- /dev/null
+++ b/res/layout/remote_auth_enroll_enrolling.xml
@@ -0,0 +1,64 @@
+<?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/setup_wizard_layout"
+    android:icon="@drawable/ic_lock"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    app:sucHeaderText="@string/security_settings_remoteauth_enroll_enrolling_title" >
+
+    <LinearLayout
+        style="@style/SudContentFrame"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:orientation="vertical"
+        android:clipToPadding="false"
+        android:clipChildren="false">
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            style="@style/BiometricEnrollIntroTitle"
+            android:text="@string/security_settings_remoteauth_enroll_enrolling_list_heading" />
+
+        <ProgressBar
+            android:id="@+id/enrolling_list_progress_bar"
+            android:layout_width="@dimen/remoteauth_enrolling_progress_bar_size"
+            android:layout_height="@dimen/remoteauth_enrolling_progress_bar_size"
+            android:visibility="invisible"/>
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/discovered_authenticator_list"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content" />
+
+        <TextView
+            style="@style/TextAppearance.ErrorText"
+            android:id="@+id/error_text"
+            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>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_enroll_finish.xml b/res/layout/remote_auth_enroll_finish.xml
new file mode 100644
index 0000000..ccd42d4
--- /dev/null
+++ b/res/layout/remote_auth_enroll_finish.xml
@@ -0,0 +1,48 @@
+<?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/setup_wizard_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:icon="@drawable/ic_lock"
+    app:sucHeaderText="@string/security_settings_remoteauth_enroll_finish_title"
+    app:sudDescriptionText="@string/security_settings_remoteauth_enroll_finish_description">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        style="@style/SudContentFrame"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingHorizontal="@dimen/remoteauth_fragment_padding_horizontal">
+
+        <com.airbnb.lottie.LottieAnimationView
+            android:id="@+id/enroll_finish_animation"
+            android:importantForAccessibility="no"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
+            app:lottie_rawRes="@raw/remoteauth_enroll_finish_animation"
+            app:lottie_loop="true"
+            app:lottie_autoPlay="true" />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_enroll_introduction.xml b/res/layout/remote_auth_enroll_introduction.xml
new file mode 100644
index 0000000..e55d0b2
--- /dev/null
+++ b/res/layout/remote_auth_enroll_introduction.xml
@@ -0,0 +1,142 @@
+<?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/setup_wizard_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:icon="@drawable/ic_lock"
+    app:sucUsePartnerResource="false"
+    app:sucHeaderText="@string/security_settings_remoteauth_enroll_introduction_title"
+    app:sudDescriptionText="@string/security_settings_remoteauth_enroll_introduction_message">
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        style="@style/SudContentFrame"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingHorizontal="@dimen/remoteauth_fragment_padding_horizontal"
+        app:layout_optimizationLevel="barrier">
+
+        <com.android.settings.remoteauth.introduction.IntroductionImageCarousel
+            android:id="@+id/image_carousel_view"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toTopOf="parent"  />
+
+        <!-- How it works -->
+        <TextView
+            android:id="@+id/explanation_subheading_how_it_works"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/BiometricEnrollIntroTitle"
+            android:text="@string/security_settings_remoteauth_enroll_introduction_how_title"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/image_carousel_view" />
+
+        <ImageView
+            android:id="@+id/explanation_icon_lock_open"
+            android:layout_width="@dimen/remoteauth_icon_small_size"
+            android:layout_height="@dimen/remoteauth_icon_small_size"
+            android:importantForAccessibility="no"
+            android:background="@drawable/ic_lock_open_24dp"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/explanation_subheading_how_it_works" />
+
+        <TextView
+            android:id="@+id/explanation_lock_open_description"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/remoteauth_introduction_description_start_margin"
+            style="@style/BiometricEnrollIntroMessage"
+            android:text="@string/security_settings_remoteauth_enroll_introduction_info_lock_open"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@id/explanation_icon_lock_open"
+            app:layout_constraintTop_toTopOf="@id/explanation_icon_lock_open" />
+
+        <androidx.constraintlayout.widget.Barrier
+            android:id="@+id/explanation_lock_open_description_barrier"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:barrierDirection="bottom"
+            app:constraint_referenced_ids="explanation_icon_lock_open, explanation_lock_open_description" />
+
+        <ImageView
+            android:id="@+id/explanation_icon_notifications"
+            android:layout_width="@dimen/remoteauth_icon_small_size"
+            android:layout_height="@dimen/remoteauth_icon_small_size"
+            android:importantForAccessibility="no"
+            android:background="@drawable/ic_notifications"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/explanation_lock_open_description_barrier"/>
+
+        <TextView
+            android:id="@+id/explanation_notifications_description"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/remoteauth_introduction_description_start_margin"
+            style="@style/BiometricEnrollIntroMessage"
+            android:text="@string/security_settings_remoteauth_enroll_introduction_info_notifications"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@id/explanation_icon_notifications"
+            app:layout_constraintTop_toTopOf="@id/explanation_icon_notifications" />
+
+        <androidx.constraintlayout.widget.Barrier
+            android:id="@+id/explanation_notifications_description_barrier"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            app:barrierDirection="bottom"
+            app:constraint_referenced_ids="explanation_icon_notifications,explanation_notifications_description" />
+
+        <!-- You're in control -->
+        <TextView
+            android:id="@+id/explanation_subheading_youre_in_control"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/BiometricEnrollIntroTitle"
+            android:text="@string/security_settings_remoteauth_enroll_introduction_youre_in_control_title"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/explanation_notifications_description_barrier" />
+
+        <ImageView
+            android:id="@+id/explanation_icon_remove_watch"
+            android:layout_width="@dimen/remoteauth_icon_small_size"
+            android:layout_height="@dimen/remoteauth_icon_small_size"
+            android:importantForAccessibility="no"
+            android:background="@drawable/ic_delete"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/explanation_subheading_youre_in_control" />
+
+        <TextView
+            android:id="@+id/explanation_remove_watch_description"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/remoteauth_introduction_description_start_margin"
+            style="@style/BiometricEnrollIntroMessage"
+            android:text="@string/security_settings_remoteauth_enroll_introduction_info_remove_watch"
+            app:layout_constrainedWidth="true"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@id/explanation_icon_remove_watch"
+            app:layout_constraintTop_toTopOf="@id/explanation_icon_remove_watch" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_enrolling_authenticator_item.xml b/res/layout/remote_auth_enrolling_authenticator_item.xml
new file mode 100644
index 0000000..c92222b
--- /dev/null
+++ b/res/layout/remote_auth_enrolling_authenticator_item.xml
@@ -0,0 +1,52 @@
+<?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.constraintlayout.widget.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/authenticator_item_layout"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginVertical="@dimen/remoteauth_enrolling_authenticator_vertical_margin"
+    android:minHeight="@dimen/remoteauth_touchable_area_minimum_span">
+
+    <TextView
+        android:id="@+id/discovered_authenticator_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginHorizontal="@dimen/remoteauth_enrolling_authenticator_horizontal_margin"
+        android:ellipsize="end"
+        android:maxLines="1"
+        app:layout_constrainedWidth="true"
+        app:layout_constraintHorizontal_bias="0"
+        app:layout_constraintHorizontal_chainStyle="spread_inside"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toStartOf="@+id/authenticator_radio_button"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/authenticator_radio_button"
+        android:layout_width="@dimen/remoteauth_icon_small_size"
+        android:layout_height="@dimen/remoteauth_icon_small_size"
+        android:background="@drawable/ic_radio_button_unchecked_black_24dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toEndOf="@id/discovered_authenticator_name"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_introduction_image_carousel.xml b/res/layout/remote_auth_introduction_image_carousel.xml
new file mode 100644
index 0000000..feb8e6a
--- /dev/null
+++ b/res/layout/remote_auth_introduction_image_carousel.xml
@@ -0,0 +1,78 @@
+<?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.constraintlayout.widget.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingHorizontal="@dimen/remoteauth_introduction_fragment_padding_horizontal"
+    app:layout_optimizationLevel="barrier">
+
+    <androidx.viewpager2.widget.ViewPager2
+        android:id="@+id/image_carousel"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/carousel_back_arrow"
+        app:layout_constraintStart_toStartOf="parent"
+        android:contentDescription="@string/wizard_back"
+        android:layout_width="@dimen/remoteauth_touchable_area_minimum_span"
+        android:layout_height="@dimen/remoteauth_touchable_area_minimum_span"
+        android:scaleType="center"
+        android:tintMode="src_in"
+        app:layout_constraintEnd_toStartOf="@id/carousel_progress_indicator"
+        app:layout_constraintHorizontal_chainStyle="spread_inside"
+        app:layout_constraintTop_toTopOf="@id/carousel_progress_indicator"
+        app:layout_constraintBottom_toBottomOf="@id/carousel_progress_indicator"
+        android:background="@drawable/ic_arrow_back" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/carousel_progress_indicator"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:importantForAccessibility="no"
+        app:layout_constraintStart_toEndOf="@id/carousel_back_arrow"
+        app:layout_constraintEnd_toStartOf="@id/carousel_forward_arrow"
+        app:layout_constraintTop_toBottomOf="@id/image_carousel"
+        android:layout_marginTop="@dimen/remoteauth_carousel_progress_margin" />
+
+    <ImageView
+        android:id="@+id/carousel_forward_arrow"
+        android:contentDescription="@string/wizard_next"
+        android:layout_width="@dimen/remoteauth_touchable_area_minimum_span"
+        android:layout_height="@dimen/remoteauth_touchable_area_minimum_span"
+        android:scaleType="center"
+        android:tintMode="src_in"
+        app:layout_constraintStart_toEndOf="@id/carousel_progress_indicator"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="@id/carousel_progress_indicator"
+        app:layout_constraintBottom_toBottomOf="@id/carousel_progress_indicator"
+        android:background="@drawable/ic_arrow_forward" />
+
+    <androidx.constraintlayout.widget.Barrier
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:barrierMargin="@dimen/remoteauth_carousel_progress_margin"
+        app:barrierDirection="bottom"
+        app:constraint_referenced_ids="carousel_back_arrow,carousel_forward_arrow" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_introduction_image_carousel_item.xml b/res/layout/remote_auth_introduction_image_carousel_item.xml
new file mode 100644
index 0000000..4b599e2
--- /dev/null
+++ b/res/layout/remote_auth_introduction_image_carousel_item.xml
@@ -0,0 +1,40 @@
+<?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"
+              xmlns:app="http://schemas.android.com/apk/res-auto"
+              android:id="@+id/explanation_animation_container"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical"
+              android:gravity="center_horizontal">
+
+    <com.airbnb.lottie.LottieAnimationView
+        android:id="@+id/explanation_animation"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:importantForAccessibility="no"
+        app:lottie_loop="true"
+        app:lottie_autoPlay="true" />
+
+    <TextView
+        android:id="@+id/carousel_text"
+        android:textSize="@dimen/remoteauth_introduction_subheading_text_size"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_introduction_image_carousel_progress_icon.xml b/res/layout/remote_auth_introduction_image_carousel_progress_icon.xml
new file mode 100644
index 0000000..b9ee39a
--- /dev/null
+++ b/res/layout/remote_auth_introduction_image_carousel_progress_icon.xml
@@ -0,0 +1,23 @@
+<?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.
+-->
+
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+           xmlns:app="http://schemas.android.com/apk/res-auto"
+           android:layout_width="@dimen/remoteauth_carousel_progress_circle_diameter"
+           android:layout_height="@dimen/remoteauth_carousel_progress_circle_diameter"
+           android:layout_marginHorizontal="@dimen/remoteauth_carousel_progress_circle_margin"
+           android:background="@drawable/ring_progress" />
\ No newline at end of file
diff --git a/res/layout/remote_auth_root.xml b/res/layout/remote_auth_root.xml
new file mode 100644
index 0000000..795807f
--- /dev/null
+++ b/res/layout/remote_auth_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/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/remote_auth_settings.xml b/res/layout/remote_auth_settings.xml
new file mode 100644
index 0000000..089dda4
--- /dev/null
+++ b/res/layout/remote_auth_settings.xml
@@ -0,0 +1,95 @@
+<?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/setup_wizard_layout"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    app:sucUsePartnerResource="false"
+    app:sucHeaderText="@string/security_settings_remoteauth_settings_title"
+    app:sudDescriptionText="@string/security_settings_remoteauth_settings_description" >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:gravity="start"
+        android:paddingHorizontal="@dimen/remoteauth_padding_horizontal">
+
+        <androidx.recyclerview.widget.RecyclerView
+            android:id="@+id/registered_authenticator_list"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/remoteauth_settings_top_margin"/>
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:id="@+id/add_authenticator_layout"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginVertical="@dimen/remoteauth_device_vertical_margin"
+            android:minHeight="@dimen/remoteauth_touchable_area_minimum_span"
+            android:clickable="true">
+
+            <ImageView
+                android:id="@+id/add_icon"
+                android:layout_width="@dimen/remoteauth_icon_small_size"
+                android:layout_height="@dimen/remoteauth_icon_small_size"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                android:background="@drawable/ic_add_24dp"
+                android:clickable="false" />
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginHorizontal="@dimen/remoteauth_settings_device_horizontal_margin"
+                android:textColor="?android:attr/textColorPrimary"
+                android:textSize="@dimen/remoteauth_device_name_text_size"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintStart_toEndOf="@id/add_icon"
+                app:layout_constraintTop_toTopOf="parent"
+                android:text="@string/security_settings_remoteauth_settings_register_new_authenticator"
+                android:clickable="false" />
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+        <ImageView
+            android:layout_marginTop="@dimen/remoteauth_settings_top_margin"
+            android:layout_width="@dimen/remoteauth_icon_small_size"
+            android:layout_height="@dimen/remoteauth_icon_small_size"
+            android:background="@drawable/ic_info_outline_24dp"/>
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/remoteauth_settings_top_margin"
+            android:textSize="@dimen/remoteauth_fragment_subtitle_text_size"
+            android:text="@string/security_settings_remoteauth_settings_info_footer"
+            android:textColor="?android:attr/textColorPrimary" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/remoteauth_settings_top_margin"
+            android:textSize="@dimen/remoteauth_fragment_subtitle_text_size"
+            android:text="@string/security_settings_remoteauth_settings_learn_more"
+            android:textColor="?android:attr/textColorPrimary" />
+
+    </LinearLayout>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/remote_auth_settings_authenticator_item.xml b/res/layout/remote_auth_settings_authenticator_item.xml
new file mode 100644
index 0000000..e2ec07c
--- /dev/null
+++ b/res/layout/remote_auth_settings_authenticator_item.xml
@@ -0,0 +1,68 @@
+<?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.constraintlayout.widget.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:id="@+id/authenticator_item_layout"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginVertical="@dimen/remoteauth_device_vertical_margin"
+    android:minHeight="@dimen/remoteauth_touchable_area_minimum_span">
+
+    <ImageView
+        android:id="@+id/device_icon"
+        android:layout_width="@dimen/remoteauth_icon_small_size"
+        android:layout_height="@dimen/remoteauth_icon_small_size"
+        android:background="@drawable/ic_watch_24dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"/>
+
+    <TextView
+        android:id="@+id/authenticator_name_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginHorizontal="@dimen/remoteauth_settings_device_horizontal_margin"
+        android:ellipsize="end"
+        android:maxLines="1"
+        app:layout_constrainedWidth="true"
+        app:layout_constraintHorizontal_bias="0"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toStartOf="@+id/barrier"
+        app:layout_constraintStart_toEndOf="@id/device_icon"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <ImageView
+        android:id="@+id/remove_icon"
+        android:layout_width="@dimen/remoteauth_icon_small_size"
+        android:layout_height="@dimen/remoteauth_icon_small_size"
+        android:tint="?android:attr/colorPrimary"
+        android:background="@drawable/ic_delete"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        android:contentDescription="@string/security_settings_remoteauth_settings_remove_device" />
+
+    <androidx.constraintlayout.widget.Barrier
+        android:id="@+id/barrier"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:barrierDirection="start"
+        app:constraint_referenced_ids="remove_icon" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/res/layout/remove_account_button.xml b/res/layout/remove_account_button.xml
index 070ecc5..2d308ae 100644
--- a/res/layout/remove_account_button.xml
+++ b/res/layout/remove_account_button.xml
@@ -19,7 +19,7 @@
     android:layout_height="wrap_content"
     android:orientation="vertical">
 
-    <Button
+    <com.android.settings.widget.RestrictedButton
         android:id="@+id/button"
         android:text="@string/remove_account_label"
         android:layout_width="wrap_content"
diff --git a/res/layout/satellite_setting_more_information_layout.xml b/res/layout/satellite_setting_more_information_layout.xml
new file mode 100644
index 0000000..ce2fabe
--- /dev/null
+++ b/res/layout/satellite_setting_more_information_layout.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:background="@drawable/satellite_more_information_background_outline"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+    android:minHeight="?android:attr/listPreferredItemHeight"
+    android:focusable="false"
+    android:gravity="center_vertical">
+
+    <TextView
+        android:id="@android:id/summary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+        android:textColor="?android:attr/textColorSecondary"
+        android:focusable="false"
+        android:hyphenationFrequency="normalFast"
+        android:lineBreakWordStyle="phrase"
+        android:maxLines="10" />
+
+    <TextView
+        android:id="@android:id/summary"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textAppearance="?android:attr/textAppearanceListItemSecondary"
+        android:textColor="?android:attr/textColorSecondary"
+        android:focusable="false"
+        android:hyphenationFrequency="normalFast"
+        android:lineBreakWordStyle="phrase"
+        android:maxLines="10" />
+
+</LinearLayout>
diff --git a/res/layout/sfps_enroll_finish_base.xml b/res/layout/sfps_enroll_finish_base.xml
index f442e90..9e65c83 100644
--- a/res/layout/sfps_enroll_finish_base.xml
+++ b/res/layout/sfps_enroll_finish_base.xml
@@ -24,6 +24,7 @@
 
     <LinearLayout
         style="@style/SudContentFrame"
+        android:id="@+id/sfps_enrollment_finish_content_frame"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical"
@@ -31,6 +32,7 @@
         android:clipChildren="false">
 
             <com.google.android.setupdesign.view.FillContentLayout
+                android:id="@+id/sfps_enrollment_finish_content_layout"
                 android:layout_width="@dimen/sfps_enrollment_finished_icon_max_size"
                 android:layout_height="@dimen/sfps_enrollment_finished_icon_max_size"
                 android:layout_marginTop="24dp"
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/udfps_enroll_enrolling_v2.xml b/res/layout/udfps_enroll_enrolling_v2.xml
index 4675606..b579bed 100644
--- a/res/layout/udfps_enroll_enrolling_v2.xml
+++ b/res/layout/udfps_enroll_enrolling_v2.xml
@@ -70,25 +70,7 @@
         app:lottie_loop="true"
         app:lottie_speed=".85" />
 
-    <com.android.settings.biometrics2.ui.widget.UdfpsEnrollView
-        android:id="@+id/udfps_animation_view"
-        android:layout_width="218.42dp"
-        android:layout_height="216dp"
-        android:layout_alignParentTop="true"
-        android:layout_centerHorizontal="true"
-        android:layout_marginTop="553dp">
-
-        <ImageView
-            android:id="@+id/udfps_enroll_animation_fp_progress_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-
-        <!-- Fingerprint -->
-        <ImageView
-            android:id="@+id/udfps_enroll_animation_fp_view"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent" />
-    </com.android.settings.biometrics2.ui.widget.UdfpsEnrollView>
+    <include layout="@layout/udfps_enroll_enrolling_v2_udfps_view"/>
 
     <Button
         style="@style/SudGlifButton.Secondary"
diff --git a/res/layout/udfps_enroll_enrolling_v2_udfps_view.xml b/res/layout/udfps_enroll_enrolling_v2_udfps_view.xml
new file mode 100644
index 0000000..a29b2fd
--- /dev/null
+++ b/res/layout/udfps_enroll_enrolling_v2_udfps_view.xml
@@ -0,0 +1,36 @@
+<?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.android.settings.biometrics2.ui.widget.UdfpsEnrollView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/udfps_animation_view"
+    android:layout_width="218.42dp"
+    android:layout_height="216dp"
+    android:layout_alignParentTop="true"
+    android:layout_centerHorizontal="true"
+    android:layout_marginTop="553dp">
+
+    <ImageView
+        android:id="@+id/udfps_enroll_animation_fp_progress_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+    <!-- Fingerprint -->
+    <ImageView
+        android:id="@+id/udfps_enroll_animation_fp_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</com.android.settings.biometrics2.ui.widget.UdfpsEnrollView>
diff --git a/res/layout/user_dictionary_add_word_fullscreen.xml b/res/layout/user_dictionary_add_word_fullscreen.xml
index 42bd197..cf73d411 100644
--- a/res/layout/user_dictionary_add_word_fullscreen.xml
+++ b/res/layout/user_dictionary_add_word_fullscreen.xml
@@ -17,31 +17,49 @@
     android:id="@+id/user_dict_settings_add_dialog_top"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="vertical" >
-
-    <EditText
-        android:id="@+id/user_dictionary_add_word_text"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_gravity="fill_horizontal|center_vertical"
-        android:layout_marginBottom="8dip"
-        android:layout_marginStart="8dip"
-        android:layout_marginTop="8dip"
-        android:hint="@string/user_dict_settings_add_word_hint"
-        android:imeOptions="flagNoFullscreen"
-        android:inputType="textNoSuggestions"
-        android:maxLength="@integer/maximum_user_dictionary_word_length" >
-
-        <requestFocus />
-    </EditText>
+    android:paddingStart="@dimen/settingslib_listPreferredItemPaddingStart"
+    android:paddingLeft="@dimen/settingslib_listPreferredItemPaddingStart"
+    android:paddingEnd="@dimen/settingslib_listPreferredItemPaddingStart"
+    android:paddingRight="@dimen/settingslib_listPreferredItemPaddingStart"
+    android:orientation="vertical">
 
     <GridLayout
         android:id="@+id/user_dictionary_add_word_grid"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginEnd="8dip"
-        android:layout_marginStart="8dip"
-        android:columnCount="2" >
+        android:columnCount="2">
+
+        <TextView
+            android:id="@+id/user_dictionary_add_word_label"
+            style="?android:attr/textAppearanceSmall"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="start|center_vertical"
+            android:text="@string/user_dict_settings_add_word_option_name"
+            android:textColor="?android:attr/textColorPrimary" />
+
+        <EditText
+            android:id="@+id/user_dictionary_add_word_text"
+            android:layout_height="wrap_content"
+            android:layout_gravity="fill_horizontal|center_vertical"
+            android:layout_marginBottom="8dip"
+            android:layout_marginStart="8dip"
+            android:layout_marginTop="8dip"
+            android:minHeight="@dimen/min_tap_target_size"
+            android:hint="@string/user_dict_settings_add_word_hint"
+            android:imeOptions="flagNoFullscreen"
+            android:inputType="textNoSuggestions"
+            android:maxLength="@integer/maximum_user_dictionary_word_length">
+
+            <requestFocus />
+        </EditText>
+    </GridLayout>
+
+    <GridLayout
+        android:id="@+id/user_dictionary_add_shortcut_grid"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:columnCount="2">
 
         <TextView
             android:id="@+id/user_dictionary_add_shortcut_label"
@@ -49,7 +67,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="start|center_vertical"
-            android:text="@string/user_dict_settings_add_shortcut_option_name" />
+            android:text="@string/user_dict_settings_add_shortcut_option_name"
+            android:textColor="?android:attr/textColorPrimary" />
 
         <EditText
             android:id="@+id/user_dictionary_add_shortcut"
@@ -58,6 +77,7 @@
             android:layout_marginBottom="8dip"
             android:layout_marginStart="8dip"
             android:layout_marginTop="8dip"
+            android:minHeight="@dimen/min_tap_target_size"
             android:hint="@string/user_dict_settings_add_shortcut_hint"
             android:imeOptions="flagNoFullscreen"
             android:inputType="textNoSuggestions"
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/layout/wifi_add_network_view.xml b/res/layout/wifi_add_network_view.xml
index 480d597..d698adf 100644
--- a/res/layout/wifi_add_network_view.xml
+++ b/res/layout/wifi_add_network_view.xml
@@ -18,8 +18,7 @@
 <androidx.core.widget.NestedScrollView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:fitsSystemWindows="true">
+    android:layout_height="wrap_content">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/res/layout/wifi_dpp_qrcode_generator_fragment.xml b/res/layout/wifi_dpp_qrcode_generator_fragment.xml
index f9c7169..f70abd5 100644
--- a/res/layout/wifi_dpp_qrcode_generator_fragment.xml
+++ b/res/layout/wifi_dpp_qrcode_generator_fragment.xml
@@ -55,6 +55,7 @@
                 android:id="@+id/password"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:minHeight="@dimen/min_tap_target_size"
                 android:layout_marginBottom="24dp"
                 android:textAlignment="center"
                 android:textIsSelectable="true"
diff --git a/res/layout/wifi_network_config.xml b/res/layout/wifi_network_config.xml
index 6fe39bf..3de1a38 100644
--- a/res/layout/wifi_network_config.xml
+++ b/res/layout/wifi_network_config.xml
@@ -22,6 +22,19 @@
     android:orientation="vertical"
     android:paddingBottom="8dip">
 
+    <LinearLayout android:id="@+id/wep_warning_layout"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingBottom="20dp"
+        style="@style/wifi_item"
+        android:visibility="gone">
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            style="@style/wifi_item_label"
+            android:text="@string/wifi_settings_warning_wep_network"/>
+    </LinearLayout>
+
     <LinearLayout android:id="@+id/info"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
@@ -413,7 +426,8 @@
         <LinearLayout android:id="@+id/metered_settings_fields"
                       android:layout_width="match_parent"
                       android:layout_height="wrap_content"
-                      style="@style/wifi_item">
+                      style="@style/wifi_item"
+                      android:visibility="gone">
 
             <TextView android:id="@+id/metered_settings_title"
                       android:layout_width="wrap_content"
diff --git a/res/navigation/private_space_delete_nav.xml b/res/navigation/private_space_delete_nav.xml
new file mode 100644
index 0000000..b8850b7
--- /dev/null
+++ b/res/navigation/private_space_delete_nav.xml
@@ -0,0 +1,31 @@
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+            xmlns:app="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/private_space_delete_nav"
+            app:startDestination="@id/ps_delete_fragment">
+    <fragment android:id="@+id/ps_delete_fragment"
+              android:name="com.android.settings.privatespace.delete.PrivateSpaceDeleteFragment"
+              android:label="fragment_ps_delete">
+        <action
+            android:id="@+id/action_authenticate_delete"
+            app:destination="@id/ps_delete_progress_fragment"/>
+    </fragment>
+    <fragment android:id="@+id/ps_delete_progress_fragment"
+              android:name="com.android.settings.privatespace.delete.PrivateSpaceDeletionProgressFragment"
+              android:label="fragment_ps_auto_advance"/>
+</navigation>
diff --git a/res/navigation/privatespace_main_context_nav.xml b/res/navigation/privatespace_main_context_nav.xml
new file mode 100644
index 0000000..f76afac
--- /dev/null
+++ b/res/navigation/privatespace_main_context_nav.xml
@@ -0,0 +1,68 @@
+<?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_set_lock_fragment"
+            app:destination="@id/ps_profile_lock_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"/>
+        <action
+            android:id="@+id/action_success_fragment"
+            app:destination="@id/ps_profile_success_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_advance_login_error"
+            app:destination="@id/ps_account_error_fragment"/>
+    </fragment>
+    <action android:id="@+id/action_success_fragment"
+            app:destination="@id/ps_profile_success_fragment"/>
+</navigation>
diff --git a/res/navigation/remote_auth_navigation.xml b/res/navigation/remote_auth_navigation.xml
new file mode 100644
index 0000000..356a57f
--- /dev/null
+++ b/res/navigation/remote_auth_navigation.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.
+-->
+
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+            xmlns:app="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/remote_auth_navigation">
+
+    <fragment android:id="@+id/remote_auth_enroll_introduction_fragment"
+              android:name="com.android.settings.remoteauth.introduction.RemoteAuthEnrollIntroduction"
+              android:label="fragment_enroll_introduction">
+        <action
+            android:id="@+id/action_introduction_to_enrolling"
+            app:destination="@id/remote_auth_enroll_enrolling_fragment"/>
+    </fragment>
+
+    <fragment android:id="@+id/remote_auth_enroll_enrolling_fragment"
+              android:name="com.android.settings.remoteauth.enrolling.RemoteAuthEnrollEnrolling"
+              android:label="fragment_enroll_enrolling">
+        <action
+            android:id="@+id/action_enrolling_to_finish"
+            app:destination="@id/remote_auth_enroll_finish_fragment"/>
+    </fragment>
+
+    <fragment android:id="@+id/remote_auth_enroll_finish_fragment"
+              android:name="com.android.settings.remoteauth.finish.RemoteAuthEnrollFinish"
+              android:label="fragment_enroll_finish">
+        <action
+            android:id="@+id/action_finish_to_settings"
+            app:destination="@id/remote_auth_settings_fragment"/>
+    </fragment>
+
+    <fragment android:id="@+id/remote_auth_settings_fragment"
+              android:name="com.android.settings.remoteauth.settings.RemoteAuthSettings"
+              android:label="fragment_settings">
+        <action
+            android:id="@+id/action_settings_to_introduction"
+            app:destination="@id/remote_auth_enroll_introduction_fragment"/>
+    </fragment>
+</navigation>
\ No newline at end of file
diff --git a/res/raw/fold_setting_grace_period_selective_stay_awake_lottie.json b/res/raw/fold_setting_grace_period_selective_stay_awake_lottie.json
new file mode 100644
index 0000000..db56ef4
--- /dev/null
+++ b/res/raw/fold_setting_grace_period_selective_stay_awake_lottie.json
@@ -0,0 +1 @@
+{"v":"5.12.1","fr":60,"ip":0,"op":391,"w":412,"h":300,"nm":"Foldable_FoldingSetting_EDU_02_412x300_export","ddd":0,"assets":[{"id":"comp_0","nm":"Lockscreen","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"lock","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.5,214,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[5.921,11.333],[-9.868,11.333],[-9.868,-2],[5.921,-2]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0.515,-0.522],[0.724,0],[0.515,0.522],[0,0.733],[-0.515,0.522],[-0.724,0],[-0.515,-0.522],[0,-0.733]],"o":[[-0.515,0.522],[-0.724,0],[-0.515,-0.522],[0,-0.733],[0.515,-0.522],[0.724,0],[0.515,0.522],[0,0.733]],"v":[[-0.115,6.55],[-1.974,7.333],[-3.832,6.55],[-4.605,4.667],[-3.832,2.783],[-1.974,2],[-0.115,2.783],[0.658,4.667]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-0.515,-0.522],[-0.724,0],[0,0],[-0.515,0.522],[0,0.733],[0,0],[0.515,0.522],[0.724,0],[0,0],[0,0],[-0.768,0.778],[-1.096,0],[-0.768,-0.778],[0,-1.111],[0,0],[1.283,1.3],[1.82,0],[1.283,-1.3],[0,-1.844],[0,0],[0,0],[0.515,-0.522],[0,-0.733],[0,0]],"o":[[0.515,0.522],[0,0],[0.724,0],[0.515,-0.522],[0,0],[0,-0.733],[-0.515,-0.522],[0,0],[0,0],[0,-1.111],[0.768,-0.778],[1.096,0],[0.768,0.778],[0,0],[0,-1.844],[-1.283,-1.3],[-1.82,0],[-1.283,1.3],[0,0],[0,0],[-0.724,0],[-0.515,0.522],[0,0],[0,0.733]],"v":[[-11.727,13.217],[-9.868,14],[5.921,14],[7.78,13.217],[8.553,11.333],[8.553,-2],[7.78,-3.883],[5.921,-4.667],[1.974,-4.667],[1.974,-7.333],[3.125,-10.167],[5.921,-11.333],[8.717,-10.167],[9.868,-7.333],[12.5,-7.333],[10.576,-12.05],[5.921,-14],[1.266,-12.05],[-0.658,-7.333],[-0.658,-4.667],[-9.868,-4.667],[-11.727,-3.883],[-12.5,-2],[-12.5,11.333]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"clock","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.116,143.317,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.92,-2.182],[0,-2.945],[0,0],[-0.894,-2.182],[-1.578,-1.209],[-2.104,0],[-1.604,1.209],[-0.868,2.182],[0,2.919],[0.894,2.182],[1.604,1.21],[2.103,0],[1.604,-1.21]],"o":[[-0.894,2.182],[0,0],[0,2.971],[0.92,2.182],[1.604,1.183],[2.077,0],[1.604,-1.209],[0.894,-2.209],[0,-2.945],[-0.868,-2.182],[-1.578,-1.21],[-2.104,0],[-1.578,1.21]],"v":[[-20.775,-24.257],[-22.116,-16.565],[-22.116,-16.565],[-20.775,-8.835],[-17.028,-3.747],[-11.467,-1.972],[-5.945,-3.786],[-2.238,-8.874],[-0.897,-16.565],[-2.238,-24.257],[-5.945,-29.344],[-11.467,-31.159],[-17.028,-29.344]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.789,-2.051],[0,-2.735],[0,0],[0.789,-2.051],[1.446,-1.157],[1.972,0],[1.446,1.131],[0.815,2.051],[0,2.708],[-0.789,2.051],[-1.446,1.131],[-1.92,0],[-1.446,-1.157]],"o":[[0.815,2.051],[0,0],[0,2.735],[-0.789,2.051],[-1.446,1.131],[-1.946,0],[-1.446,-1.157],[-0.789,-2.077],[0,-2.735],[0.815,-2.051],[1.472,-1.157],[1.946,0],[1.446,1.131]],"v":[[-3.066,-23.744],[-1.843,-16.565],[-1.843,-16.565],[-3.027,-9.387],[-6.379,-4.575],[-11.507,-2.879],[-16.594,-4.575],[-19.986,-9.387],[-21.17,-16.565],[-19.986,-23.744],[-16.594,-28.516],[-11.507,-30.252],[-6.419,-28.516]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-1.394,-0.763],[-1.604,0],[0,0],[-0.868,0.316],[-0.657,0.473],[-0.394,0.526],[0,0],[0,0],[0,0],[-0.289,0.92],[0,1.157],[0.815,1.367],[1.42,0.815],[1.814,0],[1.42,-0.815],[0.815,-1.394],[0,-1.735],[-0.841,-1.367]],"o":[[1.394,0.763],[0,0],[1.078,0],[0.868,-0.316],[0.684,-0.5],[0,0],[0,0],[0,0],[0.526,-0.789],[0.316,-0.92],[0,-1.709],[-0.815,-1.394],[-1.42,-0.841],[-1.762,0],[-1.42,0.815],[-0.815,1.367],[0,1.735],[0.868,1.341]],"v":[[6.616,-14.317],[11.112,-13.173],[11.112,-13.173],[14.031,-13.647],[16.318,-14.83],[17.936,-16.368],[8.746,-2.524],[9.574,-2.012],[19.04,-16.447],[20.263,-19.011],[20.736,-22.127],[19.513,-26.741],[16.161,-30.054],[11.309,-31.317],[6.537,-30.094],[3.184,-26.781],[1.962,-22.127],[3.224,-17.473]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.736,-1.262],[0,-1.525],[0,0],[0.815,-1.236],[1.288,-0.657],[1.473,0],[1.315,0.71],[0.789,1.21],[0,1.551],[-0.736,1.262],[-1.262,0.736],[-1.604,0],[-1.288,-0.763]],"o":[[0.736,1.236],[0,0],[0,1.657],[-0.815,1.21],[-1.288,0.657],[-1.473,0],[-1.288,-0.71],[-0.763,-1.236],[0,-1.551],[0.736,-1.262],[1.288,-0.736],[1.63,0],[1.288,0.763]],"v":[[18.724,-26.268],[19.829,-22.127],[19.829,-22.127],[18.606,-17.788],[15.451,-14.988],[11.309,-14.002],[7.129,-15.067],[4.013,-17.946],[2.869,-22.127],[3.973,-26.347],[6.971,-29.344],[11.309,-30.449],[15.687,-29.305]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-0.789,1.288],[0,1.788],[0,0],[0.605,0.973],[1.131,0.578],[1.578,0.079],[-0.947,0.552],[-0.473,0.92],[0,1.209],[0.736,1.104],[1.262,0.578],[1.63,0],[1.525,-1.078],[0.605,-1.709],[0,0],[-1.367,0.973],[-1.972,0],[-1.104,-0.526],[-0.631,-0.999],[0,-1.394],[0.526,-0.894],[1.052,-0.526],[1.657,0],[0,0],[0,0],[0,0],[-1.21,-0.526],[-0.579,-0.973],[0,-1.262],[0.684,-1.157],[1.262,-0.631],[1.683,0],[1.236,0.552],[0.815,0.947],[0.368,1.209],[0,0],[-0.894,-1.025],[-1.367,-0.631],[-1.814,0],[-1.367,0.684]],"o":[[0.815,-1.288],[0,0],[0,-1.367],[-0.579,-0.999],[-1.104,-0.578],[1.446,-0.158],[0.947,-0.552],[0.473,-0.92],[0,-1.604],[-0.71,-1.131],[-1.262,-0.578],[-2.235,0],[-1.499,1.078],[0,0],[0.578,-1.578],[1.367,-0.973],[1.446,0],[1.104,0.526],[0.657,0.973],[0,1.183],[-0.5,0.894],[-1.052,0.526],[0,0],[0,0],[0,0],[1.841,0],[1.209,0.526],[0.605,0.947],[0,1.63],[-0.684,1.157],[-1.236,0.605],[-1.63,0],[-1.236,-0.552],[-0.789,-0.947],[0,0],[0.342,1.236],[0.894,1.025],[1.367,0.605],[1.814,0],[1.393,-0.71]],"v":[[-3.46,27.293],[-2.238,22.679],[-2.238,22.679],[-3.145,19.169],[-5.709,16.802],[-9.732,15.816],[-6.142,14.751],[-4.013,12.542],[-3.303,9.348],[-4.407,5.285],[-7.365,2.721],[-11.704,1.854],[-17.344,3.471],[-20.499,7.652],[-19.631,8.046],[-16.713,4.22],[-11.704,2.761],[-7.878,3.55],[-5.275,5.837],[-4.289,9.387],[-5.078,12.503],[-7.405,14.633],[-11.467,15.422],[-14.425,15.422],[-14.425,16.329],[-11.388,16.329],[-6.813,17.118],[-4.131,19.366],[-3.224,22.679],[-4.249,26.86],[-7.168,29.542],[-11.546,30.449],[-15.845,29.621],[-18.922,27.372],[-20.657,24.138],[-21.525,24.533],[-19.671,27.925],[-16.279,30.409],[-11.507,31.317],[-6.734,30.291]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[0.92,-2.182],[0,-2.945],[-0.894,-2.182],[-1.578,-1.209],[-2.104,0],[-1.604,1.209],[-0.868,2.182],[0,2.919],[0.894,2.182],[1.604,1.209],[2.104,0],[1.604,-1.209]],"o":[[-0.894,2.182],[0,2.971],[0.92,2.182],[1.604,1.183],[2.077,0],[1.604,-1.209],[0.894,-2.209],[0,-2.945],[-0.868,-2.182],[-1.578,-1.209],[-2.104,0],[-1.578,1.209]],"v":[[2.238,8.874],[0.897,16.565],[2.238,24.296],[5.985,29.384],[11.546,31.159],[17.068,29.344],[20.775,24.256],[22.116,16.565],[20.775,8.874],[17.068,3.786],[11.546,1.972],[5.985,3.786]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":6,"ty":"sh","ix":7,"ks":{"a":0,"k":{"i":[[-0.789,-2.051],[0,-2.735],[0.789,-2.051],[1.446,-1.157],[1.972,0],[1.446,1.131],[0.815,2.051],[0,2.708],[-0.789,2.051],[-1.446,1.131],[-1.919,0],[-1.446,-1.157]],"o":[[0.815,2.051],[0,2.735],[-0.789,2.051],[-1.446,1.131],[-1.946,0],[-1.446,-1.157],[-0.789,-2.077],[0,-2.735],[0.815,-2.051],[1.473,-1.157],[1.946,0],[1.446,1.131]],"v":[[19.947,9.387],[21.17,16.565],[19.986,23.744],[16.634,28.556],[11.507,30.252],[6.419,28.556],[3.027,23.744],[1.843,16.565],[3.027,9.387],[6.419,4.615],[11.507,2.879],[16.595,4.615]],"c":true},"ix":2},"nm":"Path 7","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":9,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.25,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.314],[0,0],[6.829,0],[0,0],[0,-4.314],[0,0],[-4.553,0]],"o":[[4.553,0],[0,0],[0,-4.314],[0,0],[-4.553,0],[0,0],[0,4.314],[0,0]],"v":[[48.319,100.5],[57.25,91.034],[57.25,-94.611],[46.743,-102.5],[-51.497,-102.5],[-56.75,-95.67],[-56.75,93.67],[-51.497,100.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":5,"k":{"a":0,"k":[0.109,0.929,0.8,0.816,0.321,0.775,0.733,0.847,0.534,0.62,0.667,0.878,0.767,0.439,0.59,0.914,1,0.259,0.514,0.949],"ix":9}},"s":{"a":0,"k":[-63.755,106.612],"ix":5},"e":{"a":0,"k":[133.428,106.612],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Folded Gmail UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Ellipse 7590","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[86,6,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7590","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 7594","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,160,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7594","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Ellipse 7593","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,128,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7593","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Ellipse 7592","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,96,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7592","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Ellipse 7591","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,64,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7591","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Ellipse 7589","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,32,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7589","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Rectangle 3470513","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,162.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470513","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Rectangle 3470511","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,130.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470511","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Rectangle 3470509","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,98.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470509","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Rectangle 3470507","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,66.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Rectangle 3470505","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,34.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Rectangle 3470512","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,156,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470512","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Rectangle 3470510","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,124,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470510","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Rectangle 3470508","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,92,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470508","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Rectangle 3470506","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,60,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470506","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Rectangle 3470504","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,28,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470504","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Rectangle 3470503","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[37,6.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[74,13],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470503","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_2","nm":"Unfolded Gmail UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectangle 3470520","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,141.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470520","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle 3470519","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,132.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470519","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Rectangle 3470518","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,123.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470518","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Rectangle 3470517","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,114.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470517","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Rectangle 3470516","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,105.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470516","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Rectangle 3470515","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,96.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470515","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Ellipse 7584","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[296.494,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7584","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Ellipse 7598","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,209.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7598","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Ellipse 7597","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,182.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7597","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Ellipse 7596","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,155.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7596","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Ellipse 7595","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,128.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7595","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Ellipse 7579","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,101.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7579","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Rectangle 3470514","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[212.994,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470514","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Rectangle 3470502","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.994,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[32,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470502","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Rectangle 3470530","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,210.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470530","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Rectangle 3470528","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,183.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470528","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Rectangle 3470526","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,156.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470526","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Rectangle 3470524","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,129.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470524","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Rectangle 3470522","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,102.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470522","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Rectangle 3470529","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,204.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470529","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Rectangle 3470527","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,177.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470527","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Rectangle 3470525","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,150.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470525","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Rectangle 3470523","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,123.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470523","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Rectangle 3470521","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,96.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470521","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 4","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[88,88,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":608,"st":30,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[0,0,0],"to":[-10.833,0,0],"ti":[10.833,0,0]},{"t":80,"s":[-65,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":608,"st":40,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,0],[5.09,0],[0,0],[-2.838,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[-2.838,0],[0,0],[5.089,0],[0,0]],"v":[[63.495,137.576],[54.264,146.808],[-54.501,114.37],[-54.56,-114.429],[54.282,-146.679],[63.915,-137.047]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,0],[5.09,0],[0,0],[-2.838,0],[0,0],[0,-9.436]],"o":[[0,8.464],[0,0],[-2.838,0],[0,0],[5.089,0],[0,0]],"v":[[63.623,136.911],[54.466,146.518],[-54.319,117.62],[-54.594,-117.179],[54.309,-145.697],[63.951,-135.939]],"c":true}]},{"t":80,"s":[{"i":[[0,0],[5.09,0],[0,0],[0,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[0,0],[0,0],[5.089,0],[0,0]],"v":[[63.599,105.138],[54.368,114.37],[-60.431,114.394],[-60.313,-114.39],[54.31,-114.429],[63.943,-104.797]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":608,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Swipe","parent":7,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":180,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":190,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":211,"s":[100]},{"t":221,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.2,"y":0},"t":180,"s":[206,226.954,0],"to":[0,0,0],"ti":[0,0,0]},{"t":200,"s":[206,205.954,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-0.546,55.954,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-6.627,0],[0,-6.627],[6.627,0],[0,6.627]],"o":[[6.627,0],[0,6.627],[-6.627,0],[0,-6.627]],"v":[[0,-12],[12,0],[0,12],[-12,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-0.546,55.954],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":180,"op":780,"st":180,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Mask","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.366,3.265],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[-1.491,-2.057],[0,0],[0,0],[0,0]],"v":[[61.778,-30],[61.807,42.127],[58.087,34.369],[54.722,30.063],[-56.028,30],[-56.028,-30.127]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-2.722,-132.437],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":200,"op":249,"st":200,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"Lockscreen","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":90,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":214,"s":[100]},{"t":224,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.644,"y":1},"o":{"x":0.7,"y":0},"t":200,"s":[206,150,0],"to":[0,0,0],"ti":[0,0,0]},{"t":230,"s":[206,-53,0]}],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":51,"op":249,"st":51,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Folded Gmail UI","parent":2,"refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[67.273,-5.682,0],"ix":2,"l":2},"a":{"a":0,"k":[46,83,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":209,"s":[75,75,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":214,"s":[90.455,90.455,100]},{"t":239,"s":[113.636,113.636,100]}],"ix":6,"l":2}},"ao":0,"w":92,"h":166,"ip":208,"op":606,"st":208,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[99,99,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":608,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Mask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[206,150,0],"to":[1.444,0,0],"ti":[-2,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[214.667,150,0],"to":[2,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[218,150,0],"to":[1.083,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[221.167,150,0],"to":[1.083,0,0],"ti":[-1.111,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[224.5,150,0],"to":[1.111,0,0],"ti":[-1.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[227.833,150,0],"to":[1.333,0,0],"ti":[-1.528,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[232.5,150,0],"to":[1.528,0,0],"ti":[-1.583,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[237,150,0],"to":[1.583,0,0],"ti":[-1.889,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[242,150,0],"to":[1.889,0,0],"ti":[-2.167,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[248.333,150,0],"to":[2.167,0,0],"ti":[-2.278,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[255,150,0],"to":[2.278,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[262,150,0],"to":[2.5,0,0],"ti":[-3.556,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[270,150,0],"to":[3.556,0,0],"ti":[-2.222,0,0]},{"t":61,"s":[283.333,150,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[311.96,210.22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.52,5.61],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":608,"st":30,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"Unfolded Gmail UI","parent":2,"tt":1,"tp":10,"refId":"comp_2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":50,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[113.636,113.636,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"t":61,"s":[0,100,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-2.282,113.897],[-17.976,113.897],[-121.273,113.897],[-130.36,105.242],[-130.36,-104.809],[-121.273,-113.897],[-1.197,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-8.034,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.243],[118.937,113.897],[20.423,113.897],[-1.182,113.897],[-16.193,117.028],[-121.36,141.834],[-130.185,134.804],[-130.289,-134.192],[-121.277,-142.03],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"t":61,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-1.125,113.897],[-16.101,117.189],[-121.089,144.98],[-130.176,136.326],[-130.286,-135.704],[-121.198,-144.793],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[99,99,100]},{"t":61,"s":[-1,99,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[116.74,102.33,0],"ix":1,"l":2},"s":{"a":0,"k":[114.5,114.5,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[115.717,-109.174],[-119.283,-109.174],[-119.283,299.701],[115.717,299.701]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.17,0],[0,0],[0,4.18],[0,0],[-4.17,0],[0,0],[0,-4.18]],"o":[[0,4.18],[0,0],[-4.18,0],[0,0],[0,-4.18],[0,0],[4.18,0],[0,0]],"v":[[112.07,92.13],[104.12,99.71],[-106.16,99.71],[-114.11,92.13],[-114.11,-91.75],[-106.16,-99.71],[104.12,-99.71],[112.07,-91.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.055,2.749],[0,0],[5.7,0],[0,0],[1.89,-1.05],[0.88,0.35],[0,0],[2.17,0],[0,0],[0,-5.7],[0,0],[-5.7,0],[0,0],[-1.89,1.05],[-0.85,-0.29],[0,0],[-2.17,0],[0,0],[0,5.7],[0,0],[0.055,2.493]],"o":[[0,0],[0,0],[0,-5.71],[0,0],[-2.17,0],[-0.88,0.35],[0,0],[-1.89,-1.06],[0,0],[-5.71,0],[0,0],[0,5.71],[0,0],[2.17,0],[0.83,-0.33],[0,0],[1.89,1.05],[0,0],[5.71,0],[0,0],[-0.069,-5.452],[0,0]],"v":[[114.45,-15.54],[114.45,-36.12],[114.45,-91.75],[104.12,-102.08],[6.42,-102.08],[0.23,-100.48],[-2.52,-100.47],[-2.55,-100.47],[-8.74,-102.08],[-106.16,-102.08],[-116.49,-91.75],[-116.49,91.75],[-106.16,102.08],[-8.54,102.08],[-2.35,100.48],[0.25,100.42],[0.35,100.48],[7.83,102.08],[104.12,102.08],[114.45,91.75],[114.45,31.38],[114.45,-0.88]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[1.133,-0.038],[0,0],[0,0],[0,0],[0,-1.46],[0,0],[1.133,-0.038],[0,0],[0,0],[0,0],[0,-1.46],[0,0]],"o":[[0,0],[0,0],[0,0],[1.133,0.038],[0,0],[0,1.46],[0,0],[0,0],[0,0],[1.133,0.038],[0,0],[0,1.46]],"v":[[115.165,-15.899],[114.482,-15.883],[114.517,-0.46],[115.165,-0.477],[117.209,2.203],[117.209,29.104],[115.165,31.783],[114.399,31.826],[114.42,-35.723],[115.165,-35.719],[117.209,-33.039],[117.209,-18.579]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[116.74,102.33],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":608,"st":30,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":0,"k":[99,99,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":607,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.291,0],[0,0],[0,15.652],[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0],[15.185,0],[0,0],[0,15.544]],"v":[[178.179,150],[-178.179,150],[-206,121.522],[-206,-121.522],[-178.179,-150],[178.286,-150],[206,-121.522],[206,121.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":608,"st":40,"ct":1,"bm":0}],"markers":[{"tm":200,"cm":"swipe up\r","dr":0},{"tm":390,"cm":"End","dr":0}],"props":{}}
\ No newline at end of file
diff --git a/res/raw/fold_setting_selective_stay_awake_lottie.json b/res/raw/fold_setting_selective_stay_awake_lottie.json
new file mode 100644
index 0000000..5271145
--- /dev/null
+++ b/res/raw/fold_setting_selective_stay_awake_lottie.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":244,"w":412,"h":300,"nm":"Foldable_FoldingSetting_EDU_02_412x300","ddd":0,"assets":[{"id":"comp_0","nm":"Folded Youtube UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectangle 3470505","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[195.532,168,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[29,6],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle 3470502","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.032,148.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[96,9],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470502","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"▽ Group 24","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.647,94.93,0],"ix":2,"l":2},"a":{"a":0,"k":[19,5.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":38,"h":11,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Vector 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[194.532,63,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.87,0],[0,-4.431],[0,0],[-2.777,0],[-1.047,-0.656]],"o":[[4.917,0],[0,0],[0.956,-2.133],[1.411,0],[1.184,-3.118]],"v":[[4.621,-4],[13.5,4],[-13.5,3.959],[-7.444,0.267],[-3.711,1.333]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"▽ Group 23","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[227.627,73.222,0],"ix":2,"l":2},"a":{"a":0,"k":[23,6,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":46,"h":12,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":0,"nm":"▽ Group 21","refId":"comp_3","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[222.901,108.93,0],"ix":2,"l":2},"a":{"a":0,"k":[9.5,11.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":19,"h":23,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"▽ Group 18","refId":"comp_5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[241.405,106.27,0],"ix":2,"l":2},"a":{"a":0,"k":[9.5,14,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":19,"h":28,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Rectangle 3470504","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.032,89.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[96,69],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.388235300779,0.407843142748,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470504","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":0,"nm":"▽ Group 17","refId":"comp_8","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[163.262,132.883,0],"ix":2,"l":2},"a":{"a":0,"k":[2,4,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":4,"h":8,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Vector 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.282,133,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[36.25,0],[-36.25,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.933333337307,0.403921574354,0.360784322023,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Vector 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[233.032,133,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[22,0],[-22,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Ellipse 7581","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[168.032,164,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[14,14],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7581","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Rectangle 3470507","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[207.032,210.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[96,69],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_1","nm":"▽ Group 24","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[19.069,5.305,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.951,0],[0,-5.239],[0.044,-0.4],[0,0],[-2.087,0],[-0.755,-0.355],[-3.241,0],[-1.376,-1.465]],"o":[[5.194,0],[0,0.4],[0,0],[0.932,-1.687],[0.844,0],[1.154,-2.886],[2.175,0],[1.465,-3.374]],"v":[[9.656,-5.305],[19.069,4.107],[19.024,5.305],[-19.069,5.305],[-14.229,2.464],[-11.832,2.997],[-4.64,-1.887],[0.91,0.466]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_2","nm":"▽ Group 23","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[22.865,6.238,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.376,-5.239],[-1.288,0],[-0.71,-2.619],[0,0],[-3.774,0],[-1.421,-0.977],[-5.372,0]],"o":[[0.977,-0.71],[2.841,0],[0,0],[1.199,-3.374],[1.82,0],[1.598,-4.795],[5.638,0]],"v":[[13.408,2.864],[16.915,1.798],[22.865,6.238],[-22.865,6.238],[-14.696,0.466],[-9.723,2.064],[1.731,-6.238]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_3","nm":"▽ Group 21","fr":60,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"▽ Group 22","refId":"comp_4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.264,11.313,0],"ix":2,"l":2},"a":{"a":0,"k":[9.5,11.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":19,"h":23,"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_4","nm":"▽ Group 22","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.264,11.313,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-9.264,11.313],[9.264,11.313],[3.421,1.621],[7.839,1.621],[0,-11.313],[-7.839,1.621],[-3.421,1.621]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.017,10.6],[-7.981,10.6],[-2.102,0.909],[-6.52,0.909],[0.036,-9.959],[6.592,0.909],[2.173,0.909]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_5","nm":"▽ Group 18","fr":60,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"▽ Group 20","refId":"comp_6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.264,11.313,0],"ix":2,"l":2},"a":{"a":0,"k":[9.5,11.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":19,"h":23,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"▽ Group 19","refId":"comp_7","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.265,25.197,0],"ix":2,"l":2},"a":{"a":0,"k":[3,3,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":6,"h":6,"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_6","nm":"▽ Group 20","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.264,11.313,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-9.264,11.313],[9.264,11.313],[3.421,1.621],[7.839,1.621],[0,-11.313],[-7.839,1.621],[-3.421,1.621]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[8.017,10.6],[-7.981,10.6],[-2.102,0.909],[-6.52,0.909],[0.036,-9.959],[6.592,0.909],[2.173,0.909]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_7","nm":"▽ Group 19","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[2.957,2.779,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-2.957,2.779],[2.957,2.779],[2.957,-2.779],[2.245,-2.779],[2.245,2.067],[-2.245,2.067],[-2.245,-2.779],[-2.957,-2.779]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_8","nm":"▽ Group 17","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[4.46,3.883,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,3.883],[0,-3.883]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,3.883,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,3.883],[0,-3.883]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_9","nm":"Unfolded YouTube UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"▽ Group 9","refId":"comp_10","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[156.94,145.03,0],"ix":2,"l":2},"a":{"a":0,"k":[43,12,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":86,"h":24,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector 6","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[176.64,71.83,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.5,0],[0,-10.8],[0,0],[-6.1,0],[-2.3,-1.6]],"o":[[10.8,0],[0,0],[2.1,-5.2],[3.1,0],[2.6,-7.6]],"v":[[10.15,-9.75],[29.65,9.75],[-29.65,9.65],[-16.35,0.65],[-8.15,3.25]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"▽ Group 8","refId":"comp_11","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[251.49,96.13,0],"ix":2,"l":2},"a":{"a":0,"k":[51.5,14,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":103,"h":28,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"▽ Group 7","refId":"comp_12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.22,226.963,0],"ix":2,"l":2},"a":{"a":0,"k":[2,4,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":4,"h":8,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Vector 5","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[166.369,227.275,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[44,0],[-44,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.933333337307,0.403921574354,0.360784322023,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Vector 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[256.869,227.275,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[46.5,0],[-46.5,0]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":4,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":0,"nm":"▽ Group 5","refId":"comp_13","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[240.856,176.561,0],"ix":2,"l":2},"a":{"a":0,"k":[21,25.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":42,"h":51,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"▽ Group 2","refId":"comp_15","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[282.536,170.581,0],"ix":2,"l":2},"a":{"a":0,"k":[21,31.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":42,"h":63,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Rectangle 3470504","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[204.99,132.58,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[216,155],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.372549027205,0.388235300779,0.407843142748,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470504","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_10","nm":"▽ Group 9","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[42.95,11.95,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-8.9,0],[0,-11.8],[0.1,-0.9],[0,0],[-4.7,0],[-1.7,-0.8],[-7.3,0],[-3.1,-3.3]],"o":[[11.7,0],[0,0.9],[0,0],[2.1,-3.8],[1.9,0],[2.6,-6.5],[4.9,0],[3.3,-7.6]],"v":[[21.75,-11.95],[42.95,9.25],[42.85,11.95],[-42.95,11.95],[-32.05,5.55],[-26.65,6.75],[-10.45,-4.25],[2.05,1.05]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_11","nm":"▽ Group 8","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[51.5,14.05,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.1,-11.8],[-2.9,0],[-1.6,-5.9],[0,0],[-8.5,0],[-3.2,-2.2],[-12.1,0]],"o":[[2.2,-1.6],[6.4,0],[0,0],[2.7,-7.6],[4.1,0],[3.6,-10.8],[12.7,0]],"v":[[30.2,6.45],[38.1,4.05],[51.5,14.05],[-51.5,14.05],[-33.1,1.05],[-21.9,4.65],[3.9,-14.05]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_12","nm":"▽ Group 7","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[4.46,3.883,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,3.883],[0,-3.883]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,3.883,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[0,3.883],[0,-3.883]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_13","nm":"▽ Group 5","fr":60,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"▽ Group 6","refId":"comp_14","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.866,25.481,0],"ix":2,"l":2},"a":{"a":0,"k":[21,25.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":42,"h":51,"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_14","nm":"▽ Group 6","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.866,25.481,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-20.866,25.481],[20.866,25.481],[7.704,3.652],[17.656,3.652],[0,-25.481],[-17.656,3.652],[-7.704,3.652]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.057,23.876],[-17.977,23.876],[-4.735,2.046],[-14.687,2.046],[0.08,-22.431],[14.847,2.046],[4.896,2.046]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_15","nm":"▽ Group 2","fr":60,"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"▽ Group 4","refId":"comp_16","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.866,25.481,0],"ix":2,"l":2},"a":{"a":0,"k":[21,25.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":42,"h":51,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"▽ Group 3","refId":"comp_17","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.863,56.741,0],"ix":2,"l":2},"a":{"a":0,"k":[6.5,6.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":13,"h":13,"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_16","nm":"▽ Group 4","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[20.866,25.481,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-20.866,25.481],[20.866,25.481],[7.704,3.652],[17.656,3.652],[0,-25.481],[-17.656,3.652],[-7.704,3.652]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[18.057,23.876],[-17.977,23.876],[-4.735,2.046],[-14.687,2.046],[0.08,-22.431],[14.847,2.046],[4.896,2.046]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]},{"id":"comp_17","nm":"▽ Group 3","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Vector","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6.661,6.26,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-6.661,6.26],[6.661,6.26],[6.661,-6.26],[5.056,-6.26],[5.056,4.655],[-5.056,4.655],[-5.056,-6.26],[-6.661,-6.26]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 4","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[88,88,100],"ix":6,"l":2}},"ao":0,"ip":-6,"op":630,"st":30,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[0,0,0],"to":[-10.833,0,0],"ti":[10.833,0,0]},{"t":80,"s":[-65,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":244,"st":40,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,0],[5.09,0],[0,0],[0,2.839],[0,0],[-2.838,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[-2.838,0],[0,0],[0,-2.838],[0,0],[5.089,0],[0,0]],"v":[[63.495,137.576],[54.264,146.808],[-54.501,114.37],[-59.648,109.223],[-59.708,-109.282],[-54.56,-114.429],[54.282,-146.679],[63.915,-137.047]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,0],[5.09,0],[0,0],[0,2.838],[0,0],[-2.838,0],[0,0],[0,-9.436]],"o":[[0,8.464],[0,0],[-2.838,0],[0,0],[0,-2.838],[0,0],[5.089,0],[0,0]],"v":[[63.623,136.911],[54.466,146.518],[-54.319,117.62],[-59.648,109.223],[-59.708,-109.282],[-54.594,-117.179],[54.309,-145.697],[63.951,-135.939]],"c":true}]},{"t":80,"s":[{"i":[[0,0],[5.09,0],[0,0],[0,2.838],[0,0],[-2.838,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[-2.838,0],[0,0],[0,-2.838],[0,0],[5.089,0],[0,0]],"v":[[63.599,105.138],[54.368,114.37],[-54.501,114.37],[-59.648,109.223],[-59.708,-109.282],[-54.56,-114.429],[54.31,-114.429],[63.943,-104.797]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":245,"st":39,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".black 2","cl":"black","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[99,99,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":245,"st":39,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Folded Youtube UI","parent":2,"tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"t":90,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[65,0,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[113.636,113.636,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":51,"op":651,"st":51,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[99,99,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":245,"st":39,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Shape Layer 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[206,150,0],"to":[1.444,0,0],"ti":[-2,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[214.667,150,0],"to":[2,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[218,150,0],"to":[1.083,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[221.167,150,0],"to":[1.083,0,0],"ti":[-1.111,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[224.5,150,0],"to":[1.111,0,0],"ti":[-1.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[227.833,150,0],"to":[1.333,0,0],"ti":[-1.528,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[232.5,150,0],"to":[1.528,0,0],"ti":[-1.583,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[237,150,0],"to":[1.583,0,0],"ti":[-1.889,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[242,150,0],"to":[1.889,0,0],"ti":[-2.167,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[248.333,150,0],"to":[2.167,0,0],"ti":[-2.278,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[255,150,0],"to":[2.278,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[262,150,0],"to":[2.5,0,0],"ti":[-3.556,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[270,150,0],"to":[3.556,0,0],"ti":[-2.222,0,0]},{"t":61,"s":[283.333,150,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[311.96,210.22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.52,5.61],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":630,"st":30,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Unfolded YouTube UI","parent":2,"tt":1,"refId":"comp_9","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":50,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[113.636,113.636,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"t":61,"s":[0,100,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-2.282,113.897],[-17.976,113.897],[-121.273,113.897],[-130.36,105.242],[-130.36,-104.809],[-121.273,-113.897],[-1.197,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-8.034,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.243],[118.937,113.897],[20.423,113.897],[-1.182,113.897],[-16.193,117.028],[-121.36,141.834],[-130.185,134.804],[-130.289,-134.192],[-121.277,-142.03],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"t":61,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-1.125,113.897],[-16.101,117.189],[-121.089,144.98],[-130.176,136.326],[-130.286,-135.704],[-121.198,-144.793],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[99,99,100]},{"t":61,"s":[-1,99,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".grey601","cl":"grey601","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[116.74,102.33,0],"ix":1,"l":2},"s":{"a":0,"k":[114.5,114.5,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[115.717,-109.174],[-119.283,-109.174],[-119.283,299.701],[115.717,299.701]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.17,0],[0,0],[0,4.18],[0,0],[-4.17,0],[0,0],[0,-4.18]],"o":[[0,4.18],[0,0],[-4.18,0],[0,0],[0,-4.18],[0,0],[4.18,0],[0,0]],"v":[[112.07,92.13],[104.12,99.71],[-106.16,99.71],[-114.11,92.13],[-114.11,-91.75],[-106.16,-99.71],[104.12,-99.71],[112.07,-91.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.055,2.749],[0,0],[5.7,0],[0,0],[1.89,-1.05],[0.88,0.35],[0,0],[2.17,0],[0,0],[0,-5.7],[0,0],[-5.7,0],[0,0],[-1.89,1.05],[-0.85,-0.29],[0,0],[-2.17,0],[0,0],[0,5.7],[0,0],[0.055,2.493]],"o":[[0,0],[0,0],[0,-5.71],[0,0],[-2.17,0],[-0.88,0.35],[0,0],[-1.89,-1.06],[0,0],[-5.71,0],[0,0],[0,5.71],[0,0],[2.17,0],[0.83,-0.33],[0,0],[1.89,1.05],[0,0],[5.71,0],[0,0],[-0.069,-5.452],[0,0]],"v":[[114.45,-15.54],[114.45,-36.12],[114.45,-91.75],[104.12,-102.08],[6.42,-102.08],[0.23,-100.48],[-2.52,-100.47],[-2.55,-100.47],[-8.74,-102.08],[-106.16,-102.08],[-116.49,-91.75],[-116.49,91.75],[-106.16,102.08],[-8.54,102.08],[-2.35,100.48],[0.25,100.42],[0.35,100.48],[7.83,102.08],[104.12,102.08],[114.45,91.75],[114.45,31.38],[114.45,-0.88]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[116.74,102.33],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":254,"st":30,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":0,"k":[99,99,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":244,"st":40,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.291,0],[0,0],[0,15.652],[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0],[15.185,0],[0,0],[0,15.544]],"v":[[178.179,150],[-178.179,150],[-206,121.522],[-206,-121.522],[-178.179,-150],[178.286,-150],[206,-121.522],[206,121.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":245,"st":10,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/raw/fold_setting_sleep_on_fold_lottie.json b/res/raw/fold_setting_sleep_on_fold_lottie.json
new file mode 100644
index 0000000..5204885
--- /dev/null
+++ b/res/raw/fold_setting_sleep_on_fold_lottie.json
@@ -0,0 +1 @@
+{"v":"5.12.1","fr":60,"ip":0,"op":241,"w":412,"h":300,"nm":"Foldable_FoldingSetting_EDU_03b_412x300_export","ddd":0,"assets":[{"id":"comp_0","nm":"Lockscreen_Locked_Black","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"lock","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[205.5,213.75,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.386,-0.392],[-0.541,0],[0,0],[-0.386,0.392],[0,0.55],[0,0],[0.386,0.392],[0.541,0],[0,0],[0,0],[1.214,1.235],[1.726,0],[1.216,-1.235],[0,-1.752],[0,0],[0,0],[0.386,-0.392],[0,-0.55],[0,0]],"o":[[0.386,0.392],[0,0],[0.541,0],[0.386,-0.392],[0,0],[0,-0.55],[-0.386,-0.392],[0,0],[0,0],[0,-1.752],[-1.214,-1.235],[-1.726,0],[-1.216,1.235],[0,0],[0,0],[-0.541,0],[-0.386,0.392],[0,0],[0,0.55]],"v":[[-9.922,13.413],[-8.531,14],[8.531,14],[9.922,13.413],[10.5,12],[10.5,-2.467],[9.922,-3.879],[8.531,-4.467],[6.234,-4.467],[6.234,-7.667],[4.413,-12.148],[0.003,-14],[-4.41,-12.148],[-6.234,-7.667],[-6.234,-4.467],[-8.531,-4.467],[-9.922,-3.879],[-10.5,-2.467],[-10.5,12]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.531,12],[-8.531,12],[-8.531,-2.467],[8.531,-2.467]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.492,-0.49],[0.696,0],[0.496,0.489],[0,0.678],[-0.492,0.544],[-0.696,0],[-0.496,-0.544],[0,-0.667]],"o":[[-0.492,0.49],[-0.696,0],[-0.496,-0.489],[0,-0.678],[0.492,-0.544],[0.696,0],[0.496,0.544],[0,0.688]],"v":[[1.788,6.599],[0.006,7.333],[-1.783,6.6],[-2.527,4.85],[-1.788,3.017],[-0.006,2.2],[1.783,3.017],[2.527,4.833]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.831,0.843],[-1.184,0],[-0.829,-0.843],[0,-1.204]],"o":[[0,0],[0,0],[0,-1.204],[0.831,-0.843],[1.184,0],[0.829,0.843],[0,0]],"v":[[4.266,-4.467],[-4.266,-4.467],[-4.266,-7.667],[-3.019,-10.736],[0.004,-12],[3.023,-10.736],[4.266,-7.667]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"clock","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.116,143.317,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.92,-2.182],[0,-2.945],[0,0],[-0.894,-2.182],[-1.578,-1.209],[-2.104,0],[-1.604,1.209],[-0.868,2.182],[0,2.919],[0.894,2.182],[1.604,1.21],[2.103,0],[1.604,-1.21]],"o":[[-0.894,2.182],[0,0],[0,2.971],[0.92,2.182],[1.604,1.183],[2.077,0],[1.604,-1.209],[0.894,-2.209],[0,-2.945],[-0.868,-2.182],[-1.578,-1.21],[-2.104,0],[-1.578,1.21]],"v":[[-20.775,-24.257],[-22.116,-16.565],[-22.116,-16.565],[-20.775,-8.835],[-17.028,-3.747],[-11.467,-1.972],[-5.945,-3.786],[-2.238,-8.874],[-0.897,-16.565],[-2.238,-24.257],[-5.945,-29.344],[-11.467,-31.159],[-17.028,-29.344]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-0.789,-2.051],[0,-2.735],[0,0],[0.789,-2.051],[1.446,-1.157],[1.972,0],[1.446,1.131],[0.815,2.051],[0,2.708],[-0.789,2.051],[-1.446,1.131],[-1.92,0],[-1.446,-1.157]],"o":[[0.815,2.051],[0,0],[0,2.735],[-0.789,2.051],[-1.446,1.131],[-1.946,0],[-1.446,-1.157],[-0.789,-2.077],[0,-2.735],[0.815,-2.051],[1.472,-1.157],[1.946,0],[1.446,1.131]],"v":[[-3.066,-23.744],[-1.843,-16.565],[-1.843,-16.565],[-3.027,-9.387],[-6.379,-4.575],[-11.507,-2.879],[-16.594,-4.575],[-19.986,-9.387],[-21.17,-16.565],[-19.986,-23.744],[-16.594,-28.516],[-11.507,-30.252],[-6.419,-28.516]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[-1.394,-0.763],[-1.604,0],[0,0],[-0.868,0.316],[-0.657,0.473],[-0.394,0.526],[0,0],[0,0],[0,0],[-0.289,0.92],[0,1.157],[0.815,1.367],[1.42,0.815],[1.814,0],[1.42,-0.815],[0.815,-1.394],[0,-1.735],[-0.841,-1.367]],"o":[[1.394,0.763],[0,0],[1.078,0],[0.868,-0.316],[0.684,-0.5],[0,0],[0,0],[0,0],[0.526,-0.789],[0.316,-0.92],[0,-1.709],[-0.815,-1.394],[-1.42,-0.841],[-1.762,0],[-1.42,0.815],[-0.815,1.367],[0,1.735],[0.868,1.341]],"v":[[6.616,-14.317],[11.112,-13.173],[11.112,-13.173],[14.031,-13.647],[16.318,-14.83],[17.936,-16.368],[8.746,-2.524],[9.574,-2.012],[19.04,-16.447],[20.263,-19.011],[20.736,-22.127],[19.513,-26.741],[16.161,-30.054],[11.309,-31.317],[6.537,-30.094],[3.184,-26.781],[1.962,-22.127],[3.224,-17.473]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-0.736,-1.262],[0,-1.525],[0,0],[0.815,-1.236],[1.288,-0.657],[1.473,0],[1.315,0.71],[0.789,1.21],[0,1.551],[-0.736,1.262],[-1.262,0.736],[-1.604,0],[-1.288,-0.763]],"o":[[0.736,1.236],[0,0],[0,1.657],[-0.815,1.21],[-1.288,0.657],[-1.473,0],[-1.288,-0.71],[-0.763,-1.236],[0,-1.551],[0.736,-1.262],[1.288,-0.736],[1.63,0],[1.288,0.763]],"v":[[18.724,-26.268],[19.829,-22.127],[19.829,-22.127],[18.606,-17.788],[15.451,-14.988],[11.309,-14.002],[7.129,-15.067],[4.013,-17.946],[2.869,-22.127],[3.973,-26.347],[6.971,-29.344],[11.309,-30.449],[15.687,-29.305]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ind":4,"ty":"sh","ix":5,"ks":{"a":0,"k":{"i":[[-0.789,1.288],[0,1.788],[0,0],[0.605,0.973],[1.131,0.578],[1.578,0.079],[-0.947,0.552],[-0.473,0.92],[0,1.209],[0.736,1.104],[1.262,0.578],[1.63,0],[1.525,-1.078],[0.605,-1.709],[0,0],[-1.367,0.973],[-1.972,0],[-1.104,-0.526],[-0.631,-0.999],[0,-1.394],[0.526,-0.894],[1.052,-0.526],[1.657,0],[0,0],[0,0],[0,0],[-1.21,-0.526],[-0.579,-0.973],[0,-1.262],[0.684,-1.157],[1.262,-0.631],[1.683,0],[1.236,0.552],[0.815,0.947],[0.368,1.209],[0,0],[-0.894,-1.025],[-1.367,-0.631],[-1.814,0],[-1.367,0.684]],"o":[[0.815,-1.288],[0,0],[0,-1.367],[-0.579,-0.999],[-1.104,-0.578],[1.446,-0.158],[0.947,-0.552],[0.473,-0.92],[0,-1.604],[-0.71,-1.131],[-1.262,-0.578],[-2.235,0],[-1.499,1.078],[0,0],[0.578,-1.578],[1.367,-0.973],[1.446,0],[1.104,0.526],[0.657,0.973],[0,1.183],[-0.5,0.894],[-1.052,0.526],[0,0],[0,0],[0,0],[1.841,0],[1.209,0.526],[0.605,0.947],[0,1.63],[-0.684,1.157],[-1.236,0.605],[-1.63,0],[-1.236,-0.552],[-0.789,-0.947],[0,0],[0.342,1.236],[0.894,1.025],[1.367,0.605],[1.814,0],[1.393,-0.71]],"v":[[-3.46,27.293],[-2.238,22.679],[-2.238,22.679],[-3.145,19.169],[-5.709,16.802],[-9.732,15.816],[-6.142,14.751],[-4.013,12.542],[-3.303,9.348],[-4.407,5.285],[-7.365,2.721],[-11.704,1.854],[-17.344,3.471],[-20.499,7.652],[-19.631,8.046],[-16.713,4.22],[-11.704,2.761],[-7.878,3.55],[-5.275,5.837],[-4.289,9.387],[-5.078,12.503],[-7.405,14.633],[-11.467,15.422],[-14.425,15.422],[-14.425,16.329],[-11.388,16.329],[-6.813,17.118],[-4.131,19.366],[-3.224,22.679],[-4.249,26.86],[-7.168,29.542],[-11.546,30.449],[-15.845,29.621],[-18.922,27.372],[-20.657,24.138],[-21.525,24.533],[-19.671,27.925],[-16.279,30.409],[-11.507,31.317],[-6.734,30.291]],"c":true},"ix":2},"nm":"Path 5","mn":"ADBE Vector Shape - Group","hd":false},{"ind":5,"ty":"sh","ix":6,"ks":{"a":0,"k":{"i":[[0.92,-2.182],[0,-2.945],[-0.894,-2.182],[-1.578,-1.209],[-2.104,0],[-1.604,1.209],[-0.868,2.182],[0,2.919],[0.894,2.182],[1.604,1.209],[2.104,0],[1.604,-1.209]],"o":[[-0.894,2.182],[0,2.971],[0.92,2.182],[1.604,1.183],[2.077,0],[1.604,-1.209],[0.894,-2.209],[0,-2.945],[-0.868,-2.182],[-1.578,-1.209],[-2.104,0],[-1.578,1.209]],"v":[[2.238,8.874],[0.897,16.565],[2.238,24.296],[5.985,29.384],[11.546,31.159],[17.068,29.344],[20.775,24.256],[22.116,16.565],[20.775,8.874],[17.068,3.786],[11.546,1.972],[5.985,3.786]],"c":true},"ix":2},"nm":"Path 6","mn":"ADBE Vector Shape - Group","hd":false},{"ind":6,"ty":"sh","ix":7,"ks":{"a":0,"k":{"i":[[-0.789,-2.051],[0,-2.735],[0.789,-2.051],[1.446,-1.157],[1.972,0],[1.446,1.131],[0.815,2.051],[0,2.708],[-0.789,2.051],[-1.446,1.131],[-1.919,0],[-1.446,-1.157]],"o":[[0.815,2.051],[0,2.735],[-0.789,2.051],[-1.446,1.131],[-1.946,0],[-1.446,-1.157],[-0.789,-2.077],[0,-2.735],[0.815,-2.051],[1.473,-1.157],[1.946,0],[1.446,1.131]],"v":[[19.947,9.387],[21.17,16.565],[19.986,23.744],[16.634,28.556],[11.507,30.252],[6.419,28.556],[3.027,23.744],[1.843,16.565],[3.027,9.387],[6.419,4.615],[11.507,2.879],[16.595,4.615]],"c":true},"ix":2},"nm":"Path 7","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":9,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"gradient","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206.25,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,4.314],[0,0],[6.829,0],[0,0],[0,-4.314],[0,0],[-4.553,0]],"o":[[4.553,0],[0,0],[0,-4.314],[0,0],[-4.553,0],[0,0],[0,4.314],[0,0]],"v":[[48.319,100.5],[57.25,91.034],[57.25,-94.611],[46.743,-102.5],[-51.497,-102.5],[-56.75,-95.67],[-56.75,93.67],[-51.497,100.5]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Unfolded Gmail UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectangle 3470520","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,141.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470520","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle 3470519","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,132.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470519","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Rectangle 3470518","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,123.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470518","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Rectangle 3470517","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,114.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470517","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Rectangle 3470516","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,105.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470516","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Rectangle 3470515","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,96.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470515","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Ellipse 7584","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[296.494,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7584","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Ellipse 7598","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,209.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7598","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Ellipse 7597","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,182.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7597","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Ellipse 7596","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,155.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7596","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Ellipse 7595","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,128.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7595","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Ellipse 7579","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,101.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7579","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Rectangle 3470514","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[212.994,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470514","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Rectangle 3470502","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.994,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[32,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470502","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Rectangle 3470530","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,210.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470530","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Rectangle 3470528","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,183.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470528","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Rectangle 3470526","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,156.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470526","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Rectangle 3470524","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,129.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470524","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Rectangle 3470522","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,102.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470522","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Rectangle 3470529","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,204.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470529","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Rectangle 3470527","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,177.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470527","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Rectangle 3470525","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,150.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470525","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Rectangle 3470523","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,123.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470523","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Rectangle 3470521","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,96.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470521","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 4","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[88,88,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":241,"st":30,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[0,0,0],"to":[-10.833,0,0],"ti":[10.833,0,0]},{"t":80,"s":[-65,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":241,"st":40,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,0],[5.09,0],[0,0],[-2.838,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[-2.838,0],[0,0],[5.089,0],[0,0]],"v":[[63.495,137.576],[54.264,146.808],[-54.501,114.37],[-54.56,-114.429],[54.282,-146.679],[63.915,-137.047]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,0],[5.09,0],[0,0],[-2.838,0],[0,0],[0,-9.436]],"o":[[0,8.464],[0,0],[-2.838,0],[0,0],[5.089,0],[0,0]],"v":[[63.623,136.911],[54.466,146.518],[-54.319,117.62],[-54.594,-117.179],[54.309,-145.697],[63.951,-135.939]],"c":true}]},{"t":80,"s":[{"i":[[0,0],[5.09,0],[0,0],[0,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[0,0],[0,0],[5.089,0],[0,0]],"v":[[63.599,105.138],[54.368,114.37],[-60.431,114.394],[-60.313,-114.39],[54.31,-114.429],[63.943,-104.797]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":241,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Lockscreen","refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"t":90,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":51,"op":651,"st":51,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[99,99,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":241,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Mask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[206,150,0],"to":[1.444,0,0],"ti":[-2,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[214.667,150,0],"to":[2,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[218,150,0],"to":[1.083,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[221.167,150,0],"to":[1.083,0,0],"ti":[-1.111,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[224.5,150,0],"to":[1.111,0,0],"ti":[-1.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[227.833,150,0],"to":[1.333,0,0],"ti":[-1.528,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[232.5,150,0],"to":[1.528,0,0],"ti":[-1.583,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[237,150,0],"to":[1.583,0,0],"ti":[-1.889,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[242,150,0],"to":[1.889,0,0],"ti":[-2.167,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[248.333,150,0],"to":[2.167,0,0],"ti":[-2.278,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[255,150,0],"to":[2.278,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[262,150,0],"to":[2.5,0,0],"ti":[-3.556,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[270,150,0],"to":[3.556,0,0],"ti":[-2.222,0,0]},{"t":61,"s":[283.333,150,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[311.96,210.22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.52,5.61],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":30,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Unfolded Gmail UI","parent":2,"tt":1,"tp":7,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":50,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[113.636,113.636,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"t":61,"s":[0,100,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-2.282,113.897],[-17.976,113.897],[-121.273,113.897],[-130.36,105.242],[-130.36,-104.809],[-121.273,-113.897],[-1.197,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-8.034,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.243],[118.937,113.897],[20.423,113.897],[-1.182,113.897],[-16.193,117.028],[-121.36,141.834],[-130.185,134.804],[-130.289,-134.192],[-121.277,-142.03],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"t":61,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-1.125,113.897],[-16.101,117.189],[-121.089,144.98],[-130.176,136.326],[-130.286,-135.704],[-121.198,-144.793],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[99,99,100]},{"t":61,"s":[-1,99,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[116.74,102.33,0],"ix":1,"l":2},"s":{"a":0,"k":[114.5,114.5,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[115.717,-109.174],[-119.283,-109.174],[-119.283,299.701],[115.717,299.701]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.17,0],[0,0],[0,4.18],[0,0],[-4.17,0],[0,0],[0,-4.18]],"o":[[0,4.18],[0,0],[-4.18,0],[0,0],[0,-4.18],[0,0],[4.18,0],[0,0]],"v":[[112.07,92.13],[104.12,99.71],[-106.16,99.71],[-114.11,92.13],[-114.11,-91.75],[-106.16,-99.71],[104.12,-99.71],[112.07,-91.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.055,2.749],[0,0],[5.7,0],[0,0],[1.89,-1.05],[0.88,0.35],[0,0],[2.17,0],[0,0],[0,-5.7],[0,0],[-5.7,0],[0,0],[-1.89,1.05],[-0.85,-0.29],[0,0],[-2.17,0],[0,0],[0,5.7],[0,0],[0.055,2.493]],"o":[[0,0],[0,0],[0,-5.71],[0,0],[-2.17,0],[-0.88,0.35],[0,0],[-1.89,-1.06],[0,0],[-5.71,0],[0,0],[0,5.71],[0,0],[2.17,0],[0.83,-0.33],[0,0],[1.89,1.05],[0,0],[5.71,0],[0,0],[-0.069,-5.452],[0,0]],"v":[[114.45,-15.54],[114.45,-36.12],[114.45,-91.75],[104.12,-102.08],[6.42,-102.08],[0.23,-100.48],[-2.52,-100.47],[-2.55,-100.47],[-8.74,-102.08],[-106.16,-102.08],[-116.49,-91.75],[-116.49,91.75],[-106.16,102.08],[-8.54,102.08],[-2.35,100.48],[0.25,100.42],[0.35,100.48],[7.83,102.08],[104.12,102.08],[114.45,91.75],[114.45,31.38],[114.45,-0.88]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[1.133,-0.038],[0,0],[0,0],[0,0],[0,-1.46],[0,0],[1.133,-0.038],[0,0],[0,0],[0,0],[0,-1.46],[0,0]],"o":[[0,0],[0,0],[0,0],[1.133,0.038],[0,0],[0,1.46],[0,0],[0,0],[0,0],[1.133,0.038],[0,0],[0,1.46]],"v":[[115.165,-15.899],[114.482,-15.883],[114.517,-0.46],[115.165,-0.477],[117.209,2.203],[117.209,29.104],[115.165,31.783],[114.399,31.826],[114.42,-35.723],[115.165,-35.719],[117.209,-33.039],[117.209,-18.579]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[116.74,102.33],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":30,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":0,"k":[99,99,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.291,0],[0,0],[0,15.652],[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0],[15.185,0],[0,0],[0,15.544]],"v":[[178.179,150],[-178.179,150],[-206,121.522],[-206,-121.522],[-178.179,-150],[178.286,-150],[206,-121.522],[206,121.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":332,"st":40,"ct":1,"bm":0}],"markers":[{"tm":240,"cm":"1","dr":0}],"props":{}}
\ No newline at end of file
diff --git a/res/raw/fold_setting_stay_awake_on_fold_lottie.json b/res/raw/fold_setting_stay_awake_on_fold_lottie.json
new file mode 100644
index 0000000..3611a87
--- /dev/null
+++ b/res/raw/fold_setting_stay_awake_on_fold_lottie.json
@@ -0,0 +1 @@
+{"v":"5.12.1","fr":60,"ip":0,"op":241,"w":412,"h":300,"nm":"Foldable_FoldingSetting_EDU_01_412x300_export","ddd":0,"assets":[{"id":"comp_0","nm":"Folded Gmail UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Ellipse 7590","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[86,6,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7590","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Ellipse 7594","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,160,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7594","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Ellipse 7593","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,128,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7593","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Ellipse 7592","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,96,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7592","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Ellipse 7591","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,64,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7591","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Ellipse 7589","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[6,32,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[12,12],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7589","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Rectangle 3470513","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,162.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470513","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Rectangle 3470511","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,130.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470511","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Rectangle 3470509","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,98.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470509","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Rectangle 3470507","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,66.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470507","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Rectangle 3470505","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[40,34.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470505","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Rectangle 3470512","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,156,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470512","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Rectangle 3470510","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,124,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470510","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Rectangle 3470508","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,92,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470508","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Rectangle 3470506","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,60,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470506","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Rectangle 3470504","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[28.5,28,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470504","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Rectangle 3470503","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[37,6.5,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[74,13],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470503","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]},{"id":"comp_1","nm":"Unfolded Gmail UI","fr":60,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Rectangle 3470520","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,141.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470520","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Rectangle 3470519","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,132.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470519","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Rectangle 3470518","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,123.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470518","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Rectangle 3470517","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,114.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470517","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Rectangle 3470516","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,105.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470516","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"Rectangle 3470515","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[114.994,96.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[20,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470515","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Ellipse 7584","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[296.494,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7584","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Ellipse 7598","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,209.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7598","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Ellipse 7597","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,182.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7597","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Ellipse 7596","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,155.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7596","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"Ellipse 7595","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,128.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7595","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"Ellipse 7579","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[154.494,101.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[15,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 7579","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"Rectangle 3470514","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[212.994,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[132,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470514","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Rectangle 3470502","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[120.994,74.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[32,15],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470502","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Rectangle 3470530","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,210.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470530","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Rectangle 3470528","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,183.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470528","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Rectangle 3470526","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,156.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470526","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Rectangle 3470524","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,129.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470524","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":"Rectangle 3470522","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[185.994,102.582,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[40,5],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470522","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":4,"nm":"Rectangle 3470529","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,204.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470529","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"Rectangle 3470527","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,177.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470527","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":22,"ty":4,"nm":"Rectangle 3470525","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,150.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470525","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"Rectangle 3470523","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,123.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470523","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"Rectangle 3470521","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[174.494,96.082,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[17,4],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":50,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23137255013,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 3470521","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"ct":1,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"Null 4","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[88,88,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":241,"st":30,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 1","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[0,0,0],"to":[-10.833,0,0],"ti":[10.833,0,0]},{"t":80,"s":[-65,0,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":241,"st":40,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,0],[5.09,0],[0,0],[-2.838,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[-2.838,0],[0,0],[5.089,0],[0,0]],"v":[[63.495,137.576],[54.264,146.808],[-54.501,114.37],[-54.56,-114.429],[54.282,-146.679],[63.915,-137.047]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,0],[5.09,0],[0,0],[-2.838,0],[0,0],[0,-9.436]],"o":[[0,8.464],[0,0],[-2.838,0],[0,0],[5.089,0],[0,0]],"v":[[63.623,136.911],[54.466,146.518],[-54.319,117.62],[-54.594,-117.179],[54.309,-145.697],[63.951,-135.939]],"c":true}]},{"t":80,"s":[{"i":[[0,0],[5.09,0],[0,0],[0,0],[0,0],[0,-5.089]],"o":[[0,5.09],[0,0],[0,0],[0,0],[5.089,0],[0,0]],"v":[[63.599,105.138],[54.368,114.37],[-60.431,114.394],[-60.313,-114.39],[54.31,-114.429],[63.943,-104.797]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":241,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".black 2","cl":"black","parent":2,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[99,99,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":241,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"Folded Gmail UI","parent":2,"tt":1,"tp":4,"refId":"comp_0","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":80,"s":[0]},{"t":90,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[67.273,-5.682,0],"ix":2,"l":2},"a":{"a":0,"k":[46,83,0],"ix":1,"l":2},"s":{"a":0,"k":[113.636,113.636,100],"ix":6,"l":2}},"ao":0,"w":92,"h":166,"ip":51,"op":241,"st":51,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-2.971,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-68.471,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.001,0.001,0.001],"y":[0,0,0]},"t":60,"s":[0,100,100]},{"t":80,"s":[99,99,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":1},"o":{"x":0.001,"y":0},"t":60,"s":[{"i":[[0,1.789],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-1.339]],"v":[[66.136,-9.414],[66.108,-137.044],[54.305,-148.847],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.23,149.034],[66.032,137.232],[66.136,27.401]],"c":true}]},{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0},"t":61,"s":[{"i":[[0,2.744],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,14.182],[0,0]],"o":[[0,0],[0,-14.188],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-2.275]],"v":[[76.36,-9.414],[76.369,-135.937],[54.341,-147.74],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.359,148.37],[76.385,136.568],[76.36,27.401]],"c":true}]},{"t":80,"s":[{"i":[[0,4.914],[0,0],[6.519,0],[0,0],[0,-2.523],[0,0],[-2.523,0],[0,0],[0,6.518],[0,0]],"o":[[0,0],[0,-6.519],[0,0],[-2.523,0],[0,0],[0,2.523],[0,0],[6.518,0],[0,0],[0,-4.401]],"v":[[66.136,-9.414],[66.136,-104.794],[54.333,-116.597],[-63.903,-116.597],[-68.471,-112.028],[-68.471,112.028],[-63.903,116.597],[54.334,116.597],[66.136,104.795],[66.136,27.401]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":61,"op":241,"st":39,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"Mask","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":48,"s":[206,150,0],"to":[1.444,0,0],"ti":[-2,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":49,"s":[214.667,150,0],"to":[2,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":50,"s":[218,150,0],"to":[1.083,0,0],"ti":[-1.083,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":51,"s":[221.167,150,0],"to":[1.083,0,0],"ti":[-1.111,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":52,"s":[224.5,150,0],"to":[1.111,0,0],"ti":[-1.333,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":53,"s":[227.833,150,0],"to":[1.333,0,0],"ti":[-1.528,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":54,"s":[232.5,150,0],"to":[1.528,0,0],"ti":[-1.583,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":55,"s":[237,150,0],"to":[1.583,0,0],"ti":[-1.889,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[242,150,0],"to":[1.889,0,0],"ti":[-2.167,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":57,"s":[248.333,150,0],"to":[2.167,0,0],"ti":[-2.278,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":58,"s":[255,150,0],"to":[2.278,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[262,150,0],"to":[2.5,0,0],"ti":[-3.556,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[270,150,0],"to":[3.556,0,0],"ti":[-2.222,0,0]},{"t":61,"s":[283.333,150,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[311.96,210.22],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":1,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.52,5.61],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":30,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":0,"nm":"Unfolded Gmail UI","parent":2,"tt":1,"tp":7,"refId":"comp_1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":40,"s":[100]},{"t":50,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[206,150,0],"ix":1,"l":2},"s":{"a":0,"k":[113.636,113.636,100],"ix":6,"l":2}},"ao":0,"w":412,"h":300,"ip":0,"op":241,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"t":61,"s":[0,100,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-2.282,113.897],[-17.976,113.897],[-121.273,113.897],[-130.36,105.242],[-130.36,-104.809],[-121.273,-113.897],[-1.197,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-8.034,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.243],[118.937,113.897],[20.423,113.897],[-1.182,113.897],[-16.193,117.028],[-121.36,141.834],[-130.185,134.804],[-130.289,-134.192],[-121.277,-142.03],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]},{"t":61,"s":[{"i":[[0,0],[4.771,0],[0,0],[0,0],[0,0],[0,0],[0,4.772],[0,0],[-4.771,0],[0,0],[0,0],[0,-4.772]],"o":[[0,4.772],[0,0],[0,0],[0,0],[0,0],[-4.771,0],[0,0],[0,-4.772],[0,0],[0,0],[4.771,0],[0,0]],"v":[[128.025,105.242],[118.937,113.897],[20.423,113.897],[-1.125,113.897],[-16.101,117.189],[-121.089,144.98],[-130.176,136.326],[-130.286,-135.704],[-121.198,-144.793],[-1.188,-113.897],[118.937,-113.897],[128.025,-104.809]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,1,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":40,"s":[99,99,100]},{"t":61,"s":[-1,99,100]}],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.3,"y":0},"t":40,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":56,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.495,0.571],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.733,0.815],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.787,-0.915],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.2,-0.463],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-115.408],[-10,-118.046],[-124.313,-139.448],[-136.266,-129.393],[-136.179,129.543],[-124.572,138.847],[-9.85,117.863],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":59,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.498,0.671],[7.261,0],[0,-6.52],[0,0],[-17.913,0],[0,0],[0,0],[-2.833,0.748],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.896,-0.865],[0,0],[-23.138,0],[0,0],[0,6.52],[10.232,0],[0,0],[2.152,-0.545],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-12.716,-117.624],[-123.042,-143.651],[-144.273,-133.721],[-144.17,133.897],[-128.267,144.577],[-10.465,117.238],[-8.936,116.926],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"i":{"x":0.8,"y":1},"o":{"x":0.167,"y":0.167},"t":60,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.499,0.698],[0,0],[0,-12.135],[0,0],[-34.442,0],[0,0],[0,0],[-2.859,0.73],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.925,-0.851],[0,0],[-32.058,0],[0,0],[0,11.078],[0,0],[0,0],[2.14,-0.566],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.836],[-126.224,-145.794],[-160.39,-134.865],[-160.283,135.047],[-126.011,146.227],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.938,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]},{"t":61,"s":[{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.5,0.717],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.879,0.717],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.946,-0.842],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.13,-0.582],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.842],[-121.197,-147.509],[-133.002,-135.704],[-132.892,135.892],[-121.088,147.697],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true}]}],"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":61,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".grey600","cl":"grey600","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,0,0],"ix":2,"l":2},"a":{"a":0,"k":[116.74,102.33,0],"ix":1,"l":2},"s":{"a":0,"k":[114.5,114.5,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[115.717,-109.174],[-119.283,-109.174],[-119.283,299.701],[115.717,299.701]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.17,0],[0,0],[0,4.18],[0,0],[-4.17,0],[0,0],[0,-4.18]],"o":[[0,4.18],[0,0],[-4.18,0],[0,0],[0,-4.18],[0,0],[4.18,0],[0,0]],"v":[[112.07,92.13],[104.12,99.71],[-106.16,99.71],[-114.11,92.13],[-114.11,-91.75],[-106.16,-99.71],[104.12,-99.71],[112.07,-91.75]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0.055,2.749],[0,0],[5.7,0],[0,0],[1.89,-1.05],[0.88,0.35],[0,0],[2.17,0],[0,0],[0,-5.7],[0,0],[-5.7,0],[0,0],[-1.89,1.05],[-0.85,-0.29],[0,0],[-2.17,0],[0,0],[0,5.7],[0,0],[0.055,2.493]],"o":[[0,0],[0,0],[0,-5.71],[0,0],[-2.17,0],[-0.88,0.35],[0,0],[-1.89,-1.06],[0,0],[-5.71,0],[0,0],[0,5.71],[0,0],[2.17,0],[0.83,-0.33],[0,0],[1.89,1.05],[0,0],[5.71,0],[0,0],[-0.069,-5.452],[0,0]],"v":[[114.45,-15.54],[114.45,-36.12],[114.45,-91.75],[104.12,-102.08],[6.42,-102.08],[0.23,-100.48],[-2.52,-100.47],[-2.55,-100.47],[-8.74,-102.08],[-106.16,-102.08],[-116.49,-91.75],[-116.49,91.75],[-106.16,102.08],[-8.54,102.08],[-2.35,100.48],[0.25,100.42],[0.35,100.48],[7.83,102.08],[104.12,102.08],[114.45,91.75],[114.45,31.38],[114.45,-0.88]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[1.133,-0.038],[0,0],[0,0],[0,0],[0,-1.46],[0,0],[1.133,-0.038],[0,0],[0,0],[0,0],[0,-1.46],[0,0]],"o":[[0,0],[0,0],[0,0],[1.133,0.038],[0,0],[0,1.46],[0,0],[0,0],[0,0],[1.133,0.038],[0,0],[0,1.46]],"v":[[115.165,-15.899],[114.482,-15.883],[114.517,-0.46],[115.165,-0.477],[117.209,2.203],[117.209,29.104],[115.165,31.783],[114.399,31.826],[114.42,-35.723],[115.165,-35.719],[117.209,-33.039],[117.209,-18.579]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[116.74,102.33],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":30,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":".black","cl":"black","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1,0,0],"ix":2,"l":2},"a":{"a":0,"k":[-2,0,0],"ix":1,"l":2},"s":{"a":0,"k":[99,99,100],"ix":6,"l":2}},"ao":0,"hasMask":true,"masksProperties":[{"inv":true,"mode":"a","pt":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-2,-197],[-237,-197],[-237,211.874],[-2,211.874]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.295,0.044],[0,0],[6.52,0],[0,0],[2.164,-1.2],[1.012,0.395],[0,0],[2.474,0],[0,0],[0,-6.52],[0,0],[-6.52,0],[0,0],[0,0],[-2.164,1.2],[-0.966,-0.33],[0,0],[-2.474,0],[0,0],[0,0],[0,6.519],[0,0],[0,1.668],[0,0]],"o":[[0,0],[0,-6.52],[0,0],[-2.474,0],[-1.008,0.404],[0,0],[-2.164,-1.2],[0,0],[-6.52,0],[0,0],[0,6.52],[0,0],[0,0],[2.474,0],[0.951,-0.381],[0,0],[2.163,1.2],[0,0],[0,0],[6.519,0],[0,0],[1.295,-0.044],[0,0],[0,-1.668]],"v":[[130.741,-9.416],[130.741,-104.809],[118.936,-116.613],[7.323,-116.613],[0.252,-114.783],[-2.892,-114.769],[-2.929,-114.783],[-10,-116.613],[-121.272,-116.613],[-133.077,-104.809],[-133.077,104.809],[-121.272,116.613],[-9.85,116.613],[-9.755,116.613],[-2.684,114.783],[0.286,114.719],[0.401,114.783],[8.942,116.613],[9.038,116.613],[118.937,116.613],[130.741,104.81],[130.741,27.405],[133.077,24.344],[133.077,-6.354]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":241,"st":40,"ct":1,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[15.291,0],[0,0],[0,15.652],[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[-15.291,0],[0,0],[0,-15.652],[0,0],[15.185,0],[0,0],[0,15.544]],"v":[[178.179,150],[-178.179,150],[-206,121.522],[-206,-121.522],[-178.179,-150],[178.286,-150],[206,-121.522],[206,121.63]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":332,"st":40,"ct":1,"bm":0}],"markers":[{"tm":240,"cm":"1","dr":0}],"props":{}}
\ No newline at end of file
diff --git a/res/raw/gesture_ambient_wake_screen.mp4 b/res/raw/gesture_ambient_wake_screen.mp4
deleted file mode 100644
index e69de29..0000000
--- a/res/raw/gesture_ambient_wake_screen.mp4
+++ /dev/null
diff --git a/res/raw/gesture_assist.mp4 b/res/raw/gesture_assist.mp4
deleted file mode 100644
index e69de29..0000000
--- a/res/raw/gesture_assist.mp4
+++ /dev/null
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/raw/remoteauth_enroll_finish_animation.json b/res/raw/remoteauth_enroll_finish_animation.json
new file mode 100644
index 0000000..a06ae37
--- /dev/null
+++ b/res/raw/remoteauth_enroll_finish_animation.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":248,"w":412,"h":300,"nm":"Active_Unlock_PT2_V05","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".blue400","cl":"blue400","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":62,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":92,"s":[360]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":187,"s":[360]},{"t":237,"s":[0]}],"ix":10},"p":{"a":0,"k":[85.699,151.401,0],"ix":2,"l":2},"a":{"a":0,"k":[84.949,150.651,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-9.6,-20.75],[-9.6,4.35],[9.6,20.75]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.725,4.75],[-11.85,14.35],[7.725,-9.125]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.725,4.75],[-11.85,14.35],[7.725,-9.125]],"c":false}]},{"t":237,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-9.6,-20.75],[-9.6,4.35],[9.6,20.75]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":62,"s":[2.768]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":92,"s":[4.568]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":187,"s":[4.568]},{"t":237,"s":[2.768]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[94.549,146.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[171.326,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[186.326,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[186.326,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[171.326,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":20,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":83,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":103,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":123,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":125,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":145,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":165,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":208,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":228,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":248,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[191.201,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[206.201,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[206.201,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[191.201,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":7,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":27,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":76,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":96,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":116,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":132,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":152,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":172,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":201,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":221,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":241,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[210.701,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[225.701,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[225.701,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[210.701,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":14,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":34,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":54,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":69,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":89,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":109,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":139,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":159,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":179,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":194,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":214,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":234,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[230.076,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[245.076,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[245.076,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[230.076,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":21,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":41,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":61,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":62,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":82,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":102,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":146,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":166,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":186,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":187,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":207,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":227,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.431,10.775,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,3.938],[-0.938,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.938,0],[0,4.188],[0,0]],"v":[[-4.562,-0.031],[-4.562,-4.719],[0.25,-9.656],[5.375,-4.781],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":88,"s":[{"i":[[0,0],[0,3.938],[0.896,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[-0.896,0],[0,4.188],[0,0]],"v":[[14.875,-2.531],[14.875,-7.219],[10.274,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":207,"s":[{"i":[[0,0],[0,3.938],[0.896,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[-0.896,0],[0,4.188],[0,0]],"v":[[14.875,-2.531],[14.875,-7.219],[10.274,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":217,"s":[{"i":[[0,0],[0,3.938],[-0.932,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.932,0],[0,4.188],[0,0]],"v":[[-4.5,-2.531],[-4.5,-7.219],[0.282,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":227,"s":[{"i":[[0,0],[0,3.938],[-0.932,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.932,0],[0,4.188],[0,0]],"v":[[-4.5,-2.531],[-4.5,-7.219],[0.282,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"t":247,"s":[{"i":[[0,0],[0,3.938],[-0.938,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.938,0],[0,4.188],[0,0]],"v":[[-4.562,-0.031],[-4.562,-4.719],[0.25,-9.656],[5.375,-4.781],[5.375,-0.281]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[315.859,148.919,0],"ix":2,"l":2},"a":{"a":0,"k":[9.912,13.777,0],"ix":1,"l":2},"s":{"a":0,"k":[147,147,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.067,0],[0,1.067],[1.067,0],[0,-1.068]],"o":[[1.067,0],[0,-1.068],[-1.067,0],[0,1.067]],"v":[[0,6.764],[1.932,4.831],[0,2.898],[-1.932,4.831]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.533],[0,0],[-0.534,0],[0,0],[0,0.533],[0,0],[0.534,0]],"o":[[-0.534,0],[0,0],[0,0.533],[0,0],[0.534,0],[0,0],[0,-0.533],[0,0]],"v":[[-6.763,-1.932],[-7.73,-0.966],[-7.73,10.629],[-6.763,11.594],[6.763,11.594],[7.73,10.629],[7.73,-0.966],[6.763,-1.932]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-1.601],[0,0],[1.601,0],[0,0],[0,1.601],[0,0],[-1.601,0]],"o":[[0,0],[0,0],[1.601,0],[0,0],[0,1.601],[0,0],[-1.601,0],[0,0],[0,-1.601],[0,0]],"v":[[-5.797,-3.865],[5.797,-3.865],[6.763,-3.865],[9.662,-0.966],[9.662,10.629],[6.763,13.527],[-6.763,13.527],[-9.662,10.629],[-9.662,-0.966],[-6.763,-3.865]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.912,13.777],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"MATTE","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.981,150,0],"ix":2,"l":2},"a":{"a":0,"k":[56.29,104.464,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.337,0],[0,0],[0,4.337],[0,0],[-4.337,0],[0,0],[0,-4.337]],"o":[[0,4.337],[0,0],[-4.337,0],[0,0],[0,-4.337],[0,0],[4.337,0],[0,0]],"v":[[52.107,94.382],[44.242,102.248],[-46.208,102.248],[-54.074,94.382],[-54.074,-94.382],[-46.208,-102.248],[44.242,-102.248],[52.107,-94.382]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039245605,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[56.29,104.464],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".blue400","cl":"blue400","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.981,152.207,0],"ix":2,"l":2},"a":{"a":0,"k":[74.06,74.06,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.72,-30.74],[30.74,3.72],[-3.719,30.741],[-30.74,-3.719]],"o":[[-3.72,30.74],[-30.74,-3.719],[3.72,-30.74],[30.74,3.72]],"v":[[55.66,6.735],[-6.735,55.66],[-55.66,-6.735],[6.735,-55.66]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[33]},{"t":120,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.06,74.06],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":60,"s":[0,0]},{"t":120,"s":[610,610]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".blue300matte","cl":"blue300matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.85,150.9,0],"ix":2,"l":2},"a":{"a":0,"k":[317.85,151.9,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.4,0],[0,0],[0,4.399],[0,0],[-4.4,0],[0,0],[0,-4.4]],"o":[[0,4.3],[0,0],[-4.3,0],[0,0],[0,-4.3],[0,0],[4.3,0],[0,0]],"v":[[52.15,94.3],[44.25,102.199],[-46.25,102.199],[-54.15,94.3],[-54.15,-94.4],[-46.25,-102.3],[44.25,-102.3],[52.15,-94.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.1],[0,0],[1.1,0],[0,0],[5.4,0],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[0,1.1],[0,0],[1.1,0],[0,0]],"o":[[0,0],[0,-1.1],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[5.4,0],[0,0],[1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0]],"v":[[56.05,-43.3],[56.05,-51.2],[54.05,-53.2],[54.05,-94.4],[44.25,-104.2],[-46.25,-104.2],[-56.05,-94.4],[-56.05,94.4],[-46.25,104.199],[44.25,104.199],[54.05,94.4],[54.05,-1.9],[56.05,-3.9],[56.05,-23.6],[54.05,-25.6],[54.05,-41.3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541176470588,0.705882352941,0.972549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.85,151.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".blue600","cl":"blue600","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[314.647,152.796,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.941],[0,0],[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0]],"o":[[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0],[0,0],[0,3.941],[0,0]],"v":[[48.189,101.203],[55.325,94.067],[55.283,-97.818],[48.147,-104.954],[-45.468,-104.954],[-52.605,-97.818],[-52.563,94.067],[-45.426,101.203]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":25,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[225]},{"t":248,"s":[585]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.941],[0,0],[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0]],"o":[[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0],[0,0],[0,3.941],[0,0]],"v":[[48.189,101.203],[55.325,94.067],[55.283,-97.818],[48.147,-104.954],[-45.468,-104.954],[-52.605,-97.818],[-52.563,94.067],[-45.426,101.203]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":25,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[45]},{"t":248,"s":[405]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".blue300","cl":"blue300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.85,150.9,0],"ix":2,"l":2},"a":{"a":0,"k":[317.85,151.9,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.4,0],[0,0],[0,4.399],[0,0],[-4.4,0],[0,0],[0,-4.4]],"o":[[0,4.3],[0,0],[-4.3,0],[0,0],[0,-4.3],[0,0],[4.3,0],[0,0]],"v":[[52.15,94.3],[44.25,102.199],[-46.25,102.199],[-54.15,94.3],[-54.15,-94.4],[-46.25,-102.3],[44.25,-102.3],[52.15,-94.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.1],[0,0],[1.1,0],[0,0],[5.4,0],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[0,1.1],[0,0],[1.1,0],[0,0]],"o":[[0,0],[0,-1.1],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[5.4,0],[0,0],[1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0]],"v":[[56.05,-43.3],[56.05,-51.2],[54.05,-53.2],[54.05,-94.4],[44.25,-104.2],[-46.25,-104.2],[-56.05,-94.4],[-56.05,94.4],[-46.25,104.199],[44.25,104.199],[54.05,94.4],[54.05,-1.9],[56.05,-3.9],[56.05,-23.6],[54.05,-25.6],[54.05,-41.3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541176470588,0.705882352941,0.972549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.85,151.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[88.803,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[88.803,150.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[24.601,0],[0,24.6],[-24.6,0],[0,-24.6]],"o":[[-24.6,0],[0,-24.6],[24.601,0],[0,24.6]],"v":[[-1.45,44.6],[-46.05,-0.001],[-1.45,-44.6],[43.151,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.5,0],[0,0],[24.101,0],[0,-26.1],[-26.1,0],[-3.8,22.401],[0,0],[0,1.5],[0,0]],"o":[[0,0],[-2.9,-23.299],[-26.1,0],[0,26.1],[23.4,0],[0,0],[1.5,0],[0,0],[0.099,-1.5]],"v":[[46.051,-5.9],[45.551,-5.9],[-1.45,-47.299],[-48.75,-0.001],[-1.45,47.299],[45.25,7.799],[45.95,7.799],[48.651,5.1],[48.651,-3.199]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[88.849,150.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"ClockFace_Mask","parent":24,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87.399,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[87.399,150.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-25.405,0],[0,25.405],[25.404,0],[0,-25.405]],"o":[[25.404,0],[0,-25.405],[-25.405,0],[0,25.405]],"v":[[0,46],[46,0],[0,-46],[-46,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.399,150.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":".grey300","cl":"grey300","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":50,"s":[6]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":187,"s":[6]},{"t":237,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[86.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.7,"y":0.7},"t":50,"s":[121.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":187,"s":[121.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"t":237,"s":[86.4,150.05,0]}],"ix":2,"l":2},"a":{"a":0,"k":[87.4,151.05,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[5.1,0],[0,0],[0.5,-4.3],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-5.1,0],[0,0],[-0.5,4.3],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.5,-4.3],[0,0],[-5.1,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.5,4.301],[0,0],[5.1,0],[0,0],[0,0],[0,0]],"v":[[29.3,-7.85],[29.4,-9.35],[29.1,-9.35],[22.699,-68.05],[12.8,-75.65],[-12,-75.65],[-21.9,-68.15],[-29,-9.35],[-29.4,-9.35],[-29.301,-7.65],[-29.4,-6.45],[-29.2,-6.45],[-22.801,68.049],[-12.9,75.65],[11.9,75.65],[21.8,68.15],[29,-6.45],[29.3,-6.45]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.4,151.05],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0}],"markers":[]}
diff --git a/res/raw/remoteauth_explanation_notification_animation.json b/res/raw/remoteauth_explanation_notification_animation.json
new file mode 100644
index 0000000..21298a7
--- /dev/null
+++ b/res/raw/remoteauth_explanation_notification_animation.json
@@ -0,0 +1 @@
+{"v":"5.9.4","fr":60,"ip":0,"op":301,"w":412,"h":300,"nm":"WatchUnlock_Swipe_V02","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":3,"nm":"ARM_MOVEIN","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":70,"s":[-36]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":98,"s":[1]},{"t":123,"s":[0]}],"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":70,"s":[-109]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":98,"s":[-29]},{"t":123,"s":[-29]}],"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.3],"y":[0]},"t":70,"s":[278.5]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":98,"s":[288.5]},{"t":123,"s":[288.5]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":3,"nm":"Null 69","parent":1,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.05],"y":[1]},"o":{"x":[0.4],"y":[0.016]},"t":142,"s":[-41]},{"t":172,"s":[180]}],"ix":10},"p":{"a":0,"k":[111.832,-121.374,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue400","cl":"blue400","parent":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.05,"y":1},"o":{"x":0.4,"y":0.01},"t":142,"s":[0.873,0.253,0],"to":[0,0,0],"ti":[0,0,0]},{"t":172,"s":[3.123,8.128,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-1.7,5.7,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.05,"y":1},"o":{"x":0.4,"y":0.01},"t":142,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[12.517,5.049],[-2.516,5.511],[-15.017,14.239]],"c":false}]},{"t":172,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[7.341,-2.523],[0.246,-9.791],[-15.652,5.505]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.05],"y":[1]},"o":{"x":[0.4],"y":[0.01]},"t":142,"s":[2.768]},{"t":172,"s":[4]}],"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue400","cl":"blue400","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.68],"y":[0]},"t":114,"s":[100]},{"t":137,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.401,-121.376,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.68,0.68,0.68],"y":[0,0,0]},"t":114,"s":[70,70,100]},{"t":154,"s":[165,165,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21.155,0],[0,21.155],[21.155,0],[0,-21.155]],"o":[[21.155,0],[0,-21.155],[-21.155,0],[0,21.155]],"v":[[0,38.304],[38.304,0],[0,-38.304],[-38.304,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.68],"y":[0]},"t":109,"s":[100]},{"t":132,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.401,-121.376,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.68,0.68,0.68],"y":[0,0,0]},"t":109,"s":[70,70,100]},{"t":149,"s":[165,165,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21.155,0],[0,21.155],[21.155,0],[0,-21.155]],"o":[[21.155,0],[0,-21.155],[-21.155,0],[0,21.155]],"v":[[0,38.304],[38.304,0],[0,-38.304],[-38.304,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":".blue400","cl":"blue400","parent":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.68],"y":[0]},"t":104,"s":[100]},{"t":127,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.401,-121.376,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0,0,0],"y":[1,1,1]},"o":{"x":[0.68,0.68,0.68],"y":[0,0,0]},"t":104,"s":[70,70,100]},{"t":144,"s":[165,165,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-21.155,0],[0,21.155],[21.155,0],[0,-21.155]],"o":[[21.155,0],[0,-21.155],[-21.155,0],[0,21.155]],"v":[[0,38.304],[38.304,0],[0,-38.304],[-38.304,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":".blue400","cl":"blue400","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.832,-121.374,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-10.594,-9.096],[0,0],[-0.6,-0.662],[0,0],[0.662,-0.6],[0,0],[10.309,-9.354],[10.42,11.484],[-11.484,10.42]],"o":[[0,0],[0.662,-0.6],[0,0],[0.6,0.662],[0,0],[7.288,11.344],[-11.484,10.42],[-10.42,-11.484],[10.603,-9.621]],"v":[[18.303,-21.346],[18.509,-21.533],[20.794,-21.422],[24.106,-17.771],[23.995,-15.486],[23.666,-15.188],[18.899,20.825],[-20.825,18.895],[-18.895,-20.829]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[-9.811,-10.813],[-10.813,9.811],[9.811,10.813],[10.813,-9.811]],"o":[[9.811,10.813],[10.813,-9.811],[-9.811,-10.813],[-10.813,9.811]],"v":[[-19.607,17.79],[17.794,19.608],[19.611,-17.794],[-17.79,-19.611]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40000000596,0.615686297417,0.964705884457,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":".black","cl":"black","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.834,-121.376,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.077,0],[0,15.077],[15.077,0],[0,-15.077]],"o":[[15.077,0],[0,-15.077],[-15.077,0],[0,15.077]],"v":[[0,27.3],[27.3,0],[0,-27.3],[-27.3,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".grey600","cl":"grey600","parent":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[111.779,-121.054,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.708,0],[0,0],[0,-3.708],[0,0],[-3.708,0],[0,0],[0,3.708],[0,0]],"o":[[0,0],[-3.708,0],[0,0],[0,3.708],[0,0],[3.708,0],[0,0],[0,-3.708]],"v":[[7.89,-43.955],[-7.89,-43.955],[-14.604,-37.241],[-14.604,37.241],[-7.89,43.955],[7.89,43.955],[14.604,37.241],[14.604,-37.241]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-45.085,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"ARM_MATTE","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.291,0],[0,0],[0,15.544],[0,0],[15.185,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[15.291,0],[0,0],[0,-15.652],[0,0],[-15.291,0],[0,0],[0,15.652]],"v":[[-178.179,150],[178.179,150],[206,121.63],[206,-121.522],[178.286,-150],[-178.179,-150],[-206,-121.522],[-206,121.522]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":".ARM","cl":"ARM","parent":1,"tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[99.741,-103.962,0],"ix":2,"l":2},"a":{"a":0,"k":[70.741,184.538,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.655,-2.066],[-3.456,3.089],[-0.727,2.001],[6.57,-2.938],[1.123,-0.781]],"o":[[3.09,3.858],[1.562,-1.396],[-1.59,-3.044],[-0.621,0.278],[-1.445,2.431]],"v":[[-7.102,3.861],[5.015,3.281],[8.462,-2.035],[-4.657,-4.993],[-7.478,-3.205]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760784327984,0.478431373835,0.40000000596,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[179.859,51.354],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"NAIL02","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.789,-3.482],[-3.664,3.275],[-0.776,1.898],[0.965,1.317],[3.65,-0.938],[0.629,-0.271]],"o":[[3.275,4.09],[1.497,-1.338],[-0.114,-1.715],[-1.943,-2.652],[-0.576,0.148],[-5.718,3.453]],"v":[[-7.41,5.19],[5.435,4.575],[8.852,-0.454],[7.201,-5.191],[-1.476,-7.214],[-3.288,-6.57]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760784327984,0.478431373835,0.40000000596,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[193.112,61.459],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"NAIL03","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-2.785,-3.297],[-3.598,2.935],[-0.359,2.597],[1.361,1.315],[3.021,-1.351],[0.459,-0.402]],"o":[[2.726,3.227],[2.715,-2.215],[-0.34,-1.711],[-2.006,-1.939],[-0.64,0.361],[-4.343,3.807]],"v":[[-7.079,6.003],[3.759,5.398],[8.503,-1.933],[5.848,-6.523],[-2.397,-7.083],[-4.066,-5.926]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760784327984,0.478431373835,0.40000000596,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[200.839,77.801],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"NAIL04","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.054,0.069],[3.134,-3.216],[-3.656,-0.921],[-2.12,1.21],[2.5,3.492]],"o":[[-3.115,0.692],[-3.74,3.838],[2.277,-1.784],[5.445,-3.108],[-0.051,-0.072]],"v":[[5.47,-8.52],[-4.469,-2.73],[-4.24,8.52],[2.352,3.972],[5.636,-8.315]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760784327984,0.478431373835,0.40000000596,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[197.006,138.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"NAIL05","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.218,-1.793],[-2.951,2.16],[-0.735,1.587],[3.737,-0.592],[1.715,-0.583]],"o":[[2.081,3.065],[1.426,-1.044],[-1.139,-2.009],[-1.553,0.246],[-1.704,1.884]],"v":[[-5.994,2.581],[3.488,2.745],[6.766,-1.405],[-0.383,-4.508],[-5.294,-3.253]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.760784327984,0.478431373835,0.40000000596,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[161.194,48.38],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"NAIL01","np":1,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[181.885,95.635],"ix":2},"a":{"a":0,"k":[181.885,95.635],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"**NAILS_ALL","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[19.626,-23.614],[0,0]],"v":[[-22.789,21.283],[22.789,-21.283]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.596078455448,0.321568638086,0.239215686917,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[162.285,79.254],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND_LINE02","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[17.08,-19.479],[0,0]],"v":[[-20.252,19.975],[20.252,-19.975]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.596078455448,0.321568638086,0.239215686917,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[174.516,92.317],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND_LINE03","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.46,5.397]],"o":[[0,0],[0,0]],"v":[[-2.244,4.895],[2.244,-4.895]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.596078455448,0.321568638086,0.239215686917,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[151.152,152.075],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND_LINE04","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[-23.247,14.788],[0,0]],"v":[[21.471,-19.895],[-21.471,19.895]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.596078455448,0.321568638086,0.239215686917,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[146.926,70.198],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND_LINE01","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[160.112,103.636],"ix":2},"a":{"a":0,"k":[160.112,103.636],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"**HANDLINES","np":4,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.419,-0.748],[5.969,-0.945],[10.255,-24.939],[-36.35,-2.06],[-17.34,9.896],[2.5,3.492],[3.993,-1.291],[7.157,-4.738],[6.054,-3.157],[0,0],[-14.285,16.96],[-6.401,8.234],[3.021,2.921],[3.564,-2.542],[7.775,-6.976],[-1.695,1.94],[2.084,2.844],[3.65,-0.938],[1.658,-0.984],[0.655,2.35],[7.279,-3.256]],"o":[[0.159,-2.71],[-24.069,3.813],[-11.885,28.904],[32.782,1.857],[5.445,-3.108],[-2.429,-3.393],[-2.891,0.935],[-6.302,4.173],[-6.053,3.158],[0,0],[9.729,-11.551],[3.338,-4.294],[-2.537,-2.453],[-1.787,1.274],[9.925,-9.708],[2.32,-2.655],[-1.943,-2.652],[-1.357,0.349],[0.878,-1.227],[-0.933,-3.346],[-1.364,0.61]],"v":[[25.212,-63.227],[17.166,-69.856],[-62.543,5.248],[-16.676,69.9],[55.713,29.243],[58.997,16.956],[47.025,14.009],[36.082,19.299],[20.024,30.081],[9.751,33.451],[36.325,0.072],[63.773,-31.101],[63.042,-42.45],[52.466,-41.676],[36.191,-27.576],[56.718,-47.307],[56.668,-57.46],[47.992,-59.484],[43.473,-57.441],[45.072,-63.423],[31.556,-67.367]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[143.645,113.728],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND_MAIN","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[-21.556,20.677],[0,0],[0,0],[0,0],[0,0]],"v":[[27.077,-29.148],[-27.077,29.148],[-14.87,27.435],[6.884,12.719],[18.881,-4.638]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[94.789,96.955],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND_PATCH","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-105.823,62.116],[-50.508,114.467],[105.823,-53.888],[57.346,-114.467]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[37.822,210.857],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"ARM","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.088,0.077],[3.356,-3.614],[0,0],[0,0],[0,0],[3.196,-0.137]],"o":[[-4.92,-0.347],[0,0],[0,0],[0,0],[0,0],[-0.776,0.033]],"v":[[10.868,5.348],[-2.224,10.502],[-14.819,0],[-7.352,-10.502],[11.989,-4.804],[13.744,5.43]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.678431391716,0.403921574354,0.305882364511,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[116.337,178.271],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"HAND","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[70.741,184.538],"ix":2},"a":{"a":0,"k":[70.741,184.538],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"**ARM_MAIN","np":4,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":13,"ty":3,"nm":"PHONE_REPO","sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":1,"k":[{"i":{"x":[0.8],"y":[0.15]},"o":{"x":[0.3],"y":[0]},"t":70,"s":[206]},{"i":{"x":[0.1],"y":[1]},"o":{"x":[0.05],"y":[0.536]},"t":76.834,"s":[244]},{"t":103,"s":[301]}],"ix":3},"y":{"a":0,"k":150,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":3,"nm":"Launcher_ScaleIN","parent":13,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0]},{"t":154,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":1.25,"ix":3},"y":{"a":0,"k":22.5,"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.8,0.8,0.8],"y":[0.15,0.15,1]},"o":{"x":[0.3,0.3,0.3],"y":[0,0,0]},"t":144,"s":[80,80,100]},{"i":{"x":[0.1,0.1,0.1],"y":[1,1,1]},"o":{"x":[0.05,0.05,0.05],"y":[0.7,0.7,0]},"t":152.334,"s":[88,88,100]},{"t":194,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":"Launcher_01","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0]},{"t":154,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-37.512,40.271,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.112,0],[0,3.112],[3.112,0],[0,-3.112]],"o":[[3.112,0],[0,-3.112],[-3.112,0],[0,3.112]],"v":[[0,5.635],[5.635,0],[0,-5.635],[-5.635,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.807843148708,0.917647063732,0.839215695858,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":"Launcher_02","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0]},{"t":154,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-13.623,40.271,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.112,0],[0,3.112],[3.112,0],[0,-3.112]],"o":[[3.112,0],[0,-3.112],[-3.112,0],[0,3.112]],"v":[[0,5.635],[5.635,0],[0,-5.635],[-5.635,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431606,0.937254905701,0.764705896378,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":"Launcher_03","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0]},{"t":154,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[10.266,40.121,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.112,0],[0,3.112],[3.112,0],[0,-3.112]],"o":[[3.112,0],[0,-3.112],[-3.112,0],[0,3.112]],"v":[[0,5.635],[5.635,0],[0,-5.635],[-5.635,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980392158031,0.823529422283,0.811764717102,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":"Launcher_04","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0]},{"t":154,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[34.155,40.271,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.112,0],[0,3.112],[3.112,0],[0,-3.112]],"o":[[3.112,0],[0,-3.112],[-3.112,0],[0,3.112]],"v":[[0,5.635],[5.635,0],[0,-5.635],[-5.635,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.823529422283,0.890196084976,0.988235294819,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".grey800","cl":"grey800","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":144,"s":[0]},{"t":154,"s":[100]}],"ix":11,"x":"var $bm_rt;\n$bm_rt = thisComp.layer('Launcher_ScaleIN').transform.opacity;"},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-1.803,57.487,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.134,0],[0,0],[0,-3.134],[0,0],[-3.134,0],[0,0],[0,3.134],[0,0]],"o":[[0,0],[-3.134,0],[0,0],[0,3.134],[0,0],[3.134,0],[0,0],[0,-3.134]],"v":[[36.718,-5.872],[-36.718,-5.872],[-42.393,-0.197],[-42.393,0.197],[-36.718,5.872],[36.718,5.872],[42.393,0.197],[42.393,-0.197]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.235294118524,0.250980407,0.262745112181,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":20,"ty":3,"nm":"SWIPE_MOVE","parent":13,"sr":1,"ks":{"o":{"a":0,"k":0,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"s":true,"x":{"a":0,"k":0,"ix":3},"y":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":40,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":70,"s":[-35]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":130,"s":[-35]},{"t":160,"s":[-65]}],"ix":4}},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":21,"ty":4,"nm":"SWIPE","parent":20,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":55,"s":[100]},{"t":65,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.05,"y":1},"o":{"x":0.45,"y":0},"t":0,"s":[-19.564,102.3,0],"to":[0,0,0],"ti":[-0.936,17.2,0]},{"t":30,"s":[0.436,77.3,0]}],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[{"i":[[6.432,0],[0,0],[0,-6.432],[0,0],[-6.432,0],[0,0],[0,6.432],[0,0]],"o":[[0,0],[-6.432,0],[0,0],[0,6.432],[0,0],[6.432,0],[0,0],[0,-6.432]],"v":[[0,-3.467],[0,-3.467],[-11.645,8.179],[-11.645,9.321],[0,20.967],[0,20.967],[11.645,9.321],[11.645,8.179]],"c":true}]},{"t":60,"s":[{"i":[[6.432,0],[0,0],[0,-6.432],[0,0],[-6.432,0],[0,0],[0,6.432],[0,0]],"o":[[0,0],[-6.432,0],[0,0],[0,6.432],[0,0],[6.432,0],[0,0],[0,-6.432]],"v":[[0,-20.967],[0,-20.967],[-11.645,-9.321],[-11.645,9.321],[0,20.967],[0,20.967],[11.645,9.321],[11.645,-9.321]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":15,"k":{"a":0,"k":[0.079,0.4,0.616,0.965,0.089,0.396,0.612,0.963,0.1,0.392,0.608,0.961,0.154,0.375,0.596,0.959,0.208,0.357,0.584,0.957,0.262,0.341,0.573,0.955,0.316,0.325,0.561,0.953,0.368,0.314,0.553,0.953,0.421,0.302,0.545,0.953,0.471,0.292,0.537,0.951,0.522,0.282,0.529,0.949,0.57,0.275,0.525,0.949,0.618,0.267,0.522,0.949,0.663,0.263,0.518,0.949,0.708,0.259,0.514,0.949,0.079,0,0.089,0.026,0.1,0.052,0.154,0.176,0.208,0.3,0.262,0.407,0.316,0.514,0.368,0.601,0.421,0.689,0.471,0.756,0.522,0.824,0.57,0.873,0.618,0.921,0.663,0.951,0.708,0.98],"ix":9}},"s":{"a":0,"k":[0,20.967],"ix":5},"e":{"a":0,"k":[0,-20.967],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":"SCREEN_MASK","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,-1.2,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-102.248],[-45.225,-102.248],[-53.09,-94.383],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-94.382]],"c":true}]},{"t":70,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-68.498],[-45.225,-68.498],[-53.09,-60.633],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-60.632]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":25,"ty":4,"nm":".notif_01","cl":"notif_01","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[20]},{"t":58,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,-19.366,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.058,0],[0,0],[0,-2.058],[0,0],[-2.058,0],[0,0],[0,2.058],[0,0]],"o":[[0,0],[-2.058,0],[0,0],[0,2.058],[0,0],[2.058,0],[0,0],[0,-2.058]],"v":[[41.08,-10.024],[-41.08,-10.024],[-44.805,-6.298],[-44.805,6.298],[-41.08,10.024],[41.08,10.024],[44.805,6.298],[44.805,-6.298]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":26,"ty":4,"nm":"SCREEN_MASK 5","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,-1.2,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-102.248],[-45.225,-102.248],[-53.09,-94.383],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-94.382]],"c":true}]},{"t":70,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-68.498],[-45.225,-68.498],[-53.09,-60.633],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-60.632]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":27,"ty":4,"nm":".notif_02","cl":"notif_02","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[20]},{"t":58,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,5.366,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.058,0],[0,0],[0,-2.058],[0,0],[-2.058,0],[0,0],[0,2.058],[0,0]],"o":[[0,0],[-2.058,0],[0,0],[0,2.058],[0,0],[2.058,0],[0,0],[0,-2.058]],"v":[[41.08,-10.024],[-41.08,-10.024],[-44.805,-6.298],[-44.805,6.298],[-41.08,10.024],[41.08,10.024],[44.805,6.298],[44.805,-6.298]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":28,"ty":4,"nm":"SCREEN_MASK 4","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,-1.2,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-102.248],[-45.225,-102.248],[-53.09,-94.383],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-94.382]],"c":true}]},{"t":70,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-68.498],[-45.225,-68.498],[-53.09,-60.633],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-60.632]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":29,"ty":4,"nm":".white_LOCK","cl":"white_LOCK","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[100]},{"t":58,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,58.668,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.367,-0.367],[-0.515,0],[0,0],[-0.367,0.367],[0,0.515],[0,0],[0.367,0.367],[0.515,0],[0,0],[0,0],[1.155,1.157],[1.642,0],[1.157,-1.157],[0,-1.641],[0,0],[0,0],[0.367,-0.367],[0,-0.515],[0,0]],"o":[[0.367,0.367],[0,0],[0.515,0],[0.367,-0.367],[0,0],[0,-0.515],[-0.367,-0.367],[0,0],[0,0],[0,-1.641],[-1.155,-1.157],[-1.642,0],[-1.157,1.157],[0,0],[0,0],[-0.515,0],[-0.367,0.367],[0,0],[0,0.515]],"v":[[-9.441,12.564],[-8.118,13.114],[8.118,13.114],[9.441,12.564],[9.991,11.24],[9.991,-2.311],[9.441,-3.634],[8.118,-4.184],[5.932,-4.184],[5.932,-7.181],[4.2,-11.379],[0.003,-13.114],[-4.196,-11.379],[-5.932,-7.181],[-5.932,-4.184],[-8.118,-4.184],[-9.441,-3.634],[-9.991,-2.311],[-9.991,11.24]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[8.118,11.24],[-8.118,11.24],[-8.118,-2.311],[8.118,-2.311]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0.468,-0.459],[0.663,0],[0.472,0.458],[0,0.635],[-0.468,0.51],[-0.663,0],[-0.472,-0.51],[0,-0.624]],"o":[[-0.468,0.459],[-0.663,0],[-0.472,-0.458],[0,-0.635],[0.468,-0.51],[0.663,0],[0.472,0.51],[0,0.644]],"v":[[1.702,6.181],[0.005,6.869],[-1.696,6.182],[-2.404,4.543],[-1.702,2.826],[-0.005,2.061],[1.696,2.826],[2.404,4.527]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[-0.791,0.789],[-1.126,0],[-0.789,-0.789],[0,-1.128]],"o":[[0,0],[0,0],[0,-1.128],[0.791,-0.789],[1.126,0],[0.789,0.789],[0,0]],"v":[[4.059,-4.184],[-4.059,-4.184],[-4.059,-7.181],[-2.873,-10.057],[0.004,-11.24],[2.876,-10.057],[4.059,-7.181]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":30,"ty":4,"nm":"SCREEN_MASK 3","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,-1.2,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-102.248],[-45.225,-102.248],[-53.09,-94.383],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-94.382]],"c":true}]},{"t":70,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-68.498],[-45.225,-68.498],[-53.09,-60.633],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-60.632]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":31,"ty":4,"nm":".white_TIME","cl":"white_TIME","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[100]},{"t":58,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.436,-54.05,0],"ix":2,"l":2},"a":{"a":0,"k":[301.436,95.95,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.657,-0.758],[-0.859,-0.375],[-0.878,0],[-0.977,0.557],[-0.558,0.959],[0,1.169],[0.549,0.95],[0.923,0.53],[1.077,0],[0.969,-0.822],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-0.585,0.302],[-0.658,0],[-0.767,-0.776],[0,-1.187],[0.776,-0.749],[1.223,0],[0.731,0.667],[0.292,1.114],[0,0]],"o":[[0.658,0.759],[0.859,0.374],[1.223,0],[0.978,-0.557],[0.557,-0.959],[0,-1.169],[-0.549,-0.949],[-0.922,-0.529],[-1.408,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.365,-0.53],[0.585,-0.301],[1.205,0],[0.768,0.777],[0,1.205],[-0.776,0.749],[-1.024,0],[-0.731,-0.667],[0,0],[0.273,1.114]],"v":[[-4.96,7.33],[-2.685,9.029],[-0.082,9.59],[3.219,8.755],[5.522,6.48],[6.356,3.289],[5.535,0.11],[3.329,-2.11],[0.329,-2.904],[-3.234,-1.671],[-3.343,-1.699],[-2.604,-7.371],[5.179,-7.371],[5.179,-9.59],[-4.521,-9.59],[-5.726,-0.136],[-3.37,0.904],[-1.945,-0.343],[-0.082,-0.794],[2.877,0.37],[4.028,3.316],[2.863,6.247],[-0.136,7.371],[-2.768,6.371],[-4.301,3.699],[-6.356,4.522]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[317.59,96.169],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[-2.206,-3.754],[1.083,-6.11],[1.083,9.371],[3.411,9.371],[3.411,-9.371],[1.932,-9.371],[-3.411,-5.535]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[303.957,95.95],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-0.493],[-0.339,-0.338],[-0.493,0],[-0.339,0.338],[0,0.493],[0.338,0.339],[0.494,0],[0.338,-0.338]],"o":[[0,0.493],[0.338,0.338],[0.494,0],[0.338,-0.338],[0,-0.493],[-0.339,-0.338],[-0.493,0],[-0.339,0.339]],"v":[[-1.754,-5.316],[-1.247,-4.069],[0,-3.562],[1.247,-4.069],[1.754,-5.316],[1.247,-6.563],[0,-7.069],[-1.247,-6.563]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-0.475],[-0.339,-0.338],[-0.493,0],[-0.339,0.339],[0,0.493],[0.338,0.338],[0.494,0],[0.338,-0.338]],"o":[[0,0.493],[0.338,0.339],[0.494,0],[0.338,-0.338],[0,-0.475],[-0.339,-0.338],[-0.493,0],[-0.339,0.338]],"v":[[-1.754,5.316],[-1.247,6.562],[0,7.069],[1.247,6.562],[1.754,5.316],[1.247,4.096],[0,3.589],[-1.247,4.096]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[296.053,98.251],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.548,-0.85],[-0.969,-0.493],[-1.187,0],[-0.968,0.494],[-0.557,0.85],[0,1.041],[0.576,0.795],[0.932,0.457],[0,0],[-0.466,0.722],[0,0.786],[0.484,0.804],[0.868,0.457],[1.078,0],[0.867,-0.456],[0.484,-0.803],[0,-0.986],[-0.466,-0.722],[-0.731,-0.438],[0,0],[0.576,-0.795],[0,-1.06]],"o":[[0.548,0.85],[0.968,0.494],[1.169,0],[0.968,-0.493],[0.557,-0.85],[0,-1.06],[-0.575,-0.795],[0,0],[0.712,-0.438],[0.466,-0.722],[0,-0.986],[-0.484,-0.803],[-0.868,-0.456],[-1.096,0],[-0.868,0.457],[-0.484,0.804],[0,0.786],[0.466,0.722],[0,0],[-0.932,0.457],[-0.575,0.795],[0,1.041]],"v":[[-5.508,7.056],[-3.233,9.069],[0,9.809],[3.206,9.069],[5.494,7.056],[6.33,4.22],[5.466,1.439],[3.206,-0.439],[3.206,-0.548],[4.973,-2.288],[5.672,-4.549],[4.946,-7.234],[2.918,-9.124],[0,-9.809],[-2.945,-9.124],[-4.973,-7.234],[-5.7,-4.549],[-5.001,-2.288],[-3.206,-0.548],[-3.206,-0.439],[-5.467,1.439],[-6.33,4.22]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-1.005],[0.758,-0.648],[1.114,0],[0.767,0.648],[0,1.041],[-0.767,0.648],[-1.114,0],[-0.758,-0.648]],"o":[[0,1.041],[-0.758,0.648],[-1.114,0],[-0.767,-0.648],[0,-1.005],[0.767,-0.648],[1.114,0],[0.758,0.648]],"v":[[3.946,4.083],[2.808,6.618],[0,7.59],[-2.822,6.618],[-3.973,4.083],[-2.822,1.603],[0,0.63],[2.808,1.603]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,-0.913],[0.621,-0.566],[0.968,0],[0.63,0.567],[0,0.914],[-0.63,0.539],[-0.969,0],[-0.63,-0.539]],"o":[[0,0.914],[-0.621,0.567],[-0.969,0],[-0.63,-0.566],[0,-0.913],[0.63,-0.539],[0.949,0],[0.63,0.539]],"v":[[3.315,-4.603],[2.384,-2.384],[0,-1.534],[-2.398,-2.384],[-3.343,-4.603],[-2.398,-6.782],[0,-7.59],[2.37,-6.782]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[285.257,95.95],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":32,"ty":4,"nm":".grey600","cl":"grey600","parent":13,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.436,-1.2,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-1.086],[0,0],[1.086,0],[0,0],[0,-1.086],[0,0],[1.086,0],[0,0],[5.421,0],[0,0],[0,5.421],[0,0],[-5.421,0],[0,0],[0,-5.421],[0,0]],"o":[[0,0],[0,1.086],[0,0],[1.086,0],[0,0],[0,1.086],[0,0],[0,5.421],[0,0],[-5.421,0],[0,0],[0,-5.421],[0,0],[5.421,0],[0,0],[1.086,0]],"v":[[56.04,-51.124],[56.04,-43.259],[54.073,-41.292],[54.073,-25.562],[56.04,-23.596],[56.04,-3.933],[54.073,-1.966],[54.073,94.382],[44.242,104.214],[-46.208,104.214],[-56.04,94.382],[-56.04,-94.382],[-46.208,-104.214],[44.242,-104.214],[54.073,-94.382],[54.073,-53.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,4.337],[0,0],[4.337,0],[0,0],[0,-4.337],[0,0],[-4.337,0]],"o":[[4.337,0],[0,0],[0,-4.337],[0,0],[-4.337,0],[0,0],[0,4.337],[0,0]],"v":[[44.242,102.248],[52.107,94.382],[52.107,-94.382],[44.242,-102.248],[-46.208,-102.248],[-54.073,-94.382],[-54.073,94.382],[-46.208,102.248]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960813999,0.525490224361,0.54509806633,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":33,"ty":4,"nm":"SCREEN_MASK 2","parent":20,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.547,-1.2,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":40,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-102.248],[-45.225,-102.248],[-53.09,-94.383],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-94.382]],"c":true}]},{"t":70,"s":[{"i":[[4.341,0],[0,0],[0,-4.341],[0,0],[-4.341,0],[0,0],[0,4.341],[0,0]],"o":[[0,0],[-4.341,0],[0,0],[0,4.341],[0,0],[4.341,0],[0,0],[0,-4.341]],"v":[[45.224,-68.498],[-45.225,-68.498],[-53.09,-60.633],[-53.09,94.383],[-45.225,102.248],[45.224,102.248],[53.09,94.382],[53.09,-60.632]],"c":true}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":1,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":34,"ty":4,"nm":"Gradient","parent":20,"tt":1,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":48,"s":[100]},{"t":58,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-0.464,-1.411,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[101,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.35,0],[0,0],[0,-4.35],[0,0],[-4.35,0],[0,0],[0,4.35],[0,0]],"o":[[0,0],[-4.35,0],[0,0],[0,4.35],[0,0],[4.35,0],[0,0],[0,-4.35]],"v":[[45.319,-102.459],[-45.318,-102.459],[-53.2,-94.577],[-53.2,94.578],[-45.319,102.459],[45.319,102.459],[53.2,94.578],[53.2,-94.578]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":13,"k":{"a":0,"k":[0.079,0.929,0.8,0.816,0.158,0.837,0.761,0.833,0.236,0.745,0.722,0.851,0.324,0.659,0.684,0.869,0.411,0.573,0.647,0.886,0.496,0.504,0.618,0.898,0.58,0.435,0.588,0.91,0.659,0.386,0.567,0.92,0.738,0.337,0.545,0.929,0.811,0.308,0.533,0.935,0.883,0.278,0.522,0.941,0.941,0.269,0.518,0.945,1,0.259,0.514,0.949],"ix":9}},"s":{"a":0,"k":[-80.036,123.908],"ix":5},"e":{"a":0,"k":[121.911,123.908],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill_1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":35,"ty":4,"nm":".black","cl":"black","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[206,150,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-15.291,0],[0,0],[0,15.544],[0,0],[15.185,0],[0,0],[0,-15.652],[0,0]],"o":[[0,0],[15.291,0],[0,0],[0,-15.652],[0,0],[-15.291,0],[0,0],[0,15.652]],"v":[[-178.179,150],[178.179,150],[206,121.63],[206,-121.522],[178.286,-150],[-178.179,-150],[-206,-121.522],[-206,121.522]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Vector","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"ct":1,"bm":0}],"markers":[]}
\ No newline at end of file
diff --git a/res/raw/remoteauth_explanation_swipe_animation.json b/res/raw/remoteauth_explanation_swipe_animation.json
new file mode 100644
index 0000000..a06ae37
--- /dev/null
+++ b/res/raw/remoteauth_explanation_swipe_animation.json
@@ -0,0 +1 @@
+{"v":"5.9.0","fr":60,"ip":0,"op":248,"w":412,"h":300,"nm":"Active_Unlock_PT2_V05","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":".blue400","cl":"blue400","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":62,"s":[0]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":92,"s":[360]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":187,"s":[360]},{"t":237,"s":[0]}],"ix":10},"p":{"a":0,"k":[85.699,151.401,0],"ix":2,"l":2},"a":{"a":0,"k":[84.949,150.651,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":62,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-9.6,-20.75],[-9.6,4.35],[9.6,20.75]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.7,"y":0},"t":92,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.725,4.75],[-11.85,14.35],[7.725,-9.125]],"c":false}]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-23.725,4.75],[-11.85,14.35],[7.725,-9.125]],"c":false}]},{"t":237,"s":[{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-9.6,-20.75],[-9.6,4.35],[9.6,20.75]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":62,"s":[2.768]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":92,"s":[4.568]},{"i":{"x":[0.3],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":187,"s":[4.568]},{"t":237,"s":[2.768]}],"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[94.549,146.301],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[171.326,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[186.326,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[186.326,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[171.326,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":20,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":83,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":103,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":123,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":125,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":145,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":165,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":208,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":228,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":248,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[191.201,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[206.201,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[206.201,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[191.201,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":7,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":27,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":47,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":76,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":96,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":116,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":132,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":152,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":172,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":201,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":221,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":241,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[210.701,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[225.701,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[225.701,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[210.701,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":14,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":34,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":54,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":69,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":89,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":109,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":139,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":159,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":179,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":194,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":214,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":234,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[230.076,149.999,0],"to":[2.5,0,0],"ti":[-2.5,0,0]},{"i":{"x":0.3,"y":0.3},"o":{"x":0.7,"y":0.7},"t":50,"s":[245.076,149.999,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.3,"y":1},"o":{"x":0.8,"y":0},"t":187,"s":[245.076,149.999,0],"to":[-2.5,0,0],"ti":[2.5,0,0]},{"t":237,"s":[230.076,149.999,0]}],"ix":2,"l":2},"a":{"a":0,"k":[211.701,150.999,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":21,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":41,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":61,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":62,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":82,"s":[130,130,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":102,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":146,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":166,"s":[130,130,100]},{"i":{"x":[0.1,0.1,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":186,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.563],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.186],"y":[0,0,0]},"t":187,"s":[100,100,100]},{"i":{"x":[0.1,0.1,0.669],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.318],"y":[0,0,0]},"t":207,"s":[130,130,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.3,0.3,0.432],"y":[0,0,0]},"t":227,"s":[100,100,100]},{"i":{"x":[0.3,0.3,0.833],"y":[1,1,1]},"o":{"x":[0.8,0.8,0.167],"y":[0,0,0]},"t":263,"s":[100,100,100]},{"t":283,"s":[0,0,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.1,0],[0,-2.2],[-2.2,0],[0,2.2]],"o":[[-2.101,0],[0,2.2],[2.1,0],[0,-2.2]],"v":[[0.001,-3.9],[-3.899,0],[0.001,3.9],[3.9,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[211.701,150.999],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":".blue400","cl":"blue400","parent":11,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[9.431,10.775,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0,"y":1},"o":{"x":0.167,"y":0.167},"t":58,"s":[{"i":[[0,0],[0,3.938],[-0.938,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.938,0],[0,4.188],[0,0]],"v":[[-4.562,-0.031],[-4.562,-4.719],[0.25,-9.656],[5.375,-4.781],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.167,"y":0},"t":88,"s":[{"i":[[0,0],[0,3.938],[0.896,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[-0.896,0],[0,4.188],[0,0]],"v":[[14.875,-2.531],[14.875,-7.219],[10.274,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":207,"s":[{"i":[[0,0],[0,3.938],[0.896,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[-0.896,0],[0,4.188],[0,0]],"v":[[14.875,-2.531],[14.875,-7.219],[10.274,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":217,"s":[{"i":[[0,0],[0,3.938],[-0.932,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.932,0],[0,4.188],[0,0]],"v":[[-4.5,-2.531],[-4.5,-7.219],[0.282,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"i":{"x":0,"y":1},"o":{"x":0.333,"y":0},"t":227,"s":[{"i":[[0,0],[0,3.938],[-0.932,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.932,0],[0,4.188],[0,0]],"v":[[-4.5,-2.531],[-4.5,-7.219],[0.282,-12.156],[5.375,-7.281],[5.375,-0.281]],"c":false}]},{"t":247,"s":[{"i":[[0,0],[0,3.938],[-0.938,0],[0,-4.188],[0,0]],"o":[[0,0],[0,-3.938],[0.938,0],[0,4.188],[0,0]],"v":[[-4.562,-0.031],[-4.562,-4.719],[0.25,-9.656],[5.375,-4.781],[5.375,-0.281]],"c":false}]}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":".blue400","cl":"blue400","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[315.859,148.919,0],"ix":2,"l":2},"a":{"a":0,"k":[9.912,13.777,0],"ix":1,"l":2},"s":{"a":0,"k":[147,147,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.067,0],[0,1.067],[1.067,0],[0,-1.068]],"o":[[1.067,0],[0,-1.068],[-1.067,0],[0,1.067]],"v":[[0,6.764],[1.932,4.831],[0,2.898],[-1.932,4.831]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,0],[0,-0.533],[0,0],[-0.534,0],[0,0],[0,0.533],[0,0],[0.534,0]],"o":[[-0.534,0],[0,0],[0,0.533],[0,0],[0.534,0],[0,0],[0,-0.533],[0,0]],"v":[[-6.763,-1.932],[-7.73,-0.966],[-7.73,10.629],[-6.763,11.594],[6.763,11.594],[7.73,10.629],[7.73,-0.966],[6.763,-1.932]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,-1.601],[0,0],[1.601,0],[0,0],[0,1.601],[0,0],[-1.601,0]],"o":[[0,0],[0,0],[1.601,0],[0,0],[0,1.601],[0,0],[-1.601,0],[0,0],[0,-1.601],[0,0]],"v":[[-5.797,-3.865],[5.797,-3.865],[6.763,-3.865],[9.662,-0.966],[9.662,10.629],[6.763,13.527],[-6.763,13.527],[-9.662,10.629],[-9.662,-0.966],[-6.763,-3.865]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[9.912,13.777],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":6,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"MATTE","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.981,150,0],"ix":2,"l":2},"a":{"a":0,"k":[56.29,104.464,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.337,0],[0,0],[0,4.337],[0,0],[-4.337,0],[0,0],[0,-4.337]],"o":[[0,4.337],[0,0],[-4.337,0],[0,0],[0,-4.337],[0,0],[4.337,0],[0,0]],"v":[[52.107,94.382],[44.242,102.248],[-46.208,102.248],[-54.074,94.382],[-54.074,-94.382],[-46.208,-102.248],[44.242,-102.248],[52.107,-94.382]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"gr","it":[{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":0,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 2","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.498039245605,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[56.29,104.464],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":5,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":15,"ty":4,"nm":".blue400","cl":"blue400","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.981,152.207,0],"ix":2,"l":2},"a":{"a":0,"k":[74.06,74.06,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.72,-30.74],[30.74,3.72],[-3.719,30.741],[-30.74,-3.719]],"o":[[-3.72,30.74],[-30.74,-3.719],[3.72,-30.74],[30.74,3.72]],"v":[[55.66,6.735],[-6.735,55.66],[-55.66,-6.735],[6.735,-55.66]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.4,0.61568627451,0.964705882353,1],"ix":4},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":73,"s":[33]},{"t":120,"s":[0]}],"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[74.06,74.06],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667],"y":[1,1]},"o":{"x":[0.333,0.333],"y":[0,0]},"t":60,"s":[0,0]},{"t":120,"s":[610,610]}],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":600,"st":0,"bm":0},{"ddd":0,"ind":16,"ty":4,"nm":".blue300matte","cl":"blue300matte","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.85,150.9,0],"ix":2,"l":2},"a":{"a":0,"k":[317.85,151.9,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.4,0],[0,0],[0,4.399],[0,0],[-4.4,0],[0,0],[0,-4.4]],"o":[[0,4.3],[0,0],[-4.3,0],[0,0],[0,-4.3],[0,0],[4.3,0],[0,0]],"v":[[52.15,94.3],[44.25,102.199],[-46.25,102.199],[-54.15,94.3],[-54.15,-94.4],[-46.25,-102.3],[44.25,-102.3],[52.15,-94.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.1],[0,0],[1.1,0],[0,0],[5.4,0],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[0,1.1],[0,0],[1.1,0],[0,0]],"o":[[0,0],[0,-1.1],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[5.4,0],[0,0],[1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0]],"v":[[56.05,-43.3],[56.05,-51.2],[54.05,-53.2],[54.05,-94.4],[44.25,-104.2],[-46.25,-104.2],[-56.05,-94.4],[-56.05,94.4],[-46.25,104.199],[44.25,104.199],[54.05,94.4],[54.05,-1.9],[56.05,-3.9],[56.05,-23.6],[54.05,-25.6],[54.05,-41.3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541176470588,0.705882352941,0.972549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.85,151.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":17,"ty":4,"nm":".blue600","cl":"blue600","tt":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[314.647,152.796,0],"ix":2,"l":2},"a":{"a":0,"k":[0,0,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.941],[0,0],[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0]],"o":[[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0],[0,0],[0,3.941],[0,0]],"v":[[48.189,101.203],[55.325,94.067],[55.283,-97.818],[48.147,-104.954],[-45.468,-104.954],[-52.605,-97.818],[-52.563,94.067],[-45.426,101.203]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":25,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[225]},{"t":248,"s":[585]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,3.941],[0,0],[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0]],"o":[[3.941,0],[0,0],[0,-3.941],[0,0],[-3.941,0],[0,0],[0,3.941],[0,0]],"v":[[48.189,101.203],[55.325,94.067],[55.283,-97.818],[48.147,-104.954],[-45.468,-104.954],[-52.605,-97.818],[-52.563,94.067],[-45.426,101.203]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":25,"ix":2},"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[45]},{"t":248,"s":[405]}],"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"st","c":{"a":0,"k":[0.101960784314,0.450980392157,0.909803921569,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":7,"ix":5},"lc":1,"lj":1,"ml":10,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":18,"ty":4,"nm":".blue300","cl":"blue300","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[316.85,150.9,0],"ix":2,"l":2},"a":{"a":0,"k":[317.85,151.9,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[4.4,0],[0,0],[0,4.399],[0,0],[-4.4,0],[0,0],[0,-4.4]],"o":[[0,4.3],[0,0],[-4.3,0],[0,0],[0,-4.3],[0,0],[4.3,0],[0,0]],"v":[[52.15,94.3],[44.25,102.199],[-46.25,102.199],[-54.15,94.3],[-54.15,-94.4],[-46.25,-102.3],[44.25,-102.3],[52.15,-94.4]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,1.1],[0,0],[1.1,0],[0,0],[5.4,0],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[0,1.1],[0,0],[1.1,0],[0,0]],"o":[[0,0],[0,-1.1],[0,0],[0,-5.4],[0,0],[-5.4,0],[0,0],[0,5.4],[0,0],[5.4,0],[0,0],[1.1,0],[0,0],[0,-1.1],[0,0],[1.1,0]],"v":[[56.05,-43.3],[56.05,-51.2],[54.05,-53.2],[54.05,-94.4],[44.25,-104.2],[-46.25,-104.2],[-56.05,-94.4],[-56.05,94.4],[-46.25,104.199],[44.25,104.199],[54.05,94.4],[54.05,-1.9],[56.05,-3.9],[56.05,-23.6],[54.05,-25.6],[54.05,-41.3]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.541176470588,0.705882352941,0.972549019608,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[317.85,151.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":19,"ty":4,"nm":".blue400","cl":"blue400","parent":24,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[88.803,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[88.803,150.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[24.601,0],[0,24.6],[-24.6,0],[0,-24.6]],"o":[[-24.6,0],[0,-24.6],[24.601,0],[0,24.6]],"v":[[-1.45,44.6],[-46.05,-0.001],[-1.45,-44.6],[43.151,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[1.5,0],[0,0],[24.101,0],[0,-26.1],[-26.1,0],[-3.8,22.401],[0,0],[0,1.5],[0,0]],"o":[[0,0],[-2.9,-23.299],[-26.1,0],[0,26.1],[23.4,0],[0,0],[1.5,0],[0,0],[0.099,-1.5]],"v":[[46.051,-5.9],[45.551,-5.9],[-1.45,-47.299],[-48.75,-0.001],[-1.45,47.299],[45.25,7.799],[45.95,7.799],[48.651,5.1],[48.651,-3.199]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.400000029919,0.61568627451,0.964705942191,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[88.849,150.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":23,"ty":4,"nm":"ClockFace_Mask","parent":24,"td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87.399,150.5,0],"ix":2,"l":2},"a":{"a":0,"k":[87.399,150.5,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-25.405,0],[0,25.405],[25.404,0],[0,-25.405]],"o":[[25.404,0],[0,-25.405],[-25.405,0],[0,25.405]],"v":[[0,46],[46,0],[0,-46],[-46,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.399,150.5],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0},{"ddd":0,"ind":24,"ty":4,"nm":".grey300","cl":"grey300","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":50,"s":[6]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.7],"y":[0]},"t":187,"s":[6]},{"t":237,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":0,"s":[86.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":0.2},"o":{"x":0.7,"y":0.7},"t":50,"s":[121.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.2,"y":1},"o":{"x":0.7,"y":0},"t":187,"s":[121.4,150.05,0],"to":[0,0,0],"ti":[0,0,0]},{"t":237,"s":[86.4,150.05,0]}],"ix":2,"l":2},"a":{"a":0,"k":[87.4,151.05,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[5.1,0],[0,0],[0.5,-4.3],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-5.1,0],[0,0],[-0.5,4.3],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[-0.5,-4.3],[0,0],[-5.1,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0.5,4.301],[0,0],[5.1,0],[0,0],[0,0],[0,0]],"v":[[29.3,-7.85],[29.4,-9.35],[29.1,-9.35],[22.699,-68.05],[12.8,-75.65],[-12,-75.65],[-21.9,-68.15],[-29,-9.35],[-29.4,-9.35],[-29.301,-7.65],[-29.4,-6.45],[-29.2,-6.45],[-22.801,68.049],[-12.9,75.65],[11.9,75.65],[21.8,68.15],[29,-6.45],[29.3,-6.45]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.501960784314,0.525490196078,0.545098039216,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.4,151.05],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":1800,"st":0,"bm":0}],"markers":[]}
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 581c5d4..5f0b1a3 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Ná 1 minuut"</item>
     <item msgid="1574040255478150028">"Ná 5 minute"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 9b1c98d..fb293cd 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Jy is nou \'n ontwikkelaar!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Toemaar, jy is reeds \'n ontwikkelaar."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Aktiveer asseblief eers ontwikkelaaropsies."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Net die admingebruikers het toegang tot ontwikkelaarinstellings."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Stelsel"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In diens"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Diens is nie beskikbaar nie"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Boonste skerm skakel aan wanneer jy jou toestel vou"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Slegs speletjies, video’s en meer"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Boonste skerm skakel aan vir apps wat keer dat jou skerm onaktief word"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swiep op om voort te gaan"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Vou jou foon en swiep op die boonste skerm op om voort te gaan om die app te gebruik, of wag ’n paar sekondes vir die skerm om te sluit"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nooit"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Boonste skerm sluit wanneer jy jou toestel vou"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Gebruik outodraai"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Soortgelyk"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Luitoon en wekkers"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Oudio tydens oproepe"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Kennsgewings en stelselklanke"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media- en stelselklanke"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Kennisgewings"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Oudio-uitvoer word by verstek deur individuele apps bepaal"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Onbenoemde Bluetooth-toestel"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Soek"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth is aangeskakel"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Sien alles"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Sien alles"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stilus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Puntknoppiedruk"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (werkprofiel)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Koppel aan ’n LE-oudiostroom"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Oudiostrome naby"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Oudiostrome"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Koppel aan ’n oudiostroom met gebruik van ’n QR-kode"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Geen oudiostroom is gevind nie."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Gaan na programtaalinstellings vir elke program om ’n taal te kies."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Kom meer te wete oor apptale"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Verander stelseltaal na %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Voeg %s by voorkeurtale?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Dit laat apps en webwerwe weet dat jy ook hierdie taal verkies."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Jou toestelinstellings en streeksvoorkeure sal verander."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Verander"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s is nie beskikbaar nie"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Saterdag"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"As ’n app nie streeksvoorkeure steun nie, sal die app sy versteklocale-instellings gebruik."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Kom meer te wete oor taalvoorkeure."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Bykomende voorkeure"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Aanspreekvorms"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Stel hoe jy aangespreek wil word"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps kan jou aanspreekvorms gebruik om te personaliseer hoe hulle jou aanspreek."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nie gespesifiseer nie"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Vroulik"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Manlik"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutraal"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Verwyder geselekteerde taal?}other{Verwyder geselekteerde tale?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teks sal in \'n ander taal gewys word."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kan nie alle tale verwyder nie"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Ligging"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Gebruik ligging"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Af"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Aan – # app het toegang tot ligging}other{Aan – # apps het toegang tot ligging}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aan / # app het toegang tot ligging}other{Aan / # apps het toegang tot ligging}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laai tans …"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Kom meer te wete oor ligginginstellings."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Kom meer te wete oor ligginginstellings"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Om liggingtoegang te verander, gaan na Instellings &gt; Sekuriteit en Privaatheid &gt; Privaatheidkontroles."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Gebruik vir die beste resultate ’n skermbeskermer wat Gemaak vir Google-gesertifiseer is. Jou kind se vingerafdruk sal dalk nie met ander skermbeskermers werk nie."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Horlosieontsluiting"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Wanneer jy Gesigslot en Vingerafdrukslot opstel, sal jou foon vir jou vingerafdruk vra as jy ’n masker dra of in die donker is.\n\nJy kan met jou horlosie ontsluit wanneer jou gesig of vingerafdruk nie herken word nie."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Jy kan met jou horlosie ontsluit wanneer jou vingerafdruk nie herken word nie."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Jy kan met jou horlosie ontsluit wanneer jou gesig nie herken word nie."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Wanneer jy Gesigslot en Vingerafdrukslot opstel, sal jou foon vir jou vingerafdruk vra wanneer jy ’n masker dra of in die donker is.\n\nHorlosieontsluiting is nog ’n gerieflike manier om jou foon te ontsluit, byvoorbeeld wanneer jou vingers nat is of jou gesig nie herken word nie."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Horlosieontsluiting is nog ’n gerieflike manier om jou foon te ontsluit, byvoorbeeld wanneer jou vingerafdruk nie herken word nie."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Horlosieontsluiting is nog ’n gerieflike manier om jou foon te ontsluit, byvoorbeeld wanneer jou gesig nie herken word nie."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Gebruik vingerafdruk of horlosie om te"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Gebruik gesig of horlosie om te"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Gebruik gesig, vingerafdruk of horlosie om te"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gesig en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesig, vingerafdruk en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesig, vingerafdrukke en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator-ontsluiting"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Horlosie is bygevoeg"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Stel jou horlosie op"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Horlosieontsluiting is nog ’n gerieflike manier waarop jy hierdie foon kan ontsluit; byvoorbeeld, wanneer jou vingers nat is of jou gesig nie herken word nie.\n\nJy kan jou horlosie gebruik om hierdie foon te ontsluit wanneer jy:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nie nou nie"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Gaan voort"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Meer"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Hoe dit werk"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Jou horlosie moet ontsluit, om jou pols en binne bereik van hierdie foon wees. Jy hoef jou horlosie nie weer te ontsluit terwyl dit om jou pols is nie."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Jy sal op jou horlosie in kennis gestel word wanneer hierdie foon ontsluit word. Tik op die kennisgewing om die foon weer te sluit as jy dit onbedoeld ontsluit het."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jy is in beheer"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Jy kan jou horlosie enige tyd in Instellings uit Horlosieontsluiting verwyder"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tik op ’n kennisgewing"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swiep boontoe op die sluitskerm"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Kies jou horlosie"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Beskikbare horlosies"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Kanselleer"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bevestig"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Jy is gereed!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Jy kan nou jou horlosie gebruik om hierdie foon te ontsluit wanneer jy op die sluitskerm boontoe swiep of op ’n kennisgewing tik"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Klaar"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Horlosieontsluiting"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Jy kan jou horlosie gebruik om hierdie foon te ontsluit wanneer jy op die sluitskerm boontoe swiep of op ’n kennisgewing tik"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Om Horlosieontsluiting te gebruik, moet jou horlosie ontsluit, om jou pols, binne bereik en aan hierdie foon gekoppel wees. As die verbinding onderbreek word, sal jy die foon moet ontsluit voordat jy Horlosieontsluiting kan gebruik.\n\nHou in gedagte:\nJy kan net een horlosie op ’n slag opgestel hê. Om ’n ander horlosie by te voeg, moet jy eers die huidige een verwyder."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Kom meer te wete oor Horlosieontsluiting"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Voeg horlosie by"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Verwyder horlosie"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Gesig- en vingerafdrukslot"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Gesig- en Vingerafdrukslot vir werk"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Opstelling is nodig"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sekuriteit"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privaatheid"</string>
     <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="2274405892301976238">"Behou private apps gesluit en versteek"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Hou privaat apps in ’n aparte ruimte wat jy kan versteek of sluit"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Privaat Ruimte-slot"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Jy kan Privaat Ruimte ontsluit nes jy jou toestel ontsluit of jy kan ’n ander slot kies"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Gebruik toestelskermslot"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Gesig- en Vingerafdrukslot"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Vingerafdrukslot"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Gesigslot"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tik om op te stel"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Vingerafdrukslot vir Privaat Ruimte"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Gesigslot vir Privaat Ruimte"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Maniere om te ontsluit"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Dieselfde as toestelskermslot"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Wil jy ’n nuwe slot vir Privaat Ruimte kies?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Sluit outomaties"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Sluit privaat ruimte outomaties"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Jy kan jou privaat ruimte outomaties sluit as jy jou toestel vir \'n tydperk nie gebruik het nie"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Elke keer as die toestel sluit"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Ná 5 minute se onaktiwiteit"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nooit"</string>
+    <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_delete_title" msgid="3075645119800272800">"Vee privaat ruimte uit"</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="private_space_unlocked" msgid="9091600948712932046">"Privaat ruimte ontsluit"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Stel ’n skermslot"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Stel ’n skermslot op dié toestel om jou 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="private_space_cancel_label" msgid="379259667396956886">"Kanselleer"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Stel op"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Stel ’n privaat ruimte op"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Hou privaat apps in ’n aparte ruimte wat jy kan versteek of sluit"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Hoe dit werk"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Jy kan van die onderkant van jou lys apps af toegang tot jou privaat ruimte kry"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps in jou privaat ruimte word deur ’n slot beskerm"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Kennisgewings vanaf apps in jou privaat ruimte word versteek as dit gesluit is"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps in jou privaat ruimte sal nie in toestemmingbestuurder, privaatheidkontroleskerm en ander instellings verskyn wanneer jou privaat ruimte gesluit is nie.\n\nJou privaat ruimte kan nie na ’n nuwe toestel geskuif word nie. Jy sal ’n ander privaat ruimte moet opstel as jy dit op ’n ander toestel wil gebruik.\n\nEnigiemand wat jou toestel aan ’n rekenaar koppel of skadelike apps op jou toestel installeer, sal moontlik toegang tot jou privaat ruimte kan kry."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Stel tans privaat ruimte op …"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Kennisgewings vanaf apps in privaat ruimte word versteek as dit gesluit is"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Ontsluit jou privaat ruimte om foto’s of lêers vanuit privaat ruimte-apps te deel"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Sommige apps is reeds in jou privaat ruimte geïnstalleer"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Kon nie privaat ruimte opstel nie"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Probeer weer"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Wil jy skermslot gebruik om privaat ruimte te ontsluit?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Jy kan jou privaat ruimte ontsluit nes jy jou toestel ontsluit of jy kan ’n ander slot kies"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gebruik skermslot"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Kies nuwe slot"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Gereed!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Gaan na jou lys apps en rollees af om toegang tot jou privaat ruimte te kry"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Klaar"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Rollees af om privaat ruimte te vind"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Kies ’n slot vir jou privaat ruimte"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Jy kan jou privaat ruimte met jou vingerafdruk ontsluit. Om veiligheidsredes vereis hierdie opsie ’n rugsteunslot."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Stel \'n PIN vir jou privaat ruimte"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Stel \'n wagwoord vir jou privaat ruimte"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Stel \'n patroon vir jou privaat ruimte"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Om Privaat Ruimte te wys (nie finale UX nie)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Maak die Instellings-program oop"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tik op Sekuriteit &amp; privaatheid &gt; Privaat Ruimte &gt; Versteek Privaat Ruimte wanneer gesluit"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Skakel die wisselfunksie Privaat Ruimte wanneer gesluit af"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota aan Googlers: Die ontwikkeling van hierdie kenmerk is nog aan die gang"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Jy sal hierdie sleutel dalk op die ander toestel ook moet invoer."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bevestig om met die gekoördineerde stel saam te bind"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Laat toegang tot jou kontakte en oproepgeskiedenis toe"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Gee ook toegang tot kontakte en oproepgeskiedenis"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Inligting sal vir oproepaankondigings en meer gebruik word"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Kon nie aan <xliff:g id="DEVICE_NAME">%1$s</xliff:g> koppel nie."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Beskikbare toestelle"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Wanneer Bluetooth aangeskakel is, kan jou toestel met ander nabygeleë Bluetooth-toestelle kommunikeer"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In vliegtuigmodus"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Stel in kennis oor publieke netwerke"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Stel in kennis wanneer \'n publieke netwerk van hoë gehalte beskikbaar is"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Laat BEP-netwerke toe"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"BEP is ’n ouer sekuriteitprotokol wat minder veilig is"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Jou diensverskaffer laat nie BEP-netwerke toe nie omdat hulle minder veilig is"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Skakel Wi-Fi outomaties aan"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi sal weer aanskakel naby gestoorde netwerke van hoë gehalte, soos jou tuisnetwerk"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Onbeskikbaar omdat ligging afgeskakel is. Skakel "<annotation id="link">"ligging"</annotation>" aan."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-fi-opsporing maak dit vir programme en dienste moontlik om enige tyd na Wi-Fi-netwerke te soek, selfs wanneer Wi-Fi af is. Dit kan byvoorbeeld gebruik word om ligginggegronde kenmerke en dienste te verbeter."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Skakel aan"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi-opsporing is aangeskakel"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Hierdie netwerk gebruik ’n ouer sekuriteitprotokol wat minder veilig is"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> is geblokkeer"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Hierdie netwerk gebruik ’n ouer sekuriteitprotokol genaamd BEP, wat minder veilig is. Jy kan BEP-netwerke toelaat om in elk geval te koppel."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Jou diensverskaffer laat jou nie toe om aan hierdie netwerk te koppel nie, want dit gebruik \'n ouer sekuriteitsprotokol wat minder veilig is"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Laat BEP toe"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Maak toe"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Gevorderde opsies"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Gevorderde Opsies-aftreklys"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"vou uit"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bly op Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Moet nooit weer wys nie"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Koppel"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi is aangeskakel"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Gekoppel aan <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Koppel tans aan <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Koppel tans …"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Netwerkverbinding het misluk"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netwerk nie binne sendbereik nie"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Vergeet"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Wysig"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Kon netwerk nie vergeet nie"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Stoor"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Netwerkstoring het misluk"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Kanselleer"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobiele data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Laai tans"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Laai tans"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Warmkolverbinding"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Verbindingsterkte"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gestoorde netwerke"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Geen wagwoord is gestel nie"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Warmkolnaam"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Warmkolwagwoord"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Skakel warmkol outomaties af"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Wanneer geen toestelle gekoppel is nie"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Brei versoenbaarheid uit"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Wys witbalans"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Deaktiveer verstekraamtempo vir speletjies"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Deaktiveer die beperking van die maksimum raamtempo vir speletjies teen <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Gladde vertoning"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Skermaandag gebruik die voorste kamera om te sien of iemand na die skerm kyk. Dit werk op die toestel, en prente word nooit geberg of na Google toe gestuur nie."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Skakel skermaandag aan"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hou skerm aan terwyl jy daarna kyk"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Langer skermuitteltyd sal meer battery gebruik."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera is gesluit"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera moet ontsluit wees vir gesigbespeuring"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera moet ontsluit word vir skermaandag"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM-gleuf <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM-gleuf <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primêr)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Kies gestoorde netwerk om te bekyk"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-weergawe"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Batteryvlak"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Gemeenskaplik"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Gemeenskaplike instellings"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Stoor"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Kanselleer"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Die naamveld kan nie leeg wees nie."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Die APN kan nie leeg wees nie."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-veld moet 3 syfers wees."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Die MNC-veld moet uit 2 of 3 syfers bestaan."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Diensverskaffer laat nie toe dat APN\'e van tipe %s bygevoeg word nie."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-veld moet geldig wees."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Laai verstek APN-instellings terug"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Stel terug na verstek"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Terugstel van verstek APN-instellings voltooi"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Stel terug"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth en wi‑fi is teruggestel"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Vee e-SIM-kaarte uit"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Dit sal geen mobielediensplanne kanselleer nie. Kontak jou diensverskaffer om vervanging-SIM\'s af te laai."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Stel instellings terug"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Stel alle netwerkinstellings terug? Jy kan nie hierdie handeling ontdoen nie."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Stel alle netwerkinstellings terug en vee e-SIM-kaarte uit? Jy kan nie hierdie handeling ontdoen nie."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Stel terug?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Netwerkterugstelling is nie vir hierdie gebruiker beskikbaar nie"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Netwerkinstellings is teruggestel"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Kan nie SIM-kaarte uitvee nie"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"E-SIM-kaarte kan vanweë ’n fout nie uitgevee word nie.\n\nHerbegin jou toestel en probeer weer."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Vee alle data uit (fabriekterugstelling)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Vee alle data uit (fabriekterugstelling)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musiek"</li>\n<li>"Foto\'s"</li>\n<li>"Ander gebruikerdata"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"e-SIM-kaarte"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Dit sal nie jou mobiele diensplan kanselleer nie."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Al jou persoonlike inligting en afgelaaide programme sal uitgevee word. Jy kan nie hierdie handeling ontdoen nie."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Al jou persoonlike inligting, insluitend afgelaaide programme en SIM-kaarte, sal uitgevee word. Jy kan nie hierdie handeling ontdoen nie."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vee alle data uit?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Fabriekterugstelling is nie vir hierdie gebruiker beskikbaar nie"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Vee tans uit"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Warmkol, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Deel nie tans internet met ander toestelle nie"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Af"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Verbinding"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Moenie Wi-Fi-warmkol gebruik nie"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Deel internet net deur USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Deel internet net deur Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Deel internet net deur Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Deel internet net deur USB en Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Deel internet net deur USB en Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Deel internet net deur Bluetooth en Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Deel internet net deur USB, Bluetooth en Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-verbinding"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-verbinding"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-verbinding"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gebruik warmkol en verbinding om deur jou Wi-Fi- of mobiele dataverbinding internet aan ander toestelle te verskaf. Programme kan ook \'n warmkol skep om inhoud met toestelle in die omtrek te deel."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hulp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobiele netwerk"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiele plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-program"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Verander SMS-program?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gebruik <xliff:g id="NEW_APP">%1$s</xliff:g> in plaas van <xliff:g id="CURRENT_APP">%2$s</xliff:g> as jou SMS-program?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Verander Wi-Fi-assistent?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Gebruik <xliff:g id="NEW_APP">%1$s</xliff:g> in plaas van <xliff:g id="CURRENT_APP">%2$s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Gebruik <xliff:g id="NEW_APP">%s</xliff:g> om jou netwerkverbindings te bestuur?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Onbekende SIM-operateur"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> het geen bekende voorsieningwebwerf nie"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Steek asseblief SIM-kaart in en herbegin"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Koppel asseblief aan die internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Onlangse liggingversoeke"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ligging vir werkprofiel"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Programliggingtoestemmings"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Maak toegang skoon"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontroles"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forseer stop"</string>
+    <string name="archive" msgid="9074663845068632127">"Argiveer"</string>
+    <string name="restore" msgid="7622486640713967157">"Stel terug"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Totaal"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Programgrootte"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB-berging-program"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Kon nie pakketgrootte bereken nie."</string>
     <string name="version_text" msgid="7628938665256107608">"weergawe <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Skuif"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Kon nie argiveer nie"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> is geargiveer"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Kon nie terugstel nie"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> word teruggestel"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"\'n Ander migrasie is reeds aan die gang."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nie genoeg stoorplek nie."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Program bestaan ​​nie."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Beskikbare skermsleutelbord"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Bestuur sleutelborde op die skerm"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opsies"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Toeganklikheid"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fisiese sleutelbord"</string>
     <string name="show_ime" msgid="4334255501724746849">"Gebruik skermsleutelbord"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Hou dit op die skerm terwyl fisieke sleutelbord aktief is"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Hopsleutels"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Aktiveer Hopsleutels vir fisiese sleutelbordtoeganklikheid"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Taaisleutels"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Aktiveer Taaisleutels vir fisiese sleutelbordtoeganklikheid"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Kortpadsleutels"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Wys lys met kortpaaie"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Werkprofielsleutelborde en -nutsgoed"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sorteer volgens gebruikstyd"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sorteer volgens laas gebruik"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sorteer volgens programnaam"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Laas gebruik"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Laas gebruik"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nooit"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Gebruikstyd"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Toeganklikheid"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Toeganklikheids-instellings"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Gaan in elk geval voort"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Kanselleer"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Vergrotinginstellings"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Vergroot met trippeltik"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Vergroot met kortpad"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Vergroot met kortpad en trippeltik"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Meer oor <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Tweevinger-dubbeltik 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="860548190334486449">"Dubbeltik 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Swiep met 3 vingers van die onderkant van die skerm af op om \'n toeganklikheidkenmerk te gebruik.\n\nSwiep met 3 vingers op en hou om tussen kenmerke te wissel."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Het dit"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Toeganklikheidknoppie-instellings"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Knoppie-instellings"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g>-kortpad"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Toeganklikheidknoppie"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Toeganklikheidsgebaar"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Tweevinger-dubbeltik op skerm"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tweevinger-dubbeltik op skerm"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tik vinnig {0,number,integer} keer op die skerm met twee vingers"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tik 3 keer op skerm"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Kom meer te wete oor toeganklikheidknoppie en -gebaar"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Gebruik tans toeganklikheidsknoppie. Die gebaar is nie beskikbaar met 3-knoppienavigasie nie."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Kry vinnig toegang tot toeganklikheidskenmerke"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Begin só"</b>\n"1. Gaan na toeganklikheidsinstellings\n2. Kies ’n kenmerk en tik op die kortpad\n3. Kies of jy ’n knoppie of gebaar wil gebruik om toegang tot die kenmerk te kry"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Begin só"</b>\n"1. Gaan na toeganklikheidsinstellings\n2. Kies ’n kenmerk en tik op die kortpad\n3. Kies die knoppie om toegang tot die kenmerk te kry"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Om te begin&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gaan na toeganklikheidsinstellings&lt;br/&gt; {1,number,integer}. Kies ’n kenmerk en tik op die kortpad&lt;br/&gt; {2,number,integer}. Kies of jy ’n knoppie of gebaar wil gebruik om toegang tot die kenmerk te kry&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Om te begin&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gaan na toeganklikheidsinstellings&lt;br/&gt; {1,number,integer}. Kies ’n kenmerk en tik op die kortpad&lt;br/&gt; {2,number,integer}. Kies die knoppie om toegang tot die kenmerk te kry&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Gebruik knoppie of gebaar"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Ligging"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Grootte"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Kragknoppie beëindig oproep"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Groot muiswyser"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Maak die muiswyser meer opmerklik"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Maak alle apps donker"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Geld vir apps sonder hul eie donkertema. Sommige apps kan skermprobleme hê, soos omgekeerde kleure."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Verwyder animasies"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Verminder beweging op die skerm"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono-oudio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dit kan jou interaksies met \'n app of \'n hardewaresensor naspoor en namens jou met apps interaksie hê."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Laat toe"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weier"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Kanselleer"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Stop <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"As jy op <xliff:g id="STOP">%1$s</xliff:g> tik, sal dit <xliff:g id="SERVICE">%2$s</xliff:g> stop."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Skakel af"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Hou aan"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Skakel <xliff:g id="SERVICE">%1$s</xliff:g> af?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Geen dienste geïnstalleer nie"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Geen diens is gekies nie"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Geen beskrywing verskaf nie."</string>
     <string name="settings_button" msgid="2195468788019730377">"Instellings"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ligsensitiwiteit, fotofobie, donkertema, migraine, hoofpyn, leesmodus, nagmodus, verlaag helderheid, witpunt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Gebruiksgemak, toegangsgemak, bystand, ondersteunend"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visie, gehoor, blind, doof, motories, handigheid, ondersteunend, bystand, gebruiksgemak, toegangsgemak, hand, hulp"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Venstervergrootglas, zoem, vergroting, swak sig, vergroot, maak groter"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Onderskrifte, onderskrifte, CC, kitstranskripsie, hardhorend, gehoorverlies, CART, spraak-na-teks, onderskrifte"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kleurkontras"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motories, muis"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"gehoortoestelle, hardhorend, gehoorverlies, kogleêre inplantings, klankversterkingtoestelle, klankverwerkers"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motories, muis, eksterne muis, hoofmuis, aannpasbare muis, rolstoel, speelstok"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"gehoortoestelle, hardhorend, gehoorverlies, kogleêre inplantings, klankversterkingtoestelle, klankverwerkers, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hardhorend, gehoorverlies, onderskrifte, telesetter, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"drie knoppies"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"handigheid, motories, senior, artritis, rsi, beroerte, bewing, verspreide sklerose, serebrale verlamming, geskud, ooreisingbesering, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"vertraging, handigheid, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Druk"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Af"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 drukdiens is aan}other{# drukdienste is aan}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Sien programme met die hoogste gebruik"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Laaiproses word geoptimeer om jou battery te beskerm"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Laaiproses is geoptimeer om jou battery se lewensduur te help verleng"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Laaiproses word geoptimeer om jou battery te beskerm"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Laaiproses word geoptimeer terwyl gedok om jou battery se leeftyd te help verleng"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Laaiproses word geoptimeer om jou battery te beskerm"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Laaiproses word geoptimeer terwyl gedok om jou battery se leeftyd te help verleng"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Laaiproses is klaar"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Die laaiproses sal volgende keer as jou tablet gedok is geoptimeer word om die battery te beskerm"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Kom meer te wete oor laaiproses wat onderbreek is"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Hervat laaiproses"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Sluit hoëkrag-agtergrondaktiwiteit in"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Verwyder"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Kanselleer"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Laai tot vol"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Kwessie met laaibykomstigheid"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Kom meer te wete oor onversoenbare laaiproses"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Batterybestuurder"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Bestuur programme outomaties"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"nou"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Batterygebruikgrafiek"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafiek van daaglikse batterygebruik"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafiek van uurlikse batterygebruik"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Batteryvlakpersentasie vanaf <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> tot <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Batterygebruik sedert dit laas volgelaai is"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Batterygebruik vir <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Skermtyd sedert battery laas volgelaai is"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Noodoproepsein"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Stel gedrag wanneer \'n noodoproep gemaak word"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Rugsteun"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Aan"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Af"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Rugsteun en laai terug"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Persoonlike data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Rugsteun my data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Naam"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipe"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Bedieneradres"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-enkripsie (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-geheim"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-identifiseerder"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec voorafgedeelde sleutel"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-gebruikersertifikaat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-sertifikaat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-bedienersertifikaat"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Wys gevorderde opsies"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-soekdomeine"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-bedieners (bv. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Aanstuurroetes (bv. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Gebruikernaam"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Wagwoord"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Stoor rekeninginligting"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nie gebruik nie)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(moenie bediener verifieer nie)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ontvang van bediener)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Dié VPN-tipe kan nie te alle tye gekoppel bly nie"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Altyd-aan VPN steun net numeriese bedieneradresse"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"\'n DNS-bediener moet gespesifiseer word vir altyd-aan VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS-bediener se adresse moet numeries wees vir altyd-aan VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Die inligting wat ingevoer is, steun nie altyd-aan VPN nie"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Kanselleer"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Maak toe"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokkeer verbindings sonder VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vereis VPN-verbinding?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nie veilig nie. Dateer op na \'n IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Kon nie ongesteunde VPN begin nie."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Kies \'n VPN-profiel om altyd aan gekoppel te bly. Netwerkverkeer sal net toegelaat word wanneer verbind aan hierdie VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Geen"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Altydaan-VPN vereis \'n IP-adres vir beide die bediener en DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER-berigte"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Ontvang bulletins oor kinderontvoerings"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Herhaal"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktiveer oproepbestuurder"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Laat hierdie diens toe om te bestuur hoe jou oproepe gemaak word."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Oproepbestuurder"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Draadlose noodwaarskuwings"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Netwerkoperateurs"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Toegangspuntname"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"betaal, tik, betalings"</string>
     <string name="keywords_backup" msgid="707735920706667685">"rugsteun, rugsteun"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gebaar"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"gesig, ontsluit, stawing, meld aan"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"gesig, ontsluit, stawing, aanmelding, vingerafdruk, biometries"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-weergawe, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Aanskakel-klanke"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Kitsopskrif"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Gee outomaties mediaopskrifte"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Foonluidsprekers"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tabletluidsprekers"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Toestelluidsprekers"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Draadoorfone"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Oudio vanaf versoenbare media word meer meesleurend"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Af"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Onlangse gesprekke is verwyder"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Gesprek is verwyder"</string>
     <string name="clear" msgid="5092178335409471100">"Vee uit"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Vee uit <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioriteit- en gewysigde gesprekke sal hier verskyn"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Nadat jy \'n gesprek as prioriteit gemerk het, of enige ander veranderinge aan gesprekke gemaak het, sal hulle hier verskyn. \n\nHoe om gesprekinstellings te verander: \nSwiep van die bokant van die skerm af om die kennisgewingskerm oop te maak, en raak en hou dan \'n gesprek."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimeer"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Af"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Programvasspeld"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Deur programme vas te speld, kan jy die huidige program in sig hou totdat jy dit ontspeld. Hierdie kenmerk kan byvoorbeeld gebruik word om dit vir \'n vertroude vriend moontlik te maak om \'n spesifieke speletjie te speel."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Wanneer ’n program vasgespeld is, kan die vasgespelde program ander programme oopmaak en kan daar dalk toegang tot persoonlike data verkry word. \n\nOm programvasspeld te gebruik: 	\n1. Skakel programvasspeld aan 	\n2. Maak Oorsig oop 	\n3. Tik op die programikoon boaan die skerm en tik dan op Speld Vas"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Wanneer ’n program vasgespeld is, kan die vasgespelde program ander programme oopmaak en kan daar dalk toegang tot persoonlike data verkry word. \n\nProbeer eerder ’n gasgebruiker gebruik as jy jou toestel veilig met iemand wil deel. \n\nOm programvasspeld te gebruik: 	\n1. Skakel programvasspeld aan 	\n2. Maak Oorsig oop 	\n3. Tik op die programikoon boaan die skerm en tik dan op Speld Vas"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Wanneer ’n app vasgespeld is, kan die vasgespelde app ander apps oopmaak en kan daar dalk toegang tot persoonlike data verkry word. \n\nOm appvasspeld te gebruik: 	\n{0,number,integer}. Skakel appvasspeld aan 	\n{1,number,integer}. Maak Oorsig oop 	\n{2,number,integer}. Tik op die appikoon boaan die skerm en tik dan op Speld Vas"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Wanneer ’n app vasgespeld is, kan die vasgespelde app ander apps oopmaak en kan daar dalk toegang tot persoonlike data verkry word. \n\nProbeer eerder ’n gasgebruiker gebruik as jy jou toestel veilig met iemand wil deel. \n\nOm appvasspeld te gebruik: 	\n{0,number,integer}. Skakel appvasspeld aan 	\n{1,number,integer}. Maak Oorsig oop 	\n{2,number,integer}. Tik op die appikoon boaan die skerm en tik dan op Speld Vas"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Wanneer program vasgespeld is: \n\n•	 Kan daar dalk toegang tot persoonlike data verkry word (soos kontakte en e-posinhoud) \n\n•	 Vasgespelde program kan ander programme oopmaak \n\nGebruik net programvasspeld met mense wat jy vertrou."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Vra ontsluitpatroon voordat jy ontspeld"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Vra PIN voordat jy ontspeld"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Ongebruikte programinstellings"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Onderbreek programaktiwiteit as ongebruik"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Verwyder toestemmings, vee tydelike lêers uit, en stop kennisgewings"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Bestuur app indien ongebruik"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Verwyder toestemmings, vee tydelike lêers uit, stop kennisgewings en argiveer die app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Alle apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Geïnstalleerde programme"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Kitsprogramme"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Beskikbaar"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Geheue wat deur programme gebruik word"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app het geheue gebruik in die afgelope {time}}other{# apps het geheue gebruik in die afgelope {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Aktiveer geheuegebruikprofielbepaling"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Geheuegebruikprofielbepaling vereis bykomende stelselhulpbronne."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Geheueprofielbepaling is gedeaktiveer"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekwensie"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimum gebruik"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Geen data is gebruik nie"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Wys bo-oor ander programme"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Laat toe dat dit bo-oor ander programme wys"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Laat hierdie program toe om te wys bo-oor ander programme wat jy gebruik. Hierdie program sal kan sien waarop jy tik of verander wat op die skerm gewys word."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Verander media-uitset"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Laat app toe om media-uitset te ruil"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Laat hierdie app toe om te kies watter gekoppelde toestel oudio of video van ander apps af speel. Indien toegelaat, kan hierdie app toegang kry tot ’n lys beskikbare toestelle soos oorfone en luidsprekers, en kies watter uitsettoestel gebruik word om oudio of video te stroom of uit te saai."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Toegang tot alle lêers"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Verbeter stemaktivering"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Hierdie toestel gebruik privaat intelligensie om die stemaktiveringmodel te verbeter. Apps kan opgesomde opdaterings ontvang wat deur baie gebruikers saamgevoeg word om privaatheid te handhaaf terwyl die model vir almal verbeter word.\n\n"<a href="">"Meer oor privaat intelligensie"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g>-datawaarskuwing"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g>-datalimiet"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g>-datawaarskuwing / <xliff:g id="ID_2">^2</xliff:g>-datalimiet"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Diensverskaffer se datarekening kan van toestel se rekening verskil"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Sluit data uit wat deur diensverskaffernetwerke gebruik word"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> gebruik"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Stel datawaarskuwing"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> gelede opgedateer"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Sopas opgedateer deur <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Sopas opgedateer"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Bekyk plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Bekyk besonderhede"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Databespaarder"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Onbeperkte data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Onreëlmatigheid met batterygebruik"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Kitsinstellings-ontwikkelaarteëls"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Deaktiveer uitteltyd vir ADB-magtiging"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Deaktiveer outomatiese herroeping van ADB-magtigings vir stelsels wat nie binne die verstek- (7 dae) of gebruikeropgstelde (minimum 1 dag) tydperk herkoppel het nie."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-spoor"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensors Af"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Werkprofielinstellings"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Soek werkgidskontakte in persoonlike apps"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swiep op van ’n onderste hoek af om digitale bystandapp op te roep"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Outovuldiens"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Verstekoutovuldiens"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Wagwoorde"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Wagwoorde, toegangsleutels en datadienste"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Bykomende verskaffers"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# wagwoord}other{# wagwoorde}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"outomaties, invul, outovul, wagwoord"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"data, toegangsleutel, wagwoord"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"outo, vul, outovul, data, toegangsleutel, wagwoord"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Wagwoorde, toegangsleutels en datadienste"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Skakel alle dienste af?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Wagwoorde, toegangsleutels en ander gestoorde inligting sal nie vir outovul beskikbaar wees wanneer jy aanmeld nie"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Verander jou voorkeurdiens na &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_enable_confirmation_message_title" msgid="1037501792652277829">"Gebruik %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Jy kan net 5 dienste aan hê"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Skakel ten minste 1 diens af om nog een by te voeg"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limiet vir wagwoorde, toegangsleutels en datadienste"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Jy kan tot 5 wagwoorde, toegangsleutels en datadienste tegelyk aktief hê. Skakel ’n diens af om meer by te voeg."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limiet vir wagwoorde, toegangsleutels en datadienste"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Jy kan tot 5 wagwoorde, toegangsleutels en datadienste tegelyk aktief hê. Skakel ’n diens af om meer by te voeg."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Skakel af"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Outovul"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Aantekeningvlak"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Veranderinge aan programversoenbaarheid kan net vir ontfoutbare programme gewysig word. Installeer \'n ontfoutbare program en probeer weer."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Hang van \'n ander instelling af"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Rekening"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d rekeninge"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Toestelnaam"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basiese inligting"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Wetlik en regulerend"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Laat hierdie app toe om te begin wanneer ’n NFC-merker geskandeer word.\nAs hierdie toestemming aan is, sal die app as ’n opsie beskikbaar wees elke keer wanneer ’n merker bespeur word."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Speel media na"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Speel <xliff:g id="LABEL">%s</xliff:g> op"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Oudio sal speel op"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Hierdie toestel"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Onbeskikbaar tydens oproepe"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Antwoord oproep op"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Demp"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"As jy wil aktiveer, moet jy eers \"Druk en hou aan/af-skakelaar\" na die aan/af-kieslys verander."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Netwerkbesonderhede"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Programme op jou foon kan jou toestelnaam sien. Ander mense sal dit dalk ook kan sien wanneer jy aan Bluetooth-toestelle koppel, aan \'n wi-fi-netwerk koppel of \'n wi-fi-warmkol opstel."</string>
     <string name="devices_title" msgid="649715719278562515">"Toestelle"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Kies netwerk"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Ontkoppel"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Naam"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Kleur (gebruik deur versoenbare programme)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Stoor"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Gebruik SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Gebruik hierdie SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Af"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Verwyder hierdie SIM-kaart om dit te deaktiveer"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tik om <xliff:g id="CARRIER">%1$s</xliff:g> te aktiveer"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Vee SIM uit"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Voorkeurnetwerktipe"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Verander die netwerkbedryfsmodus"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Voorkeurnetwerktipe"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Kry pryse by jou netwerkverskaffer."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Appdatagebruik"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ongeldige netwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoreer."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Toegangspuntname"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Onbeskikbaar wanneer gekoppel aan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Skakel oor na <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Skakel oor om SIM-kaart te gebruik?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Gebruik <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Net een SIM kan op \'n slag aktief wees.\n\nAs jy na <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> toe oorskakel, sal dit nie jou <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-diens kanselleer nie."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Slegs 1 e-SIM kan op ’n slag aktief wees.\n\nJou <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-diens sal nie gekanselleer word as jy na <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> toe oorskakel nie."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Net een SIM kan op \'n slag aktief wees.\n\nAs jy oorskakel, sal dit nie jou <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-diens kanselleer nie."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Jy kan 2 SIM\'s op dieselfde tyd gebruik. Skakel ander SIM af om <xliff:g id="CARRIER_NAME">%1$s</xliff:g> te gebruik."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Skakel oor na <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Skakel <xliff:g id="CARRIER_NAME">%1$s</xliff:g> af"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nee, dankie"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Kanselleer"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Skakel oor"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Skakel af"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kan nie SIM aktiveer nie"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Probeer weer om die SIM aan te skakel. Herbegin jou toestel as die probleem voortduur."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Stel jou SIM op"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Sstel jou selnetwerkvoorkeure om veelvuldige SIM’s op hierdie toestel te gebruik"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Merk jou SIM’s"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Jy sal hierdie etikette in Instellings sien en wanneer jy oproepe maak, SMS’e stuur en data gebruik"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-etiket"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiket"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Kies watter SIM’s om te gebruik"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Jy kan 2 SIM’s op ’n slag gebruik"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Stel jou primêre SIM’s"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Kies watter SIM’s om by verstek te gebruik vir oproepe, SMS’e en data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Jou primêre SIM’s"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Oproepe"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS’e"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Outomatiese datawisseling"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Gebruik data vanaf enige SIM na gelang van dekking en beskikbaarheid"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Net data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Stel op"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Volgende"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Selnetwerk"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Foonnommer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-etiket en -kleur"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netwerkaktivering"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Diensverskafferoorskakeling"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is aktief"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Gaan na jou netwerkinstellings om mobiele data, oproepkenmerke en SMS\'e later te kan gebruik"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vee hierdie e-SIM uit?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"As jy hierdie SIM uitvee, word <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-diens van hierdie toestel verwyder.\n\nDiens vir <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> sal nie gekanselleer word nie."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Vee uit"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Vee tans SIM uit …"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Kan nie SIM uitvee nie"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Hierdie SIM kan weens \'n fout nie uitgevee word nie.\n\nHerbegin jou toestel en probeer weer."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Koppel aan toestel"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g>-program wil \'n tydelike Wi‑Fi-netwerk gebruik om aan jou toestel te koppel"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Geen toestelle gekry nie. Maak seker dat toestelle aangeskakel is en beskikbaar is om te koppel."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Noodoproepe"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Jou diensverskaffer steun nie noodoproepe oor Wi‑Fi nie.\nDie toestel skakel outomaties na \'n selnetwerk toe oor om \'n noodoproep te maak.\nNoodoproepe is net moontlik in gebiede met sellulêre dekking."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Gebruik Wi-Fi vir oproepe om gehalte te verbeter"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Rugsteunoproepe"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Gebruik jou mobieledata-SIM <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> vir oproepe as <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> of swerwing nie beskikbaar is nie."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"rugsteunoproepe"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Inkomende MMS-boodskap"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Kan nie MMS-boodskap stuur nie"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tik om MMS-boodskappe op <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> toe te laat wanneer mobiele data af is"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Jou werkbeleidinligting"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Instellings wat deur jou IT-admin bestuur word"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Selflaai met 16K-bladsygrootte"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Selflaaitoestel wat 16K-bladsygrootte ondersteunde kern gebruik"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Herlaai met 16KB-bladsye versoenbare kern?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WAARSKUWING: Sommige apps is dalk nie versoenbaar met hierdie modus nie. Toestel sal ná bevestiging herlaai."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Herlaai met 4KB-bladsye versoenbare kern?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Toestel sal ná bevestiging herlaai."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Kon nie kern opdateer na 16KB-bladsy versoenbare kern nie."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Pas tans verandering toe"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Foutverslaghanteerder"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Bepaal watter program die Foutverslag-kortpad op jou toestel hanteer."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Persoonlik"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Mediaspeler bly oop in Kitsinstellings om terugspeel vinnig te hervat"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Wys media op sluitskerm"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Mediaspeler bly oop op sluitskerm om terugspeel vinnig te hervat"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Wys media-aanbevelings"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Wys media-aanbevelings vir Assistent"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Gegrond op jou aktiwiteit"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Versteek speler"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Wys speler"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"e-SIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"e-SIM-kaarte"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktief"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Onaktief"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Verstek vir <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"oproepe"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Oudio vanaf versoenbare media word meer meesleurend"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Kopnasporing"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Oudio verander wanneer jy jou kop beweeg om natuurliker te klink"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinkroniseer toestemmings"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Gee <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> dieselfde apptoestemmings wat jy op <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> toegelaat het."</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinkroniseer toestemmings van foon af"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Gee jou horlosie dieselfde apptoestemmings as wat jy op hierdie foon toegelaat het"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Oudiotoesteltipe"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Onbekend"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Luidspreker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Hoog"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Hierdie app kan net in 1 venster oopgemaak word"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aan"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Af"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Af"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Af"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Aan"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Af"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Aan"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Af"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Maak ligte skerms donker en donker skerms lig"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoem in op die skerm"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Af"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Af"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Aan"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Af"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Aan"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Wagwoord is nou opgestel"</string>
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 4bdfd0b..4bc5176 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"ከ1 ደቂቃ በኋላ"</item>
     <item msgid="1574040255478150028">"ከ5 ደቂቃዎች በኋላ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 5c4f1e1..95fc23b 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"የአስተዳዳሪ ተጠቃሚዎች ብቻ የገንቢ ቅንብሮችን መድረስ ይችላሉ።"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ስርዓት"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"በአገልግሎት ውስጥ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ከአገልግሎት ውጭ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ለመቀጠል ወደ ላይ ያንሸራትቱ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"መተግበሪያውን በመጠቀም ለመቀጠል ስልክዎን ይጠፉ እና የፊት ማያ ገጽ ላይ ያንሸራትቱ፣ ወይም ማያ ገጹ እንዲቆለፍ ጥቂት ሰከንዶች ይጠብቁ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ተዛማጅ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"የጥሪ ቅላጼ እና ማንቂያዎች"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"ኦዲዮ በጥሪዎች ወቅት"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"ሚዲያ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"ማሳወቂያዎች እና ሌሎች የሥርዓት ድምፆች"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"የሚዲያ እና የስርዓት ድምጾች"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"ማሳወቂያዎች"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"በነባሪ የድምፅ ውፅዓት የሚወሰነው በግለሰብ መተግበሪያዎች ነው"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"ስም አልባ የብሉቱዝ መሣሪያ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"በመፈለግ ላይ"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ብሉቱዝ በርቷል"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ሁሉንም ይመልከቱ"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ሁሉንም ይመልከቱ"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ብሮስፌ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"የጭራ አዝራርን መጫን"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (የሥራ መገለጫ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"ከLE የኦዲዮ ዥረት ጋር ያገናኙ"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"በአቅራቢያ ያሉ ኦዲዮ ዥረቶች"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ኦዲዮ ዥረቶች"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR ኮድ በመጠቀም ከኦዲዮ ዥረት ጋር ያገናኙ"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"በአቅራቢያ ያለ ምንም አይነት የኦዲዮ ዥረት አልተገኘም።"</string>
     <string name="date_and_time" msgid="1788358029823431692">"ቀን እና ሰዓት"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ተኪ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"አጽዳ"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ለእያንዳንዱ መተግበሪያ ቋንቋ ለመምረጥ ወደ መተግበሪያ ቋንቋ ቅንብሮች ይሂዱ።"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ስለ መተግበሪያ ቋንቋዎች የበለጠ ይወቁ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"የስርዓት ቋንቋ ወደ %s ይለወጥ ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s ወደ ተመራጭ ቋንቋዎች ይታከል?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"እንዲሁም እርስዎ ይህን ቋንቋ እንደሚመርጡ ይህ መተግበሪያዎች እና ድር ጣቢያዎችን ያሳውቃቸዋል።"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"የእርስዎ የመሣሪያ ቅንብሮች እና ክልላዊ አማራጮች ይለወጣሉ።"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ለውጥ"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s አይገኝም"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ቅዳሜ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"አንድ መተግበሪያ ክልላዊ ምርጫዎችን የማይደግፍ ከሆነ መተግበሪያው የእሱን ነባሪ የአካባቢ ቅንብሮች ይጠቀማል።"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ስለቋንቋ ምርጫዎች የበለጠ ይወቁ።"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ተጨማሪ ምርጫዎች"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"የአጠራር ደንቦች"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"እንዴት መጠራት እንደሚፈልጉ ያዘጋጁ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"መተግበሪያዎች እርስዎን እንዴት እንደሚያነጋግሩ ግላዊነት ለማላበስ የአጠራር ቃላትዎን መጠቀም ይችላሉ።"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"አልተገለጸም"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"እንስት"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ተባዕታይ"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ገለልተኛ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{የተመረጠው ቋንቋ ይወገድ?}one{የተመረጠው ቋንቋ ይወገድ?}other{የተመረጡ ቋንቋዎች ይወገዱ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ጽሁፍ በሌላ ቋንቋ ይታያል።"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ሁሉንም ቋንቋዎች ማስወገድ አይቻልም"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"አካባቢ"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"አካባቢን ተጠቀም"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ጠፍቷል"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{በርቷል - # መተግበሪያ የአካባቢ መዳረሻ አለው}one{በርቷል - # መተግበሪያ የአካባቢ መዳረሻ አለው}other{በርቷል - # መተግበሪያዎች የአካባቢ መዳረሻ አላቸው}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{በርቷል / # መተግበሪያ የአካባቢ መዳረሻ አለው}one{በርቷል / # መተግበሪያ የአካባቢ መዳረሻ አለው}other{በርቷል / # መተግበሪያዎች የአካባቢ መዳረሻ አላቸው}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"በመጫን ላይ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"በአቅራቢያ ያሉ የመሣሪያዎች ፈቃድ ያላቸው መተግበሪያዎች የተገናኙ መሣሪያዎችን አንጻራዊ አቀማመጥ ማወቅ ይችላሉ።"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ለመተግበሪያዎች እና ለአገልግሎቶች የአካባቢ መዳረሻ ጠፍቷል። ወደ የአደጋ ጊዜ ቁጥር ሲደውሉ ወይም የጽሑፍ መልዕክት ሲልኩ የመሣሪያዎ አካባቢ አሁንም ወደ የድንገተኛ ጊዜ አደጋ ምላሽ ሰጪዎች ሊላክ ይችላል።"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ስለአካባቢ ቅንብሮች የበለጠ ይወቁ።"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ስለ የአካባቢ ቅንብሮች የበለጠ ይወቁ"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"የአካባቢ መዳረሻን ለመቀየር ወደ ቅንብሮች &gt; ደህንነት እና ግላዊነት &gt; የግላዊነት መቆጣጠሪያዎች ይሂዱ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ለምርጥ ውጤቶች ለGoogle የተሰራ የተረጋገጠ የማያ ገፅ መከላከያን ይጠቀሙ። በሌሎች የማያ ገፅ መከላከያዎች አማካኝነት የልጅዎ የጣት አሻራ ላይሰራ ይችላል።"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"በእጅ ሰዓት መክፈቻ"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ሲያዋቅሩ ጭምብል በለበሱበት ጊዜ ወይም ጨለማ በሆነ ቦታ ውስጥ ሲሆኑ ስልክዎ የጣት አሻራዎን ይጠይቃል።\n\nመልክዎ ወይም የጣት አሻራዎ ሳይታወቅ ሲቀር በእጅ ሰዓትዎ መክፈት ይችላሉ።"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"የጣት አሻራዎ ሳይለይ ሲቀር በእጅ ሰዓትዎ መክፈት ይችላሉ።"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"መልክዎ ሳይለይ ሲቀር በእጅ ሰዓትዎ መክፈት ይችላሉ።"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"በመልክ መክፈት እና በጣት አሻራ መክፈቻን ሲያዋቅሩ፣ ጭምብል በለበሱበት ጊዜ ወይም ጨለማ በሆነ ቦታ ውስጥ ሲሆኑ ስልክዎ የጣት አሻራዎን ይጠይቃል።\n\nበእጅ ሰዓት መክፈቻ ስልክዎን ለመክፈት ሌላ ምቹ መንገድ ነው፣ ለምሳሌ፦ ጣቶችዎ እርጥብ ሲሆኑ ወይም መልክ ሳይታወቅ ሲቀር።"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"በእጅ ሰዓት መክፈቻ ስልክዎን ለመክፈት ሌላኛው ምቹ መንገድ ነው፣ ለምሳሌ፦ የጣት አሻራዎ ሳይታወቅ ሲቀር።"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"በእጅ ሰዓት መክፈቻ ስልክዎን ለመክፈት ሌላኛው ምቹ መንገድ ነው፣ ለምሳሌ፦ መልክዎ ሳይታወቅ ሲቀር።"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"የጣት አሻራ ወይም የእጅ ሰዓት ይጠቀሙ ለ"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ፊት ወይም የእጅ ሰዓት ይጠቀሙ ለ"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ፊት፣ የጣት አሻራ ወይም የእጅ ሰዓትን ይጠቀሙ ለ"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"መልክ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"መልክ፣ የጣት አሻራ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"መልክ፣ የጣት አሻራዎች እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"የርቀት መቆጣጠሪያ ማረጋገጫ ተከፍቷል"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"የእጅ ሰዓት ታክሏል"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"የእጅ ሰዓትዎን ያዋቅሩ"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"እንዴት እንደሚሠራ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"የእጅ ሰዓትዎ የተከፈተ፣ በእጅዎ ላይ ያለ እና ከስልኩ በቅርብ ርቀት ላይ መሆን አለበት። በእጅዎ ላይ በሚሆንበት ጊዜ የእጅ ሰዓትዎን በድጋሚ መክፈት አያስፈልግዎትም።"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ይህ ስልክ ሲከፈት በእጅ ሰዓትዎ ላይ ማሳወቂያ ይደርስዎታል። የተከፈተው ሳይፈልጉት ከነበረ በድጋሚ ስልኩን ለመቆለፍ ማሳወቂያውን መታ ያድርጉ።"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"እርስዎ ነዎት የሚቆጣጠሩት"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"በማንኛውም ጊዜ በቅንብሮች ውስጥ የእጅ ሰዓትዎን ከእጅ ሰዓት መክፈቻ ማስወገድ ይችላሉ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ማሳወቂያን መታ ያድርጉ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ማያ ገጽ ቁልፉ ላይ ወደ ላይ ያንሸራትቱ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"የእጅ ሰዓትዎን ይምረጡ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"የሚገኙ የእጅ ሰዓቶች"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ይቅር"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"አረጋግጥ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ጨርሰዋል!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"አሁን የማያ ገጽ ቁልፉ ላይ ወደ ላይ ሲያንሸራትቱ ወይም ማሳወቂያን መታ ሲያደርጉ ይህን ስልክ ለመክፈት የእጅ ሰዓትዎን መጠቀም ይችላሉ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ተከናውኗል"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"በእጅ ሰዓት መክፈቻ"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"የማያ ገጽ ቁልፉ ላይ ወደ ላይ ሲያንሸራትቱ ወይም ማሳወቂያን መታ ሲያደርጉ ይህን ስልክ ለመክፈት የእጅ ሰዓትዎን መጠቀም ይችላሉ"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"በእጅ ሰዓት መክፈቻን ለመጠቀም የእጅ ሰዓትዎ መከፈት፣ በአንጓዎ ላይ መሆን፣ በቅርብ ርቀት ላይ መኖር እና ከዚህ ስልክ ጋር መገናኘት አለበት። ግንኙነቱ ከተቋረጠ በእጅ ሰዓት መክፈቻን መጠቀም ከመቻልዎ በፊት ስልኩን መክፈት ይኖርብዎታል።\n\nያስታውሱ፦\nበአንድ ጊዜ ማዋቀር የሚችሉት አንድ የእጅ ሰዓት ብቻ ነው። ሌላ የእጅ ሰዓት ለማከል በመጀመሪያ የአሁኑን ያስወግዱ።"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ስለ በእጅ ሰዓት መክፈቻ የበለጠ ይወቁ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"የእጅ ሰዓትን አክል"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"የእጅ ሰዓትን አስወግድ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"የጣት አሻራ እና በመልክ መክፈት"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"በመልክ እና በጣት አሻራ መክፈቻ ለሥራ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ውቅረት ያስፈልጋል"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ደህንነት"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ግላዊነት"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"የሥራ መገለጫ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"የግል ቦታ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"የግል መተግበሪያዎችን ቆልፈው እና ደብቀው ያስቀምጡ"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"የግል መተግበሪያዎችን መደበቅ ወይም መቆለፍ በሚችሉት የተለየ ቦታ ላይ ያቆዩ"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"የግል ቦታ ቁልፍ"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"መሳሪያዎን እንደከፈቱት በተመሳሳይ መንገድ የግል ቦታ መክፈት ወይም የተለየ ቁልፍ መምረጥ ይችላሉ"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"የመሣሪያ ማያ ገጽ መቆለፊያን ይጠቀሙ"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"በመልክ &amp; በጣት አሻራ መክፈቻ"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"በጣት አሻራ መክፈቻ"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"በመልክ መክፈት"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ለማዋቀር መታ ያድርጉ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ለግል ቦታ በጣት አሻራ መክፈቻ"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ለግል ቦታ በመልክ መክፈት"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"የሚከፈትባቸው መንገዶች"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ከመሣሪያ ማያ ገጽ መቆለፊያ ጋር ተመሳሳይ"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ለግል ቦታ አዲስ ቁልፍ ይመርጣሉ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"በራስ-ሰር ቆልፍ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"የግል ቦታን በራስ-ሰር ቆልፍ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"መሣሪያዎን ለተወሰነ ጊዜ ካልተጠቀሙበት የግል ቦታዎን በራስ-ሰር መቆለፍ ይችላሉ"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"መሣሪያ በተቆለፈ ቁጥር"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"ከ5 ደቂቃዎች እንቅስቃሴ-አልባነት በኋላ"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"በጭራሽ"</string>
+    <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_deleted" msgid="7825768516955610897">"የግል ቦታ በተሳካ ሁኔታ ተሰርዟል"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"የግል ቦታ መሰረዝ አልቻለም"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"የግል ቦታ ተከፍቷል"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ማያ ገፅ መቆለፊያን ያቀናብሩ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"የግል ቦታን ለመጠቀም በዚህ መሣሪያ ላይ ማያ ገጽ መቆለፊያን ያቀናብሩ"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ማያ ገፅ መቆለፊያን አቀናብር"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ይቅር"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ይቅር"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ያዋቅሩ"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"የግል ቦታን ያዋቅሩ"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"የግል መተግበሪያዎችን መደበቅ ወይም መቆለፍ በሚችሉት የተለየ ቦታ ላይ ያቆዩ"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"እንዴት እንደሚሠራ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ከመተግበሪያዎ ዝርዝር የታችኛው ክፍል ላይ የግል ቦታዎን መድረስ ይችላሉ"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"በግል ቦታዎ ውስጥ ያሉ መተግበሪያዎች በቁልፍ ጥበቃ ይደረግላቸዋል"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"በሚቆለፍበት ጊዜ በእርስዎ የግል ቦታ ውስጥ ካሉ መተግበሪያዎች የሚመጡ ማሳወቂያዎች ይደበቃሉ"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"በእርስዎ የግል ቦታ ላይ ያሉ መተግበሪያዎች የእርስዎ የግል ቦታ ሲቆለፍ በፍቃድ አስተዳዳሪ፣ በግላዊነት ዳሽቦርድ እና በሌሎች ቅንብሮች ውስጥ አይታዩም።\n\nየእርስዎ የግል ቦታ ወደ አዲስ መሣሪያ ሊወሰድ አይችልም። የግል ቦታን በሌላ መሣሪያ ላይ መጠቀም ከፈለጉ ሌላ የግል ቦታን ማዋቀር ያስፈልግዎታል።\n\nመሣሪያዎን ከኮምፒውተር ጋር የሚያገናኘው ወይም በመሣሪያዎ ላይ ጎጂ መተግበሪያዎችን የሚጭን ማንኛውም ሰው የእርስዎን የግል ቦታ ሊደርስ ይችላል።"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"የግል ቦታን በማዋቀር ላይ…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"በሚቆለፍበት ጊዜ የግል ቦታ ውስጥ ካሉ መተግበሪያዎች የሚመጡ ማሳወቂያዎች ይደበቃሉ"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ፎቶዎችን ወይም ፋይሎችን ከግል ቦታ መተግበሪያዎች ለማጋራት የግል ቦታዎን ይክፈቱ"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"አንዳንድ መተግበሪያዎች አስቀድመው በእርስዎ የግል ቦታ ላይ ተጭነዋል"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"የግል ቦታን ማዋቀር አልተቻለም"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"እንደገና ይሞክሩ"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"የግል ቦታን ለመክፈት ማያ ገጽ መቆለፊያን ይጠቀሙ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"መሣሪያዎን እንደከፈቱት በተመሳሳይ መንገድ የግል ቦታዎን መክፈት ወይም የተለየ ቁልፍ መምረጥ ይችላሉ"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ማያ ገጽ መቆለፊያን ይጠቀሙ"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"አዲስ ቁልፍ ይምረጡ"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"ሁሉም ዝግጁ!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"የግል ቦታዎን ለመድረስ ወደ የመተግበሪያዎች ዝርዝርዎ ይሂዱ እና ወደ ታች ይሸብልሉ።"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ተከናውኗል"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"የግል ቦታን ለማግኘት ወደ ታች ይሸብልሉ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ለግል ቦታዎ ቁልፍን ይምረጡ"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"የጣት አሻራዎን በመጠቀም የግል ቦታዎን መክፈት ይችላሉ። ለደህንነት ሲባል ይህ አማራጭ ምትኬ ቁልፍ ያስፈልገዋል።"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ለግል ቦታዎ ፒን ያዘጋጁ"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ለግል ቦታዎ የይለፍ ቃል ያዘጋጁ"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ለግል ቦታዎ የሚሆን ስርዓተ ጥለት ያዘጋጁ"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"የግል ቦታን ለማሳየት (የመጨረሻው የተጠቃሚ ተሞክሮ አይደለም)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"የቅንብሮች መተግበሪያን ይክፈቱ"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ደህንነት &gt; ግላዊነት &gt; የግል ቦታ&gt; ሲቆለፍ የግል ቦታን ደብቅ የሚለው ላይ መታ ያድርጉ"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"ቀያይርን ሲቆለፍ የግል ቦታ ደብቅን አጥፋ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"ማስታወሻ ለ Google ሰራተኛ፡- የዚህ ባህሪ እድገት አሁንም በሂደት ላይ ነው"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ይህን የይለፍ ቁልፍ በሌላ መሣሪያ ላይማስገባት ሊያስፈልግህ ይችላል።"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ከተባባሪ ስብስቡ ጋር ለመጣመር ያረጋግጡ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"የእርስዎን የእውቂያዎች እና የጥሪ ታሪክ መዳረሻ ይፍቀዱ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"እንዲሁም ለዕውቂያዎች እና ለጥሪ ታሪክ መዳረሻ ይፍቀዱ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"መረጃው ለደውል ማስታወቂያዎች እና ለሌሎችም ጥቅም ላይ ይውላል"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"ወደ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ማገናኘት አልተቻለም።"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"የሚገኙ መሣሪያዎች"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"አውሮፕላን ሁኔታ"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ለይፋዊ አውታረ መረቦች አሳውቅ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ባለከፍተኛ ጥራት ይፋዊ አውታረ መረብ የሚገኝ ሲሆን አሳውቅ"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"የWEP አውታረ መረቦችን ይፍቀዱ"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ደህንነቱ አነስተኛ የሆነ የቆየ የደህንነት ፕሮቶኮል ነው"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"አገልግሎት አቅራቢዎ የWEP አውታረ መረቦች ደህንነታቸው ያነሰ ስለሆነ አይፈቅድም"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fiን በራስ-ሰር አብራ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"እንደ የቤትዎ አውታረ መረብ ካሉ የተቀመጡ አውታረ መረቦች አጠገብ ሲሆኑ Wi‑Fi ተመልሶ ይበራል"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"መገኛ አካባቢ ስለጠፋ ሊገኝ አይችልም። "<annotation id="link">"መገኛ አካባቢ"</annotation>"።"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi ቅኝት አደራረግ በማናቸውም ጊዜ የWi‑Fi አውታረመረቦችን መተግበሪያዎች እና አገልግሎቶች Wi‑Fi ጠፍቶ እያለ እንኳ እንዲቃኙ ያስችላል። ይህ ለምሳሌ በአካባቢ ላይ የተመሠረቱ ባህሪያትን እና አገልግሎቶችን ለማሻሻል ሥራ ላይ ሊውል ይችላል።"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"አብራ"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi ቅኝት በርቷል"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ይህ አውታረ መረብ ደህንነቱ ያነሰ የቆየ የደህንነት ፕሮቶኮልን ይጠቀማል"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ታግዷል"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ይህ አውታረ መረብ WEP የሚባል የቆየ የደህንነት ፕሮቶኮል ይጠቀማል፣ ይህም ደህንነቱ ያነሰ ነው። ለማንኛውም ለመገናኘት የWEP አውታረ መረቦችን መፍቀድ ይችላሉ።"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"አገልግሎት አቅራቢዎ ከዚህ አውታረ መረብ ጋር እንዲገናኙ አይፈቅድልዎትም ምክንያቱም ደህንነቱ ያነሰ የቆየ የደህንነት ፕሮቶኮል ይጠቀማል"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEPን ፍቀድ"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ዝጋ"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"የላቁ አማራጮች"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"የተቆልቋይ ዝርዝር የላቁ አማራጮች"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ዘርጋ"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"በWi-Fi ላይ ይቆዩ"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"በፍፁም ዳግመኛ አታሳይ"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"አያይዝ"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi በርቷል"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"ከ<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ጋር ተገናኝቷል"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"ወደ <xliff:g id="NETWORK_NAME">%1$s</xliff:g> በመገናኘት ላይ"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"በመገናኘት ላይ…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ከአውታረ መረቡ ጋር መገናኘት አልተሳካም"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"አውታረ መረብ በክክል ውስጥ አይደለም"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"እርሳ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ቀይር"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"አውታረ መረብ መርሳት አልተሳካም"</string>
     <string name="wifi_save" msgid="2312643132472226807">"አስቀምጥ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"አውታረ መረብ ማስቀመጥ አልተሳካም"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ይቅር"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"የተንቀሳቃሽ ስልክ ውሂብ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ኢተርኔት"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ኃይል በመሙላት ላይ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ኃይል በመሙላት ላይ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"የመገናኛ ነጥብ ግንኙነት"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"የግንኙነት ጥንካሬ"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"የተቀመጡ አውታረ መረቦች"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"ምንም የይለፍ ቃል አልተቀናበረም"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"የመገናኛ ነጥብ ስም"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"የመገናኛ ነጥብ የይለፍ ቃል"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"የኤፒ ባንድ"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"መገናኛ ነጥብን በራስሰር አጥፋ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"ምንም መሣሪያዎች ካልተገናኙ"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"ተኳዃኝነትን ያራዝሙ"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ለጨዋታዎች የክፈፍ ፍጥነትትን ያሰናክሉ"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ለጨዋታዎች ከፍተኛውን የክፈፍ ፍጥነት በ<xliff:g id="FRAME_RATE">%1$d</xliff:g> ኸርዝ መገደብን ያሰናክሉ።"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"ለስላሳ ማሳያ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"የማያ ገፅ ትኩረት በማያ ገጹ ላይ የሆነ ሰው እያየ መሆኑን ለመመልከት የፊት ካሜራውን ይጠቀማል። በመሣሪያ ላይ ይሠራል፣ እና ምስሎች በጭራሽ ወደ Google አይላኩም ወይም በዚያ አይከማቹም።"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"የማያ ገፅ ትኩረትን ያብሩ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ማያ ገጹን ሲመለከቱት እንደበራ ይቆይ"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ረዘም ያለ ማያ ጊዜው ማለቂያው ተጨማሪ ባትሪ ይጠቀማል።"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ካሜራ ተቆልፏል"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ለመልክ ማወቂያ ካሜራ መከፈት አለበት"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ለየማያ ገፅ ትኩረት ካሜራ መከፈት አለበት"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (የሲም ማስገቢያ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (የሲም ማስገቢያ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ቀዳሚ)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"ለመመልከት የተቀመጠ አውታረ መረብን ይምረጡ"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"ዝቅተኛ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL ስሪት"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"የባትሪደረጃ፡"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"የጋራ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"የጋራ ቅንብሮች"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"አስቀምጥ"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ይቅር"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"የስም መስክ ባዶ ሊሆን አይችልም"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ባዶ መሆን አይችልም።"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"የMCC መስክ 3 አሀዝ መሆን አለበት።"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"የMNC መስክ 2 ወይም 3 አሀዝ መሆን አለበት።"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"የአገልግሎት አቅራቢ ዓይነታቸው %s የሆኑ ኤፒኤንዎችን ማከልን አይፈቅድም።"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"የኤምኤምኤስሲ መስክ ትክክለኛ መሆን አለበት።"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ነባሪ የAPN ቅንብሮችን እነበረበት ይመልሱ"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ወደ ነባሪ ዳግም አስጀምር"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"የዳግም አስጀምር ነባሪ APN ቅንብሮች ተጠናቀዋል"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ዳግም አስጀምር"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ብሉቱዝ እና Wi-Fi ዳግም ተጀምረዋል"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ኢሲሞችን ደምስስ"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ይህ ማናቸውም የተንቀሳቃሽ ስልክ አገልግሎት ዕቅዶችን አይሰርዝም። ተተኪ ሲሞችን ለማውረድ፣ የአገልግሎት አቅራቢዎን ያነጋግሩ።"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ቅንብሮችን ዳግም ያቀናብሩ"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"ሁሉም አውታረ መረብ ቅንብሮች ዳግም ይጀምሩ? ይህን እርምጃ መቀልበስ አይችሉም።"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"ሁሉም የአውታረ መረብ ቅንብሮች እንደገና ይጀምሩ እና ኢሲሞች ይደምሰሱ? ይህን ተግባር መቀልበስ አይችሉም።"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ዳግም ይቀናበር?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"የአውታረመረብ ዳግም ማስጀመር ለዚህ ተጠቃሚ አይገኝም"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"የአውታረ መረብ ቅንብሮች ዳግም ጀምረዋል።"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"ሲሞችን መደምሰስ አይቻልም"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"በስሕተት ምክንያት ኢሲሞች መደምሰስ አልቻሉም።\n\nመሣሪያዎን እንደገና ያስጀምሩ እና እንደገና ይሞክሩ።"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ሁሉንም ውሂብ ደምስስ (የፋብሪካ ዳግም ማስጀመር)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ሁሉንም ውሂብ ደምስስ (የፋብሪካ ዳግም ማስጀመር)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"ሙዚቃ"</li>\n<li>"ፎቶዎች"</li>\n<li>"ሌላ የተጠቃሚ ውሂብ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMዎች"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ይህ የተንቀሳቃሽ ስልክ አገልግሎት እቅድዎን አይሰርዘውም።"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ሁሉም የእርስዎ የግል መረጃ እና የወረዱ መተግበሪያዎች ይሰረዛሉ። ይህን ተግባር መቀልበስ አይችሉም።"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"የወረዱ መተግበሪያዎች እና ሲሞችን ጨምሮ ሁሉም የግል መረጃዎ ይሰረዛሉ። ይህን ተግባር መቀልበስ አይችሉም።"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ሁሉም ውሂብ ይደምሰስ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"የፋብሪካ ዳግም ማስጀመር ለዚህ ተጠቃሚ አይገኝም"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"በመደምሰስ ላይ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"መገናኛ ነጥብ፣ ዩኤስቢ፣ ብሉቱዝ፣ ኤተርኔት"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"በይነመረብ ለሌሎች መሣሪያዎች አይጋራም"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"አጥፋ"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"እንደ ሞደም መሰካት"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"የWi‑Fi መገናኛ ነጥብን አትጠቀም"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"በዩኤስቢ በኩል ብቻ በይነመረብን አጋራ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"በብሉቱዝ በኩል ብቻ በይነመረብን አጋራ"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"በኤተርኔት በኩል ብቻ በይነመረብን አጋራ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"በዩኤስቢ እና በብሉቱዝ በኩል ብቻ አጋራ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"በዩኤስቢ እና በኤተርኔት በኩል ብቻ አጋራ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"በብሉቱዝ እና በኤተርኔት በኩል ብቻ በይነመረብን አጋራ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"በዩኤስቢ፣ በብሉቱዝ እና በኤተርኔት በኩል ብቻ በይነመረብን አጋራ"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB መሰካት"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ብሉቱዝ ማያያዝ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"የኢተርኔት ማስተሳሰር"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"በእርስዎ Wi-Fi ወይም የተንቀሳቃሽ ስልክ ውሂብ ግንኙነት በኩል በይነመረቡ ለሌሎች መሣሪያዎች ለማቅረብ የመገናኛ ነጥብን እና እንደ ሞደም መሰካትን ይጠቀሙ። መተግበሪያዎች እንዲሁም ይዘቶችን በአቅራቢያ ላሉ መሣሪያዎች ለማጋራት መገናኛ ነጥብን መፍጠር ይችላሉ።"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"እገዛ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"የተንቀሳቃሽ ስልክ አውታረ መረብ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"የሞባይል ዕቅድ"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"የኤስኤምኤስ መተግበሪያ"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"የኤስ ኤም ኤስ መተግበሪያ ይለወጥ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ከ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ይልቅ <xliff:g id="NEW_APP">%1$s</xliff:g> እንደ እርስዎ ኤስኤምኤስ መተግበሪያ ይጠቀሙበት?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"የWi‑Fi ረዳት ይቀየር?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር ከ<xliff:g id="CURRENT_APP">%2$s</xliff:g> ይልቅ <xliff:g id="NEW_APP">%1$s</xliff:g>ን ይጠቀሙ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"የአውታረ መረብ ግንኙነቶችዎን ለማቀናበር <xliff:g id="NEW_APP">%s</xliff:g>ን ይጠቀሙ?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ያልታወቀ የሲም አንቀሳቃሽ"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ምንም የሚታወቅ የማቅረቢያ ድር ጣቢያ የለውም"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"እባክዎ SIM ካርድ ያስገቡና ዳግም ያስጀምሩ"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"እባክዎ ከበይነ መረብ ጋር ያገናኙ"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"የቅርብ ጊዜ የአካባቢ ጥያቄዎች"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"የስራ መገለጫ አካባቢ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"የመተግበሪያ አካባቢ ፈቃዶች"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"መዳረሻውን አጥራ"</string>
     <string name="controls_label" msgid="8671492254263626383">"ይቆጣጠራል"</string>
     <string name="force_stop" msgid="2681771622136916280">"በኃይል ማቆም"</string>
+    <string name="archive" msgid="9074663845068632127">"በማህደር አስቀምጥ"</string>
+    <string name="restore" msgid="7622486640713967157">"ወደነበረበት መልስ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"ጠቅላላ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"የመተግበሪያ መጠን"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"የUSB ማከማቻ ትግበራ"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"የጥቅል መጠንን ለማስላት አልተቻለም።"</string>
     <string name="version_text" msgid="7628938665256107608">"ሥሪት<xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"አንቀሳቅስ"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"በማህደር ማስቀመጥ አልተሳካም"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> በማህደር ተቀምጧል"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ወደነበረበት መመለስ አልተሳካም"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>ን ወደነበረበት በመመለስ ላይ"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ሌላ ዝውውር አስቀድሞ በሂደት ላይ ነው።"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"በቂ ማከማቻ ቦታ የለም::"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"መተግበሪያ የለም::"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ታይታ የቁልፍ ሰሌዳ ይገኛል"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"የማያ ገፅ ላይ ቁልፍ ሰሌዳዎችን ያቀናብሩ"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"አማራጮች"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ተደራሽነት"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"አካላዊ ቁልፍ ሰሌዳ"</string>
     <string name="show_ime" msgid="4334255501724746849">"የማያ ገፅ የቁልፍ ሰሌዳ ይጠቀሙ"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"አካላዊ የቁልፍ ሰሌዳ ገቢር ሆኖ ሳለ በማያ ገፅ ላይ አቆየው"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"የመንጠሪያ ቁልፎች"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ለአካላዊ ቁልፍ ሰሌዳ ተደራሽነት የመንጠሪያ ቁልፎችን ያንቁ"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ተጣባቂ ቁልፎች"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ለአካላዊ ቁልፍ ሰሌዳ ተደራሽነት ተጣባቂ ቁልፎችን ያንቁ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"የቁልፍ ሰሌዳ አቋራጮች"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"የአቋራጭ ዝርዝርን አሳይ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"የሥራ መገለጫ የቁልፍ ሰሌዳዎች እና መሣሪያዎች"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"በአጠቃቀም ጊዜ ደርድር"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"ለመጨረሻ ጊዜ ሥራ ላይ በዋለበት ጊዜ ደርድር"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"በመተግበሪያ ስም ደርድር"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ለመጨረሻ ጊዜ ጥቅም ላይ የዋለበት ጊዜ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ሥራ ላይ የዋለበት የመጨረሻ ቀን"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"በፍፁም"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ጊዜ አጠቃቀም"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ተደራሽነት"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ተደራሽነት ቅንብሮች"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ለማንኛውም ቀጥል"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ይቅር"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"የማጉያ ቅንብሮች"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ሶስቴ መታ በማድረግ ያጉሉ"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"በአቋራጭ ያጉሉ"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"በአቋራጭ እና ሦስቴ መታ በማድረግ ያጉሉ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"ስለ<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ለመክፈት ማያ ገጽን በሁለት ጣት ሁለቴ መታ ያድርጉ"</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="860548190334486449">"ማጉላትን ለመጀመር እና ለማቆም በማያ ገጽዎ ላይ ማንኛውም ቦታ ላይ በሁለት ጣቶች ሁለቴ መታ ያድርጉ።"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"የተደራሽነት ባሕሪን ለመጠቀም በ3 ጣቶች ከማያ ገጹ ግርጌ ወደ ላይ ይጥረጉ።\n\nበባሕሪያት መካከል ለመቀያየር በ3 ጣቶች ወደ ላይ ጠርገው ይያዙ።"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ገባኝ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"የተደራሽነት አዝራር ቅንብሮች"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"የአዝራር ቅንብሮች"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"የ<xliff:g id="SERVICE">%1$s</xliff:g> አቋራጭ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"የተደራሽነት አዝራር"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"የተደራሽነት እጅ ምልክት"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ማያ ገጽን በሁለት ጣት ሁለቴ መታ ያድርጉ"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ማያ ገጽን በሁለት ጣት ሁለቴ መታ ያድርጉ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ማያ ገጽን {0፣ቁጥር፣ኢንቲጀር} ጊዜያት በሁለት ጣቶች በፍጥነት መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ማያ ገጽን ሦስቴ መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ማያ ገጽን ሦስቴ መታ ያድርጉ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ማያ ገጹን በፍጥነት {0,number,integer} ጊዜዎችን መታ ያድርጉ። ይህ አቋራጭ መሣሪያዎን ሊያንቀራፍፈው ይችላል።"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ስለተደራሽነት አዝራር እና ምልክት የበለጠ ይወቁ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"የተደራሽነት አዝራርን መጠቀም። የእጅ ምልክቱ በባለ3-አዝራር ዳሰሳ አይገኝም።"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"የተደራሽነት ባህሪያትን በፍጥነት ይድረሱባቸው"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ለመጀመር"</b>\n"1. ወደ የተደራሽነት ቅንብሮች ይሂዱ\n2. ባህሪ ይምረጡ እና አቋራጩን መታ ያድርጉ\n3. ባህሪውን ለመድረስ አዝራር ወይም የእጅ ምልክት መጠቀም ይፈልጉ እንደሆነ ይምረጡ"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ለመጀመር"</b>\n"1. ወደ የተደራሽነት ቅንብሮች ይሂዱ\n2. ባህሪ ይምረጡ እና አቋራጩን መታ ያድርጉ\n3. ባህሪውን ለመድረስ አዝራሩን ይምረጡ"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;ለመጀመር&lt;/b&gt;&lt;br/&gt; {0፣ቁጥር፣ኢንቲጀር}። ወደ የተደራሽነት ቅንብሮች&lt;br/&gt; {1፣ቁጥር፣ኢንቲጀር} ይሂዱ። ባህሪን ይምረጡ እና አቋራጩን&lt;br/&gt; {2፣ቁጥር፣ኢንቲጀር} መታ ያድርጉ። ባህሪውን ለመድረስ አዝራርን ወይም ምልክትን ለመጠቀም ይፈልጉ እንደሆነ ይምረጡ&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;ለመጀመር&lt;/b&gt;&lt;br/&gt; {0፣ቁጥር፣ኢንቲጀር}። ወደ የተደራሽነት ቅንብሮች&lt;br/&gt; {1፣ቁጥር፣ኢንቲጀር} ይሂዱ። ባህሪን ይምረጡ እና አቋራጩን&lt;br/&gt; {2፣ቁጥር፣ኢንቲጀር} መታ ያድርጉ። ባህሪውን ለመድረስ አዝራሩን ይምረጡ&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_size_title" msgid="5785110470538960881">"መጠን"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"የኃይል አዘራር ጥሪውን ይዘገዋል"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ትልቅ የመዳፊት ጠቋሚ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"የመዳፊት ጠቋሚው ይበልጥ እንዲታይ ያድርጉ"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"ሁሉም መተግበሪያዎች ጠቆር ያሉ እንዲሆኑ ያድርጉ"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"የራሳቸው ጠቆር ያለ ገጽታ በሌላቸው መተግበሪያዎች ላይ ተፈጻሚ ይሆናል። አንዳንድ መተግበሪያዎች እንደ የተገለበጡ ቀለማት ያሉ የማሳያ ችግሮች ሊኖሯቸው ይችላል።"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"እነማዎችን ያስወግዱ"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"በማያ ገጹ ላይ ያለውን እንቅስቃሴ ቀንስ"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ሞኖ ኦዲዮ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ከመተግበሪያ ጋር ወይም የሃርድዌር ዳሳሽ ጋር እርስዎ ያልዎትን መስተጋብሮች ዱካ መከታተል እና በእርስዎ ምትክ ከመተግበሪያዎች ጋር መስተጋብር መፈጸም ይችላል።"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ፍቀድ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ከልክል"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"አቁም"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ተወው"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> ይቁም?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> መታ ማድረግ <xliff:g id="SERVICE">%2$s</xliff:g> ን ያስቆመዋል።"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"አጥፋ"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"አቆይ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ይጥፋ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"ምንም አገልግሎቶች አልተጫኑም"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ምንም አገልግሎት አልተመረጠም"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"ምንም መግለጫ አልቀረበም።"</string>
     <string name="settings_button" msgid="2195468788019730377">"ቅንብሮች"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"የብርሃን ስሜታዊነት፣ የፎቶፊብያ፣ ጠቆር ያለ ገጽታ፣ ማይግሬን፣ ራስ ምታት፣ የንባብ ሁነታ፣ የማታ ሁነታ፣ ብሩህነትን ይቀንሱ፣ ነጭ ነጥብ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"የአጠቃቀም ቀላልነት፣ የመዳረሻ ቀላልነት፣ እርዳታ፣ ረዳት"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ዕይታ፣ መስማት፣ ዓይነ ስውር፣ መስማት የተሳነው፣ ሞተር፣ ቅልጥፍና፣ ረዳት፣ ዕርዳታ፣ የአጠቃቀም ቀላልነት፣ የመድረስ ቀላልነት፣ እጅ፣ እገዛ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"የመስኮት ማጉያ፣ ኣጕላ፣ ማጉላት፣ ዝቅተኛ-ዕይታ፣ ማተለቅ፣ ያተልቁ"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"የመግለጫ ጽሑፎች፣ ዝግ መግለጫ ጽሑፎች፣ ካርቦን ቅጂ (ካቅ)፣ የቀጥታ ጽሁፍ ግልባጭ፣ የመስማት ችግር፣ መስማት አለመቻል፣ ተሳቢ፣ ከንግግር- ወደ-ጽሁፍ፣ የግርጌ ጽሑፎች"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"የቀለም ንጽጽር"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ሞተር፣ መዳፊት"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"የመስሚያ አጋዥ መሣሪያዎች፣ የመስማት ችግር፣ የመስማት ችሎታን ማጣት፣ ኮክሌር ተከላዎች፣ የማጉያ መሣሪያዎች፣ የድምፅ ማቀናበሪያዎች"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ሞተር፣ መዳፊት፣ ውጪያዊ መዳፊት፣ ዋና መዳፊት፣ የሚለምድ መዳፊት፣ ተሽከርካሪ ወንበር፣ ጆይስቲክ"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"የመስሚያ አጋዥ መሣሪያዎች፣ የመስማት ችግር፣ የመስማት ችሎታን ማጣት፣ ኮክሌር ተከላዎች፣ የማጉያ መሣሪያዎች፣ የድምፅ ማቀናበሪያዎች፣ ፒኤስኤፒ"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"የመስማት ችግር፣ መስማት አለመቻል፣ መግለጫ ጽሑፎች፣ TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ሦስት አዝራሮች"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ቅልጥፍና፣ ሞተር፣ አዛውንት፣ አርትራይተስ፣ አርኤስአይ፣ ስትሮክ፣ መንቀጥቀጥ፣ መልቲፕል ስክሌሮሲስ፣ ሰረብራክል ፓልሲ፣ መንቀጥቀጥ፣ ተደጋጋሚ የጫና ጉዳት፣ እጅ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"መዘግየት፣ ቅልጥፍና፣ የበላይ"</string>
     <string name="print_settings" msgid="8519810615863882491">"ማተም"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ጠፍቷል"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 የህትመት አገልግሎት በርቷል}one{# የህትመት አገልግሎት በርቷል}other{# የህትመት አገልግሎቶች በርተዋል}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ከፍተኛ አጠቃቀም ያላቸውን መተግበሪያዎች ይመልከቱ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ባትሪዎን ለመጠበቅ ኃይል መሙላት እንዲተባ ተደርጓል"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"የባትሪዎን ዕድሜ ዘመን ለማራዘም እንዲያግዝ ኃይል መሙላት እንዲተባ ተደርጓል"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ባትሪዎን ለመጠበቅ ኃይል መሙላት እንዲተባ ተደርጓል"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"የባትሪዎን ዕድሜ ለማራዘም እንዲያግዝ ኃይል መሙላት ተሰክቶ እያለ እንዲተባ ተደርጓል"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ባትሪዎን ለመጠበቅ ኃይል መሙላት እንዲተባ ተደርጓል"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"የባትሪዎን ዕድሜ ለማራዘም እንዲያግዝ ኃይል መሙላት ተሰክቶ እያለ እንዲተባ ተደርጓል"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"እስኪሞላ ደረስ ኃይል መሙላት"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ባትሪዎን ለመጠበቅ የእርስዎ ጡባዊ በሚተከልበት በቀጣዩ ጊዜ ላይ ኃይል መሙላት እንዲተባ ይደረጋል"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ስለኃይል መሙላት ባለበት ቆሟል የበለጠ ይወቁ"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ኃይል መሙላትን ከቆመበት ቀጥል"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ከፍተኛ ኃይል ያለው የበስተጀርባ እንቅስቃሴን ያካትታል"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"አስወግድ"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ይቅር"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"እስኪሞላ ኃይል ሙላ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ተለዋዋጭን ኃይል በመሙላት ላይ ችግር"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ስለ ተኳዃኝ ያልሆነ ኃይል መሙላት የበለጠ ይወቁ"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"የባትሪ አስተዳዳሪ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"መተግበሪያዎችን በራስ-ሰር ያቀናብሩ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"አሁን"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g><xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g><xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"የባትሪ አጠቃቀም ገበታ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ዕለታዊ የባትሪ አጠቃቀም ገበታ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ሰዓታዊ የባትሪ አጠቃቀም ገበታ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"የባትሪ ደረጃ መቶኛ ከ<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> እስከ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ከመጨረሻው ሙሉ የኃይል ሙሌት በኋላ ያለው የባትሪ አጠቃቀም"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"ለ<xliff:g id="SLOT">%s</xliff:g> የባትሪ አጠቃቀም"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"ሙሉ ኃይል ከተሞላበት የመጨረሻው ጊዜ ጀምሮ የማያ ገፅ ጊዜ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"የድንገተኛ አደጋ መወደያ ሲግናል"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"የአደጋጊዜ ጥሪ ሲደረግ ባህሪ አዘጋጅ"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ምትኬ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"በርቷል"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ጠፍቷል"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ምትኬ &amp; እነበረበት መልስ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"የግል ውሂብ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ውሂቤን መጠባበቂያ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ስም"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ዓይነት"</string>
     <string name="vpn_server" msgid="2908816134941973935">"የአገልጋይ አድራሻ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"የPPP ምስጠራ(MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP ሚስጥር"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"የIPSec መለያ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec  ቀድሞ- የተጋራቁልፍ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"የIPSec ተጠቃሚ ዕውቅና ማረጋገጫ"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"የIPSec CA ዕውቅና ማረጋገጫ"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"የIPSec አገልጋይ ዕውቅና ማረጋገጫ"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"የላቁ አማራጮችን አሳይ"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"የDNS ፍለጋ ጎራዎች"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"የDNS አገልጋዮች (ምሳሌ 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ማስተላለፊያ መንገድ (ምሳሌ፡ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"የተጠቃሚ ስም"</string>
     <string name="vpn_password" msgid="1183746907642628127">"የይለፍ ቃል"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"የመለያ መረጃ አስቀምጥ"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(አላገለገለም)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(አገልጋይ አታረጋግጥ)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ከአገልጋይ የደረሰ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ይህ የቪፒኤን ዓይነት ሁልጊዜ እንደተገናኘ መቆየት አይችልም"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"ሁልጊዜ የሚበራ ቪፒኤን ቁጥራዊ የአገልጋይ አድራሻዎችን ብቻ ነው የሚደግፈው"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"አንድ የዲኤንኤስ አገልጋይ ሁልጊዜ ለሚበራ ቪፒኤን መገለጽ አለበት"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"የዲኤንኤስ አገልጋይ አድራሻዎች ሁልጊዜ ለሚበራ ቪፒኤን ቁጥራዊ መሆን አለባቸው"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"የገባው መረጃ ሁልጊዜ የሚበራ ቪፒኤንን አይደግፍም"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ይቅር"</string>
     <string name="vpn_done" msgid="5137858784289564985">"አሰናብት"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"ቪፒኤን የሌላቸው ግንኙነቶችን አግድ"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"የVPN ግንኙነት ይጠይቅ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ደህንነቱ አልተጠበቀም። ወደ IKEv2 VPN ያዘምኑ"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ያልተደገፈ VPNን ማስጀመር አልተሳካም።"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ሁልጊዜ እንደተገናኙ የሚቆዩበት የVPN መገለጫ ይምረጡ። ከዚህ VPN ጋር ሲገናኝ ብቻ ነው የአውታረ መረብ ትራፊክ የሚፈቀደው።"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ምንም"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ሁልጊዜ የበራ VPN ለአገልጋይም ለDNSም የአይ.ፒ. አድራሻ ያስፈልገዋል።"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"የAMBER ማንቂያዎች"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"የልጅ ጠለፋዎች ማስታወቂያዎችን ይቀበሉ"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ድገም"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"የጥሪ አቀናባሪን ያንቁ"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"ይህ አገልግሎት እንዴት ጥሪዎችዎ እንደሚደረጉ እንዲያቀናብር ይፍቀዱለት።"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"የጥሪ አቀናባሪ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ገመድ-አልባ የድንገተኛ አደጋ ማንቂያዎች"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"የአውታረ መረብ ትእምርተ ከዋኝ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"የመዳረሻ ነጥብ ስሞች"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ይክፈሉ፣ መታ ያድርጉ፣ ክፍያዎች"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ምትኬ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"የጣት ምልክት"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"በመልክ ፣ መክፈት፣ ፈቀዳ፣ በመለያ መግቢያ"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"መልክ፣ ይክፈቱ፣ ፈቃድ፣ በመለያ ይግቡ፣ የጣት አሻራ፣ ባዮሜትሪክ"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei፣ meid፣ ደቂቃ፣ prl ስሪት፣ imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ድምፆችን ያብሩ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"የቀጥታ ስርጭት መግለጫ ጽሁፍ"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ራስሰር የሥዕል መግለጫ ጽሑፍን ሚዲያ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"የስልክ ድምፅ ማውጫዎች"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"የጡባዊ ድምፅ ማውጫዎች"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"የመሣሪያ ድምፅ ማውጫዎች"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ባለገመድ የጆሮ ማዳመጫ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"ከተኳኋኝ ሚዲያ የሚመጣ ኦዲዩ ይበልጥ መሳጭ ይሆናል"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"አጥፋ"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"የቅርብ ጊዜ ውይይቶች ተወግደዋል"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"ውይይት ተወግዷል"</string>
     <string name="clear" msgid="5092178335409471100">"አጽዳ"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"አጽዳ <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ቅድሚያ ተሰጪ እና የተሻሻሉ ውይይቶች እዚህ ላይ ብቅ ይላሉ"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"አንድን ውይይት እንደ ቅድሚያ ተሰጪ አንድ ጊዜ ምልክት ካደረጉበት ወይም በውይይቶች ላይ ማናቸውንም ሌሎች ለውጦች ካደረጉ በኋላ እዚህ ላይ ብቅ ይላሉ። \n\nየእርስዎን ውይይት ቅንብሮች ለመለወጥ፦ \nወደ ታች ተጎታች መጋረጃን ለመክፈት ከማያ ገጹ አናት ላይ ወደ ታች በጣት ጠረግ ያድርጉ፣ በመቀጠል ውይይትን ነካ ያድርጉ እና ይያዙ።"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"አሳንስ"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"አጥፋ"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"መተግበሪያን መሰካት"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"መተግበሪያን መሰካት የአሁኑን መተግብሪያ እስኪነቅሉት ድረስ በዕይታ ውስጥ እንዲቆይ እንዲያደርጉት ያስችልዎታል። ይህ ባህሪ ለምሳሌ አንድ የታመነ ጓደኛ አንድ የተወሰነ ጨዋታን እንዲጫወት ያስችላል።"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"አንድ መተግበሪያ ሲሰካ, የተሰካው መተግበሪያ ሌሎች መተግበሪያዎችን ሊከፍት ይችላል እና በዚህም የግል ውሂብ ተደራሽ ሊሆን ይችላል። \n\nመተግበሪያን መሰካትን ለመጠቀም፦ 	\n1. መተግበሪያ መሰካትን ያብሩ 	\n2. አጠቃላይ ዕይታን ይክፈቱ 	\n3. በማያ ገጹ አናት ላይ የመተግበሪያ አዶውን መታ ያድርጉ፣ ከዚያ ሰካን መታ ያድርጉ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"አንድ መተግበሪያ ሲሰካ, የተሰካው መተግበሪያ ሌሎች መተግበሪያዎችን ሊከፍት ይችላል እና በዚህም የግል ውሂብ ተደራሽ ሊሆን ይችላል። \n\nመሣሪያዎን ደህንነቱ በተጠበቀ ሁኔታ ለሆነ ሰው ማጋራት ከፈለጉ፣ በምትኩ እንግዳ ተጠቃሚን ለመጠቀም ይሞክሩ። \n\nመተግበሪያን መሰካትን ለመጠቀም፦ 	\n1. መተግበሪያ መሰካትን ያብሩ \n2. አጠቃላይ እይታን ይክፈቱ 	\n3. በማያ ገጹ አናት ላይ የመተግበሪያ አዶውን መታ ያድርጉ፣ ከዚያ ሰካን መታ ያድርጉ"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"አንድ መተግበሪያ ሲሰካ የተሰካው መተግበሪያ ሌሎች መተግበሪያዎችን ሊከፍት ይችላል እና በዚህም የግል ውሂብ ተደራሽ ሊሆን ይችላል። \n\nየመተግበሪያን መሰካት ለመጠቀም፦ 	\n{0፣ቁጥር፣ኢንቲጀር}። የመተግበሪያን መሰካት ያብሩ 	\n{1፣ቁጥር፣ኢንቲጀር}። አጠቃላይ እይታን ይክፈቱ 	\n{2፣ቁጥር፣ኢንቲጀር}። በማያ ገጹ አናት ላይ የመተግበሪያ አዶውን መታ ያድርጉ፣ ከዚያም ሰካን መታ ያድርጉ"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"አንድ መተግበሪያ ሲሰካ የተሰካው መተግበሪያ ሌሎች መተግበሪያዎችን ሊከፍት ይችላል እና በዚህም የግል ውሂብ ተደራሽ ሊሆን ይችላል። \n\nመሣሪያዎን ደህንነቱ በተጠበቀ ሁኔታ ለሆነ ሰው ማጋራት ከፈለጉ በምትኩ የእንግዳ ተጠቃሚን ለመጠቀም ይሞክሩ። \n\nየመተግበሪያን መሰካት ለመጠቀም 	\n{0፣ቁጥር፣ኢንቲጀር}። የመተግበሪያን መሰካት ያብሩ 	\n{1፣ቁጥር፣ኢንቲጀር}። አጠቃላይ እይታን ይክፈቱ 	\n{2፣ቁጥር፣ኢንቲጀር}። በማያ ገጹ አናት ላይ የመተግበሪያ አዶውን መታ ያድርጉ፣ ከዚያም ሰካን መታ ያድርጉ"</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">"ከመንቀል በፊት ፒን ጠይቅ"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ጥቅም ላይ ካልዋለ መተግበሪያን ያስተዳድሩ"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ፈቃዶችን ያስወግዱ፣ ጊዜያዊ ፋይሎችን ይሰርዙ፣ ማሳወቂያዎችን ያቁሙ እና መተግበሪያውን በማህደር ያስቀምጡ"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"ሁሉም መተግበሪያዎች"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"የተጫኑ መተግበሪያዎች"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ቅጽበታዊ መተግበሪያዎች"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ነፃ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"በመተግበሪያዎች ጥቅም ላይ የዋለ ማህደረ ትውስታ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 መተግበሪያ ባለፉት {time} ውስጥ ማህደረ ትውስታን ተጠቅሟል}one{# መተግበሪያ ባለፉት {time} ውስጥ ማህደረ ትውስታን ተጠቅሟል}other{# መተግበሪያዎች ባለፉት {time} ውስጥ ማህደረ ትውስታን ተጠቅመዋል}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"የማህደረ ትውስታ አጠቃቀም መገለጫን ምዘና ያንቁ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"የማህደረ ትውስታ አጠቃቀም መገለጫን ምዘና ተጨማሪ የሥርዓት ንብረቶችን ይጠይቃል።"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"የማህደረ ትውስታ አጠቃቀም መገለጫን ምዘና ተሰናክሏል"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ድግግሞሽ"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"ከፍተኛ አጠቃቀም"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"ምንም ውሂብ ጥቅም ላይ አልዋለም"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"በሌሎች መተግበሪያዎች ላይ አሳይ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"በሌሎች መተግበሪያዎች ላይ ማሳየትን ፍቀድ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ይህን መተግበሪያ እየተጠቀሙ ባሉ ሌሎች መተግበሪያዎች ላይ እንዲያሳይ ይፍቀዱለት። ይህ መተግበሪያ የት መታ እንደሚያደርጉ ማየት ወይም በማያ ገፅ ላይ የሚታየውን ነገር መቀየር ይችላል።"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"የሚዲያ ውጤትን ይቀይሩ"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"መተግበሪያ የሚዲያ ውጤትን እንዲቀይር ይፍቀዱለት"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"ይህ መተግበሪያ የትኛው የተገናኘ መሣሪያ ከሌሎች መተግበሪያዎች ላይ ኦዲዮን ወይም ቪዲዮን እንደሚጫወት እንዲመርጥ ይፍቀዱለት። ከተፈቀደ፣ ይህ መተግበሪያ እንደ የራስ ላይ ማዳመጫዎች እና ድምጽ ማውጫዎች ያሉ የሚገኙትን መሣሪያዎች ዝርዝር መድረስ እና የትኛውን የውጽዓት መሣሪያ ኦዲዮን ወይም ቪዲዮን ለመልቀቅ ወይም cast ለማድረግ ጥቅም ላይ እንደሚውል መምረጥ ይችላል።"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"የሁሉም ፋይሎች መዳረሻ"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"የድምጽ ማግበርን ያሻሽሉ"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ይህ መሣሪያ የድምጽ ማግበር ሞዴሉን ለማሻሻል የግል መረጃን ይጠቀማል። መተግበሪያዎች ለሁሉም ሰው ሞዴሉን ሲያሻሽሉ ግላዊነትን ለመጠበቅ በብዙ ተጠቃሚዎች ላይ የተሰበሰቡ የተጠቃለሉ ዝመናዎችን መቀበል ይችላሉ።\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"የ<xliff:g id="ID_1">^1</xliff:g> ውሂብ ማስጠንቀቂያ"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"የ<xliff:g id="ID_1">^1</xliff:g> ውሂብ ገደብ"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"የ<xliff:g id="ID_1">^1</xliff:g> ውሂብ ማስጠንቀቂያ / የ<xliff:g id="ID_2">^2</xliff:g> ውሂብ ገደብ"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"የአገልግሎት አቅራቢ ውሂብ የሂሳብ አከፋፈል ከመሳሪያ የሂሳብ አከፋፈል የተለየ ሊሆን ይችላል"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"የአገልግሎት አቅራቢ አውታረ መረቦች የሚጠቀሙበትን ውሂብ አያካትትም"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ጥቅም ላይ ውሏል"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"የውሂብ ማስጠንቀቂያ አዘጋጅ"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"ከ<xliff:g id="ID_1">^2</xliff:g> በፊት ተዘምኗል"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"አሁን በ<xliff:g id="ID_1">^1</xliff:g> ተዘምኗል"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"አሁን ተዘምኗል"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ዕቅድን ይመልከቱ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"ዝርዝሮችን አሳይ"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ውሂብ ቆጣቢ"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ያልተገደበ ውሂብ"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ያልተለመደ የባትሪ አጠቃቀም"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"የፈጣን ቅንብሮች ገንቢ ሰድሮች"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"የ adb ፈቃድ ጊዜ ማብቂያን አሰናክል"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"በነባሪው (7 ቀናት) ወይም በተጠቃሚ የተዋቀረ (ቢያንስ 1 ቀን) ጊዜ ውስጥ ዳግም ያልተገናኙ ሥርዓቶች የ adb ፈቃዶችን ራስ-ሰር መሻሪያን ያሰናክሉ።"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope መከታተያ"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ዳሳሾች ጠፍተዋል"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"የስራ መገለጫ ቅንብሮች"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"በግል መተግበሪያዎች ውስጥ የስራ ማውጫ እውቂያዎችን ይፈልጉ"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"የራስ-ሙላ አገልግሎት"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ነባሪ የራስ-ሙላ አገልግሎት"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"የይለፍ ቃላት"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ተጨማሪ አቅራቢዎች"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# የይለፍ ቃል}one{# የይለፍ ቃል}other{# የይለፍ ቃሎች}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ራስ-ሰር፣ ሙላ፣ ራስ-ሙላ፣ የይለፍ ቃል"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ውሂብ፣ የይለፍ ቁልፍ፣ የይለፍ ቃል"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ራስ ሰር፣ ሙላ፣ ውሂብ፣ የይለፍ ቁልፍ፣ የይለፍ ቃል"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ሁሉም አገልግሎቶች ይጥፉ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ሲገቡ የይለፍ ቃሎች፣ የይለፍ ቁልፎች እና ሌላ የተቀመጡ መረጃዎች ለራስ-ሙላ አይገኙም"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;የመረጡትን አገልግሎት ወደዚህ ይለውጡ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; አዲስ የይለፍ ቃሎች፣ የይለፍ ቁልፎች እና ሌሎች መረጃዎች ከአሁን በኋላ እዚህ ይቀመጣሉ። &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ምን በራስ-ሙላ ሊሆን እንደሚችል ለማወቅ በማያ ገፅዎ ላይ ያለውን ነገር ይጠቀማል።"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ጥቅም ላይ ይዋል?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"5 የበሩ አገልግሎቶች ብቻ ሊኖሩዎት ይችላል"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ሌላ ለማከል ቢያንስ 1 አገልግሎት ያጥፉ"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ምን በራስ-ሰር እንደሚሞላ ለመወሰን በማያ ገጽዎ ላይ ያለውን ይጠቀማል።"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች ገደብ"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"እስከ 5 የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች በአንድ ጊዜ ማግበር ይችላሉ። ተጨማሪ ለማከል አንድ አገልግሎት ያጥፉ።"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች ገደብ"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"እስከ 5 የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች በአንድ ጊዜ ማግበር ይችላሉ። ተጨማሪ ለማከል አንድ አገልግሎት ያጥፉ።"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"አጥፋ"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ራስ-ሙላ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"የምዝግብ ማስታወሻ ደረጃ"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"የመተግበሪያ ተኳኋኝነት ለውጦች ሊታረሙ ለሚችሉ መተግበሪያዎች ብቻ ነው ሊቀየሩ የሚችሉት። ሊታረም የሚችል መተግበሪያን ይጫኑ እና እንደገና ይሞክሩ"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"በሌላ ቅንብር ላይ ይመረኮዛል"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"መለያ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d መለያዎች"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"የመሣሪያ ስም"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"መሠረታዊ መረጃ"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"የሕግ &amp; የቁጥጥር"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"ይህን መተግበሪያ የኤንኤፍሲ መለያ ስም በሚቃኝበት ጊዜ እንዲጀምር ይፍቀዱለት።\nይህ ፈቃድ ከበራ በማንኛውም ጊዜ መለያ ሲገኝ መተግበሪያው እንደ አማራጭ ይገኛል።"</string>
     <string name="media_output_title" msgid="8283629315159510680">"ሚዲያ አጫወት ወደ"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>ን ያጫውቱ በ"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ኦዲዮ ይጫወታል"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ይህ መሣሪያ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"በጥሪዎች ጊዜ አይገኝም"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ጥሪው ባዶ እጅ ይነሳ"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ድምጸ-ከል አድርግ"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ለማንቃት መጀመሪያ «የማብሪያ/ማጥፊያ ቁልፉን ተጭነው ይያዙ»ን ወደ የኃይል ምናሌው ይለውጡ።"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"የአውታረ መረብ ዝርዝሮች"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"የመሣሪያዎ ስም በእርስዎ ስልክ ላይ ላሉ መተግበሪያዎች ይታያል። እንዲሁም ከብሉቱዝ መሣሪያዎች ጋር ሲገናኙ፣ ከWi-Fi አውታረ መረብ ሲገናኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያቀናብሩ በሌሎች ሰዎች የሚታይ ሊሆን ይችላል።"</string>
     <string name="devices_title" msgid="649715719278562515">"መሣሪያዎች"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"አውታረ መረብ ይምረጡ"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ግንኙነት ተቋርጧል"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ስም"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ቀለም (በተኳኋኝ መተግበሪያዎች ሥራ ላይ የሚውል)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"አስቀምጥ"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ሲም ይጠቀሙ"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ይህን ሲም ይጠቀሙ"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ጠፍቷል"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ይህን ሲም ለማሰናከል፣ የሲም ካርድ ያስወግዱ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> ን ለማግበር መታ ያድርጉ"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ሲምን ደምስስ"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"የሚመረጠው የአውታረ መረብ ዓይነት"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"የአውታረ መረቡን የክወና ሁነታን ለውጥ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"የሚመረጠው የአውታረ መረብ ዓይነት"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ለዋጋው የአውታረ መረብ አቅራቢዎ ጋር ይመልከቱ።"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"የመተግበሪያ ውሂብ አጠቃቀም"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ልክ ያልሆነ አውታረ መረብ ሁነታ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>። ችላ በል።"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"የመዳረሻ ነጥብ ስም"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"ኤፒኤን"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"ከ<xliff:g id="CARRIER">%1$s</xliff:g> ጋር ሲገናኝ የማይገኝ"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"ወደ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ይቀየር?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ወደ ሲም ካርድ መጠቀም ይቀይሩ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>ን ይጠቀሙ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"በአንድ ጊዜ አንድ ሲም ብቻ ነው ገባሪ ሊሆን የሚችለው።\n\nወደ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> መቀየር የ<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> አገልግሎትዎን አይሰርዘውም።"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"በአንድ ጊዜ ገቢር መሆን የሚችለው 1 ኢሲም ብቻ ነው።\n\nወደ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> መቀየር የ<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> አገልግሎትዎን አይሰርዝም።"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"በአንድ ጊዜ አንድ ሲም ብቻ ነው ገቢር ሊሆን የሚችለው።\n\nመቀየር የ<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> አገልግሎትዎን አይሰርዘውም።"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"በአንድ ጊዜ 2 ሲሞችን መጠቀም ይችላሉ። <xliff:g id="CARRIER_NAME">%1$s</xliff:g>ን ለመጠቀም ሌላኛው ሲም ያጥፉ።"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"ወደ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ይቀይሩ"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>ን ያጥፉ"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"አይ፣ አመሰግናለሁ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ይቅር"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ማብሪያ/ማጥፊያ"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"አጥፋ"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"ሲምን ማግበር አልተቻለም"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ሲሙን እንደገና ለማብራት ይሞክሩ። ችግሩ ከቀጠለ መሣሪያዎን ዳግም ያስነሱት።"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ሲምዎን ያዋቅሩ"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"በዚህ መሣሪያ ላይ በርካታ ሲሞች እንዲጠቀሙ የተንቀሳቃሽ ስልክ አውታረ መረብዎን ቅንብሮች ያዘጋጁ"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ሲሞችዎን ይሰይሙ"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"እነዚህን ስያሜዎች ጥሪዎችን ሲያደርጉ፣ የጽሑፍ መልዕክቶችን ሲላኩ እና ውሂብ ሲጠቀሙ እና በቅንብሮች ውስጥ ያያሉ"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"የሲም መሰየሚያ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ስያሜ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"የትኞቹን ሲሞች እንደሚጠቀሙ ይምረጡ"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"በአንድ ጊዜ 2 ሲሞችን መጠቀም ይችላሉ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ዋና ሲምዎን ያዘጋጁ"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ለጥሪዎች፣ ጽሑፎች እና ውሂቦች የትኞቹን ሲምዎች በነባሪነት እንደሚጠቀሙ ይምረጡ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"የእርስዎ ዋና ሲሞች"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ጥሪዎች"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ጽሑፎች"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ራስ-ሰር የውሂብ መቀየር"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"በሽፋን እና በተገኝነት ላይ በመመስረት ከሁለቱም የሲም ውሂብ ይጠቀሙ"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ውሂብ-ብቻ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ያዋቅሩ"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ቀጣይ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"የተንቀሳቃሽ ስልክ አውታረ መረብ"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ስልክ ቁጥር"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"የሲም መሰየሚያ እና ቀለም"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"አውታረ መረብን ማግበር"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"የአገልግሎት አቅራቢን መቀየር"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ገቢር ነው"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"የተንቀሳቃሽ ስልክ ውሂብን፣ የስልክ ጥሪ ባህሪያትን እና ኤስኤምኤስን ለመጠቀም ወደ የእርስዎ አውታረ መረብ ቅንብሮች ይሂዱ።"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ሲም"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ይህ ኢሲም ይደምሰስ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ይህን ሲም መደምሰስ የ<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> አገልግሎቱን ከዚህ መሣሪያ ያስወግደዋል።\n\nለ<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> የሆነ አገልግሎት አይሰረዝም።"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ደምስስ"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"ሲም በመደምሰስ ላይ…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ሲምን መደምሰስ አልተቻለም"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ይኼ ሲም በስህተት ምክንያት ሊደመሰስ አይችልም።\n\nየእርስዎን መሣሪያ ዳግም ያስጀምሩ እና እንደገና ይሞክሩ።"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ከመሣሪያ ጋር ያገናኙ"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"የ<xliff:g id="APPNAME">%1$s</xliff:g> መተግበሪያ ከመሣሪያዎ ጋር ለመገናኘት ጊዜያዊ የWi‑Fi አውታረ መረብን መጠቀም ይፈልጋል"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"ምንም መሣሪያዎች አልተገኙም መሣሪያዎች እንደበሩ እና ለመገናኘት የሚገኝ መሆኑን ያረጋግጡ።"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"የአደጋ ጥሪዎች"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"በየWi‑Fi ጥሪ ማድረጊያ በኩል የሚደረጉ የድንገተኛ አደጋ የስልክ ጥሪዎች በአገልግሎት አቅራቢው የሚደገፉ አይደሉም።\nየድንገተኛ አደጋ ጥሪን ለማድረግ መሣሪያው በራስሰር ወደ ተንቀሳቃሽ ስልክ አውታረ መረብ ይቀይራል።\nየድንገተኛ አደጋ የስልክ ጥሪዎችን ማድረግ የተንቀሳቃሽ ስልክ ሽፋን ባለባቸው አካባቢዎች ላይ ብቻ የሚቻል ነው።"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ጥራትን ለማሻሻል Wi‑Fiን ለጥሪዎች ይጠቀሙ"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ምትኬ ጥሪ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> የማይገኝ ወይም በማንዣበብ ላይ ከሆነ ለ<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ጥሪዎች የተንቀሳቃሽ ስልክ ውሂብ ሲምዎን ይጠቀሙ።"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ምትኬ ጥሪ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ገቢ የኤምኤምኤስ መልዕክት"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"የኤምኤምኤስ መልዕክት መላክ አይቻልም"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"የሞባይል ውሂብ ሲጠፋ በ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> የኤምኤምኤስ መልዕክቶችን መላላክ ለመፍቀድ መታ ያድርጉ"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"የእርስዎ የስራ መመሪያ መረጃ"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"በአይቲ አስተዳዳሪዎ የሚቀናበሩ ቅንብሮች"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"ጂፒዩ"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"በ16ኪባ የገጽ መጠን አስነሳ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"በ16ኪባ ገጽ መጠን የሚደገፍ ከርነል በመጠቀም መሳሪያን አስነሳ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"ከ16ኪባ ገጾች ጋር ተኳዃኝ በሆነ ከርነል ዳግም ይነሳ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ማስጠንቀቂያ፦ አንዳንድ መተግበሪያዎች ከዚህ ሁነታ ጋር ተኳዃኝ ላይሆኑ ይችላሉ። መሣሪያው ከማረጋገጫ በኋላ ዳግም ይነሳል።"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"ከ4ኪባ ገጾች ጋር ተኳዃኝ በሆነ ከርነል ዳግም ይነሳ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"መሣሪያው ከማረጋገጫ በኋላ ዳግም ይነሳል።"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"ከርነልን ወደ 16ኪባ ገጾች ተኳዃኝ ከርነል ማዘመን አልተሳካም።"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ለውጦችን በመተግበር ላይ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"የሳንካ ሪፖርት ተቆጣጣሪ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"በእርስዎ መሣሪያ ላይ የሳንካ ሪፖርት አቋራጭን የትኛው መተግበሪያ እንደሚቆጣጠር ይወስናል።"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"የግል"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"መልሶ ማጫዎትን በፍጥነት ካቆሙበት ለመቀጠል ሚዲያ ማጫወቻን በፈጣን ቅንብሮች ውስጥ ክፍት ሆኖ ይቆያል"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ሚዲያን በማያ ገፅ መቆለፊያው ላይ አሳይ"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"መልሶ ማጫወትን በፍጥነት ካቆሙበት ለመቀጠል የሚዲያ ማጫወቻ በማያ ገፅ መቆለፊያው ላይ ክፍት ሆኖ ይቆያል"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"የሚዲያ ምክሮችን አሳይ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"የረዳት ሚዲያ ምክሮችን አሳይ"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"በእርስዎ እንቅስቃሴ ላይ በመመስረት"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ተጫዋች ደብቅ"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ተጫዋች አሳይ"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ሲም"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ኢሲም"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ኢሲሞች"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"ንቁ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ያልነቃ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / ለ<xliff:g id="ID_1">%1$s</xliff:g> ነባሪ"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ጥሪዎች"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"ኤስኤምኤስ"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ከተኳኋኝ ሚዲያ የሚመጣው ድምፅ ይበልጥ መሳጭ ይሆናል"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"የጭንቅላት ክትትል"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ጭንቅላትዎን ወደ ይበልጥ ተፈጥሯዊ ድምፅ ሲያንቀሳቅሱት ኦዲዮው ይቀየራል"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"የማስመር ፈቃዶች"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> ላይ የፈቀዷቸውን ተመሳሳይ የመተግበሪያ ፈቃዶች ለ<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ይስጡ"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ከስልክ ላይ ፈቃዶች ያስምሩ"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"በዚህ ስልክ ላይ የተፈቀዱትን ተመሳሳይ የመተግበሪያ ፈቃዶች ለእጅ ሰዓትዎ ይስጡ"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"የኦዲዮ መሣሪያ ዓይነት"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ያልታወቀ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ድምጽ ማጉያ"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"መካከለኛ"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ከፍተኛ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ይህ መተግበሪያ መከፈት የሚችለው በ1 መስኮት ብቻ ነው"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"በርቷል"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ጠፍቷል"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ጠፍቷል"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ጠፍቷል"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"በርቷል"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ጠፍቷል"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"በርቷል"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ጠፍቷል"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ብርሃን የማያ ገጾችን ወደ ጨለማ እና ጨለማ የማያ ገጾችን ደግሞ ወደ ብርሃን ይለውጣል"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"በማያ ገጹ ላይ አጉላ"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ጠፍቷል"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ጠፍቷል"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"በርቷል"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ጠፍቷል"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"በርቷል"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"የይለፍ ቃል አሁን ተዘጋጅቷል"</string>
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 966767e..509c4b9 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"بعد دقيقة واحدة"</item>
     <item msgid="1574040255478150028">"بعد 5 دقائق"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 6ccc85a..e46c770 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"يمكن للمستخدمين المشرفين وحدهم الوصول إلى إعدادات المطوّر."</string>
     <string name="header_category_system" msgid="1665516346845259058">"النظام"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"قيد الخدمة"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"خارج نطاق الخدمة"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"التمرير سريعًا للأعلى لمواصلة استخدام التطبيق"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"عليك طي هاتفك ثم التمرير سريعًا للأعلى على الشاشة الأمامية لمواصلة استخدام التطبيق، أو الانتظار بضع لحظات إلى أن يتم قفل الشاشة."</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"أدوات مشابهة"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"نغمة الرنين والمنبّهات"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"الصوت أثناء المكالمات"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"الوسائط"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"الإشعارات وأصوات النظام الأخرى"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"أصوات الوسائط والنظام"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"الإشعارات"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"يتم تلقائيًا تحديد مصدر إخراج الصوت بواسطة التطبيقات الفردية."</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"جهاز بلوتوث بدون اسم"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"البحث"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"تم تفعيل البلوتوث."</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"عرض الكل"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"عرض الكل"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"قلم الشاشة"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"الضغط على زرّ قلم الشاشة"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"تطبيق \"<xliff:g id="APP_NAME">%s</xliff:g>\" (الملف الشخصي للعمل)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"‏الاتصال بجهاز بث صوتي منخفض الطاقة (متوافق مع ميزة Bluetooth LE Audio)"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"أجهزة بث صوتي قريبة"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"أجهزة البث الصوتي"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"الاتصال بجهاز بث صوتي باستخدام رمز الاستجابة السريعة"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"لم يتم العثور على أجهزة بث صوتي قريبة."</string>
     <string name="date_and_time" msgid="1788358029823431692">"التاريخ والوقت"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"الخادم الوكيل"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"محو"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"لاختيار لغة لكل تطبيق، انتقِل إلى إعدادات لغة التطبيق."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"مزيد من المعلومات عن لغات التطبيقات"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏هل تريد تغيير لغة النظام إلى %s ؟"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"‏هل تريد إضافة %s إلى اللغات المفضَّلة؟"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"يسمح ذلك للتطبيقات والمواقع الإلكترونية بمعرفة أنّك تفضل هذه اللغة أيضًا."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"سيتم تغيير إعدادات الجهاز والإعدادات المفضّلة لمنطقتك."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"تغيير"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"‏لا تتوفّر اللغة %s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"السبت"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"سيستخدم التطبيق الذي لا يتوافق مع الإعدادات المفضّلة لمنطقتك إعداداته التلقائية للّغة."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"تعرَّف على مزيد من المعلومات عن الإعدادات المفضّلة للّغة."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"الإعدادات المفضَّلة الإضافية"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"صيغة المخاطبة"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"يمكنك ضبط صيغة المخاطبة التي تفضّلها."</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"يمكن للتطبيقات استخدام هذه الميزة لتخصيص صيغة المخاطبة الخاصة بك"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"عدم تحديد صيغة مخاطبة"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"صيغة مخاطبة مؤنثة"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"صيغة مخاطبة مذكّرة"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"صيغة مخاطبة محايدة"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{هل تريد إزالة اللغة المحددة؟}zero{هل تريد إزالة اللغات المحددة؟}two{هل تريد إزالة اللغتَين المحددتَين؟}few{هل تريد إزالة اللغات المحددة؟}many{هل تريد إزالة اللغات المحددة؟}other{هل تريد إزالة اللغات المحددة؟}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"سيتم عرض النص بلغة أخرى."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"تتعذر إزالة كل اللغات"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"الموقع الجغرافي"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"استخدام الموقع الجغرافي"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"خدمة الموقع الجغرافي غير مفعّلة."</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{الميزة مفعَّلة، ويملك تطبيق واحد إذن الوصول إلى بيانات الموقع الجغرافي.}zero{الميزة مفعَّلة، ويملك # تطبيق إذن الوصول إلى بيانات الموقع الجغرافي.}two{الميزة مفعَّلة، ويملك تطبيقان إذن الوصول إلى بيانات الموقع الجغرافي.}few{الميزة مفعَّلة، وتملك # تطبيقات إذن الوصول إلى بيانات الموقع الجغرافي.}many{الميزة مفعَّلة، ويمتلك # تطبيقًا إذن الوصول إلى بيانات الموقع الجغرافي.}other{الميزة مفعَّلة، ويمتلك # تطبيق إذن الوصول إلى بيانات الموقع الجغرافي.}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{خدمة \"الموقع الجغرافي\" مفعَّلة، ويمتلك تطبيق واحد حق الوصول إلى بيانات الموقع الجغرافي.}zero{خدمة \"الموقع الجغرافي\" مفعَّلة، ويمتلك # تطبيق حق الوصول إلى بيانات الموقع الجغرافي.}two{خدمة \"الموقع الجغرافي\" مفعَّلة، ويمتلك تطبيقان حق الوصول إلى بيانات الموقع الجغرافي.}few{خدمة \"الموقع الجغرافي\" مفعَّلة، ويمتلك # تطبيقات حق الوصول إلى بيانات الموقع الجغرافي.}many{خدمة \"الموقع الجغرافي\" مفعَّلة، ويمتلك # تطبيقًا حق الوصول إلى بيانات الموقع الجغرافي.}other{خدمة \"الموقع الجغرافي\" مفعَّلة، ويمتلك # تطبيق حق الوصول إلى بيانات الموقع الجغرافي.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"جارٍ التحميل..."</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"يمكن للتطبيقات التي لديها إذن بالوصول إلى الأجهزة المجاورة تحديد الموضع النسبي للأجهزة المتصلة بجهازك."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ميزة وصول التطبيقات والخدمات إلى الموقع الجغرافي غير مفّعلة. قد يستمر إرسال الموقع الجغرافي لجهازك إلى مسؤولي الاستجابة لحالات الطوارئ عند الاتصال برقم طوارئ أو مراسلته نصيًا."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"اطّلِع على مزيد من المعلومات عن \"إعدادات الموقع الجغرافي\"."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مزيد من المعلومات حول إعدادات الموقع الجغرافي"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"‏لتغيير إذن الوصول إلى الموقع الجغرافي، انتقِل إلى الإعدادات &gt; الأمان والخصوصية &gt; عناصر التحكّم في الخصوصية."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"‏للحصول على أفضل النتائج، استخدم واقي شاشة مُعتمَد ويحمل شعار Made for Google. قد لا تعمل بصمة إصبع طفلك مع واقيات الشاشة الأخرى."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"فتح الهاتف من الساعة"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"في حال إعداد ميزتَي \"فتح الجهاز بالتعرف على الوجه\" و\"فتح الجهاز ببصمة الإصبع\"، سيطلب منك الهاتف إدخال بصمة إصبعك عندما تكون في منطقة مظلمة أو ترتدي كمّامة.\n\nيمكنك فتح الهاتف من ساعتك عندما لا يتم التعرف على وجهك أو بصمة إصبعك."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"يمكنك فتح الجهاز من ساعتك عندما لا يتم التعرف على بصمة إصبعك."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"يمكنك فتح الجهاز من ساعتك عندما لا يتم التعرف على وجهك."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"في حال إعداد ميزتَي \"فتح الجهاز بالتعرف على الوجه\" و\"فتح الجهاز ببصمة الإصبع\"، سيطلب منك الهاتف إدخال بصمة إصبعك عندما تكون مرتديًا كمامة أو متواجدًا في منطقة مظلمة.\n\nوتوفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح هاتفك عندما تكون أصابعك مبتلة أو عندما لا يتم التعرّف على وجهك."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"توفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح قفل هاتفك عندما لا يتم التعرّف على بصمة إصبعك."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"توفِّر لك ميزة \"فتح الهاتف من الساعة\" طريقة سهلة أخرى لفتح قفل هاتفك عندما لا يتم التعرّف على وجهك."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"استخدام بصمة الإصبع أو الساعة من أجل"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"استخدام الوجه أو الساعة من أجل"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"استخدام بصمة الإصبع أو الساعة من أجل"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"تمت إضافة وجه و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"تمت إضافة وجه وبصمة إصبع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"تمت إضافة وجه وبصمات أصابع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"طريقة العمل"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"يجب أن تكون ساعتك مفتوحة القفل وعلى معصمك وقريبة من هذا الهاتف. لن تحتاج إلى فتح قفل ساعتك مرة أخرى عندما تكون على معصمك."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"عندما يتم فتح قفل هذا الهاتف، ستتلقّى إشعارًا بذلك على ساعتك. وفي حال فتح قفل الهاتف بدون قصد، يمكنك النقر على الإشعار لقفله مرّة أخرى."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"القرار لك"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"يمكنك إزالة ساعتك من ميزة \"فتح الهاتف من الساعة\" في أي وقت من خلال \"الإعدادات\"."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"انقر على أحد الإشعارات."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"مرِّر سريعًا للأعلى على شاشة القفل."</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"اختَر ساعتك"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"الساعات المتاحة"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"إلغاء"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"تأكيد"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"تم الانتهاء من عملية الإعداد."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"يمكنك الآن استخدام ساعتك لفتح قفل هذا الهاتف عند التمرير سريعًا للأعلى على شاشة القفل أو النقر على أحد الإشعارات."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"تم"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ميزة \"فتح الهاتف من الساعة\""</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"يمكنك استخدام ساعتك لفتح قفل هذا الهاتف عند التمرير سريعًا للأعلى على شاشة القفل أو النقر على أحد الإشعارات."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"لاستخدام ميزة \"فتح الهاتف من الساعة\"، يجب أن تكون ساعتك مفتوحة القفل وعلى معصمك وقريبة من هذا الهاتف ومتصلة به. في حال انقطاع الاتصال بينهما، سيكون عليك فتح قفل الهاتف لتتمكَّن من استخدام ميزة \"فتح الهاتف من الساعة\".\n\nملاحظة مهمّة:\nيمكنك إعداد ساعة واحدة فقط في كل مرّة. ولإضافة ساعة أخرى، يجب إزالة الساعة الحالية أولاً."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"مزيد من المعلومات عن ميزة \"فتح الهاتف من الساعة\""</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"إضافة ساعة"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"إزالة ساعة"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"فتح الجهاز بالتعرّف على الوجه وبصمة الإصبع"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"فتح الجهاز ببصمة الإصبع وبالتعرف على الوجه للملف الشخصي للعمل"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"يجب ضبط الإعدادات"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"الأمان"</string>
     <string name="privacy_header" msgid="5526002421324257007">"الخصوصية"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"الملف الشخصي للعمل"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"مساحة خاصة"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"إبقاء التطبيقات الخاصة مقفلة ومخفية"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"احتفِظ بالتطبيقات الخاصة في مساحة منفصلة يمكنك إخفاؤها أو قفلها."</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"قفل المساحة الخاصة"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"يمكنك فتح قفل المساحة الخاصة بالطريقة نفسها المستخدَمة لفتح قفل هاتفك، أو اختيار طريقة أخرى."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"استخدام قفل شاشة الجهاز"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"فتح الجهاز ببصمة الإصبع والتعرّف على الوجه"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"فتح الجهاز ببصمة الإصبع"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"فتح الجهاز بالتعرّف على الوجه"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"انقر لإعداد هذه الميزة."</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"استخدام ميزة \"فتح الجهاز ببصمة الإصبع\" للمساحة الخاصّة"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"استخدام ميزة \"فتح الجهاز بالتعرّف على الوجه\" للمساحة الخاصّة"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"طُرق فتح القفل"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"نفس قفل شاشة الجهاز"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"هل تريد اختيار طريقة جديدة لقفل المساحة الخاصة؟"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"القفل التلقائي"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"قفل المساحة الخاصة تلقائيًا"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"يمكنك قفل مساحتك الخاصة تلقائيًا إذا لم تستخدم جهازك لفترة زمنية."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"في كل مرة يتم فيها قفل الجهاز"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"بعد توقّف النشاط لمدة 5 دقائق"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"أبدًا"</string>
+    <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_deleted" msgid="7825768516955610897">"تم حذف المساحة الخاصة بنجاح."</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"تعذَّر حذف المساحة الخاصة."</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"تم فتح قفل المساحة الخاصة."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ضبط قفل شاشة"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"لاستخدام المساحة الخاصة، يجب ضبط قفل شاشة على هذا الجهاز."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ضبط قفل الشاشة"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"إلغاء"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"إلغاء"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"إعداد"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"إعداد مساحة خاصة"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"احتفِظ بالتطبيقات الخاصة في مساحة منفصلة يمكنك إخفاؤها أو قفلها."</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"طريقة العمل"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"يمكنك الوصول إلى المساحة الخاصة من أسفل قائمة التطبيقات."</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"تتم حماية التطبيقات في المساحة الخاصة باستخدام قفل."</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"يتم إخفاء الإشعارات الواردة من تطبيقات المساحة الخاصة إذا كانت المساحة الخاصة مقفلة."</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"لن تظهر التطبيقات في المساحة الخاصة ضِمن \"إدارة الأذونات\" أو \"لوحة بيانات الخصوصية\" أو الإعدادات الأخرى إذا كانت المساحة الخاصة مقفلة.\n\nلا يمكن نقل المساحة الخاصة إلى جهاز جديد. إذا أردت استخدام مساحة خاصة على جهاز آخر، عليك إعداد مساحة خاصة على ذلك الجهاز.\n\n.في حال تمكَّن شخص من ربط جهازك بجهاز كمبيوتر أو تثبيت تطبيقات ضارة على جهازك، قد يستطيع هذا الشخص الوصول إلى المساحة الخاصة."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"جارٍ إعداد المساحة الخاصة…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"يتم إخفاء الإشعارات الواردة من تطبيقات المساحة الخاصة إذا كانت المساحة مقفلة."</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"فتح قفل المساحة الخاصّة لمشاركة الصور أو الملفات من التطبيقات المدْرجة فيها"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"بعض التطبيقات سبَق أن تم تثبيتها في المساحة الخاصة"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"تعذّر إعداد المساحة الخاصة"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"إعادة المحاولة"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"هل تريد استخدام قفل الشاشة لفتح قفل مساحتك الخاصة؟"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"يمكنك فتح قفل المساحة الخاصة بالطريقة نفسها المستخدَمة لفتح قفل هاتفك، أو يمكنك اختيار طريقة أخرى."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"استخدام قفل الشاشة"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"اختيار قفل جديد"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"اكتملت عملية الإعداد"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"للوصول إلى المساحة الخاصة، انتقِل إلى قائمة التطبيقات ثم مرِّر سريعًا للأسفل."</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"تم"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"انتقِل للأسفل للعثور على مساحة خاصة."</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"اختيار قفل للمساحة الخاصة"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"يمكنك فتح قفل المساحة الخاصة باستخدام بصمة إصبعك. ولأغراض تتعلق بالأمان، يتطلب هذا الخيار استخدام قفل احتياطي."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ضبط رقم تعريف شخصي للمساحة الخاصّة"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ضبط كلمة مرور للمساحة الخاصّة"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ضبط نقش للمساحة الخاصّة"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"إظهار المساحة الخاصة (ليست تجربة المستخدم النهائية)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"فتح تطبيق \"الإعدادات\""</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"‏اضغط على \"الأمان والخصوصية\" &gt; مساحة خاصة &gt; إخفاء المساحة الخاصة إذا كانت مقفلة."</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"إيقاف خيار تبديل إعداد \"إخفاء المساحة الخاصة إذا كانت مقفلة\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"‏ملاحظة لموظفي Google: لا يزال تطوير هذه الميزة قيد التنفيذ."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"قد يلزم أيضًا كتابة مفتاح المرور هذا على الجهاز الآخر."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"تأكيد الاقتران بمجموعة الأجهزة المنظمة"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"السماح بالوصول إلى جهات الاتصال وسجلّ المكالمات"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"السماح أيضًا بالوصول إلى جهات الاتصال وسجلّ المكالمات"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"سيتم استخدام المعلومات في إشعارات المكالمات وغير ذلك."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"تعذر الاتصال بـ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"الأجهزة المتاحة"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"في وضع الطيران"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"إشعاري بالشبكات العامة"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"الإشعار عند توفر شبكة عامة عالية الجودة"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"‏السماح بالاتصال بشبكات الخصوصية المكافئة للشبكات السلكية (WEP)"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"بروتوكول \"الخصوصية المكافئة للشبكات السلكية\" هو بروتوكول أمني قديم بمستوى أمان أقل."</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"لا يسمح مشغّل شبكة الجوّال بالاتصال بشبكات الخصوصية المكافئة للشبكات السلكية لأنّها أقل أمانًا."</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"‏تفعيل اتّصال Wi‑Fi تلقائيًا"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‏إعادة تفعيل اتّصال Wi‑Fi بالقرب من الشبكات المحفوظة العالية الجودة، مثل الشبكة المنزلية"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"غير متاحة نظرًا لإيقاف خدمة الموقع. فعِّل خدمة "<annotation id="link">"الموقع"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"‏تتيح ميزة \"البحث عن شبكات Wi‑Fi\" للتطبيقات والخدمات إمكانية البحث عن شبكات Wi‑Fi في أي وقت، حتى في حال عدم تفعيل Wi‑Fi. ويمكن استخدام هذه البيانات مثلاً لتحسين الميزات والخدمات المستندة إلى الموقع الجغرافي."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"تفعيل"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"‏ميزة \"البحث عن شبكات Wi‑Fi\" مفعّلة"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"تستخدِم هذه الشبكة بروتوكولاً أمنيًا قديمًا بمستوى أمان أقل."</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"تم حظر شبكة \"<xliff:g id="NAME">%1$s</xliff:g>\""</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"تستخدِم هذه الشبكة بروتوكولاً أمنيًا قديمًا أقل أمانًا يُسمى \"الخصوصية المكافئة للشبكات السلكية\". وللاتصال بها على أي حال، يمكنك السماح بالاتصال بشبكات الخصوصية المكافئة للشبكات السلكية."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"لا يسمح مشغّل شبكة الجوّال بالاتصال بهذه الشبكة لأنّها تستخدِم بروتوكولاً أمنيًا قديمًا بمستوى أمان أقل."</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"السماح بالاتصال بشبكة الخصوصية المكافئة للشبكات السلكية"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"إغلاق"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"الخيارات المتقدمة"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"القائمة المنسدلة \"الخيارات المتقدمة\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"توسيع"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"‏الإبقاء على الاتصال بشبكة Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"عدم الإظهار مرة أخرى"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"اتصال"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"‏تم تفعيل Wi‑Fi."</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"متّصل بـ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"جارٍ الربط بـ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"جارٍ الاتصال…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"تعذّر التوصيل بالشبكة"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"الشبكة ليست في النطاق."</string>
     <string name="wifi_forget" msgid="3485573280364015620">"حذف"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"تعديل"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"تعذّر حذف الشبكة"</string>
     <string name="wifi_save" msgid="2312643132472226807">"حفظ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"تعذّر حفظ الشبكة"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"إلغاء"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"بيانات الجوّال"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"إيثرنت"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"‫<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g>: جارٍ الشحن"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"‫<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>: جارٍ الشحن"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"الاتصال بالإنترنت عبر نقطة اتصال"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"قوة الاتصال بالشبكة"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"الشبكات المحفوظة"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"لم يتم ضبط كلمة مرور"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"اسم نقطة الاتصال"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"كلمة مرور نقطة الاتصال"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"نطاق نقطة الوصول"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"إيقاف نقطة الاتصال تلقائيًا"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"عندما لا يكون هناك أي أجهزة متصلة"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"زيادة التوافق"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"إيقاف عدد اللقطات في الثانية التلقائي"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"إيقاف الحدّ من عدد اللقطات الأقصى في الثانية للألعاب عند <xliff:g id="FRAME_RATE">%1$d</xliff:g> هرتز."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"العرض السلس"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"‏يستخدم إعداد \"استعراض الشاشة\" الكاميرا الأمامية لمعرفة ما إذا كان أحد ينظر إلى الشاشة. يعمل هذا الإعداد على الجهاز ولا يتم تخزين أي صور أو إرسالها إلى Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"تفعيل ميزة \"استعراض الشاشة\""</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"إبقاء شاشتك قيد التفعيل أثناء النظر إليها"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"تؤدي إطالة المهلة قبل غلق الشاشة إلى استهلاك قدر كبير من طاقة البطارية."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"الكاميرا مُقفَلة"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"يجب فتح قفل الكاميرا لاستخدام تقنية \"التعرّف على الوجوه\"."</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"يجب فتح قفل الكاميرا لاستخدام ميزة \"استعراض الشاشة\"."</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"‏IMEI (المنفذ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g> لشريحة SIM)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"‏IMEI (المنفذ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> لشريحة SIM) (الرئيسي)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"‏لعرض عنوان MAC، اختَر شبكة محفوظة."</string>
+    <string name="status_imei" msgid="5719752369250485007">"‏رمز IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"‏رمز IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"دقيقة"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"‏إصدار PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"مستوى البطارية"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"الإعدادات المشتركة"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"الإعدادات المشتركة"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"حفظ"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"إلغاء"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"لا يمكن أن يكون حقل الاسم فارغًا."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"‏لا يمكن أن يكون APN فارغًا."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"‏يجب أن يكون حقل MCC من ثلاثة أرقام."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"‏يجب أن يتكون حقل MNC من رقمين أو ثلاثة أرقام."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"‏لا يسمح مشغّل شبكة الجوّال بإضافة APN من النوع %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"‏يجب أن يكون حقل MMSC صالحًا."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"‏جارٍ استعادة إعدادات APN التلقائية."</string>
     <string name="menu_restore" msgid="4310539620115151551">"إعادة الضبط على الإعداد التلقائي"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"‏اكتملت إعادة ضبط إعدادات APN التلقائية."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"إعادة الضبط"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"‏تمت إعادة ضبط البلوتوث وWi‑Fi."</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"‏محو بيانات شرائح eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"‏لن يؤدي هذا إلى إلغاء أيّ خطة من خطط خدمة الجوّال. لتنزيل شرائح SIM بديلة، يمكنك التواصل مع مشغّل شبكة الجوّال."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"إعادة ضبط الإعدادات"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"هل تريد إعادة ضبط جميع إعدادات الشبكة؟ لا يمكنك التراجع عن هذا الإجراء."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"‏هل تريد إعادة ضبط كل إعدادات الشبكة ومحو بيانات شرائح eSIM؟ لا يمكنك التراجع عن هذا الإجراء."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"هل تريد إعادة الضبط؟"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"إعادة ضبط الشبكة ليست متاحة لهذا المستخدم"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"تمت إعادة ضبط إعدادات الشبكة"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"‏يتعذّر محو بيانات شرائح SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"‏يتعذّر محو بيانات شرائح eSIM هذه بسبب حدوث خطأ.\n\nيمكنك إعادة تشغيل الجهاز والمحاولة مرة أخرى."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"محو جميع البيانات (إعادة الضبط على الإعدادات الأصلية)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"محو جميع البيانات (إعادة الضبط على الإعدادات الأصلية)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"الموسيقى"</li>\n<li>"الصور"</li>\n<li>"بيانات المستخدم الأخرى"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729">"‏"<li>"شرائح eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"لن يؤدي هذا إلى إلغاء خطة خدمة الجوّال."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"سيتم حذف جميع المعلومات الشخصية والتطبيقات التي تم تنزيلها. لا يمكنك التراجع عن هذا الإجراء."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"‏سيتم حذف جميع المعلومات الشخصية، بما في ذلك التطبيقات وشرائح SIM التي تم تنزيلها. لا يمكنك التراجع عن هذا الإجراء."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"هل تريد محو جميع البيانات؟"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"لا تتوفر إمكانية إعادة الضبط على الإعدادات الأصلية لهذا المستخدم"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"جارٍ محو البيانات"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"‏نقطة اتصال، USB، بلوتوث، إيثرنت"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"عدم مشاركة الإنترنت مع الأجهزة الأخرى"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"الميزة غير مفعّلة"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"التوصيل"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"‏عدم استخدام نقطة اتصال Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"‏مشاركة اتصال الإنترنت من خلال USB فقط"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"مشاركة اتصال الإنترنت من خلال البلوتوث فقط"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"مشاركة الإنترنت من خلال إيثرنت فقط"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"‏مشاركة اتصال الإنترنت من خلال USB والبلوتوث فقط"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"‏مشاركة اتصال الإنترنت من خلال USB وإيثرنت فقط"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"مشاركة اتصال الإنترنت من خلال البلوتوث وإيثرنت"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"‏مشاركة اتصال الإنترنت من خلال USB والبلوتوث وإيثرنت"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"‏التوصيل عبر USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"التوصيل عبر البلوتوث"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"التوصيل عبر إيثرنت"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"‏يمكنك استخدام نقطة الاتصال والتوصيل لتوفير اتصال بالإنترنت للأجهزة الأخرى من خلال شبكة Wi‑Fi أو اتصال بيانات الجوّال، كما يمكن للتطبيقات إنشاء نقطة اتصال لمشاركة المحتوى مع الأجهزة المجاورة."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"مساعدة"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"شبكة الجوّال"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"خطة الجوّال"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"‏تطبيق SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"‏هل تريد تغيير تطبيق الرسائل القصيرة SMS؟"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"‏هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> كتطبيق للرسائل القصيرة SMS؟"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"‏هل تريد تغيير مساعد Wi‑Fi؟"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"هل تريد استخدام <xliff:g id="NEW_APP">%s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"‏مشغل SIM (مشغل شبكة الجوّال) غير معروف"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"ليس لدى <xliff:g id="OPERATOR">%1$s</xliff:g> موقع إلكتروني معروف لإدارة حسابات"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"‏يُرجى إدخال شريحة SIM وإعادة التشغيل"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"يُرجى الاتصال بالإنترنت"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"طلبات الموقع الجغرافي الأخيرة"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"الموقع الجغرافي للملف الشخصي للعمل"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"أذونات التطبيقات لتحديد الموقع الجغرافي"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"محو إمكانية الدخول"</string>
     <string name="controls_label" msgid="8671492254263626383">"عناصر التحكم"</string>
     <string name="force_stop" msgid="2681771622136916280">"فرض الإيقاف"</string>
+    <string name="archive" msgid="9074663845068632127">"أرشفة"</string>
+    <string name="restore" msgid="7622486640713967157">"استعادة"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"المجموع"</string>
     <string name="application_size_label" msgid="6407051020651716729">"حجم التطبيق"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"‏تطبيق وحدة تخزين USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"يتعذر حساب حجم الحزمة."</string>
     <string name="version_text" msgid="7628938665256107608">"الإصدار <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"نقل"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"تعذّرت عملية الأرشفة"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"تمت أرشفة \"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\""</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"تعذَّرت استعادة التطبيق."</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"جارٍ استعادة <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"هناك عملية نقل أخرى قيد التقدم حاليًا."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ليست هناك مساحة تخزين كافية."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"التطبيق غير موجود."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"لوحة المفاتيح على الشاشة متاحة"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"إدارة لوحات المفاتيح على الشاشة"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"الخيارات"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"تسهيل الاستخدام"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"لوحة المفاتيح الخارجية"</string>
     <string name="show_ime" msgid="4334255501724746849">"استخدام لوحة المفاتيح على الشاشة"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"استمرار عرضها على الشاشة عندما تكون لوحة المفاتيح الخارجية متصلة"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"تجاهُل النقرات المتكرّرة"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"يمكنك تفعيل ميزة \"تجاهُل النقرات المتكرّرة\" لتسهيل استخدام لوحة المفاتيح الخارجية."</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"تثبيت المفاتيح"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"يمكنك تفعيل ميزة \"تثبيت المفاتيح\" لتسهيل استخدام لوحة المفاتيح الخارجية."</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"اختصارات لوحة المفاتيح"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"إظهار قائمة الاختصارات"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"لوحات مفاتيح وأدوات الملف الشخصي للعمل"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"الترتيب حسب وقت الاستخدام"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"الترتيب حسب وقت آخر استخدام"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"الترتيب حسب اسم التطبيق"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"آخر مرة تم استخدامه"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"تاريخ آخر استخدام"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"مطلقًا"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"وقت الاستخدام"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"تسهيل الاستخدام"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"إعدادات تسهيل الاستخدام"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"المتابعة على أيّ حال"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"إلغاء"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"إعدادات التكبير"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"التكبير بالنقر ثلاث مرّات"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"التكبير باستخدام الاختصار"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"التكبير باستخدام الزر والنقر الثلاثي"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"لمحة عن <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"النقر على الشاشة مرّتين باستخدام إصبعين للفتح"</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="860548190334486449">"لبدء استخدام ميزة التكبير أو إيقافها، انقر مرّتين في أي مكان على الشاشة باستخدام إصبعين."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"لاستخدام إحدى ميزات إمكانية الوصول، مرّر سريعًا من أسفل الشاشة للأعلى بثلاثة أصابع.\n\nللتبديل بين الميزات، مرّر سريعًا للأعلى بثلاثة أصابع مع تثبيتها."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"حسنًا"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"إعدادات زر أدوات تسهيل الاستخدام"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"إعدادات الأزرار"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"اختصار <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"زر تسهيل الاستخدام"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"إيماءة تسهيل الاستخدام"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"النقر على الشاشة مرّتين باستخدام إصبعين"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"النقر على الشاشة مرّتين باستخدام إصبعين"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏انقر سريعًا على الشاشة مرّتَين {0,number,integer} باستخدام إصبعين."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"النقر ثلاث مرات على الشاشة"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"النقر ثلاث مرات على الشاشة"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏انقر على الشاشة {0,number,integer} مرة. يمكن أن يؤدي استخدام هذا الاختصار إلى إبطاء الجهاز."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"تعرّف على مزيد من المعلومات حول إيماءة وزرّ أدوات تسهيل الاستخدام"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"استخدام زرّ أدوات تسهيل الاستخدام: لا تتوفّر إيماءة التنقُّل باستخدام ثلاثة أزرار"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"الوصول السريع إلى ميزات تسهيل الاستخدام"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"للبدء:"</b>\n"1- انتقِل إلى إعدادات تسهيل الاستخدام.\n2- اختَر ميزة وانقر على الاختصار.\n3- اختَر ما إذا كنت تريد استخدام زر أو إيماءة للوصول إلى الميزة."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"للبدء"</b>\n"1- انتقِل إلى إعدادات تسهيل الاستخدام.\n2- اختَر ميزة وانقر على الاختصار.\n3- انقر على الزر للوصول إلى الميزة."</string>
+    <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_size_title" msgid="5785110470538960881">"حجم الزر"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"إنهاء الاتصال عبر زر التشغيل"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"مؤشر الماوس الكبير"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"جعل مؤشّر الماوس أكثر وضوحًا"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"تطبيق المظهر الداكن على كل التطبيقات"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ينطبق هذا الإعداد على التطبيقات التي لا تحتوي على مظهر داكن. قد تظهر في بعض التطبيقات مشاكل في العرض، مثل قلب الألوان."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"إزالة الصور المتحركة"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"تقليل الحركة على الشاشة"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"صوت أحادي"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"قد يؤدي ذلك إلى السماح للميزة بتتبّع تفاعلاتك مع تطبيق أو جهاز استشعار والتفاعل مع التطبيقات نيابةً عنك."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"سماح"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"رفض"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"إيقاف"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"إلغاء"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"هل تريد إيقاف \"<xliff:g id="SERVICE">%1$s</xliff:g>\"؟"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"سيؤدي النقر على \"<xliff:g id="STOP">%1$s</xliff:g>\" إلى إيقاف \"<xliff:g id="SERVICE">%2$s</xliff:g>\"."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"إيقاف"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"إبقاء"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"هل تريد إيقاف \"<xliff:g id="SERVICE">%1$s</xliff:g>\"؟"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"لم يتم تثبيت أي خدمات"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"لم يتم اختيار أي خدمة"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"لم يتم تقديم أي وصف."</string>
     <string name="settings_button" msgid="2195468788019730377">"الإعدادات"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"حساسية الضوء، رهاب الضوء، المظهر الداكن، الصداع الشقِّي، الصداع، وضع القراءة، الوضع الليلي، تقليل درجة السطوع، النقطة البيضاء"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"سهولة الاستخدام، سهولة الوصول، المساعدة، تلبية احتياجات المستهلك"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"نظر، سمع، كفيف، أصم، مهارات حركية، مهارات، مساعِد، مساعدة، سهولة الاستخدام، سهولة الوصول، يد، مساعدة"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"أداة تكبير النوافذ، تصغير/تكبير، التكبير، ضعف في النظر، تكبير، جعله أكبر"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"‏شرح، ترجمة وشرح، CC، كتابة مباشرة، ضعيف السمع، فقدان السمع، الترجمة في الوقت الفعلي، تحويل الكلام إلى نص، ترجمة"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"تباين الألوان"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"المهارات الحركية، الماوس"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"سماعات الأذن الطبية، ضعيف السمع، فقدان السمع، القواقع المزروعة، أجهزة تضخيم الصوت، معالجات الصوت"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"مهارات حركية، ماوس، ماوس خارجي، ماوس يتبع حركة الرأس، ماوس تكيّفي، كرسي متحرك، ذراع تحكُّم"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"‏سماعات أذن طبية، ضعيف السمع، فقدان السمع، قواقع مزروعة، أجهزة تضخيم الصوت، معالِجات صوتية، منتجات تضخيم الصوت الشخصية (PSAP)"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"‏ضعيف السمع، فقدان السمع، شرح، المبرقة، tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ثلاثة أزرار"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"مهارات يدوية، مهارات حركية، كبار السن، التهاب المفاصل، إصابة الإجهاد المتكرر، سكتة دماغية، رعّاش، تصلّب متعدد، شلل دماغي، اهتزاز، إصابة الإجهاد المتكرر، يد"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"مهلة، مهارات يدوية، كبار السن"</string>
     <string name="print_settings" msgid="8519810615863882491">"الطباعة"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"غير مفعّلة"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{خدمة طباعة واحدة قيد التشغيل}zero{# خدمة طباعة قيد التشغيل}two{خدمتا طباعة قيد التشغيل}few{# خدمات طباعة قيد التشغيل}many{# خدمة طباعة قيد التشغيل}other{# خدمة طباعة قيد التشغيل}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"عرض التطبيقات ذات أعلى معدّل استخدام للبطارية"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"تم تحسين الشحن لحماية البطارية"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"للمساعدة في إطالة عمر البطارية، يتم تحسين الشحن."</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"تم تحسين الشحن لحماية البطارية"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"للمساعدة في إطالة عمر البطارية، يتم تحسين الشحن في وضع الإرساء."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"تم تحسين الشحن لحماية البطارية"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"للمساعدة في إطالة عمر البطارية، يتم تحسين الشحن في وضع الإرساء."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"الشحن بالكامل"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"لحماية البطارية، سيتم تحسين الشحن في المرة التالية التي يكون فيها الجهاز اللوحي في وضع الإرساء."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"مزيد من المعلومات عن إيقاف الشحن مؤقتًا"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"استئناف الشحن"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"يشمل النشاط الكثيف لطاقة البطارية في الخلفية"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"إزالة"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"إلغاء"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"شحن الجهاز تمامًا"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"مشكلة متعلّقة بجهاز الشحن الملحق"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"مزيد من المعلومات عن الشحن بمحوِّل طاقة غير متوافق"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"مدير البطارية"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"إدارة التطبيقات تلقائيًا"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"الآن"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"‏‫‎<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> ‏- ‎<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> ‏<xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"رسم بياني لاستخدام البطارية"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"رسم بياني لاستخدام البطارية في اليوم"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"رسم بياني لاستخدام البطارية في الساعة"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"نسبة مستوى البطارية من <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> إلى <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"استخدام البطارية منذ آخر عملية شحن كاملة"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"استخدام البطارية: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"مدّة النظر إلى الشاشة منذ آخر عملية شحن كاملة"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"إشارة اتصال الطوارئ"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"تعيين السلوك عند إجراء اتصال بالطوارئ"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"الاحتفاظ بنسخة احتياطية"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"مفعّل"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"غير مفعّل"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"النسخ الاحتياطي والاستعادة"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"البيانات الشخصية"</string>
     <string name="backup_data_title" msgid="507663517227498525">"احتفاظ بنسخة لبياناتي"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"الاسم"</string>
     <string name="vpn_type" msgid="5533202873260826663">"النوع"</string>
     <string name="vpn_server" msgid="2908816134941973935">"عنوان الخادم"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"‏الترميز PPP‏ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"‏سر L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"‏ معرف IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"‏مفتاح IPSec مشترك مسبقًا"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"‏شهادة IPSec للمستخدم"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"‏شهادة CA لـ IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"‏شهادة خادم IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"إظهار الخيارات المتقدمة"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"نطاقات بحث نظام أسماء النطاقات"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"‏خوادم DNS (مثل 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"مسارات إعادة التوجيه (مثل 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"اسم المستخدم"</string>
     <string name="vpn_password" msgid="1183746907642628127">"كلمة المرور"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"حفظ معلومات الحساب"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(غير مستخدم)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(عدم التحقق من ملكية الخادم)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(الواردة من الخادم)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"‏لا يمكن أن يظل هذا النوع من الشبكات الافتراضية الخاصة (VPN) متصلاً في جميع الأوقات."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"‏لا تتوافق الشبكة الافتراضية الخاصة (VPN) التي يتم تشغيلها دائمًا إلا مع عناوين الخادم الرقمية"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"‏يجب تحديد خادم نظام أسماء نطاقات (DNS) للشبكة الافتراضية الخاصة (VPN) التي يتم تشغيلها دائمًا"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"‏يجب أن تكون عناوين خادم نظام أسماء النطاقات (DNS) رقمية للشبكة الافتراضية الخاصة التي يتم تشغيلها دائمًا"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"‏المعلومات التي تم إدخالها لا تتوافق مع الشبكة الافتراضية الخاصة (VPN) التي يتم تشغيلها دائمًا."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"إلغاء"</string>
     <string name="vpn_done" msgid="5137858784289564985">"تجاهل"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"حظر أي اتصالات بدون شبكة افتراضية خاصة"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"‏أيتطلب الأمر اتصالاً بشبكة VPN؟"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"‏هذا التطبيق غير آمن. يُرجى التحديث إلى شبكة افتراضية خاصة (VPN) باستخدام بروتوكول IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"‏تعذَّر تفعيل شبكة افتراضية خاصة (VPN) غير متوافقة."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"‏حدد ملفًا شخصيًا للشبكة الافتراضية الخاصة (VPN) للاتصال الدائم بها. لن يتم السماح بحركة مرور الشبكة إلا عند الاتصال بهذه الشبكة الافتراضية الخاصة."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"بدون"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"‏تتطلب الشبكة الافتراضية الخاصة (VPN) دائمة التفعيل عنوان IP لكل من الخادم ونظام أسماء النطاقات."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"‏تنبيهات AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"تلقي نشرات حول اختطاف الأطفال"</string>
     <string name="repeat_title" msgid="8676570486899483606">"التكرار"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"تفعيل مدير المكالمات"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"السماح لهذه الخدمة بإدارة كيفية إجراء المكالمات."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"مدير المكالمات"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"تنبيهات الطوارئ اللاسلكية"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"مشغلو الشبكة"</string>
     <string name="access_point_names" msgid="5768430498022188057">"أسماء نقاط الوصول"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"محفظة"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"دفع، نقر، دفعات"</string>
     <string name="keywords_backup" msgid="707735920706667685">"نسخ احتياطية، نسخة احتياطية"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"إيماءة"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"بالوجه، فتح الجهاز، مصادقة، تسجيل الدخول"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"الوجه، فتح القفل، المصادقة، تسجيل الدخول، بصمة الإصبع، المقاييس الحيوية"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"‏imei‏، meid‏، min‏، إصدار prl‏، imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"أصوات تشغيل الجهاز"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"النسخ النصي التلقائي"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"شرح تلقائي للوسائط"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"مكبّرات صوت الهاتف"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"مكبّرات صوت الجهاز اللوحي"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"مكبّرات صوت الجهاز"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"سماعات الرأس السلكية"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"الصوت الصادر من الوسائط المتوافقة يصبح أكثر غمورًا."</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"غير مفعّل"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"تمت إزالة المحادثات الحديثة."</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"تمت إزالة المحادثة."</string>
     <string name="clear" msgid="5092178335409471100">"محو"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"محو المحادثة مع \"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>\""</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ستظهر هنا المحادثات ذات الأولوية والمُعدَّلة"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"بعد وضع علامة على محادثة لمنحها الأولوية، أو إجراء أي تغييرات أخرى على المحادثات، ستظهر هذه المحادثات هنا. \n\nلتغيير إعدادات المحادثة: \nمرّر سريعًا إلى أسفل الشاشة من أعلاها لفتح مركز الإشعارات المنسدل ثم انقر مع الاستمرار على المحادثة."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"تصغير"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"الميزة غير مفعَّلة"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"تثبيت الشاشة على تطبيق معيّن"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"تسمح لك ميزة \"تثبيت الشاشة على تطبيق معيّن\" بالحفاظ على التطبيق الحالي في حيز رؤيتك إلى أن تتم إزالة تثبيتها. على سبيل المثال، يمكن استخدام هذه الميزة للسماح لصديق موثوق فيه بلعب لعبة معيّنة."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"عندما يتم تثبيت الشاشة على تطبيق معيّن، يمكن لهذا التطبيق فتح التطبيقات الأخرى والوصول إلى البيانات الشخصية. \n\nلاستخدام ميزة \"تثبيت الشاشة على تطبيق معيّن\"، يجب تنفيذ ما يلي: 	\n1- تفعيل ميزة \"تثبيت الشاشة على تطبيق معيّن\" 	\n2- فتح \"نظرة عامة\" 	\n3- النقر على رمز التطبيق في أعلى الشاشة ثم النقر على \"تثبيت\""</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"عندما يتم تثبيت الشاشة على تطبيق معيّن، يمكن لهذا التطبيق فتح التطبيقات الأخرى والوصول إلى البيانات الشخصية. \n\nإذا أردت مشاركة جهازك بأمان مع أحد الأشخاص، اجعله يستخدم حساب ضيف بدلاً من استخدام حسابك. \n\nلاستخدام ميزة تثبيت التطبيقات، يجب تنفيذ ما يلي: 	\n1- تفعيل ميزة تثبيت التطبيقات 	\n2- فتح \"نظرة عامة\" 	\n3- النقر على رمز التطبيق في أعلى الشاشة ثم النقر على \"تثبيت\""</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_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">"طلب إدخال رقم التعريف الشخصي قبل إزالة التثبيت"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"إدارة التطبيق في حال عدم استخدامه"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"إزالة الأذونات وحذف الملفات المؤقتة وإيقاف الإشعارات وأرشفة التطبيق"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"جميع التطبيقات"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"التطبيقات المثبَّتة"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"التطبيقات الفورية"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"الذاكرة المتاحة"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"الذاكرة المستخدمة بواسطة التطبيقات"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{استخدَم تطبيق واحد الذاكرة خلال آخر {time}.}zero{استخدَم # تطبيق الذاكرة خلال آخر {time}.}two{استخدَم تطبيقان الذاكرة خلال آخر {time}.}few{استخدَمت # تطبيقات الذاكرة خلال آخر {time}.}many{استخدَم # تطبيقًا الذاكرة خلال آخر {time}.}other{استخدَم # تطبيق الذاكرة خلال آخر {time}.}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"تفعيل تحليل استخدام الذاكرة"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"يتطلب تحليل استخدام الذاكرة موارد إضافية للنظام."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"تم إيقاف تحليل استخدام الذاكرة."</string>
     <string name="running_frequency" msgid="7260225121706316639">"معدل الاستخدام"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"الاستخدام الأقصى"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"لم يتم استخدام أي بيانات."</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"إظهار فوق التطبيقات الأخرى"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"السماح بظهور التطبيق فوق التطبيقات الأخرى"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"يمكنك السماح بعرض واجهة هذا التطبيق فوق التطبيقات الأخرى التي تستخدمها. سيتمكّن هذا التطبيق من معرفة الأماكن التي تنقر عليها أو من تغيير ما يتم عرضه على الشاشة."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"تغيير جهاز إخراج الوسائط"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"السماح للتطبيق بتبديل جهاز إخراج الوسائط"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"يؤدي تفعيل هذا الإعداد إلى السماح لهذا التطبيق باختيار واحد من الأجهزة المتصلة لتشغيل الصوت أو الفيديو من تطبيقات أخرى. في حال تفعيل الإعداد، يمكن لهذا التطبيق الوصول إلى قائمة بالأجهزة المتاحة، مثل سمّاعات الرأس ومكبّرات الصوت، ثم اختيار جهاز إخراج لتشغيل الصوت أو الفيديو أو بثّهما."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"الوصول إلى كل الملفات"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"تحسين التفعيل الصوتي"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"يستخدم هذا الجهاز معلومات خاصة لتحسين نموذج التفعيل الصوتي. ومن الممكن إجراء تحديثات موجزة على التطبيقات يتم تجميعها من مختلف المستخدمين للحفاظ على الخصوصية وتحسين هذا النموذج للجميع.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"سيتم تحذيرك عند استخدام <xliff:g id="ID_1">^1</xliff:g> من البيانات."</string>
     <string name="cell_data_limit" msgid="256855024790622112">"الحد الأقصى للبيانات <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"حد التحذير بشأن البيانات <xliff:g id="ID_1">^1</xliff:g> / الحد الأقصى للبيانات <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"قد تختلف طريقة احتساب بيانات مشغِّل شبكة الجوّال عن طريقة الاحتساب على الجهاز."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"تم استبعاد البيانات التي تستخدمها شبكات مشغِّلي شبكات الجوّال."</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> مستخدَمة"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ضبط تحذيرات استخدام البيانات"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"تم التحديث قبل <xliff:g id="ID_1">^2</xliff:g>."</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"تم التحديث بواسطة <xliff:g id="ID_1">^1</xliff:g> الآن."</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"تم التحديث الآن."</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"عرض الخطة"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"عرض التفاصيل"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"توفير البيانات"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"استخدام البيانات بدون قيود"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"استخدام غير عادي للبطارية"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"فئات مطوّري البرامج في الإعدادات السريعة"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‏إيقاف مهلة تفويض أداة Adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"‏إيقاف الإبطال التلقائي لتفويضات أداة Adb الممنوحة للأنظمة التي لم تُعد الاتصال خلال الفترة التلقائية (7 أيام) أو الفترة التي يضبطها المستخدم (الحد الأدنى يوم واحد)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"‏تتبّع أنشطة Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"إيقاف أجهزة الاستشعار"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"إعدادات ملف العمل"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"البحث عن جهات اتصال دليل العمل في التطبيقات الشخصية"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"خدمة الملء التلقائي"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"الخدمة التلقائية للملء التلقائي"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"كلمات المرور"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"مقدّمو الخدمات الإضافيون"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{كلمة مرور واحدة}zero{# كلمة مرور}two{كلمتا مرور}few{# كلمات مرور}many{# كلمة مرور}other{# كلمة مرور}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"تلقائي، ملء، ملء تلقائي، كلمة مرور"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"البيانات، مفتاح المرور، كلمة المرور"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"تلقائي، ملء، ملء تلقائي، بيانات، مفتاح مرور، كلمة مرور"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"‏&lt;b&gt;هل تريد إيقاف جميع الخدمات؟&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; لن يتوفَّر الملء التلقائي لكلمات المرور ومفاتيح المرور وغيرها من المعلومات المحفوظة عند تسجيل الدخول."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"‏&lt;b&gt;يجب تغيير الخدمة المفضّلة إلى &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; سيتم حفظ مفاتيح المرور وكلمات المرور الجديدة والمعلومات الأخرى هنا من الآن فصاعدًا. وقد يستخدم تطبيق &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; المحتوى الذي يظهر على شاشتك لتحديد ما يمكن ملؤه تلقائيًا."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"‏هل تريد استخدام %1$s؟"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"لا يمكن اختيار أكثر من 5 خدمات"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"يجب إيقاف خدمة واحدة على الأقل لإضافة خدمة أخرى."</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"‏يستخدم %1$s المحتوى الذي يظهر على شاشتك لتحديد ما يمكن ملؤه تلقائيًا."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"الحد الأقصى المسموح به لكلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"يمكن أن يكون لديك ما يصل إلى 5 كلمات مرور ومفاتيح مرور وخدمات بيانات نشطة في الوقت نفسه. عليك إيقاف خدمة لإضافة المزيد."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"الحد الأقصى المسموح به لكلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"يمكن أن يكون لديك ما يصل إلى 5 كلمات مرور ومفاتيح مرور وخدمات بيانات نشطة في الوقت نفسه. لإضافة المزيد، عليك إيقاف إحدى الخدمات."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"إيقاف"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"الملء التلقائي"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"مستوى التسجيل"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"يمكن تعديل تغييرات التوافق فقط للتطبيقات التي تتيح تصحيح الأخطاء فيها. ما عليك سوى تثبيت تطبيق يمكن تصحيح الأخطاء فيه، ثم إعادة المحاولة."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"يعتمد على إعداد آخر"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"الحساب"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"‏عدد الحسابات: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"اسم الجهاز"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"المعلومات الأساسية"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"المعلومات القانونية والتنظيمية"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"‏السماح بتشغيل هذا التطبيق عندما يتم مسح علامة NFC ضوئيًا\nإذا كان هذا الإذن مفعّلاً، سيتوفّر التطبيق كخيار كلّما تم رصد علامة."</string>
     <string name="media_output_title" msgid="8283629315159510680">"تشغيل الوسائط على"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"تشغيل <xliff:g id="LABEL">%s</xliff:g> على"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"سيتم تشغيل الصوت"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"هذا الجهاز"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"غير متاح أثناء المكالمات"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"تلقي المكالمة على"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"كتم الصوت"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"لتفعيل الخيار، عليك أولاً تغيير إعداد \"الضغط مع الاستمرار على زر التشغيل\" إلى قائمة زر التشغيل."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"تفاصيل الشبكة"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"‏اسم جهازك مرئي للتطبيقات على هاتفك. ويمكن أيضًا للآخرين الاطّلاع على اسم جهازك عند الاتصال بأجهزة تتضمّن بلوتوث أو الاتصال بشبكة Wi-Fi أو إعداد نقطة اتصال Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"الأجهزة"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"اختيار شبكة"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"غير متصلة"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"الاسم"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"اللون (تستخدمه التطبيقات المتوافقة)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"حفظ"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"‏استخدام شريحة SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"‏استخدام شريحة SIM هذه"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"غير مفعّل"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"‏لإيقاف شريحة SIM هذه، يمكنك إزالتها."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"يمكنك النقر لتفعيل <xliff:g id="CARRIER">%1$s</xliff:g>."</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‏محو بيانات شريحة SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"نوع الشبكة المفضّل"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"تغيير وضع تشغيل الشبكة"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"نوع الشبكة المفضّل"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"راجع مقدِّم الشبكة للتعرُّف على الأسعار."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"استخدام التطبيقات للبيانات"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"وضع الشبكة <xliff:g id="NETWORKMODEID">%1$d</xliff:g> غير صالح، وعليك تجاهله."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"أسماء نقاط الوصول"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"عدم التوفُّر عند الربط بمشغّل شبكة الجوّال <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"هل تريد التبديل إلى <xliff:g id="CARRIER_NAME">%1$s</xliff:g>؟"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"‏هل تريد التبديل إلى استخدام شريحة SIM؟"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"هل تريد استخدام <xliff:g id="CARRIER_NAME">%1$s</xliff:g>؟"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"‏لا يمكن تفعيل أكثر من شريحة SIM واحدة في آنٍ واحد.\n\nلن يؤدي التبديل إلى <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> إلى إلغاء خدمة <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"‏لا يمكن تفعيل أكثر من شريحة eSIM واحدة في آنٍ واحد.\n\nلن يؤدي التبديل إلى \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\" إلى إلغاء خدمة \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\"."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"‏لا يمكن تفعيل أكثر من شريحة SIM واحدة في آنٍ واحد.\n\nلن يؤدي التبديل إلى إلغاء خدمة <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"‏يمكنك استخدام شريحتَي SIM في آنٍ واحد. لاستخدام <xliff:g id="CARRIER_NAME">%1$s</xliff:g>، عليك إيقاف شريحة SIM الأخرى."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"التبديل إلى <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"إيقاف <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"لا، شكرًا"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"إلغاء"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"تبديل"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"إيقاف"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"‏يتعذّر تفعيل شريحة SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"‏حاوِل تفعيل شريحة SIM مرة أخرى. إذا استمرت المشكلة، عليك إعادة تشغيل الجهاز."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"‏إعداد شريحة SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"‏يمكنك ضبط الإعدادات المفضّلة لشبكة الجوّال لاستخدام شرائح SIM متعددة على هذا الجهاز."</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"‏تصنيف شرائح SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ستظهر هذه التصنيفات عند إجراء مكالمات أو إرسال رسائل نصية أو استخدام بيانات الجوّال، ويمكن الوصول إليها في \"الإعدادات\"."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"‏تصنيف شريحة SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"التصنيف"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"‏اختيار شرائح SIM لاستخدامها"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"‏يمكنك استخدام شريحتَي SIM في آنٍ واحد."</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"‏إعداد شرائح SIM الرئيسية"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"‏يمكنك اختيار شرائح SIM التي تريد استخدامها تلقائيًا لإجراء المكالمات أو إرسال الرسائل النصية أو استخدام بيانات الجوّال."</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"‏شرائح SIM الرئيسية"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"المكالمات"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"الرسائل النصية"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"‏التبديل التلقائي لبيانات SIM"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"‏استخدِم البيانات المستمدة من شريحة SIM اعتمادًا على مدى التغطية أو التوفّر."</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"البيانات فقط"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"إعداد"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"التالي"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"شبكة الجوّال"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"رقم الهاتف"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"‏تصنيف شريحة SIM ولونها"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"تفعيل الشبكة"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"جارٍ تبديل مشغِّل شبكة الجوّال"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"مشغّل شبكة الجوّال <xliff:g id="CARRIER_NAME">%1$s</xliff:g> مفعّل"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"لاستخدام بيانات الجوّال وميزات المكالمات والرسائل القصيرة في وقتٍ لاحق، انتقِل إلى إعدادات الشبكة."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"‏شريحة SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"‏هل تريد محو بيانات شريحة eSIM؟"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"‏سيؤدي محو بيانات شريحة SIM هذه إلى إزالة خدمة <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> من هذا الجهاز.\n\nلن يتم إلغاء خدمة <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"محو البيانات"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"‏جارٍ محو بيانات شريحة SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"‏يتعذّر محو بيانات شريحة SIM."</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"‏يتعذّر محو بيانات شريحة SIM هذه بسبب حدوث خطأ.\n\nيمكنك إعادة تشغيل الجهاز والمحاولة مرة أخرى."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"الاتصال بالجهاز"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"‏يريد تطبيق <xliff:g id="APPNAME">%1$s</xliff:g> استخدام شبكة Wi‑Fi مؤقتة للاتصال بجهازك."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"لم يتمّ العثور على أيّ أجهزة. تأكَّد من تشغيل الأجهزة وتوفّرها للاتصال."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"مكالمات الطوارئ"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"‏لا يتيح مشغّل شبكة الجوّال مكالمات الطوارئ من خلال ميزة \"الاتصال عبر Wi-Fi\".\nويتم تبديل الجهاز تلقائيًا إلى شبكة جوّال لإجراء مكالمة طوارئ.\nلا يمكن إجراء مكالمات الطوارئ إلا في المناطق التي تتوفّر فيها تغطية شبكة الجوّال."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"‏استخدام شبكة Wi‑Fi لإجراء المكالمات لتحسين الجودة"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"الاتصال الاحتياطي"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"‏إذا لم يكن <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> متاحًا أو تم تفعيل التجوال، استخدِم بيانات الجوَال لشريحة SIM لإجراء وتلقّي مكالمات <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"الاتصال الاحتياطي"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"رسالة وسائط متعددة واردة"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"يتعذّر إرسال رسالة وسائط متعددة"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"انقر للسماح بالمراسلة باستخدام رسائل الوسائط المتعددة على <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> عند إيقاف بيانات الجوّال."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"معلومات سياسة العمل"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"يتولى مشرف تكنولوجيا المعلومات إدارة الإعدادات."</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"وحدة معالجة الرسومات"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"التشغيل مع صفحات حجمها 16 كيلوبايت"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"التشغيل بنواة متوافقة مع صفحات حجمها 16 كيلوبايت"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"هل تريد إعادة التشغيل بنواة متوافقة مع الصفحات التي حجمها 16 كيلوبايت؟"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"تحذير: قد لا تتوافق بعض التطبيقات مع هذا الوضع. وستتم إعادة تشغيل الجهاز بعد التأكيد."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"هل تريد إعادة التشغيل بنواة متوافقة مع الصفحات التي حجمها 4 كيلوبايت؟"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"ستتم إعادة تشغيل الجهاز بعد التأكيد."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"تعذَّر تحديث النواة إلى إصدار متوافق مع الصفحات التي حجمها 16 كيلوبايت."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"جارٍ تطبيق التغييرات"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"معالِج تقارير الأخطاء"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"يحدّد هذا الإعداد التطبيق الذي سيعالج اختصار \"تقرير الأخطاء\" على جهازك."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"شخصي"</string>
@@ -4515,7 +4778,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"لاستئناف التشغيل بسرعة، يظل مشغّل الوسائط مفتوحًا في \"الإعدادات السريعة\"."</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"إظهار الوسائط على شاشة القفل"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"لاستئناف التشغيل بسرعة، يظل مشغِّل الوسائط مفتوحًا في شاشة القفل."</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"إظهار اقتراحات الوسائط"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"‏عرض اقتراحات الوسائط من \"مساعد Google\""</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"استنادًا إلى أنشطتك"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"إخفاء المشغِّل"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"إظهار المشغِّل"</string>
@@ -4547,8 +4810,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"‏شرائح eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"نشطة"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"غير نشطة"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / إعدادات <xliff:g id="ID_1">%1$s</xliff:g> التلقائية"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"المكالمات"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"الرسائل القصيرة"</string>
@@ -4704,8 +4969,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"الصوت الصادر من الوسائط المتوافقة يصبح أكثر وضوحًا."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"تتبُّع حركة الرأس"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"يتغيّر الصوت بينما تُحرك رأسك ليبدو طبيعيًا جدًا."</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"مزامنة الأذونات"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"منح <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> أذونات التطبيقات نفسها التي سبق السماح بها على <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"مزامنة الأذونات من الهاتف"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"امنح ساعتك أذونات التطبيقات نفسها التي سبق أن سمحت بها على هذا الهاتف."</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"نوع الجهاز السماعي"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"غير معروف"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"مكبّر صوت"</string>
@@ -4801,4 +5066,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
     <string name="contrast_high" msgid="3988567609694797696">"مرتفع"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"لا يمكن فتح هذا التطبيق إلا في نافذة واحدة."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"الميزة مفعّلة"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"الميزة غير مفعّلة"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"الاختصار غير مفعَّل"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"الاختصار غير مفعَّل"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"الميزة مفعَّلة"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"الميزة غير مفعَّلة"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"الميزة مفعَّلة"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"الميزة غير مفعَّلة"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"تحوّل هذه الميزة الشاشات المضيئة إلى معتمة والشاشات المعتمة إلى مضيئة."</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"يمكنك تكبير الشاشة."</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"الميزة غير مفعَّلة"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"الخيار غير مفعَّل"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"الخيار مفعَّل"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"الميزة غير مفعَّلة"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"الميزة مفعَّلة"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"تم إعداد كلمة المرور."</string>
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 702d076..caca9e2 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"১ মিনিটৰ পাছত"</item>
     <item msgid="1574040255478150028">"৫ মিনিটৰ পাছত"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index abf5e53..fac7ee4 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"কেৱল প্ৰশাসক ব্যৱহাৰকাৰীসকলেহে বিকাশকৰ্তাৰ ছেটিং এক্সেছ কৰিব পাৰে।"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ছিষ্টেম"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"সেৱাত আছে"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"সেৱাত নাই"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"অব্যাহত ৰাখিবলৈ ওপৰলৈ ছোৱাইপ কৰক"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"এপ্‌টো ব্যৱহাৰ কৰি থাকিবলৈ আপোনাৰ ফ’নটো ভাঁজ কৰক আৰু ফ্ৰণ্ট ডিছপ্লে’ত ওপৰলৈ ছোৱাইপ কৰক বা স্ক্ৰীনখন লক হোৱাৰ বাবে কেইছেকেণ্ডমান অপেক্ষা কৰক"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"প্ৰাসংগিক"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ৰিংট’ন আৰু এলাৰ্ম"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"কল কৰি থকাৰ সময়ত অডিঅ’"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"মিডিয়া"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"জাননী আৰু ছিষ্টেমৰ অন্য ধ্বনি"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"মিডিয়া আৰু ছিষ্টেমৰ ধ্বনি"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"জাননী"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ডিফ’ল্ট হিচাপে ব্যক্তিগত এপ্‌সমূহে অডিঅ’ আউটপুট নিৰ্ধাৰণ কৰে"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"নামবিহীন ব্লুটুথ ডিভাইচ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"সন্ধান কৰি থকা হৈছে"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ব্লুটুথ অন কৰা হ’ল"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"আটাইবোৰ চাওক"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"আটাইবোৰ চাওক"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ষ্টাইলাছ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"টেইল বুটাম টিপা"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (কৰ্মস্থানৰ প্ৰ’ফাইল)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"এটা LE অডিঅ’ ষ্ট্ৰীমৰ সৈতে সংযোগ কৰক"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"নিকটৱৰ্তী অডিঅ’ ষ্ট্ৰীম"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"অডিঅ’ ষ্ট্ৰীম"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"কিউআৰ ক’ড ব্যৱহাৰ কৰি এটা অডিঅ’ ষ্ট্ৰীমৰ সৈতে সংযোগ কৰক"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"কোনো নিকটৱৰ্তী অডিঅ’ ষ্ট্ৰীম পোৱা নগ’ল।"</string>
     <string name="date_and_time" msgid="1788358029823431692">"তাৰিখ আৰু সময়"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"প্ৰক্সি"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"মচক"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"প্ৰতিটো এপৰ বাবে এটা ভাষা বাছনি কৰিবলৈ এপৰ ভাষাৰ ছেটিঙলৈ যাওক।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"এপৰ ভাষাসমূহৰ বিষয়ে অধিক জানক"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ছিষ্টেমৰ ভাষা %sলৈ সলনি কৰিবনে?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"অগ্ৰাধিকাৰপ্ৰাপ্ত ভাষাসমূহত %s যোগ দিবনে?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"এইটোৱে এপ্‌ আৰু ৱেবছাইটসমূক জানিবলৈ দিয়ে যে আপুনিও এই ভাষাটোক অগ্ৰাধিকাৰ দিয়ে।"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"আপোনাৰ ডিভাইচৰ ছেটিং আৰু আঞ্চলিক অগ্ৰাধিকাৰসমূহ সলনি হ’ব।"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"সলনি কৰক"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s উপলব্ধ নহয়"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"শনিবাৰ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"যদি কোনো এপে আঞ্চলিক অগ্ৰাধিকাৰ সমৰ্থন নকৰে, এপ্‌টোৱে নিজৰ ডিফ’ল্ট স্থানীয় ছেটিং ব্যৱহাৰ কৰিব।"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ভাষাৰ অগ্ৰাধিকাৰৰ বিষয়ে অধিক জানক।"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"অতিৰিক্ত অগ্ৰাধিকাৰসমূহ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"সম্বোধনৰ চৰ্তাৱলী"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"আপোনাক কেনেকৈ সম্বোধন কৰাটো বিচাৰে সেয়া ছেট কৰক"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"এপ্‌সমূহে আপোনাক কেনেকৈ সম্বোধন কৰে সেইটো ব্যক্তিগতকৰণ কৰিবলৈ আপোনাৰ সম্বোধন সম্পৰ্কীয় শব্দসমূহ ব্যৱহাৰ কৰিব পাৰে।"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"নিৰ্দিষ্ট কৰা হোৱা নাই"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"নাৰী-বিষয়ক"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"পুৰুষ-বিষয়ক"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"নিৰপেক্ষ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{বাছনি কৰা ভাষাটো আঁতৰাবনে?}one{বাছনি কৰা ভাষাসমূহ আঁতৰাবনে?}other{বাছনি কৰা ভাষাসমূহ আঁতৰাবনে?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"পাঠ অইন এটা ভাষাত দেখুওৱা হ\'ব।"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"আটাইবোৰ ভাষা আঁতৰাব নোৱাৰি"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"অৱস্থান"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"অৱস্থান ব্যৱহাৰ কৰক"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"অফ আছে"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{অন আছে - # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}one{অন আছে - # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}other{অন আছে - # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}one{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}other{অন আছে / # টা এপে অৱস্থান এক্সেছ কৰিব পাৰে}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ল’ড হৈ আছে…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"নিকটৱৰ্তী ডিভাইচৰ সৈতে যোগাযোগ কৰিব পৰাৰ অনুমতি থকা এপ্‌সমূহে সংযুক্ত হৈ থকা ডিভাইচৰ আপেক্ষিক স্থান নিৰ্ধাৰণ কৰিব পাৰে।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"এপ্‌ আৰু সেৱাৰ বাবে অৱস্থানৰ এক্সেছ অফ কৰা আছে। আপুনি কোনো জৰুৰীকালীন নম্বৰলৈ কল কৰিলে অথবা বাৰ্তা পঠিয়ালে আপোনাৰ ডিভাইচৰ অৱস্থান তথাপি জৰুৰীকালীন পৰিস্থিতিত সঁহাৰি দিয়া লোকলৈ পঠিওৱা হ’ব পাৰে।"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"অৱস্থানৰ ছেটিঙৰ বিষয়ে অধিক জানক।"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"অৱস্থানৰ ছেটিঙৰ বিষয়ে অধিক জানক"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"অৱস্থানৰ এক্সেছ সলাবলৈ, ছেটিং &gt; সুৰক্ষা আৰু গোপনীয়তা &gt; গোপনীয়তাৰ নিয়ন্ত্ৰণলৈ যাওক"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"সকলোতকৈ ভাল ফলাফল পাবলৈ, Made for Google বুলি প্ৰমাণিত এটা স্ক্ৰীনৰ সুৰক্ষা প্ৰদানকাৰী ব্যৱহাৰ কৰক। অন্য স্ক্ৰীনৰ সুৰক্ষা প্ৰদানকাৰীৰ সৈতে আপোনাৰ শিশুৰ ফিংগাৰপ্ৰিণ্টে কাম নকৰিব পাৰে।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধা"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"আপুনি ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিলে, আপুনি মুখ ঢকা বন্ধনী পিন্ধি থাকিলে অথবা কোনো অন্ধকাৰ ঠাইত থাকিলে আপোনাৰ ফ’নটোৱে আপোনাৰ ফিংগাৰপ্ৰিণ্ট বিচাৰিব।\n\nআপোনাৰ মুখাৱয়ব অথবা ফিংগাৰপ্ৰিণ্ট চিনাক্ত কৰিব নোৱাৰিলে আপুনি আপোনাৰ ঘড়ীটোৰ জৰিয়তে আনলক কৰিব পাৰিব।"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"আপোনাৰ ফিংগাৰপ্ৰিণ্ট চিনাক্ত কৰিব নোৱাৰিলে আপুনি আপোনাৰ ঘড়ীটোৰ জৰিয়তে আনলক কৰিব পাৰিব।"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"আপোনাৰ মুখাৱয়ব চিনাক্ত কৰিব নোৱাৰিলে আপুনি আপোনাৰ ঘড়ীটোৰ জৰিয়তে আনলক কৰিব পাৰিব।"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"আপুনি ফেচ আনলক আৰু ফিংগাৰপ্ৰিণ্ট আনলক ছেট আপ কৰিলে, আপুনি মুখা পিন্ধি থাকিলে অথবা কোনো অন্ধকাৰ ঠাইত থাকিলে আপোনাৰ ফ’নটোৱে আপোনাৰ ফিংগাৰপ্ৰিণ্ট বিচাৰিব।\n\nঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো আপোনাৰ ফ’নটো আনলক কৰাৰ অন্য এটা বিশ্বাসযোগ্য উপায়, যেনে, যেতিয়া আপোনাৰ আঙুলিবোৰ আঙুলিকেইটা তিতি থাকিলে অথবা আপোনাৰ মুখাৱয়ব চিনাক্ত কৰিব নোৱাৰিলে।"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো আপোনাৰ ফ’নটো আনলক কৰাৰ অন্য এটা বিশ্বাসযোগ্য উপায়, যেনে, যেতিয়া আপোনাৰ ফিংগাৰপ্ৰিণ্ট চিনাক্ত কৰিব নোৱাৰিলে।"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো আপোনাৰ ফ’নটো আনলক কৰাৰ অন্য এটা বিশ্বাসযোগ্য উপায়, যেনে, যেতিয়া আপোনাৰ মুখাৱয়ব চিনাক্ত কৰিব নোৱাৰিলে।"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"এয়া কৰিবলৈ ফিংগাৰপ্ৰিণ্ট অথবা ঘড়ী ব্যৱহাৰ কৰক"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"এয়া কৰিবলৈ মুখাৱয়ব অথবা ঘড়ী ব্যৱহাৰ কৰক"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"এয়া কৰিবলৈ মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট অথবা ঘড়ী ব্যৱহাৰ কৰক"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"মুখাৱয়ব আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticatorৰ দ্বাৰা দূৰৰ পৰা আনলক কৰা"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ঘড়ী যোগ দিয়া হৈছে"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"আপোনাৰ ঘড়ীটো ছেট আপ কৰক"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"এইটোৱে কেনেকৈ কাম কৰে"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"আপোনাৰ ঘড়ীটো আনলক কৰা অৱস্থাত, আপোনাৰ হাতৰ মণিবন্ধত থকাৰ লগতে এই ফ’নটোৰ ওচৰত থাকিবই লাগিব। আপোনাৰ ঘড়ীটো আপোনাৰ হাতৰ মণিবন্ধত থকাৰ সময়ত আপুনি সেইটো পুনৰ আনলক কৰিব নালাগে।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"এই ফ’নটো আনলক কৰিলে, আপুনি নিজৰ ঘড়ীত জাননী পাব। এইটো আপুনি নিবিচৰাকৈ আনলক কৰা হ’লে, পুনৰ ফ’নটো লক কৰিবলৈ জাননীত টিপক।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"নিয়ন্ত্ৰণ আপোনাৰ হাতত আছে"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"আপুনি ছেটিঙত যিকোনো সময়তে ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটোৰ পৰা আপোনাৰ ঘড়ীটো আঁতৰাব পাৰে"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"কোনো জাননীত টিপক"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"লক স্ক্ৰীনত ওপৰলৈ ছোৱাইপ কৰক"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"আপোনাৰ ঘড়ীটো বাছনি কৰক"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"উপলব্ধ ঘড়ী"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"বাতিল কৰক"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"নিশ্চিত কৰক"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"আপুনি সম্পূৰ্ণ সাজু!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"আপুনি এতিয়া লক স্ক্ৰীনত ওপৰলৈ ছোৱাইপ কৰোঁতে অথবা কোনো জাননীত টিপাৰ সময়ত আপুনি নিজৰ ফ’নটো আনলক কৰিবলৈ আপোনাৰ ঘড়ীটো ব্যৱহাৰ কৰিব পাৰে"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"কৰা হ’ল"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধা"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"আপুনি লক স্ক্ৰীনত ওপৰলৈ ছোৱাইপ কৰিলে অথবা কোনো জাননীত টিপিলে নিজৰ ফ’নটো আনলক কৰিবলৈ আপোনাৰ ঘড়ীটো ব্যৱহাৰ কৰিব পাৰে"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো ব্যৱহাৰ কৰিবলৈ, আপোনাৰ ঘড়ীটো আনলক কৰা অৱস্থাত হাতৰ মণিবন্ধত থকাৰ লগতে সেইটো ওচৰতে তথা ফ’নটোৰ সৈতে সংযুক্ত হৈ থাকিবই লাগিব। যদি সংযোগটো ব্যাহত হয়, আপুনি ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো ব্যৱহাৰ কৰিব পৰা হোৱাৰ পূৰ্বে ফ’নটো আনলক কৰিব লাগিব।\n\nমনত ৰাখিব:\nআপুনি এবাৰত কেৱল এটা ঘড়ী ছেট আপ কৰি ৰাখিব পাৰে। আন এটা ঘড়ী যোগ দিবলৈ, প্ৰথমে বৰ্তমানৰটো আঁতৰাওক।"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটোৰ বিষয়ে অধিক জানক"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ঘড়ী যোগ দিয়ক"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ঘড়ীটো আঁতৰাওক"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ফিংগাৰপ্ৰিণ্ট আৰু মুখাৱয়বৰ দ্বাৰা আনলক কৰাৰ সুবিধা"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"কাৰ্যৰ বাবে ফেচ আৰু ফিংগাৰপ্ৰিন্ট আনলক"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ছেটআপৰ আৱশ্যক"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"সুৰক্ষা"</string>
     <string name="privacy_header" msgid="5526002421324257007">"গোপনীয়তা"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"কৰ্মস্থানৰ প্ৰ’ফাইল"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ব্যক্তিগত স্পে’চ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ব্যক্তিগত এপ্‌ লক কৰি লুকুৱাই ৰাখক"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ব্যক্তিগত এপ্‌সমূহ আপুনি লুকুৱাই ৰাখিব বা লক কৰিব পৰা এটা পৃথক স্পেচত ৰাখক"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ব্যক্তিগত স্পে’চৰ লক"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"আপুনি আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ ব্যৱহাৰ কৰা একেটা পদ্ধতি ব্যৱহাৰ কৰি ব্যক্তিগত স্পে’চ আনলক কৰিব পাৰে অথবা অন্য কোনো লক বাছনি কৰিব পাৰে"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ডিভাইচৰ স্ক্ৰীন লক ব্যৱহাৰ কৰক"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"মুখাৱয়ব আৰু ফিংগাৰপ্ৰিণ্টৰ দ্বাৰা আনলক কৰা"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ফিংগাৰপ্ৰিণ্ট আনলক"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ফে’চ আনলক"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ছেট আপ কৰিবলৈ টিপক"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"প্ৰাইভেট স্পেচৰ বাবে ফিংগাৰপ্ৰিণ্ট আনলক"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"প্ৰাইভেট স্পেচৰ বাবে ফে’চ আনলক"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"আনলক কৰাৰ উপায়"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ডিভাইচৰ স্ক্ৰীন লকৰ দৰে একেই"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ব্যক্তিগত স্পে’চৰ বাবে নতুন লক বাছনি কৰিবনে?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"স্বয়ংক্ৰিয়ভাৱে লক কৰক"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"প্ৰাইভেট স্পেচ স্বয়ংক্ৰিয়ভাৱে লক কৰক"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"যদি আপুনি কিছু সময়ৰ বাবে আপোনাৰ ডিভাইচ ব্যৱহাৰ কৰা নাই, তেন্তে আপুনি আপোনাৰ প্ৰাইভেট স্পেচ স্বয়ংক্ৰিয়ভাৱে লক কৰিব পাৰে"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"প্ৰতিবাৰ ডিভাইচটো লক হ’লে"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"৫ মিনিটৰ নিষ্ক্ৰিয়তাৰ পাছত"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"কেতিয়াও নহয়"</string>
+    <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_deleted" msgid="7825768516955610897">"ব্যক্তিগত স্পে’চ সফলতাৰে মচা হৈছে"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ব্যক্তিগত স্পে’চ মচিব পৰা নগ’ল"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"প্ৰাইভেট স্পেচ আনলক কৰা হৈছে"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"এটা স্ক্ৰীন লক ছেট কৰক"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"আপোনাৰ ব্যক্তিগত স্পে’চ ব্যৱহাৰ কৰিবলৈ ডিভাইচত এটা স্ক্ৰীন লক ছেট কৰক"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"স্ক্ৰীন লক ছেট কৰক"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"বাতিল কৰক"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"বাতিল কৰক"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ছেট আপ কৰক"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ব্যক্তিগত স্পে’চ এটা ছেট আপ কৰক"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ব্যক্তিগত এপ্‌সমূহ আপুনি লুকুৱাই ৰাখিব অথবা লক কৰিব পৰা এটা পৃথক স্পেচত ৰাখক"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ই কেনেকৈ কাম কৰে"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"আপুনি আপোনাৰ এপৰ সূচীখনৰ একেবাৰে তলৰ পৰা আপোনাৰ ব্যক্তিগত স্পে’চ এক্সেছ কৰিব পাৰে"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ব্যক্তিগত স্পে’চত থকা এপ্ এটা লকেৰে সুৰক্ষিত কৰা হয়"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"আপোনাৰ ব্যক্তিগত স্পে’চ লক হৈ থাকিলে তাত থকা এপৰ জাননী লুকুওৱা হয়"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"আপোনাৰ ব্যক্তিগত স্পে’চ লক কৰি থোৱা অৱস্থাত আপোনাৰ ব্যক্তিগত স্পে’চত এপ্‌সমূহ অনুমতিৰ পৰিচালক, গোপনীয়তাৰ ডেশ্বব’ৰ্ড আৰু অন্য ছেটিঙত প্ৰদৰ্শিত নহ’ব।\n\nআপোনাৰ ব্যক্তিগত স্পে’চ এটা নতুন ডিভাইচলৈ নিব নোৱাৰি। আপুনি অন্য এটা ডিভাইচত ব্যক্তিগত স্পে’চ ব্যৱহাৰ কৰিব বিচাৰিলে আপুনি অন্য এটা ব্যক্তিগত স্পে’চ ছেট আপ কৰিব লাগিব।\n\nআপোনাৰ ডিভাইচটো কোনো কম্পিউটাৰৰ সৈতে সংযোগ কৰা অথবা আপোনাৰ ডিভাইচত ক্ষতিকাৰক এপ্ ইনষ্টল কৰা যিকোনো লোকে আপোনাৰ ব্যক্তিগত স্পে’চ এক্সেছ কৰিব পাৰিব পাৰে।"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ব্যক্তিগত স্পে’চ ছেট আপ কৰি থকা হৈছে…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ব্যক্তিগত স্পে’চ লক হৈ থাকিলে তাত থকা এপৰ জাননী লুকুওৱা হয়"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"প্ৰাইভেট স্পেচৰ এপৰ পৰা ফট’ অথবা ফাইল শ্বেয়াৰ কৰিবলৈ প্ৰাইভেট স্পেচ আনলক কৰক"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"কিছুমান এপ ইতিমধ্যে আপোনাৰ ব্যক্তিগত স্পে’চত ইনষ্টল কৰা হৈছে"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ব্যক্তিগত স্পে’চ ছেট আপ কৰিব পৰা নগ’ল"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"পুনৰ চেষ্টা কৰক"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ব্যক্তিগত স্পে’চ আনলক কৰিবলৈ স্ক্ৰীন লক ব্যৱহাৰ কৰিবনে?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"আপুনি আপোনাৰ ডিভাইচটো আনলক কৰিবলৈ ব্যৱহাৰ কৰা একেটা পদ্ধতি ব্যৱহাৰ কৰি আপোনাৰ ব্যক্তিগত স্পে’চ আনলক কৰিব পাৰে অথবা অন্য কোনো লক বাছনি কৰিব পাৰে"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"স্ক্ৰীন লক ব্যৱহাৰ কৰক"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"নতুন লক বাছনি কৰক"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"সকলো সাজু!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"আপোনাৰ ব্যক্তিগত স্পে’চ এক্সেছ কৰিবলৈ, আপোনাৰ এপৰ সূচীখনলৈ গৈ তাৰ পাছত তললৈ স্ক্ৰ’ল কৰক"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"কৰা হ’ল"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"ব্যক্তিগত স্পে’চ বিচাৰিবলৈ তললৈ স্ক্ৰ’ল কৰক"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"আপোনাৰ ব্যক্তিগত স্পে’চৰ বাবে এটা লক বাছনি কৰক"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"আপুনি আপোনাৰ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰি আপোনাৰ ব্যক্তিগত স্পে’চ আনলক কৰিব পাৰে। সুৰক্ষাৰ বাবে, এই বিকল্পটোক এটা বেকআপ লকৰ আৱশ্যক।"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"প্ৰাইভেট স্পেচৰ বাবে এটা পিন ছেট কৰক"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"প্ৰাইভেট স্পেচৰ বাবে এটা পাছৱৰ্ড ছেট কৰক"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"প্ৰাইভেট স্পেচৰ বাবে এটা আৰ্হি ছেট কৰক"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ব্যক্তিগত স্পে’চ দেখুৱাবলৈ (চূড়ান্ত UX নহয়)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Settings এপ্‌টো খোলক"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"সুৰক্ষা আৰু গোপনীয়তা &gt; ব্যক্তিগত স্পে’চ &gt; লক কৰা থাকিলে ব্যক্তিগত স্পে’চ লুকুৱাওকত টিপক"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"লক কৰা থাকিলে ব্যক্তিগত স্পে’চ লুকুৱাওক ট’গল অফ কৰক"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googlerসকলৰ বাবে টোকা: এই সুবিধাটোৰ এতিয়াও বিকাশ কৰি থকা হৈছে"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"আপুনি এই পাছকীটো অন্য ডিভাইচত টাইপ কৰিবলগীয়াও হ’ব পাৰে৷"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"সংগতিপূৰ্ণ ছেটৰ সৈতে পেয়াৰ কৰিবলৈ নিশ্চিত কৰক"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"আপোনাৰ সম্পৰ্কসূচী আৰু কলৰ ইতিহাস এক্সেছ কৰিবলৈ অনুমতি দিয়ক"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"লগতে আপোনাৰ সম্পৰ্কসমূহ আৰু কলৰ ইতিহাস এক্সেছ কৰিবলৈ অনুমতি দিয়ক"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"এই তথ্য কল ঘোষণা আৰু অধিক কাৰ্যৰ বাবে ব্যৱহাৰ কৰা হ’ব"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিব পৰা নগ\'ল।"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"উপলব্ধ ডিভাইচসমূ্হ"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"এয়াৰপ্লেইন ম\'ডত আছে"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ৰাজহুৱা নেটৱৰ্কসমূহৰ বাবে জাননী দিয়ক"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"এটা উচ্চ গুণমানৰ ৰাজহুৱা নেটৱৰ্ক উপলব্ধ হ\'লে মোক জনাওক"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP নেটৱৰ্কক অনুমতি দিয়ক"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP হৈছে এটা অধিক পুৰণি সুৰক্ষাৰ প্ৰট’কল, যিটো কম সুৰক্ষিত"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"আপোনাৰ বাহকে WEP নেটৱৰ্কক অনুমতি নিদিয়ে, কাৰণ সেইসমূহ কম সুৰক্ষিত"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"ৱাই-ফাই স্বয়ংক্ৰিয়ভাৱে অন কৰক"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"ছেভ কৰি থোৱা উচ্চ মানৰ সংৰক্ষিত নেটৱৰ্ক পালেহে ৱাই-ফাই  অন হ\'ব, যেনে আপোনাৰ ঘৰৰ নেটৱৰ্ক"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"উপলব্ধ নহয় কাৰণ অৱস্থান সেৱা অফ কৰি থোৱা হৈছে। "<annotation id="link">"অৱস্থান"</annotation>" অন কৰক।"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ৱাই-ফাই স্কেনিং সুবিধাই ৱাই-ফাই অফ থকা অৱস্থাতো যিকোনো সময়ত এপ্ আৰু সেৱাসমূহক ৱাই-ফাই নেটৱৰ্ক স্কেন কৰিবলৈ দিয়ে। উদাহৰণস্বৰূপে, ইয়াক অৱস্থান আধাৰিত সুবিধা আৰু সেৱাসমূহক উন্নত কৰিবলৈ ব্যৱহাৰ কৰিব পাৰি।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"অন কৰক"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"ৱাই-ফাই স্কেনিং অন আছে"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"এই নেটৱৰ্কটোৱে এটা কম সুৰক্ষিত অধিক পুৰণি সুৰক্ষাৰ প্ৰট’কল ব্যৱহাৰ কৰে"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> অৱৰোধ কৰা হৈছে"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"এই নেটৱৰ্কটোৱে এটা কম সুৰক্ষিত অধিক পুৰণি WEP নামৰ সুৰক্ষাৰ প্ৰট’কল ব্যৱহাৰ কৰে। তথাপি সংযোগ কৰিবলৈ, আপুনি WEP নেটৱৰ্কক অনুমতি দিব পাৰে।"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"আপোনাৰ বাহকে আপোনাক এই নেটৱৰ্কটোৰ সৈতে সংযোগ কৰিবলৈ নিদিয়ে কাৰণ ই এটা কম সুৰক্ষিত অধিক পুৰণি সুৰক্ষাৰ প্ৰট’কল ব্যৱহাৰ কৰে"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP অনুমতি দিয়ক"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"বন্ধ কৰক"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"উচ্চখাপৰ বিকল্প"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ড্ৰ’প ডাউন তালিকাৰ উন্নত বিকল্পসমূহ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"বিস্তাৰিত কৰক"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"বাই-ফাইত থাকক"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"আকৌ কেতিয়াও নেদেখুৱাব"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"সংযোগ কৰক"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"ৱাই-ফাই অন কৰা হ’ল"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰা হৈছে"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰি থকা হৈছে"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"সংযোগ কৰি থকা হৈছে…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"নেটৱৰ্কৰ সৈতে সংযোগ কৰিব পৰা নগ\'ল"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"নেটৱৰ্ক পৰিসৰত নাই"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"পাহৰক"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"সংশোধন কৰক"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"নেটৱৰ্ক পাহৰিব পৰা নগ\'ল"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ছেভ কৰক"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"নেটৱৰ্ক ছেভ কৰাত ব্যৰ্থ হ’ল"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"বাতিল কৰক"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"ৱাই-ফাই"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ম’বাইল ডেটা"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ইথাৰনেট"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ চাৰ্জ হৈ আছে"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ চাৰ্জ হৈ আছে"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"হটস্পটৰ সৈতে সংযোগ"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"সংযোগৰ ক্ষমতা"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ছেভ কৰি ৰখা নেটৱৰ্কসমূহ"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"কোনো পাছৱৰ্ড ছেট কৰা হোৱা নাই"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"হটস্পটৰ নাম"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"হটস্পটৰ পাছৱৰ্ড"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"এপি বেণ্ড"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"স্বয়ংক্ৰিয়ভাৱে হটস্পট  অফ কৰক"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"যেতিয়া কোনো ডিভাইচ সংযোজিত হৈ নাথাকে"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"সমিল হোৱাটো বৃদ্ধি কৰক"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"গে’মৰ বাবে ডিফ’ল্ট ফ্ৰে’ম ৰে’ট অক্ষম কৰক"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"গে’মৰ বাবে <xliff:g id="FRAME_RATE">%1$d</xliff:g> হাৰ্টজত সৰ্বাধিক ফ্ৰে’ম ৰে’ট সীমিত কৰাটো অক্ষম কৰক।"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"স্ক্ৰীনৰ সতর্কতাই কোনোবাই স্ক্ৰীনখন চাই আছে নেকি জানিবলৈ সন্মুখৰ কেমেৰা ব্যৱহাৰ কৰে। এই সুবিধাটোৱে ডিভাইচত কাম কৰে আৰু প্ৰতিচ্ছবিবোৰ কেতিয়াও ষ্ট’ৰ কৰা নহয় বা Googleলৈ পঠিওৱা নহয়।"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"স্ক্ৰীনৰ সতর্কতা অন কৰক"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"স্ক্ৰীনখন চাই থকা অৱস্থাত সেইখন অন কৰি ৰাখক"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"স্ক্ৰীন টাইমআউট দীঘলীয়া হ’লে অধিক বেটাৰীৰ ব্যৱহাৰ হ’ব।"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"কেমেৰাটো লক আছে"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"মুখাৱয়ব চিনাক্তকৰণৰ বাবে কেমেৰাটো আনলক কৰিবই লাগিব"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"স্ক্ৰীনৰ সতর্কতাৰ বাবে কেমেৰা আনলক কৰি ৰাখিবই লাগিব"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ছিমৰ শ্ল’ট <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ছিমৰ শ্ল’ট <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (প্ৰাথমিক)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"চাবলৈ ছেভ কৰি থোৱা নেটৱর্ক বাছনি কৰক"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"নিম্নতম"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"পিআৰএল সংস্কৰণ"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"বেটাৰীৰ পৰিমাণ"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"সম্প্ৰদায়ৰ সৈতে জড়িত"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"সম্প্ৰদায়ৰ সৈতে জড়িত ছেটিং"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"ছেভ কৰক"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"বাতিল কৰক"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"নামৰ ঠাইখন খালী থাকিব নোৱাৰে"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"এপিএন খালী থাকিব নোৱাৰে।"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"এমচিচি ফিল্ড ৩টা অংকৰ হ\'বই লাগিব।"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ফিল্ড ২ বা ৩ টা সংখ্যাৰ হ\'ব লাগিব।"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"বাহকে %s প্ৰকাৰৰ এপিএনবোৰ যোগ কৰিব নিদিয়ে।"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ক্ষেত্ৰখন মান্য হ’বই লাগিব।"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ডিফ’ল্ট এপিএন ছেটিং পুনঃস্থাপন কৰি থকা হৈছে।"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ডিফ\'ল্টলৈ ৰিছেট কৰক"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ডিফ’ল্ট এপিএন ছেটিং ৰিছেট কৰা সম্পূৰ্ণ হৈছে৷"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ৰিছেট কৰক"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ব্লুটুথ আৰু ৱাই-ফাই ৰিছেট কৰা হৈছে"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ই-ছিমসমূহ মচক"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ই কোনো ম’বাইল সেৱাৰ আঁচনি বাতিল নকৰে। সলনি কৰা ছিম ডাউনল’ড কৰিবলৈ আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ছেটিং ৰিছেট কৰক"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"নেটৱৰ্কৰ আটাইবোৰ ছেটিং ৰিছেট কৰিবনে? আপুনি এই কাৰ্যটো আনডু কৰিব নোৱাৰিব।"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"সকলো নেটৱৰ্ক ছেটিংসমূহ ৰিছেট কৰি ই-ছিম মচিবনে? আপুনি এই কাৰ্য আনডু কৰিব নোৱাৰে।"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ৰিছেট কৰিবনে?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"এই ব্যৱহাৰকাৰীৰ বাবে নেটৱৰ্ক ৰিছেট উপলব্ধ নহয়"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"নেটৱৰ্ক ছেটিং ৰিছেট কৰা হ’ল"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"ছিমবোৰ আঁতৰাব পৰা নগ’ল"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ই-ছিম কোনো অজ্ঞাত আসোঁৱাহৰ বাবে মচিব নোৱাৰি।\n\nআপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰি আকৌ চেষ্টা কৰক।"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"আটাইবোৰ ডেটা মচক (ফেক্টৰী ৰিছেট)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"আটাইবোৰ ডেটা মচক (ফেক্টৰী ৰিছেট)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"সংগীত"</li>\n<li>"ফট’"</li>\n<li>"অন্য ব্যৱহাৰকাৰীৰ ডেটা"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"ই-ছিমসমূহh"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"এইটোৱে আপোনাৰ ম’বাইল সেৱাৰ আঁচনি বাতিল নকৰে।"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"আপোনাৰ আটাইবোৰ ব্যক্তিগত তথ্য আৰু ডাউনল’ড কৰা এপ্‌ মচা হ’ব। আপুনি এই কাৰ্য আনডু কৰিব নোৱাৰে।"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ডাউনল’ড কৰা এপ্‌সমূহ আৰু ছিমকে ধৰি আপোনাৰ আটাইবোৰ ব্যক্তিগত তথ্য মচা হ’ব। আপুনি এই কাৰ্য আনডু কৰিব নোৱাৰে।"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"আটাইবোৰ ডেটা মচিবনে?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"এই ব্যৱহাৰকাৰীগৰাকীৰ বাবে ফেক্টৰী ৰিছেট সুবিধাটো উপলব্ধ নহয়"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"মচি থকা হৈছে"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"হটস্পট, ইউএছবি, ব্লুটুথ, ইথাৰনেট"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"অন্য ডিভাইচৰ সৈতে ইণ্টাৰনেট শ্বেয়াৰ কৰা হোৱা নাই"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"অফ আছে"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"টিথাৰিং কৰি থকা হৈছে"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ৱাই-ফাই হ\'টস্প\'ট ব্যৱহাৰ নকৰিব"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"কেৱল ইউএছবিৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"কেৱল ব্লুটুথৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"কেৱল ইথাৰনেটৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"কেৱল ব্লুটুথ আৰু ইউএছবিৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"কেৱল ইউএছবি আৰু ইথাৰনেটৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"কেৱল ব্লুটুথ আৰু ইথাৰনেটৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"কেৱল ইউএছবি, ব্লুটুথ আৰু ইথাৰনেটৰ জৰিয়তে ইণ্টাৰনেট শ্বেয়াৰ কৰক"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"ইউএছবি টেডাৰিং"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ব্লুটুথ টেডাৰিং"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ইথাৰনেট টে\'ডাৰিং"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"আপোনাৰ ৱাই-ফাই অথবা ম’বাইল ডেটাৰ জৰিয়তে অন্য ডিভাইচসমূহক ইণ্টাৰনেট প্ৰদান কৰিবলৈ হটস্পট আৰু টে\'ডাৰিং ব্যৱহাৰ কৰক। নিকটৱৰ্তী ডিভাইচসমূহৰ সৈতে সমল শ্বেয়াৰ কৰিবলৈ এপ্‌সমূহেও এটা হটস্পট সৃষ্টি কৰিব পাৰে।"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"সহায়"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"ম’বাইল নেটৱৰ্ক"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ম’বাইল আঁচনি"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"এছএমএছ এপ্"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"এছএমএছ এপ্ সলনি কৰিবনে?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"আপোনাৰ এছএমএছ এপ্ হিচাপে <xliff:g id="CURRENT_APP">%2$s</xliff:g>ৰ পৰিৱৰ্তে <xliff:g id="NEW_APP">%1$s</xliff:g> ব্যৱহাৰ কৰিবনে?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ৱাই-ফাই সহায়কক সলনি কৰিবনে?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"নেটৱৰ্ক সংযোগ পৰিচালনাৰ কাৰণে <xliff:g id="CURRENT_APP">%2$s</xliff:g>ৰ সলনি <xliff:g id="NEW_APP">%1$s</xliff:g>ক ব্যৱহাৰ কৰিব নেকি?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"আপোনাৰ নেটৱৰ্কৰ সংযোগসমূহ পৰিচালনা কৰিবলৈ <xliff:g id="NEW_APP">%s</xliff:g>ক ব্যৱহাৰ কৰিবনে?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"অজ্ঞাত ছিম অপাৰেটৰ"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>ৰ কোনো জ্ঞাত প্ৰ\'ভিজনিং ৱেবছাইট নাই"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"অনুগ্ৰহ কৰি ছিম কাৰ্ড সুমুৱাওক আৰু ৰিষ্টাৰ্ট কৰক"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"অনুগ্ৰহ কৰি ইণ্টানেটত সংযোগ কৰক"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"শেহতীয়া অৱস্থানৰ অনুৰোধ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"কৰ্মস্থানৰ প্ৰ’ফাইলৰ বাবে অৱস্থান"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"এপৰ অৱস্থানৰ অনুমতি"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"এক্সেছ আঁতৰাওক"</string>
     <string name="controls_label" msgid="8671492254263626383">"নিয়ন্ত্ৰণ"</string>
     <string name="force_stop" msgid="2681771622136916280">"বলেৰে ৰখাওক"</string>
+    <string name="archive" msgid="9074663845068632127">"আৰ্কাইভ কৰক"</string>
+    <string name="restore" msgid="7622486640713967157">"পুনঃস্থাপন কৰক"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"মুঠ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"এপৰ আকাৰ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"ইউএছবি ষ্ট’ৰেজ এপ্"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"পেকেজৰ আকাৰ গণনা কৰিব পৰা নগ\'ল।"</string>
     <string name="version_text" msgid="7628938665256107608">"সংস্কৰণ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"স্থানান্তৰ কৰক"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"আৰ্কাইভ কৰাটো বিফল হৈছে"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"আৰ্কাইভ কৰা <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"পুনঃস্থাপন কৰিব পৰা নগ’ল"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> পুনঃস্থাপন কৰি থকা হৈছে"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"অন্য এটা স্থানান্তৰণ কাৰ্য ইতিমধ্যে চলি আছে৷"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ষ্ট’ৰেজত পৰ্যাপ্ত খালী ঠাই নাই।"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"এপ্‌টোৰ অস্তিত্ব নাই"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"উপলব্ধ-অন-স্ক্ৰীন কীব’ৰ্ড"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"অন-স্ক্ৰীন কীব’ৰ্ডসমূহ পৰিচালনা কৰক"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"বিকল্পসমূহ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"সাধ্য সুবিধা"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"কায়িক কীব\'ৰ্ড"</string>
     <string name="show_ime" msgid="4334255501724746849">"অন-স্ক্ৰীন কীব’ৰ্ড ব্যৱহাৰ কৰক"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"কায়িক কীব’ৰ্ড সক্ৰিয় হৈ থাকিলে ইয়াক স্ক্ৰীনত ৰাখিব"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"বাউন্স কী"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"কায়িক কীব’ৰ্ডৰ সাধ্য সুবিধাৰ বাবে বাউন্স কী সক্ষম কৰক"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ষ্টিকী কী"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"কায়িক কীব’ৰ্ডৰ সাধ্য সুবিধাৰ বাবে ষ্টিকী কী সক্ষম কৰক"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"কীব’ৰ্ডৰ শ্বৰ্টকাটসমূহ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"শ্বৰ্টকাটৰ সূচী দেখুৱাওক"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"কৰ্মস্থানৰ প্ৰ’ফাইল আৰু সঁজুলি"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ব্যৱহাৰৰ সময় অনুসৰি সজাওক"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"শেষবাৰ ব্যৱহাৰ কৰা অনুসৰি সজাওক"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"এপৰ নাম অনুসৰি সজাওক"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"অন্তিমবাৰ ব্যৱহাৰ হৈছে"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"অন্তিমবাৰ ব্যৱহাৰ কৰাৰ সময়"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"কেতিয়াও খোলা নাই"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ব্যৱহাৰৰ সময়"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"সাধ্য সুবিধা"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"দিব্যাংগসকলৰ বাবে থকা সুবিধাসমূহৰ ছেটিং"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"যি হ’লেও অব্যাহত ৰাখক"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"বাতিল কৰক"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"বিবৰ্ধন কৰাৰ ছেটিং"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"তিনিবাৰ টুকুৰিয়াই বিবৰ্ধন কৰক"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"শ্বৰ্টকাটৰ দ্বাৰা বিৱৰ্ধিত কৰক"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"শ্বৰ্টকাটৰ দ্বাৰা আৰু তিনিবাৰ টিপি বিৱৰ্ধিত কৰক"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>ৰ বিষয়ে"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"খুলিবলৈ দুটা আঙুলিৰে স্ক্ৰীনত দুবাৰ টিপা"</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="860548190334486449">"বিবৰ্ধন আৰম্ভ কৰিবলৈ আৰু বন্ধ কৰিবলৈ আপোনাৰ স্ক্ৰীনখনৰ যিকোনো অংশত দুটা আঙুলিৰে দুবাৰ টিপক।"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"কোনো এটা সাধ্য-সুবিধা ব্যৱহাৰ কৰিবলৈ, স্ক্রীনখনৰ একেবাৰে তলৰ পৰা ওপৰলৈ ৩ টা আঙুলিৰে ছোৱাইপ কৰক।\n\nসুবিধাসমূহ সালসলনিকৈ ব্যৱহাৰ কৰিবলৈ ৩ টা আঙুলিৰে ওপৰলৈ ছোৱাইপ কৰি ধৰি ৰাখক।"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"বুজি পালোঁ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"সাধ্য-সুবিধা বুটামৰ ছেটিং"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"বুটামৰ ছেটিং"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g>ৰ শ্বৰ্টকাট"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"সাধ্য-সুবিধাৰ বুটাম"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"সাধ্য-সুবিধাৰ নিৰ্দেশ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"দুটা আঙুলিৰে স্ক্ৰীনত দুবাৰ টিপা"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"দুটা আঙুলিৰে স্ক্ৰীনত দুবাৰ টিপা"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"দুটা আঙুলিৰে স্ক্ৰীনখনত খৰতকীয়াকৈ {0,number,integer} বাৰ টিপক"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"স্ক্রীনখনত তিনিবাৰ টিপক"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্ৰীনখনত ক্ষিপ্ৰতাৰে {0,number,integer} বাৰ টিপক। এই শ্বৰ্টকাটটোৱে আপোনাৰ ডিভাইচটো লেহেমীয়া কৰিব পাৰে"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"সাধ্য সুবিধাৰ বুটাম আৰু নিৰ্দেশৰ বিষয়ে অধিক জানক"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"সাধ্য-সুবিধাৰ বুটামটো ব্যৱহাৰ কৰি। ৩ টা বুটামেৰে কৰা নেভিগেশ্বনৰ বাবে নিৰ্দেশটো উপলব্ধ নহয়।"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"সাধ্য সুবিধাসমূহ ক্ষিপ্ৰতাৰে এক্সেছ কৰক"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"আৰম্ভ কৰিবলৈ"</b>\n"১) সাধ্য সুবিধাৰ ছেটিঙলৈ যাওক\n২) এটা সুবিধা বাছনি কৰক আৰু শ্বৰ্টকাটটোত টিপক\n৩) আপুনি এই সুবিধাটো এক্সেছ কৰিবলৈ এটা বুটাম নে আঙুলিৰ স্পৰ্শৰে নিৰ্দেশ ব্যৱহাৰ কৰিব বিচাৰে সেয়া বাছনি কৰক"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"আৰম্ভ কৰিবলৈ"</b>\n"১) সাধ্য সুবিধাৰ ছেটিঙলৈ যাওক\n২) এটা সুবিধা বাছনি কৰক আৰু শ্বৰ্টকাটটোত টিপক\n৩) সুবিধাটো এক্সেছ কৰিবলৈ বুটামটো বাছনি কৰক"</string>
+    <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_size_title" msgid="5785110470538960881">"আকাৰ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"পাৱাৰ বুটাম টিপিলে কল সমাপ্ত হ\'ব"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"মাউছৰ পইণ্টাৰ ডাঙৰ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"মাউছৰ পইণ্টাৰটো অধিক লক্ষণীয় কৰি তোলক"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"আটাইবোৰ এপৰ থীম গাঢ় ৰঙৰ কৰক"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"এপ্‌সমূহৰ নিজা গাঢ় ৰঙৰ থীমৰ অবিহনে সেইসমূহত প্ৰয়োগ হয়। কিছুমান এপৰ ডিছপ্লে’ সম্পৰ্কীয় সমস্যা থাকিব পাৰে, যেনে, ওলোটা কৰা ৰং।"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"এনিমেশ্বন আঁতৰাওক"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"স্ক্ৰীনখনত গতিবিধি হ্ৰাস কৰক"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ম’ন’ অডিঅ’"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ই আপুনি কোনো এপ্ বা হার্ডৱেৰ ছেন্সৰৰ সৈতে কৰা ভাব-বিনিময় আৰু আপোনাৰ হৈ অন্য কোনো লোকে এপৰ সৈতে কৰা ভাব-বিনিময় ট্ৰেক কৰিব পাৰে।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিয়ক"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"অস্বীকাৰ কৰক"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"বন্ধ কৰক"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"বাতিল কৰক"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> বন্ধ কৰিবনে?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> টিপিলে <xliff:g id="SERVICE">%2$s</xliff:g> বন্ধ হ\'ব।"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"অফ কৰক"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"অন ৰাখক"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> অফ কৰিবনে?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"কোনো সেৱা ইনষ্টল কৰা হোৱা নাই"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"কোনো সেৱা বাছনি কৰা হোৱা নাই"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"কোনো বিৱৰণ যোগান ধৰা হোৱা নাই।"</string>
     <string name="settings_button" msgid="2195468788019730377">"ছেটিং"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"পোহৰৰ প্ৰতি সংবেদনশীলতা, ফট’ফ’বিয়া, গাঢ় থীম, মাই-গ্ৰেইন, মূৰৰ বিষ, পঢ়াৰ ম’ড, নৈশ ম’ড, উজ্জ্বলতা কমাওক, হোৱাইট পইণ্ট"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ব্যৱহাৰ কৰাৰ বাবে সুবিধাজনক, এক্সেছ কৰাৰ বাবে সুবিধাজনক, সহায়তা, সহায়ক"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"দৃষ্টিশক্তি, শ্ৰৱণশক্তি, দৃষ্টিশক্তিহীন, শ্ৰৱণশক্তিহীন, মটৰ, দক্ষতা, সহায়তা, সহায়ক, ব্যৱহাৰ কৰাৰ বাবে সুবিধাজনক, এক্সেছ কৰাৰ বাবে সুবিধাজনক, হাত, সহায়"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ৱিণ্ড’ বিবৰ্ধক, জুম, বিবৰ্ধন, কম দৃষ্টিশক্তি, প্ৰসাৰিত কৰক, ডাঙৰ কৰক"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"কেপশ্বন, ক্ল’জ্‌ড কেপশ্বন, CC, লাইভ ট্ৰেন্সক্ৰাইব, কমকৈ শুনা, শ্ৰৱণশক্তিৰ ক্ষয়, CART, কথনৰ পৰা পাঠ, ছাবটাইটেল"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ৰঙৰ কনট্ৰাষ্ট"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"মটৰ, মাউছ"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"শ্ৰৱণ যন্ত্ৰ, শুনাৰ ক্ষেত্ৰত সমস্যা, শ্ৰৱণ শক্তি হ্ৰাস, ক’ক্লিয়াৰ ইমপ্লাণ্ট, পৰিৱৰ্ধন ডিভাইচ, ধ্বনি প্ৰ’চেছৰ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"মটৰ, মাউছ, বাহ্যিক মাউছ, হে’ড মাউছ, অভিযোজিত মাউছ, হুইলচ্চেয়াৰ, জয়ষ্টিক"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"শ্ৰৱণ যন্ত্ৰ, কমকৈ শুনা, শ্ৰৱণশক্তিৰ ক্ষয়, ক’ক্লিয়াৰ ইমপ্লাণ্ট, ধ্বনি পৰিৱৰ্ধক ডিভাইচ, ধ্বনি প্ৰ’চেছৰ, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"কমকৈ শুনা, শ্ৰৱণশক্তিৰ ক্ষয়, কেপশ্বন, টেলিটাইপ, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"তিনিটা বুটাম"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"দক্ষতা, মটৰ, জ্যেষ্ঠ, অৰ্থ্ৰাইটিছ, আৰএছআই, ষ্ট্ৰ’ক, ট্ৰিম’ৰ, একাধিক স্ক্লেৰ’চিছ, চেৰেব্ৰেল পলছি, কঁপনি, পুনৰাবৃত্তিমূলক ষ্ট্ৰেইন আঘাত, হাত"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"বিলম্ব, দক্ষতা, জ্যেষ্ঠ"</string>
     <string name="print_settings" msgid="8519810615863882491">"প্ৰিণ্ট কৰি থকা হৈছে"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"অফ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{১ টা প্ৰিণ্ট সেৱা অন আছে}one{# টা প্ৰিণ্ট সেৱা অন আছে}other{# টা প্ৰিণ্ট সেৱা অন আছে}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"আটাইতকৈ বেছিকৈ ব্যৱহাৰ কৰা এপ্‌সমূহ চাওক"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"আপোনাৰ বেটাৰী সুৰক্ষিত কৰিবলৈ, চাৰ্জিং অপ্টিমাইজ কৰা হৈছে"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"আপোনাৰ বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰাত সহায় কৰিবলৈ, চাৰ্জিং অপ্টিমাইজ কৰা হয়"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"আপোনাৰ বেটাৰী সুৰক্ষিত কৰিবলৈ, চাৰ্জিং অপ্টিমাইজ কৰা হৈছে"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"আপোনাৰ বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰাত সহায় কৰিবলৈ, ড’ক কৰাৰ সময়ত চাৰ্জিং অপ্টিমাইজ কৰা হয়"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"আপোনাৰ বেটাৰী সুৰক্ষিত কৰিবলৈ, চাৰ্জিং অপ্টিমাইজ কৰা হৈছে"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"আপোনাৰ বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰাত সহায় কৰিবলৈ, ড’ক কৰাৰ সময়ত চাৰ্জিং অপ্টিমাইজ কৰা হয়"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"বেটাৰী সম্পূৰ্ণ হোৱালৈ চাৰ্জিং কৰা"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"আপোনাৰ বেটাৰী সুৰক্ষিত কৰিবলৈ, আপোনাৰ টেবলেটটো ইয়াৰ পাছত ড’ক কৰিলে, চাৰ্জিং অপ্টিমাইজ কৰা হ’ব"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"চাৰ্জিঙৰ বিষয়ে অধিক জানক সুবিধাটো পজ কৰা হৈছে"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"চাৰ্জ কৰা পুনৰ আৰম্ভ কৰক"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"বেছি বেটাৰি ব্যয় হোৱা নেপথ্যৰ কাৰ্যকলাপ অন্তৰ্ভুক্ত হয়"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"আঁতৰাওক"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"বাতিল কৰক"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"চাৰ্জ সম্পূৰ্ণ হ’ব হৈছে"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"চাৰ্জিঙৰ আনুষংগিক সামগ্ৰীত সমস্যা হৈছে"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"অমিল চাৰ্জিঙৰ বিষয়ে অধিক জানক"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"বেটাৰী মেনেজাৰ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"এপসমূহক স্বয়ংক্ৰিয়ভাৱে পৰিচালনা কৰক"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"এতিয়া"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"বেটাৰীৰ ব্যৱহাৰৰ তালিকা"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"দৈনিক বেটাৰীৰ ব্যৱহাৰৰ তালিকা"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"প্ৰতি ঘণ্টাত বেটাৰীৰ ব্যৱহাৰৰ তালিকা"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"বেটাৰিৰ বাকী থকা শতাংশ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>ৰ পৰা <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>লৈ"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"অন্তিমবাৰ সম্পূৰ্ণৰূপে চাৰ্জ হোৱাৰ পাছত বেটাৰীৰ ব্যৱহাৰ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g>ৰ বেটাৰীৰ ব্যৱহাৰ"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"অন্তিমবাৰ সম্পূৰ্ণৰূপে চাৰ্জ হোৱাৰ পাছত ডিভাইচত অতিবাহিত কৰা সময়"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"জৰুৰীকালীন অৱস্থাত ডায়েল কৰা ছিগনেল"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"জৰুৰীকালীন কল কৰোতে কৰিবলগীয়া আচৰণ ছেট কৰক"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"বেকআপ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"অন হৈ আছে"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"অফ হৈ আছে"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"বেকআপ আৰু পুনঃস্থাপন"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ব্যক্তিগত ডেটা"</string>
     <string name="backup_data_title" msgid="507663517227498525">"মোৰ ডেটাৰ বেকআপ লওক"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"নাম"</string>
     <string name="vpn_type" msgid="5533202873260826663">"প্রকাৰ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ছাৰ্ভাৰৰ ঠিকনা"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"পিপিপি এনক্ৰিপশ্বন (এমপিপিই)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP গোপন"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec চিনাক্তকৰণকাৰী"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec পূৰ্বে শ্বেয়াৰ কৰা কী"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec ব্যৱহাৰকাৰী প্ৰমাণপত্ৰ"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec চিএ প্ৰমাণপত্ৰ"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec ছাৰ্ভাৰ প্ৰমাণপত্ৰ"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"উচ্চখাপৰ বিকল্পবোৰ দেখাওক"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS অনুসন্ধান ড\'মেইনসমূহ"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"ডিএনএছ ছাৰ্ভাৰ (যেনে: ৮.৮.৮.৮)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ফৰৱাৰ্ড কৰাৰ ঠিকনাসমূহ (যেনে, ১০.০.০.০/৮)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ব্যৱহাৰকাৰীৰ নাম"</string>
     <string name="vpn_password" msgid="1183746907642628127">"পাছৱৰ্ড"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"একাউণ্টৰ তথ্য ছেভ কৰক"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ব্যৱহৃত হোৱা নাই)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ছাৰ্ভাৰ সত্যাপন নকৰিব)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ছাৰ্ভাৰৰ পৰা লাভ কৰা হৈছে)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"এই ধৰণৰ ভিপিএন সেৱাই অনবৰতে সংযোগ বৰ্তাই ৰাখিব নোৱাৰে"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"সদা-সক্ৰিয় ভিপিএনে কেৱল ছাৰ্ভাৰৰ সাংখ্যিক ঠিকনাহে সমৰ্থন কৰে"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"সদা-সক্ৰিয় ভিপিএনৰ বাবে এটা ডিএনছ ছাৰ্ভাৰ নিৰ্দিষ্ট কৰিবই লাগিব"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"সদা-সক্ৰিয় ভিপিএনৰ বাবে ডিএনএছ ছাৰ্ভাৰৰ ঠিকনা সাংখ্যিক হ\'ব লাগিব"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"প্ৰদান কৰা তথ্যই সদায় অন ভিপিএন সমৰ্থন কৰা নাই"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"বাতিল কৰক"</string>
     <string name="vpn_done" msgid="5137858784289564985">"প্ৰত্যাখ্যান কৰক"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"ভিপিএন নোহোৱাকৈয়ে সংযোগবোৰ অৱৰোধ কৰক"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN সংযোগৰ প্ৰয়োজন নেকি?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"সুৰক্ষিত নহয়। এটা IKEv2 ভিপিএনলৈ আপডে’ট কৰক"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"অসমৰ্থিত ভিপিএন আৰম্ভ কৰিব পৰা নগ’ল।"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"যিকোনো সময়ত সংযোগ হৈ থাকিবলৈ ভিপিএন প্ৰ\'ফাইল বাছনি কৰক। এই ভিপিএনত সংযোগ হ\'লেহে ইণ্টাৰনেট ব্যৱহাৰ কৰিব পাৰিব।"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"নাই"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"সদা-সক্ৰিয় ভিপিএনৰ ক্ষেত্ৰত ছাৰ্ভাৰ আৰু ডিএনএছ দুয়োটাৰ বাবে আইপি ঠিকনা থকাটো দৰকাৰী।"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"এম্বাৰ বিপদ-সংকেত"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"শিশু অপহৰণৰ বিষয়ে প্ৰচাৰপত্ৰ পাওক"</string>
     <string name="repeat_title" msgid="8676570486899483606">"পুনৰাই দিয়ক"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"কল মেনেজাৰক সক্ষম কৰক"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"আপোনাৰ কলসমূহ কেনেকৈ কৰা হয় তাক পৰিচালনা কৰিবলৈ এই সেৱাক অনুমতি দিয়ক।"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"ক\'ল মেনেজাৰ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ৱায়াৰলেছ জৰুৰীকালীন সতৰ্কবার্তাসমূহ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"নেটৱৰ্ক অপাৰেটৰ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"একচেছ পইণ্টসমূহৰ নাম"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"ৱালেট"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"পৰিশোধ, টিপক, ধন পৰিশোধ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"বেকআপ, বেক আপ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"নিৰ্দেশ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"মুখমণ্ডল, আনলক, প্ৰমাণীকৰণ, ছাইন ইন"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ফেচ, আনলক, প্ৰমাণীকৰণ, ছাইন ইন, ফিংগাৰপ্ৰিণ্ট, বায়’মেট্ৰিক"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl সংস্কৰণ, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"পাৱাৰ অনৰ ধ্বনিসমূহ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"লাইভ কেপশ্বন"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"স্বয়ংক্ৰিয় কেপশ্বন মিডিয়া"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ফ’নৰ স্পীকাৰ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"টেবলেটৰ স্পীকাৰ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ডিভাইচৰ স্পীকাৰ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"তাঁৰযুক্ত হেডফ’ন"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"সমিল মিডিয়াৰ পৰা অহা অডিঅ’ অধিক নিমগ্ন হৈ পৰে"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"অফ আছে"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"শেহতীয়া বাৰ্তালাপ আঁতৰোৱা হ\'ল"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"বাৰ্তালাপ আঁতৰোৱা হ’ল"</string>
     <string name="clear" msgid="5092178335409471100">"মচক"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> মচক"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"অগ্ৰাধিকাৰপ্ৰাপ্ত আৰু সংশোধন কৰা বার্তালাপসমূহ ইয়াত দেখা যাব"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"আপুনি কোনো বার্তালাপক অগ্ৰাধিকাৰপ্ৰাপ্ত হিচাপে চিহ্নিত কৰিলে অথবা বার্তালাপসমূহত অন্য সালসলনি কৰিলে সেইবোৰ ইয়াত দেখা যাব। \n\nবার্তালাপৰ ছেটিং সলনি কৰিবলৈ: \nপুল-ডাউন শ্বেডটো খুলিবলৈ স্ক্ৰীনখনৰ একেবাৰে ওপৰৰ পৰা তললৈ ছোৱাইপ কৰক, তাৰ পাছত স্পর্শ কৰক আৰু এটা বার্তালাপ ধৰি ৰাখক।"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"সৰু কৰক"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"অফ আছে"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"এপ্ পিন কৰা"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"এপ্‌ পিন কৰা সুবিধাটোৱে আপোনাক আপুনি বৰ্তমানৰ এপ্‌টো আনপিন নকৰা পৰ্যন্ত সেইটোক দেখা পোৱা কৰি ৰাখিবলৈ দিয়ে। কোনো বিশ্বাসী বন্ধুক এটা নিৰ্দিষ্ট গে’ম খেলিবলৈ দিয়াৰ দৰে কাৰ্যৰ বাবে এই সুবিধাটো ব্যৱহাৰ কৰিব পাৰি।"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"কোনো এটা এপ্‌ পিন কৰি ৰাখিলে, পিন কৰি ৰখা এপ্‌টোৱে হয়তো অন্য এপ্‌সমূহ খুলিব পাৰে আৰু ব্যক্তিগত ডেটা এক্সেছ কৰিব পৰা হ’ব পাৰে। \n\nএপ্‌ পিন কৰাৰ সুবিধাটো ব্যৱহাৰ কৰিবলৈ: 	\n১) এপ্‌ পিন কৰাৰ সুবিধাটো অন কৰক 	\n২) ৰূপৰেখা খোলক 	\n৩) স্ক্ৰীনখনৰ একেবাৰে ওপৰত থকা এপৰ চিহ্নটোত টিপক, তাৰ পাছত পিন কৰকত টিপক"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"কোনো এটা এপ্‌ পিন কৰি ৰাখিলে, পিন কৰি ৰখা এপ্‌টোৱে হয়তো অন্য এপ্‌সমূহ খুলিব পাৰে আৰু ব্যক্তিগত ডেটা এক্সেছ কৰিব পৰা হ’ব পাৰে। \n\nযদি আপুনি আপোনাৰ ডিভাইচটো কাৰোবাৰ সৈতে সুৰক্ষিতভাৱে শ্বেয়াৰ কৰিবলৈ বিচাৰে, তেন্তে ইয়াৰ পৰিৱৰ্তে এটা অতিথি প্ৰ’ফাইল ব্যৱহাৰ কৰি চাওক। \n\nএপ্‌ পিন কৰাৰ সুবিধাটো ব্যৱহাৰ কৰিবলৈ: 	\n১) এপ্‌ পিন কৰাৰ সুবিধাটো অন কৰক 	\n২) ৰূপৰেখা খোলক 	\n৩) স্ক্ৰীনখনৰ একেবাৰে ওপৰত থকা এপৰ চিহ্নটোত টিপক, তাৰ পাছত পিন কৰকত টিপক"</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_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">"আনপিন কৰোতে পাছৱৰ্ড বিচাৰক"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"যদি ব্যৱহাৰ হোৱা নাই এপ্‌টো পৰিচালনা কৰক"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"অনুমতি আঁতৰাওক, অস্থায়ী ফাইল মচক, জাননী বন্ধ কৰক আৰু এপ্‌টো আৰ্কাইভ কৰক"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"আটাইবোৰ এপ্"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ইনষ্টল কৰা হোৱা এপ্‌সমূহ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"তাৎক্ষণিক এপ্‌সমূহ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"খালী ঠাই"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"এপে ব্যৱহাৰ কৰা মেম’ৰিৰ পৰিমাণ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{যোৱা {time}ত ১ টা এপে মেম’ৰী ব্যৱহাৰ কৰিছে}one{যোৱা {time}ত # টা এপে মেম’ৰী ব্যৱহাৰ কৰিছে}other{যোৱা {time}ত # টা এপে মেম’ৰী ব্যৱহাৰ কৰিছে}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"মেম’ৰী ব্যৱহাৰৰ প্ৰ’ফাইলিং সক্ষম কৰক"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"মেম’ৰী ব্যৱহাৰৰ প্ৰ’ফাইলিঙৰ বাবে অতিৰিক্ত ছিষ্টেম সম্পদৰ আৱশ্যক"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"মেম’ৰীৰ প্ৰ’ফাইলিং অক্ষম কৰা হৈছে"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ফ্ৰিকুৱেন্সী"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"সৰ্বাধিক ব্যৱহাৰ"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"কোনো ডেটা ব্যৱহাৰ হোৱা নাই"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"অন্য এপ্‌সমূহত দেখুৱাওক"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"অইন এপৰ ওপৰত দেখুৱাবলৈ অনুমতি দিয়ক"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"আপুনি ব্যৱহাৰ কৰি থকা অন্য এপ্‌সমূহৰ ওপৰত এই এপ্‌টোক প্ৰদর্শন কৰিবলৈ অনুমতি দিয়ক। আপুনি ক\'ত টিপে অথবা সলনি কৰে তথা স্ক্ৰীনখনত কি প্ৰদর্শন কৰা হয় সেয়া এই এপ্‌টোৱে চাব পাৰিব।"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"মিডিয়া আউটপুট সলনি কৰক"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"এপক মিডিয়াৰ আউটপুট সলনি কৰিবলৈ অনুমতি দিয়ক"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"কোনটো সংযুক্ত এপে অন্য এপৰ পৰা অডিঅ’ অথবা ভিডিঅ’ প্লে’ কৰে, এই এপ্‌টোক সেয়া বাছনি কৰিবলৈ অনুমতি দিয়ক। যদি অনুমতি দিয়া হয়, এই এপ্‌টোৱে হেডফ’ন আৰু স্পীকাৰৰ দৰে উপলব্ধ ডিভাইচৰ এখন সূচী এক্সেছ কৰিব পাৰে আৰু ষ্ট্ৰিম কৰিবলৈ অথবা অডিঅ’ অথবা ভিডিঅ’ কাষ্ট কৰিবলৈ কোনটো আউটপুট ডিভাইচ ব্যৱহাৰ কৰা হয়, সেয়া বাছনি কৰিব পাৰে।"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"আটাইবোৰ ফাইলৰ এক্সেছ"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"কণ্ঠধ্বনিৰে সক্ৰিয় কৰাৰ সুবিধা উন্নত কৰক"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"কণ্ঠধ্বনিৰে সক্ৰিয় কৰাৰ মডেল উন্নত কৰিবলৈ এই ডিভাইচটোৱে ব্যক্তিগত বুদ্ধিমত্তা ব্যৱহাৰ কৰে। এপ্‌সমূহে সংক্ষিপ্ত আপডে’ট লাভ কৰিব পাৰে যিবোৰ সকলোৰে বাবে মডেলটো উন্নত কৰোঁতে গোপনীয়তা বজাই ৰাখিবলৈ বিভিন্ন ব্যৱহাৰকাৰীৰ পৰা একত্ৰিত কৰা হয়।\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"ডেটাৰ ব্যৱহাৰ সম্পৰ্কীয় সকীয়নি <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"ডেটাৰ সীমা <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ডেটাৰ ব্যৱহাৰ সম্পৰ্কীয় সকীয়নি <xliff:g id="ID_1">^1</xliff:g> / ডেটাৰ সীমা <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"বাহকৰ ডেটা গণনা কাৰ্য ডিভাইচৰ গণনাতকৈ পৃথক হ’ব পাৰে"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"বাহকৰ নেটৱর্কে ব্যৱহাৰ কৰা ডেটা বহিৰ্ভূত কৰে"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> খৰচ কৰা হৈছে"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ডেটা ব্যৱহাৰৰ সকীয়নি ছেট কৰক"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> আগত আপডে’ট কৰা হ’ল"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g>এ এই মাত্ৰ আপডে’ট কৰিলে"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"এই মাত্ৰ আপডে’ট কৰা হ’ল"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ডেটা আঁচনি চাওক"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"সবিশেষ চাওক"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ডেটা সঞ্চয়কাৰী"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"অপৰিমিত ডেটা"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"বেটাৰী ব্যৱহাৰৰ বিসংগতি"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ক্ষিপ্ৰ ছেটিং বিকাশকৰ্তাৰ টাইল"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adbৰ কৰ্তৃত্ব প্ৰদান কৰাৰ টাইমআউট অক্ষম কৰক"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ডিফ\'ট (৭ দিন) অথবা ব্যৱহাৰকাৰীয়ে কনফিগাৰ কৰা (অতি কমেও ১ দিন) সময়ৰ ভিতৰত পুনৰ সংযোগ নকৰা ছিষ্টেমবোৰৰ বাবে adbৰ কর্তৃত্ব প্ৰদান স্বয়ংক্ৰিয়ভাৱে বাতিল কৰিব পৰা সুবিধাটো অক্ষম কৰক।"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"ৱিনস্ক\'প ট্ৰেচ"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ছেন্সৰ অফ"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"কৰ্মস্থানৰ প্ৰ’ফাইলৰ ছেটিং"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ব্যক্তিগত এপত কৰ্মস্থানৰ ডাইৰেক্টৰীত থকা সম্পৰ্কৰ সন্ধান কৰক"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"স্বয়ংপূৰ্তি সেৱা"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ডিফ’ল্ট স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱাৰ সেৱা"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"পাছৱৰ্ড"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"অতিৰিক্ত প্ৰদানকাৰী"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# টা পাছৱৰ্ড}one{# টা পাছৱৰ্ড}other{# টা পাছৱৰ্ড}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"স্বয়ংক্ৰিয়, পূৰ, স্বয়ংক্রিয়ভাৱে পূৰ হোৱা, পাছৱৰ্ড"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ডেটা, পাছকী, পাছৱৰ্ড"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"স্বয়ংক্রিয়, পূৰ হোৱা, স্বয়ংক্রিয়ভাৱে পূৰ হোৱাৰ সুবিধা, ডেটা, পাছকী, পাছৱৰ্ড"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;আটাইবোৰ সেৱা অফ কৰিবনে?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; আপুনি ছাইন ইন কৰিলে পাছৱৰ্ড, পাছকী আৰু ছেভ কৰি থোৱা অন্য তথ্য স্বয়ংক্ৰিয়ভাৱে পূৰ কৰাৰ বাবে উপলব্ধ নহ’ব"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;আপোনাৰ অগ্ৰাধিকাৰপ্ৰাপ্ত সেৱা &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;লৈ সলনি কৰক এতিয়াৰ পৰা নতুন পাছৱৰ্ড, পাছকী আৰু অন্য তথ্য ইয়াত ছেভ কৰা হ’ব। &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;এ কি স্বয়ংক্ৰিয়ভাৱে পূৰ কৰিব পাৰি সেয়া নিৰ্ধাৰণ কৰিবলৈ আপোনাৰ স্ক্ৰীনত প্ৰদৰ্শিত সমল ব্যৱহাৰ কৰিব পাৰে"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ব্যৱহাৰ কৰিব নেকি?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"আপোনাৰ কেৱল ৫ টা সেৱা অন হৈ থাকিব পাৰে"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"অন্য কোনো সেৱা যোগ দিবলৈ অতি কমেও ১ টা সেৱা অফ কৰক"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$sএ স্বয়ংক্ৰিয়ভাৱে কি পূৰাব পাৰি সেয়া নিৰ্ধাৰণ কৰিবলৈ আপোনাৰ স্ক্ৰীনত থকা বস্তুবোৰ ব্যৱহাৰ কৰে।"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱাৰ সীমা"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"একে সময়তে আপোনাৰ ৫ টা পৰ্যন্ত পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা সক্ৰিয় হৈ থাকিব পাৰে। অধিক যোগ দিবলৈ এটা সেৱা অফ কৰক।"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱাৰ সীমা"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"একে সময়তে আপোনাৰ ৫ টা পৰ্যন্ত পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা সক্ৰিয় হৈ থাকিব পাৰে। অধিক যোগ দিবলৈ এটা সেৱা অফ কৰক।"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"অফ কৰক"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"স্বয়ংপূৰ্তি"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"লগিঙৰ স্তৰ"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"এপৰ সুসমতা সম্পৰ্কীয় সালসলনিসমূহ ডিবাগ কৰিব পৰা এপ্‌সমূহৰ বাবেহে সংশোধন কৰিব পাৰি। এটা ডিবাগ কৰিব পৰা এপ্‌ ইনষ্টল কৰক আৰু পুনৰ চেষ্টা কৰক।"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"অইন এটা ছেটিঙৰ ওপৰত নিৰ্ভৰশীল"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"একাউণ্ট"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d টা একাউণ্ট"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ডিভাইচৰ নাম"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"প্ৰাথমিক তথ্য"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"আইনী আৰু নিয়ামক"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"এটা NFC টেগ স্কেন কৰাৰ সময়ত এই এপ্‌টোক লঞ্চ কৰিবলৈ দিয়ক।\nযদি এই অনুমতিটো অন কৰা থাকে, কোনো টেগ চিনাক্ত কৰাৰ সময়ত এপ্‌টো এটা বিকল্প হিচাপে থাকিব।"</string>
     <string name="media_output_title" msgid="8283629315159510680">"প্লে কৰিবলগীয়া মিডিয়া"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> ইয়াত প্লে’ কৰক"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"অডিঅ’ প্লে’ হ’ব"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"এইটো ডিভাইচ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"কল চলি থকাৰ সময়ত অনুপলব্ধ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ইয়াৰ জৰিয়তে কলৰ প্ৰত্য়ুত্তৰ দিয়ক"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"মিউট"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"সক্ষম কৰিবলৈ, প্ৰথমতে \"পাৱাৰ বুটামটো টিপি ধৰি ৰাখক\"টো পাৱাৰ মেনুলৈ সলনি কৰক।"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"নেটৱৰ্কৰ সবিশেষ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"আপোনাৰ ডিভাইচটোৰ নাম আপোনাৰ ফ’নটোত থকা এপ্‌সমূহৰ বাবে দৃশ্যমান। আপুনি ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ কৰোঁতে, ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰোঁতে অথবা ৱাই-ফাই হটস্পট ছেট আপ কৰোঁতেও এইটো অন্য লোকে দেখা পাব পাৰে।"</string>
     <string name="devices_title" msgid="649715719278562515">"ডিভাইচসমূহ"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"নেটৱৰ্ক বাছনি কৰক"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"সংযোগ বিচ্ছিন্ন কৰা হ’ল"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"নাম"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ৰং (সমিল এপ্‌সমূহত ব্যৱহৃত)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"ছেভ কৰক"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ছিম ব্যৱহাৰ কৰক"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"এই ছিমখন ব্যৱহাৰ কৰক"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"অফ আছে"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"এই ছিমটো অক্ষম কৰিবলৈ, ছিম কাৰ্ডটো এৰুৱাওক"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> সক্ৰিয় কৰিবলৈ টিপক"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ছিম মচক"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"নেটৱৰ্ক অপাৰেটিং ম\'ডটো সলনি কৰক"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"অগ্ৰাধিকাৰ দিয়া নেটৱৰ্কৰ প্ৰকাৰ"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"দাম জানিবলৈ আপোনাৰ বাহকৰ সৈতে যোগাযোগ কৰক।"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"এপৰ ডেটা ব্যৱহাৰ"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"অমান্য নেটৱৰ্কৰ ম’ড <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। উপেক্ষা কৰক।"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"এক্সেছ পইণ্টৰ নাম"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"এপিএন"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিলে উপলব্ধ নহয়"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>লৈ সলনি কৰিবনে?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ছিম কাৰ্ড ব্যৱহাৰলৈ সলনি কৰিবনে?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ব্যৱহাৰ কৰিবনে?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"এবাৰত কেৱল এখন ছিমহে সক্ৰিয় হৈ থাকিব পাৰে। \n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>লৈ সলনি কৰিলে আপোনাৰ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> সেৱা বাতিল নহয়।"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"এটা সময়ত ১ খন ই-ছিমহে সক্ৰিয় কৰিব পাৰি। \n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>লৈ সলনি কৰিলে আপোনাৰ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> সেৱা বাতিল নহয়।"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"এবাৰত কেৱল এখন ছিমহে সক্ৰিয় হৈ থাকিব পাৰে। \n\nসলনি কৰিলে আপোনাৰ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> সেৱা বাতিল নহয়।"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"আপুনি একে সময়তে ২ খন ছিম ব্যৱহাৰ কৰিব পাৰে। <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ব্যৱহাৰ কৰিবলৈ, অন্য ছিমখন অফ কৰক।"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>লৈ সলনি কৰক"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> অফ কৰক"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"নালাগে, ধন্যবাদ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"বাতিল কৰক"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"সলনি কৰক"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"অফ কৰক"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"ছিমখন সক্ৰিয় কৰিব নোৱাৰি"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ছিমখন পুনৰ অন কৰিবলৈ চেষ্টা কৰক। সমস্যাটো অব্যাহত থাকিলে আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক।"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"আপোনাৰ ছিমখন ছেট আপ কৰক"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"এই ডিভাইচটোত একাধিক ছিম ব্যৱহাৰ কৰিবলৈ আপোনাৰ ম’বাইল নেটৱৰ্কৰ অগ্ৰাধিকাৰ ছেট কৰক"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"আপোনাৰ ছিমত লেবেল যোগ দিয়ক"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"কল কৰোঁতে, পাঠ বাৰ্তা পঠিয়াওঁতে আৰু ডেটা ব্যৱহাৰ কৰোঁতে আপুনি ছেটিঙত এই লেবেলসমূহ দেখিব"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"ছিমৰ লেবেল"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"লেবেল"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"কি ছিম ব্যৱহাৰ কৰিব বাছনি কৰক"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"আপুনি এবাৰত ২ খন ছিম ব্যৱহাৰ কৰিব পাৰে"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"আপোনাৰ মুখ্য ছিম ছেট কৰক"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"কল, পাঠ বাৰ্তা আৰু ডেটাৰ বাবে ডিফ’ল্ট হিচাপে কোনখন ছিম ব্যৱহাৰ কৰিব সেয়া বাছনি কৰক"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"আপোনাৰ মুখ্য ছিম"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"কল"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"পাঠ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"স্বয়ংক্ৰিয় ডেটা সলনি কৰা"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ক’ভাৰেজ আৰু উপলব্ধতাৰ ওপৰত নিৰ্ভৰ কৰি যিকোনো এখন ছিমৰ পৰা ডেটা ব্যৱহাৰ কৰক"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"কেৱল ডেটা"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ছেট আপ কৰক"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"পৰৱৰ্তী"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"ম’বাইল নেটৱৰ্ক"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ফ’ন নম্বৰ"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"ছিমৰ লেবেল আৰু ৰং"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"নেটৱৰ্ক সক্ৰিয়কৰণ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"বাহক সলনি কৰা কাৰ্য"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> সক্ৰিয় হৈ আছে"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"পাছত ম’বাইল ডেটা, কলৰ সুবিধা আৰু এছএমএছ ব্যৱহাৰ কৰিবলৈ আপোনাৰ নেটৱৰ্ক ছেটিঙলৈ যাওক"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ছিম"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"এই ই-ছিমখন মচিবনে?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"এই ছিমখন আঁতৰালে এই ডিভাইচটোৰ পৰা <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> সেৱা আঁতৰোৱা হ’ব।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>ৰ সেৱা বাতিল কৰা নহয়।"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"মচক"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"ছিম মচি থকা হৈছে…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ছিম মচিব নোৱাৰি"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"এই ছিমখন কোনো অজ্ঞাত আসোঁৱাহৰ বাবে আঁতৰাব নোৱাৰি।\n\nআপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰি আকৌ চেষ্টা কৰক।"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ডিভাইচৰ সৈতে সংযোগ কৰক"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> এপ্‌টোৱে আপোনাৰ ডিভাইচটোৰ সৈতে সংযোগ কৰিবলৈ এটা অস্থায়ী ৱাই-ফাই নেটৱৰ্ক ব্যৱহাৰ কৰিব বিচাৰিছে"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"কোনো ডিভাইচ বিচাৰি পোৱা নগ’ল। ডিভাইচ যাতে অন হৈ থাকে আৰু সংযোগ কৰিব পৰাকৈ উপলব্ধ থাকে সেইয়া নিশ্চিত কৰক।"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"জৰুৰীকালীন কল"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"আপোনাৰ বাহকত ৱাই-ফাই কলিং ব্যৱহাৰ কৰি জৰুৰীকালীন কল কৰাৰ সুবিধা নাই।\nজৰুৰীকালীন কল কৰিবলৈ ডিভাইচটোৱে স্বয়ংক্ৰিয়ভাৱে চেলুলাৰ নেটৱৰ্কলৈ সলনি কৰে।\nকেৱল চেলুলাৰ নেটৱৰ্ক থকা ঠাইৰ পৰাহে জৰুৰীকালীন কল কৰিব পৰা যায়।"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"মান উন্নত কৰিবলৈ কল কৰোঁতে ৱাই-ফাই ব্যৱহাৰ কৰক"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"বেকআপ কলিং"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"যদি <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> উপলব্ধ নহয় অথবা ৰ’মিঙত আছে, তেন্তে <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> কলৰ বাবে আপোনাৰ ম’বাইল ডেটা ছিম ব্যৱহাৰ কৰক।"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"বেকআপ কলিং"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"অন্তৰ্গামী এমএমএছ বার্তা"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"এমএমএছ বার্তা পঠিয়াব নোৱাৰি"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ম’বাইল ডেটা অফ হৈ থকাৰ সময়তো <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>ত এমএমএছ বার্তা পঠিওৱাৰ অনুমতি দিবলৈ টিপক"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"আপোনাৰ কর্মস্থান নীতিৰ তথ্য"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"আপোনাৰ আইটি প্ৰশাসকে পৰিচালনা কৰা ছেটিং"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"১৬ কেবি পৃষ্ঠাৰ আকাৰৰ সৈতে বুট কৰক"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"১৬ কেবি পৃষ্ঠা আকাৰৰ সমৰ্থিত কাৰ্নেল ব্যৱহাৰ কৰি ডিভাইচ বুট কৰক"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"১৬ কেবি পৃষ্ঠাৰ সমিল কাৰ্নেলৰ সৈতে ৰিবুট কৰিবনে?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"সকীয়নি: কিছুমান এপ্লিকেশ্বন এই ম’ডৰ সৈতে সমিল নহ’বও পাৰে। নিশ্চিতকৰণৰ পাছত ডিভাইচটো ৰিবুট হ’ব।"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"৪ কেবি পৃষ্ঠাৰ সমিল কাৰ্নেলৰ সৈতে ৰিবুট কৰিবনে?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"নিশ্চিতকৰণৰ পাছত ডিভাইচটো ৰিবুট হ’ব।"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"কাৰ্নেলক ১৬ কেবি পৃষ্ঠাৰ সৈতে সমিল কাৰ্নেললৈ আপডে’ট কৰিব পৰা নগ’ল।"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"সালসলনি প্ৰয়োগ কৰি থকা হৈছে"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"বাগ ৰিপ’ৰ্ট নিয়ন্ত্ৰণ কৰোঁতা"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"আপোনাৰ ডিভাইচত কোনটো এপে বাগ ৰিপ’ৰ্টৰ শ্বৰ্টকাট নিয়ন্ত্ৰণ কৰে সেয়া নিৰ্ধাৰণ কৰে।"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ব্যক্তিগত"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"প্লে’বেক ক্ষিপ্ৰতাৰে পুনৰ আৰম্ভ কৰিবলৈ ক্ষিপ্ৰ ছেটিঙত মিডিয়া প্লে’য়াৰ খোলা থাকে"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"লক স্ক্ৰীনত মিডিয়া দেখুৱাওক"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"প্লে’বেক ক্ষিপ্ৰতাৰে পুনৰ আৰম্ভ কৰিবলৈ লক স্ক্ৰীনত মিডিয়া প্লে’য়াৰ খোলা থাকে"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"মিডিয়াৰ চুপাৰিছসমূহ দেখুৱাওক"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistantএ প্ৰদান কৰা মিডিয়াৰ চুপাৰিছ দেখুৱাওক"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"আপোনাৰ কাৰ্যকলাপৰ ওপৰত আধাৰিত"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"প্লে’য়াৰটো লুকুৱাওক"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"প্লে’য়াৰটো দেখুৱাওক"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ছিম"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ই-ছিম"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ই-ছিম"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"সক্ৰিয় হৈ আছে"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"নিষ্ক্ৰিয় হৈ আছে"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g>ৰ বাবে ডিফ’ল্ট"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"কল"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"এছএমএছ"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"সমিল মিডিয়াৰ পৰা অহা অডিঅ’ অধিক ইমাৰ্ছিভ হৈ পৰে"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"হে’ড ট্ৰেকিং"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"আপুনি নিজৰ মূৰটো লৰচৰ কৰিলে শ্ৰৱণৰ অভিজ্ঞতা অধিক স্বতঃস্ফূৰ্ত কৰিবলৈ অডিঅ’ সলনি হয়"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"অনুমতিসমূহ ছিংক কৰক"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>ত আপুনি <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>ত দিয়া একে এপৰ অনুমতি দিয়ক"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ফ’নৰ পৰা অনুমতিসমূহ ছিংক কৰক"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"আপোনাৰ ঘড়ীটোক আপুনি এই ফ’নটোত দিয়া একে এপৰ অনুমতি দিয়ক"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"অডিঅ’ ডিভাইচৰ প্ৰকাৰ"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"অজ্ঞাত"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"স্পীকাৰ"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"মধ্যমীয়া"</string>
     <string name="contrast_high" msgid="3988567609694797696">"উচ্চ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"এই এপ্‌টো কেৱল ১ খন ৱিণ্ড’ত খুলিব পাৰি"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"অন আছে"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"অফ আছে"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"অফ আছে"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"অফ আছে"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"অন আছে"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"অফ আছে"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"অন আছে"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"অফ আছে"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"পাতল স্ক্ৰীনসমূহ গাঢ় আৰু গাঢ় স্ক্ৰীনসমূহ পাতল কৰি তোলে"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"স্ক্ৰীনখনত জুম ইন কৰক"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"অফ আছে"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"অফ আছে"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"অন আছে"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"অফ আছে"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"অন আছে"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"পাছৱৰ্ড এতিয়া ছেট আপ কৰা হৈছে"</string>
 </resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index ed6a3f2..16a8830 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 dəqiqə sonra"</item>
     <item msgid="1574040255478150028">"5 dəqiqə sonra"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 48f4a8f..e40a47b 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Siz indi tərtibatçısınız!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Ehtiyac yoxdur, Siz artı gəlişdiricisiniz."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Əvvəlcə developer seçimlərini aktiv edin."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Yalnız admin istifadəçilər developer ayarlarına daxil ola bilər."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Xidmətdə"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Xidmətdən Kənarda"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Cihazı qatladıqda ön ekran yandırılır"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Yalnız oyun, video və s."</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Ekranın hərəkətsiz qalmasının qarşısını alan tətbiqlər üçün ön ekran yandırılır"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Davam etmək üçün yuxarı sürüşdürün"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Tətbiqdən istifadəyə davam etmək üçün telefonunuzu qatlayıb, ön ekranda yuxarı sürüşdürün və ya ekranın kilidlənməsi üçün bir neçə saniyə gözləyin"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Heç vaxt"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Cihazı qatladıqda ön ekran kilidlənir"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Ekran avtomatik dönsün"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Oxşar"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Zəng melodiyası, zəngli saat"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zənglər zamanı audio"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Bildiriş, digər sistem səsləri"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media və sistem səsləri"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Bildirişlər"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Audio çıxışını defolt olaraq fərdi tətbiqlər müəyyənləşdirir"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Adsız Bluetooth cihazı"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Axtarılır"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth aktivdir"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Hamısına baxın"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Hamısına baxın"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Qələm"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Başlıq düyməsinin basılması"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (İş profili)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE audio yayımına qoşulun"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Yaxınlıqdakı audio yayımları"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audio yayımları"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR kodu ilə audio yayımına qoşulun"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Yaxınlıqda audio yayımı tapılmadı."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Hər tətbiqə dil seçmək üçün tətbiq dili ayarlarına keçin."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Tətbiq dilləri haqqında daha ətraflı"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sistem dili %s olsun?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s tərcih edilən dillərə əlavə edilsin?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Bununla tətbiq və veb-saytlar bu dili tərcih etdiyinizi bilir."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Cihaz ayarları və regional tərcihlər dəyişəcək."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Dəyişin"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s əlçatan deyil"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Şənbə"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Tətbiq regional tərcihləri dəstəkləmirsə, defolt ayarlardan istifadə edəcək."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Dil tərcihləri haqqında ətraflı."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Əlavə tərcihlər"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Xitab tərzi"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Xitab şəkli seçin"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Tətbiqlər seçdiyiniz fərdi xitab tərzi ilə sizə xitab edə bilər."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Göstərilməyib"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Qadın"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Kişi"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neytral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Seçilmiş dil silinsin?}other{Seçilmiş dillər silinsin?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Mətn başqa dildə göstəriləcək."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Bütün dilləri silmək mümkün deyil."</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Məkan"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Məkan işlədin"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Deaktiv"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Aktiv - # tətbiqin məkana giriş icazəsi var}other{Aktiv - # tətbiqin məkana giriş icazəsi var}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktiv / # tətbiqin məkana girişi var}other{Aktiv / # tətbiqin məkana girişi var}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yüklənir…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"\"Yaxınlıqdakı cihazlar\" icazəsi olan tətbiqlər qoşulmuş cihazların nisbi mövqeyini təyin edə bilər."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Tətbiqlər və xidmətlər üçün məkan girişi deaktivdir. Təcili yardım nömrəsinə zəng etdikdə və ya mesaj göndərdikdə cihazınızın məkanı hələ də təcili yardım əməkdaşlarına göndərilə bilər."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Məkan Ayarları haqqında daha ətraflı."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Məkan ayarları haqqında ətraflı məlumat"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Məkana girişi dəyişin: Ayarlar &gt; Güvənlik və məxfilik &gt; Məxfilik nizamlayıcıları"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Ən yaxşı nəticələr üçün \"Google üçün hazırlanıb\" sertifikatlı ekran qoruyucusu istifadə edin. Digər ekran qoruyucuları ilə uşağınızın barmaq izi işləməyə bilər."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Saat ilə kiliddən çıxarma"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Üz ilə kiliddən çıxarma və Barmaq izi ilə kiliddən çıxarma ayarladıqda maska taxdığınız, yaxud qaranlıq yerdə olduğunuz zaman telefonunuz barmaq izinizi istəyəcək.\n\nÜzünüz və ya barmaq iziniz tanınmadıqda saatınızla kiliddən çıxara bilərsiniz."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Barmaq iziniz tanınmadıqda saatınızla kiliddən çıxara bilərsiniz."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Üzünüz tanınmadıqda saatınızla kiliddən çıxara bilərsiniz."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Üzlə Kilidaçma və Barmaqla Kilidaçma ayarladıqda maska taxarkən və ya qaranlıqda olarkən telefon barmaq izinizi istəyəcək.\n\nSaatla Kilidaçma telefonu kiliddən çıxarmağın digər rahat yoludur (məsələn, barmaqlar yaş olduqda və ya üz tanınmadıqda)."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Saatla Kilidaçma telefonu kiliddən çıxarmağın digər rahat yoludur (məsələn, barmaq izi tanınmadıqda)."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Saatla Kilidaçma telefonu kiliddən çıxarmağın digər rahat yoludur (məsələn, üz tanınmadıqda)."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Barmaq izi və ya saat istifadə edin"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Üz və ya saat istifadə edin"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Üz, barmaq izi və ya saat istifadə edin"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Üz və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Üz, barmaq izi və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Üz, barmaq izləri və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Uzaqdan doğrulayıcı kilidaçması"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Saat əlavə edildi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Saatı ayarlayın"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Barmaq yaş olduqda, yaxud üz tanınmadıqda Saatla Kilidaçma ilə bu telefonu asanlıqla kiliddən çıxara bilərsiniz.\n\nAşağıdakı hallarda bu telefonu saat ilə kiliddən çıxarmaq olar:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"İndi yox"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Davam edin"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Ardı"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Haqqında"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Saat kiliddən çıxarılmalı, biləkdə və bu telefona yaxın olmalıdır. Biləkdə olarkən saatı yenidən kiliddən çıxarmaq lazım deyil."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Bu telefon kiliddən çıxarıldıqda saatda bildiriş alacaqsınız. İstəmədiyiniz halda kiliddən çıxarılarsa, telefonu yenidən kilidləmək üçün bildirişə toxunun."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Hər şey nəzarətiniz altındadır"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Ayarlarda saatı Saatla Kilidaçmadan silə bilərsiniz"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Bildirişə toxunun"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Kilid ekranında yuxarı sürüşdürün"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Saatınızı seçin"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Əlçatan saatlar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Ləğv edin"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Təsdiq edin"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hər şey hazırdır!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Kilid ekranında yuxarı sürüşdürdükdə və ya bildirişə toxunduqda saat ilə bu telefonu kiliddən çıxara bilərsiniz"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hazırdır"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Saatla Kilidaçma"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Kilid ekranında yuxarı sürüşdürməklə və ya bildirişə toxunmaqla bu telefonu saat ilə kiliddən çıxara bilərsiniz"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Saatla Kilidaçmadan istifadə üçün saat kiliddən çıxarılmalı, biləkdə, yaxında olmalı və bu telefona qoşulmalıdır. Bağlantı dayandıqda Saatla Kilidaçmadan istifadə üçün telefonu kiliddən çıxarmalısınız.\n\nUnutmayın:\nEyni anda yalnız bir saat ayarlamaq olar. Başqa saat əlavə etmək üçün cari saatı silin."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saatla Kilidaçma haqqında ətraflı məlumat"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Saat əlavə edin"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Saatı silin"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Barmaq İzi və Üz ilə Kiliddən Açma"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"İş üçün Üz və Barmaq izi ilə kiliddən çıxarma"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Ayarlamaq lazımdır"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Təhlükəsizlik"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Məxfilik"</string>
     <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="2274405892301976238">"Şəxsi tətbiqləri kilidli və gizli saxlayın"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Şəxsi tətbiqləri gizlədə və ya kilidləyə biləcəyiniz ayrı yerdə saxlayın"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Şəxsi məkan kilidi"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Şəxsi məkanı cihaz kilidi ilə kiliddən çıxara və ya fərqli kilid seçə bilərsiniz"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Cihazın ekran kilidini istifadə edin"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Üz və Barmaqla Kiliddən Açma"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Barmaqla kilidaçma"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Üzlə kilidaçma"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Ayarlamaq üçün toxunun"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Şəxsi Sahə üçün Barmaqla Kiliddən Açma"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Şəxsi Sahə üçün Üz ilə Kiliddən Açma"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Kiliddən çıxarma üsulları"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Cihazın ekran kilidi ilə eyni"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Şəxsi məkan üçün yeni kilid seçilsin?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Avtomatik kilidləyin"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Şəxsi sahəni avtomatik kilidləyin"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Cihazı bir müddət istifadə etmədikdə şəxsi sahəni avtomatik kilidləyə bilərsiniz"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Hər dəfə cihaz kilidləndikdə"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 dəqiqə fəaliyyətsizlikdən sonra"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Heç vaxt"</string>
+    <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_delete_title" msgid="3075645119800272800">"Şəxsi yeri silin"</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="private_space_unlocked" msgid="9091600948712932046">"Şəxsi sahə kiliddən çıxarıldı"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekran kilidi quraşdırın"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Bu cihazda ekran kilidi qurmaqla məxfi yerdən 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="private_space_cancel_label" msgid="379259667396956886">"Ləğv edin"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Ayarlayın"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Məxfi yer ayarlayın"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Şəxsi tətbiqləri gizlədə və ya kilidləyə biləcəyiniz ayrı yerdə saxlayın"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Haqqında"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Tətbiq siyahısının aşağısından məxfi yerə daxil ola bilərsiniz"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Məxfi yerdəki tətbiqlər kilid ilə qorunur"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Məxfi yer kilidlənəndə oradakı tətbiq bildirişləri gizlədilir"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Məxfi yer kilidləndikdə məxfi yerdəki tətbiqlər icazə meneceri, məxfilik paneli və digər ayarlarda görünməyəcək.\n\nMəxfi yer yeni cihaza köçürülə bilməz. Başqa cihazda istifadə etmək istəsəniz, başqa məxfi yer ayarlamalısınız.\n\nCihazı kompüterə qoşan və ya cihazda zərərli tətbiqlər quraşdıran istənilən şəxs məxfi yerə daxil ola bilər."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Məxfi yer ayarlanır…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Kilidli olduqda məxfi yerdəki tətbiq bildirişləri gizlədilir"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Şəxsi sahə tətbiqlərindən foto və ya fayl paylaşmaq üçün şəxsi sahənin kilidini açın"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Bəzi tətbiqlər artıq məxfi yerdə quraşdırılıb"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Məxfi yer ayarlanmadı"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Yenidən cəhd edin"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Məxfi yer ekran kilidi ilə açılsın?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Məxfi yerin kilidini cihaz ilə eyni qaydada aça və ya başqa kilid seçə bilərsiniz"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Ekran kilidi istifadə edin"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Yeni kilid seçin"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tam hazırdır!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Məxfi yerə daxil olmaq üçün tətbiq siyahısına keçib, aşağı sürüşdürün"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Hazırdır"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Məxfi yer tapmaq üçün aşağı sürüşdürün"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Məxfi yer üçün kilid seçin"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Barmaq izi ilə məxfi yeri kiliddən çıxara bilərsiniz. Güvənlik üçün bu seçim yedək kilid tələb edir."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Şəxsi sahə üçün PIN qurun"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Şəxsi sahə üçün parol qurun"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Şəxsi sahə üçün model qurun"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Şəxsi məkanın göstərilməsi (UX təcrübəsi deyil)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Ayarlar tətbiqini açın"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Təhlükəsizlik və məxfilik &gt; Şəxsi məkan &gt; Kilidləndikdə Şəxsi məkanı gizlədin"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Kilidləndikdə Şəxsi məkanı gizlədin keçiricisini söndürün"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google ekspertləri üçün qeyd: Bu funksiya inkişaf mərhələsindədir"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Siz bu əsas açarı digər cihazda da yazmalı ola bilərsiniz."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Əlaqələndirilmiş dəstlə birləşdirməyi təsdiq edin"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Kontaktlar və zəng tarixçəsinə giriş icazəsi verin"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Kontaktlar və zəng tarixçəsinə də giriş imkanı verin"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Məlumat zəng elanı və s. üçün istifadə ediləcək"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazına qoşula bilmədi."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Əlçatan cihazlar"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bluetooth aktiv olduqda cihaz yaxınlıqdakı Bluetooth cihazları ilə bağlantı qura bilər"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Uçuş rejimində"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"İctimai şəbəkələr barədə bildirilsin"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Yüksək keyfiyyətli ictimai şəbəkə əlçatan olduqda bildirin"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP şəbəkələrinə icazə verin"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP güvənliyi az olan köhnə təhlükəsizlik protokoludur"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Güvənliyi az olduğu üçün operator WEP şəbəkələrinə icazə vermir"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi avtomatik aktiv olsun"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Siqnalı keyfiyyətli olan saxlanmış şəbəkələr zonasında Wi-Fi aktivləşsin"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Əlçatan deyil çünki məkan deaktivdir. "<annotation id="link">"Məkanı"</annotation>" aktiv edin."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Bu funksiya hətta Wi-Fi deaktiv olanda da tətbiqlərə və xidmətlərə Wi-Fi axtarmağa imkan yaradır. Bununla da məkan haqqında məlumata ehtiyacı olan funksiya və xidmətlərin iş keyfiyyəti artmış olur."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktiv edin"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi skanı deaktiv edildi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Bu şəbəkə güvənliyi az olan köhnə təhlükəsizlik protokolundan istifadə edir"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> bloklanıb"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Bu şəbəkə güvənliyi az olan WEP adlı köhnə təhlükəsizlik protokolundan istifadə edir. Qoşulmaq üçün WEP şəbəkələrinə icazə verə bilərsiniz."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Güvənliyi az olan köhnə təhlükəsizlik protokolundan istifadə etdiyi üçün operator bu şəbəkəyə qoşulmağa icazə vermir"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP-ə icazə verin"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Bağlayın"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Qabaqcıl seçimlər"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Aşağıya açılan siyahı Qabaqcıl Seçimləri"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"genişləndirin"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi şəbəkəsində qalın"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Daha göstərməyin"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Qoşul"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi aktivdir"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> şəbəkəsinə qoşulub"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> şəbəkəsinə qoşulur"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Qoşulur…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Şəbəkəyə qoşulmaq alınmadı"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Şəbəkə aralıqda deyil"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Unudulsun"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Dəyişdirin"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Şəbəkəni unutmaq alınmadı"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Yadda saxlayın"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Şəbəkəni yadda saxlamaq alınmadı"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Ləğv edin"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobil data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Şarj edilir"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Şarj edilir"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot bağlantısı"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Bağlantı gücü"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saxlanılmış şəbəkələr"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Parol ayarlanmayıb"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot adı"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot parolu"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP Diapazonu"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspot avtomatik deaktiv edilsin"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Heç bir cihaz qoşulmadıqda"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Uyğunluğu artır"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Ağlıq balansını göstərin"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Defolt kadr tezliyini söndürün"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Oyunlar üçün kadr tezliyinin maksimum <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hs-də məhdudlaşmasnı deaktiv edin."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Hamar ekran görünüşü"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Adaptiv yuxu rejimi aktiv olanda cihaz ekrana baxdığınızı bilmək üçün ön kameranı istifadə edir. Şəkillər heç vaxt cihazdan kənara göndərilmir."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ekran həssaslığını aktiv edin"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekrana baxarkən onu aktiv saxlayın"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Ekranın sönmə müddəti uzun olsa, çox batareya enerjisi istifadə ediləcək."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera kilidlidir"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Üzün aşkarlanması üçün kameranın kilidi açılmalıdır"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ekran Həssaslığı üçün kamera kiliddən çıxarılmalıdır"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (sim yuvası <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (sim yuvası <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (əsas)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Baxmaq üçün saxlanılmış şəbəkə seçin"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"DƏQ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL versiyası"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Enerji səviyyəsi"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Kommunal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Kommunal ayarlar"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Yadda saxlayın"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Ləğv edin"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Ad sahəsi boş ola bilməz."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN boş ola bilməz."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC sahəsində 3 rəqəm olmalıdır."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC sahəsi 2 və ya 3 rəqəm olmalıdır."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operator %s növündə olan APN-lərin əlavə edilməsinə icazə vermir."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC sahəsi düzgün olmalıdır."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Defolt APN ayarları bərpa olunur."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Sıfırlayın"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Varsayılan APN ayarlarının sıfırlanması tamamlandı."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Sıfırlayın"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi‑Fi sıfırlanıb"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM\'ləri silin"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Yeni SIM kart endirmək üçün operatorla əlaqə saxlayın. Tarif planınıza təsir etməyəcək."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Ayarları sıfırlayın"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Bütün şəbəkə ayarları sıfırlansın? Bu əməliyyatı geri qaytara bilməzsiniz."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Bütün şəbəkə ayarları sıfırlansın və eSIM\'lər silinsin? Bu əməliyyatı geri qaytara bilməzsiniz."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Sıfırlansın?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Şəbəkə sıfırlaması bu istifadəçi üçün əlçatan deyil"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Şəbəkə ayarları sıfırlandı"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM-ləri silmək mümkün deyil"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Xəta baş verdiyinə görə eSIM\'ləri silmək mümkün deyil.\n\nCihazı yenidən başlatdıqdan sonra cəhd edin."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Bütün datanı silin (zavod sıfırlaması)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Bütün datanı silin (zavod sıfırlaması)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musiqi"</li>\n<li>"Fotolar"</li>\n<li>"Digər istifadəçi datası"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-lər"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Bununla mobil xidmət planı ləğv edilməyəcək."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Şəxsi məlumat və endirilən tətbiqlərin hamısı silinəcək. Bu əməliyyatı geri qaytara bilməzsiniz."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Endirilən tətbiqlər və SIM-lər daxil olmaqla şəxsi məlumatın hamısı silinəcək. Bu əməliyyatı geri qaytara bilməzsiniz."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Bütün data silinsin?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Zavod sıfırlaması bu istifadəçi üçün əlçatan deyil"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Silinir"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"İnternet digər cihazlarla paylaşılmır"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Deaktiv"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Modem rejimi"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi hotspot istifadə etməyin"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"İnterneti yalnız USB vasitəsilə paylaşın"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"İnterneti yalnız Bluetooth vasitəsilə paylaşın"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"İnterneti yalnız Ethernet vasitəsilə paylaşın"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"İnterneti yalnız USB və Bluetooth vasitəsilə paylaşın"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"İnterneti yalnız USB və Ethernet vasitəsilə paylaşın"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"İnterneti yalnız Bluetooth və Ethernet vasitəsilə paylaşın"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"İnterneti yalnız USB, Bluetooth və Ethernet vasitəsilə paylaşın"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-modem"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-modem"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-modem"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Digər cihazları mobil internetlə təmin etmək üçün hotspot və modem rejimini istifadə edin. Tətbiqlər kontent paylaşmaq üçün hotspot da yarada bilər."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Yardım"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobil şəbəkə"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobil plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS tətbiqi"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS tətbiqi dəyişilsin?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> tətbiqi <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerinə SMS tətbiqiniz olaraq işlənsin?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi yardımçısı dəyişdirilsin?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Şəbəkə bağlantılarını idarə etmək üçün <xliff:g id="CURRENT_APP">%2$s</xliff:g> əvəzinə <xliff:g id="NEW_APP">%1$s</xliff:g> istifadə edilsin?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Şəbəkə bağlantılarını idarə edilmək üçün <xliff:g id="NEW_APP">%s</xliff:g> istifadə edilsin?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Naməlum SIM operatoru"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> naməlum vebsayt təminatçısına malikdir"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lütfən, SİM kart daxil edin və yenidən başladın"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lütfən. internetə qoşulun"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Son məkan sorğuları"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"İş profili üçün yer"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Tətbiq məkanı icazələri"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Girişi təmizləyin"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrollar"</string>
     <string name="force_stop" msgid="2681771622136916280">"Dayandırılsın"</string>
+    <string name="archive" msgid="9074663845068632127">"Arxivə atın"</string>
+    <string name="restore" msgid="7622486640713967157">"Bərpa edin"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Toplam"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tətbiq ölçüsü"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB yaddaş tətbiqi"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Paket ölçüsü hesablana bilmədi."</string>
     <string name="version_text" msgid="7628938665256107608">"versiya <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Daşıyın"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arxivə atılmadı"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arxivə atıldı: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Bərpa edilmədi"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> bərpa edilir"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Digər miqrasiya artıq icra olunur."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Kifayət qədər yer yoxdur."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Tətbiq mövcud deyil."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Əlçatan Ekran klaviaturası"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Ekran klaviaturalarını idarə edin"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Seçimlər"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Əlçatımlıq"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziki klaviatura"</string>
     <string name="show_ime" msgid="4334255501724746849">"Ekran klaviaturası istifadə edin"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Fiziki klaviatura aktiv olanda görünsün"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Sıçrama düymələri"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Fiziki klaviatura əlçatımlığı üçün Sıçrama düymələrini aktivləşdirin"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Əvəzedici düymələr"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Fiziki klaviatura əlçatımlığı üçün Əvəzedici düymələri aktivləşdirin"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klaviatura qısayolları"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Qısayolların siyahısını göstərin"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"İş profili klaviaturaları və alətlər"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"İstifadə vaxtı üzrə çeşidləyin"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Son istifadə üzrə çeşidləyin"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Tətbiq adı üzrə çeşidləyin"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Son istifadə vaxtı"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Son istifadə"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"heç vaxt"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"İstifadə müddəti"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Əlçatımlılıq"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Əlçatımlılıq parametrləri"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Yenə də davam edin"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ləğv edin"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Böyütmə ayarları"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Üç dəfə klikləməklə böyüdün"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Qısayol ilə böyüdün"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Qısayol &amp; üç toxunuşla böyüdün"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> haqqında"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Açmaq üçün ekrana iki barmaqla iki dəfə toxunun"</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="860548190334486449">"Böyütməni başlatmaq və dayandırmaq üçün ekrana iki barmaqla iki 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Əlçatımlılıq funksiyasını 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_button" msgid="2031773187678948436">"Anladım"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Əlçatımlılıq düyməsi ayarları"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Düymə ayarları"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> qısayolu"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Xüsusi imkanlar düyməsi"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Əlçatımlılıq jesti"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Ekrana iki barmaqla iki dəfə toxunun"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ekrana iki barmaqla iki dəfə toxunun"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ekrana iki barmaqla {0,number,integer} dəfə cəld toxunun"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrana üç dəfə toxunun"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Əlçatımlılıq düyməsi və jest haqqında ətraflı öyrənin"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Xüsusi imkanlar düyməsi istifadə edilir. 3 düyməli naviqasiyada jest əlçatmazdır."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Xüsusi imkanlara cəld keçid"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Başlamaq üçün:"</b>\n"1. Əlçatımlılıq ayarlarına keçin\n2. Funksiyanı seçib qısayola toxunun\n3. Funksiyaya giriş üçün düymə və ya jestdən istifadə edib-etməyəcəyinizi seçin"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Başlamaq üçün:"</b>\n"1. Əlçatımlılıq ayarlarına keçin\n2. Funksiyanı seçib qısayola toxunun\n3. Funksiyaya giriş üçün düyməni seçin"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Başlamaq üçün&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Əlçatımlıq ayarlarına keçin&lt;br/&gt; {1,number,integer}. Funksiya seçin və qısayola toxunun&lt;br/&gt; {2,number,integer}. Funksiyaya giriş üsulu (düymə və ya jest) seçin&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Başlamaq üçün&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Əlçatımlıq ayarlarına keçin&lt;br/&gt; {1,number,integer}. Funksiya seçin və qısayola toxunun&lt;br/&gt; {2,number,integer}. Funksiyaya giriş üçün düymə seçin&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Düymə və ya jestdən istifadə edin"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Məkan"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Ölçü"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Qidalanma düyməsi zəngi sonlandırır"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Böyük maus kursoru"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Maus göstəricisini daha nəzərəçarpan edin"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Bütün tətbiqləri tündləşdirin"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Tətbiqlərə tünd tema olmadan aid edilir. Bəzi tətbiqlərdə görüntü problemi ola bilər."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animasiyalar silinsin"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Ekranda hərəkəti azaldın"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tətbiq və sensorlarla əlaqələrinizi izləyib tətbiqlərə adınızdan əmrlər verə bilər"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İcazə verin"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"İmtina edin"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Dayandırın"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Ləğv edin"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> dayandırılsın?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> seçiminə toxunduqda <xliff:g id="SERVICE">%2$s</xliff:g> dayandırılacaq."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Deaktiv"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Aktiv"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> deaktiv edilsin?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Heç bir xidmət quraşdırılmayıb"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Xidmət seçilmədi"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Heç bir təsvir verilməyib."</string>
     <string name="settings_button" msgid="2195468788019730377">"Ayarlar"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"işıq həssaslığı, fotofobiya, qaranlıq tema, miqren, baş ağrısı, oxu rejimi, gecə rejimi, parlaqlığı azalt, ağ nöqtə"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Asan istifadə, asan giriş, yardım, yardımçı"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"görmə, eşitmə, kor, kar, motorika, çeviklik, köməkçi, yardım, asan istifadə, asan giriş, əl, kömək"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Pəncərə Böyüdücü, Zoom, Böyütmə, Zəif görmə, Böyüt, böyüt"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Altyazı, qapalı altyazılar, Nüsxəni alan, Canlı Transkripsiya, eşitmə çətinliyi, eşitmə qabiliyyətinin itirilməsi, CART, nitqin mətnə çevrilməsi, subtitr"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"rəng kontrastı"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"sistem, maus"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"eşitmə aparatları, eşitmə çətinliyi, eşitmə qabiliyyətinin itməsi, qulaq ilbizi implantları, gücləndirmə cihazları, səs prosessorları"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, maus, xarici maus, baş ilə hərəkət etdirilən maus, adaptiv maus, əlil arabası, coystik"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"eşitmə aparatları, eşitmə çətinliyi, eşitmə qabiliyyətinin itməsi, qulaq ilbizi implantları, gücləndirmə cihazları, səs prosessorları, fərdi səs gücləndirmə məhsulları"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"eşitmə çətinliyi, eşitmə qabiliyyətinin itirilməsi, altyazılar, Teletayp, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"üç düymə"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"çeviklik, motorika, yaşlı, artrit, rsi, iflic, əsmə, dağınıq skleroz, serebral iflic, titrəmə, təkrarlanan gərginlik zədəsi, əl"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"gecikmə, çeviklik, yaşlı"</string>
     <string name="print_settings" msgid="8519810615863882491">"Çap"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Deaktiv"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 çap xidməti aktivdir}other{# çap xidməti aktivdir}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ən çox istifadə edilən tətbiqlərə baxın"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Batareyanı qorumaq üçün şarj optimallaşdırılıb"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Batareya ömrünü uzatmaq üçün şarj optimallaşdırılıb"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Batareyanı qorumaq üçün şarj optimallaşdırılıb"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Batareyanın ömrünü uzatmaq üçün dokda olarkən şarj optimallaşdırılıb"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Batareyanı qorumaq üçün şarj optimallaşdırılıb"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Batareyanın ömrünü uzatmaq üçün dokda olarkən şarj optimallaşdırılıb"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Tam dolana qədər şarj edilmə"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Batareyanı qorumaq üçün növbəti dəfə planşet dokda olduqda şarj optimallaşdırılacaq"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Şarjın durdurulması haqqında ətraflı məlumat"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Şarja davam edin"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Batareyadan çox istifadə edən arxa fon fəaliyyəti daxildir"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Silin"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Ləğv edin"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Tam şarj edin"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Şarj aksesuarı ilə bağlı problem"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Uyğunsuz şarj haqqında daha ətraflı"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Batareya Meneceri"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Tətbiqləri avtomatik idarə edin"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"indi"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g>, <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g>, <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Enerji istifadəsi diaqramı"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gündəlik batareyadan istifadə qrafiki"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Saatlıq batareyadan istifadə qrafiki"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Batareya səviyyəsinin faizi: <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>-<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Sonuncu tam şarjdan sonra batareya istifadəsi"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> üçün batareya istifadəsi"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Sonuncu tam şarjdan sonra ekran vaxtı"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Təcili zəng siqnalı"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Təcili zəng olduqda davranış təyin et"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Yedək"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Aktiv"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Deaktiv"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Yedəkləyin &amp; bərpa edin"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Şəxsi məlumat"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Məlumatlarımın rezervlə"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Ad"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Növ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Server ünvanı"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP şifrələmə (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secret"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikatoru"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec öncədən paylaşılmış açar"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec istifadəçi sertifikatı"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA sertifikatı"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec server sertifikatı"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Digər seçimlər"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS axtarış domenləri"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS serverləri (məsələn, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Yönləndirmə marşrutları (məsələn, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"İstifadəçi adı"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Parol"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Hesab məlumatı yadda saxlayın"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(istifadə edilməyib)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(serveri yoxlama)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(serverdən alınıb)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Bu VPN növü həmişə qoşulu qala bilmir"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Həmişə aktiv olan VPN yalnız rəqəmli server ünvanlarını dəstəkləyir"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Həmişə aktiv olan VPN üçün DNS serveri göstərilməlidir"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Həmişə aktiv olan VPN üçün DNS server ünvanları rəqəmli olmalıdır"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Daxil edilən məlumat həmişə aktiv olan VPN\'i dəstəkləmir"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Ləğv edin"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Rədd edin"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN\'siz bağlantıları blok edin"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN bağlantısı tələb edilir?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Güvənli deyil. IKEv2 VPN seçiminə güncəlləyin"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Dəstəklənməyən VPN başladılmadı."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Həmişə qoşulu qalmaq üçün VPN profili seçin. Yalnız bu VPN\'ə qoşulu olduqda şəbəkə trafikinə icazə veriləcək."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Heç biri"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Qoşulu VPN həmişə server və DNS üçün IP ünvan tələb edir."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"KƏHRƏBAYI siqnallar"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Uşaqların qaçırılması haqqında bülletenlər əldə edin"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Təkrarla"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Çağrı Menecerinə icazə verin"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Bu xidmətə çağrılarınızın edilməsini idarə etməyə icazə verin."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Çağrı Meneceri"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Fövqəladə hal xəbərdarlıqları"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Şəbəkə operatorları"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Giriş nöqtəsi adları"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"pulqabı"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ödəyin, tıklayın, ödəmələr"</string>
     <string name="keywords_backup" msgid="707735920706667685">"yedəkləmə, yedəkləyin"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"jest"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"üz, kiliddən çıxarma, orijinal, giriş"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"üz, kilidin açılması, doğrulama, giriş, barmaq izi, biometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl versiyası, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Səsləri aktiv edin"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Avtomatik subtitrlər"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Avtomatik başlıq mediası"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefon dinamikləri"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Planşet dinamikləri"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Cihaz dinamikləri"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Simli qulaqlıq"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Uyğun mediadan gələn audio daha immersiv olur"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Deaktiv"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ekran kilidində nə göstərilməsini istəyirsiniz?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Son söhbətlər silinib"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Söhbət silinib"</string>
     <string name="clear" msgid="5092178335409471100">"Silin"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> adlı söhbəti silin"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Önəmli və dəyişilmiş söhbətlər burada görünəcək"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Söhbəti önəmli kimi işarələdikdə və ya digər dəyişiklik etdikdə, söhbət burada görünəcək. \n\nSöhbət ayarlarını dəyişmək üçün: \nEkranın yuxarısından aşağı sürüşdürərək bildiriş panelini açın, sonra söhbətə toxunub saxlayın."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Kiçildin"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Deaktiv"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Tətbiq bərkidilməsi"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Bununla cari tətbiqi ekranda bərkidərək digər tətbiqlərə girişi bağlamaq olar. Bu funksiya, örnək olaraq, cihazda oyun oynamaq üçün onu digər şəxsə verdiyiniz zaman lazım olur."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Tətbiq bərkidildikdə, bu tətbiq başqa tətbiqləri aça bilər və şəxsi dataya giriş edilə bilər. \n\nTətbiq bərkidilməsini istifadə etmək üçün: 	\n1. Tətbiq bərkidilməsini aktiv edin \n2. İcmalı Açın \n3. Ekranın yuxarısında tətbiq ikonasına toxunun, sonra \"Bərkidin\" seçiminə toxunun"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Tətbiq bərkidildikdə, bu tətbiq başqa tətbiqləri aça bilər və şəxsi dataya giriş edilə bilər. \n\nCihazınızı etibarlı şəkildə başqası ilə paylaşmaq istəyirsinizsə, qonaq istifadəçi istifadə edin. \n\nTətbiq bərkidilməsini istifadə etmək üçün: 	\n1. Tətbiq bərkidilməsini aktiv edin \n2. İcmalı Açın 	\n3. Ekranın yuxarısında tətbiq ikonasına toxunun, sonra \"Bərkidin\" seçiminə toxunun"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Bərkidilmiş tətbiq digər tətbiqləri aça və şəxsi dataya giriş edə bilər. \n\nTətbiq bərkidilməsindən istifadə üçün: 	\n{0,number,integer}. Tətbiq bərkidilməsini aktiv edin 	\n{1,number,integer}. İcmalı açın 	\n{2,number,integer}. Ekranın yuxarısında tətbiq ikonasına, sonra \"Bərkidin\" seçiminə toxunun"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Bərkidilmiş tətbiq digər tətbiqləri aça və şəxsi dataya giriş edə bilər. \n\nQonaq istifadəçi seçimi vasitəsilə cihazı başqası ilə təhlükəsiz paylaşa bilərsiniz. \n\nTətbiq bərkidilməsindən istifadə üçün: 	\n{0,number,integer}. Tətbiq bərkidilməsini aktiv edin 	\n{1,number,integer}. İcmalı açın 	\n{2,number,integer}. Ekranın yuxarısında tətbiq ikonasına, sonra \"Bərkidin\" seçiminə toxunun"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Tətbiq sancıldıqca:\n\n• şəxsi məlumatlara girə bilər (kontaktlar və ya mesajlar kimi);\n• digər tətbiqləri aça bilər.\n\n\nBu funksiyanı cihazı verdiyiniz şəxsə güvəndiyiniz halda istifadə edin."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Qrafik açar istənilsin"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Ayırmadan öncə PIN istənilsin"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"İstifadə edilməyən tətbiq ayarları"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"İstifadə edilmədikdə tətbiq fəaliyyətini durdurun"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"İcazələri silin, müvəqqəti faylları silin və bildirişləri dayandırın"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"İstifadə edilmədikdə tətbiqi idarə edin"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"İcazələri, müvəqqəti faylları silin, bildirişləri dayandırın və tətbiqi arxivə atın"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Bütün tətbiqlər"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Quraşdırılmış tətbiqlər"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Ani tətbiqlər"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Boş"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Tətbiq tərəfindən istifadə olunmuş yaddaş"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 tətbiq son {time} ərzində yaddaşdan istifadə edib}other{# tətbiq son {time} ərzində yaddaşdan istifadə edib}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Yaddaş incələməsini aktivləşdirin"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Yaddaş istifadəsinin incələnməsi üçün əlavə sistem resursları lazımdır."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Yaddaş incələməsi deaktivdir"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Tezlik"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimum istifadə"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Data istifadə olunmayıb"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Tətbiqlərin üzərində"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Tətbiqlərin üzərində"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Bu tətbiqə işlətdiyiniz digər tətbiqlərin üzərində göstərilmək icazəsi verin. Bu tətbiq hara toxunduğunuzu görə və ya ekranda göstəriləni dəyişə biləcək."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Media çıxışını dəyişin"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Tətbiqə media çıxışını dəyişmək icazəsi verin"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Bu tətbiqə digər tətbiqlərdən audio və ya video oxudacaq qoşulmuş cihazı seçmək icazəsi verin. İcazə verilsə, bu tətbiq qulaqlıq və dinamiklər kimi əlçatan cihazların siyahısına daxil ola, audio və ya video yayımlamaq üçün istifadə ediləcək çıxış cihazını seçə bilər."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Bütün fayllara giriş"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Səslə aktivləşdirməni təkmilləşdirin"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Bu cihaz səslə aktivləşdirmə modelini təkmilləşdirmək üçün məxfi araşdırmadan istifadə edir. Tətbiqlər modeli təkmilləşdirərkən məxfiliyi qorumaq üçün bir çox istifadəçidən toplanmış ümumi yeniləmələr qəbul edə bilər.\n\n"<a href="">"Məxfi araşdırma haqqında ətraflı"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> trafik xəbərdarlığı"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> trafik limiti"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data xəbərdarlığı / <xliff:g id="ID_2">^2</xliff:g> data limiti"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operator data hesablanması cihazınızın hesablamasından fərqli ola bilər"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Operatorun işlətdiyi trafik istisnadır"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> istifadə edildi"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Xəbərdarlıq ayarlayın"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> əvvəl yeniləndi"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> tərəfindən indicə yeniləndi"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"İndi güncəlləşdirilib"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Plana baxın"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Detallara baxın"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Trafikə qənaət"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Məhdudlaşmamış mobil internet"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Batareya istifadəsi anomaliyası"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Cəld ayarlarda elementlər"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Adb icazəsi vaxt bitməsi deaktiv edilsin"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Defolt (7 gün) və ya istifadəçi tərəfindən müəyyən edilmiş (minimum 1 gün) müddətdə təkrar qoşulmayan sistemlər üçün adb icazələrinin avtomatik ləğvi deaktiv edilsin."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Fəaliyyəti"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensorlar Deaktivdir"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"İş profil ayarları"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Şəxsi tətbiqlərdə iş kataloqu kontaktlarını axtarın"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Rəqəmsal assistent tətbiqini aktiv etmək üçün aşağı küncdən yuxarı sürüşdürün"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Avtodoldurma xidməti"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Defolt avtomatik doldurma xidməti"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Parollar"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Parol, açar və data xidmətləri"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Əlavə provayderlər"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parol}other{# parol}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"avto, doldur, avto doldurma, parol"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Parol, açar və data xidmətləri"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Bütün xidmətlər deaktiv edilsin?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Daxil olduqda parol, giriş açarı və yadda saxlanmış digər məlumatlar avtomatik doldurulmayacaq"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Tərcih edilən xidməti buna dəyişin: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&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_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s istifadə edilsin?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Yalnız 5 xidmət aktiv ola bilər"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Başqa xidmət əlavə etmək üçün ən azı 1-ni deaktiv edin"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s avto doldurma üçün ekrandakı məlumatdan istifadə edir."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Parol, açar və data xidmətləri limiti"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Eyni anda maksimum 5 parol, açar və data xidməti aktiv ola bilər. Yenisini əlavə etmək üçün xidmətlərdən birini deaktiv edin."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Parol, giriş açarı və data xidmətləri limiti"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Eyni anda maksimum 5 parol, giriş açarı və data xidməti aktiv ola bilər. Yenisini əlavə etmək üçün bir xidməti deaktiv edin."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Deaktiv edin"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Avtodoldurma"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Jurnal səviyyəsi"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Yalnız sazlanmaya açıq tətbiqlərin uyğunluq parametrlərinə dəyişiklik mümkündür. Sazlana bilən tətbiq quraşdırıb təkrar cəhd edin."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Digər ayardan aslıdır"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Hesab"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d hesab"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Cihaz adı"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Əsas məlumat"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Hüquqi və normativ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC teq skanlandıqda bu tətbiqin başladılmasına icazə verin.\nBu icazə aktivdirsə, teq aşkarlandıqda tətbiq seçim kimi əlçatan olacaq."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Medianı oxudun"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> burada oxudulsun:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio oxudulacaq"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Bu cihaz"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Zənglər zamanı əlçatan deyil"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Zəng qəbul edin"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Susdurun"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Aktiv etmək üçün \"Qidalanma düyməsini basıb saxlamanı\" qidalanma menyusuna dəyişin."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Şəbəkə detalları"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Cihazın adı telefondakı tətbiqlərdə görünəcək. Bluetooth cihazlarına qoşulduqda və ya Wi-Fi hotspotu ayarladıqda digərləri də onu görə bilər."</string>
     <string name="devices_title" msgid="649715719278562515">"Cihazlar"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Şəbəkə seçin"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Bağlantı kəsildi"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Ad"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Rəng (uyğun cihazlarda istifadə edilir)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Yadda saxlayın"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM istifadə edin"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Bu SIM-dən istifadə edin"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Deaktiv"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Bu SIM-i deaktiv etmək üçün SIM kartı silin"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> operatorunu aktiv etmək üçün toxunun"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM-i silin"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Şəbəkə növü"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Şəbəkə əməliyyat rejimini dəyişin"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Şəbəkə növü"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Qiymətlər üçün şəbəkə provayderi ilə yoxlayın."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Tətbiq trafiki"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Yanlış Şəbəkə Rejimi <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. İqnor edin."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Giriş nöqtəsi adları"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> ünvanına qoşulduqda əlçatan deyil"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> operatoruna keçilsin?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM kart istifadəsinə keçilsin?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> istifadə edilsin?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Eyni vaxtda yalnız bir SIM aktiv ola bilər.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operatoruna keçdikdə <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> xidməti ləğv edilməyəcək."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Eyni vaxtda yalnız 1 eSIM aktiv ola bilər.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operatoruna keçdikdə <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> xidməti ləğv edilməyəcək."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Eyni vaxtda yalnız bir SIM aktiv ola bilər.\n\nDigərinə keçdikdə <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> xidməti ləğv edilməyəcək."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Eyni vaxtda 2 SIM istifadə edə bilərsiniz. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> istifadə etmək üçün digər SIM\'i deaktiv edin."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> operatoruna keçin"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> cihazını deaktiv edin"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Xeyr, təşəkkür"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Ləğv edin"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Keçin"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Deaktiv edin"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-i aktiv etmək mümkün deyil"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM-i yenidən aktiv etməyə çalışın. Problem həll olmasa, cihazı yenidən başladın."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM ayarlayın"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Bu cihazda bir neçə SIM istifadə etmək üçün mobil şəbəkə tərcihlərini ayarlayın"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM-ləri etiketləyin"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Zəng edərkən, mətn mesajı göndərərkən, data istifadəsi zamanı, habelə Ayarlarda bu etiketləri görəcəksiniz"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM etiketi"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiket"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"İstifadə üçün SIM-ləri seçin"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Eyni anda 2 SIM istifadə edə bilərsiniz"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Əsas SIM-ləri ayarlayın"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Zənglər, mətn mesajları və data üçün defolt istifadə ediləcək SIM-ləri seçin"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Əsas SIM-lər"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Zənglər"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mətn mesajları"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Avtomatik data keçirmə"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Əhatə dairəsi və əlçatanlıqdan asılı olaraq istənilən SIM-in datasından istifadə edin"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Yalnız data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Ayarlayın"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Növbəti"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobil şəbəkə"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefon nömrəsi"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM etiketi və rəngi"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Şəbəkənin aktiv edilməsi"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operator dəyişdirilir"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> aktivdir"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Sonradan mobil data, zəng funksiyaları və SMS-dən istifadə etmək üçün şəbəkə ayarlarına keçin"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Bu eSIM silinsin?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Bu SIM silindikdə <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> xidməti bu cihazdan silinəcək.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> üçün xidmət ləğv edilməyəcək."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Silin"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM silinir…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM-i silmək mümkün deyil"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Xəta baş verdiyinə görə bu SIM-i silmək mümkün deyil.\n\nCihazı yenidən başlatdıqdan sonra cəhd edin."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Cihaza qoşulun"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> cihazınıza qoşulmaq üçün müvəqqəti Wi‑Fi şəbəkəsindən istifadə etmək istəyir"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Cihaz tapılmadı. Cihazların aktiv olması və qoşulmaq üçün əlçatan olmasından əmin olun."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Təcili zənglər"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Operator Wi‑Fi Zəngi ilə təcili zəngləri dəstəkləmir.\nTəcili zəng etmək üçün cihaz avtomotik olaraq mobil şəbəkəyə keçir.\nTəcili zənglər yalnız mobil əhatə dairələrində əlçatandır."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Keyfiyyəti təkmilləşdirmək üçün zənglər zamanı Wi‑Fi şəbəkəsindən istifadə edin"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Yedək zəng"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> əlçatan olmasa və ya rouminq rejimində olsa, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> zəngləri üçün mobil data SIM-inizdən istifadə edin."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"yedək zəng"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Gələn MMS mesajı"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS mesajı göndərmək mümkün deyil"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Mobil data deaktiv olduqda <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> ilə MMS mesajı göndərməyə icazə vermək üçün toxunun"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"İş siyasətiniz haqqında məlumat"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Ayarlar IT admininiz tərəfindən idarə edilir"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K səhifə ölçüsü ilə yükləyin"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Cihazı 16K səhifə ölçüsünə uyğun özək ilə yükləyin"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB səhifələrə uyğun özək ilə yenidən yüklənsin?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"XƏBƏRDARLIQ: Bəzi tətbiqlər bu rejim ilə uyğun olmaya bilər. Təsdiqdən sonra cihaz yenidən yüklənəcək."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB səhifələrə uyğun özək ilə yenidən yüklənsin?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Təsdiqdən sonra cihaz yenidən yüklənəcək."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Özək 16KB səhifələrə uyğun özəyə güncəllənmədi."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Dəyişiklik tətbiq edilir"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Baq hesabatı idarəedicisi"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Seçilmiş tətbiq xəta hesabatının göndərilməsi düyməsini basanda işə salınacaq."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Şəxsi"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Oxutmanı cəld davam etdirmək üçün media pleyer Sürətli Ayarlarda açıq qalır"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Kilid ekranında medianı göstərin"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Oxutmanı cəld davam etdirmək üçün media pleyer kilid ekranında açıq qalır"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Media tövsiyələri göstərilsin"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistent media tövsiyələrini göstərin"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Fəaliyyətinizə əsaslanır"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Oyunçunu gizlədin"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Pleyerə baxın"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM\'lər"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiv"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"İnaktiv"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> üçün defolt"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"zənglər"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Uyğun mediadan gələn audio daha immersiv olur"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Baş izləməsi"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Daha təbii səslənmək üçün başınızı hərəkət etdirdikcə səs dəyişir"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"İcazələri sinxronlaşdırın"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> cihazına <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> cihazındakı tətbiq icazələrini verin"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"İcazələri telefondan sinxronlaşdırın"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Saata bu telefondakı ilə eyni tətbiq icazələri verin"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audiocihaz növü"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Naməlum"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Dinamik"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Orta"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Yüksək"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Bu tətbiq yalnız 1 pəncərədə açıla bilər"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktiv"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Deaktiv"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Deaktiv"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Deaktiv"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Aktiv"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Deaktiv"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Aktiv"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Deaktiv"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"İşıqlı ekranları tündləşdirir, tünd ekranları işıqlandırır"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Ekranda yaxınlaşdırın"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Deaktiv"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Deaktiv"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Aktiv"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Deaktiv"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Aktiv"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Parol qurulub"</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index bee9f81..880334d 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Posle 1 minuta"</item>
     <item msgid="1574040255478150028">"Posle 5 minuta"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index ea91957..a66cb55 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Postali ste programer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nema potrebe, već ste programer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Prvo omogućite opcije za programere."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Samo korisnici sa administratorskim pravima mogu da pristupe podešavanjima za programere."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Radi"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ne radi"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Prednji ekran se uključuje kada preklopite uređaj"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Samo igre, videi i drugo"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Prednji ekran se uključuje za aplikacije koje onemogućavaju da ekran bude neaktivan"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Prevucite nagore da biste nastavili"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Sklopite telefon i prevucite nagore na prednjem ekranu da biste i dalje korisili aplikaciju ili sačekajte nekoliko sekundi da se ekran zaključa"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nikad"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Prednji ekran se zaključava kada preklopite uređaj"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Koristi automatsko rotiranje"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Srodno"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Melodija zvona i alarmi"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zvuk tokom poziva"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Mediji"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Obaveštenja i drugi sistemski zvuci"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Zvuci medija i sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Obaveštenja"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Audio izlaz podrazumevano određuju pojedinačne aplikacije"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Neimenovani Bluetooth uređaj"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Pretražuje se"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth je uključen"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Prikaži sve"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Prikaži sve"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pisaljka"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pritisak na dugme sa zadnje strane"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (poslovni profil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Povežite se sa LE Audio strimom"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Audio strimovi u blizini"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audio strimovi"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Povežite se sa audio strimom pomoću QR koda"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nema audio strimova u blizini."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Da biste izabrali jezik za svaku aplikaciju, idite u podešavanja jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saznajte više o jezicima aplikacija"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Želite da jezik sistema od sada bude %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Želite da dodate %s u željene jezike?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Time se aplikacije i veb-sajtovi obaveštavaju da vam je taj jezik željeni."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Podešavanja uređaja i regionalna podešavanja će se promeniti."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Promeni"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Nije dostupno: %s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"subota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ako aplikacija ne podržava regionalna podešavanja, koristiće podrazumevana podešavanja lokaliteta."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Saznajte više o podešavanjima jezika."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Dodatna podešavanja"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Željeni rod za obraćanje"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Podesite rod u kom želite da vam se obraća"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Da bi način obraćanja bio personalizovan, aplikacije mogu da vam se obraćaju u rodu koji izaberete"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nije navedeno"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski rod"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Muški rod"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutralno"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Želite li da uklonite izabrani jezik?}one{Želite li da uklonite izabrane jezike?}few{Želite li da uklonite izabrane jezike?}other{Želite li da uklonite izabrane jezike?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst će biti prikazan na nekom drugom jeziku."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nije moguće ukloniti sve jezike"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokacija"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Koristi lokaciju"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključena"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Uključeno – # aplikacija ima pristup lokaciji}one{Uključeno – # aplikacija ima pristup lokaciji}few{Uključeno – # aplikacije imaju pristup lokaciji}other{Uključeno – # aplikacija ima pristup lokaciji}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno/# aplikacija ima pristup lokaciji}one{Uključeno/# aplikacija ima pristup lokaciji}few{Uključeno/# aplikacije imaju pristup lokaciji}other{Uključeno/# aplikacija ima pristup lokaciji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitava se…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije sa dozvolom za uređaje u blizini mogu da odrede približan položaj povezanih uređaja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji je isključen za aplikacije i usluge. Lokacija uređaja može i dalje da se šalje ekipama hitnih službi kada pozovete broj za hitne slučajeve ili pošaljete SMS na njega."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Saznajte više o podešavanjima lokacije."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o podešavanjima lokacije"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Za promenu pristupa lokaciji: Podešavanja &gt; Bezbednost i privatnost &gt; Kontrole privatnosti"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Da biste imali najbolje rezultate, koristite zaštitu za ekran sa sertifikatom Napravljeno za Google. Otisak prsta deteta možda neće raditi sa drugim zaštitama za ekran."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Otključavanje satom"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Kad podesite otključavanje licem i otključavanje otiskom prsta, telefon će vam tražiti otisak prsta kad nosite masku ili se nalazite na nekom mračnom mestu.\n\nAko nije moguće prepoznati lice ili otisak prsta, možete da ga otključate satom."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Ako otisak prsta ne može da se prepozna, možete da otključate uređaj satom."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Ako lice ne može da se prepozna, možete da otključate uređaj satom."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Kad podesite otključavanje licem i otključavanje otiskom prsta, telefon će vam tražiti otisak prsta kad nosite masku ili se nalazite na nekom mračnom mestu.\n\nOtključavanje satom je još jedan pogodan način za otključavanje telefona, na primer, kada su vam prsti mokri ili se lice ne prepoznaje."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Otključavanje satom je još jedan pogodan način za otključavanje telefona, na primer, kada otisak prsta nije prepoznat."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Otključavanje satom je još jedan pogodan način za otključavanje telefona, na primer, kada vam se lice ne prepoznaje."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Koristite otisak prsta ili sat za"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Koristite lice ili sat za"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Koristite lice, otisak prsta ili sat za"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodati su lice i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodati su lice, otisak prsta i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodati su lice, otisci prstiju i <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Otključavanje uz Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Sat je dodat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Podesite sat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Otključavanje satom je još jedan pogodan način za otključavanje ovog telefona, na primer, kada su vam prsti mokri ili se lice ne prepoznaje.\n\nMožete da koristite sat da biste otključali ovaj telefon kada:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne sada"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nastavi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Još"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Princip rada"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Sat mora da bude otključan, na zglobu i u domašaju ovog telefona. Sat nećete morati da otključavate ponovo dok vam je na zglobu."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Dobićete obaveštenje na satu kada se ovaj telefon otključa. Ako se otključao kada to niste želeli, dodirnite obaveštenje da biste ga ponovo zaključali."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ti imaš kontrolu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Sat možete da uklonite iz otključavanja satom u bilo kom trenutku u podešavanjima"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dodirnite obaveštenje"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Prevucite nagore na zaključanom ekranu"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Odaberite sat"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupni satovi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Otkaži"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Spremni ste!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Sada možete da koristite sat da biste otključali ovaj telefon kada prevučete nagore na zaključanom ekranu ili dodirnete obaveštenje"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotovo"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Otključavanje satom"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Možete da koristite sat da biste otključali ovaj telefon kada prevučete nagore na zaključanom ekranu ili dodirnete obaveštenje"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Da biste koristili otključavanje satom, sat mora da bude otključan, na zglobu, u domašaju i povezan sa ovim telefonom. Ako se veza prekine, moraćete da otključate telefon da biste mogli da koristite otključavanje satom.\n\nImajte na umu:\nU jednom navratu možete da podesite samo jedan sat. Da biste dodali drugi sat, prvo uklonite aktuelni sat."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o otključavanju sata"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ukloni sat"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Treba da podesite"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Bezbednost"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privatnost"</string>
     <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="2274405892301976238">"Neka privatne aplikacije budu zaključane i sakrivene"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Čuvajte privatne aplikacije u zasebnom prostoru koji možete da sakrijete ili zaključate"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Zaključavanje privatnog prostora"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Koristi zaključavanje ekrana uređaja"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Otključavanje licem i otiskom prsta"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Otključavanje otiskom prsta"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Otključavanje licem"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Dodirnite da biste podesili"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Otključavanje otiskom prsta za privatni prostor"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Otključavanje licem za privatni prostor"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Načini za otključavanje"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Isto kao zaključavanje ekrana uređaja"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Odabraćete novo zaključavanje za privatni prostor?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automatski zaključaj"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Automatski zaključajte privatan prostor"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Možete automatski da zaključate privatan prostor ako uređaj niste koristili neko vreme"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Svaki put kad se uređaj zaključa"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Posle 5 minuta neaktivnosti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nikad"</string>
+    <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_delete_title" msgid="3075645119800272800">"Izbriši privatni prostor"</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="private_space_unlocked" msgid="9091600948712932046">"Privatni prostor je otključan"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Podesite zaključavanje ekrana"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Da biste koristili privatni prostor, podesite zaključavanje ekrana na ovom 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="private_space_cancel_label" msgid="379259667396956886">"Otkaži"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Podesi"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Podesite privatni prostor"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Čuvajte privatne aplikacije u zasebnom prostoru koji možete da sakrijete ili zaključate"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Princip rada"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Privatnom prostoru možete da pristupite sa dna liste aplikacija"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikacije u privatnom prostoru su zaštićene zaključavanjem"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Obaveštenja iz aplikacija u privatnom prostoru su skrivena kad je on zaključan"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Kad je privatni prostor zaključan, aplikacije u njemu se neće prikazivati u menadžeru dozvola, na kontrolnoj tabli za privatnost ni u drugim podešavanjima.\n\nPrivatni prostor ne možete da premestite na novi uređaj. Morate da podesite drugi privatni prostor ako želite da ga koristite na drugom uređaju.\n\nSvako ko vaš uređaj poveže sa računarom ili na njega instalira štetne aplikacije moći će da pristupi vašem privatnom prostoru."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Podešava se privatni prostor…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Obaveštenja iz aplikacija u privatnom prostoru su skrivena kad je on zaključan"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Otključajte privatni prostor da biste delili slike ili fajlove iz aplikacija u privatnom prostoru"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Neke aplikacije su već instalirane u privatnom prostoru"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Podešavanje privatnog prostora nije uspelo"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Probaj ponovo"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Otključati privatni prostor otključavanjem ekrana?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Privatni prostor možete da otključavate isto kao što otključavate uređaj ili da odaberete drugačiji tip otključavanja"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Koristi otključavanje ekrana"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Odaberi novi tip otključavanja"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Gotovo!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Da biste pristupili privatnom prostoru, otvorite listu aplikacija i skrolujte nadole"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Gotovo"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Skrolujte nadole da biste pronašli privatni prostor"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Odaberite tip otključavanja za privatni prostor"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Privatni prostor možete da otključate pomoću otiska prsta. Ova opcija zahteva rezervni tip otključavanja iz bezbednosnih razloga."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Podesite PIN za privatni prostor"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Podesite lozinku za privatni prostor"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Podesite obrazac za privatni prostor"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Da biste prikazali privatno prostor (nije konačni UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Otvorite aplikaciju Podešavanja"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Dodirnite Bezbednost &amp; Privatnost &gt; Privatni prostor &gt; Sakrijte privatni prostor kad je zaključan"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Prekidač Sakrijte privatni prostor kad je zaključan"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Napomena zaposlenima u Google-u: Programiranje ove aplikacije je još u toku"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Možda će biti potrebno da unesete ovaj pristupni kôd i na drugom uređaju."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrdite radi uparivanja sa koordinisanim skupom"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dozvoli pristup kontaktima i istoriji poziva"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Dozvoli i pristup kontaktima i istoriji poziva"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacije će se koristiti za obaveštenja o pozivima i drugo"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nije moguće povezati se sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupni uređaji"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"U Režimu rada u avionu"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Obavesti me o javnim mrežama"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Obaveštava vas kad god je dostupna javna mreža visokog kvaliteta"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Dozvoli WEP mreže"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP je stariji bezbednosni protokol koji je manje siguran"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Mobilni operater ne dozvoljava WEP mreže jer su manje bezbedne"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Automatski uključi Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"WiFi će se ponovo uključiti u  blizini sačuvanih mreža visokog kvaliteta, kao što je kućna mreža"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nije dostupno jer je lokacija isključena. Uključite "<annotation id="link">"lokaciju"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"WiFi skeniranje omogućava aplikacijama i uslugama da traže WiFi mreže u bilo kom trenutku, čak i kada je WiFi isključen. Ovo, na primer, može da se koristi za poboljšanje funkcija i usluga zasnovanih na lokaciji."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Uključi"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi skeniranje je uključeno"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ova mreža koristi stariji bezbednosni protokol koji je manje siguran"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Mreža <xliff:g id="NAME">%1$s</xliff:g> je blokirana"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Mreža koristi stariji bezbednosni protokol zvani WEP koji je manje siguran. Da biste se ipak povezali, dozvolite WEP mreže."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Mobilni operater ne dozvoljava da se povežete sa ovom mrežom jer ona koristi stariji bezbednosni protokol koji je manje siguran"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Dozvoli WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zatvori"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Napredne opcije"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Padajuća lista sa naprednim opcijama"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"proširite"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani na Wi‑Fi-ju"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne prikazuj ponovo"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Poveži"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi je uključen"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano je na mrežu <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Povezujete se na <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Povezuje se…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Povezivanje sa mrežom nije uspelo"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Zaboravi"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Izmeni"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Brisanje mreže nije uspelo"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Sačuvaj"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Čuvanje mreže nije uspelo"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Otkaži"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"WiFi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobilni podaci"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Eternet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Punjenje"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Punjenje"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot veza"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Jačina veze"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Sačuvane mreže"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Niste podesili lozinku"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Naziv hotspota"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Lozinka hotspota"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Opseg pristupne tačke"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Automatski isključi hotspot"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kada nijedan uređaj nije povezan"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Povećaj kompatibilnost"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balans bele ekrana"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Onemogući podraz. brz. kadrova"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Onemogućite ograničavanje maksimalne brzine kadrova za igre na <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Tečni prikaz"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Pažnja ekrana koristi prednju kameru da bi utvrdila da li neko gleda u ekran. Radi na uređaju, a slike se nikada ne čuvaju niti šalju Google-u."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Uključite pažnju ekrana"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Sprečite isključivanje ekrana dok ga gledate"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Duže vreme za gašenje ekrana troši više baterije."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera je zaključana"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera mora da bude otključana radi prepoznavanja lica"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera mora da bude otključana radi pažnje ekrana"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (otvor za SIM karticu <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (otvor za SIM karticu <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primarni)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Da biste videli, odaberite sačuvanu mrežu"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL verzija"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivo baterije"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Zajedničko"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Zajednička podešavanja"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Sačuvaj"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Otkaži"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Polje Naziv ne sme da bude prazno."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Polje Naziv pristupne tačke ne sme da bude prazno."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Polje MCK mora da sadrži 3 cifre."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC polje mora da sadrži 2 ili 3 cifre."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Mobilni operater ne dozvoljava nazive pristupnih tačaka tipa %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Polje za MMSC mora da ima važeću vrednost."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Vraćanje podrazumevanih podešavanja naziva pristupne tačke."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Resetuj na podrazumevano"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Ponovno postavljanje podrazumevanih podešavanja naziva pristupne tačke je završeno."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Resetuj"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth i WiFi su resetovani"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Obriši eSIM-ove"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Ovim ne otkazujete nijedan tarifni paket. Da biste preuzeli nove SIM kartice, obratite se mobilnom operateru."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Resetuj podešavanja"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Želite li da resetujete sva podešavanja mreže? Ova radnja ne može da se opozove."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Želite li da resetujete sva podešavanja mreže i obrišete eSIM-ove? Ne možete da opozovete ovu radnju."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Želite da resetujete?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Resetovanje mreže nije dostupno za ovog korisnika"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Podešavanja mreže su resetovana"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Brisanje SIM kartica nije uspelo"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-ovi ne mogu da se obrišu zbog greške.\n\nRestartujte uređaj i probajte ponovo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Obriši sve podatke (fabrička podešavanja)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Obriši sve podatke (fabrička podešavanja)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"muziku"</li>\n<li>"slike"</li>\n<li>"druge podatke korisnika"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-ovi"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Na taj način nećete otkazati mobilni tarifni paket."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Izbrisaćete sve lične podatke i preuzete aplikacije. Ova radnja ne može da se opozove."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Svi lični podaci, uključujući preuzete aplikacije i SIM kartice, biće izbrisani. Ova radnja ne može da se opozove."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Želite da obrišete sve podatke?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Resetovanje na fabrička podešavanja nije dostupno za ovog korisnika"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Briše se"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, eternet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet se ne deli sa drugim uređajima"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Isključeno"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Privezivanje"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nemoj da koristiš Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Deli internet samo preko USB-a"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Deli internet samo preko Bluetooth-a"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Deli internet samo preko eterneta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Deli internet samo preko USB-a i Bluetooth-a"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Deli internet samo preko USB-a i eterneta"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Deli internet samo preko Bluetooth-a i eterneta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Deli internet samo preko USB-a, Bluetooth-a i eterneta"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB privezivanje"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth privezivanje"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Privezivanje eterneta"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Koristite hotspot i privezivanje da biste omogućili internet na drugim uređajima pomoću WiFi veze ili veze za prenos podataka preko mobilnog operatera. Aplikacije mogu i da prave hotspotove za deljenje sadržaja sa uređajima u blizini."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoć"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilna mreža"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Tarifni paket za mobilni uređaj"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikacija za SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Želite li da promenite aplikaciju za SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Želite li da koristite <xliff:g id="NEW_APP">%1$s</xliff:g> umesto <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao aplikaciju za SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Želite da promenite Wi‑Fi pomoćnik?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nepoznati SIM operater"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznat veb-sajt za dodelu"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Ubacite SIM karticu i restartujte"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Povežite se sa internetom"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavni zahtevi za lokaciju"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za poslovni profil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Dozvole za lokaciju aplikacije"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Obriši pristup"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrole"</string>
     <string name="force_stop" msgid="2681771622136916280">"Prinudno zaustavi"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhiviraj"</string>
+    <string name="restore" msgid="7622486640713967157">"Vrati"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Ukupno"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Veličina aplikacije"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikacija USB memorije"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nije moguće izračunati veličinu paketa."</string>
     <string name="version_text" msgid="7628938665256107608">"verzija <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Premesti"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhiviranje nije uspelo"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arhivirano: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Vraćanje nije uspelo"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Vraća se <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Drugi prenos je već u toku."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nema dovoljno prostora u memoriji."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikacija ne postoji."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Dostupna tastatura na ekranu"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Upravljajte tastaturama na ekranu"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
     <string name="show_ime" msgid="4334255501724746849">"Koristi tastaturu na ekranu"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Duži odziv tastera"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Omogućite Duži odziv tastera za fizičku pristupačnost tastature"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Lepljivi tasteri"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Omogućite Lepljive tastere za fizičku pristupačnost tastature"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tasterske prečice"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikazuje listu prečica"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastature i alatke za poslovni profil"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sortiraj po vremenu korišćenja"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sortiraj po posl. korišćenju"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sortiraj po nazivu aplikacije"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Poslednji put korišćeno"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Poslednji put korišćeno"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nikad"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Vreme korišćenja"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Pristupačnost"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Podešavanja pristupačnosti"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Otkaži"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Podešavanja uvećanja"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Uvećanje pomoću trostrukog dodira"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Uvećavajte pomoću prečice"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Uvećavajte pomoću prečice i trostrukog dodira"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"O usluzi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Dvaput dodirnite ekran 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="860548190334486449">"Da biste pokrenuli i zaustavili uvećanje, dvaput dodirnite 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Da biste koristili funkciju pristupačnosti, 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_button" msgid="2031773187678948436">"Važi"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Podešavanja dugm. Pristupačnost"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Podešavanja dugmeta"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Prečica za: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Dugme Pristupačnost"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Pokret za pristupačnost"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dvaput dodirnite ekran pomoću dva prsta"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dvaput dodirnite ekran pomoću dva prsta"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite ekran {0,number,integer} puta pomoću dva prsta"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dodirnite ekran triput"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Saznajte više o dugmetu i pokretu Pristupačnost"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Korišćenje dugmeta Pristupačnost. Pokret nije dostupan uz navigaciju pomoću 3 dugmeta."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Brzo pristupajte funkcijama pristupačnosti"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Da biste započeli"</b>\n"1. Idite u podešavanja pristupačnosti\n2. Izaberite funkciju i dodirnite prečicu\n3. Odaberite da li želite da koristite dugme ili pokret za pristup toj funkciji"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Da biste započeli"</b>\n"1. Idite u podešavanja pristupačnosti\n2. Izaberite funkciju i dodirnite prečicu\n3. Odaberite dugme koje ćete koristiti za pristup toj funkciji"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Da biste započeli&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Idite u podešavanja pristupačnosti&lt;br/&gt; {1,number,integer}. Izaberite funkciju i dodirnite prečicu shortcut&lt;br/&gt; {2,number,integer}. Odaberite da li želite da koristite dugme ili pokret da biste pristupili funkciji&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Da biste započeli&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Idite u podešavanja pristupačnosti&lt;br/&gt; {1,number,integer}. Izaberite funkciju i dodirnite prečicu shortcut&lt;br/&gt; {2,number,integer}. Odaberite dugme koje ćete koristiti za pristup toj funkciji&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Koristite dugme ili pokret"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokacija"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Veličina"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Dugme za uključivanje prekida poziv"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Veliki pokazivač miša"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Omogućite da pokazivač miša bude uočljiviji"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Neka sve aplikacije budu tamne"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Primenjuje se na aplikacije bez tamne teme. Neke možda imaju probleme sa prikazom, npr. obrnute boje."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Ukloni animacije"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Smanjite pomeranja na ekranu"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono zvuk"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može da prati interakcije sa aplikacijom ili senzorom hardvera i koristi aplikacije umesto vas."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Zaustavi"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Otkaži"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Želite li da zaustavite <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ako dodirnete <xliff:g id="STOP">%1$s</xliff:g>, zaustavićete uslugu <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nastavi"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Želite da isključite uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nijedna usluga nije instalirana"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nijedna usluga nije izabrana"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije naveden opis."</string>
     <string name="settings_button" msgid="2195468788019730377">"Podešavanja"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"osetljivost na svetlost, fotofobija, tamna tema, migrena, glavobolja, režim čitanja, noćni režim, smanjivanje osvetljenosti, bela tačka"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"jednostavnost korišćenja, lakši pristup, pomoć, pomoćno"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slepi, gluvi, motorika, spretnost, pomoćno, pomoć, jednostavno korišćenje, jednostavni pristup, ruka, pomoć"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"uveličavanje prozora, zumiranje, uvećanje, slabovidost, uveličavanje, povećati"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"titl, titlovi, CC, transkripcija uživo, oštećenje sluha, gubitak sluha, CART, pretvaranje govora u tekst, titlovanje"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontrast boja"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, miš"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, sa oštećenjem sluha, gubitak sluha, kohlearni implanti, uređaji za pojačavanje zvuka, procesori zvuka"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, miš, spoljni miš, miš za glavu, adaptivni miš, invalidska kolica, džojstik"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušni aparati, sa oštećenjem sluha, gubitak sluha, kohlearni implanti, uređaji za pojačavanje zvuka, procesori zvuka, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"oštećenje sluha, gubitak sluha, titl, teleprinter, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri dugmeta"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"spretnost, motorika, starije osobe, artritis, učestala traumatska istegnuća zgloba, moždani udar, tremor, multipla skleroza, cerebralna paraliza, drhtavica, povreda izazvana ponavljajućim pokretima, ruka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"odlaganje, spretnost, starija osoba"</string>
     <string name="print_settings" msgid="8519810615863882491">"Štampanje"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Isključeno"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 usluga štampanja je uključena}one{# usluga štampanja je uključena}few{# usluge štampanja su uključene}other{# usluga štampanja je uključeno}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Pogledajte aplikacije sa najvećom potrošnjom baterije"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Punjenje je optimizovano da bi se zaštitila baterija"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Punjenje je optimizovano da bi se produžio vek trajanja baterije"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Punjenje je optimizovano da bi se zaštitila baterija"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Da bi se produžio vek trajanja baterije, punjenje se optimizuje dok je uređaj na baznoj stanici"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Punjenje je optimizovano da bi se zaštitila baterija"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Da bi se produžio vek trajanja baterije, punjenje se optimizuje dok je uređaj na baznoj stanici"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Potpuno punjenje"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Da bi se zaštitila baterija, punjenje će se optimizovati sledeći put kada tablet bude na baznoj stanici"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Saznajte više o tome zašto je punjenje pauzirano"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Nastavi sa punjenjem"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Uključuje aktivnosti u pozadini sa velikom potrošnjom"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ukloni"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Otkaži"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Puni do kraja"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem sa dodatnim priborom za punjenje"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Saznajte više o nekompatibilnom punjenju"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Menadžer baterije"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Upravljajte aplikacijama automatski"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"sada"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Grafikon potrošnje baterije"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafikon dnevne potrošnje baterije"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafikon potrošnje baterije po satima"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Nivo napunjenosti baterije od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Potrošnja baterije od poslednjeg potpunog punjenja"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Potrošnja baterije za <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Vreme ispred ekrana od poslednjeg potpunog punjenja"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Podešavanje ponašanja kada se uspostavlja hitan poziv"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Rezervna kopija"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Uključeno"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Isključeno"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Rezervna kopija i resetovanje"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Lični podaci"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Pravljenje rezervnih kopija podataka"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Naziv"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tip"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresa servera"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP šifrovanje (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Tajni L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikator"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec unapred deljeni ključ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec sertifikat korisnika"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA sertifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec sertifikat servera"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Prikaži napredne opcije"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS domeni za pretragu"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS serveri (npr. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rute za prosleđivanje (npr. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Korisničko ime"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Lozinka"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Sačuvaj informacije o nalogu"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ne koristi se)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne verifikuj server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(primljeno sa servera)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ovaj tip VPN-a ne može uvek da ostane povezan"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Uvek uključeni VPN podržava samo numeričke adrese servera"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"DNS server mora da se odredi za uvek uključeni VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adrese DNS servera moraju da budu numeričke za uvek uključeni VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Unete informacije ne podržavaju uvek uključeni VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Otkaži"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Odbaci"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj veze bez VPN-a"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Treba vam VPN veza?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nije bezbedno. Ažurirajte na IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Pokretanje nepodržanog VPN-a nije uspelo."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Izaberite VPN profil sa kojim ćete uvek biti povezani. Mrežni sadržaj će biti dozvoljen samo kada ste povezani sa ovim VPN-om."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nijedan"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Stalno uključen VPN zahteva IP adresu za server i DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER obaveštenja"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Prijem objava o kidnapovanju dece"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ponavljanje"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Omogući Menadžer poziva"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Omogućite ovoj usluzi da upravlja načinom na koji se upućuju pozivi."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Menadžer poziva"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Bežična upozorenja o hitnim slučajevima"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Mrežni operateri"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nazivi pristupnih tačaka"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"novčanik"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"platite, dodirnite, plaćanja"</string>
     <string name="keywords_backup" msgid="707735920706667685">"rezervna kopija, praviti rezervnu kopiju"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"pokret"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"lice, otključavanje, potvrda identiteta, prijavljivanje"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"lice, otključavanje, autorizacija, prijavljivanje, otisak prsta, biometrija"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, verzija prl-a, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Zvukovi pri uključivanju"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Titl uživo"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatski titl za medije"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Zvučnici telefona"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Zvučnici tableta"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Zvučnici uređaja"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Žičane slušalice"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Zvuk kompatibilnih medija postaje realističniji"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Isključeno"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Šta želite da se prikazuje na zaključanom ekranu?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nedavne konverzacije su uklonjene"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Konverzacija je uklonjena"</string>
     <string name="clear" msgid="5092178335409471100">"Obriši"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Obriši <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioritetne i izmenjene konverzacije se prikazuju ovde"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Kada označite konverzaciju kao prioritetnu ili obavite druge promene u konverzacijama, prikazivaće se ovde. \n\nDa biste promenili podešavanja konverzacija: \nPrevucite nadole od vrha ekrana da biste otvorili klizni panel, pa dodirnite i zadržite konverzaciju."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Umanji"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Isključeno"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Kačenje aplikacija"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Kačenje aplikacija vam omogućava da zadržite prikaz aktuelne aplikacije dok je ne otkačite. Pomoću ove funkcije možete, na primer, da dozvolite pouzdanom prijatelju da igra određenu igru."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kada je aplikacija zakačena, može da otvara druge aplikacije i lični podaci mogu da budu dostupni. \n\nDa biste koristili kačenje aplikacija: 	\n1. Uključite kačenje aplikacija 	\n2. Otvorite Pregled 	\n3. Dodirnite ikonu aplikacije u vrhu ekrana, pa dodirnite Zakači"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kada je aplikacija zakačena, može da otvara druge aplikacije i lični podaci mogu da budu dostupni. \n\nAko želite da bezbedno delite uređaj sa nekim, bolje koristite profil gosta. \n\nDa biste koristili kačenje aplikacija: 	\n1. Uključite kačenje aplikacija 	\n2. Otvorite Pregled 	\n3. Dodirnite ikonu aplikacije u vrhu ekrana, pa dodirnite Zakači"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kada je aplikacija zakačena, može da otvara druge aplikacije i lični podaci mogu da budu dostupni. \n\nDa biste koristili kačenje aplikacija: 	\n{0,number,integer}. Uključite kačenje aplikacija 	\n{1,number,integer}. Otvorite Pregled 	\n{2,number,integer}. Dodirnite ikonu aplikacije u vrhu ekrana, pa dodirnite Zakači"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kada je aplikacija zakačena, može da otvara druge aplikacije i lični podaci mogu da budu dostupni. \n\nAko želite da bezbedno delite uređaj sa nekim, bolje koristite profil gosta. \n\nDa biste koristili kačenje aplikacija: 	\n{0,number,integer}. Uključite kačenje aplikacija 	\n{1,number,integer}. Otvorite Pregled 	\n{2,number,integer}. Dodirnite ikonu aplikacije u vrhu ekrana, pa dodirnite Zakači"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kada je aplikacija zakačena: \n\n•	 Mogu da budu dostupni lični podaci \n		(na primer, kontakti i sadržaj imejlova) \n•	 Zakačena aplikacija može da otvara druge aplikacije \n\nKoristite kačenje aplikacija samo sa ljudima kojima verujete."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Traži šablon za otključavanje pre otkačinjanja"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Traži PIN pre otkačinjanja"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Podešavanja nekorišćenih aplikacija"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pauziraj aktivnosti ako se ne koristi"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Uklonite dozvole, izbrišite privremene fajlove i zaustavite obaveštenja"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Upravljajte aplikacijom ako se ne koristi"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Uklonite dozvole, izbrišite privremene fajlove, zaustavite obaveštenja i arhivirajte aplikaciju"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Sve aplikacije"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Instalirane aplikacije"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant aplikacije"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Slobodno"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memorija koju koriste aplikacije"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikacija je koristila memoriju u poslednjem periodu od {time}}one{# aplikacija je koristila memoriju u poslednjem periodu od {time}}few{# aplikacije su koristile memoriju u poslednjem periodu od {time}}other{# aplikacija je koristilo memoriju u poslednjem periodu od {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Omogući profilisanje korišćenja memorije"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Za profilisanje korišćenja memorije su potrebni dodatni sistemski resursi."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilisanje memorije je onemogućeno"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Učestalost"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimum korišćenja"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Ne koriste se nikakvi podaci"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Prikaz preko drugih aplikacija"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Dozvoli prikaz preko drugih aplikacija"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Omogućite ovoj aplikaciji da se prikazuje preko drugih aplikacija koje koristite. Ova aplikacija će moći vidi gde dodirujete ili da promeni ono što se prikazuje na ekranu."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Promenite medijski izlaz"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Dozvoli aplikaciji da menja medijski izlaz"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Dozvoli ovoj aplikaciji da odabere koji povezani uređaj reprodukuje zvuk ili video iz drugih aplikacija. Ako dobije dozvolu, ova aplikacija može da pristupi listi dostupnih uređaja kao što su slušalice i zvučnici i da odabere koji izlazni uređaj se koristi za strimovanje ili prebacivanje zvuka ili videa."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Pristup svim datotekama"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Poboljšavaj aktivaciju glasom"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Ovaj uređaj koristi privatna saznanja da bi poboljšao model aktivacije glasom. Aplikacije mogu da dobijaju sažete novosti koje su objedinjene za veliki broj korisnika u cilju očuvanja privatnosti i poboljšanja modela za sve.\n\n"<a href="">"Više o privatnim saznanjima"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Upozorenje za potrošnju podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Ograničenje potrošnje podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozorenje za potrošnju podataka: <xliff:g id="ID_1">^1</xliff:g>/Ograničenje potrošnje podataka: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Obračun podataka kod mobilnog operatera se možda razlikuje od obračuna uređaja."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne obuhvata podatke koje koriste mreže mobilnih operatera"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Potrošili ste <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Podesi upozorenje o podacima"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Ažurirano je pre <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Malopre ažurirao operater <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Ažurirano je malopre"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Prikaži plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Prikaži detalje"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Ušteda podataka"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neograničen pristup podacima"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalija u vezi sa potrošnjom baterije"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Pločice programera za brza podešavanja"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Onemogući vremensko ograničenje ovlašćenja adb-a"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Onemogućava automatsko opozivanje ovlašćenja adb-a za sisteme koji se ne povežu ponovo tokom podrazumevanog vremenskog perioda (7 dana) ili vremenskog perioda koji konfiguriše korisnik (najmanje 1 dan)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope trag"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzori su isključeni"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Podešavanja poslovnog profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Traži kontakte iz poslovnog direktorijuma u ličnim aplikacijama"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Usluga automatskog popunjavanja"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Podrazumevana usluga automatskog popunjavanja"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Lozinke"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usluge za lozinke, pristupne kodove i podatke"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Dodatni dobavljači usluga"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# lozinka}one{# lozinka}few{# lozinke}other{# lozinki}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatski, popuniti, automatski popuniti, lozinka"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Usluge za lozinke, pristupne kodove i podatke"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Želite da isključite ovu uslugu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Lozinke, pristupni ključevi i druge sačuvane informacije neće biti dostupne za automatsko popunjavanje kada se prijavite"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Promenite željenu uslugu u &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_enable_confirmation_message_title" msgid="1037501792652277829">"Želite da koristite %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Može da bude uključeno samo 5 usluga"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Isključite bar 1 uslugu da biste mogli da dodate drugu"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s koristi sadržaj na ekranu da bi utvrdio šta može automatski da se popuni."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Ograničenje usluga za lozinke, pristupne kodove i podatke"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Možete istovremeno da imate najviše 5 usluga za lozinke, pristupne kodove i podatke. Isključite neku od njih da biste dodali još."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Ograničenje usluga za lozinke, pristupne kodove i podatke"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Možete istovremeno da imate najviše 5 usluga za lozinke, pristupne kodove i podatke. Isključite neku od njih da biste dodali još."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Isključi"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatsko popunjavanje"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivo evidentiranja"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Promene kompatibilnosti aplikacija mogu da se izmene samo za aplikacije sa otklonjivim greškama. Instalirajte aplikaciju sa otklonjivim greškama i probajte ponovo."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Zavisi od drugog podešavanja"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Nalog"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d naloga"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Naziv uređaja"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Osnovne informacije"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Pravne informacije i informacije u vezi sa regulativama"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Dozvolite da se ova aplikacija pokreće kada se skenira NFC oznaka.\nAko je ova dozvola uključena, aplikacija će biti dostupna kao opcija svaki put kada se oznaka otkrije."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Puštaj medijski sadržaj na"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Pusti <xliff:g id="LABEL">%s</xliff:g> na"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Zvuk se pušta"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Ovaj uređaj"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Nedostupno tokom poziva"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Preuzmi poziv"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Isključi zvuk"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Da biste omogućili ovo, prvo promenite opciju Pritisnite i zadržite dugme za uključivanje u meni dugmeta za uključivanje."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalji o mreži"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Aplikacije na telefonu mogu da vide naziv uređaja. I drugi ljudi mogu da vide naziv uređaja mogu kada se povežete sa Bluetooth uređajima ili WiFi mrežom ili podesite WiFi hotspot."</string>
     <string name="devices_title" msgid="649715719278562515">"Uređaji"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Odaberite mrežu"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Veza je prekinuta"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Naziv"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Boja (koriste kompatibilne aplikacije)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Sačuvaj"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Koristi SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Koristi ovaj SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Isključeno"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Da biste onemogućili ovu SIM karticu, uklonite je"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Dodirnite da biste aktivirali <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Obriši SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Željeni tip mreže"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Promena režima rada mreže"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Željeni tip mreže"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Cene proverite kod mobilnog operatera."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Potrošnja podataka aplikacije"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Nevažeći režim mreže <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorišite."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nazivi pristupnih tačaka"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"Naziv pristupne tačke"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nedostupno kada je povezano sa: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Želite li da pređete na <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Želite li da pređete na SIM karticu?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Želite da koristite <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"U datom trenutku može da bude aktivna samo jedna SIM kartica.\n\nPrebacivanjem na <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nećete otkazati uslugu <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"U datom trenutku može da bude aktivan samo 1 eSIM.\n\nPrebacivanje na operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> neće otkazati uslugu operatera <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"U datom trenutku može da bude aktivna samo jedna SIM kartica.\n\nPrebacivanjem nećete otkazati uslugu <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Možete da koristite 2 SIM kartice istovremeno. Da biste koristili <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, isključite drugu SIM karticu."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Pređi na <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Isključite <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, hvala"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Otkaži"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Pređi"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Isključi"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Aktiviranje SIM kartice nije uspelo"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Probajte ponovo da uključite SIM karticu. Ako se problem i dalje javlja, restartujte uređaj."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Podesite SIM karticu"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Podesite podešavanja mobilne mreže da biste koristili više SIM kartica na ovom uređaju"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Označite SIM kartice"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Videćete ove oznake u toku poziva, slanja SMS poruka i korišćenja prenosa podataka, kao i u Podešavanjima."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Oznaka SIM kartice"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Oznaka"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Izbor SIM kartica za upotrebu"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Možete da koristite 2 SIM kartice istovremeno"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Podesite primarne SIM kartice"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Odaberite koje SIM kartice ćete koristiti podrazumevano za pozive, SMS poruke i prenos podataka"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Primarne SIM kartice"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Pozivi"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS poruke"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Auto. zamena prenosa podataka"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Koristi prenos podataka sa bilo kog SIM-a u zavisnosti od pokrivenosti i dostupnosti"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Samo prenos podataka"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Podesi"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Dalje"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilna mreža"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Broj telefona"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Oznaka i boja SIM kartice"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivacija mreže"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Prelazak na drugog mobilnog operatera"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Mobilni operater <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivan"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Da biste kasnije koristili mobilne podatke, funkcije poziva i SMS, idite na podešavanja mreže"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Želite da obrišete ovaj eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Brisanjem ove SIM kartice uklonićete uslugu mobilnog operatera <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sa ovog uređaja.\n\nUsluga mobilnog operatera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> neće biti otkazana."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Obriši"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM se briše…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Brisanje SIM-a nije uspelo"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Ovaj SIM ne može da se obriše zbog greške.\n\nRestartujte uređaj i probajte ponovo."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Povežite sa uređajem"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikacija <xliff:g id="APPNAME">%1$s</xliff:g> želi da koristi privremenu Wi‑Fi mrežu da bi se povezala sa uređajem"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nije pronađen nijedan uređaj Proverite da li je uređaj uključen i dostupan za povezivanje."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Hitni pozivi"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Mobilni operater ne podržava hitne pozive pomoću funkcije Pozivanje preko WiFi-a.\nUređaj automatski prelazi na mobilnu mrežu da bi uputio hitan poziv.\nHitni pozivi su mogući samo u oblastima pokrivenim mobilnom mrežom."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Koristite Wi‑Fi za pozive da biste poboljšali kvalitet"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Rezervni način za pozivanje"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ako usluga <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nije dostupna ili je u romingu, koristite SIM za mobilne podatke za<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>pozive."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"rezervni način za pozivanje"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Dolazna MMS poruka"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Slanje MMS poruka nije moguće"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Dodirnite da biste omogućili slanje MMS poruka na uređaju <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> kada su mobilni podaci isključeni"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informacije o smernicama za posao"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Podešavanjima upravlja IT administrator"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Uključi uz veličinu stranica 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Uključi uređaj uz jezgro podržano za 16 KB stranice"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Želite li da restartujete uređaj sa jezgrom kompatibilnim sa 16 KB stranicama?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"UPOZORENJE: Neke aplikacije možda nisu kompatibilne sa ovim režimom. Uređaj će se restartovati posle potvrde."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Želite li da restartujete uređaj sa jezgrom kompatibilnim sa 4 KB stranicama?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Uređaj će se restartovati posle potvrde."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ažuriranje na jezgro kompatibilno sa 16 KB stranicama nije uspelo."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Primenjuje se promena"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Obrađivač izveštaja o grešci"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Određuje koja aplikacija upravlja prečicom za izveštaj o grešci na uređaju."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Lično"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Da biste brzo nastavili reprodukciju, medija plejer ostaje otvoren u Brzim podešavanjima"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Prikazuj medijski sadržaj na zaključanom ekranu"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Da biste brzo nastavili reprodukciju, medija plejer ostaje otvoren na zaključanom ekranu"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Prikazuj preporuke za medije"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Prikaži preporuke za medije Pomoćnika"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Na osnovu aktivnosti"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Sakrij plejer"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Prikaži plejer"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-ovi"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktivno"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktivno"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /Podrazumevano za: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"pozivi"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk kompatibilnih medija postaje realističniji"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se menja kako pomerate glavu da bi delovao prirodnije"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinhronizujte dozvole"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Odobrite iste dozvole za <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> kao na uređaju <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinhronizuj dozvole sa telefona"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Odobrite iste dozvole za aplikacije na satu kao na ovom telefonu"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tip audio uređaja"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Srednje"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Visoko"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ova aplikacija može da se otvori samo u jednom prozoru"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Uključeno"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Isključeno"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Isključeno"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Isključeno"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Uključeno"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Isključeno"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Uključeno"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Isključeno"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Svetli ekrani postaju tamni, a tamni ekrani svetli"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Uvećanje ekrana"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Isključeno"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Isključeno"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Lozinka je podešena"</string>
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index e26b403..a9be1b7 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Праз 1 хвіліну"</item>
     <item msgid="1574040255478150028">"Праз 5 хвілін"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index b1d76b3..822370b 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Налады для распрацоўшчыкаў даступныя толькі адміністратарам."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Сістэма"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Працуе"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Не працуе"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Каб працягнуць, правядзіце пальцам уверх"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Складзіце тэлефон і правядзіце пальцам уверх на пярэднім дысплэі, каб працягнуць выкарыстанне праграмы, або пачакайце некалькі секунд, пакуль экран заблакіруецца"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Звязанае"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Рынгтон і будзільнікі"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Гук падчас выклікаў"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Мультымедыя"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Апавяшчэнні і сістэмныя гукі"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Гукі мультымедыя і сістэмы"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Апавяшчэнні"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Стандартна налады вываду гуку задаюцца асобнымі праграмамі"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Безназоўная прылада Bluetooth"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Пошук"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth уключаны"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Паказаць усе"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Паглядзець усе"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Стылус"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Пры націсканні на кнопку пяра"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Працоўны профіль)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Падключыцца да аўдыяплыні LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Аўдыяплыні паблізу"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аўдыяплыні"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Падключыцца да аўдыяплыні з дапамогай QR-кода"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Аўдыяплыней паблізу не знойдзена."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Дата і час"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Проксі-сервер"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Ачысціць"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Каб выбраць мову для кожнай праграмы, адкрыйце налады мовы."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Даведацца больш пра мовы, даступныя ў праграме"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Змяніць мову сістэмы на наступную: %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Дадаць %s у прыярытэтныя мовы?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Праграмам і сайтам будзе паведамляцца, што вы аддаяце перавагу гэтай мове."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Налады вашай прылады, у тым ліку рэгіянальныя, будуць зменены."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Змяніць"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Недаступна: %s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Субота"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Калі праграма не падтрымлівае рэгіянальныя налады, яна будзе выкарыстоўваць стандартныя налады для рэгіёнаў."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Даведацца больш пра налады мовы."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Дадатковыя параметры"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Форма звароту"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Укажыце, як да вас звяртацца"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Інфармацыя пра тое, якой форме звароту вы аддаяце перавагу, можа выкарыстоўвацца для персаналізацыі праграм."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не вызначана"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Жаночая"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Мужчынская"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Нейтральныя"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Выдаліць выбраную мову?}one{Выдаліць выбраныя мовы?}few{Выдаліць выбраныя мовы?}many{Выдаліць выбраныя мовы?}other{Выдаліць выбраныя мовы?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Тэкст будзе адлюстроўвацца на іншай мове."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не атрымалася выдаліць усе мовы"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Месцазнаходжанне"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Выкарыстоўваць геалакацыю"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Выкл."</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Уключана – # праграма мае доступ да даных месцазнаходжання}one{Уключана – # праграма мае доступ да даных месцазнаходжання}few{Уключана – # праграмы маюць доступ да даных месцазнаходжання}many{Уключана – # праграм маюць доступ да даных месцазнаходжання}other{Уключана – # праграмы маюць доступ да даных месцазнаходжання}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Уключана – # праграма мае доступ да даных месцазнаходжання}one{Уключана – # праграма мае доступ да даных месцазнаходжання}few{Уключана – # праграмы маюць доступ да даных месцазнаходжання}many{Уключана – # праграм маюць доступ да даных месцазнаходжання}other{Уключана – # праграмы маюць доступ да даных месцазнаходжання}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ідзе загрузка…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Праграмы з дазволам на доступ да прылад паблізу могуць вызначаць прыблізнае месцазнаходжанне падключаных прылад."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Для праграм і сэрвісаў доступ да геаданых выключаны. Інфармацыя пра месцазнаходжанне вашай прылады можа адпраўляцца экстранным службам, калі вы робіце выклік на іх нумар ці адпраўляеце ім SMS."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Даведацца больш пра налады месцазнаходжання."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Даведацца больш пра налады месцазнаходжання"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Наладзьце доступ да геаданых тут: \"Налады &gt; Бяспека і прыватнасць &gt; Налады прыватнасці\""</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Каб атрымліваць найлепшыя вынікі, карыстайцеся ахоўнай плёнкай, якая мае сертыфікат \"Made for Google\". Калі выкарыстоўваць іншыя ахоўныя плёнкі, сканер адбіткаў пальцаў вашага дзіцяці можа не працаваць."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Разблакіроўка гадзіннікам"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Пасля наладжвання разблакіроўкі праз распазнаванне твару і адбітка пальца тэлефон будзе запытваць адбітак пальца, калі навокал цёмна ці ў вас на твары маска.\n\nКалі твар або адбітак пальца не распазнаюцца, можна выканаць разблакіроўку з дапамогай гадзінніка."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Калі адбітак пальца не распазнаецца, можна выканаць разблакіроўку з дапамогай гадзінніка."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Калі твар не распазнаецца, можна выканаць разблакіроўку з дапамогай гадзінніка."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Пасля наладжвання разблакіроўкі адбіткам пальца і праз распазнаванне твару тэлефон будзе запытваць адбітак пальца, калі навокал цёмна ці ў вас на твары маска.\n\nРазблакіроўку гадзіннікам зручна выкарыстоўваць, калі, напрыклад, у вас мокрыя пальцы або калі ваш твар не распазнаецца."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Разблакіроўку гадзіннікам зручна выкарыстоўваць, калі, напрыклад, ваш адбітак пальца не распазнаецца."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Разблакіроўку гадзіннікам зручна выкарыстоўваць, калі, напрыклад, ваш твар не распазнаецца."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Скарыстайце адбітак пальца або гадзіннік, каб"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Скарыстайце распазнаванне твару ці гадзіннік, каб"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Скарыстайце распазнаванне твару, адбітак пальца або гадзіннік, каб"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Твар і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Твар, адбітак пальца і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Твар, адбіткі пальцаў і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Як гэта працуе"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Гадзіннік павінен быць разблакіраваны і знаходзіцца на вашым запясці і побач з тэлефонам. Пакуль гадзіннік знаходзіцца на руцэ, яго не трэба будзе разблакіраваць зноў."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Калі тэлефон будзе разблакіраваны, на гадзінніку з\'явіцца апавяшчэнне. Вы можаце націснуць на яго, калі хочаце зноў заблакіраваць тэлефон."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Усё пад кантролем"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Вы можаце ў любы час выдаліць функцыю разблакіроўкі гадзіннікам праз Налады"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Націсніце на апавяшчэнне"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Правядзіце пальцам уверх па экране блакіроўкі"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Выберыце гадзіннік"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Даступныя гадзіннікі"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Скасаваць"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Пацвердзіць"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Усё гатова!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Цяпер вы можаце выкарыстоўваць гадзіннік для разблакіроўкі тэлефона: вам дастаткова будзе правесці пальцам уверх па экране блакіроўкі або націснуць на апавяшчэнне"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Гатова"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Разблакіроўка гадзіннікам"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Вы можаце разблакіраваць тэлефон гадзіннікам. Для гэтага правядзіце пальцам уверх па экране блакіроўкі або націсніце на апавяшчэнне."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Каб скарыстаць разблакіроўку гадзіннікам, ён павінен быць разблакіраваны, знаходзіцца на вашым запясці і паблізу ад падключанага да яго тэлефона. Калі падключэнне перарвецца, вам трэба будзе разблакіраваць тэлефон, перш чым выкарыстоўваць разблакіроўку гадзіннікам.\n\nМайце на ўвазе:\nналадзіць для гэтай функцыі можна толькі адзін гадзіннік. Каб дадаць іншы гадзіннік, спачатку выдаліце ўжо падключаны."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Даведацца больш пра разблакіроўку гадзіннікам"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Дадаць гадзіннік"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Выдаліць гадзіннік"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Разблакіроўка тварам і адбіткам пальца"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Разблакіроўка тварам і адбіткам пальца для працоўнага профілю"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Патрабуецца наладжванне"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Бяспека"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Прыватнасць"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Працоўны профіль"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Прыватная вобласць"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Схавайце прыватныя праграмы ў асобную прастору і закрыйце доступ да яе"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Стварыце асобную вобласць для прыватных праграм, якую можна схаваць або абараніць з дапамогай блакіроўкі"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Блакіроўка прыватнай вобласці"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Прыватную вобласць можна разблакіраваць тым жа спосабам, што і пры блакіроўцы прылады, або выбраць іншы спосаб блакіроўкі"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Ужываць блакіроўку экрана прылады"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Распазнаванне твару і разблакіроўка адбіткам пальца"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Разблакіроўка адбіткам пальца"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Распазнаванне твару"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Дакраніцеся, каб наладзіць"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Разблакіроўка адбіткам пальца для прыватнай прасторы"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Распазнаванне твару для прыватнай прасторы"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Спосабы разблакіроўкі"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Аднолькава з блакіроўкай экрана прылады"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Выбраць новую блакіроўку для прыватнай вобласці?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Блакіраваць аўтаматычна"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Аўтаматычная блакіроўка прыватнай прасторы"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Прыватная прастора можа аўтаматычна блакіравацца, калі вы не карысталіся прыладай на працягу пэўнага часу"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Пры кожнай блакіроўцы прылады"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Пасля 5 хвілін бяздзейнасці"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Ніколі"</string>
+    <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_deleted" msgid="7825768516955610897">"Прыватная вобласць выдалена"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Не ўдалося выдаліць прыватную вобласць"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Прыватная прастора разблакіравана"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Наладзьце блакіроўку экрана"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Каб выкарыстоўваць прыватную прастору, на прыладзе неабходна наладзіць блакіроўку экрана"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Наладзіць блакіроўку экрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Скасаваць"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Скасаваць"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Наладзіць"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Наладжванне прыватнай прасторы"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Стварыце асобную вобласць для прыватных праграм, якую можна схаваць або абараніць з дапамогай блакіроўкі"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Як гэта працуе"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Вы можаце атрымаць доступ да прыватнай прасторы ў ніжняй частцы спіса праграм"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Доступ да праграм у прыватнай прасторы можна заблакіраваць"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Калі доступ да прыватнай прасторы заблакіраваны, апавяшчэнні з дададзеных у яе праграм не паказваюцца"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Калі доступ да прыватнай прасторы заблакіраваны, праграмы з яе не паказваюцца ў менеджары дазволаў і на панэлі кіравання доступам, а таксама ў іншых наладах.\n\nПрыватную прастору нельга перамясціць на іншую прыладу. Для кожнай прылады трэба будзе наладжваць асобную прыватную прастору.\n\nДоступ да вашай прыватнай прасторы можа атрымаць чалавек, які ўсталюе на вашай прыладзе шкодныя праграмы або падключыць яе да камп\'ютара."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Ідзе наладжванне прыватнай прасторы…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Калі доступ да прыватнай прасторы заблакіраваны, апавяшчэнні з дададзеных у яе праграм не паказваюцца"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Каб абагульваць фота і файлы з праграм, дададзеных у прыватную прастору, разблакіруйце доступ да яе"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Некаторыя праграмы ўжо ўсталяваны ў прыватнай прасторы"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Не ўдалося наладзіць прыватную прастору"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Паўтарыць спробу"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Выкарыстоўваць спосаб, выбраны для экрана?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Прыватную прастору можна разблакіраваць тым жа спосабам, які выкарыстоўваецца пры блакіроўцы прылады, або выбраць іншы спосаб"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Выкарыстоўваць спосаб, выбраны для экрана"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Выбраць новы спосаб блакіроўкі"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Гатова!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Каб атрымаць доступ да прыватнай прасторы, перайдзіце да спіса праграм і прагартайце ўніз"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Гатова"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Каб знайсці прыватную прастору, прагартайце ўніз"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Выберыце спосаб блакіроўкі доступу да прыватнай прасторы"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Вы можаце разблакіраваць доступ да прыватнай прасторы адбіткам пальца. У мэтах бяспекі неабходна наладзіць таксама дадатковы спосаб блакіроўкі."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Задайце PIN-код для прыватнай прасторы"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Задайце пароль для прыватнай прасторы"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Узор разблакіроўкі для прыват. прасторы"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Каб паказаць прыватную вобласць (інтэрфейс дапрацоўваецца)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Адкрыйце праграму \"Налады\""</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Націсніце \"Бяспека і прыватнасць &gt; Прыватная вобласць &gt; Хаваць прыватную вобласць пры блакіроўцы\""</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Выключыць наладу \"Хаваць прыватную вобласць пры блакіроўцы\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Заўвага для супрацоўнікаў Google. Распрацоўка гэтай функцыі яшчэ не завершана."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Вам таксама можа спатрэбіцца ўвесці гэты ключ доступу на іншай прыладзе."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Пацвердзіце спалучэнне з узгодненым наборам"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дазволіць доступ да сваіх кантактаў і гісторыі выклікаў"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Дазволіць доступ таксама да кантактаў і гісторыі выклікаў"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Гэта інфармацыя будзе выкарыстоўвацца для апавяшчэнняў аб выкліках і іншых функцый"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не атрымалася падключыцца да прылады <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Даступныя прылады"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"У рэжыме палёту"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Апавяшчаць пра агульнадаступныя сеткі"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Апавяшчаць, калі даступная высакаякасная сетка агульнага доступу"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Дазволіць падключацца да сетак WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP – гэта ўстарэлы пратакол бяспекі з нізкім узроўнем абароны"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Ваш аператар не дазваляе падключацца да сетак WEP па прычыне нізкага ўзроўню іх абароны"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Уключаць Wi‑Fi аўтаматычна"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi будзе ўключацца аўтаматычна побач з захаванымі высакаякаснымі сеткамі, напрыклад у вашай дамашняй сетцы"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Недаступна, таму што выключана вызначэнне месцазнаходжання. Уключыце "<annotation id="link">"Вызначаць месцазнаходжанне"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Пошук сетак Wi-Fi дазваляе праграмам і сэрвісам шукаць сеткі Wi‑Fi, нават калі Wi‑Fi не ўключаны, для паляпшэння функцый і сэрвісаў, якія выкарыстоўваюць геалакацыю."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Уключыць"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Пошук сетак Wi-Fi уключаны"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Гэта сетка выкарыстоўвае ўстарэлы пратакол бяспекі з нізкім узроўнем абароны"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Сетка \"<xliff:g id="NAME">%1$s</xliff:g>\" заблакіравана"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Гэта сетка выкарыстоўвае ўстарэлы пратакол бяспекі WEP з нізкім узроўнем абароны. Калі вы ўсё роўна хочаце выкарыстаць яе, вы можаце дазволіць падключэнне да сетак WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Ваш аператар забараніў вам падключацца да гэтай сеткі, бо яна выкарыстоўвае ўстарэлы пратакол бяспекі з нізкім узроўнем абароны"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Дазволіць падключэнне да сетак WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Закрыць"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Дадатковыя параметры"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Выпадны спіс \"Дадатковыя параметры\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"разгарнуць"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Заставацца ў сетцы Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Больш не паказваць"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Падключыцца"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi уключаны"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Падключана да сеткi <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ідзе падключэнне да сеткі \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\""</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Ідзе падключэнне…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Не атрымалася падключыцца да сеткі"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Сетка не ў зоне дасягальнасці"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Забыць"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Змяніць"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Не атрымалася iгнараваць сетку"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Захаваць"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Не атрымалася захаваць сетку"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Скасаваць"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мабільная перадача даных"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – зараджаецца"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – зараджаецца"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Падключэнне да хот-спота"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Якасць падключэння"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Захаваныя сеткі"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Пароль не ўстаноўлены"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Назва хот-спота"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Пароль хот-спота"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Дыяпазон частот Wi-Fi"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Аўтаматычна выключаць хот-спот"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Калі няма падключаных прылад"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Максімальная сумяшчальнасць"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Адключэнне ст. частаты кадраў"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Адключыць абмежаванне на максімальную частату кадраў для гульняў (<xliff:g id="FRAME_RATE">%1$d</xliff:g> Гц)."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Плаўны паказ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Адаптыўны рэжым з дапамогай пярэдняй камеры вызначае, калі хто-небудзь глядзіць на экран. Функцыя працуе толькі на прыладзе: відарысы не захоўваюцца і не адпраўляюцца ў Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Уключыць адаптыўны рэжым"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Не дазваляць экрану выключацца, калі на яго глядзяць"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Чым даўжэйшы час да выключэння экрана, тым хутчэй разраджаецца акумулятар."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера заблакіравана"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Каб выкарыстоўваць функцыю выяўлення твару, трэба разблакіраваць камеру"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Для адаптыўнага рэжыму трэба разблакіраваць камеру"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (трымальнік SIM-карты <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (трымальнік SIM-карты <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (асноўны)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Для прагляду выберыце захаваную сетку"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Версiя PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Узровень батарэі"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Супольныя"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Супольныя налады"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Захаваць"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Скасаваць"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Поле «Імя» не можа быць пустым."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Значэнне APN не можа быць пустым."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"У полі MCC павінна быць 3 сімвалы."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"У полі MCC павінна быць 2 ці 3 сімвала."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Аператар не дазваляе дадаваць APN тыпу %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Значэнне ў полі MMSC несапраўднае."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Аднаўленне стандартных параметраў APN"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Скінуць налады"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Стандартныя налады адноўлены."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Скінуць"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Налады Bluetooth і Wi‑Fi скінуты"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Сцерці eSIM-карты"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Гэта дзеянне не прывядзе да скасавання тарыфных планаў. Каб спампаваць новыя SIM-карты, звярніцеся да аператара."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Скінуць налады"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Скінуць усе налады сеткі? Гэта дзеянне нельга адрабіць."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Скінуць усе налады сеткі і сцерці eSIM-карты? Гэта дзеянне нельга адрабіць."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Скінуць?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Скід налад сеткі недаступны для гэтага карыстальніка"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Налады сеткі былі скінутыя"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Не ўдалося сцерці даныя SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Памылка сцірання eSIM-карты.\n\nПеразапусціце прыладу і паўтарыце спробу."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Сцерці ўсе даныя (скід да заводскіх налад)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Сцерці ўсе даныя (скід да заводскіх налад)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музыку;"</li>\n<li>"фота;"</li>\n<li>"іншую інфармацыю карыстальніка."</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-карты"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Гэта дзеянне не прывядзе да скасавання вашага тарыфнага плана."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Уся асабістая інфармацыя і спампаваныя праграмы будуць выдалены. Гэта дзеянне нельга адрабіць."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Уся асабістая інфармацыя, у тым ліку спампаваныя праграмы і SIM-карты, будзе выдалена. Гэта дзеянне нельга адрабіць."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Сцерці ўсе даныя?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Скід да заводскіх налад недаступны для гэтага карыстальніка"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Даныя сціраюцца"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Хот-спот, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Інтэрнэт не абагульваецца з іншымі прыладамі"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Выключана"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Мадэм"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Не выкарыстоўваць хот-спот Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Абагульваць інтэрнэт толькі праз USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Абагульваць інтэрнэт толькі праз Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Абагульваць інтэрнэт толькі праз Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Абагульваць інтэрнэт толькі праз USB і Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Абагульваць інтэрнэт толькі праз USB і Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Абагульваць інтэрнэт толькі праз Bluetooth і Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Абагульваць інтэрнэт толькі праз USB, Bluetooth і Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-мадэм"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-мадэм"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Мадэм Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Для падключэння да інтэрнэту іншых прылад праз Wi-Fi ці мабільную перадачу даных выкарыстоўвайце хот-спот і рэжым мадэма. Для абагульвання змесціва з прыладамі паблізу праграмы таксама могуць ствараць хот-спот."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Даведка"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мабільная сетка"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарыфны план"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Праграма для SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Змяніць праграму для SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Выкарыстоўваць праграму \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" замест \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Змяніць памочніка Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Выкарыстоўваць <xliff:g id="NEW_APP">%1$s</xliff:g> замест <xliff:g id="CURRENT_APP">%2$s</xliff:g> для кіравання сеткавымі падлучэннямі?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Выкарыстоўваць <xliff:g id="NEW_APP">%s</xliff:g> для кіравання вашымі падлучэннямі да сеткі?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Невядомы аператар SIM-карты"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"У <xliff:g id="OPERATOR">%1$s</xliff:g> няма вядомага вэб-сайта для забеспячэння паслуг"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Калі ласка, устаўце SIM-карту і перазагрузіце"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Калі ласка, падлучыцеся да Інтэрнэту"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Апошнія запыты геаданых"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Месца для рабочага профілю"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Дазволы на доступ да геаданых"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Выдалiць даныя доступу"</string>
     <string name="controls_label" msgid="8671492254263626383">"Сродкі кіравання"</string>
     <string name="force_stop" msgid="2681771622136916280">"Прымусовае спыненне"</string>
+    <string name="archive" msgid="9074663845068632127">"Архіваваць"</string>
+    <string name="restore" msgid="7622486640713967157">"Аднавіць"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Усяго"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Памер праграмы"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Прыкладанне для захоўвання на USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Не атрымалася вызначыць памер пакета."</string>
     <string name="version_text" msgid="7628938665256107608">"версія <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Перамясціць"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Збой архівавання"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> – архівавана"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Збой аднаўлення"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Ідзе аднаўленне праграмы \"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\""</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Іншы перанос ужо выконваецца."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Не хапае месца для захоўвання."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Праграма не існуе."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Даступная экранная клавіятура"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Кіраваць экраннай клавіятурай"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Іншыя версіі"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Спецыяльныя магчымасці"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Фізічная клавіятура"</string>
     <string name="show_ime" msgid="4334255501724746849">"Выкарыстоўваць экранную клавіятуру"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Захоўваць яе на экране ў той час, калі фізічная клавіятура актыўная"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Ігнараванне паўторнага націскання"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Уключыць у якасці спецыяльнай магчымасці для фізічнай клавіятуры ігнараванне паўторнага націскання"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Заліпанне клавіш"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Уключыць у якасці спецыяльнай магчымасці для фізічнай клавіятуры заліпанне клавіш"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Гарачыя клавішы"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Паказаць спіс спалучэнняў клавіш"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавіятуры і інструменты працоўнага профілю"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Сартаваць па працягласці"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Сартаваць па часе карыстання"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Сартаваць па назве праграмы"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Апошняе выкарыстанне"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Апошняе выкарыстанне"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ніколі"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Час выкарыстання"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Спецыяльныя магчымасці"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Налады спецыяльных магчымасцей"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Усё роўна працягнуць"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Скасаваць"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Налады павелічэння"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Павялічваць трайным дотыкам"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Павялічваць спалучэннем клавіш"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Павялічваць спалучэннем клавіш і трайным дотыкам"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Інфармацыя пра службу \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Каб адкрыць, двойчы націсніце на экран двума пальцамі"</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="860548190334486449">"Каб запусціць і спыніць функцыю павелічэння, двойчы націсніце ў любым месцы экрана двума пальцамі."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Каб скарыстаць спецыяльную магчымасць, правядзіце па экране трыма пальцамі знізу ўверх.\n\nКаб пераключыцца на іншую функцыю, правядзіце трыма пальцамі ўверх і ўтрымлівайце іх на экране."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Зразумела"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Налады кнопкі спецмагчымасцей"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Налады кнопкі"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Хуткі доступ да службы \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Кнопка спецыяльных магчымасцей"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Жэст спецыяльных магчымасцей"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Двойчы націсніце на экран двума пальцамі"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"двойчы націсніце на экран двума пальцамі"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Хутка націсніце на экран {0,number,integer} разы двума пальцамі"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройчы націснуць на экран"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"трайное націсканне на экран"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Хутка націсніце на экран некалькі разоў ({0,number,integer}). Выкарыстанне гэтай каманды можа запаволіць працу прылады"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Даведацца больш пра кнопку спецыяльных магчымасцей і жэст"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Выкарыстанне кнопкі спецыяльных магчымасцей. Гэты жэст недаступны з 3-кнопачнай навігацыяй."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Хуткі доступ да спецыяльных магчымасцей"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Каб пачаць, выканайце наступныя дзеянні:"</b>\n"1. Перайдзіце да налад спецыяльных магчымасцей.\n2. Выберыце патрэбную функцыю і націсніце ярлык.\n3. Выберыце, як вы будзеце атрымліваць доступ да гэтай функцыі: праз кнопку ці праз жэст"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Каб пачаць, выканайце наступныя дзеянні:"</b>\n"1. Перайдзіце да налад спецыяльных магчымасцей.\n2. Выберыце патрэбную функцыю і націсніце ярлык.\n3. Выберыце кнопку для доступу да функцыі"</string>
+    <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_size_title" msgid="5785110470538960881">"Памер"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Завяршыць выклік кнопкай сілкавання"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Вялікі ўказальнік мышы"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Зрабіць курсор больш прыметным"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Цёмная тэма ва ўсіх праграмах"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Дзейнічае для праграм без уласнай цёмнай тэмы. Здараюцца праблемы (напрыклад, інвертаванне колераў)."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Адключыць анімацыю"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Паменшыць рух на экране"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Монафанія"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Гэта функцыя можа адсочваць вашы ўзаемадзеянні з праграмай ці датчыкам апаратнага забеспячэння і ўзаемадзейнічаць з праграмамі ад вашага імя."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дазволіць"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Адмовіць"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Спыніць"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Скасаваць"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Адключыць сэрвіс \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Націск кнопкі \"<xliff:g id="STOP">%1$s</xliff:g>\" спыніць працу сэрвісу \"<xliff:g id="SERVICE">%2$s</xliff:g>\"."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Выключыць"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Не выключаць"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Выключыць сэрвіс \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Няма ўсталяваных службаў"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Служба не выбрана"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Няма апісання."</string>
     <string name="settings_button" msgid="2195468788019730377">"Налады"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"адчувальнасць да святла, фотафобія, цёмная тэма, мігрэнь, галаўны боль, рэжым чытання, начны рэжым, паменшыць яркасць, кропка белага"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Лёгкасць выкарыстання, прастата доступу, дапамога, дапаможны"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"зрок, слых, сляпы, глухі, рухальныя працэсы, рухальныя магчымасці, дапаможны, дапамога, лёгкасць выкарыстання, просты доступ, рука, дапамога"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Лупа для акна, маштаб, павелічэнне, слабы зрок, павялічыць, зрабіць большым"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Субцітры, цітры, Імгненная расшыфроўка, слабы слых, страта слыху, расшыфроўка ў рэальным часе, пераўтварэнне маўлення ў тэкст, субцітр"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"кантрастнасць колераў"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"маторыка, мыш"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"слыхавыя апараты, асобы с парушэннем слыху, парушаны слых, кахлеарныя імпланты, прылады для ўзмацнення гуку, апрацоўка гуку"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"рухальныя працэсы, мыш, знешняя мыш, кіраванне курсорам з дапамогай рухаў галавы, адаптыўная мыш, інвалідная каляска, джойсцік"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"слыхавыя апараты, парушэнне слыху, страта слыху, кахлеарныя імпланты, прылады для ўзмацнення гуку, апрацоўка гуку, персанальныя прадукты для ўзмацнення гуку"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"слабы слых, страта слыху, субцітры, тэлетайп, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"тры кнопкі"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"рухальныя працэсы, рухальныя магчымасці, пажылы чалавек, артрыт, траўма ад рэгулярных нагрузак, інсульт, трэмар, рассеяны склероз, цэрэбральны параліч, дрыжанне, рука"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"затрымка, рухальныя магчымасці, пажылы чалавек"</string>
     <string name="print_settings" msgid="8519810615863882491">"Друк"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Выключана"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Уключаны 1 сэрвіс друку}one{Уключаны # сэрвіс друку}few{Уключана # сэрвісы друку}many{Уключана # сэрвісаў друку}other{Уключана # сэрвісу друку}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Паглядзіце, якія праграмы найбольш спажываюць зарад"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Дзеля зберажэння акумулятара зарадка аптымізавана"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Дзеля падаўжэння тэрміну службы акумулятара зарадка аптымізуецца"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Дзеля зберажэння акумулятара зарадка аптымізавана"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Калі прылада падключана да док-станцыі, дзеля падаўжэння тэрміну службы акумулятара зарадка аптымізуецца"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Дзеля зберажэння акумулятара зарадка аптымізавана"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Калі прылада падключана да док-станцыі, дзеля падаўжэння тэрміну службы акумулятара зарадка аптымізуецца"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Поўная зарадка"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Калі планшэт зноў падключыцца да док-станцыі, дзеля зберажэння акумулятара зарадка будзе аптымізавацца"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Даведацца больш наконт прыпынення зарадкі"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Узнавіць зарадку"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Утрымлівае энергазатратныя дзеянні ў фонавым рэжыме"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Зняць"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Скасаваць"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Зарадзіць поўнасцю"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Праблема з зараднай прыладай"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Даведацца больш пра несумяшчальную зарадную прыладу"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Менеджар акумулятара"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Аўтаматычнае кіраванне праграмамі"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"цяпер"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Дыяграма выкарыстання зараду"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Дыяграма выкарыстання зараду па днях"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Дыяграма выкарыстання зараду па гадзінах"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Узровень зараду акумулятара ў працэнтах: з <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> да <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Выкарыстанне зараду з моманту апошняй поўнай зарадкі"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Выкарыстанне зараду для часавага інтэрвалу \"<xliff:g id="SLOT">%s</xliff:g>\""</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Час карыстання прыладай з моманту апошняй поўнай зарадкі"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Сігнал набору нумару ў аварыйнай сітуацыі"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Задаць паводзіны на выпадак экстранага выкліку"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Рэзервовае капіраванне"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Укл."</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Выкл."</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Рэзервовае капіяванне і аднаўленне"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Асабістыя дадзеныя"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Рэзервовае капіяванне дадзеных"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Назва"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Тып"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Адрас сервера"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-шыфраванне (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Сакрэт L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Ідэнтыфікатар IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Папярэдне размеркаваны ключ IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Сертыфікат карыстальніка IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"CA-сертыфікат IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"сертыфікат сервера IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Паказаць пашыраныя параметры"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Дамены DNS-пошуку"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-серверы (напрыклад, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Перасылка маршрутаў (напрыклад, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Імя карыстальніка"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Пароль"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Захаваць інфармацыю аб уліковым запісе"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(Не выкарыстоўваецца)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(не правяраць сервер)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(атрыманыя з сервера)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Гэта сетка VPN не можа заўсёды заставацца ўключанай"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Для заўсёды ўключанай VPN падыходзяць толькі адрасы сервераў, якія складаюцца з лічбаў"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Для заўсёды ўключанай VPN павінен быць пазначаны DNS-сервер"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Для заўсёды ўключанай VPN адрасы DNS-сервераў павінны складацца з лічбаў"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Уведзеная інфармацыя не сумяшчальная з заўсёды ўключанай VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Скасаваць"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Адхіліць"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Блакіраваць злучэнні без VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Патрабуецца падключэнне VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Сетка VPN не абаронена. Перайдзіце на пратакол IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не ўдалося падключыцца да сеткі VPN, якая не падтрымліваецца."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Дазволiць, каб VPN заўсёды заставаўся падключаным да сеткi, можна будзе толькi пасля падключэння да гэтага VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Няма"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Заўсёды ўключаны VPN патрабуе IP-адрас для сервера і DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Абвесткі сістэмы AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Атрымліваць бюлетэні пра выкраданні дзяцей"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Паўтараць"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Уключыць Call Manager (Менеджар выклікаў)"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Дазволіць гэтай службе кіраваць тым, як робяцца выклікі."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager (Менеджар выклікаў)"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Аварыйныя абвесткі па бесправадных сетках"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Сеткавыя аператары"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Назвы пунктаў доступу"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"кашалёк"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"плаціць, дакранацца, плацяжы"</string>
     <string name="keywords_backup" msgid="707735920706667685">"рэзервовае капіраванне, стварыць рэзервовую копію"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"жэст"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"твар, распазнаванне, аўтарызацыя, уваход"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"твар, разблакіроўка, аўтэнтыфікацыя, уваход, адбітак пальца, біяметрычны"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, мін, версія prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Гукі пры ўключэнні"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Аўтаматычныя субцітры"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Аўтаматычна дадаваць субцітры"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Дынамікі тэлефона"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Дынамiкi планшэта"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Дынамікі прылады"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Правадныя навушнікі"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Гук з сумяшчальных мультымедыйных прылад стварае больш глыбокі эфект прысутнасці"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Выключана"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Нядаўнія размовы выдалены"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Размова выдалена"</string>
     <string name="clear" msgid="5092178335409471100">"Ачысціць"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Ачысціць размову \"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>\""</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Прыярытэтныя і змененыя размовы будуць паказвацца тут"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Калі вы пазначыце размову як прыярытэтную ці ўнесяце ў яе іншыя змяненні, размова будзе паказана тут. \n\nКаб змяніць налады размовы, выканайце наступныя дзеянні: \nПравядзіце пальцам па экране зверху ўніз, каб адкрыць панэль апавяшчэнняў, потым націсніце і ўтрымлівайце размову."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Згарнуць"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Выключана"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Замацаванне праграмы"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Замацаванне праграмы дазваляе трымаць праграму ў полі зроку, пакуль яна не будзе адмацавана. Гэту функцыю можна скарыстаць, каб, напрыклад, дазволіць даверанаму сябру пагуляць у пэўную гульню."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Калі праграма замацавана, яна можа адкрываць іншыя праграмы і даваць доступ да асабістых даных. \n\nКаб выкарыстоўваць замацаванне праграмы, выканайце наступныя дзеянні: 	\n1. Уключыце замацаванне праграмы. 	\n2. Адкрыйце \"Агляд\". 	\n3. Націсніце на значок праграмы ўверсе экрана, а потым выберыце \"Замацаваць\"."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Калі праграма замацавана, яна можа адкрываць іншыя праграмы і даваць доступ да асабістых даных. \n\nКалі вы хочаце бяспечна абагуліць з кім-небудзь сваю прыладу, лепш скарыстайце профіль гасцявога карыстальніка. \n\nКаб выкарыстоўваць замацаванне праграмы, выканайце наступныя дзеянні: 	\n1. Уключыце замацаванне праграмы. 	\n2. Адкрыйце \"Агляд\". 	\n3. Націсніце на значок праграмы ўверсе экрана, а потым выберыце \"Замацаваць\"."</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Кіраваць праграмай, якой не карыстаюцца"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Выдаліць дазволы, часовыя файлы, спыніць адпраўку апавяшчэнняў і архіваваць праграму"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Усе праграмы"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Усталяваныя праграмы"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Імгненныя праграмы"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Свабодна"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Выкарыстанне памяці праграмамі"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{У апошні(я) {time} памяць выкарыстоўвалася 1 праграмай}one{У апошні(я) {time} памяць выкарыстоўвалася # праграмай}few{У апошні(я) {time} памяць выкарыстоўвалася # праграмамі}many{У апошні(я) {time} памяць выкарыстоўвалася # праграмамі}other{У апошні(я) {time} памяць выкарыстоўвалася # праграмамі}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Уключыць аналіз выкарыстання памяці"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Для аналізу выкарыстання памяці патрабуюцца дадатковыя сістэмныя рэсурсы."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Аналіз выкарыстання памяці адключаны"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Частата"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Максімальнае выкарыстанне"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Даныя не выкарыстоўваліся"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Паказваць паверх іншых праграм"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Дазволіць паказ паверх іншых праграм"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Дазволіць гэтай праграме паказвацца паверх іншых праграм, якія вы выкарыстоўваеце. Гэтай праграме будуць даступныя звесткі пра тое, што вы націскаеце або змяняеце на экране."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Змяненне прылады вываду медыя"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Дазволіць праграме кіраваць вывадам медыя"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Дазволіць гэтай праграме кіраваць тым, на якой з падключаных прылад будзе прайгравацца аўдыя і відэа з іншых праграм. Атрымаўшы дазвол, праграма будзе мець доступ да спіса падключаных прылад, такіх як навушнікі і дынамікі, і магчымасць выбіраць прыладу вываду, на якой будзе трансліравацца аўдыя і відэа."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Доступ да ўсіх файлаў"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Палепшыць галасавую актывацыю"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Гэта прылада выкарыстоўвае прыватныя даныя для паляпшэння мадэлі галасавой актывацыі. Праграмы могуць атрымліваць сукупныя даныя ад мноства карыстальнікаў. Гэта дазваляе палепшыць мадэль для ўсіх і пры гэтым забяспечыць прыватнасць.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Папярэджанне пра выкарыстанне трафіка: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Абмежаванне трафіка: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Папярэджанне перадачы даных: <xliff:g id="ID_1">^1</xliff:g> / Ліміт трафіка: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Улік даных аператара можа адрознівацца ад уліку прылады"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Без уліку трафіка, выкарыстанага сеткамі аператара"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> выкарыстана"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Укл. папярэджанне пра трафік"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Абноўлена <xliff:g id="ID_1">^2</xliff:g> таму"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Абноўлена зараз аператарам <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Абноўлена толькі што"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Паглядзець тарыфны план"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Праглядзець звесткі"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Эканомія трафіка"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Неабмежаваная перадача даных"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Анамальнае выкарыстанне зараду"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Пліткі хуткіх налад для распрацоўшчыкаў"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Выключыць час чакання аўтарызацыі ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Выключыць аўтаматычнае адкліканне аўтарызацый ADB для сістэм, якія не падключаліся паўторна на працягу стандартнага (7 дзён) або вызначанага карыстальнікам (мінімум 1 дзень) перыяду часу."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Трасіроўка Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Датчыкі выключаны"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Налады працоўнага профілю"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Шукаць кантакты ў асабістых праграмах з выкарыстаннем працоўнага каталога"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Служба аўтазапаўнення"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Стандартная служба аўтазапаўнення"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Паролі"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сэрвісы для захоўвання пароляў, ключоў доступу і даных"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Дадатковыя пастаўшчыкі"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# пароль}one{# пароль}few{# паролі}many{# пароляў}other{# пароля}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"аўта, запаўненне, аўтазапаўненне, пароль"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"даныя, ключ доступу, пароль"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"аўта, запаўненне, аўтазапаўненне, даныя, ключ доступу, пароль"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Сэрвісы для захоўвання пароляў, ключоў доступу і даных"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Выключыць усе сэрвісы?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Пасля ўваходу вы не зможаце выкарыстоўваць для аўтазапаўнення паролі, ключы доступу і іншыя захаваныя даныя"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Вы хочаце стандартна выкарыстоўваць сэрвіс \"&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;\"?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;Новыя паролі, ключы доступу і іншыя даныя будуць захоўвацца там. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; можа аналізаваць змесціва экрана, каб выяўляць палі для аўтазапаўнення."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Выкарыстоўваць %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Вы можаце ўключыць не больш за 5 сэрвісаў"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Каб дадаць іншы сэрвіс, выключыце прынамсі адзін з існуючых"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s выкарыстоўвайце звесткі пра тое, што ў вас на экране, каб вызначыць, да чаго можна прымяніць аўтазапаўненне."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Перавышаны ліміт сэрвісаў для захоўвання пароляў, ключоў доступу і даных"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Адначасова можна выкарыстоўваць да пяці сэрвісаў для захоўвання пароляў, ключоў доступу і даных. Каб дадаць новы сэрвіс, адключыце адзін з існуючых."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Перавышаны ліміт сэрвісаў для захоўвання пароляў, ключоў доступу і даных"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Адначасова можна выкарыстоўваць да пяці сэрвісаў для захоўвання пароляў, ключоў доступу і даных. Каб дадаць новы сэрвіс, адключыце адзін з існуючых."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Выключыць"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Аўтазапаўненне"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Узровень запісаў"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Змяненні ў сумяшчальнасці праграм могуць быць прыменены толькі да праграм з магчымасцю адладкі. Усталюйце такую праграму і паўтарыце спробу."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Залежыць ад іншай налады"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Уліковы запіс"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Уліковыя запісы: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Назва прылады"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Асноўныя звесткі"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Прававая інфармацыя і нарматыўныя патрабаванні"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Дазвольце запускаць гэту праграму для сканіравання цэтліка NFC.\nКалі гэты дазвол дадзены, пры выяўленні цэтліка праграма будзе даступнай для выбару."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Дзе прайграваць"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>: дзе прайграваць"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Дзе будзе прайгравацца аўдыя:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Гэта прылада"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Недаступна падчас выклікаў"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Адказаць"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Выключыць гук"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Каб уключыць гэту функцыю, спачатку змяніце ў меню кнопкі сілкавання наладу \"Доўгае націсканне кнопкі сілкавання\"."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Інфармацыя аб сетцы"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Назва вашай прылады даступная для праграм на вашым тэлефоне. Яе таксама будуць бачыць іншыя людзі, калі вы падключыцеся да прылад праз Bluetooth, падключыцеся да сеткі Wi-Fi ці наладзіце хот-спот Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Прылады"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Выбраць сетку"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Адключана"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Назва"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Колер (ужываюць сумяшчальныя праграмы)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Захаваць"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Выкарыстоўваць SIM-карту"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Выкарыстоўваць гэту SIM-карту"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Выключана"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Каб адключыць SIM-карту, выміце яе"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Націсніце, каб актываваць аператара \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Сцерці даныя SIM-карты"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Прыярытэтны тып сеткі"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Змяніць рэжым работы сеткі"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Прыярытэтны тып сеткі"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Высветліце цану ў свайго інтэрнэт-правайдара."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Выкарыстанне трафіка"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Несапраўдны рэжым сеткі <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ігнараваць."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Назвы пунктаў доступу"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Недаступна праз аператара \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Пераключыцца на аператара \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\"?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Пераключыцца на выкарыстанне SIM-карты?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Выкарыстоўваць паслугі аператара \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\"?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Нельга актываваць адначасова некалькі SIM-карт.\n\nПераключэнне на аператара \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\" не скасуе абслугоўванне ў аператара \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\"."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Нельга актываваць адначасова некалькі eSIM-карт.\n\nПераключэнне на аператара \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\" не скасуе абслугоўванне ў аператара \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\"."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Нельга актываваць адначасова некалькі SIM-карт.\n\nПераключэнне не скасуе абслугоўванне ў аператара \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\"."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Вы можаце выкарыстоўваць 2 SIM-карты адначасова. Каб выкарыстоўваць паслугі аператара \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\", выключыце іншую SIM-карту."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Пераключыцца на аператара \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\""</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Выключыць паслугі аператара \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\""</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Не, дзякуй"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Скасаваць"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Пераключыцца"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Выключыць"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не ўдалося актываваць SIM-карту"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Паспрабуйце зноў уключыць SIM-карту. Калі праблема застанецца, перазапусціце прыладу."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Наладзьце SIM-карту"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Наладзьце ў параметрах мабільнай сеткі выкарыстанне некалькіх SIM-карт на гэтай прыладзе"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Дадайце меткі для SIM-карт"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Вы будзеце бачыць гэтыя меткі ў наладах, а таксама калі робіце выклікі, адпраўляеце тэкставыя паведамленні і выкарыстоўваеце перадачу даных"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Метка SIM-карты"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Метка"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Выберыце пажаданыя SIM-карты"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Вы можаце выкарыстоўваць дзве SIM-карты адначасова"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Задайце асноўныя SIM-карты"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Выберыце, якія SIM-карты будуць стандартна выкарыстоўвацца для выклікаў, адпраўкі тэкставых паведамленняў і перадачы даных"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Асноўныя SIM-карты"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Выклікі"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Тэкставыя паведамленні"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Аўтапераключэнне SIM-карт"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Выкарыстоўвайце для перадачы даных любую з SIM-карт у залежнасці ад пакрыцця і даступнасці"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Толькі перадача даных"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Наладзіць"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Далей"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мабільная сетка"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Нумар тэлефона"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Метка і колер SIM-карты"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Актывацыя сеткі"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Пераключаецца аператар"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Сетка \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\" актыўная"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Каб пазней карыстацца мабільнай перадачай даных, функцыямі выклікаў і SMS, перайдзіце ў налады сеткі"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-карта"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Сцерці гэту eSIM-карту?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Сціранне даных гэтай SIM-карты выдаляе з гэтай прылады магчымасць карыстацца паслугамі аператара \"<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>\".\n\nАбслугоўванне ў аператара \"<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>\" не будзе спынена."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Сцерці"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Сціраюцца даныя SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Не ўдалося сцерці даныя SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Памылка сцірання даных гэтай SIM.\n\nПеразапусціце прыладу і паўтарыце спробу."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Падключыць да прылады"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Праграма \"<xliff:g id="APPNAME">%1$s</xliff:g>\" запытвае дазвол на часовае выкарыстанне сеткі Wi‑Fi для падключэння да вашай прылады"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Прылады не знойдзены. Пераканайцеся, што прылады ўключаны і даступныя для падключэння."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Экстранныя выклікі"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Экстранныя выклікі праз Wi‑Fi-тэлефанію не падтрымліваюцца вашым аператарам.\nКаб зрабіць экстранны выклік, прылада аўтаматычна пераключыцца на мабільную сетку.\nЭкстранныя выклікі можна рабіць толькі ў зонах сотавага пакрыцця."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Каб палепшыць якасць выклікаў, выкарыстоўвайце Wi‑Fi"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Ствараць рэзервовыя копіі выклікаў"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Калі сувязь праз <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> недаступная ці ў роўмінгу, для выклікаў у сетцы <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> выбірайце перадачу даных SIM."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ствараць рэзервовыя копіі выклікаў"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Уваходнае MMS-паведамленне"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Не ўдалося адправіць MMS-паведамленне"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Націсніце, каб дазволіць адпраўляць MMS-паведамленні ў <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>, калі мабільная перадача даных адключана"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Інфармацыя пра вашу працоўную палітыку"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Наладамі кіруе ваш ІТ-адміністратар"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Графічны працэсар"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Загрузіць са старонкамі ў 16 КБ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Загрузіць прыладу з ядром са старонкамі ў 16 КБ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Перазагрузіць з ядром, сумяшчальным са старонкамі памерам 16 КБ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"УВАГА! Некаторыя праграмы могуць быць несумяшчальнымі з гэтым рэжымам. Прылада перазагрузіцца пасля пацвярджэння."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Перазагрузіць з ядром, сумяшчальным са старонкамі памерам 4 КБ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Прылада перазагрузіцца пасля пацвярджэння."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Не ўдалося змяніць ядро на сумяшчальнае са старонкамі памерам 16 КБ."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Прымяняецца змяненне"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Апрацоўшчык справаздачы пра памылкі"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Праграма, якая запускаецца пры націсканні на ярлык для адпраўкі справаздачы пра памылку."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Асабістая"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Каб хутка ўзнавіць прайграванне, медыяпрайгравальнік застаецца адкрытым у хуткіх наладах"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Паказваць мультымедыя на экране блакіроўкі"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Медыяпрайгравальнік застаецца адкрытым на экране блакіроўкі, каб можна было хутка ўзнавіць прайграванне"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Паказваць рэкамендацыі мультымедыя"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Паказваць рэкамендацыі мультымедыйнага змесціва ад Памочніка"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"На аснове вашых дзеянняў"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Схаваць прайгравальнік"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Паказаць прайгравальнік"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM-карта"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM-карта"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-карты"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Актыўная"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Неактыўная"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Стандартна для наступнага: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"выклікі"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Гук з сумяшчальных мультымедыйных прылад стварае больш глыбокі эфект прысутнасці"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Адсочванне рухаў галавы"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Калі вы рухаеце галавой, гук змяняецца. Дзякуючы гэтаму вы чуеце больш натуральнае гучанне"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Сінхранізацыя дазволаў"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Даць прыладзе \"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>\" такія ж дазволы для праграм, якія ёсць у прылады \"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>\""</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Сінхранізуйце дазволы на гадзінніку і тэлефоне"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Дайце праграмам на гадзінніку такія ж дазволы, як і на тэлефоне"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тып аўдыяпрылады"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Невядома"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Дынамік"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Сярэдняя"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Высокая"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Гэту праграму можна адкрыць толькі ў адным акне"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Уключана"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Выключана"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Выключана"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Выключана"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Уключана"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Выключана"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Уключана"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Выключана"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Інверсія колераў мяняе светлыя колеры на экране на цёмныя, а цёмныя - на светлыя"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Уключыць функцыю павелічэння маштабу на экране"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Выключана"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Выключана"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Уключана"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Выключана"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Уключана"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Пароль зададзены"</string>
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index f2f9d44..dbf54fe 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 971037e..5290654 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Само потребителите с администраторски достъп имат достъп до настройките за програмисти."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Системни"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"В употреба"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Не работи"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Прекарайте пръст нагоре, за да продължите"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Затворете телефона си и прекарайте пръст нагоре по предния дисплей, за да продължите да използвате приложението, или изчакайте няколко секунди, за да се заключи екранът"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Сродни"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Мелодия и будилници"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Звук по време на обаждания"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Мултимедия"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Известия и др. системни звуци"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Мултимедия и системни звуци"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Известия"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"По подразбиране аудиоизходът се определя от отделните приложения"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Устройство с Bluetooth без име"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Търси се"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Функцията за Bluetooth е включена"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Преглед на всички"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Преглед на всички"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Писалка"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Натискане на бутона в горната част"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (служебен потребителски профил)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Свързване с аудиопоток от LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Аудиопотоци в близост"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудиопотоци"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Свързване с аудиопоток чрез QR код"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Няма открити аудиопотоци в близост."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Дата и час"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси сървър"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Изчистване"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"За да изберете език за всяко отделно приложение, отворете настройките за език на приложенията."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Научете повече за езиците на приложенията"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Искате ли да промените системния език на %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Искате ли да добавите %s към предпочитаните езици?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Така ще уведомите приложенията и уебсайтовете, че този език също е предпочитан."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Настройките на устройството и регионалните ви предпочитания ще бъдат променени."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Промяна"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s не е налице"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"събота"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ако дадено приложение не поддържа регионалните предпочитания, то ще използва стандартните си настройки за локала."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Научете повече за езиковите предпочитания."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Допълнителни предпочитания"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Форма на обръщение"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Задайте форма на обръщение към вас"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Приложенията могат да използват зададената от вас форма на обръщение, за да персонализират начина, по който се обръщат към вас."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не е посочено"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Женски род"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Мъжки род"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Неутрално"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Да се премахне ли избраният език?}other{Да се премахнат ли избраните езици?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текстът ще се показва на друг език."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не могат да се премахнат всички езици"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Местоположение"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Използване на местоположението"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Изкл."</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Включено – # приложение има достъп до местоположението}other{Включено – # приложения имат достъп до местоположението}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Включено/# приложение има достъп до местоположението}other{Включено/# приложения имат достъп до местоположението}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Зарежда се…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложенията с разрешението за устройства в близост могат да определят относителната позиция на свързаните устройства."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Достъпът до местоположението е изключен за приложенията и услугите. Местоположението на устройството ви пак може да се изпраща до органите за бързо реагиране, когато се обадите на номер за спешни случаи или изпратите SMS до такъв."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Научете повече за настройките за местоположението."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Научете повече за настройките за местоположението"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"За промени в достъпа до местопол.: „Настройки &gt; Сигурност и поверителност &gt; Контроли за поверителност“"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"За най-добри резултати използвайте защитен слой на екрана, който е със сертификат „Създадено за Google“. Отпечатъкът на детето ви може да не работи с други защитни слоеве."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Отключване чрез часовника"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Когато носите маска или се намирате на тъмно място и сте настроили опциите за отключване с лице и отпечатък, телефонът ви ще поиска да използвате отпечатъка си.\n\nМожете да отключите телефона чрез часовника си, ако лицето или отпечатъкът ви не бъдат разпознати."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Можете да отключите устройството чрез часовника си, ако отпечатъкът ви не бъде разпознат."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Можете да отключите устройството чрез часовника си, ако лицето ви не бъде разпознато."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Когато носите маска или се намирате на тъмно място и сте настроили функциите „Отключване с лице“ и „Отключване с отпечатък“, телефонът ви ще поиска да използвате отпечатъка си.\n\nФункцията за отключване чрез часовника е друг удобен начин да отключвате телефона си, например когато пръстите ви са мокри или лицето ви не бъде разпознато."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Функцията за отключване чрез часовника е друг удобен начин да отключвате телефона си, например когато отпечатъкът ви не бъде разпознат."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Функцията за отключване чрез часовника е друг удобен начин да отключвате телефона си, например когато лицето ви не бъде разпознато."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Използвайте отпечатък или часовник за"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Използвайте лице или часовник за"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Използвайте лице, отпечатък или часовник за"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Лицето и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Лицето, отпечатъкът и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Лицето, отпечатъците и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Как работи"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Часовникът ви трябва да е отключен, да е на китката ви и да е близо до този телефон. Няма да е необходимо отново да отключвате часовника си, докато е на китката ви."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Ще получавате известие на часовника си, когато телефонът е отключен. Ако не сте възнамерявали да отключите телефона си, докоснете известието, за да го заключите отново."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Контролът е във ваши ръце"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Можете да премахнете часовника си от функцията „Отключване чрез часовника“ по всяко време от настройките"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Докоснете известие"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Прекарайте пръст нагоре през заключения екран"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Изберете часовника си"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Налични часовници"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Отказ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Потвърждаване"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Готово!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Вече можете да отключвате този телефон чрез часовника си, като прекарате пръст нагоре през заключения екран или докоснете известие"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Отключване чрез часовника"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Можете да отключвате този телефон чрез часовника си, като прекарате пръст нагоре през заключения екран или докоснете известие"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"За да използвате функцията за отключване чрез часовника, той трябва да е отключен, да е на китката ви, да е наблизо и да е свързан с този телефон. Ако връзката е прекъснала, ще трябва да отключите телефона, преди да можете да използвате отключване чрез часовника.\n\nИмайте предвид следното:\nВ даден момент може да е настроен само един часовник. За да добавите друг, първо премахнете текущия."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Научете повече за „Отключване чрез часовника“"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Добавяне на часовник"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Премахване на часовника"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отключване с лице и отпечатък"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Отключване с лице и отпечатък за служебни цели"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Необходимо е настройване"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Сигурност"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Поверителност"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Служебен потребителски профил"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Лично пространство"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Заключване и скриване на частните приложения"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Частните приложения са на отделно място, което можете да скриете или заключите"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Опция за заключване на личното пространство"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Можете да отключвате личното пространство по същия начин, по който отключвате устройството си, или да изберете друга опция за заключване"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Използване на опцията за заключване на екрана на у-вото"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Отключване с лице и отпечатък"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Отключване с отпечатък"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Отключване с лице"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Докоснете, за да настроите"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"„Отключване с отпечатък“ за частното пространство"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"„Отключване с лице“ за частното пространство"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Начини за отключване"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Като опцията за заключване на екрана на устройството"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Искате ли нова опция за закл. на личното простр.?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Автоматично заключване"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Автоматично заключване на частното пространство"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Частното ви пространство може да се заключва автоматично, ако не сте използвали устройството си за определен период от време"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"При всяко заключване на устройството"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"След 5 минути неактивност"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Никога"</string>
+    <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_deleted" msgid="7825768516955610897">"Личното пространство бе изтрито успешно"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Изтриването на личното пространство не бе успешно"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Частното пространство е отключено"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Настройте заключване на екрана"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"За да ползвате частното си пространство, настройте заключване на екрана на устройството."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Настройване на закл. на екрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Отказ"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Отказ"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Настройване"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Настройване на частно пространство"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Частните приложения са на отделно място, което можете да скриете или заключите"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Начин на работа"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Можете да осъществите достъп до частното пространство от долната част на списъка с приложения"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Приложенията в частното простр. са защитени със заключване"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Известията от приложенията в частното ви пространство са скрити, когато то е заключено"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Когато частното ви пространство е заключено, приложенията в него няма да се показват в мениджъра на разрешенията, таблото за управление на поверителността и други настройки.\n\nЧастното ви пространство не може да бъде преместено на ново устройство. В такъв случай ще трябва да настроите друго частно пространство.\n\nВсеки, който свърже устройството ви с компютър или инсталира опасни приложения на него, би могъл да осъществи достъп до частното ви пространство."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Частното пространство се настройва…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Известията от приложенията в частното пространство са скрити, когато то е заключено"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Отключете частното пространство, за да споделяте снимки или файлове от приложенията в него"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Някои приложения вече са инсталирани в частното ви пространство"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Настройването на частното пространство не бе успешно"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Нов опит"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Да се отключва ли частното простр. по същия начин?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Можете да отключвате частното пространство по същия начин, по който отключвате устройството си, или да изберете друга опция за заключване"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Използване на закл. на екрана"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Избиране на нова опция за заключване"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Готово!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"За достъп до частното си пространство отворете списъка с приложения и превъртете надолу"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Готово"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Превъртете надолу, за да намерите частното пространство"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Изберете опция за заключване на частното ви пространство"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Можете да отключвате частното си пространство посредством отпечатъка си. От съображения за сигурност трябва да зададете резервна опция за заключване."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Задайте ПИН код за частното пространство"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Задайте парола за частното пространство"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Задайте фигура за частното пространство"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"За показване на личното пространство (не е окончателната UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Отворете приложението „Настройки“"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Докоснете „Сигурност и поверителност &gt; Лично пространство &gt; Скриване на личното пространство при заключен екран“"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Изкл. на превкл. „Скриване на личното пространство при заключен екран“"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Забележка за служителите на Google: Разработването на тази функция още е в ход"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Възможно е също така да се наложи да въведете този код за достъп на другото устройство."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Потвърдете, за да сдвоите с координирания набор"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Разрешаване на достъпа до контактите и историята на обажданията ви"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Разрешаване и на достъпа до контактите и историята на обажданията"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Информацията ще се използва за съобщения чрез обаждания и др."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не можа да се установи връзка със: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Налични устройства"</string>
     <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 e изключена. Това може да послужи например за подобряване на базиращите се на местоположението функции и услуги. Можете да промените това от настройките за сканиране през Bluetooth."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Промяна"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Подробности за устройството"</string>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"В самолетен режим"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Известяване за обществени мрежи"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Известяване при наличие на висококачествена обществена мрежа"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Разрешаване на мрежи с WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP е по-стар протокол за сигурност, който не е толкова надежден"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Операторът ви не разрешава мрежи с WEP, тъй като не са толкова надеждни"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Автоматично включване на Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi ще се включва при наличие на висококачествени запазени мрежи, като например тази в дома ви"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Не е налице, защото местоположението е изключено. Включете "<annotation id="link">"настройката"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Сканирането за Wi‑Fi разрешава на приложенията и услугите да сканират за Wi‑Fi мрежи по всяко време дори когато функцията за Wi‑Fi e изключена. Това може да послужи например за подобряване на базиращите се на местоположението функции и услуги."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Включване"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Сканирането за Wi-Fi е включено"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Тази мрежа използва по-стар протокол за сигурност, който не е толкова надежден"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Мрежата „<xliff:g id="NAME">%1$s</xliff:g>“ е блокирана"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Тази мрежа използва по-стар протокол за сигурност, наречен WEP, който не е толкова надежден. За да се свържете въпреки това, можете да разрешите мрежите с WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Операторът ви не разрешава да се свържете с тази мрежа, защото тя използва по-стар протокол за сигурност, който не е толкова надежден"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Разрешаване на WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Затваряне"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Разширени опции"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Падащ списък за разширени опции"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"разгъване"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Придържане към Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Повече да не се показва"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Свързване"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Функцията за Wi-Fi е включена"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Установена е връзка с(ъс) <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Свързване към <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Свързва се…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Свързването с мрежата не бе успешно"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежата не е в обхват"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Забравяне"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Промяна"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Забравянето на мрежата не бе успешно"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Запазване"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Запазването на мрежата не бе успешно"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Отказ"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобилни данни"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Зарежда се"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Зарежда се"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Връзка с точка за достъп"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Сила на връзката"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Запазени мрежи"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Няма зададена парола"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Име на точката за достъп"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Парола за точката за достъп"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Честота на точката за достъп"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Автоматично изключване на точката за достъп"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Когато няма свързани устройства"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Разширяване на съвместимостта"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Деакт. на осн. скорост на кадрите за игрите"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Деактивиране на ограничаването на максималната скорост на кадрите за игрите при <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Плавно показване"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Функцията „Внимание към екрана“ използва предната камера, за да види дали някой гледа в екрана. Тя работи на устройството и изображенията не се съхраняват, нито се изпращат до Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Вкл. на функцията „Внимание към екрана“"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Екранът остава включен, докато гледате към него"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"По-дългото време до автоматично изключване на екрана изразходва повече батерия."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камерата е заключена"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Камерата трябва да е отключена за лицевото разпознаване"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Камерата трябва да е отключена за функцията „Внимание към екрана“"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM слот <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM слот <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (основен)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"За преглед изберете запазена мрежа"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Версия на списъка с предпочитания за роуминг"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Ниво на батерията"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Общи"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Общи настройки"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Запазване"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Отказ"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Полето за име трябва да се попълни."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Името на точката за достъп (APN) трябва да се попълни."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Полето за мобилен код на държавата трябва да е 3 цифри."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Полето за код на мобилна мрежа (MNC) трябва да е с 2 или 3 цифри"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Операторът не позволява добавянето на имена на точки за достъп (APN) от типа „%s“."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Полето MMSC трябва да съдържа валидна стойност."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Стандартните настройки за името на точката за достъп (APN) се възстановяват."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Възстановяване на стандартни"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Възстановяването на стандартните настройки за името на точката за достъп (APN) завърши."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Нулиране"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Настройките за Bluetooth и Wi‑Fi са нулирани"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Изтриване на електронните SIM карти"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Плановете за мобилни услуги няма да бъдат анулирани. Обърнете се към оператора си, за да изтеглите резервни SIM карти."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Нулиране на настройките"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Да се нулират ли всички настройки за мрежата? Не можете да отмените това действие."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Да се нулират ли всички мрежови настройки и да се изтрият ли електронните SIM карти? Не можете да отмените това действие."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Нулиране?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Този потребител не може да нулира мрежовите настройки"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Мрежовите настройки са нулирани"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM картите не могат да се изтрият"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Електронните SIM карти не могат да бъдат изтрити поради грешка.\n\nРестартирайте устройството си и опитайте отново."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Изтриване на всички данни (възстановяване на фабричните настройки)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Изтрив. на данните (възст. на фабр. настр.)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музика"</li>\n<li>"снимки"</li>\n<li>"други потребителски данни."</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"електронни SIM карти"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Планът ви за мобилна услуга няма да бъде анулиран."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Цялата ви лична информация и всички изтеглени приложения ще бъдат изтрити. Не можете да отмените това действие."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Цялата ви лична информация, включително изтеглените приложения и SIM карти, ще бъде изтрита. Не можете да отмените това действие."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Да се изтрият ли всички данни?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"За този потребител не е налице възстановяване на фабричните настройки"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Изтрива се"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Точка за достъп, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Връзката с интернет не се споделя с други устройства"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Изкл."</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Тетъринг"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Без използване на точка за достъп до Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Споделете достъпа до интернет само през USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Споделяне на достъпа до интернет само през Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Споделяне на достъпа до интернет само през Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Споделяне на достъпа до интернет само през USB и Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Споделяне на достъпа до интернет само през USB и Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Споделяне на достъпа до интернет само през Bluetooth и Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Споделяне на достъпа до интернет само през USB, Bluetooth и Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Тетъринг през USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Тетъринг през Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Тетъринг през Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Използвайте точка за достъп и тетъринг, за да предоставите достъп до интернет на други устройства чрез Wi-Fi или мобилната си връзка за данни. Приложенията могат също да създават точки за достъп, за да споделят съдържание с устройства в близост."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Помощ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобилна мрежа"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Мобилен план"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Приложение за SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Да се промени ли приложението за SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Да се използва ли <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> като приложение за SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Да се промени ли асистентът за Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Да се използва ли <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управление на мрежовите ви връзки?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Да се използва ли <xliff:g id="NEW_APP">%s</xliff:g> за управление на мрежовите ви връзки?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Неизвестен SIM оператор"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Няма известен администриращ уебсайт за <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Моля, поставете SIM карта и рестартирайте"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Моля, свържете се с интернет"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Скорошни заявки за местопол."</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Местоп. за служ. потр. профил"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Разрешения на приложенията за достъп до местоп."</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Премахване на достъпа"</string>
     <string name="controls_label" msgid="8671492254263626383">"Контроли"</string>
     <string name="force_stop" msgid="2681771622136916280">"Принудител­но спиране"</string>
+    <string name="archive" msgid="9074663845068632127">"Архивиране"</string>
+    <string name="restore" msgid="7622486640713967157">"Възстановяване"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Общо"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Размер на приложението"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Приложение за USB хранилище"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Размерът на пакета не можа да бъде изчислен."</string>
     <string name="version_text" msgid="7628938665256107608">"версия <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Преместване"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Архивирането не бе успешно"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Успешно архивиране на <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Възстановяването не бе успешно"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> се възстановява"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Вече се извършва друго мигриране."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Няма достатъчно място в хранилището."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Приложението не съществува."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Налична екранна клавиатура"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Управление на екранните клавиатури"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опции"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Достъпност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физическа клавиатура"</string>
     <string name="show_ime" msgid="4334255501724746849">"Използване на екранната клавиатура"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Показва се на екрана, докато физическата клавиатура е активна"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Игнориране на многократ. натискане"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Активиране на игнорирането на многократното натискане за достъпност чрез физическата клавиатура"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Фиксирани клавиши"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Активиране на фиксираните клавиши за достъпност чрез физическата клавиатура"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Клавишни комбинации"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показване на списък с клавишните комбинации"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавиатури и инструменти за служебния потр. профил"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Сортиране по време на използв."</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Сортиране по последно използв."</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Сортиране по име на прилож."</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Последно използване"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Последно използване"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"никога"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Време на употреба"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Достъпност"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Настройки за достъпност"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Напред въпреки това"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Отказ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Настройки за увеличението"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Увеличаване с трикратно докосване"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Увеличаване на мащаба с пряк път"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Увелич. на мащаба с пряк път и трикратно докосване"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Всичко за „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Отваряне с двукратно докосване на екрана с два пръста"</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="860548190334486449">"За стартиране и спиране на увеличението докоснете два пъти с два пръста където и да е на екрана."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"За да използвате функцията за достъпност, прекарайте три пръста нагоре от долната част на екрана.\n\nЗа превключване между функциите прекарайте три пръста нагоре и задръжте."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Разбрах"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Настройки за бутона"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Настройки за бутона"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Пряк път за <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Бутон за достъпност"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Жест за достъпност"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Двукратно докосване на екрана с два пръста"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"двукратно докосване на екрана с два пръста"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Бързо докоснете екрана {0,number,integer} пъти с два пръста"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Трикратно докосване на екрана"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"трикратно докосване на екрана"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Бързо докоснете екрана {0,number,integer} пъти. Този пряк път може да забави работата на устройството ви."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Научете повече за бутона и жеста за достъпност"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Използване на бутона за достъпност. Жестът не е налице посредством навигиране с 3 бутона."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Бърз достъп до функциите за достъпност"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"За да започнете:"</b>\n"1. Отворете настройките за достъпност.\n2. Изберете функция и докоснете прекия път.\n3. Изберете как да осъществявате достъп до функцията – чрез бутон или жест."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"За да започнете:"</b>\n"1. Отворете настройките за достъпност.\n2. Изберете функция и докоснете прекия път.\n3. Изберете бутона за достъп до функцията."</string>
+    <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_size_title" msgid="5785110470538960881">"Размер"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Край на обажд. с бутона за вкл./изкл."</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Голям курсор на мишката"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Промяна на курсора на мишката така, че да се вижда по-лесно"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Тъмна тема за всички приложения"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Отнася се за приложения без тъмна тема. Може да има проблеми с показването, като обърнати цветове."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Премахване на анимациите"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Намаляване на движенията по екрана"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Монозвук"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Услугата може да проследява взаимодействията ви с дадено приложение или хардуерен сензор, както и да взаимодейства с приложенията от ваше име."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешаване"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отказ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Спиране"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Отказ"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Да се спре ли „<xliff:g id="SERVICE">%1$s</xliff:g>“?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Докосването на „<xliff:g id="STOP">%1$s</xliff:g>“ ще спре „<xliff:g id="SERVICE">%2$s</xliff:g>“."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Изключване"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Не"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Да се изключи ли <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Няма инсталирани услуги"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Няма избрана услуга"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Няма описание."</string>
     <string name="settings_button" msgid="2195468788019730377">"Настройки"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"чувствителност към светлина, фотофобия, тъмна тема, мигрена, главоболие, режим за четене, нощен режим, намаляване на яркостта, точка на бялото"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Лекота на използване, лесен достъп, помощ, помощно"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"зрение, слух, незрящо лице, лице, лишено от слух, моторно, двигателно, помощно, асистенция, лесно използване, лесен достъп, ръка, помощ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"инструмент за увеличаване на прозорци, промяна на мащаба, ниво на мащаба, слабо зрение, уголемяване, увеличение"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Надписи, субтитри, „Незабавно транскрибиране“, увреден слух, загуба на слуха, надписи в реално време (CART), транскрибиране на говор"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"контраст на цветовете"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"двигателна система, мишка"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"слухови апарати, лице с увреден слух, загуба на слуха, кохлеарни импланти, устройства за усилване на звука, звукови процесори"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"моторно, мишка, външна мишка, управлявана чрез главата мишка, адаптивна мишка, инвалидна количка, джойстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"слухови апарати, лице с увреден слух, загуба на слуха, кохлеарни импланти, устройства за усилване на звука, звукови процесори, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"увреден слух, загуба на слуха, надписи, телетайп, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"три бутона"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"двигателно, моторно, възрастно лице, артрит, повтарящо се нараняване на щама (RSI), удар, тремор, множествена склероза, церебрална парализа, треперене, ръка"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"забавяне, двигателно, възрастен човек"</string>
     <string name="print_settings" msgid="8519810615863882491">"Отпечатване"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Изключено"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Включена е 1 услуга за отпечатване}other{Включени са # услуги за отпечатване}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Вижте приложенията с най-голямо използване"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Зареждането е оптимизирано с цел запазване на батерията ви"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"С цел удължаване на живота на батерията зареждането е оптимизирано"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Зареждането е оптимизирано с цел запазване на батерията ви"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"С цел удължаване на живота на батерията ви зареждането е оптимизирано, докато е установена връзка с докинг станция"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Зареждането е оптимизирано с цел запазване на батерията ви"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"С цел удължаване на живота на батерията ви зареждането е оптимизирано, докато е установена връзка с докинг станция"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Зарежда се докрай"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"С цел запазване на батерията зареждането ще бъде оптимизирано следващия път, когато таблетът ви е свързан с докинг станция"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Научете повече за това защо зареждането е на пауза"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Възобновяване на зареждането"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Включва активността на заден план, изразходваща много енергия"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Премахване"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Отказ"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Пълно зареждане"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Проблем със зарядното устройство"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Научете повече за несъвместимите начини на зареждане"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Мениджър на батерията"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Автоматично управление на приложенията"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"сега"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Диаграма за използването на батерията"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Диаграма на ежедневното използване на батерията"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Диаграма на почасовото използване на батерията"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Процент на нивото на батерията от <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> до <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Използване на батерията след последното пълно зареждане"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Използване на батерията за периода <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Време на ползване след последното пълно зареждане"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал за набиране при спешен случай"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Задаване на поведение при спешно обаждане"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Резервно копие"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Включено"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Изключено"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Резервни копия и възстановяване"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Лични данни"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Резервно копие на данните ми"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Име"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Тип"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Адрес на сървъра"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP шифроване (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP тайна"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Идентификатор на IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Предварително споделен ключ за IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Потребителски сертификат за IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Сертификат от сертиф. орган за IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Сертификат за IPSec на сървъра"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Показване на разширените опции"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS домейни за търсене"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS сървъри (напр. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Маршрути за пренас. (напр. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Потребителско име"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Парола"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Запазване на информацията за профила"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(неизползвано)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(без потвърждаване на сървъра)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(получено от сървъра)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Не можете да поддържате постоянна връзка с виртуални частни мрежи (VPN) от този тип"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Винаги включените виртуални частни мрежи (VPN) поддържат само адреси на сървър, съставени от цифри"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Трябва да посочите DNS сървър за винаги включената виртуална частна мрежа (VPN)"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Адресите на DNS сървър за винаги включени виртуални частни мрежи (VPN) трябва да са съставени от цифри"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Въведената информация не се поддържа от винаги включените виртуални частни мрежи (VPN)"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Отказ"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Отхвърляне"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Блокиране на връзките без VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Да се изисква ли връзка с VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Няма защита. Актуализирайте до VPN от типа IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Неподдържаната VPN не бе стартирана."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Изберете потребителски профил за виртуална частна мрежа (VPN), за да останете винаги свързани с нея. Мрежовият трафик ще бъде разрешен само при връзка с тази VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Няма"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Винаги включената виртуална частна мрежа (VPN) изисква IP адрес както за сървъра, така и за DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Сигнали за изчезнали деца"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Получаване на бюлетини за отвличания на деца"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Повтаряне"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Активиране на мениджъра на обажданията"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Разрешаване на тази услуга да управлява как се извършват обажданията ви."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Мениджър на обажданията"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Безжични сигнали при спешни случаи"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Мрежови оператори"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Имена на точките за достъп"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"портфейл"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"плащане, докосване, плащания"</string>
     <string name="keywords_backup" msgid="707735920706667685">"резервно копие, създаване на резервно копие"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"жест"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"лице, отключване, удостоверяване, вход"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"лице, отключване, удостоверяване, вход, отпечатък, биометрика"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl версия, версия на софтуера на imei"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Звуци при включване"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Надписи на живо"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Мултимедия с автоматични надписи"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Високоговорители на телефона"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Високоговорители на таблета"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Високоговорители на устройството"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Слушалки с кабел"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Звукът от съвместимите източници става по-реалистичен"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Изкл."</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Скорошните разговори са премахнати"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Разговорът е премахнат"</string>
     <string name="clear" msgid="5092178335409471100">"Изчистване"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Изчистване на разговора с(ъс) <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Приоритетните и променените разговори ще се показват тук"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"След като означите даден разговор като приоритетен или направите други промени в разговорите, те ще се показват тук. \n\nЗа да промените настройките за разговорите: \nПлъзнете пръст надолу от горната част на екрана, за да отворите падащия панел, след което докоснете даден разговор и го задръжте."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Намаляване"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Изкл."</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Фиксиране на приложения"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Функцията за фиксиране на приложения ви дава възможност да задържите текущото приложение на преден план, докато не го премахнете. С нейна помощ можете например да позволите на доверен приятел да играе конкретна игра."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Когато дадено приложение е фиксирано, то може да отваря други приложения. Възможно е също някои лични данни да са достъпни. \n\nЗа да използвате функцията за фиксиране на приложения: 	\n1. Включете я. 	\n2. Отворете екрана за общ преглед. 	\n3. Докоснете иконата на приложението в горната част на екрана, след което изберете „Фиксиране“."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Когато дадено приложение е фиксирано, то може да отваря други приложения. Възможно е също някои лични данни да са достъпни. \n\nАко искате по сигурен начин да споделите устройството си с друг човек, използвайте режима на гост. \n\nЗа да използвате функцията за фиксиране на приложения: 	\n1. Включете я. 	\n2. Отворете екрана за общ преглед. 	\n3. Докоснете иконата на приложението в горната част на екрана, след което изберете „Фиксиране“."</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_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">"ПИН код преди освобождаване"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Управление на прилож., ако не се ползва"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Премахване на разрешенията, изтриване на временните файлове, спиране на известията и архивиране на приложението"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Всички приложения"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Инсталирани приложения"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Мигновени приложения"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Свободна памет"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Използвана от приложенията памет"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 приложение е използвало памет през последния период от {time}}other{# приложения са използвали памет през последния период от {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Вкл. на профилирането на използв. памет"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Профилирането на използваната памет изисква допълнителни системни ресурси."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Профилирането на паметта е деактивирано"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Честота"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Максимално използвана"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Не са използвани данни"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Показване върху други приложения"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Разрешаване на показв. върху други приложения"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Разрешаване на приложението да се показва върху другите използвани от вас приложения. То ще може да вижда къде докосвате екрана и да избира какво да се показва на него."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Промяна на мултимедийния изход"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Разреш. на прил. да променя мултимед. изход"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Разрешаване на това приложение да избира от кое свързано устройство да се възпроизвежда аудио или видео от други приложения. Ако има разрешение, приложението може да отваря списъка с налични изходни устройства, като например слушалки и високоговорители, и да избира кое от тях да се използва за поточно предаване или предаване на аудио/видео."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Достъп до всички файлове"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Подобряване на гласовото активиране"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Това устройство използва частни данни, за да подобрява модела за гласово активиране. Приложенията могат да получават обобщени актуализации, които се събират от много потребители. По този начин моделът се подобрява за всички и същевременно се запазва поверителността.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Предупреждение за данните: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Лимит за данните: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Предупреждение за данните: <xliff:g id="ID_1">^1</xliff:g>/ограничение за данните: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Отчетените от оператора данни може да се различават от показаните на устройството"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Изключва данните, които се използват от мрежите на операторите"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Използвали сте <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Задаване на предупр. за данните"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Актуализирано преди <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Актуализирано току-що от <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Актуализирано току-що"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Преглед на плана"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Преглед на подробностите"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Икономия на данни"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Неограничен достъп до данни"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Аномалия в използването на батерията"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Плочки за бързи настройки за програмисти"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Деакт. на времето за изчакване за упълном. на adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Деактивиране на автоматичната отмяна на упълномощаванията на adb за системи, които не са установили повторна връзка в рамките на стандартния период (7 дни) или този, конфигуриран от потребителя (най-малко 1 ден)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Трасиране на Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Сензорите са изключени"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Настройки за служебния потребителски профил"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Търсене на контакти от служебния указател в личните приложения"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Услуга за автоматично попълване"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Основна услуга за автоматично попълване"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Пароли"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Пароли, ключове за достъп и услуги за данни"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Допълнителни доставчици"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# парола}other{# пароли}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"автоматично, попълване, автоматично попълване, парола"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"данни, код за достъп, парола"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автоматично, попълване, автоматично попълване, данни, ключ за достъп, парола"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Пароли, ключове за достъп и услуги за данни"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Да се изключат ли всички услуги?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Паролите, ключовете за достъп и другите данни няма да са налице, когато влизате в профил"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Искате ли да зададете &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; като предпочитана услуга?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; От сега нататък тук ще се запазват новите пароли, ключове за достъп и други данни. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; може да използва съдържанието на екрана ви, за да определи какво може да бъде попълнено автоматично"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Да се използва ли %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Можете да включите само 5 услуги"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"За да добавите друга услуга, изключете поне 1"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s използва съдържанието на екрана ви, за да определи какво може да бъде попълнено автоматично."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Ограничение за паролите, ключовете за достъп и услугите за данни"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Не можете да имате едновременно повече от 5 активни пароли, ключа за достъп и услуги за данни. Изключете една от услугите, за да добавите друга."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Ограничение за паролите, ключовете за достъп и услугите за данни"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Не можете да имате едновременно повече от 5 активни пароли, ключа за достъп и услуги за данни. Изключете една от услугите, за да добавите друга."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Изключване"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Автоматично попълване"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Ниво на регистриране"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Промени в съвместимостта на приложенията могат да се извършват само за приложения с възможност за отстраняване на грешки. Инсталирайте такова и опитайте отново."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Зависи от друга настройка"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Профил"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d профила"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Име на устройството"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Основна информация"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Правна и нормативна информация"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Разрешете на това приложение да се стартира при сканиране на маркер за NFC.\nАко предоставите това разрешение, приложението ще бъде налице като опция, когато сканирате маркер."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Възпроизв. на мултимедия на"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Пускане на <xliff:g id="LABEL">%s</xliff:g> на"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Аудиото ще продължи да се възпроизвежда"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Това устройство"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Заето по време на обаждания"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Устройство за приемане на обаждането"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Спиране на звука"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"За да активирате, първо променете „Натиснете и задръжте бутона за захранване“ към менюто за включване/изключване."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Подробности за мрежата"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Името на устройството ви е видимо за приложенията на телефона ви. То може да се вижда и от други хора, когато се свържете с устройства с Bluetooth или настроите точка за достъп до Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Устройства"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Избиране на мрежа"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Връзката е прекратена"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Име"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Цвят (ползван от съвместими приложения)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Запазване"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Използване на SIM карта"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Използване на тази SIM карта"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Изключено"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"За да деактивирате тази SIM карта, трябва да я премахнете"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Докоснете, за да активирате <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Изтриване на SIM картата"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Предпочитан тип мрежа"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Промяна на операционния режим на мрежата"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Предпочитан тип мрежа"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"За цени се обърнете към оператора си."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Пренос на данни от приложенията"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Невалиден мрежов режим <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Пренебрегване."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Имена на точки за достъп"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"име на точката за достъп"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Не е налице, когато е установена връзка с(ъс) <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Да се превключи ли към <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Искате ли да превключите към използването на SIM карта?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Да се използва ли <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Само една SIM карта може да бъде активна в даден момент.\n\nПревключването към <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> няма да анулира услугата на <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"В даден момент може да бъде активна само една електронна SIM карта.\n\nПревключването към <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> няма да анулира услугата на <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Само една SIM карта може да бъде активна в даден момент.\n\nПревключването няма да анулира услугата на <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"В даден момент можете да използвате 1 SIM карта. За да използвате <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, изключете другата SIM карта."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Превключване към <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Изключване на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Не, благодаря"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Отказ"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Превключване"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Изключване"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM картата не може да се активира"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Включете отново SIM картата. Ако проблемът не се отстрани, рестартирайте устройството си."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Настройване на SIM картата ви"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Задайте предпочитанията си за мобилната мрежа, за да използвате няколко SIM карти на това устройство"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Обозначаване на SIM картите ви"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Ще виждате тези етикети, когато извършвате обаждания, изпращате текстови съобщения и използвате данни, както и в настройките"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Етикет на SIM картата"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Етикет"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Изберете SIM карти за ползване"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Можете да използвате 2 SIM карти едновременно"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Задаване на основни SIM карти"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Изберете кои SIM карти да се използват по подразбиране за обаждания, текстови съобщения и данни"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Основните ви SIM карти"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Обаждания"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Текстови съобщения"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Авт. превключване на данните"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Използване на данни от която и да е от двете SIM карти в зависимост от покритието и наличността"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Само за данни"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Настройване"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Напред"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобилна мрежа"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Телефонен номер"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Етикет и цвят на SIM картата"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активиране на мрежа"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Превключване на оператора"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Услугата <xliff:g id="CARRIER_NAME">%1$s</xliff:g> е активна"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"За да използвате мобилни данни, функции за обаждания и SMS по-късно, отворете настройките за мрежата"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM карта"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Да се изтрие ли тази електронна SIM карта?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"С изтриването на тази SIM карта услугата на <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> се премахва от устройството.\n\nУслугата за <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> няма да бъде анулирана."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Изтриване"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM картата се изтрива…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM картата не може да се изтрие"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Тази SIM карта не може да бъде изтрита поради грешка.\n\nРестартирайте устройството си и опитайте отново."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Свързване с устройство"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Приложението <xliff:g id="APPNAME">%1$s</xliff:g> иска да използва временна Wi-Fi мрежа, за да се свърже с устройството ви"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Няма намерени устройства. Уверете се, че устройствата са включени и налице за свързване."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Спешни обаждания"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Операторът ви не поддържа спешни обаждания през Wi-Fi.\nУстройството автоматично превключва към мобилна мрежа, за да извърши спешно обаждане.\nИзвършването на спешни обаждания е възможно само в райони с мобилно покритие."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Използване на Wi-Fi за обажданията с цел подобряване на качеството"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Обаждания през друга SIM карта"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ако <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> не е налице или е в роуминг, използвайте SIM картата си с мобилни данни за обаждания от <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"обаждания през друга SIM карта"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Входящо MMS съобщение"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Не могат да бъдат изпращани MMS съобщения"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Докоснете, за да разрешите MMS съобщенията за <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>, когато мобилните данни са изключени"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Информация за служебните правила"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Настройки, управлявани от системния администратор"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"ГП"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Стартиране със стр. с размер 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Стартиране на у-вото с ядро за стр. с размер 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Да се рестартира ли с ядро, съвместимо със страници с размер 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ПРЕДУПРЕЖДЕНИЕ: Някои приложения може да не са съвместими с този режим. Устройството ще се рестартира, след като потвърдите."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Да се рестартира ли с ядро, съвместимо със страници с размер 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Устройството ще се рестартира, след като потвърдите."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ядрото не бе актуализирано до такова, съвместимо със страници с размер 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Промяната се прилага"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Манипулатор за сигналите за програмни грешки"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Определя кое приложение да обработва прекия път за сигнали за програмни грешки на устройството ви."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Лично"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"С цел бързо възобновяване на възпроизвеждането медийният плейър остава отворен в бързите настройки"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Показване на медийния плейър на заключения екран"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"С цел бързо възобновяване на възпроизвеждането медийният плейър остава отворен на заключения екран"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Показване на препоръки за мултимедия"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Показване на препоръките на Асистент за мултимедия"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Въз основа на активността ви"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Скриване на плейъра"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Показване на плейъра"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM карта"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"Електронна SIM карта"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Електронни SIM карти"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Активна"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Неактивна"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /основна за <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"обаждания"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звукът от съвместимите източници става по-реалистичен"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Проследяване на движенията на главата"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звукът се променя, докато движите главата си, с цел да бъде по-естествен"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синхронизиране на разрешенията"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> получава същите разрешения за приложенията, които сте предоставили на <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Синхронизиране на разрешенията от телефона"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Часовникът ви получава същите разрешения за приложенията, които сте предоставили на този телефон"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоустройство"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Неизвестно"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Високоговорител"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Среден"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Висок"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Това приложение може да се отвори само в 1 прозорец"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Вкл."</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Изкл."</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Изкл."</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Изкл."</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Вкл."</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Изкл."</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Вкл."</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Изкл."</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Прави светлите екрани тъмни, а тъмните – светли"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Приближаване на екрана"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Изкл."</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Изкл."</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Вкл."</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Изкл."</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Вкл."</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Паролата е зададена"</string>
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index d977a18..d8e95a6 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"১ মিনিট পর"</item>
     <item msgid="1574040255478150028">"৫ মিনিট পর"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 9e6bd55..020b902 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"শুধু অ্যাডমিন ব্যবহারকারীরা ডেভেলপার সেটিংস অ্যাক্সেস করতে পারবেন।"</string>
     <string name="header_category_system" msgid="1665516346845259058">"সিস্টেম"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"পরিষেবায়"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"পরিষেবার বাইরে"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"চালিয়ে যেতে, উপরের দিকে সোয়াইপ করুন"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"অ্যাপটি ব্যবহার করা চালিয়ে যেতে আপনার ফোন ভাঁজ করুন এবং ফ্রন্ট ডিসপ্লেতে উপরের দিকে সোয়াইপ করুন বা স্ক্রিন লক না হওয়া পর্যন্ত কয়েক সেকেন্ড অপেক্ষা করুন"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"সম্পর্কিত"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"রিংটোন ও অ্যালার্ম"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"কল করার সময় ব্যবহৃত অডিও ডিভাইস"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"মিডিয়া"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"বিজ্ঞপ্তি ও সিস্টেমের অন্য শব্দ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"মিডিয়া এবং সিস্টেম সাউন্ড"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"বিজ্ঞপ্তি"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ডিফল্ট হিসেবে, অডিও আউটপুট কেমন হবে প্রতিটি অ্যাপ তা নির্ধারণ করে"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"নামবিহীন ব্লুটুথ ডিভাইস"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"সার্চ করা হচ্ছে"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ব্লুটুথ চালু হয়েছে"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"সবগুলি দেখুন"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"সবকটি দেখুন"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"স্টাইলাস"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"টেল বোতাম প্রেস করুন"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (অফিস প্রোফাইল)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE অডিও স্ট্রিমে কানেক্ট করুন"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"আশেপাশে অডিও স্ট্রিম"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"অডিও স্ট্রিম"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR কোড ব্যবহার করে কোনও একটি অডিও স্ট্রিমে কানেক্ট করুন"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"আশেপাশে কোনও অডিও স্ট্রিম পাওয়া যায়নি।"</string>
     <string name="date_and_time" msgid="1788358029823431692">"দিন ও তারিখ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"প্রক্সী"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"সাফ করুন"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"প্রতিটি অ্যাপের জন্য ভাষা বেছে নিতে, অ্যাপের ভাষা সংক্রান্ত সেটিংসে যান।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"অ্যাপের ভাষা সম্পর্কে আরও জানুন"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"সিস্টেমের ভাষা %s ভাষায় বদল করবেন ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"আপনার পছন্দের ভাষায় %s যোগ করবেন?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"এতে অ্যাপ ও ওয়েবসাইট জানতে পারবে যে আপনিও এই ভাষা ব্যবহার করতে চান।"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"আপনার ডিভাইসের সেটিংস ও আঞ্চলিক অভিরুচি বদলে যাবে।"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"পরিবর্তন করুন"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ভাষা উপলভ্য নেই"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"শনিবার"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"কোনও অ্যাপে আঞ্চলিক অভিরুচি অনুযায়ী ভাষা ব্যবহার করা না গেলে, সেটি ডিফল্ট লোকেল সেটিংস ব্যবহার করবে।"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"পছন্দের ভাষার ব্যাপারে আরও জানুন।"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"অতিরিক্ত পছন্দ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"সম্বোধনের নিয়মাবলী"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"আপনাকে কীভাবে সম্বোধন করা হবে তা সেট করুন"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"অন্যরা কীভাবে আপনাকে সম্বোধন করবেন তা পছন্দমতো করার জন্য অ্যাপ, \'সম্বোধনের নিয়মাবলী\' ব্যবহার করতে পারবে।"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"নির্দিষ্ট করে উল্লেখ করা নেই"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"মহাশয়া"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"মহাশয়"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"নিরপেক্ষ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{বেছে নেওয়া ভাষা মুছে দিতে চান?}one{বেছে নেওয়া ভাষা মুছে দিতে চান?}other{বেছে নেওয়া ভাষা মুছে দিতে চান?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"পাঠ্য অন্য ভাষায় প্রদর্শিত হবে৷"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"সমস্ত ভাষা সরানো যাবে না"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"লোকেশন"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"লোকেশন ব্যবহার করুন"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"বন্ধ আছে"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{চালু আছে - #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}one{চালু আছে - #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}other{চালু আছে - #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}one{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}other{চালু আছে / #টি অ্যাপ লোকেশন অ্যাক্সেস করতে পারবে}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"লোড হচ্ছে…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"আশেপাশের ডিভাইসের অনুমতি থাকা অ্যাপগুলি কানেক্ট করা ডিভাইসের আপেক্ষিক অবস্থান নির্ণয় করতে পারে।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"অ্যাপ ও পরিষেবার লোকেশন অ্যাক্সেস বন্ধ রয়েছে। জরুরি নম্বরে কল অথবা টেক্সট করলে সাহায্যকারীর কাছে আপনার ডিভাইসের লোকেশন এখনও পাঠানো হতে পারে।"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"\'লোকেশন সেটিংস\' সম্পর্কে আরও জানুন।"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"\'লোকেশন সেটিংস\' সম্পর্কে আরও জানুন"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"লোকেশন অ্যাক্সেস পরিবর্তন করতে, সেটিংস &gt; সুরক্ষা ও গোপনীয়তা &gt; গোপনীয়তার নিয়ন্ত্রণে যান"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"সবচেয়ে ভাল ফলাফল পেতে, Google-এর জন্য তৈরি হিসেবে সার্টিফিকেট প্রাপ্ত একটি স্ক্রিন প্রোটেকটর ব্যবহার করুন। অন্য কোনও স্ক্রিন প্রোটেকটর ব্যবহার করলে, আপনার সন্তানের আঙ্গুলের ছাপ কাজ নাও করতে পারে।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ঘড়ি আনলক করা"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"\'ফেস আনলক\' ও \'ফিঙ্গারপ্রিন্ট আনলক\' ফিচার সেট-আপ করলে, আপনি মাস্ক পরে বা অন্ধকার জায়গায় থাকলে পরিচয় যাচাই করার জন্য ফোন আপনার ফিঙ্গারপ্রিন্ট চাইবে।\n\nআপনার ফেস বা ফিঙ্গারপ্রিন্ট চেনা না গেলে আপনি ওয়াচের মাধ্যমে আনলক করতে পারবেন।"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"আপনার ফিঙ্গারপ্রিন্ট চেনা না গেলে ওয়াচের মাধ্যমে আনলক করতে পারবেন।"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"আপনার ফেস চেনা না গেলে ওয়াচের মাধ্যমে আনলক করতে পারবেন।"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"আপনি \'ফেস আনলক\' ও \'ফিঙ্গারপ্রিন্ট আনলক\' ফিচার, সেট-আপ করার সময় মাস্ক পরলে বা অন্ধকার জায়গায় থাকলে আপনার ফোন ফিঙ্গারপ্রিন্ট চাইবে।\n\nআপনার ফোন আনলক করার আরেকটি সুবিধাজনক উপায় হল \'ঘড়ি আনলক করা\' ফিচার, যেমন, যখন আপনার আঙুল ভিজে থাকে বা মুখ শনাক্ত করা যায় না।"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"আপনার ফোন আনলক করার আরেকটি সুবিধাজনক উপায় হল \'ঘড়ি আনলক করা\' ফিচার, যেমন, যখন আপনার ফিঙ্গারপ্রিন্ট শনাক্ত করা যায় না।"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"আপনার ফোন আনলক করার আরেকটি সুবিধাজনক উপায় হল \'ঘড়ি আনলক করা\' ফিচার, যেমন, যখন আপনার মুখ শনাক্ত করা যায় না।"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"এগুলি করতে ফিঙ্গারপ্রিন্ট বা ওয়াচ ব্যবহার করুন"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"এগুলি করতে ফেস বা ওয়াচ ব্যবহার করুন"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"এগুলি করতে ফেস, ফিঙ্গারপ্রিন্ট বা ওয়াচ ব্যবহার করুন"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ফেস ও <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"রিমোট Authenticator আনলক করুন"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"স্মার্টওয়াচ যোগ করা হয়েছে"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"আপনার ঘড়ি সেট-আপ করুন"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"এটি কীভাবে কাজ করে"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"আপনার ঘড়ি অবশ্যই আনলক করা, হাতের কব্জিতে থাকতে হবে ও এই ফোনের কাছাকাছি রাখতে হবে। কব্জিতে থাকাকালীন আপনাকে ঘড়ি আবার আনলক করতে হবে না।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"এই ফোন আনলক করা হলে, আপনার ঘড়িতে বিজ্ঞপ্তি পাবেন। আপনি না চাইলেও এটি আনলক হয়ে গেলে, ফোন আবার লক করতে বিজ্ঞপ্তির উপরে ট্যাপ করুন।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"আপনি নিয়ন্ত্রণ করছেন"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"সেটিংসে গিয়ে আপনি যেকোনও সময় \'ঘড়ি আনলক করা\' ফিচার থেকে ঘড়ি সরিয়ে দিতে পারবেন"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"বিজ্ঞপ্তির উপর ট্যাপ করুন"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"লক স্ক্রিনে উপরের দিকে সোয়াইপ করুন"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"আপনার ঘড়ি বেছে নিন"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"উপলভ্য ঘড়ি"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"বাতিল করুন"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"কনফার্ম করুন"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"আপনি একদম রেডি!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"আপনি লক স্ক্রিনে উপরের দিকে সোয়াইপ করলে বা কোনও বিজ্ঞপ্তির উপর ট্যাপ করলে, এই ফোন আনলক করতে এখন নিজের ঘড়ি ব্যবহার করতে পারবেন"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"হয়ে গেছে"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ঘড়ি আনলক করুন"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"আপনি লক স্ক্রিনে উপরের দিকে সোয়াইপ করলে বা কোনও বিজ্ঞপ্তির উপর ট্যাপ করলে, এই ফোন আনলক করতে নিজের ঘড়ি ব্যবহার করতে পারবেন"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"\'ঘড়ি আনলক করুন\' ফিচার ব্যবহার করতে, আপনার ঘড়ি অবশ্যই আনলক করা অবস্থায়, কব্জিতে, কাছাকাছি এবং এই ফোনের সাথে কানেক্ট থাকতে হবে। কানেকশনে কোনও বিঘ্ন ঘটলে, \'ঘড়ি আনলক করুন\' ফিচার ব্যবহার করার আগে আপনাকে ফোন আনলক করতে হবে।\n\nমনে রাখবেন:\nএকবারে আপনি শুধুমাত্র একটি ঘড়ি সেট-আপ করতে পারবেন। অন্য কোনও ঘড়ি যোগ করতে, প্রথমে বর্তমান ঘড়িটি সরান।"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"\'ঘড়ি আনলক করুন\' ফিচার সম্পর্কে আরও জানুন"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ঘড়ি যোগ করুন"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ঘড়ি সরান"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ফিঙ্গারপ্রিন্ট &amp; ফেস আনলক"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"অফিস প্রোফালের জন্য \'ফেস ও ফিঙ্গারপ্রিন্ট আনলক\' ফিচার"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"সেট-আপ করতে হবে"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"নিরাপত্তা"</string>
     <string name="privacy_header" msgid="5526002421324257007">"গোপনীয়তা"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"অফিস প্রোফাইল"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ব্যক্তিগত স্পেস"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ব্যক্তিগত অ্যাপ লক করে লুকিয়ে রাখুন"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"আপনি লুকাতে বা লক করতে পারবেন এমন কোনও আলাদা স্পেসে ব্যক্তিগত অ্যাপ রাখুন"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ব্যক্তিগত স্পেস লক"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"যেভাবে আপনার ডিভাইস আনলক করেন, একইভাবে নিজের ব্যক্তিগত স্পেস আনলক করতে বা অন্য কোনও লক বেছে নিতে পারেন"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ডিভাইসের স্ক্রিন লক ব্যবহার করুন"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ফেস ও ফিঙ্গারপ্রিন্ট আনলক"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ফিঙ্গারপ্রিন্ট আনলক"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ফেস আনলক"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"সেট-আপ করতে ট্যাপ করুন"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"আপনার প্রাইভেট স্পেসের জন্য ফিঙ্গারপ্রিন্ট আনলক"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"আপনার প্রাইভেট স্পেসের জন্য ফেস আনলক"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"আনলক করার বিভিন্ন উপায়"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ডিভাইসের স্ক্রিন লকের মত একরকমের"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ব্যক্তিগত স্পেসের জন্য নতুন লক বেছে নেবেন?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"অটোমেটিক লক করুন"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"প্রাইভেট স্পেস অটোমেটিক লক করুন"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"আপনি বেশ কিছুক্ষণ নিজের ডিভাইস ব্যবহার না করলে আপনার প্রাইভেট স্পেস অটোমেটিক লক করতে পারেন"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"প্রতিবার ডিভাইস লক হলে"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"৫ মিনিট অ্যাক্টিভ না থাকলে"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"কখনই নয়"</string>
+    <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_deleted" msgid="7825768516955610897">"\'ব্যক্তিগত স্পেস\' মুছে ফেলা হয়েছে"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"\'ব্যক্তিগত স্পেস\' মুছে ফেলা যায়নি"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"প্রাইভেট স্পেস আনলক করা আছে"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"\'স্ক্রিন লক\' সেট করুন"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"নিজের প্রাইভেট স্পেস ব্যবহার করতে, এই ডিভাইসে \'স্ক্রিন লক\' সেট করুন"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"\'স্ক্রিন লক\' সেট করুন"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"বাতিল করুন"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"বাতিল করুন"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"সেট-আপ করুন"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"প্রাইভেট স্পেস সেট-আপ করুন"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"প্রাইভেট অ্যাপ কোনও আলাদা স্পেসে রাখুন যেটি আপনি লুকাতে বা লক করতে পারবেন"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"এটি কীভাবে কাজ করে"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"আপনার অ্যাপ তালিকার নিচ থেকে নিজের প্রাইভেট স্পেস অ্যাক্সেস করতে পারবেন"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"আপনার প্রাইভেট স্পেসে অ্যাপ, লকের মাধ্যমে সুরক্ষিত থাকে"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"আপনার প্রাইভেট স্পেস লক থাকলে, সেখানে থাকা অ্যাপ থেকে পাওয়া বিজ্ঞপ্তি লুকানো থাকে"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"আপনার প্রাইভেট স্পেস লক থাকাকালীন, সেখানে থাকা অ্যাপ পার্মিশন ম্যানেজার, প্রাইভেসি ড্যাশবোর্ড এবং অন্যান্য সেটিংসে দেখা যাবে না।\n\nনতুন ডিভাইসে আপনার প্রাইভেট স্পেস সরানো যাবে না। আপনি অন্য ডিভাইসে প্রাইভেট স্পেস ব্যবহার করতে চাইলে আরেকটি সেট-আপ করতে হবে।\n\nকোনও কম্পিউটারের সাথে আপনার ডিভাইস কানেক্ট করতে পারেন বা আপনার ডিভাইসে ক্ষতিকর অ্যাপ ইনস্টল করতে পারেন এমন যেকেউ হয়ত প্রাইভেট স্পেস ব্যবহার করতে পারেন।"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"প্রাইভেট স্পেস সেট-আপ করা হচ্ছে…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"প্রাইভেট স্পেস লক থাকলে সেখানে থাকা অ্যাপ থেকে পাওয়া বিজ্ঞপ্তি লুকানো থাকে"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"প্রাইভেট স্পেসের অ্যাপ থেকে ফটো বা ফাইল শেয়ার করতে প্রাইভেট স্পেস আনলক করা"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"কিছু অ্যাপ আগেই আপনার প্রাইভেট স্পেসে ইনস্টল করা আছে"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"প্রাইভেট স্পেস সেট-আপ করা যায়নি"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"আবার চেষ্টা করুন"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"প্রাইভেট স্পেস আনলক করতে স্ক্রিন লক ব্যবহার করবেন?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"যেভাবে আপনার ডিভাইস আনলক করেন, একইভাবে নিজের প্রাইভেট স্পেস আনলক করতে বা অন্য কোনও লক বেছে নিতে পারেন"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"স্ক্রিন লক ব্যবহার করুন"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"নতুন লক বেছে নিন"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"সব রেডি!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"আপনার প্রাইভেট স্পেস অ্যাক্সেস করতে, নিজের অ্যাপ তালিকাতে যান তারপর নিচের দিকে স্ক্রল করুন"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"হয়ে গেছে"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"প্রাইভেট স্পেস খুঁজতে নিচের দিকে স্ক্রল করুন"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"আপনার প্রাইভেট স্পেসের জন্য লক বেছে নিন"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"আপনি নিজের ফিঙ্গারপ্রিন্ট ব্যবহার করে প্রাইভেট স্পেস আনলক করতে পারবেন। সুরক্ষার জন্য, এই বিকল্পের একটি ব্যাক-আপ লকের প্রয়োজন।"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"আপনার প্রাইভেট স্পেসের জন্য পিন সেট করুন"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"আপনার প্রাইভেট স্পেসের জন্য পাসওয়ার্ড সেট করুন"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"আপনার প্রাইভেট স্পেসের জন্য প্যাটার্ন সেট করুন"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ব্যক্তিগত স্পেস দেখাতে (UX-এর ফাইনাল ভার্সন নয়)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"\'সেটিংস\' অ্যাপ খুলুন"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"\'নিরাপত্তা ও গোপনীয়তা &gt; ব্যক্তিগত স্পেস &gt; লক থাকলে ব্যক্তিগত স্পেস লুকান\' বিকল্পে ট্যাপ করুন"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"লক থাকলে ব্যক্তিগত স্পেস লুকান টগল বন্ধ করুন"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googler-এর জন্য নোট: এই ফিচারে এখনও কাজ চলছে"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"আপনাকে অন্য ডিভাইসে এই পাস কী টাইপ করতে হতে পারে।"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"কো-অর্ডিনেটেড সেটের সাথে পেয়ার করার বিষয়টি কনফার্ম করুন"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"আপনার পরিচিতি এবং কল ইতিহাস অ্যাক্সেসের অনুমতি দিন"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"এছাড়াও পরিচিতি ও কলের ইতিহাস অ্যাক্সেস করার অনুমতি দিন"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"কল সম্পর্কিত ঘোষণা ও আরও অনেক কিছুর জন্য তথ্য ব্যবহার করা হবে"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> এ কানেকশন করতে পারেনি।"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"উপলভ্য ডিভাইস"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"বিমান মোডে"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"সর্বজনীন নেটওয়ার্কের জন্য বিজ্ঞপ্তি"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"কোনও উচ্চ মানের বিনামূল্যের নেটওয়ার্ক উপলভ্য হলে জানান"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP নেটওয়ার্ককে অনুমতি দিন"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP হল পুরনো সুরক্ষা প্রোটোকল, যেটি কম সুরক্ষিত"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"আপনার পরিষেবা প্রদানকারী WEP নেটওয়ার্ককে অনুমতি দেয় না, কারণ এটি কম সুরক্ষিত"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"অটোমেটিক ওয়াই-ফাই চালু করুন"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"উচ্চ মানের সেভ করা নেটওয়ার্কের কাছাকাছি এলেই ওয়াই-ফাই আবার চালু হবে, যেমন আপনার বাড়ির নেটওয়ার্ক"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"লোকেশন বন্ধ থাকার কারণে অনুপলভ্য। "<annotation id="link">"লোকেশন"</annotation>" চালু করুন।"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ওয়াই-ফাই স্ক্যানিং চালু থাকলে অ্যাপ এবং পরিষেবাগুলি যেকোনও সময় ওয়াই-ফাই নেটওয়ার্ক স্ক্যান করতে পারে, এমনকি ওয়াই-ফাই বন্ধ থাকলেও। এটি বিভিন্ন ক্ষেত্রে কাজে লাগতে পারে, যেমন লোকেশন-ভিত্তিক বৈশিষ্ট্য এবং পরিষেবার উন্নতির জন্য।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"চালু করুন"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"ওয়াই-ফাই স্ক্যানিং চালু করা হয়েছে"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"এই নেটওয়ার্ক একটি পুরনো সুরক্ষা প্রোটোকল ব্যবহার করে, যেটি কম সুরক্ষিত"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ব্লক করা আছে"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"এই নেটওয়ার্ক WEP নামের একটি পুরনো সুরক্ষা প্রোটোকল ব্যবহার করে, যেটি কম সুরক্ষিত। তবুও কানেক্ট করতে, আপনি WEP নেটওয়ার্ককে অনুমতি দিতে পারবেন।"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"আপনার পরিষেবা প্রদানকারী এই নেটওয়ার্কের সাথে কানেক্ট করার অনুমতি আপনাকে দেয় না, কারণ এটি এমন এক পুরনো সুরক্ষা প্রোটোকল ব্যবহার করে যেটি কম সুরক্ষিত"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP-কে অনুমতি দিন"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"বন্ধ করুন"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"উন্নত বিকল্প"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ড্রপ-ডাউন তালিকায় থাকা উন্নত বিকল্প"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"বড় করুন"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"ওয়াই-ফাই এ থাকুন"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"আর কখনও দেখাবেন না"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"কানেক্ট করুন"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"ওয়াই-ফাই চালু আছে"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-এ কানেক্ট আছে"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-এ কানেক্ট করা হচ্ছে"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"কানেক্ট করা হচ্ছে…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"নেটওয়ার্কের সাথে কানেক্ট করতে ব্যর্থ হয়েছে"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"নেটওয়ার্ক পরিষেবা সীমার মধ্যে নেই"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ভুলে যান"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"বদলান"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"নেটওয়ার্ক ভুলে যেতে করতে ব্যর্থ হয়েছে"</string>
     <string name="wifi_save" msgid="2312643132472226807">"সেভ করুন"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"নেটওয়ার্ক সংরক্ষণ করতে ব্যর্থ হয়েছে"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"বাতিল করুন"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"ওয়াই-ফাই"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"মোবাইল ডেটা"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ইথারনেট"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ চার্জ হচ্ছে"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ চার্জ হচ্ছে"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"হটস্পট কানেকশন"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"কানেকশন কোয়ালিটি"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"সেভ করা নেটওয়ার্ক"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"পাসওয়ার্ড সেট করা নেই"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"হটস্পটের নাম"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"হটস্পটের পাসওয়ার্ড"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP ব্যান্ড"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"নিজে থেকে হটস্পট বন্ধ করুন"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"যখন কোনও ডিভাইস কানেক্ট করা থাকে না"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"কমপ্যাটিবিলিটি প্রসারিত করুন"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"গেমের জন্য ডিফল্ট ফ্রেম রেট বন্ধ করুন"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz-এ গেমের জন্য সর্বাধিক ফ্রেম রেট সীমিত করার সুবিধা বন্ধ করুন।"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"স্মুথ ডিসপ্লে"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"স্ক্রিন অ্যাটেনশন ফিচারটি মোবাইলের সামনের ক্যামেরা ব্যবহার করে জানতে পারে যে কেউ স্ক্রিনের দিকে তাকিয়ে আছে কিনা। এটি ডিভাইসে কাজ করে এবং ছবি কখনই স্টোর করা বা Google-কে পাঠানো হয় না।"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\'স্ক্রিন অ্যাটেনশন\' চালু করুন"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"স্ক্রিনের দিকে তাকিয়ে থাকলে সেটি বন্ধ হবে না"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"যত বেশি স্ক্রিন টাইম ব্যবহার করা হবে, তত বেশি ব্যাটারি খরচ হবে।"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ক্যামেরা লক করা আছে"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ফেস ডিটেকশনের জন্য ক্যামেরা অবশ্যই আনলক করা থাকতে হবে"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"স্ক্রিন অ্যাটেনশন ফিচারের জন্য ক্যামেরা আনলক থাকতে হবে"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (সিম কার্ড স্লট <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI সিম কার্ড স্লট <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (প্রাথমিক)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"দেখার জন্য সেভ করা নেটওয়ার্ক বেছে নিন"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL ভার্সন"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ব্যাটারি স্তর"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"কমিউনাল"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"\'কমিউনাল\' সেটিংস"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"সেভ করুন"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"বাতিল করুন"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"নাম ফিল্ডটি খালি থাকতে পারে না।"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN খালি থাকতে পারে না।"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ফিল্ড ৩ ডিজিটের হতে হবে।"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ফিল্ড ২ অথবা ৩ সংখ্যার হতে হবে।"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"পরিষেবা প্রদানকারী %s এর মতো APN যোগ করার অনুমতি দেয়নি।"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ফিল্ড অবশ্যই সঠিক হতে হবে।"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ডিফল্ট APN সেটিংস পুনরুদ্ধার করা হচ্ছে।"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ডিফল্টে রিসেট করুন"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ডিফল্ট APN সেটিংস রিসেট করা হয়েছে।"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"রিসেট করুন"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ব্লুটুথ ও ওয়াই-ফাই রিসেট করা হয়েছে"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ই-সিম মুছুন"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"এটি মোবাইল পরিষেবার কোনও প্ল্যান বাতিল করবে না। পরিবর্ত সিম ডাউনলোড করতে আপনার পরিষেবা প্রদানকারীর সাথে যোগাযোগ করুন।"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"সেটিংস রিসেট করুন"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"সব নেটওয়ার্ক সেটিংস রিসেট করবেন? আগের সেটিংসে আর ফিরে যেতে পারবেন না।"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"সব নেটওয়ার্ক সেটিং রিসেট করে ই-সিম মুছবেন? এটি আগের অবস্থায় আর ফিরিয়ে আনতে পারবেন না।"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"আবার সেট করবেন?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"এই ব্যবহারকারীদের জন্য নেটওয়ার্ক আবার সেট করুন উপলব্ধ নয়"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"নেটওয়ার্ক সেটিংস আবার সেট করা হয়েছে"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"সিমগুলি মোছা যাচ্ছে না"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"কোনও সমস্যার জন্য ই-সিম মোছা যাচ্ছে না।\n\nআপনার ডিভাইস রিস্টার্ট করে আবার চেষ্টা করুন।"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"সমস্ত ডেটা মুছুন (ফ্যাক্টরি রিসেট)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"সমস্ত ডেটা মুছুন (ফ্যাক্টরি রিসেট)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"মিউজিক"</li>\n<li>"ফটো"</li>\n<li>"অন্যান্য ব্যবহারকারী ডেটা"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"ই-সিম"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"এতে আপনার মোবাইল পরিষেবার প্ল্যান বাতিল হবে না।"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ডাউনলোড করা অ্যাপ সহ আপনার সব ব্যক্তিগত তথ্য মুছে যাবে। এটি আগের অবস্থায় আর ফিরিয়ে আনা যাবে না।"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ডাউনলোড করা অ্যাপ ও সিম সহ আপনার সব ব্যক্তিগত তথ্য মুছে যাবে। এটি আগের অবস্থায় আর ফিরিয়ে আনা যাবে না।"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"সমস্ত ডেটা মুছে ফেলতে চান?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"এই ব্যবহারকারীর জন্য ফ্যাক্টরি রিসেটের সুবিধা উপলভ্য নেই"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"মোছা হচ্ছে"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"হটস্পট, ইউএসবি, ব্লুটুথ, ইথারনেট"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"অন্যান্য ডিভাইসের সাথে ইন্টারনেট শেয়ার করা হচ্ছে না"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"বন্ধ রয়েছে"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"টিথারিং"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ওয়াই-ফাই হটস্পট ব্যবহার করবেন না"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"শুধুমাত্র ইউএসবির মাধ্যমে ইন্টারনেট শেয়ার করুন"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"শুধুমাত্র ব্লুটুথের মাধ্যমে ইন্টারনেট শেয়ার করুন"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"শুধুমাত্র ইথারনেটের মাধ্যমে ইন্টারনেট শেয়ার করুন"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"শুধুমাত্র ইউএসবি এবং ব্লুটুথের মাধ্যমে ইন্টারনেট শেয়ার করুন"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"শুধুমাত্র ইউএসবি এবং ইথারনেটের মাধ্যমে ইন্টারনেট শেয়ার করুন"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"শুধুমাত্র ব্লুটুথ এবং ইথারনেটের মাধ্যমে ইন্টারনেট শেয়ার করুন"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"শুধুমাত্র ইউএসবি, ব্লুটুথ এবং ইথারনেটের মাধ্যমে শেয়ার করুন"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB টিথারিং"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ব্লুটুথ টিথারিং"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ইথারনেট টিথারিং"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"আপনার মোবাইল ডেটা কানেকশন অথবা ওয়াই-ফাই থেকে অন্যান্য ডিভাইসে ইন্টারনেট কানেকশন দিতে হটস্পট এবং টিথারিং ব্যবহার করুন। অ্যাপগুলিও আশেপাশের ডিভাইসের সাথে কন্টেন্ট শেয়ার করার জন্য হটস্পট তৈরি করে নিতে পারে।"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"সহায়তা"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"মোবাইল নেটওয়ার্ক"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"মোবাইল প্ল্যান"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS অ্যাপ"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS অ্যাপ্লিকেশান পরিবর্তন করবেন?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> এর পরিবর্তে <xliff:g id="NEW_APP">%1$s</xliff:g> কে SMS অ্যাপ্লিকেশান হিসেবে ব্যবহার করবেন?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ওয়াই-ফাই সহকারী পরিবর্তন করবেন?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"আপনার নেটওয়ার্ক কানেকশন পরিচালনা করার জন্য <xliff:g id="CURRENT_APP">%2$s</xliff:g> এর পরিবর্তে <xliff:g id="NEW_APP">%1$s</xliff:g> ব্যবহার করবেন?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"আপনার নেটওয়ার্ক কানেকশন পরিচালনা করার জন্য <xliff:g id="NEW_APP">%s</xliff:g> ব্যবহার করবেন?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"সিম এর পরিষেবা প্রদানকারী অজানা"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> এর কোনো পরিচিত প্রভিশনিং ওয়েবসাইট নেই"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"দয়া করে সিম কার্ড ঢোকান এবং পুনর্সূচনা করুন"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"দয়া করে ইন্টারনেটের সঙ্গে কানেক্ট হোন"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"সাম্প্রতিক লোকেশন অনুরোধগুলি"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"অফিস প্রোফাইলের জন্য লোকেশন"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"অ্যাপের ক্ষেত্রে লোকেশনের অনুমতি"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"অ্যাক্সেস সরান"</string>
     <string name="controls_label" msgid="8671492254263626383">"নিয়ন্ত্রণগুলি"</string>
     <string name="force_stop" msgid="2681771622136916280">"জোর করে বন্ধ করুন"</string>
+    <string name="archive" msgid="9074663845068632127">"আর্কাইভ করুন"</string>
+    <string name="restore" msgid="7622486640713967157">"ফিরিয়ে আনুন"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"সর্বমোট"</string>
     <string name="application_size_label" msgid="6407051020651716729">"অ্যাপের সাইজ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB স্টোরেজ অ্যাপ্লিকেশন"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"প্যাকেজের মাপ গণনা করা যায়নি"</string>
     <string name="version_text" msgid="7628938665256107608">"ভার্সন <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"সরান"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"আর্কাইভ করা যায়নি"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> আর্কাইভ করা হয়েছে"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ফিরিয়ে আনা যায়নি"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ফিরিয়ে আনা যায়নি"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"আরেকটি স্থানান্তরনের কাজ আগে থেকেই চলছে৷"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"পর্যাপ্ত স্টোরেজ নেই।"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"অ্যাপ্লিকেশানটি বিদ্যমান নেই।"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"স্ক্রিনের কীবোর্ড ফিচার উপলভ্য"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"অন-স্ক্রিন কীবোর্ড ম্যানেজ করুন"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"বিকল্প"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"অ্যাক্সেসিবিলিটি"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ফিজিক্যাল কীবোর্ড"</string>
     <string name="show_ime" msgid="4334255501724746849">"অন-স্ক্রিন কীবোর্ড ব্যবহার করুন"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"ফিজিক্যাল কীবোর্ড সক্রিয় থাকার সময় এটিকে স্ক্রীনে রাখুন"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"বাউন্স \'কী\'"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ফিজিক্যাল কীবোর্ডের অ্যাক্সেসিবিলিটির জন্য বাউন্স \'কী\' চালু করুন"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"স্টিকি \'কী\'"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ফিজিক্যাল কীবোর্ডের অ্যাক্সেসিবিলিটির জন্য স্টিকি \'কী\' চালু করুন"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"কীবোর্ড শর্টকাট"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"শর্টকাটের তালিকা দেখান"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"অফিসের প্রোফাইলের কীবোর্ড ও টুল"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ব্যবহারের সময় অনুযায়ী সাজান"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"শেষবারের ব্যবহার অনুযায়ী সাজান"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"অ্যাপের নাম অনুযায়ী সাজান"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"সর্বশেষ ব্যবহার হয়েছে"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"শেষবার ব্যবহার করা হয়েছে"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"কখনই নয়"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ব্যবহারের সময়"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"অ্যাক্সেসিবিলিটি"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"সহজ ব্যবহার সেটিংস"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"তা সত্ত্বেও চালিয়ে যান"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"বাতিল করুন"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"বড় করে দেখার সেটিংস"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"তিনবার ট্যাপ করে বড় করে দেখুন"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"শর্টকাটের সাহায্যে বড় করে দেখা"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"শর্টকাটের মাধ্যমে ও তিনবার ট্যাপ করে বড় করুন"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"\'<xliff:g id="SERVICE">%1$s</xliff:g>\' সম্পর্কে"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"খুলতে স্ক্রিনে দুই আঙুল দিয়ে ডবল ট্যাপ করুন"</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="860548190334486449">"\'বড় করে দেখা\' ফিচার চালু বা বন্ধ করতে, স্ক্রিনের যেকোনও জায়গায় দুই আঙুল দিয়ে ডবল ট্যাপ করুন।"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"অ্যাক্সেসিবিলিটি ফিচার ব্যবহার করার জন্য, স্ক্রিনের নিচ থেকে উপরের দিকে ৩টি আঙ্গুল দিয়ে সোয়াইপ করুন।\n\nএকটি ফিচার থেকে অন্যটিতে যেতে, ৩টি আঙ্গুল দিয়ে নিচের থেকে উপরের দিকে সোয়াইপ করে ধরে থাকুন।"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"বুঝেছি"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"অ্যাক্সেসিবিলিটি বোতামের সেটিংস"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"বোতামের সেটিংস"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"\'<xliff:g id="SERVICE">%1$s</xliff:g>\' শর্টকাট"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"অ্যাক্সেসিবিলিটি বোতাম"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"অ্যাক্সেসিবিলিটি জেসচার"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"দুই আঙুল দিয়ে স্ক্রিনে ডবল ট্যাপ করুন"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"দুই আঙুল দিয়ে স্ক্রিনে ডবল ট্যাপ করুন"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"দুই আঙুল দিয়ে স্ক্রিনে দ্রুত {0,number,integer} বার ট্যাপ করুন"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ট্রিপল-ট্যাপ স্ক্রিন"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"স্ক্রিনে ট্রিপল-ট্যাপ করা"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"স্ক্রিনে ঝটপট {0,number,integer} বার ট্যাপ করুন। এই শর্টকাট ব্যবহারের ফলে আপনার ডিভাইসের স্পিড কমে যেতে পারে"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"অ্যাক্সেসিবিলিটি বোতাম এবং জেসচারের বিষয়ে আরও জানুন"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"অ্যাক্সেসিবিলিটি বোতাম ব্যবহার করা। ৩টি-বোতাম দিয়ে করা নেভিগেশন এর ক্ষেত্রে জেসচারটি কাজ করবে না।"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"সহজেই অ্যাক্সেসেবিলিটি ফিচার অ্যাক্সেস করুন"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"শুরু করা"</b>\n"১. অ্যাক্সেসিবিলিটি সেটিংসে যাওয়া\n২. একটি ফিচার বেছে নিয়ে \'শর্টকাট\' বিকল্পে ট্যাপ করা\n৩. বোতাম বা জেসচার, কোনটি ব্যবহার করে ফিচার অ্যাক্সেস করতে চান সেটি বেছে নিন"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"শুরু করা"</b>\n"১. অ্যাক্সেসিবিলিটি সেটিংসে যাওয়া\n২. একটি ফিচার বেছে নিয়ে \'শর্টকাট\' বিকল্পে ট্যাপ করা\n৩. ফিচার অ্যাক্সেস করার জন্য বোতাম বেছে নিন"</string>
+    <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_size_title" msgid="5785110470538960881">"সাইজ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"পাওয়ার বোতামে কল শেষ হয়"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"বড় মাউস পয়েন্টার"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"মাউস পয়েন্টার আরও স্পষ্ট করে তুলুন"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"সব অ্যাপে ডার্ক থিম ব্যবহার করুন"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"অ্যাপের নিজস্ব ডার্ক থিম ছাড়া সেগুলিতে প্রযোজ্য। কিছু অ্যাপের ডিসপ্লের সমস্যা হতে পারে, যেমন বিপরীত রঙগুলি।"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"অ্যানিমেশন সরিয়ে দিন"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"স্ক্রিনের নড়াচড়া কমিয়ে দিন"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"মোনো অডিও"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"এটি কোনও একটি অ্যাপের সাথে অথবা হার্ডওয়্যার সেন্সরের সাথে আপনার ইন্টার‍্যাকশন ট্র্যাক করতে এবং আপনার হয়ে বিভিন্ন অ্যাপের সাথে ইন্টার‍্যাক্ট করতে পারে।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"অনুমতি দিন"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"খারিজ করুন"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"বন্ধ করুন"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"বাতিল করুন"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> থামাবেন?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> বিকল্পে ট্যাপ করলে <xliff:g id="SERVICE">%2$s</xliff:g> বন্ধ হয়ে যাবে।"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"বন্ধ করুন"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"চালু রাখুন"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> পরিষেবা বন্ধ করতে চান?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"কোনো পরিষেবা ইনস্টল করা নেই"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"কোনো সার্ভিস বেছে নেওয়া হয়নি"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"কোনো বিবরণ প্রদান করা নেই।"</string>
     <string name="settings_button" msgid="2195468788019730377">"সেটিংস"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"লাইট সেন্সিটিভিটি, ফটোফোবিয়া, ডার্ক থিম, মাইগ্রেন, মাথাব্যথা, রিডিং মোড, রাতের মোড, স্ক্রিনের উজ্জ্বলতা কমান, হোয়াইট পয়েন্ট"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"সহজে ব্যবহার করার সুবিধা, সহজে অ্যাক্সেস করার সুবিধা, সহায়তা, সহায়ক"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"দৃষ্টিশক্তি, শ্রবণশক্তি, অন্ধ, বধির, মোটর, দক্ষতা, সহায়ক, সহায়তা, ব্যবহারের সহজলভ্যতা, সহজলভ্য অ্যাক্সেস, হাত, সাহায্য"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"উইন্ডো ম্যাগনিফায়ার, জুম, বড় করে দেখা, কম দৃষ্টি, আকারে বড় করুন, আরও বড় করুন"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"ক্যাপশন, ক্লোজড ক্যাপশন, CC, লাইভ ট্রানস্ক্রাইব, কম শুনতে পাওয়া, শুনতে সমস্যা হওয়া, CART, স্পিচ টু টেক্সট, সাবটাইটেল"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"কালার কনট্রাস্ট"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"মোটর, মাউস"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"হিয়ারিং এড, আংশিক বধির, শুনতে না পাওয়া, কক্লিয়ার ইমপ্ল্যান্ট, অ্যামপ্লিফিকেশন ডিভাইস, সাউন্ড প্রসেসর"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"মোটর, মাউস, এক্সটার্নাল মাউস, হেড মাউস, অ্যাডাপ্টিভ মাউস, হুইলচেয়ার, জয়স্টিক"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"হিয়ারিং এড, আংশিক বধির, শুনতে না পাওয়া, কক্লিয়ার ইমপ্ল্যান্ট, অ্যামপ্লিফিকেশন ডিভাইস, সাউন্ড প্রসেসর, পিএসএপি"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"কম শুনতে পাওয়া, শুনতে সমস্যা হওয়া, ক্যাপশন, টেলিটাইপ, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"তিনটি বোতাম"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"দক্ষতা, মোটর, সিনিয়র, আর্থ্রাইটিস, আরএসআই, স্ট্রোক, কাঁপুনি, মাল্টিপল স্ক্লেরোসিস, সেরিব্রাল পাল্‌সি, ঝাঁকুনি, ক্রমাগত চাপের ফলে আঘাত, হাত"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"দেরি, দক্ষতা, সিনিয়র"</string>
     <string name="print_settings" msgid="8519810615863882491">"প্রিন্টিং"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"বন্ধ আছে"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{১টি প্রিন্ট পরিষেবা চালু আছে}one{#টি প্রিন্ট পরিষেবা চালু আছে}other{#টি প্রিন্ট পরিষেবা চালু আছে}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"কোন অ্যাপে ব্যাটারি সবচেয়ে বেশি খরচ হয়"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"আপনার ব্যাটারি সুরক্ষিত রাখতে চার্জিং অপ্টিমাইজ করা হয়"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"আপনার ব্যাটারির আয়ু বাড়াতে, চার্জিং অপ্টিমাইজ করা হয়েছে"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"আপনার ব্যাটারি সুরক্ষিত রাখতে চার্জিং অপ্টিমাইজ করা হয়"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ডক করার সময়ে আপনার ব্যাটারি আরও বেশিদিন ভাল রাখতে সাহায্যের জন্য, চার্জিং অপ্টিমাইজ করা হয়েছে"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"আপনার ব্যাটারি সুরক্ষিত রাখতে চার্জিং অপ্টিমাইজ করা হয়"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ডক করার সময়ে আপনার ব্যাটারি আরও বেশিদিন ভাল রাখতে সাহায্যের জন্য, চার্জিং অপ্টিমাইজ করা হয়েছে"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"১০০%% চার্জ করা হচ্ছে"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"পরের বার আপনার ট্যাবলেট ডক করা হলে, আপনার ব্যাটারি সুরক্ষিত রাখতে চার্জিং অপ্টিমাইজ করা হবে"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"চার্জিং পজ করা সম্পর্কে আরও জানুন"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"চার্জ করা আবার চালু করুন"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"বেশি ব্যাটারি খরচ হয় এমন ব্যাকগ্রাউন্ড অ্যাক্টিভিটি অন্তর্ভুক্ত"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"সরান"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"বাতিল করুন"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"পুরো চার্জ দিন"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"চার্জিং অ্যাক্সেসরি সংক্রান্ত সমস্যা"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"মানানসই নয় এমন চার্জিং সম্পর্কে আরও জানুন"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ব্যাটারি ম্যানেজার"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"নিজে থেকে অ্যাপ পরিচালনা করুন"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"এখন"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ব্যাটারির ব্যবহারর চার্ট"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ব্যাটারির ব্যবহার সংক্রান্ত দৈনিক চার্ট"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ব্যাটারির ব্যবহার সংক্রান্ত প্রতি ঘণ্টার চার্ট"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ব্যাটারি লেভেল <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> থেকে <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> শতাংশ"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"শেষবার ফুল চার্জ হওয়ার পরে ব্যাটারির ব্যবহার"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g>-এর জন্য ব্যাটারির ব্যবহার"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"শেষবার ফুল চার্জ হওয়ার পরে স্ক্রিন টাইম"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"আপদকালীন ডায়ালিং সিগন্যাল"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"জরুরি কল স্থাপন করা সময় কি ধরণের অ্যাক্টিভিটি করবে তা সেট করুন"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ব্যাক-আপ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"চালু"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"বন্ধ"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ব্যাকআপ ও পুনরুদ্ধার"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ব্যক্তিগত ডেটা"</string>
     <string name="backup_data_title" msgid="507663517227498525">"আমার তথ্য ব্যাকআপ করুন"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"নাম"</string>
     <string name="vpn_type" msgid="5533202873260826663">"প্রকার"</string>
     <string name="vpn_server" msgid="2908816134941973935">"সার্ভার ঠিকানা"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP এনক্রিপশন (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP সিক্রেট"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec আইডেন্টিফায়ার"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec আগে থেকে শেয়ার করা কী"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec ব্যবহারকারী সার্টিফিকেট"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA সার্টিফিকেট"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec সার্ভার সার্টিফিকেট"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"উন্নত বিকল্প দেখান"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS সার্চ ডোমেন"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS সার্ভার (যেমন ৮.৮.৮.৮)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ফরওয়ার্ডিং রুট (উদাহরণ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ইউজারনেম"</string>
     <string name="vpn_password" msgid="1183746907642628127">"পাসওয়ার্ড"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"অ্যাকাউন্ট তথ্য সেভ করুন"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(অব্যবহৃত)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(সার্ভার যাচাই করবেন না)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(সার্ভার থেকে প্রাপ্ত)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"এই প্রকারের VPN সব সময়ে কানেক্ট থাকতে পারে না"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"সর্বদা-চালু VPN গুলিতে শুধুমাত্র সেই DNS সার্ভারগুলি কাজ করে যেগুলির ঠিকানা সংখ্যায় আছে"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"সর্বদা-চালু VPN গুলির জন্য একটি DNS সার্ভার উল্লেখ করা আবশ্যক"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"সর্বদা-চালু VPN গুলির জন্য DNS সার্ভারের ঠিকানাগুলি সংখ্যায় হওয়া আবশ্যক"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"দিয়ে থাকা তথ্য \'সর্বদা-চালু VPN\'-এ কাজ করে না"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"বাতিল"</string>
     <string name="vpn_done" msgid="5137858784289564985">"খারিজ করুন"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN বিহীন সংযোগগুলি ব্লক করুন"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN কানেকশন প্রয়োজন?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"নিরাপদ নয়। IKEv2 VPN-এ আপডেট করুন"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ব্যবহার করা যায় না সেই VPN চালু করা যায়নি।"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"সর্বদা কানেক্ট থাকতে একটি VPN প্রোফাইল বেছে নিন। এই VPN এ কানেক্ট থাকাকালীন শুধুমাত্র নেটওয়ার্ক ট্রাফিকের অনুমতি দেওয়া হবে।"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"কোনো কিছুই নয়"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"সর্বদা-চালু VPN এর সার্ভার্র এবং DNS উভয়েরই জন্য আইপি অ্যাড্রেস প্রয়োজন।"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER সতর্কতা"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"শিশু অপহরণ সম্পর্কে বুলেটিন পান"</string>
     <string name="repeat_title" msgid="8676570486899483606">"পুনরাবৃত্তি করুন"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"কল ম্যানেজার সক্ষম করুন"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"আপনার কল কীভাবে করা হবে তা পরিচালনা করতে এই পরিষেবাকে অনুমতি দিন।"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"কল ম্যানেজার"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ওয়্যারলেস জরুরি সতর্কতা"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"নেটওয়ার্ক অপারেটরগুলি"</string>
     <string name="access_point_names" msgid="5768430498022188057">"অ্যাক্সেস পয়েন্টের নামগুলি"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"অর্থপ্রদান, আলতো চাপা, পেমেন্ট"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ব্যাক-আপ, ব্যাক-আপ করুন"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ইঙ্গিত"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ফেস, আনলক, যাচাই, সাইন-ইন"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"মুখ, আনলক করুন, যাচাইকরণ, সাইন-ইন করুন, আঙ্গুলের ছাপ, বায়োমেট্রিক"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl ভার্সন, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ধ্বনিগুলিতে শক্তি"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"লাইভ ক্যাপশন"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"অটোমেটিক মিডিয়া ক্যাপশন দেখুন"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ফোন স্পিকার"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ট্যাবলেট স্পিকার"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ডিভাইস স্পিকার"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"তারযুক্ত হেডফোন"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"মানানসই মিডিয়ার অডিও আরও বেশি শ্রবণযোগ্য হয়"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"বন্ধ আছে"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"সাম্প্রতিক কথোপকথন সরানো হয়েছে"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"কথোপকথন সরানো হয়েছে"</string>
     <string name="clear" msgid="5092178335409471100">"মুছুন"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> সরিয়ে দিন"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"গুরুত্বপূর্ণ এবং পরিবর্তন করা কথোপকথন এখানে দেখানো হবে"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"কথোপকথনকে গুরুত্বপূর্ণ হিসেবে চিহ্নিত করলে বা কথোপকথনে অন্য পরিবর্তন করলে, এখানে সেগুলি দেখানো হবে। \n\nকথোপকথন সেটিংস পরিবর্তন করার জন্য: \nপুল-ডাউন শেড খোলার জন্য স্ক্রিনের উপর থেকে নিচের দিকে সোয়াইপ করুন তারপর কথোপকথনটি টাচ করে ধরে থাকুন।"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ছোট করা"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"বন্ধ আছে"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"অ্যাপ পিন করার ফিচার"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"অ্যাপ পিন করার ফিচারটি ব্যবহার করে আপনি বর্তমান অ্যাপটিকে আনপিন না করা পর্যন্ত দেখতে পাবেন। এই ফিচারটি অনেক কিছুর জন্য ব্যবহার করা যেতে পারে, যেমন, কোনও বিশ্বস্ত বন্ধুকে ডিভাইসে কেবল একটি নির্দিষ্ট গেম খেলতে দেওয়া।"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"কোনও অ্যাপ পিন করা হলে, পিন করা অ্যাপটি অন্যান্য অ্যাপ খুলতে এবং ব্যক্তিগত ডেটা অ্যাক্সেস করতে পারে। \n\n\'অ্যাপ পিন করার\' ফিচার ব্যবহার করতে: 	\n১. \'অ্যাপ পিন করার\' ফিচার চালু করুন 	\n২. \'ওভারভিউ\' বিকল্পটি খুলুন 	\n৩. স্ক্রিনের উপরে অ্যাপ আইকন ট্যাপ করে \'পিন করুন\' বিকল্পে ট্যাপ করুন"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"কোনও অ্যাপ পিন করা হলে, পিন করা অ্যাপটি অন্যান্য অ্যাপ খুলতে এবং ব্যক্তিগত ডেটা অ্যাক্সেস করতে পারে। \n\nআপনি নিরাপদে কারও সাথে ডিভাইস শেয়ার করতে চাইলে, পরিবর্তে কোনও গেস্ট ইউজার ব্যবহার করে চেষ্টা করুন। \n\n\'অ্যাপ পিন করার\' ফিচার ব্যবহার করতে: 	\n১. \'অ্যাপ পিন করার\' ফিচার চালু করুন 	\n২. \'ওভারভিউ\' বিকল্পটি খুলুন 	\n৩. স্ক্রিনের উপরে অ্যাপ আইকন ট্যাপ করে \'পিন করুন\' বিকল্পে ট্যাপ করুন"</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_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">"আনপিন করার আগে পিন চান"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ব্যবহার না করা হলে অ্যাপ ম্যানেজ করুন"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"অনুমতি সরান, অস্থায়ী ফাইল মুছুন এবং বিজ্ঞপ্তি বন্ধ করুন এবং অ্যাপ আর্কাইভ করুন"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"সমস্ত অ্যাপ্লিকেশন"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ইনস্টল করা অ্যাপগুলি"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ইনস্ট্যান্ট অ্যাপ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"খালি আছে"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"অ্যাপ্লিকেশানগুলির দ্বারা ব্যবহৃত মেমরি"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{শেষ {time}-এ ১টি অ্যাপ মেমরি ব্যবহার করেছে}one{শেষ {time}-এ #টি অ্যাপ মেমরি ব্যবহার করেছে}other{শেষ {time}-এ #টি অ্যাপ মেমরি ব্যবহার করেছে}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"মেমরি ব্যবহারের প্রোফাইলিং চালু করুন"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"মেমরি ব্যবহারের প্রোফাইলিংয়ের জন্য অতিরিক্ত সিস্টেম রিসোর্স প্রয়োজন।"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"মেমরি ব্যবহারের প্রোফাইলিং বন্ধ করা আছে"</string>
     <string name="running_frequency" msgid="7260225121706316639">"পুনরাবৃত্তির হার"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"সর্বাধিক ব্যবহার"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"কোনও ডেটা ব্যবহৃত হয়নি"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"অন্য অ্যাপের উপরে দেখানো"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"অন্য অ্যাপের উপর দেখানোর অনুমতি দিন"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"আপনি অন্য যে সমস্ত অ্যাপ ব্যবহার করছেন, সেগুলির উপরে এই অ্যাপটিকে দেখানোর অনুমতি দিন। আপনি কোথায় ট্যাপ করছেন অথবা স্ক্রিনে কি দেখা যাচ্ছে এই অ্যাপ সবকিছুই দেখতে পাবে।"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"মিডিয়া আউটপুট পরিবর্তন করুন"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"অ্যাপকে মিডিয়া আউটপুট পাল্টানোর অনুমতি দিন"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"অন্য অ্যাপ থেকে কোন কানেক্ট করা ডিভাইস অডিও বা ভিডিও প্লে করবে তা বেছে নিতে এই অ্যাপকে অনুমতি দিন। অনুমতি দেওয়া হলে, এই অ্যাপ উপলভ্য থাকা ডিভাইসের তালিকা অ্যাক্সেস করতে পারবে যেমন, হেডফোন ও স্পিকার এবং বেছে নিতে পারবে কোন আউটপুট ডিভাইস, অডিও বা ভিডিও স্ট্রিম অথবা কাস্ট করা জন্য ব্যবহার করা হয়েছে।"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"সব ফাইলে অ্যাক্সেস"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ভয়েস অ্যাক্টিভেশন উন্নত করুন"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ভয়েস অ্যাক্টিভেশন মডেল উন্নত করতে, এই ডিভাইস প্রাইভেট ইন্টেলিজেন্স ব্যবহার করে। অ্যাপ, আপডেট সম্পর্কিত সারসংক্ষেপ পায় যা বিভিন্ন ব্যবহারকারীদের থেকে একত্রিত করা হয় যাতে সকলের জন্য মডেল উন্নত করার পাশাপাশি গোপনীয়তা বজায় রাখা যায়।\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ডেটার বিষয়ে সতর্কতা"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ডেটার সীমা"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ডেটার বিষয়ে সতর্কতা / <xliff:g id="ID_2">^2</xliff:g> ডেটার সীমা"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"পরিষেবা প্রদানকারী ডেটার হিসাব, ডিভাইসের হিসাব থেকে ভিন্ন হতে পারে"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"পরিষেবা প্রদানকারী নেটওয়ার্কের ব্যবহৃত ডেটা বাদ দিয়ে"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ব্যবহৃত হয়েছে"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ডেটা সতর্কতা সেট করুন"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> আগে আপডেট করা হয়েছে"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> এইমাত্র আপডেট করেছে"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"এইমাত্র আপডেট করা হয়েছে"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"প্ল্যান দেখুন"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"বিবরণ দেখুন"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ডেটা সেভার"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"অসীমিত ডেটা"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ব্যাটারির ব্যবহারে অসঙ্গতি"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"দ্রুত সেটিংস ডেভেলপার টাইলস"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb অনুমোদন টাইম-আউট বন্ধ করুন"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ব্যবহারকারীর কনফিগার করা (কমপক্ষে ১ দিন) অথবা ডিফল্ট (৭ দিন) সময়ের মধ্যে আবার কানেক্ট করা হয়নি এমন সিস্টেমের adb অনুমোদন অটোমেটিক প্রত্যাহার করার বিকল্প বন্ধ করে দিন।"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"উইনস্কোপ ট্রেস"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"সেন্সর বন্ধ করা আছে"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"অফিস প্রোফাইলের সেটিংস"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"অফিস ডিরেক্টরি ব্যবহার করে ব্যক্তিগত অ্যাপগুলিকে পরিচিতি সার্চ করার অনুমতি দিন"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"আটোফিল পরিষেবা"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ডিফল্ট অটোফিল পরিষেবা"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"পাসওয়ার্ড"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"অতিরিক্ত পরিষেবা প্রদানকারী"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{#টি পাসওয়ার্ড}one{#টি পাসওয়ার্ড}other{#টি পাসওয়ার্ড}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"অটো, ফিল, অটোফিল, পাসওয়ার্ড"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ডেটা, পাসকী, পাসওয়ার্ড"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"অটো, ফিল, অটো-ফিল ফিচার, ডেটা, পাসকি, পাসওয়ার্ড"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;সবকটি পরিষেবা বন্ধ করবেন?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; আপনি সাইন-ইন করার সময় পাসওয়ার্ড, \'পাসকী\' ও অন্যান্য তথ্য উপলভ্য হবে না"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;আপনার পছন্দের পরিষেবা পাল্টে এটি করুন: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; এখন থেকে নতুন পাসওয়ার্ড, \'পাসকী\' ও অন্যান্য তথ্য এখানে সেভ করা হবে। কী কী অটোফিল করা যেতে পারে তা নির্ধারণ করতে, আপনার স্ক্রিনে দেখানো বিষয় &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ব্যবহার করতে পারে"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ব্যবহার করবেন?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"একবারে আপনি শুধুমাত্র ৫টি পরিষেবা চালু রাখতে পারবেন"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"অন্য একটি পরিষেবা যোগ করতে হলে অন্তত ১টি পরিষেবা বন্ধ করুন"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"কী কী অটোফিল করা যাবে তা নির্ধারণ করতে, %1$s, আপনার স্ক্রিনে যা দেখা যাচ্ছে সেগুলি ব্যবহার করে।"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবার সীমা"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"আপনি একই সময়ে সর্বাধিক ৫টি পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা চালু রাখতে পারবেন। আরও পরিষেবা যোগ করতে একটি বন্ধ করুন।"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবার সীমা"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"আপনি একই সময়ে সর্বাধিক ৫টি পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা চালু রাখতে পারবেন। আরও পরিষেবা যোগ করতে একটি বন্ধ করুন।"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"বন্ধ করুন"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"অটো-ফিল"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"লগ-ইন লেভেল"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"অ্যাপ মানানসই করা সম্পর্কিত পরিবর্তন শুধুমাত্র ডিবাগ করা যাবে এমন অ্যাপগুলির ক্ষেত্রে প্রযোজ্য। ডিবাগ করা যাবে এমন একটি অ্যাপ ইনস্টল করে আবার চেষ্টা করুন।"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"অন্য একটি সেটিং-এর উপর নির্ভর করে"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"অ্যাকাউন্ট"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%dটি অ্যাকাউন্ট"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ডিভাইসের নাম"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"মূল তথ্য"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"আইন সংক্রান্ত ও রেগুলেটরি"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ট্যাগ স্ক্যান করার সময় এই অ্যাপকে চালু করার অনুমতি দিন।\nএই অনুমতি চালু থাকলে, যখনই একটি ট্যাগ শনাক্ত করা হবে, অ্যাপটি তখন একটি বিকল্প হিসেবে উপলভ্য হবে।"</string>
     <string name="media_output_title" msgid="8283629315159510680">"মিডিয়া এতে চালান"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>-এ চালান"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"অডিও বাজবে"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"এই ডিভাইস"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"কলের সময় অনুপলভ্য"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"এতে কথা বলুন:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"মিউট"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"চালু করতে, আগে পাওয়ার মেনুতে \"পাওয়ার বোতাম প্রেস করে ধরে রাখুন\" বিকল্পটি পরিবর্তন করুন।"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"নেটওয়ার্কের বিবরণ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"আপনার ফোনের অ্যাপে আপনার ডিভাইসের নাম দেখা যাবে। আপনি ব্লুটুথ ডিভাইসে বা ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করলে অথবা ওয়াই-ফাই হটস্পট সেট আপ করলে এটি অন্যরাও হয়ত দেখতে পাবেন।"</string>
     <string name="devices_title" msgid="649715719278562515">"ডিভাইস"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"নেটওয়ার্ক বেছে নিন"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ডিসকানেক্ট আছে"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"নাম"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"রঙ (মানানসই অ্যাপের দ্বারা ব্যবহৃত)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"সেভ করুন"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"সিম ব্যবহার করুন"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"এই সিম ব্যবহার করুন"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"বন্ধ"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"এই সিমটি বন্ধ করার জন্য সিম কার্ডটি সরিয়ে দিন"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> চালু করতে ট্যাপ করুন"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"সিম মুছে ফেলুন"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"পছন্দের নেটওয়ার্ক"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"নেটওয়ার্ক অপারেটিং মোড পরিবর্তন করুন"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"পছন্দের নেটওয়ার্ক"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"দামের বিষয়ে জানতে নেটওয়ার্ক প্রদানকারীর সাথে যোগাযোগ করুন।"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"অ্যাপ ডেটার ব্যবহার"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ভুল নেটওয়ার্ক মোড <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। এড়িয়ে যান।"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"অ্যাক্সেস পয়েন্টের নাম"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>-এ কনেক্ট থাকলে উপলভ্য থাকে না"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>-এ পাল্টাতে চান?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"সিম কার্ডে পাল্টাতে চান?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ব্যবহার করতে চান?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"যেকোনও সময় শুধুমাত্র একটি সিম কাজ করবে।\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-এ পাল্টালে <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-এর পরিষেবা বাতিল হয়ে যাবে না।"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"একবারে শুধু ১টি ই-সিম চালু থাকতে পারে।\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-এ পাল্টালে আপনার <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> পরিষেবা বাতিল হবে না।"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"যেকোনও সময় শুধুমাত্র একটি সিম কাজ করবে।\n\nপাল্টালে <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-এর পরিষেবা বাতিল করা হবে না।"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"আপনি একসাথে ২টি সিম কার্ড ব্যবহার করতে পারবেন না। <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-এর সিম কার্ড ব্যবহার করতে, অন্য সিম কার্ড বন্ধ করুন।"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>-এ পাল্টান"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> বন্ধ করুন"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"না থাক"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"বাতিল করুন"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"পাল্টান"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"বন্ধ করুন"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"সিম চালু করা যাচ্ছে না"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"সিমটি আবার চালু করার চেষ্টা করুন। এতেও সমস্যা ঠিক না হলে, ডিভাইস রিস্টার্ট করুন।"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"আপনার সিম সেট-আপ করুন"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"এই ডিভাইসে একাধিক সিম ব্যবহার করার জন্য আপনার মোবাইল নেটওয়ার্ক সংক্রান্ত পছন্দ সেট করুন"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"আপনার সিমে লেবেল লাগান"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"আপনি কল, টেক্সট মেসেজ করা ও ডেটা ব্যবহার করার সময় ও সেটিংসে এইসব লেবেল দেখতে পাবেন"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"সিম লেবেল"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"লেবেল"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"যে সিম ব্যবহার করতে চান তা বেছে নিন"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"আপনি একসাথে ২টি সিম ব্যবহার করতে পারবেন"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"আপনার প্রাথমিক সিম বেছে নিন"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"কল, টেক্সট মেসেজ করা ও ডেটা ব্যবহার করার সময় ডিফল্ট হিসেবে কোন সিম ব্যবহার করতে চান তা বেছে নিন"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"আপনার প্রাথমিক সিম"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"কল"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"টেক্সট"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"অটোমেটিক ডেটা পরিবর্তন করা"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"কভারেজ ও উপলভ্যতার উপর নির্ভর করে কোনও একটি সিমের ডেটা ব্যবহার করুন"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"শুধু ডেটা"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"সেট-আপ করুন"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"পরবর্তী"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"মোবাইল নেটওয়ার্ক"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ফোন নম্বর"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"সিম লেবেল ও কালার"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"নেটওয়ার্ক চালু করা"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"পরিষেবা প্রদানকারী পাল্টানো হচ্ছে"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> চালু আছে"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"পরে মোবাইল ডেটা, কল ফিচার এবং এসএমএস ব্যবহার করতে, আপনার \'নেটওয়ার্ক\' সেটিংসে যান"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"সিম কার্ড"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ই-সিম মুছবেন?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"এই সিম মুছে দিলে এই ডিভাইসে <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> পরিষেবা আর পাওয়া যাবে না।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> পরিষেবা কিন্তু বাতিল হবে না।"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"মুছুন"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"সিম মুছে ফেলা হচ্ছে…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"সিম মুছে ফেলা যায়নি"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"কোনও সমস্যার জন্য এই সিম মোছা যাচ্ছে না।\n\nআপনার ডিভাইস রিস্টার্ট করে আবার চেষ্টা করুন।"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ডিভাইসে কানেক্ট করুন"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"আপনার ডিভাইসে কানেক্ট করার জন্য <xliff:g id="APPNAME">%1$s</xliff:g> অ্যাপ সাময়িকভাবে একটি ওয়াই-ফাই নেটওয়ার্ক ব্যবহার করতে চায়"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"কোনও ডিভাইস খুঁজে পাওয়া যায়নি। ডিভাইস চালু আছে এবং কানেক্ট করার জন্য তৈরি কিনা তা ভাল করে দেখে নিন।"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"জরুরি কলগুলি"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"আপনার পরিষেবা প্রদানকারী নেটওয়ার্কের মাধ্যমে ওয়াই-ফাই কলিং ফিচারের সাহায্যে জরুরি কল করা যাবে না।\nজরুরি কল করতে ডিভাইস নিজে থেকে মোবাইল নেটওয়ার্ক পরিবর্তন করে নেবে।\nমোবাইল কভারেজ আছে এমন জায়গাতেই শুধুমাত্র জরুরি কল করা যাবে।"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"কল কোয়ালিটির উন্নতি করতে ওয়াই-ফাই ব্যবহার করুন"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ব্যাক-আপ কলিং"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> উপলভ্য না হলে বা রোমিংয়ে থাকলে, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-এ কল করতে ও পেতে আপনার মোবাইল ডেটা সিম ব্যবহার করুন।"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ব্যাক-আপ কলিং"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ইনকামিং এমএমএস মেসেজ"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"এমএমএস মেসেজ পাঠানো যায়নি"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"মোবাইল ডেটা বন্ধ থাকার সময়ে <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>-এ এমএমএস মেসেজের অনুমতি দিতে ট্যাপ করুন"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"অফিসের নীতি সংক্রান্ত তথ্য"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"আইটি অ্যাডমিন সেটিংস ম্যানেজ করে"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"১৬K সাইজের পৃষ্ঠা সহ বুট করুন"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"বুট ডিভাইস ১৬K সাইজের পৃষ্ঠার জন্য মানানসই কার্নেল ব্যবহার করছে"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"১৬KB পৃষ্ঠার জন্য মানানসই কার্নেল সহ রিবুুট করবেন?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"সতর্কতা: কিছু অ্যাপ্লিকেশন এই মোডে কাজ নাও করতে পারে। কনফার্ম করলে ডিভাইস রিবুট করবে।"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"৪KB পৃষ্ঠার জন্য মানানসই কার্নেল সহ রিবুুট করবেন?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"কনফার্ম করলে ডিভাইস রিবুট করবে।"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"কার্নেল ১৬KB পৃষ্ঠার জন্য মানানসই কার্নেলে আপডেট করা যায়নি।"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"পরিবর্তন প্রয়োগ করা হচ্ছে"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"সমস্যার রিপোর্টের পরিচালক"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"আপনার ডিভাইসে কোন অ্যাপটি সমস্যার রিপোর্টের শর্টকাট পরিচালনা করবে তা নির্ধারণ করে।"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ব্যক্তিগত"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"প্লেব্যাক দ্রুত আবার চালু করতে, \'দ্রুত সেটিংস\' মেনুতে মিডিয়া প্লেয়ার খোলা থাকে"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"লক স্ক্রিনে মিডিয়া দেখা"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"প্লেব্যাক ঝটপট আবার চালু করার জন্য, লক স্ক্রিনে মিডিয়া প্লেয়ার খোলা থাকে"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"মিডিয়া সাজেশন দেখুন"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant-এর মিডিয়া সাজেশন দেখুন"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"আপনার অ্যাক্টিভিটি অনুযায়ী"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"প্লেয়ার লুকান"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"প্লেয়ার দেখুন"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"সিম"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ই-সিম"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ই-সিম"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"অ্যাক্টিভ আছে"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"অ্যাক্টিভ নেই"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g>-এর জন্য ডিফল্ট হিসেবে"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"কল"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"এসএমএস"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"মানানসই মিডিয়ার অডিও আরও বেশি শ্রবণযোগ্য"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"হেড ট্র্যাকিং"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"মাথা নাড়াচাড়া করার সাথে সাথে অডিও পরিবর্তন হয় যাতে আরও স্বাভাবিক শব্দ হয়"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"অনুমতি সিঙ্ক করুন"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"আপনি <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>-কে যে অ্যাপ সংক্রান্ত অনুমতি দিয়েছেন, <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>-কেও সেই একই অনুমতি দিন"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ফোন থেকে অনুমতি সিঙ্ক করুন"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"এই ফোনে অ্যাপকে যে অনুমতি দেওয়া হয়েছে, আপনার ওয়াচেও সেই একই অনুমতি দিন"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"অডিও ডিভাইসের ধরন"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"অজানা"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"স্পিকার"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"মিডিয়াম"</string>
     <string name="contrast_high" msgid="3988567609694797696">"হাই"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"এই অ্যাপটি শুধুমাত্র ১টি উইন্ডোতে খোলা যেতে পারে"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"চালু আছে"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"বন্ধ আছে"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"বন্ধ আছে"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"বন্ধ আছে"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"চালু আছে"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"বন্ধ আছে"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"চালু আছে"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"বন্ধ আছে"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"হালকা স্ক্রিন ডার্ক ও ডার্ক স্ক্রিন হালকা করে"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"স্ক্রিন বড় করুন"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"বন্ধ আছে"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"বন্ধ আছে"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"চালু আছে"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"বন্ধ আছে"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"চালু আছে"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"পাসওয়ার্ড এখন সেট আপ হয়ে গেছে"</string>
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 2a21b78..237eb30 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Nakon 1 min"</item>
     <item msgid="1574040255478150028">"Nakon 5 min"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 1b3b895..2718b00 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Postali ste programer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nema potrebe, već ste programer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Prvo omogućite opcije za programere."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Samo administratori mogu pristupati postavkama programera."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Aktivan"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ne radi"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Prednji ekran se uključuje kada sklopite uređaj"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Samo igre, videozapisi i drugo"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Prednji ekran se uključuje za aplikacije koje sprečavaju neaktivnost ekrana"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Prevucite nagore da nastavite"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Sklopite telefon i prevucite nagore na prednjem ekranu da nastavite koristiti aplikaciju ili pričekajte nekoliko sekundi dok se ekran ne zaključa"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nikada"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Prednji ekran se zaključava kada sklopite uređaj"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Koristi automatsko rotiranje"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Srodno"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Melodija zvona i alarmi"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zvuk tokom poziva"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Mediji"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Obavještenja i drugi zvukovi sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Zvukovi medija i sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Obavještenja"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Prema zadanim postavkama pojedinačne aplikacije određuju izlaz zvuka"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Neimenovani Bluetooth uređaj"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Pretraživanje"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth je uključen"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Prikaži sve"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Prikaži sve"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pisaljka"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pritiskanje gornjeg dugmeta"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (radni profil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Povežite se s prijenosom zvuka LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Prijenosi zvuka u blizini"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Prijenosi zvuka"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Povežite se s prijenosom zvuka putem QR koda"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"U blizini nije pronađen nijed. prijenos zvuka"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Da odaberete jezik za svaku aplikaciju, idite u postavke jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saznajte više o jezicima aplikacije"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Promijeniti jezik sistema u %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Dodati %s u preferirane jezike?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Ovo aplikacijama i web lokacijama daje do znanja da je i ovo vaš preferirani jezik."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Postavke uređaja i regionalne postavke će se promijeniti."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Promijeni"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nije dostupan"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"subota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ako aplikacija ne podržava regionalne postavke, koristit će svoje zadane postavke jezika/zemlje."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Saznajte više o postavkama jezika."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Dodatne postavke"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Rodni oblici obraćanja"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Postavite kako želite da vam se obraćaju"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikacije mogu koristiti rodne oblike obraćanja da personaliziraju način na koji vam se obraćaju."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nije navedeno"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski rod"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Muški rod"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutralno"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Ukloniti odabrani jezik?}one{Ukloniti odabrane jezike?}few{Ukloniti odabrane jezike?}other{Ukloniti odabrane jezike?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst će biti prikazan na drugom jeziku"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ne mogu se ukloniti svi jezici"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokacija"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Koristi lokaciju"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Uključeno – # aplikacija ima pristup lokaciji}one{Uključeno – # aplikacija ima pristup lokaciji}few{Uključeno – # aplikacije imaju pristup lokaciji}other{Uključeno – # aplikacija ima pristup lokaciji}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno / # aplikacija ima pristup lokaciji}one{Uključeno / # aplikacija ima pristup lokaciji}few{Uključeno / # aplikacije imaju pristup lokaciji}other{Uključeno / # aplikacija ima pristup lokaciji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitavanje…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije s odobrenjem za Uređaje u blizini mogu otkriti relativan položaj povezanih uređaja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Pristup lokaciji je isključen za aplikacije i usluge. Lokacija uređaja se i dalje može slati hitnim službama kada pozovete broj za hitne slučajeve ili pošaljete SMS na njega."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Saznajte više o postavkama lokacije."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Promijenite pristup lokaciji u Postavke &gt; Sigurnost i privatnost &gt; Kontrole privatnosti"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Za najbolje rezultate koristite zaštitu ekrana koja ima oznaku Proizvedeno za Google. Moguće je da otisak prsta vašeg djeteta neće funkcionirati s drugim zaštitama ekrana."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Otključavanje pomoću sata"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Kada postavite otključavanje licem i otključavanje otiskom prsta, vaš telefon će tražiti otisak prsta ako nosite masku ili se nalazite u mračnom prostoru.\n\nKada se vaše lice ili otisak prsta ne prepozna, možete otključati pomoću sata."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Kada se vaš otisak prsta ne prepozna možete otključati pomoću sata."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Kada se vaše lice ne prepozna možete otključati pomoću sata."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Kada postavite otključavanje licem i otključavanje otiskom prsta, telefon će zatražiti otisak prsta kada nosite masku ili se nalazite u mračnom području.\n\nOtključavanje pomoću sata je drugi praktični način za otključavanje telefona, naprimjer kada su vam prsti vlažni ili lice nije prepoznato."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Otključavanje pomoću sata je drugi praktični način za otključavanje telefona, naprimjer kada vam otisak prsta nije prepoznat."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Otključavanje pomoću sata je drugi praktični način za otključavanje telefona, naprimjer kada vam lice nije prepoznato."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Koristite otisak prsta ili sat da"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Koristite lice ili sat da"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Koristite lice, otisak prsta ili sat da"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodani su lice i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodani su lice, otisak prsta i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodani su lice, otisci prstiju i <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Otključavanje udaljenog autentifikatora"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Sat je dodan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Postavite sat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Otključavanje pomoću sata je još jedan praktičan način otključavanja telefona, npr. kada su vam vlažni prsti ili kada se ne prepoznaje vaše lice.\n\nTelefon možete otključati pomoću sata kada:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne sada"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nastavi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Više"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Kako funkcionira"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Sat mora biti otključan, nalaziti se na zglobu šake i nadohvat ovog telefona. Dok je sat na zglobu šake, više ga nećete morati otključavati."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kada se telefon otključa, dobit ćete obavještenje na satu. Ako se telefon otključao kada niste namjeravali, dodirnite obavještenje da ponovo zaključate telefon."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vi upravljate svime"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Možete ukloniti sat iz Otključavanja pomoću sada bilo kada u Postavkama"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dodirnite obavještenje"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Prevucite nagore na zaključanom ekranu"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Odaberite sat"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupni satovi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Otkaži"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Spremni ste!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Sada možete otključati telefon pomoću sata kada prevučete nagore na zaključanom ekranu ili dodirnete obavještenje"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotovo"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Otključavanje pomoću sata"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Možete otključati telefon pomoću sata kada prevučete nagore na zaključanom ekranu ili dodirnete obavještenje"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Da koristite Otključavanje pomoću sata, sat mora biti otključan, nalaziti se na zglobu šake, nadohvat ovog telefona i povezan s njim. Ako se prekine veza, trebate otključati telefon da možete koristiti Otključavanje pomoću sata.\n\nImajte na umu:\nu datom trenutku možete imati samo jedan postavljen sat. Da dodate drugi sat, prvo uklonite trenutni."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o Otključavanju pomoću sata"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Uklanjanje sata"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za radni profil"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebno je postavljanje"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sigurnost"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privatnost"</string>
     <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="2274405892301976238">"Ostavite privatne aplikacije zaključane i sakrivene"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Držite privatne aplikacije u zasebnom prostoru koji možete sakriti ili zaključati"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Zaključavanje privatnog prostora"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Koristi zaključavanje ekrana uređaja"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Otključavanje licem i otiskom prsta"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Otključavanje otiskom prsta"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Otključavanje licem"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Dodirnite da postavite"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Otključavanje otiskom prsta za privatni prostor"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Otključavanje licem za privatni prostor"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Načini otključavanja"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Isto kao i zaključavanje ekrana uređaja"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Odabrati novo zaključavanje privatnog prostora?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Zaključaj automatski"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Automatski zaključajte privatni prostor"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Možete automatski zaključati privatni prostor ako niste koristili uređaj neko vrijeme"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Svaki put kada se ekran zaključa"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Nakon 5 minuta neaktivnosti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nikada"</string>
+    <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_delete_title" msgid="3075645119800272800">"Izbriši privatni prostor"</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="private_space_unlocked" msgid="9091600948712932046">"Privatni prostor je otključan"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Postavite zaključavanje ekrana"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Da koristite privatni prostor, postavite zaključavanje ekrana na uređaju"</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="private_space_cancel_label" msgid="379259667396956886">"Otkaži"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Postavi"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Postavite privatni prostor"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Držite privatne aplikacije u zasebnom prostoru koji možete sakriti ili zaključati"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Kako ovo funkcionira"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Možete pristupiti privatnom prostoru s dna liste aplikacija"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikacije u privatnom prostoru su zaštićene zaključavanjem"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Obavještenja iz aplikacija u privatnom prostoru su sakrivena kada je prostor zaključan"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Aplikacije u vašem privatnom prostoru se neće prikazivati u upravitelju odobrenja, na kontrolnoj tabli za privatnost ni u drugim postavkama kada je privatni prostor zaključan.\n\nPrivatni prostor se ne može premjestiti na novi uređaj. Morate postaviti drugi privatni prostor ako ga želite koristiti na drugom uređaju.\n\nAko neko poveže vaš uređaj s računarom ili na njega instalira štetne aplikacije, možda će moći pristupiti vašem privatnom prostoru."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Postavljanje privatnog prostora…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Obavještenja iz aplikacija u privatnom prostoru su sakrivena kada je prostor zaključan"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Otključajte svoj privatni prostor da dijelite fotografije ili fajlove iz aplikacija u privatnom prostoru"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Neke aplikacije su već instalirane u vašem privatnom prostoru"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Postavljanje privatnog prostora nije uspjelo"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Pokušaj ponovo"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Koristiti zaklj. ekrana za otklj. priv. prostora?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"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="private_space_use_screenlock_label" msgid="9182153443192032782">"Koristi zaključavanje ekrana"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Odaberite novi način zaključavanja"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Sve je spremno!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Da pristupite privatnom prostoru, idite na listu aplikacija i kliznite nadolje"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Gotovo"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Kliznite nadolje da pronađete privatni prostor"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Odaberite zaključavanje za privatni prostor"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Privatni prostor možete otključati pomoću otiska prsta. Iz sigurnosnih razloga ova opcija zahtijeva alternativni način zaključavanja."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Postavite PIN za privatni prostor"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Postavite lozinku za privatni prostor"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Postavite uzorak za privatni prostor"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Za prikazivanje privatnog prostora (nije konačno kor. iskustvo)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Otvorite aplikaciju Postavke"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Dodirnite Sigurnost i privatnost &gt; Privatan prostor &gt; Sakrij privatan prostor kada je zaključan"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Prekidač za isključ. sakrivanja priv. prostora kada je zaključ."</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Napomena Googleovim zaposlenicima: razvoj ove funkcije je još uvijek u toku"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Možda ćete morati otkucati ovaj pristupni kôd na drugom uređaju."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrdite da uparite s koordiniranim kompletom"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dozvoli pristup kontaktima i historiji poziva"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Također dozvolite pristup kontaktima i historiji poziva"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Podaci će se koristiti za obavještenja o pozivu i još mnogo toga"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nije uspjelo povezivanje sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupni uređaji"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"U načinu rada u avionu"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Šalji obavještenja o javnim mrežama"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Obavještava vas kada bude dostupna javna mreža visokog kvaliteta"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Dozvoli mreže s WEP protokolom"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP protokol je stariji sigurnosni protokol koji je manje siguran"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operater ne dozvoljava mreže s WEP protokolom jer su manje sigurne"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Automatski uključi WiFi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"WiFi se automatski ponovo uključuje u blizini sačuvanih mreža visokog kvaliteta, kao što je kućna mreža"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nije dostupno jer je lokacija isključena. Uključite "<annotation id="link">"lokaciju"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Skeniranje WiFi mreže omogućava aplikacijama i uslugama da traže WiFi mreže u svakom trenutku, čak i kada je WiFi isključen. Ovim se, naprimjer, mogu poboljšati funkcije i usluge zasnovane na lokaciji."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Uključi"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Skeniranje WiFi mreže je uključeno"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ova mreža koristi stariji sigurnosni protokol koji je manje siguran"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Mreža <xliff:g id="NAME">%1$s</xliff:g> je blokirana"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ova mreža koristi stariji sigurnosni protokol pod nazivom WEP protokol, koji je manje siguran. Da se ipak povežete, možete dozvoliti mreže s WEP protokolom."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operater vam ne dozvoljava da se povežete s ovom mrežom jer koristi stariji sigurnosni protokol koji je manje siguran"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Dozvoli WEP protokol"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zatvori"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Napredne opcije"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Padajuća lista Naprednih opcija"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"proširivanje"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani na WiFi mreži"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Nemoj više prikazivati"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Poveži se"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi je uključen"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano s mrežom <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Povezivanje s mrežom <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Povezivanje…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Povezivanje na mrežu nije uspjelo"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Zaboravi"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Izmijeni"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Zaboravljanje mreže nije uspjelo"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Sačuvaj"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Čuvanje mreže nije uspjelo"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Otkaži"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"WiFi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Prijenos podataka na mobilnoj mreži"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – punjenje"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – punjenje"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Veza pristupne tačke"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Jačina veze"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Sačuvane mreže"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Lozinka nije postavljena"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Naziv pristupne tačke"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Lozinka pristupne tačke"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP opseg"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Automatski isključi pristupnu tačku"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kada nijedan uređaj nije povezan"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Proširi kompatibilnost"</string>
@@ -1008,8 +1149,10 @@
     <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">"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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Onemogući zadani br. sl. u s za igre"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Onemogućite ograničavanje maksimalnog broja slika u sekundi za igre pri <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Glatki prikaz"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkcija Svjesni ekran koristi prednju kameru da utvrdi gleda li neko u ekran. Funkcionira na uređaju, a slike se nikada ne arhiviraju niti šalju Googleu."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Uključite svjesni ekran"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Zadržava ekran uključenim dok gledate u njega"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Duži istek vremena ekrana će povećati potrošnju baterije."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera je zaključana"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera se mora otključati za Prepoznavanje lica"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Morate otključati kameru za Svjesni ekran"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (utor za SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (utor za SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primarno)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Za prikaz odaberite sačuvanu mrežu"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Verzija PRL-a"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivo napunjenosti baterije"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Opće"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Opće postavke"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Sačuvaj"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Otkaži"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Polje Ime ne može ostati prazno."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Naziv pristupne tačke ne može biti prazan."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC polje mora imati 3 cifre."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC polje mora imati 2 ili 3 cifre."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operater ne dozvoljava dodavanje APN-a tipa %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC polje mora biti važeće."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Vraćanje zadanih postavki za APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Vrati na zadano"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Vraćanje zadanih postavki za APN je završeno."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Vrati na zadano"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth i WiFi su vraćeni na zadano"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Potpuno izbriši eSIM-ove"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Ovim se neće otkazati paketi mobilnih usluga. Da preuzmete zamjenske SIM-ove, kontaktirajte svog mobilnog operatera."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Vrati postavke na zadano"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Vratiti sve postavke mreže na zadano? Ovu radnju ne možete opozvati."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vratiti sve postavke mreže na zadano i potpuno izbrisati eSIM-ove? Ovu radnju ne možete opozvati."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Vratiti na zadano?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Ponovno postavljanje mreže nije dostupno za ovog korisnika"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Postavke mreže vraćene su na zadano"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Nije moguće izbrisati SIM-ove"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Nije moguće izbrisati eSIM-ove zbog greške.\n\nPonovo pokrenite uređaj i pokušajte ponovo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Izbriši sve podatke (vraćanje na fabričke postavke)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Izbriši sve podatke"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"muziku"</li>\n<li>"fotografije"</li>\n<li>"ostale korisničke podatke"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-ove"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Ovim se neće otkazati vaš plan usluga mobilnog operatera."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Izbrisat će se svi vaši lični podaci i preuzete aplikacije. Ovu radnju ne možete poništiti."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Izbrisat će se svi vaši lični podaci, uključujući preuzete aplikacije i SIM-ove. Ovu radnju ne možete poništiti."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Potpuno izbrisati sve podatke?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Vraćanje na fabričke postavke nije dostupno za ovog korisnika"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Brisanje"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Pristupna tačka, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet se ne dijeli s drugim uređajima"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Isključeno"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Dijeljenje internetske veze"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ne koristi WiFi pristupnu tačku"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Dijeljenje interneta isključivo putem USB-a"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Dijeljenje interneta isključivo putem Bluetootha"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Dijeljenje interneta isključivo putem Etherneta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Dijeljenje interneta isključivo putem USB-a i Bluetootha"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Dijeljenje interneta isključivo putem USB-a i Etherneta"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Dijeljenje interneta isključivo putem Bluetootha i Etherneta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Dijeljenje interneta isključivo putem USB-a, Bluetootha i Etherneta"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Dijeljenje internetske veze putem USB-a"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Dijeljenje internetske veze putem Bluetootha"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Dijeljenje internetske veze putem Etherneta"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Koristite pristupnu tačku i dijeljenje internetske veze da omogućite internet drugim uređajima putem WiFi-ja ili prijenosa podataka na mobilnoj mreži. Aplikacije također mogu kreirati pristupne tačke za dijeljenje sadržaja s uređajima u blizini."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoć"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilna mreža"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Paket mobilne usluge"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikacija za SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Promijeniti aplikaciju za SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Koristiti <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao aplikaciju za SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Promijeniti WiFi asistenta?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Želite li koristiti aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Koristiti <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje vašim mrežnim vezama?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nepoznati SIM operater"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web lokaciju za omogućavanje upotrebe"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Umetnite SIM karticu i ponovo pokrenite uređaj"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Povežite se na Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavni zahtjevi za lokaciju"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za radni profil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Odobrenja lokacije za aplikacije"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Pristup je slobodan"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrole"</string>
     <string name="force_stop" msgid="2681771622136916280">"Prisilno zaustavi"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhiviraj"</string>
+    <string name="restore" msgid="7622486640713967157">"Vrati"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Ukupno"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Veličina aplikacije"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikacija USB pohrane"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nije bilo moguće izračunati veličinu paketa."</string>
     <string name="version_text" msgid="7628938665256107608">"verzija <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Premjesti"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhiviranje nije uspjelo"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arhivirano: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Vraćanje nije uspjelo"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Vraćanje aplikacije <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Druga migracija je već u toku."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nema dovoljno prostora za pohranu."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikacija ne postoji."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tastatura na ekranu je dostupna"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Upravljajte tastaturama na ekranu"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
     <string name="show_ime" msgid="4334255501724746849">"Koristi tastaturu na ekranu"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Zadržava se na ekranu dok je fizička tastatura aktivna"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Zanemari slučajne pritiske tipki"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Omogućite opciju Zanemari slučajne pritiske tipki za pristupačnost fizičke tastature"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Ljepljive tipke"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Omogućite Ljepljive tipke za pristupačnost fizičke tastature"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Prečice tastature"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaz liste prečica"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatura i alati radnog profila"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Poredaj prema vrem. korištenja"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Pored. prema poslj. korištenja"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Poredaj prema imenu aplikacije"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Posljednji put korišteno"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Posljednja upotreba"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nikada"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Vrijeme korištenja"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Pristupačnost"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Postavke pristupačnosti"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Otkaži"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Postavke uvećavanja"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Uvećavanje trostrukim dodirom"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Uvećavanje pomoću prečice"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Uvećajte pomoću prečice i trostrukog dodira"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"O usluzi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Otvaranje dvostrukim 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="860548190334486449">"Da pokrenete i zaustavite uvećavanje, dvaput 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Da koristite funkciju pristupačnosti, 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_button" msgid="2031773187678948436">"Razumijem"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Postavke dugmeta za pristup."</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Postavke dugmeta"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Prečica za: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Dugme Pristupačnost"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Pokret za pristupačnost"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dvostruki dodir ekrana s dva prsta"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dvostruki dodir ekrana s dva prsta"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite ekran {0,number,integer} put(a) s dva prsta"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dodirnite ekran triput"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Saznajte više o dugmetu za pristupačnost i pokretu"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Korištenje dugmeta za pristupačnost. Pokret nije dostupan s navigiranjem pomoću 3 dugmeta."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Brzo pristupite funkcijama pristupačnosti"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Da započnete"</b>\n"1. Idite u postavke pristupačnosti\n2. Odaberite funkciju i dodirnite prečicu\n3. Odaberite želite li koristiti dugme ili pokret da pristupite funkciji"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Da započnete"</b>\n"1. Idite u postavke pristupačnosti\n2. Odaberite funkciju i dodirnite prečicu\n3. Odaberite dugme da pristupite funkciji"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Da započnete:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Idite u postavke pristupačnosti&lt;br/&gt; {1,number,integer}. Odaberite funkciju i dodirnite prečicu&lt;br/&gt; {2,number,integer}. Odaberite želite li koristiti dugme ili pokret da pristupite funkciji&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Da započnete:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Idite u postavke pristupačnosti&lt;br/&gt; {1,number,integer}. Odaberite funkciju i dodirnite prečicu&lt;br/&gt; {2,number,integer}. Odaberite dugme da pristupite funkciji&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Korištenje dugmeta ili pokreta"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokacija"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Veličina"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Dugme uklj./isklj. prekida poziv"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Veliki pokazivač miša"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Isticanje pokazivača miša da bude uočljiviji"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Zatamnjivanje svih aplikacija"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Odnosi se na apl. bez vlastite tamne teme. Neke apl. mogu imati problem s prikazom, kao obrtanje boja."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Ukloni animacije"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Smanjite kretanje na ekranu ekranu"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono zvuk"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijom ili hardverskim senzorom te ostvariti interakciju s aplikacijama umjesto vas."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dozvoli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Zaustavi"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Otkaži"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Zaustaviti uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Dodirom na <xliff:g id="STOP">%1$s</xliff:g> zaustavit će se usluga <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ostavi uklj."</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Isključiti uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nema instaliranih usluga"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nije odabrana usluga"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije naveden opis."</string>
     <string name="settings_button" msgid="2195468788019730377">"Postavke"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"osjetljivost na svjetlost, fotofobija, tamna tema, migrena, glavobolja, način rada za čitanje, noćni način rada, smanjivanje osvjetljenja, bijela tačka"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Jednostavno korištenje, jednostavni pristup, pomoć, od pomoći"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slijepi, gluhi, motorika, pokretljivost ruku, pomoćni, pomoć, jednostavnost korištenja, jednostavnost pristupa, ruka, pomoć"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"povećalo prozora, zumiranje, uvećavanje, slabi vid, uvećanje, povećavanje"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"titlovi, titlovanje, cc, automatska transkripcija, poteškoće sa sluhom, gubitak sluha, transkripcija u stvarnom vremenu pomoću računara, pretvaranje govora u tekst"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontrast boja"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, miš"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, poteškoće sa sluhom, gubitak sluha, kohlearni implantati, uređaji za pojačavanje zvuka, procesori zvuka"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, miš, vanjski miš, naglavni miš, prilagodljivi miš, invalidska kolica, džojstik"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušni aparati, oštećenje sluha, gubitak sluha, kohlearni implantati, uređaji za pojačavanje zvuka, procesori zvuka, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"poteškoće sa sluhom, gubitak sluha, titlovi, teletype, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri dugmeta"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"pokretljivost ruku, motorika, starija osoba, artritis, RSI, moždani udar, tremor, multipla skleroza, cerebralna paraliza, drhtanje, povreda uzrokovana učestalim ponavljanjem radnje, ruka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"odgoda, pokretljivost ruku, starija osoba"</string>
     <string name="print_settings" msgid="8519810615863882491">"Štampanje"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Isključeno"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Uključena je 1 usluga štampanja}one{Uključena je # usluga štampanja}few{Uključene su # usluge štampanja}other{Uključeno je # usluga štampanja}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Pogledajte aplikacije s najvećom potrošnjom"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Punjenje je optimizirano radi zaštite baterije"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Radi produženja vijeka trajanja baterije, punjenje je optimizirano"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Punjenje je optimizirano radi zaštite baterije"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Radi produženja vijeka trajanja baterije punjenje je optimizirano dok je uređaj priključen"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Punjenje je optimizirano radi zaštite baterije"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Radi produženja vijeka trajanja baterije punjenje je optimizirano dok je uređaj priključen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Punjenje do kraja"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Radi zaštite baterije punjenje će se optimizirati sljedeći put kada tablet bude priključen"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Saznajte više o pauziranju punjenja"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Nastavi punjenje"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Uključuje aktivnost u pozadini s velikom potrošnjom baterije"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ukloni"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Otkaži"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Punjenje do kraja"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem s opremom za punjenje"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Saznajte više o nekompatibilnom punjenju"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Upravitelj baterije"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Automatsko upravljanje aplikacijama"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"sada"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Grafikon potrošnje baterije"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafikon dnevne potrošnje baterije"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafikon potrošnje baterije po satu"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Postotak napunjenosti baterije od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Potrošnja baterije od posljednjeg potpunog punjenja"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Potrošnja baterije za period <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Vrijeme korištenje uređaja od posljednjeg potpunog punjenja"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Postavi ponašanje prilikom upućivanja hitnog poziva"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Izrada sigurnosne kopije"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Uključeno"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Isključeno"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sigurnosna kopija i vraćanje"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Lični podaci"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Izrada sigurnosne kopije podataka"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Naziv"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Vrsta"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresa servera"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP šifriranje (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP tajna"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikator"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Unaprijed dijeljeni IPSec ključ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec korisnički certifikat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA certifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec certifikat servera"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Prikaži napredne opcije"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domene DNS pretraživanja"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS serveri (npr. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rute prosljeđivanja (npr. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Korisničko ime"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Lozinka"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Sačuvajte informacije o računu"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ne koristi se)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne potvrđuj server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(primljeno od servera)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ova vrsta VPN-a ne može biti stalno povezana"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Uvijek aktivni VPN podržava samo numeričke adrese servera"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"DNS server mora biti naveden za uvijek aktivni VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adrese DNS servera moraju biti numeričke za uvijek aktivni VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Unesena informacija ne podržava uvijek aktivni VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Otkaži"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Odbaci"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj veze bez VPN-a"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Treba li zahtijevati VPN vezu?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nije sigurno. Ažurirajte na IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Pokretanje nepodržanog VPN-a nije uspjelo."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Odaberite VPN profil s kojim će uvijek biti uspostavljena veza. Mrežni saobraćaj će biti dopušten samo kad je uspostavljena veza s tim VPN-om."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ništa"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Uvijek aktivni VPN zahtijeva IP adresu i za server i za DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER upozorenja"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Prijem objava o otmicama djece"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ponovi"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Omogući Upravitelj pozivima"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Dozvoli ovoj usluzi da upravlja upućivanjem poziva."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Upravitelj za pozive"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Hitna upozorenja putem bežične mreže"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Mrežni operateri"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nazivi pristupnih tačaka"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"novčanik"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"plati, dodir, plaćanja"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sigurnosna kopija"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"pokret"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"lice, otključaj, autentifikacija, prijava"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"lice, otključavanje, autentifikacija, prijava, otisak prsta, biometrija"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl verzija, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Uključivanje zvukova"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Automatski titlovi"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatski titlovi za medije"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Zvučnici telefona"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Zvučnici tableta"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Zvučnici uređaja"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Žičane slušalice"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Zvuk iz kompatibilnih medija postaje prostraniji"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Isključeno"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Šta želite da vam zaključani ekran prikazuje?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nedavni razgovori su uklonjeni"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Razgovor je uklonjen"</string>
     <string name="clear" msgid="5092178335409471100">"Obriši"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Brisanje razgovora <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Ovdje će se prikazati prioritetni i promijenjeni razgovori"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Ovdje će se prikazati razgovori koje označite kao prioritetne i na kojima izvršite neke druge promjene. \n\nDa promijenite postavke razgovora: \nprevucite s vrha ekrana prema dolje da otvorite padajuću traku, a zatim dodirnite i zadržite razgovor."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimiziraj"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Isključeno"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Kačenje aplikacije"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Kačenje aplikacije omogućava da se trenutna aplikacija zadrži na ekranu dok je ne otkačite. Naprimjer, koristeći ovu funkciju možete omogućiti pouzdanom prijatelju da igra određenu igru."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kada je aplikacija zakačena, ona može otvoriti druge aplikacije i omogućiti pristup ličnim podacima. \n\nDa koristite kačenje aplikacije: 	\n1. Uključite kačenje aplikacije 	\n2. Otvorite Pregled 	\n3. Dodirnite ikonu aplikacije na vrhu ekrana, a zatim dodirnite Zakači"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kada je aplikacija zakačena, ona može otvoriti druge aplikacije i omogućiti pristup ličnim podacima. \n\nAko želite dijeliti uređaj s nekim na siguran način, pokušajte koristiti profil za gosta. \n\nDa koristite kačenje aplikacije: 	\n1. Uključite kačenje aplikacije 	\n2. Otvorite Pregled 	\n3. Dodirnite ikonu aplikacije na vrhu ekrana, a zatim dodirnite Zakači"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kada je aplikacija zakačena, ona može otvoriti druge aplikacije i omogućiti pristup ličnim podacima. \n\nDa koristite kačenje aplikacije: 	\n{0,number,integer}. Uključite kačenje aplikacije 	\n{1,number,integer}. Otvorite Pregled 	\n{2,number,integer}. Dodirnite ikonu aplikacije u gornjem dijelu ekrana, a zatim dodirnite Zakači"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kada je aplikacija zakačena, ona može otvoriti druge aplikacije i omogućiti pristup ličnim podacima. \n\nAko želite dijeliti uređaj s nekim na siguran način, pokušajte koristiti profil za gosta. \n\nDa koristite kačenje aplikacije: 	\n{0,number,integer}. Uključite kačenje aplikacije 	\n{1,number,integer}. Otvorite Pregled 	\n{2,number,integer}. Dodirnite ikonu aplikacije u gornjem dijelu ekrana, a zatim dodirnite Zakači"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kada je aplikacija zakačena: \n\n•		Lični podaci mogu biti dostupni \n		(kao što su kontakti i sadržaj e-pošte) \n•		Zakačena aplikacija može otvoriti druge aplikacije \n\nKačenje aplikacije koristite samo s osobama kojima vjerujete."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Traži uzorak za otključavanje prije poništavanja kačenja"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Traži PIN prije poništavanja kačenja"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Postavke za nekorištene aplikacije"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pauziraj aktivnost apl. ako se ne koristi"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Uklonite odobrenja, izbrišite privremene fajlove i zaustavite obavještenja"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Upravljaj aplikacijom ako se ne koristi"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Uklonite odobrenja, izbrišite privremene fajlove, zaustavite obavještenja i arhivirajte aplikaciju"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Sve aplikacije"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Instalirane aplikacije"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant aplikacije"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Slobodno"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memorija koju koriste aplikacije"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikacija je koristila memoriju u posljednjem periodu: {time}}one{# aplikacija je koristila memoriju u posljednjem periodu: {time}}few{# aplikacije su koristile memoriju u posljednjem periodu: {time}}other{# aplikacija je koristilo memoriju u posljednjem periodu: {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Omogući profiliranje korištenja memorije"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profiliranje korištenja memorije zahtijeva dodatne izvore sistema."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profiliranje memorije je onemogućeno"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekvencija"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimalno korištenje"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nema iskorištenih podataka"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Prikaz preko drugih aplikacija"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Dozvoli prikaz preko drugih aplikacija"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Dozvolite ovoj aplikaciji da prekrije ostale aplikacije koje koristite. Ova aplikacija će moći vidjeti gdje dodirujete ili promijeniti ono što je prikazano na ekranu."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Promijeni izlaz med. sadržaja"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Dozvoli apl. da prebacuje izlaz med. sadržaja"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Dozvoljava ovoj aplikaciji da odabere koji povezani uređaj reproducira zvuk ili videozapis iz drugih aplikacija. Ako je dozvoljeno, ova aplikacija može pristupiti listi dostupnih uređaja kao što su slušalice i zvučnici te odabrati koji izlazni uređaj se koristi za prijenos ili emitiranje zvuka ili videozapisa."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Pristup svim fajlovima"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Poboljšaj aktivaciju glasom"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Uređaj koristi privatna saznanja da poboljša model aktivacije glasom. Aplikacije mogu primati sažete novosti koje su objedinjene za mnoge korisnike radi održavanja privatnosti uz poboljšanje modela za sve.\n\n"<a href="">"Više o privatnim saznanjima"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Upozorenje o prijenosu podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Ograničenje prijenosa podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozorenje o prijenosu podataka: <xliff:g id="ID_1">^1</xliff:g> / Ograničenje prijenosa podataka: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Obračun podataka koji vrši operater se može razlikovati od obračuna koji vrši uređaj."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne obuhvata podatke koje koriste mreže mobilnog operatera"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Iskorišteno je <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Postavi upozor. o prij. podat."</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Ažurirano prije <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Upravo ažurirao mob. operater <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Upravo ažurirano"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Pogledaj plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Prikaži detalje"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Ušteda podataka"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neograničen prijenos podataka"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Nepravilnost u potrošnji baterije"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Pločice programera za brze postavke"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Onemogući istek vremena za ADB ovlaštenje"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Onemogućite automatsko ukidanje ADB ovlaštenja za sisteme koji se nisu ponovo povezali u zadanom roku (7 dana) ili u roku koji je konfigurirao korisnik (minimalno 1 dan)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope praćenje"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzori su isključeni"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Postavke radnog profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Pretražujte kontakte iz poslovnog imenika u ličnim aplikacijama"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Usluga automatskog popunjavanja"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Zadana usluga automatskog popunjavanja"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Lozinke"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usluge za lozinke, pristupne ključeve i podatke"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Dodatni pružaoci usluga"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# lozinka}one{# lozinka}few{# lozinke}other{# lozinki}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatski, popunjavanje, automatsko popunjavanje, lozinka"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Usluge za lozinke, pristupne ključeve i podatke"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Isključiti sve usluge?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Lozinke, pristupni ključevi i druge sačuvane informacije neće biti dostupne za automatsko popunjavanje kada se prijavite"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Promijenite željenu uslugu u &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 od sada će se pohranjivati na tu uslugu. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Koristiti uslugu %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Možete imati samo 5 uključenih usluga"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Isključite barem 1 uslugu da dodate drugu"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s koristi sadržaj na ekranu da odredi šta se može automatski popuniti."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Ograničeni broj usluga za lozinke, pristupne ključeve i podatke"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Istovremeno možete imati najviše 5 aktivnih usluga za lozinke, pristupne ključeve i podatke. Isključite jednu uslugu da dodate drugu."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Ograničeni broj usluga za lozinke, pristupne ključeve i podatke"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"U datom trenutku možete imati najviše 5 aktivnih usluga za lozinke, pristupne ključeve i podatke. Isključite uslugu da dodate više."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Isključi"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatsko popunjavanje"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivo zapisivanja"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Promjene kompatibilnosti aplikacije je moguće izmijeniti isključivo kod aplikacija kod kojih je moguće izvršiti otklanjanje grešaka. Instalirajte aplikaciju kod koje je moguće izvršiti otklanjanje grešaka i pokušajte ponovo."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Zavisi od druge postavke"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Račun"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d račun(a)"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Naziv uređaja"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Osnovne informacije"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Pravne informacije i propisi"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Dozvolite aplikaciji da se pokrene kada se NFC oznaka skenira.\nAko je ovo odobrenje uključeno, aplikacija će biti dostupna kao opcija kad god se oznaka otkrije."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reprodukcija medija na"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reproduciraj <xliff:g id="LABEL">%s</xliff:g> na"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Zvuk će se reproducirati na uređaju"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Ovaj uređaj"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Nedostupno za vrijeme poziva"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Primanje poziva"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Isključen zvuk"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Da omogućite, najprije promijenite opciju \"Pritisnite i zadržite dugme za uključivanje\" u meni napajanja."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalji o mreži"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Aplikacije na vašem telefonu će moći vidjeti naziv vašeg uređaja. Također će ga moći vidjeti druge osobe kada se povežete s Bluetooth uređajima ili WiFi mrežom, ili kada postavite WiFi pristupnu tačku."</string>
     <string name="devices_title" msgid="649715719278562515">"Uređaji"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Odaberite mrežu"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Veza je prekinuta"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Naziv"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Boja (koriste kompatibilne aplikacije)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Sačuvaj"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Koristi SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Koristi ovaj SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Isključeno"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Uklonite SIM karticu da onemogućite ovaj SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Dodirnite da aktivirate operatera <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Izbriši SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferirana vrsta mreže"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Promijenite način rada mreže"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferirana vrsta mreže"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Raspitajte se kod svog mobilnog operatera za cijene."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Prijenos podataka u aplikaciji"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mrežni način <xliff:g id="NETWORKMODEID">%1$d</xliff:g> nije važeći. Zanemarite."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nazivi pristupne tačke"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nedostupno kada ste povezani s operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Prebaciti na operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Prebaciti na korištenje SIM kartice?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Koristiti operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"U datom trenutku može biti aktivan samo jedan SIM.\n\nPrebacivanjem na operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> neće se otkazati usluga mobilnog operatera <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"U datom trenutku može biti aktivan samo 1 eSIM.\n\nPrebacivanjem na operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> se neće otkazati usluga operatera <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"U datom trenutku može biti aktivan samo jedan SIM.\n\nPrebacivanjem se neće otkazati usluga mobilnog operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Možete istovremeno koristiti 2 SIM-a. Da koristite operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, isključite drugi SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Prebaci na operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Isključite operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, hvala"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Otkaži"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Prebaci"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Isključi"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nije moguće aktivirati SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Pokušajte ponovo uključiti SIM. Ako se problem ne riješi, ponovo pokrenite uređaj."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Postavite SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Postavite postavke mobilne mreže da koristite više SIM-ova na uređaju"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Označite SIM-ove"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Vidjet ćete ove oznake prilikom upućivanja poziva, slanja poruka i korištenja prijenosa podataka i u Postavkama"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Oznaka SIM-a"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Oznaka"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Odaberite SIM-ove za korištenje"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Možete istovremeno koristiti 2 SIM-a"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Postavite primarne SIM-ove"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Odaberite SIM-ove koji će se prema zadanim postavkama koristiti za pozive, poruke i prijenos podataka"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Primarni SIM-ovi"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Pozivi"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Poruke"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Autom. prebac. na prij. podataka"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Koristite prijenos podataka s bilo kojeg SIM-a ovisno o pokrivenosti i dostupnosti"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Samo prijenos podataka"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Postavi"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Naprijed"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilna mreža"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Broj telefona"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Oznaka i boja SIM-a"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktiviranje mreže"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Promjena operatera"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operater <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivan"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Da kasnije koristite prijenos podataka na mobilnoj mreži, funkcije poziva i SMS, idite u postavke mreže"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Potpuno izbrisati ovaj eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Ako potpuno izbrišete ovaj SIM, s ovog uređaja će se ukloniti usluga operatera <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nUsluga za operatera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> neće se otkazati."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Potpuno izbriši"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Potpuno brisanje SIM-a…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Nije moguće potpuno izbrisati SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Nije moguće potpuno izbrisati ovaj SIM zbog greške.\n\nPonovo pokrenite uređaj i pokušajte ponovo."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Povezivanje s uređajem"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikacija <xliff:g id="APPNAME">%1$s</xliff:g> želi koristiti privremenu WiFi mrežu da se poveže s vašim uređajem"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nije pronađen nijedan uređaj Provjerite jesu li uređaji uključeni i dostupni za povezivanje."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Hitni pozivi"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Vaš operater ne podržava hitne pozive preko funkcije Pozivanje putem WiFi-ja.\nUređaj će se automatski prebaciti na mobilnu mrežu kako bi se uspostavio hitni poziv.\nHitni pozivi su mogući samo na područjima pokrivenim mobilnom mrežom."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Korištenje WiFi-ja za pozive radi poboljšanja kvaliteta"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Pomoćno pozivanje"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ako <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nije dostupan ili je u romingu, koristite SIM za prijenos podataka na mobilnoj mreži za <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> pozive."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"pomoćno pozivanje"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Dolazna MMS poruka"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nije moguće poslati MMS poruku"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Dodirnite da dozvolite MMS poruke na mreži <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> kada je isključen prijenos podataka na mobilnoj mreži"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informacije o radnim pravilima"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Postavkama upravlja vaš IT administrator"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Pokreni uz veličinu stranica od 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Pokrenite uređaj s jezgrom podržanom za str. od 16 kB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Ponovo pokrenuti s jezgrom kompatibilnom sa stranicama od 16 kB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"UPOZORENJE: određene aplikacije možda nisu kompatibilne s ovim načinom rada. Uređaj će se ponovo pokrenuti nakon potvrde."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Ponovo pokrenuti s jezgrom kompatibilnom sa stranicama od 4 kB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Uređaj će se ponovo pokrenuti nakon potvrde."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ažuriranje jezgre u jezgru kompatibilnu sa stranicama od 16 kB nije uspjelo."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Primjena promjene"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Obrađivač izvještaja o greškama"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Određuje koja aplikacija obrađuje prečicu za Izvještaj o greškama na uređaju."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Lično"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Za brzo nastavljanje reprodukcije plejer medija ostaje otvoren u Brzim postavkama"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Prikazuj medije na zaključanom ekranu"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Za brzo nastavljanje reprodukcije plejer medija ostaje otvoren na zaključanom ekranu"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Prikaži preporuke medija"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Prikaži preporuke medija od Asistenta"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Na osnovu vaše aktivnosti"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Sakrij plejer"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Prikaži plejer"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-ovi"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktivno"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktivno"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Zadano za: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"pozivi"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk iz kompatibilnih medija postaje prostraniji"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se mijenja dok pomjerate glavu radi prirodnijeg zvuka"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinhroniziraj odobrenja"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Na uređaju <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> dodijelite ista odobrenja za aplikaciju koja ste dozvoliti na uređaju <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinhronizirajte odobrenja s telefona"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Na satu dodijelite ista odobrenja za aplikaciju koja ste dozvolili na ovom telefonu"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta audio uređaja"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Srednje"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Visoko"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ova aplikacija se može otvoriti samo u 1 prozoru"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Uključeno"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Isključeno"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Isključeno"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Isključeno"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Uključeno"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Isključeno"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Uključeno"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Isključeno"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Mijenja svijetle ekrane u tamne i tamne ekrane u svijetle"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Uvećajte na ekranu"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Isključeno"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Isključeno"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Lozinka je sada postavljena"</string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 3dfd06f..db59b92 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Després d\'1 minut"</item>
     <item msgid="1574040255478150028">"Després de 5 minuts"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 00030fb..672918f 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Ara ja ets un desenvolupador"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"No és necessari, ja ets un desenvolupador"</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Primer activa les opcions per a desenvolupadors."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Només els usuaris administradors poden accedir a la configuració per a desenvolupadors."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"En servei"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fora de servei"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"La pantalla frontal s\'encén quan plegues el dispositiu"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Només jocs, vídeos i més"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"La pantalla frontal s\'encén per a les aplicacions que eviten que la pantalla es quedi inactiva"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Llisca cap amunt per continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Plega el telèfon i llisca cap amunt a la pantalla frontal per continuar utilitzant l\'aplicació, o bé espera uns quants segons que la pantalla es bloquegi"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Mai"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"La pantalla frontal es bloqueja quan plegues el dispositiu"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Gira automàticament"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionats"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"So de trucada i alarmes"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Àudio durant les trucades"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimèdia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificacions i sons del sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons multimèdia i del sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificacions"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"De manera predeterminada, cada aplicació determina la sortida d\'àudio"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositiu Bluetooth sense nom"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"S\'està cercant"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"S\'ha activat el Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Mostra-ho tot"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Mostra-ho tot"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Llapis òptic"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Prem el botó del darrere"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de treball)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Connecta\'t a un flux d\'LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Fluxos d\'àudio a prop"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Fluxos d\'àudio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Connecta\'t a un flux d\'àudio fent servir un codi QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"No s\'ha trobat cap flux d\'àudio a prop."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Per seleccionar un idioma per a cada aplicació, ves a la configuració d\'idioma de l\'aplicació."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Més informació sobre els idiomes de les aplicacions"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vols canviar l\'idioma del sistema a %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Vols afegir %s als idiomes preferits?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Això permet que les apps i llocs web sàpiguen que també prefereixes aquest idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"La configuració del dispositiu i les preferències regionals canviaran."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Canvia"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Aquest idioma (%s) no està disponible"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Dissabte"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Si una aplicació no admet preferències regionals, utilitzarà la seva configuració regional predeterminada."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Més informació sobre les preferències d\'idioma"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferències addicionals"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Formes de dirigir-se a tu"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Configura com vols que es dirigeixin a tu"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Les aplicacions poden utilitzar diferents formes personalitzades per dirigir-se a tu."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sense especificar"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femení"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculí"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutre"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vols suprimir l\'idioma seleccionat?}other{Vols suprimir els idiomes seleccionats?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"El text es mostrarà en un altre idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"No es poden suprimir tots els idiomes"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Ubicació"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Utilitza la ubicació"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivat"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Activat (# aplicació té accés a la ubicació)}other{Activat (# aplicacions tenen accés a la ubicació)}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada (# aplicació té accés a la ubicació)}other{Activada (# aplicacions tenen accés a la ubicació)}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregant…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Les aplicacions amb permís per trobar dispositius propers poden determinar la posició relativa dels dispositius connectats."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accés a la ubicació està desactivat per a aplicacions i serveis. Tanmateix, la ubicació del dispositiu es pot continuar enviant als serveis d\'emergències quan truquis o enviïs un missatge de text a un número d\'emergència."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Obtén més informació sobre la configuració d\'ubicació."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Més informació sobre la configuració d\'ubicació"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Canvia l\'accés a la ubicació a Configuració &gt; Seguretat i priv. &gt; Controls de priv."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Per obtenir els millors resultats, utilitza un protector de pantalla que tingui la certificació Made For Google. Si utilitzes altres protectors de pantalla, pot ser que l\'empremta digital del teu fill o filla no funcioni."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueig amb rellotge"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Quan configuris Desbloqueig facial i Desbloqueig amb empremta digital, el telèfon et demanarà l\'empremta digital si portes mascareta o et trobes en una zona fosca.\n\nPots desbloquejar el telèfon amb el rellotge quan no es reconegui la teva cara o l\'empremta digital."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Pots desbloquejar el dispositiu amb el rellotge quan no es reconegui la teva empremta digital."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Pots desbloquejar el dispositiu amb el rellotge quan no es reconegui la teva cara."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Si configures Desbloqueig facial i Desbloqueig amb empremta digital, el telèfon et demanarà la teva empremta digital quan portis mascareta o quan estiguis en una zona fosca.\n\nLa funció Desbloqueig amb rellotge és una altra manera pràctica de desbloquejar el telèfon (per exemple, quan tens els dits mullats o quan no se\'t reconeix la cara)."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"La funció Desbloqueig amb rellotge és una altra manera pràctica de desbloquejar el telèfon (per exemple, quan no se\'t reconeix l\'empremta digital)."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"La funció Desbloqueig amb rellotge és una altra manera pràctica de desbloquejar el telèfon (per exemple, quan no se\'t reconeix la cara)."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Utilitza l\'empremta digital o el rellotge per"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Utilitza la cara o el rellotge per"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Utilitza la cara, l\'empremta digital o el rellotge per"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Cara i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Cara, empremta digital i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Empremtes digitals, cara i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueig de Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Rellotge afegit"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura el rellotge"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"La funció Desbloqueig amb rellotge és una altra manera pràctica de desbloquejar el telèfon (per exemple, quan tens els dits mullats o quan no se\'t reconeix la cara).\n\nPots utilitzar el rellotge per desbloquejar el telèfon quan:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ara no"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continua"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Més"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Com funciona"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"El rellotge ha d\'estar desbloquejat, al canell i a l\'abast d\'aquest telèfon. No cal que tornis a desbloquejar el rellotge mentre el tinguis al canell."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quan aquest telèfon estigui desbloquejat, rebràs notificacions al rellotge. Si desbloqueges el telèfon sense voler, toca la notificació per tornar-lo a bloquejar."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ets tu qui té el control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Pots suprimir el rellotge de Desbloqueig amb rellotge en qualsevol moment a Configuració"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toca una notificació"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Llisca cap amunt a la pantalla de bloqueig"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Tria el rellotge"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Rellotges disponibles"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel·la"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirma"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Ja està tot a punt!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ara pots utilitzar el rellotge per desbloquejar aquest telèfon quan llisques cap amunt a la pantalla de bloqueig o quan toques una notificació"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Fet"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueig amb rellotge"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Pots utilitzar el rellotge per desbloquejar aquest telèfon quan llisques cap amunt a la pantalla de bloqueig o quan toques una notificació"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Per utilitzar Desbloqueig amb rellotge, el rellotge ha d\'estar desbloquejat, al canell, a l\'abast i connectat a aquest telèfon. Si s\'interromp la connexió, hauràs de desbloquejar el telèfon abans d\'utilitzar Desbloqueig amb rellotge.\n\nInformació important:\nNomés pots tenir un rellotge configurat cada vegada. Per afegir un altre rellotge, abans has de suprimir l\'actual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Més informació sobre Desbloqueig amb rellotge"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Afegeix un rellotge"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Suprimeix el rellotge"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueig facial i amb empremta digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueig facial i amb empremta digital per a la feina"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cal fer la configuració"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Seguretat"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privadesa"</string>
     <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="2274405892301976238">"Mantén les aplicacions privades bloquejades i amagades"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantén les aplicacions privades en un espai separat que puguis amagar o bloquejar"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueig d\'Espai privat"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Pots desbloquejar Espai privat de la mateixa manera que desbloqueges el dispositiu, o triar un altre bloqueig"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Utilitza el bloqueig de pantalla del dispositiu"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueig facial i amb empremta digital"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueig amb empremta digital"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueig facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toca per configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueig amb empremta digital per a l\'espai privat"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueig facial per a l\'espai privat"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Formes de desbloqueig"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"El mateix bloqueig de pantalla que el del dispositiu"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Vols triar un bloqueig nou per a Espai privat?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloqueja automàticament"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloqueja l\'espai privat automàticament"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Pots bloquejar l\'espai privat automàticament si no has utilitzat el dispositiu durant un temps"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Cada vegada que es bloquegi el dispositiu"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Després de 5 minuts d\'inactivitat"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Mai"</string>
+    <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_delete_title" msgid="3075645119800272800">"Suprimeix l\'espai privat"</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="private_space_unlocked" msgid="9091600948712932046">"Espai privat desbloquejat"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defineix un bloqueig de pantalla"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Per utilitzar l\'espai privat, defineix un bloqueig de pantalla en aquest dispositiu"</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="private_space_cancel_label" msgid="379259667396956886">"Cancel·la"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configura"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configura un espai privat"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantén les aplicacions privades en un espai separat que puguis amagar o bloquejar"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Com funciona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Pots accedir a l\'espai privat des del final de la llista d\'aplicacions"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Les apps de l\'espai privat estan protegides amb un bloqueig"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Quan està bloquejat, les notificacions de les aplicacions de l\'espai privat s\'amaguen"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Les aplicacions de l\'espai privat no es mostraran al gestor de permisos, al tauler de privadesa ni en altres opcions de configuració quan l\'espai privat estigui bloquejat.\n\nL\'espai privat no es pot traslladar a un dispositiu nou. Caldrà que configuris un altre espai privat si el vols utilitzar en un altre dispositiu.\n\nQualsevol persona que connecti el teu dispositiu a un ordinador o instal·li aplicacions perjudicials al teu dispositiu podria accedir a l\'espai privat."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"S\'està configurant l\'espai privat…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Quan està bloquejat, les notificacions de les aplicacions de l\'espai privat s\'amaguen"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloqueja l\'espai privat per compartir fotos o fitxers des de les aplicacions de l\'espai"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Algunes aplicacions ja estan instal·lades a l\'espai privat"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"No s\'ha pogut configurar l\'espai privat"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Torna-ho a provar"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Vols utilitzar el bloqueig de pantalla per desbloquejar l\'espai privat?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Pots desbloquejar l\'espai privat de la mateixa manera que desbloqueges el dispositiu, o triar un altre bloqueig"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Utilitza el bloqueig de pantalla"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Tria un bloqueig nou"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tot a punt!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Per accedir a l\'espai privat, ves a la llista d\'aplicacions i desplaça\'t cap avall"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Fet"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Desplaça\'t cap avall per trobar l\'espai privat"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Tria un bloqueig per a l\'espai privat"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Pots desbloquejar l\'espai privat amb l\'empremta digital. Per motius de seguretat, aquesta opció requereix un bloqueig alternatiu."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Defineix un PIN per a l\'espai privat"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Defineix contrasenya per a l\'espai privat"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Defineix un patró per a l\'espai privat"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Per mostrar Espai privat (versió provisional d\'EU)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Obre l\'aplicació Configuració"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Toca Seguretat i privadesa &gt; Espai privat &gt; Amaga Espai privat quan estigui bloquejat"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Desactiva Amaga Espai privat quan estigui bloquejat"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota per a Googlers: el desenvolupament d\'aquesta funció encara està en curs"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Pot ser que també hagis d\'introduir aquesta clau d\'accés a l\'altre dispositiu."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma per vincular amb el conjunt coordinat"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permet l\'accés als contactes i a l\'historial de trucades"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Permet també l\'accés als contactes i a l\'historial de trucades"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"La informació s\'utilitzarà per als avisos de trucades i més"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"No s\'ha pogut connectar amb <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositius disponibles"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Amb el Bluetooth activat, el dispositiu pot comunicar-se amb dispositius Bluetooth a prop"</string>
     <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>
@@ -707,6 +841,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 proporció HDR/SDR"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Mostra la proporció HDR/SDR actual"</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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"En mode d\'avió"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notifica quan es detectin xarxes públiques"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notifica\'m quan hi hagi disponible una xarxa pública d\'alta qualitat"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permet xarxes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP és un protocol de seguretat més antic que és menys segur"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"El teu operador no permet les xarxes WEP perquè són menys segures"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activa la Wi‑Fi automàticament"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"La Wi-Fi es tornarà a activar automàticament prop de xarxes d\'alta qualitat desades, com la de casa teva"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"No disponible perquè la ubicació està desactivada. Activa la "<annotation id="link">"ubicació"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"La cerca de xarxes Wi-Fi permet que les aplicacions i els serveis cerquin xarxes Wi-Fi en qualsevol moment, fins i tot quan la Wi-Fi estigui desactivada. Aquesta opció es pot utilitzar, per exemple, per millorar les funcions i els serveis basats en la ubicació."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activa"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"S\'ha activat la cerca de xarxes Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Aquesta xarxa utilitza un protocol de seguretat més antic que és menys segur"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> s\'ha bloquejat"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Aquesta xarxa utilitza un protocol de seguretat més antic anomenat \"WEP\", que és menys segur. Per connectar-t\'hi de totes maneres, pots permetre les xarxes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"El teu operador no et permet connectar-te a aquesta xarxa perquè utilitza un protocol de seguretat més antic que és menys segur"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permet les xarxes WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Tanca"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opcions avançades"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Llista desplegable Opcions avançades"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"desplega"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Mantén la connexió a la Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"No ho mostris mai més"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connecta"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"La xarxa Wi‑Fi està activada"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"T\'has connectat a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"S\'està connectant a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"S\'està connectant…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"No s\'ha pogut connectar a la xarxa"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"La xarxa està fora de l\'abast"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Oblida"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modifica"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"No s\'ha pogut oblidar la xarxa"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Desa"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"No s\'ha pogut desar la xarxa"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancel·la"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Dades mòbils"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ S\'està carregant"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ S\'està carregant"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Connexió del punt d\'accés Wi-Fi"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Intensitat de connexió"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Xarxes desades"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No s\'ha definit cap contrasenya"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nom del punt d\'accés Wi-Fi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Contrasenya del punt d\'accés Wi-Fi"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda del punt d\'accés"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desactiva el punt d\'accés Wi-Fi automàticament"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Quan no hi ha cap dispositiu connectat"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Amplia la compatibilitat"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Mostra el balanç de blancs"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Des. fotog. seg. pred. per a jocs"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Desactiva la limitació màxima de fotogrames per segon per als jocs a <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La funció Atenció a la pantalla fa servir la càmera frontal per detectar si algú està mirant la pantalla. Només funciona al dispositiu, i les imatges mai no s\'emmagatzemen ni s\'envien a Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activa l\'atenció a la pantalla"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantén la pantalla activada mentre la mires"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Si s\'allarga el temps d\'espera de la pantalla, es consumirà més bateria."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"La càmera està bloquejada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"La càmera ha d\'estar desbloquejada per a la detecció facial"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"La càmera ha d\'estar desbloquejada per accedir a la funció Atenció a la pantalla"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ranura de la SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ranura de la SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Selecciona una xarxa desada per veure-la"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versió de PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivell de la bateria"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Comuna"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configuració comuna"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Desa"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancel·la"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"El camp Nom no pot ser buit."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"L\'APN no pot ser buit."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"El camp MCC ha de tenir 3 dígits."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"El camp MNC ha de tenir 2 o 3 dígits."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"L\'operador no permet afegir APN de tipus %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"El camp MMSC ha de ser vàlid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"S\'està restaurant la configuració predeterminada d\'APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Restableix els valors predeterminats"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"S\'ha restablert la configuració d\'APN predeterminada."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Restableix"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"S\'han restablert el Bluetooth i la Wi‑Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Esborra les eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Aquesta acció no cancel·larà cap dels plans de serveis mòbils. Per baixar targetes SIM de substitució, contacta amb el teu operador."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Restableix la configuració"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Vols restablir totes les opcions de configuració de la xarxa? Aquesta acció no es pot desfer."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vols restablir totes les opcions de configuració de la xarxa i esborrar les eSIM? Aquesta acció no es pot desfer."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Restablir?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"El restabliment de xarxa no està disponible per a aquest usuari"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"S\'ha restablert la configuració de la xarxa"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"No es poden esborrar les targetes SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Les eSIM no s\'han pogut esborrar a causa d\'un error.\n\nReinicia el dispositiu i torna-ho a provar."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Esborra totes les dades (restabliment de fàbrica)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Esborra totes les dades (restabliment dades fàbrica)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"La música"</li>\n<li>"Les fotos"</li>\n<li>"Altres dades d\'usuari"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"No es cancel·larà el teu pla de serveis mòbils."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Se suprimiran tota la teva informació personal i les aplicacions baixades. Aquesta acció no es pot desfer."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Se suprimirà tota la teva informació personal, incloses les targetes SIM i les aplicacions que hagis baixat. Aquesta acció no es pot desfer."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vols esborrar totes les dades?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"El restabliment de fàbrica no està disponible per a aquest usuari"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"S\'està esborrant"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Punt d\'accés Wi‑Fi, USB, Bluetooth i Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"No s\'està compartint la connexió a Internet amb altres dispositius"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desactivat"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Compartició de xarxa"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"No utilitzis el punt d\'accés Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Comparteix Internet només per USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Comparteix Internet només per Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Comparteix Internet només per Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Comparteix Internet només per USB i Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Comparteix Internet només per USB i Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Comparteix Internet només per Bluetooth i Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Comparteix Internet només per USB, Bluetooth i Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Compartició de xarxa per USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Compartició de xarxa per Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Compartició de xarxa per Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilitza el punt d\'accés Wi‑Fi i la compartició de xarxa per proporcionar Internet a altres dispositius amb la teva connexió Wi‑Fi o de dades mòbils. Les aplicacions també poden crear un punt d\'accés Wi‑Fi per compartir contingut amb els dispositius propers."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Xarxa mòbil"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Pla mòbil"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplicació d\'SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vols canviar l\'aplicació d\'SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vols fer servir <xliff:g id="NEW_APP">%1$s</xliff:g> en lloc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> com a aplicació d\'SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vols canviar l\'assistent de Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Confirmes que vols fer servir <xliff:g id="NEW_APP">%1$s</xliff:g>, i no pas <xliff:g id="CURRENT_APP">%2$s</xliff:g>, per gestionar les connexions de la xarxa?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Vols fer servir <xliff:g id="NEW_APP">%s</xliff:g> per gestionar les connexions de la xarxa?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador de SIM desconegut"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> no té cap lloc web d\'administració conegut"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insereix la targeta SIM i reinicia"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connecta a Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Sol·licituds d\'ubicació recents"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ubicació per al perfil de treball"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permisos d\'ubicació d\'aplicacions"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Esborra l\'accés"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controls"</string>
     <string name="force_stop" msgid="2681771622136916280">"Força l\'aturada"</string>
+    <string name="archive" msgid="9074663845068632127">"Arxiva"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaura"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Mida de l\'aplicació"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"En emmagatzematge USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"No s\'ha pogut calcular la mida del paquet."</string>
     <string name="version_text" msgid="7628938665256107608">"versió <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mou"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"No s\'ha pogut arxivar"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"S\'ha arxivat <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restauració fallida"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"S\'està restaurant <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Ja hi ha una migració en curs."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"No hi ha prou espai d\'emmagatzematge."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"L\'aplicació no existeix."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclat en pantalla disponible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gestiona els teclats en pantalla"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcions"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilitat"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclat físic"</string>
     <string name="show_ime" msgid="4334255501724746849">"Utilitza el teclat en pantalla"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Mantén-lo en pantalla mentre el teclat físic està actiu"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Tecles de rebot"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Activa les tecles de rebot per millorar l\'accessibilitat del teclat físic"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Tecles permanents"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Activa les tecles permanents per millorar l\'accessibilitat del teclat físic"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tecles de drecera"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra la llista de dreceres"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclats i eines del perfil de treball"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordena pel temps d\'ús"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordena pel darrer ús"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordena per nom de l\'aplicació"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Darrer ús"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Darrer ús"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"mai"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Temps d\'ús"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibilitat"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Configuració d\'accessibilitat"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continua igualment"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel·la"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuració de l\'ampliació"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Amplia amb tres tocs"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Amplia amb una drecera"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Amplia amb una drecera i tres tocs"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Fes doble 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="860548190334486449">"Per iniciar o aturar l\'ampliació, fes doble 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Per utilitzar una funció d\'accessibilitat, llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 3 dits i mantén premut."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Entesos"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Opcions botó d\'accessibilitat"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Configuració del botó"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Drecera a <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Botó d\'accessibilitat"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gest d\'accessibilitat"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Doble toc a la pantalla amb dos dits"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"doble toc a la pantalla amb dos dits"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca ràpidament la pantalla {0,number,integer} vegades amb dos dits"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Fes tres tocs a la pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Més informació sobre els gestos i el botó d\'accessibilitat"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"S\'està utilitzant el botó d\'accessibilitat. El gest no està disponible amb la navegació amb 3 botons."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accedeix ràpidament a les funcions d\'accessibilitat"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Per començar"</b>\n"1. Ves a la configuració d\'accessibilitat.\n2. Selecciona una funció i toca la drecera.\n3. Tria si vols utilitzar un botó o gest per accedir a la funció."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Per començar"</b>\n"1. Ves a la configuració d\'accessibilitat.\n2. Selecciona una funció i toca la drecera.\n3. Tria el botó per accedir a la funció."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Per començar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ves a la configuració d\'accessibilitat.&lt;br/&gt; {1,number,integer}. Selecciona una funció i toca la drecera.&lt;br/&gt; {2,number,integer}. Tria si vols utilitzar un botó o un gest per accedir a la funció.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Per començar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ves a la configuració d\'accessibilitat.&lt;br/&gt; {1,number,integer}. Selecciona una funció i toca la drecera.&lt;br/&gt; {2,number,integer}. Tria el botó per accedir a la funció.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Utilitza el botó o el gest"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Ubicació"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Mida"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"El botó d\'engegada penja"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Punter de ratolí gran"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Fes que el punter del ratolí sigui més visible"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Enfosqueix les aplicacions"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Per a les apps que no tinguin tema fosc. Algunes poden tenir problemes, com ara colors invertits."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Suprimeix les animacions"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Redueix el moviment a la pantalla"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Àudio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pot fer un seguiment de les teves interaccions amb una aplicació o un sensor de maquinari, i interaccionar amb aplicacions en nom teu."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permet"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denega"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Atura"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancel·la"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Vols aturar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Si toques <xliff:g id="STOP">%1$s</xliff:g>, <xliff:g id="SERVICE">%2$s</xliff:g> s\'aturarà."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactiva"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mantén"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vols desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No hi ha cap servei instal·lat"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No s\'ha seleccionat cap servei"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No s\'ha proporcionat cap descripció."</string>
     <string name="settings_button" msgid="2195468788019730377">"Configuració"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilitat a la llum, fotofòbia, tema fosc, migranya, mal de cap, mode de lectura, mode nocturn, redueix la brillantor, punt blanc"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"fàcil d\'utilitzar, fàcil accés, assistència, suport"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visió, audició, invident, sord, motricitat, destresa, suport, assistència, facilitat d\'ús, facilitat d\'accés, mà, ajuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ampliador de finestres, zoom, ampliació, poca visió, ampliar, fer més gran"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"subtítols, transcripció instantània, deficiències auditives, pèrdua auditiva, CART, parla a text, subtítol"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contrast de color"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, ratolí"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"audiòfons, deficiències auditives, pèrdua d\'audició, implants coclears, dispositius d\'amplificació, processadors de so"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motricitat, ratolí, ratolí extern, ratolí de cap, ratolí adaptatiu, cadira de rodes, palanca de control"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"audiòfons, deficiències auditives, pèrdua d\'audició, implants coclears, dispositius d\'amplificació, processadors de so, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"deficiències auditives, pèrdua auditiva, subtítols, teletip, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destresa, motricitat, sènior, artritis, rsi, accident cerebrovascular, tremolor, esclerosi múltiple, paràlisi cerebral, tremolors, lesió per moviment repetitiu, mà"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retard, destresa, sènior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impressió"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivat"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servei d\'impressió activat}other{# serveis d\'impressió activats}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Mostra les aplicacions que més bateria utilitzen"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"La càrrega s\'ha optimitzat per protegir la bateria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Per ajudar-te a allargar la vida útil de la bateria, la càrrega s\'ha optimitzat"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"La càrrega s\'ha optimitzat per protegir la bateria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Per ajudar-te a allargar la vida útil de la bateria, la càrrega s\'optimitzarà mentre el dispositiu estigui acoblat"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"La càrrega s\'ha optimitzat per protegir la bateria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Per ajudar-te a allargar la vida útil de la bateria, la càrrega s\'optimitzarà mentre el dispositiu estigui acoblat"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"S\'està carregant completament"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Per protegir la bateria, la càrrega s\'optimitzarà la pròxima vegada que la tauleta s\'acobli"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Més informació sobre la càrrega en pausa"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Reprèn la càrrega"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclou l\'activitat en segon pla que consumeix molta bateria"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Suprimeix"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancel·la"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Carrega completament"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema relacionat amb l\'accessori de càrrega"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Més informació sobre la càrrega incompatible"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gestor de bateria"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gestiona les aplicacions automàticament"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ara"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gràfic de l\'ús de la bateria"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gràfic de l\'ús diari de la bateria"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gràfic de l\'ús de la bateria per hores"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Percentatge del nivell de bateria de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> a <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Ús de la bateria des de la darrera càrrega completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Ús de la bateria: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Temps de connexió des de la darrera càrrega completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Senyal de trucada d\'emergència"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Defineix el comportament quan es fa una trucada d\'emergència"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Còpia de seguretat"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activada"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desactivat"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Còpia de seguretat i restauració"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dades personals"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Còpia de seguretat de les meves dades"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nom"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipus"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adreça del servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Encriptació PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Secret L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador d\'IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Clau precompartida d\'IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificat d\'usuari IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificat de CA d\'IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificat de servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostra opcions avançades"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Dominis de cerca DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidors DNS (p. ex., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rutes de desviació (p. ex., 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nom d\'usuari"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Contrasenya"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Desa la informació del compte"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(no utilitzat)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(no comprovis el servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(rebut del servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Aquest tipus de VPN no pot estar connectat en tot moment"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Una VPN sempre activada només admet adreces de servidor numèriques"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"S\'ha d\'especificar un servidor DNS per a una VPN sempre activada"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Les adreces del servidor DNS han de ser numèriques per a una VPN sempre activada"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"La informació indicada no és compatible amb una VPN sempre activada"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancel·la"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ignora"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloqueja les connexions sense VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"La connexió VPN ha de ser obligatòria?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"No és segura. Actualitza a una VPN IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"No s\'ha pogut iniciar la VPN no admesa."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN per estar-hi sempre connectat. El trànsit de la xarxa només es permetrà quan estiguis connectat a aquesta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Cap"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Per tenir la VPN sempre activada cal una adreça IP per al servidor i per al DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertes AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Rep butlletins sobre segrestos infantils."</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetició"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Activació del gestor de trucades"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permet que aquest servei gestioni com es fan les trucades."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gestor de trucades"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertes d\'emergència sense fil"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operadors de xarxa"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Noms dels punts d\'accés"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"paga, toca, pagaments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"còpia de seguretat, crear una còpia de seguretat"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gest"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"desbloqueig, facial, autenticació, iniciar la sessió"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"desbloqueig, facial, autentificació, iniciar la sessió, empremta digital, biometria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versió de prl, versió de software d\'imei"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Sons d\'inici"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtítols instantanis"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Subtitula el contingut multimèdia automàticament"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altaveus del telèfon"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Altaveus de la tauleta"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Altaveus del dispositiu"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Auriculars amb cable"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"L\'àudio dels continguts multimèdia compatibles esdevé més immersiu"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Desactivat"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Què vols que es mostri a la pantalla de bloqueig?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Les converses recents s\'han suprimit"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"S\'ha suprimit la conversa"</string>
     <string name="clear" msgid="5092178335409471100">"Esborra"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Esborra <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Les converses que hagis marcat com a prioritàries o en què hagis fet canvis es mostraran aquí"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Quan marquis una conversa com a prioritària, o quan facis qualsevol altre canvi en una conversa, es mostrarà aquí. \n\nPer canviar la configuració de les converses:\nllisca cap avall des de la part superior de la pantalla per obrir l\'àrea desplegable i, a continuació, mantén premuda una conversa."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimitza"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desactivat"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fixació d\'aplicacions"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"La fixació d\'aplicacions permet mantenir l\'aplicació actual visible fins que es deixa de fixar. Aquesta funció serveix, per exemple, perquè un amic de confiança pugui jugar a un joc concret."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Quan una aplicació està fixada, pot obrir-ne d\'altres i accedir a les dades personals. \n\nPer utilitzar la fixació d\'aplicacions: 	\n1. Activa la fixació d\'aplicacions. 	\n2. Obre Aplicacions recents. 	\n3. Toca la icona de l\'aplicació a la part superior de la pantalla i, a continuació, toca Fixa."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Quan una aplicació està fixada, pot obrir-ne d\'altres i accedir a les dades personals. \n\nSi vols compartir el teu dispositiu amb algú de manera segura, prova d\'utilitzar un usuari convidat. \n\nPer utilitzar la fixació d\'aplicacions: 	\n1. Activa la fixació d\'aplicacions. 	\n2. Obre Aplicacions recents. 	\n3. Toca la icona de l\'aplicació a la part superior de la pantalla i, a continuació, toca Fixa."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Quan una aplicació està fixada, pot obrir-ne d\'altres i accedir a les dades personals. \n\nPer utilitzar la fixació d\'aplicacions: 	\n{0,number,integer}. Activa la fixació d\'aplicacions. 	\n{1,number,integer}. Obre Aplicacions recents. 	\n{2,number,integer}. Toca la icona de l\'aplicació a la part superior de la pantalla i, a continuació, toca Fixa."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Quan una aplicació està fixada, pot obrir-ne d\'altres i accedir a les dades personals. \n\nSi vols compartir el teu dispositiu amb algú de manera segura, prova d\'utilitzar un usuari convidat. \n\nPer utilitzar la fixació d\'aplicacions: 	\n{0,number,integer}. Activa la fixació d\'aplicacions. 	\n{1,number,integer}. Obre Aplicacions recents. 	\n{2,number,integer}. Toca la icona de l\'aplicació a la part superior de la pantalla i, a continuació, toca Fixa."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Quan es fixa una aplicació: \n\n•		Es pot accedir a les dades personals \n		(com ara els contactes i el contingut dels correus electrònics). \n•		L\'aplicació fixada pot obrir altres aplicacions. \n\nUtilitza la fixació d\'aplicacions només amb gent de confiança."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Sol·licita el patró de desbloqueig per deixar de fixar"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Demana el PIN per deixar de fixar"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Configuració d\'aplicació no utilitzada"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Posa en pausa l\'activitat a l\'aplicació quan no s\'utilitza"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Suprimeix els permisos i els fitxers temporals, i atura les notificacions"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gestiona l\'aplicació si no s\'utilitza"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Suprimeix els permisos i els fitxers temporals, atura les notificacions i arxiva l\'aplicació"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Totes les aplicacions"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Aplicacions instal·lades"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplicacions instantànies"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Memòria disponible"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memòria utilitzada per les aplicacions"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplicació ha utilitzat la memòria durant els darrers {time}}other{# aplicacions han utilitzat la memòria durant els darrers {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Activa elaboració perfils d\'ús de memòria"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"L\'elaboració de perfils d\'ús de memòria requereix recursos del sistema addicionals."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Elaboració de perfils de memòria desactivada"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Freqüència"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Ús màxim"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No s\'han utilitzat dades"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Mostra sobre altres aplicacions"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permet mostrar sobre altres aplicacions"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permet que aquesta aplicació es mostri a sobre de les altres aplicacions que estiguis utilitzant. L\'aplicació podrà veure on toques i canviar el que es mostra en pantalla."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Canvia la sortida multimèdia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permet que l\'app canviï la sortida multimèdia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permet que aquesta aplicació triï quin dispositiu connectat reprodueix àudio o vídeo des d\'altres aplicacions. Si té el permís, l\'aplicació pot accedir a una llista de dispositius disponibles, com ara auriculars i altaveus, i triar quin dispositiu de sortida s\'utilitza per reproduir o emetre àudio o vídeo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Accés a tots els fitxers"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Millora l\'activació per veu"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Aquest dispositiu utilitza informació privada per millorar el model d\'activació per veu. Les aplicacions poden rebre informació actualitzada resumida que s\'agrega a la de molts usuaris per mantenir la privadesa mentre es millora el model per a tothom.\n\n"<a href="">"Més detalls sobre la informació privada"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Advertiment de dades: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Límit de dades: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advertiment de dades: <xliff:g id="ID_1">^1</xliff:g> / Límit de dades: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"El recompte de dades de l\'operador de telefonia mòbil pot ser diferent del calculat pel dispositiu"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"No inclou les dades que utilitzen les xarxes d\'operadors"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Dades utilitzades: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Defineix l\'advertiment de dades"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Actualitzat fa <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Actualitzat per <xliff:g id="ID_1">^1</xliff:g> ara mateix"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Actualitzat ara mateix"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Mostra el pla"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Mostra els detalls"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Estalvi de dades"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dades sense restricció"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia en l\'ús de la bateria"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Icones de configuració ràpida per a desenvolupadors"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Desactiva el temps d\'espera per a autoritzacions adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Desactiva la revocació automàtica d\'autoritzacions adb per als sistemes que no s\'han tornat a connectar durant el temps predeterminat (7 dies) o el temps configurat per l\'usuari (mínim 1 dia)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Traça de Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensors desactivats"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Configuració del perfil de treball"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Cerca contactes del directori de la feina a les apps personals"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Llisca cap amunt des d\'un extrem inferior per invocar l\'aplicació de l\'assistent digital"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Servei d\'emplenament automàtic"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Servei d\'emplenament automàtic predeterminat"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Contrasenyes"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Serveis de contrasenyes, claus d\'accés i dades"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Proveïdors addicionals"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contrasenya}other{# contrasenyes}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automàtic, emplenament, emplenament automàtic, contrasenya"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Serveis de contrasenyes, claus d\'accés i dades"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Vols desactivar tots els serveis?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les contrasenyes, les claus d\'accés i altres dades desades no estaran disponibles per a l\'emplenament automàtic quan iniciïs la sessió."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Vols canviar el teu proveïdor de serveis preferit 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; 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_enable_confirmation_message_title" msgid="1037501792652277829">"Vols utilitzar %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Només pots tenir 5 serveis activats"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desactiva almenys 1 servei per afegir-ne un altre"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s fa servir el que es mostra a la pantalla per determinar què es pot emplenar automàticament."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Límit de serveis de contrasenyes, claus d\'accés i dades"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Pots tenir fins a 5 serveis de contrasenyes, claus d\'accés i dades actius alhora. Desactiva un servei per afegir-ne més."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Límit de contrasenyes, claus d\'accés i serveis de dades"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Pots tenir fins a 5 contrasenyes, claus d\'accés i serveis de dades actius alhora. Desactiva un servei per afegir-ne més."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactiva"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Emplenament automàtic"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivell de registre"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Els canvis en la compatibilitat de les aplicacions només poden modificar-se a les aplicacions depurables. Instal·la una aplicació depurable i torna-ho a provar."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depèn d\'una altra opció de configuració"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Compte"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d comptes"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nom del dispositiu"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informació bàsica"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legislació i normativa"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permet que aquesta aplicació s\'iniciï en escanejar una etiqueta NFC.\nSi aquest permís està activat, l\'aplicació estarà disponible com una opció quan es detecti una etiqueta."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reprodueix contingut multimèdia a"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reprodueix <xliff:g id="LABEL">%s</xliff:g> a"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"L\'àudio es reproduirà a"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Aquest dispositiu"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"No està disponible durant les trucades"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Accepta la trucada a"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Silencia"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Per activar la funció, al menú d\'engegada, primer canvia l\'opció Mantén premut el botó d\'engegada."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalls de la xarxa"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"El nom del dispositiu és visible per a les aplicacions del telèfon. 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="devices_title" msgid="649715719278562515">"Dispositius"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Tria una xarxa"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Desconnectada"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nom"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Color (utilitzat en aplicacions compatibles)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Desa"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Utilitza la SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Utilitza aquesta SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desactivat"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Per desactivar aquesta SIM, extreu-la"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Toca per activar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Esborra la targeta SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipus de xarxa preferent"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Canvia el mode de funcionament de la xarxa"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipus de xarxa preferent"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Contacta amb el proveïdor de xarxa per saber els preus."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Ús de dades de l\'aplicació"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"El mode de xarxa <xliff:g id="NETWORKMODEID">%1$d</xliff:g> no és vàlid. Ignora."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Noms de punts d\'accés"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"No està disponible quan està connectat a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vols canviar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vols utilitzar la targeta SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Vols utilitzar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Només pot haver-hi una SIM activa.\n\nSi canvies a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, el teu servei amb <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> no es cancel·larà."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Només pot haver-hi 1 eSIM activa alhora.\n\nEncara que canviïs a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, el teu servei amb <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> no es cancel·larà."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Només pot haver-hi una SIM activa.\n\nSi canvies de SIM, el teu servei amb <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> no es cancel·larà."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Pots utilitzar 2 SIM alhora. Per utilitzar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desactiva una altra SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Canvia a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desactiva <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, gràcies"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancel·la"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Canvia"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desactiva"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"No s\'ha pogut activar la SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prova de tornar a activar la SIM. Si el problema continua, reinicia el dispositiu."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configura la SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Defineix les teves preferències de xarxa mòbil per utilitzar diverses SIM en aquest dispositiu"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etiqueta les teves SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Veuràs aquestes etiquetes quan facis trucades, enviïs missatges de text i utilitzis dades, i a Configuració"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etiqueta de la SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiqueta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Tria quines SIM vols utilitzar"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Pots utilitzar 2 SIM alhora"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Defineix les SIM principals"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Tria quines SIM vols utilitzar de manera predeterminada per fer trucades, enviar missatges de text i utilitzar dades"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Les teves SIM principals"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Trucades"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Missatges de text"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Canvi de dades automàtic"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Utilitza dades de qualsevol de les SIM en funció de la cobertura i la disponibilitat"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Només dades"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configura"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Següent"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Xarxa mòbil"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de telèfon"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Etiqueta i color de la SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activació de la xarxa"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Canvi d\'operador"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> està actiu"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Per utilitzar les dades mòbils, les funcions de trucada i els SMS més tard, ves a la configuració de xarxa."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vols esborrar aquesta eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Si esborres aquesta targeta SIM, el servei de l\'operador <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> se suprimirà del dispositiu.\n\nEl servei de l\'operador <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> no es cancel·larà."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Esborra"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"S\'està esborrant la SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"No es pot esborrar la SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"No s\'ha pogut esborrar la targeta SIM a causa d\'un error.\n\nReinicia el dispositiu i torna-ho a provar."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connexió al dispositiu"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"L\'aplicació <xliff:g id="APPNAME">%1$s</xliff:g> vol fer servir una xarxa Wi‑Fi temporal per connectar-se al teu dispositiu"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No s\'ha trobat cap dispositiu. Comprova que els dispositius estiguin activats i disponibles per connectar-s\'hi."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Trucades d\'emergència"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"El teu operador de telefonia mòbil no permet fer trucades d\'emergència a través de la funció Trucades per Wi‑Fi.\nEl dispositiu canvia automàticament a una xarxa mòbil per fer una trucada d\'emergència.\nNomés es poden fer trucades d\'emergència en zones amb cobertura mòbil."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Fes trucades amb Wi‑Fi per augmentar-ne la qualitat"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Trucades alternatives"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Si <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> no està disponible o està en itinerància, utilitza la SIM de dades mòbils per trucar amb <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"trucades alternatives"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Missatge MMS entrant"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"No es pot enviar el missatge MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Toca per permetre els missatges MMS amb <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> quan les dades mòbils estiguin desactivades"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informació de les teves polítiques professionals"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Configuració gestionada per l\'administrador de TI"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Inicia amb pàgines de 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Inicia amb un nucli compatible amb pàgines de 16 kB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Vols reiniciar amb un nucli compatible amb pàgines de 16 kB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ADVERTIMENT: és possible que algunes aplicacions no siguin compatibles amb aquest mode. El dispositiu es reiniciarà després de la confirmació."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Vols reiniciar amb un nucli compatible amb pàgines de 4 kB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"El dispositiu es reiniciarà després de la confirmació."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"No s\'ha pogut actualitzar el nucli a un compatible amb pàgines de 16 kB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"S\'està aplicant el canvi"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Gestor d\'informes d\'errors"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina quina aplicació gestiona la drecera de l\'informe d\'errors al dispositiu."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Per reprendre la reproducció ràpidament, el reproductor multimèdia continua obert a la configuració ràpida"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostra el contingut multimèdia a la pantalla de bloqueig"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Per reprendre la reproducció ràpidament, el reproductor multimèdia continua obert a la pantalla de bloqueig"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostra les recomanacions multimèdia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostra recomanacions de contingut multimèdia de l\'Assistent"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"A partir de la teva activitat"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Amaga el reproductor"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostra el reproductor"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Activa"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactiva"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Predeterminada per a <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"trucades"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"L\'àudio dels continguts multimèdia compatibles esdevé més immersiu"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguiment del cap"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"L\'àudio canvia a mesura que mous el cap per sonar més natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sincronitza els permisos"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Concedeix a <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> els mateixos permisos de l\'aplicació que has permès a <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronitza els permisos des del telèfon"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Concedeix al rellotge els mateixos permisos de l\'aplicació que has permès en aquest telèfon"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipus de dispositiu d\'àudio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconegut"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altaveu"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Mitjà"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alt"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aquesta aplicació només pot obrir-se en 1 finestra"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activada"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desactivada"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desactivada"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desactivada"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Activat"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desactivat"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Activada"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desactivada"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Enfosqueix les pantalles clares i aclareix les fosques"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Amplia la pantalla"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desactivat"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desactivat"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Activat"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivat"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Activat"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"S\'ha configurat la contrasenya"</string>
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index c0b73a5..13706ff 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index c405019..0bba63e 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Voilà! Stal se z vás vývojář."</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Není potřeba, již jste vývojář."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Nejprve prosím aktivujte možnosti pro vývojáře."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"K nastavením pro vývojáře mají přístup jen administrativní uživatelé."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Systém"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"V provozu"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Mimo provoz"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Když zařízení složíte, přední displej se zapne"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Pouze hry, videa a další"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"U aplikací, které obrazovce brání v přechodu do režimu nečinnosti, se zapne přední displej"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Pokračujte přejetím"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Složte telefon a přejeďte po předním displeji nahoru, aby bylo možné aplikaci dál používat, nebo pár sekund počkejte, než se obrazovka zamkne"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nikdy"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Když zařízení složíte, přední displej se uzamkne"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Automaticky otáčet obrazovku"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Související"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Vyzvánění a budíky"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zvuk během hovorů"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Média"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Oznámení a jiné systémové zvuky"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Zvuky médií a systémové zvuky"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Oznámení"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Ve výchozím nastavení určují zvukový výstup jednotlivé aplikace"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Nepojmenované zařízení Bluetooth"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Hledání"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth je zapnuto"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Zobrazit vše"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Zobrazit vše"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Dotykové pero"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Stisknutí tlačítka dotykového pera"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (pracovní profil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Připojení ke zvukovému streamu LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Okolní zvukové streamy"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Zvukové streamy"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Připojení ke zvukovému streamu pomocí QR kódu"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nebyly nalezeny žádné zvukové streamy v okolí."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pokud chcete zvolit jazyk jednotlivých aplikací, přejděte do nastavení jazyka aplikace."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Další informace o jazycích aplikací"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Změnit jazyk systému na %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Přidat jazyk %s k preferovaným jazykům?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Aplikace a weby budou vědět, že také preferujete tento jazyk."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Změní se nastavení vašeho zařízení a regionální preference."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Změnit"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s není k dispozici"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"sobota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Pokud aplikace regionální preference nepodporuje, použije výchozí nastavení národního prostředí."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Další informace o jazykových preferencích"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Další předvolby"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Způsob oslovení"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Jak chcete být oslovováni"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikace vás může oslovovat tak, jak jí určíte."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Neurčeno"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Žena"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Muž"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutrální"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Odstranit vybraný jazyk?}few{Odstranit vybrané jazyky?}many{Odstranit vybrané jazyky?}other{Odstranit vybrané jazyky?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text se bude zobrazovat v jiném jazyce."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nelze odstranit všechny jazyky"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Poloha"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Používat polohu"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Vypnuto"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Zapnuto – k poloze má přístup # aplikace}few{Zapnuto – k poloze mají přístup # aplikace}many{Zapnuto – k poloze má přístup # aplikace}other{Zapnuto – k poloze má přístup # aplikací}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Zapnuto – # aplikace má přístup k poloze}few{Zapnuto – # aplikací má přístup k poloze}many{Zapnuto – # aplikací má přístup k poloze}other{Zapnuto – # aplikací má přístup k poloze}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Načítání…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikace s oprávněním pro přístup k zařízením v okolí mohou zjišťovat relativní polohu připojených zařízení."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Přístup aplikací a služeb k poloze je vypnutý. Poloha zařízení může být přesto odesílána záchranářům, když vytočíte číslo tísňového volání nebo na něj pošlete SMS."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Přečtěte si další informace o nastavení polohy."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Další informace o nastavení polohy"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Pokud chcete změnit přístup k poloze, přejděte do Nastavení &gt; Zabezpečení a ochrana soukromí &gt; Nastavení ochrany soukromí"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Nejlepších výsledků dosáhnete s ochranou displeje, která má certifikát Made for Google. S ostatními ochranami displeje nemusí otisk prstu dítěte fungovat."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Odemknutí pomocí hodinek"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Pokud budete mít při odemykání obličejem zakrytou tvář nebo bude vaše okolí tmavé, telefon bude žádat o nasnímání otisku prstu.\n\nPokud nerozpozná váš obličej nebo otisk, můžete ho odemknout hodinkami."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Telefon můžete odemknout hodinkami, pokud nerozpozná váš otisk prstu."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Telefon můžete odemknout hodinkami, pokud nerozpozná váš obličej."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Když nastavíte odemknutí obličejem a otiskem prstu, bude telefon žádat o zadání otisku prstu, pokud budete mít zakrytou tvář nebo budete v tmavém prostředí.\n\nOdemknutí pomocí hodinek je další pohodlný způsob, jak odemknout telefon, například když máte mokré prsty nebo když nerozpozná váš obličej."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Odemknutí pomocí hodinek je další pohodlný způsob, jak odemknout telefon, například když rozpozná váš otisk prstu."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Odemknutí pomocí hodinek je další pohodlný způsob, jak odemknout telefon, například když nerozpozná váš obličej."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Použít otisk prstu nebo hodinky k"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Použít obličej nebo hodinky k"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Použít obličej, otisk prstu nebo hodinky k"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obličej a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obličej, otisk prstu a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obličej, otisky prstů a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odemknutí pomocí nástroje Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Hodinky byly přidány"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavení hodinek"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odemknutí pomocí hodinek je další pohodlný způsob, jak tento telefon odemknout, například když máte mokré prsty nebo když nerozpozná váš obličej.\n\nPomocí hodinek můžete tento telefon odemknout, když:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Teď ne"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Pokračovat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Další možnosti"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Jak to funguje"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Hodinky musí být odemknuté, nasazené na ruce a v dosahu telefonu. Nasazené hodinky nebudete muset znovu odemykat."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Když se telefon odemkne, obdržíte na hodinky oznámení. Pokud byl odemknutý, aniž byste to chtěli, klepnutím na oznámení ho můžete znovu zamknout."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vše máte ve svých rukou"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Hodinky můžete z odemykání pomocí hodinek kdykoli odstranit v Nastavení"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Klepněte na oznámení"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Přejeďte po obrazovce uzamčení nahoru"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Vyberte své hodinky"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupné hodinky"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Zrušit"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdit"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"A je to."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Když po obrazovce uzamčení přejedete prstem nahoru nebo klepnete na oznámení, můžete nyní tento telefon odemknout pomocí hodinek"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hotovo"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Odemknutí pomocí hodinek"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Když po obrazovce uzamčení přejedete prstem nahoru nebo klepnete na oznámení, můžete tento telefon odemknout pomocí hodinek"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"K odemknutí pomocí hodinek musíte být hodinky odemknuté, nasazené na ruce, v dosahu a připojené k tomuto telefonu. V případě přerušení připojení budete odemknutí pomocí hodinek moci používat až poté, co telefon odemknete.\n\nMějte na paměti:\nV jednu chvíli lze mít nastavené jen jedny hodinky. Pokud chcete přidat další hodinky, nejdříve odstraňte ty aktuální."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Další informace o odemknutí pomocí hodinek"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Přidat hodinky"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstranit hodinky"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odemknutí pomocí otisku prstu nebo obličeje"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odemknutí obličejem a otiskem prstu pro práci"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nutné nastavení"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Zabezpečení"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Ochrana soukromí"</string>
     <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="2274405892301976238">"Mějte soukromé aplikace uzamknuté a skryté"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Nechat soukromé aplikace v odděleném prostoru, který můžete skrýt nebo zamknout"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Zámek soukromého prostoru"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Soukromý prostor můžete odemykat stejně, jako odemykáte své zařízení, nebo můžete zvolit jiný zámek"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Použít zámek obrazovky zařízení"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Odemknutí obličejem a otiskem prstu"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Odemknutí otiskem prstu"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Odemknutí obličejem"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Klepnutím nastavíte"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Odemknutí otiskem prstu pro soukromý prostor"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Odemknutí obličejem pro soukromý prostor"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Způsoby odemykání"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Stejný jako zámek obrazovky zařízení"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Vybrat nový zámek pro soukromý prostor?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Zamykat automaticky"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Automaticky zamykat soukromý prostor"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Pokud zařízení nějakou dobu nepoužijete, soukromý prostor se může automaticky zamknout"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Vždy, když se zařízení zamkne"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Po 5 minutách nečinnosti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nikdy"</string>
+    <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_delete_title" msgid="3075645119800272800">"Smazat soukromý prostor"</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="private_space_unlocked" msgid="9091600948712932046">"Odemknutý soukromý prostor"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nastavte zámek obrazovky"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Zrušit"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Nastavit"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Nastavení soukromého prostoru"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Nechat soukromé aplikace v odděleném prostoru, který můžete skrýt nebo zamknout"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Jak to funguje"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Soukromý prostor můžete otevřít ze spodní části seznamu aplikací"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikace v soukromém prostoru jsou chráněny zámkem"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Když je soukromý prostor uzamčen, jsou oznámení aplikací v soukromém prostoru skryta"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"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.\n\nSoukromý prostor nelze přesunout do nového zařízení. Na novém zařízení bude nutné nastavit nový soukromý prostor.\n\nDo soukromého prostoru se může dostat kdokoli, kdo vaše zařízení připojí k počítači nebo nainstaluje škodlivé aplikace."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nastavování soukromého prostoru…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Když je soukromý prostor uzamčen, jsou oznámení aplikací v soukromém prostoru skryta"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Pokud chcete sdílet fotky a soubory z aplikací v soukromém prostoru, odemkněte ho"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Některé aplikace už jsou v soukromém prostoru nainstalované"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Soukromý prostor se nepodařilo nastavit"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Zkusit znovu"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Používat zámek obrazovky k odemknutí s. prostoru?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Soukromý prostor můžete odemykat stejně, jako odemykáte své zařízení, nebo můžete zvolit jiný zámek"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Použít zámek obrazovky"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Zvolit nový zámek"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Hotovo!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Pokud chcete přejít na soukromý prostor, navštivte seznam aplikací a posuňte dolů"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Hotovo"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Soukromý prostor najdete dole"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Vyberte zámek pro pracovní prostor"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Soukromý prostor můžete odemknout otiskem prstu. Z bezpečnostních důvodů tato možnost vyžaduje záložní zámek."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Nastavte PIN pro svůj soukromý prostor"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Nastavte heslo pro svůj soukromý prostor"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Nastavte vzor pro svůj soukromý prostor"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"K zobrazení soukromého prostoru (není konečná verze UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Spusťte aplikaci Nastavení"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Klepněte na Zabezpečení a ochrana soukromí &gt; Soukromý prostor &gt; Při uzamčení soukromý prostor skrýt"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Vypnout přepínač Při uzamčení soukromý prostor skrýt"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Poznámka pro zaměstnance společnosti Google: Vývoj této funkce stále probíhá"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Tento přístupový klíč bude možná nutné zadat i v druhém zařízení."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrďte párování s koordinovanou sadou"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Povolit přístup ke kontaktům a historii volání"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Povolit také přístup ke kontaktům a historii volání"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informace se budou používat k oznamování hovorů a k dalším účelům"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"K zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> se nelze připojit."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupná zařízení"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Při režimu Letadlo"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Upozorňovat na veřejné sítě"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Zobrazit oznámení, když je dostupná kvalitní veřejná síť"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Povolit sítě WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP je starší bezpečnostní protokol, který je méně bezpečný"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Váš operátor sítě WEP nepovoluje, protože jsou méně bezpečné"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Zapínat Wi-Fi automaticky"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"V dosahu kvalitních uložených sítí, jako je například vaše domácí síť, se Wi-Fi znovu zapne"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nedostupné, protože je vypnuto určování polohy. Zapněte "<annotation id="link">"určování polohy"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Tato funkce umožňuje aplikacím a službám vyhledávat sítě Wi-Fi kdykoli, i když je připojení Wi‑Fi vypnuté. Lze tak například zlepšit funkce a služby závislé na poloze."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Zapnout"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Vyhledávání Wi‑Fi je zapnuto"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Tato síť používá starší bezpečnostní protokol, který je méně bezpečný"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Síť <xliff:g id="NAME">%1$s</xliff:g> je blokována"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Tato síť používá starší bezpečnostní protokol nazývaný WEP, který je méně bezpečný. Pokud se přesto chcete připojit, můžete povolit sítě WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Váš operátor připojení k této síti nepovoluje, protože používá starší bezpečnostní protokol, který je méně bezpečný"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Povolit WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zavřít"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Rozšířené možnosti"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Rozbalovací seznam Pokročilé možnosti"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"rozbalit"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Zůstat na Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Již nikdy nezobrazovat"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Připojit"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Připojení Wi-Fi je zapnuto"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Připojeno k <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Připojování k síti <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Připojování…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Připojení k síti se nezdařilo."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Síť není v dosahu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Zapomenout"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Upravit"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Zapomenutí sítě se nezdařilo."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Uložit"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Uložení sítě se nezdařilo."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Zrušit"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobilní data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – nabíjí se"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – nabíjí se"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Připojení přes hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Síla připojení"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Uložené sítě"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Není nastaveno žádné heslo"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Název hotspotu"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Heslo hotspotu"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Pásmo přístupového bodu"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspot automaticky vypínat"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Když nejsou připojena žádná zařízení"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Rozšířit kompatibilitu"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Vyvážení bílé na obrazovce"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Deaktivovat výchozí snímkovou frekvenci her"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Deaktivovat omezení snímkové frekvence her na maximálně <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Plynulý obraz"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkce vnímavá obrazovka dokáže pomocí přední kamery určit, zda se někdo na obrazovku dívá. Data se zpracovávají v zařízení a snímky se nikdy neukládají ani neodesílají do Googlu."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Zapnutí vnímavé obrazovky"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Nechat obrazovku zapnutou, když na ni koukáte"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Delší interval vypnutí obrazovky bude spotřebovávat víc baterie"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparát je uzamčený"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Při rozpoznávání obličeje musí být fotoaparát odemknutý"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Při použití vnímavé obrazovky musí být fotoaparát odemknutý"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot na SIM kartu <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot na SIM kartu <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primární)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"K zobrazení je potřeba vybrat uloženou síť."</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Verze PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Stav baterie"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Komunální"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Komunální nastavení"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Uložit"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Zrušit"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Pole Jméno nesmí být prázdné."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Název přístupového bodu nesmí být prázdný."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Pole MCC musí obsahovat 3 číslice."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Pole MNC musí obsahovat 2 nebo 3 číslice."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operátor přidání přístupových bodů typu %s neumožňuje."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Pole MMSC musí být platné."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Obnovování výchozích nastavení přístupového bodu"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Obnovit výchozí"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Výchozí nastavení přístupového bodu bylo obnoveno."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Resetovat"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth a Wi-Fi byly resetovány"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Vymazat eSIM karty"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Tímto krokem nezrušíte mobilní tarif. Pokud chcete stáhnout náhradní SIM karty, obraťte se na svého operátora."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Resetovat nastavení"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Chcete resetovat všechna nastavení sítí? Tuto akci nelze vrátit zpět."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Resetovat všechna nastavení sítě a vymazat eSIM karty? Tuto akci nebude možné vrátit."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Obnovit nastavení?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Pro tohoto uživatele resetování sítě není k dispozici"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Nastavení sítí bylo resetováno"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM karty nelze vymazat"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM kartu nelze vymazat z důvodu chyby.\n\nRestartujte zařízení a zkuste to znovu."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Vymazat data (tovární reset)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Vymazat data (tovární reset)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"hudbu"</li>\n<li>"fotky"</li>\n<li>"další uživatelská data"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Tímto krokem nebude zrušen mobilní tarif."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Všechny osobní údaje a stažené aplikace budou smazány. Tuto akci nelze vrátit zpět."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Budou smazány všechny vaše osobní údaje, včetně stažených aplikací a SIM karet. Tuto akci nelze vrátit zpět."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vymazat všechna data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Pro tohoto uživatele není resetování do továrního nastavení dostupné"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Mazání"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet není sdílen s dalšími zařízeními"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Vypnuto"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nepoužívat Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Sdílet internet pouze přes USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Sdílet internet pouze přes Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Internet sdílet pouze přes Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Sdílet internet pouze přes USB a Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Internet sdílet pouze přes USB a Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Internet sdílet pouze přes Bluetooth a Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Internet sdílet pouze přes USB, Bluetooth a Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering přes USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering přes Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering přes ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Hotspot a tethering umožňují poskytovat internet jiným zařízením prostřednictvím vašeho připojení Wi-Fi nebo vašeho mobilního datového připojení. Hotspot ke sdílení obsahu s okolními zařízeními mohou vytvářet i aplikace."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Nápověda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilní síť"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilní tarif"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikace pro SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Chcete změnit aplikaci SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Chcete pro zprávy SMS používat aplikaci <xliff:g id="NEW_APP">%1$s</xliff:g> místo aplikace <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Změnit asistenta pro Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%1$s</xliff:g> namísto aplikace <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Chcete spravovat síťová připojení pomocí aplikace <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operátor SIM karty není znám"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Operátor <xliff:g id="OPERATOR">%1$s</xliff:g> nemá žádný známý web pro správu účtů"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vložte SIM kartu a restartujte zařízení."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Připojte se prosím k internetu."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedávné žádosti o určení polohy"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Umístění pracovního profilu"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Oprávnění aplikací pro přístup k poloze"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Zrušit přístup"</string>
     <string name="controls_label" msgid="8671492254263626383">"Ovládací prvky"</string>
     <string name="force_stop" msgid="2681771622136916280">"Vynutit ukončení"</string>
+    <string name="archive" msgid="9074663845068632127">"Archivovat"</string>
+    <string name="restore" msgid="7622486640713967157">"Obnovit"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Celkem"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Velikost aplikace"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikace úložiště USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nepodařilo se určit velikost balíčku."</string>
     <string name="version_text" msgid="7628938665256107608">"verze <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Přesunout"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archivování se nezdařilo"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archivováno: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Obnovení se nezdařilo"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Obnovování aplikace <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Probíhá jiná migrace."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nedostatek místa v úložišti."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikace neexistuje."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Dostupná softwarová klávesnice"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Spravovat softwarové klávesnice"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Přístupnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnice"</string>
     <string name="show_ime" msgid="4334255501724746849">"Použít softwarovou klávesnici"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Ponechat na obrazovce, když je aktivní fyzická klávesnice"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Ignorovat opakovaná stisknutí"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Usnadnit používání fyzické klávesnice ignorováním opakovaných stisknutí"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Jedním prstem"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Usnadnit používání fyzické klávesnice zapnutím funkce Jedním prstem"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klávesové zkratky"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Zobrazit seznam zkratek"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klávesnice a nástroje v pracovním profilu"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Seřadit podle času použití"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Seřadit podle posl. použití"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Seřadit podle názvu aplikace"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Naposledy použito"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Naposledy použito"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nikdy"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Doba použití"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Přístupnost"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Nastavení přístupnosti"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Přesto pokračovat"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Zrušit"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavení zvětšení"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Zvětšení trojitým klepnutím"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Zvětšení zkratkou"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Zvětšení zkratkou a trojitým klepnutím"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Otevření provedete dvojitý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="860548190334486449">"Zvětšení aktivujete nebo deaktivujete dvojitý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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Funkce pro usnadnění přístupu 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Nastavení tlačítka přístupnosti"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Nastavení tlačítka"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> – zkratka"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Tlačítko přístupnosti"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto přístupnosti"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dvakrát klepněte na obrazovku dvěma prsty"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dvakrát klepněte na obrazovku dvěma prsty"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Rychle {0,number,integer}krát klepněte na obrazovku dvěma prsty"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trojité klepnutí na obrazovku"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Další informace o tlačítku a gestu přístupnosti"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Použije se tlačítko přístupnosti. Toto gesto není k dispozici u navigace třemi tlačítky."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Rychlý přístup k funkcím pro usnadnění přístupu"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Jak začít"</b>\n"1. Přejděte na nastavení přístupnosti.\n2. Vyberte funkci a klepněte na zkratku.\n3. Vyberte, zda chcete pro přístup k funkci používat tlačítko, nebo gesto."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Začněte takto"</b>\n"1. Přejděte na nastavení přístupnosti.\n2. Vyberte funkci a klepněte na zkratku.\n3. Vyberte tlačítko, které chcete použít pro přístup k funkci."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Jak na to&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Přejděte do nastavení přístupnosti&lt;br/&gt; {1,number,integer}. Vyberte funkci a klepněte na zkratku&lt;br/&gt; {2,number,integer}. Vyberte tlačítko nebo gesto, které chcete použít pro přístup k funkci&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Jak na to&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Přejděte do nastavení přístupnosti&lt;br/&gt; {1,number,integer}. Vyberte funkci a klepněte na zkratku&lt;br/&gt; {2,number,integer}. Vyberte tlačítko, které chcete použít pro přístup k funkci&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Používat tlačítko nebo gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Umístění"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Velikost"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Vypínač ukončí hovor"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Velký kurzor myši"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Zvýraznit ukazatel myši"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Nastavit všechny jako tmavé"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Platí pro aplikace bez vlastního tmavého motivu. V některých se můžou vyskytnout problémy."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Odstranit animace"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Omezit pohyb na obrazovce"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Zvuk mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Služba může sledovat vaše interakce s aplikací nebo hardwarovým senzorem a komunikovat s aplikacemi namísto vás."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povolit"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zakázat"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Ukončit"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Zrušit"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Vypnout funkci <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Klepnutím na <xliff:g id="STOP">%1$s</xliff:g> ukončíte službu <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnout"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nevypínat"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vypnout službu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Žádná služba není nainstalována"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Není vybrána žádná služba"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"K dispozici není žádný popis."</string>
     <string name="settings_button" msgid="2195468788019730377">"Nastavení"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"citlivost na světlo, fotofobie, tmavý motiv, migréna, bolest hlavy, režim čtení, noční režim, snížení jasu, bílý bod"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Usnadnění přístupu, přístupnost, asistence, asistenční"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"zrak, sluch, nevidomý, neslyšící, pohyb, obratnost, asistenční, asistence, snadné používání, snadný přístup, ruka, pomoc"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Zvětšení oken, velikost zobrazení, zoom, zvětšení, slabozrakost, zvětšit"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Titulky pro neslyšící, skryté titulky, Okamžitý přepis, nedoslýchavost, ztráta sluchu, převod řeči na text, titulky"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"barevný kontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, myš"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"naslouchátka, nedoslýchavost, kochleární implantáty, zesilovací zařízení, zvukové procesory"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"pohyb, myš, externí myš, náhlavní myš, adaptivní myš, invalidní vozík, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"naslouchátka, nedoslýchavost, ztráta sluchu, kochleární implantáty, zesilovací zařízení, zvukové procesory, osobní zesilovač zvuku"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"nedoslýchavost, ztráta sluchu, titulky pro neslyšící, Teletype, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tři tlačítka"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"obratnost, pohyb, senior, artritida, syndrom rsi, mozková mrtvice, třes, roztroušená skleróza, mozková obrna, poškození z opakovaného namáhání, ruka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"prodleva, obratnost, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Tisk"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Vypnuto"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 tisková služba je zapnutá}few{# tiskové služby jsou zapnuté}many{# tiskové služby je zapnutých}other{# tiskových služeb je zapnutých}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Zobrazte aplikace s největším využitím baterie"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Nabíjení je optimalizované za účelem ochrany baterie"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Za účelem prodloužení životnosti baterie je nabíjení optimalizované"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Nabíjení je optimalizované za účelem ochrany baterie"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Za účelem prodloužení životnosti baterie je nabíjení v doku optimalizované"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Nabíjení je optimalizované za účelem ochrany baterie"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Za účelem prodloužení životnosti baterie je nabíjení v doku optimalizované"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Nabíjení do úplného nabití"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Za účelem ochrany baterie bude příští nabíjení v doku optimalizované"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Další informace o pozastavením nabíjení"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Obnovit nabíjení"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Zahrnuje energeticky náročnou aktivitu na pozadí"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Odstranit"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Zrušit"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Úplně nabít"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problém s nabíjecím příslušenstvím"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Další informace o nekompatibilním nabíjení"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Správce baterie"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Automatická správa aplikací"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"teď"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Graf využití baterie"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Graf denního využití baterie"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Graf hodinového využití baterie"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Procento nabití baterie od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Využití baterie od posledního úplného nabití"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Využití baterie: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Doba používání od posledního úplného nabití"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signál nouzového vytáčení"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Nastavit chování při tísňovém volání"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Zálohování"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Zapnuto"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Vypnuto"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Zálohování a obnovení"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Osobní údaje"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Zálohování mých dat"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Název"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Typ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresa serveru"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Šifrování PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Tajný klíč L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identifikátor protokolu IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Předem sdílený klíč IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Uživatelský certifikát IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certifikát CA protokolu IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certifikát serveru IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Zobrazit rozšířené možnosti"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domény vyhledávání DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servery DNS (např. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Přesměrovávací trasy (např. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Uživatelské jméno"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Heslo"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Uložit údaje o účtu"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nepoužívá se)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(neověřovat server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(přijato ze serveru)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Tento typ sítě VPN nemůže zůstat trvale připojen"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Trvalé sítě VPN podporují pouze číselné adresy serverů"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"U trvalé sítě VPN musí být zadán server DNS"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adresy serverů DNS trvalých sítí VPN musejí být číselné"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Zadané údaje trvalou síť VPN nepodporují"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Zrušit"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Zavřít"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokovat připojení bez VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vyžadovat připojení VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nezabezpečeno. Proveďte aktualizaci na IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepodporovanou VPN se nepodařilo spustit."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vyberte profil VPN, ke kterému chcete zůstat trvale připojeni. Síťový provoz bude povolen pouze v případě, že budete připojeni k této síti VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Žádná"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Trvalá síť VPN vyžaduje IP adresu pro server i DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Upozornění AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Přijímat bulletiny o únosech dětí"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Opakovat"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktivovat Správce hovorů"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Povolí této službě spravovat způsob uskutečňování hovorů."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Správce hovorů"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Bezdrátové výstražné zprávy"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Síťoví operátoři"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Názvy přístupových bodů"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"peněženka"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"platit, klepnout, platby"</string>
     <string name="keywords_backup" msgid="707735920706667685">"záloha, zálohování"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"obličej, odemknutí, autorizace, přihlášení"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"obličej, odemknutí, ověření, přihlášení, otisk prstu, biometrika"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, verze prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Zvuky při spouštění"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Živý přepis"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatické přepisy médií"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Reproduktory telefonu"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Reproduktory tabletu"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Reproduktory zařízení"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Sluchátka s kabelem"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Zvuk z kompatibilních médií bude realističtější"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Vypnuto"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Co se má na obrazovce uzamčení zobrazovat?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nedávné konverzace byly odstraněny"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Konverzace byla odstraněna"</string>
     <string name="clear" msgid="5092178335409471100">"Vymazat"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Vymazat uživatele <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Tady se budou zobrazovat prioritní a upravené konverzace"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Když nějakou konverzaci označíte jako prioritní nebo v konverzacích něco upravíte, zobrazí se tady. \n\nJak změnit nastavení konverzace: \nPřejetím prstem z horní části obrazovky dolů otevřete vysouvací panel a potom konverzaci podržte."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimalizovat"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Vypnuto"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Připnutí aplikace"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Připnutí aplikace vám umožňuje nechat aktuální aplikaci zobrazenou, dokud ji neodepnete. Tuto funkci lze použít, například když chcete nechat důvěryhodného přítele hrát konkrétní hru."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Když je aplikace připnutá, může otevírat další aplikace a mít přístup k soukromým datům. \n\nPoužití připnutí aplikace: 	\n1. Zapněte připnutí aplikace 	\n2. Otevřete Přehled 	\n3. Klepněte na ikonu aplikace v horní části obrazovky a potom na Připnout"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Když je aplikace připnutá, může otevírat další aplikace a mít přístup k soukromým datům. \n\nChcete-li s někým bezpečně sdílet zařízení, zkuste místo toho použít režim hosta. \n\nPoužití připnutí aplikace: 	\n1. Zapněte připnutí aplikace 	\n2. Otevřete Přehled 	\n3. Klepněte na ikonu aplikace v horní části obrazovky a potom na Připnout"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Když je aplikace připnutá, může otevírat další aplikace a mít přístup k soukromým datům. \n\nPoužití připnutí aplikace: 	\n{0,number,integer}. Zapněte připnutí aplikace 	\n{1,number,integer}. Otevřete Přehled 	\n{2,number,integer}. Klepněte na ikonu aplikace v horní části obrazovky a potom na Připnout"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Když je aplikace připnutá, může otevírat další aplikace a mít přístup k soukromým datům. \n\nChcete-li s někým bezpečně sdílet zařízení, zkuste místo toho použít režim hosta. \n\nPoužití připnutí aplikace: 	\n{0,number,integer}. Zapněte připnutí aplikace 	\n{1,number,integer}. Otevřete Přehled 	\n{2,number,integer}. Klepněte na ikonu aplikace v horní části obrazovky a potom na Připnout"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Když je aplikace připnutá: \n\n• Může mít přístup k soukromým datům \n (například kontaktům a obsahu e-mailů) \n• Připnutá aplikace může otevírat další aplikace \n\nPřipnutí aplikace používejte pouze s lidmi, kterým důvěřujete."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Před uvolněním požádat o bezpečnostní gesto"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Před uvolněním požádat o PIN"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Nastavení nepoužívaných aplikací"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pozastavit aktivitu při nepoužívání"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Odebrat oprávnění, smazat dočasné soubory a zastavit oznámení"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Spravovat aplikaci, pokud se nepoužívá"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Odebrat oprávnění, smazat dočasné soubory, zastavit oznámení a archivovat aplikaci"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Všechny aplikace"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Nainstalované aplikace"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Okamžité aplikace"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Volná"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Paměť používaná aplikacemi"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{V poslední době ({time}) využila paměť 1 aplikace}few{V poslední době ({time}) využily paměť # aplikace}many{V poslední době ({time}) využilo paměť # aplikace}other{V poslední době ({time}) využilo paměť # aplikací}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Zapnout profilování využití paměti"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilování využití paměti vyžaduje další systémové prostředky."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilování paměti vypnuto"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekvence"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximální využití"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nebyla využita žádná data"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Zobrazení přes ostatní aplikace"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Povolit zobrazení přes jiné aplikace"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Když tuto možnost povolíte, aplikace se bude moci zobrazovat přes ostatní aplikace, které používáte. Aplikace uvidí, kam jste klepli, nebo změní, co je zobrazeno na obrazovce."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Změna mediálního výstupu"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Povolení pro aplikaci přepnout výstup médií"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Povolit této aplikaci určit, které připojené zařízení bude přehrávat zvuk nebo video z ostatních aplikací. S oprávněním bude aplikace mít k dispozici seznam dostupných zařízení (jako jsou sluchátka a reproduktory) a bude moct vybrat, které z výstupních zařízeních se bude používat ke streamování nebo odesílání zvuku či videa."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Přístup ke všem souborům"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Vylepšená hlasová aktivace"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Zařízení k vylepšení modelu aktivace hlasem používá soukromá data. Aplikace můžou dostávat souhrnné aktualizace agregované od mnoha uživatelů – je tím chráněno soukromí a zároveň je možné vylepšit model pro všechny.\n\n"<a href="">"Další informace o soukromých datech"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Upozornění na data při <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limit dat <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozornění na data: <xliff:g id="ID_1">^1</xliff:g> / limit dat: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operátor může data počítat jinak než zařízení"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Graf nezahrnuje data využitá sítěmi operátora."</string>
     <string name="data_used_template" msgid="8229342096562327646">"Využito <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Nastavit upozornění na data"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Aktualizováno před <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Aktualizováno operátorem <xliff:g id="ID_1">^1</xliff:g> teď"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Aktualizováno teď"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Zobrazit tarif"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Zobrazit podrobnosti"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Spořič dat"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neomezená data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomálie využití baterie"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Dlaždice rychlého nastavení pro vývojáře"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Vypnout časový limit autorizací adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Vypnout automatické zrušení autorizací adb u systémů, které se nepřipojily do výchozí (7 dní) nebo uživatelem nastavené doby (minimálně 1 den)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Trasování Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzory jsou vypnuty"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Nastavení pracovního profilu"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Vyhledávat kontakty z pracovního adresáře v osobních aplikacích"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Služba automatického vyplňování"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Výchozí služba automatického vyplňování"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Hesla"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Hesla, přístupové klíče a datové služby"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Další poskytovatelé"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# heslo}few{# hesla}many{# hesla}other{# hesel}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automaticky, vyplnit, vyplnit automaticky, heslo"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Hesla, přístupové klíče a datové služby"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Vypnout všechny služby?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Hesla, přístupové klíče a další uložené údaje nebude možné po přihlášení automaticky vyplňovat"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Změnit preferovanou službu na &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_enable_confirmation_message_title" msgid="1037501792652277829">"Použít %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Lze mít maximálně pět zapnutých služeb"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Pokud chcete přidat další službu, alespoň jednu vypněte"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s určuje údaje, které lze automaticky vyplnit, na základě obsahu obrazovky."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limit hesel, přístupových klíčů a datových služeb"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"V jednu chvíli můžete mít aktivních až 5 hesel, přístupových klíčů a datových služeb. Pokud chcete přidat další, některou službu vypněte."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limit hesel, přístupových klíčů a datových služeb"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"V jednu chvíli můžete mít aktivních až 5 hesel, přístupových klíčů a datových služeb. Pokud chcete přidat další, některou službu vypněte."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Vypnout"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatické vyplňování"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Úroveň protokolování"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Kompatibilitu lze upravovat pouze u laditelných aplikací. Nainstalujte laditelnou aplikaci a zkuste to znovu."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Závisí na jiném nastavení"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Účet"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Účty: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Název zařízení"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Základní informace"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Právní předpisy"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Povolit spuštění této aplikace při naskenování štítku NFC.\nPokud je toto oprávnění zapnuté, aplikace bude dostupná jako možnost při každém rozpoznání štítku."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Kde přehrávat média"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Pustit <xliff:g id="LABEL">%s</xliff:g> přes"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Zvuk se přehraje na"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Toto zařízení"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Při volání nedostupné"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Přijmout hovor v zařízení"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Vypnout zvuk"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Pokud chcete zapnout tuto možnost, nejdříve změňte akci přidruženou k podržení vypínače tak, aby se jím otevírala nabídka vypínače."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Podrobnosti sítě"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Název vašeho zařízení je viditelný pro aplikace v telefonu. 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="devices_title" msgid="649715719278562515">"Zařízení"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Vybrat síť"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Odpojeno"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Název"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Barva (používají kompatibilní aplikace)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Uložit"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Používat SIM kartu"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Použít tuhle SIM kartu"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Vypnuto"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Chcete-li tuto SIM kartu deaktivovat, vyjměte ji"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Klepnutím aktivujte operátora <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Vymazat SIM kartu"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferovaný typ sítě"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Změnit provozní režim sítě"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferovaný typ sítě"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Ceny vám sdělí poskytovatel datových služeb."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Využití dat aplikacemi"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Neplatný režim sítě <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorovat."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Názvy přístupových bodů"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Při připojení k operátorovi <xliff:g id="CARRIER">%1$s</xliff:g> nedostupné"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Přepnout na operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Přepnout na SIM kartu?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Použít operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"V jednu chvíli může být aktivní pouze jedna SIM karta.\n\nPřepnutím na operátora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nezrušíte službu <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"V jednu chvíli může být aktivní pouze jedna SIM karta.\n\nPřepnutím na operátora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nezrušíte tarif u operátora <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"V jednu chvíli může být aktivní pouze jedna SIM karta.\n\nPřepnutím nezrušíte službu <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Můžete používat dvě SIM karty současně. Pokud chcete použít operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, vypněte jinou SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Přepnout na síť <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Vypnout operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, díky"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Zrušit"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Přepnout"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Vypnout"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM kartu nelze aktivovat"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Zkuste SIM kartu znovu zapnout. Pokud problém přetrvává, restartujte zařízení."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Nastavení SIM karty"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Nastavte si předvolby mobilní sítě pro používání několika SIM karet v zařízení"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Štítky SIM karet"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Tyhle štítky uvidíte při volání, psaní SMS, používání dat a v Nastavení"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Štítek SIM karty"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Štítek"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Vyberte, které chcete použít"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Můžete používat dvě SIM karty současně"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Nastavení primárních SIM karet"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Určete, které SIM karty se budou používat jako výchozí pro volání, SMS a data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Primární SIM karty"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Volání"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatické přepínání dat"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Používat data z obou SIM karet v závislosti na pokrytí a dostupnosti"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Pouze data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Nastavit"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Další"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilní síť"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonní číslo"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Štítek a barva SIM karty"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivace sítě"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Přepnutí operátora"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Číslo <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivní"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Pokud budete chtít později používat mobilní data, volání a SMS, přejděte do nastavení sítě"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM karta"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vymazat tuto eSIM kartu?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Když vymažete tuto SIM kartu, ze zařízení bude odebrána služba operátora <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nNeznamená to však, že služba operátora <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> bude zrušena."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Vymazat"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Mazání SIM karty…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM kartu nelze vymazat"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Tuto SIM kartu nelze vymazat z důvodu chyby.\n\nRestartujte zařízení a zkuste to znovu."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Připojení k zařízení"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikace <xliff:g id="APPNAME">%1$s</xliff:g> chce za účelem připojení k zařízení použít dočasnou síť Wi-Fi"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nebyla nalezena žádná zařízení. Zajistěte, aby zařízení byla zapnutá a dostupná k připojení."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Tísňová volání"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Tísňová volání pomocí funkce volání přes Wi-Fi váš operátor nepodporuje.\nZařízení se automaticky přepne na mobilní síť, aby mohlo provést tísňové volání.\nTísňová volání lze uskutečnit jen v oblastech s mobilním signálem."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Používat k volání připojení Wi-Fi s cílem zvýšit kvalitu"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Záložní volání"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Pokud <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> není k dispozici nebo vyžaduje roaming, použije se k hovorům přes <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> SIM karta na mobilní data."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"záložní volání"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Příchozí zpráva MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Zprávu MMS se nepodařilo odeslat"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Klepnutím povolíte zprávy MMS u operátora <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> při vypnutých mobilních datech"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informace o pracovních zásadách"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Nastavení spravováno administrátorem IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Spustit s velikostí stránek 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Spustit zařízení s jádrem, které podporuje velikost stránek 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Restartovat s jádrem kompatibilním se 16KB stránkami?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"UPOZORNĚNÍ: Některé aplikace s tímto režimem nemusí být kompatibilní. Po potvrzení se zařízení restartuje."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Restartovat s jádrem kompatibilním se 4KB stránkami?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Po potvrzení se zařízení restartuje."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Jádro se nepodařilo aktualizovat na kompatibilní se 16KB stránkami."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Změna se uplatňuje"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Nástroj pro zprávy o chybách"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Určuje, která aplikace na vašem zařízení zpracovává zkratku k odeslání zprávy o chybě."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Osobní"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Přehrávač médií zůstane otevřený v Rychlém nastavení, aby bylo možné rychle obnovit přehrávání"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Zobrazovat média na obrazovce uzamčení"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Přehrávač médií zůstane otevřený na obrazovce uzamčení, aby bylo možné rychle obnovit přehrávání"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Zobrazovat doporučení médií"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Zobrazit doporučení médií od Asistenta"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Na základě vaší aktivity"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Skrýt přehrávač"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Zobrazit přehrávač"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM karta"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM karty"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktivní"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktivní"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Výchozí pro <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"hovory"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk z kompatibilních médií bude realističtější"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Sledování hlavy"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Při pohybu hlavou se zvuk mění, aby zněl přirozeněji"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Oprávnění synchronizace"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Dejte zařízení <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> stejná oprávnění pro aplikace, jaká jste povolili v zařízení <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synchronizace oprávnění z telefonu"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Dejte hodinkám stejná oprávnění pro aplikace, jaká jste povolili v telefonu"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ zvukového zařízení"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznámé"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Reproduktor"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Střední"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Vysoká"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Tuto aplikaci lze otevřít jen v jednom okně"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Zapnuto"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Vypnuto"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Vypnuto"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Vypnuto"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Zapnuto"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Vypnuto"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Zapnuto"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Vypnuto"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Světlou obrazovku změní na tmavou a tmavou na světlou"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Přiblížení obrazovky"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Vypnuto"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Vypnuto"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Zapnuto"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Vypnuto"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Zapnuto"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Heslo je nyní nastaveno"</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index ed77359..6aefc19 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Efter 1 minut"</item>
     <item msgid="1574040255478150028">"Efter 5 minutter"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index a13ee6f..6a3e871 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Nu er du udvikler!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Det behøver du ikke. Du er allerede udvikler."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Aktivér Indstillinger for udviklere først."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Kun administratorerne kan tilgå udviklerindstillinger."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"I drift"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ude af drift"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Skærm på forsiden tændes, når du folder din enhed"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Kun spil, videoer m.m."</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Skærmen på forsiden tændes i forbindelse med apps, der forhindrer din skærm i at blive inaktiv"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Stryg opad for at fortsætte"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Fold din telefon, og stryg opad på skærmen på forsiden for at fortsætte med at bruge appen, eller vent et par sekunder, så skærmen låses"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Aldrig"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Skærmen på forsiden låses, når du folder din enhed"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Brug automatisk rotering"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relaterede"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringetone og alarmer"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Lyd under opkald"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Medier"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notifikationer og systemlyde"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Medie- og systemlyde"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifikationer"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Som standard fastlægges lydudgangen af de enkelte apps"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Unavngiven Bluetooth-enhed"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Søger"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth er aktiveret"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Se alle"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Se alt"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Styluspen"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Ved tryk på knappen til styluspennen"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (arbejdsprofil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Opret forbindelse til en LE-lydstream"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Lydstreams i nærheden"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Lydstreams"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Opret forbindelse til en lydstream ved hjælp af en QR-kode"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Ingen lydstreams blev fundet i nærheden."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Hvis du vil vælge et sprog for hver app, skal du gå til den pågældende apps sprogindstillinger."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Få flere oplysninger om appsprog"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vil du ændre systemsproget til %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Vil du føje %s til dine foretrukne sprog?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Dette fortæller apps og websites, at du også foretrækker dette sprog."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Dine enhedsindstillinger og regionsindstillinger ændres."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Rediger"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s er ikke tilgængeligt"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Lørdag"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Hvis en app ikke understøtter regionsindstillinger, anvender appen sine lokale standardindstillinger."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Få flere oplysninger om sprogpræferencer."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Yderligere præferencer"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Tiltaleform"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Angiv, hvordan du vil tiltales"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps kan bruge din valgte tiltaleform for at tilpasse, hvordan de tiltaler dig."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ikke angivet"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femininum"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulinum"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vil du fjerne det valgte sprog?}one{Vil du fjerne det valgte sprog?}other{Vil du fjerne de valgte sprog?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Al tekst vises på et andet sprog."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Du kan ikke fjerne alle sprog."</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokation"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Brug lokation"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Fra"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Til – # app har adgang til din lokation}one{Til – # app har adgang til din lokation}other{Til – # apps har adgang til din lokation}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Til/# app har adgang til din lokation}one{Til/# app har adgang til din lokation}other{Til/# apps har adgang til din lokation}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Indlæser…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps med tilladelse fra enheder i nærheden kan fastslå den relative placering af forbundne enheder."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Adgangen til Lokation er deaktiveret for apps og tjenester. Din enhedslokation kan stadig blive sendt til udrykningsberedskab, hvis du ringer eller sender en sms til et alarmnummer."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Få flere oplysninger om lokationsindstillinger."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Få flere oplysninger om lokationsindstillinger"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Rediger lokationsadgangen ved at gå til Indstillinger &gt; Sikkerhed og privatliv &gt; Privatlivsindstillinger"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Du får de bedste resultater ved at bruge en skærmbeskytter, der er Made For Google-certificeret. Dit barns fingeraftryk virker muligvis ikke med andre skærmbeskyttere."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Uroplåsning"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Når du konfigurerer ansigts- og fingeroplåsning, beder din telefon om dit fingeraftryk, hvis du er iført en maske eller befinder dig et mørkt sted.\n\nDu kan låse op med dit ur, når dit ansigt eller fingeraftryk ikke kan genkendes."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Du kan låse op med dit ur, når dit fingeraftryk ikke kan genkendes."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Du kan låse op med dit ur, når dit ansigt ikke kan genkendes."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Når du konfigurerer ansigts- og fingeroplåsning, beder din telefon om dit fingeraftryk, hvis du er iført en maske eller befinder dig et mørkt sted.\n\nUroplåsning er en nem måde at låse telefonen op, f.eks. når dine hænder er våde eller dit ansigt ikke genkendes."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Uroplåsning er en nem måde at låse telefonen op, f.eks. når dit fingeraftryk ikke genkendes."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Uroplåsning er en nem måde at låse telefonen op, f.eks. når dit ansigt ikke genkendes."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Brug dit fingeraftryk eller ur til at"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Brug dit ansigt eller ur til at"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Brug dit ansigt, fingeraftryk eller ur til at"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansigt og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansigt, fingeraftryk og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansigt, fingeraftryk og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Oplåsning af Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Uret er tilføjet"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurer dit ur"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Uroplåsning er en nem måde at låse telefonen op, f.eks. når dine hænder er våde, eller dit ansigt ikke genkendes.\n\nDu kan bruge dit ur til at låse denne telefon op, når du:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ikke nu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Fortsæt"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mere"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Sådan fungerer det"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Dit ur skal være oplåst, sidde omkring dit håndled og være tæt på denne telefon. Du behøver ikke at låse dit ur op igen, når det sidder omkring dit håndled."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Når denne telefon låses op, får du en notifikation på dit ur. Hvis den låses op ved en fejl, kan du trykke på notifikationen for at låse telefonen igen."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du bestemmer"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kan til enhver tid fjerne dit ur fra uroplåsning i Indstillinger"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tryk på en notifikation"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Stryg opad på låseskærmen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Vælg dit ur"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tilgængelige ure"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuller"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bekræft"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Så er du klar!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Du kan nu bruge dit ur til at låse denne telefon op, når du stryger opad på låseskærmen eller trykker på en notifikation"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Udfør"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Uroplåsning"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kan bruge dit ur til at låse denne telefon op, når du stryger opad på låseskærmen eller trykker på en notifikation"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Hvis du vil bruge uroplåsning, skal uret være oplåst, sidde omkring dit håndled og være tæt på samt forbundet til denne telefon. Hvis forbindelsen afbrydes, skal du låse telefonen op, før du kan bruge uroplåsning.\n\nHusk!\nDu kan kun konfigurere ét ur ad gangen. For at tilføje et nyt ur skal du først fjerne det aktuelle ur."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Få flere oplysninger om uroplåsning"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tilføj ur"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjern ur"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingeraftryk og ansigtsoplåsning"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansigtsoplåsning og fingeroplåsning til arbejdsprofil"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfiguration er påkrævet"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sikkerhed"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privatliv"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Arbejdsprofil"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Privat område"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Hold private apps låste og skjulte"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Gem private apps i et separat område, som du kan skjule eller låse"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Lås til privat rum"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Du kan låse op for det private område på samme måde, som du låser din enhed op, eller ved at vælge en anden lås"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Brug enhedens skærmlås"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Ansigtsoplåsning og fingeroplåsning"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingeroplåsning"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Ansigtsoplåsning"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tryk for at konfigurere"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingeroplåsning til privat område"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Ansigtsoplåsning til privat område"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Muligheder for oplåsning"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Den samme som enhedens skærmlås"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Vil du vælge en ny lås til det private område?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lås automatisk"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lås det private område automatisk"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Du kan låse dit private område automatisk, hvis du ikke har brugt din enhed i et stykke tid"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Hver gang enheden låses"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Efter 5 minutters inaktivitet"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Aldrig"</string>
+    <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 område, når det er låst"</string>
+    <string name="privatespace_hide_page_summary" msgid="1052569521186403642">"Hvis andre ikke må kende til det private område på din enhed, kan du skjule det på listen over apps"</string>
+    <string name="privatespace_access_header" msgid="982809349769470185">"Åbn dit private område, 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 område"</string>
+    <string name="privatespace_unlock_description" msgid="4132755357482447360">"Lås dit private område 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_delete_title" msgid="3075645119800272800">"Slet det private område"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"Det private område er slettet"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Det private område kunne ikke slettes"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Privat område er låst op"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Konfigurer en skærmlås"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Konfigurer en skærmlås på enheden for at bruge dit private område"</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="private_space_cancel_label" msgid="379259667396956886">"Annuller"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Konfigurer"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Konfigurer et privat område"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Gem private apps i et separat område, som du kan skjule eller låse"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Sådan fungerer det"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Du kan få adgang til dit private område nederst på din liste over apps"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps i dit private område er beskyttet af en lås"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notifikationer fra apps i dit private område er skjult, når det er låst"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps i dit private område vises ikke i tilladelsesmanager, privatlivspanelet eller andre indstillinger, når det private område er låst.\n\nDu kan ikke flytte dit private område til en ny enhed. Hvis du vil bruge det private område på en anden enhed, skal du konfigurere et nyt privat område.\n\nPersoner, der slutter din enhed til en computer eller installerer skadelige apps på din enhed, kan muligvis få adgang til dit private område."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Konfigurerer et privat område…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notifikationer fra apps i dit private område er skjult, når området er låst"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Få adgang til dit private området for at dele billeder eller filer fra apps, som er gemt i dit private område"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Visse apps er allerede installeret i dit private område"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Det private område kunne ikke konfigureres"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Prøv igen"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Brug skærmlås til at låse dit private område op?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Du kan låse dit private område op på samme måde, som du låser din enhed op, eller ved at vælge en anden lås"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Brug skærmlås"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Vælg en ny lås"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Det var det hele."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Hvis du vil åbne dit private område, skal du gå til din liste over apps og rulle ned"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Udfør"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Rul ned for at finde det private område"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Vælg en lås til dit private område"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Du kan låse dit private område op med dit fingeraftryk. Af hensyn til sikkerheden kræver denne mulighed en alternativ lås."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Angiv en pinkode til dit private område"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Angiv en adgangskode til dit private område"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Angiv et mønster til dit private område"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Få vist det private område (ikke den endelige brugeroplevelse)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Åbn appen Indstillinger"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tryk på Sikkerhed og privatliv &gt; Privat område &gt; Skjul det private område, når det er låst"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Deaktiver kontakten for Skjul det private område, når det er låst"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Bemærkning til Googlere: Denne funktion er stadig under udvikling"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Du skal muligvis også indtaste denne adgangsnøgle på den anden enhed."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bekræft for at parre med det koordinerede sæt"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Giv adgang til dine kontakter og din opkaldshistorik"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Tillad også adgang til kontakter og opkaldshistorik"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Oplysningerne bruges til opkaldsmeddelelser m.m."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Der kunne ikke oprettes forbindelse til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tilgængelige enheder"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Når Bluetooth er aktiveret, kan enheden kommunikere med andre Bluetooth-enheder i nærheden"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"I flytilstand"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Underret om offentlige netværk"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Giv besked, hvis et offentligt netværk af høj kvalitet er tilgængeligt"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Tillad WEP-netværk"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP er en ældre og mindre sikker sikkerhedsprotokol"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Dit mobilselskab tillader ikke WEP-netværk, fordi de er mindre sikre"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Aktivér Wi-Fi automatisk"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi aktiveres igen, når du er i nærheden af gemte netværk af høj kvalitet, f.eks dit hjemmenetværk"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Ikke tilgængelig, fordi lokation er deaktiveret. Aktivér "<annotation id="link">"lokation"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi-scanning tillader, at apps og tjenester til enhver tid kan søge efter Wi-Fi-netværk, også selvom Wi-Fi er deaktiveret. Dette kan f.eks. bruges til at forbedre lokationsbaserede funktioner og tjenester."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktivér"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi-scanning er slået til"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Dette netværk bruger en ældre og mindre sikker sikkerhedsprotokol"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> er blokeret"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Dette netværk bruger en ældre og mindre sikker sikkerhedsprotokol, der kaldes for WEP. Hvis du vil fortsætte alligevel, kan du tillade WEP-netværk."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Dit mobilselskab tillader ikke, at du opretter forbindelse til dette netværk, da det bruger en ældre og mindre sikker sikkerhedsprotokol"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Tillad WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Luk"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Avancerede valgmuligheder"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Rulleliste med avancerede valgmuligheder"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"udvid"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bliv på Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Vis aldrig igen"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Forbind"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi er slået til"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Forbundet til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Opretter forbindelse til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Tilslutter…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Der kunne ikke oprettes forbindelse til netværket"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netværket er ikke inden for rækkevidde"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Glem"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Rediger"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Netværket kunne ikke glemmes"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Gem"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Netværk kunne ikke gemmes"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Annuller"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobildata"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – oplades"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – oplades"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot-forbindelse"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Signalstyrke"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gemte netværk"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Der er ikke indstillet nogen adgangskode"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Navn på hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Adgangskode til hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-bånd"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Deaktiver hotspot automatisk"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Når der ikke er forbundet nogen enheder"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Udvid kompatibilitet"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Skærmens hvidbalance"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Deaktiver std. frekvens i spil"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Deaktiver begrænsning af den maksimale billedfrekvens i spil på <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Den opmærksomme skærm bruger frontkameraet til at tjekke, om der er nogen, der kigger på skærmen. Funktionen fungerer kun lokalt på enheden, og den gemmer ikke billeder eller sender billeder til Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktivér opmærksom skærm"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hold skærmen tændt, så længe du kigger på den"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Længerevarende timeout for skærm bruger mere batteri."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kameraet er låst"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kameraet skal låses op, før du kan bruge ansigtsgenkendelse"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameraet skal låses op, før du kan bruge opmærksom skærm"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI-nummer (SIM-kortrille <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI-nummer (SIM-kortrille <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> – primær)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Vælg et gemt netværk for at se"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI-nummer"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-version"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Batteriniveau"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Fælles"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Fælles indstillinger"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Gem"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Luk"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Feltet Navn skal udfyldes."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Du skal angive et adgangspunkt."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-feltet skal indeholde 3 tal."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-feltet skal indeholde 2 eller 3 tal."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Mobilselskabet tillader ikke, at du tilføjer adgangspunkter af typen %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-feltet skal være gyldigt."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Gendannelse af standardindstillingerne for adgangspunktet."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Nulstil til standard"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Standardindstillingerne for adgangspunktet er nulstillet."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Nulstil"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth og Wi‑Fi er blevet nulstillet"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Slet eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Mobilabonnementer opsiges ikke. Kontakt dit mobilselskab for at downloade nye SIM-kort."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Nulstil indstillinger"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Vil du nulstille alle netværksindstillinger? Denne handling kan ikke fortrydes."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vil du rydde alle netværksindstillinger og rydde eSIM? Denne handling kan ikke fortrydes."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Vil du nulstille?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Gendannelse af netværk er ikke tilgængeligt for denne bruger"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Netværksindstillingerne er blevet nulstillet"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM-kortene kan ikke ryddes"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM kan ikke ryddes på grund af en fejl.\n\nGenstart din enhed, og prøv igen."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Ryd alle data (gendan fabriksindstillinger)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Ryd alle data (gendan fabriksindstillinger)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musik"</li>\n<li>"Billeder"</li>\n<li>"Andre brugerdata"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Dette opsiger ikke automatisk dit mobilabonnement."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Alle dine personlige oplysninger og downloadede apps slettes. Denne handling kan ikke fortrydes."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Alle dine personlige oplysninger, bl.a. downloadede apps og SIM-kort, slettes. Denne handling kan ikke fortrydes."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vil du rydde alle data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Det er ikke muligt for denne bruger at gendanne fabriksindstillingerne"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Rydder"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Deler ikke internet med andre enheder"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Fra"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Netdeling"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Brug ikke Wi-Fi-hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Del kun internet via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Del kun internet via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Del kun internet via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Del kun internet via USB og Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Del kun internet via USB og Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Del kun internet via Bluetooth og Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Del kun internet via USB, Bluetooth og Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Netdeling via USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Netdeling via Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Netdeling via Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Brug hotspot og netdeling til at give andre enheder adgang til internettet via din Wi-Fi- eller mobildataforbindelse. Apps kan også oprette et hotspot til at dele indhold med enheder i nærheden."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hjælp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilnetværk"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilabonnement"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Sms-app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vil du skifte sms-app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vil du bruge <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> som din standardapp til sms?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vil du skifte Wi-Fi-assistent?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Vil du bruge <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> til at administrere dine netværksforbindelser?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Vil du bruge <xliff:g id="NEW_APP">%s</xliff:g> til at administrere dine netværksforbindelser?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"SIM fra ukendt mobilselskab"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> har intet kendt website til provisionering"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Indsæt SIM-kort, og genstart"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Opret forbindelse til internettet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Seneste lokationsanmodninger"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokation for arbejdsprofil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Lokationstilladelse for apps"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Ryd adgang"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrolelementer"</string>
     <string name="force_stop" msgid="2681771622136916280">"Tving til at standse"</string>
+    <string name="archive" msgid="9074663845068632127">"Arkivér"</string>
+    <string name="restore" msgid="7622486640713967157">"Gendan"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"I alt"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Appstørrelse"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Appdata på USB-lager"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Pakkestørrelsen kunne ikke beregnes."</string>
     <string name="version_text" msgid="7628938665256107608">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Flyt"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arkivering mislykkedes"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> er arkiveret"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Gendannelsen mislykkedes"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Gendanner <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"En anden migrering er allerede i gang."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ikke nok lagerplads."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Appen findes ikke."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tilgængeligt skærmtastatur"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Administrer tastaturer på skærmen"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Valgmuligheder"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Hjælpefunktioner"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
     <string name="show_ime" msgid="4334255501724746849">"Brug skærmtastaturet"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Behold det på skærmen, mens det fysiske tastatur er aktivt"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Elastiktaster"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Aktiver Elastiktaster som hjælpefunktion til det fysiske tastatur"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Træge taster"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Aktiver Træge taster som hjælpefunktion til det fysiske tastatur"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tastaturgenveje"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Vis liste over genveje"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatur og værktøjer for arbejdsprofil"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sortér efter tidsforbrug"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sortér efter sidst anvendt"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sortér efter appnavn"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Sidst anvendt"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Sidst brugt"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"aldrig"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Brugstid"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Hjælpefunktioner"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Indstillinger for hjælpefunktioner"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsæt alligevel"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuller"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Indstillinger for forstørrelse"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Tryk tre gange for at forstørre"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Brug en genvej til forstørrelse"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Brug en genvej til forstørrelse med tre tryk"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Tryk to 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="860548190334486449">"Du kan starte og stoppe forstørrelse ved at trykke to 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Stryg opad fra bunden af skærmen med tre fingre for at bruge en hjælpefunktion.\n\nDu kan skifte mellem funktioner ved at stryge opad med tre fingre og holde dem nede."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Indst. for hjælpefunktionsknap"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Indstillinger for knap"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Genvej for <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Knap til hjælpefunktioner"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Bevægelse for hjælpefunktioner"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Tryk to gange på skærmen med to fingre"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tryk to gange på skærmen med to fingre"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tryk hurtigt på skærmen {0,number,integer} gange med to fingre"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tryk tre gange på skærmen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Få flere oplysninger om knappen til hjælpefunktioner og bevægelser for hjælpefunktioner"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Brug af knappen til hjælpefunktioner. Bevægelsen er ikke tilgængelig med navigation med tre knapper."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Få hurtigt adgang til hjælpefunktioner"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Sådan kommer du i gang"</b>\n"1. Gå til indstillingerne for hjælpefunktioner\n2. Vælg en funktion, og tryk på genvejen\n3. Vælg, om du vil bruge en knap eller en bevægelse for at tilgå funktionen"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Sådan kommer du i gang"</b>\n"1. Gå til indstillingerne for hjælpefunktioner\n2. Vælg en funktion, og tryk på genvejen\n3. Vælg knappen for at tilgå funktionen"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Sådan kommer du i gang&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gå til indstillinger for hjælpefunktioner&lt;br/&gt; {1,number,integer}. Vælg en funktion, og tryk på genvejen&lt;br/&gt; {2,number,integer}. Vælg, om du vil bruge en knap eller en bevægelse for at tilgå funktionen&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Sådan kommer du i gang&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gå til indstillinger for hjælpefunktioner&lt;br/&gt; {1,number,integer}. Vælg en funktion, og tryk på genvejen&lt;br/&gt; {2,number,integer}. Vælg den knap, du vil bruge for at tilgå funktionen&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Brug knap eller bevægelse"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokation"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Størrelse"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Afbryderknap afslutter opkald"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Stor musemarkør"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Gør musemarkøren mere synlig"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Brug mørkt tema i alle apps"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Gælder for apps uden eget mørkt tema. Nogle apps kan have visningsproblemer, f.eks. ombyttede farver."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Fjern animationer"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Begrænser bevægelse på skærmen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monolyd"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore dine interaktioner med en app eller en hardwaresensor og interagere med apps på dine vegne."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillad"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Afvis"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Annuller"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Vil du standse <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Når du trykker på <xliff:g id="STOP">%1$s</xliff:g>, stoppes <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå fra"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Slå ikke fra"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vil du slå <xliff:g id="SERVICE">%1$s</xliff:g> fra?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Der er ikke installeret nogen tjenester"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Der er ikke valgt nogen tjeneste"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Ingen beskrivelse til rådighed."</string>
     <string name="settings_button" msgid="2195468788019730377">"Indstillinger"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"lysfølsomhed, fotofobi, mørkt tema, migræne, hovedpine, læsetilstand, nattilstand, dæmp lyset, hvidt punkt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Brugervenlighed, nem at bruge, nem adgang, hjælp, hjælpsom"</string>
+    <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, Livetransskribering, hørehæmmet, hørelsestab, CART, indtaling, undertekst"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"farvekontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorik, fingerfærdighed, mus"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"høreapparater, hørehæmmet, tab af hørelse, cochlear-implantater, lydforstærkere, lydprocessorer"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"mobilitet, ekstern mus, hovedmus, adaptiv mus, kørestol, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"høreapparater, hørehæmmet, tab af hørelse, cochlear-implantater, lydforstærkere, lydprocessorer, produkter til lydforstærkning"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hørehæmmet, hørelsestab, undertekster, teleprinter, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre knapper"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"fingerbevægelighed, mobilitet, ældre, gigt, rsi, slagtilfælde, ufrivillige bevægelser, multipel sklerose, spastisk lammelse, rystelser, belastningsskade, hånd"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"forsinkelse, fingerbevægelighed, ældre"</string>
     <string name="print_settings" msgid="8519810615863882491">"Udskrivning"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Fra"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 udskrivningstjeneste er aktiveret}one{# udskrivningstjeneste er aktiveret}other{# udskrivningstjenester er aktiveret}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Se apps med højest forbrug"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Opladning optimeres for at beskytte dit batteri"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Opladning optimeres for at hjælpe med at forlænge batteriets levetid"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Opladningen optimeres for at beskytte dit batteri"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Opladningen optimeres, mens enheden er i dockingstationen, for at hjælpe med at forlænge batteriets levetid"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Opladning er optimeret for at beskytte dit batteri"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Opladning er optimeret, mens enheden er i dockingstationen, for at hjælpe med at forlænge batteriets levetid"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Lader helt op"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"For at beskytte dit batteri optimeres opladningen, næste gang din tablet sættes i dockingstationen"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Få flere oplysninger om, hvad det betyder, når opladning er sat på pause"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Genoptag opladning"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Omfatter batterikrævende aktivitet i baggrunden"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Fjern"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Annuller"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Oplad helt"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem med opladertilbehør"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Få flere oplysninger om opladning med inkompatible strømadaptere"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Batteriadministration"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Administrer automatisk apps"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"nu"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> og <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Diagram over batteriforbrug"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagram med batteriforbrug pr. dag"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagram med batteriforbrug pr. time"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Batteriniveau (i procent) fra <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> til <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Batteriforbrug siden sidste fulde opladning"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Batteriforbrug for <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Skærmtid siden sidste fulde opladning"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Ringesignal i nødsituationer"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Angiv adfærd ved nødopkald"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sikkerheds­kopiering"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Til"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Fra"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sikkerhedskopiering og gendannelse"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personlige oplysninger"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sikkerhedskopiér data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Navn"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Serveradresse"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-kryptering (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-hemmelighed"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-identifikator"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPsec-forhåndsdelt nøglekodning"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-brugercertifikat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-certifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-servercertifikat"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Vis avancerede valgmuligheder"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-søgedomæner"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-servere (f.eks. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Videresendelsesruter (f.eks. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Brugernavn"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Adgangskode"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Gem kontooplysninger"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(bruges ikke)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ingen verificering af serveren)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(modtaget fra serveren)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Denne VPN-type kan ikke være forbundet hele tiden"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Konstant VPN understøtter kun numeriske serveradresser"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Der skal angives en DNS-server for konstant VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS-serveradressen skal være numerisk for altid aktiverede VPN-netværk"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"De indtastede oplysninger understøtter ikke konstant VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Annuller"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Annuller"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloker forbindelser uden VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vil du kræve VPN-forbindelse?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ikke sikkert. Opdater til et IKEv2 VPN-netværk"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Den ikke-understøttede VPN kunne ikke startes."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vælg en VPN-profil, der altid skal være forbindelse til. Netværkstrafik tillades kun, når der er forbindelse til dette VPN-netværk."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ingen"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Et konstant VPN kræver en IP-adresse til både server og DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"GULE underretninger"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Modtag bulletiner om kidnapning af børn"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Gentag"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktivér Opkaldsstyring"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Giv denne tjeneste tilladelse til at styre, hvordan du foretager opkald."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Opkaldsstyring"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Mobilbaseret varsling"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Netværksudbydere"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Adgangspunkter (APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"betal, tryk, betalinger"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sikkerhedskopiering, sikkerhedskopiér"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"bevægelse"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ansigt, oplåsning, godkendelse, log ind"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ansigt, lås op, ansigtsoplåsning, godkendelse, log ind, fingeraftryk, biometri, biometrisk"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl version, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Aktivér lyde"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Livetekstning"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Undertekster til medier"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefonens højttalere"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablettens højttalere"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Enhedens højttalere"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Høretelefoner med ledning"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Lyden fra kompatible medieenheder bliver endnu bedre"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Fra"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Hvad skal der vises på låseskærmen?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"De seneste samtaler blev fjernet"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Samtalen blev fjernet"</string>
     <string name="clear" msgid="5092178335409471100">"Ryd"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Ryd <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioriterede og ændrede samtaler vises her"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Hvis du markerer en samtale som prioriteret eller foretager andre ændringer af samtaler, vises de her. \n\nSådan ændrer du samtaleindstillinger: \nStryg ned fra toppen af skærmen for at åbne rullepanelet, og hold derefter en samtale nede."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimer"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Fra"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Appfastgørelse"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Med appfastgørelse kan du beholde den aktuelle app i visningen, indtil du frigør den. Denne funktion kan f.eks. anvendes til at give en ven, du har tillid til, mulighed for at spille et specifikt spil."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Når en app fastgøres, kan den fastgjorte app muligvis åbne andre apps og få adgang til personoplysninger. \n\nSådan bruger du appfastgørelse: 	\n1. Aktivér appfastgørelse 	\n2. Åbn Oversigt 	\n3. Tryk på appikonet øverst på skærmen, og tryk derefter på Fastgør"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Når en app fastgøres, kan den fastgjorte app muligvis åbne andre apps og få adgang til personoplysninger. \n\nHvis du vil dele din enhed med en anden på en sikker måde, kan du prøve at bruge en gæstebruger i stedet. \n\nSådan bruger du appfastgørelse: 	\n1. Aktivér appfastgørelse 	\n2. Åbn Oversigt 	\n3. Tryk på appikonet øverst på skærmen, og tryk derefter på Fastgør"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Når en app fastgøres, kan den fastgjorte app muligvis åbne andre apps og få adgang til private data. \n\nSådan bruger du appfastgørelse: 	\n{0,number,integer}. Slå appfastgørelse til 	\n{1,number,integer}. Åbn Oversigt 	\n{2,number,integer}. Tryk på appikonet øverst på skærmen, og tryk derefter på Fastgør"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Når en app fastgøres, kan den fastgjorte app muligvis åbne andre apps og få adgang til private data. \n\nHvis du vil dele din enhed med en anden på en sikker måde, kan du prøve at bruge en gæstebruger i stedet. \n\nSådan bruger du appfastgørelse: 	\n{0,number,integer}. Slå appfastgørelse til 	\n{1,number,integer}. Åbn Oversigt 	\n{2,number,integer}. Tryk på appikonet øverst på skærmen, og tryk derefter på Fastgør"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Når en app er fastgjort: \n\n•	 Personoplysninger kan muligvis tilgås \n		(f.eks. kontakter og mailindhold) \n•	 Den fastgjorte app kan muligvis åbne andre apps \n\nBrug kun appfastgørelse til brugere, du har tillid til."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Bed om oplåsningsmønster inden frigørelse"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Bed om pinkode inden frigørelse"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Ubrugte appindstillinger"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Sæt appaktivitet på pause ved inaktivitet"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Fjern tilladelser, slet midlertidige filer, og stop notifikationer"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Administrer appen, hvis den ikke bruges"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Fjern tilladelser, slet midlertidige filer, deaktiver notifikationer, og arkivér appen"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Alle apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installerede apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant-apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Ledig"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Hukommelse, der bruges af apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app har brugt hukommelse inden for den seneste {time}}one{# app har brugt hukommelse inden for den seneste {time}}other{# apps har brugt hukommelse inden for den seneste {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Aktivér profilering af hukommelsesforbrug"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilering af hukommelsesforbrug kræver yderligere systemressourcer."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilering af hukommelse er deaktiveret"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Hyppighed"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimal forbrug"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Der blev ikke brugt nogen data"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Vis oven på andre apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Tillad visning over andre apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Tillad, at denne app vises oven på de andre apps, du bruger. Denne app kan registrere, hvor du trykker, eller ændre det, der vises på skærmen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Skift medieoutput"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Tillad at appen skifter medieoutput"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Giv denne app tilladelse til at vælge, hvilken forbundet enhed der afspiller lyd eller video fra andre apps. Hvis du giver tilladelse, kan denne app få adgang til en liste over tilgængelige enheder som f.eks. høretelefoner og højttalere og vælge, hvilken outputenhed der skal bruges til at streame eller caste lyd eller video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Adgang til alle filer"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Gør stemmeaktivering endnu bedre"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Denne enhed anvender privat intelligens til at forbedre stemmeaktiveringsmodellen. Apps kan modtage opsummerede opdateringer, der er samlet fra mange forskellige brugere, med henblik på at opretholde privatlivsbeskyttelsen og samtidig forbedre modellen for alle.\n\n"<a href="">"Få flere oplysninger om privat intelligens"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Dataadvarsel ved <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Datagrænse på <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Dataadvarsel ved <xliff:g id="ID_1">^1</xliff:g>/datagrænse på <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Mobilselskabets dataopgørelse kan afvige fra enhedens opgørelse."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Omfatter ikke data, der anvendes af mobilnetværk"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> brugt"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Konfigurer dataadvarsel"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Opdateret for <xliff:g id="ID_1">^2</xliff:g> siden"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Netop opdateret af <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Netop opdateret"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Se abonnement"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Se oplysninger"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Datasparefunktion"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Ubegrænset data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Afvigelse i batteriforbrug"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Felter for udviklere til Kvikmenu"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Deaktiver timeout for adb-godkendelser"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Deaktiver automatisk tilbagekaldelse af adb-godkendelser for systemer, der ikke har genoprettet forbindelsen indenfor standardperioden (7 dage) eller den brugerkonfigurerede tidsperiode (mindst 1 dag)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Sporing af Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensorer er slået fra"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Indstillinger for arbejdsprofil"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Søg efter kontakter ved hjælp af indekset for arbejdsprofil i personlige apps"</string>
@@ -3962,7 +4144,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"systemnavigation, 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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Stryg opad fra et af de nedre hjørner for at aktivere appen for din digitale assistent."</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Autofyld-tjeneste"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Standardtjeneste til autofyld"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Adgangskoder"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Adgangskoder, adgangsnøgler og datatjenester"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Yderligere udbydere"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# adgangskode}one{# adgangskode}other{# adgangskoder}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatisk, udfyld, autofyld, adgangskode"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Adgangskoder, adgangsnøgler og datatjenester"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Vil du deaktivere alle tjenester?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Adgangskoder, adgangsnøgler og andre gemte oplysninger kan ikke udfyldes automatisk, når du logger ind"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Skift din foretrukne tjeneste til &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_enable_confirmation_message_title" msgid="1037501792652277829">"Vil du bruge %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Du kan kun have 5 tjenester aktiveret"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Deaktiver mindst 1 tjeneste for at tilføje en anden"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s bruger det, der vises på din skærm, til at afgøre, hvad der kan udfyldes automatisk."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Grænse for antal adgangskoder, adgangsnøgler og datatjenester"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Du kan have op til 5 aktive adgangskoder, adgangsnøgler og datatjenester ad gangen. Deaktiver en tjeneste, hvis du vil tilføje en ny."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Grænse for antal adgangskoder, adgangsnøgler og datatjenester"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Du kan have op til 5 aktive adgangskoder, adgangsnøgler og datatjenester ad gangen. Deaktiver en tjeneste, hvis du vil tilføje en ny."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Deaktiver"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autofyld"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logningsniveau"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Det er kun apps med fejlretningsmuligheder, som kan få ændret appkompatibiliteten. Installer en app med fejlretningsmuligheder, og prøv igen."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Er afhængig af en anden indstilling"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konto"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d konti"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Enhedens navn"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Grundlæggende oplysninger"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Juridiske og lovmæssige oplysninger"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Giv appen tilladelse til at åbne, når der scannes et NFC-tag.\nHvis denne tilladelse er aktiveret, kan appen vælges, når der registreres et tag."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Afspil medier på"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Afspil <xliff:g id="LABEL">%s</xliff:g> på"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Lyden afspilles på"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Denne enhed"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Enheden kan ikke bruges under opkald"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Besvar opkald på"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Slå lyden fra"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Hvis du vil aktivere funktionen, skal du først ændre \"Hold afbryderknappen nede\" til menuen for afbryderknappen."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Netværksoplysninger"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Din enheds navn er synligt for apps på din telefon. 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="devices_title" msgid="649715719278562515">"Enheder"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Vælg netværk"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Afbrudt"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Navn"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Farve (anvendes af kompatible apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Gem"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Brug SIM-kort"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Brug dette SIM-kort"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Fra"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Fjern SIM-kortet for at deaktivere det"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tryk for at aktivere <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ryd SIM-kort"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Foretrukken netværkstype"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Skift driftstilstand for netværket"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Foretrukken netværkstype"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Kontakt din netværksudbyder for at få oplyst priser."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Dataforbrug i apps"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ugyldig netværkstilstand <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorer."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Adgangspunkter"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Utilgængelig ved forbindelse til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vil du skifte til <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vil du skifte til at bruge SIM-kort?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Vil du bruge <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Der kan kun være ét aktivt SIM-kort ad gangen.\n\nSelvom du skifter til <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, opsiges din tjeneste fra <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ikke."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Der kan kun være 1 aktivt eSIM ad gangen.\n\nDin <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-tjeneste opsiges ikke, hvisdu skifter til <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Der kan kun være ét aktivt SIM-kort ad gangen.\n\nSelvom du skifter SIM-kort, opsiges din tjeneste fra <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ikke."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Du kan ikke bruge 2 SIM-kort ad gangen. Hvis du vil bruge <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, skal du deaktivere et andet SIM-kort."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Skift til <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Deaktiver <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nej tak"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Annuller"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Skift"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Deaktiver"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-kortet kunne ikke aktiveres"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prøv at aktivere SIM-kortet igen. Genstart enheden, hvis problemet fortsætter."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Konfigurer dit SIM-kort"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Angiv dine præferencer for mobilnetværket for at bruge flere SIM-kort på denne enhed"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Navngiv dine SIM-kort"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Du kan se disse etiketter, når du foretager opkald, sender beskeder, bruger data og under Indstillinger"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-etiket"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiket"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Vælg, hvilke SIM-kort du vil bruge"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Du kan bruge 2 SIM-kort ad gangen"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Angiv dine primære SIM-kort"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Vælg, hvilke SIM-kort der skal bruges som standard i forbindelse med opkald, beskeder og data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Dine primære SIM-kort"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Opkald"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Beskeder"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatisk dataskift"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Brug data fra begge SIM-kort afhængigt af dækning og tilgængelighed"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Kun data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Konfigurer"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Næste"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilnetværk"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonnummer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-etiket og -farve"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netværksaktivering"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Nyt mobilselskab"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> er aktiv"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Hvis du senere vil bruge mobildata, opkaldsfunktioner og sms, kan du gå til dine netværksindstillinger"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-kort"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vil du rydde dette eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Hvis du rydder dette SIM-kort, fjernes tjenesten fra <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> på denne enhed.\n\nTjenesten fra <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> opsiges ikke."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ryd"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Rydder SIM-kort…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM-kortet kan ikke ryddes"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Dette SIM-kort kan ikke ryddes på grund af en fejl.\n\nGenstart din enhed, og prøv igen."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Opret forbindelse til enheden"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Appen <xliff:g id="APPNAME">%1$s</xliff:g> vil gerne have midlertidig adgang til dit Wi-Fi-netværk for at oprette forbindelse til din enhed"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Der blev ikke fundet nogen enheder. Sørg for, at enhederne er tændt, og at der kan oprettes forbindelse til dem."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Nødopkald"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Nødopkald via Wi‑Fi-opkald understøttes ikke af dit mobilselskab.\nEnheden skifter automatisk til et mobilnetværk for at foretage et nødopkald.\nDer kan kun foretages nødopkald i områder med mobilnetværksdækning."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Brug Wi‑Fi til opkald for at få en bedre kvalitet"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Alternativ løsning til opkald"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Hvis <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> roamer eller ikke er tilgængeligt, kan du bruge mobildata fra dit SIM-kort til <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-opkald."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"alternativ løsning til opkald"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Indgående mms-besked"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Mms-beskeden kan ikke sendes"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tryk for at tillade mms-beskeder via <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>, når mobildata er slået fra"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Oplysninger om din arbejdspolitik"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Indstillinger, som administreres af din it-administrator"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Grafikprocessor"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Genstart med sidestørrelsen 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Genstart enheden med en sidestørrelse på 16 kB, der understøtter kernen"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Vil du genstarte med en sidestørrelse på 16 kB, der er kompatibel med kernen?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ADVARSEL! Nogle apps er muligvis ikke kompatible med denne tilstand. Enheden genstartes efter bekræftelsen."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Vil du genstarte med en sidestørrelse på 4 kB, der er kompatibel med kernen?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Enheden genstartes efter bekræftelsen."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Sidestørrelsen kunne ikke opdateres til 16 kB, der er kompatibel med kernen."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Anvender ændringer"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Håndtering af fejlrapport"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Afgør, hvilken app der håndterer genvejen til fejlrapporten på din enhed."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personlig"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Medieafspilleren forbliver åben i Kvikmenu, så du hurtigt kan genoptage afspilningen"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Vis medier på låseskærmen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Medieafspilleren forbliver åben på låseskærmen, så du hurtigt kan genoptage afspilningen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Vis medieforslag"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Vis Assistent-medieanbefalinger"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Baseret på din aktivitet"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Skjul afspiller"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Vis afspiller"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiv"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inaktiv"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Standard til <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"opkald"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"sms"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Lyden fra kompatible medieenheder bliver endnu bedre"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Registrering af hovedbevægelser"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Lyden ændrer sig, når du bevæger dit hoved, for at opnå en mere naturlig lyd"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synkroniser tilladelser"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Giv <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> de samme apptilladelser, som du har givet på <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synkroniser tilladelser fra telefonen"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Giv dit ur de samme apptilladelser, som denne telefon har"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type af lydenhed"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ukendt"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Højttaler"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Middel"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Høj"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Denne app kan kun åbnes i 1 vindue"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Til"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Fra"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Fra"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Fra"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Til"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Fra"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Til"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Fra"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Gør lyse skærme mørke og mørke skærme lyse"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom ind på skærmen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Fra"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Fra"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Til"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Fra"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Til"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Der er nu konfigureret en adgangskode"</string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index de855c4..a4302b6 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Nach 1 Minute"</item>
     <item msgid="1574040255478150028">"Nach 5 Minuten"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 981a3c4..943fb48 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Du bist jetzt Entwickler!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Okay, du bist bereits Entwickler."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Bitte aktiviere die Entwickleroptionen zuerst."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Nur Administratoren können auf Entwicklereinstellungen zugreifen."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In Betrieb"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Außer Betrieb"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Frontdisplay wird beim Zuklappen des Geräts eingeschaltet"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Nur Spiele, Videos und mehr"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Frontdisplay wird für Apps eingeschaltet, die das Display aktiv lassen"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Zum Fortfahren wischen"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Falte dein Smartphone und wische auf dem Frontdisplay nach oben, um die App weiter zu verwenden, oder warte einige Sekunden, bis das Display gesperrt ist"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nie"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Frontdisplay wird beim Zuklappen des Geräts gesperrt"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"„Automatisch drehen“ verwenden"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Ähnlich"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Klingeltöne und Wecker"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio bei Anrufen"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Medien"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Benachrichtigungen &amp; Systemtöne"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Medien- und Systemtöne"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Benachrichtigungen"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Standardmäßig wird die Audioausgabe durch individuelle Apps bestimmt"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Unbenanntes Bluetooth-Gerät"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Suche läuft"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth aktiviert"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Alle anzeigen"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Alle anzeigen"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Eingabestift"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Drücken der Eingabestifttaste"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Arbeitsprofil)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Textfelder ausfüllen"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Mit LE Audio-Stream verbinden"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Audiostreams in der Nähe"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audiostreams"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Über QR-Code mit einem Audiostream verbinden"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Keine Audiostreams in der Nähe gefunden."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Unter „App-Sprachen“ kannst du für jede App eine andere Sprache festlegen."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Weitere Informationen zu App-Sprachen"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Systemsprache in %s ändern?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s zu bevorzugten Sprachen hinzufügen?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Damit teilst du Apps und Websites mit, dass du auch diese Sprache verstehst."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Hierdurch werden deine Geräteinstellungen und deine regionalen Einstellungen geändert."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Ändern"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nicht verfügbar"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Samstag"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Wenn eine App keine regionalen Einstellungen unterstützt, werden für sie stattdessen ihre Standard-Spracheinstellungen verwendet."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Weitere Informationen zu Spracheinstellungen."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Zusätzliche Einstellungen"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Anrede"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Anrede prüfen"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Du kannst die Anrede festlegen, um zu personalisieren, wie Apps dich ansprechen."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nicht angegeben"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Weiblich"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Männlich"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Ausgewählte Sprache entfernen?}other{Ausgewählte Sprachen entfernen?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text wird in einer anderen Sprache angezeigt."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Du kannst nicht alle Sprachen entfernen"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Standort"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Standort verwenden"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Aus"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{An: # App hat Zugriff auf den Standort}other{An: # Apps haben Zugriff auf den Standort}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{An / # App hat Zugriff auf den Standort}other{An / # Apps haben Zugriff auf den Standort}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Wird geladen…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps mit der Berechtigung zum Zugriff auf Geräte in der Nähe können die relative Position von verbundenen Geräten ermitteln."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Standortzugriff ist für Apps und Dienste deaktiviert. Wenn du eine Notrufnummer wählst oder eine Nachricht an eine solche Nummer schickst, kann dein Standort dennoch an den Notdienst gesendet werden."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Weitere Informationen zu Standorteinstellungen"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Weitere Informationen zu Standorteinstellungen"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Du kannst den Standortzugriff in den Einstellungen &gt; „Sicherheit und Datenschutz“ &gt; „Datenschutzeinstellungen“ ändern"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Die besten Ergebnisse erzielst du mit einem Displayschutz, der das Zertifikat „Made for Google“ hat. Bei anderen Displayschutzfolien wird der Fingerabdruck deines Kindes möglicherweise nicht erkannt."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Mit Smartwatch entsperren"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Wenn du die Entsperrung per Gesichtserkennung und die Entsperrung per Fingerabdruck einrichtest, wirst du auf dem Smartphone nach deinem Fingerabdruck gefragt, wenn du eine Maske trägst oder dich im Dunkeln befindest.\n\nDu kannst dein Gerät mit deiner Smartwatch entsperren, wenn dein Gesicht oder dein Fingerabdruck nicht erkannt werden."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Du kannst dein Gerät mit deiner Smartwatch entsperren, wenn dein Fingerabdruck nicht erkannt wird."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Du kannst dein Gerät mit deiner Smartwatch entsperren, wenn dein Gesicht nicht erkannt wird."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Wenn du auf dem Smartphone die Entsperrung per Gesichtserkennung und die Entsperrung per Fingerabdruck einrichtest, wirst du im Dunkeln oder beim Tragen einer Maske nach deinem Fingerabdruck gefragt.\n\n„Mit Smartwatch entsperren“ ist eine weitere bequeme Möglichkeit, dein Smartphone zu entsperren, z. B. wenn deine Finger nass sind oder dein Gesicht nicht erkannt wird."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"„Mit Smartwatch entsperren“ ist eine weitere bequeme Möglichkeit, dein Smartphone zu entsperren, z. B. wenn dein Fingerabdruck nicht erkannt wird."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"„Mit Smartwatch entsperren“ ist eine weitere bequeme Möglichkeit, dein Smartphone zu entsperren, z. B. wenn dein Gesicht nicht erkannt wird."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Fingerabdruck oder Smartwatch für Folgendes verwenden"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Gesicht oder Smartwatch für Folgendes verwenden"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Gesicht, Fingerabdruck oder Smartwatch für Folgendes verwenden"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gesicht und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesicht, Fingerabdruck und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesicht, Fingerabdrücke und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Per Remote Authenticator entsperren"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch hinzugefügt"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Smartwatch einrichten"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"„Mit Smartwatch entsperren“ ist eine weitere bequeme Möglichkeit, das Smartphone zu entsperren, z. B. wenn deine Finger nass sind oder dein Gesicht nicht erkannt wird.\n\nDu kannst das Smartphone in den folgenden Fällen mit deiner Smartwatch entsperren:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nicht jetzt"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Weiter"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mehr"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"So gehts"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Deine Smartwatch muss entsperrt sein und sich an deinem Handgelenk sowie in Reichweite des Smartphones befinden. Während du die Smartwatch am Handgelenk trägst, musst du sie nicht noch einmal entsperren."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Wenn dieses Smartphone entsperrt ist, wirst du auf der Smartwatch benachrichtigt. Wenn es versehentlich entsperrt wurde, tippe auf die Benachrichtigung, um das Smartphone wieder zu sperren."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du hast die Kontrolle"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kannst deine Smartwatch jederzeit in den Einstellungen aus „Mit Smartwatch entsperren“ entfernen"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Auf eine Benachrichtigung tippen"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Auf dem Sperrbildschirm nach oben wischen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Smartwatch auswählen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Verfügbare Smartwatches"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Abbrechen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bestätigen"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Fertig."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Du kannst dieses Smartphone jetzt mit deiner Smartwatch entsperren, indem du auf dem Sperrbildschirm nach oben wischst oder auf eine Benachrichtigung tippst"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Fertig"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Mit Smartwatch entsperren"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kannst dieses Smartphone mit deiner Smartwatch entsperren, indem du auf dem Sperrbildschirm nach oben wischst oder auf eine Benachrichtigung tippst"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Wenn du „Mit Smartwatch entsperren“ verwenden möchtest, muss deine Smartwatch entsperrt und an deinem Handgelenk sein. Außerdem muss es sich in Reichweite des Smartphones befinden und mit diesem verbunden sein. Wenn die Verbindung unterbrochen wird, musst du das Smartphone entsperren, um „Mit Smartwatch entsperren“ verwenden zu können.\n\nHinweis:\nFür diese Funktion kann immer nur eine Smartwatch auf einmal eingerichtet sein. Wenn du eine andere Smartwatch einrichten möchtest, musst du zuerst die aktuelle löschen."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Weitere Informationen zu „Mit Smartwatch entsperren“"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Smartwatch hinzufügen"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Smartwatch entfernen"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Entsperrung per Gesichtserkennung &amp; Fingerabdruck"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Entsperrung per Gesichtserkennung &amp; Fingerabdruck für die Arbeit"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Einrichtung erforderlich"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sicherheit"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Datenschutz"</string>
     <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="2274405892301976238">"Hier kannst du deine privaten Apps verstecken und sperren"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Du kannst für interne Apps einen separaten Bereich nutzen, der sich ausblenden oder sperren lässt"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Sperre für privaten Bereich"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Du kannst zum Entsperren des privaten Bereichs dieselbe Methode wie für das Entsperren deines Geräts verwenden oder aber eine andere Sperrmethode einrichten"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Displaysperre des Geräts verwenden"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Entsperrung per Gesichtserkennung und Fingerabdruck"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Entsperrung per Fingerabdruck"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Entsperrung per Gesichtserkennung"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Zum Einrichten tippen"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Entsperrung per Fingerabdruck für den privaten Bereich"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Entsperrung per Gesichtserkennung für den privaten Bereich"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Entsperrmöglichkeiten"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Gleiche Methode wie für Displaysperre des Geräts verwenden"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Neue Sperre für privaten Bereich festlegen?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automatisch sperren"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Privaten Bereich automatisch sperren"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Du kannst deinen privaten Bereich automatisch sperren lassen, wenn du dein Gerät längere Zeit nicht verwendest"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Jedes Mal, wenn Gerät gesperrt wird"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Nach 5 Minuten Inaktivität"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nie"</string>
+    <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_delete_title" msgid="3075645119800272800">"Privaten Bereich löschen"</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="private_space_unlocked" msgid="9091600948712932046">"Privater Bereich entsperrt"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Displaysperre einrichten"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Richte zur Nutzung deines privaten Bereichs auf dem Gerät die Displaysperre ein"</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="private_space_cancel_label" msgid="379259667396956886">"Abbrechen"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Einrichten"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Privaten Bereich einrichten"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Du kannst für interne Apps einen separaten Bereich nutzen, der sich ausblenden oder sperren lässt"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"So funktionierts"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Auf deinen privaten Bereich kannst du vom unteren Teil deiner App-Liste aus zugreifen"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps im privaten Bereich sind durch eine Sperre geschützt"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Benachrichtigungen aus Apps im privaten Bereich werden nicht angezeigt, wenn dieser gesperrt ist"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Wenn dein privater Bereich gesperrt ist, werden Apps in deinem privaten Bereich unter „Berechtigungsmanager“, „Privatsphäredashboard“ und in anderen Einstellungen nicht angezeigt.\n\nDein privater Bereich kann nicht auf ein neues Gerät übertragen werden. Du musst einen weiteren privaten Bereich einrichten, wenn du ihn auf einem anderen Gerät verwenden möchtest.\n\nJeder, der dein Gerät mit einem Computer verbindet oder auf dem Gerät schädliche Apps installiert, kann möglicherweise auf deinen privaten Bereich zugreifen."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Der private Bereich wird eingerichtet…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Benachrichtigungen aus Apps im privaten Bereich werden nicht angezeigt, wenn dieser gesperrt ist"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Privaten Bereich entsperren, um Fotos oder Dateien von Apps im privaten Bereich zu teilen"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Einige Apps sind bereits in deinem privaten Bereich installiert"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Der private Bereich konnte nicht eingerichtet werden"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Noch einmal versuchen"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Privaten Bereich mit Displaysperre entsperren?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Du kannst zum Entsperren des privaten Bereichs dieselbe Methode wie für das Entsperren deines Geräts verwenden oder aber eine andere Sperrmethode einrichten"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Displaysperre verwenden"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Neue Sperre auswählen"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Fertig!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Ruf deine App-Liste auf und scrolle nach unten, um auf deinen privaten Bereich zuzugreifen"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Fertig"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scrolle nach unten, um den privaten Bereich zu finden"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Sperre für privaten Bereich auswählen"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Du kannst deinen privaten Bereich mit deinem Fingerabdruck entsperren. Aus Sicherheitsgründen benötigst du bei dieser Option eine alternative Sperre."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"PIN für privaten Bereich einrichten"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Passwort für privaten Bereich einrichten"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Muster für privaten Bereich einrichten"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Zum Einblenden von „Privater Bereich“ (UX nicht endgültig)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Öffne die Einstellungen"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tippe auf „Datenschutz &amp; Sicherheit“ &gt; „Privater Bereich“ &gt; „‚Privater Bereich‘ ausblenden, wenn gesperrt“"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Schaltfläche „‚Privater Bereich‘ ausblenden, wenn gesperrt“ aus"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Hinweis für Google-Mitarbeiter: Diese Funktion befindet sich noch in der Entwicklungsphase"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Du kannst bis zu <xliff:g id="COUNT">%d</xliff:g> Fingerabdrücke hinzufügen."</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Du hast die maximale Anzahl an Fingerabdrücken hinzugefügt"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Es können keine Fingerabdrücke mehr hinzugefügt werden"</string>
@@ -501,10 +633,10 @@
     <string name="encryption_settings_title" msgid="2848716008695618360">"Verschlüsselung"</string>
     <string name="encrypted_summary" msgid="545623487587251207">"Verschlüsselt"</string>
     <string name="no_screen_lock_issue_title" msgid="1814109590692792891">"Displaysperre einrichten"</string>
-    <string name="no_screen_lock_issue_summary" msgid="2383217853510608406">"Für mehr Sicherheit kannst du eine PIN, ein Muster oder ein Passwort einrichten."</string>
+    <string name="no_screen_lock_issue_summary" msgid="2383217853510608406">"Für zusätzliche Sicherheit lässt sich eine PIN, ein Muster oder ein Passwort einrichten."</string>
     <string name="no_screen_lock_issue_action_label" msgid="2691229130486382863">"Displaysperre einrichten"</string>
     <string name="no_screen_lock_issue_notification_title" msgid="1214876733592830628">"Displaysperre einrichten"</string>
-    <string name="no_screen_lock_issue_notification_text" msgid="8696194459170873345">"Für mehr Sicherheit kannst du eine PIN, ein Muster oder ein Passwort einrichten."</string>
+    <string name="no_screen_lock_issue_notification_text" msgid="8696194459170873345">"Für zusätzliche Sicherheit lässt sich eine PIN, ein Muster oder ein Passwort einrichten."</string>
     <string name="suggested_lock_settings_title" msgid="7836065447159730217">"Smartphone schützen"</string>
     <string name="suggested_fingerprint_lock_settings_title" msgid="3140266181874137984">"Fingerabdruck zum Entsperren hinzufügen"</string>
     <string name="lock_settings_picker_title" msgid="9219376327364915334">"Displaysperre wählen"</string>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Eventuell musst du diesen Zugangscode auch auf dem anderen Gerät eingeben."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bestätigen, um die Geräte in koordinierter Art und Weise zu koppeln"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Zugriff auf meine Kontakte und meine Anrufliste zulassen"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Auch den Zugriff auf Kontakte und Anruflisten erlauben"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Die Daten werden für Anrufbenachrichtigungen und anderes verwendet"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Keine Verbindung zu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> möglich"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Verfügbare Geräte"</string>
     <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>
@@ -707,6 +841,8 @@
     <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>
+    <string name="show_hdr_sdr_ratio" msgid="4188007289024955585">"HDR/SDR-Verhältnis anzeigen"</string>
+    <string name="show_hdr_sdr_ratio_summary" msgid="986292785096013733">"Aktuelles HDR/SDR-Verhältnis anzeigen"</string>
     <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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Im Flugmodus"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Über öffentliche Netzwerke informieren"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Benachrichtigen, wenn ein leistungsstarkes öffentliches Netzwerk verfügbar ist"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP-Netzwerke zulassen"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ist ein älteres Sicherheitsprotokoll, das weniger sicher ist"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Dein Mobilfunkanbieter lässt keine WEP-Netzwerke zu, weil sie weniger sicher sind"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"WLAN automatisch aktivieren"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Die WLAN-Funktion wird automatisch eingeschaltet, wenn du in den Abdeckungsbereich gespeicherter WLANs kommst und die Signalqualität gut ist."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nicht verfügbar, weil die Einstellung \"Standort\" deaktiviert ist. Aktiviere die Einstellung "<annotation id="link">"Standort"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wenn die Funktion „WLAN-Suche“ aktiviert ist, dürfen Apps und Dienste immer nach WLANs suchen, auch wenn die WLAN-Funktion deaktiviert ist. Das hilft z. B. dabei, standortbasierte Funktionen und Dienste zu verbessern."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktivieren"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"WLAN-Suche aktiviert"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Dieses Netzwerk verwendet ein älteres Sicherheitsprotokoll, das weniger sicher ist"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ist blockiert"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Dieses Netzwerk verwendet ein älteres Sicherheitsprotokoll namens WEP, das weniger sicher ist. Du kannst WEP-Netzwerke zulassen, um trotzdem eine Verbindung herzustellen."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Dein Mobilfunkanbieter lässt nicht zu, dass du dich mit diesem Netzwerk verbindest, da es ein älteres Sicherheitsprotokoll verwendet, das weniger sicher ist"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP zulassen"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Schließen"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Erweiterte Optionen"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Drop-down-Liste \"Erweiterte Optionen\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"maximieren"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Weiterhin WLAN verwenden"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Nicht mehr anzeigen"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Verbinden"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"WLAN ist aktiviert"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Verbunden mit <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Verbindung zu <xliff:g id="NETWORK_NAME">%1$s</xliff:g> wird hergestellt"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Verbinden…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Netzwerkverbindung konnte nicht hergestellt werden."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netzwerk außer Reichweite"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Entfernen"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Ändern"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Netzwerk konnte nicht entfernt werden."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Speichern"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Netzwerk konnte nicht gespeichert werden."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Abbrechen"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"WLAN"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobile Daten"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Wird geladen"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Wird geladen"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot-Verbindung"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Verbindungsstärke"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gespeicherte WLANs"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Kein Passwort festgelegt"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Name des Hotspots"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Passwort des Hotspots"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Band für Zugangspunkt"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspot automatisch deaktivieren"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Wenn keine Geräte verbunden sind"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Kompatibilität erweitern"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Weißabgleich des Bildschirms"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Standard-Framerate für Spiele deaktivieren"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Dadurch wird die Begrenzung der Framerate für Spiele auf <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz deaktiviert."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Die Funktion „Aufmerksamkeitserkennung“ verwendet die Frontkamera, um zu erkennen, ob jemand den Bildschirm ansieht. Es werden dabei keine Bilder gespeichert und auch nie an Google gesendet."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aufmerksamkeitserkennung aktivieren"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Display aktiviert lassen, solange du es ansiehst"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Wenn das Display länger eingeschaltet bleibt, wird die Akkulaufzeit verkürzt."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera ist gesperrt"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Für die Gesichtserkennung muss die Kamera entsperrt sein"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Für die Funktion „Aufmerksamkeitserkennung“ muss die Kamera entsperrt sein"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM-Steckplatz <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM-Steckplatz <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (Primär)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Zum Ansehen gespeichertes Netzwerk auswählen"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-Version"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Akkustand"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Gemeinschaftlich"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Gemeinschaftliche Einstellungen"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Speichern"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Abbrechen"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Das Namensfeld darf nicht leer sein."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN darf nicht leer sein."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Das MCC-Feld muss 3 Zeichen enthalten."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Das MNC-Feld muss 2 oder 3 Zeichen enthalten."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Der Anbieter erlaubt das Hinzufügen von APNs des Typs %s nicht."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Der Wert im Feld „MMSC“ muss gültig sein."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Standard-APN-Einstellungen werden wiederhergestellt"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Auf Standard zurücksetzen"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Zurücksetzen auf Standard-APN-Einstellungen abgeschlossen."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Zurücksetzen"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth und WLAN wurden zurückgesetzt"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMs löschen"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Dein Mobilfunkvertrag wird dadurch nicht gekündigt. Wende dich an deinen Mobilfunkanbieter, um Ersatz-SIMs herunterzuladen."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Einstellungen zurücksetzen"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Sämtliche Netzwerkeinstellungen zurücksetzen? Dieser Vorgang kann nicht rückgängig gemacht werden."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Alle Netzwerkeinstellungen zurücksetzen und eSIMs löschen? Diese Aktion lässt sich nicht rückgängig machen."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Zurücksetzen?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Das Zurücksetzen der Netzwerkeinstellungen ist für diesen Nutzer nicht verfügbar."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Die Netzwerkeinstellungen wurden zurückgesetzt."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIMs können nicht gelöscht werden"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMs können aufgrund eines Fehlers nicht gelöscht werden.\n\nBitte starte dein Gerät neu und versuch es dann noch einmal."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Alle Daten löschen (auf Werkseinstellungen zurücksetzen)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Alle Daten löschen"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musik"</li>\n<li>"Fotos"</li>\n<li>"Sonstige Nutzerdaten"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Dein Mobilfunkvertrag wird dadurch nicht gekündigt."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Alle deine personenbezogenen Daten und heruntergeladenen Apps werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Alle deine personenbezogenen Daten, einschließlich heruntergeladener Apps und SIMs, werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Alle Daten löschen?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Das Zurücksetzen auf Werkseinstellungen ist für diesen Nutzer nicht verfügbar."</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Wird gelöscht…"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internetverbindung wird nicht für andere Geräte freigegeben"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Aus"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"WLAN-Hotspot nicht verwenden"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Internet nur über USB freigeben"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Internet nur über Bluetooth teilen"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Internet nur über Ethernet freigeben"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Internet nur über USB und Bluetooth freigeben"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Internet nur über USB und Ethernet freigeben"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Internet nur über Bluetooth und Ethernet freigeben"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Internet nur über USB, Bluetooth und Ethernet freigeben"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-Tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-Tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-Tethering"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Mithilfe der Hotspot- und Tethering-Funktion kannst du anderen Geräten erlauben, deine Internetverbindung (WLAN oder mobile Daten) mitzunutzen. Es gibt auch Apps für das Erstellen eines Hotspots, damit Inhalte mit Geräten in der Nähe geteilt werden können."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hilfe"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilfunknetz"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilfunktarif"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-App"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS-App wechseln?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> statt <xliff:g id="CURRENT_APP">%2$s</xliff:g> als SMS-App verwenden?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"WLAN-Assistenten ändern?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"<xliff:g id="NEW_APP">%1$s</xliff:g> statt <xliff:g id="CURRENT_APP">%2$s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g> zur Verwaltung von Netzwerkverbindungen nutzen?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unbekannter SIM-Anbieter"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> hat keine bekannte Bereitstellungswebsite"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lege die SIM ein und starte das Gerät neu."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Bitte stelle eine Verbindung zum Internet her."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Letzte Standortanfragen"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Standort für Arbeitsprofil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Berechtigungen zur Standortermittlung"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Zugriff löschen"</string>
     <string name="controls_label" msgid="8671492254263626383">"Steuerung"</string>
     <string name="force_stop" msgid="2681771622136916280">"Beenden erzwingen"</string>
+    <string name="archive" msgid="9074663845068632127">"Archivieren"</string>
+    <string name="restore" msgid="7622486640713967157">"Wiederherstellen"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Insgesamt"</string>
     <string name="application_size_label" msgid="6407051020651716729">"App-Größe"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB-Speicher-App"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Paketgröße konnte nicht berechnet werden."</string>
     <string name="version_text" msgid="7628938665256107608">"Version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Verschieben"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Fehler beim Archivieren"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archiviert: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Fehler bei der Wiederherstellung"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> wird wiederhergestellt"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Es wird schon eine andere Migration durchgeführt."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nicht genügend Speicherplatz"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"App ist nicht vorhanden."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Verfügbare Bildschirmtastatur"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Bildschirmtastaturen verwalten"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Optionen"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Barrierefreiheit"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physische Tastatur"</string>
     <string name="show_ime" msgid="4334255501724746849">"Bildschirmtastatur verwenden"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Bildschirmtastatur auch dann anzeigen, wenn physische Tastatur aktiv ist"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Bounce-Tasten"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Bounce-Tasten für Bedienungshilfen auf einer physischen Tastatur aktivieren"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Einfingerbedienung"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Einfingerbedienung für Bedienungshilfen auf einer physischen Tastatur aktivieren"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tastenkürzel"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Liste der Tastenkombinationen anzeigen"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastaturen und Tools für das Arbeitsprofil"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Nach Nutzungszeit sortieren"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Nach „Zuletzt verwendet“ sortieren"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Nach App-Name sortieren"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Zuletzt verwendet"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Zuletzt verwendet"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nie"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Nutzungszeit"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Bedienungshilfen"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Einstellungen für Bedienungshilfen"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Trotzdem fortfahren"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Abbrechen"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Vergrößerungseinstellungen"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Dreimal tippen zum Vergrößern"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Mit Tastenkombination vergrößern"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Mit Tastenkombination und 3-mal Tippen vergrößern"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Die Bedienungshilfe „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Zum Öffnen mit zwei Fingern auf das Display doppeltippen"</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="860548190334486449">"Doppeltippe zum Starten oder Beenden der Vergrößerung mit zwei Fingern auf das Display."</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="1624189347106713695">"Einstellungen für die Schaltfläche „Bedienungshilfen“"</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_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>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Mit zwei Fingern auf das Display doppeltippen"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"Mit zwei Fingern auf das Display doppeltippen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tippe {0,number,integer}-mal schnell mit zwei Fingern auf das Display"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Dreimal auf den Bildschirm tippen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Weitere Informationen zur Schaltfläche „Bedienungshilfen“ und zu Gesten"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Schaltfläche „Bedienungshilfen“ wird verwendet. Bei Bedienung über 3 Schaltflächen ist die Touch-Geste nicht verfügbar."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Schnell auf Bedienungshilfen zugreifen"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Die ersten Schritte"</b>\n"1. Gehe zu den Einstellungen für Bedienungshilfen\n2. Wähle eine Funktion aus und tippe auf das Tastenkürzel\n3. Wähle aus, ob du eine Taste oder eine Touch-Geste für den Zugriff auf die Funktion verwenden möchtest"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Die ersten Schritte"</b>\n"1. Gehe zu den Einstellungen für Bedienungshilfen\n2. Wähle eine Funktion aus und tippe auf das Tastenkürzel\n3. Wähle die Taste aus, die du für den Zugriff auf die Funktion verwenden möchtest"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;So gehts&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Geh zu den Einstellungen für Bedienungshilfen&lt;br/&gt; {1,number,integer}. Wähle eine Bedienungshilfe aus und tippe auf den Kurzbefehl&lt;br/&gt; {2,number,integer}. Wähle aus, ob du eine Taste oder eine Touch-Geste für den Zugriff auf die Bedienungshilfe verwenden möchtest&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;So gehts&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Geh zu den Einstellungen für Bedienungshilfen&lt;br/&gt; {1,number,integer}. Wähle eine Bedienungshilfe aus und tippe auf den Kurzbefehl&lt;br/&gt; {2,number,integer}. Wähle die Taste aus, die du für den Zugriff auf die Bedienungshilfe verwenden möchtest&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Schaltfläche oder Touch-Geste verwenden"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Ort"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Größe"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Ein/Aus-Taste beendet Anruf"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Großer Mauszeiger"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Sichtbarkeit des Mauszeigers verbessern"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Dunkles Design verwenden (alle Apps)"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Gilt für Apps ohne eigenes dunkles Design. Es können Anzeigeprobleme wie umgekehrte Farben auftreten."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animationen entfernen"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Bewegung auf dem Bildschirm verringern"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono-Audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Die Funktion kann deine Interaktionen mit einer App oder einem Hardwaresensor verfolgen und in deinem Namen mit Apps interagieren."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zulassen"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ablehnen"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Beenden"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Abbrechen"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> beenden?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Wenn du auf \"<xliff:g id="STOP">%1$s</xliff:g>\" tippst, wird \"<xliff:g id="SERVICE">%2$s</xliff:g>\" beendet."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Aus"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ein lassen"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> deaktivieren?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Keine Dienste installiert"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Kein Dienst ausgewählt"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Es wurde keine Beschreibung bereitgestellt."</string>
     <string name="settings_button" msgid="2195468788019730377">"Einstellungen"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"Lichtempfindlichkeit, Photophobie, dunkles Design, Migräne, Kopfschmerzen, Lesemodus, Nachtmodus, Helligkeit verringern, Weißpunkt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Einfache Verwendung, einfacher Zugriff, Unterstützung, unterstützend"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"Sehfähigkeit, Hörfähigkeit, blind, Sehbehinderung, gehörlos, Hörbehinderung, motorische Einschränkungen, Feinmotorik, Unterstützung, Nutzerfreundlichkeit, Zugänglichkeit, Hand, Hilfe"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Fenstervergrößerung, Zoom, Vergrößerung, eingeschränktes Sehvermögen, Vergrößerung, größer machen"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Untertitel, Automatische Transkription, Schwerhörigkeit, Hörverlust, Spracherkennung in Echtzeit (CART), Spracherkennung"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"Farbkontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"Motorik, Maus"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"Hörgeräte, schwerhörig, Hörverlust, Cochlea-Implantate, Audioverstärker, Geräuschprozessor"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorische Einschränkungen, Maus, externe Maus, Kopfmaus, adaptive Maus, Rollstuhl, Joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"Hörgeräte, schwerhörig, Hörverlust, Cochlea-Implantate, Audioverstärker, Geräuschprozessor, persönliche Tonverstärker"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"Schwerhörigkeit, Hörverlust, Untertitel, Fernschreiber, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"drei Schaltflächen"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"Feinmotorik, motorische Einschränkungen, Senioren, Arthritis, RSI-Syndrom, Schlaganfall, Tremor, multiple Sklerose, zerebrale Kinderlähmung, Zittern, Repetitive-Strain-Injury-Syndrom, Hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"Verzögerung, Feinmotorik, Senioren"</string>
     <string name="print_settings" msgid="8519810615863882491">"Drucken"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Aus"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 Druckdienst aktiviert}other{# Druckdienste aktiviert}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Apps mit der höchsten Nutzung anzeigen"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Zur Schonung deines Akkus wird er im optimierten Modus geladen"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Der Akku wird im optimierten Modus geladen, um ihn zu schonen"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Zur Schonung deines Akkus wird er im optimierten Modus geladen"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Wenn sich das Gerät im Dock befindet, wird der Akku im optimierten Modus geladen, um ihn zu schonen"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Zur Schonung deines Akkus wird er im optimierten Modus geladen"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Wenn sich das Gerät im Dock befindet, wird der Akku im optimierten Modus geladen, um ihn zu schonen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Vollständig aufladen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Zur Schonung deines Akkus wird er im optimierten Modus geladen, wenn sich dein Tablet das nächste Mal im Dock befindet"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Weitere Informationen zum pausierten Ladevorgang"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Ladevorgang fortsetzen"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Umfasst Hintergrundaktivitäten mit hohem Stromverbrauch"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Entfernen"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Abbrechen"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Vollständig aufladen"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem mit dem Ladezubehör"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Weitere Informationen zu nicht kompatiblen Ladegräten"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Akku-Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Apps automatisch verwalten"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,13 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"jetzt"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"von <xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> bis <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Diagramm zur Akkunutzung"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagramm zur täglichen Akkunutzung"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagramm zur stündlichen Akkunutzung"</string>
+    <!-- String.format failed for translation -->
+    <!-- no translation found for battery_level_percentage (1433178290838842146) -->
+    <skip />
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Akkunutzung seit dem letzten kompletten Aufladen"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Akkunutzung von <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Bildschirmzeit seit dem letzten kompletten Aufladen"</string>
@@ -2461,8 +2639,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Notrufsignal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Verhalten bei einem Notruf festlegen"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sicherung"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"An"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Aus"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sicherung &amp; Wiederherstellung"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personenbezogene Daten"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Meine Daten sichern"</string>
@@ -2551,6 +2727,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>
@@ -2600,27 +2777,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Name"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Typ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Serveradresse"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-Verschlüsselung (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-Schlüssel"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-ID"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Vorinstallierter IPSec-Schlüssel"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-Nutzerzertifikat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec-CA-Zertifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-Serverzertifikat"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Erweiterte Optionen anzeigen"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-Suchdomains"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-Server (z. B. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Weiterleitungsrouten (z. B. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nutzername"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Passwort"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Kontoinformationen speichern"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nicht verwendet)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(Server nicht überprüfen)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(vom Server erhalten)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Dieser VPN-Typ kann nicht durchgehend verbunden bleiben"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Durchgehend aktives VPN unterstützt numerische Serveradressen"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Ein DNS-Server muss für durchgehend aktives VPN angegeben werden"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS-Serveradressen müssen für durchgehend aktives VPN numerisch sein"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Bei den eingegebenen Informationen wird durchgehend aktives VPN nicht unterstützt"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Abbrechen"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Schließen"</string>
@@ -2656,6 +2824,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Verbindungen ohne VPN blockieren"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN-Verbindung erforderlich?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Unsicher. Update auf IKEv2-VPN empfohlen."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nicht unterstütztes VPN konnte nicht gestartet werden."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Wähle ein VPN-Profil für eine durchgehende Verbindung aus. Netzwerkverkehr ist nur möglich, wenn eine Verbindung zu diesem VPN besteht."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Keines"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Für ein durchgehend aktives VPN ist eine IP-Adresse für den Server und für das DNS erforderlich."</string>
@@ -2790,11 +2959,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER Alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Bulletins über Kindesentführungen erhalten"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Wiederholen"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Anrufverwaltung aktivieren"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Diesem Dienst die Verwaltung der Anrufabwicklung gestatten"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Anrufverwaltung"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Notfall­benachrichtigungen an Mobilgeräte"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Netzbetreiber"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Zugangspunkte (APNs)"</string>
@@ -2948,7 +3112,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Geldbörse"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"Bezahlen, kontaktlos, Zahlungen"</string>
     <string name="keywords_backup" msgid="707735920706667685">"Sicherung, sicherung"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"Touch-Geste"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"Gesicht, Entsperrung, Entsperrung per Gesichtserkennung, Gesichtserkennung, Anmeldung"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"Gesicht, entsperren, Authentifizierung, Anmeldung, Fingerabdruck, Biometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, Min., prl version, imei sv"</string>
@@ -2999,6 +3162,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>
@@ -3034,9 +3198,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Töne beim Hochfahren"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Automatische Untertitel"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Medien automatisch untertiteln"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Smartphone-Lautsprecher"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablet-Lautsprecher"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Gerätelautsprecher"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Kabelgebundene Kopfhörer"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Der Klang von kompatiblen Medien wird noch voller"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Aus"</string>
@@ -3221,7 +3382,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Was soll auf deinem Sperrbildschirm angezeigt werden?"</string>
     <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>
@@ -3250,6 +3411,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Neueste Unterhaltungen wurden entfernt"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Unterhaltung wurde entfernt"</string>
     <string name="clear" msgid="5092178335409471100">"Löschen"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> löschen"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Hier werden vorrangige und geänderte Unterhaltungen angezeigt"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Wenn du einer Unterhaltung Priorität gibst oder andere Änderungen daran vornimmst, wird sie hier angezeigt. \n\nSo änderst du die Einstellungen für eine Unterhaltung:\nWische vom oberen Displayrand nach unten, um die Benachrichtigungsleiste zu öffnen, und halte die entsprechende Unterhaltung gedrückt."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimieren"</string>
@@ -3308,6 +3470,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>
@@ -3502,8 +3675,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Aus"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Bildschirmfixierung"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Mit der Option „Bildschirmfixierung“ kannst du festlegen, dass auf deinem Gerät vorübergehend nur eine App ausgeführt und angezeigt wird. Auf diese Weise kannst du z. B. jemanden ein bestimmtes Spiel auf deinem Gerät spielen lassen."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Die App, die während der Bildschirmfixierung angezeigt wird, kann unter Umständen andere Apps öffnen, wodurch private Daten zugänglich gemacht werden können. \n\nSo verwendest du die Funktion „Bildschirmfixierung“: 	\n1. Aktiviere „Bildschirmfixierung“ 	\n2. Tippe auf „Übersicht“ 	\n3. Tippe auf das App-Symbol oben auf dem Bildschirm und dann auf „Fixieren“"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Die App, die während der Bildschirmfixierung angezeigt wird, kann unter Umständen andere Apps öffnen, wodurch private Daten zugänglich gemacht werden können. \n\nWenn du dein Gerät sicher mit jemandem teilen möchtest, kannst du stattdessen ein Gastprofil verwenden. \n\nSo verwendest du die Funktion „Bildschirmfixierung“: 	\n1. Aktiviere „Bildschirmfixierung“ 	\n2. Tippe auf „Übersicht“ 	\n3. Tippe auf das App-Symbol oben auf dem Bildschirm und dann auf „Fixieren“"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Die App, die während der Bildschirmfixierung angezeigt wird, kann unter Umständen andere Apps öffnen, wodurch private Daten zugänglich gemacht werden können. \n\nSo verwendest du die Funktion „Bildschirmfixierung“: 	\n{0,number,integer}. Aktiviere die Funktion „Bildschirmfixierung“ 	\n{1,number,integer}. Tippe auf „Übersicht“ 	\n{2,number,integer}. Tippe auf das App-Symbol oben auf dem Bildschirm und dann auf „Fixieren“"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Die App, die während der Bildschirmfixierung angezeigt wird, kann unter Umständen andere Apps öffnen, wodurch private Daten zugänglich gemacht werden können. \n\nWenn du dein Gerät sicher mit jemandem teilen möchtest, kannst du stattdessen ein Gastprofil verwenden. \n\nSo verwendest du die Funktion „Bildschirmfixierung“: 	\n{0,number,integer}. Aktiviere die Funktion „Bildschirmfixierung“ 	\n{1,number,integer}. Tippe auf „Übersicht“ 	\n{2,number,integer}. Tippe auf das App-Symbol oben auf dem Bildschirm und dann auf „Fixieren“"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Wenn eine App auf dem Bildschirm fixiert ist, gilt Folgendes: \n\n•	 Personenbezogene Daten könnten dennoch\nzugänglich sein (z. B. Kontakte oder E-Mails) \n• Eine fixierte App kann andere Apps öffnen \n\nVerwende die Funktion „Bildschirmfixierung“ nur dann, wenn du deinem Gegenüber vertraust."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Zum Loslösen nach Entsperrungsmuster fragen"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Vor Beenden nach PIN fragen"</string>
@@ -3569,6 +3742,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Einstellungen für App bei Nichtnutzung"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"App-Aktivität bei Nichtnutzung stoppen"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Berechtigungen entfernen, temporäre Dateien löschen und Benachrichtigungen stoppen"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"App bei Nichtnutzung pausieren"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Berechtigungen entfernen, temporäre Dateien löschen, Benachrichtigungen stoppen und die App archivieren"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Alle Apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installierte Apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Apps"</string>
@@ -3677,6 +3852,9 @@
     <string name="free_memory" msgid="439783742246854785">"Frei"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Von Apps verbrauchter Speicher"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 App nutzte Arbeitsspeicher in den letzten {time}}other{# Apps nutzten Arbeitsspeicher in den letzten {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Arbeitsspeichernutzungs-Profiling aktivieren"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Das Arbeitsspeichernutzungs-Profiling erfordert zusätzliche Systemressourcen."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Arbeitsspeichernutzungs-Profiling deaktiviert"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Häufigkeit"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximaler Verbrauch"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Keine Daten genutzt"</string>
@@ -3695,10 +3873,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Über anderen Apps einblenden"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Einblendung über anderen Apps zulassen"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Erlaube, dass diese App über anderen Apps, die du gerade verwendest, eingeblendet wird. Diese App erkennt, wo du tippst oder welche Elemente auf dem Bildschirm du änderst."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Medienausgabe ändern"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"App erlauben, die Medienausgabe zu wechseln"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Dieser App erlauben, festzulegen, welches verbundene Gerät Audio- oder Videoinhalte aus anderen Apps abspielt. Sie hat dann Zugriff auf eine Liste mit verfügbaren Geräten wie Kopfhörern und Lautsprechern und kann festlegen, welches Ausgabegerät Audio- oder Videoinhalte aus anderen Apps streamt oder überträgt."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Zugriff auf alle Dateien"</string>
     <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>
+    <string name="allow_voice_activation_apps_description" msgid="6369745626995060656">"Mit der Sprachaktivierung lassen sich zugelassene Apps per Sprachbefehl starten. Ein integrierter adaptiver Sensor sorgt dafür, dass deine Daten privat bleiben.\n\n"<a href="">"Weitere Informationen zum geschützten adaptiven Sensor"</a></string>
+    <string name="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Sprachaktivierung verbessern"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Dieses Gerät verwendet private Daten, um das Sprachaktivierungsmodell zu verbessern. Apps können zusammengefasste Updates von vielen verschiedenen Nutzern empfangen, um die Privatsphäre zu schützen und gleichzeitig das Modell für alle Nutzer zu verbessern.\n\n"<a href="">"Weitere Informationen zu privaten Daten"</a></string>
     <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>
@@ -3807,7 +3993,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Warnlimit für mobile Datennutzung: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Datenlimit: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Warnlimit für mobile Datennutzung: <xliff:g id="ID_1">^1</xliff:g>/Datenlimit: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Dein Mobilfunkanbieter berechnet die Datennutzung eventuell anders als das Gerät"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Beinhaltet keine im Mobilfunknetz verbrauchten Daten"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Verbrauchte Daten: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Datenwarnung festlegen"</string>
@@ -3833,7 +4018,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Vor <xliff:g id="ID_1">^2</xliff:g> aktualisiert"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Gerade von <xliff:g id="ID_1">^1</xliff:g> aktualisiert"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Gerade aktualisiert"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Tarif anzeigen"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Details ansehen"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Datensparmodus"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Uneingeschränkte Datennutzung"</string>
@@ -3864,6 +4048,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalie bei der Akkunutzung"</string>
     <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>
@@ -3932,7 +4117,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Kacheln für Schnelleinstellungen für Entwickler"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Zeitlimit für ADB-Autorisierung deaktivieren"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Automatische Aufhebung von ADB-Autorisierungen für Systeme deaktivieren, die sich nicht innerhalb der Standardzeit (7 Tage) oder der vom Nutzer festgelegten Zeit (mindestens 1 Tag) wieder verbunden haben."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensoren aus"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Einstellungen für Arbeitsprofil"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"In privaten Apps nach Verzeichniskontakten deiner Arbeit suchen"</string>
@@ -3962,7 +4146,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>
@@ -4122,21 +4306,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Autofill-Service"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Standard-Autofill-Service"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Passwörter"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwörter, Passkeys und Datendienste"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Zusätzliche Anbieter"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# Passwort}other{# Passwörter}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatisch, füllen, ausfüllen, Passwort, auto, fill, autofill, password"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Passwörter, Passkeys und Datendienste"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Alle Dienste deaktivieren?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passwörter, Passkeys und andere gespeicherte Informationen werden nicht mehr automatisch ausgefüllt, wenn du dich anmeldest"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Bevorzugten Dienst zu &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ändern?&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_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s verwenden?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Es können nur fünf Dienste aktiviert sein"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Deaktiviere mindestens einen Dienst, um einen anderen hinzuzufügen"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ermittelt anhand der Inhalte auf deinem Bildschirm, welche Informationen automatisch ausgefüllt werden können."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Beschränkung für Passwörter, Passkeys und Datendienste"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Es können bis zu 5 Passwörter, Passkeys und Datendienste gleichzeitig aktiviert sein. Wenn du einen weiteren Dienst hinzufügen möchtest, deaktiviere einen anderen."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Beschränkung für Passwörter, Passkeys und Datendienste"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Es können bis zu 5 Passwörter, Passkeys und Datendienste gleichzeitig aktiviert sein. Wenn du einen weiteren Dienst hinzufügen möchtest, deaktiviere einen anderen."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Deaktivieren"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autofill"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Protokollierungsebene"</string>
@@ -4193,6 +4386,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Die Kompatibilität kann nur bei debug-fähigen Apps geändert werden. Installiere eine debug-fähige App und versuch es noch einmal."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Hängt von einer anderen Einstellung ab"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konto"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d Konten"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Gerätename"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Allgemeine Informationen"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Rechtliche Informationen"</string>
@@ -4206,6 +4400,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Erlauben, dass diese App gestartet wird, wenn ein NFC-Tag gescannt wird.\nWenn Apps diese Berechtigung haben, stehen sie als Option zur Verfügung, wenn ein Tag erkannt wird."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Medien hier abspielen:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> abspielen über"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio wird fortgesetzt"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Dieses Gerät"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Während Anrufen nicht verfügbar"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Anruf annehmen auf"</string>
@@ -4219,7 +4414,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Stummschalten"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Ändere zum Aktivieren erst „Ein-/Aus-Taste gedrückt halten“ zu „Ein-/Aus-Menü“."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Netzwerkdetails"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Dein Gerätename ist für Apps auf deinem Smartphone 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="devices_title" msgid="649715719278562515">"Geräte"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Netzwerk auswählen"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Nicht verbunden"</string>
@@ -4302,11 +4496,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Name"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Farbe (verwendet von kompatiblen Apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Speichern"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM verwenden"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Diese SIM verwenden"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Aus"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"SIM-Karte entfernen, um sie zu deaktivieren"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Zum Aktivieren von <xliff:g id="CARRIER">%1$s</xliff:g> tippen"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM löschen"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Bevorzugter Netztyp"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Netzmodus ändern"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Bevorzugter Netztyp"</string>
@@ -4325,6 +4520,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Wenn du Informationen zu Preisen erhalten möchtest, wende dich bitte an deinen Netzwerkanbieter."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Datennutzung durch Apps"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ungültiger Netzmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorieren."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Zugangspunkte (APNs)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Bei Verbindung mit <xliff:g id="CARRIER">%1$s</xliff:g> nicht verfügbar"</string>
@@ -4334,9 +4563,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Zu <xliff:g id="CARRIER_NAME">%1$s</xliff:g> wechseln?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM-Karte wechseln?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> verwenden?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Es kann immer nur eine SIM-Karte aktiv sein.\n\nDein Mobilfunkvertrag bei <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> wird nicht gekündigt, wenn du zu <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> wechselst."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Es kann immer nur eine eSIM aktiv sein.\n\nDein Mobilfunkvertrag bei <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> wird nicht gekündigt, wenn du zu <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> wechselst."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Es kann immer nur eine SIM-Karte aktiv sein.\n\nDein Mobilfunkvertrag bei <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> wird nicht gekündigt, wenn du die SIM-Karte wechselst."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Du kannst 2 SIMs gleichzeitig verwenden. Wenn du <xliff:g id="CARRIER_NAME">%1$s</xliff:g> verwenden möchtest, musst du eine andere SIM deaktivieren."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Zu <xliff:g id="CARRIER_NAME">%1$s</xliff:g> wechseln"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> deaktivieren"</string>
@@ -4358,8 +4590,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nein danke"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Abbrechen"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Wechseln"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Deaktivieren"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM kann nicht aktiviert werden"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Versuche, die SIM noch einmal zu aktivieren. Sollte das Problem weiterhin bestehen, starte das Gerät neu."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM einrichten"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Du kannst in den Einstellungen für das Mobilfunknetz festlegen, dass auf diesem Gerät mehrere SIM-Karten verwendet werden"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Label zu SIM-Karten hinzufügen"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Diese Labels werden angezeigt, wenn du Anrufe tätigst, SMS sendest, Daten verwendest oder die Einstellungen aufrufst"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-Label"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"SIM-Karten auswählen"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Du kannst zwei SIM-Karten gleichzeitig verwenden"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Primäre SIM-Karten festlegen"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Du kannst auswählen, welche SIM-Karten standardmäßig für Anrufe, SMS und Daten verwendet werden"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Meine primären SIM-Karten"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Anrufe"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Daten automatisch wechseln"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Du kannst je nach Abdeckung und Verfügbarkeit Daten von beiden SIM-Karten verwenden"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Nur für Daten"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Einrichten"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Weiter"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilfunknetz"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonnummer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-Label und Farbe"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netzwerkaktivierung"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Wechsel des Mobilfunkanbieters"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ist aktiviert"</string>
@@ -4379,11 +4635,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Wenn du mobile Daten, Anruffunktionen und SMS später einrichten möchtest, kannst du das in deinen Netzwerkeinstellungen tun"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Diese eSIM löschen?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Wenn du diese SIM löschst, wird der <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-Dienst von diesem Gerät entfernt.\n\nDer Mobilfunkvertrag bei <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> wird dadurch nicht gekündigt."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Löschen"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM wird gelöscht…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM kann nicht gelöscht werden"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Beim Löschen der SIM ist ein Fehler aufgetreten.\n\nBitte starte dein Gerät neu und versuch es dann noch einmal."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Mit Gerät verbinden"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Die App „<xliff:g id="APPNAME">%1$s</xliff:g>“ möchte sich über ein temporäres WLAN mit deinem Gerät verbinden"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Keine Geräte gefunden. Achte darauf, dass die Geräte eingeschaltet und zur Verbindung bereit sind."</string>
@@ -4445,9 +4705,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Notrufe"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Notrufe über WLAN-Telefonie werden von deinem Mobilfunkanbieter nicht unterstützt.\nDas Gerät wechselt automatisch zu einem Mobilfunknetz, um einen Notruf abzusetzen.\nNotrufe sind nur in Bereichen mit Mobilfunkabdeckung möglich."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Für Anrufe WLAN verwenden, um die Qualität zu verbessern"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Back-up für Anrufe"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Wenn <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> oder Roaming nicht verfügbar ist, kannst du über deine SIM für mobile Daten <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-Anrufe starten und annehmen."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"Back-up für Anrufe"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Eingehende MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS kann nicht gesendet werden"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tippen, um MMS über <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> zuzulassen, wenn mobile Daten deaktiviert sind"</string>
@@ -4458,6 +4715,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informationen zu den Arbeitsrichtlinien"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Einstellungen, die von deinem IT-Administrator verwaltet werden"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Mit 16K-Seitengröße starten"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Mit 16K-Seitengröße unterstützendem Kernel starten"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Mit 16-KB-Seiten-kompatiblem Kernel neu starten?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WARNUNG: Einige Apps sind möglicherweise nicht mit diesem Modus kompatibel. Das Gerät startet nach der Bestätigung neu."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Mit 4-KB-Seiten-kompatiblem Kernel neu starten?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Das Gerät startet nach der Bestätigung neu."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Kernel konnte nicht auf mit 16-KB-Seiten kompatiblen Kernel aktualisiert werden."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Änderung wird übernommen"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Fehlerbericht-Handler"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Bestimmt, welche App die Verknüpfung zum Fehlerbericht auf deinem Gerät verarbeitet"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Persönlich"</string>
@@ -4511,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Damit die Wiedergabe schnell fortgesetzt werden kann, bleibt der Mediaplayer in den Schnelleinstellungen geöffnet"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Medien auf dem Sperrbildschirm anzeigen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Damit die Wiedergabe schnell fortgesetzt werden kann, bleibt der Mediaplayer auf dem Sperrbildschirm geöffnet"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Medienempfehlungen anzeigen"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Medienempfehlungen von Assistant anzeigen"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Basierend auf deinen Aktivitäten"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Player ausblenden"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Player anzeigen"</string>
@@ -4543,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiv"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inaktiv"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Standard für <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"Anrufe"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Klang von kompatiblen Medien wird noch voller"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Erfassung von Kopfbewegungen"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Änderungen am Ton, während du deinen Kopf bewegst, damit er natürlicher klingt"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Berechtigungen synchronisieren"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Gib <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> dieselben App-Berechtigungen, die du auch auf <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> gewährt hast"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Berechtigungen von Smartphone synchronisieren"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Gib deiner Smartwatch die gleiche App-Berechtigung, die du auch deinem Smartphone gegeben hast"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audiogerätetyp"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unbekannt"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Lautsprecher"</string>
@@ -4797,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Mittel"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Hoch"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Diese App kann nur in einem einzigen Fenster geöffnet werden"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"An"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Aus"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Aus"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Aus"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"An"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Aus"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"An"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Aus"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Helle Displays werden dunkel und dunkle Displays hell angezeigt"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Heranzoomen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Aus"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Aus"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"An"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Aus"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"An"</string>
+    <string name="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">"Nach Apps mit irreführenden Funktionen suchen"</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ührenden Funktionen suchen"</string>
+    <string name="content_protection_preference_user_consent_work_profile_switch_title" msgid="3004347470520916069">"Nach geschäftlichen Apps mit irreführenden Funktionen suchen"</string>
+    <string name="content_protection_preference_subpage_summary" msgid="3595621220981703364"></string>
+    <string name="content_protection_preference_subpage_info" msgid="6890886357653365489"></string>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Das Passwort ist jetzt eingerichtet"</string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 2884bf0..e1d9875 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Μετά από 1 λεπτό"</item>
     <item msgid="1574040255478150028">"Μετά από 5 λεπτά"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index b233fc2..98790e8 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Μόνο οι χρήστες με δικαιώματα διαχειριστή μπορούν να αποκτήσουν πρόσβαση στις ρυθμίσεις για προγραμματιστές."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Σύστημα"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Σε υπηρεσία"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Εκτός υπηρεσίας"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Σύρετε προς τα πάνω για συνέχεια"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Διπλώστε το τηλέφωνό σας και σύρετε προς τα πάνω στην μπροστινή οθόνη για να συνεχίσετε να χρησιμοποιείτε την εφαρμογή ή περιμένετε λίγα δευτερόλεπτα για να κλειδώσει η οθόνη"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Σχετικά"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ήχος κλήσης και ξυπνητήρια"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Ήχος κατά τη διάρκεια κλήσεων"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Μέσα"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Ειδοποιήσεις και άλλοι ήχοι συστήματος"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Ήχοι μέσων και συστήματος"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Ειδοποιήσεις"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Από προεπιλογή, η έξοδος ήχου καθορίζεται ξεχωριστά από τις εφαρμογές"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Συσκευή Bluetooth χωρίς όνομα"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Αναζήτηση"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Ενεργοποιημένο Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Προβολή όλων"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Εμφάνιση όλων"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Γραφίδα"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Πάτημα κουμπιού πίσω μέρους"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Προφίλ εργασίας)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Σύνδεση σε ροή LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Ροές ήχου σε κοντινή απόσταση"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Ροές ήχου"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Συνδεθείτε σε μια ροή ήχου χρησιμοποιώντας τον κωδικό QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Δεν βρέθηκαν ροές ήχου κοντά."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Για να επιλέξετε μια γλώσσα για κάθε εφαρμογή, μεταβείτε στις ρυθμίσεις γλώσσας εφαρμογών."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Μάθετε περισσότερα σχετικά με τις γλώσσες εφαρμογών"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Αλλαγή γλώσσας συστήματος στα %s ;"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Να προστεθούν τα %s στις προτιμώμενες γλώσσες;"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Έτσι οι εφαρμογές και οι ιστότοποι θα γνωρίζουν ότι προτιμάτε και αυτήν τη γλώσσα."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Οι ρυθμίσεις συσκευής και οι προτιμήσεις περιοχής σας θα αλλάξουν."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Αλλαγή"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Τα %s δεν είναι διαθέσιμα"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Σάββατο"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Αν μια εφαρμογή δεν υποστηρίζει τις προτιμήσεις περιοχής, θα χρησιμοποιήσει τις προεπιλεγμένες τοπικές ρυθμίσεις."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Μάθετε περισσότερα σχετικά με τις προτιμήσεις γλώσσας."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Επιπλέον προτιμήσεις"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Όροι προσφώνησης"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Ρυθμίστε πώς θέλετε να απευθύνονται σε εσάς"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Οι εφαρμογές μπορούν να χρησιμοποιήσουν τους όρους προσφώνησής σας για να εξατομικεύσετε πώς θα απευθύνονται σε εσάς."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Δεν έχει καθοριστεί"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Θηλυκό"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Αρσενικό"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Ουδέτερα"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Να αφαιρεθεί η επιλεγμένη γλώσσα;}other{Να αφαιρεθούν οι επιλεγμένες γλώσσες;}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Το κείμενο θα προβληθεί σε άλλη γλώσσα."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Δεν είναι δυνατή η κατάργηση όλων των γλωσσών"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Τοποθεσία"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Χρήση τοποθεσίας"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Απενεργοποίηση"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Ενεργή - # εφαρμογή έχει πρόσβαση στην τοποθεσία}other{Ενεργή - # εφαρμογές έχουν πρόσβαση στην τοποθεσία}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ενεργή / # εφαρμογή έχει πρόσβαση στην τοποθεσία}other{Ενεργή / # εφαρμογές έχουν πρόσβαση στην τοποθεσία}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Φόρτωση…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Οι εφαρμογές με άδεια Συσκευές σε κοντινή απόσταση μπορούν να προσδιορίσουν τη σχετική θέση των συνδεδεμένων συσκευών."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Η πρόσβαση στην τοποθεσία είναι απενεργοποιημένη για τις εφαρμογές και τις υπηρεσίες. Η τοποθεσία της συσκευής σας ενδέχεται ωστόσο να αποστέλλεται στους χειριστές των κέντρων εκτάκτων αναγκών, όταν καλείτε ή στέλνετε μήνυμα σε έναν αριθμό έκτακτης ανάγκης."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Μάθετε περισσότερα σχετικά με τις ρυθμίσεις τοποθεσίας."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Μάθετε περισσότερα σχετικά με τις Ρυθμίσεις τοποθεσίας"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Αλλαγή πρόσβασης τοποθεσίας από Ρυθμίσεις &gt; Ασφάλεια και απόρρητο &gt; Στοιχεία ελέγχου απορρήτου"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Για βέλτιστα αποτελέσματα, χρησιμοποιήστε ένα προστατευτικό οθόνης που έχει την πιστοποίηση Made for Google. Με άλλα προστατευτικά οθόνης ενδέχεται να μην λειτουργεί το δακτυλικό αποτύπωμα του παιδιού σας."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Ξεκλείδωμα ρολογιού"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Όταν ρυθμίσετε το Ξεκλείδωμα με το πρόσωπο και το Ξεκλείδωμα με δακτυλικό αποτύπωμα, το τηλέφωνό σας θα ζητά το δακτυλικό σας αποτύπωμα όταν φοράτε μάσκα ή βρίσκεστε σε σκοτεινό χώρο.\n\nΜπορείτε να ξεκλειδώσετε το τηλέφωνο με το ρολόι σας όταν δεν αναγνωρίζεται το πρόσωπο ή το δακτυλικό σας αποτύπωμα."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Μπορείτε να ξεκλειδώσετε το τηλέφωνο με το ρολόι σας όταν δεν αναγνωρίζεται το δακτυλικό σας αποτύπωμα."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Μπορείτε να ξεκλειδώσετε το τηλέφωνο με το ρολόι σας όταν δεν αναγνωρίζεται το πρόσωπό σας."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Όταν ρυθμίσετε το Ξεκλείδωμα με το πρόσωπο και το Ξεκλείδωμα με δακτυλικό αποτύπωμα, το τηλέφωνό σας θα ζητά το δακτυλικό σας αποτύπωμα όταν φοράτε μάσκα ή βρίσκεστε σε σκοτεινό χώρο.\n\nΤο Ξεκλείδωμα ρολογιού είναι ένας άλλος βολικός τρόπος για να ξεκλειδώνετε το τηλέφωνό σας όταν, για παράδειγμα, τα δάχτυλά σας είναι βρεγμένα ή όταν δεν αναγνωρίζεται το πρόσωπό σας."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Το Ξεκλείδωμα ρολογιού είναι ένας άλλος βολικός τρόπος για να ξεκλειδώνετε το τηλέφωνό σας όταν, για παράδειγμα, δεν αναγνωρίζεται το δακτυλικό σας αποτύπωμα."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Το Ξεκλείδωμα ρολογιού είναι ένας άλλος βολικός τρόπος για να ξεκλειδώνετε το τηλέφωνό σας, για παράδειγμα, όταν δεν αναγνωρίζεται το πρόσωπό σας."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Χρήση δακτυλικού αποτυπώματος ή ρολογιού για"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Χρήση προσώπου ή ρολογιού για"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Χρήση προσώπου, δακτυλικού αποτυπώματος ή ρολογιού για"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Προστέθηκε το πρόσωπο και το <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Προστέθηκαν πρόσωπο, δακτυλικό αποτύπωμα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Προστέθηκαν πρόσωπο, δακτυλικά αποτυπώματα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Απομ. ξεκλ. Προγράμ. ελέγχου ταυτότητας"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Το ρολόι προστέθηκε"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Ρυθμίστε το ρολόι σας"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Πώς λειτουργεί"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Το ρολόι σας πρέπει να είναι ξεκλειδωμένο, να το φοράτε στον καρπό σας και να βρίσκεται κοντά στο τηλέφωνο. Δεν θα χρειαστεί να ξεκλειδώσετε ξανά το ρολόι σας όσο το φοράτε στον καρπό σας."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Όταν αυτό το τηλέφωνο ξεκλειδώνεται, θα ειδοποιείστε στο ρολόι σας. Αν ξεκλειδωθεί κατά λάθος, πατήστε την ειδοποίηση για να κλειδώσετε ξανά το τηλέφωνο."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Εσείς έχετε τον έλεγχο"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Μπορείτε να καταργήσετε το ρολόι σας από το ξεκλείδωμα ρολογιού οποιαδήποτε στιγμή στις Ρυθμίσεις"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Πατήστε μια ειδοποίηση"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Σύρετε προς τα επάνω στην οθόνη κλειδώματος"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Επιλέξτε το ρολόι σας"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Διαθέσιμα ρολόγια"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Ακύρωση"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Επιβεβαίωση"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Είστε έτοιμοι!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Μπορείτε πλέον να χρησιμοποιήσετε το ρολόι σας για να ξεκλειδώσετε αυτό το τηλέφωνο όταν σύρετε προς τα πάνω στην οθόνη κλειδώματος ή πατήσετε μια ειδοποίηση"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Τέλος"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Ξεκλείδωμα ρολογιού"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Μπορείτε να χρησιμοποιήσετε το ρολόι σας για να ξεκλειδώσετε αυτό το τηλέφωνο όταν σύρετε προς τα πάνω στην οθόνη κλειδώματος ή πατήσετε μια ειδοποίηση"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Για να χρησιμοποιήσετε το Ξεκλείδωμα ρολογιού, το ρολόι σας πρέπει να είναι ξεκλειδωμένο, να το φοράτε στον καρπό σας, να βρίσκεται κοντά και να είναι συνδεδεμένο σε αυτό το τηλέφωνο. Αν η σύνδεση διακοπεί, θα χρειαστεί να ξεκλειδώσετε το τηλέφωνο για να μπορέσετε να χρησιμοποιήσετε το Ξεκλείδωμα ρολογιού.\n\nΝα θυμάστε ότι:\nΜπορείτε να ρυθμίσετε μόνο ένα ρολόι τη φορά. Διαγράψτε πρώτα το τρέχον ρολόι για να προσθέσετε ένα άλλο."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Μάθετε περισσότερα σχετικά με το Ξεκλείδωμα ρολογιού"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Προσθήκη ρολογιού"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Κατάργηση ρολογιού"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Ξεκλείδωμα με δακτυλικό αποτύπωμα και με το πρόσωπο"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ξεκλείδωμα με πρόσωπο και δακτυλικό αποτύπωμα για την εργασία"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Απαιτείται ρύθμιση"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Ασφάλεια"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Απόρρητο"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Προφίλ εργασίας"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Ιδιωτικός χώρος"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Διατηρήστε τις ιδιωτικές εφαρμογές κλειδωμένες και κρυφές"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Διατηρήστε τις ιδιωτικές εφαρμογές σας σε ξεχωριστό χώρο που μπορείτε να κρύψετε ή να κλειδώσετε"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Κλείδωμα Ιδιωτικού χώρου"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Μπορείτε να ξεκλειδώσετε τον Ιδιωτικό χώρο όπως ξεκλειδώνετε τη συσκευή σας ή να επιλέξετε διαφορετικό κλείδωμα"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Χρήση κλειδώματος οθόνης συσκευής"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Ξεκλείδωμα με το πρόσωπο και με δακτυλικό αποτύπωμα"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Ξεκλείδωμα με δακτυλικό αποτύπωμα"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Ξεκλείδωμα με το πρόσωπο"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Πατήστε για ρύθμιση"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Ξεκλείδωμα με δακτυλικό αποτύπωμα για απόρρητο χώρο"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Ξεκλείδωμα με το πρόσωπο για απόρρητο χώρο"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Τρόποι ξεκλειδώματος"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Ίδιο με το κλείδωμα οθόνης της συσκευής"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Επιλογή νέου κλειδώματος για τον Ιδιωτικό χώρο;"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Αυτόματο κλείδωμα"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Αυτόματο κλείδωμα απόρρητου χώρου"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Μπορείτε να κλειδώσετε αυτόματα τον απόρρητο χώρο σας αν δεν έχετε χρησιμοποιήσει τη συσκευή σας για μεγάλο χρονικό διάστημα"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Κάθε φορά που κλειδώνεται η συσκευή"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Μετά από 5 λεπτά αδράνειας"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Ποτέ"</string>
+    <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_deleted" msgid="7825768516955610897">"Ο Ιδιωτικός χώρος διαγράφηκε με επιτυχία"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Δεν ήταν δυνατή η διαγραφή του Ιδιωτικού χώρου"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Ο απόρρητος χώρος ξεκλειδώθηκε"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ορισμός κλειδώματος οθόνης"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Για να χρησιμοποιήσετε τον ιδιωτικό χώρο σας, ορίστε ένα κλείδωμα οθόνης στη συσκευή"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Ρύθμιση κλειδώματος οθόνης"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Ακύρωση"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Ακύρωση"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Ρύθμιση"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Ρύθμιση ιδιωτικού χώρου"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Διατηρήστε τις ιδιωτικές εφαρμογές σας σε ξεχωριστό χώρο που μπορείτε να κρύψετε ή να κλειδώσετε"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Πώς λειτουργεί"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Μπορείτε να αποκτήσετε πρόσβαση στον ιδιωτικό χώρο σας από το κάτω μέρος της λίστας εφαρμογών"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Οι εφαρμογές στον ιδιωτικό χώρο προστατεύονται με κλείδωμα"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Οι ειδοποιήσεις από εφαρμογές στον ιδιωτικό χώρο είναι κρυφές όταν είναι κλειδωμένος"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Οι εφαρμογές στον ιδιωτικό χώρο σας δεν θα εμφανίζονται στη Διαχείριση αδειών, στον πίνακα ελέγχου απορρήτου και σε άλλες ρυθμίσεις όταν ο ιδιωτικός χώρος είναι κλειδωμένος.\n\nΟ ιδιωτικός χώρος σας δεν μπορεί να μετακινηθεί σε νέα συσκευή. Θα πρέπει να δημιουργήσετε άλλον ιδιωτικό χώρο αν επιθυμείτε να τον χρησιμοποιήσετε σε μια άλλη συσκευή.\n\nΕάν κάποιος συνδέσει τη συσκευή σας σε έναν υπολογιστή ή εγκαταστήσει επιβλαβείς εφαρμογές στη συσκευή σας, μπορεί να αποκτήσει πρόσβαση στον ιδιωτικό χώρο σας."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Ρύθμιση ιδιωτικού χώρου…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Οι ειδοποιήσεις από εφαρμογές στον ιδιωτικό χώρο είναι κρυφές όταν είναι κλειδωμένος"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Ξεκλειδώστε τον απόρρητο χώρο σας για να κοινοποιήσετε φωτογραφίες ή αρχεία από εφαρμογές του ιδιωτικού χώρου"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Ορισμένες εφαρμογές έχουν ήδη εγκατασταθεί στον ιδιωτικό χώρο σας"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Δεν είναι δυνατή η ρύθμιση του ιδιωτικού χώρου"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Επανάληψη"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Χρήση κλειδώματος οθόνης για τον ιδιωτικό χώρο;"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Μπορείτε να ξεκλειδώσετε τον ιδιωτικό χώρο όπως ξεκλειδώνετε τη συσκευή σας ή να επιλέξετε διαφορετικό κλείδωμα"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Χρήση κλειδώματος οθόνης"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Επιλογή νέου κλειδώματος"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Όλα έτοιμα!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Για να αποκτήσετε πρόσβαση στον ιδιωτικό χώρο σας, μεταβείτε στη λίστα εφαρμογών σας και έπειτα κάντε κύλιση προς τα κάτω"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Τέλος"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Κάντε κύλιση προς τα κάτω για να βρείτε τον ιδιωτικό χώρο"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Επιλέξτε ένα κλείδωμα για τον ιδιωτικό χώρο σας"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Μπορείτε να ξεκλειδώσετε τον ιδιωτικό χώρο χρησιμοποιώντας το δακτυλικό σας αποτύπωμα. Για λόγους ασφάλειας, αυτή η επιλογή απαιτεί εφεδρικό κλείδωμα."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Ορισμός PIN απόρρητου χώρου"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Ορισμός κωδ. πρόσβασης απόρρητου χώρου"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Ορισμός μοτίβου απόρρητου χώρου"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Για εμφάνιση του Ιδιωτικού χώρου (μη τελική εμπειρία χρήστη)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Άνοιγμα εφαρμογής Ρυθμίσεις"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Πατήστε την επιλογή Ασφάλεια και απόρρητο &gt; Ιδιωτικός χώρος &gt; Απόκρυψη Ιδιωτικού χώρου κατά το κλείδωμα"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Διακόπτης απενεργοποίησης Ιδιωτικού χώρου κατά το κλείδωμα"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Σημείωση για τους υπαλλήλους της Google: Η ανάπτυξη αυτής της λειτουργίας βρίσκεται ακόμα σε εξέλιξη"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Επίσης, ενδέχεται να χρειαστεί να πληκτρολογήσετε το κλειδί πρόσβασης στην άλλη συσκευή."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Επιβεβαίωση σύζευξης με συντονισμένο σύνολο συσκευών"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Να επιτρέπεται η πρόσβαση στις επαφές σας και στο ιστορικό κλήσεων"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Επιτρέψτε επίσης την πρόσβαση στις επαφές και το ιστορικό κλήσεων"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Οι πληροφορίες θα χρησιμοποιούνται για ανακοινώσεις κλήσεων κ.ά."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Δεν ήταν δυνατή η σύνδεση με τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Διαθέσιμες συσκευές"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Σε λειτουργία πτήσης"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Ειδοποίηση για δημόσια δίκτυα"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Να εμφανίζεται ειδοποίηση όταν υπάρχει διαθέσιμο δημόσιο δίκτυο υψηλής ποιότητας"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Να επιτρέπονται δίκτυα WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"Το WEP είναι ένα παλαιότερο πρωτόκολλο ασφαλείας που είναι λιγότερο ασφαλές"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Η εταιρεία κινητής τηλεφωνίας σας δεν επιτρέπει δίκτυα WEP επειδή είναι λιγότερο ασφαλή"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Αυτόματη ενεργοποίηση Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Το Wi‑Fi θα ενεργοποιείται ξανά κοντά σε αποθηκευμένα δίκτυα υψηλής ποιότητας, όπως το οικιακό δίκτυό σας"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Μη διαθέσιμο επειδή η τοποθεσία είναι απενεργοποιημένη Ενεργοποιήστε την "<annotation id="link">"τοποθεσία"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Η σάρωση Wi-Fi επιτρέπει στις εφαρμογές και στις υπηρεσίες να εκτελούν σάρωση για δίκτυα Wi‑Fi ανά πάσα στιγμή, ακόμη και όταν το Wi‑Fi είναι απενεργοποιημένο. Αυτό μπορεί να χρησιμοποιηθεί, για παράδειγμα, για τη βελτίωση λειτουργιών και υπηρεσιών που παρέχονται βάσει τοποθεσίας."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Ενεργοποίηση"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Ενεργοποιήθηκε η σάρωση Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Αυτό το δίκτυο χρησιμοποιεί ένα παλαιότερο πρωτόκολλο ασφαλείας που είναι λιγότερο ασφαλές"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Το <xliff:g id="NAME">%1$s</xliff:g> αποκλείστηκε"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Αυτό το δίκτυο χρησιμοποιεί ένα παλαιότερο πρωτόκολλο ασφαλείας με την ονομασία WEP, το οποίο είναι λιγότερο ασφαλές. Για να συνδεθείτε, μπορείτε να επιτρέψετε τα δίκτυα WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Επειδή αυτό το δίκτυο χρησιμοποιεί παλαιότερο πρωτόκολλο ασφαλείας που είναι λιγότερο ασφαλές, η εταιρεία κινητής τηλεφωνίας σας δεν επιτρέπει τη σύνδεση σε αυτό"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Να επιτρέπεται το WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Κλείσιμο"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Σύνθετες επιλογές"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Σύνθετες επιλογές αναπτυσσόμενης λίστας"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ανάπτυξη"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Παραμονή σε Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Να μην εμφανιστεί ξανά"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Σύνδεση"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Το Wi-Fi ενεργοποιήθηκε"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Σύνδεση σε <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Σύνδεση στο δίκτυο <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Σύνδεση…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Αποτυχία σύνδεσης στο δίκτυο"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Το δίκτυο δεν βρίσκεται εντός εμβέλειας"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Διαγραφή"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Τροποποίηση"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Αποτυχία κατάργησης απομνημόνευσης δικτύου"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Αποθήκευση"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Αποτυχία αποθήκευσης δικτύου"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Ακύρωση"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Δεδομένα κινητής τηλεφωνίας"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Φόρτιση σε εξέλιξη"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Φόρτιση σε εξέλιξη"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Σύνδεση σε σημείο πρόσβασης Wi-Fi"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Ισχύς σύνδεσης"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Αποθηκευμένα δίκτυα"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Δεν έχει οριστεί κωδικός πρόσβασης"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Όνομα σημείου πρόσβασης Wi-Fi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Κωδικός σημείου πρόσβασης Wi-Fi"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Ζώνη σημείου πρόσβασης"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Αυτόματη απενεργοποίηση σημείου πρόσβασης Wi-Fi"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Όταν δεν υπάρχουν συνδεδεμένες συσκευές"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Επέκταση συμβατότητας"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Απεν. προεπ. ρυθμού καρέ παιχ."</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Απενεργοποίηση περιορισμού μέγιστου ρυθμού καρέ για παιχνίδια στα <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Η λειτουργία Παρακολούθηση οθόνης χρησιμοποιεί την μπροστινή κάμερα για να διαπιστώσει αν κάποιος χρήστης κοιτάζει την οθόνη. Λειτουργεί στη συσκευή και οι εικόνες δεν αποθηκεύονται ούτε αποστέλλονται στην Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ενεργοποίηση παρακολούθησης οθόνης"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Η οθόνη διατηρείται αναμμένη όταν την κοιτάτε"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Θα χρησιμοποιηθεί περισσότερη μπαταρία, εάν το χρονικό όριο κλεισίματος οθόνης είναι μεγαλύτερο."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Η κάμερα είναι κλειδωμένη"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Η κάμερα πρέπει να είναι ξεκλειδωμένη για την Ανίχνευση προσώπων"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Η κάμερα πρέπει να είναι ξεκλειδωμένη για την Παρακολούθηση οθόνης"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"Αριθμός IMEI (υποδοχή κάρτας <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"Αριθμός IMEI (υποδοχή κάρτας <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (κύρια)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Για προβολή, επιλέξτε το αποθηκευμένο δίκτυο"</string>
+    <string name="status_imei" msgid="5719752369250485007">"Αριθμός IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"ΛΕΠΤΟ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Έκδοση PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Επίπεδο μπαταρίας"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Κοινόχρηστες"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Κοινόχρηστες ρυθμίσεις"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Αποθ/ση"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Ακύρωση"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Το πεδίο Όνομα δεν μπορεί να είναι κενό."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Το APN δεν μπορεί να είναι κενό."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Το πεδίο MCC πρέπει να αποτελείται από 3 ψηφία."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Το πεδίο MNC πρέπει να αποτελείται από 2 ή 3 ψηφία."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Η εταιρεία κινητής τηλεφωνίας δεν επιτρέπει την προσθήκη APN του τύπου %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Το πεδίο MMSC πρέπει να είναι έγκυρο."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Επαναφορά προεπιλεγμένων ρυθμίσεων APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Επαναφορά στις προεπιλογές"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Η επαναφορά των προεπιλογών APN ολοκληρώθηκε."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Επαναφορά"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Έγινε επαναφορά των ρυθμίσεων Bluetooth και Wi‑Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Διαγραφή των eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Με αυτή την ενέργεια, δεν θα ακυρωθεί κανένα πρόγραμμα υπηρεσιών κινητής τηλεφωνίας. Για τη λήψη SIM αντικατάστασης, επικοινωνήστε με την εταιρεία κινητής τηλεφωνίας σας."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Επαναφορά ρυθμίσεων"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Επαναφορά όλων των ρυθμίσεων δικτύου; Δεν μπορείτε να αναιρέσετε αυτή την ενέργεια."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Επαναφορά όλων των ρυθμίσεων δικτύου και διαγραφή των eSIM; Δεν μπορείτε να αναιρέσετε αυτή την ενέργεια."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Να γίνει επαναφορά;"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Η επαναφορά δικτύου δεν είναι διαθέσιμη γι\' αυτόν το χρήστη"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Έγινε επαναφορά των ρυθμίσεων δικτύου."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Δεν είναι δυνατή η διαγραφή των SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Δεν είναι δυνατή η διαγραφή των eSIM λόγω σφάλματος.\n\nΕπανεκκινήστε τη συσκευή σας και δοκιμάστε ξανά."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Διαγραφή όλων των δεδομένων (επαναφ. ρυθμίσεων)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Διαγρ. δεδομ. (εργ. επαναφ.)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Μουσική"</li>\n<li>"Φωτογραφίες"</li>\n<li>"Άλλα δεδομένα χρήστη"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Με αυτή την ενέργεια, δεν θα ακυρωθεί το πρόγραμμα υπηρεσιών κινητής τηλεφωνίας που χρησιμοποιείτε."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Θα διαγραφούν όλα τα προσωπικά στοιχεία και όλες οι ληφθείσες εφαρμογές σας. Δεν μπορείτε να αναιρέσετε αυτή την ενέργεια."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Θα διαγραφούν όλα τα προσωπικά στοιχεία, μεταξύ άλλων οι ληφθείσες εφαρμογές σας και οι SIM. Δεν μπορείτε να αναιρέσετε αυτή την ενέργεια."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Διαγραφή όλων των δεδομένων;"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Η επαναφορά των εργοστασιακών ρυθμίσεων δεν είναι διαθέσιμη γι\' αυτόν το χρήστη."</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Διαγραφή"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Σημείο πρόσβασης Wi-Fi, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Δεν γίνεται κοινή χρήση του διαδικτύου με άλλες συσκευές"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Ανενεργό"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Σύνδεση"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Να μην χρησιμοποιηθεί σημείο πρόσβασης Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Κοινή χρήση διαδικτύου μόνο μέσω USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Κοινοποίηση μόνο μέσω Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Κοινή χρήση διαδικτύου μόνο μέσω Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Κοινή χρήση διαδικτύου μόνο μέσω USB και Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Κοινή χρήση διαδικτύου μόνο μέσω USB και Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Κοινή χρήση διαδικτύου μόνο μέσω Bluetooth και Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Κοινή χρήση διαδικτύου μόνο μέσω USB, Bluetooth και Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Σύνδεση με USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Σύνδεση με Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Σύνδεση Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Χρησιμοποιήστε το σημείο πρόσβασης Wi-Fi και τη σύνδεση, για να παρέχετε σύνδεση στο διαδίκτυο σε άλλες συσκευές, μέσω του δικτύου Wi-Fi ή της σύνδεσης δεδομένων κινητής τηλεφωνίας που χρησιμοποιείτε. Οι εφαρμογές μπορούν επίσης να δημιουργούν ένα σημείο πρόσβασης Wi-Fi, για να μοιράζονται περιεχόμενο με κοντινές συσκευές."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Βοήθεια"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Δίκτυο κινητής τηλεφωνίας"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Πρόγραμμα κινητής τηλεφωνίας"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Εφαρμογή SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Αλλαγή εφαρμογής SMS;"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Χρήση του <xliff:g id="NEW_APP">%1$s</xliff:g> αντί του <xliff:g id="CURRENT_APP">%2$s</xliff:g> ως εφαρμογή SMS;"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Αλλαγή βοηθού Wi-Fi;"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%1$s</xliff:g> αντί για την εφαρμογή <xliff:g id="CURRENT_APP">%2$s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Χρήση της εφαρμογής <xliff:g id="NEW_APP">%s</xliff:g> για τη διαχείριση των συνδέσεων δικτύου σας;"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Κάρτα SIM άγνωστης εταιρείας κινητής τηλεφωνίας"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Ο τελεστής <xliff:g id="OPERATOR">%1$s</xliff:g> δεν διαθέτει γνωστό ιστότοπο παροχής"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Εισαγάγετε την κάρτα SIM και κάντε επανεκκίνηση"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Συνδεθείτε στο διαδίκτυο"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Πρόσφατα αιτήματα τοποθεσίας"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Τοποθεσία για προφίλ εργασίας"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Άδειες τοποθεσίας εφαρμογών"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Διαγραφή πρόσβασης"</string>
     <string name="controls_label" msgid="8671492254263626383">"Στοιχεία ελέγχου"</string>
     <string name="force_stop" msgid="2681771622136916280">"Αναγκαστική διακοπή"</string>
+    <string name="archive" msgid="9074663845068632127">"Αρχειοθέτηση"</string>
+    <string name="restore" msgid="7622486640713967157">"Επαναφορά"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Σύνολο"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Μέγεθος εφαρμογής"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Εφαρμογή αποθηκευτικού χώρου USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Δεν ήταν δυνατός ο υπολογισμός του μεγέθους του πακέτου."</string>
     <string name="version_text" msgid="7628938665256107608">"έκδοση <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Μετακίνηση"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Η αρχειοθέτηση απέτυχε"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Αρχειοθετήθηκε η εφαρμογή <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Η επαναφορά απέτυχε"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Γίνεται επαναφορά του στοιχείου <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Μια άλλη μετεγκατάσταση είναι ήδη σε εξέλιξη."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Δεν υπάρχει επαρκής αποθηκευτικός χώρος."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Η εφαρμογή δεν υπάρχει."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Διαθέσιμο πληκτρολόγιο οθόνης"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Διαχείριση πληκτρολογίων οθόνης"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Επιλογές"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Προσβασιμότητα"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Φυσικό πληκτρολόγιο"</string>
     <string name="show_ime" msgid="4334255501724746849">"Χρήση πληκτρολογίου οθόνης"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Να παραμένει στην οθόνη όταν είναι ενεργό το φυσικό πληκτρολόγιο"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Ελαστικά πλήκτρα"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Ενεργοποιήστε τα ελαστικά πλήκτρα για προσβασιμότητα σε φυσικό πληκτρολόγιο"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Ασύγχρονα πλήκτρα"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Ενεργοποιήστε τα ασύγχρονα πλήκτρα για προσβασιμότητα σε φυσικό πληκτρολόγιο"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Συντομεύσεις πληκτρολογίου"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Εμφάνιση λίστας συντομεύσεων"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Πληκτρολόγιο και εργαλεία προφίλ εργασίας"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ταξινόμηση κατά χρόνο χρήσης"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ταξινόμηση κατά τελευταία χρήση"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ταξινόμηση κατά όνομα εφαρμογής"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Τελευταία χρήση"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Τελευταία χρήση"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ποτέ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Χρόνος χρήσης"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Προσβασιμότητα"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Ρυθμίσεις προσβασιμότητας"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Συνέχεια ούτως ή άλλως"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ακύρωση"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ρυθμίσεις μεγέθυνσης"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Μεγέθ. με 3πλό πάτημα"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Συντόμ. μεγέθυνσης"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Μεγέθυνση με συντόμευση και τριπλό πάτημα"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Σχετικά με <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Διπλό πάτημα οθόνης με δύο δάχτυλα για άνοιγμα"</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="860548190334486449">"Για έναρξη και διακοπή της μεγιστοποίησης, πατήστε δύο φορές οπουδήποτε στην οθόνη με δύο δάχτυλα."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Για να χρησιμοποιήσετε μια λειτουργία προσβασιμότητας, σύρετε προς τα επάνω από το κάτω μέρος της οθόνης χρησιμοποιώντας 3 δάχτυλα.\n\nΓια εναλλαγή μεταξύ λειτουργιών, σύρετε προς τα επάνω με 3 δάχτυλα και κρατήστε τα δάχτυλά σας στην οθόνη."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ΟΚ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Ρυθμίσεις κουμπιού προσβασιμ."</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Ρυθμίσεις κουμπιών"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Συντόμευση <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Κουμπί προσβασιμότητας"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Κίνηση προσβασιμότητας"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Διπλό πάτημα οθόνης με δύο δάχτυλα"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"διπλό πάτημα οθόνης με δύο δάχτυλα"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Πατήστε γρήγορα την οθόνη {0,number,integer} φορές με δύο δάχτυλα"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Τριπλό πάτημα οθόνης"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"τριπλό πάτημα οθόνης"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Πατήστε γρήγορα στην οθόνη {0,number,integer} φορές. Αυτή η συντόμευση μπορεί να μειώσει την ταχύτητα της συσκευής σας."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Μάθετε περισσότερα για το κουμπί και την κίνηση προσβασιμότητας"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Χρήση του κουμπιού προσβασιμότητας. Η κίνηση δεν είναι διαθέσιμη με Πλοήγηση με τρία κουμπιά."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Γρήγορη πρόσβαση σε λειτουργίες προσβασιμότητας"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Για να ξεκινήσετε"</b>\n"1. Μεταβείτε στις ρυθμίσεις προσβασιμότητας\n2. Επιλέξτε μια λειτουργία και πατήστε τη συντόμευση\n3. Επιλέξτε εάν θέλετε να χρησιμοποιήσετε ένα κουμπί ή μια κίνηση για πρόσβαση στη λειτουργία"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Για να ξεκινήσετε"</b>\n"1. Μεταβείτε στις ρυθμίσεις προσβασιμότητας\n2. Επιλέξτε μια λειτουργία και πατήστε τη συντόμευση\n3. Επιλέξτε το κουμπί για πρόσβαση στη λειτουργία"</string>
+    <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_size_title" msgid="5785110470538960881">"Μέγεθος"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Τερματ. κλήσης με κουμπί λειτουργίας"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Μεγάλος δείκτης ποντικιού"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Κάντε τον δείκτη του ποντικιού πιο ευδιάκριτο"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Σκούρο θέμα για όλες τις εφαρμογές"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Ισχύει για εφαρμογές χωρίς σκούρο θέμα. Μπορεί να εμφανιστούν προβλήματα, όπως αντιστροφή χρωμάτων."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Κατάργηση κινούμενων εικόνων"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Περιορίστε την κίνηση στην οθόνη"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Μονοφωνικός ήχος"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Μπορεί να παρακολουθήσει τις αλληλεπιδράσεις σας με μια εφαρμογή ή έναν αισθητήρα εξοπλισμού και να αλληλεπιδράσει με εφαρμογές εκ μέρους σας."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ναι"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Όχι"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Διακοπή"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Ακύρωση"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Διακοπή <xliff:g id="SERVICE">%1$s</xliff:g>;"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Εάν πατήσετε το στοιχείο <xliff:g id="STOP">%1$s</xliff:g> θα διακοπεί η υπηρεσία <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Απενεργοπ."</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ενεργό"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Απενεργοποίηση <xliff:g id="SERVICE">%1$s</xliff:g>;"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Δεν έχουν εγκατασταθεί υπηρεσίες"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Δεν έχει επιλεγεί κάποια υπηρεσία"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Δεν υπάρχει περιγραφή."</string>
     <string name="settings_button" msgid="2195468788019730377">"Ρυθμίσεις"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ευαισθησία στο φως, φωτοφοβία, σκούρο θέμα, ημικρανία, πονοκέφαλος, λειτουργία ανάγνωσης, νυχτερινή λειτουργία, μείωση φωτεινότητας, λευκό σημείο"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ευκολία χρήσης, εύκολη πρόσβαση, βοήθεια, υποβοήθηση"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"όραση, ακοή, τυφλός, τυφλή, τυφλοί, κωφός, κωφή, κωφοί, κινητική υποβοήθηση, κινητικότητα, υποβοήθηση, εξυπηρέτηση, ευκολία χρήσης, ευκολία πρόσβασης, χέρι, βοήθεια"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Εργαλείο μεγέθυνσης παραθύρου, Εστίαση, Μεγιστοποίηση, Χαμηλή όραση, Μεγέθυνση, αύξηση μεγέθους"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Υπότιτλοι, υπότιτλοι, Υπότιτλοι, Ζωντανή απομαγνητοφώνηση, βαρήκοοι, απώλεια ακοής, CART, ομιλία σε κείμενο, υπότιτλος"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"χρωματική αντίθεση"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"κινητικά προβλήματα, ποντίκι"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"βοηθήματα ακοής, βαρήκοος, βαρήκοη, βαρήκοοι, απώλεια ακοής, κοχλιακά εμφυτεύματα, συσκευές ενίσχυσης, συσκευές ενίσχυσης ήχου, επεξεργαστές ήχου"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"κινητική υποβοήθηση, ποντίκι, εξωτερικό ποντίκι, ποντίκι κεφαλιού, προσαρμοστικό ποντίκι, αναπηρικό αμαξίδιο, χειριστήριο"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"βοηθήματα ακοής, βαρήκοος, βαρήκοη, βαρήκοοι, απώλεια ακοής, κοχλιακά εμφυτεύματα, συσκευές ενίσχυσης, συσκευές ενίσχυσης ήχου, επεξεργαστές ήχου, προσωπικός ενισχυτής ακοής"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"βαρήκοοι, απώλεια ακοής, υπότιτλοι, Τηλέτυπο, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"τρία κουμπιά"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"κινητικότητα, κινητική υποβοήθηση, ηλικιωμένος, αρθρίτιδα, rsi, εγκεφαλικό, τρέμουλο, σκλήρυνση κατά πλάκας, εγκεφαλική παράλυση, ρίγος, κάκωση λόγω επαναλαμβανόμενης καταπόνησης, χέρι"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"καθυστέρηση, κινητικότητα, ηλικιωμένος"</string>
     <string name="print_settings" msgid="8519810615863882491">"Εκτύπωση"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Ανενεργή"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ενεργή υπηρεσία εκτύπωσης}other{# ενεργές υπηρεσίες εκτύπωσης}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Εμφάνιση εφαρμογών με την πιο υψηλή χρήση"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Η φόρτιση βελτιστοποιήθηκε για την προστασία της μπαταρίας"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Για την επέκταση της διάρκειας ζωής της μπαταρίας, η φόρτιση βελτιστοποιήθηκε"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Η φόρτιση βελτιστοποιήθηκε για την προστασία της μπαταρίας"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Για την επέκταση της διάρκειας ζωής της μπαταρίας, η φόρτιση βελτιστοποιήθηκε όσο η συσκευή ήταν στη βάση σύνδεσης."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Η φόρτιση βελτιστοποιήθηκε για την προστασία της μπαταρίας"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Για την επέκταση της διάρκειας ζωής της μπαταρίας, η φόρτιση βελτιστοποιήθηκε όσο η συσκευή ήταν στη βάση σύνδεσης."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Πλήρης φόρτιση"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Για την προστασία της μπαταρίας, την επόμενη φορά που το tablet θα βρίσκεται στη βάση σύνδεσης, η φόρτιση θα βελτιστοποιηθεί"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Μάθετε περισσότερα σχετικά με την παύση της φόρτισης"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Συνέχιση φόρτισης"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Περιλαμβάνει δραστηριότητα παρασκηνίου υψηλής κατανάλωσης ενέργειας"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Κατάργηση"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Ακύρωση"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Πλήρης φόρτιση"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Πρόβλημα αξεσουάρ φόρτισης"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Μάθετε περισσότερα για τη μη συμβατή φόρτιση"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Διαχείριση μπαταρίας"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Αυτόματη διαχείριση εφαρμογών"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"τώρα"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Γράφημα χρήσης μπαταρίας"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Γράφημα ημερήσιας χρήσης μπαταρίας"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Γράφημα ωριαίας χρήσης μπαταρίας"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Ποσοστό επιπέδου μπαταρίας από <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> έως <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Χρήση μπαταρίας από την τελευταία φόρτιση"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Χρήση μπαταρίας για <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Χρόνος χρήσης από την τελευταία πλήρη φόρτιση"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Σήμα κλήσης έκτακτης ανάγκης"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Ορισμός συμπεριφοράς κατά την πραγματοποίηση κλήσης επείγουσας ανάγκης"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Δημιουργία αντιγράφων ασφαλείας"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Ενεργή"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Ανενεργή"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Δημιουργία αντιγράφου ασφαλείας και επαναφορά"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Προσωπικά δεδομένα"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Δημ/γία αντ/φων ασφ."</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Όνομα"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Τύπος"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Διεύθυνση διακομιστή"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Κρυπτογράφηση PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Μυστικό L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Αναγνωριστικό IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Ήδη κοινόχρηστο κλειδί IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Πιστοποιητικό χρήστη IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Πιστοποιητικό CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Πιστοποιητικό διακομιστή IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Εμφάνιση σύνθετων επιλογών"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Τομείς αναζήτησης DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Διακομιστής DNS (π.χ. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Διαδρομές προώθησης (π.χ. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Όνομα χρήστη"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Κωδικός πρόσβασης"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Αποθήκευση πληροφοριών λογαριασμού"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(δεν χρησιμοποιείται)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(να μην γίνεται επαλήθευση διακομιστή)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(Λήφθηκε από το διακομιστή)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Αυτός ο τύπος VPN δεν μπορεί να παραμένει πάντα συνδεδεμένος"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Το μονίμως ενεργό VPN υποστηρίζει μόνο αριθμητικές διευθύνσεις διακομιστή"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Θα πρέπει να καθοριστεί ένας διακομιστής DNS για το μονίμως ενεργό VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Οι διευθύνσεις διακομιστή DNS πρέπει να είναι αριθμητικές για το μονίμως ενεργό VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Οι πληροφορίες που έχουν εισαχθεί δεν υποστηρίζουν το μονίμως ενεργό VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Ακύρωση"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Παράβλεψη"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Αποκλεισμός συνδέσεων χωρίς VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Να απαιτείται σύνδεση VPN;"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Μη ασφαλές. Ενημέρωση σε VPN IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Απέτυχε η εκκίνηση του μη υποστηριζόμενου VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Επιλέξτε ένα προφίλ VPN στο οποίο θα παραμένετε πάντα συνδεδεμένοι. Η κίνηση δικτύου θα επιτρέπεται μόνο κατά τη σύνδεση σε αυτό το VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Κανένα"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Το VPN που έχει ρυθμιστεί να είναι ενεργοποιημένο πάντα απαιτεί μια διεύθυνση IP τόσο για τον διακομιστή όσο και για το DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Ειδοποιήσεις AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Λήψη ανακοινώσεων σχετικά με απαγωγές παιδιών"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Επανάληψη"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Ενεργοποίηση Διαχειριστή κλήσεων"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Επιτρέψτε σε αυτή την υπηρεσία να διαχειριστεί πώς γίνονται οι κλήσεις σας."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Διαχειριστής κλήσεων"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Ασύρματες ειδοποιήσεις έκτακτης ανάγκης"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Εταιρείες δικτύου"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Ονόματα σημείων πρόσβασης"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"πορτοφόλι"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"πληρωμή, πάτημα, πληρωμές"</string>
     <string name="keywords_backup" msgid="707735920706667685">"αντίγραφο ασφαλείας, δημιουργία αντιγράφου ασφαλείας"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"κίνηση"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"πρόσωπο, ξεκλείδωμα, εξουσιοδότηση, σύνδεση"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"πρόσωπο, ξεκλείδωμα, έλεγχος ταυτότητας, σύνδεση, δακτυλικό αποτύπωμα, βιομετρικά"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"αριθμός imei, meid, min, έκδοση prl, sv αριθμού imei"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ήχοι ενεργοποίησης"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Ζωντανοί υπότιτλοι"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Αυτόματοι υπότιτλοι στο μέσο"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Ηχεία τηλεφώνου"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Ηχεία tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Ηχεία συσκευής"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Ενσύρματα ακουστικά"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Ο ήχος από συμβατά μέσα γίνεται πιο καθηλωτικός"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Ανενεργό"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Οι πρόσφατες συζητήσεις καταργήθηκαν"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Η συνομιλία καταργήθηκε"</string>
     <string name="clear" msgid="5092178335409471100">"Διαγραφή"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Διαγραφή συζήτησης <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Εδώ θα εμφανίζονται οι συνομιλίες προτεραιότητας και οι τροποποιημένες συνομιλίες"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Όταν επισημάνετε μια συνομιλία ως προτεραιότητα ή κάνετε τυχόν αλλαγές σε συνομιλίες, θα εμφανίζονται εδώ. \n\nΓια να αλλάξετε τις ρυθμίσεις συνομιλίας: \nΣύρετε προς τα κάτω από το επάνω μέρος της οθόνης για να ανοίξετε το αναπτυσσόμενο πλαίσιο σκίασης και έπειτα πατήστε παρατεταμένα μια συνομιλία."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Ελαχιστοποίηση"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Ανενεργή"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Καρφίτσωμα εφαρμογών"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Το καρφίτσωμα εφαρμογών σάς επιτρέπει να διατηρείτε την τρέχουσα εφαρμογή ορατή έως ότου την ξεκαρφιτσώσετε. Για παράδειγμα, αυτή η λειτουργία μπορεί να χρησιμοποιηθεί για να επιτρέψετε σε έναν έμπιστο φίλο να παίξει ένα συγκεκριμένο παιχνίδι."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Όταν μια εφαρμογή έχει καρφιτσωθεί, η συγκεκριμένη εφαρμογή μπορεί να ανοίξει άλλες εφαρμογές και να είναι δυνατή η πρόσβαση σε προσωπικά δεδομένα. \n\nΓια να χρησιμοποιήσετε το καρφίτσωμα εφαρμογών: 	\n1. Ενεργοποιήστε το καρφίτσωμα εφαρμογών. 	\n2. Ανοίξτε την Επισκόπηση. 	\n3. Πατήστε το εικονίδιο εφαρμογής στο επάνω μέρος της οθόνης και έπειτα πατήστε Καρφίτσωμα."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Όταν μια εφαρμογή έχει καρφιτσωθεί, η συγκεκριμένη εφαρμογή μπορεί να ανοίξει άλλες εφαρμογές και να είναι δυνατή η πρόσβαση σε προσωπικά δεδομένα. \n\nΕάν θέλετε να μοιράζεστε με ασφάλεια τη συσκευή σας με κάποιο άλλο άτομο, δοκιμάστε να χρησιμοποιήσετε έναν χρήστη-επισκέπτη. \n\nΓια να χρησιμοποιήσετε το καρφίτσωμα εφαρμογών: 	\n1. Ενεργοποιήστε το καρφίτσωμα εφαρμογών. 	\n2. Ανοίξτε την Επισκόπηση. 	\n3. Πατήστε το εικονίδιο εφαρμογής στο επάνω μέρος της οθόνης και έπειτα πατήστε Καρφίτσωμα."</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Διαχείρ. εφαρμ. αν δεν χρησιμοποιείται"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Κατάργηση αδειών, διαγραφή προσωρινών αρχείων, διακοπή ειδοποιήσεων και αρχειοθέτηση της εφαρμογής"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Όλες οι εφαρμογές"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Εγκατεστημένες εφαρμογές"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Εφαρμογές"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Ελεύθερη"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Μνήμη που χρησιμοποιείται από εφαρμογές"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 εφαρμογή χρησιμοποίησε μνήμη το τελευταίο χρονικό διάστημα {time}}other{# εφαρμογές χρησιμοποίησαν μνήμη το τελευταίο χρονικό διάστημα {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Ενεργ. αξιολόγησης προφίλ χρήσης μνήμης"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Η αξιολόγηση προφίλ χρήσης μνήμης απαιτεί επιπλέον πόρους συστήματος."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Η αξιολόγηση προφίλ μνήμης είναι απενεργοποιημένη"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Συχνότητα"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Μέγιστη χρήση"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Δεν χρησιμοποιούνται δεδομένα"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Εμφάνιση πάνω σε άλλες εφαρμογές"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Να επιτρέπεται η εμφάνιση πάνω σε άλλες εφαρμογές"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Επιτρέψτε σε αυτή την εφαρμογή να εμφανίζεται πάνω από άλλες εφαρμογές που χρησιμοποιείτε. Αυτή η εφαρμογή θα μπορεί να δει τα σημεία που πατάτε ή να αλλάζει το περιεχόμενο που εμφανίζεται στην οθόνη."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Αλλαγή εξόδου μέσων"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Να επιτρέπεται η αλλαγή εξόδου μέσων"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Να επιτρέπεται στην εφαρμογή να επιλέγει ποια συνδεδεμένη συσκευή θα αναπαράγει ήχο ή βίντεο από άλλες εφαρμογές. Αν επιτρέπεται, η εφαρμογή θα έχει πρόσβαση σε μια λίστα διαθέσιμων συσκευών, όπως ακουστικά και ηχεία και θα επιλέγει ποια συσκευή εξόδου θα χρησιμοποιείται για ροή ή μετάδοση ήχου ή βίντεο."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Πρόσβαση σε όλα τα αρχεία"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Βελτίωση φωνητικής ενεργοποίησης"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Η συγκεκριμένη συσκευή χρησιμοποιεί απόρρητες πληροφορίες για τη βελτίωση του μοντέλου φωνητικής ενεργοποίησης. Οι εφαρμογές μπορούν να λαμβάνουν συνοπτικές ενημερώσεις που συγκεντρώνονται από πολλούς χρήστες προκειμένου να διατηρούν το απόρρητο και να βελτιώνουν ταυτόχρονα το μοντέλο για όλους.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Προειδοποίηση <xliff:g id="ID_1">^1</xliff:g> δεδομένων"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Όριο <xliff:g id="ID_1">^1</xliff:g> δεδομένων"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Προειδοποίηση <xliff:g id="ID_1">^1</xliff:g> δεδομένων/Όριο <xliff:g id="ID_2">^2</xliff:g> δεδομένων"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Ο υπολογισμός των δεδομένων από την εταιρεία κινητής τηλεφωνίας μπορεί να διαφέρει από τον υπολογισμό της συσκευής"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Εξαιρούνται δεδομένα που χρησιμοποιούνται από δίκτυα εταιρειών κινητής τηλεφωνίας."</string>
     <string name="data_used_template" msgid="8229342096562327646">"Χρησιμοποιήθηκαν <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Ορισμός προειδοπ. δεδομένων"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Ενημερώθηκε πριν από <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Ενημερώθηκε από <xliff:g id="ID_1">^1</xliff:g> μόλις τώρα"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Ενημερώθηκε μόλις τώρα"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Προβολή προγράμματος"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Προβολή λεπτομερειών"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Εξοικονόμηση δεδομένων"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Απεριόριστα δεδομένα"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Ανωμαλία στη χρήση της μπαταρίας"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Πλακίδια προγραμματιστή για γρήγορες ρυθμίσεις"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Απενεργοποίηση χρονικού ορίου εξουσιοδότησης adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Απενεργοποιήστε την αυτόματη ανάκληση των εξουσιοδοτήσεων adb για συστήματα που δεν έχουν επανασυνδεθεί εντός της προεπιλεγμένης χρονικής περιόδου (7 ημέρες) ή της περιόδου που διαμορφώνεται από τον χρήστη (τουλάχιστον 1 ημέρα)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Ίχνος Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Αισθητήρες ανενεργοί"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Ρυθμίσεις προφίλ εργασίας"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Αναζήτηση επαφών καταλόγου εργασίας στις προσωπικές εφαρμογές"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Υπηρεσία αυτόμ. συμπλήρωσης"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Προεπιλεγμένη υπηρεσία αυτόματης συμπλήρωσης"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Κωδικοί πρόσβασης"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Πρόσθετοι πάροχοι"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# κωδικός πρόσβασης}other{# κωδικοί πρόσβασης}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"αυτόματη, συμπλήρωση, αυτόματη συμπλήρωση, κωδικός πρόσβασης"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"δεδομένα, κλειδί πρόσβασης, κωδικός πρόσβασης"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"αυτόματη, συμπλήρωση, αυτόματη συμπλήρωση, δεδομένα, κλειδί πρόσβασης, κωδικός πρόσβασης"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Να απενεργοποιηθούν όλες οι υπηρεσίες;&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Οι κωδικοί πρόσβασης, τα κλειδιά πρόσβασης και άλλες αποθηκευμένες πληροφορίες δεν θα διατίθενται για αυτόματη συμπλήρωση όταν συνδέεστε"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Αλλάξτε την υπηρεσία που προτιμάτε σε &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Από εδώ και στο εξής, οι νέοι κωδικοί πρόσβασης, τα κλειδιά πρόσβασης και άλλες πληροφορίες θα αποθηκεύονται εδώ. Η υπηρεσία &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ενδέχεται να χρησιμοποιήσει το περιεχόμενο που εμφανίζεται στην οθόνη για να προσδιορίσει τι μπορεί να συμπληρωθεί αυτόματα."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Χρήση %1$s;"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Μπορείτε να έχετε μόνο 5 ενεργές υπηρεσίες"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Απενεργοποιήστε τουλάχιστον 1 υπηρεσία για να προσθέσετε κάποια άλλη"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"Το %1$s χρησιμοποιεί το περιεχόμενο που εμφανίζεται στην οθόνη για να προσδιορίσει τα στοιχεία που μπορούν να συμπληρωθούν αυτόματα."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Όριο για κωδικούς πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Μπορείτε να ενεργοποιήσετε έως και 5 κωδικούς πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων ταυτόχρονα. Για να προσθέσετε μια άλλη υπηρεσία, απενεργοποιήστε μια από τις υπάρχουσες."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Όριο κωδικών πρόσβασης, κλειδιών πρόσβασης και υπηρεσιών δεδομένων"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Μπορείτε να έχετε ταυτόχρονα ενεργοποιημένους έως και 5 κωδικούς πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων. Για να προσθέσετε μια άλλη υπηρεσία, απενεργοποιήστε μια από τις υπάρχουσες."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Απενεργοποίηση"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Αυτόματη συμπλήρωση"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Επίπεδο καταγραφής"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Οι αλλαγές στη συμβατότητα εφαρμογής μπορούν να τροποποιηθούν μόνο για εφαρμογές με δυνατότητα εντοπισμού σφαλμάτων. Εγκαταστήστε μια εφαρμογή με δυνατότητα εντοπισμού σφαλμάτων και δοκιμάστε ξανά."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Εξαρτάται από άλλη ρύθμιση"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Λογαριασμός"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d λογαριασμοί"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Όνομα συσκευής"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Βασικές πληροφορίες"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Νομικές και κανονιστικές πληροφορίες"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Να επιτρέπεται σε αυτή την εφαρμογή η εκκίνηση κατά τη σάρωση μιας ετικέτας ΕΚΠ.\nΑν αυτή η άδεια είναι ενεργοποιημένη, η εφαρμογή θα είναι διαθέσιμη ως επιλογή κάθε φορά που εντοπίζεται μια ετικέτα."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Αναπαραγωγή μέσων σε"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Αναπαραγωγή <xliff:g id="LABEL">%s</xliff:g> σε"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Θα γίνει αναπαραγωγή ήχου στο"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Αυτή η συσκευή"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Μη διαθέσιμη κατά τη διάρκεια κλήσεων"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Αποδοχή κλήσης"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Σίγαση"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Για ενεργοποίηση, αρχικά αλλάξτε την επιλογή \"Πατήστε παρατεταμένα το κουμπί λειτουργίας\" στο μενού λειτουργίας."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Λεπτομέρειες δικτύου"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Το όνομα της συσκευής σας είναι ορατό σε εφαρμογές στο τηλέφωνό σας. Ενδέχεται επίσης να είναι ορατό και σε άλλα άτομα, όταν συνδέεστε σε συσκευές Bluetooth, συνδέεστε σε ένα δίκτυο Wi-Fi ή ρυθμίζετε ένα σημείο πρόσβασης Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Συσκευές"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Επιλογή δικτύου"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Αποσυνδέθηκε"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Όνομα"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Χρώμα (χρήση από συμβατές εφαρμογές)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Αποθήκευση"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Χρήση SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Χρήση αυτής της SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Ανενεργή"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Για να απενεργοποιήσετε αυτήν τη SIM, καταργήστε την κάρτα SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Πατήστε για ενεργοποίηση <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Διαγραφή SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Προτιμώμενος τύπος δικτύου"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Αλλαγή κατάστασης λειτουργίας δικτύου"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Προτιμώμενος τύπος δικτύου"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Επικοινωνήστε με τον πάροχο του δικτύου για πληροφορίες σχετικά με τις τιμές."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Χρήση δεδομένων εφαρμογών"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Μη έγκυρη λειτουργία δικτύου <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Παράβλεψη."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Ονόματα σημείων πρόσβασης"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Δεν διατίθεται κατά τη σύνδεση σε <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Εναλλαγή σε <xliff:g id="CARRIER_NAME">%1$s</xliff:g>;"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Εναλλαγή στη χρήση κάρτας SIM;"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Χρήση <xliff:g id="CARRIER_NAME">%1$s</xliff:g>;"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Μόνο μία SIM μπορεί να είναι ενεργή κάθε φορά.\n\nΗ εναλλαγή στο δίκτυο <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> δεν θα ακυρώσει την υπηρεσία <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Μόνο μία eSIM μπορεί να είναι ενεργή κάθε φορά.\n\nΗ εναλλαγή στην εταιρεία <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> δεν θα ακυρώσει την παροχή υπηρεσιών από την εταιρεία <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Μόνο μία SIM μπορεί να είναι ενεργή κάθε φορά.\n\nΗ εναλλαγή δεν θα ακυρώσει την υπηρεσία <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Μπορείτε να χρησιμοποιείτε 2 SIM τη φορά. Για να χρησιμοποιήσετε την <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, απενεργοποιήστε κάποια άλλη SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Εναλλαγή σε <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Απενεργοποίηση <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Όχι, ευχαριστώ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Ακύρωση"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Εναλλαγή"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Απενεργοποίηση"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Δεν είναι δυνατή η ενεργοποίηση της SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Δοκιμάστε να ενεργοποιήσετε ξανά τη SIM. Εάν το πρόβλημα δεν επιλυθεί, επανεκκινήστε τη συσκευή σας."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Ρύθμιση της SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Ορίστε τις προτιμήσεις δικτύου κινητής τηλεφωνίας για χρήση πολλών SIM σε αυτή τη συσκευή"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Προσθέστε ετικέτες στις SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Αυτές οι ετικέτες θα εμφανίζονται κατά την πραγματοποίηση κλήσεων, την αποστολή μηνυμάτων, τη χρήση δεδομένων και στις Ρυθμίσεις"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Ετικέτα SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Ετικέτα"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Επιλέξτε ποιες SIM θα χρησιμ."</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Μπορείτε να χρησιμοποιείτε 2 SIM τη φορά"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Ορίστε την κύρια SIM"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Επιλέξτε ποιες SIM θέλετε να χρησιμοποιούνται από προεπιλογή για κλήσεις, μηνύματα και δεδομένα"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Η κύρια SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Κλήσεις"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Μηνύματα"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Αυτόματη εναλλαγή δεδομένων"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Χρήση είτε της μίας είτε της άλλης SIM, ανάλογα με την κάλυψη και τη διαθεσιμότητα"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Μόνο δεδομένα"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Ρύθμιση"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Επόμενο"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Δίκτυο κινητής τηλεφωνίας"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Αριθμός τηλεφώνου"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Ετικέτα και χρώμα SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ενεργοποίηση δικτύου"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Εναλλαγή εταιρείας κινητής τηλεφωνίας"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Η εταιρεία κινητής τηλεφωνίας <xliff:g id="CARRIER_NAME">%1$s</xliff:g> είναι ενεργή"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Για να χρησιμοποιήσετε αργότερα δεδομένα κινητής τηλεφωνίας, λειτουργίες κλήσεων και SMS, μεταβείτε στις ρυθμίσεις δικτύου σας."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Διαγραφή αυτής της eSIM;"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Η διαγραφή αυτής της SIM καταργεί την υπηρεσία <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> από αυτήν τη συσκευή.\n\nΗ υπηρεσία για <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> δεν θα ακυρωθεί."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Διαγραφή"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Διαγραφή SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Δεν είναι δυνατή η διαγραφή της SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Δεν είναι δυνατή η διαγραφή της SIM λόγω ενός σφάλματος .\n\nΕπανεκκινήστε τη συσκευή σας και δοκιμάστε ξανά."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Σύνδεση με τη συσκευή"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Η εφαρμογή <xliff:g id="APPNAME">%1$s</xliff:g> θέλει να χρησιμοποιήσει ένα προσωρινό δίκτυο Wi‑Fi για να συνδεθεί στη συσκευή σας."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Δεν βρέθηκαν συσκευές. Βεβαιωθείτε ότι οι συσκευές είναι ενεργοποιημένες και διαθέσιμες για σύνδεση."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Κλήσεις έκτακτης ανάγκης"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Οι κλήσεις έκτακτης ανάγκης μέσω Κλήσης Wi‑Fi δεν υποστηρίζονται από την εταιρεία κινητής τηλεφωνίας σας.\nΗ συσκευή αλλάζει αυτόματα σε δίκτυο κινητής τηλεφωνίας για την πραγματοποίηση μιας κλήσης έκτακτης ανάγκης.\nΗ πραγματοποίηση κλήσεων έκτακτης ανάγκης είναι δυνατή μόνο σε περιοχές με κάλυψη δικτύου κινητής τηλεφωνίας."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Χρήση Wi‑Fi για κλήσεις για βελτίωση της ποιότητας"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Δημιουργία αντιγράφων ασφαλείας κλήσεων"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Όταν δεν είναι διαθέσιμο το <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ή κατά την περιαγωγή, χρησιμοπ. SIM δεδομένων κιν. τηλεφ. για κλήσεις <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"δημιουργία αντιγράφων ασφαλείας κλήσεων"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Εισερχόμενο μήνυμα MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Αδυναμία αποστολής μηνύματος MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Πατήστε για να επιτρέψετε τα μηνύματα MMS στο <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> όταν τα δεδομένα κιν. τηλεφ. είναι απενεργοποιημένα"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Οι πληροφορίες πολιτικής εργασίας σας"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Η διαχείριση των ρυθμίσεων πραγματοποιείται από τον διαχειριστή IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Εκκίνηση με μέγεθος σελίδας 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Εκκίν. συσκ. με πυρήνα που υποστ. μέγ. σελ. 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Επανεκκίνηση με πυρήνα που είναι συμβατός με σελίδες μεγέθους 16 KB;"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Ορισμένες εφαρμογές μπορεί να μην είναι συμβατές με αυτή τη λειτουργία. Θα γίνει επανεκκίνηση της συσκευής μετά την επιβεβαίωση."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Επανεκκίνηση με πυρήνα που είναι συμβατός με σελίδες μεγέθους 4 KB;"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Θα γίνει επανεκκίνηση της συσκευής μετά την επιβεβαίωση."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Απέτυχε η ενημέρωση του πυρήνα ώστε να είναι συμβατός με σελίδες μεγέθους 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Εφαρμόζεται η αλλαγή"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Χειρισμός Αναφοράς σφάλματος"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Καθορίζει ποια εφαρμογή διαχειρίζεται τη συντόμευση της Αναφοράς σφάλματος στη συσκευή σας."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Προσωπικό"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Για γρήγορη συνέχιση της αναπαραγωγής, το πρόγραμμα αναπαραγωγής μέσων παραμένει ανοικτό στις Γρήγορες ρυθμίσεις"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Εμφάνιση μέσων στην οθόνη κλειδώματος"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Για να συνεχιστεί γρήγορα η αναπαραγωγή, το πρόγραμμα αναπαραγωγής μέσων παραμένει ανοικτό στην οθόνη κλειδώματος."</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Εμφάνιση προτάσεων μέσων"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Εμφάνιση προτάσεων μέσων του Βοηθού"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Με βάση τη δραστηριότητά σας"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Απόκρυψη προγράμματος αναπαραγωγής"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Εμφάνιση προγράμματος αναπαραγωγής"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Ενεργή"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Ανενεργή"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Προεπιλογή για <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"κλήσεις"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ο ήχος από συμβατά μέσα γίνεται πιο καθηλωτικός"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Παρακολούθηση κίνησης κεφαλιού"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ο ήχος αλλάζει καθώς κινείτε το κεφάλι σας προκειμένου να ακούγεται πιο φυσικός"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Συγχρονισμός αδειών"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Παραχωρήστε στη συσκευή <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> τις ίδιες άδειες εφαρμογών που παραχωρήσατε στη συσκευή <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Συγχρονισμός αδειών από το τηλέφωνο"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Εκχωρήστε στο ρολόι σας τις ίδιες άδειες εφαρμογών που έχετε επιτρέψει για το τηλέφωνό σας"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Τύπος συσκευής ήχου"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Άγνωστο"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Ηχείο"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Μέτρια"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Υψηλή"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Αυτή η εφαρμογή μπορεί να ανοίξει μόνο σε ένα παράθυρο"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Η λειτουργία είναι ενεργή"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Η λειτουργία είναι ανενεργή"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Η συντόμευση είναι ανενεργή"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Ανενεργή"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Ενεργή"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Ανενεργή"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Ενεργή"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Ανενεργή"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Μετατρέπει τις ανοιχτόχρωμες οθόνες σε σκουρόχρωμες και τις σκουρόχρωμες οθόνες σε ανοιχτόχρωμες"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Μεγεθύνετε στην οθόνη"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Ανενεργή"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Ανενεργή"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Ενεργή"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Ανενεργή"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Ενεργή"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Ο κωδικός πρόσβασης έχει πλέον οριστεί"</string>
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 7f5af74..ab9f648 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index e008693..17ca72d 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"No need, you are already a developer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Please enable developer options first."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Only the admin users can access developer settings."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In service"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Out of service"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Front display turns on when you fold your device"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Only games, videos and more"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Front display turns on for apps that stop your screen going idle"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swipe up to continue"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Fold your phone and swipe up on the front display to continue using the app, or wait a few seconds for the screen to lock"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Never"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Front display locks when you fold your device"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Use auto-rotate"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Related"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringtone and alarms"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio during calls"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notifications and other system sounds"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media and system sounds"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifications"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"By default, audio output is determined by individual apps"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Unnamed Bluetooth device"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Searching"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth turned on"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"See all"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"See all"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Tail button press"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Work profile)"</string>
     <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 an 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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Add %s to preferred languages?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"This lets apps and websites know that you also prefer this language."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Your device settings and regional preferences will change."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Change"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s not available"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Saturday"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"If an app doesn’t support regional preferences, the app will use its default locale settings."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Learn more about language preferences."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Additional preferences"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Terms of address"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Set how you want to be addressed"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps can use your terms of address to personalise how they address you."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{On – # app has access to location}other{On – # apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Learn more about location settings."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"To change location access, go to Settings &gt; Security and privacy &gt; Privacy controls"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"For best results, use a screen protector that’s Made For Google certified. With other screen protectors, your child’s fingerprint may not work."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Watch Unlock"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"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’t recognised."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"You can unlock with your watch when your fingerprint isn’t recognised."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"You can unlock with your watch when your face isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"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\nWatch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Watch Unlock is another convenient way to unlock your phone, for example, when your fingerprint isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Watch Unlock is another convenient way to unlock your phone, for example, when your face isn’t recognised."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use fingerprint or watch to"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use face or watch to"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use face, fingerprint or watch to"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\'t recognised.\n\nYou can use your watch to unlock this phone when you:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist and within reach of this phone. You won\'t need to unlock your watch again while it\'s on your wrist."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you\'ll get notified on your watch. If it was unlocked when you didn\'t intend to, tap the notification to lock the phone again."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You\'re in control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You\'re ready to go!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach and connected to this phone. If the connection is interrupted, you\'ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, remove the current one first."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Security"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Keep private apps locked and hidden"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Private Space lock"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"You can unlock Private Space the same way that you unlock your device, or choose a different lock"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Use device screen lock"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Face and Fingerprint Unlock"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingerprint Unlock"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Face Unlock"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tap to set up"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingerprint Unlock for private space"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Face Unlock for private space"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Ways to unlock"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Same as device screen lock"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Choose a new lock for Private Space?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lock automatically"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lock private space automatically"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"You can lock your private space automatically if you haven\'t used your device for a period of time"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Every time device locks"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"After 5 minutes of inactivity"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Never"</string>
+    <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_delete_title" msgid="3075645119800272800">"Delete Private Space"</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="private_space_unlocked" msgid="9091600948712932046">"Private space unlocked"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"To use your 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="private_space_cancel_label" msgid="379259667396956886">"Cancel"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Set up"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Set up a private space"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"How it works"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"You can access your private space from the bottom of your apps list"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps in your private space are protected by a lock"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notifications from apps in your private space are hidden when it’s locked"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps in your private space won\'t appear in permission manager, privacy dashboard and other settings when your private space is locked.\n\nYour private space can\'t be moved to a new device. You\'ll need to set up another private space if you want to use it on another device.\n\nAnyone that connects your device to a computer or installs harmful apps on your device may be able to access your private space."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notifications from apps in private space are hidden when it’s locked"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Unlock private space to share photos or files from private space apps"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Some apps are already installed in your private space"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Couldn’t set up private space"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try again"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Use screen lock to unlock private space?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"You can unlock your private space the same way you unlock your device, or choose a different lock"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Choose new lock"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"All set!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"To access your private space, go to your apps list, then scroll down"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Done"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scroll down to find private space"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Choose a lock for your private space"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"You can unlock your private space using your fingerprint. For security, this option requires a backup lock."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Set a PIN for your private space"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Set a password for your private space"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Set a pattern for your 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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn\'t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In aeroplane mode"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notify for public networks"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notify when a high‑quality public network is available"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Allow WEP networks"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP is an older security protocol that\'s less secure"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Your operator doesn\'t allow WEP networks because they\'re less secure"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Turn on Wi‑Fi automatically"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi will turn back on near high‑quality saved networks, like your home network"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Unavailable because location is turned off. Turn on "<annotation id="link">"location"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi scanning allows apps and services to scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location‑based features and services."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Turn on"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi scanning turned on"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"This network uses an older security protocol that\'s less secure"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> is blocked"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"This network uses an older security protocol called WEP, which is less secure. To connect anyway, you can allow WEP networks."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Your operator doesn\'t allow you to connect to this network because it uses an older security protocol that’s less secure"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Allow WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Close"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Advanced options"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Drop-down list Advanced Options"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"expand"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Save"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobile data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – charging"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – charging"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot connection"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Connection strength"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No password set"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot name"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot password"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Turn off hotspot automatically"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"When no devices are connected"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Extend compatibility"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Display white balance"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Disable default frame rate for games"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Disable limiting the maximum frame rate for games at <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on-device, and images are never stored or sent to Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Longer screen timeout will use more battery."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for face detection"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for screen attention"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM slot <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM slot <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primary)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"To view, choose saved network"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL version"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Battery level"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Communal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Save"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC field must be 3 digits."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC field must be 2 or 3 digits."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operator does not allow adding APNs of type %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC field must be valid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restoring default APN settings."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Reset to default"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Reset default APN settings completed"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reset"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi‑Fi have been reset"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Erase eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"This won’t cancel any mobile service plans. To download replacement SIMs, contact your operator."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Reset settings"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Reset all network settings? You can\'t undo this action."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Reset all network settings and erase eSIMs? You can’t undo this action."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Reset?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Network reset is not available for this user"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Network settings have been reset"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Can’t delete SIMs"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMs can’t be erased due to an error.\n\nRestart your device and try again."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Erase all data (factory reset)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Erase all data (factory reset)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Music"</li>\n<li>"Photos"</li>\n<li>"Other user data"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"This will not cancel your mobile service plan."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"All of your personal information and downloaded apps will be deleted. You can’t undo this action."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"All of your personal information, including downloaded apps &amp; SIMs, will be deleted. You can’t undo this action."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Erase all data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Factory reset is not available for this user"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Erasing"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Not sharing Internet with other devices"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Off"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Don’t use Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Only share Internet via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Only share Internet via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Only share Internet via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Only share Internet via USB and Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Only share Internet via USB and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Only share Internet via Bluetooth and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Only share Internet via USB, Bluetooth and Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet tethering"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide Internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Clear access"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controls"</string>
     <string name="force_stop" msgid="2681771622136916280">"Force stop"</string>
+    <string name="archive" msgid="9074663845068632127">"Archive"</string>
+    <string name="restore" msgid="7622486640713967157">"Restore"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"App size"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB storage app"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Couldn\'t compute the package size."</string>
     <string name="version_text" msgid="7628938665256107608">"Version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Move"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiving failed"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archived <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restoring failed"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restoring <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Another migration is already in progress."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Not enough storage space."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"App doesn\'t exist."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Available on-screen keyboard"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Manage on-screen keyboards"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Enable bounce keys for physical keyboard accessibility"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Enable sticky keys for physical keyboard accessibility"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sort by usage time"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sort by last time used"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sort by app name"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Last time used"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Last used"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"never"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Usage time"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibility"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Accessibility settings"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Magnify with triple-tap"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Magnify with shortcut"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Magnify with shortcut &amp; triple-tap"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"About <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Two-finger double-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="860548190334486449">"To start and stop magnification, double-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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"To use an accessibility 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Accessibility button settings"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Button settings"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> shortcut"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Accessibility button"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Accessibility gesture"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Learn more about accessibility button &amp; gesture"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Using the accessibility button. The gesture isn’t available with 3-button navigation."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Quickly access accessibility features"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose whether you want to use a button or gesture to access the feature"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose the button to access the feature"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose whether you want to use a button or gesture to access the feature&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose the button to access the feature&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Use button or gesture"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Location"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Size"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Power button ends call"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Large mouse cursor"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Make the mouse pointer more noticeable"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Make all apps dark"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Applies to apps without their own Dark theme. Some apps may have display issues, like inverted colours."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remove animations"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce movement on the screen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancel"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Stop <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Tapping <xliff:g id="STOP">%1$s</xliff:g> will stop <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
     <string name="settings_button" msgid="2195468788019730377">"Settings"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Window magnifier, zoom, magnification, low vision, enlarge, make bigger"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"colour contrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printing"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"See apps with highest usage"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Charging optimised to protect your battery"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"To help extend your battery\'s lifespan, charging is optimised"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Charging optimised to protect your battery"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"To help extend your battery\'s lifespan, charging is optimised while docked"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Charging optimised to protect your battery"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"To help extend your battery\'s lifespan, charging is optimised while docked"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Charging to full"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"To protect your battery, charging will be optimised the next time your tablet is docked"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Learn more about charging is paused"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Resume charging"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Includes high-power background activity"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remove"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancel"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Charge to full"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Issue with charging accessory"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Learn more about incompatible charging"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Manage apps automatically"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"now"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Battery usage chart"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Daily battery usage chart"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Hourly battery usage chart"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Battery level percentage from <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> to <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Battery usage since last full charge"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Battery usage for <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Screen time since last full charge"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"On"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Off"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup &amp; restore"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personal data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Back up my data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Name"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Server address"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP encryption (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secret"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifier"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec preshared key"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec user certificate"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA certificate"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec server certificate"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Show advanced options"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS search domains"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS servers (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Forwarding routes (e.g. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Username"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Password"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Save account information"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(not used)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(don\'t verify server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(received from server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"This VPN type can\'t stay connected at all times"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Always-on VPN only supports numeric server addresses"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"A DNS server must be specified for always-on VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS server addresses must be numeric for always-on VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"The information entered doesn\'t support always-on VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancel"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Dismiss"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receive bulletins about child abductions"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repeat"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Enable Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Allow this service to manage how your calls are made."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Wireless emergency alerts"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Network operators"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Access point names"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pay, tap, payments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesture"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"face, unlock, auth, sign in"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"face, unlock, auth, sign in, fingerprint, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl version, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Power on sounds"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatically caption media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Phone speakers"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablet speakers"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Device speakers"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Wired headphones"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio from compatible media becomes more immersive"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Off"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Recent conversations removed"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversation removed"</string>
     <string name="clear" msgid="5092178335409471100">"Clear"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Clear <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Priority and modified conversations will appear here"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Once you mark a conversation as priority, or make any other changes to conversations, they will appear here. \n\nTo change conversation settings: \nSwipe down from the top of the screen to open the pull-down shade, then touch and hold a conversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimise"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Off"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"App pinning"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to securely share your device with someone, try using a guest user instead. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to share your device with someone securely, try using a guest user instead. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"When app is pinned: \n\n• Personal data may be accessible \n(such as contacts and email content) \n• Pinned app may open other apps \n\nOnly use app pinning with people you trust."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Ask for unlock pattern before unpinning"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Ask for PIN before unpinning"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Unused app settings"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pause app activity if unused"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remove permissions, delete temporary files and stop notifications"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Manage app if unused"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remove permissions, delete temporary files, stop notifications and archive the app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"All apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installed apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Free"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memory used by apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app used memory in the last {time}}other{# apps used memory in the last {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Enable memory usage profiling"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Memory usage profiling requires additional system resources."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Memory profiling disabled"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequency"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximum usage"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No data used"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Display over other apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Allow display over other apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Allow this app to display on top of other apps that you’re using. This app will be able to see where you tap or change what’s displayed on the screen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Change media output"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Allow app to switch media output"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Allow this app to choose which connected device plays audio or video from other apps. If allowed, this app can access a list of available devices such as headphones and speakers and choose which output device is used to stream or cast audio or video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"All files access"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Improve voice activation"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"This device uses private intelligence to improve the voice activation model. Apps can receive summarised updates that are aggregated across many users to maintain privacy while improving the model for everyone.\n\n"<a href="">"More about private intelligence"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning/<xliff:g id="ID_2">^2</xliff:g> data limit"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operator data accounting may differ from device accounting"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by operator networks"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Updated <xliff:g id="ID_1">^2</xliff:g> ago"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Updated by <xliff:g id="ID_1">^1</xliff:g> just now"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Updated just now"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"View plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"View details"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Data Saver"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Unrestricted data"</string>
@@ -3864,6 +4046,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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Quick settings developer tiles"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Disable adb authorisation timeout"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Disable automatic revocation of adb authorisations for systems that have not reconnected within the default (seven days) or user-configured (minimum one day) amount of time."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensors Off"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Search for work directory contacts in personal apps"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Auto-fill service"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Default auto-fill service"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passwords, passkeys and other saved info won\'t be available for autofill when you sign in"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Change your preferred service to &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_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"You can only have 5 services on"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Turn off at least 1 service to add another"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be auto-filled."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys and data services limit"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Auto-fill"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"App compatibility changes can only be modified for debuggable apps. Install a debuggable app and try again."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depends on another setting"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d accounts"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Device name"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basic info"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legal and regulatory"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Allow this app to launch when an NFC tag is scanned.\nIf this permission is on, the app will be available as an option whenever a tag is detected."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Play media to"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Play <xliff:g id="LABEL">%s</xliff:g> on"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio will play on"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"This device"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Unavailable during calls"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Mute"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"To enable, first change \'Press &amp; hold power button\' to the power menu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. 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="devices_title" msgid="649715719278562515">"Devices"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Choose network"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Disconnected"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Name"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Colour (used by compatible apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Save"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Use SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Use this SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Off"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"To disable this SIM, remove the SIM card"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tap to activate <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Erase SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Change the network operating mode"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferred network type"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Check with your network provider for pricing."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"App data usage"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Access point names"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Switch to using SIM card?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Only one SIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Only one eSIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Only one SIM can be active at a time.\n\nSwitching won’t cancel your <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> service."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"You can use two SIMs at a time. To use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, turn off another SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Turn off <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, thanks"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancel"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Switch"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Turn off"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Set up your SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Set your mobile network preferences to use multiple SIMs on this device"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Label your SIMs"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"You’ll see these labels when making calls, sending texts and using data, and in Settings"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM label"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Select which SIMs to use"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"You can use two SIMs at a time"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Set your primary SIMs"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Choose which SIMs to use by default for calls, texts and data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Your primary SIMs"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Calls"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Texts"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatic data switching"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Use data from either SIM depending on coverage and availability"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data only"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Set up"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Next"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobile network"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Phone number"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM label and colour"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operator switching"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"To use mobile data, call features and SMS at a later time, go to your network settings"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Erase this eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Erasing SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Can\'t erase SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"This SIM can\'t be erased due to an error.\n\nRestart your device and try again."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connect to device"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> app wants to use a temporary Wi‑Fi network to connect to your device"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No devices found. Make sure that devices are turned on and available to connect."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Emergency calls"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Emergency calls over Wi‑Fi Calling are not supported by your operator.\nThe device switches automatically to a mobile network to place an emergency call.\nEmergency calls are only possible in areas with mobile coverage."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Use Wi‑Fi for calls to improve quality"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Backup calling"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"If <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> is unavailable or roaming, use your mobile data SIM for <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> calls."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"backup calling"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Incoming MMS message"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Can’t send MMS message"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tap to allow MMS messaging on <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> when mobile data is off"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Your work policy info"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Settings managed by your IT admin"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Boot with 16K page size"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Boot device using 16K page size supported kernel"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reboot with 16 KB pages compatible kernel?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WARNING: Some applications may not be compatible with this mode. Device will reboot after confirmation."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reboot with 4 KB pages compatible kernel?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Device will reboot after confirmation."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Failed to update kernel to 16 KB pages compatible kernel."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Applying change"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determines which app handles the bug report shortcut on your device."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"To quickly resume playback, media player stays open in Quick Settings"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Show media on lock screen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"To quickly resume playback, media player stays open on lock screen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Show media recommendations"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Show Assistant media recommendations"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Based on your activity"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Hide player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Show player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Active"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactive"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Default for <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"calls"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sync permissions"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Give <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> the same app permissions that you\'ve allowed on <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sync permissions from phone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Give your watch the same app permissions that you’ve allowed on this phone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
     <string name="contrast_high" msgid="3988567609694797696">"High"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in one window"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"On"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Off"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Turns light screens dark and dark screens light"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom in on the screen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Off"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Off"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Password is now set up"</string>
 </resources>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 46c29b1..b401f55 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 968f684..be423af 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"No need, you are already a developer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Please enable developer options first."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Only the admin users can access developer settings."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In Service"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Out of Service"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Front display turns on when you fold your device"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Only games, videos, and more"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Front display turns on for apps that stop your screen going idle"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swipe up to continue"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Fold your phone and swipe up on the front display to continue using the app, or wait a few seconds for the screen to lock"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Never"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Front display locks when you fold your device"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Use auto-rotate"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Related"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringtone and alarms"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio during calls"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notifications and other system sounds"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media and system sounds"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifications"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"By default, audio output is determined by individual apps"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Unnamed Bluetooth device"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Searching"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth turned on"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"See all"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"See all"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Tail button press"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Work profile)"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Add %s to preferred languages?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"This lets apps and websites know you also prefer this language."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Your device settings and regional preferences will change."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Change"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s not available"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Saturday"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"If an app doesn’t support regional preferences, the app will use its default locale settings."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Learn more about language preferences."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Additional preferences"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Terms of address"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Set how you want to be addressed"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps can use your terms of address to personalize how they address you."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{On—# app has access to location}other{On—# apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Learn more about Location Settings."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about Location settings"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"To change location access, go to Settings &gt; Security and Privacy &gt; Privacy controls"</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 &amp; credentials"</string>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"For best results, use a screen protector that’s Made for Google certified. With other screen protectors, your child’s fingerprint may not work."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Watch Unlock"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"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’t recognized."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"You can unlock with your watch when your fingerprint isn’t recognized."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"You can unlock with your watch when your face isn’t recognized."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"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\nWatch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face isn’t recognized."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Watch Unlock is another convenient way to unlock your phone, for example, when your fingerprint isn’t recognized."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Watch Unlock is another convenient way to unlock your phone, for example, when your face isn’t recognized."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use fingerprint or watch to"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use face or watch to"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use face, fingerprint, or watch to"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn’t recognized.\n\nYou can use your watch to unlock this phone when you:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist, and within reach of this phone. You won’t need to unlock your watch again while it’s on your wrist."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you’ll get notified on your watch. If it was unlocked when you didn’t intend to, tap the notification to lock the phone again."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You’re in control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You’re all set!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach, and connected to this phone. If the connection is interrupted, you’ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, first remove the current one."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint &amp; Face Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -493,6 +545,82 @@
     <string name="security_header" msgid="961514795852103424">"Security"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Keep private apps locked and hidden"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Private Space lock"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"You can unlock Private Space the same way you unlock your device, or choose a different lock"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Use device screen lock"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Face &amp; Fingerprint Unlock"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingerprint Unlock"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Face Unlock"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tap to set up"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingerprint Unlock for Private Space"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Face Unlock for Private Space"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Ways to unlock"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Same as device screen lock"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Choose a new lock for Private Space?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lock automatically"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lock private space automatically"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"You can lock your private space automatically if you havent used your device for a period of time"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Every time device locks"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"After 5 minutes of inactivity"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Never"</string>
+    <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_delete_title" msgid="3075645119800272800">"Delete Private Space"</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="private_space_unlocked" msgid="9091600948712932046">"Private space unlocked"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"To use your 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="private_space_cancel_label" msgid="379259667396956886">"Cancel"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Set up"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Set up a private space"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"How it works"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"You can access your private space from the bottom of your apps list"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps in your private space are protected by a lock"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notifications from apps in your private space are hidden when it’s locked"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps in your private space won\'t appear in permission manager, privacy dashboard, and other settings when your private space is locked.\n\nYour private space can\'t be moved to a new device. You\'ll need to set up another private space if you want to use it on another device.\n\nAnyone that connects your device to a computer or installs harmful apps on your device may be able to access your private space."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notifications from apps in private space are hidden when it’s locked"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Unlock private space to share photos or files from private space apps"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Some apps are already installed in your private space"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Couldn’t set up private space"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try Again"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Use screen lock to unlock private space?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"You can unlock your private space the same way you unlock your device, or choose a different lock"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Choose new lock"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"All set!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"To access your private space, go to your apps list then scroll down"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Done"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scroll down to find private space"</string>
+    <string name="private_space_retry_signin_title" msgid="8090276618867918844">"Sign in"</string>
+    <string name="private_space_retry_summary" msgid="1920444015972648774">"Sign in to an account to use with your private space"</string>
+    <string name="private_space_skip_login_label" msgid="7078019409056628192">"Not now"</string>
+    <string name="private_space_continue_login_label" msgid="7779965766333065391">"Continue"</string>
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Choose a lock for your private space"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"You can unlock your private space using your fingerprint. For security, this option requires a backup lock."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Set a PIN for your private space"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Set a password for your private space"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Set a pattern for your 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>
@@ -648,13 +776,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn’t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
     <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>
@@ -707,6 +837,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>
@@ -725,6 +857,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In Airplane mode"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notify for public networks"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notify when a high‑quality public network is available"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Allow WEP networks"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP is an older security protocol that\'s less secure"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Your carrier doesn\'t allow WEP networks because they\'re less secure"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Turn on Wi‑Fi automatically"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi will turn back on near high‑quality saved networks, like your home network"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Unavailable because location is turned off. Turn on "<annotation id="link">"location"</annotation>"."</string>
@@ -746,6 +881,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi scanning allows apps and services to scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location‑based features and services."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Turn on"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi scanning turned on"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"This network uses an older security protocol that\'s less secure"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> is blocked"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"This network uses an older security protocol called WEP, which is less secure. To connect anyway, you can allow WEP networks."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Your carrier doesn\'t allow you to connect to this network because it uses an older security protocol that’s less secure"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Allow WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Close"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Advanced options"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Drop down list Advanced Options"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"expand"</string>
@@ -841,15 +982,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Save"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -871,7 +1009,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobile data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Charging"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Charging"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot connection"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Connection strength"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
@@ -904,7 +1042,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No password set"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot name"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot password"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP Band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Turn off hotspot automatically"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"When no devices are connected"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Extend compatibility"</string>
@@ -1008,8 +1145,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Display white balance"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Disable default frame rate for games"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Disable limiting the maximum frame rate for games at <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1159,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on device, and images are never stored or sent to Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Longer screen timeout will use more battery."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for Face Detection"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for Screen Attention"</string>
@@ -1150,6 +1290,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (sim slot <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (sim slot <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primary)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"To view, choose saved network"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL version"</string>
@@ -1243,8 +1385,10 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Battery level"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Communal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
+    <string name="satellite_setting" msgid="706846910912477125">"Satellite Messaging"</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>
@@ -1267,6 +1411,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>
@@ -1274,11 +1420,13 @@
     <string name="menu_save" msgid="6611465355127483100">"Save"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <string name="error_duplicate_apn_entry" msgid="7792928408935276618">"Duplicate apn entry."</string>
     <string name="error_name_empty" msgid="1258275899283079142">"The Name field can’t be empty."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"The APN can’t be empty."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC field must be 3 digits."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC field must be 2 or 3 digits."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Carrier does not allow adding APNs of type %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC field must be valid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restoring default APN settings."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Reset to default"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Reset default APN settings completed."</string>
@@ -1291,7 +1439,7 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reset"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi‑Fi have been reset"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Erase eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"This won’t cancel any mobile service plans. To download replacement SIMs, contact your carrier."</string>
+    <string name="reset_esim_desc" msgid="6125192435907740751">"This won’t cancel your mobile service plan. To get a replacement SIM, contact your carrier."</string>
     <string name="reset_network_button_text" msgid="2281476496459610071">"Reset settings"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Reset all network settings? You can\'t undo this action."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Reset all network settings and erase eSIMs? You can’t undo this action."</string>
@@ -1299,15 +1447,15 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Reset?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Network reset is not available for this user"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Network settings have been reset"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Can’t erase SIMs"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMs can’t be erased due to an error.\n\nRestart your device and try again."</string>
+    <string name="reset_esim_error_title" msgid="6516110227665862295">"Can’t erase eSIMs"</string>
+    <string name="reset_esim_error_msg" msgid="8459527827897797168">"Something went wrong and your eSIMs weren’t erased.\n\nRestart your device and try again."</string>
     <string name="main_clear_title" msgid="277664302144837723">"Erase all data (factory reset)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Erase all data (factory reset)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Music"</li>\n<li>"Photos"</li>\n<li>"Other user data"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"This will not cancel your mobile service plan."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"All of your personal information and downloaded apps will be deleted. You can’t undo this action."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"All of your personal information, including downloaded apps &amp; SIMs, will be deleted. You can’t undo this action."</string>
+    <string name="main_clear_final_desc_esim" msgid="6592404057237813989">"All of your personal information, including downloaded apps &amp; eSIMs, will be deleted. You can’t undo this action."</string>
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Erase all data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Factory reset is not available for this user"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Erasing"</string>
@@ -1340,16 +1488,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Not sharing internet with other devices"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Off"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Don’t use Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Only share internet via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Only share internet via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Only share internet via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Only share internet via USB and Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Only share internet via USB and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Only share internet via Bluetooth and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Only share internet via USB, Bluetooth and Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet tethering"</string>
@@ -1357,7 +1495,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1365,10 +1502,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -1551,6 +1684,12 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Clear access"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controls"</string>
     <string name="force_stop" msgid="2681771622136916280">"Force stop"</string>
+    <string name="archive" msgid="9074663845068632127">"Archive"</string>
+    <string name="restore" msgid="7622486640713967157">"Restore"</string>
+    <string name="restoring_step_one" msgid="3465050101254272874">"Restoring"</string>
+    <string name="restoring_step_two" msgid="140484846432595108">"Restoring."</string>
+    <string name="restoring_step_three" msgid="3712883580876329811">"Restoring.."</string>
+    <string name="restoring_step_four" msgid="8966846882470446209">"Restoring..."</string>
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"App size"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB storage app"</string>
@@ -1604,6 +1743,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Couldn’t compute package size."</string>
     <string name="version_text" msgid="7628938665256107608">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Move"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiving failed"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archived <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restoring failed"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restoring <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Another migration is already in progress."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Not enough storage space."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"App doesn’t exist."</string>
@@ -1689,9 +1832,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Available On-screen keyboard"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Manage on-screen keyboards"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Enable Bounce keys for physical keyboard accessibility"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Enable Sticky keys for physical keyboard accessibility"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -1789,7 +1937,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sort by usage time"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sort by last time used"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sort by app name"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Last time used"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Last used"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"never"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Usage time"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibility"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Accessibility settings"</string>
@@ -1852,7 +2001,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Magnify with triple-tap"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Magnify with shortcut"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Magnify with shortcut &amp; triple-tap"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"About <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2026,20 @@
     <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_double" msgid="3912970760484557646">"Two finger double 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="860548190334486449">"To start and stop magnification, double-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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"To use an accessibility 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_button" msgid="2031773187678948436">"Got it"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Accessibility button settings"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Button settings"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> shortcut"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Accessibility button"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Accessibility gesture"</string>
@@ -1905,6 +2055,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_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2076,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Learn more about accessibility button &amp; gesture"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Using the accessibility button. The gesture isn\'t available with three-button navigation"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Quickly access accessibility features"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose whether you want to use a button or gesture to access the feature"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose the button to access the feature"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose whether you want to use a button or gesture to access the feature&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose the button to access the feature&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Use button or gesture"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Location"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Size"</string>
@@ -1940,6 +2093,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Power button ends call"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Large mouse pointer"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Make the mouse pointer more noticeable"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Make all apps dark"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Applies to apps without their own dark theme. Some apps may have display issues, like inverted colors."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remove animations"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce movement on the screen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2147,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>
@@ -2128,16 +2284,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancel"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Stop <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Tapping <xliff:g id="STOP">%1$s</xliff:g> will stop <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
     <string name="settings_button" msgid="2195468788019730377">"Settings"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2152,10 +2307,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"color contrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printing"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -2190,11 +2348,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>
@@ -2230,12 +2393,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"See apps with highest usage"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Charging optimized to protect your battery"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"To help extend your battery\'s lifespan, charging is optimized"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Charging optimized to protect your battery"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"To help extend your battery\'s lifespan, charging is optimized while docked"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Charging optimized to protect your battery"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"To help extend your battery\'s lifespan, charging is optimized while docked"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Charging to full"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"To protect your battery, charging will be optimized the next time your tablet is docked"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Learn more about charging is paused"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Resume charging"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Includes high-power background activity"</string>
@@ -2253,7 +2410,7 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remove"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancel"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Charge to full"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Issue with charging accessory"</string>
+    <string name="battery_tip_incompatible_charging_title" msgid="1567827436103364999">"Check charging accessory"</string>
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Learn more about incompatible charging"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Manage apps automatically"</string>
@@ -2293,6 +2450,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>
@@ -2336,6 +2494,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>
@@ -2343,9 +2502,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"now"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Battery usage chart"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Daily battery usage chart"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Hourly battery usage chart"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Battery level percentage from <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> to <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Battery usage since last full charge"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Battery usage for <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Screen time since last full charge"</string>
@@ -2461,8 +2622,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialing signal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Set behavior when an emergency call is placed"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"On"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Off"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup &amp; restore"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personal data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Back up my data"</string>
@@ -2551,6 +2710,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>
@@ -2600,27 +2760,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Name"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Server address"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP encryption (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secret"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifier"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec pre-shared key"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec user certificate"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA certificate"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec server certificate"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Show advanced options"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS search domains"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS servers (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Forwarding routes (e.g. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Username"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Password"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Save account information"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(not used)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(don’t verify server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(received from server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"This VPN type can\'t stay connected at all times"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Always-on VPN only supports numeric server addresses"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"A DNS server must be specified for always-on VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS server addresses must be numeric for always-on VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"The information entered doesn\'t support always-on VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancel"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Dismiss"</string>
@@ -2656,6 +2807,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
@@ -2790,11 +2942,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receive bulletins about child abductions"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repeat"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Enable Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Allow this service to manage how your calls are made."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Wireless emergency alerts"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Network operators"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Access point names"</string>
@@ -2948,7 +3095,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pay, tap, payments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesture"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"face, unlock, auth, sign in"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"face, unlock, auth, sign in, fingerprint, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl version, imei sv"</string>
@@ -2999,6 +3145,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>
@@ -3034,9 +3181,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Power on sounds"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatically caption media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Phone speakers"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablet speakers"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Device speakers"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Wired headphones"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio from compatible media becomes more immersive"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Off"</string>
@@ -3221,7 +3365,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>
@@ -3250,6 +3394,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Recent conversations removed"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversation removed"</string>
     <string name="clear" msgid="5092178335409471100">"Clear"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Clear <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Priority and modified conversations will appear here"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Once you mark a conversation as a priority or make any other changes to conversations, they\'ll appear here.\n\nTo change conversation settings: \nSwipe down from the top of the screen to open the pull-down shade, then touch and hold a conversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimize"</string>
@@ -3308,6 +3453,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>
@@ -3502,8 +3658,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Off"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"App pinning"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to securely share your device with someone, try using a guest user instead. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to securely share your device with someone, try using a guest user instead. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"When app is pinned: \n\n•		Personal data may be accessible \n		(such as contacts and email content) \n•		Pinned app may open other apps \n\nOnly use app pinning with people you trust."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Ask for unlock pattern before unpinning"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Ask for PIN before unpinning"</string>
@@ -3569,6 +3725,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Unused app settings"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pause app activity if unused"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remove permissions, delete temporary files, and stop notifications"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Manage app if unused"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remove permissions, delete temporary files, stop notifications, and archive the app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"All apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installed apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant apps"</string>
@@ -3677,6 +3835,9 @@
     <string name="free_memory" msgid="439783742246854785">"Free"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memory used by apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app used memory in the last {time}}other{# apps used memory in the last {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Enable memory usage profiling"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Memory usage profiling requires additional system resources."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Memory profiling disabled"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequency"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximum usage"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No data used"</string>
@@ -3695,10 +3856,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Display over other apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Allow display over other apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Allow this app to display on top of other apps you’re using. This app will be able to see where you tap or change what’s displayed on the screen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Change media output"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Allow app to switch media output"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Allow this app to choose which connected device plays audio or video from other apps. If allowed, this app can access a list of available devices such as headphones and speakers and choose which output device is used to stream or cast audio or video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"All files access"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Improve voice activation"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"This device uses private intelligence to improve the voice activation model. Apps can receive summarized updates that are aggregated across many users to maintain privacy while improving the model for everyone.\n\n"<a href="">"More about private intelligence"</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>
@@ -3807,7 +3976,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning / <xliff:g id="ID_2">^2</xliff:g> data limit"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Carrier data accounting may differ from device accounting"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by carrier networks"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -3833,7 +4001,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Updated <xliff:g id="ID_1">^2</xliff:g> ago"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Updated by <xliff:g id="ID_1">^1</xliff:g> just now"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Updated just now"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"View plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"View details"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Data Saver"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Unrestricted data"</string>
@@ -3864,6 +4031,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>
@@ -3932,7 +4100,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Quick settings developer tiles"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Disable adb authorization timeout"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Disable automatic revocation of adb authorizations for systems that have not reconnected within the default (7 days) or user-configured (minimum 1 day) amount of time."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensors Off"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Search for work directory contacts in personal apps"</string>
@@ -3962,7 +4129,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>
@@ -4122,21 +4289,27 @@
     <string name="autofill_app" msgid="7595308061826307921">"Autofill service"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Default autofill service"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+    <string name="credman_chosen_app_title" msgid="7735183808067729319">"Preferred service"</string>
     <string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
     <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="credman_button_change" msgid="4072629639218503790">"Change"</string>
+    <string name="credman_button_open" msgid="7519871964170816850">"Open"</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_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passwords, passkeys, and other saved info won\'t be available for autofill when you sign in"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Change your preferred service to &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_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"You can only have 5 services on"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Turn off at least 1 service to add another"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be autofilled."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"You can have up to 5 passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys, and data services limit"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"You can have up to 5 passwords, passkeys, and data services active at the same time. Turn off a service to add more."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autofill"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4193,6 +4366,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"App compatibility changes can only be modified for debuggable apps. Install a debuggable app and try again."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depends on another setting"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d accounts"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Device name"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basic info"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legal &amp; regulatory"</string>
@@ -4206,6 +4380,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Allow this app to launch when an NFC tag is scanned.\nIf this permission is on, the app will be available as an option whenever a tag is detected."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Play media to"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Play <xliff:g id="LABEL">%s</xliff:g> on"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio will play on"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"This device"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Unavailable during calls"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
@@ -4219,7 +4394,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Mute"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"To enable, first change \"Press and hold power button\" to the power menu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. 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="devices_title" msgid="649715719278562515">"Devices"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Choose network"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Disconnected"</string>
@@ -4302,11 +4476,11 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Name"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Color (used by compatible apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Save"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Use SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Use this SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Off"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"To disable this SIM, remove the SIM card"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tap to activate <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Erase SIM"</string>
+    <string name="mobile_network_erase_sim" msgid="5387971155494245850">"Erase eSIM"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Change the network operating mode"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferred network type"</string>
@@ -4325,6 +4499,23 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Check with your network provider for pricing."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"App data usage"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Invalid Network Mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+    <string name="satellite_setting_title" msgid="2543034229989047673">"Satellite messaging"</string>
+    <string name="satellite_setting_enabled_summary" msgid="3554127722727530845">"Send and receive text messages by satellite. Included with your account."</string>
+    <string name="satellite_setting_disabled_summary" msgid="6789122487534159857">"Send and receive text messages by satellite. Non included with your account."</string>
+    <string name="keywords_satellite_setting" msgid="3312183289776517695">"Satellite messaging"</string>
+    <string name="category_name_about_satellite_messaging" msgid="3756205049485508340">"About satellite messaging"</string>
+    <string name="title_about_satellite_setting" msgid="9212860038048311345">"You can send and receive text messages by satellite as part of an eligible <xliff:g id="CARRIER_NAME">%1$s</xliff:g> account"</string>
+    <string name="category_title_your_satellite_plan" msgid="3017895097366691841">"Your <xliff:g id="CARRIER_NAME">%1$s</xliff:g> plan"</string>
+    <string name="title_have_satellite_plan" msgid="2048372355699977947">"Satellite messaging is included with your account"</string>
+    <string name="title_no_satellite_plan" msgid="2876056203035197505">"Satellite messaging isn’t included with your account"</string>
+    <string name="summary_add_satellite_setting" msgid="3815254731634052432">"Add satellite messaging"</string>
+    <string name="category_name_how_it_works" msgid="585303230539269496">"How it works"</string>
+    <string name="title_satellite_connection_guide" msgid="3294802307913609072">"When you don’t have a mobile network"</string>
+    <string name="summary_satellite_connection_guide" msgid="3496123195218418456">"Your phone will auto-connect to a satellite. For the best connection, keep a clear view of the sky."</string>
+    <string name="title_supported_service" msgid="4275535165812691571">"After your phone connects to a satellite"</string>
+    <string name="summary_supported_service" msgid="4320535903444834786">"You can text anyone, including emergency services. Your phone will reconnect to a mobile network when available."</string>
+    <string name="satellite_setting_summary_more_information" msgid="4008690241760925372">"Satellite messaging may take longer and is available only in some areas, Weather and certain structures may affect your satellite connection. Calling by satellite isn’t available.\n\nIt may take some time for changes to your account to show in Settings. Contact <xliff:g id="CARRIER_NAME">%1$s</xliff:g> for details."</string>
+    <string name="more_about_satellite_messaging" msgid="3385673133561348509">"More about satellite messaging"</string>
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Access Point Names"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4525,9 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Switch to using SIM card?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Only one SIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Only 1 eSIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Only one SIM can be active at a time.\n\nSwitching won’t cancel your <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> service."</string>
+    <string name="sim_action_switch_sub_dialog_text" msgid="7474905814976249607">"Only 1 SIM can be on at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
+    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="6415848271400253954">"Only 1 eSIM can be on at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
+    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="421658355882679837">"Only 1 SIM can be on at a time.\n\nSwitching won’t cancel your <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> service."</string>
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"You can use 2 SIMs at a time. To use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, turn off another SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Turn off <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4549,31 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No thanks"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancel"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Switch"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Turn off"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Set up your SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Set your mobile network preferences to use multiple SIMs on this device"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Label your SIMs"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"You’ll see these labels when making calls, sending texts, and using data, and in Settings"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM label"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Select which SIMs to use"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"You can use 2 SIMs at a time"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Set your primary SIMs"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Choose which SIMs to use by default for calls, texts, and data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Your primary SIMs"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Calls"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Texts"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatic data switching"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Use data from either SIM depending on coverage and availability"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data only"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Set up"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Next"</string>
+    <string name="sim_onboarding_progressbar_turning_sim_on" msgid="1163318788393361574">"Turning on <xliff:g id="CARRIER_NAME">%1$s</xliff:g>…"</string>
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobile network"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Phone number"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM label and color"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Carrier switching"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
@@ -4379,11 +4593,11 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"To use mobile data, call features, and SMS at a later time, go to your network settings"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Erase this eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be canceled."</string>
+    <string name="erase_sim_dialog_text" msgid="1406141218170595272">"This removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device, but your <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> plan won\'t be canceled."</string>
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Erasing SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Can\'t erase SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"This SIM can\'t be erased due to an error.\n\nRestart your device and try again."</string>
+    <string name="erasing_sim" msgid="4237180547590463930">"Erasing eSIM…"</string>
+    <string name="erase_sim_fail_title" msgid="1445700500168357303">"Can\'t erase eSIM"</string>
+    <string name="erase_sim_fail_text" msgid="6898841004987411547">"Something went wrong and this eSIM wasn\'t erased.\n\nRestart your device and try again."</string>
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connect to device"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> app wants to use a temporary Wi‑Fi network to connect to your device"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No devices found. Make sure devices are turned on and available to connect."</string>
@@ -4445,9 +4659,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Emergency calls"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Emergency calls over Wi‑Fi Calling are not supported by your carrier.\nThe device switches automatically to a cellular network to place an emergency call.\nEmergency calls are only possible in areas with cellular coverage."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Use Wi‑Fi for calls to improve quality"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Backup calling"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"If <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> is unavailable or roaming, use your mobile data SIM for <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> calls."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"backup calling"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Incoming MMS message"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Can’t send MMS message"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tap to allow MMS messaging on <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> when mobile data is off"</string>
@@ -4458,6 +4669,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Your work policy info"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Settings managed by your IT admin"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Boot with 16K page size"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Boot device using 16K page size supported kernel"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reboot with 16KB pages compatible kernel?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WARNING: Some applications may not be compatible with this mode. Device will reboot after confirmation."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reboot with 4KB pages compatible kernel?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Device will reboot after confirmation."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Failed to update kernel to 16KB pages compatible kernel."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Applying change"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determines which app handles the Bug Report shortcut on your device."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4730,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"To quickly resume playback, media player stays open in Quick Settings"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Show media on lock screen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"To quickly resume playback, media player stays open on lock screen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Show media recommendations"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Show Assistant media recommendations"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Based on your activity"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Hide player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Show player"</string>
@@ -4543,8 +4762,8 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Active"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactive"</string>
+    <string name="sim_category_active_sim" msgid="3077009911935592178">"On"</string>
+    <string name="sim_category_inactive_sim" msgid="7351553344148400450">"Off"</string>
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Default for <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"calls"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4919,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sync permissions"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Give <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> the same app permissions that you’ve allowed on <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sync permissions from phone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Give your watch the same app permissions that you’ve allowed on this phone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5016,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
     <string name="contrast_high" msgid="3988567609694797696">"High"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in 1 window"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"On"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Off"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Turns light screens dark and dark screens light"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom in on the screen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Off"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Off"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Password is now set up"</string>
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 7f5af74..ab9f648 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index a436caa..2cc7f9f 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"No need, you are already a developer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Please enable developer options first."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Only the admin users can access developer settings."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In service"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Out of service"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Front display turns on when you fold your device"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Only games, videos and more"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Front display turns on for apps that stop your screen going idle"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swipe up to continue"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Fold your phone and swipe up on the front display to continue using the app, or wait a few seconds for the screen to lock"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Never"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Front display locks when you fold your device"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Use auto-rotate"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Related"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringtone and alarms"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio during calls"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notifications and other system sounds"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media and system sounds"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifications"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"By default, audio output is determined by individual apps"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Unnamed Bluetooth device"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Searching"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth turned on"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"See all"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"See all"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Tail button press"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Work profile)"</string>
     <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 an 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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Add %s to preferred languages?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"This lets apps and websites know that you also prefer this language."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Your device settings and regional preferences will change."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Change"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s not available"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Saturday"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"If an app doesn’t support regional preferences, the app will use its default locale settings."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Learn more about language preferences."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Additional preferences"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Terms of address"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Set how you want to be addressed"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps can use your terms of address to personalise how they address you."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{On – # app has access to location}other{On – # apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Learn more about location settings."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"To change location access, go to Settings &gt; Security and privacy &gt; Privacy controls"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"For best results, use a screen protector that’s Made For Google certified. With other screen protectors, your child’s fingerprint may not work."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Watch Unlock"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"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’t recognised."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"You can unlock with your watch when your fingerprint isn’t recognised."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"You can unlock with your watch when your face isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"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\nWatch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Watch Unlock is another convenient way to unlock your phone, for example, when your fingerprint isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Watch Unlock is another convenient way to unlock your phone, for example, when your face isn’t recognised."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use fingerprint or watch to"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use face or watch to"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use face, fingerprint or watch to"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\'t recognised.\n\nYou can use your watch to unlock this phone when you:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist and within reach of this phone. You won\'t need to unlock your watch again while it\'s on your wrist."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you\'ll get notified on your watch. If it was unlocked when you didn\'t intend to, tap the notification to lock the phone again."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You\'re in control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You\'re ready to go!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach and connected to this phone. If the connection is interrupted, you\'ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, remove the current one first."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Security"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Keep private apps locked and hidden"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Private Space lock"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"You can unlock Private Space the same way that you unlock your device, or choose a different lock"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Use device screen lock"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Face and Fingerprint Unlock"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingerprint Unlock"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Face Unlock"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tap to set up"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingerprint Unlock for private space"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Face Unlock for private space"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Ways to unlock"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Same as device screen lock"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Choose a new lock for Private Space?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lock automatically"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lock private space automatically"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"You can lock your private space automatically if you haven\'t used your device for a period of time"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Every time device locks"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"After 5 minutes of inactivity"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Never"</string>
+    <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_delete_title" msgid="3075645119800272800">"Delete Private Space"</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="private_space_unlocked" msgid="9091600948712932046">"Private space unlocked"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"To use your 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="private_space_cancel_label" msgid="379259667396956886">"Cancel"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Set up"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Set up a private space"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"How it works"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"You can access your private space from the bottom of your apps list"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps in your private space are protected by a lock"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notifications from apps in your private space are hidden when it’s locked"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps in your private space won\'t appear in permission manager, privacy dashboard and other settings when your private space is locked.\n\nYour private space can\'t be moved to a new device. You\'ll need to set up another private space if you want to use it on another device.\n\nAnyone that connects your device to a computer or installs harmful apps on your device may be able to access your private space."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notifications from apps in private space are hidden when it’s locked"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Unlock private space to share photos or files from private space apps"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Some apps are already installed in your private space"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Couldn’t set up private space"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try again"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Use screen lock to unlock private space?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"You can unlock your private space the same way you unlock your device, or choose a different lock"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Choose new lock"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"All set!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"To access your private space, go to your apps list, then scroll down"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Done"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scroll down to find private space"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Choose a lock for your private space"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"You can unlock your private space using your fingerprint. For security, this option requires a backup lock."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Set a PIN for your private space"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Set a password for your private space"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Set a pattern for your 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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn\'t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In aeroplane mode"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notify for public networks"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notify when a high‑quality public network is available"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Allow WEP networks"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP is an older security protocol that\'s less secure"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Your operator doesn\'t allow WEP networks because they\'re less secure"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Turn on Wi‑Fi automatically"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi will turn back on near high‑quality saved networks, like your home network"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Unavailable because location is turned off. Turn on "<annotation id="link">"location"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi scanning allows apps and services to scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location‑based features and services."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Turn on"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi scanning turned on"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"This network uses an older security protocol that\'s less secure"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> is blocked"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"This network uses an older security protocol called WEP, which is less secure. To connect anyway, you can allow WEP networks."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Your operator doesn\'t allow you to connect to this network because it uses an older security protocol that’s less secure"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Allow WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Close"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Advanced options"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Drop-down list Advanced Options"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"expand"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Save"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobile data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – charging"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – charging"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot connection"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Connection strength"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No password set"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot name"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot password"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Turn off hotspot automatically"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"When no devices are connected"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Extend compatibility"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Display white balance"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Disable default frame rate for games"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Disable limiting the maximum frame rate for games at <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on-device, and images are never stored or sent to Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Longer screen timeout will use more battery."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for face detection"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for screen attention"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM slot <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM slot <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primary)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"To view, choose saved network"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL version"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Battery level"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Communal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Save"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC field must be 3 digits."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC field must be 2 or 3 digits."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operator does not allow adding APNs of type %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC field must be valid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restoring default APN settings."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Reset to default"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Reset default APN settings completed"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reset"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi‑Fi have been reset"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Erase eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"This won’t cancel any mobile service plans. To download replacement SIMs, contact your operator."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Reset settings"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Reset all network settings? You can’t undo this action."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Reset all network settings and erase eSIMs? You can’t undo this action."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Reset?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Network reset is not available for this user"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Network settings have been reset"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Can’t delete SIMs"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMs can’t be erased due to an error.\n\nRestart your device and try again."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Erase all data (factory reset)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Erase all data (factory reset)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Music"</li>\n<li>"Photos"</li>\n<li>"Other user data"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"This will not cancel your mobile service plan."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"All of your personal information and downloaded apps will be deleted. You can’t undo this action."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"All of your personal information, including downloaded apps &amp; SIMs, will be deleted. You can’t undo this action."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Erase all data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Factory reset is not available for this user"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Erasing"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Not sharing Internet with other devices"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Off"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Don’t use Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Only share Internet via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Only share Internet via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Only share Internet via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Only share Internet via USB and Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Only share Internet via USB and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Only share Internet via Bluetooth and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Only share Internet via USB, Bluetooth and Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet tethering"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide Internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Clear access"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controls"</string>
     <string name="force_stop" msgid="2681771622136916280">"Force stop"</string>
+    <string name="archive" msgid="9074663845068632127">"Archive"</string>
+    <string name="restore" msgid="7622486640713967157">"Restore"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"App size"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB storage app"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Couldn\'t compute the package size."</string>
     <string name="version_text" msgid="7628938665256107608">"Version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Move"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiving failed"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archived <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restoring failed"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restoring <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Another migration is already in progress."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Not enough storage space."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"App doesn\'t exist."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Available on-screen keyboard"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Manage on-screen keyboards"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Enable bounce keys for physical keyboard accessibility"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Enable sticky keys for physical keyboard accessibility"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sort by usage time"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sort by last time used"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sort by app name"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Last time used"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Last used"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"never"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Usage time"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibility"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Accessibility settings"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Magnify with triple-tap"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Magnify with shortcut"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Magnify with shortcut &amp; triple-tap"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"About <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Two-finger double-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="860548190334486449">"To start and stop magnification, double-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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"To use an accessibility 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Accessibility button settings"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Button settings"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> shortcut"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Accessibility button"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Accessibility gesture"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Learn more about accessibility button &amp; gesture"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Using the accessibility button. The gesture isn’t available with 3-button navigation."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Quickly access accessibility features"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose whether you want to use a button or gesture to access the feature"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose the button to access the feature"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose whether you want to use a button or gesture to access the feature&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose the button to access the feature&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Use button or gesture"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Location"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Size"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Power button ends call"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Large mouse cursor"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Make the mouse pointer more noticeable"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Make all apps dark"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Applies to apps without their own Dark theme. Some apps may have display issues, like inverted colours."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remove animations"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce movement on the screen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancel"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Stop <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Tapping <xliff:g id="STOP">%1$s</xliff:g> will stop <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
     <string name="settings_button" msgid="2195468788019730377">"Settings"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Window magnifier, zoom, magnification, low vision, enlarge, make bigger"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"colour contrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printing"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"See apps with highest usage"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Charging optimised to protect your battery"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"To help extend your battery\'s lifespan, charging is optimised"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Charging optimised to protect your battery"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"To help extend your battery\'s lifespan, charging is optimised while docked"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Charging optimised to protect your battery"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"To help extend your battery\'s lifespan, charging is optimised while docked"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Charging to full"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"To protect your battery, charging will be optimised the next time your tablet is docked"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Learn more about charging is paused"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Resume charging"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Includes high-power background activity"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remove"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancel"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Charge to full"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Issue with charging accessory"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Learn more about incompatible charging"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Manage apps automatically"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"now"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Battery usage chart"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Daily battery usage chart"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Hourly battery usage chart"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Battery level percentage from <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> to <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Battery usage since last full charge"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Battery usage for <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Screen time since last full charge"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"On"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Off"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup &amp; restore"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personal data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Back up my data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Name"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Server address"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP encryption (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secret"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifier"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec preshared key"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec user certificate"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA certificate"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec server certificate"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Show advanced options"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS search domains"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS servers (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Forwarding routes (e.g. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Username"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Password"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Save account information"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(not used)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(don\'t verify server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(received from server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"This VPN type can\'t stay connected at all times"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Always-on VPN only supports numeric server addresses"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"A DNS server must be specified for always-on VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS server addresses must be numeric for always-on VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"The information entered doesn\'t support always-on VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancel"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Dismiss"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receive bulletins about child abductions"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repeat"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Enable Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Allow this service to manage how your calls are made."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Wireless emergency alerts"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Network operators"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Access point names"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pay, tap, payments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesture"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"face, unlock, auth, sign in"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"face, unlock, auth, sign in, fingerprint, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl version, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Power on sounds"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatically caption media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Phone speakers"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablet speakers"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Device speakers"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Wired headphones"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio from compatible media becomes more immersive"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Off"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Recent conversations removed"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversation removed"</string>
     <string name="clear" msgid="5092178335409471100">"Clear"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Clear <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Priority and modified conversations will appear here"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Once you mark a conversation as priority, or make any other changes to conversations, they will appear here. \n\nTo change conversation settings: \nSwipe down from the top of the screen to open the pull-down shade, then touch and hold a conversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimise"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Off"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"App pinning"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to securely share your device with someone, try using a guest user instead. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to share your device with someone securely, try using a guest user instead. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"When app is pinned: \n\n• Personal data may be accessible \n(such as contacts and email content) \n• Pinned app may open other apps \n\nOnly use app pinning with people you trust."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Ask for unlock pattern before unpinning"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Ask for PIN before unpinning"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Unused app settings"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pause app activity if unused"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remove permissions, delete temporary files and stop notifications"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Manage app if unused"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remove permissions, delete temporary files, stop notifications and archive the app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"All apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installed apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Free"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memory used by apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app used memory in the last {time}}other{# apps used memory in the last {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Enable memory usage profiling"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Memory usage profiling requires additional system resources."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Memory profiling disabled"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequency"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximum usage"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No data used"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Display over other apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Allow display over other apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Allow this app to display on top of other apps that you’re using. This app will be able to see where you tap or change what’s displayed on the screen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Change media output"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Allow app to switch media output"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Allow this app to choose which connected device plays audio or video from other apps. If allowed, this app can access a list of available devices such as headphones and speakers and choose which output device is used to stream or cast audio or video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"All files access"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Improve voice activation"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"This device uses private intelligence to improve the voice activation model. Apps can receive summarised updates that are aggregated across many users to maintain privacy while improving the model for everyone.\n\n"<a href="">"More about private intelligence"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning/<xliff:g id="ID_2">^2</xliff:g> data limit"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operator data accounting may differ from device accounting"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by operator networks"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Updated <xliff:g id="ID_1">^2</xliff:g> ago"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Updated by <xliff:g id="ID_1">^1</xliff:g> just now"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Updated just now"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"View plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"View details"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Data Saver"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Unrestricted data"</string>
@@ -3864,6 +4046,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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Quick settings developer tiles"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Disable adb authorisation timeout"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Disable automatic revocation of adb authorisations for systems that have not reconnected within the default (seven days) or user-configured (minimum one day) amount of time."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensors Off"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Search for work directory contacts in personal apps"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Auto-fill service"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Default auto-fill service"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passwords, passkeys and other saved info won\'t be available for autofill when you sign in"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Change your preferred service to &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_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"You can only have 5 services on"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Turn off at least 1 service to add another"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be auto-filled."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys and data services limit"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Auto-fill"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"App compatibility changes can only be modified for debuggable apps. Install a debuggable app and try again."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depends on another setting"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d accounts"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Device name"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basic info"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legal and regulatory"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Allow this app to launch when an NFC tag is scanned.\nIf this permission is on, the app will be available as an option whenever a tag is detected."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Play media to"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Play <xliff:g id="LABEL">%s</xliff:g> on"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio will play on"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"This device"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Unavailable during calls"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Mute"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"To enable, first change \'Press &amp; hold power button\' to the power menu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. 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="devices_title" msgid="649715719278562515">"Devices"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Choose network"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Disconnected"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Name"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Colour (used by compatible apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Save"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Use SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Use this SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Off"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"To disable this SIM, remove the SIM card"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tap to activate <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Erase SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Change the network operating mode"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferred network type"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Check with your network provider for pricing."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"App data usage"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Access point names"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Switch to using SIM card?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Only one SIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Only one eSIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Only one SIM can be active at a time.\n\nSwitching won’t cancel your <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> service."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"You can use two SIMs at a time. To use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, turn off another SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Turn off <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, thanks"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancel"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Switch"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Turn off"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Set up your SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Set your mobile network preferences to use multiple SIMs on this device"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Label your SIMs"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"You’ll see these labels when making calls, sending texts and using data, and in Settings"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM label"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Select which SIMs to use"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"You can use two SIMs at a time"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Set your primary SIMs"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Choose which SIMs to use by default for calls, texts and data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Your primary SIMs"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Calls"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Texts"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatic data switching"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Use data from either SIM depending on coverage and availability"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data only"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Set up"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Next"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobile network"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Phone number"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM label and colour"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operator switching"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"To use mobile data, call features and SMS at a later time, go to your network settings"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Erase this eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Erasing SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Can\'t erase SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"This SIM can\'t be erased due to an error.\n\nRestart your device and try again."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connect to device"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> app wants to use a temporary Wi‑Fi network to connect to your device"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No devices found. Make sure that devices are turned on and available to connect."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Emergency calls"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Emergency calls over Wi‑Fi Calling are not supported by your operator.\nThe device switches automatically to a mobile network to place an emergency call.\nEmergency calls are only possible in areas with mobile coverage."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Use Wi‑Fi for calls to improve quality"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Backup calling"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"If <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> is unavailable or roaming, use your mobile data SIM for <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> calls."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"backup calling"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Incoming MMS message"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Can’t send MMS message"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tap to allow MMS messaging on <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> when mobile data is off"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Your work policy info"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Settings managed by your IT admin"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Boot with 16K page size"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Boot device using 16K page size supported kernel"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reboot with 16 KB pages compatible kernel?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WARNING: Some applications may not be compatible with this mode. Device will reboot after confirmation."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reboot with 4 KB pages compatible kernel?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Device will reboot after confirmation."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Failed to update kernel to 16 KB pages compatible kernel."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Applying change"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determines which app handles the bug report shortcut on your device."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"To quickly resume playback, media player stays open in Quick Settings"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Show media on lock screen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"To quickly resume playback, media player stays open on lock screen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Show media recommendations"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Show Assistant media recommendations"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Based on your activity"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Hide player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Show player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Active"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactive"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Default for <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"calls"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sync permissions"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Give <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> the same app permissions that you\'ve allowed on <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sync permissions from phone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Give your watch the same app permissions that you’ve allowed on this phone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
     <string name="contrast_high" msgid="3988567609694797696">"High"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in one window"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"On"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Off"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Turns light screens dark and dark screens light"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom in on the screen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Off"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Off"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Password is now set up"</string>
 </resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 7f5af74..ab9f648 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 4a9ffcf..af37336 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"No need, you are already a developer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Please enable developer options first."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Only the admin users can access developer settings."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In service"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Out of service"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Front display turns on when you fold your device"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Only games, videos and more"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Front display turns on for apps that stop your screen going idle"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swipe up to continue"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Fold your phone and swipe up on the front display to continue using the app, or wait a few seconds for the screen to lock"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Never"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Front display locks when you fold your device"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Use auto-rotate"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Related"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringtone and alarms"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio during calls"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notifications and other system sounds"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media and system sounds"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifications"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"By default, audio output is determined by individual apps"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Unnamed Bluetooth device"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Searching"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth turned on"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"See all"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"See all"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Tail button press"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Work profile)"</string>
     <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 an 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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"To select a language for each app, go to app language settings."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Learn more about app languages"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Change system language to %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Add %s to preferred languages?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"This lets apps and websites know that you also prefer this language."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Your device settings and regional preferences will change."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Change"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s not available"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Saturday"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"If an app doesn’t support regional preferences, the app will use its default locale settings."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Learn more about language preferences."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Additional preferences"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Terms of address"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Set how you want to be addressed"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps can use your terms of address to personalise how they address you."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Location"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Use location"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{On – # app has access to location}other{On – # apps have access to location}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{On / # app has access to location}other{On / # apps have access to location}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Loading…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps with the Nearby devices permission can determine the relative position of connected devices."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Learn more about location settings."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Learn more about location settings"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"To change location access, go to Settings &gt; Security and privacy &gt; Privacy controls"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"For best results, use a screen protector that’s Made For Google certified. With other screen protectors, your child’s fingerprint may not work."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Watch Unlock"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"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’t recognised."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"You can unlock with your watch when your fingerprint isn’t recognised."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"You can unlock with your watch when your face isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"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\nWatch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Watch Unlock is another convenient way to unlock your phone, for example, when your fingerprint isn’t recognised."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Watch Unlock is another convenient way to unlock your phone, for example, when your face isn’t recognised."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use fingerprint or watch to"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use face or watch to"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use face, fingerprint or watch to"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote authenticator unlock"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Watch added"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\'t recognised.\n\nYou can use your watch to unlock this phone when you:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist and within reach of this phone. You won\'t need to unlock your watch again while it\'s on your wrist."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you\'ll get notified on your watch. If it was unlocked when you didn\'t intend to, tap the notification to lock the phone again."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You\'re in control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You\'re ready to go!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach and connected to this phone. If the connection is interrupted, you\'ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, remove the current one first."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Security"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Keep private apps locked and hidden"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Private Space lock"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"You can unlock Private Space the same way that you unlock your device, or choose a different lock"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Use device screen lock"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Face and Fingerprint Unlock"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingerprint Unlock"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Face Unlock"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tap to set up"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingerprint Unlock for private space"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Face Unlock for private space"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Ways to unlock"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Same as device screen lock"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Choose a new lock for Private Space?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lock automatically"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lock private space automatically"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"You can lock your private space automatically if you haven\'t used your device for a period of time"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Every time device locks"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"After 5 minutes of inactivity"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Never"</string>
+    <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_delete_title" msgid="3075645119800272800">"Delete Private Space"</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="private_space_unlocked" msgid="9091600948712932046">"Private space unlocked"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Set a screen lock"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"To use your 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="private_space_cancel_label" msgid="379259667396956886">"Cancel"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Set up"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Set up a private space"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Keep private apps in a separate space that you can hide or lock"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"How it works"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"You can access your private space from the bottom of your apps list"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps in your private space are protected by a lock"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notifications from apps in your private space are hidden when it’s locked"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps in your private space won\'t appear in permission manager, privacy dashboard and other settings when your private space is locked.\n\nYour private space can\'t be moved to a new device. You\'ll need to set up another private space if you want to use it on another device.\n\nAnyone that connects your device to a computer or installs harmful apps on your device may be able to access your private space."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setting up private space…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notifications from apps in private space are hidden when it’s locked"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Unlock private space to share photos or files from private space apps"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Some apps are already installed in your private space"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Couldn’t set up private space"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Try again"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Use screen lock to unlock private space?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"You can unlock your private space the same way you unlock your device, or choose a different lock"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Use screen lock"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Choose new lock"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"All set!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"To access your private space, go to your apps list, then scroll down"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Done"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scroll down to find private space"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Choose a lock for your private space"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"You can unlock your private space using your fingerprint. For security, this option requires a backup lock."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Set a PIN for your private space"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Set a password for your private space"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Set a pattern for your 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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn\'t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In aeroplane mode"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notify for public networks"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notify when a high‑quality public network is available"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Allow WEP networks"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP is an older security protocol that\'s less secure"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Your operator doesn\'t allow WEP networks because they\'re less secure"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Turn on Wi‑Fi automatically"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi will turn back on near high‑quality saved networks, like your home network"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Unavailable because location is turned off. Turn on "<annotation id="link">"location"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi scanning allows apps and services to scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location‑based features and services."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Turn on"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi scanning turned on"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"This network uses an older security protocol that\'s less secure"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> is blocked"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"This network uses an older security protocol called WEP, which is less secure. To connect anyway, you can allow WEP networks."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Your operator doesn\'t allow you to connect to this network because it uses an older security protocol that’s less secure"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Allow WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Close"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Advanced options"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Drop-down list Advanced Options"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"expand"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Stay on Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Never show again"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connect"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi turned on"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connected to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connecting to <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connecting…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Failed to connect to network"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Save"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobile data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – charging"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – charging"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot connection"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Connection strength"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No password set"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot name"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot password"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Turn off hotspot automatically"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"When no devices are connected"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Extend compatibility"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Display white balance"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Disable default frame rate for games"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Disable limiting the maximum frame rate for games at <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Screen attention uses the front camera to see if someone is looking at the screen. It works on device and images are never stored or sent to Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Turn on screen attention"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Keep screen on when looking at it"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Longer screen timeout will use more battery."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is locked"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera must be unlocked for face detection"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera must be unlocked for screen attention"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM slot <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM slot <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primary)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"To view, choose saved network"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL version"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Battery level"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Communal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Communal settings"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Save"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC field must be 3 digits."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC field must be 2 or 3 digits."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operator does not allow adding APNs of type %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC field must be valid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restoring default APN settings."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Reset to default"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Reset default APN settings completed"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reset"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi‑Fi have been reset"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Erase eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"This won’t cancel any mobile service plans. To download replacement SIMs, contact your operator."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Reset settings"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Reset all network settings? You can’t undo this action."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Reset all network settings and erase eSIMs? You can’t undo this action."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Want to reset?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Network reset is not available for this user"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Network settings have been reset"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Can’t delete SIMs"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMs can’t be erased due to an error.\n\nRestart your device and try again."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Erase all data (factory reset)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Erase all data (factory reset)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Music"</li>\n<li>"Photos"</li>\n<li>"Other user data"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"This will not cancel your mobile service plan."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"All of your personal information and downloaded apps will be deleted. You can’t undo this action."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"All of your personal information, including downloaded apps &amp; SIMs, will be deleted. You can’t undo this action."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Erase all data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Factory reset is not available for this user"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Erasing"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Not sharing Internet with other devices"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Off"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Don’t use Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Only share Internet via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Only share Internet via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Only share Internet via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Only share Internet via USB and Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Only share Internet via USB and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Only share Internet via Bluetooth and Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Only share Internet via USB, Bluetooth and Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet tethering"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use hotspot and tethering to provide Internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Help"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Change SMS app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> as your SMS app?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Change Wi‑Fi assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Use <xliff:g id="NEW_APP">%1$s</xliff:g> instead of <xliff:g id="CURRENT_APP">%2$s</xliff:g> to manage your network connections?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Use <xliff:g id="NEW_APP">%s</xliff:g> to manage your network connections?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Unknown SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Please insert SIM card and restart"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Please connect to the internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recent location requests"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Location for work profile"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"App location permissions"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Clear access"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controls"</string>
     <string name="force_stop" msgid="2681771622136916280">"Force stop"</string>
+    <string name="archive" msgid="9074663845068632127">"Archive"</string>
+    <string name="restore" msgid="7622486640713967157">"Restore"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"App size"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB storage app"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Couldn\'t compute the package size."</string>
     <string name="version_text" msgid="7628938665256107608">"Version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Move"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiving failed"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archived <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restoring failed"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restoring <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Another migration is already in progress."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Not enough storage space."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"App doesn\'t exist."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Available on-screen keyboard"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Manage on-screen keyboards"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="show_ime" msgid="4334255501724746849">"Use on-screen keyboard"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Keep it on screen while physical keyboard is active"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Enable bounce keys for physical keyboard accessibility"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Enable sticky keys for physical keyboard accessibility"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sort by usage time"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sort by last time used"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sort by app name"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Last time used"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Last used"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"never"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Usage time"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibility"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Accessibility settings"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continue anyway"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancel"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Magnification settings"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Magnify with triple-tap"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Magnify with shortcut"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Magnify with shortcut &amp; triple-tap"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"About <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Two-finger double-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="860548190334486449">"To start and stop magnification, double-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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"To use an accessibility 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Accessibility button settings"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Button settings"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> shortcut"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Accessibility button"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Accessibility gesture"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"Two-finger double-tap screen"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Quickly tap screen {0,number,integer} times with two fingers"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple-tap screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Learn more about accessibility button &amp; gesture"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Using the accessibility button. The gesture isn’t available with 3-button navigation."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Quickly access accessibility features"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose whether you want to use a button or gesture to access the feature"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"To get started"</b>\n"1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose the button to access the feature"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose whether you want to use a button or gesture to access the feature&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose the button to access the feature&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Use button or gesture"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Location"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Size"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Power button ends call"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Large mouse cursor"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Make the mouse pointer more noticeable"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Make all apps dark"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Applies to apps without their own Dark theme. Some apps may have display issues, like inverted colours."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remove animations"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce movement on the screen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Allow"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Deny"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancel"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Stop <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Tapping <xliff:g id="STOP">%1$s</xliff:g> will stop <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Turn off"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Keep on"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Turn off <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No services installed"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No service selected"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
     <string name="settings_button" msgid="2195468788019730377">"Settings"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Window magnifier, zoom, magnification, low vision, enlarge, make bigger"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"colour contrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printing"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"See apps with highest usage"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Charging optimised to protect your battery"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"To help extend your battery\'s lifespan, charging is optimised"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Charging optimised to protect your battery"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"To help extend your battery\'s lifespan, charging is optimised while docked"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Charging optimised to protect your battery"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"To help extend your battery\'s lifespan, charging is optimised while docked"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Charging to full"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"To protect your battery, charging will be optimised the next time your tablet is docked"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Learn more about charging is paused"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Resume charging"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Includes high-power background activity"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remove"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancel"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Charge to full"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Issue with charging accessory"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Learn more about incompatible charging"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Manage apps automatically"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"now"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Battery usage chart"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Daily battery usage chart"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Hourly battery usage chart"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Battery level percentage from <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> to <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Battery usage since last full charge"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Battery usage for <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Screen time since last full charge"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"On"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Off"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup &amp; restore"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personal data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Back up my data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Name"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Server address"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP encryption (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secret"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifier"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec preshared key"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec user certificate"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA certificate"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec server certificate"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Show advanced options"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS search domains"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS servers (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Forwarding routes (e.g. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Username"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Password"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Save account information"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(not used)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(don\'t verify server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(received from server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"This VPN type can\'t stay connected at all times"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Always-on VPN only supports numeric server addresses"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"A DNS server must be specified for always-on VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS server addresses must be numeric for always-on VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"The information entered doesn\'t support always-on VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancel"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Dismiss"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Block connections without VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Require VPN connection?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Not secure. Update to an IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Failed to start unsupported VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"None"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Always-on VPN requires an IP address for both server and DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receive bulletins about child abductions"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repeat"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Enable Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Allow this service to manage how your calls are made."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Wireless emergency alerts"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Network operators"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Access point names"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pay, tap, payments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesture"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"face, unlock, auth, sign in"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"face, unlock, auth, sign in, fingerprint, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl version, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Power on sounds"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatically caption media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Phone speakers"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablet speakers"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Device speakers"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Wired headphones"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio from compatible media becomes more immersive"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Off"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Recent conversations removed"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversation removed"</string>
     <string name="clear" msgid="5092178335409471100">"Clear"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Clear <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Priority and modified conversations will appear here"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Once you mark a conversation as priority, or make any other changes to conversations, they will appear here. \n\nTo change conversation settings: \nSwipe down from the top of the screen to open the pull-down shade, then touch and hold a conversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimise"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Off"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"App pinning"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to securely share your device with someone, try using a guest user instead. \n\nTo use app pinning: 	\n1. Turn on app pinning 	\n2. Open Overview 	\n3. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"When an app is pinned, the pinned app may open other apps and personal data may be accessible. \n\nIf you want to share your device with someone securely, try using a guest user instead. \n\nTo use app pinning: 	\n{0,number,integer}. Turn on app pinning 	\n{1,number,integer}. Open Overview 	\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"When app is pinned: \n\n• Personal data may be accessible \n(such as contacts and email content) \n• Pinned app may open other apps \n\nOnly use app pinning with people you trust."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Ask for unlock pattern before unpinning"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Ask for PIN before unpinning"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Unused app settings"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pause app activity if unused"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remove permissions, delete temporary files and stop notifications"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Manage app if unused"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remove permissions, delete temporary files, stop notifications and archive the app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"All apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installed apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Free"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memory used by apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app used memory in the last {time}}other{# apps used memory in the last {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Enable memory usage profiling"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Memory usage profiling requires additional system resources."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Memory profiling disabled"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequency"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximum usage"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No data used"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Display over other apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Allow display over other apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Allow this app to display on top of other apps that you’re using. This app will be able to see where you tap or change what’s displayed on the screen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Change media output"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Allow app to switch media output"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Allow this app to choose which connected device plays audio or video from other apps. If allowed, this app can access a list of available devices such as headphones and speakers and choose which output device is used to stream or cast audio or video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"All files access"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Improve voice activation"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"This device uses private intelligence to improve the voice activation model. Apps can receive summarised updates that are aggregated across many users to maintain privacy while improving the model for everyone.\n\n"<a href="">"More about private intelligence"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning/<xliff:g id="ID_2">^2</xliff:g> data limit"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operator data accounting may differ from device accounting"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by operator networks"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Updated <xliff:g id="ID_1">^2</xliff:g> ago"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Updated by <xliff:g id="ID_1">^1</xliff:g> just now"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Updated just now"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"View plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"View details"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Data Saver"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Unrestricted data"</string>
@@ -3864,6 +4046,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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Quick settings developer tiles"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Disable adb authorisation timeout"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Disable automatic revocation of adb authorisations for systems that have not reconnected within the default (seven days) or user-configured (minimum one day) amount of time."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensors Off"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Work profile settings"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Search for work directory contacts in personal apps"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Auto-fill service"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Default auto-fill service"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passwords, passkeys and other saved info won\'t be available for autofill when you sign in"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Change your preferred service to &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_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"You can only have 5 services on"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Turn off at least 1 service to add another"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be auto-filled."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys and data services limit"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Auto-fill"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"App compatibility changes can only be modified for debuggable apps. Install a debuggable app and try again."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depends on another setting"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d accounts"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Device name"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basic info"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legal and regulatory"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Allow this app to launch when an NFC tag is scanned.\nIf this permission is on, the app will be available as an option whenever a tag is detected."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Play media to"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Play <xliff:g id="LABEL">%s</xliff:g> on"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio will play on"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"This device"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Unavailable during calls"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Take call on"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Mute"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"To enable, first change \'Press &amp; hold power button\' to the power menu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. 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="devices_title" msgid="649715719278562515">"Devices"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Choose network"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Disconnected"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Name"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Colour (used by compatible apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Save"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Use SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Use this SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Off"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"To disable this SIM, remove the SIM card"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tap to activate <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Erase SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferred network type"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Change the network operating mode"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferred network type"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Check with your network provider for pricing."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"App data usage"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Invalid network mode <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Access point names"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Unavailable when connected to <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Switch to using SIM card?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Only one SIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Only one eSIM can be active at a time.\n\nSwitching to <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> won’t cancel your <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> service."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Only one SIM can be active at a time.\n\nSwitching won’t cancel your <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> service."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"You can use two SIMs at a time. To use <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, turn off another SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Switch to <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Turn off <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, thanks"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancel"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Switch"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Turn off"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Set up your SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Set your mobile network preferences to use multiple SIMs on this device"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Label your SIMs"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"You’ll see these labels when making calls, sending texts and using data, and in Settings"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM label"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Select which SIMs to use"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"You can use two SIMs at a time"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Set your primary SIMs"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Choose which SIMs to use by default for calls, texts and data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Your primary SIMs"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Calls"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Texts"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatic data switching"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Use data from either SIM depending on coverage and availability"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data only"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Set up"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Next"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobile network"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Phone number"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM label and colour"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operator switching"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"To use mobile data, call features and SMS at a later time, go to your network settings"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Erase this eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Erasing SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Can\'t erase SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"This SIM can\'t be erased due to an error.\n\nRestart your device and try again."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connect to device"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> app wants to use a temporary Wi‑Fi network to connect to your device"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No devices found. Make sure that devices are turned on and available to connect."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Emergency calls"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Emergency calls over Wi‑Fi Calling are not supported by your operator.\nThe device switches automatically to a mobile network to place an emergency call.\nEmergency calls are only possible in areas with mobile coverage."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Use Wi‑Fi for calls to improve quality"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Backup calling"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"If <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> is unavailable or roaming, use your mobile data SIM for <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> calls."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"backup calling"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Incoming MMS message"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Can’t send MMS message"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tap to allow MMS messaging on <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> when mobile data is off"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Your work policy info"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Settings managed by your IT admin"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Boot with 16K page size"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Boot device using 16K page size supported kernel"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reboot with 16 KB pages compatible kernel?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WARNING: Some applications may not be compatible with this mode. Device will reboot after confirmation."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reboot with 4 KB pages compatible kernel?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Device will reboot after confirmation."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Failed to update kernel to 16 KB pages compatible kernel."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Applying change"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Bug report handler"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determines which app handles the bug report shortcut on your device."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"To quickly resume playback, media player stays open in Quick Settings"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Show media on lock screen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"To quickly resume playback, media player stays open on lock screen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Show media recommendations"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Show Assistant media recommendations"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Based on your activity"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Hide player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Show player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Active"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactive"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Default for <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"calls"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sync permissions"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Give <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> the same app permissions that you\'ve allowed on <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sync permissions from phone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Give your watch the same app permissions that you’ve allowed on this phone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
     <string name="contrast_high" msgid="3988567609694797696">"High"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in one window"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"On"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Off"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Turns light screens dark and dark screens light"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom in on the screen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Off"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Off"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Password is now set up"</string>
 </resources>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index d7800e6..c43b7be 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 4c6741f..26486d0 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‎You are now a developer!‎‏‎‎‏‎"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎No need, you are already a developer.‎‏‎‎‏‎"</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‎‎Please enable developer options first.‎‏‎‎‏‎"</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎Only the admin users can access developer settings.‎‏‎‎‏‎"</string>
     <string name="header_category_system" msgid="1665516346845259058">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‎System‎‏‎‎‏‎"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎In Service‎‏‎‎‏‎"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎Out of Service‎‏‎‎‏‎"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‏‎‏‏‎‎Front display turns on when you fold your device‎‏‎‎‏‎"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎Only games, videos, and more‎‏‎‎‏‎"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎Front display turns on for apps that stop your screen going idle‎‏‎‎‏‎"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‎Swipe up to continue‎‏‎‎‏‎"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎Fold your phone and swipe up on the front display to continue using the app, or wait a few seconds for the screen to lock‎‏‎‎‏‎"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‎‎‏‏‎Never‎‏‎‎‏‎"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‏‏‎‎Front display locks when you fold your device‎‏‎‎‏‎"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎Use auto-rotate‎‏‎‎‏‎"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎Related‎‏‎‎‏‎"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎Ringtone and alarms‎‏‎‎‏‎"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎Audio during calls‎‏‎‎‏‎"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎Media‎‏‎‎‏‎"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‎Notifications and other system sounds‎‏‎‎‏‎"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎Media and system sounds‎‏‎‎‏‎"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‎‏‎‏‏‏‎Notifications‎‏‎‎‏‎"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎By default, audio output is determined by individual apps‎‏‎‎‏‎"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‏‎Unnamed Bluetooth device‎‏‎‎‏‎"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎Searching‎‏‎‎‏‎"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‎‎Bluetooth turned on‎‏‎‎‏‎"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‎See all‎‏‎‎‏‎"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎See all‎‏‎‎‏‎"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎Stylus‎‏‎‎‏‎"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‎‎Tail button press‎‏‎‎‏‎"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="APP_NAME">%s</xliff:g>‎‏‎‎‏‏‏‎ (Work profile)‎‏‎‎‏‎"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎To select a language for each app, go to app language settings.‎‏‎‎‏‎"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎Learn more about app languages‎‏‎‎‏‎"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎Change system language to %s ?‎‏‎‎‏‎"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‎Add %s to preferred languages?‎‏‎‎‏‎"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎This lets apps and websites know you also prefer this language.‎‏‎‎‏‎"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎Your device settings and regional preferences will change.‎‏‎‎‏‎"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‎Change‎‏‎‎‏‎"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‎%s not available‎‏‎‎‏‎"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‏‏‎Saturday‎‏‎‎‏‎"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‎‏‏‎‎‎If an app doesn’t support regional preferences, the app will use its default locale settings.‎‏‎‎‏‎"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‏‎Learn more about language preferences.‎‏‎‎‏‎"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎Additional preferences‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎Terms of address‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‎‎‎Set how you want to be addressed‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎Apps can use your terms of address to personalize how they address you.‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎Not specified‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎Feminine‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‎Masculine‎‏‎‎‏‎"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‎‎‎‏‏‏‏‎‎Neutral‎‏‎‎‏‎"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎Remove selected language?‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎Remove selected languages?‎‏‎‎‏‎}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‎Text will be displayed in another language.‎‏‎‎‏‎"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‎Can’t remove all languages‎‏‎‎‏‎"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎Location‎‏‎‎‏‎"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‎‏‏‏‎Use location‎‏‎‎‏‎"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎Off‎‏‎‎‏‎"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎On - # app has access to location‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎On - # apps have access to location‎‏‎‎‏‎}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎On / # app has access to location‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎On / # apps have access to location‎‏‎‎‏‎}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎Loading…‎‏‎‎‏‎"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‎‏‎Apps with the Nearby devices permission can determine the relative position of connected devices.‎‏‎‎‏‎"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‎‎‎‎‎‎Location access is off for apps and services. Your device location may still be sent to emergency responders when you call or text an emergency number.‎‏‎‎‏‎"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‎Learn more about Location Settings.‎‏‎‎‏‎"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‎Learn more about Location settings‎‏‎‎‏‎"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‎To change location access, go to Settings &gt; Security and Privacy &gt; Privacy controls‎‏‎‎‏‎"</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 &amp; credentials‎‏‎‎‏‎"</string>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‎For best results, use a screen protector that’s Made for Google certified. With other screen protectors, your child’s fingerprint may not work.‎‏‎‎‏‎"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎Watch Unlock‎‏‎‎‏‎"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎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‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can unlock with your watch when your face or fingerprint isn’t recognized.‎‏‎‎‏‎"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎You can unlock with your watch when your fingerprint isn’t recognized.‎‏‎‎‏‎"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‎‎You can unlock with your watch when your face isn’t recognized.‎‏‎‎‏‎"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‎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‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Watch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face isn’t recognized.‎‏‎‎‏‎"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‏‎Watch Unlock is another convenient way to unlock your phone, for example, when your fingerprint isn’t recognized.‎‏‎‎‏‎"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎Watch Unlock is another convenient way to unlock your phone, for example, when your face isn’t recognized.‎‏‎‎‏‎"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎Use fingerprint or watch to‎‏‎‎‏‎"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‎‎‎Use face or watch to‎‏‎‎‏‎"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‎Use face, fingerprint, or watch to‎‏‎‎‏‎"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎Face and ‎‏‎‎‏‏‎<xliff:g id="WATCH">%s</xliff:g>‎‏‎‎‏‏‏‎ added‎‏‎‎‏‎"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‎‎‎Face, fingerprint, and ‎‏‎‎‏‏‎<xliff:g id="WATCH">%s</xliff:g>‎‏‎‎‏‏‏‎ added‎‏‎‎‏‎"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‎Face, fingerprints, and ‎‏‎‎‏‏‎<xliff:g id="WATCH">%s</xliff:g>‎‏‎‎‏‏‏‎ added‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎Remote Authenticator Unlock‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎Watch added‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‏‎Set up your watch‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn’t recognized.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can use your watch to unlock this phone when you:‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‎‎Not now‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‎‏‏‎Continue‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎More‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‎How it works‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎Your watch must be unlocked, on your wrist, and within reach of this phone. You won’t need to unlock your watch again while it’s on your wrist.‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎When this phone is unlocked, you’ll get notified on your watch. If it was unlocked when you didn’t intend to, tap the notification to lock the phone again.‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎You’re in control‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎You can remove your watch from Watch Unlock at any time in Settings‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‎Tap a notification‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‏‎Swipe up on the lock screen‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‏‎Choose your watch‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‎Available watches‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎Cancel‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‎Confirm‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎You’re all set!‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‎You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎Done‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎Watch Unlock‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎To use Watch Unlock, your watch must be unlocked, on your wrist, within reach, and connected to this phone. If the connection is interrupted, you’ll need to unlock the phone before you can use Watch Unlock.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Keep in mind:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎You can only have one watch set up at a time. To add another watch, first remove the current one.‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎Learn more about Watch Unlock‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎Add watch‎‏‎‎‏‎"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‎Remove watch‎‏‎‎‏‎"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‏‎‎Fingerprint &amp; Face Unlock‎‏‎‎‏‎"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‏‎‎‎‏‎Face &amp; Fingerprint Unlock for work‎‏‎‎‏‎"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎Setup needed‎‏‎‎‏‎"</string>
@@ -493,6 +545,82 @@
     <string name="security_header" msgid="961514795852103424">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‎Security‎‏‎‎‏‎"</string>
     <string name="privacy_header" msgid="5526002421324257007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‏‎Privacy‎‏‎‎‏‎"</string>
     <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="2274405892301976238">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‎‎Keep private apps locked and hidden‎‏‎‎‏‎"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‎Keep private apps in a separate space that you can hide or lock‎‏‎‎‏‎"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‎‎‎Private Space lock‎‏‎‎‏‎"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‏‎‏‏‎You can unlock Private Space the same way you unlock your device, or choose a different lock‎‏‎‎‏‎"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‏‏‎‏‏‎Use device screen lock‎‏‎‎‏‎"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‎Face &amp; Fingerprint Unlock‎‏‎‎‏‎"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎Fingerprint Unlock‎‏‎‎‏‎"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‏‏‎‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎Face Unlock‎‏‎‎‏‎"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎‏‎‏‎Tap to set up‎‏‎‎‏‎"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎Fingerprint Unlock for Private Space‎‏‎‎‏‎"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎Face Unlock for Private Space‎‏‎‎‏‎"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‏‏‎‎Ways to unlock‎‏‎‎‏‎"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎Same as device screen lock‎‏‎‎‏‎"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎Choose a new lock for Private Space?‎‏‎‎‏‎"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎Lock automatically‎‏‎‎‏‎"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎Lock private space automatically‎‏‎‎‏‎"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‎You can lock your private space automatically if you havent used your device for a period of time‎‏‎‎‏‎"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‎Every time device locks‎‏‎‎‏‎"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‎‎‏‎‎‏‎After 5 minutes of inactivity‎‏‎‎‏‎"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎Never‎‏‎‎‏‎"</string>
+    <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_delete_title" msgid="3075645119800272800">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‎Delete Private Space‎‏‎‎‏‎"</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="private_space_unlocked" msgid="9091600948712932046">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎Private space unlocked‎‏‎‎‏‎"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‎Set a screen lock‎‏‎‎‏‎"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎To use your 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="private_space_cancel_label" msgid="379259667396956886">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‎‎‎‎‏‎‎‏‎‏‏‎‏‎‏‏‎‎Cancel‎‏‎‎‏‎"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎Set up‎‏‎‎‏‎"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎Set up a private space‎‏‎‎‏‎"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎Keep private apps in a separate space that you can hide or lock‎‏‎‎‏‎"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎How it works‎‏‎‎‏‎"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎‏‎You can access your private space from the bottom of your apps list‎‏‎‎‏‎"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎Apps in your private space are protected by a lock‎‏‎‎‏‎"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‏‎Notifications from apps in your private space are hidden when it’s locked‎‏‎‎‏‎"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎Apps in your private space won\'t appear in permission manager, privacy dashboard, and other settings when your private space is locked.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Your private space can\'t be moved to a new device. You\'ll need to set up another private space if you want to use it on another device.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Anyone that connects your device to a computer or installs harmful apps on your device may be able to access your private space.‎‏‎‎‏‎"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‎Setting up private space…‎‏‎‎‏‎"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎Notifications from apps in private space are hidden when it’s locked‎‏‎‎‏‎"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎Unlock private space to share photos or files from private space apps‎‏‎‎‏‎"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‏‎‎‎Some apps are already installed in your private space‎‏‎‎‏‎"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎Couldn’t set up private space‎‏‎‎‏‎"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎Try Again‎‏‎‎‏‎"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎Use screen lock to unlock private space?‎‏‎‎‏‎"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‎You can unlock your private space the same way you unlock your device, or choose a different lock‎‏‎‎‏‎"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎‎Use screen lock‎‏‎‎‏‎"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‎Choose new lock‎‏‎‎‏‎"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎All set!‎‏‎‎‏‎"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‏‏‏‏‎‏‏‏‎‏‎‏‎To access your private space, go to your apps list then scroll down‎‏‎‎‏‎"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎Done‎‏‎‎‏‎"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎Scroll down to find private space‎‏‎‎‏‎"</string>
+    <string name="private_space_retry_signin_title" msgid="8090276618867918844">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎Sign in‎‏‎‎‏‎"</string>
+    <string name="private_space_retry_summary" msgid="1920444015972648774">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‎Sign in to an account to use with your private space‎‏‎‎‏‎"</string>
+    <string name="private_space_skip_login_label" msgid="7078019409056628192">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎Not now‎‏‎‎‏‎"</string>
+    <string name="private_space_continue_login_label" msgid="7779965766333065391">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎Continue‎‏‎‎‏‎"</string>
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎Choose a lock for your private space‎‏‎‎‏‎"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎You can unlock your private space using your fingerprint. For security, this option requires a backup lock.‎‏‎‎‏‎"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎Set a PIN for your private space‎‏‎‎‏‎"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎Set a password for your private space‎‏‎‎‏‎"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎Set a pattern for your 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>
@@ -648,13 +776,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‎You may also need to type this passkey on the other device.‎‏‎‎‏‎"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‎‎‎Confirm to pair with the coordinated set‎‏‎‎‏‎"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‏‏‎‏‎‏‏‎Allow access to your contacts and call history‎‏‎‎‏‎"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎‎‏‎‎Also allow access to contacts and call history‎‏‎‎‏‎"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎Info will be used for call announcements and more‎‏‎‎‏‎"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‏‎‎‎‎‎Couldn’t connect to ‎‏‎‎‏‏‎<xliff:g id="DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‎Available devices‎‏‎‎‏‎"</string>
     <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>
@@ -707,6 +837,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>
@@ -725,6 +857,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‎In Airplane mode‎‏‎‎‏‎"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‎Notify for public networks‎‏‎‎‏‎"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎Notify when a high‑quality public network is available‎‏‎‎‏‎"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎Allow WEP networks‎‏‎‎‏‎"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‎WEP is an older security protocol that\'s less secure‎‏‎‎‏‎"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎Your carrier doesn\'t allow WEP networks because they\'re less secure‎‏‎‎‏‎"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎Turn on Wi‑Fi automatically‎‏‎‎‏‎"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎Wi‑Fi will turn back on near high‑quality saved networks, like your home network‎‏‎‎‏‎"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‎Unavailable because location is turned off. Turn on ‎‏‎‎‏‏‎"<annotation id="link">"‎‏‎‎‏‏‏‎location‎‏‎‎‏‏‎"</annotation>"‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
@@ -746,6 +881,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‏‎Wi‑Fi scanning allows apps and services to scan for Wi‑Fi networks at any time, even when Wi‑Fi is off. This can be used, for example, to improve location‑based features and services.‎‏‎‎‏‎"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎Turn on‎‏‎‎‏‎"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎Wi‑Fi scanning turned on‎‏‎‎‏‎"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎This network uses an older security protocol that\'s less secure‎‏‎‎‏‎"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ is blocked‎‏‎‎‏‎"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎This network uses an older security protocol called WEP, which is less secure. To connect anyway, you can allow WEP networks.‎‏‎‎‏‎"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‏‎‏‏‎Your carrier doesn\'t allow you to connect to this network because it uses an older security protocol that’s less secure‎‏‎‎‏‎"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎Allow WEP‎‏‎‎‏‎"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‎‎‎Close‎‏‎‎‏‎"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‏‏‏‎‏‎Advanced options‎‏‎‎‏‎"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎Drop down list Advanced Options‎‏‎‎‏‎"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎expand‎‏‎‎‏‎"</string>
@@ -841,15 +982,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎Stay on Wi‑Fi‎‏‎‎‏‎"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎Never show again‎‏‎‎‏‎"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎Connect‎‏‎‎‏‎"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‎Wi‑Fi turned on‎‏‎‎‏‎"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‎‎‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎Connected to ‎‏‎‎‏‏‎<xliff:g id="NETWORK_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎Connecting to ‎‏‎‎‏‏‎<xliff:g id="NETWORK_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎Connecting…‎‏‎‎‏‎"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‎Failed to connect to network‎‏‎‎‏‎"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‎Network not in range‎‏‎‎‏‎"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‎‎Forget‎‏‎‎‏‎"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‎Modify‎‏‎‎‏‎"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎Failed to forget network‎‏‎‎‏‎"</string>
     <string name="wifi_save" msgid="2312643132472226807">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎Save‎‏‎‎‏‎"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎Failed to save network‎‏‎‎‏‎"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‏‏‏‏‏‏‎‎‏‎‎Cancel‎‏‎‎‏‎"</string>
@@ -871,7 +1009,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎Wi‑Fi‎‏‎‎‏‎"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎Mobile data‎‏‎‎‏‎"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‎‏‏‎‎Ethernet‎‏‎‎‏‎"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g>‎‏‎‎‏‏‏‎ ‑ Charging‎‏‎‎‏‎"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ ‑ Charging‎‏‎‎‏‎"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎Hotspot connection‎‏‎‎‏‎"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎Connection strength‎‏‎‎‏‎"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎Saved networks‎‏‎‎‏‎"</string>
@@ -904,7 +1042,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎No password set‎‏‎‎‏‎"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎Hotspot name‎‏‎‎‏‎"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‎‎Hotspot password‎‏‎‎‏‎"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‏‎‎‎‏‎‎AP Band‎‏‎‎‏‎"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‎‏‎‎Turn off hotspot automatically‎‏‎‎‏‎"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‎‎When no devices are connected‎‏‎‎‏‎"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎Extend compatibility‎‏‎‎‏‎"</string>
@@ -1008,8 +1145,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎Display white balance‎‏‎‎‏‎"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎Disable default frame rate for games‎‏‎‎‏‎"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‏‎Disable limiting the maximum frame rate for games at ‎‏‎‎‏‏‎<xliff:g id="FRAME_RATE">%1$d</xliff:g>‎‏‎‎‏‏‏‎ Hz.‎‏‎‎‏‎"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎Smooth display‎‏‎‎‏‎"</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>
@@ -1020,6 +1159,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎Screen attention uses the front camera to see if someone is looking at the screen. It works on device, and images are never stored or sent to Google.‎‏‎‎‏‎"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎Turn on screen attention‎‏‎‎‏‎"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎Keep screen on when looking at it‎‏‎‎‏‎"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‎Longer screen timeout will use more battery.‎‏‎‎‏‎"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎Camera is locked‎‏‎‎‏‎"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‎Camera must be unlocked for Face Detection‎‏‎‎‏‎"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎Camera must be unlocked for Screen Attention‎‏‎‎‏‎"</string>
@@ -1150,6 +1290,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎IMEI (sim slot ‎‏‎‎‏‏‎<xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>‎‏‎‎‏‏‏‎)‎‏‎‎‏‎"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‎IMEI (sim slot ‎‏‎‎‏‏‎<xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>‎‏‎‎‏‏‏‎) (primary)‎‏‎‎‏‎"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎To view, choose saved network‎‏‎‎‏‎"</string>
+    <string name="status_imei" msgid="5719752369250485007">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‏‎IMEI‎‏‎‎‏‎"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎IMEI SV‎‏‎‎‏‎"</string>
     <string name="status_min_number" msgid="4492899165438225714">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‏‎‎MIN‎‏‎‎‏‎"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‎MSID‎‏‎‎‏‎"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎PRL version‎‏‎‎‏‎"</string>
@@ -1243,8 +1385,10 @@
     <string name="battery_level_title" msgid="1371765298786083448">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎Battery level‎‏‎‎‏‎"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‏‏‎Communal‎‏‎‎‏‎"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎Communal settings‎‏‎‎‏‎"</string>
+    <string name="satellite_setting" msgid="706846910912477125">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎Satellite Messaging‎‏‎‎‏‎"</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>
@@ -1267,6 +1411,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>
@@ -1274,11 +1420,13 @@
     <string name="menu_save" msgid="6611465355127483100">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎Save‎‏‎‎‏‎"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎Cancel‎‏‎‎‏‎"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <string name="error_duplicate_apn_entry" msgid="7792928408935276618">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‎‏‎‏‎‎Duplicate apn entry.‎‏‎‎‏‎"</string>
     <string name="error_name_empty" msgid="1258275899283079142">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎The Name field can’t be empty.‎‏‎‎‏‎"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‎The APN can’t be empty.‎‏‎‎‏‎"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎MCC field must be 3 digits.‎‏‎‎‏‎"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‎‎‏‏‎‎MNC field must be 2 or 3 digits.‎‏‎‎‏‎"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‎Carrier does not allow adding APNs of type %s.‎‏‎‎‏‎"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎MMSC field must be valid.‎‏‎‎‏‎"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‎‎‎‎‏‎Restoring default APN settings.‎‏‎‎‏‎"</string>
     <string name="menu_restore" msgid="4310539620115151551">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‎Reset to default‎‏‎‎‏‎"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‎‎‎‎Reset default APN settings completed.‎‏‎‎‏‎"</string>
@@ -1291,7 +1439,7 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‏‏‏‎Reset‎‏‎‎‏‎"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎Bluetooth &amp; Wi‑Fi have been reset‎‏‎‎‏‎"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎Erase eSIMs‎‏‎‎‏‎"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‎This won’t cancel any mobile service plans. To download replacement SIMs, contact your carrier.‎‏‎‎‏‎"</string>
+    <string name="reset_esim_desc" msgid="6125192435907740751">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‎‎‏‏‏‏‎This won’t cancel your mobile service plan. To get a replacement SIM, contact your carrier.‎‏‎‎‏‎"</string>
     <string name="reset_network_button_text" msgid="2281476496459610071">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎Reset settings‎‏‎‎‏‎"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‎‏‎Reset all network settings? You can’t undo this action.‎‏‎‎‏‎"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‏‏‎Reset all network settings and erase eSIMs? You can’t undo this action.‎‏‎‎‏‎"</string>
@@ -1299,15 +1447,15 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‎Reset?‎‏‎‎‏‎"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‎‏‎Network reset is not available for this user‎‏‎‎‏‎"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‎Network settings have been reset‎‏‎‎‏‎"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‏‏‎‏‎Can’t erase SIMs‎‏‎‎‏‎"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‎‎‏‎‎eSIMs can’t be erased due to an error.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Restart your device and try again.‎‏‎‎‏‎"</string>
+    <string name="reset_esim_error_title" msgid="6516110227665862295">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎Can’t erase eSIMs‎‏‎‎‏‎"</string>
+    <string name="reset_esim_error_msg" msgid="8459527827897797168">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‎‎Something went wrong and your eSIMs weren’t erased.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Restart your device and try again.‎‏‎‎‏‎"</string>
     <string name="main_clear_title" msgid="277664302144837723">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎Erase all data (factory reset)‎‏‎‎‏‎"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‏‎‎‎‎Erase all data (factory reset)‎‏‎‎‏‎"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Music‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Photos‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎Other user data‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‏‏‎"<li>"‎‏‎‎‏‏‏‎eSIMs‎‏‎‎‏‏‎"</li>"‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎This will not cancel your mobile service plan.‎‏‎‎‏‎"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‎All of your personal information and downloaded apps will be deleted. You can’t undo this action.‎‏‎‎‏‎"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎All of your personal information, including downloaded apps &amp; SIMs, will be deleted. You can’t undo this action.‎‏‎‎‏‎"</string>
+    <string name="main_clear_final_desc_esim" msgid="6592404057237813989">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎All of your personal information, including downloaded apps &amp; eSIMs, will be deleted. You can’t undo this action.‎‏‎‎‏‎"</string>
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎Erase all data?‎‏‎‎‏‎"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎Factory reset is not available for this user‎‏‎‎‏‎"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‎Erasing‎‏‎‎‏‎"</string>
@@ -1340,16 +1488,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‎Hotspot, USB, Bluetooth, Ethernet‎‏‎‎‏‎"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‎‎Not sharing internet with other devices‎‏‎‎‏‎"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‎Off‎‏‎‎‏‎"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‎‎Tethering‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎‎‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‏‏‏‎‎Don’t use Wi‑Fi hotspot‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎Only share internet via USB‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎Only share internet via Bluetooth‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‏‏‏‏‎‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎Only share internet via Ethernet‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎Only share internet via USB and Bluetooth‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‎Only share internet via USB and Ethernet‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎Only share internet via Bluetooth and Ethernet‎‏‎‎‏‎"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎Only share internet via USB, Bluetooth and Ethernet‎‏‎‎‏‎"</string>
-    <string name="usb_title" msgid="1157283449840612901">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎USB‎‏‎‎‏‎"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎USB tethering‎‏‎‎‏‎"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‎‎‏‎Bluetooth tethering‎‏‎‎‏‎"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‎Ethernet tethering‎‏‎‎‏‎"</string>
@@ -1357,7 +1495,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎Use hotspot and tethering to provide internet to other devices through your Wi‑Fi or mobile data connection. Apps can also create a hotspot to share content with nearby devices.‎‏‎‎‏‎"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‎Help‎‏‎‎‏‎"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‎‎Mobile network‎‏‎‎‏‎"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‎‎‎‎Mobile plan‎‏‎‎‏‎"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‎‏‎‎‏‎SMS app‎‏‎‎‏‎"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎Change SMS app?‎‏‎‎‏‎"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‎Use ‎‏‎‎‏‏‎<xliff:g id="NEW_APP">%1$s</xliff:g>‎‏‎‎‏‏‏‎ instead of ‎‏‎‎‏‏‎<xliff:g id="CURRENT_APP">%2$s</xliff:g>‎‏‎‎‏‏‏‎ as your SMS app?‎‏‎‎‏‎"</string>
@@ -1365,10 +1502,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‎Change Wi‑Fi assistant?‎‏‎‎‏‎"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‏‎‎Use ‎‏‎‎‏‏‎<xliff:g id="NEW_APP">%1$s</xliff:g>‎‏‎‎‏‏‏‎ instead of ‎‏‎‎‏‏‎<xliff:g id="CURRENT_APP">%2$s</xliff:g>‎‏‎‎‏‏‏‎ to manage your network connections?‎‏‎‎‏‎"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎Use ‎‏‎‎‏‏‎<xliff:g id="NEW_APP">%s</xliff:g>‎‏‎‎‏‏‏‎ to manage your network connections?‎‏‎‎‏‎"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎Unknown SIM operator‎‏‎‎‏‎"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎<xliff:g id="OPERATOR">%1$s</xliff:g>‎‏‎‎‏‏‏‎ has no known provisioning website‎‏‎‎‏‎"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎Please insert SIM card and restart‎‏‎‎‏‎"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‏‎‎‎Please connect to the internet‎‏‎‎‏‎"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‎‏‎‎‏‎‎Recent location requests‎‏‎‎‏‎"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‎‎‎‏‎‎Location for work profile‎‏‎‎‏‎"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎App location permissions‎‏‎‎‏‎"</string>
@@ -1551,6 +1684,12 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎Clear access‎‏‎‎‏‎"</string>
     <string name="controls_label" msgid="8671492254263626383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‏‏‏‏‎Controls‎‏‎‎‏‎"</string>
     <string name="force_stop" msgid="2681771622136916280">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎‎Force stop‎‏‎‎‏‎"</string>
+    <string name="archive" msgid="9074663845068632127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎Archive‎‏‎‎‏‎"</string>
+    <string name="restore" msgid="7622486640713967157">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎Restore‎‏‎‎‏‎"</string>
+    <string name="restoring_step_one" msgid="3465050101254272874">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎Restoring‎‏‎‎‏‎"</string>
+    <string name="restoring_step_two" msgid="140484846432595108">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎Restoring.‎‏‎‎‏‎"</string>
+    <string name="restoring_step_three" msgid="3712883580876329811">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎Restoring..‎‏‎‎‏‎"</string>
+    <string name="restoring_step_four" msgid="8966846882470446209">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‎Restoring...‎‏‎‎‏‎"</string>
     <string name="total_size_label" msgid="2052185048749658866">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎Total‎‏‎‎‏‎"</string>
     <string name="application_size_label" msgid="6407051020651716729">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎App size‎‏‎‎‏‎"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎USB storage app‎‏‎‎‏‎"</string>
@@ -1604,6 +1743,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‎‎‏‎Couldn’t compute package size.‎‏‎‎‏‎"</string>
     <string name="version_text" msgid="7628938665256107608">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎version ‎‏‎‎‏‏‎<xliff:g id="VERSION_NUM">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="move_app" msgid="5421158479447276791">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎Move‎‏‎‎‏‎"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‎‎‏‎‎Archiving failed‎‏‎‎‏‎"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎Archived ‎‏‎‎‏‏‎<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‎Restoring failed‎‏‎‎‏‎"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎Restoring ‎‏‎‎‏‏‎<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎Another migration is already in progress.‎‏‎‎‏‎"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎Not enough storage space.‎‏‎‎‏‎"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎App doesn’t exist.‎‏‎‎‏‎"</string>
@@ -1689,9 +1832,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‎Available On-screen keyboard‎‏‎‎‏‎"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎Manage on-screen keyboards‎‏‎‎‏‎"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎Options‎‏‎‎‏‎"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‏‎‏‎Accessibility‎‏‎‎‏‎"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‏‏‎‎Physical keyboard‎‏‎‎‏‎"</string>
     <string name="show_ime" msgid="4334255501724746849">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‎‎‎‏‎Use on-screen keyboard‎‏‎‎‏‎"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎Keep it on screen while physical keyboard is active‎‏‎‎‏‎"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‎Bounce keys‎‏‎‎‏‎"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎Enable Bounce keys for physical keyboard accessibility‎‏‎‎‏‎"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‎Sticky keys‎‏‎‎‏‎"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‏‎Enable Sticky keys for physical keyboard accessibility‎‏‎‎‏‎"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎Keyboard shortcuts‎‏‎‎‏‎"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎Show list of shortcuts‎‏‎‎‏‎"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‏‎‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎Work profile keyboards &amp; tools‎‏‎‎‏‎"</string>
@@ -1789,7 +1937,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‏‏‏‎‏‎Sort by usage time‎‏‎‎‏‎"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‎Sort by last time used‎‏‎‎‏‎"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎Sort by app name‎‏‎‎‏‎"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎Last time used‎‏‎‎‏‎"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎Last used‎‏‎‎‏‎"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎never‎‏‎‎‏‎"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‏‏‎Usage time‎‏‎‎‏‎"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎Accessibility‎‏‎‎‏‎"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‏‏‎‏‎‎‎Accessibility settings‎‏‎‎‏‎"</string>
@@ -1852,7 +2001,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‎Continue anyway‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎Cancel‎‏‎‎‏‎"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎Magnification settings‎‏‎‎‏‎"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‏‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‎‏‎‏‏‎‎‏‏‎‏‏‏‎Magnify with triple-tap‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎Magnify with shortcut‎‏‎‎‏‎"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎Magnify with shortcut &amp; triple-tap‎‏‎‎‏‎"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎About ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -1878,18 +2026,20 @@
     <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_double" msgid="3912970760484557646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‏‎‎Two finger double 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="860548190334486449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎To start and stop magnification, double-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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‎To use an accessibility 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_button" msgid="2031773187678948436">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎Got it‎‏‎‎‏‎"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎Accessibility button settings‎‏‎‎‏‎"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‎Button settings‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ shortcut‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‏‎Accessibility button‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎Accessibility gesture‎‏‎‎‏‎"</string>
@@ -1905,6 +2055,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_double_tap" msgid="2271778556854020996">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎Two-finger double-tap screen‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎two-finger double-tap screen‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎Quickly tap screen {0,number,integer} times with two fingers‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎Triple-tap screen‎‏‎‎‏‎"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2076,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‎Learn more about accessibility button &amp; gesture‎‏‎‎‏‎"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎Using the accessibility button. The gesture isn’t available with 3-button navigation.‎‏‎‎‏‎"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎Quickly access accessibility features‎‏‎‎‏‎"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎To get started‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎1. Go to accessibility settings‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎2. Select a feature and tap the shortcut‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎3. Choose whether you want to use a button or gesture to access the feature‎‏‎‎‏‎"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎"<b>"‎‏‎‎‏‏‏‎To get started‎‏‎‎‏‏‎"</b>"‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎1. Go to accessibility settings‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎2. Select a feature and tap the shortcut‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎3. Choose the button to access the feature‎‏‎‎‏‎"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‎&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose whether you want to use a button or gesture to access the feature&lt;br/&gt;‎‏‎‎‏‎"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‏‏‏‏‎&lt;b&gt;To get started&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Go to accessibility settings&lt;br/&gt; {1,number,integer}. Select a feature and tap the shortcut&lt;br/&gt; {2,number,integer}. Choose the button to access the feature&lt;br/&gt;‎‏‎‎‏‎"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‎‏‎Use button or gesture‎‏‎‎‏‎"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‎‏‏‏‎‎Location‎‏‎‎‏‎"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎Size‎‏‎‎‏‎"</string>
@@ -1940,6 +2093,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎Power button ends call‎‏‎‎‏‎"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‎Large mouse pointer‎‏‎‎‏‎"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‏‎‎‏‎Make the mouse pointer more noticeable‎‏‎‎‏‎"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎Make all apps dark‎‏‎‎‏‎"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‎‎Applies to apps without their own dark theme. Some apps may have display issues, like inverted colors.‎‏‎‎‏‎"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‎‏‎‎Remove animations‎‏‎‎‏‎"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‎Reduce movement on the screen‎‏‎‎‏‎"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎Mono audio‎‏‎‎‏‎"</string>
@@ -1992,6 +2147,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>
@@ -2128,16 +2284,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‎It can track your interactions with an app or a hardware sensor, and interact with apps on your behalf.‎‏‎‎‏‎"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎Allow‎‏‎‎‏‎"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎Deny‎‏‎‎‏‎"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎Stop‎‏‎‎‏‎"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎Cancel‎‏‎‎‏‎"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎Stop ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎Tapping ‎‏‎‎‏‏‎<xliff:g id="STOP">%1$s</xliff:g>‎‏‎‎‏‏‏‎ will stop ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%2$s</xliff:g>‎‏‎‎‏‏‏‎.‎‏‎‎‏‎"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎Turn off‎‏‎‎‏‎"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‎‏‏‏‏‏‏‏‎‎Keep on‎‏‎‎‏‎"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‎‏‎‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎Turn off ‎‏‎‎‏‏‎<xliff:g id="SERVICE">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‏‎No services installed‎‏‎‎‏‎"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎No service selected‎‏‎‎‏‎"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎No description provided.‎‏‎‎‏‎"</string>
     <string name="settings_button" msgid="2195468788019730377">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‎Settings‎‏‎‎‏‎"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‎light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point‎‏‎‎‏‎"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎Ease of use, ease of access, assistance, assistive‎‏‎‎‏‎"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help‎‏‎‎‏‎"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‏‏‎‎Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger‎‏‎‎‏‎"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle‎‏‎‎‏‎"</string>
@@ -2152,10 +2307,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎color contrast‎‏‎‎‏‎"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‎‎‎‏‏‎motor, mouse‎‏‎‎‏‎"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors‎‏‎‎‏‎"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick‎‏‎‎‏‎"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP‎‏‎‎‏‎"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎hard of hearing, hearing loss, captions, Teletype, tty‎‏‎‎‏‎"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‎‏‎‏‎‎‎‎‏‏‏‏‏‎‏‎‎three buttons‎‏‎‎‏‎"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‎dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand‎‏‎‎‏‎"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎delay, dexterity, senior‎‏‎‎‏‎"</string>
     <string name="print_settings" msgid="8519810615863882491">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‎Printing‎‏‎‎‏‎"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎Off‎‏‎‎‏‎"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎1 print service on‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎# print services on‎‏‎‎‏‎}}"</string>
@@ -2190,11 +2348,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>
@@ -2230,12 +2393,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎See apps with highest usage‎‏‎‎‏‎"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎Charging optimized to protect your battery‎‏‎‎‏‎"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‏‎‎To help extend your battery\'s lifespan, charging is optimized‎‏‎‎‏‎"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‏‎Charging optimized to protect your battery‎‏‎‎‏‎"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‏‏‎‏‎To help extend your battery\'s lifespan, charging is optimized while docked‎‏‎‎‏‎"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎Charging optimized to protect your battery‎‏‎‎‏‎"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‏‏‎‎‏‏‎To help extend your battery\'s lifespan, charging is optimized while docked‎‏‎‎‏‎"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎‏‎Charging to full‎‏‎‎‏‎"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‎To protect your battery, charging will be optimized the next time your tablet is docked‎‏‎‎‏‎"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎Learn more about charging is paused‎‏‎‎‏‎"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‎‎Resume charging‎‏‎‎‏‎"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎Includes high-power background activity‎‏‎‎‏‎"</string>
@@ -2253,7 +2410,7 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‎‎Remove‎‏‎‎‏‎"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎‎‏‏‎Cancel‎‏‎‎‏‎"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‏‎‏‎Charge to full‎‏‎‎‏‎"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‎‎Issue with charging accessory‎‏‎‎‏‎"</string>
+    <string name="battery_tip_incompatible_charging_title" msgid="1567827436103364999">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‎‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‏‏‎Check charging accessory‎‏‎‎‏‎"</string>
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎Learn more about incompatible charging‎‏‎‎‏‎"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‎Battery Manager‎‏‎‎‏‎"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‏‎‎‏‎‏‏‏‎‎Manage apps automatically‎‏‎‎‏‎"</string>
@@ -2293,6 +2450,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>
@@ -2336,6 +2494,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>
@@ -2343,9 +2502,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‏‎now‎‏‎‎‏‎"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>‎‏‎‎‏‏‏‎ - ‎‏‎‎‏‏‎<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎<xliff:g id="DAY">%1$s</xliff:g>‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎<xliff:g id="HOUR">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="TIME_INFO">%1$s</xliff:g>‎‏‎‎‏‏‏‎ ‎‏‎‎‏‏‎<xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‏‎‎‎‏‎Battery usage chart‎‏‎‎‏‎"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎Daily battery usage chart‎‏‎‎‏‎"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎Hourly battery usage chart‎‏‎‎‏‎"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‎‎‏‎‎Battery level percentage from ‎‏‎‎‏‏‎<xliff:g id="START_PERCENTAGE">%1$s</xliff:g>‎‏‎‎‏‏‏‎ to ‎‏‎‎‏‏‎<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎Battery usage since last full charge‎‏‎‎‏‎"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎Battery usage for ‎‏‎‎‏‏‎<xliff:g id="SLOT">%s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‎‎‏‎Screen time since last full charge‎‏‎‎‏‎"</string>
@@ -2461,8 +2622,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‎Emergency dialing signal‎‏‎‎‏‎"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎Set behavior when an emergency call is placed‎‏‎‎‏‎"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‎‎‏‎Backup‎‏‎‎‏‎"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎On‎‏‎‎‏‎"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎Off‎‏‎‎‏‎"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‎Backup &amp; restore‎‏‎‎‏‎"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‎Personal data‎‏‎‎‏‎"</string>
     <string name="backup_data_title" msgid="507663517227498525">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‎Back up my data‎‏‎‎‏‎"</string>
@@ -2551,6 +2710,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>
@@ -2600,27 +2760,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‎‏‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎Name‎‏‎‎‏‎"</string>
     <string name="vpn_type" msgid="5533202873260826663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎Type‎‏‎‎‏‎"</string>
     <string name="vpn_server" msgid="2908816134941973935">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‎‏‏‏‏‎Server address‎‏‎‎‏‎"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎PPP encryption (MPPE)‎‏‎‎‏‎"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎L2TP secret‎‏‎‎‏‎"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‎‏‎IPSec identifier‎‏‎‎‏‎"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‎‏‏‎IPSec pre-shared key‎‏‎‎‏‎"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎IPSec user certificate‎‏‎‎‏‎"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎‏‎‏‏‎IPSec CA certificate‎‏‎‎‏‎"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‎‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‏‎‎‎IPSec server certificate‎‏‎‎‏‎"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎Show advanced options‎‏‎‎‏‎"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‎‎‎DNS search domains‎‏‎‎‏‎"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‏‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎DNS servers (e.g. 8.8.8.8)‎‏‎‎‏‎"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎‏‏‏‎‎Forwarding routes (e.g. 10.0.0.0/8)‎‏‎‎‏‎"</string>
     <string name="vpn_username" msgid="8671768183475960068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‎‎‎‎‎‏‎‎‎Username‎‏‎‎‏‎"</string>
     <string name="vpn_password" msgid="1183746907642628127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎Password‎‏‎‎‏‎"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎‎‏‏‎‏‎‏‎‎Save account information‎‏‎‎‏‎"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‏‏‏‎‎‏‏‎‏‎‎(not used)‎‏‎‎‏‎"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎(don’t verify server)‎‏‎‎‏‎"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‏‎(received from server)‎‏‎‎‏‎"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‎‎‎‎‏‏‎‎‎This VPN type can\'t stay connected at all times‎‏‎‎‏‎"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎Always-on VPN only supports numeric server addresses‎‏‎‎‏‎"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎A DNS server must be specified for always-on VPN‎‏‎‎‏‎"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‏‎DNS server addresses must be numeric for always-on VPN‎‏‎‎‏‎"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎The information entered doesn\'t support always-on VPN‎‏‎‎‏‎"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎Cancel‎‏‎‎‏‎"</string>
     <string name="vpn_done" msgid="5137858784289564985">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‏‎Dismiss‎‏‎‎‏‎"</string>
@@ -2656,6 +2807,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‏‏‎‎‎‏‏‎‎Block connections without VPN‎‏‎‎‏‎"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‎Require VPN connection?‎‏‎‎‏‎"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎Not secure. Update to an IKEv2 VPN‎‏‎‎‏‎"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‎Failed to start unsupported VPN.‎‏‎‎‏‎"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN.‎‏‎‎‏‎"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎None‎‏‎‎‏‎"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‎‎Always-on VPN requires an IP address for both server and DNS.‎‏‎‎‏‎"</string>
@@ -2790,11 +2942,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‎‎‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‏‏‏‏‎AMBER alerts‎‏‎‎‏‎"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‏‎‏‏‎Receive bulletins about child abductions‎‏‎‎‏‎"</string>
     <string name="repeat_title" msgid="8676570486899483606">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‏‏‎‎Repeat‎‏‎‎‏‎"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎Enable Call Manager‎‏‎‎‏‎"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‎‎Allow this service to manage how your calls are made.‎‏‎‎‏‎"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‎Call Manager‎‏‎‎‏‎"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‏‏‏‏‎Wireless emergency alerts‎‏‎‎‏‎"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‎Network operators‎‏‎‎‏‎"</string>
     <string name="access_point_names" msgid="5768430498022188057">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‎‏‎Access point names‎‏‎‎‏‎"</string>
@@ -2948,7 +3095,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‏‎‏‏‎‎‎wallet‎‏‎‎‏‎"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‏‏‎‏‎‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‏‎‏‏‎pay, tap, payments‎‏‎‎‏‎"</string>
     <string name="keywords_backup" msgid="707735920706667685">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‏‎‏‎backup, back up‎‏‎‎‏‎"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‎gesture‎‏‎‎‏‎"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‎face, unlock, auth, sign in‎‏‎‎‏‎"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎face, unlock, auth, sign in, fingerprint, biometric‎‏‎‎‏‎"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‏‎‎imei, meid, min, prl version, imei sv‎‏‎‎‏‎"</string>
@@ -2999,6 +3145,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>
@@ -3034,9 +3181,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‏‎Power on sounds‎‏‎‎‏‎"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎Live Caption‎‏‎‎‏‎"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎Automatically caption media‎‏‎‎‏‎"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎Phone speakers‎‏‎‎‏‎"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎Tablet speakers‎‏‎‎‏‎"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‏‎‏‎Device speakers‎‏‎‎‏‎"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎‎‎Wired headphones‎‏‎‎‏‎"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎Audio from compatible media becomes more immersive‎‏‎‎‏‎"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎Off‎‏‎‎‏‎"</string>
@@ -3221,7 +3365,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>
@@ -3250,6 +3394,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎Recent conversations removed‎‏‎‎‏‎"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎Conversation removed‎‏‎‎‏‎"</string>
     <string name="clear" msgid="5092178335409471100">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎Clear‎‏‎‎‏‎"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‏‏‏‎‎‎‎Clear ‎‏‎‎‏‏‎<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎Priority and modified conversations will appear here‎‏‎‎‏‎"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‎Once you mark a conversation as priority, or make any other changes to conversations, they will appear here. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To change conversation settings: ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Swipe down from the top of the screen to open the pull-down shade, then touch &amp; hold a conversation.‎‏‎‎‏‎"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‎‏‎‏‎Minimize‎‏‎‎‏‎"</string>
@@ -3308,6 +3453,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>
@@ -3502,8 +3658,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‎‎‎‏‏‎Off‎‏‎‎‏‎"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‏‏‎‎App pinning‎‏‎‎‏‎"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‏‏‎‏‎‏‎‏‎App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game.‎‏‎‎‏‎"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎When an app is pinned, the pinned app may open other apps and personal data may be accessible. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To use app pinning: 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎1. Turn on app pinning 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎2. Open Overview 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎3. Tap the app icon at the top of the screen, then tap Pin‎‏‎‎‏‎"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‎‏‏‎‏‏‎‏‏‎When an app is pinned, the pinned app may open other apps and personal data may be accessible. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎If you want to securely share your device with someone, try using a guest user instead. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To use app pinning: 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎1. Turn on app pinning 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎2. Open Overview 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎3. Tap the app icon at the top of the screen, then tap Pin‎‏‎‎‏‎"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‎‎When an app is pinned, the pinned app may open other apps and personal data may be accessible. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To use app pinning: 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎{0,number,integer}. Turn on app pinning 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎{1,number,integer}. Open Overview 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin‎‏‎‎‏‎"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎When an app is pinned, the pinned app may open other apps and personal data may be accessible. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎If you want to securely share your device with someone, try using a guest user instead. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎To use app pinning: 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎{0,number,integer}. Turn on app pinning 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎{1,number,integer}. Open Overview 	‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin‎‏‎‎‏‎"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‎When app is pinned: ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎•		Personal data may be accessible ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎		(such as contacts and email content) ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎•		Pinned app may open other apps ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Only use app pinning with people you trust.‎‏‎‎‏‎"</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎Ask for unlock pattern before unpinning‎‏‎‎‏‎"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‏‎‎‏‏‏‏‏‏‎Ask for PIN before unpinning‎‏‎‎‏‎"</string>
@@ -3569,6 +3725,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‎‏‏‎Unused app settings‎‏‎‎‏‎"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‏‏‎‎‎Pause app activity if unused‎‏‎‎‏‎"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎Remove permissions, delete temporary files, and stop notifications‎‏‎‎‏‎"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎Manage app if unused‎‏‎‎‏‎"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎Remove permissions, delete temporary files, stop notifications, and archive the app‎‏‎‎‏‎"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎All apps‎‏‎‎‏‎"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎‎‎Installed apps‎‏‎‎‏‎"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‎Instant apps‎‏‎‎‏‎"</string>
@@ -3677,6 +3835,9 @@
     <string name="free_memory" msgid="439783742246854785">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎Free‎‏‎‎‏‎"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‏‎‏‏‏‎‎‎‎‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‏‎‏‎‎‏‏‎Memory used by apps‎‏‎‎‏‎"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎1 app used memory in the last ‎‏‎‎‏‏‎{time}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎# apps used memory in the last ‎‏‎‎‏‏‎{time}‎‏‎‎‏‏‏‎‎‏‎‎‏‎}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎Enable memory usage profiling‎‏‎‎‏‎"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‎‎‎‎‎‎Memory usage profiling requires additional system resources.‎‏‎‎‏‎"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‎‎Memory profiling disabled‎‏‎‎‏‎"</string>
     <string name="running_frequency" msgid="7260225121706316639">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‏‎Frequency‎‏‎‎‏‎"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‎‏‏‏‎Maximum usage‎‏‎‎‏‎"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎No data used‎‏‎‎‏‎"</string>
@@ -3695,10 +3856,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‏‏‏‎‎‏‏‏‎‎‏‎Display over other apps‎‏‎‎‏‎"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‏‏‎‏‎‏‏‎Allow display over other apps‎‏‎‎‏‎"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‎‎Allow this app to display on top of other apps you’re using. This app will be able to see where you tap or change what’s displayed on the screen.‎‏‎‎‏‎"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎Change media output‎‏‎‎‏‎"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‎‎‏‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‎‎‎‎Allow app to switch media output‎‏‎‎‏‎"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‎‎‎‎‏‏‎‏‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‎‏‎‎‎‎‏‏‏‎Allow this app to choose which connected device plays audio or video from other apps. If allowed, this app can access a list of available devices such as headphones and speakers and choose which output device is used to stream or cast audio or video.‎‏‎‎‏‎"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎All files access‎‏‎‎‏‎"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‏‎‎‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎‏‎Improve voice activation‎‏‎‎‏‎"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎This device uses private intelligence to improve the voice activation model. Apps can receive summarized updates that are aggregated across many users to maintain privacy while improving the model for everyone.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎"<a href="">"‎‏‎‎‏‏‏‎More about private intelligence‎‏‎‎‏‏‎"</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>
@@ -3807,7 +3976,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="ID_1">^1</xliff:g>‎‏‎‎‏‏‏‎ data warning‎‏‎‎‏‎"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‏‎<xliff:g id="ID_1">^1</xliff:g>‎‏‎‎‏‏‏‎ data limit‎‏‎‎‏‎"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‎‎‎‎‎‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎<xliff:g id="ID_1">^1</xliff:g>‎‏‎‎‏‏‏‎ data warning / ‎‏‎‎‏‏‎<xliff:g id="ID_2">^2</xliff:g>‎‏‎‎‏‏‏‎ data limit‎‏‎‎‏‎"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‏‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‎Carrier data accounting may differ from device accounting‎‏‎‎‏‎"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‎‏‏‎‎‎‎‎‏‎‎‎‎‏‏‏‎‎‎‏‎‏‎‏‎‎‎‏‎Excludes data used by carrier networks‎‏‎‎‏‎"</string>
     <string name="data_used_template" msgid="8229342096562327646">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎ used‎‏‎‎‏‎"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‏‏‎‎Set data warning‎‏‎‎‏‎"</string>
@@ -3833,7 +4001,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‏‎‏‏‎‏‏‏‏‎‎Updated ‎‏‎‎‏‏‎<xliff:g id="ID_1">^2</xliff:g>‎‏‎‎‏‏‏‎ ago‎‏‎‎‏‎"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎Updated by ‎‏‎‎‏‏‎<xliff:g id="ID_1">^1</xliff:g>‎‏‎‎‏‏‏‎ just now‎‏‎‎‏‎"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‎‎‎Updated just now‎‏‎‎‏‎"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‎‎‎‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎View plan‎‏‎‎‏‎"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‏‏‎‎‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‏‏‎‎‏‏‎‏‎‎‏‏‏‏‏‏‎‎View details‎‏‎‎‏‎"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‎Data Saver‎‏‎‎‏‎"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‎‏‏‏‎Unrestricted data‎‏‎‎‏‎"</string>
@@ -3864,6 +4031,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>
@@ -3932,7 +4100,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎Quick settings developer tiles‎‏‎‎‏‎"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎Disable adb authorization timeout‎‏‎‎‏‎"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‏‎‎Disable automatic revocation of adb authorizations for systems that have not reconnected within the default (7 days) or user-configured (minimum 1 day) amount of time.‎‏‎‎‏‎"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎Winscope Trace‎‏‎‎‏‎"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎Sensors Off‎‏‎‎‏‎"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‏‎‏‏‏‎‎‏‎Work profile settings‎‏‎‎‏‎"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‎‏‎‎‏‎‎‏‎Search for work directory contacts in personal apps‎‏‎‎‏‎"</string>
@@ -3962,7 +4129,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>
@@ -4122,21 +4289,27 @@
     <string name="autofill_app" msgid="7595308061826307921">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‎Autofill service‎‏‎‎‏‎"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‏‎‏‏‎‎Default autofill service‎‏‎‎‏‎"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‎‎‏‏‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‎‎‎‎‎‏‏‏‎‏‏‏‎‏‏‎Passwords‎‏‎‎‏‎"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‎‎Passwords, passkeys and data services‎‏‎‎‏‎"</string>
+    <string name="credman_chosen_app_title" msgid="7735183808067729319">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‎Preferred service‎‏‎‎‏‎"</string>
     <string name="credman_credentials" msgid="4931371941253324143">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‎‏‎‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‏‎‏‏‎‏‏‏‏‎Additional providers‎‏‎‎‏‎"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎# password‎‏‎‎‏‎}other{‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‏‎‏‎# passwords‎‏‎‎‏‎}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‎auto, fill, autofill, password‎‏‎‎‏‎"</string>
     <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="credman_button_change" msgid="4072629639218503790">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎Change‎‏‎‎‏‎"</string>
+    <string name="credman_button_open" msgid="7519871964170816850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‎‎Open‎‏‎‎‏‎"</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_picker_title" msgid="2642776965060619988">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‎‎Passwords, passkeys and data services‎‏‎‎‏‎"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‎‏‎‏‏‎‏‎‎‎‏‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passwords, passkeys, and other saved info won\'t be available for autofill when you sign in‎‏‎‎‏‎"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‎‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎&lt;b&gt;Change your preferred service to &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_enable_confirmation_message_title" msgid="1037501792652277829">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‏‏‎‎‏‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‏‎Use %1$s?‎‏‎‎‏‎"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‏‎You can only have 5 services on‎‏‎‎‏‎"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎Turn off at least 1 service to add another‎‏‎‎‏‎"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‏‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‎%1$s uses what\'s on your screen to determine what can be autofilled.‎‏‎‎‏‎"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‏‎‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎Passwords, passkeys and data services limit‎‏‎‎‏‎"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎You can have up to 5 passwords, passkeys and data services active at the same time. Turn off a service to add more.‎‏‎‎‏‎"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‎‎Passwords, passkeys, and data services limit‎‏‎‎‏‎"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎You can have up to 5 passwords, passkeys, and data services active at the same time. Turn off a service to add more.‎‏‎‎‏‎"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎Turn off‎‏‎‎‏‎"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‏‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎Autofill‎‏‎‎‏‎"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‎‎‎‏‏‎Logging level‎‏‎‎‏‎"</string>
@@ -4193,6 +4366,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‎‎‎App compatibility changes can only be modified for debuggable apps. Install a debuggable app and try again.‎‏‎‎‏‎"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‏‎‎‎‎Depends on another setting‎‏‎‎‏‎"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎Account‎‏‎‎‏‎"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‏‎‎‎‎‏‎‏‏‎‎‎‏‎‎‎‎‎‎‏‎‎‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‏‎%d accounts‎‏‎‎‏‎"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‏‎Device name‎‏‎‎‏‎"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎Basic info‎‏‎‎‏‎"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‏‏‎Legal &amp; regulatory‎‏‎‎‏‎"</string>
@@ -4206,6 +4380,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‏‎‏‏‏‎‎‏‏‎Allow this app to launch when an NFC tag is scanned.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎If this permission is on, the app will be available as an option whenever a tag is detected.‎‏‎‎‏‎"</string>
     <string name="media_output_title" msgid="8283629315159510680">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‎‎Play media to‎‏‎‎‏‎"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎Play ‎‏‎‎‏‏‎<xliff:g id="LABEL">%s</xliff:g>‎‏‎‎‏‏‏‎ on‎‏‎‎‏‎"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎Audio will play on‎‏‎‎‏‎"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎This device‎‏‎‎‏‎"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‎‎‎‎‏‏‎‏‎‏‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎Unavailable during calls‎‏‎‎‏‎"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎Take call on‎‏‎‎‏‎"</string>
@@ -4219,7 +4394,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‏‏‎‏‏‎‏‎‏‎Mute‎‏‎‎‏‎"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎To enable, first change \"Press &amp; hold power button\" to the power menu.‎‏‎‎‏‎"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‏‎‎‎‏‎‎‎‏‎‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎Network details‎‏‎‎‏‎"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‎Your device name is visible to apps on your phone. 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="devices_title" msgid="649715719278562515">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‏‎‏‎‎‏‏‎Devices‎‏‎‎‏‎"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‎Choose network‎‏‎‎‏‎"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‏‎‏‎Disconnected‎‏‎‎‏‎"</string>
@@ -4302,11 +4476,11 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎Name‎‏‎‎‏‎"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‎‎Color (used by compatible apps)‎‏‎‎‏‎"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‎‏‎‎‏‎‎‎‏‎‎‎‏‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎Save‎‏‎‎‏‎"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‎‎‏‎‏‎‏‎‏‏‏‏‎‎‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎Use SIM‎‏‎‎‏‎"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‎Use this SIM‎‏‎‎‏‎"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‏‎‏‏‎‏‏‏‏‎Off‎‏‎‎‏‎"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‎‎To disable this SIM, remove the SIM card‎‏‎‎‏‎"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‎Tap to activate ‎‏‎‎‏‏‎<xliff:g id="CARRIER">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‏‎‎‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‏‎‎‏‎‎Erase SIM‎‏‎‎‏‎"</string>
+    <string name="mobile_network_erase_sim" msgid="5387971155494245850">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎Erase eSIM‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‏‎‏‏‎‏‎‎‏‏‎‎‎Preferred network type‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎Change the network operating mode‎‏‎‎‏‎"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‎Preferred network type‎‏‎‎‏‎"</string>
@@ -4325,6 +4499,23 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‏‏‎‎‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‎‏‎Check with your network provider for pricing.‎‏‎‎‏‎"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎App data usage‎‏‎‎‏‎"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎Invalid Network Mode ‎‏‎‎‏‏‎<xliff:g id="NETWORKMODEID">%1$d</xliff:g>‎‏‎‎‏‏‏‎. Ignore.‎‏‎‎‏‎"</string>
+    <string name="satellite_setting_title" msgid="2543034229989047673">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‎Satellite messaging‎‏‎‎‏‎"</string>
+    <string name="satellite_setting_enabled_summary" msgid="3554127722727530845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‎Send and receive text messages by satellite. Included with your account.‎‏‎‎‏‎"</string>
+    <string name="satellite_setting_disabled_summary" msgid="6789122487534159857">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‏‎Send and receive text messages by satellite. Non included with your account.‎‏‎‎‏‎"</string>
+    <string name="keywords_satellite_setting" msgid="3312183289776517695">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‏‎‎‏‏‏‎‏‎‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎Satellite messaging‎‏‎‎‏‎"</string>
+    <string name="category_name_about_satellite_messaging" msgid="3756205049485508340">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎About satellite messaging‎‏‎‎‏‎"</string>
+    <string name="title_about_satellite_setting" msgid="9212860038048311345">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‏‎You can send and receive text messages by satellite as part of an eligible ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ account‎‏‎‎‏‎"</string>
+    <string name="category_title_your_satellite_plan" msgid="3017895097366691841">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‎Your ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ plan‎‏‎‎‏‎"</string>
+    <string name="title_have_satellite_plan" msgid="2048372355699977947">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎‎‏‏‏‏‏‎‎‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎Satellite messaging is included with your account‎‏‎‎‏‎"</string>
+    <string name="title_no_satellite_plan" msgid="2876056203035197505">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‎‎‎‎‎‏‎Satellite messaging isn’t included with your account‎‏‎‎‏‎"</string>
+    <string name="summary_add_satellite_setting" msgid="3815254731634052432">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‎‏‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‎‎Add satellite messaging‎‏‎‎‏‎"</string>
+    <string name="category_name_how_it_works" msgid="585303230539269496">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎‎How it works‎‏‎‎‏‎"</string>
+    <string name="title_satellite_connection_guide" msgid="3294802307913609072">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‎‎When you don’t have a mobile network‎‏‎‎‏‎"</string>
+    <string name="summary_satellite_connection_guide" msgid="3496123195218418456">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‎‎‎Your phone will auto-connect to a satellite. For the best connection, keep a clear view of the sky.‎‏‎‎‏‎"</string>
+    <string name="title_supported_service" msgid="4275535165812691571">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‏‎‎‏‏‎After your phone connects to a satellite‎‏‎‎‏‎"</string>
+    <string name="summary_supported_service" msgid="4320535903444834786">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‎‎‏‏‎‎‏‏‏‏‎‎‎‏‎‎You can text anyone, including emergency services. Your phone will reconnect to a mobile network when available.‎‏‎‎‏‎"</string>
+    <string name="satellite_setting_summary_more_information" msgid="4008690241760925372">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‏‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‏‎‎‎Satellite messaging may take longer and is available only in some areas, Weather and certain structures may affect your satellite connection. Calling by satellite isn’t available.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎It may take some time for changes to your account to show in Settings. Contact ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ for details.‎‏‎‎‏‎"</string>
+    <string name="more_about_satellite_messaging" msgid="3385673133561348509">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎More about satellite messaging‎‏‎‎‏‎"</string>
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‎Access Point Names‎‏‎‎‏‎"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎apn‎‏‎‎‏‎"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‎‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‎‎‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎Unavailable when connected to ‎‏‎‎‏‏‎<xliff:g id="CARRIER">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -4334,9 +4525,9 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎Switch to ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎‎‎‎‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‏‏‎‎‎‎‎‎Switch to using SIM card?‎‏‎‎‏‎"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‏‎‏‎‏‏‎‏‏‏‎‎‏‏‏‎‏‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‎Use ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎?‎‏‎‎‏‎"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‎‏‎‎‎‎‎‎‎‏‏‎‏‏‎‎‎‎‏‏‎‏‏‎‎‏‏‎‎‎Only one SIM can be active at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching to ‎‏‎‎‏‏‎<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ won’t cancel your ‎‏‎‎‏‏‎<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‏‎Only 1 eSIM can be active at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching to ‎‏‎‎‏‏‎<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ won’t cancel your ‎‏‎‎‏‏‎<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‎Only one SIM can be active at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching won’t cancel your ‎‏‎‎‏‏‎<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
+    <string name="sim_action_switch_sub_dialog_text" msgid="7474905814976249607">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‏‎‎‏‏‏‏‎‎‎‎‏‎‎‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎Only 1 SIM can be on at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching to ‎‏‎‎‏‏‎<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ won’t cancel your ‎‏‎‎‏‏‎<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
+    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="6415848271400253954">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎Only 1 eSIM can be on at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching to ‎‏‎‎‏‏‎<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ won’t cancel your ‎‏‎‎‏‏‎<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
+    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="421658355882679837">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‎‏‏‏‏‎‏‏‎‎‏‎‏‏‏‏‎‎‎‎‏‏‏‎‏‎Only 1 SIM can be on at a time.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Switching won’t cancel your ‎‏‎‎‏‏‎<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ service.‎‏‎‎‏‎"</string>
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‏‎‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‏‏‎‎You can use 2 SIMs at a time. To use ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎, turn off another SIM.‎‏‎‎‏‎"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‏‎‎‎‏‎‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‎‎‏‎Switch to ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎Turn off ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
@@ -4358,8 +4549,31 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎No thanks‎‏‎‎‏‎"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‏‎‎‏‏‏‏‎‎Cancel‎‏‎‎‏‎"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‎‏‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎Switch‎‏‎‎‏‎"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‏‎‏‎‎‎‎Turn off‎‏‎‎‏‎"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‎‏‎‏‎‎Can’t activate SIM‎‏‎‎‏‎"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‎‎Try turning on the SIM again. If the problem continues, restart your device.‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‏‎Set up your SIM‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‏‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‏‎Set your mobile network preferences to use multiple SIMs on this device‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎Label your SIMs‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎You’ll see these labels when making calls, sending texts, and using data, and in Settings‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎SIM label‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‏‏‎‎‎‎‎‎‎‎‎‏‎Label‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‎Select which SIMs to use‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‎‎‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‏‎‏‎‎‎‎You can use 2 SIMs at a time‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‎Set your primary SIMs‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎Choose which SIMs to use by default for calls, texts, and data‎‏‎‎‏‎"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‏‎‏‏‏‎‎Your primary SIMs‎‏‎‎‏‎"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‎‎‏‏‏‎‏‏‎‏‎‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‎‎‏‎‏‎Calls‎‏‎‎‏‎"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎Texts‎‏‎‎‏‎"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‎‎‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎Automatic data switching‎‏‎‎‏‎"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‎Use data from either SIM depending on coverage and availability‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‏‏‏‏‎‎Data only‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‏‏‎Set up‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‎‎‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‏‏‎Next‎‏‎‎‏‎"</string>
+    <string name="sim_onboarding_progressbar_turning_sim_on" msgid="1163318788393361574">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‏‏‎‎Turning on ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎…‎‏‎‎‏‎"</string>
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‏‏‏‎‏‎‎‏‏‏‎‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎Mobile network‎‏‎‎‏‎"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‎‎‎‎Phone number‎‏‎‎‏‎"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‎‎SIM label and color‎‏‎‎‏‎"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‏‏‎Network activation‎‏‎‎‏‎"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‎‎‎‏‎‏‎‎‏‎‏‎Carrier switching‎‏‎‎‏‎"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‏‏‏‏‎‏‎‏‏‎‏‎‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‏‎‏‏‎‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ is active‎‏‎‎‏‎"</string>
@@ -4379,11 +4593,11 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‎To use mobile data, call features, and SMS at a later time, go to your network settings‎‏‎‎‏‎"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎SIM‎‏‎‎‏‎"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‏‎‎Erase this eSIM?‎‏‎‎‏‎"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‎‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‏‎‎‏‎‏‏‎‏‎Erasing this SIM removes ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>‎‏‎‎‏‏‏‎ service from this device.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Service for ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>‎‏‎‎‏‏‏‎ won\'t be canceled.‎‏‎‎‏‎"</string>
+    <string name="erase_sim_dialog_text" msgid="1406141218170595272">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‎‎‎This removes ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>‎‏‎‎‏‏‏‎ service from this device, but your ‎‏‎‎‏‏‎<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>‎‏‎‎‏‏‏‎ plan won\'t be canceled.‎‏‎‎‏‎"</string>
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‏‎Erase‎‏‎‎‏‎"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‏‎Erasing SIM…‎‏‎‎‏‎"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‎‎‏‏‎‎‏‏‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‏‏‎‏‏‎Can\'t erase SIM‎‏‎‎‏‎"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎This SIM can\'t be erased due to an error.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Restart your device and try again.‎‏‎‎‏‎"</string>
+    <string name="erasing_sim" msgid="4237180547590463930">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‎‎‎‏‏‎‏‏‏‎‏‎‎Erasing eSIM…‎‏‎‎‏‎"</string>
+    <string name="erase_sim_fail_title" msgid="1445700500168357303">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎‏‎‏‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‏‏‏‎Can\'t erase eSIM‎‏‎‎‏‎"</string>
+    <string name="erase_sim_fail_text" msgid="6898841004987411547">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‎Something went wrong and this eSIM wasn\'t erased.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Restart your device and try again.‎‏‎‎‏‎"</string>
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‎‏‎‎Connect to device‎‏‎‎‏‎"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‏‏‎‎‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‏‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎<xliff:g id="APPNAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ app wants to use a temporary Wi‑Fi network to connect to your device‎‏‎‎‏‎"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎‎No devices found. Make sure devices are turned on and available to connect.‎‏‎‎‏‎"</string>
@@ -4445,9 +4659,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‏‎‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‎‏‎‏‎‏‎‏‎‏‎‏‎‎Emergency calls‎‏‎‎‏‎"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‎‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎Emergency calls over Wi‑Fi Calling are not supported by your carrier.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎The device switches automatically to a cellular network to place an emergency call.‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎Emergency calls are only possible in areas with cellular coverage.‎‏‎‎‏‎"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‎Use Wi‑Fi for calls to improve quality‎‏‎‎‏‎"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‎‎Backup calling‎‏‎‎‏‎"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‎If ‎‏‎‎‏‏‎<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>‎‏‎‎‏‏‏‎ is unavailable or roaming, use your mobile data SIM for ‎‏‎‎‏‏‎<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>‎‏‎‎‏‏‏‎ calls.‎‏‎‎‏‎"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‎‎‎‎backup calling‎‏‎‎‏‎"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‎‎‎‎‏‏‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎Incoming MMS message‎‏‎‎‏‎"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‏‎Can’t send MMS message‎‏‎‎‏‎"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‎‏‏‏‏‏‏‎‏‎‎‎Tap to allow MMS messaging on ‎‏‎‎‏‏‎<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ when mobile data is off‎‏‎‎‏‎"</string>
@@ -4458,6 +4669,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‎‎‏‎‎‎Your work policy info‎‏‎‎‏‎"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‏‎‏‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‎‏‎‎‎‎‎‎‎‏‎‏‎Settings managed by your IT admin‎‏‎‎‏‎"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‎‏‏‏‏‏‏‎GPU‎‏‎‎‏‎"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‏‏‏‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‎Boot with 16K page size‎‏‎‎‏‎"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‏‏‏‎‎Boot device using 16K page size supported kernel‎‏‎‎‏‎"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‏‏‎‏‏‏‏‎‎‏‏‏‎‏‏‏‎‏‎‎Reboot with 16KB pages compatible kernel?‎‏‎‎‏‎"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‏‎‎‏‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‎‏‎‎‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎WARNING: Some applications may not be compatible with this mode. Device will reboot after confirmation.‎‏‎‎‏‎"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‏‏‏‏‎Reboot with 4KB pages compatible kernel?‎‏‎‎‏‎"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‎Device will reboot after confirmation.‎‏‎‎‏‎"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎‏‎‏‎‏‏‎‏‎‏‎‎‏‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‎Failed to update kernel to 16KB pages compatible kernel.‎‏‎‎‏‎"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‏‎‏‎Applying change‎‏‎‎‏‎"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‏‎‏‎Bug report handler‎‏‎‎‏‎"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‏‎‎‏‎Determines which app handles the Bug Report shortcut on your device.‎‏‎‎‏‎"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‎‏‏‎‎‎‎‏‎‏‏‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‎‎‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‏‏‏‎‎‎Personal‎‏‎‎‏‎"</string>
@@ -4511,7 +4730,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‎‏‎‎‏‎‏‎‎‏‎‎‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‎‏‎To quickly resume playback, media player stays open in Quick Settings‎‏‎‎‏‎"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎Show media on lock screen‎‏‎‎‏‎"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‎‏‎‏‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‎‏‏‎‎To quickly resume playback, media player stays open on lock screen‎‏‎‎‏‎"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‏‏‎‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‏‎Show media recommendations‎‏‎‎‏‎"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‎‏‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎Show Assistant media recommendations‎‏‎‎‏‎"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‎‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎‎Based on your activity‎‏‎‎‏‎"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‏‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‎‏‏‏‏‏‎‎‎‎‎‏‏‎‎‎‏‎‏‏‏‏‎Hide player‎‏‎‎‏‎"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‎‎‎‎‏‎‏‎Show player‎‏‎‎‏‎"</string>
@@ -4543,8 +4762,8 @@
     <string name="sim_category_title" msgid="2341314000964710495">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‎‎‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‏‎‏‏‏‎‎‏‎‎‏‏‎‎‏‏‏‎‎‎‎‎‏‎‏‏‏‏‏‎SIM‎‏‎‎‏‎"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‏‎‏‏‎‏‎‎‎‎eSIM‎‏‎‎‏‎"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‏‎‏‎‏‎‎‎‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‏‎‎eSIMs‎‏‎‎‏‎"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎Active‎‏‎‎‏‎"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎Inactive‎‏‎‎‏‎"</string>
+    <string name="sim_category_active_sim" msgid="3077009911935592178">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‏‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‏‎‎On‎‏‎‎‏‎"</string>
+    <string name="sim_category_inactive_sim" msgid="7351553344148400450">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‏‎‎Off‎‏‎‎‏‎"</string>
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‏‎‎‎‏‎‏‏‏‏‎‎‎‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‎‎‏‏‎‏‏‎‎‏‎‎‎‏‏‏‏‏‎ / Default for ‎‏‎‎‏‏‎<xliff:g id="ID_1">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‎‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎calls‎‏‎‎‏‎"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‎‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎SMS‎‏‎‎‏‎"</string>
@@ -4700,8 +4919,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎Audio from compatible media becomes more immersive‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎Head tracking‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎Audio changes as you move your head to sound more natural‎‏‎‎‏‎"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎Sync permissions‎‏‎‎‏‎"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‎Give ‎‏‎‎‏‏‎<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>‎‏‎‎‏‏‏‎ the same app permissions that you’ve allowed on ‎‏‎‎‏‏‎<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‏‎Sync permissions from phone‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‏‎Give your watch the same app permissions that you’ve allowed on this phone‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎Audio Device Type‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎Unknown‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎Speaker‎‏‎‎‏‎"</string>
@@ -4797,4 +5016,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‏‎‎‎‏‏‏‎‏‏‎‎‏‏‎Medium‎‏‎‎‏‎"</string>
     <string name="contrast_high" msgid="3988567609694797696">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‏‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎High‎‏‎‎‏‎"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎This app can only be opened in 1 window‎‏‎‎‏‎"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‏‏‎‎‏‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‏‎‎‎‎On‎‏‎‎‏‎"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‎‏‏‏‏‏‏‏‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‎‎Off‎‏‎‎‏‎"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‏‎Off‎‏‎‎‏‎"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‏‏‎‎‎‏‏‎‏‎‏‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‎‎‎‎‏‏‎Off‎‏‎‎‏‎"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‏‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‏‏‎On‎‏‎‎‏‎"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‏‏‎‏‏‏‎‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‏‏‎‏‏‎‎‏‏‎Off‎‏‎‎‏‎"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‏‎‎‏‏‎‎‎‎‎On‎‏‎‎‏‎"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‎‎‏‎‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‎‎‎Off‎‏‎‎‏‎"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‏‏‏‏‏‏‏‎Turns light screens dark and dark screens light‎‏‎‎‏‎"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‎‎‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‎‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‎Zoom in on the screen‎‏‎‎‏‎"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‎‎‏‎‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‎‎‎Off‎‏‎‎‏‎"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‏‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎Off‎‏‎‎‏‎"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‎‏‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎On‎‏‎‎‏‎"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎Off‎‏‎‎‏‎"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‏‏‎‎‏‎‏‎On‎‏‎‎‏‎"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎Password is now set up‎‏‎‎‏‎"</string>
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 8032bde..1d8779b 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Después de 1 minuto"</item>
     <item msgid="1574040255478150028">"Después de 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 5a06fb0..ff689bd 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"¡Ya eres desarrollador!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"No es necesario, ya eres programador."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Primero habilita las opciones para programador."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Solo los usuarios administradores pueden acceder a la configuración para desarrolladores."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"En servicio"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fuera de servicio"</string>
@@ -46,6 +47,8 @@
     <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, videos y otros"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"La pantalla frontal se enciende para las apps que evitan que la pantalla quede inactiva."</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Deslizar el dedo hacia arriba para continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Cierra el teléfono y desliza el dedo hacia arriba en la pantalla frontal para continuar usando la app, o bien espera unos segundos para que se bloquee la pantalla"</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>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Girar automáticamente"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionado"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Tono y alarmas"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio durante las llamadas"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Contenido multimedia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificaciones y otros sonidos"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sonidos del sist. y multimedia"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificaciones"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"De forma predeterminada, las apps son las que determinan la salida de audio"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositivo Bluetooth sin nombre"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Buscando"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Se activó el Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todos"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Ver todos"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pluma stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Presionar el botón de la pluma stylus"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de trabajo)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Conectarse a reproducción de LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Reproducciones de audio cercanas"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Reproducciones de audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Conectarse a una reproducción de audio usando un código QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"No hay reproducciones de audio cercanas."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para seleccionar un idioma para cada app, ve a la configuración de idioma de la app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Obtén más información sobre los idiomas de las apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"¿Deseas cambiar el idioma del sistema a %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"¿Quieres agregar %s a los idiomas preferidos?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Esto permite que las apps y los sitios web sepan que prefieres este idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Cambiarán la configuración y las preferencias regionales de tu dispositivo."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Cambiar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s no está disponible"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sábado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Si una app no admite preferencias regionales, usará su configuración regional predeterminada."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Obtén más información sobre las preferencias de idioma."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferencias adicionales"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Tratamiento"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Establece el tratamiento que prefieres"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Las apps pueden usar el tratamiento que prefieres para personalizar la forma en que se dirigen a ti."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sin especificar"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femenino"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{¿Quitar el idioma seleccionado?}other{¿Quitar los idiomas seleccionados?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Se mostrará el texto en otro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"No se pueden quitar todos los idiomas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Ubicación"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar ubicación"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivado"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Activada: # app tiene acceso a la ubicación}other{Activada: # apps tienen acceso a la ubicación}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada: # app tiene acceso a la ubicación}other{Activada: # apps tienen acceso a la ubicación}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Las apps que tienen el permiso de dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"El acceso a la ubicación está desactivado para las apps y los servicios. Todavía se puede enviar la ubicación del dispositivo a los servicios de emergencia cuando llamas o mandas un mensaje a un número de emergencia."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Obtén más información sobre la configuración de la ubicación."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre la configuración de la ubicación"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Cambia el acceso a la ubicación en Config. &gt; Seguridad y priv. &gt; Controles de priv."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para obtener los mejores resultados, usa un protector de pantalla que tenga certificación Made for Google. Es posible que la huella dactilar de tu hijo no funcione con otros protectores."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueo con reloj"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Si configuras las funciones Desbloqueo facial y Desbloqueo con huellas dactilares, el teléfono te pedirá la huella dactilar en caso de que tengas puesta una mascarilla o estés en una zona oscura.\n\nPuedes usar el reloj para desbloquear el dispositivo cuando no se reconozcan tu rostro ni tu huella dactilar."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Puedes desbloquear con el reloj cuando no se reconozca tu huella dactilar."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Puedes desbloquear con el reloj cuando no se reconozca tu rostro."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Si configuras las funciones Desbloqueo facial y Desbloqueo con huellas dactilares, el teléfono te pedirá que ingreses tu huella dactilar cuando uses una máscara o estés en una zona oscura.\n\nDesbloqueo con reloj es otra forma cómoda de desbloquear el teléfono, por ejemplo, cuando tienes los dedos mojados o no se reconoce tu rostro."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Desbloqueo con reloj es otra forma cómoda de desbloquear el teléfono, por ejemplo, cuando no se reconoce tu huella dactilar."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Desbloqueo con reloj es otra forma cómoda de desbloquear el teléfono, por ejemplo, cuando no se reconoce tu rostro."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Usa tu huella dactilar o reloj para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Usa tu rostro o reloj para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Usa tu rostro, huella dactilar o reloj para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rostro y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rostro, huella dactilar y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rostro, huellas dactilares y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticator Unlock remoto"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Se agregó el reloj"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura el reloj"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Desbloqueo con reloj es otra forma conveniente de desbloquear el teléfono cuando, por ejemplo, tienes los dedos mojados o no se reconoce tu rostro.\n\nPuedes usar el reloj para desbloquear este teléfono en estos casos:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ahora no"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Más"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cómo funciona"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"El reloj debe estar desbloqueado, en tu muñeca y cerca del teléfono. No deberás volver a desbloquear el reloj mientras lo tengas en la muñeca."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Cuando se desbloquee el teléfono, recibirás una notificación en el reloj. Si se desbloqueó, pero no era tu intención hacerlo, presiona la notificación para volver a bloquearlo."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Tú tienes el control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puedes quitar el reloj de la función Desbloqueo con reloj en cualquier momento desde Configuración"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Presiona una notificación"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Desliza el dedo hacia arriba en la pantalla de bloqueo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Elige tu reloj"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relojes disponibles"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Todo listo"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ahora puedes usar tu reloj para desbloquear este teléfono cuando deslizas el dedo hacia arriba en la pantalla de bloqueo o presionas una notificación"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Listo"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueo del reloj"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puedes usar tu reloj para desbloquear este teléfono cuando deslizas el dedo hacia arriba en la pantalla de bloqueo o presionas una notificación"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar Desbloqueo con reloj, el reloj debe estar desbloqueado, en tu muñeca, cerca y conectado a este teléfono. Si la conexión se interrumpe, deberás desbloquear el teléfono antes de poder usar Desbloqueo con reloj.\n\nImportante:\nSolo puedes tener un reloj configurado a la vez. Si quieres agregar otro, deberás quitar el actual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Más información sobre Desbloqueo del reloj"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Agregar reloj"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloj"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueo facial y con huella dactilar"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo facial y con huellas dactilares para el trabajo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Se requiere configuración"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Seguridad"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacidad"</string>
     <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="2274405892301976238">"Mantén las apps privadas bloqueadas y ocultas"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantén las apps privadas en un espacio separado que puedes ocultar o bloquear"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueo de Espacio privado"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Puedes desbloquear Espacio privado de la misma manera que desbloqueas el dispositivo o elegir un bloqueo diferente"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usar el bloqueo de pantalla del dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueo facial y con huellas dactilares"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueo con huellas dactilares"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueo facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Presiona para configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueo con huellas dactilares para espacio privado"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueo facial para espacio privado"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Métodos de desbloqueo"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Igual al bloqueo de pantalla del dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"¿Quieres un nuevo bloqueo para Espacio privado?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloquear automáticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloquea el espacio privado automáticamente"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Puedes bloquear el espacio privado automáticamente si no usas el dispositivo por cierto periodo de tiempo"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Cada vez que el dispositivo se bloquea"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Después de 5 minutos de inactividad"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nunca"</string>
+    <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_delete_title" msgid="3075645119800272800">"Borra un 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="private_space_unlocked" msgid="9091600948712932046">"Se desbloqueó 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="7436025227616244687">"Para usar el espacio privado, configura un bloqueo de pantalla en el dispositivo"</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="private_space_cancel_label" msgid="379259667396956886">"Cancelar"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurar"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Cómo configurar el espacio privado"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantén las apps privadas en un espacio separado que puedes ocultar o bloquear"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Cómo funciona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Puedes acceder al espacio privado desde el final de tu lista de apps"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Las apps en el espacio privado están protegidas con bloqueo"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Las notificaciones de las apps en el espacio privado se ocultan cuando está bloqueado"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Las apps del espacio privado no se mostrarán en el Administrador de permisos, el panel de privacidad ni en ningún otro parámetro de configuración cuando el espacio privado esté bloqueado.\n\nTu espacio privado no puede moverse a un dispositivo nuevo. Deberás configurar uno nuevo si quieres usar la función en otro dispositivo.\n\nCualquier persona que conecte tu dispositivo a una computadora o le instale apps dañinas podría acceder a tu espacio privado."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espacio privado…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Las notificaciones de las apps en el espacio privado se ocultan cuando está bloqueado"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloquea el espacio privado para compartir fotos y archivos de apps que estén en ese espacio"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Algunas apps podrían ya estar instaladas en el espacio privado"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"No se pudo configurar el espacio privado"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Reintentar"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"¿Desbloquear espacio privado con bloq. de pant.?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Puedes desbloquear el espacio privado de la misma manera que desbloqueas el dispositivo o elegir un bloqueo diferente"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueo de pantalla"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Elegir nuevo bloqueo"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Todo listo"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para acceder al espacio privado, ve a tu lista de apps y desplázate hacia abajo"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Listo"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Desplázate hacia abajo para encontrar el espacio privado"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Elige un bloqueo para tu espacio privado"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Puedes desbloquear el espacio privado con tu huella dactilar. Por razones de seguridad, esta opción requiere un método secundario de bloqueo."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Establece un PIN para tu espacio privado"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Establece contraseña para espacio priv."</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Establece patrón para espacio privado"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Para mostrar Espacio privado (versión preliminar de la UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Abre la app de Configuración"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Presiona Seguridad y privacidad &gt; Espacio privado &gt; Oculta Espacio privado con el dispositivo bloqueado"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Desactivar Oculta Espacio privado con el disp. bloqueado"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota para Googlers: Esta función aún se encuentra en desarrollo"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puedes agregar hasta <xliff:g id="COUNT">%d</xliff:g> huellas dactilares"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Agregaste la cantidad máxima permitida de huellas digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No se pueden agregar más huellas digitales"</string>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Puede que también tengas que escribir esta clave de acceso en otro dispositivo."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma para vincular con el conjunto coordinado"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir el acceso a tus contactos y al historial de llamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"También se permite acceso a los contactos y el historial de llamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"La información se usará para anuncios de llamadas y otras funciones"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"No se pudo establecer conexión con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos disponibles"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"En modo avión"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notificar si se detectan redes públicas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notificarme cuando haya una red pública de alta calidad"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permitir redes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP es un protocolo de seguridad antiguo que es menos seguro"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Tu operador no permite redes WEP porque son menos seguras"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activar Wi-Fi automáticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"La conexión Wi-Fi se volverá a activar cerca de las redes de alta calidad guardadas, como tu red doméstica"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"No se encuentra disponible porque la ubicación está desactivada. "<annotation id="link">"Actívala"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"La búsqueda de Wi-Fi permite que las apps y los servicios busquen redes de este tipo en cualquier momento, incluso cuando la conexión Wi-Fi está desactivada. Puedes usar esta función, por ejemplo, para mejorar las funciones y los servicios basados en la ubicación."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activar"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Se activó la búsqueda de Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Esta red usa un protocolo de seguridad antiguo que es menos seguro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Se bloqueó <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Esta red usa un protocolo de seguridad antiguo llamado WEP que es menos seguro. Para conectarte de todas formas, puedes permitir las redes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Tu operador no permite que te conectes a esta red porque usa un protocolo de seguridad antiguo que es menos seguro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permitir WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Cerrar"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opciones avanzadas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista desplegable \"Opciones avanzadas\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"expandir"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Seguir usando Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"No volver a mostrar"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi activado"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Estableciendo conexión con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"No se pudo establecer conexión con la red."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Red fuera de alcance"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Olvidar"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"No se pudo borrar la red."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Guardar"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"No se pudo guardar la red."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Datos móviles"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> - Cargando"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> - Cargando"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Conexión de hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Intensidad de la conexión"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No se configuró una contraseña"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nombre del hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Contraseña del hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda del PA"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desactivar hotspot automáticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Cuando no hay dispositivos conectados"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Extender la compatibilidad"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Mostrar balance de blancos"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Inhabilitar fotogr. predeterm."</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Inhabilita el límite máximo de velocidad de fotogramas de los juegos de <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La función de atención a la pantalla usa la cámara frontal para detectar si hay alguien mirando la pantalla. Funciona en el dispositivo, y las imágenes no se almacenan ni se envían a Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activar la atención a la pantalla"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantener la pantalla encendida cuando la miras"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Si se extiende tiempo de espera de la pantalla, se consumirá más batería."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"La cámara está bloqueada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"La cámara debe estar desbloqueada para la detección de rostro"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"La cámara debe estar desbloqueada para la atención a la pantalla"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ranura de SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ranura de SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Elige una red guardada para verla"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versión de PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivel de la batería"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Comunal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configuraciones compartidas"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Guardar"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"El campo Nombre no puede estar vacío."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"El APN no puede estar vacío."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"El campo de MCC debe contener 3 dígitos."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"El campo MNC debe contener 2 ó 3 dígitos."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"El proveedor no permite que se agreguen APN del tipo %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"El campo MMSC debe ser válido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restaurando la configuración APN predeterminada"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Restablecer valores predeterminados"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Se restableció la configuración predeterminada de APN."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Restablecer"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Se restablecieron el Bluetooth y el Wi-Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Borrar eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Esta acción no cancelará ningún plan de servicio móvil. Para descargar tarjetas SIM de reemplazo, comunícate con tu proveedor."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Restablecer configuración"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"¿Quieres restablecer toda la configuración de red? No podrás deshacer esta acción."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"¿Quieres restablecer toda la configuración de red y borrar las eSIMs? No podrás deshacer esta acción."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"¿Restablecer?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"El restablecimiento de la red no está disponible para este usuario."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Se restableció la configuración de red."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"No se pueden borrar las tarjetas SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"No es posible borrar las eSIMs porque se produjo un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Borrar todo (restablecer configuración de fábrica)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Borrar todo (restablecer configuración de fábrica)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Otros datos del usuario"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"No se cancelará tu plan de servicio móvil."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Se borrarán las apps que hayas descargado y tu información personal. No podrás deshacer esta acción."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Se borrará toda tu información personal, incluidas las apps y las tarjetas SIM descargadas. No podrás deshacer esta acción."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"¿Quieres borrar todos los datos?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"El restablecimiento de la configuración de fábrica no está disponible para este usuario"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Borrando"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth y Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"No se comparte Internet con otros dispositivos"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desactivada"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Conexión mediante dispositivo móvil"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"No usar hotspot de Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Solo compartir la conexión a Internet mediante USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Solo compartir la conexión a Internet mediante Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Solo compartir mediante Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Solo compartir la conexión a Internet mediante USB y Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Solo compartir la conexión a Internet mediante USB y Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Solo compartir la conexión a Internet mediante Bluetooth y Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Solo compartir la conexión a Internet mediante USB, Bluetooth y Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Conexión a red por USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Conexión Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Conexión Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Usa Hotspot y conexión mediante dispositivos móviles para brindar acceso a Internet a otros dispositivos a través de una conexión Wi-Fi o de datos móviles. Las apps también pueden crear un hotspot para compartir contenido con dispositivos cercanos."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ayuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Red móvil"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan móvil"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"¿Quieres cambiar la aplicación de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"¿Quieres usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como la aplicación de SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"¿Cambiar de asistente de Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"¿Deseas usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"¿Deseas usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador SIM desconocido"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Inserta la tarjeta SIM y reinicia."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conéctate a Internet."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitudes de ubicaciones recientes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ubicación de perfil de trabajo"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permisos de ubicación de apps"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Borrar acceso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controles"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forzar detención"</string>
+    <string name="archive" msgid="9074663845068632127">"Archivar"</string>
+    <string name="restore" msgid="7622486640713967157">"Restablecer"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tamaño de la app"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplicación en el almacenamiento USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"No se pudo calcular el tamaño del paquete."</string>
     <string name="version_text" msgid="7628938665256107608">"versión <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mover"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Se produjo un error al archivar"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Se archivó <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Se produjo un error al intentar restablecer"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restaurando <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Hay otra migración en curso."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"No hay suficiente espacio de almacenamiento."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"La aplicación no existe."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado en pantalla disponible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Administrar teclados en pantalla"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opciones"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="show_ime" msgid="4334255501724746849">"Usar teclado en pantalla"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Mientras el teclado físico está activo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Rechazo de teclas"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Habilita el rechazo de teclas para mejorar la accesibilidad del teclado físico"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Teclas especiales"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Habilita teclas especiales para mejorar la accesibilidad del teclado físico"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de combinación de teclas"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados y herramientas del perfil de trabajo"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenar por tiempo de uso"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenar por último uso"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenar por nombre de app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Última utilización"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Última fecha de uso"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nunca"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Hora de uso"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accesibilidad"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Configuración de accesibilidad"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar de todos modos"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuración de ampliación"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ampliar presionando tres veces"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ampliar con gesto"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Ampliar con acceso directo y presionar tres veces"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Información sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Presiona dos 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="860548190334486449">"Para iniciar y detener la amplificación, presiona dos 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="1624189347106713695">"Configuración del botón de accesibilidad"</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_edit_summary_software" msgid="6405629977940618205">"Botón de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto de accesibilidad"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Presiona dos veces la pantalla con dos dedos"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"presiona dos veces la pantalla con dos dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Presiona la pantalla rápidamente {0,number,integer} veces con dos dedos"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Presionar tres veces la pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Más información sobre el botón de accesibilidad y los gestos"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Se está usando el botón de accesibilidad. El gesto no está disponible con navegación con 3 botones."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accede rápidamente a funciones de accesibilidad"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para comenzar"</b>\n"1. Ve a la configuración de accesibilidad.\n2. Selecciona una función y presiona el atajo.\n3. Elige si quieres usar un botón o gesto para acceder a la función."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para comenzar, haz lo siguiente:"</b>\n"1. Ve a la configuración de accesibilidad.\n2. Selecciona una función y presiona el atajo.\n3. Elige el botón para acceder a la función."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para comenzar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ve a la configuración de accesibilidad.&lt;br/&gt; {1,number,integer}. Selecciona una función y presiona la combinación de teclas.&lt;br/&gt; {2,number,integer}. Elige si quieres usar un botón o un gesto para acceder a la función.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para comenzar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ve a la configuración de accesibilidad.&lt;br/&gt; {1,number,integer}. Selecciona una función y presiona la combinación de teclas.&lt;br/&gt; {2,number,integer}. Elige el botón para acceder a la función.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Usar botón o gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Ubicación"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamaño"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Cortar con el botón de encendido"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Puntero del mouse grande"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Destaca más el puntero del mouse"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Cambia todas las apps a tema oscuro"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Aplica a apps sin tema oscuro propio. Algunas pueden tener problemas de pantalla."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Quitar animaciones"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce el movimiento de la pantalla"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede realizar el seguimiento de tus interacciones con una app o un sensor de hardware, así como interactuar con las apps por ti."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rechazar"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Detener"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancelar"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"¿Quieres detener <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Si presionas <xliff:g id="STOP">%1$s</xliff:g>, se detendrá <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mantener"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"¿Quieres desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No se instaló ningún servicio."</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No se seleccionó ningún servicio"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No se proporcionó ninguna descripción."</string>
     <string name="settings_button" msgid="2195468788019730377">"Configuración"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidad a la luz, fotofobia, tema oscuro, migraña, dolor de cabeza, modo de lectura, modo nocturno, disminuir el brillo, punto blanco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidad de uso, facilidad de acceso, asistencia, asistivo"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visión, audición, persona ciega, persona sorda, motriz, destreza, asistivo, asistencia, facilidad de uso, facilidad de acceso, mano, ayuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Ampliación de ventanas, zoom, ampliación, visión reducida, agrandar, hacer más grande"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Subtítulos, subtítulos opcionales, subtítulos para personas sordas, Transcripción instantánea, persona con hipoacusia, pérdida de la audición, transcripción en tiempo real asistida por computadora, voz a texto, subtítulo"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste de color"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"audífonos, persona con hipoacusia, pérdida auditiva, implantes cocleares, dispositivos de amplificación, procesadores de sonido"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motriz, mouse, mouse externo, mouse de cabeza, mouse adaptativo, silla de ruedas, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"audífonos, persona con hipoacusia, pérdida auditiva, implantes cocleares, dispositivos de amplificación, procesadores de sonido, amplificador personal de sonido"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"persona con hipoacusia, pérdida de la audición, subtítulos, Teletipo, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botones"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motriz, persona mayor, artritis, LER, accidente cerebrovascular, temblor, esclerosis múltiple, parálisis cerebral, temblores, lesiones por esfuerzo repetitivo, mano"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retraso, destreza, persona mayor"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impresión"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivado"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servicio de impresión activado}other{# servicios de impresión activados}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Consulta las apps que consumen más batería"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Carga optimizada para proteger la batería"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Para extender la vida útil de la batería, se optimiza la carga"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Carga optimizada para proteger la batería"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para extender la vida útil de la batería, se optimiza la carga cuando el dispositivo está conectado"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Carga optimizada para proteger la batería"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para extender la vida útil de la batería, se optimiza la carga cuando el dispositivo está conectado"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Cargando por completo"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para proteger la batería, se optimizará la carga la próxima vez que se conecte la tablet"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Más información sobre por qué se pausó la carga"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Reanudar la carga"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Incluye actividad en segundo plano de alta potencia"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Quitar"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancelar"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Cargar por completo"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema con el accesorio de carga"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Más información sobre la carga no compatible"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Administrador de batería"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Administra apps automáticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ahora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gráfico del uso de batería"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gráfico de uso de batería diario"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gráfico de uso de batería por hora"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Porcentaje del nivel de batería de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> a <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Uso de batería desde la última carga completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Uso de batería <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tiempo de uso de pantalla desde la última carga completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Indicador de marcado de emergencia"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Establecer el comportamiento cuando se establece una llamada de emergencia"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Copia de seguridad"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activado"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desactivado"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Crear copia de seguridad y Restablecer"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Datos personales"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Hacer una copia de seguridad de mis datos"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nombre"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Dirección del servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Encriptación de PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secreto"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Clave de IPSec compartida previamente"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificado de usuario IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificado de CA de IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificado de servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostrar opciones avanzadas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Dominios de búsqueda de DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidores DNS (por ejemplo, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rutas de reenvío (por ejemplo, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nombre de usuario"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Contraseña"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Guardar información de la cuenta"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(No se utiliza)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(no verificar el servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(recibido desde el servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Este tipo de VPN no puede permanecer conectada todo el tiempo"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN siempre activada solo es compatible con direcciones de servidor numéricas"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Debe especificarse un servidor DNS para VPN siempre activada"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Las direcciones de servidor DNS deben ser numéricas para VPN siempre activada"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"La información ingresada no es compatible con la VPN siempre activada."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancelar"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ignorar"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexiones sin VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"¿Requerir una conexión VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"La VPN no es segura. Actualiza a una VPN IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"No se pudo iniciar la VPN no compatible."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona el perfil de la VPN con la que deseas establecer una conexión ininterrumpida. El tráfico de red solo se permitirá cuando estés conectado a esta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ninguna"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"La VPN siempre activada requiere una dirección IP tanto para el servidor como para el DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertas AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Recibir boletines sobre secuestros de menores"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetir"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Habilitar el Administrador de llamadas"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permitir que este servicio administre la forma de hacer llamadas"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Administrador de llamadas"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertas de emergencia inalámbricas"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Proveedores de red"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nombres de puntos de acceso"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"billetera"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pagar, presionar, pagos"</string>
     <string name="keywords_backup" msgid="707735920706667685">"copia de seguridad, copia"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"rostro, desbloqueo, autorización, acceder"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"rostro, desbloqueo, autenticación, acceder, huella dactilar, datos biométricos"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versión de prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Activar los sonidos"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtitulado instantáneo"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Muestra subtítulos automáticos"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altavoces del teléfono"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Bocinas de la tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Altavoces del dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Auriculares con cable"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"El audio del contenido multimedia compatible se hace más envolvente"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"No"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"¿Qué quieres que muestre tu pantalla de bloqueo?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Se quitaron las conversaciones recientes"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Se quitó la conversación"</string>
     <string name="clear" msgid="5092178335409471100">"Borrar"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Borrar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Las conversaciones prioritarias y modificadas aparecerán aquí"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Las conversaciones que marques como prioritarias o modifiques aparecerán aquí. \n\nPara cambiar la configuración de las conversaciones, haz lo siguiente: \nDesliza el dedo hacia abajo desde la parte superior de la pantalla para abrir el panel desplegable y mantén presionada una conversación."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizar"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desactivada"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fijación de apps"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Al fijar una app, esta se mantiene visible hasta que dejas de fijarla. Esta función se puede utilizar, por ejemplo, para dejar que alguien de confianza juegue un juego específico."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Si fijas una app, esta podrá abrir otras apps y acceder a tus datos personales. \n\nPara usar la fijación de apps, sigue estos pasos: 	\n1. Activa la fijación de apps. 	\n2. Abre Recientes. 	\n3. Presiona el icono de la app que se encuentra en la parte superior de la pantalla y, luego, Fijar."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Si fijas una app, esta podrá abrir otras apps y acceder a tus datos personales. \n\nSi quieres compartir tu dispositivo con alguien de forma segura, usa un perfil de invitado. \n\nPara fijar una app, sigue estos pasos: 	\n1. Activa fijar apps. 	\n2. Abre Recientes. 	\n3. Presiona el icono de la app que se encuentra en la parte superior de la pantalla y, luego, Fijar."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Si fijas una app, esta podrá abrir otras apps y acceder a tus datos personales. \n\nPara usar la fijación de apps, haz lo siguiente: 	\n{0,number,integer}. Activa la fijación de apps. 	\n{1,number,integer}. Abre Recientes. 	\n{2,number,integer}. Presiona el ícono de la app que se encuentra en la parte superior de la pantalla y, luego, Fijar."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Si fijas una app, esta podrá abrir otras apps y acceder a tus datos personales. \n\nSi quieres compartir tu dispositivo con alguien de forma segura, usa un perfil de invitado. \n\nPara usar la fijación de apps, haz lo siguiente: 	\n{0,number,integer}. Activa la fijación de apps. 	\n{1,number,integer}. Abre Recientes. 	\n{2,number,integer}. Presiona el ícono de la app que se encuentra en la parte superior de la pantalla y, luego, Fijar."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Cuando fijas una app, puede ocurrir lo siguiente: \n\n•		Esta podrá acceder a datos personales (como contactos y contenido de los correos electrónicos). \n•	 Es posible que las apps fijadas abran otras apps.		 \n\nUsa la función para fijar apps solo con personas de confianza.\n"</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Solicitar desbloqueo para quitar fijación"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Solicitar PIN para quitar fijación"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Configuración de app sin usar"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausar actividad en la app si no se usa"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Quitar permisos, borrar archivos temporales y detener notificaciones"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Administrar la app si no se usa"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Quita permisos, borra archivos temporales, detiene notificaciones y archiva la app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Todas las apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Apps instaladas"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Apps instantáneas"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Libre(s)"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memoria que utilizan las aplicaciones"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app usó la memoria en las últimas {time}}other{# apps usaron la memoria en las últimas {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Habilitar la gen. de per. de uso de mem."</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"La generación de perfiles del uso de memoria requiere recursos de sistema adicionales."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Se inhabilitó la generación de perfiles de memoria"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frecuencia"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Uso máximo"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No se usaron datos"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Mostrar sobre otras apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permitir mostrar sobre otras apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permite que esta app se muestre sobre otras en uso. La app podrá ver si tocas o cambias lo que aparece en la pantalla."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Cambia la salida multimedia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permite a las apps cambiar salidas multimedia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permite que esa app elija el dispositivo conectado que reproduce audio o video de otras apps. Si lo permites, esta app podrá acceder a listas de dispositivos disponibles, como auriculares y bocinas, y elegir el dispositivo de salida que se usa para transmitir audio o video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acceso a todos los archivos"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Mejora la activación por voz"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Este dispositivo usa inteligencia privada para mejorar el modelo de activación por voz Las apps reciben actualizaciones resumidas que son agregadas de múltiples usuarios para mantener la privacidad mientras se mejora el modelo para todo el mundo.\n\n"<a href="">"Más información sobre la inteligencia privada"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Límite de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g>/Límite de datos: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"El cálculo de datos del proveedor puede diferir del que hace el dispositivo."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excluye los datos que usan las redes de los proveedores"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Datos usados: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Configurar advertencia"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Actualizado hace <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Actualizado recién por <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Actualizado recién"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Ver plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ver detalles"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Ahorro de datos"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Datos sin restricciones"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Uso de batería anómalo"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Azulejos de configuración rápida para desarrolladores"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Inhabilitar tiempo de espera de autorización ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Inhabilita la revocación automática de autorizaciones ADB para sistemas que no se volvieron a conectar dentro de un período predeterminado (7 días) o uno configurado por el usuario (mínimo de 1 día)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Seguimiento de Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensores desactivados"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Configuración del perfil de trabajo"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Buscar contactos del directorio de trabajo en apps personales"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Servicio Autocompletar"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Servicio de autocompletado predeterminado"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Contraseñas"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Servicios de contraseñas, llaves de acceso y datos"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Proveedores adicionales"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contraseña}other{# contraseñas}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automático, completar, autocompletar, contraseña"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Servicios de contraseñas, llaves de acceso y datos"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;¿Quieres desactivar todos los servicios?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Las contraseñas, llaves de acceso y otra información guardada no estarán disponibles para autocompletar cuando accedas"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;¿Quieres cambiar tu servicio preferido 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; Las contraseñas, llaves de acceso y otra información nueva se guardarán en ese servicio de ahora en adelante. 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_enable_confirmation_message_title" msgid="1037501792652277829">"¿Usar %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Solo puedes tener 5 servicios activos"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desactiva al menos 1 servicio para agregar otro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa el contenido de tu pantalla para determinar qué se puede autocompletar."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Límite de servicios de contraseñas, llaves de acceso y datos"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Puedes tener hasta 5 servicios de contraseñas, llaves de acceso y datos activos al mismo tiempo. Desactiva un servicio para agregar otros."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Límite de servicios de contraseñas, llaves de acceso y datos"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Puedes tener hasta 5 servicios de contraseñas, llaves de acceso y datos activos al mismo tiempo. Desactiva un servicio para agregar otros."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactivar"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de registro"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Solo se pueden implementar cambios de compatibilidad para las apps depurables. Instala una app depurable y vuelve a intentarlo."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depende de otra opción de configuración"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Cuenta"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d cuentas"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nombre del dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Información básica"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Información reglamentaria y legal"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permite que se inicie esta app cuando se escanee una etiqueta NFC.\nSi se activa este permiso, la app estará disponible como opción siempre que se detecte una etiqueta."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reproducir contenido multimedia en"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reproduce <xliff:g id="LABEL">%s</xliff:g> en"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Se reproducirá el audio en"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"este dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"No disponible durante llamadas"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender llamada en"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Silenciar"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"A fin de habilitar la función, cambia \"Mantener presionado el botón de encendido\" para acceder al menú de encendido."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalles de la red"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"El nombre de tu dispositivo es visible para las apps del teléfono. 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="devices_title" msgid="649715719278562515">"Dispositivos"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Elegir una red"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Desconectado"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nombre"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Color (utilizado por apps compatibles)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Guardar"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Usar SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usar esta SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desactivado"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para inhabilitar esta tarjeta SIM, quítala"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Presiona para activar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Borrar tarjeta SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de red preferido"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Cambiar el modo operativo de la red"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo de red preferido"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Para saber los precios, consulta con tu proveedor de red."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Uso de datos de las apps"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"El modo de red no es válido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorar."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nombres de puntos de acceso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"No está disponible cuando estás conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"¿Quieres cambiar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"¿Cambiar a uso de tarjeta SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"¿Quieres usar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Solo se puede activar una tarjeta SIM a la vez.\n\nSi cambias a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, no se cancelará el servicio de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Solo puede estar activa una sola eSIM a la vez.\n\nSin embargo, si cambias a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, no se cancelará tu servicio de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Solo se puede activar una tarjeta SIM a la vez.\n\nSi cambias, no se cancelará el servicio de <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Puedes usar 2 SIM a la vez. Para utilizar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desactiva otra SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Cambiar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desactivar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, gracias"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancelar"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Cambiar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desactivar"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"No se puede activar la SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Vuelve a activar la SIM. Si el problema persiste, reinicia el dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configura tu SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Configura las preferencias de tu red móvil para usar varias SIM en este dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etiqueta tus SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Verás estas etiquetas cuando realices llamadas, envíes mensajes de texto y uses datos, y en la Configuración"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etiqueta de SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiqueta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Selecciona qué SIM usar"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Puedes usar 2 SIM a la vez"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Configura tus SIM principales"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Elige qué SIM se deben usar de manera predeterminada para llamadas, mensajes de texto y datos"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Tus SIM principales"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Llamadas"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mensajes de texto"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Cambio de datos automático"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Usa datos de cualquier SIM según la cobertura y la disponibilidad"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Solo datos"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configuración"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Siguiente"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Red móvil"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de teléfono"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Color y etiqueta de SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activación de red"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Cambio de proveedor"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> está activo"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para usar datos móviles, funciones de llamada y SMS en otro momento, ve a la configuración de red"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"¿Quieres borrar esta eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Si borras esta tarjeta SIM, se quitará el servicio de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> de este dispositivo.\n\nSin embargo, no se cancelará el servicio de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Borrar"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Borrando tarjeta SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"No se puede borrar la tarjeta SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"No es posible borrar esta tarjeta SIM porque se produjo un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Conectar al dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"La app de <xliff:g id="APPNAME">%1$s</xliff:g> quiere usar una red Wi-Fi temporal para conectarse a tu dispositivo"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No se encontraron dispositivos. Asegúrate de que los dispositivos estén encendidos y puedan conectarse."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Llamadas de emergencia"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Tu proveedor no admite llamadas de emergencia mediante la función Llamada por Wi-Fi.\nEl dispositivo cambia automáticamente a una red móvil para hacer una llamada de emergencia.\nEste tipo de llamadas solo se pueden realizar en áreas con cobertura móvil."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Usar Wi‑Fi para mejorar la calidad de las llamadas"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Llamada de copia de seguridad"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Si <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> no está disponible o usas roaming, usa los datos móviles de tu SIM para las llamadas de <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"llamada de copia de seguridad"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mensaje MMS entrante"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"No se puede enviar el mensaje MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Presiona para permitir los mensajes MMS en <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> cuando los datos móviles estén desactivados"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Información sobre la política de tu trabajo"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Configuración gestionada por tu administrador de TI"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Inicia con páginas de 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Inicia con kernel compatible con páginas de 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"¿Quieres reiniciar con el kernel compatible con páginas de 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ADVERTENCIA: Algunas aplicaciones podrían no ser compatibles con este modo. El dispositivo se reiniciará luego de la confirmación."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"¿Quieres reiniciar con el kernel compatible con páginas de 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"El dispositivo se reiniciará luego de la confirmación."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"No se pudo actualizar el kernel a uno compatible con páginas de 16 KB"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Aplicando cambio"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Controlador de informes de errores"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina qué app controla el acceso directo a los informes de errores en el dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Para reanudar rápidamente la reproducción, el reproductor multimedia permanece abierto en Configuración rápida"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostrar contenido multimedia en la pantalla de bloqueo"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Para reanudar rápidamente la reproducción, el reproductor multimedia permanece abierto en la pantalla de bloqueo"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostrar recomendaciones multimedia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostrar recomendaciones multimedia de Asistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Según tu actividad"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ocultar reproductor"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostrar reproductor"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Activa"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactiva"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Configuración predeterminada para <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"llamadas"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"El audio de contenido multimedia compatible se hace más envolvente"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimiento de cabeza"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"El audio cambia a medida que mueves la cabeza para sonar más natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sincronización de permisos"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Otórgale al <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> los mismos permisos de la app que tiene <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronización de permisos desde el teléfono"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Otórgale al reloj los mismos permisos de la app de este teléfono"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconocido"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Bocina"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta app solo puede estar abierta en 1 ventana"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Función activada"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Función desactivada"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Acceso directo desactivado"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desactivado"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Activada"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desactivada"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Activada"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desactivada"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Aclara las pantallas oscuras y oscurece las pantallas claras"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Acerca la pantalla"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desactivado"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desactivado"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Activado"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivado"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Activado"</string>
+    <string name="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 las apps 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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Se estableció la contraseña"</string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index caf220d..e9013b8 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Tras 1 minuto"</item>
     <item msgid="1574040255478150028">"Tras 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e73eb19..c8db261 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"¡Ahora están activadas las opciones para desarrolladores!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Las opciones para desarrolladores ya están activadas."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Habilita primero las opciones para desarrolladores."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Solo los usuarios administradores pueden acceder a los ajustes para desarrolladores."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"En servicio"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fuera de servicio"</string>
@@ -46,6 +47,8 @@
     <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 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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Desliza hacia arriba para continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Pliega tu teléfono y desliza hacia arriba en la pantalla frontal para seguir usando la aplicación, o espera unos segundos hasta que se bloquee la pantalla"</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>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Usar giro automático"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionados"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Tono de llamada y alarmas"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio durante las llamadas"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimedia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificaciones y otros sonidos"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sonidos multimedia y del sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificaciones"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"De forma predeterminada, la salida de audio la determinan aplicaciones concretas"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositivo Bluetooth sin nombre"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Buscando"</string>
@@ -113,23 +116,34 @@
     <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">"Usados 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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth activado"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todos"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Ver todos"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Lápiz óptico"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pulsar botón trasero"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de trabajo)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Conectar a stream de LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Streams de audio cercanos"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Streams de audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Conectar a un stream de audio mediante código QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"No se han encontrado streams cercanos."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para seleccionar un idioma para cada aplicación, ve a los ajustes de idiomas de las aplicaciones."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Más información sobre los idiomas de las aplicaciones"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"¿Cambiar el idioma del sistema a %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"¿Añadir %s a los idiomas preferidos?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Esto permite que los sitios web y apps sepan que también prefieres este idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Los ajustes y preferencias regionales de tu dispositivo cambiarán."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Cambiar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s no está disponible"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sábado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Si una aplicación no admite preferencias regionales, usará sus ajustes predeterminados de configuración regional."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Más información sobre las preferencias de idioma"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferencias adicionales"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Formas de dirigirse a ti"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Configura cómo quieres que se dirijan a ti"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Las aplicaciones pueden utilizar diferentes formas personalizadas para dirigirse a ti."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sin especificar"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femenino"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutro"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{¿Eliminar idioma seleccionado?}other{¿Eliminar idiomas seleccionados?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"El texto se mostrará en otro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"No puedes quitar todos los idiomas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Ubicación"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar ubicación"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivado"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Activada: # aplicación tiene acceso a la ubicación}other{Activada: # aplicaciones tienen acceso a la ubicación}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activada: # aplicación tiene acceso a la ubicación}other{Activada: # aplicaciones tienen acceso a la ubicación}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Las aplicaciones que tengan permiso para detectar dispositivos cercanos pueden determinar la posición relativa de los dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Las aplicaciones y los servicios no pueden acceder a la ubicación. Aun así, quizá se envíe la ubicación del dispositivo a los servicios de emergencia cuando llames o envíes mensajes a números de emergencia."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Más información sobre los ajustes de ubicación"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Más información sobre los ajustes de ubicación"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Cambia el acceso a la ubicación en Ajustes &gt; Seguridad y priv. &gt; Controles de priv."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para obtener mejores resultados, usa un protector de pantalla con certificado Made for Google. Con otros protectores de pantalla, puede que la huella digital de tu hijo/a no funcione."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueo con reloj"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Cuando configures Desbloqueo facial y Desbloqueo con huella digital, el teléfono te pedirá la huella digital si llevas mascarilla o estás en un lugar con poca luz.\n\nPuedes desbloquear el teléfono con tu reloj si no reconoce tu cara o tu huella digital."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Puedes desbloquear el teléfono con tu reloj cuando no reconozca tu huella digital."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Puedes desbloquear el teléfono con tu reloj cuando no reconozca tu cara."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Si configuras Desbloqueo facial y Desbloqueo con huella digital, el teléfono te pedirá la huella digital si llevas mascarilla o estás en un entorno con poca luz.\n\nDesbloqueo con reloj es otra forma cómoda de desbloquear el teléfono, por ejemplo, si tienes los dedos húmedos o no se reconoce tu cara."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Desbloqueo con reloj es otra forma cómoda de desbloquear el teléfono, por ejemplo, cuando no se reconoce tu huella digital."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Desbloqueo con reloj es otra forma cómoda de desbloquear el teléfono, por ejemplo, cuando no se reconoce tu cara."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Usa la huella digital o el reloj para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Usa la cara o el reloj para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Usa la cara, la huella digital o el reloj para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Cara y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Cara, huella digital y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Cara, huellas digitales y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueo con Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch añadido"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar un reloj"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Desbloqueo con reloj es otra forma útil de desbloquear el teléfono, como cuando tus dedos están húmedos o no se reconoce tu cara.\n\nPuedes usar tu reloj para desbloquear este teléfono al realizar estas acciones:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ahora no"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Más"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cómo funciona"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Tu reloj debe estar desbloqueado, en tu muñeca y dentro del alcance de este teléfono. No tendrás que volver a desbloquear el reloj mientras esté en tu muñeca."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Cuando el teléfono esté desbloqueado, recibirás una notificación en tu reloj. Si desbloqueas el teléfono sin querer, toca la notificación para volver a bloquearlo."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Tú tienes el control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puedes quitar tu smartwatch de Desbloqueo con reloj en cualquier momento desde Ajustes"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toca una notificación"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Desliza hacia arriba en la pantalla de bloqueo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Elige tu reloj"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relojes disponibles"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+    <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_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>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Añadir reloj"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloj"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueo facial y con huella digital"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo facial y con huella digital para el trabajo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Hay que configurarlo"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Seguridad"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacidad"</string>
     <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="2274405892301976238">"Bloquea y oculta tus aplicaciones privadas"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantén las aplicaciones privadas en un espacio separado que puedas ocultar o bloquear"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueo de espacio privado"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Puedes desbloquear el espacio privado de la misma forma que desbloqueas tu dispositivo, o bien con un bloqueo diferente"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usar el bloqueo de pantalla del dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueo facial y con huella digital"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueo con huella digital"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueo facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toca para configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueo con huella digital para espacio privado"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueo facial para espacio privado"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Formas de desbloqueo"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Igual que el bloqueo de pantalla del dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"¿Elegir un nuevo bloqueo para el espacio privado?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloquear automáticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloquear automáticamente el espacio privado"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Puedes bloquear tu espacio privado automáticamente si no has usado el dispositivo durante un tiempo"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Cada vez que el dispositivo se bloquea"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Después de 5 minutos de inactividad"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nunca"</string>
+    <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_delete_title" msgid="3075645119800272800">"Eliminar espacio privado"</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="private_space_unlocked" msgid="9091600948712932046">"Espacio privado desbloqueado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Define un bloqueo de pantalla"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Para usar el espacio privado, define un bloqueo de pantalla en este dispositivo"</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="private_space_cancel_label" msgid="379259667396956886">"Cancelar"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurar"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configurar un espacio privado"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantén las aplicaciones privadas en un espacio separado que puedas ocultar o bloquear"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Cómo funciona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Puedes acceder al espacio privado desde la parte inferior de tu lista de aplicaciones"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Las apps del espacio privado están protegidas con un bloqueo"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Las notificaciones de las aplicaciones del espacio privado se ocultan si está bloqueado"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Las aplicaciones del espacio privado no se mostrarán en el Gestor de permisos, el panel de privacidad o en otros ajustes si el espacio privado está bloqueado.\n\nTu espacio privado no se puede trasladar a otro dispositivo. Debes configurar otro espacio privado si quieres usarlo en otro dispositivo.\n\nCualquier persona que conecte tu dispositivo a un ordenador o instale aplicaciones dañinas en tu dispositivo podría acceder a tu espacio privado."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espacio privado…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Las notificaciones de las aplicaciones del espacio privado se ocultan si está bloqueado"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloquea el espacio privado para compartir fotos o archivos desde las aplicaciones de espacio privado"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Algunas aplicaciones ya están instaladas en tu espacio privado"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"No se ha podido configurar el espacio privado"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Reintentar"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"¿Usar bloqueo de pantalla para desbloquear espacio?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Puedes desbloquear el espacio privado de la misma forma que desbloqueas tu dispositivo, o bien con un bloqueo diferente"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueo de pantalla"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Elegir nuevo aspecto"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"¡Todo listo!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para acceder a tu espacio privado, ve a la lista de aplicaciones y desplázate hacia abajo"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Hecho"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Desplázate hacia abajo para encontrar un espacio privado"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Elige un bloqueo para tu espacio privado"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Puedes desbloquear tu espacio privado con tu huella digital. Por motivos de seguridad, para utilizar esta opción necesitas un bloqueo alternativo."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Configura un PIN para el espacio"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Configura una contraseña para el espacio"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Configura un patrón para el espacio"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Para mostrar espacio privado (versión preliminar de UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Abrir la aplicación Ajustes"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Toca Seguridad &amp; Privacidad &gt; Espacio privado &gt; Ocultar espacio privado si está bloqueado"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Desactivar Ocultar espacio privado si está bloqueado"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota para Googlers: El desarrollo de esta función aún está en curso"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puedes añadir hasta <xliff:g id="COUNT">%d</xliff:g> huellas digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Has añadido el número máximo de huellas digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No se pueden añadir más huellas digitales"</string>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Es posible que tengas que introducir la llave de acceso en el otro dispositivo."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma para emparejar con el conjunto coordinado"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir acceso a tus contactos y al historial de llamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"También permite acceder a los contactos y al historial de llamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"La información se utilizará para avisos de llamada y más"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"No se ha podido establecer conexión con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos disponibles"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Con el Bluetooth activado, tu dispositivo se puede comunicar con dispositivos Bluetooth cercanos"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Modo Avión"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notificar si hay redes públicas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Recibe una notificación si hay una red pública de alta calidad disponible"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permitir redes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP es un protocolo de seguridad antiguo que es menos seguro"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Tu operador no admite redes WEP porque son menos seguras"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activar Wi-Fi automáticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"La conexión Wi-Fi se volverá a activar automáticamente cerca de las redes de alta calidad guardadas, como la de tu casa"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"No está disponible porque la ubicación no está activada. Activa la "<annotation id="link">"ubicación"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"La búsqueda de redes Wi‑Fi permite que las aplicaciones y los servicios busquen redes Wi‑Fi en cualquier momento aunque la conexión Wi‑Fi esté desactivada. Esto se puede usar para, por ejemplo, mejorar las funciones y servicios basados en la ubicación."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activar"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Búsqueda de redes Wi‑Fi activada"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Esta red usa un protocolo de seguridad antiguo que es menos seguro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> está bloqueada"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Esta red usa un protocolo de seguridad antiguo denominado WEP, que es menos seguro. Si quieres conectarte igualmente, puedes habilitar las redes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Tu operador no te permite conectarte a esta red porque usa un protocolo de seguridad antiguo que es menos seguro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permitir WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Cerrar"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opciones avanzadas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista desplegable de opciones avanzadas"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"mostrar"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Mantener conexión Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"No volver a mostrar"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Red Wi‑Fi activada"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Error al conectar a la red"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"La red está fuera de rango"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Olvidar"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Error al olvidar la red"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Guardar"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Error al guardar la red"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Datos móviles"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Cargando"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Cargando"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Conexión de punto de acceso"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Calidad de conexión"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"No se ha definido ninguna contraseña"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nombre del punto de acceso"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Contraseña del punto de acceso"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda del punto de acceso"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desactivar Compartir Internet automáticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Cuando no hay dispositivos conectados"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Ampliar compatibilidad"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balance de blancos de pantalla"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Inhabilitar velocidad de fotogramas predeterminada en juegos"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Inhabilita el límite máximo de velocidad de fotogramas de los juegos de <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Pantalla fluida"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La función Pantalla atenta usa la cámara frontal para detectar si hay alguien mirando la pantalla. Funciona solo en el propio dispositivo y las imágenes no se almacenan ni se envían a Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activa Pantalla atenta"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantiene la pantalla encendida al mirarla"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Un tiempo de espera de la pantalla más largo consumirá más batería."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"La cámara está bloqueada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"La cámara tiene que estar desbloqueada para usar Detección de caras"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"La cámara debe estar desbloqueada para activar la función de pantalla atenta"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ranura de SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ranura de SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>, primario)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Para verla, selecciona una red guardada"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versión de PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivel de batería"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Comunes"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ajustes comunes"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Guardar"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"El campo Nombre no puede estar vacío."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"El campo APN no puede estar vacío."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"El campo MCC debe contener 3 dígitos."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"El campo MNC debe contener 2 o 3 dígitos."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"El operador no permite que se añadan APNs de tipo %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"El campo MMSC debe ser válido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restaurando la configuración de APN predeterminada"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Restablecer ajustes"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Se ha restablecido la configuración predeterminada de APN."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Restablecer"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"El Bluetooth y el Wi-Fi se han restablecido"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Borrar eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"No se cancelará ningún plan de servicios móviles. Para descargar una tarjeta SIM de sustitución, ponte en contacto con tu operador."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Restablecer ajustes"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"¿Quieres restablecer la configuración de red? No podrás deshacer esta acción."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"¿Restablecer todos los ajustes de red y borrar las eSIMs? No podrás deshacer esta acción."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"¿Restablecer?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Este usuario no puede restablecer la red"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Se han recuperado los ajustes de red"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"No se pueden borrar las SIMs"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"No se pueden borrar las eSIMs debido a un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Volver al estado de fábrica (borrar todo)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Volver al estado de fábrica (borrar todo)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Otros datos de usuario"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"No se cancelará tu plan móvil."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Se eliminarán las aplicaciones que hayas descargado y tu información personal. No podrás deshacer esta acción."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Se eliminará toda tu información personal, incluidas las aplicaciones y las tarjetas SIM descargadas. No podrás deshacer esta acción."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"¿Borrar todos los datos?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Este usuario no puede restablecer el estado de fábrica"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Borrando"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Compartir Internet, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"No se está compartiendo Internet con otros dispositivos"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desactivado"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Compartir conexión"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"No usar Compartir Internet"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Compartir Internet solo mediante USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Compartir Internet solo mediante Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Compartir Internet solo por Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Compartir Internet solo mediante USB y Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Compartir Internet solo por USB y Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Compartir Internet solo por Bluetooth y Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Compartir Internet solo por USB, Bluetooth y Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Compartir conexión por USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Compartir conexión por Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Compartir conexión por Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Usa Compartir Internet para que otros dispositivos puedan conectarse a Internet a través de tu red Wi‑Fi o de datos móviles. Las aplicaciones también pueden crear un punto de acceso para compartir contenido con dispositivos cercanos."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ayuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Red móvil"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan móvil"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplicación de SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"¿Cambiar aplicación de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"¿Usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como aplicación de SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"¿Cambiar asistente de Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"¿Usar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para administrar tus conexiones de red?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"¿Usar <xliff:g id="NEW_APP">%s</xliff:g> para administrar tus conexiones de red?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador de SIM desconocido"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> no tiene ningún sitio web de aprovisionamiento"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Inserta la tarjeta SIM y reinicia el dispositivo"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Debes conectarte a Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitudes de ubicación recientes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ubicación para el perfil de trabajo"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permisos de ubicación de aplicaciones"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Permitir acceso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controles"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forzar detención"</string>
+    <string name="archive" msgid="9074663845068632127">"Archivar"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurar"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tamaño de la aplicación"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"En almacenamiento USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"No se ha podido calcular el tamaño del paquete."</string>
     <string name="version_text" msgid="7628938665256107608">"versión <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mover"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"No se ha podido archivar"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> archivada"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"No se ha podido restaurar"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restaurando <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Hay otra migración en curso."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"No hay suficiente espacio de almacenamiento."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"La aplicación no existe."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado en pantalla disponible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gestionar teclados en pantalla"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opciones"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="show_ime" msgid="4334255501724746849">"Usar teclado en pantalla"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Mantenlo en pantalla mientras el teclado físico está activo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Habilita teclas de rebote para mejorar la accesibilidad del teclado físico"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Teclas persistentes"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Habilita teclas persistentes para mejorar la accesibilidad del teclado físico"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Muestra lista de combinaciones de teclas"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Perfiles de trabajo y herramientas"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenar por tiempo de uso"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenar por último uso"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenar por nombre de app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Último uso"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Último uso"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nunca"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Tiempo de uso"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accesibilidad"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Ajustes de accesibilidad"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar de todos modos"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ajustes de ampliación"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ampliar con tres toques"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ampliación con acceso directo"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Amplía con un acceso directo y tres toques"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Información de <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Toca dos 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="860548190334486449">"Para iniciar o detener la ampliación, toca dos 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Para usar una función de accesibilidad, 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_button" msgid="2031773187678948436">"Entendido"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Ajustes del botón de accesibilidad"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Configuración del botón"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Acceso directo a <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>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Toca dos veces la pantalla con dos dedos"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tocar dos veces la pantalla con dos dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca la pantalla {0,number,integer} veces rápidamente con dos dedos"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triple toque en la pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Más información sobre el botón y el gesto de accesibilidad"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Usando el botón de accesibilidad. El gesto no está disponible si se usa la navegación con 3 botones."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accede rápidamente a funciones de accesibilidad"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para empezar:"</b>\n"1. Ve a los ajustes de accesibilidad.\n2. Selecciona una función y toca el acceso directo.\n3. Elige si quieres usar un botón o un gesto para acceder a la función."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para empezar:"</b>\n"1. Ve a los ajustes de accesibilidad.\n2. Selecciona una función y toca el acceso directo.\n3. Elige el botón con el que quieres acceder a la función."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para empezar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ve a los ajustes de accesibilidad.&lt;br/&gt; {1,number,integer}. Selecciona una función y toca el acceso directo.&lt;br/&gt; {2,number,integer}. Elige si quieres usar un botón o un gesto para acceder a la función.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para empezar:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ve a los ajustes de accesibilidad.&lt;br/&gt; {1,number,integer}. Selecciona una función y toca el acceso directo.&lt;br/&gt; {2,number,integer}. Elige el botón que quieres usar para acceder a la función.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Usar botón o gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Ubicación"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamaño"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Colgar con botón de encendido"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Cursor del ratón grande"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Haz más visible el cursor del ratón"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Oscurecer todas las aplicaciones"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Para las apps que no tengan tema oscuro. Algunas pueden tener problemas, como colores invertidos."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Quitar animaciones"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce el movimiento de la pantalla"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio en mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Puede registrar tus interacciones con una aplicación o un sensor de hardware, así como interactuar con las aplicaciones en tu nombre."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Detener"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancelar"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"¿Detener <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Si tocas <xliff:g id="STOP">%1$s</xliff:g>, se detendrá <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Dejar activado"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"¿Desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"No se ha instalado ningún servicio."</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"No se ha seleccionado ningún servicio"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"No se ha especificado ninguna descripción."</string>
     <string name="settings_button" msgid="2195468788019730377">"Ajustes"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"fotosensibilidad, fotofobia, tema oscuro, migraña, dolor de cabeza, modo lectura, modo noche, reducir brillo, punto blanco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"facilidad de uso, facilidad de acceso, asistencia, ayuda"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visión, audición, invidente, sordo, motricidad, destreza, asistencia, facilidad de uso, facilidad de acceso, mano, ayuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"lupa, zoom, ampliación, baja visión, ampliar, agrandar, hacer más grande"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"subtítulos, Transcripción instantánea, deficiencia auditiva, pérdida de audición, transcripción en tiempo real, transcripción de voz"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste de color"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"habilidades motoras, motricidad, ratón"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"audífonos, deficiencia auditiva, pérdida de audición, implantes cocleares, dispositivos de amplificación de sonido, procesadores de sonido"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motricidad, ratón, ratón externo, ratón de cabeza, ratón adaptable, silla de ruedas, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"audífonos, deficiencia auditiva, pérdida de audición, implantes cocleares, dispositivos de amplificación de sonido"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"deficiencia auditiva, pérdida de audición, subtítulos, teletipo"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botones"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motricidad, persona mayor, artritis, rsi, accidente cerebrovascular, temblor, esclerosis múltiple, parálisis cerebral, temblores, lesión por esfuerzo repetitivo, mano"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retraso, destreza, persona mayor"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impresión"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivado"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servicio de impresión activo}other{# servicios de impresión activos}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Consulta las aplicaciones que consumen más batería"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Carga optimizada para proteger la batería"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Para prolongar la vida útil de la batería, se optimiza la carga"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Carga optimizada para proteger la batería"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para prolongar la vida útil de la batería, la carga se optimiza cuando tu dispositivo está en la base"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Carga optimizada para proteger la batería"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para prolongar la vida útil de la batería, la carga se optimiza cuando tu dispositivo está en la base"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Cargando por completo"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para proteger la batería, la carga se optimizará la próxima vez que tu tablet esté en la base"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Más información sobre la carga en pausa"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Seguir cargando"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Se incluye la actividad en segundo plano que consume mucha batería"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Quitar"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancelar"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Cargar por completo"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema con el accesorio de carga"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Más información sobre la carga con adaptadores incompatibles"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gestor de batería"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gestionar aplicaciones automáticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ahora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gráfico del uso de batería"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gráfico de uso de batería diario"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gráfico de uso de batería por horas"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Porcentaje del nivel de batería de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> a <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Uso de batería desde la última carga completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Uso de batería (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tiempo de pantalla desde la última carga completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Señal de llamada de emergencia"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Establecer comportamiento al realizar una llamada de emergencia"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Copia de seguridad"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activada"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desactivado"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Copia de seguridad y restauración"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Datos personales"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Copia de seguridad de mis datos"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nombre"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Dirección del servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Cifrado de PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP secreto"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador de IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Clave precompartida de IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificado de usuario de IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificado AC de IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificado del servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostrar opciones avanzadas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Dominios de búsqueda de DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidores de DNS (por ejemplo, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rutas de reenvío (por ejemplo, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nombre de usuario"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Contraseña"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Guardar información de la cuenta"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(no se usa)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(no verificar servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(recibido desde el servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Este tipo de VPN no puede estar activo siempre"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"El modo de VPN siempre activada solo admite direcciones de servidor numéricas"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Debes especificar un servidor DNS para el modo de VPN siempre activada"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Las direcciones del servidor DNS deben ser numéricas en el modo de VPN siempre activada"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"La información introducida no es compatible con el modo de VPN siempre activada"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancelar"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Cerrar"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexiones sin VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"¿Requerir una conexión VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"No es segura. Cambia a una VPN IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"No se ha podido iniciar la VPN no compatible."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN para permanecer conectado de forma continua. Solo se permitirá el tráfico de red cuando estés conectado a esta red VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ninguno"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Las redes VPN activadas continuamente requieren una dirección IP para el servidor y el DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertas AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Recibir boletines sobre secuestros de menores"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetir"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Habilitar el administrador de llamadas"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permite que este servicio administre la forma de hacer llamadas."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Administrador de llamadas"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertas de emergencia inalámbricas"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operadores de red"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nombres de punto de acceso"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"cartera"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pagar, tocar, pagos"</string>
     <string name="keywords_backup" msgid="707735920706667685">"copia de seguridad, copia seguridad"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"desbloqueo, facial, autorización, iniciar sesión"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"desbloqueo, facial, autenticar, autenticación, iniciar sesión, inicio de sesión, huella digital, biometría"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versión de prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Sonidos de encendido"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtítulos automáticos"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Subtitula automáticamente el contenido multimedia"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altavoces del teléfono"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Altavoces de la tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Altavoces del dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Auriculares con cable"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"El audio del contenido multimedia compatible se hace más inmersivo"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Desactivado"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"¿Qué quieres que se muestre en tu pantalla de bloqueo?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Quitadas conversaciones recientes"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversación quitada"</string>
     <string name="clear" msgid="5092178335409471100">"Borrar"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Borrar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Las conversaciones prioritarias y las modificadas se mostrarán aquí"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Cuando marques una conversación como prioritaria o hagas un cambio en una conversación, aparecerá aquí. \n\nPara cambiar los ajustes de las conversaciones: \nDesliza el dedo hacia abajo desde la parte superior de la pantalla para abrir el panel desplegable y, a continuación, mantén pulsada una conversación."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizar"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desactivado"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fijar aplicaciones"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Fijar una aplicación te permite mantenerla visible hasta que dejes de fijarla. Esta función se puede usar para, por ejemplo, dejar que alguien de confianza juegue a un juego específico."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Al fijar una aplicación, esta puede abrir otras aplicaciones y se puede acceder a datos personales. \n\nPara fijar una aplicación, sigue estos pasos: 	\n1. Activa la función de fijar aplicaciones. 	\n2. Abre Aplicaciones recientes. 	\n3. En la parte superior de la pantalla, toca el icono de la aplicación y, después, toca Fijar."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Al fijar una aplicación, esta puede abrir otras aplicaciones y se puede acceder a datos personales. \n\nSi quieres compartir tu dispositivo con alguien de forma segura, prueba con la función para usuarios invitados. \n\nPara fijar una aplicación, sigue estos pasos: 	\n1. Activa la función de fijar aplicaciones. 	\n2. Abre Aplicaciones recientes. 	\n3. En la parte superior de la pantalla, toca el icono de la aplicación y, después, toca Fijar."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Cuando una aplicación está fijada, esta puede abrir otras aplicaciones y se puede acceder a datos personales. \n\nPara fijar una aplicación, sigue estos pasos: 	\n{0,number,integer}. Activa la función de fijar aplicaciones. 	\n{1,number,integer}. Abre Aplicaciones recientes. 	\n{2,number,integer}. En la parte superior de la pantalla, toca el icono de la aplicación y, después, toca Fijar."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Cuando una aplicación está fijada, esta puede abrir otras aplicaciones y se puede acceder a datos personales. \n\nSi quieres compartir tu dispositivo con alguien de forma segura, prueba con la función para usuarios invitados. \n\nPara fijar una aplicación, sigue estos pasos: 	\n{0,number,integer}. Activa la función de fijar aplicaciones. 	\n{1,number,integer}. Abre Aplicaciones recientes. 	\n{2,number,integer}. En la parte superior de la pantalla, toca el icono de la aplicación y, después, toca Fijar."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Al fijar una aplicación: \n\n• Es posible que se pueda acceder a datos personales (como contactos y contenido de correos). \n• Es posible que las aplicaciones fijadas abran otras aplicaciones. \n\n\nUsa Fijar aplicaciones solo con personas de confianza."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pedir patrón de desbloqueo para dejar de fijar"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Solicitar PIN para desactivar"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Ajustes de aplicación sin usar"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausar actividad de la aplicación si no se usa"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Quita permisos, elimina archivos temporales y detiene las notificaciones"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gestionar la aplicación si no se usa"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Quita permisos, elimina archivos temporales, detiene las notificaciones y archiva la aplicación"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Todas las aplicaciones"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Aplicaciones instaladas"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplicaciones instantáneas"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Libre"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memoria usada por aplicaciones"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplicación ha usado memoria en los últimos {time}}other{# aplicaciones han usado memoria en los últimos {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Habilitar elaboración de perfiles"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"La elaboración de perfiles de uso de memoria requiere recursos del sistema adicionales."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Elaboración de perfiles de memoria inhabilitados"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frecuencia"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Uso máximo"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"No ha usado datos"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Mostrar sobre otras aplicaciones"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permitir mostrar sobre otras aplicaciones"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permite que esta aplicación se muestre sobre otras aplicaciones que estés usando. La aplicación podrá ver dónde tocas o cambiar lo que se muestre en la pantalla."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Cambiar salida multimedia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permitir que cambie la salida multimedia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permitir que esta app elija qué dispositivo conectado reproduce audio o vídeo desde otras aplicaciones. Si se permite, esta aplicación puede acceder a una lista de dispositivos disponibles, como auriculares y altavoces, y elegir qué dispositivo de salida se utiliza para transmitir o enviar audio o vídeo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acceso a todos los archivos"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Mejorar la activación por voz"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Este dispositivo usa información privada para mejorar el modelo de activación por voz. Las aplicaciones pueden recibir nuevos datos resumidos que se agregan con los de muchos usuarios para mantener la privacidad mientras se mejora el modelo para todos.\n\n"<a href="">"Más información sobre la información privada"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Límite de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g> / Límite de datos: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"El cálculo del uso de datos del operador puede ser diferente al calculado por el dispositivo."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"No se incluyen datos usados por redes de operadores"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> usados"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Establecer advertencia de datos"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Actualizado hace <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Actualizado por <xliff:g id="ID_1">^1</xliff:g> justo ahora"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Actualizado justo ahora"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Ver el plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ver detalles"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Ahorro de datos"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Datos sin restricción"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalía en el uso de la batería"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Recuadros para desarrolladores en ajustes rápidos"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Inhabilitar tiempo de espera de autorización adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Inhabilita la revocación automática de autorizaciones adb para sistemas que no se han vuelto a conectar durante el periodo predeterminado (7 días) o configurado por el usuario (mínimo 1 día)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Rastro de Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensores desactivados"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Ajustes del perfil de trabajo"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Buscar contactos del directorio de trabajo en aplicaciones personales"</string>
@@ -3962,7 +4144,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">"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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Desliza desde una de las esquinas inferiores para abrir una aplicación de asistente digital."</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Servicio de autocompletado"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Servicio de autocompletado predeterminado"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Contraseñas"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Servicios de contraseñas, llaves de acceso y datos"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Proveedores adicionales"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contraseña}other{# contraseñas}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automático, completar, autocompletar, contraseña"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Servicios de contraseñas, llaves de acceso y datos"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;¿Desactivar todos los servicios?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Las contraseñas, llaves de acceso y otra información guardada no estarán disponibles para autocompletar cuando inicies sesión."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;¿Cambiar tu proveedor de servicios preferido 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; 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_enable_confirmation_message_title" msgid="1037501792652277829">"¿Usar %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Solo puedes tener 5 servicios activados"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desactiva al menos un servicio para añadir otro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa los elementos en pantalla para determinar lo que se puede autocompletar."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Límite de servicios de contraseñas, llaves de acceso y datos"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Puedes tener hasta 5 servicios de contraseñas, llaves de acceso y datos activos al mismo tiempo. Desactiva un servicio para añadir más."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Límite de contraseñas, llaves de acceso y servicios de datos"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Puedes tener hasta 5 contraseñas, llaves de acceso y servicios de datos activos al mismo tiempo. Desactiva un servicio para añadir más."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactivar"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de registro"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Los cambios en la compatibilidad de las aplicaciones solo se pueden modificar en aplicaciones depurables; instala una aplicación de este tipo e inténtalo de nuevo."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depende de otra opción"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Cuenta"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d cuentas"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nombre del dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Información básica"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legislación y normativa"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permite que esta aplicación se inicie al escanear una etiqueta NFC.\nSi este permiso está activado, la aplicación estará disponible como opción siempre que se detecte una etiqueta."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reproducir contenido multimedia en"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reproducir <xliff:g id="LABEL">%s</xliff:g> en"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"El audio se reproducirá en"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Este dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"No disponible durante las llamadas"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender llamada en"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Silenciar"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Para habilitarlo, primero cambia \"Mantener pulsado el botón de encendido\" en el menú de encendido."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalles de red"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Las aplicaciones de tu teléfono 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="devices_title" msgid="649715719278562515">"Dispositivos"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Elegir red"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Desconectado"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nombre"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Color (en aplicaciones compatibles)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Guardar"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Usar SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usar esta SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desactivado"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para deshabilitar la SIM, extráela"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Toca para activar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Borrar SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de red preferido"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Cambiar el modo operativo de la red"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo de red preferido"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Ponte en contacto con tu proveedor de red para consultar el precio."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Uso de datos de aplicaciones"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"El modo de red <xliff:g id="NETWORKMODEID">%1$d</xliff:g> no es válido. Ignorar."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nombres de puntos de acceso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"No está disponible cuando se está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"¿Cambiar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"¿Cambiar a usar tarjeta SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"¿Quieres usar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Solo puede haber una tarjeta SIM activa a la vez.\n\nSi cambias a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, no se cancelará tu servicio de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Solo puede haber una eSIM activa.\n\nSi cambias a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, no se cancelará tu servicio de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Solo puede haber una tarjeta SIM activa a la vez.\n\nEl cambio no cancelará tu servicio de <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Puedes usar 2 SIMs al mismo tiempo. Para usar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desactiva otra SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Cambiar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desactivar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, gracias"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancelar"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Cambiar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desactivar"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"No se ha podido activar la tarjeta SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prueba a activar la tarjeta SIM de nuevo. Si el problema continúa, reinicia el dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configura tu SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Configura tus preferencias de red móvil para usar varias SIMs en este dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etiqueta tus SIMs"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Verás estas etiquetas cuando hagas llamadas, envíes mensajes de texto y uses datos, y en Ajustes"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etiqueta de la SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiqueta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Selecciona qué SIMs quieras usar"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Puedes usar 2 SIMs al mismo tiempo"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Configura tus SIMs principales"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Elige las SIMs que quieres usar de forma predeterminada para llamadas, mensajes de texto y datos"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Tus SIMs principales"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Llamadas"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mensajes de texto"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Cambio automático de datos"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Usa los datos de cualquiera de las dos SIMs en función de la cobertura y la disponibilidad"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Solo datos"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configurar"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Siguiente"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Red móvil"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de teléfono"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Etiqueta y color de la SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activación de la red"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Cambiando de operador"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> está activo"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para usar datos móviles, funciones de llamada y SMS más adelante, ve a los ajustes de tu red"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"¿Borrar esta eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Si borras esta SIM, el servicio de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> dejará de estar disponible en este dispositivo.\n\nNo se cancelará el servicio de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Borrar"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Borrando SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"No se puede borrar la SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"No se puede borrar esta SIM debido a un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Conectar a dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"La aplicación <xliff:g id="APPNAME">%1$s</xliff:g> quiere usar una red Wi-Fi temporal para conectarse a tu dispositivo"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"No se ha encontrado ningún dispositivo. Comprueba que estén encendidos y listos para conectarse."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Llamadas de emergencia"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Este operador no admite las llamadas de emergencia por Wi‑Fi.\nEl dispositivo cambia automáticamente a una red móvil para hacer una llamada de emergencia.\nSolo se pueden hacer llamadas de emergencia en zonas con cobertura móvil."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Usar Wi‑Fi en las llamadas para mejorar la calidad"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Alternativa para llamadas"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Si <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> no está disponible o está en roaming, usa tu SIM con datos móviles para las llamadas de <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"alternativa para llamadas"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mensaje MMS entrante"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"No se puede enviar el mensaje MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Toca para permitir mensajes MMS con <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> cuando los datos móviles estén desactivados"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Información de tu política de trabajo"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Ajustes gestionados por tu administrador de TI"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Iniciar con páginas de 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Inicia con kernel compatible con páginas de 16 kB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"¿Reiniciar con un kernel compatible con páginas de 16 kB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ADVERTENCIA: Algunas aplicaciones pueden no ser compatibles con este modo. El dispositivo se reiniciará tras la confirmación."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"¿Reiniciar con un kernel compatible con páginas de 4 kB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"El dispositivo se reiniciará tras la confirmación."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"No se ha podido actualizar el kernel a uno compatible con páginas de 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Aplicando cambio"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Controlador de informes de errores"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina qué aplicación controla el acceso directo a los informes de errores del dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Para seguir rápidamente por donde lo habías dejado, el reproductor multimedia se queda abierto en los ajustes rápidos"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostrar contenido multimedia en la pantalla de bloqueo"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"El reproductor multimedia permanece abierto en la pantalla de bloqueo para que puedas reanudar rápidamente la reproducción"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostrar recomendaciones de contenido multimedia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostrar recomendaciones de contenido multimedia del Asistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Según tu actividad"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ocultar reproductor"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostrar reproductor"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Activa"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactiva"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Predeterminada para <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"llamadas"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"El audio del contenido multimedia compatible se hace más inmersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimiento de cabeza"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"El audio cambia a medida que mueves la cabeza para sonar más natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sincronización de permisos"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Concede a <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> los mismos permisos de aplicaciones que has permitido en <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizar permisos desde el teléfono"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Concede a tu reloj los mismos permisos de aplicaciones que has permitido en este teléfono"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconocido"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altavoz"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta aplicación solo puede abrirse en una ventana"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activada"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desactivada"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desactivado"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desactivado"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Activado"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desactivado"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Activado"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desactivado"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Hace que las pantallas claras se vuelvan oscuras y que las pantallas oscuras se vuelven claras"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Amplía la pantalla"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desactivado"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desactivado"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Activado"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desactivado"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Activado"</string>
+    <string name="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">"Comprueba 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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"La contraseña ya está configurada"</string>
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index bdc9736..85e9a8a 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 minuti pärast"</item>
     <item msgid="1574040255478150028">"5 minuti pärast"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index e1a34a3..dc6f81f 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Olete nüüd arendaja!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Ei ole vaja, olete juba arendaja."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Lubage esmalt arendaja valikud."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Arendaja seadetele pääsevad juurde ainult administraatoriõigustega kasutajad."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Süsteem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Teenus toimib"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Teenus ei toimi"</string>
@@ -46,6 +47,8 @@
     <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ä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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Jätkamiseks pühkige üles"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Voltige telefon kokku ja pühkige esiekraanil üles, et jätkata rakenduse kasutamist, või oodake mõni sekund, et ekraan lukustuks"</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>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Kasuta automaatset pööramist"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Seotud"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Helin ja äratused"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Heli kõnede ajal"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Meedia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Märguanded ja muud süsteemihelid"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Meedia- ja süsteemihelid"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Märguanded"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Vaikimisi määravad heliväljundi individuaalsed rakendused"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Nimetu Bluetooth-seade"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Otsimine"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth on sisse lülitatud"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Kuva kõik"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Kuva kõik"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Elektronpliiats"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Otsanupu vajutus"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (tööprofiil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE Audio vooga ühendamine"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Läheduses asuvad helivood"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Helivood"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR-koodi kaudu helivooga ühendamine"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Läheduses asuvaid helivooge ei leitud"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Iga rakenduse puhul keele valimiseks avage rakenduse keeleseaded."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Lisateave rakenduse keelte kohta"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Kas valida süsteemi keeleks %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Kas lisada %s eelistatud keelte hulka?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"See annab rakendustele ja veebisaitidele teada, et eelistate ka seda keelt."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Teie seadme seaded ja piirkondlikud eelistused muutuvad."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Muuda"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s pole saadaval"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Laupäev"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Kui rakendus ei toeta piirkondlikke eelistusi, kasutab rakendus oma vaikelokaadi seadeid."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Vaadake keele-eelistuste kohta lisateavet."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Lisaeelistused"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Aadressitingimused"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Määrake, kuidas soovite, et teie poole pöördutaks"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Rakendused võivad kasutada teie aadressitingimusi, et isikupärastada, kuidas teie poole pöörduda."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Pole määratud"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Naissoost"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Meessoost"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutraalne"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Kas eemaldada valitud keel?}other{Kas eemaldada valitud keeled?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst kuvatakse teises keeles."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kõiki keeli ei saa eemaldada"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Asukoht"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Kasuta asukohta"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Väljas"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Sees – # rakendusel on asukohale juurdepääs}other{Sees – # rakendusel on asukohale juurdepääs}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Sees / # rakendusel on asukohale juurdepääs}other{Sees / # rakendusel on asukohale juurdepääs}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laadimine …"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Rakendused, millel on luba läheduses olevatele seadmetele juurde pääseda, saavad määrata ühendatud seadmete suhtelise asukoha."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Juurdepääs asukohale on rakenduste ja teenuste jaoks välja lülitatud. Teie seadme asukoht võidakse siiski päästeteenistusele saata, kui helistate või saadate sõnumi hädaabinumbrile."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Vaadake lisateavet asukohaseadete kohta."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lisateave asukohaseadete kohta"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Asukohale juurdepääsu muutmiseks avage Seaded &gt; Turvalisus ja privaatsus &gt; Privaatsusseaded"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Parimate tulemuste jaoks kasutage ekraanikaitset, millel on sertifikaat Made for Google. Teiste ekraanikaitsetega ei pruugi teie lapse sõrmejälg toimida."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Kellaga avamine"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Kui seadistate näoga ja sõrmejäljega avamise, küsib telefon teie sõrmejälge, kui kannate maski või olete hämaras.\n\nKui teie nägu või sõrmejälge ei tunta ära, saate avada ka kellaga."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Kui teie sõrmejälge ei tunta ära, saate avada kellaga."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Kui teie nägu ei tunta ära, saate avada kellaga."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Kui seadistate näoga ja sõrmejäljega avamise, küsib telefon teie sõrmejälge, kui kannate maski või olete hämaras.\n\nKellaga avamine on veel üks mugav viis selle telefoni avamiseks, näiteks kui teie sõrmed on märjad või nägu ei tuvastata."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Kella avamine on veel üks mugav viis telefoni avamiseks, näiteks kui teie sõrmejälge ei tuvastata."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Kellaga avamine on veel üks mugav viis selle telefoni avamiseks, näiteks kui teie nägu ei tuvastata."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Sõrmejälje või kella kasutamine:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Näo või kella kasutamine:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Näo, sõrmejälje või kella kasutamine:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Nägu ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Nägu, sõrmejälg ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Nägu, sõrmejäljed ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Kaugautentija avamine"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Kell on lisatud"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kella seadistamine"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Kellaga avamine on veel üks mugav viis selle telefoni avamiseks, näiteks kui teie sõrmed on märjad või nägu ei tuvastata.\n\nSaate kasutada oma kella telefoni avamiseks järgmistel juhtudel."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Mitte praegu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Jätka"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Rohkem"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Tööpõhimõtted"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Teie kell peab olema lukustamata, randmel ja telefoni lähedal. Seni, kuni kell on teie randmel, ei pea te seda uuesti avama."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kui telefon avatakse, saate märguande oma kellas. Kui see avati kogemata, puudutage telefoni uuesti lukustamiseks märguannet."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontroll on teie käes"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Võite oma kella funktsioonist Kellaga avamine igal ajal seadete kaudu eemaldada"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Puudutage märguannet"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pühkige lukustuskuval üles"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Kella valimine"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Saadaolevad kellad"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Tühista"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Kinnita"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Valmis!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Saate nüüd kasutada oma kella selle telefoni avamiseks, kui pühite lukustuskuval üles või puudutate märguannet"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Valmis"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Kellaga avamine"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Saate kasutada oma kella selle telefoni avamiseks, kui pühite lukustuskuval üles või puudutate märguannet"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Kellaga avamise kasutamiseks peab teie kell olema lukustamata, randmel, käeulatuses ja ühendatud selle telefoniga. Kui ühendus katkeb, peate enne kellaga avamise kasutamist telefoni avama.\n\nPidage meeles.\nKorraga saab seadistada ainult ühe kella. Teise kella lisamiseks eemaldage esmalt praegune kell."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lisateave kellaga avamise kohta"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lisa kell"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kella eemaldamine"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sõrmejälje ja Näoga avamine"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Näo ja sõrmejäljega avamine töö jaoks"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Seadistamine on vajalik"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Turvalisus"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privaatsus"</string>
     <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="2274405892301976238">"Hoidke privaatsed rakendused lukustatud ja peidetuna"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Hoidke privaatseid rakendusi eraldi ruumis, mida saate peita või lukustada"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Privaatse ruumi lukk"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Privaatse ruumi saate lukust avada samal viisil, nagu avate lukust oma seadme. Võite ka valida erineva luku."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Seadme ekraaniluku kasutamine"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Näo ja sõrmejäljega avamine"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Sõrmejäljega avamine"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Näoga avamine"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Seadistamiseks puudutage"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Privaatse ruumi sõrmejäljega avamine"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Privaatse ruumi näoga avamine"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Võimalused avamiseks"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Sama mis seadme ekraanilukk"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Kas valida privaatse ruumi jaoks uus lukk?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lukusta automaatselt"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Privaatse ruumi automaatselt lukustamine"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Saate oma privaatse ruumi automaatselt lukustada, kui te pole oma seadet teatud perioodi jooksul kasutanud"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Iga kord, kui seade lukustatakse"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Pärast 5 minutit tegevusetust"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Mitte kunagi"</string>
+    <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_delete_title" msgid="3075645119800272800">"Privaatse ruumi kustutamine"</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="private_space_unlocked" msgid="9091600948712932046">"Privaatne ruum on avatud"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekraaniluku seadistamine"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Seadistage oma 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="private_space_cancel_label" msgid="379259667396956886">"Tühista"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Seadistamine"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Seadistage privaatne ruum"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Hoidke privaatseid rakendusi eraldi ruumis, mida saate peita või lukustada"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Tööpõhimõtted"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Privaatsele ruumile pääsete juurde oma rakenduste loendi allosas"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Privaatse ruumi rakendused on lukuga kaitstud"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Kui privaatne ruum on lukustatud, siis on privaatse ruumi rakenduste märguanded peidetud"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Kui teie privaatne ruum on lukustatud, ei kuvata teie privaatses ruumis olevaid rakendusi lubade halduris, privaatsuse juhtpaneelil ega muudes seadetes.\n\nTeie privaatset ruumi ei saa uude seadmesse teisaldada. Kui soovite seda mõnes teises seadmes kasutada, peate seadistama teise privaatse ruumi.\n\nKõik, kes ühendavad teie seadme arvutiga või installivad teie seadmesse kahjulikke rakendusi, võivad pääseda juurde teie privaatsele ruumile."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Privaatse ruumi seadistamine …"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Kui privaatne ruum on lukustatud, siis on privaatse ruumi rakenduste märguanded peidetud"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Avage privaatne ruum, et jagada fotosid või faile privaatse ruumi rakendustest"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Mõned rakendused on teie privaatsesse ruumi juba installitud"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Privaatset ruumi ei saanud seadistada"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Proovi uuesti"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Kas kasutada privaatse ruumi avamiseks ekraanilukku?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Oma privaatse ruumi saate lukust avada samal viisil, nagu avate lukust oma seadme. Võite ka valida erineva luku."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Kasuta ekraanilukku"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Uue luku valimine"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Valmis!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Juurdepääsuks privaatsele ruumile avage oma rakenduste loend ja kerige seejärel alla"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Valmis"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Privaatse ruumi leidmiseks kerige alla"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Valige oma privaatse ruumi jaoks lukk"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Saate oma privaatse ruumi avada sõrmejälje abil. Turvalisuse tagamiseks nõuab see valik varulukku."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Määrake privaatse ruumi jaoks PIN-kood"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Määrake oma privaatse ruumi jaoks parool"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Määrake oma privaatse ruumi jaoks muster"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Privaatse ruumi kuvamiseks (mitte lõplik kasutuskogemus)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Avage rakendus Seaded"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Puudutage valikut Turvalisus ja privaatsus &gt; Privaatne ruum &gt; Peida privaatne ruum, kui see on lukus"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Lülitage välja lüliti Peida privaatne ruum, kui see on lukustatud"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Märkus Google\'i töötajatele: selle funktsiooni arendamine on veel pooleli"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Võib-olla peate selle parooli sisestama ka teise seadmesse."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Kinnitage koordineeritud komplektiga sidumiseks"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Luba juurdepääs kontaktidele ja kõneajaloole"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Lubage juurdepääs ka kontaktidele ja kõneajaloole"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Teavet kasutatakse kõne teadaannete ja muu jaoks"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ei saanud ühendust."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Saadaval seadmed"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kui Bluetooth on sisse lülitatud, saab seade suhelda teiste lähikonna Bluetooth-seadmetega"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Lennurežiimis"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Teavita avalike võrkude puhul"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Teavita, kui kvaliteetne avalik võrk on saadaval"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Luba WEP-võrgud"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP on vanem turvaprotokoll, mis on vähem turvaline"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Teie operaator ei luba WEP-võrkude kasutamist, kuna need on vähem turvalised"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Lülita WiFi automaatselt sisse"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"WiFi lülitub uuesti sisse kvaliteetsete salvestatud võrkude, näiteks teie koduse võrgu läheduses"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Pole saadaval, sest asukoha otsimine on välja lülitatud. Lülitage valik "<annotation id="link">"Asukoht"</annotation>" sisse."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"WiFi-skannimine lubab rakendustel ja teenustel alati otsida WiFi-võrke, isegi kui WiFi on väljas. Seda saab kasutada näiteks asukohapõhiste funktsioonide ja teenuste täiustamiseks."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Lülita sisse"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"WiFi-skannimine on lülitatud sisse"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"See võrk kasutab vanemat turvaprotokolli, mis on vähem turvaline"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> on blokeeritud"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"See võrk kasutab vanemat turvaprotokolli WEP, mis on vähem turvaline. Kui soovite ikkagi ühenduse luua, saate WEP-võrgud lubada."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Teie operaator ei luba teil selle võrguga ühendust luua, kuna see kasutab vanemat turvaprotokolli, mis on vähem turvaline"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Luba WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Sule"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Täpsemad valikud"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Rippmenüü loend Täpsemad valikud"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"laienda"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Kasuta edasi WiFi-t"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ära näita enam kunagi"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Ühenda"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi on sisse lülitatud"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Ühendatud võrguga <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ühendamine võrguga <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Ühendamine …"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Võrguga ühenduse loomine ebaõnnestus"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Te ei ole võrgu levialas"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Unusta"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Muuda"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Võrgu unustamine ebaõnnestus"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Salvesta"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Võrgu säilitamine ebaõnnestus"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Tühista"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"WiFi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobiilne andmeside"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – laadimine"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – laadimine"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Kuumkoha ühendus"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Ühenduse tugevus"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Salvestatud võrgud"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Parool on määramata"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Kuumkoha nimi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Kuumkoha parool"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Pääsupunkti sagedusriba"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Lülita kuumkoht automaatselt välja"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kui ükski seade pole ühendatud"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Laienda ühilduvust"</string>
@@ -1008,8 +1149,10 @@
     <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ä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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Keela mängude vaikekaadrisagedus"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Keela mängude jaoks maksimaalse kaadrisageduse piirangu seadmine väärtusele <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ekraanivaatamise tuvastuse funktsioon kontrollib esikaamera abil, kas keegi vaatab ekraani. See töötab ainult seadmes ja pilte ei salvestata kunagi ega saadeta Google\'ile."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Lülita ekraanivaatamise tuvastus sisse"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekraan jääb vaatamise ajal sisselülitatuks"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Pikem ekraani ajalõpp kasutab rohkem akutoidet."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kaamera on lukus"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Näotuvastuse kasutamiseks peab kaamera olema avatud"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kaamera peab ekraanivaatamise tuvastuse kasutamiseks olema avatud"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM-kaardi pesa <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM-kaardi pesa <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (peamine)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Vaatamiseks valige salvestatud võrk"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-versioon"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Aku tase"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Ühised"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ühised seaded"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Salvesta"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Tühista"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Nimeväli ei tohi tühi olla."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ei saa olla tühi."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-väli peab olema kolmekohaline."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-väli peab olema kahe- või kolmekohaline."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operaator ei luba tüübiga %s APN-ide lisamist."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC väli peab olema kehtiv."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"APN-i vaikeseadete taastamine."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Lähtesta vaikeseadetele"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"APN-i vaikeseadete lähtestamine on lõpule viidud."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Lähtesta"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth ja WiFi on lähtestatud"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM-ide kustutamine"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"See ei tühista mobiilsideteenuse pakette. Asendus-SIM-ide allalaadimiseks võtke ühendust operaatoriga."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Lähtesta seaded"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Kas soovite kõik võrguseaded lähtestada? Seda toimingut ei saa tagasi võtta."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Kas lähtestada kõik võrguseaded ja kustutada eSIM-id? Seda toimingut ei saa tagasi võtta."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Kas lähtestada?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Võrguseadete lähtestamine pole selle kasutaja puhul saadaval"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Võrguseaded lähtestati"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM-kaarte ei saa kustutada"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-e ei saa vea tõttu kustutada.\n\nTaaskäivitage seade ja proovige uuesti."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Kõigi andmete kustutamine (tehaseseaded)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Kõigi andmete kustutamine (tehaseseaded)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Muusika"</li>\n<li>"Fotod"</li>\n<li>"Muud kasutajaandmed"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-id"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"See ei tühista teie mobiilsideteenuse paketti."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Kõik teie isiklikud andmed ja allalaaditud rakendused kustutatakse. Seda toimingut ei saa tagasi võtta."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Kõik teie isiklikud andmed, sealhulgas allalaaditud rakendused ja SIM-kaardid kustutatakse. Seda toimingut ei saa tagasi võtta."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Kas kustutada kõik andmed?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Tehaseseadetele lähtestamine pole selle kasutaja puhul saadaval"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Kustutamine"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Kuumkoht, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internetiühendust ei jagata teiste seadmetega"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Väljas"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Jagamine"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ära kasuta WiFi-kuumkohta"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Jaga internetti ainult USB kaudu"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Jaga internetti ainult Bluetoothi kaudu"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Jaga internetti ainult Etherneti kaudu"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Jaga internetti ainult USB või Bluetoothi kaudu"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Jaga internetti ainult USB ja Etherneti kaudu"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Jaga internetti ainult Bluetoothi ja Etherneti kaudu"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Jaga internetti ainult USB, Bluetoothi ja Etherneti kaudu"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Jagamine USB-ga"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Jagamine Bluetoothiga"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Jagamine Ethernetiga"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Teistele seadmetele WiFi- või mobiilse andmesidevõrgu kaudu internetiühenduse pakkumiseks kasutage kuumkohta ja ühenduse jagamist. Samuti saavad kuumkoha luua rakendused, et jagada sisu läheduses olevate seadmetega."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Abi"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobiilsidevõrk"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiilipakett"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-rakendus"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Kas muuta SMS-i rakendust?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Kas kasutada SMS-i rakendusena rakenduse <xliff:g id="NEW_APP">%1$s</xliff:g> asemel rakendust <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Kas muuta WiFi Assistanti?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Kas kasutada võrguühenduste haldamiseks rakenduse <xliff:g id="CURRENT_APP">%2$s</xliff:g> asemel rakendust <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Kas kasutada võrguühenduste haldamiseks rakendust <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Tundmatu SIM-kaardi operaator"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Operaatoril <xliff:g id="OPERATOR">%1$s</xliff:g> pole ettevalmistuse veebisaite"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sisestage SIM-kaart ja taaskäivitage"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Looge Interneti-ühendus"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Hiljutised asukohapäringud"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Tööprofiili asukohaluba"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Asukohale juurdepääsu load"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Tühista juurdepääs"</string>
     <string name="controls_label" msgid="8671492254263626383">"Juhtnupud"</string>
     <string name="force_stop" msgid="2681771622136916280">"Sunni peatuma"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhiivi"</string>
+    <string name="restore" msgid="7622486640713967157">"Taasta"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Kokku"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Rakenduse suurus"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Rakendus USB-mäluseadmel"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Paketi suurust ei saanud arvutada."</string>
     <string name="version_text" msgid="7628938665256107608">"versioon <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Teisalda"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhiivimine ebaõnnestus"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Rakendus <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> on arhiivitud"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Taastamine ebaõnnestus"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Rakenduse <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> taastamine"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Teine üleviimine on juba pooleli."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ei ole piisavalt ruumi."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Rakendust ei ole olemas."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Saadaolev ekraanil kuvatav klaviatuur"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Ekraanil kuvatavate klaviatuuride haldamine"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Valikud"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Juurdepääsetavus"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Füüsiline klaviatuur"</string>
     <string name="show_ime" msgid="4334255501724746849">"Kasuta ekraaniklaviatuuri"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Hoia seda ekraanil, kui füüsiline klaviatuur on aktiivne"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Ühekordse puudutusega klahvid"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Füüsilise klaviatuuri kasutamise hõlbustamiseks saate lubada ühekordse puudutusega klahvid"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Nakkeklahvid"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Füüsilise klaviatuuri kasutamise hõlbustamiseks saate lubada nakkeklahvid"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klaviatuuri otseteed"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Kuva otseteede loend"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tööprofiili klaviatuurid ja tööriistad"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sordi kasutusaja järgi"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sordi viimatise kasutuse järgi"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sordi rakenduse nime järgi"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Viimane kasutamine"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Viimati kasutatud"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"mitte kunagi"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Kasutusaeg"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Juurdepääsetavus"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Juurdepääsetavuse seaded"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Jätka ikkagi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Tühista"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Suurendamisseaded"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Kolmikpuudutusega suurendamine"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Otsetee abil suurendamine"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Otsetee ja kolmikpuudutusega suurendamine"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Teave funktsiooni <xliff:g id="SERVICE">%1$s</xliff:g> kohta"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Avamiseks ekraani kahe sõrmega topeltpuudutamine"</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="860548190334486449">"Suurenduse käivitamiseks ja peatamiseks topeltpuudutage ekraani kahe sõrmega."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Juurdepääsufunktsiooni 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_button" msgid="2031773187678948436">"Selge"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Juurdepääsetavuse nupu seaded"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Nupu seaded"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Funktsiooni <xliff:g id="SERVICE">%1$s</xliff:g> otsetee"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Juurdepääsetavuse nupp"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Juurdepääsuliigutus"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Ekraani kahe sõrmega topeltpuudutamine"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ekraani kahe sõrmega topeltpuudutamine"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Puudutage kahe sõrmega kiiresti {0,number,integer} korda ekraani"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekraani kolmikpuudutamine"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Lisateave juurdepääsetavuse nupu ja liigutuse kohta"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Juurdepääsetavuse nupu kasutamine. Liigutus ei ole kolme nupuga navigeerimise puhul saadaval."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Kiirjuurdepääs juurdepääsufunktsioonidele"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Alustamiseks tehke järgmist."</b>\n"1. Avage juurdepääsetavuse seaded.\n2. Valige funktsioon ja puudutage otseteed.\n3. Valige, kas soovite funktsioonile juurdepääsemiseks kasutada nuppu või liigutust."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Alustamiseks tehke järgmist."</b>\n"1. Avage juurdepääsetavuse seaded.\n2. Valige funktsioon ja puudutage otseteed.\n3. Valige nupp, millega funktsioonile juurde pääseda."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Alustamiseks toimige järgmiselt.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Avage juurdepääsetavuse seaded.&lt;br/&gt; {1,number,integer}. Valige funktsioon ja puudutage otseteed.&lt;br/&gt; {2,number,integer}. Valige, kas soovite funktsioonile juurdepääsemiseks kasutada nuppu või liigutust.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Alustamiseks toimige järgmiselt.&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Avage juurdepääsetavuse seaded.&lt;br/&gt; {1,number,integer}. Valige funktsioon ja puudutage otseteed.&lt;br/&gt; {2,number,integer}. Valige nupp, millega funktsioonile juurde pääseda.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Nupu või liigutuse kasutamine"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Asukoht"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Suurus"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Toitenupp lõpetab kõne"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Suur hiirekursor"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Muutke hiirekursor paremini nähtavaks"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Muutke kõik rakendused tumedaks"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Rakendub rakendustele, millel pole oma tumedat teemat. Mõnel rakendusel võib olla kuvamisega seotud probleeme, näiteks pöördvärvid."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animatsioonide eemaldamine"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Ekraanikuval liikumise vähendamine"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monoheli"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"See saab jälgida teie suhtlust rakenduse või riistvaraanduriga ja teie eest rakendustega suhelda."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Luba"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Keela"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Peata"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Tühista"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Kas peatan teenuse <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Nupu <xliff:g id="STOP">%1$s</xliff:g> puudutamisel teenus <xliff:g id="SERVICE">%2$s</xliff:g> peatatakse."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Lülita välja"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Hoia sees"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Kas lülitada <xliff:g id="SERVICE">%1$s</xliff:g> välja?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ühtki teenust pole installitud"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ükski teenus ei ole valitud"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Kirjeldust ei ole sisestatud."</string>
     <string name="settings_button" msgid="2195468788019730377">"Seaded"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"valgustundlikkus, fotofoobia, tume teema, migreen, peavalu, lugemisrežiim, öörežiim, ereduse vähendamine, valge punkt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Lihtne kasutada, lihtne juurdepääs, abi, abistav"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"nägemine, kuulmine, pime, kurt, kurtus, motoorika, peenmotoorika, abi, abistav, kasutusmugavus, lihtne juurdepääs, käsi"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Akna suurendaja, suum, suurendamine, halb nähtavus, suurendus, suuremaks muutmine"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Subtiitrid, reaalajas transkriptsioon, kuulmislangus, kuulmiskadu, CART, kõnesüntees"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"värvikontrastsus"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motoorika, hiir"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"kuuldeaparaadid, kuulmislangus, kuulmiskadu, kõrvaimplantaadid, võimendusseadmed, heliprotsessorid"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motoorika, hiir, väline hiir, peahiir, adaptiivne hiir, ratastool, juhtkang"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"kuuldeaparaadid, kuulmislangus, kuulmiskadu, kõrvaimplantaadid, võimendusseadmed, heliprotsessorid, isiklik helivõimendi, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"kuulmislangus, kuulmiskadu, subtiitrid, teletaip, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"kolm nuppu"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"peenmotoorika, motoorika, eakas, artriit, liigesepõletik, ülekoormusvigastused, ülekoormushaigus, treemor, insult, rabandus, multiipelskleroos, hulgiskleroos, hulgikoldekõvastumus, ajuhalvatus, tserebraalparalüüs, värisemine, värin, värinad, käsi"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"viide, peenmotoorika, eakas"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printimine"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Väljas"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 printimisteenus on sees}other{# printimisteenust on sees}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Vaadake suurima akukasutusega rakendusi"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Laadimine on aku kaitsmiseks optimeeritud"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Laadimine on optimeeritud, et pikendada teie aku tööiga"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Laadimine on aku kaitsmiseks optimeeritud"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Aku tööea pikendamiseks on laadimine dokitud olekus optimeeritud"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Laadimine on aku kaitsmiseks optimeeritud"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Aku tööea pikendamiseks on laadimine dokitud olekus optimeeritud"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Laaditakse täissaamiseni"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Järgmisel korral, kui teie tahvelarvuti on dokitud, on laadimine aku kaitsmiseks optimeeritud"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Lisateave peatatud laadimise kohta"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Jätka laadimist"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Hõlmab akut koormavaid taustategevusi"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Eemalda"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Tühista"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Laadi täissaamiseni"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Probleem laadimistarvikuga"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Lisateave ühildumatu laadimise kohta"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Akuhaldur"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Halda rakendusi automaatselt"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"praegu"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Akukasutuse diagramm"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Aku päevapõhise kasutuse diagramm"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Aku tunnipõhise kasutuse diagramm"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Akutaseme protsent vahemikus <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> kuni <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Akukasutus pärast viimast täislaadimist"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Akukasutus: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Ekraaniaeg pärast viimast täislaadimist"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Hädaabikõne signaal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Määra käitumine hädaabikõne korral"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Varundamine"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Sees"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Väljas"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Varundamine ja taastamine"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Isikuandmed"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Minu andmete varundamine"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nimi"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tüüp"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Serveri aadress"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP krüpteerimine (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP saladus"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSeci tunnus"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSeci eeljagatud võti"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSeci kasutaja sertifikaat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSeci CA-sertifikaat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Serveri IPSeci sertifikaat"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Kuva täpsemad valikud"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-i otsingudomeenid"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-serverid (nt 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Edastamismarsruudid (nt 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Kasutajanimi"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Parool"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Salvesta kontoteave"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ei kasutata)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ära kinnita serverit)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(serverist saadud)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Seda tüüpi VPN ei saa olla alati ühendatud"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Alati sisselülitatud VPN toetab ainult numbritest koosnevaid serveriaadresse"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Alati sisselülitatud VPN-i puhul peab olema määratud DNS-server"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Alati sisselülitatud VPN-i puhul peab DNS-serveri aadress koosnema numbritest"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Sisestatud teave ei toeta alati sisselülitatud VPN-i"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Tühista"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Loobu"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN-ita ühenduste blokeerimine"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Kas vajate VPN-i ühendust?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Pole turvaline. Värskendage versioonile IKEv2 VPN."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Toetamata VPN-i käivitamine ebaõnnestus."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Valige VPN-i profiil, millega olla alati ühendatud. Võrguliiklus on lubatud ainult siis, kui olete ühendatud selle VPN-iga."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Puudub"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Alati sees VPN-i jaoks on vaja IP-aadressi nii serverile kui ka DNS-ile."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Lasteröövi märguanded"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Teadaannete vastuvõtmine lasteröövide kohta"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Kordamine"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Kõnehalduri lubamine"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Lubage sellel teenusel hallata, kuidas kõnesid tehakse."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Kõnehaldur"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Eriolukorra raadiosideteatised"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Võrguoperaatorid"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Pääsupunktide nimed"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"maksa, puuduta, maksed"</string>
     <string name="keywords_backup" msgid="707735920706667685">"varukoopia, varundamine"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"liigutus"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"nägu, avamine, autentimine, sisselogimine"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"nägu, avamine, autentimine, sisselogimine, sõrmejälg, biomeetria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-i versioon, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Sisselülitamise helid"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Reaalajas subtiitrid"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Meediasisu automaatsed subtiitrid"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefoni kõlarid"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tahvelarvuti kõlarid"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Seadme kõlarid"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Juhtmega kõrvaklapid"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Ühilduva meedia heli muutub ruumilisemaks"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Väljas"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Mida soovite oma lukustuskuval näha?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Hiljutine vestlus eemaldati"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Vestlus eemaldati"</string>
     <string name="clear" msgid="5092178335409471100">"Kustuta"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Kustuta <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioriteetsed ja muudetud vestlused kuvatakse siin"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Kui märgite vestluse prioriteetseks või teete vestluses teisi muudatusi, kuvatakse need siin. \n\nVestluse seadete muutmine: \npühkige ekraani ülaosast alla, et avada allatõmmatav ala. Seejärel puudutage pikalt vestlust."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimeeri"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Väljas"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Rakenduse kinnitamine"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Rakenduse kinnitamise abil saate hoida praeguse rakenduse kuval seni, kuni selle vabastate. Seda funktsiooni saab kasutada näiteks selleks, et lubada usaldusväärsel sõbral teatud mängu mängida."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kui rakendus on kinnitatud, saab kinnitatud rakendus avada teisi rakendusi ja isiklikud andmed võivad olla juurdepääsetavad. \n\nRakenduse kinnitamise kasutamiseks toimige järgmiselt. 	\n1. Lülitage rakenduse kinnitamine sisse. 	\n2. Avage leht Ülevaade. 	\n3. Puudutage ekraanikuva ülaosas rakenduse ikooni ja siis käsku Kinnita."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kui rakendus on kinnitatud, saab kinnitatud rakendus avada teisi rakendusi ja isiklikud andmed võivad olla juurdepääsetavad. \n\nKui soovite oma seadet kellegagi turvaliselt jagada, proovige selle asemel kasutada külaliskasutajat. \n\nRakenduse kinnitamise kasutamiseks toimige järgmiselt. 	\n1. Lülitage rakenduse kinnitamine sisse. 	\n2. Avage leht Ülevaade. 	\n3. Puudutage ekraanikuva ülaosas rakenduse ikooni ja siis käsku Kinnita."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kui rakendus on kinnitatud, saab kinnitatud rakendus avada teisi rakendusi ja isiklikud andmed võivad olla juurdepääsetavad. \n\nRakenduse kinnitamise kasutamiseks: 	\n{0,number,integer}. Rakenduse kinnitamise sisselülitamiseks 	\n{1,number,integer}. Avage ülevaade 	\n{2,number,integer}. Puudutage ekraanikuva ülaosas rakenduse ikooni ja siis käsku Kinnita."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kui rakendus on kinnitatud, saab kinnitatud rakendus avada teisi rakendusi ja isiklikud andmed võivad olla juurdepääsetavad. \n\nKui soovite oma seadet kellegagi turvaliselt jagada, proovige selle asemel kasutada külaliskasutajat. \n\nRakenduse kinnitamise kasutamiseks: 	\n{0,number,integer}. Rakenduse kinnitamise sisselülitamiseks 	\n{1,number,integer}. Avage ülevaade 	\n{2,number,integer}. Puudutage ekraanikuva ülaosas rakenduse ikooni ja siis käsku Kinnita."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kui rakendus on kinnitatud: \n\n•		võivad isiklikud andmed (nt kontaktid\nja meilide sisu) olla juurdepääsetavad; \n•		kinnitatud rakendus võib avada teisi rakendusi. \n\nKasutage rakenduse kinnitamist ainult usaldusväärsete inimestega."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Enne vabastamist küsi avamismustrit"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Enne vabastamist küsi PIN-koodi"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Kasutamata rakenduse seaded"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Tegevusetuna rakenduse tegevuste peatamine"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Eemaldatakse load, kustutatakse ajutised failid ja peatatakse märguanded"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Kasutamata rakenduse haldamine"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Lubade eemaldamine, ajutiste failide kustutamine, märguannete peatamine ja rakenduse arhiivimine"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Kõik rakendused"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installitud rakendused"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Installimata avat. rakendused"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Vaba"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Rakenduste kasutatav mälu"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 rakendus kasutas viimase {time} jooksul mälu}other{# rakendust kasutasid viimase {time} jooksul mälu}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Luba mälukasutuse profiilimine"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Mälukasutuse profiilimine nõuab täiendavaid süsteemiressursse."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Mälu profiilimine on keelatud"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Sagedus"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimaalne kasutus"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Andmesidet pole kasutatud"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Muude rakenduste peal kuvamine"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Luba muude rakenduste peal kuvamine"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Lubage seda rakendust kuvada muude kasutatavate rakenduste peal. See rakendus näeb, kus puudutate, või saab muuta seda, mis ekraanil kuvatakse."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Muutke meediaväljundit"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Lubage rakendusel meediaväljundit muuta"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Lubage sellel rakendusel valida, milline ühendatud seade esitab teiste rakenduste heli või videot. Kui see on lubatud, pääseb see rakendus juurde saadaolevate seadmete (nt kõrvaklapid ja kõlarid) loendile ning valida, millist väljundseadet heli või video voogesitamiseks või ülekandmiseks kasutatakse."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Juurdepääs kõikidele failidele"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Häälaktiveerimise täiustamine"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"See seade kasutab häälaktiveerimise mudeli täiustamiseks privaatset analüüsi. Rakendused saavad vastu võtta kokkuvõtlikke värskendusi, mis on kokku koondatud paljudelt kasutajatelt, et säilitada privaatsus ja parandada samal ajal mudelit kõigi jaoks.\n\n"<a href="">"Lisateave privaatse analüüsi 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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> – andmemahu hoiatus"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> – andmemahu piirang"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> – andmemahu hoiatus / <xliff:g id="ID_2">^2</xliff:g> – andmemahu piirang"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operaatori andmemahuarvestus võib erineda seadme andmemahuarvestusest"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ei sisalda operaatorite võrkude kasutatavat andmemahtu"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> on kasutatud"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Andmekasutuse hoiatuse määramine"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Värskendati <xliff:g id="ID_1">^2</xliff:g> tagasi"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Operaator <xliff:g id="ID_1">^1</xliff:g> värskendas äsja"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Värskendati äsja"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Kuva pakett"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Kuva üksikasjad"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Andmemahu säästja"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Piiramata andmeside"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Akukasutuse anomaalia"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Arendaja kiirseadete paanid"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Keela ADB volituse ajalõpp"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Keelake ADB volituste automaatne tühistamine süsteemides, mis ei loo uuesti ühendust vaikeaja (7 päeva) või kasutaja määratud aja (vähemalt 1 päev) jooksul."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Andurid on väljas"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Tööprofiili seaded"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Otsi isiklikes rakendustes töökataloogi kontakte"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Pühkige ekraanikuva alanurgast üles, et digitaalse assistendi rakendus käivitada"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Automaattäite teenus"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Automaattäite vaiketeenus"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Paroolid"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Paroolid, pääsuvõtmed ja andmesideteenused"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Lisapakkujad"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parool}other{# parooli}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automaatne, täitmine, automaattäide, parool"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Paroolid, pääsuvõtmed ja andmeteenused"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Lülitage kõik teenused välja?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Paroolid, pääsuvõtmed ja muu salvestatud teave poole sisselogides automaattäitmiseks saadaval"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Määrake eelistatud teenusepakkujaks &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_enable_confirmation_message_title" msgid="1037501792652277829">"Kas kasutada teenust %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Sisse võib olla lülitatud ainult viis teenust"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Lülitage vähemalt üks teenus välja, et lisada uus teenus"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s kasutab ekraanil kuvatut, et otsustada, mida saab automaatselt täita."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Paroolide, pääsuvõtmete ja andmesideteenuste piirang"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Korraga saavad aktiivsed olla kuni 5 parooli, pääsuvõtit ja andmesideteenust. Nende lisamiseks lülitage mõni olemasolev välja."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Paroolide, pääsuvõtmete ja andmesideteenuste piirang"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Korraga saavad aktiivsed olla kuni 5 parooli, pääsuvõtit ja andmesideteenust. Teenuse lisamiseks lülitage mõni olemasolev välja."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Lülita välja"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automaattäide"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logimistase"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Rakenduse ühilduvuse muudatusi saab muuta silutavate rakenduste puhul. Installige silutav rakendus ja proovige uuesti."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Oleneb teisest seadest"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konto"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d kontot"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Seadme nimi"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Põhiteave"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Juriidiline ja regulatiivteave"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Lubage see rakendus käivitada, kui skannitakse NFC-kiip.\nKui see luba on sisse lülitatud, on rakendus kiibi tuvastamisel valikuna saadaval."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Meedia esitamise seade:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Esita rakendust <xliff:g id="LABEL">%s</xliff:g> väljundis"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Jätkatakse heli esitamist"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"See seade"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Pole kõnede ajal saadaval"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Vasta kõnele seadmes"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Vaigistamine"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Lubamiseks muutke esmalt toitemenüüs valikut „Toitenupu pikalt vajutamine“."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Võrgu üksikasjad"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Teie seadme nimi on teie telefonis olevatele 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="devices_title" msgid="649715719278562515">"Seadmed"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Võrgu valimine"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Ühendus on katkestatud"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nimi"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Värv (kasutavad ühilduvad rakendused)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Salvesta"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Kasuta SIMi"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Kasuta seda SIM-i"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Väljas"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Selle SIM-i keelamiseks eemaldage SIM-kaart"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Puudutage operaatori <xliff:g id="CARRIER">%1$s</xliff:g> aktiveerimiseks"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Kustuta SIM-kaart"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Eelistatud võrgutüüp"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Võrgu töörežiimi muutmine"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Eelistatud võrgutüüp"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Hinnakirja küsige oma võrguteenuse pakkujalt."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Rakenduste andmekasutus"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Võrgu režiim <xliff:g id="NETWORKMODEID">%1$d</xliff:g> on sobimatu. Eirake seda."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Pääsupunktide nimed"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Pole saadaval, kui on ühendus on loodud operaatoriga <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Kas soovite aktiveerida operaatori <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Kas aktiveerida SIM-kaardi kasutamine?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Kas kasutada operaatorit <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Korraga saab aktiivne olla vaid üks SIM.\n\nOperaatori <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> aktiveerimisel ei tühistata operaatori <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> teenust."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Korraga saab aktiivne olla vaid üks eSIM.\n\nOperaatori <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> aktiveerimisel ei tühistata operaatori <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> teenust."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Korraga saab aktiivne olla vaid üks SIM.\n\nAktiveerimine ei tühista operaatori <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> teenust."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Saate korraga kasutada kahte SIM-i. Operaatori <xliff:g id="CARRIER_NAME">%1$s</xliff:g> kasutamiseks lülitage teine SIM välja."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Aktiveeri operaator <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Lülita <xliff:g id="CARRIER_NAME">%1$s</xliff:g> välja"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Tänan, ei"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Loobu"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Vaheta"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Lülita välja"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-kaarti ei saa aktiveerida"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Lülitage SIM-kaart uuesti sisse. Kui probleem jätkub, taaskäivitage seade."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM-i seadistamine"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Seadistage oma mobiilsidevõrgu eelistused, et selles seadmes mitut SIM-i kasutada"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM-idele sildi lisamine"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Näete neid silte helistamisel, tekstsõnumite saatmisel ja andmeside kasutamisel ning seadetes"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-i silt"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Silt"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Kasutamiseks SIM-ide valimine"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Saate korraga kasutada kahte SIM-i"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Peamiste SIM-ide määramine"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Valige, milliseid SIM-e kõnede, tekstisõnumite ja andmeside jaoks vaikimisi kasutada"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Teie peamised SIM-id"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Kõned"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Tekstsõnumid"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automaatne andmeside vahetamine"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Levialast ja saadavusest olenevalt kasutage mõlema SIM-i andmesidet"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Ainult andmeside"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Seadistamine"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Järgmine"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobiilsidevõrk"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefoninumber"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-i silt ja värv"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Võrgu aktiveerimine"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operaatori vahetamine"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> on aktiivne"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Avage oma võrguseaded, et hiljem mobiilset andmesidet, kõnefunktsioone ja SMS-e kasutada."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Kas soovite selle eSIM-i kustutada?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"SIMi kustutamisel eemaldatakse seadmest operaatori <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> teenus.\n\nOperaatori <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> teenust ei tühistata."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Kustuta"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM-kaardi kustutamine …"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM-kaarti ei saa kustutada"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Seda SIM-kaarti ei saa vea tõttu kustutada.\n\nTaaskäivitage seade ja proovige uuesti."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Seadmega ühendamine"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Rakendus <xliff:g id="APPNAME">%1$s</xliff:g> soovib kasutada ajutist WiFi-võrku, et teie seadmega ühendus luua"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Seadmeid ei leitud. Veenduge, et seadmed oleksid sisse lülitatud ja ühendamiseks saadaval."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Hädaabikõned"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Teie operaator ei toeta hädaabikõnesid WiFi-kõnede kaudu.\nSeade lülitub hädaabikõne tegemiseks automaatselt mobiilsidevõrgule.\nHädaabikõned on võimalikud ainult mobiilsidevõrgu levialas."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Kvaliteedi parandamiseks kasutage kõnede puhul WiFi-t"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Helistamise varuviis"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Kui <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> pole rändluseks saadaval, kasutage operaatori <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> kõnede puhul mobiilse andmeside SIM-kaarti."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"helistamise varuviis"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Sissetulev MMS-sõnum"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS-i ei saa saata"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Puudutage, et lubada MMS-sõnumside operaatori <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> võrgus, kui mobiilne andmeside on välja lülitatud"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Teie tööeeskirjade teave"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Seadeid haldab teie IT-administraator"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Käivita 16 kB lehesuurusega"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Seadme käivitamine 16 kB lehesuuruse toega tuumaga"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Kas taaskäivitada 16 kB lehtedega ühilduva tuumaga?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"HOIATUS! Mõni rakendus ei pruugi selle režiimiga ühilduda. Seade taaskäivitatakse pärast kinnitamist."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Kas taaskäivitada 4 kB lehtedega ühilduva tuumaga?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Seade taaskäivitatakse pärast kinnitamist."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ei õnnestunud tuuma 16 kB lehtedega ühilduvale tuumale värskendada."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Muudatuse rakendamine"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Veaaruannete töötleja"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Määrab, milline rakendus kasutab teie seadmes veaaruannete otseteed."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Isiklik"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Kiirelt taasesituse jätkamiseks jääb meediapleier kiirseadetes avatuks"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Kuva meedia lukustuskuval"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Kiirelt taasesituse jätkamiseks jääb meediapleier lukustuskuval avatuks"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Kuva meediasoovitusi"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Kuva assistendi meediasoovitused"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Teie tegevuse põhjal"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Peida pleier"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Kuva pleier"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM-kaart"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-id"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiivne"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Mitteaktiivne"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / vaikevalik üksus(t)e <xliff:g id="ID_1">%1$s</xliff:g> puhul"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"kõned"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ühilduva meedia heli muutub ruumilisemaks"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pea jälgimine"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Heli muutub pead liigutades, et kõla oleks loomulikum"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Lubade sünkroonimine"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Andke seadmele <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> samad rakenduse load, mille olete lubanud seadmes <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Lubade sünkroonimine telefonist"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Andke oma kellale samad rakenduse load, mille olete andnud selles telefonis"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Heliseadme tüüp"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Teadmata"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Kõlar"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Keskmine"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Kõrge"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Selle rakenduse saab avada ainult ühes aknas"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Sees"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Väljas"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Väljas"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Väljas"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Sees"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Väljas"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Sees"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Väljas"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Muudab heledad ekraanid tumedaks ja tumedad heledaks"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Suumige ekraanil sisse"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Väljas"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Väljas"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Sees"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Väljas"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Sees"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Parool on seadistatud"</string>
 </resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 7b9a208..3a4f2ef 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -221,7 +221,7 @@
     <item msgid="7621394050624063528">"imitate kokapena"</item>
     <item msgid="37519917674959757">"irakurri memoria"</item>
     <item msgid="3868809525697401379">"idatzi memorian"</item>
-    <item msgid="2504191192460059817">"piztu pantaila"</item>
+    <item msgid="2504191192460059817">"aktibatu pantaila"</item>
     <item msgid="7905819538788103556">"lortu kontuak"</item>
     <item msgid="1675025662248079254">"exekutatu atzeko planoan"</item>
     <item msgid="2553974920157061225">"erabilerraztasun-eginbideen bolumena"</item>
@@ -288,7 +288,7 @@
     <item msgid="2363460595607829243">"Imitatu kokapena"</item>
     <item msgid="3778165903878569143">"Irakurri memoria"</item>
     <item msgid="555939881912035315">"Idatzi memorian"</item>
-    <item msgid="4281352581602735717">"Piztu pantaila"</item>
+    <item msgid="4281352581602735717">"Aktibatu pantaila"</item>
     <item msgid="346122795998225472">"Lortu kontuak"</item>
     <item msgid="3756073389408535680">"Abiarazi atzeko planoan"</item>
     <item msgid="2114661179947426734">"Erabilerraztasun-eginbideen bolumena"</item>
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index e09c097..2d0dbe8 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Garatzailea zara!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Ez dago zertan, dagoeneko garatzailea zara."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Lehendabizi, gaitu garatzaileen aukerak."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Administratzaileak diren erabiltzaileek soilik atzi ditzakete garatzaileen ezarpenak."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Erabilgarri"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ez erabilgarri"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Gailua tolestean, aurreko pantaila pizten da"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Jokoak, bideoak eta abar soilik"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Pantaila inaktibo ezartzea galarazten duten aplikazioekin, aurreko pantaila pizten da"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Aurrera egiteko, pasatu hatza gora"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Aplikazioa erabiltzen jarraitzeko, tolestu telefonoa eta pasatu hatza gora aurreko pantailan; bestela, itxaron segundo batzuk pantaila blokeatu arte"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Inoiz ez"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Gailua tolestean, aurreko pantaila blokeatzen da"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Erabili automatikoki biratzeko aukera"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Antzekoak"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Tonua eta alarmak"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Deietako audioa"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimedia-edukia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Jakinarazpenak eta bestelako sistema-soinuak"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Multimedia-eduki eta sistemaren soinuak"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Jakinarazpenak"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Modu lehenetsian, audio-irteera aplikazioaren araberakoa da"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Izenik gabeko Bluetooth bidezko gailua"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Bilatzen"</string>
@@ -113,23 +116,34 @@
     <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 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_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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Aktibatu da Bluetootha"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ikusi guztiak"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Ikusi guztiak"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Arkatza"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Muturreko botoia sakatzean"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (laneko profila)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Konektatu kontsumo txikiko zuzeneko audio-igorpen batera"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Inguruko zuzeneko audio-igorpenak"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Zuzeneko audio-igorpenak"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Konektatu zuzeneko audio-igorpen batera QR kodea erabilita"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Ez da aurkitu zuzeneko audio-igorpenik."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Aplikazio bakoitzerako hizkuntza bat hautatzeko, joan aplikazioaren hizkuntza-ezarpenetara."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Lortu aplikazioen hizkuntzei buruzko informazio gehiago"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sistemaren hizkuntza aldatu nahi duzu, eta %s ezarri?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s hizkuntza hobetsien zerrendan gehitu nahi duzu?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Zuk ere hizkuntza hori hobesten duzula jakinaraziko zaie aplikazio eta webguneei."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Gailuaren ezarpenak eta lurraldeko hobespenak aldatuko dira."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Aldatu"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ez dago erabilgarri"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Larunbata"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Aplikazio batek lurraldeko hobespenak onartzen ez baditu, lurraldeko ezarpen lehenetsiak erabiliko ditu."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Lortu hizkuntza-hobespenei buruzko informazio gehiago."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Hobespen gehigarriak"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Zuri zuzentzeko modua"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Ezarri jaso nahi duzun trataera"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Erabiltzen dituzun aplikazioek zuri zuzentzeko ezarri duzun modua erabil dezakete zurekiko komunikazioa pertsonalizatzeko."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Zehaztugabea"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Emakumezkoa"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Gizonezkoa"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutrala"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Hautatutako hizkuntza kendu nahi duzu?}other{Hautatutako hizkuntzak kendu nahi dituzu?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Testua beste hizkuntza batean bistaratuko da."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ezin dira kendu hizkuntza guztiak"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Kokapena"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Erabili kokapena"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desaktibatuta"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Aktibatuta: # aplikaziok kokapena atzi dezake}other{Aktibatuta: # aplikaziok kokapena atzi dezakete}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktibatuta / # aplikaziok kokapena atzi dezake}other{Aktibatuta / # aplikaziok kokapena atzi dezakete}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Kargatzen…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikazioek inguruko gailuak erabiltzeko baimena badute, konektatutako gailuen posizio erlatiboa zehatz dezakete."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Aplikazioek eta zerbitzuek ez dute kokapena atzitzeko baimenik. Hala ere, larrialdietarako zenbaki batera deitzen edo mezu bat bidaltzen baduzu, baliteke larrialdi-zerbitzuei gailuaren kokapena bidaltzea."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Lortu kokapen-ezarpenei buruzko informazio gehiago."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lortu kokapen-ezarpenei buruzko informazio gehiago"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Kokapen-baimenak aldatzeko, joan &gt; Segurtasuna eta pribatutasuna &gt; Pribatutasun-ezarpenak atalera"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Emaitza onenak lortzeko, erabili Made for Google ziurtagiria duen pantaila babesteko osagarri bat. Besterik erabiliz gero, baliteke haurraren hatz-markak ez funtzionatzea."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Erloju bidez desblokeatzea"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Aurpegi eta hatz-marka bidez desblokeatzeko eginbideak konfiguratzen badituzu, telefonoak hatz-marka eskatuko dizu inoiz maskara bat jantzita edo argi gutxirekin telefonoa aurpegiaren bidez desblokeatzen saiatuz gero.\n\nAurpegia edo hatz-marka ezagutzen ez bada, erlojuaren bidez desblokea dezakezu telefonoa."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Hatz-marka ezagutzen ez bada, erlojuaren bidez desblokea dezakezu telefonoa."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Aurpegia ezagutzen ez bada, erlojuaren bidez desblokea dezakezu telefonoa."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Aurpegi eta hatz-marka bidez desblokeatzeko eginbideak konfiguratzen badituzu, telefonoak hatz-marka eskatuko dizu inoiz maskara bat jantzita edo argi gutxirekin telefonoa aurpegiaren bidez desblokeatzen saiatuz gero.\n\nTelefonoa desblokeatzeko beste modu eroso bat da Erloju bidez desblokeatzea; adibidez, hatzak bustita dauzkazunean edo aurpegia ezagutzen ez denean."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Telefonoa desblokeatzeko beste modu eroso bat da Erloju bidez desblokeatzea; adibidez, hatz-marka ezagutzen ez denean."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Telefonoa desblokeatzeko beste modu eroso bat da Erloju bidez desblokeatzea; adibidez, aurpegia ezagutzen ez denean."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Erabili hatz-marka edo erlojua"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Erabili aurpegia edo erlojua"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Erabili aurpegia, hatz-marka edo erlojua"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gehitu dira aurpegia eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gehitu dira aurpegia, hatz-marka eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gehitu dira aurpegia, hatz-markak eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator-en desblokeoa"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Gehitu da erlojua"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguratu erlojua"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Telefonoa desblokeatzeko beste modu eroso bat da Erloju bidez desblokeatzea; adibidez, hatzak bustita dauzkazunean edo aurpegia ezagutzen ez denean.\n\nEkintza hauek eginda erabil dezakezu erlojua telefonoa desblokeatzeko:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Orain ez"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Egin aurrera"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Gehiago"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Nola funtzionatzen du?"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Desblokeatuta, eskumuturrean eta telefonotik gertu egon behar du erlojuak. Eskumuturrean daramazun bitartean, ez duzu berriro desblokeatu beharko."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Telefonoa desblokeatzen denean, jakinarazpen bat jasoko duzu erlojuan. Telefonoa nahi gabe desblokeatu bada, sakatu jakinarazpena telefonoa berriro blokeatzeko."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Zeuk duzu kontrola"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Erloju bidez desblokeatzeko eginbideak darabiltzan gailuen zerrendatik kentzeko erlojua, joan ezarpenetara"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Sakatu jakinarazpen bat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pantaila blokeatuan, pasatu hatza gora"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Aukeratu erlojua"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Erabilgarri dauden erlojuak"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Utzi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Berretsi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Prest zaude!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Orain, telefonoa desblokeatzeko erabil dezakezu erlojua, pantaila blokeatuan hatza gora pasatuta edo jakinarazpen bat sakatuta"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Eginda"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Erloju bidez desblokeatzea"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Telefonoa desblokeatzeko erabil dezakezu erlojua, pantaila blokeatuan hatza gora pasatuta edo jakinarazpen bat sakatuta"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Erloju bidez desblokeatzea erabiltzeko, desblokeatuta, eskumuturrean, zugandik gertu eta telefonora konektatuta egon behar du erlojuak. Konexioa eteten bada, telefonoa desblokeatu beharko duzu Erloju bidez desblokeatzea erabili ahal izan aurretik.¡.\n\nGogoan izan:\nErloju bakarra eduki dezakezu konfiguratuta aldiko. Beste bat gehitzeko, kendu une honetan konfiguratuta daukazuna."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lortu Erloju bidez desblokeatzea eginbideari buruzko informazio gehiago"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Gehitu erloju bat"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kendu erlojua"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Hatz-markaren eta aurpegiaren bidez desblokeatzea"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Laneko profila aurpegi eta hatz-marka bidez desblokeatzea"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfiguratu gabe"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Segurtasuna"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Pribatutasuna"</string>
     <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="2274405892301976238">"Mantendu aplikazio pribatuak blokeatuta eta ezkutatuta"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantendu aplikazio pribatuak ezkutatu edo blokea dezakezun eremu bereiz batean"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Eremu pribatuaren blokeoa"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Gailua desblokeatzeko darabilzun modu berarekin desblokea dezakezu eremu pribatua. Bestela, aukeratu beste blokeo bat."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Erabili gailuaren pantailaren blokeoa"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Aurpegiaren eta hatz-markaren bidez desblokeatzeko eginbidea"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Hatz-marka bidez desblokeatzea"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Aurpegi bidez desblokeatzea"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Konfiguratzeko, sakatu hau"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desblokeatu eremu pribatua hatz-marka bidez"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desblokeatu eremu pribatua aurpegi bidez"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Desblokeatzeko moduak"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Gailuaren pantailaren blokeo bera"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Eremu pribatua blokeatzeko modua aldatu nahi duzu?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Blokeatu automatikoki"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Blokeatu eremu pribatua automatikoki"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Gailua epe jakin batean erabili ez baduzu, eremu pribatua automatikoki blokeatzea aukera dezakezu"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Gailua blokeatzen den aldiro"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 minutuz inaktibo egon ondoren"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Inoiz ez"</string>
+    <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_delete_title" msgid="3075645119800272800">"Ezabatu 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="private_space_unlocked" msgid="9091600948712932046">"Desblokeatu da eremu pribatua"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ezarri pantailaren blokeoa"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Utzi"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Konfiguratu"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Konfiguratu eremu pribatu bat"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantendu aplikazio pribatuak ezkutatu edo blokea dezakezun eremu bereiz batean"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Nola funtzionatzen du?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Eremu pribatua aplikazio-zerrendaren behealdetik atzi dezakezu"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Eremu pribatuko aplikazioak blokeo bidez babesten dira"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Eremu pribatua blokeatuta badago, hango aplikazioen jakinarazpenak ezkutatzen dira"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Eremu pribatua blokeatuta badago, hango aplikazioak ez dira agertuko baimenen kudeatzailean, pribatutasun-panelean eta beste ezarpenetan.\n\nEremu pribatua ezin da eraman beste gailu batera. Eremu pribatua beste gailu batean erabili nahi baduzu, beste bat konfiguratu beharko duzu.\n\nBaliteke zure gailua ordenagailu batekin konektatzen duten edo gailuan aplikazio kaltegarriak instalatzen dituzten guztiek zure eremu pribatua atzitu ahal izatea."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Eremu pribatua konfiguratzen…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Eremu pribatua blokeatuta badago, hango aplikazioen jakinarazpenak ezkutatzen dira"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Eremu pribatuko aplikazioetako argazki edo fitxategiak partekatzeko, desblokeatu eremu pribatua"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Aplikazio batzuk jada instalatuta daude eremu pribatuan"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Ezin izan da konfiguratu eremu pribatua"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Saiatu berriro"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Pantailaren blokeoa erabili nahi duzu eremu pribatua desblokeatzeko?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Gailua desblokeatzeko darabilzun modu berarekin desblokea dezakezu eremu pribatua. Bestela, aukeratu beste blokeo bat."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Erabili pantailaren blokeoa"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Aukeratu beste blokeo bat"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Dena prest!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Eremu pribatua atzitzeko, joan aplikazio-zerrendara eta egin behera"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Eginda"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Eremu pribatua ikusteko, egin behera"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Aukeratu eremu pribatua blokeatzeko modu bat"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Hatz-marka erabil dezakezu eremu pribatua desblokeatzeko. Segurtasuna bermatzeko, blokeatzeko ordezko modu bat konfiguratu behar da."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Ezarri PIN bat eremu pribaturako"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Ezarri pasahitz bat eremu pribaturako"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Ezarri eredu bat eremu pribaturako"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Eremu pribatua erakusteko (ez da azken bertsioa)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Ireki Ezarpenak aplikazioa"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Sakatu Segurtasuna eta pribatutasuna &gt; Eremu pribatua &gt; Ezkutatu Eremu pribatua blokeatuta dagoenean"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Eremu pribatua blokeatuta dagoenean desaktibatzeko aukera"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google-ko langileentzako oharra: eginbide hau garatzen ari da oraindik"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Baliteke pasahitz hau beste gailuan ere idatzi behar izatea."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Berretsi multzo koordinatuarekin parekatzeko"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Eman kontaktuak eta deien historia erabiltzeko baimena"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Eman kontaktuak eta deien historia erabiltzeko baimena ere"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Deiak iragartzeko eta beste gauza batzuetarako erabiliko da informazioa"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Ezin izan da <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura konektatu."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Gailu erabilgarriak"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bluetootha aktibatuta badago, inguruko Bluetooth bidezko gailuekin komunika daiteke gailua"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Hegaldi moduan"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Jakinarazi sare publikoak daudela"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Jakinarazi kalitate handiko sare publikoak erabilgarri daudenean"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Eman WEP sareak erabiltzeko baimena"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP hain segurua ez den segurtasun-protokolo zaharrago bat da"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Zure operadoreak ez ditu onartzen WEP sareak, ez direlako hain seguruak"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Aktibatu wifi-konexioa automatikoki"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Gordetako kalitate handiko sare batetik (adibidez, etxeko saretik) gertu zaudenean aktibatuko da berriro wifi-konexioa"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Ez dago erabilgarri kokapena desaktibatuta dagoelako. Aktibatu "<annotation id="link">"kokapena"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wifi-sareen bilaketari esker, aplikazioek eta zerbitzuek edonoiz bila ditzakete wifi-sareak, baita wifi-konexioa desaktibatuta dagoenean ere. Kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke, besteak beste."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktibatu"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Aktibatu da Wifi-sareen bilaketa"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Sare honek hain segurua ez den segurtasun-protokolo zaharrago bat erabiltzen du"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Blokeatu da <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Sareak hain segurua ez den segurtasun-protokolo zaharrago bat erabiltzen du: WEP. Hala eta guztiz ere konektatu nahi baduzu, eman WEP sareak erabiltzeko baimena."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Zure operadoreak ez dizu uzten sare honetara konektatzen, hain segurua ez den segurtasun-protokolo zaharrago bat erabiltzen duelako"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Eman WEP sareak erabiltzeko baimena"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Itxi"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Aukera aurreratuak"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Aukera aurreratuak dago hautatuta goitibeherako zerrendan"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"zabaldu"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Jarraitu wifi-konexioa erabiltzen"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ez erakutsi berriro"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Konektatu"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi konexioa aktibatu da"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarera konektatuta"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarera konektatzen"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Konektatzen…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ezin izan da sarera konektatu"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Sarea ez dago barrutian"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Ahaztu"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Aldatu"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ezin izan da sarea ahaztu"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Gorde"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Ezin izan da sarea gorde"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Utzi"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wifia"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Datu-konexioa"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Etherneta"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Kargatzen"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Kargatzen"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Wifi-gunerako konexioa"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Konexioaren indarra"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gordetako sareak"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Ez da ezarri pasahitzik"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Wifi-gunearen izena"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Wifi-guneko pasahitza"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Sarbide-puntuaren banda"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desaktibatu automatikoki wifi-gunea"</string>
     <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>
@@ -1008,8 +1149,10 @@
     <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 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 gehiago erabiltzen du."</string>
+    <string name="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Desgaitu jokoen irudi-abiadura lehenetsia"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Desgaitu <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz dituzten jokoen gehieneko irudi-abiadura mugatzeko aukera."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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 gehiago erabiltzen du."</string>
     <string name="adaptive_sleep_title" msgid="2987961991423539233">"Pantaila kontzientea"</string>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Pantaila kontzientea eginbideak aurreko kamera erabiltzen du inor pantailari begira dagoen jakiteko. Gailuan funtzionatzen du, eta irudiak ez dira inoiz gordetzen, ez eta Google-ra bidaltzen ere."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktibatu pantaila kontzientea"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantendu pantaila piztuta hari begira zaudenean"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Pantailaren denbora-muga luzatzen baduzu, bateria gehiago erabiliko du."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera blokeatuta dago"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Aurpegi-hautematea eginbidea erabiltzeko, kamerak desblokeatuta egon behar du"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Pantaila kontzientea erabiltzeko, kamerak desblokeatuta egon behar du"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEIa (SIMaren <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>. ataka)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEIa (SIMaren <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>. ataka) (nagusia)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Hura ikusteko, aukeratu gordetako sarea"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEIa"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEISVa"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL bertsioa"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Bateria-maila"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Komunak"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ezarpen komunak"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Gorde"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Utzi"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Izena eremuak ezin du hutsik egon."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APNak ezin du hutsik egon."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC eremuak 3 digitu izan behar ditu."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC eremuak 2 edo 3 digitu izan behar ditu."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operadoreak ez du onartzen %s motako APN identifikatzailerik."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC eremuak balioduna izan behar du."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"APNaren ezarpen lehenetsiak leheneratzen."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Berrezarri balio lehenetsiak"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"APNaren ezarpen lehenetsiak berrezarri dira."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Berrezarri"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Berrezarri dira Bluetootha eta wifia"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Ezabatu eSIMetako eduki guztia"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Ez da utziko bertan behera mugikorretarako zerbitzu-planik. Ordezko SIMak deskargatzeko, jarri operadorearekin harremanetan."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Berrezarri ezarpenak"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Sareko ezarpen guztiak berrezarri nahi dituzu? Ezin da desegin ekintza hori."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Sarearen ezarpen guztiak berrezarri nahi dituzu, eta eSIMetako eduki guztia ezabatu? Ezin da desegin ekintza."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Berrezarri?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Erabiltzaileak ez du sarea berrezartzeko baimenik"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Berrezarri dira sareko ezarpenak"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Ezin da ezabatu SIM txarteletako eduki guztia"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Ezin da ezabatu eSIMetako eduki guztia errore bat gertatu delako.\n\nBerrabiarazi gailua eta saiatu berriro."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Ezabatu datu guztiak (berrezarri jatorrizkoak)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Ezabatu datu guztiak (berrezarri jatorrizkoak)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"musika"</li>\n<li>"argazkiak"</li>\n<li>"bestelako erabiltzaile-datuak"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM txartelak"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Ez da utziko bertan behera mugikorretarako zerbitzu-plana."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Informazio pertsonal guztia eta deskargatutako aplikazioak ezabatuko dira. Ezin da desegin ekintza."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Informazio pertsonal guztia ezabatuko da, deskargatutako aplikazioak eta SIM txartelak barne. Ezin da desegin ekintza."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Datu guztiak ezabatu nahi dituzu?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Erabiltzaileak ez du jatorrizko datuak berrezartzeko baimenik"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Eduki guztia ezabatzen"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Wifi-gunea, USB, Bluetooth eta Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Ez zara partekatzen ari Interneteko konexiorik beste gailuekin"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desaktibatuta"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Konexioa partekatzea"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ez erabili wifi-gunerik"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Partekatu Interneteko konexioa USB bidez"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Partekatu Interneteko konexioa Bluetooth bidez"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Partekatu Interneteko konexioa Ethernet bidez soilik"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Partekatu Interneteko konexioa USB eta Bluetooth bidez"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Partekatu Interneteko konexioa USB eta Ethernet bidez soilik"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Partekatu Interneteko konexioa Bluetooth eta Ethernet bidez soilik"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Partekatu Interneteko konexioa USB, Bluetooth eta Ethernet bidez soilik"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Konexioa partekatzea (USB)"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Konexioa partekatzea (Bluetooth)"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Konexioa partekatzea (Ethernet)"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Erabili wifi-guneak eta konexioa partekatzeko aukera beste gailu batzuei Interneteko konexioa emateko wifi- edo datu-konexioaren bidez. Aplikazioek ere wifi-guneak sor ditzakete edukia inguruko gailuekin partekatzeko."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Laguntza"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Sare mugikorra"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mugikorretarako plana"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMSetarako aplikazioa"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMSetarako aplikazioa aldatu nahi duzu?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> aplikazioaren ordez, <xliff:g id="CURRENT_APP">%2$s</xliff:g> erabili nahi duzu SMSetarako aplikazio gisa?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wifi-laguntzailea aldatu nahi duzu?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Sareko konexioak kudeatzeko <xliff:g id="NEW_APP">%1$s</xliff:g> erabili nahi duzu, <xliff:g id="CURRENT_APP">%2$s</xliff:g> erabili beharrean?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g> erabili nahi duzu sareko konexioak kudeatzeko?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"SIM operadore ezezaguna"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> operadoreak ez du hornikuntza-webgune ezagunik"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sartu SIM txartela eta berrabiarazi"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Konektatu Internetera"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Azken kokapen-eskaerak"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Laneko profilaren kokapena"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Aplikazioen kokapen-baimenak"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Garbitu sarbidea"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrolatzeko aukerak"</string>
     <string name="force_stop" msgid="2681771622136916280">"Behartu gelditzera"</string>
+    <string name="archive" msgid="9074663845068632127">"Artxibatu"</string>
+    <string name="restore" msgid="7622486640713967157">"Leheneratu"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Guztira"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Aplikazioaren tamaina"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB bidezko memoriaren aplikazioa"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Ezin izan da paketearen tamaina kalkulatu."</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> bertsioa"</string>
     <string name="move_app" msgid="5421158479447276791">"Eraman"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Ezin izan da artxibatu"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Artxibatu da <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Ezin izan da leheneratu"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> leheneratzen"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Beste migrazio bat abian da dagoeneko."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ez dago behar adina memoria."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikazioa ez dago."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Pantailako teklatu erabilgarria"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Kudeatu pantailako teklatuak"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Aukerak"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Erabilerraztasuna"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teklatu fisikoa"</string>
     <string name="show_ime" msgid="4334255501724746849">"Erabili pantailako teklatua"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Erakutsi pantailan teklatu fisikoa aktibo dagoen bitartean"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Errebote-teklak"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Teklatu fisikoaren erabilerraztasuna areagotzeko, gaitu errebote-teklak"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Tekla itsaskorrak"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Teklatu fisikoaren erabilerraztasuna areagotzeko, gaitu Tekla itsaskorrak"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Lasterbideak"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Erakutsi lasterbideen zerrenda"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Laneko profilaren teklatuak eta tresnak"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenatu erabilera-dataren arabera"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenatu azken erabilera-dataren arabera"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenatu aplikazio-izenaren arabera"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Erabilitako azken aldia"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Azken erabiltze-data"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"inoiz ez"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Erabilera-denbora"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Erabilerraztasuna"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Erabilerraztasun-ezarpenak"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Egin aurrera, halere"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Utzi"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Luparen ezarpenak"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Handitzeko, sakatu hiru aldiz"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Handitu pantaila lasterbidearekin"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Handitu pantaila lasterbide eta hiru ukitutxorekin"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> aplikazioari buruz"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Irekitzeko, sakatu pantaila birritan 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="860548190334486449">"Lupa abiarazteko eta gelditzeko, sakatu birritan pantailako edozein puntu 2 hatzekin."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Eginbide hau erabiltzeko, pasatu bi hatz pantailaren behealdetik gora.\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 gora.\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 gora.\n\nEginbide batetik bestera aldatzeko, pasatu bi hatz gorantz eta eduki pantaila sakatuta."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Erabilerraztasun-eginbide bat erabiltzeko, pasatu hiru hatz pantailaren behealdetik gora.\n\nEginbide batetik bestera aldatzeko, pasatu hiru hatz gorantz eta eduki pantaila sakatuta."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Ados"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Erabilerraztasuna botoiaren ezarpenak"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Botoiaren ezarpenak"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> eginbidearen lasterbidea"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Erabilerraztasuna botoia"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Erabilerraztasun-keinua"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Sakatu pantaila birritan 2 hatzekin"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"sakatu pantaila birritan 2 hatzekin"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Sakatu bizkor pantaila {0,number,integer} aldiz 2 hatzekin"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Sakatu pantaila hiru aldiz"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Lortu informazio gehiago Erabilerraztasuna botoiari eta keinuari buruz"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Erabili erabilerraztasun-botoia. Keinuak ez du funtzionatzen hiru botoiko nabigazioarekin."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Atzitu bizkor erabilerraztasun-eginbideak"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Erabiltzen hasteko:"</b>\n"1. Joan erabilerraztasun-ezarpenetara.\n2. Hautatu eginbide bat eta sakatu hari dagokion lasterbidea.\n3. Aukeratu eginbidea atzitzeko erabili nahi duzun keinua edo botoia."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Erabiltzen hasteko:"</b>\n"1. Joan erabilerraztasun-ezarpenetara.\n2. Hautatu eginbide bat eta sakatu hari dagokion lasterbidea.\n3. Aukeratu eginbidea atzitzeko erabili nahi duzun botoia."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Hasteko:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Joan erabilerraztasun-ezarpenetara.&lt;br/&gt; {1,number,integer}. Hautatu eginbide bat eta sakatu lasterbidea.&lt;br/&gt; {2,number,integer}. Aukeratu botoi edo keinu bat erabili nahi duzun eginbidea atzitzeko.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Hasteko:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Joan erabilerraztasun-ezarpenetara.&lt;br/&gt; {1,number,integer}. Hautatu eginbide bat eta sakatu lasterbidea.&lt;br/&gt; {2,number,integer}. Aukeratu eginbidea atzitzeko erabili nahi duzun botoia.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Erabili botoia edo keinua"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Kokapena"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamaina"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Amaitu deiak etengailuarekin"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Saguaren erakusle handia"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Nabarmendu gehiago saguaren erakuslea"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Ilundu aplikazio guztiak"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Gai ilun propiorik ez duten aplikazioei dagokie. Agian aplikazio batzuek bistaratze-arazoak dituzte, hala nola kolore alderantzikatuak."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Kendu animazioak"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Murriztu pantailako mugimendua"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio monofonikoa"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Aplikazioekin edo hardware-sentsoreekin dituzun interakzioen jarraipena egin dezake, eta zure izenean beste aplikazio batzuekin interakzioan jardun."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Baimendu"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Ukatu"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Gelditu"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Utzi"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> gelditu?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> sakatuz gero, <xliff:g id="SERVICE">%2$s</xliff:g> gelditu egingo da."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desaktibatu"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mantendu"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> desaktibatu nahi duzu?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ez dago zerbitzurik instalatuta"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ez da hautatu zerbitzurik"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Ez da azalpenik eman."</string>
     <string name="settings_button" msgid="2195468788019730377">"Ezarpenak"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"argi-sentikortasuna, fotofobia, gai iluna, migraina, buruko mina, irakurtzeko modua, gau modua, murriztu distira, puntu zuria"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"erabiltzeko erraztasuna, sartzeko erraztasuna, laguntza, erabilerraztasuna"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ikusmena, entzumena, itsua, gorra, mugimendua, trebetasuna, laguntzailea, laguntza, erabilerraztasuna, irisgarritasuna, eskua, lagundu"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"leihoetarako lupa, zooma, lupa, ikusmen txarra, handitu, handiagotu"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"azpitituluak, istanteko transkripzioa, entzumen txarra, entzumen-galera, CART, ordenagailuz lagundutako transkripzioa denbora errealean, ahotsa testu bihurtzea"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kolore-kontrastea"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorra, sagua"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"audifonoak, entzumen-urritasuna, entzumen-galera, kokleako inplanteak, anplifikazio-gailuak, soinu-prozesadoreak"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"mugimendua, sagua, kanpoko sagua, buruaz gidatutako sagua, sagu moldagarria, gurpil-aulkia, joko-palanka"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"audifonoak, entzumen-urritasuna, entzumen-galera, kokleako inplanteak, anplifikazio-gailuak, soinu-prozesadoreak, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"entzumen txarra, entzumen-galera, azpitituluak, teletipoa, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"hiru botoi"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"trebetasuna, mugimendua, hirugarren adina, artritisa, tendinitisa, buruko isuria, dardara, esklerosi anizkoitza, garun-paralisia, eskua"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atzerapena, trebetasuna, hirugarren adina"</string>
     <string name="print_settings" msgid="8519810615863882491">"Inprimatzea"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desaktibatuta"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 inprimatze-zerbitzu aktibatuta dago}other{# inprimatze-zerbitzu aktibatuta daude}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ikusi bateria gehien erabiltzen duten aplikazioak"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Kargatzeko modua optimizatu egiten da bateria ez kaltetzeko"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Kargatzeko modua optimizatu egiten da bateriaren balio-bizitza luzatzeko"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Kargatzeko modua optimizatu egiten da bateria ez kaltetzeko"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Oinarrian dagoenean, kargatzeko modua optimizatu egiten da bateriaren balio-bizitza luzatzeko"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Kargatzeko modua optimizatu egiten da bateria ez kaltetzeko"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Oinarrian dagoenean, kargatzeko modua optimizatu egiten da bateriaren balio-bizitza luzatzeko"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Guztiz kargatzen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Tableta oinarrian jartzen duzun hurrengoan, kargatzeko modua optimizatu egingo da bateria ez kaltetzeko"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Lortu kargatzea pausatzeari buruzko informazio gehiago"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Berrekin kargatzeari"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Energia asko erabiltzen duten atzeko planoko jarduerak barne"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Kendu"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Utzi"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Kargatu guztiz"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Arazo bat dago kargatzeko osagarriarekin"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Lortu kargatze bateraezinei buruzko informazio gehiago"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Bateria-kudeatzailea"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Kudeatu aplikazioak automatikoki"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"orain"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Bateria-erabileraren diagrama"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Eguneroko bateria-erabileraren diagrama"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Ordueroko bateria-erabileraren diagrama"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Bateria-maila ehuneko <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> eta <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> artekoa da"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Bateria-erabilera gailua guztiz kargatu zenetik"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Bateria-erabilera (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Erabilera-denbora gailua guztiz kargatu zenetik"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Larrialdi-deien seinalea"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Ezarri larrialdi-deiak egitean izan beharreko portaera."</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Babeskopiak"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Aktibatuta"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desaktibatuta"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Babeskopiak eta leheneratzea"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Datu pertsonalak"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Egin nire datuen babeskopia"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Izena"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Mota"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Zerbitzariaren helbidea"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP enkriptatzea (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP sekretua"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikatzailea"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec aurrez partekatutako gakoa"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec erabiltzaile-ziurtagiria"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Autoritate ziurtagiri-emaile batek jaulkitako IPSec ziurtagiria"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec zerbitzari-ziurtagiria"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Erakutsi aukera aurreratuak"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS bilaketa-domeinuak"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS zerbitzariak (adibidez, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Desbideratze-ibilbideak (adibidez, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Erabiltzaile-izena"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Pasahitza"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Gorde kontuari buruzko informazioa"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ez da erabiltzen)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ez egiaztatu zerbitzaria)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(zerbitzaritik jasoa)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Mota honetako VPN sareek ezin dute egon konektatuta beti"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Beti aktibatuta dagoen VPN sareak zenbakizko zerbitzari-helbideak soilik onartzen ditu"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Beti aktibatuta dagoen VPN sarearen DNS zerbitzaria zehaztu egin behar da"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS zerbitzariaren helbideak zenbakizkoa izan behar du beti aktibatuta dagoen VPN sarerako"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Egindako aukerarekin ezin da erabili beti aktibatuta dagoen VPNa"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Utzi"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Baztertu"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokeatu VPNrik gabeko konexioak"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN konexioak erabiltzera derrigortu?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ez da segurua. Eguneratu IKEv2 motako VPN batera."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Ezin izan da abiarazi VPN bateraezina."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Hautatu beti konektatuta egoteko VPN profila. VPN horrekin konektatuta zaudenean soilik onartuko da sare-trafikoa."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Bat ere ez"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Beti aktibatutako VPNa izateko, IP helbidea izan behar dute zerbitzariak nahiz DNSak."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER alertak"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Jaso umeen bahiketei buruzko mezuak"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Errepikapena"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Gaitu dei-kudeatzailea"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Baimendu zerbitzu honi deiak egiteko modua kudeatzea."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Dei-kudeatzailea"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Hari gabeko larrialdi-alertak"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Sare-operadoreak"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Sarbide-puntuen izenak"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"diru-zorroa"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ordaindu, ukitu, ordainketak"</string>
     <string name="keywords_backup" msgid="707735920706667685">"babeskopia, segurtasun kopia"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"keinua"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"aurpegia, desblokeatzea, autentifikazioa, hasi saioa"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"aurpegia, desblokeatu, autentifikatu, hasi saioa, hatz-marka, biometrikoa"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl bertsioa, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Pizteko soinuak"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Istanteko azpitituluak"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Ezarri azpitituluak automatikoki"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefonoaren bozgorailuak"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tabletaren bozgorailuak"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Gailuaren bozgorailuak"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Entzungailu kabledunak"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Euskarri bateragarrietako audioa murgiltzaileagoa da"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Desaktibatuta"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Zer nahi duzu agertzea pantaila blokeatuan?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Kendu dira azken elkarrizketak"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Kendu da elkarrizketa"</string>
     <string name="clear" msgid="5092178335409471100">"Garbitu"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Garbitu <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Lehentasunezko edo aldatutako elkarrizketak agertuko dira hemen"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Elkarrizketak lehentasunezko gisa markatzen badituzu edo elkarrizketetan bestelako aldaketarik egiten baduzu, hemen agertuko dira. \n\nElkarrizketen ezarpenak aldatzeko: \npasatu hatza pantailaren goialdetik behera goitibeherako barra irekitzeko; ondoren, eduki sakatuta elkarrizketa."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizatu"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desaktibatuta"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Aplikazioak ainguratzea"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Ainguratuz gero, aplikazio hau begien bistan izango duzu beti, harik eta aingura kentzen diozun arte. Lagun fidagarri bati joko zehatz batean aritzea ahalbidetzeko erabil dezakezu, adibidez."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Aplikazio bat ainguratuta dagoenean, baliteke beste aplikazio batzuk irekitzeko gai izatea, eta haiek zure datu pertsonalak atzitu ahal izango dituzte agian. \n\nAplikazioak ainguratzeko aukera erabiltzeko: 	\n1. Aktibatu aplikazioak ainguratzeko aukera. 	\n2. Ireki Ikuspegi orokorra. 	\n3. Sakatu pantailaren goialdean dagoen aplikazioaren ikonoa eta, ondoren, sakatu Ainguratu."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Aplikazio bat ainguratuta dagoenean, baliteke beste aplikazio batzuk irekitzeko gai izatea, eta haiek zure datu pertsonalak atzitu ahal izango dituzte agian. \n\nGailua segurtasunez partekatu nahi baduzu beste norbaitekin, gonbidatuentzako erabiltzaile-profil bat ere erabil dezakezu. \n\nAplikazioak ainguratzeko aukera erabiltzeko: 	\n1. Aktibatu aplikazioak ainguratzeko aukera. 	\n2. Ireki Ikuspegi orokorra. 	\n3. Sakatu pantailaren goialdean dagoen aplikazioaren ikonoa eta, ondoren, sakatu Ainguratu."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Aplikazio bat ainguratuta dagoenean, baliteke beste aplikazio batzuk hura irekitzeko gai izatea, eta zure datu pertsonalak atzitu ahal izango dituzte agian. \n\nAplikazioak ainguratzeko eginbidea erabiltzeko: 	\n{0,number,integer}. Aktibatu aplikazioak ainguratzeko eginbidea. 	\n{1,number,integer}. Ireki Ikuspegi orokorra. 	\n{2,number,integer}. Sakatu pantailaren goialdean dagoen aplikazioaren ikonoa eta, ondoren, sakatu Ainguratu."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Aplikazio bat ainguratuta dagoenean, baliteke beste aplikazio batzuk hura irekitzeko gai izatea, eta zure datu pertsonalak atzitu ahal izango dituzte agian. \n\nGailua beste norbaitekin segurtasunez partekatu nahi baduzu, gonbidatuentzako erabiltzaile-profil bat erabil dezakezu. \n\nAplikazioak ainguratzeko eginbidea erabiltzeko: 	\n{0,number,integer}. Aktibatu aplikazioak ainguratzeko eginbidea. 	\n{1,number,integer}. Ireki Ikuspegi orokorra. 	\n{2,number,integer}. Sakatu pantailaren goialdean dagoen aplikazioaren ikonoa eta, ondoren, sakatu Ainguratu."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Aplikazioa ainguratuta dagoenean: \n\n• Baliteke zure datu pertsonalak atzitzeko aukera egotea (adibidez, kontaktuak eta posta elektronikoko edukia). \n\n• Baliteke beste aplikazio batzuk irekitzeko gai izatea. \n\nPertsona fidagarriekin soilik erabili beharko zenuke aplikazioak ainguratzeko aukera."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Eskatu desblokeatzeko eredua aingura kendu aurretik"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Eskatu PINa aingura kendu aurretik"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Erabili gabeko aplikazio-ezarpenak"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausatu aplikazioko jarduerak, erabiltzen ez bada"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Kendu baimenak, ezabatu aldi baterako fitxategiak eta geldiarazi jakinarazpenak"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Kudeatu aplikazioa erabiltzen ez bada"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Kendu baimenak, ezabatu aldi baterako fitxategiak, geldiarazi jakinarazpenak eta artxibatu aplikazioa"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Aplikazio guztiak"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Instalatutako aplikazioak"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Zuzeneko aplikazioak"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Erabilgarri"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Aplikazioek erabilitako memoria"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikaziok memoria erabili du azken {time}}other{# aplikaziok memoria erabili dute azken {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Gaitu memoriaren erabileraren ebaluazioa"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Memoriaren erabilera ebaluatzeko, sistemaren baliabide gehiago behar dira."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Memoriaren erabileraren ebaluazioa desgaituta dago"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Maiztasuna"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Gehieneko erabilera"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Ez da erabili daturik"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Bistaratu beste aplikazioen gainean"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Eman beste aplik. gainean bistaratzeko baimena"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Eman erabiltzen ari zaren aplikazioen gainean agertzeko baimena aplikazioari. Zerbait sakatzen baduzu edo pantailan ikusten dena aldatzen baduzu, aplikazioa hori ikusteko gai izango da."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Aldatu multimedia-irteera"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Utzi multimedia-irteera aldatzen aplikazioari"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Eman beste aplikazioen bidez audioa edo bideoa erreproduzi dezaketen konektatutako gailuak aukeratzeko baimena aplikazioari. Baimena ematen badiozu, erabilgarri dauden gailuen (hala nola entzungailuen eta bozgorailuen) zerrenda atzitu ahal izango du aplikazioak, eta audioa edo bideoa zuzenean erreproduzitzeko edo igortzeko zein irteera-gailu erabiltzen den aukeratu."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Fitxategi guztietarako sarbidea"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Hobetu ahots bidezko aktibazioa"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Gailu honek datu pribatuak erabiltzen ditu ahots bidez aktibatzeko eredua hobetzeko. Aplikazioek laburbildutako informazio eguneratua jasoko dute, eta erabiltzaile askoren datuak bateratuko dira, pribatutasuna mantentzeko eta eredua guztientzat hobetzeko.\n\n"<a href="">"Datu pribatuei 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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Datu-erabileraren abisua: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Datuen muga: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datu-erabileraren abisua: <xliff:g id="ID_1">^1</xliff:g>. Datuen muga: <xliff:g id="ID_2">^2</xliff:g>."</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Agian ez dira bat etorriko gailuak eta operadoreak egindako datu-kontsumoen neurketak"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ez dira barne hartzen operadorearen sareek erabilitako datuak"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> erabilita"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Ezarri datu-erabileraren abisua"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Duela <xliff:g id="ID_1">^2</xliff:g> eguneratu da"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> operadoreak oraintxe eguneratu du"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Oraintxe eguneratu da"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Ikusi plana"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ikusi xehetasunak"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Datu-aurreztailea"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Datu-erabilera mugagabea"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia bat dago bateria-erabileran"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Ezarpen bizkorretako garatzaileentzako lauzak"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Desgaitu ADB baimenaren denbora-muga"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Desgaitu ADB baimenen baliogabetze automatikoa lehenetsitako epean (zazpi egun) edo erabiltzaileak konfiguratutako epean (gutxienez egun bat) berriro konektatu ez diren sistemetan"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope arrastoa"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sentsoreak desaktibatuta"</string>
     <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>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Laguntzaile digitalaren aplikazioa abiarazteko, pasatu hatza beheko ertz batetik gora"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Betetze automatikoaren zerbitzua"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Automatikoki betetzeko zerbitzu lehenetsia"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Pasahitzak"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Hornitzaile gehigarriak"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# pasahitz}other{# pasahitz}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatikoa, bete, betetze automatikoa, pasahitza"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Zerbitzu guztiak desaktibatu nahi dituzu?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Pasahitzak, sarbide-gakoak eta gordetako bestelako datuak ezingo dira automatikoki bete saioa hasten duzunean."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Zerbitzu hobetsia aldatu eta &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ezarri nahi duzu?&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_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s erabili nahi duzu?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"5 zerbitzu soilik izan ditzakezu aktibatuta"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desaktibatu gutxienez zerbitzu bat beste bat gehitzeko"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s zerbitzuak pantailan dagoena erabiltzen du, automatikoki bete daitekeena zehazteko."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Pasahitzen, sarbide-gakoen eta datu-zerbitzuen muga"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Gehienez ere bost pasahitz, sarbide-gako eta datu-zerbitzu aktibo eduki ditzakezu aktibo aldi berean. Desaktibatu zerbitzu bat beste bat gehitzeko."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Pasahitzen, sarbide-gakoen eta datu-zerbitzuen muga"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Gehienez ere 5 pasahitz, sarbide-gako eta datu-zerbitzu eduki ditzakezu aktibo aldi berean. Desaktibatu zerbitzu bat beste bat gehitzeko."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desaktibatu"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Betetze automatikoa"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Erregistratze-maila"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Aratz daitezkeen aplikazioetan soilik egin daitezke bateragarritasun-aldaketak. Instalatu araz daitekeen aplikazio bat eta saiatu berriro."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Beste ezarpen baten araberakoa da"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Kontua"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d kontu"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Gailuaren izena"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Oinarrizko informazioa"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Lege-informazioa eta arauei buruzkoa"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Eman NFC etiketak eskaneatzen direnean exekutatzeko baimena aplikazioari.\nBaimena aktibatuta badago, aplikazio hau aukeren artean agertuko da etiketak hautematen direnean."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Erreproduzitu multimedia-edukia hemen:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Erreproduzitu <xliff:g id="LABEL">%s</xliff:g> hemen:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audioa erreproduzitzen jarraituko du"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Gailu hau"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Ez dago erabilgarri deiak egin bitartean"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Erantzun deiei hemen:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Desaktibatu audioa"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Gaitzeko, aldatu lehenik \"Eduki sakatuta etengailua\" aukera itzaltzeko menuan."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Sarearen xehetasunak"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Mugikorreko aplikazioek gailuaren izena ikus dezakete. Halaber, jendeak ere ikus dezake Bluetooth bidezko gailuetara edo wifi-sare batera konektatzen zarenean, edo wifi-gune bat konfiguratzen duzunean."</string>
     <string name="devices_title" msgid="649715719278562515">"Gailuak"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Aukeratu sarea"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Deskonektatuta"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Izena"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Kolorea (aplikazio bateragarrietarako)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Gorde"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Erabili SIMa"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Erabili SIM hau"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desaktibatuta"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"SIMa desgaitu nahi baduzu, ken ezazu"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Sakatu <xliff:g id="CARRIER">%1$s</xliff:g> aktibatzeko"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ezabatu SIMeko eduki guztia"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Sare mota lehenetsia"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Aldatu sare modua"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Sare mota lehenetsia"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Eskatu prezioari buruzko informazioa sare-hornitzaileari."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Aplikazioen datu-erabilera"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> sare moduak ez du balio. Egin ez ikusi."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Sarbide-puntuen izenak"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APNa"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Ez dago erabilgarri <xliff:g id="CARRIER">%1$s</xliff:g> operadorera konektatuta egoteagatik"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> operadorera aldatu nahi duzu?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM txartela erabiltzen hasi nahi duzu?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> erabili nahi duzu?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"SIM bakarra aktiba daiteke aldiko.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operadorera aldatuta ere, ez da bertan behera utziko <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> operadorearen zerbitzua."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"eSIM bakarra egon daiteke aktibo aldi bakoitzeko.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operadorera aldatuta ere, ez da bertan behera utziko <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> zerbitzua."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"SIM bakarra aktiba daiteke aldiko.\n\nAldatuta ere, ez da bertan behera utziko <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operadorearen zerbitzua."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Bi SIM erabil ditzakezu batera. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> erabiltzeko, desaktibatu beste SIMa."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Aldatu (<xliff:g id="CARRIER_NAME">%1$s</xliff:g>)"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desaktibatu <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ez, eskerrik asko"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Utzi"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Aldatu"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desaktibatu"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Ezin da aktibatu SIMa"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Saiatu berriro SIMa aktibatzen. Arazoak badirau, berrabiarazi gailua."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Konfiguratu SIMa"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Gailu honetan SIM bat baino gehiago erabiltzeko, ezarri sare mugikorraren hobespenak"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Ezarri etiketak SIMei"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Deiak egitean, testu-mezuak bidaltzean, datuak erabiltzean eta ezarpenetan ikusiko dituzu etiketa horiek"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIMaren etiketa"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiketa"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Hautatu zein SIM erabili"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"2 SIM erabil ditzakezu aldi berean"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Ezarri zure SIM nagusiak"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Aukeratu zein SIM erabili nahi duzun modu lehenetsian deiak egiteko, testu-mezuak bidaltzeko eta datuak erabiltzeko"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Zure SIM nagusiak"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Deiak"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Testu-mezuak"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Datuak automatikoki aldatzea"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Erabili SIMetako baten datuak, estalduraren eta erabilgarritasunaren arabera"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Datuak soilik"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Konfiguratu"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Hurrengoa"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Sare mugikorra"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefono-zenbakia"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIMaren etiketa eta kolorea"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Sarearen aktibazioa"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operadore-aldaketa"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Aktibo dago <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Geroago datu-konexioa, deien eginbideak eta SMSak erabiltzeko, joan sarearen ezarpenetara"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIMa"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"eSIM honetako eduki guztia ezabatu nahi duzu?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"SIM honetako eduki guztia ezabatuz gero, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> operadorearen zerbitzua gailu honetatik kenduko da.\n\nEz da utziko bertan behera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> operadorearen zerbitzua."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ezabatu eduki guztia"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM txarteleko eduki guztia ezabatzen…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Ezin da ezabatu SIM txarteleko eduki guztia"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Ezin da ezabatu SIM txarteleko eduki guztia errore bat gertatu delako.\n\nBerrabiarazi gailua eta saiatu berriro."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Konektatu gailura"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> aplikazioak aldi baterako wifi-sare bat erabili nahi du zure gailura konektatzeko"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Ez da aurkitu gailurik. Ziurtatu gailuak piztuta daudela eta konekta daitezkeela."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Larrialdi-deiak"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Zure operadoreak ez ditu onartzen wifi bidezko larrialdi-deiak.\nLarrialdi-dei bat egin behar dela hautematean, gailua automatikoki aldatzen da sare mugikor batera deia egiteko.\nSare mugikorren estaldura-eremuetan bakarrik egin daitezke larrialdi-deiak."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Kalitatea hobetzeko, erabili wifi-konexioa deietan"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Deietarako ordezko aukera"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> erabilgarri ez badago edo ibiltaritzan badago, erabili datu-konexioa duen SIMa <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> bidez deiak egiteko."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"deietarako ordezko aukera"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS mezu bat jaso duzu"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Ezin da bidali MMS mezua"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Sakatu hau <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> operadorearekin MMS mezuak erabiltzeko baimena emateko datu-konexioa desaktibatuta dagoenean"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Laneko gidalerroen informazioa"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"IKT saileko administratzaileak kudeatzen ditu ezarpenak"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPUa"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Abiarazi 16 kB-ko orriekin"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Abiarazi gailua 16 kB-ko orrien kernel bateragarriarekin"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16 kB-ko orrien kernel bateragarriarekin berrabiarazi nahi duzu?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ABISUA: baliteke aplikazio batzuk ez izatea bateragarriak modu honekin. Berretsi ondoren berrabiaraziko da gailua."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 kB-ko orrien kernel bateragarriarekin berrabiarazi nahi duzu?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Berretsi ondoren berrabiaraziko da gailua."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ezin izan da bertsio-berritu kernel-a 16 kB-ko orriekin bateragarria izan dadin."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Aldaketa aplikatzen"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Akatsen txostenen kudeatzailea"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Gailuko Akatsen txostenaren lasterbidea zein aplikaziok kontrolatzen duen zehazten du."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Pertsonala"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Erreprodukzioari bizkor berrekin ahal izateko, multimedia-erreproduzigailua irekita gelditzen da Ezarpen bizkorrak menuan"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Erakutsi multimedia-edukia pantaila blokeatuan"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Erreprodukzioari bizkor berrekin ahal izateko, multimedia-erreproduzigailua irekita gelditzen da pantaila blokeatuan"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Erakutsi multimedia-edukiaren inguruko gomendioak"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Erakutsi multimedia-edukiaren inguruko Laguntzailea zerbitzuaren gomendioak"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Zure jardueretan oinarrituta"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ezkutatu erreproduzigailua"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Erakutsi erreproduzigailua"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIMa"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIMa"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMak"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktibo"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inaktibo"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> aukera lehenetsia"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"Deietarako"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMSetarako"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Euskarri bateragarrietako audioa murgiltzaileagoa da"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Buruaren jarraipena"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Burua mugitu ahala audioa aldatu egiten da, soinua naturalagoa izan dadin"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinkronizatu baimenak"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Eman <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> gailuari <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> gailuak dituen aplikazio-baimen berak"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinkronizatu telefonoko baimenak"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Eman erlojuari telefonoak dituen aplikazio-baimen berak"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio-gailu mota"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ezezaguna"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Bozgorailua"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Tartekoa"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Altua"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Leiho bakar batean ireki daiteke aplikazioa"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktibatuta"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desaktibatuta"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desaktibatuta"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desaktibatuta"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Aktibatuta"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desaktibatuta"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Aktibatuta"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desaktibatuta"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Pantaila argiak iluntzen ditu, eta pantaila ilunak argitzen"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Handitu pantaila"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desaktibatuta"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desaktibatuta"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Aktibatuta"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desaktibatuta"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Aktibatuta"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Pasahitza konfiguratuta dago"</string>
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index c04d2b7..866fcff 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"پس‌از ۱ دقیقه"</item>
     <item msgid="1574040255478150028">"پس‌از ۵ دقیقه"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 21cb344..4406add 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"فقط کاربران سرپرست می‌توانند به تنظیمات توسعه‌دهنده دسترسی داشته باشند."</string>
     <string name="header_category_system" msgid="1665516346845259058">"سیستم"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"سرویس دارد"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"خارج از سرویس"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"تند کشیدن به‌بالا برای ادامه دادن"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"برای ادامه استفاده از برنامه، تلفن را تا کنید و روی نمایشگر جلویی تند به‌بالا بکشید، یا چند ثانیه صبر کنید تا صفحه‌نمایش قفل شود"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"مرتبط شده"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"آهنگ زنگ و هشدار"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"صدا درطول تماس"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"رسانه"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"اعلان و دیگر صداهای سیستم"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"صداهای رسانه و سیستم"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"اعلان‌ها"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"به‌طور پیش‌فرض، خروجی صوتی توسط هر برنامه تعیین می‌شود"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"دستگاه بلوتوث بدون نام"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"در حال جستجو"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"بلوتوث روشن شد"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"دیدن همه"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"دیدن همه"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"قلم"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"فشار دادن دکمه قلم"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (نمایه کاری)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"اتصال به جاری‌سازی صوتی کم‌مصرف"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"جاری‌سازی‌های صوتی اطراف"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"جاری‌سازی‌های صوتی"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"اتصال به جاری‌سازی صوتی با رمزینه پاسخ‌سریع"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"هیچ جاری‌سازی صوتی در اطراف پیدا نشد."</string>
     <string name="date_and_time" msgid="1788358029823431692">"تاریخ و زمان"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"پروکسی"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"پاک کردن"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"برای انتخاب زبان هر برنامه، به تنظیمات زبان برنامه بروید."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"درباره زبان‌های برنامه بیشتر بدانید"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏زبان سیستم به %s تغییر کند؟"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"‏%s به زبان‌های ترجیحی اضافه شود؟"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"این کار به برنامه‌ها و وب‌سایت‌ها اطلاع می‌دهد که این زبان را نیز ترجیح می‌دهید."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"تنظیمات دستگاه و اولویت‌های منطقه‌ای تغییر می‌کند."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"تغییر دادن"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"‏%s دردسترس نیست"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"شنبه"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"اگر برنامه‌ای از اولویت‌های منطقه‌ای پشتیبانی نکند، آن برنامه از تنظیمات منطقه زبانی پیش‌فرض استفاده می‌کند."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"درباره اولویت‌های زبان بیشتر بدانید."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"اولویت‌های اضافی"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"واژگان خطاب"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"انتخاب کنید چگونه می‌خواهید شما را خطاب کنند"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"برنامه‌ها می‌توانند از واژگان خطاب شما برای شخصی‌سازی نحوه خطاب کردن شما استفاده کنند."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"مشخص نشده"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"مؤنث"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"مذکر"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"عادی"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{زبان انتخاب‌شده حذف شود؟}one{زبان انتخاب‌شده حذف شود؟}other{زبان‌های انتخاب‌شده حذف شود؟}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"نوشتار به زبان دیگری نشان داده می‌شود."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"همه زبان‌ها حذف نمی‌شوند"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"مکان"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"استفاده از مکان"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"خاموش"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{روشن - # برنامه به مکان شما دسترسی دارد}one{روشن - # برنامه به مکان شما دسترسی دارد}other{روشن - # برنامه به مکان شما دسترسی دارند}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{روشن / # برنامه به مکان دسترسی دارد}one{روشن / # برنامه به مکان دسترسی دارد}other{روشن / # برنامه به مکان دسترسی دارند}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"درحال بارگیری…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"برنامه‌هایی که اجازه «دستگاه‌های اطراف» را دارند می‌توانند موقعیت نسبی دستگاه‌های متصل را مشخص کنند."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"دسترسی به مکان برای برنامه‌ها و سرویس‌ها خاموش است. وقتی با شماره تلفن اضطراری تماس می‌گیرید یا به آن پیامک ارسال می‌کنید، ممکن است مکان دستگاهتان همچنان برای مسئولان خدمات اضطراری ارسال شود."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"درباره «تنظیمات مکان» بیشتر بدانید."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"درباره «تنظیمات مکان» بیشتر بدانید"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"برای تغییر دسترسی به مکان، به «تنظیمات &gt; امنیت و حریم خصوصی &gt; تنظیمات حریم خصوصی» بروید"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"‏برای بهترین نتیجه، از محافظ صفحه‌نمایشی استفاده کنید که تأییدیه Made for Google داشته باشد. درصورت استفاده از دیگر محافظ‌های صفحه‌نمایش، ممکن است اثر انگشت فرزندتان کار نکند."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"قفل‌گشایی با ساعت"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"وقتی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت» را راه‌اندازی می‌کنید، اگر ماسک به صورت داشته باشید یا در محیط تاریکی باشید، تلفن از شما می‌خواهد از اثر انگشتتان استفاده کنید.\n\nوقتی چهره یا اثر انگشت شما شناسایی نمی‌شود، می‌توانید قفل را با ساعتتان باز کنید."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"وقتی اثر انگشت شما شناسایی نمی‌شود، می‌توانید قفل را با ساعتتان باز کنید."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"وقتی چهره شما شناسایی نمی‌شود، می‌توانید قفل را با ساعتتان باز کنید."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"وقتی «قفل‌گشایی با چهره» و «قفل‌گشایی با اثر انگشت» را راه‌اندازی می‌کنید، اگر ماسک داشته باشید یا در محیط تاریکی باشید، تلفن از شما می‌خواهد از اثر انگشتتان استفاده کنید.\n\n«قفل‌گشایی با ساعت» یکی دیگر از روش‌های آسان برای باز کردن قفل تلفن است؛ برای مثال، زمانی‌که انگشتانتان خیس است یا چهره‌تان تشخیص داده نمی‌شود."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"«قفل‌گشایی با ساعت» یکی دیگر از روش‌های آسان برای باز کردن قفل تلفن است؛ برای مثال، زمانی‌که اثر انگشتتان تشخیص داده نمی‌شود."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"«قفل‌گشایی با ساعت» یکی دیگر از روش‌های آسان برای باز کردن قفل تلفن است؛ برای مثال، زمانی‌که چهره‌تان تشخیص داده نمی‌شود."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"استفاده از اثر انگشت یا ساعت برای"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"استفاده از چهره یا ساعت برای"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"استفاده از چهره، اثر انگشت، یا ساعت برای"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چهره و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"قفل‌گشایی برنامه اصالت‌سنجی از دور"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ساعت اضافه شد"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"راه‌اندازی ساعت"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"روش کار"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"قفل ساعتتان باید باز باشد، ساعت روی مچ شما باشد، و به این تلفن نزدیک باشد. وقتی ساعت روی مچ شما است دیگر نیازی نیست قفل آن را باز کنید."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"وقتی قفل این تلفن باز شود، اعلانی در ساعتتان دریافت می‌کنید. اگر قفل تلفن بدون اینکه شما خواسته باشید باز شد، روی اعلان ضربه بزنید تا تلفن دوباره قفل شود."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"کنترل در دست شما است"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"همواره می‌توانید در «تنظیمات» ساعتتان را از «قفل‌گشایی با ساعت» بردارید"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"روی اعلان ضربه بزنید"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"در صفحه قفل تند به‌بالا بکشید"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ساعت را انتخاب کنید"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ساعت‌های دردسترس"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"لغو"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"تأیید"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"همه چیز آماده است!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"اکنون وقتی روی صفحه قفل به بالا می‌کشید یا روی اعلان ضربه می‌زنید، می‌توانید از ساعتتان برای باز کردن قفل این تلفن استفاده کنید."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"تمام"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"قفل‌گشایی با ساعت"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"وقتی روی صفحه قفل به بالا می‌کشید یا روی اعلان ضربه می‌زنید، می‌توانید از ساعتتان برای باز کردن قفل این تلفن استفاده کنید."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"برای استفاده از «قفل‌گشایی با ساعت»، قفل ساعت باید باز باشد، ساعت روی مچ دستتان باشد و به این تلفن متصل باشد. اگر اتصال قطع شد، برای اینکه بتوانید از «قفل‌گشایی با ساعت» استفاده کنید، باید قفل تلفن را باز کنید.\n\nبه‌خاطر داشته باشید:\nبه‌صورت هم‌زمان فقط می‌توانید یک ساعت را راه‌اندازی کنید. برای افزودن ساعتی دیگر، ابتدا ساعت فعلی را حذف کنید."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"درباره «قفل‌گشایی با ساعت» بیشتر بدانید"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"افزودن ساعت"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"برداشتن ساعت"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"قفل‌گشایی با اثر انگشت و چهره"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"«قفل‌گشایی با اثر انگشت و چهره» برای نمایه کاری"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"راه‌اندازی لازم است"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"امنیت"</string>
     <string name="privacy_header" msgid="5526002421324257007">"حریم خصوصی"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"نمایه کاری"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"فضای خصوصی"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"برنامه‌های خصوصی قفل و پنهان نگه داشته می‌شود"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"برنامه‌های خصوصی را در فضای جداگانه‌ای نگه دارید که قابلیت پنهان کردن یا قفل کردن داشته باشد"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"قفل «فضای خصوصی»"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"می‌توانید با همان روشی که قفل دستگاهتان را باز می‌کنید قفل «فضای خصوصی» را باز کنید، یا اینکه قفل دیگری انتخاب کنید"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"استفاده از قفل صفحه دستگاه"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"قفل‌گشایی با اثر انگشت و چهره"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"قفل‌گشایی با اثر انگشت"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"قفل‌گشایی با چهره"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"برای راه‌اندازی ضربه بزنید"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"قفل‌گشایی با اثر انگشت برای فضای خصوصی"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"قفل‌گشایی با چهره برای فضای خصوصی"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"روش‌های باز کردن قفل"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"یکسان با قفل صفحه دستگاه"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"می‌خواهید قفل جدیدی برای «فضای خصوصی» انتخاب کنید؟"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"قفل خودکار"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"قفل خودکار فضای خصوصی"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"می‌توانید تنظیم کنید که اگر برای مدتی از دستگاهتان استفاده نکردید، فضای خصوصی شما به‌طور خودکار قفل شود"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"هربار که دستگاه قفل می‌شود"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"پس‌از ۵ دقیقه عدم فعالیت"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"هرگز"</string>
+    <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_deleted" msgid="7825768516955610897">"«فضای خصوصی» باموفقیت حذف شد"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"«فضای خصوصی» حذف نشد"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"قفل فضای خصوصی باز شد"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"قفل صفحه تنظیم کنید"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"برای استفاده از فضای خصوصی، قفل صفحه در این دستگاه تنظیم کنید"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"تنظیم قفل صفحه"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"لغو کردن"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"لغو کردن"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"راه‌اندازی"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"فضای خصوصی راه‌اندازی کنید"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"برنامه‌های خصوصی را در فضای جداگانه‌ای نگه دارید که قابلیت پنهان کردن یا قفل کردن داشته باشد"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"روش کار"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"می‌توانید از پایین فهرست برنامه‌ها به فضای خصوصی دسترسی داشته باشید"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"از برنامه‌های موجود در فضای خصوصی با یک قفل محافظت می‌شود"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"اعلان برنامه‌های موجود در فضای خصوصی هنگام قفل بودن آن پنهان می‌شود"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"درصورت قفل بودن فضای خصوصی، برنامه‌های فضای خصوصی در مدیر اجازه‌ها، داشبورد حریم خصوصی، و دیگر تنظیمات نشان داده نخواهد شد.\n\nنمی‌توانید فضای خصوصی‌تان را به دستگاه دیگری منتقل کنید. اگر می‌خواهید از آن در دستگاه دیگری استفاده کنید، باید فضای خصوصی دیگری راه‌اندازی کنید.\n\nهر کسی که دستگاه شما را به رایانه متصل کند یا برنامه‌های مخرب در دستگاهتان نصب کند ممکن است بتواند به فضای خصوصی شما دسترسی داشته باشد."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"درحال راه‌اندازی فضای خصوصی…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"اعلان برنامه‌های موجود در فضای خصوصی هنگام قفل بودن آن پنهان می‌شود"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"برای هم‌رسانی عکس یا فایل از برنامه‌های فضای خصوصی، قفل فضای خصوصی را باز کنید"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"برخی‌از برنامه‌ها قبلاً در فضای خصوصی نصب شده‌اند"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"فضای خصوصی راه‌اندازی نشد"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"امتحان مجدد"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"از قفل صفحه برای باز کردن قفل فضای خصوصی استفاده شود؟"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"می‌توانید با همان روشی که قفل دستگاهتان را باز می‌کنید قفل فضای خصوصی را باز کنید، یا اینکه قفل دیگری انتخاب کنید"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"استفاده از قفل صفحه"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"انتخاب قفل جدید"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"همه چیز آماده است!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"برای دسترسی به فضای خصوصی، به فهرست برنامه‌ها بروید و به‌پایین پیمایش کنید"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"تمام"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"برای پیدا کردن فضای خصوصی، به‌پایین پیمایش کنید"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"قفلی برای فضای خصوصی‌تان انتخاب کنید"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"می‌توانید بااستفاده از اثر انگشت، قفل فضای خصوصی‌تان را باز کنید. بنابه دلایل امنیتی، این گزینه به قفل پشتیبان نیاز دارد."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"تنظیم پین برای فضای خصوصی"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"تنظیم گذرواژه برای فضای خصوصی"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"تنظیم الگو برای فضای خصوصی"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"برای نمایش «فضای خصوصی» (تجربه کاربری نهایی نیست)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"برنامه «تنظیمات» را باز کنید"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"‏روی «امنیت و حریم خصوصی &gt; فضای خصوصی &gt; پنهان کردن فضای خصوصی هنگام قفل بودن» ضربه بزنید"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"کلید «پنهان کردن فضای خصوصی هنگام قفل بودن» را خاموش کنید"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"‏یادداشت برای کارمندان Google: توسعه این ویژگی هنوز درحال انجام است"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ممکن است لازم باشد این گذرکلید را در دستگاه دیگر هم وارد کنید."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"تأیید مرتبط‌سازی با مجموعه هماهنگ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"اجازه دسترسی به مخاطبین و سابقه تماس"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"دسترسی به مخاطبین و سابقه تماس نیز مجاز شود"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"از اطلاعات برای اعلام تماس‌ها و موارد دیگر استفاده خواهد شد"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"اتصال به <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ممکن نیست."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"دستگاه‌های در دسترس"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"در حالت هواپیما"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"دریافت اعلان برای شبکه‌های عمومی"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"وقتی شبکه عمومی‌ای با کیفیت خوب در دسترس است، اطلاع داده شود"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"‏مجاز کردن شبکه‌های WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"‏WEP یک پروتکل امنیتی قدیمی است که امنیت کمتری دارد"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"‏شرکت مخابراتی شما اجازه استفاده از شبکه‌های WEP را نمی‌دهد زیرا امنیت کمتری دارند"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"‏روشن شدن خودکار Wi-Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‏Wi-Fi درنزدیکی شبکه‌های با کیفیت بالای ذخیره‌شده (ازجمله شبکه خانه‌تان) دوباره روشن می‌شود."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"در دسترس نیست چون «مکان» خاموش است. "<annotation id="link">"مکان"</annotation>" را روشن کنید."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"‏«اسکن کردن Wi‑Fi» به برنامه‌ها و سرویس‌ها امکان می‌دهد در هر زمانی (حتی وقتی Wi‑Fi خاموش است) این شبکه‌ها را جستجو کنند. برای مثال، این مورد می‌تواند برای بهبود ویژگی‌ها و سرویس‌های مکان‌مبنا استفاده شود."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"روشن کردن"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"‏«اسکن کردن Wi‑Fi» روشن شد"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"این شبکه از پروتکل امنیتی قدیمی‌تری استفاده می‌کند که امنیت کمتری دارد"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> مسدود شده است"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"‏این شبکه از پروتکل امنیتی قدیمی‌تری به‌نام WEP استفاده می‌کند که امنیت کمتری دارد. برای اینکه درهرصورت متصل شوید، می‌توانید شبکه‌های WEP را مجاز کنید."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"شرکت مخابراتی‌تان اجازه نمی‌دهد به این شبکه متصل شوید زیرا از پروتکل امنیتی قدیمی‌تری استفاده می‌کند که امنیت کمتری دارد"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"‏مجاز کردن WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"بستن"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"گزینه‌های پیشرفته"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"گزینه‌های پیشرفتهٔ فهرست کرکره‌ای"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"بزرگ کردن"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"‏به Wi‑Fi متصل بمانید"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"هرگز دوباره نشان داده نشود"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"اتصال"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"‏Wi-Fi روشن شد"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"به <xliff:g id="NETWORK_NAME">%1$s</xliff:g> متصل شد"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"درحال اتصال به <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"درحال اتصال…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"اتصال به شبکه برقرار نشد"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"شبکه در محدوده نیست"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"فراموش کردن"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"اصلاح"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"شبکه فراموش نشد"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ذخیره"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"شبکه ذخیره نشد"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"لغو"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"داده تلفن همراه"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"اترنت"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"‫<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> - درحال شارژ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"‫<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> - درحال شارژ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ارتباط نقطه اتصال"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"قدرت اتصال"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"شبکه‌های ذخیره‌شده"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"گذرواژه‌ای تنظیم نشده است"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"نام نقطه اتصال"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"گذرواژه نقطه اتصال"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"‏باند AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"خاموش شدن خودکار نقطه اتصال"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"وقتی هیچ دستگاهی متصل نیست"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"افزایش سازگاری"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"غیرفعال کردن نرخ فریم پیش‌فرض برای بازی‌ها"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"محدودیت نرخ فریم حداکثری برای بازی‌ها در <xliff:g id="FRAME_RATE">%1$d</xliff:g> هرتز غیرفعال می‌شود."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"نمایشگر روان"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"‏«توجه به صفحه» با استفاده از دوربین جلو متوجه می‌شود که آیا فردی درحال تماشای صفحه‌نمایش است یا نه. این ویژگی در دستگاه کار می‌کند و تصاویر هرگز ذخیره نمی‌شوند و به Google فرستاده نمی‌شود."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"روشن کردن توجه به صفحه"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"وقتی به صفحه‌نمایش نگاه می‌کنید صفحه خاموش نشود"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"وقفه طولانی‌تر برای خاموش شدن صفحه باعث مصرف باتری بیشتر می‌شود."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"دوربین قفل است"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"برای «تشخیص چهره»، قفل دوربین باید باز باشد"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"قفل دوربین باید برای «توجه به صفحه» باز باشد"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"‏IMEI (شیار سیم‌کارت <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"‏IMEI (شیار سیم‌کارت <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (اصلی)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"برای مشاهده، شبکه ذخیره‌شده را انتخاب کنید"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"‏نسخه PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"مقدار شارژ باتری"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"عمومی"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"تنظیمات عمومی"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"ذخیره"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"لغو"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"قسمت نام نباید خالی باشد."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"نام نقطه دستیابی نمی‌تواند خالی باشد."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"‏قسمت MCC باید 3 رقمی باشد."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"‏قسمت MNC باید 2 یا 3 رقم باشد."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"‏شرکت مخابراتی اجازه نمی‌دهد APN از نوع %s اضافه کنید."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"‏فیلد MMSC باید معتبر باشد."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"بازیابی تنظیمات پیش‌فرض نام نقطه دستیابی"</string>
     <string name="menu_restore" msgid="4310539620115151551">"بازنشانی به موارد پیش‌فرض"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"بازنشانی تنظیمات پیش‌فرض نام نقطه دستیابی انجام شد."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"بازنشانی"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"‏بلوتوث و Wi‑Fi بازنشانی شدند"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"پاک کردن سیم‌کارت داخلی"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"با این کار، هیچ‌یک از طرح‌های سرویس تلفن همراه لغو نمی‌شود. برای بارگیری سیم‌کارت‌های جایگزین، با شرکت مخابراتی‌تان تماس بگیرید."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"بازنشانی تنظیمات"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"همه تنظیمات شبکه بازنشانی شود؟ این کنش واگرد نمی‌شود."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"همه تنظیمات شبکه بازنشانی و سیم‌کارت‌های داخلی پاک شوند؟ این کنش واگردشدنی نیست."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"بازنشانی؟"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"بازنشانی شبکه برای این کاربر در دسترس نیست"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"تنظیمات شبکه بازنشانی شد"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"سیم‌کارت‌ها پاک‌سازی نشدند"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"سیم‌کارت داخلی به‌دلیل خطایی نمی‌تواند پاک شود.\n\nدستگاهتان را بازراه‌اندازی و دوباره امتحان کنید."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"پاک کردن همه داده‌ها (بازنشانی کارخانه‌ای)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"پاک کردن همه داده‌ها (بازنشانی کارخانه‌ای)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"موسیقی"</li>\n<li>"عکس"</li>\n<li>"دیگر اطلاعات کاربر"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"سیم‌کارت داخلی"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"با این کار طرح خدمات تلفن همراهتان لغو نخواهد شد."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"همه اطلاعات شخصی و برنامه‌های بارگیری‌شده حذف خواهد شد. این کنش واگردشدنی نیست."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"همه اطلاعات شخصی‌تان، ازجمله سیم‌کارت‌ها و برنامه‌های بارگیری‌شده، حذف می‌شود. این کنش واگردشدنی نیست."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"همه داده‌ها پاک شود؟"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"بازنشانی کارخانه‌ای برای این کاربر دردسترس نیست"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"درحال پاک‌سازی"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"‏نقطه اتصال، USB، بلوتوث، اترنت"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"اینترنت با دستگاه‌های دیگر هم‌رسانی نمی‌شود"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"خاموش"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"اشتراک‌گذاری اینترنت"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"‏استفاده نکردن از نقطه اتصال Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"‏اینترنت را فقط ازطریق USB هم‌رسانی کنید"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"اینترنت را فقط ازطریق بلوتوث هم‌رسانی کنید"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"هم‌رسانی اینترنت فقط ازطریق اترنت"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"‏اینترنت را فقط ازطریق USB و بلوتوث هم‌رسانی کنید"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"‏هم‌رسانی اینترنت فقط ازطریق USB و اترنت"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"هم‌رسانی اینترنت فقط ازطریق بلوتوث و اترنت"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"‏هم‌رسانی اینترنت فقط ازطریق USB، بلوتوث، و اترنت"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"‏اشتراک‌گذاری اینترنت با USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"اشتراک‌گذاری اینترنت با بلوتوث"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"اشتراک‌گذاری اینترنت با اترنت"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"‏برای ارائه اینترنت به سایر دستگاه‌ها ازطریق اتصال داده تلفن همراه یا Wi-Fi، از نقطه اتصال و اشتراک‌گذاری اینترنت استفاده کنید. برنامه‌ها همچنین می‌تواند نقطه اتصالی ایجاد کند تا محتوا را با دستگاه‌های اطراف هم‌رسانی کند."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"راهنمایی"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"شبکه تلفن همراه"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"طرح تلفن همراه"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"برنامه پیامک"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"برنامه پیامک تغییر داده شود؟"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"از <xliff:g id="NEW_APP">%1$s</xliff:g> به‌جای <xliff:g id="CURRENT_APP">%2$s</xliff:g> به‌عنوان برنامه پیامک‌تان استفاده می‌کنید؟"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"‏دستیار Wi‑Fi را تغییر می‌دهید؟"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"از <xliff:g id="NEW_APP">%1$s</xliff:g> به‌جای <xliff:g id="CURRENT_APP">%2$s</xliff:g> استفاده می‌کنید تا ارتباطات شبکه‌تان را مدیریت کنید؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"برای مدیریت ارتباطات شبکه‌تان از <xliff:g id="NEW_APP">%s</xliff:g> استفاده می‌کنید؟"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"اپراتور سیم‌کارت ناشناس"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> وب‌سایت شناخته‌شده‌ای برای آماده‌سازی ندارد"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"لطفاً سیم کارت را وارد کنید و دوباره راه‌اندازی کنید"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"لطفاً به اینترنت وصل شوید"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"درخواست‌های اخیر موقعیت مکانی"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"محل نمایه کارتان"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"اجازه‌های مکان برنامه"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"پاک کردن دسترسی"</string>
     <string name="controls_label" msgid="8671492254263626383">"کنترل ها"</string>
     <string name="force_stop" msgid="2681771622136916280">"توقف اجباری"</string>
+    <string name="archive" msgid="9074663845068632127">"بایگانی کردن"</string>
+    <string name="restore" msgid="7622486640713967157">"بازیابی"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"مجموع"</string>
     <string name="application_size_label" msgid="6407051020651716729">"حجم برنامه"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"‏برنامه ذخیره‌سازی USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"اندازه بسته قابل محاسبه نیست."</string>
     <string name="version_text" msgid="7628938665256107608">"نسخه <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"انتقال"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"بایگانی کردن انجام نشد"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> بایگانی شد"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"بازیابی ناموفق بود"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"درحال بازیابی <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"انتقال دیگری اکنون درحال انجام است."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"حافظه کافی موجود نیست."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"برنامه وجود ندارد."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"صفحه‌کلید مجازی دردسترس است"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"مدیریت صفحه‌کلیدهای روی صفحه"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"گزینه‌ها"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"دسترس‌پذیری"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"صفحه‌کلید فیزیکی"</string>
     <string name="show_ime" msgid="4334255501724746849">"استفاده از صفحه‌کلید مجازی"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"وقتی صفحه‌کلید فیزیکی فعال است این ویرایشگر را روی صفحه نگه‌می‌دارد"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"کلیدهای واگشت"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"کلیدهای واگشت را برای دسترس‌پذیری صفحه‌کلید فیزیکی فعال کنید"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"کلیدهای چسبان"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"کلیدهای چسبان را برای دسترس‌پذیری صفحه‌کلید فیزیکی فعال کنید"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"میان‌برهای صفحه‌کلید"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"نمایش فهرست میان‌برها"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"نمایه کاری صفحه‌کلیدها و ابزارها"</string>
@@ -1733,15 +1895,15 @@
     <string name="trackpad_notifications_summary" msgid="7663647367648690040">"با سه انگشت تند به‌پایین بکشید"</string>
     <string name="trackpad_switch_apps_title" msgid="7342032935377284039">"جابه‌جایی بین برنامه‌ها"</string>
     <string name="trackpad_switch_apps_summary" msgid="9193942041912927440">"با چهار انگشت تند به‌چپ یا راست بکشید"</string>
-    <string name="modifier_keys_settings" msgid="2537108435032034683">"کلیدهای توصیف‌گر"</string>
+    <string name="modifier_keys_settings" msgid="2537108435032034683">"کلیدهای تغییردهنده"</string>
     <string name="modifier_keys_settings_summary" msgid="6933143361657444436">"تغییر رفتار کلیدها"</string>
     <string name="modifier_keys_reset_title" msgid="948294258402761066">"بازنشانی همه"</string>
     <string name="modifier_keys_default_summary" msgid="8701640508670973258">"پیش‌فرض"</string>
-    <string name="modifier_keys_reset_message" msgid="5236994817619936058">"مطمئنید می‌خواهید همه کلیدهای توصیف‌گر را به تنظیم پیش‌فرض بازنشانی کنید؟"</string>
+    <string name="modifier_keys_reset_message" msgid="5236994817619936058">"مطمئنید می‌خواهید همه کلیدهای تغییردهنده را به تنظیم پیش‌فرض بازنشانی کنید؟"</string>
     <string name="modifier_keys_done" msgid="8196199314913909700">"تمام"</string>
     <string name="modifier_keys_cancel" msgid="7136520252570826772">"لغو"</string>
     <string name="modifier_keys_reset" msgid="551170906710422041">"بازنشانی"</string>
-    <string name="modifier_keys_picker_title" msgid="244545904150587851">"کلید توصیف‌گر را انتخاب کنید"</string>
+    <string name="modifier_keys_picker_title" msgid="244545904150587851">"کلید تغییردهنده را انتخاب کنید"</string>
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"کلید جدیدی برای <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> انتخاب کنید:"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"پیش‌فرض"</string>
     <string name="speech_category_title" msgid="5995161659186229742">"گفتار"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"مرتب کردن براساس زمان استفاده"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"مرتب کردن براساس آخرین استفاده"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"مرتب کردن براساس نام برنامه"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"آخرین زمان استفاده"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"آخرین استفاده"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"هرگز"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"زمان استفاده"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"دسترس‌پذیری"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"تنظیمات دسترس‌پذیری"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"درهرصورت ادامه داده شود"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"لغو"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"تنظیمات درشت‌‌نمایی"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"درشت‌نمایی با سه ضربه"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"درشت‌نمایی بااستفاده از میان‌بر"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"درشت‌نمایی بااستفاده از میان‌بر و سه ضربه"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"درباره <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"برای باز کردن، با دو انگشت دوضربه روی صفحه‌نمایش بزنید"</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="860548190334486449">"برای شروع یا متوقف کردن درشت‌نمایی، روی جایی از صفحه‌نمایش با دو انگشت دوضربه بزنید."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"برای استفاده از ویژگی دسترس‌پذیری، با ۳ انگشت از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۳ انگشت تند به‌بالا بکشید و نگه دارید."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"متوجه شدم"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"تنظیمات دکمه دسترس‌پذیری"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"تنظیمات دکمه"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"میان‌بر <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"دکمه دسترس‌پذیری"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"اشاره دسترس‌پذیری"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"با دو انگشت دوضربه روی صفحه‌نمایش بزنید"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"با دو انگشت دوضربه روی صفحه‌نمایش بزنید"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏با دو انگشت {0,number,integer} بار به‌سرعت روی صفحه ضربه بزنید"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"روی صفحه‌نمایش سه ضربه سریع بزنید"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"سه ضربه سریع روی صفحه"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏سریع روی صفحه‌نمایش {0,number,integer} بار ضربه بزنید. ممکن است این میان‌بر سرعت دستگاه را کاهش دهد"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"درباره دکمه دسترس‌پذیری و اشاره بیشتر بدانید"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"درحال استفاده از دکمه دسترس‌پذیری هستید. اشاره موردنظر با پیمایش ۳دکمه‌ای دردسترس نیست."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"دسترسی سریع به ویژگی‌های دسترس‌پذیری"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"برای شروع به کار"</b>\n"۱. به تنظیمات دسترس‌پذیری بروید\n۲. یکی‌از ویژگی‌ها را انتخاب کنید و روی میان‌بر ضربه بزنید\n۳. انتخاب کنید که برای دسترسی به ویژگی می‌خواهید از دکمه استفاده کنید یا از اشاره"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"برای شروع کار"</b>\n"۱. به تنظیمات دسترس‌پذیری بروید\n۲. یکی از ویژگی‌ها را انتخاب کنید و روی میان‌بر ضربه بزنید\n۳. دکمه موردنظر را برای دسترسی به آن ویژگی انتخاب کنید"</string>
+    <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_size_title" msgid="5785110470538960881">"اندازه"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"قطع تماس با دکمه روشن/خاموش"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"اشاره‌گر موشواره بزرگ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"برجسته‌تر کردن اشاره‌گر موشواره"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"تیره کردن همه برنامه‌ها"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"برای برنامه‌هایی اعمال می‌شود که خودشان زمینه تیره ندارند. ممکن است برخی برنامه‌ها مشکل نمایش داشته باشند، مثل رنگ‌های وارونه."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"برداشتن پویانمایی‌ها"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"کاهش حرکت در صفحه‌نمایش"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"صدای مونو"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"این عملکرد می‌تواند با برنامه یا حسگری سخت‌افزاری تعاملاتتان را ردیابی کند و ازطرف شما با برنامه‌ها تعامل داشته باشد."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازه دادن"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مجاز نبودن"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"متوقف کردن"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"لغو"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"«<xliff:g id="SERVICE">%1$s</xliff:g>» متوقف شود؟"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"با زدن روی «<xliff:g id="STOP">%1$s</xliff:g>»، «<xliff:g id="SERVICE">%2$s</xliff:g>» متوقف می‌شود."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"خاموش شود"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"روشن باشد"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> خاموش شود؟"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"سرویسی نصب نشده است"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"سرویسی انتخاب نشده است"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"شرحی ارائه نشده است."</string>
     <string name="settings_button" msgid="2195468788019730377">"تنظیمات"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"حساسیت به نور، نورهراسی، زمینه تیره، میگرن، سردرد، حالت خواندن، حالت شب، کاهش روشنایی، درجه سفیدی"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"سهولت استفاده، سهولت دسترسی، دستیار، یاری‌رسان"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"بینایی، شنوایی، نابینا، ناشنوا، حرکتی، دست‌ورزی، یاری‌رسان، یاری، کاربری آسان، دسترسی آسان، دست، کمک"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ذره‌بین پنجره، زوم، درشت‌نمایی، کم‌بینا، بزرگ کردن، بزرگ‌تر کردن"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"‏زیرنویس، زیرنویس ناشنوایان، CC، ترانویسی هم‌زمان، کم‌شنوا، ازدست دادن شنوایی، CART، گفتار به نوشتار، زیرنویس"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"تضاد رنگ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"حرکت، موشواره"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"سمعک، کم‌شنوا، ازدست دادن شنوایی، کاشت حلزون، دستگاه تقویتی، پردازنده صدا"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"حرکتی، موشواره، موشواره خارجی، موشواره روی سر، موشواره تطبیقی، صندلی چرخ‌دار، دسته کنترل"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"سمعک، کم‌شنوا، ازدست دادن شنوایی، کاشت حلزون، دستگاه تقویتی، پردازنده صدا، پاسخگوی ایمنی عمومی"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"‏کم‌شنوا، ازدست دادن شنوایی، زیرنویس ناشنوایان، تایپ راه‌دور، tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"سه دکمه"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"دست‌ورزی، حرکتی، سالمند، ورم مفاصل، آسیب فشار تکراری (آر‌اس‌آی)، سکته، رعشه، اسکلروز چندگانه، فلج مغزی، لرزش، آسیب فشار تکراری، دست"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"تأخیر، دست‌ورزی، سالمند"</string>
     <string name="print_settings" msgid="8519810615863882491">"چاپ کردن"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"خاموش"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{یک سرویس چاپ روشن است}one{‏# سرویس چاپ روشن است}other{‏# سرویس چاپ روشن است}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"برنامه‌هایی که بیشترین مصرف را دارند ببینید"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"برای محافظت از باتری، شارژ بهینه می‌شود"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"برای کمک به افزایش طول عمر باتری، شارژ بهینه می‌شود"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"برای محافظت از باتری، شارژ بهینه می‌شود"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"برای کمک به افزایش طول عمر باتری، شارژ هنگام اتصال به پایه بهینه می‌شود"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"برای محافظت از باتری، شارژ بهینه می‌شود"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"برای کمک به افزایش طول عمر باتری، شارژ هنگام اتصال به پایه بهینه می‌شود"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"درحال شارژ تا حد کامل"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"برای محافظت از باتری، دفعه بعدی که رایانه لوحی‌تان به پایه متصل شود، شارژ بهینه خواهد شد"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"درباره توقف موقت شارژ بیشتر بدانید"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ازسرگیری شارژ شدن"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"شامل فعالیت پس‌زمینه با شارژ بالا"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"برداشتن"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"لغو"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"کاملاً شارژ کردن"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"مشکل در شارژ وسیله جانبی"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"درباره شارژ ناسازگار بیشتر بدانید"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"مدیر باتری"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"مدیریت خودکار برنامه‌ها"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"اکنون"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"از <xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> تا <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"نمودار مصرف باتری"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"نمودار مصرف روزانه باتری"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"نمودار مصرف ساعتی باتری"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"درصد میزان شارژ باتری از <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> تا <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"مصرف باتری از آخرین شارژ کامل"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"مصرف باتری: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"مدت تماشای صفحه از آخرین شارژ کامل"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"سیگنال شماره‌گیری اضطراری"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"واکنش موجود در هنگام برقراری تماس اضطراری را تنظیم کنید"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"پشتیبان‌گیری"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"روشن"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"خاموش"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"تهیهٔ نسخهٔ پشتیبان و بازیابی"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"اطلاعات شخصی"</string>
     <string name="backup_data_title" msgid="507663517227498525">"پشتیبان‌گیری از داده‌های من"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"نام"</string>
     <string name="vpn_type" msgid="5533202873260826663">"نوع"</string>
     <string name="vpn_server" msgid="2908816134941973935">"آدرس سرور"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"‏رمزگذاری PPP‏ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"‏مورد محرمانه L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"‏شناسه IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"‏کلید IPSec از پیش مشترک شده"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"‏گواهی کاربر IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"‏گواهی IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"‏گواهی سرور IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"نمایش گزینه‌های پیشرفته"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"‏دامنه‌های جستجوی DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"‏سرور DNS (به‌عنوان مثال 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"مسیرهای هدایت (مانند 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"نام کاربری"</string>
     <string name="vpn_password" msgid="1183746907642628127">"گذرواژه"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ذخیره اطلاعات حساب"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(استفاده نشده)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(سرور تأیید نشود)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(دریافت شده از سرور)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"‏این نوع VPN نمی‌تواند همیشه متصل بماند"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"‏VPN همیشه‌روشن فقط از سرورهای با نشانی عددی پشتیبانی می‌کند"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"‏سرور DNS مربوط به VPN همیشه‌روشن باید مشخص شده باشد"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"‏نشانی‌های سرور DNS مربوط به VPN همیشه‌روشن باید عددی باشند"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"‏اطلاعات وارد‌شده از VPN همیشه‌روشن پشتیبانی نمی‌کند"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"لغو"</string>
     <string name="vpn_done" msgid="5137858784289564985">"رد کردن"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"‏اتصالات مسدود‌شده بدون VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"‏به اتصال VPN‌ نیاز است؟"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"‏امن نیست. به IKEv2 VPN به‌روزرسانی کنید"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"‏VPN پشتیبانی‌نشده راه‌اندازی نشد."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"‏یک نمایه VPN انتخاب کنید تا همیشه متصل بمانید. فقط درصورتی‌که به این VPN متصل باشید ترافیک شبکه مجاز خواهد بود."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"خالی"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"‏VPN همیشه‌فعال به نشانی IP برای DNS و سرور نیاز دارد."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"‏هشدارهای AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"دریافت بولتن‌های مربوط به کودک‌ربایی"</string>
     <string name="repeat_title" msgid="8676570486899483606">"تکرار"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"فعال‌سازی مدیریت تماس"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"به این سرویس اجازه دهید تا چگونگی برقراری تماس‌هایتان را مدیریت کند."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"مدیریت تماس"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"هشدارهای اضطراری بی‌سیم"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"اپراتورهای شبکه"</string>
     <string name="access_point_names" msgid="5768430498022188057">"نام نقاط دسترسی"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"کیف پول"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"پرداخت کردن، ضربه زدن، پرداخت‌ها"</string>
     <string name="keywords_backup" msgid="707735920706667685">"پشتیبان‌گیری، پشتیبان"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"اشاره"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"قفل‌گشایی با چهره، اصالت‌سنجی، ورود به سیستم"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"قفل‌گشایی با چهره، اصالت‌سنجی، ورود به سیستم، اثر انگشت، زیست‌سنجشی"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"‏imei، ‏meid،‏ min، نسخه prl، ‏imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"صدای راه‌اندازی"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"زیرنویس زنده"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"رسانه زیرنویس خودکار"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"بلندگوهای تلفن"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"بلندگوهای رایانه لوحی"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"بلندگوهای دستگاه"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"هدفون سیمی"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"صدای رسانه‌های سازگار فراگیرتر می‌شود"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"خاموش"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"مکالمه‌های اخیر برداشته شد"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"مکالمه حذف شد"</string>
     <string name="clear" msgid="5092178335409471100">"پاک کردن"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"پاک کردن <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"مکالمه‌های اولویت‌دار و اصلاح‌شده در اینجا نشان داده می‌شوند"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"وقتی مکالمه‌ای را به‌عنوان اولویت‌دار علامت‌گذاری کنید یا تغییرات دیگری در مکالمه‌ها ایجاد کنید، در اینجا نشان داده می‌شوند. \n\nبرای تغییر تنظیمات مکالمه: \nاز بالای صفحه به پایین بکشید تا کشوی پایین‌پر باز شود و سپس مکالمه را لمس کنید و نگه دارید."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"کوچک کردن"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"خاموش"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"سنجاق کردن برنامه"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"با سنجاق کردن برنامه می‌توانید برنامه کنونی را تا زمان برداشتن سنجاق درمعرض دید نگه دارید. برای مثال، بااستفاده از این ویژگی می‌توانید به دوست معتمدی اجازه دهید بازی خاصی را بازی کند."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"وقتی برنامه‌ای سنجاق شود، ممکن است برنامه سنجاق‌شده برنامه‌های دیگر را باز کند و داده‌های شخصی دردسترس قرار گیرد. \n\nبرای استفاده از سنجاق کردن برنامه: ←\n۱. «سنجاق کردن برنامه» را روشن کنید ←\n۲. «نمای کلی» را باز کنید ←\n۳. روی نماد برنامه در بالای صفحه‌نمایش ضربه بزنید، سپس روی «سنجاق کردن» ضربه بزنید"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"وقتی برنامه‌ای سنجاق شود، ممکن است برنامه سنجاق‌شده برنامه‌های دیگر را باز کند و داده‌های شخصی دردسترس قرار گیرد. \n\nاگر می‌خواهید دستگاهتان را بااطمینان‌خاطر دراختیار فرد دیگری قرار دهید، از کاربر مهمان استفاده کنید. \n\nبرای استفاده از سنجاق کردن برنامه: ←\n۱. «سنجاق کردن برنامه» را روشن کنید ←\n۲. «نمای کلی» را باز کنید ←\n۳. روی نماد برنامه در بالای صفحه‌نمایش ضربه بزنید، سپس روی «سنجاق کردن» ضربه بزنید"</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_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">"درخواست کد پین قبل از برداشتن پین"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"مدیریت برنامه درصورت عدم استفاده"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"برداشتن اجازه‌ها، حذف فایل‌های موقت، توقف اعلان‌ها، و بایگانی کردن برنامه"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"همه برنامه‌ها"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"برنامه‌های نصب‌شده"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"برنامه‌های فوری"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"آزاد"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"حافظه مورداستفاده برنامه‌ها"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{یک برنامه ظرف {time} گذشته از حافظه استفاده کرده است}one{‏‎# برنامه ظرف {time} گذشته از حافظه استفاده کرده است}other{‏‎# برنامه ظرف {time} گذشته از حافظه استفاده کرده‌اند}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"فعال کردن نمایه‌سازی استفاده از حافظه"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"نمایه‌سازی استفاده از حافظه به منابع سیستم اضافی نیاز دارد."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"نمایه‌سازی استفاده از حافظه غیرفعال است"</string>
     <string name="running_frequency" msgid="7260225121706316639">"تعداد دفعات اجرا"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"حداکثر مصرف"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"از داده استفاده نشده"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"نمایش روی سایر برنامه‌ها"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"مجاز کردن نمایش روی سایر برنامه‌ها"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"به این برنامه اجازه می‌دهد روی برنامه‌های دیگری که درحال استفاده از آن‌ها هستید نشان داده شود. این برنامه می‌تواند ببیند روی کجا ضربه می‌زنید یا آنچه را که روی صفحه نشان داده می‌شود می‌تواند تغییر دهد."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"تغییر دادن خروجی رسانه"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"اجازه دادن به برنامه برای عوض کردن خروجی رسانه"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"به این برنامه اجازه داده می‌شود انتخاب کند کدام دستگاه متصل صدا یا ویدیو را از برنامه‌های دیگر پخش کند. اگر اجازه دهید، این برنامه می‌تواند به فهرست دستگاه‌های دردسترس، مثل هدفون و بلندگو دسترسی داشته باشد و انتخاب کند از کدام دستگاه خروجی برای جاری‌سازی یا پخش صدا یا ویدیو استفاده شود."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"دسترسی به همه فایل‌ها"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"بهبود فعال‌سازی صدا"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"این دستگاه برای بهبود مدل فعال‌سازی صدا از هوش خصوصی استفاده می‌کند. برنامه‌ها می‌توانند با دریافت به‌روزرسانی‌های خلاصه‌ای که از کاربران بسیاری جمع‌آوری شده است، مدل را برای همه بهبود دهند و درعین‌حال حریم خصوصی را حفظ کنند.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> هشدار داده"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> حدمجاز داده"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> هشدار داده / <xliff:g id="ID_2">^2</xliff:g> حدمجاز داده"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"روش شرکت مخابراتی برای اندازه‌گیری مصرف داده ممکن است با روش دستگاهتان متفاوت باشد."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"داده‌هایی را که شبکه‌های شرکت مخابراتی استفاده می‌کنند لحاظ نمی‌کند"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> مصرف شده"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"تنظیم هشدار داده"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> قبل به‌روزرسانی شد"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"هم‌اکنون <xliff:g id="ID_1">^1</xliff:g> به‌روزرسانی کرد"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"اکنون به‌روزرسانی شد"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"مشاهده طرح"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"مشاهده جزئیات"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"صرفه‌جویی داده"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"داده نامحدود"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ناهنجاری در مصرف باتری"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"کاشی‌های برنامه‌نویسی تنظیمات سریع"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‏غیرفعال کردن درنگ مجوز adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"‏فسخ خودکار مجوزهای ADB (پل اشکال‌زدایی Android) برای سیستم‌هایی که ظرف مدت زمان پیش‌فرض (۷ روز) یا پیکربندی‌شده توسط کاربر (حداقل ۱ روز) دوباره متصل نشده‌اند، غیرفعال شود."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"‏رد Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"حسگرها خاموش است"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"تنظیمات نمایه کاری"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"جستجوی مخاطبین فهرست کار در برنامه‌های شخصی"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"سرویس تکمیل خودکار"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"سرویس تکمیل خودکار پیش‌فرض"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"گذرواژه‌ها"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"گذرواژه‌ها، گذرکلیدها، و سرویس‌های داده"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ارائه‌دهندگان دیگر"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# گذرواژه}one{# گذرواژه}other{# گذرواژه}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"خودکار، تکمیل، تکمیل خودکار، گذرواژه"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"داده، گذرکلید، گذرواژه"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"خودکار، تکمیل، تکمیل خودکار، داده، گذرکلید، گذرواژه"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"گذرواژه‌ها، گذرکلیدها، و سرویس‌های داده"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"‏&lt;b&gt;همه سرویس‌ها خاموش شود؟&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; گذرواژه‌ها، گذرکلیدها، و دیگر اطلاعات ذخیره‌شده هنگام ورود به سیستم برای تکمیل خودکار دردسترس نخواهد بود"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"‏&lt;b&gt;سرویس ترجیحی‌تان به &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; تغییر کند؟&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ازاین‌پس، گذرواژه‌ها و گذرکلیدهای جدید و دیگر اطلاعات اینجا ذخیره خواهد شد. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ممکن است از محتوای صفحه‌نمایش شما استفاده کند تا تشخیص دهد چه چیزهایی را می‌توان به‌طور خودکار تکمیل کرد"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"‏از %1$s استفاده شود؟"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"فقط می‌توانید ۵ سرویس روشن داشته باشید"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"حداقل ۱ سرویس را خاموش کنید تا بتوانید سرویس دیگری اضافه کنید"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"‏%1$s از محتوای روی صفحه شما استفاده می‌کند تا تشخیص دهد چه چیزهایی را می‌توان به‌طور خودکار تکمیل کرد."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"محدودیت گذرواژه‌ها، گذرکلیدها، و سرویس‌های داده"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"می‌توانید حداکثر تا ۵ گذرواژه، گذرکلید، و سرویس داده را به‌صورت هم‌زمان فعال داشته باشید. برای افزودن مورد جدید، یکی از سرویس‌ها را خاموش کنید."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"محدودیت گذرواژه‌ها، گذرکلیدها، و سرویس‌های داده"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"می‌توانید حداکثر تا ۵ گذرواژه، گذرکلید، و سرویس داده را به‌صورت هم‌زمان فعال داشته باشید. برای افزودن مورد جدید، یکی از سرویس‌ها را خاموش کنید."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"خاموش کردن"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"تکمیل خودکار"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"سطح گزارش‌دهی"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"تغییرات سازگاری برنامه را فقط برای برنامه‌های قابل اشکال‌زدایی می‌توان تغییر داد. برنامه قابل اشکال‌زدایی را نصب کنید و دوباره امتحان کنید."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"به تنظیم دیگری بستگی دارد"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"حساب"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"‏‫%d حساب"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"نام دستگاه"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"اطلاعات اصلی"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"قانونی و نظارتی"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"‏به این برنامه اجازه می‌دهد هنگام اسکن شدن نشان NFC راه‌اندازی شود.\nاگر این اجازه روشن باشد، هر زمان نشانی شناسایی شود، این برنامه به‌عنوان گزینه‌ای دردسترس خواهد بود."</string>
     <string name="media_output_title" msgid="8283629315159510680">"پخش رسانه در"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"پخش <xliff:g id="LABEL">%s</xliff:g> در"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"صدا پخش می‌شود در"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"این دستگاه"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"غیر قابل دسترسی درطول تماس"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"دریافت تماس با"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"بی‌صدا کردن"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"برای فعال کردن، ابتدا «فشار دادن و نگه داشتن دکمه روشن / خاموش» را به «منوی روشن/ خاموش» تغییر دهید."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"جزئیات شبکه"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"‏نام دستگاه شما برای برنامه‌های موجود در تلفنتان قابل‌مشاهده است. همچنین ممکن است هنگام اتصال به دستگاه‌های بلوتوث، اتصال به شبکه Wi-Fi، یا راه‌اندازی نقطه اتصال Wi-Fi، برای افراد دیگر قابل‌مشاهده باشد."</string>
     <string name="devices_title" msgid="649715719278562515">"دستگاه‌ها"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"انتخاب شبکه"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"اتصال قطع شد"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"نام"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"رنگ (برنامه‌های سازگار از آن استفاده می‌کنند)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"ذخیره"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"استفاده از سیم‌کارت"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"استفاده از این سیم‌کارت"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"خاموش"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"برای غیرفعال کردن این سیم‌کارت، آن را خارج کنید"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"برای فعال کردن <xliff:g id="CARRIER">%1$s</xliff:g>، ضربه بزنید"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"پاک‌سازی سیم‌کارت"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"نوع شبکه ترجیحی"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"تغییر حالت عملکرد شبکه"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"نوع شبکه ترجیحی"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"برای قیمت با ارائه‌دهنده شبکه‌تان بررسی کنید."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"مصرف داده برنامه"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"حالت شبکه نامعتبر <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. نادیده گرفته شود."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"نام‌های نقطه دسترسی"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"هنگام اتصال به <xliff:g id="CARRIER">%1$s</xliff:g>، دردسترس نیست"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"به <xliff:g id="CARRIER_NAME">%1$s</xliff:g> می‌روید؟"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"برای استفاده از سیم‌کارت، شرکت مخابراتی‌تان را عوض می‌کنید؟"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"از <xliff:g id="CARRIER_NAME">%1$s</xliff:g> استفاده شود؟"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"هربار فقط یک سیم‌کارت را می‌توان فعال کرد.\n\nبا رفتن به <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>، سرویس <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> شما لغو نخواهد شد."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"هربار فقط یک سیم‌کارت داخلی می‌تواند فعال شود.\n\nتغییر به <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>، سرویس <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> شما را لغو نخواهد کرد."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"هربار فقط یک سیم‌کارت را می‌توان فعال کرد.\n\nعوض کردن شرکت مخابراتی، باعث لغو سرویس <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> شما نخواهد شد."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"می‌توانید هم‌زمان از دو سیم‌کارت استفاده کنید. برای استفاده از <xliff:g id="CARRIER_NAME">%1$s</xliff:g>، سیم‌کارت دیگر را خاموش کنید."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"رفتن به <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"خاموش کردن <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"نه متشکرم"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"لغو"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"عوض کردن"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"خاموش کردن"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"سیم‌کارت فعال نشد"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"سیم‌کارت را دوباره روشن کنید. اگر مشکل ادامه داشت، دستگاهتان را بازراه‌اندازی کنید."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"راه‌اندازی سیم‌کارت"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"اولویت‌های شبکه تلفن همراه را به‌گونه‌ای تنظیم کنید که از چند سیم‌کارت در این دستگاه استفاده شود"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"برچسب زدن سیم‌کارت‌ها"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"این برچسب‌ها را هنگام برقراری تماس، ارسال پیامک، و استفاده از داده، و در «تنظیمات» خواهید دید"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"برچسب سیم‌کارت"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"برچسب"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"انتخاب کنید از کدام سیم‌کارت‌ها استفاده شود"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"می‌توانید هم‌زمان از ۲ سیم‌کارت استفاده کنید"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"تنظیم سیم‌کارت‌های پیش‌فرض"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"انتخاب کنید از کدام سیم‌کارت‌ها به‌طور پیش‌فرض برای تماس‌ها، پیامک‌ها، و داده استفاده شود"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"سیم‌کارت‌های اصلی شما"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"تماس‌ها"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"پیامک‌ها"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"عوض کردن خودکار داده"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"بسته به پوشش و دردسترس بودن، از داده یکی از سیم‌کارت‌ها استفاده می‌شود"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"فقط داده"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"راه‌اندازی"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"بعدی"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"شبکه تلفن همراه"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"شماره تلفن"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"رنگ و برچسب سیم‌کارت"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"فعال‌سازی شبکه"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"تغییر شرکت مخابراتی"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> فعال است"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"برای استفاده از داده تلفن همراه، ویژگی‌های تماس تلفنی، و بعدتر پیامک، به تنظیمات شبکه‌تان بروید"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"سیم‌کارت"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"این سیم‌کارت داخلی پاک شود؟"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"با پاک‌سازی این سیم‌کارت، سرویس <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> از این دستگاه برداشته می‌شود.\n\nسرویس مربوط به <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> لغو نمی‌شود."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"پاک‌سازی"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"درحال پاک‌سازی سیم‌کارت…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"سیم‌کارت پاک‌سازی نشد"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"به‌دلیل بروز خطا، این سیم‌کارت پاک‌سازی نشد.\n\nدستگاه را بازراه‌اندازی کنید و دوباره امتحان کنید."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"اتصال به دستگاه"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"‏برنامه <xliff:g id="APPNAME">%1$s</xliff:g> برای اتصال به دستگاهتان می‌خواهد از شبکه Wi-Fi موقت استفاده کند"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"دستگاهی پیدا نشد. مطمئن شوید دستگاه‌ها روشن و برای اتصال دردسترس هستند."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"تماس‌های اضطراری"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"‏شرکت مخابراتی شما از تماس‌های اضطراری با استفاده از «تماس ازطریق Wi‑Fi» پشتیبانی نمی‌کند. \nدستگاه برای برقراری یک تماس اضطراری، به‌طور خودکار به یک شبکه تلفن همراه جابه‌جا می‌شود.\nتماس‌های اضطراری فقط در مناطق دارای پوشش تلفن همراه امکان‌پذیر هستند."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"‏برای بهبود کیفیت تماس‌ها، از Wi‑Fi استفاده کنید"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"تماس پشتیبان"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"اگر <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> دردسترس نیست یا درحال فراگردی است، از سیم‌کارت داده تلفن همراهتان برای تماس‌های <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> استفاده کنید."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"تماس پشتیبان"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"پیام فراپیام ورودی"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"پیام فراپیام ارسال نشد"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"برای مجاز کردن ارسال پیام فراپیام در <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> وقتی داده تلفن همراه خاموش است، ضربه بزنید"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"اطلاعات خط‌مشی کار شما"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"تنظیمات مدیریت‌شده توسط سرپرست فناوری اطلاعات شما"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"‏واحد پردازش گرافیکی (GPU)"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"راه‌اندازی با اندازه صفحه ۱۶ کیلو"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"راه‌اندازی با هسته دارای پشتیبانی صفحه ۱۶ کیلو"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"با هسته سازگار صفحه ۱۶ کیلوبایتی بازراه‌اندازی شود؟"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"هشدار: ممکن است برخی‌از برنامه‌ها با این حالت سازگار نباشند. دستگاه پس‌از تأیید، بازراه‌اندازی خواهد شد."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"با هسته سازگار صفحه ۴ کیلوبایتی بازراه‌اندازی شود؟"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"دستگاه پس‌از تأیید، بازراه‌اندازی خواهد شد."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"ارتقا هسته به هسته سازگار با صفحه ۱۶ کیلوبایتی انجام نشد."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"اعمال تغییرات"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"کنترل‌کننده گزارش اشکال"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"تعیین می‌کند کدام برنامه میان‌بر «گزارش اشکال» را در دستگاه کنترل کند."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"شخصی"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"برای ازسر گرفتن سریع بازپخش، پخش‌کننده رسانه در «تنظیمات فوری» باز می‌ماند"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"نمایش رسانه در صفحه قفل"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"برای ازسر گرفتن سریع بازپخش، پخش‌کننده رسانه در صفحه قفل باز می‌ماند"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"نمایش توصیه‌های رسانه"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"نمایش رسانه‌های توصیه‌شده «دستیار»"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"براساس فعالیت شما"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"پنهان کردن پخش‌کننده"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"نمایش دادن پخش‌کننده"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"سیم‌کارت"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"سیم‌کارت داخلی"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"سیم‌کارت‌های داخلی"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"فعال"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"غیرفعال"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / پیش‌فرض برای <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"تماس‌ها"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"پیامک"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"صدای رسانه‌های سازگار فراگیرتر می‌شود"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ردیابی سر"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"با حرکت سرتان، صدا تغییر می‌کند تا طبیعی‌تر شنیده شود"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"همگام‌سازی اجازه‌ها"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"به <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> همان اجازه‌های برنامه‌ای داده می‌شود که به <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> داده‌اید"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"همگام‌سازی اجازه‌ها از تلفن"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"به ساعتتان همان اجازه‌های برنامه‌ای را بدهید که به این تلفن داده‌اید"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"نوع دستگاه صوتی"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"نامشخص"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"بلندگو"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
     <string name="contrast_high" msgid="3988567609694797696">"بالا"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"این برنامه فقط در ۱ پنجره می‌تواند باز شود"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"روشن"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"خاموش"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"خاموش"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"خاموش"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"روشن"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"خاموش"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"روشن"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"خاموش"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"صفحه‌های روشن را تیره و صفحه‌های تیره را روشن می‌کند"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"زوم‌پیش کردن در صفحه"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"خاموش"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"خاموش"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"روشن"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"خاموش"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"روشن"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"گذرواژه اکنون تنظیم شد"</string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index a1707fe..159a2f8 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 minuutin kuluttua"</item>
     <item msgid="1574040255478150028">"5 minuutin kuluttua"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index c16cb0c..a91ff96 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Olet nyt kehittäjä!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Ei tarvitse klikata, olet jo kehittäjä."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Ota kehittäjäasetukset ensin käyttöön."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Vain järjestelmänvalvojilla on pääsy kehittäjäasetuksiin."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Järjestelmä"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Kuuluvuusalueella"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Katvealueella"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Etunäyttö menee päälle, kun taitat laitteen"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Vain pelit, videot ym."</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Etunäyttö menee päälle, kun käytössä on sovellus, joka estää näyttöä siirtymästä epäaktiiviseen tilaan"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Jatka pyyhkäisemällä ylös"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Taita puhelin ja pyyhkäise ylös etunäytöllä jatkaaksesi sovelluksen käyttöä tai odota muutama sekunti, kunnes näyttö lukittuu."</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Ei koskaan"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Etunäyttö lukittuu, kun taitat laitteen"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Käytä automaattista kääntöä"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Samankaltaisia"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Soittoääni ja hälytykset"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio puheluiden aikana"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Ilmoitukset ja muut äänet"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Median ja järjestelmän äänet"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Ilmoitukset"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Yksittäiset sovellukset määrittävät äänen ulostulon oletuksena"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Nimetön Bluetooth-laite"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Haetaan"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth käytössä"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Näytä kaikki"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Näytä kaikki"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Näyttökynä"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Näyttökynäpainikkeen painallus"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (työprofiili)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Yhdistä LE Audio ‑striimiin"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Lähellä olevat audiostriimit"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audiostriimit"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Yhdistä audostriimiin QR-koodilla"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Audiostriimejä ei löytynyt lähistöltä."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Voit valita kielen kullekin sovellukselle sen kieliasetuksista."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Lue lisää sovellusten kielistä"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Muutetaanko järjestelmän kieleksi %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Lisätäänkö %s ensisijaisiin kieliin?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Tämä kertoo sovelluksille ja verkkosivustoille, että tämä on yksi ensisijaisista kielistä."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Laitteen asetukset ja alueelliset valinnat muuttuvat."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Muuta"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ei ole saatavilla"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Lauantai"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Jos sovellus ei tue alueellisia valintoja, se käyttää oletusarvoista kieli- ja maa-asetusta."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Lue lisää kieliasetuksista."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Lisäasetukset"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Kieliopillisen suvun valitsin"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Valitse, miten haluat itseäsi puhuteltavan"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Sovellukset voivat personoida sitä, miten ne puhuttelevat sinua, valitsemasi kieliopillisen suvun perusteella"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ei määritetty"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminiini"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maskuliini"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutraali"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Poistetaanko valittu kieli?}other{Poistetaanko valitut kielet?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teksti näytetään toisella kielellä."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kaikkia kieliä ei voi poistaa"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Sijainti"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Käytä sijaintia"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Pois päältä"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Päällä – # sovelluksella on pääsyoikeus sijaintiin}other{Päällä – # sovelluksella on pääsyoikeus sijaintiin}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Päällä / # sovelluksella on pääsyoikeus sijaintiin}other{Päällä / # sovelluksella on pääsyoikeus sijaintiin}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ladataan…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Sovellukset, joilla on lähellä olevien laitteiden lupa, voivat määrittää yhdistettyjen laitteiden suhteellisen sijainnin."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Sovelluksilla ja palveluilla ei ole sijaintilupaa. Tiedot laitteesi sijainnista voidaan silti lähettää pelastustyöntekijöille, kun soitat tai lähetät tekstiviestin hätänumeroon."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Lue lisää sijaintiasetuksista."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Lue lisää sijaintiasetuksista"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Pääsy sijaintiin: Asetukset &gt; Tietosuoja ja yksityisyys &gt; Yksityisyysasetukset"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Saat parhaan lopputuloksen käyttämällä Made For Google ‑sertifioitua näytönsuojusta. Lapsesi sormenjälki ei välttämättä toimi muiden näytönsuojusten kanssa."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Kellon avaus"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Otettuasi kasvojentunnistus- ja sormenjälkiavauksen käyttöön puhelimesi pyytää sormenjälkeäsi, kun käytät maskia tai olet pimeässä ympäristössä.\n\nVoit avata lukituksen kellolla, jos kasvojasi tai sormenjälkeäsi ei tunnisteta."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Voit avata lukituksen kellolla, jos sormenjälkeäsi ei tunnisteta."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Voit avata lukituksen kellolla, jos kasvojasi ei tunnisteta."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Otettuasi kasvojentunnistus- ja sormenjälkiavauksen käyttöön puhelimesi pyytää sormenjälkeäsi, kun käytät maskia tai olet pimeässä ympäristössä.\n\nKellon avaus on kätevä tapa avata puhelin, esimerkiksi jos sormesi ovat kastuneet tai kasvojen tunnistus ei onnistu."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Kellon avaus on kätevä tapa avata puhelin, esimerkiksi jos sormenjäljen tunnistus ei onnistu."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Kellon avaus on kätevä tapa avata puhelin, esimerkiksi jos kasvojen tunnistus ei onnistu."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Käytä sormenjälkeä tai kelloa:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Käytä kasvoja tai kelloa:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Käytä kasvoja, sormenjälkeä tai kelloa:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Kasvot ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Kasvot, sormenjälki ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Kasvot, sormenjäljet ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticatorin lukituksen avaus"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Kello lisätty"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kellon käyttöönotto"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Kellon avaus on kätevä tapa avata puhelin, esimerkiksi jos sormesi ovat kastuneet tai kasvojen tunnistus ei onnistu.\n\nVoit käyttää kelloa puhelimen avaamiseen näin:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ei nyt"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Jatka"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Lisää"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Näin se toimii"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Kellon on oltava avattuna, ranteessa ja lähellä tätä puhelinta. Sinun ei tarvitse avata kellon lukitusta uudelleen, kun se on ranteessasi."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kun puhelimen lukitus avataan, saat siitä ilmoituksen kelloon. Jos puhelin avattiin vahingossa, voit lukita puhelimen uudelleen napauttamalla ilmoitusta."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Hallitset tiliäsi itse"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Voit poistaa kellon avauksen milloin tahansa asetuksista"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Napauta ilmoitusta"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pyyhkäise ylös lukitusnäytöllä"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Valitse kellosi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Käytettävissä olevat kellot"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Peruuta"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Vahvista"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Valmista!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Voit nyt avata puhelimen lukituksen kellolla pyyhkäisemällä ylös lukitusnäytöltä tai napauttamalla ilmoitusta"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Valmis"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Kellon avaus"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Voit avata puhelimen lukituksen kellolla pyyhkäisemällä ylös lukitusnäytöltä tai napauttamalla ilmoitusta"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Voit käyttää kellon avausta, kun kello on avattuna, ranteessasi, lähellä sinua ja yhdistettynä puhelimeen. Jos yhteys keskeytyy, sinun pitää avata puhelimen lukitus ennen kuin voit käyttää kellon avausta.\n\nHyvä muistaa:\nVain yksi kello voi olla käytössä kerrallaan. Jos haluat lisätä uuden kellon, poista ensin nykyinen."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lue lisää kellon avauksesta"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lisää kello"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Poista kello"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sormenjälki ja kasvojentunnistusavaus"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Kasvojentunnistus- ja sormenjälkiavaus työkäyttöön"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Edellyttää käyttöönottoa"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Suojaus"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Yksityisyys"</string>
     <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="2274405892301976238">"Pidä yksityiset sovellukset lukittuna ja piilossa"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Pidä yksityiset sovellukset erillisessä tilassa, jonka voit piilottaa tai lukita"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Yksityisen tilan lukitus"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Voit avata yksityisen tilan lukituksen samaan tapaan kuin avaat laitteen lukituksen tai voit valita eri lukon"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Käytä laitteen näytön lukitusta"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Kasvojentunnistus- ja sormenjälkiavaus"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Sormenjälkiavaus"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Kasvojentunnistusavaus"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Ota käyttöön napauttamalla"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Sormenjälkiavaus yksityiselle tilalle"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Kasvojentunnistusavaus yksityiselle tilalle"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Tapoja avata lukitus"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Sama kuin laitteen näytön lukitus"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Valitaanko yksityiselle tilalle uusi lukitus?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lukitse automaattisesti"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lukitse yksityinen tila automaattisesti"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Voit lukita yksityisen tilan automaattisesti, jos et ole käyttänyt laitettasi hetkeen"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Aina kun laite lukittuu"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 minuutin toimettomuuden jälkeen"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Ei koskaan"</string>
+    <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_delete_title" msgid="3075645119800272800">"Yksityisen tilan poistaminen"</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="private_space_unlocked" msgid="9091600948712932046">"Yksityinen tila avattiin"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Näytön lukituksen asettaminen"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Jos haluat käyttää yksityistä tilaa, aseta laitteelle 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="private_space_cancel_label" msgid="379259667396956886">"Peruuta"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Ota käyttöön"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Yksityisen tilan käyttöönotto"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Pidä yksityiset sovellukset erillisessä tilassa, jonka voit piilottaa tai lukita"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Näin se toimii"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Saat pääsyn yksityiseen tilaan sovelluslistan alareunasta"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Yksityisen tilan sovelluksia suojataan lukolla"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Ilmoitukset yksityisen tilan sovelluksista ovat piilotettuina, kun se on lukittu"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Yksityisen tilan sovellukset eivät näy lupienhallinnassa, yksityisyydenhallintapaneelissa tai muissa asetuksissa, kun yksityinen tila on lukittuna.\n\nYksityistä tilaa ei voi siirtää toiseen laitteeseen. Sinun täytyy ottaa käyttöön uusi yksityinen tila, jos haluat käyttää sitä toisella laitteella.\n\nKuka tahansa, joka yhdistää laitteesi tietokoneeseen tai asentaa laitteelle haitallisia sovelluksia, voi saada pääsyn yksityiseen tilaan."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Yksityistä tilaa otetaan käyttöön…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Ilmoitukset yksityisen tilan sovelluksista ovat piilotettuina, kun se on lukittu"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Yksityisen tilan sovellusten kuvia ja tiedostoja voi jakaa, kun sen lukituksen avaa"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Jotkin sovellukset on jo asennettu yksityiseen tilaan"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Yksityisen tilan käyttöönotto epäonnistui"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Yritä uudelleen"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Käytetäänkö avaamiseen näytön lukitusta?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Voit avata yksityisen tilan lukituksen samaan tapaan kuin avaat laitteen lukituksen tai voit valita eri lukon"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Käytä näytön lukitusta"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Valitse uusi lukko"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Valmista tuli!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Jos haluat käyttää yksityistä tilaa, siirry sovelluslistaan ja vieritä alas"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Valmis"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Etsi yksityinen tila vierittämällä alas"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Yksityisen tilan lukitustavan valinta"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Voit avata yksityisen tilan lukituksen sormenjäljelläsi. Turvallisuussyistä tämä edellyttää, että valitset varalukitustavan."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Määritä PIN-koodi yksityiselle tilallesi"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Määritä salasana yksityiselle tilallesi"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Määritä kuvio yksityiselle tilallesi"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Näyttääksesi Yksityisen tilan (ei lopullinen UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Avaa Asetukset-sovellus"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Valitse Turvallisuus ja yksityisyys &gt; Yksityinen tila &gt; Yksityisen tilan piilottaminen, kun se on lukittuna"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"\"Yksityisen tilan piilottaminen, kun se on lukittuna\" pois"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Huomautus Googlen työntekijöille: Tämän ominaisuuden kehitys on kesken."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Saatat joutua syöttämään tämän koodin myös toiseen laitteeseen."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Vahvista laiteparin muodostus koordinoidun joukon kanssa"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Anna pääsyoikeus yhteystietoihisi ja puheluhistoriaasi"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Salli myös pääsy yhteystietoihin ja soittohistoriaan"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Tietoja käytetään esimerkiksi puheluilmoituksiin"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Yhteyden muodostaminen laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> epäonnistui."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Saatavilla olevat laitteet"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kun Bluetooth on päällä, laite voi viestiä muiden lähellä olevien Bluetooth-laitteiden kanssa"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Lentokonetilassa"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Ilmoita julkisista verkoista"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Ilmoita, kun käytettävissä on laadukkaita julkisia verkkoja"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Salli WEP-verkot"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP on vanhempi tietoturvaprotokolla, joka on vähemmän turvallinen"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operaattori ei salli WEP-verkkoja, koska ne ovat vähemmän turvallisia"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Laita Wi-Fi päälle automaattisesti"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi laitetaan automaattisesti päälle, kun lähistöllä on kotiverkkosi tai muita laadukkaita tallennettuja verkkoja"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Ei käytettävissä, koska sijainti on poistettu käytöstä. Ota "<annotation id="link">"sijainti"</annotation>" käyttöön."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi-haku sallii sovellusten ja palvelujen hakea Wi‑Fi-verkkoja aina, vaikka Wi-Fi olisi pois käytöstä. Näin voidaan esimerkiksi kehittää sijaintiin perustuvia ominaisuuksia ja palveluja."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Ota käyttöön"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi-Fi-haku on käytössä"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Tämä verkko käyttää vanhempaa tietoturvaprotokollaa, joka on vähemmän turvallinen"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> on estetty"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Tämä verkko käyttää vanhempaa WEP-tietoturvaprotokollaa, joka on vähemmän turvallinen. Jos haluat silti yhdistää siihen, voit sallia WEP-verkot."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operaattori ei salli yhteyden muodostamista tähän verkkoon, koska se käyttää vanhempaa tietoturvaprotokollaa, joka on vähemmän turvallinen"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Salli WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Sulje"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Lisäasetukset"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lisäasetusten avattava lista"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"laajenna"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Jatka Wi-Fi-yhteydellä"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Älä näytä uudelleen"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Yhdistä"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi on käytössä"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Yhdistetty verkkoon <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Yhdistetään: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Yhdistetään…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Yhteyden muodostaminen verkkoon epäonnistui."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Verkko ei ole kantoalueella"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Unohda"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Muokkaa"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Verkon unohtaminen epäonnistui."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Tallenna"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Verkon tallentaminen epäonnistui."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Peru"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobiilidata"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Ladataan"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Ladataan"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot-yhteys"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Yhteyden vahvuus"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Tallennetut verkot"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Ei salasanaa"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspotin nimi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspotin salasana"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-taajuus"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Laita hotspot pois päältä automaattisesti"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kun laitteita ei ole yhdistettynä"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Laajenna yhteensopivuus"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Näytä valkotasapaino"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Älä rajoita pelien kuvanopeutta"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Poista kuvanopeuden rajoittaminen <xliff:g id="FRAME_RATE">%1$d</xliff:g> hertsiin pelien osalta."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Huomionäyttö näkee etukameralla, katsooko joku näyttöä. Ominaisuus toimii laitteella, eikä kuvia ikinä tallenneta tai lähetetä Googlelle."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Laita huomionäyttö päälle"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Pidä näyttö päällä, kun sitä katsotaan"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Jos näytön aikakatkaisulla on pitkä kesto, akkua kuluu enemmän."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera on lukittu"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kameran lukitus on avattava kasvojentunnistusta varten"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameran lukitus on avattava huomionäyttöä varten"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI-koodi (sim-paikka <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI-koodi (sim-paikka <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ensisijainen)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Valitse tallennettu verkko nähdäksesi tämän"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI-koodi"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-versio"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Akun taso"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Yhteiskäyttö"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Yhteiskäytön asetukset"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Tallenna"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Peru"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Nimi-kenttä ei voi olla tyhjä."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ei voi olla tyhjä."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-kentän arvon on oltava 3 numeroa."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-kentän arvon on oltava 2 tai 3 numeroa."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operaattori ei salli %s-tyyppisten APN:ien lisäämistä."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-kentän täytyy olla kelvollinen."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Palautetaan APN-oletusasetuksia"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Palauta oletukset"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"APN-oletusasetukset on palautettu."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Nollaa"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth ja Wi-Fi on nollattu"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMien poistaminen"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Tämä ei peru liittymäsopimustasi. Jos haluat ladata korvaavia SIM-kortteja, ota yhteyttä operaattoriin."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Nollaa asetukset"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Nollataanko kaikki verkkoasetukset? Toimintoa ei voi kumota."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Nollataanko verkon kaikki asetukset ja poistetaanko eSIMit? Toimintoa ei voi kumota."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Nollataanko?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Tämä käyttäjä ei voi palauttaa verkon asetuksia."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Verkkoasetuksesi on nollattu."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM-korttien tyhjennys ei onnistu"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMejä ei voi poistaa virheen vuoksi.\n\nKäynnistä laite uudelleen ja yritä sitten uudelleen."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Poista data (tehdasasetuksiin)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Poista data (tehdasasetuksiin)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"musiikin"</li>\n<li>"valokuvat"</li>\n<li>"muun käyttäjädatan"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMit"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Tämä ei peru mobiilipalvelupakettiasi."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Kaikki henkilökohtaiset tietosi ja ladatut sovellukset poistetaan. Toimintoa ei voi kumota."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Kaikki henkilökohtaiset tietosi poistetaan, mukaan lukien ladatut sovellukset ja SIM-kortit. Toimintoa ei voi kumota."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Poistetaanko kaikki data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Tämä käyttäjä ei voi palauttaa tehdasasetuksia"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Tyhjennetään"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internetyhteyttä ei jaeta muille laitteille."</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Pois päältä"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Puhelimen käyttäminen modeemina"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Älä käytä Wi-Fi-hotspotia"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Jaa verkkoyhteys vain USB:n kautta"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Jaa verkkoyhteys vain Bluetoothin kautta"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Jaa verkkoyhteys vain Ethernetin kautta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Jaa verkkoyhteys USB:n ja Bluetoothin kautta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Jaa verkkoyhteys vain USB:n ja Ethernetin kautta"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Jaa verkkoyhteys vain Bluetoothin ja Ethernetin kautta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Jaa verkkoyhteys vain USB:n, Bluetoothin ja Ethernetin kautta"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Internetin jakaminen USB:n kautta"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Jaettu Bluetooth-yhteys"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernetin jakaminen"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Jaa internetyhteys muille laitteille Wi-Fin tai mobiilidatan avulla hotspotilla tai käyttämällä puhelinta modeemina. Sovellukset voivat myös luoda hotspotin ja jakaa sisältöä lähellä oleville laitteille."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ohjeet"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobiiliverkko"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiilisopimus"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Tekstiviestisovellus"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vaihdetaanko tekstiviestisovellus?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Haluatko, että oletussovellus on <xliff:g id="NEW_APP">%1$s</xliff:g> eikä enää <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vaihdetaanko Wi‑Fi Assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%1$s</xliff:g> sovelluksen <xliff:g id="CURRENT_APP">%2$s</xliff:g> sijaan?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Hallinnoidaanko verkkoyhteyksiä sovelluksella <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Tuntematon SIM-operaattori"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Ei tunnettua käyttäjien hallintasivustoa: <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Aseta SIM-kortti ja käynnistä uudelleen"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Muodosta yhteys internetiin"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Viimeisimmät sijaintipyynnöt"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Työprofiilin sijainti"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Sovellusten sijaintiluvat"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Poista käyttöoikeus"</string>
     <string name="controls_label" msgid="8671492254263626383">"Hallinta"</string>
     <string name="force_stop" msgid="2681771622136916280">"Pakota lopetus"</string>
+    <string name="archive" msgid="9074663845068632127">"Arkistoi"</string>
+    <string name="restore" msgid="7622486640713967157">"Palauta"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Yhteensä"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Sovelluksen koko"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Sovelluksen käyttämä USB-tallennustila"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Paketin koon laskeminen epäonnistui."</string>
     <string name="version_text" msgid="7628938665256107608">"versio <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Siirrä"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arkistointi epäonnistui"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> arkistoitu"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Palautus epäonnistui"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Palautetaan: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Toinen siirto on jo käynnissä."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ei tarpeeksi säilytystilaa."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Sovellusta ei ole olemassa."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Saatavilla oleva näyttönäppäimistö"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Ylläpidä näyttönäppäimistöjä"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Vaihtoehdot"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Saavutettavuus"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyysinen näppäimistö"</string>
     <string name="show_ime" msgid="4334255501724746849">"Käytä näyttönäppäimistöä"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Pidä näytöllä, kun fyysinen näppäimistö on aktiivinen"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Toistuvien painallusten ohitus"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Ota käyttöön toistuvien painallusten ohitus parantaaksesi fyysinen näppäimistön saavutettavuutta"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Päälle jäävät näppäimet"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Ota käyttöön päälle jäävät näppäimet parantaaksesi fyysinen näppäimistön saavutettavuutta"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pikanäppäimet"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Näytä pikanäppäimet"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Työprofiilin näppäimistöt ja työkalut"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Lajittele käytön perusteella"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Lajittele viimeisimmät ensin"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Lajittele nimen perusteella"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Viimeinen käyttöaika"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Käytetty viimeksi"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ei koskaan"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Käyttöaika"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Saavutettavuus"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Saavutettavuusasetukset"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Jatka silti"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Peru"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Suurennusasetukset"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Suurenna kolmoisnapautuksella"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Suurenna pikanäppäimellä"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Suurenna pikanäppäimellä ja kolmoisnapautuksella."</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Tietoja: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Avaa napauttamalla näyttöä kahdesti 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="860548190334486449">"Aloita tai lopeta suurennus kaksoisnapauttamalla 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Laita esteettömyysominaisuus 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Painikkeen asetukset"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Painikkeen asetukset"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Pikanäppäin: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Saavutettavuuspainike"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Esteettömyysele"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Kaksoisnapauta näyttöä kahdella sormella"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"kaksoisnapauta näyttöä kahdella sormella"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Napauta näyttöä {0,number,integer} kertaa nopeasti kahdella sormella"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Kolmoisnapauta näyttöä"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Lue lisää esteettömyyspainikkeesta ja ‑eleestä"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Esteettömyyspainikkeen käyttö. Elettä ei voi käyttää kolmen painikkeen navigoinnissa."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Avaa saavutettavuusominaisuudet nopeasti"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Näin pääset alkuun"</b>\n"1. Siirry saavutettavuusasetuksiin\n2. Valitse ominaisuus ja napauta pikanäppäintä\n3. Valitse, haluatko saada pääsyn ominaisuuteen painikkeella vai eleellä"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Näin pääset alkuun"</b>\n"1. Siirry saavutettavuusasetuksiin\n2. Valitse ominaisuus ja napauta pikanäppäintä\n3. Valitse painike, jolla saat pääsyn ominaisuuteen"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Näin pääset alkuun&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Avaa saavutettavuusasetukset&lt;br/&gt; {1,number,integer}. Valitse ominaisuus ja napauta pikanäppäintä&lt;br/&gt; {2,number,integer}. Valitse, haluatko avata ominaisuuden painikkeella vai eleellä&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Näin pääset alkuun&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Avaa saavutettavuusasetukset&lt;br/&gt; {1,number,integer}. Valitse ominaisuus ja napauta pikanäppäintä&lt;br/&gt; {2,number,integer}. Valitse painike, jolla saat pääsyn ominaisuuteen&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Käytä painiketta tai elettä"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Sijainti"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Koko"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Puhelun katkaisu virtapainikkeella"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Suuri hiiren osoitin"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Voit muuttaa hiiren osoitinta helpommin huomattavaksi"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Tumma teema kaikissa sovelluksissa"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Koskee sovelluksia, joilla ei ole omaa tummaa teemaa. Voi aiheuttaa ongelmia joissakin sovelluksissa."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Poista animaatiot"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Vähennä näytöllä näkyvää liikettä"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monoaudio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Se voi seurata toimintaasi sovelluksella tai laitteistoanturilla ja käyttää sovelluksia puolestasi."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Salli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Estä"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Lopeta"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Peru"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Pysäytetäänkö <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Kun valitset <xliff:g id="STOP">%1$s</xliff:g>, <xliff:g id="SERVICE">%2$s</xliff:g> pysähtyy."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Pois"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Päällä"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Laitetaanko <xliff:g id="SERVICE">%1$s</xliff:g> pois päältä?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ei asennettuja palveluita"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Palvelua ei ole valittuna"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Ei kuvausta."</string>
     <string name="settings_button" msgid="2195468788019730377">"Asetukset"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"valonarkuus, fotofobia, tumma teema, migreeni, päänsärky, lukutila, yötila, vähennä kirkkautta, valkoinen piste"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Helppokäyttöisyys, helppo käyttää, apu, avustava"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"näkö, kuulo, sokea, kuuro, motoriikka, liikkuvuus, avustava, avustus, helppokäyttöisyys, helppo pääsy, käsi, ohje"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Ikkunan suurennus, heikko näkö, suurenna, muuta suuremmaksi"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Tekstitykset, videotekstitykset, Live Transcribe, huonokuuloinen, kuulon heikkeneminen, CART, puheesta tekstiksi, tekstitys"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"värikontrasti"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motoriikka, hiiri"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"kuulolaitteet, huonokuuloinen, kuulonmenetys, sisäkorvaimplantit, äänenvahvistuslaitteet, puheprosessori"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motoriikka, hiiri, ulkoinen hiiri, päähiiri, mukautuva hiiri, pyörätuoli, ohjainsauva"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"kuulolaitteet, huonokuuloinen, kuulon heikkeneminen, sisäkorvaimplantit, äänenvahvistuslaitteet, puheprosessorit, henkilökohtaiseen äänenvahvistukseen tarkoitetut tuotteet (PSAP)"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"huonokuuloinen, kuulon heikkeneminen, tekstitykset, kaukokirjoitin, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"kolme painiketta"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"liikkuvuus, motoriikka, iäkäs, niveltulehdus, aivoinfarkti, vapina, MS-tauti, CP-vamma, tärinä, rasitusvamma, käsi"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"viive, liikkuvuus, iäkäs"</string>
     <string name="print_settings" msgid="8519810615863882491">"Tulostus"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Pois päältä"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 tulostuspalvelu päällä}other{# tulostuspalvelua päällä}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Katso eniten kuluttavat sovellukset"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Lataus optimoitu akun suojaamiseksi"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Lataus optimoidaan, jotta akku kestäisi pidempään"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Lataus optimoitu akun suojaamiseksi"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Lataus optimoidaan laitteen ollessa telineessä, jotta akku kestäisi pidempään"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Lataus optimoitu akun suojaamiseksi"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Lataus optimoidaan laitteen ollessa telineessä, jotta akku kestäisi pidempään"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Ladataan täyteen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Akun suojaamiseksi lataus optimoidaan tabletin ollessa telineessä seuraavan kerran"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Lue lisää latauksen keskeyttämisestä"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Jatka lataamista"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Sisältää virtaa paljon kuluttavat taustatoiminnot"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Poista"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Peru"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Lataa akku täyteen"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Ongelma laturin kanssa"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Lue lisää yhteensopimattomasta latauksesta"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Virranhallinta"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Hallinnoi sovelluksia automaattisesti"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"nyt"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Kaavio akun käytöstä"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Kaavio päiväkohtaisesta akun käytöstä"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Kaavio tuntikohtaisesta akun käytöstä"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Akun varaustaso prosentteina <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>–<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Akun käyttö edellisen täyden latauksen jälkeen"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Akun käyttö: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Käyttöaika edellisen täyden latauksen jälkeen"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Hätäpuhelun äänimerkki"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Aseta toiminta hätäpuhelun tapauksessa"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Varmuuskopiointi"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Päällä"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Ei päällä"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Varmuuskopiointi &amp; palautus"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Henkilökohtaiset tiedot"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Tietojen varmuuskopiointi"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nimi"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tyyppi"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Palvelimen osoite"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-salaus (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-salaisuus"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-tunnus"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Esijaettu IPSec-avain"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-käyttäjävarmenne"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec-CA-varmenne"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-palvelinvarmenne"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Näytä lisäasetukset"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Nimipalveluhaun verkkotunnukset"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-palvelimet (esim. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Reititykset (esim. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Käyttäjätunnus"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Salasana"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Tallenna tilitiedot"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ei käytössä)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(älä vahvista palvelinta)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(palvelimelta saatu)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Tämä VPN-tyyppi ei voi ylläpitää yhteyttä kaikissa tilanteissa."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Aina käytössä oleva VPN-yhteys tukee vain numeromuotoisia palvelinosoitteita."</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Aina käytössä olevaa VPN-yhteyttä varten täytyy määrittää DNS-palvelin."</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Aina käytössä oleva VPN-yhteys edellyttää, että DNS-palvelimien osoitteet ovat numeromuodossa."</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Annetut tiedot eivät ole yhteensopivia aina käytössä olevan VPN-yhteyden kanssa."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Peru"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Hylkää"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Estä yhteydet, jotka eivät käytä VPN:ää"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vaaditaanko VPN-yhteyttä?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ei turvallinen. Päivitä IKEv2 VPN:ään"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Ei-tuettua VPN-yhteyttä ei voitu käynnistää."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Valitse VPN-profiili, johon muodostettu yhteys on aina käytössä. Verkkoliikenne sallitaan vain tämän VPN-yhteyden ollessa käytössä."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"-"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Aina käytössä oleva VPN edellyttää, että sekä palvelimella että DNS-palvelulla on IP-osoite."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER-hälytykset"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Vastaanota tiedotteita kaapatuista lapsista"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Toista"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Ota Call Manager käyttöön"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Anna palvelun hallinnoida puheluita."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Langattomat hätähälytykset"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Verkko-operaattorit"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Tukiasemien nimet"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"maksa, napauta, maksut"</string>
     <string name="keywords_backup" msgid="707735920706667685">"varmuuskopiointi, varmuuskopio"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ele"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"kasvot, avaaminen, todennus, kirjautuminen"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"kasvot, todennus, sisäänkirjautuminen, sormenjälki, biometriikka"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-versio, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Käynnistysäänet"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Livetekstitys"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Tekstitä media automaattisesti"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Puhelimen kaiuttimet"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tabletin kaiuttimet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Laitteen kaiuttimet"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Langalliset kuulokkeet"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Yhteensopivan median audiosta tulee immersiivisempää"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Poissa päältä"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Mitä haluat lukitusnäytön näyttävän?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Viimeisimmät keskustelut poistettiin"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Keskustelu poistettu"</string>
     <string name="clear" msgid="5092178335409471100">"Tyhjennä"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Tyhjennä <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Tärkeät ja muokatut keskustelut näkyvät tässä"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Kun merkitset keskustelun tärkeäksi tai teet keskusteluihin muita muutoksia, ne näkyvät tässä. \n\nKeskusteluasetusten muuttaminen: \nAvaa ilmoitusalue vetämällä alas näytön yläreunasta ja kosketa keskustelua pitkään."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Pienennä"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Ei käytössä"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Sovelluksen kiinnitys"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Sovelluksen kiinnityksellä voit pitää nykyisen sovelluksen näkyvissä, kunnes irrotat sen. Tällä ominaisuudella voi esimerkiksi antaa luotettavan kaverin pelata tiettyä peliä."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kun sovellus on kiinnitetty, sillä voi avata muita sovelluksia ja saada pääsyn henkilökohtaiseen dataan. \n\nSovelluksen kiinnitys: 	\n1. Laita sovelluksen kiinnitys päälle 	\n2. Avaa Viimeisimmät 	\n3. Valitse näytön yläreunasta sovelluksen kuvake ja sitten Kiinnitä"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kun sovellus on kiinnitetty, sillä voi avata muita sovelluksia ja saada pääsyn henkilökohtaiseen dataan. \n\nJos haluat jakaa laitteesi turvallisesti toisen henkilön kanssa, kokeile sen sijaan vieraskäyttäjää. \n\nSovelluksen kiinnitys: 	\n1. Laita sovelluksen kiinnitys päälle 	\n2. Avaa Viimeisimmät 	\n3. Valitse näytön yläreunasta sovelluksen kuvake ja sitten Kiinnitä"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kun sovellus on kiinnitetty, sillä voi avata muita sovelluksia ja saada pääsyn henkilökohtaiseen dataan. \n\nNäin voit kiinnittää sovelluksen: 	\n{0,number,integer}. Laita päälle sovelluksen kiinnitys 	\n{1,number,integer}. Avaa Viimeisimmät 	\n{2,number,integer}. Valitse näytön yläreunasta sovelluksen kuvake ja sitten Kiinnitä"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kun sovellus on kiinnitetty, sillä voi avata muita sovelluksia ja saada pääsyn henkilökohtaiseen dataan. \n\nJos haluat jakaa laitteesi turvallisesti toisen henkilön kanssa, kokeile sen sijaan vieraskäyttäjää. \n\nNäin voit kiinnittää sovelluksen: 	\n{0,number,integer}. Laita päälle sovelluksen kiinnitys 	\n{1,number,integer}. Avaa Viimeisimmät 	\n{2,number,integer}. Valitse näytön yläreunasta sovelluksen kuvake ja sitten Kiinnitä"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kun sovellus on kiinnitetty: \n\n• Henkilökohtaisiin tietoihin saattaa olla pääsy \n (esim. yhteystiedot ja sähköpostin sisältö) \n•		Kiinnitetty sovellus voi avata muita sovelluksia \n\nKäytä sovelluksen kiinnitystä vain ihmisten kanssa, joihin luotat."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pyydä lukituksenpoistokuviota ennen irrotusta"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Pyydä PIN ennen irrotusta"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Käyttämättömien sovellusten asetukset"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Keskeytä sovellustoim. jos ei käytössä"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Poista käyttämättömät luvat ja väliaikaiset tiedostot ja pysäytä ilmoitukset"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Hallinnoi sovellusta, jos käyttämätön"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Poista käyttämättömät luvat ja väliaikaiset tiedostot, pysäytä ilmoitukset ja arkistoi sovellus"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Kaikki sovellukset"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Asennetut sovellukset"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Pikasovellukset"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Vapaana"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Sovellusten käyttämä muisti"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 sovellus käytti muistia tänä aikana: {time}}other{# sovellusta käytti muistia tänä aikana: {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Ota käyttöön muistin käytön profilointi"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Muistin käytön profilointiin tarvitaan lisää järjestelmän resursseja."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Muistin käytön profilointi poissa käytöstä"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Toistuvuus"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Enimmäiskäyttö"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Dataa ei ole käytetty"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Näkyminen muiden päällä"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Salli näyttäminen muiden sovellusten päällä"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Anna sovelluksen näkyä muiden avoimien sovellusten päällä. Tämä sovellus voi nähdä, mitä kohtaa napautat, ja muuttaa, mitä näytöllä näytetään."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Median ulostulon muuttaminen"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Salli sovelluksen muuttaa median ulostuloa"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Salli tämän sovelluksen päättää, mikä yhdistetty laite toistaa muiden sovellusten audion tai videon. Jos tämä on sallittua, sovellus näkee saatavilla olevat laitteet, esimerkiksi kuulokkeet ja kaiuttimet, ja voi päättää, millä tulolaitteella audio tai video striimataan."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Pääsy kaikkiin tiedostoihin"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Paranna puheaktivointia"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Tämä laite käyttää yksityisiä tietoja puheaktivointimallin parantamiseen. Sovellukset voivat vastaanottaa päivityksiä, jotka on koottu monilta käyttäjiltä yksityisyyden säilyttämiseksi samalla, kun puheaktivointimallia parannetaan kaikille.\n\n"<a href="">"Lisätietoa yksityisistä tiedoista"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Datavaroitus <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Dataraja <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datavaroitus <xliff:g id="ID_1">^1</xliff:g> / Dataraja <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operaattorin mittaama datan määrä voi erota laitteen mittaustuloksesta."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ei sisällä operaattoriverkkojen käyttämää dataa"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> käytetty"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Aseta datankäyttövaroitus"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Päivitetty <xliff:g id="ID_1">^2</xliff:g> sitten"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> asensi päivityksen äsken"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Päivitetty äsken"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Näytä paketti"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Näytä tiedot"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Data Saver"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Rajoittamaton data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Akun käytön poikkeama"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Pika-asetusosiot kehittäjille"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Poista käytöstä adb-valtuutuksen aikakatkaisu"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Poista käytöstä adb-valtuutuksien automaattinen peruutus sellaisten järjestelmien kohdalta, jotka eivät ole yhdistäneet uudelleen oletusajassa (7 päivää) tai käyttäjän valitsemassa ajassa (vähintään 1 päivä)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-jäljitys"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Anturit pois päältä"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Työprofiilin asetukset"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Hae työhakemiston yhteystietoja henkilökohtaisista sovelluksista"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Käynnistä digiavustajasovellus pyyhkäisemällä alakulmasta ylöspäin"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Automaattinen täyttö ‑palvelu"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Automaattisen täytön oletuspalvelu"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Salasanat"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Salasanat, avainkoodit ja datapalvelut"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Muut tarjoajat"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# salasana}other{# salasanaa}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automaattinen, täyttö, automaattinen täyttö, salasana"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Salasanat, avainkoodit ja datapalvelut"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Laita kaikki palvelut pois päältä?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Salasanat, avainkoodit ja muut tiedot eivät ole saatavilla automaattista täyttöä varten kirjautuessasi sisään"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Vaihda haluamaksesi palveluksi: &lt;xliff:g id=app_name example=Provider&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_enable_confirmation_message_title" msgid="1037501792652277829">"Käytetäänkö: %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Sinulla voi olla samaan aikaan vain viisi palvelua päällä"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Laita vähintään yksi palvelu pois päältä, jotta voit lisätä toisen"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s päättelee näytön kohteiden perusteella, mitä voidaan täyttää automaattisesti."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Salasanojen, avainkoodien ja datapalveluiden rajoitus"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Sinulla voi olla yhtä aikaa aktiivisena enintään viisi salasanaa, avainkoodia ja datapalvelua. Laita palvelu pois päältä, jos haluat lisätä uusia sellaisia."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Salasanojen, avainkoodien ja datapalveluiden rajoitus"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Sinulla voi olla yhtä aikaa aktiivisena enintään viisi salasanaa, avainkoodia ja datapalvelua. Laita palvelu pois päältä, jos haluat lisätä uusia sellaisia."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Laita pois päältä"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automaattinen täyttö"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Lokikirjaustaso"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Sovelluksen yhteensopivuusmuutoksia voi tehdä vain virheenkorjausta tukevissa sovelluksissa. Asenna virheenkorjausta tukeva sovellus ja yritä uudelleen."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Toinen asetus vaikuttaa siihen."</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Tili"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d tiliä"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Laitteen nimi"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Perustiedot"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Lait ja muut säädökset"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Salli tämän sovelluksen käynnistyä, kun NFC-tagi skannataan.\nJos tämä lupa myönnetään, sovellus on saatavilla vaihtoehtona aina, kun tagi havaitaan."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Toista mediasisältöä:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Mistä <xliff:g id="LABEL">%s</xliff:g> kuuluu:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audiota toistetaan laitteella"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Tämä laite"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Ei käytettävissä puhelujen aikana"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Vastaa puheluun:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Mykistä"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Jos haluat ottaa ominaisuuden käyttöön, vaihda ensin virtavalikkoon \"Paina virtapainiketta pitkään\"."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Verkon tiedot"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Puhelimen sovellukset näkevät laitteesi nimen. 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="devices_title" msgid="649715719278562515">"Laitteet"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Valitse verkko"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Yhteys katkaistu"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nimi"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Väri (yhteensopivia sovelluksia varten)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Tallenna"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Käytä SIM-korttia"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Käytä tätä SIMiä"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Pois päältä"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Poista SIM-kortti, jos haluat poistaa sen käytöstä"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Aktivoi <xliff:g id="CARRIER">%1$s</xliff:g> napauttamalla"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Tyhjennä SIM-kortti"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Ensisijainen verkko"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Vaihda verkon käyttötilaa"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Ensisijainen verkko"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Kysy hinnasta operaattorilta."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Sovelluksen datan käyttö"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Virheellinen verkkotila <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ohita."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Tukiasemien nimet"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Ei käytettävissä <xliff:g id="CARRIER">%1$s</xliff:g> ‑käytön aikana"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vaihdetaanko <xliff:g id="CARRIER_NAME">%1$s</xliff:g> käyttöön?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vaihdetaanko SIM-korttiin?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Valitaanko <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Vain yksi SIM-kortti voi olla kerrallaan aktiivinen.\n\nVanhaa palvelua (<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>) ei peruuteta, jos <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> otetaan käyttöön."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Vain yksi eSIM voi olla aktiivinen kerrallaan.\n\n<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ei peruunnu, vaikka <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> otetaan käyttöön."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Vain yksi SIM-kortti voi olla kerrallaan aktiivinen.\n\nVanhaa palvelua (<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>) ei peruuteta, jos vaihdat uuteen."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Voit käyttää kahta SIM-korttia yhtä aikaa. Jos haluat, että <xliff:g id="CARRIER_NAME">%1$s</xliff:g> otetaan käyttöön, laita toinen SIM-kortti pois päältä."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Vaihda: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Laita <xliff:g id="CARRIER_NAME">%1$s</xliff:g> pois päältä"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ei kiitos"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Peru"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Vaihda"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Laita pois päältä"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-korttia ei voi aktivoida"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Kokeile kytkeä SIM-kortti päälle uudelleen. Jos ongelma ei ratkea, käynnistä laite uudelleen."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Ota SIM käyttöön"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Aseta mobiiliverkkovalinnat käyttämään useita SIMejä tällä laitteella"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Lisää SIMeille tunnisteet"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Näet nämä tunnisteet, kun soitat puheluita, lähetät tekstiviestejä ja käytät dataa, sekä Asetuksissa"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIMin tunniste"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Tunniste"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Valitse mitä SIMiä käytetään"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Voit käyttää kahta SIMiä yhtä aikaa"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Aseta ensisijaiset SIMit"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Valitse mitä SIMejä käytetään oletuksena puheluihin, tekstiviesteihin ja dataan"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Ensisijaiset SIMit"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Puhelut"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Tekstiviestit"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automaattinen datan vaihto"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Käytä kumman tahansa SIMin dataa kattavuudesta ja saatavuudesta riippuen"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Vain data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Ota käyttöön"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Seuraava"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobiiliverkko"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Puhelinnumero"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIMin tunniste ja väri"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Verkon aktivointi"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operaattorin vaihto"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> on aktiivinen"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Siirry verkkoasetuksiin, jos haluat myöhemmin käyttää mobiilidataa, puheluominaisuuksia tai tekstiviestejä"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-kortti"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Poistetaanko tämä eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Tämän SIM-kortin tyhjentäminen poistaa palvelun (<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>) laitteelta.\n\nPalvelua (<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>) ei peruuteta."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Tyhjennä"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Tyhjennetään SIM-korttia…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM-korttia ei voi tyhjentää"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"SIM-korttia ei voi tyhjentää virheen vuoksi.\n\nKäynnistä laite uudelleen ja yritä sitten uudelleen."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Laitteeseen yhdistäminen"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> haluaa käyttää väliaikaista Wi-Fi-verkkoa laitteeseen yhdistämiseksi"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Laitteita ei löytynyt. Varmista, että laitteet ovat päällä ja voivat muodostaa yhteyden."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Hätäpuhelut"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Operaattorisi ei tue hätäpuhelun soittamista Wi-Fi-puheluna.\nLaite vaihtaa automaattisesti mobiiliverkkoon soittaakseen hätäpuhelun.\nHätäpuheluja voi soittaa vain matkapuhelinverkon kantaman sisällä."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Soita puhelut Wi‑Fillä parantaaksesi laatua"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Puheluiden varavaihtoehto"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Jos <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ei ole käytettävissä tai roaming on käytössä, käytä SIM-kortin mobiilidataa <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ‑puheluihin."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"puheluiden varavaihtoehto"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Saapuva MMS-viesti"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS-viestiä ei voi lähettää"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Napauta, jos haluat sallia MMS-viestit (<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>), kun mobiilidata ei ole käytössä."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Työkäytäntötietosi"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"IT-järjestelmänvalvojan ylläpitämät asetukset"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Grafiikkasuoritin"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Käynnistä uudelleen 16 kt:lla"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Käynnistä laite uudelleen 16 kt:n ydintasolla"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Käynnistetäänkö uudelleen 16 kt:n sivukoon yhteensopivalla ydintasolla?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"VAROITUS: Jotkin sovellukset eivät ole yhteensopivia tämän tilan kanssa. Laite käynnistyy uudelleen vahvistuksen jälkeen."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Käynnistetäänkö uudelleen 4 kt:n sivukoon yhteensopivalla ydintasolla?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Laite käynnistyy uudelleen vahvistuksen jälkeen."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ydintason päivitys 16 kt:n sivukoon yhteensopivaan ydintasoon epäonnistui."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Otetaan muutos käyttöön"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Virheraportin käsittelijä"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Valitsee, mikä sovellus käsittelee laitteen virheraportti-pikanäppäintä."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Henkilökohtainen"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Mediasoitin pysyy auki pika-asetuksissa, jotta toistoa voi jatkaa nopeasti"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Näytä media lukitusnäytöllä"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Mediasoitin pysyy auki lukitusnäytöllä, jotta toistoa voi jatkaa nopeasti"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Näytä mediasuositukset"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Näytä Assistantin mediasuositukset"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Perustuu toimintaasi"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Piilota soitin"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Näytä soitin"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM-kortti"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMit"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiivinen"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Ei aktiivinen"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Oletus: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"puhelut"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"tekstiviestit"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Median audiosta tulee yhteensopivilla laitteilla immersiivisempää"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pään liikkeiden seuranta"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio muuttuu pääsi liikkeen mukana kuulostaakseen luonnollisemmalta"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synkronointiluvat"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> saa samat sovellusluvat kuin <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Lupien synkronoiminen puhelimesta"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Myönnä kellolle samat sovellusluvat kuin tälle puhelimelle"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Äänilaitetyyppi"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tuntematon"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Kaiutin"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Keskitaso"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Suuri"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Tämän sovelluksen voi avata vain yhdessä ikkunassa"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Päällä"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Pois päältä"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Pois päältä"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Pois päältä"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Päällä"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Pois päältä"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Päällä"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Pois päältä"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Muuttaa vaaleat näytöt tummiksi ja tummat vaaleiksi"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Lähennä näyttöä"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Pois päältä"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Pois päältä"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Päällä"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Pois päältä"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Päällä"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Salasana on nyt otettu käyttöön"</string>
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 185a9a6..f472ecb 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Après 1 minute"</item>
     <item msgid="1574040255478150028">"Après 5 minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 278420e..d90c7f9 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Vous êtes maintenant développeur!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Inutile, vous êtes déjà un développeur."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Veuillez d\'abord activer les options pour les développeurs"</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Seuls les utilisateurs administrateurs peuvent accéder aux paramètres pour développeurs."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Système"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"En service"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Hors service"</string>
@@ -46,6 +47,8 @@
     <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 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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Balayez vers le haut pour continuer"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Pliez votre téléphone et balayez l\'écran frontal vers le haut pour continuer à utiliser l\'application ou attendez quelques secondes pour verrouiller l\'é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>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Utiliser la rotation automatique"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Connexes"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Sonnerie et alarmes"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Sortie audio des appels"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimédia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notif. et autres sons du système"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons des médias et du système"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifications"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Par défaut, la sortie audio est définie par les différentes applications"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Appareil Bluetooth sans nom"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Recherche en cours…"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth activé"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Tout afficher"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Tout afficher"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylet"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Appui du bouton supérieur"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (profil professionnel)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Écrire dans les champs de texte"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer 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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Se connecter à un flux LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Flux audio à proximité"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Flux audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Connectez-vous à un flux audio à l\'aide d\'un code QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Aucun flux audio trouvé à proximité."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pour sélectionner une langue pour chaque application, consultez les paramètres de langue de l\'application."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues de l\'application"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sélectionner %s comme langue du système?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Ajouter %s aux langues préférées?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Cela permet aux applis et aux sites Web de savoir que vous préférez aussi cette langue."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Vos préférences régionales et les paramètres de votre appareil seront modifiés."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Modifier"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s non accessible"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Samedi"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Si une application ne prend pas en charge les préférences régionales, elle utilisera ses paramètres régionaux par défaut."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Apprenez-en plus sur les préférences linguistiques."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Autres préférences"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Termes d\'adresse"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Définissez comment vous souhaitez que l\'on s\'adresse à vous"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Les applications peuvent utiliser vos termes d\'adresse pour personnaliser la façon dont elles s\'adressent à vous."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Non précisé"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Féminin"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculin"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutre"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Retirer la langue sélectionnée?}one{Retirer la langue sélectionnée?}other{Retirer les langues sélectionnées?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Le texte s\'affichera dans une autre langue."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossible de supprimer toutes les langues"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Position"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Utiliser ma position"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Activée : # application a accès à la position}one{Activée : # application a accès à la position}other{Activée : # applications ont accès à la position}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée / # d\'applications ayant accès à la position}one{Activée / # d\'applications ayant accès à la position}other{Activée / # d\'applications ayant accès à la position}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement en cours…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Les 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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Apprenez-en plus à propos des paramètres de localisation."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Position : Paramètres &gt; Sécurité et confidentialité &gt; Paramètres de confidentialité"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Pour obtenir des résultats optimaux, utilisez un protecteur d\'écran certifié Fait pour Google. Les empreintes digitales de votre enfant peuvent ne pas être reconnues avec d\'autres protecteurs d\'écran."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Déverrouillage à l\'aide d\'une montre"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Si vous configurez le Déverrouillage par reconnaissance faciale et le Déverrouillage par empreinte digitale, votre téléphone vous demandera votre empreinte digitale quand vous porterez un masque ou que vous vous trouverez dans un endroit sombre.\n\nVous pouvez déverrouiller votre téléphone à l\'aide de votre montre lorsque votre empreinte digitale ou votre visage ne sont pas reconnus."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Vous pouvez déverrouiller votre téléphone à l\'aide de votre montre lorsque votre empreinte digitale n\'est pas reconnue."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Vous pouvez déverrouiller votre téléphone à l\'aide de votre montre lorsque votre visage n\'est pas reconnu."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Lorsque vous configurez le Déverrouillage par reconnaissance faciale et le Déverrouillage par empreinte digitale, votre téléphone vous demandera votre empreinte digitale quand vous portez un masque ou quand vous êtes dans un endroit sombre.\n\nLe Déverrouillage à l\'aide d\'une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque vos doigts sont mouillés ou que votre visage n\'est pas reconnu."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Le Déverrouillage à l\'aide d\'une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque votre empreinte digitale n\'est pas reconnue."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Le Déverrouillage à l\'aide d\'une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque votre visage n\'est pas reconnu."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Utiliser l\'empreinte digitale ou la montre pour"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Utiliser le visage ou la montre pour"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Utiliser le visage, l\'empreinte digitale ou la montre pour"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"<xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Empreinte digitale, <xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Empreintes digitales, <xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Déverrouiller Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Montre ajoutée"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurer votre montre"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Le Déverrouillage à l\'aide d\'une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque vos doigts sont mouillés ou que votre visage n\'est pas reconnu.\n\nVous pouvez utiliser votre montre pour déverrouiller ce téléphone lorsque vous :"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Plus tard"</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_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, 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_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>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Montres proposées"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuler"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmer"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Vous êtes prêt!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Vous pouvez désormais utiliser votre montre pour déverrouiller votre téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou touchez une notification"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Terminé"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Déverrouillage à l\'aide d\'une montre"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Vous pouvez utiliser votre montre pour déverrouiller votre téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou touchez une notification"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Pour utiliser le Déverrouillage à l\'aide d\'une montre, celle-ci doit être déverrouillée, se trouver sur votre poignet, être à proximité et être connectée à ce téléphone. Si la connexion est interrompue, vous devrez déverrouiller le téléphone avant de pouvoir utiliser le Déverrouillage à l\'aide d\'une montre.\n\nGardez à l\'esprit :\nVous ne pouvez configurer qu\'une seule montre à la fois. Pour ajouter une autre montre, vous devez d\'abord retirer la montre actuelle."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"En savoir plus sur le Déverrouillage à l\'aide d\'une montre"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer une montre"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage empreinte digitale et reconnaissance faciale"</string>
     <string name="security_settings_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>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sécurité"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Confidentialité"</string>
     <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="2274405892301976238">"Verrouiller et cacher les applications privées"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Conservez les applications privées dans un espace séparé que vous pouvez masquer ou verrouiller"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Verrouillage de l\'Espace privé"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Utiliser le verrouillage de l\'écran de l\'appareil"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Déverrouil. par reconnaissance faciale et empreinte digitale"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Déverrouillage par empreinte digitale"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Déverrouill. par reconnaissance faciale"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toucher pour configurer"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Déverrouillage par empreinte digitale pour l\'Espace privé"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Déverrouillage par reconnaissance faciale pour Espace privé"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Méthodes de déverrouillage"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Identique au verrouillage de l\'écran de l\'appareil"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Choisir un nouveau verrou pour l\'Espace privé?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Verrouiller automatiquement"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Verrouiller automatiquement l\'Espace privé"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Vous pouvez verrouiller automatiquement votre Espace privé si vous n\'avez pas utilisé votre appareil pendant un certain temps"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Chaque fois que l\'appareil se verrouille"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Après cinq minutes d\'inactivité"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Jamais"</string>
+    <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_delete_title" msgid="3075645119800272800">"Supprimer 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="private_space_unlocked" msgid="9091600948712932046">"Espace privé déverrouillé"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Définir Verrouillage d\'écran"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Réglez le Verrouillage de l\'écran pour utiliser votre 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="private_space_cancel_label" msgid="379259667396956886">"Annuler"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configuration"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configurer un Espace privé"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Conservez les applications privées dans un espace séparé que vous pouvez masquer ou verrouiller"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Fonctionnement"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Vous pouvez accéder à votre Espace privé en bas de votre liste d\'applications"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Les applis de votre Espace privé sont protégées par un verrou"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Les notifications des applications de votre Espace privé sont masquées lorsqu\'il est verrouillé"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Les applications de votre 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é.\n\nVotre Espace privé ne peut pas être déplacé vers un nouvel appareil. Vous devrez créer un autre Espace privé si vous souhaitez l\'utiliser sur un autre appareil.\n\nToute personne qui connecte votre appareil à un ordinateur ou installe des applications nuisibles sur votre appareil peut être en mesure d\'accéder à votre Espace privé."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configuration de l\'Espace privé en cours…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Les notifications des applications de l\'Espace privé sont masquées lorsqu\'il est verrouillé"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Déverrouiller l\'Espace privé pour partager des photos ou des fichiers à partir des applications de l\'Espace privé"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Certaines applications sont déjà installées dans votre Espace privé"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Impossible de configurer l\'Espace privé"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Réessayer"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Utiliser le verrouillage de l\'écran pour déverrouiller l\'Espace privé?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Vous pouvez déverrouiller votre Espace privé de la même manière que votre appareil ou choisir un autre type de verrouillage"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Utiliser le Verrouillage de l\'écran"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Sélectionner un nouveau verrouillage"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tout est prêt!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Pour accéder à votre Espace privé, accédez à votre liste d\'applications, puis faites défiler vers le bas"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Terminé"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Faites défiler l\'écran vers le bas pour trouver l\'Espace privé"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Choisir un verrouillage pour votre Espace privé"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Vous pouvez déverrouiller votre Espace privé à l\'aide de votre empreinte digitale. Pour plus de sécurité, cette option exige un verrouillage secondaire."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Créer un NIP pour l\'Espace privé"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Créer un mot de passe pour Espace privé"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Créer un schéma pour l\'Espace privé"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Pour afficher l\'Espace privé (version non finale de l\'EU)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Ouvrez l\'application Paramètres"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Touchez Sécurité et confidentialité &gt; Espace privé &gt; Masquer l\'Espace privé lorsqu\'il est verrouillé"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Désactiver Masquer l\'Espace privé lorsqu\'il est verrouillé"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Note pour les employés de Google : Le développement de cette fonctionnalité est toujours en cours"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Vous pouvez ajouter jusqu\'à <xliff:g id="COUNT">%d</xliff:g> empreintes digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Vous avez ajouté le nombre maximal d\'empreintes digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossible d\'ajouter des empreintes digitales"</string>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Vous devrez peut-être également saisir cette clé d\'accès sur l\'autre appareil."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirmez pour effectuer l\'association avec 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_phonebook_toggle_text" msgid="2474015367387690034">"Autoriser également l\'accès aux contacts et à l\'historique des appels"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Ces informations seront utilisées pour les annonces d\'appels et plus"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Impossible de se connecter à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Appareils détectés"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Si la fonctionnalité Bluetooth est activée, votre appareil peut communiquer avec d\'autres appareils Bluetooth à proximité"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"En mode Avion"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Envoyer des notifications pour les réseaux publics"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"M\'informer quand un réseau public de haute qualité se trouve à proximité"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Autoriser les réseaux WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP est un protocole de sécurité plus ancien et moins sécuritaire"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Votre opérateur ne permet pas les réseaux WEP, car ils sont moins sécuritaires"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activer le Wi-Fi automatiquement"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Le Wi‑Fi se réactivera automatiquement à proximité des réseaux de haute qualité qui sont enregistrés, comme celui de votre domicile"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Cette fonction n\'est pas accessible, car le service de localisation est désactivé. Activez la "<annotation id="link">"localisation"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"La recherche de réseaux Wi-Fi permet aux applications et aux services de rechercher les réseaux Wi-Fi en tout temps, même lorsque le Wi-Fi est désactivé. Cette autorisation peut permettre, par exemple, d\'améliorer les fonctionnalités et les services basés sur la localisation."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activer"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"La recherche de réseaux Wi-Fi est activée"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ce réseau utilise un protocole de sécurité plus ancien et moins sécuritaire"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"L\'application <xliff:g id="NAME">%1$s</xliff:g> est bloquée"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ce réseau utilise un protocole de sécurité plus ancien et moins sécuritaire appelé WEP. Pour vous connecter quand même, vous pouvez autoriser les réseaux WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Votre opérateur ne vous permet pas de vous connecter à ce réseau, car il utilise un protocole de sécurité plus ancien et moins sécuritaire"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Autoriser WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Fermer"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Options avancées"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Liste déroulante des options avancées"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"développer"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Rester connecté au Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne plus afficher"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connexion"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi activé"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connecté à <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connexion à <xliff:g id="NETWORK_NAME">%1$s</xliff:g> en cours…"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connexion en cours…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Échec de la connexion au réseau."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Réseau hors de portée"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Supprimer"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modifier"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Échec de la suppression du réseau."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Enregistrer"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Échec de l\'enregistrement du réseau."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Annuler"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Données cellulaires"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Recharge en cours…"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Recharge en cours…"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Connexion du point d\'accès sans fil"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Puissance de la connexion"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Réseaux enregistrés"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Aucun mot de passe défini"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nom du point d\'accès"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Mot de passe du point d\'accès"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Bande du point d\'accès"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Désactiver automatiquement le point d\'accès Wi‑Fi"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Lorsqu\'aucun appareil n\'est connecté"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Prolonger la compatibilité"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Afficher la balance des blancs"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Désac. la fréq. d\'imag. par déf. des jeux"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Désactivez la limitation de la fréquence d\'images maximale pour les jeux à <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Affichage fluide"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La fonctionnalité Écran attentif utilise l\'appareil photo avant pour détecter si quelqu\'un regarde l\'écran. Elle fonctionne sur l\'appareil, et les images ne sont jamais enregistrées ni envoyées à Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activer la fonctionnalité d\'écran attentif"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Empêchez l\'écran de s\'éteindre pendant que vous le regardez"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Un délai de mise en veille de l\'écran plus long sollicitera davantage la pile."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"L\'appareil photo est verrouillé"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"L\'appareil photo doit être déverrouillé pour utiliser la détection des visages"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"L\'appareil photo doit être déverrouillé pour utiliser la fonctionnalité d\'écran attentif"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IIEM (fente SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IIEM (fente SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principale)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Pour l\'afficher, sélectionnez un réseau enregistré"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IIEM"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IIEM SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Version de la liste d\'itinérance préférée"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Niveau de la pile"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Commun"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Paramètres communs"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Enregistrer"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Annuler"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Le champ « Nom » est obligatoire."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"L\'APN est obligatoire."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Le champ MCC doit contenir 3 chiffres."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Le champ MNC doit contenir 2 ou 3 chiffres."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Le fournisseur de services n\'autorise pas l\'ajout de points d\'accès de type %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Le champ MMSC doit être valide."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restauration des paramètres APN par défaut en cours..."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Rétablir les valeurs par défaut"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"La réinitialisation des paramètres APN par défaut est terminée."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Réinitialiser"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Le Bluetooth et le Wi-Fi ont été réinitialisés"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Effacer les cartes eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Cela n\'annulera aucun forfait de services cellulaires. Pour télécharger une carte SIM de remplacement, communiquez avec votre fournisseur de services."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Réinitialiser les paramètres"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Réinitialiser tous les paramètres réseau? Cette action est irréversible."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Réinitialiser tous les paramètres du réseau et effacer les cartes eSIM? Vous ne pouvez pas annuler cette action."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Réinitialiser?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"La réinitialisation du réseau n\'est pas disponible pour cet utilisateur."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Les paramètres réseau ont été réinitialisés"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Impossible d\'effacer les cartes SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Les cartes eSIM ne peuvent pas être effacées à cause d\'une erreur.\n\nRedémarrez votre appareil et réessayez."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Effacer toutes les données (réinitialisation des paramètres par défaut)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Effacer toutes les données"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musique"</li>\n<li>"Photos"</li>\n<li>"Autres données de l\'utilisateur"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"Modules eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Cela n\'annulera pas votre forfait de services cellulaires."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Tous vos renseignements personnels et les applications téléchargées seront supprimés. Vous ne pouvez pas annuler cette action."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Tous vos renseignements personnels, y compris les applications téléchargées et les modules SIM, seront supprimés. Vous ne pouvez pas annuler cette action."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Effacer toutes les données?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"La réinitialisation aux paramètres par défaut n\'est pas possible pour cet utilisateur"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Suppression en cours…"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Partage de connexion, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Connexion Internet non partagée avec d\'autres appareils"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Désactivé"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Partage de connexion"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ne pas utiliser les points d\'accès Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Uniquement partager la connexion Internet par USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Uniquement partager la connexion Internet par Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Uniquement partager la connexion Internet par Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Uniquement partager la connexion Internet par USB et par Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Uniquement partager la connexion Internet par USB et par Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Uniquement partager la connexion Internet par Bluetooth et par Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Uniquement partager la connexion Internet par USB, par Bluetooth et par Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Partage de connexion par USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Partage de connexion par Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Partage connexion Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilisez un point d\'accès sans fil et le partage de connexion pour fournir un accès Internet à d\'autres appareils par l\'intermédiaire de votre connexion Wi-Fi ou de données cellulaires. Les applications peuvent aussi créer un point d\'accès sans fil pour partager du contenu avec d\'autres appareils à proximité."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Aide"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Réseau cellulaire"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Forfait de données cellulaires"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Application de messagerie texte"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Modifier l\'application de messagerie texte?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> comme application de messagerie texte?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Changer d\'assistant Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Utilisez <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pour gérer vos connexions réseau?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Fournisseur de la carte SIM inconnu"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Aucun site Web de configuration connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insérez la carte SIM, puis redémarrez."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connectez-vous à Internet."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Demandes de localisation récentes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Position pour profil profess."</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Autor. localisation de l\'appli"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Supprimer l\'accès"</string>
     <string name="controls_label" msgid="8671492254263626383">"Commandes"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forcer l\'arrêt"</string>
+    <string name="archive" msgid="9074663845068632127">"Archiver"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurer"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Taille de l\'application"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Application sur USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Impossible de calculer la taille du package."</string>
     <string name="version_text" msgid="7628938665256107608">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Déplacer"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Échec de l\'archivage"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Archivé : <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Échec de la restauration"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restauration de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> en cours…"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Un autre transfert est déjà en cours."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Espace de stockage insuffisant."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"L\'application n\'existe pas."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Clavier à l\'écran accessible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gérer les claviers à l\'écran"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
     <string name="show_ime" msgid="4334255501724746849">"Utiliser le clavier à l\'écran"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Afficher lorsque le clavier physique est activé"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Touches non répétées"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Activez les touches non répétées pour rehausser l\'accessibilité du clavier physique"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Touches rémanentes"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Activez les Touches rémanentes pour rehausser l\'accessibilité du clavier physique"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Raccourcis clavier"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afficher la liste de raccourcis"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Claviers et outils pour le profil professionnel"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Trier par temps d\'utilisation"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Trier par dernière utilisation"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Trier par nom d\'application"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Dernière utilisation :"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Dernière utilisation"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"jamais"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Temps d\'utilisation"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibilité"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Paramètres d\'accessibilité"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuer quand même"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuler"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Paramètres d\'agrandissement"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Agrandir en touchant 3 fois"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Agrandir avec un raccourci"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Agrandir avec le raccourci et en touchant trois fois"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"À propos de <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Ouvrir en touchant deux fois l\'écran 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="860548190334486449">"Pour démarrer et arrêter l\'Agrandissement, touchez deux fois l\'écran n\'importe où 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Pour utiliser une fonctionnalité d\'accessibilité, 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Paramètres du bouton"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Paramètres du bouton"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Raccourci pour <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Bouton d\'accessibilité"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Geste d\'accessibilité"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Toucher deux fois l\'écran avec deux doigts"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"toucher deux fois l\'écran avec deux doigts"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Touchez rapidement l\'écran {0,number,integer} fois avec deux doigts"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Toucher l\'écran trois fois"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"En savoir plus sur le bouton d\'accessibilité et les gestes"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Utilisez le bouton d\'accessibilité. Le geste n\'est pas proposé avec la navigation à trois boutons."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accès rapide aux fonctionnalités d\'accessibilité"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Pour commencer :"</b>\n"1. Accédez aux paramètres d\'accessibilité\n2. Sélectionnez une fonctionnalité et touchez le raccourci\n3. Choisissez d\'utiliser un bouton ou un geste pour accéder à la fonctionnalité"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Pour commencer :"</b>\n"1. Accédez aux paramètres d\'accessibilité\n2. Sélectionnez une fonctionnalité et touchez le raccourci\n3. Choisissez le bouton pour accéder à la fonctionnalité"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Pour commencer&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Accédez aux paramètres d\'accessibilité&lt;br/&gt; {1,number,integer}. Sélectionnez une fonctionnalité et touchez le raccourci&lt;br/&gt; {2,number,integer}. Choisissez si vous voulez utiliser un bouton ou un geste pour accéder à la fonctionnalité&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Pour commencer&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Accédez aux paramètres d\'accessibilité&lt;br/&gt; {1,number,integer}. Sélectionnez une fonctionnalité et touchez le raccourci&lt;br/&gt; {2,number,integer}. Choisissez le bouton pour accéder à la fonctionnalité&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Utiliser le bouton ou le geste"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Position"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Taille"</string>
@@ -1940,6 +2107,8 @@
     <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_force_invert_title" msgid="5015366813138748407">"Rendre toutes les applis sombres"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"S\'applique aux applis sans leur thème sombre. Des applis peuvent avoir des problèmes d\'affichage."</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>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Cette fonctionnalité peut faire le suivi de vos interactions avec une application ou un capteur matériel et interagir avec des applications en votre nom."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Arrêter"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Annuler"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Arrêter <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Touchez <xliff:g id="STOP">%1$s</xliff:g> pour arrêter le service <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Garder actif"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Désactiver <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Aucun service installé"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Aucun service sélectionné"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Aucune description fournie"</string>
     <string name="settings_button" msgid="2195468788019730377">"Paramètres"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilité à la lumière, photophobie, thème sombre, migraine, mal de tête, mode lecture, mode nuit, réduire la luminosité, point blanc"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Convivialité, facilité d\'accès, assistance, accessibilité"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vision, audition, aveugle, sourd, motricité, dextérité, fonctionnel, assistance, facilité d\'utilisation, facilité d\'accès, main, aide"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Agrandisseur d\'écran, zoom, agrandissement, vision faible, agrandir, rendre plus gros"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Sous-titres, sous-titrage, CC, sous-titres instantanés, malentendant, perte auditive, transcription en temps réel assistée par ordinateur, synthèse textuelle, sous-titrer"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste des couleurs"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motricité, souris"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"prothèses auditives, malentendants, perte auditive, implants cochléaires, appareils d\'amplification, processeurs de son"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motricité, souris, souris externe, souris contrôlée par la tête, souris adaptée, fauteuil roulant, manche"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"prothèses auditives, malentendant, perte auditive, implants cochléaires, appareils d\'amplification, processeurs de son, produit d\'amplificateur de son personnel"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"malentendant, perte auditive, sous-titres, téléimprimeur, ATS"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"trois boutons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dextérité, motricité, personne âgée, arthrite, LMR, accident vasculaire cérébral, tremblements, sclérose en plaques, infirmité motrice cérébrale, trémulation, lésion due aux mouvements répétitifs, main"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retard, dextérité, personne âgée"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impression"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Désactivé"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 service d\'impression activé}one{# service d\'impression activé}other{# services d\'impression activés}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Affichez les applications qui utilisent le plus d\'énergie"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"La recharge est optimisée afin de protéger votre pile"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"La recharge est optimisée afin de prolonger la durée de vie de votre pile"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"La recharge est optimisée afin de protéger votre pile"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"La recharge est optimisée lorsque l\'appareil est dans sa station afin de prolonger la durée de vie de votre pile"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"La recharge est optimisée afin de protéger votre pile"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"La recharge est optimisée lorsque l\'appareil est dans sa station afin de prolonger la durée de vie de votre pile"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"En charge complète"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Afin de protéger votre pile, la recharge sera optimisée la prochaine fois que votre tablette sera placée dans sa station"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"En savoir sur l\'interruption de la recharge"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Reprendre la charge"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclut les activités énergivores en arrière-plan"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Supprimer"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Annuler"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Recharger complètement"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problème concernant l\'accessoire de recharge"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"En savoir plus sur les chargeurs incompatibles"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gestionnaire de pile"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gérer les applications automatiquement"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"maintenant"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Graphique d\'utilisation de la pile"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Graphique de l\'utilisation quotidienne de la pile"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Graphique de l\'utilisation horaire de la pile"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Pourcentage correspondant au niveau de la pile de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> à <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Utilisation de la pile depuis la dernière recharge complète"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Utilisation de la pile : <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Temps d\'utilisation des écrans depuis la dernière recharge complète"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal de composition d\'urgence"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Définir le comportement en cas d\'appel d\'urgence"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sauvegarde"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activée"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Désactivé"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sauvegarde et restauration"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Données personnelles"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sauvegarder mes données"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nom"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresse du serveur"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Chiffrement PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Secret L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identifiant IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Clé pré-partagée IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificat utilisateur IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificat d\'autorité IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificat de serveur IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Afficher les options avancées"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domaines de recherche DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Serveurs DNS (p. ex. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Itinéraires transfert (p. ex. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nom d\'utilisateur"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Mot de passe"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Enregistrer les informations de compte"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(non utilisé)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne pas valider le serveur)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(certificat reçu du serveur)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ce type de RPV ne peut pas rester connecté en permanence"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Le RPV permanent n\'accepte que les adresses de serveur en format numérique"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Un serveur DNS doit être spécifié pour le RPV permanent"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Les adresses de serveur DNS doivent être numériques pour le RPV permanent"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Les données entrées ne sont pas compatibles avec le RPV permanent"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Annuler"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ignorer"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquer les connexions sans RPV"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Exiger une connexion RPV?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Pas sécuritaire. Passez à un RPV de type IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Échec du démarrage d\'un RPV non pris en charge."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Sélectionnez un profil RPV auquel rester connecté en permanence. Le trafic réseau ne sera autorisé que lorsque vous serez connecté à ce RPV."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Aucun"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Le RPV permanent nécessite une adresse IP pour le serveur et le DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertes AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Recevoir les bulletins sur les enlèvements d\'enfants"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Répéter"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Activer le gestionnaire d\'appels"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Autoriser ce service à gérer comment vous faites vos appels."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gestionnaire d\'appels"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertes d\'urgence sans fil"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Fournisseurs de services cellulaires"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Noms des points d\'accès"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"portefeuille"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"payer, toucher, paiements"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sauvegarde, sauvegarder"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"geste"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"visage, déverrouiller, authentification, se connecter"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"visage, déverrouiller, authentification, connexion, empreinte digitale, données biométriques"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"iiem, idem, min, version de la liste d\'itinérance préférée, iiem sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Activation par les sons"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Sous-titres instantanés"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Ajouter automatiquement des sous-titres aux contenus multimédias"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Haut-parleurs du téléphone"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Haut-parleurs de la tablette"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Haut-parleurs de l\'appareil"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Casque d\'écoute filaire"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Le son des appareils multimédias compatibles devient plus immersif"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Désactivé"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Que souhaitez-vous voir sur votre écran de verrouillage?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Conversations récentes retirées"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversation retirée"</string>
     <string name="clear" msgid="5092178335409471100">"Effacer"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Effacer <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Les conversations prioritaires et modifiées s\'afficheront ici"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Lorsque vous marquez des conversations comme prioritaires, ou si vous apportez d\'autres modifications aux conversations, elles s\'afficheront ici. \n\nPour modifier les paramètres de conversation : \nbalayez l\'écran du haut vers le bas pour ouvrir le volet déroulant, puis maintenez le doigt sur une conversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Réduire"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Désactivé"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Épinglage d\'application"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"L\'épinglage d\'application vous permet de garder l\'application actuelle en vue jusqu\'à ce que vous annuliez l\'épinglage. Cette fonctionnalité peut être utilisée, par exemple, pour laisser un ami de confiance jouer à un certain jeu."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Lorsqu\'une application est épinglée, elle peut ouvrir d\'autres applications, et certaines données personnelles pourraient être accessibles. \n\nPour utiliser l\'épinglage d\'application : 	\n1. Activez l\'épinglage d\'application 	\n2. Ouvrez Aperçu 	\n3. Touchez l\'icône de l\'application dans le haut de l\'écran, puis touchez Épingler"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Lorsqu\'une application est épinglée, elle peut ouvrir d\'autres applications, et certaines données personnelles pourraient être accessibles. \n\nSi vous souhaitez partager votre appareil de manière sécuritaire, essayez d\'utiliser un profil d\'utilisateur invité à la place. \n\nPour utiliser l\'épinglage d\'application : 	\n1. Activez l\'épinglage d\'application 	\n2. Ouvrez Aperçu 	\n3. Touchez l\'icône de l\'application dans le haut de l\'écran, puis touchez Épingler"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Lorsqu\'une application est épinglée, elle peut ouvrir d\'autres applications, et certaines données personnelles pourraient être accessibles. \n\nPour utiliser Épinglage d\'application : 	\n{0,number,integer}. Activez Épinglage d\'application 	\n{1,number,integer}. Ouvrez Aperçu 	\n{2,number,integer}. Touchez l\'icône de l\'application dans le haut de l\'écran, puis touchez Épingler"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Lorsqu\'une application est épinglée, elle peut ouvrir d\'autres applications, et certaines données personnelles pourraient être accessibles. \n\nSi vous souhaitez partager votre appareil de manière sécuritaire, essayez d\'utiliser un profil d\'utilisateur invité à la place. \n\nPour utiliser Épinglage d\'application : 	\n{0,number,integer}. Activez Épinglage d\'application 	\n{1,number,integer}. Ouvrez Aperçu 	\n{2,number,integer}. Touchez l\'icône de l\'application dans le haut de l\'écran, puis touchez Épingler"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Lorsqu\'une application est épinglée : \n\n•	 Certaines données personnelles pourraient être accessibles \n		(comme les contacts et le contenu des courriels) \n•	 L\'application épinglée peut ouvrir d\'autres applications \n\nUtilisez l\'épinglage d\'application uniquement avec les gens en qui vous avez confiance."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Demander le schéma de déverrouillage avant d\'annuler l\'épinglage"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Demander le NIP avant d\'annuler l\'épinglage"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Paramètres des applications inutilisées"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Suspendre l\'activité appli si inutilisée"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Retirer les autorisations, supprimer les fichiers temporaires et arrêter les notifications"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gérer l\'application si inutilisée"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Retirez les autorisations, supprimez les fichiers temporaires, arrêtez les notifications et archivez l\'application"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Toutes les applications"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Applications installées"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Applications instantanées"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Libre"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Mémoire utilisée par les applications"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 application a utilisé la mémoire depuis {time}}one{# application a utilisé la mémoire depuis {time}}other{# applications ont utilisé la mémoire depuis {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Activer le profilage d\'util. de la mém."</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Le profilage d\'utilisation de la mémoire nécessite des ressources système additionnelles."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilage de la mémoire désactivé"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Fréquence"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Utilisation maximale"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Aucune donnée utilisée"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Afficher par-dessus les autres applications"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Autoriser la superposition d\'applications"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Autorisez cette application à s\'afficher par-dessus les autres que vous utilisez. Cette application pourra voir où vous touchez et modifier ce qui est affiché sur l\'écran."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Modifier la sortie multimédia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Autoriser l\'appli à changer la sortie média"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Autorisez cette application à choisir l\'appareil connecté qui lit les fichiers audio ou vidéo provenant d\'autres applications. Si elle est autorisée, cette application peut accéder à une liste de périphériques disponibles, tels que des écouteurs et des haut-parleurs, et choisir le périphérique de sortie utilisé pour diffuser du contenu audio ou vidéo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Accès à tous les fichiers"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Améliorer l\'activation vocale"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Cet appareil utilise l\'intelligence privée pour améliorer le modèle d\'activation vocale. Les applications peuvent recevoir des mises à jour résumées qui sont agrégées pour de nombreux utilisateurs afin de préserver la confidentialité tout en améliorant le modèle pour tous.\n\n"<a href="">"En savoir plus sur l\'intelligence privé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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limite d\'utilisation de données : <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">^1</xliff:g>. Limite d\'utilisation de données : <xliff:g id="ID_2">^2</xliff:g>."</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Le suivi de consommation de données du fournisseur de services peut différer de celui de l\'appareil"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclut les données utilisées sur les réseaux cellulaires"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> utilisés"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Activer une alerte"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Mis à jour il y a <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Mis à jour par <xliff:g id="ID_1">^1</xliff:g> à l\'instant"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Mis à jour à l\'instant"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Afficher le forfait"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Afficher les détails"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Économiseur de données"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Données sans restrictions"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalie relative à l\'utilisation de la pile"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Paramètres rapides, tuiles de développeur"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Désactiver le délai d\'expiration des autorisations adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Désactivez le retrait automatique des autorisations adb pour des systèmes qui ne se sont pas connectés ou qui n\'ont pas été configurés par l\'utilisateur dans le délai d\'expiration par défaut (respectivement, sept jours et un jour minimum)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Traçage Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Capteurs désactivés"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Paramètres du profil professionnel"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Laissez les applications personnelles déterminer les contacts à l\'aide de l\'annuaire professionnel"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Pour lancer l\'application de l\'assistant numérique, balayez l\'écran vers le haut à partir d\'un coin inférieur"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Service de remplissage auto"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Service de remplissage automatique par défaut"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Mots de passe"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Services de mots de passe, de clés d\'accès et de données"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Fournisseurs supplémentaires"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# mot de passe}one{# mot de passe}other{# mots de passe}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatique, remplir, remplissage automatique, mot de passe"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Services de mots de passe, de clés d\'accès et de données"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Désactiver tous les services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les mots de passe, les clés d\'accès et les autres renseignements enregistrés ne seront pas accessibles pour le Remplissage automatique lorsque vous vous connectez"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Modifiez votre service préféré pour &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 renseignements, notamment les clés d\'accès et les mots de passe, seront dorénavant 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 renseignements qui peuvent être remplis automatiquement"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Utiliser %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Vous ne pouvez avoir que cinq services sur"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Désactivez au moins un service pour en ajouter un autre"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s se sert des données affichées à l\'écran pour déterminer ce qui peut être rempli automatiquement."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limite atteinte pour les services de mots de passe, de clés d\'accès et de données"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Vous pouvez disposer d\'un maximum de cinq services de mots de passe, de clés d\'accès et de données actifs en même temps. Désactivez un service pour en ajouter d\'autres."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limite atteinte pour les services de mots de passe, de clés d\'accès et de données"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Vous pouvez disposer d\'un maximum de cinq services de mots de passe, de clés d\'accès et de données actifs en même temps. Désactivez un service pour en ajouter d\'autres."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Désactiver"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Remplissage automatique"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Niveau de journalisation"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Les modifications de compatibilité des applications peuvent uniquement être modifiées pour les applications débogables. Installez une application débogable, puis réessayez."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Dépend d\'un autre paramètre"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Compte"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d comptes"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nom de l\'appareil"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Renseignements généraux"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Législation et réglementation"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Autorisez cette application à se lancer lorsqu\'une balise CCP est détectée.\nSi cette autorisation est activée, l\'application sera affichée comme option chaque fois qu\'une balise est détectée."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Faire jouer les contenus multimédias sur"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Faire jouer <xliff:g id="LABEL">%s</xliff:g> sur"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"L\'audio jouera sur"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Cet appareil"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Indisponible pendant les appels"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Répondre à l\'appel sur"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Désactiver le son"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Pour activer la fonctionnalité, modifiez d\'abord l\'option « Maintenir l\'interrupteur enfoncé » du menu de l\'interrupteur."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Infos sur le réseau"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Le nom de votre appareil est visible pour les applications de votre téléphone. Il est aussi possible que d\'autres personnes le voient 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="devices_title" msgid="649715719278562515">"Appareils"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Choisir un réseau"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Déconnecté"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nom"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Couleur (utilisée par applis compatibles)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Enregistrer"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Utiliser la carte SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Utiliser cette carte SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Désactivé"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Pour désactiver cette carte SIM, retirez-la"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Touchez pour activer le réseau de <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Effacer la carte SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Type de réseau préféré"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Changer le mode de fonctionnement du réseau"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Type de réseau préféré"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Communiquez avec votre fournisseur réseau pour connaître les tarifs."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Utilisation des données par application"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mode réseau non valide : <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorer."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Noms des points d\'accès"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"nom du point d\'accès"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Indisponible lorsque vous êtes connectés au réseau de <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Passer à <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Passer à la carte SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Utiliser <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Une seule carte SIM peut être active à la fois.\n\nLe fait de passer au réseau de <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> n\'annulera pas votre service auprès de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Une seule carte eSIM peut être active.\n\nPasser à <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> n\'annulera pas votre service <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Une seule carte SIM peut être active à la fois.\n\nLe fait de passer à un autre réseau n\'annulera pas votre service auprès de <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Vous pouvez utiliser deux cartes SIM simultanément. Pour utiliser <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, désactivez l\'autre SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Passer à <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Désactiver <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Non merci"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Annuler"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Changer"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Désactiver"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Impossible d\'activer la carte SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Réessayer d\'activer la carte SIM. Si le problème persiste, redémarrez votre appareil."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configurez votre carte SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Configurez les préférences de votre réseau cellulaire pour utiliser plusieurs cartes SIM sur cet appareil"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Étiqueter vos cartes SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Vous verrez ces étiquettes lors des appels, de l\'envoi de messages texte et de l\'utilisation des données, ainsi que dans les Paramètres"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Étiquette de la carte SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Étiquette"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Choix de cartes SIM à utiliser"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Vous pouvez utiliser deux cartes SIM simultanément"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Config. cartes SIM primaires"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Choisissez les cartes SIM à utiliser par défaut pour les appels, les messages texte et les données"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Vos cartes SIM principales"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Appels"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Messages texte"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Commutation auto. de données"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Utiliser les données de l\'une ou l\'autre carte SIM en fonction de la couverture et de la disponibilité"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Données uniquement"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configuration"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Suivant"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Réseau cellulaire"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Numéro de téléphone"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Étiquette et couleur : SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activation du réseau"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Changement de fournisseur de services en cours…"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> est actif"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Pour utiliser les données cellulaires, les fonctionnalités d\'appels et les messages texte plus tard, accédez aux paramètres du réseau"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Effacer cette carte eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Si vous effacez ce module SIM, le service <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sera retiré de cet appareil.\n\nLe service <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ne sera pas annulé."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Effacer"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Effacement du module SIM en cours…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Impossible d\'effacer le module SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Ce module SIM ne peut pas être effacé en raison d\'une erreur.\n\nRedémarrez votre appareil et réessayez."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Se connecter à l’appareil"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"L\'application <xliff:g id="APPNAME">%1$s</xliff:g> souhaite utiliser un réseau Wi‑Fi temporaire pour se connecter à votre appareil"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Aucun appareil trouvé. Assurez-vous que l\'appareil est allumé et prêt à se connecter."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Appels d\'urgence"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Votre fournisseur de services ne prend pas en charge les appels Wi‑Fi.\nL\'appareil basculera automatiquement vers le réseau cellulaire pour faire un appel urgence.\nLes appels d\'urgence sont uniquement possibles dans les régions couvertes par un réseau cellulaire."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Utiliser le Wi‑Fi pour les appels afin d\'améliorer la qualité"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Méthode d\'appel secondaire"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Si <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> n\'est pas accessible ou si vous êtes en itinérance, servez-vous de votre carte SIM de données cellulaires pour faire et recevoir des appels avec <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"méthode d\'appel secondaire"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Message multimédia entrant"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Impossible d\'envoyer le message multimédia"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Touchez pour autor. mess. multim. sur le réseau de <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> lorsque les données cellulaires sont désactivées"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Infos sur votre politique de travail"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Les paramètres sont gérés par votre administrateur informatique"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Processeur graphique"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Démarrer avec des pages de 16 Ko"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Démarrage par noyau compatible avec pages de 16 Ko"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Redémarrer avec un noyau compatible avec les pages de 16 Ko?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVERTISSEMENT : Certaines applications peuvent ne pas être compatibles avec ce mode. L\'appareil redémarrera après la confirmation."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Redémarrer avec un noyau compatible avec les pages de 4 Ko?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"L\'appareil redémarrera après la confirmation."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Échec de la mise à jour vers un noyau compatible avec les pages de 16 Ko."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Appliquer les modifications"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Gestionnaire de rapport de bogue"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Détermine quelle application gère le raccourci de rapport de bogue sur votre appareil."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personnel"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Pour que vous puissiez reprendre rapidement la lecture, le lecteur multimédia reste ouvert dans Paramètres rapides"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Afficher le contenu multimédia sur l\'écran de verrouillage"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Pour que vous puissiez reprendre rapidement la lecture, le lecteur multimédia reste ouvert sur l\'écran de verrouillage"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Afficher les recommandations relatives aux contenus multimédias"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Afficher les recommandations relatives au contenu multimédia de l\'Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"En fonction de votre activité"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Masquer le lecteur"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Affichez le lecteur"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"Carte eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Cartes eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Active"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactive"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Configuration par défaut pour <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"appels"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"messages texte"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Le son des appareils multimédias compatibles devient plus immersif"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Suivi de la tête"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Le son est modifié en fonction des mouvements de votre tête pour produire un son plus naturel"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synchroniser les autorisations"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Donner à <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> les mêmes autorisations que vous avez donné à <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synchroniser les autorisations du téléphone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Accordez à votre montre les mêmes autorisations de l\'application que celles que vous avez accordées sur ce téléphone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type d\'appareil audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Inconnu"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Haut-parleur"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Moyen"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Élevé"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Cette application ne peut être ouverte que dans une seule fenêtre."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activé"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Fonctionnalité désactivée"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Désactivé"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Désactivé"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Activée"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Désactivée"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Activée"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Désactivée"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Les écrans clairs deviennent sombres et vice-versa"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoomer sur l\'écran"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Désactivée"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Désactivés"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Activés"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Désactivée"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Activée"</string>
+    <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érifiez 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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Le mot de passe a été configuré"</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 4908691..f0a26ba 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Après 1 minute"</item>
     <item msgid="1574040255478150028">"Après 5 minutes"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 179d3a7..30f3c14 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Vous êtes désormais un développeur !"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Inutile, vous êtes déjà un développeur."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Veuillez tout d\'abord activer les options pour les développeurs."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Seuls les administrateurs peuvent accéder aux paramètres développeur."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Système"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"En service"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Hors-service"</string>
@@ -46,6 +47,8 @@
     <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 pour les jeux, les vidéos et autres"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"L\'écran frontal s\'allume pour les applis qui empêchent la mise en veille de l\'écran"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Balayez vers le haut pour continuer"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Pliez votre téléphone et balayez vers le haut sur l\'écran frontal pour continuer à utiliser l\'application, ou attendez quelques secondes pour que l\'écran se verrouille"</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>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Utiliser la rotation automatique"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Similaires"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Sonnerie et alarmes"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio pendant les appels"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimédia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notif. et autres sons système"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons des médias et du système"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifications"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Par défaut, la sortie audio est déterminée par chaque appli"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Appareil Bluetooth sans nom"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Recherche en cours"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth activé"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Tout afficher"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Tout afficher"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylet"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Appui sur le bouton du stylet"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Profil professionnel)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Écrire dans les champs de texte"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer 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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Connecter à un flux LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Flux audio à proximité"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Flux audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Connecter à un flux audio à l\'aide d\'un code QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Aucun flux audio n\'a été détecté"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pour sélectionner une langue pour chaque appli, accédez aux paramètres de langue des applis."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues des applis"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sélectionner %s comme langue du système ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Ajouter %s aux langues préférées ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Cela permet aux applis et sites Web de savoir que vous préférez aussi cette langue."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Les paramètres et préférences régionales de votre appareil seront modifiés."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Modifier"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s indisponible"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Samedi"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Si une appli ne prend pas en charge les préférences régionales, elle utilisera ses paramètres régionaux par défaut."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Découvrez-en davantage sur les préférences linguistiques."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Préférences supplémentaires"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Genre grammatical"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Sélectionnez la manière dont vous souhaitez que l\'on s\'adresse à vous."</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Les applications sont susceptibles d\'utiliser le genre grammatical que vous spécifiez pour personnaliser la façon dont elles s\'adressent à vous."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Non défini"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Féminin"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculin"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutre"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Retirer la langue sélectionnée ?}one{Retirer la langue sélectionnée ?}other{Retirer les langues sélectionnées ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Le texte s\'affichera dans une autre langue."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossible de supprimer toutes les langues"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Localisation"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Utiliser la localisation"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Activé - # appli a accès à votre position}one{Activé - # appli a accès à votre position}other{Activé - # applis ont accès à votre position}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activée/# appli a accès à la position}one{Activée/# appli a accès à la position}other{Activée/# applis ont accès à la position}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Les applis ayant l\'autorisation de détecter les appareils à proximité peuvent déterminer la position relative des appareils connectés."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accès à la position est désactivé pour les applis et les services. La position de votre appareil peut toujours être envoyée aux services d\'urgence lorsque vous les contactez par téléphone ou SMS."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Découvrez-en davantage sur les paramètres de localisation."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"En savoir plus sur les paramètres de localisation."</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Pour modifier l\'accès à la position, allez dans Paramètres &gt; Sécurité &gt; Paramètres de confidentialité"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Pour de meilleurs résultats, utilisez une protection d\'écran certifiée Made for Google. L\'empreinte digitale de votre enfant peut ne pas être reconnue avec d\'autres protections d\'écran."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Déverrouillage par une montre"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Si vous configurez le déverrouillage par reconnaissance faciale et par empreinte digitale, votre téléphone vous demandera votre empreinte quand vous porterez un masque ou que vous serez dans un endroit sombre.\n\nVous pouvez utiliser votre montre pour le déverrouillage quand votre visage ou votre empreinte ne sont pas reconnus."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Vous pouvez utiliser votre montre pour le déverrouillage quand votre empreinte n\'est pas reconnue."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Vous pouvez utiliser votre montre pour le déverrouillage quand votre visage n\'est pas reconnu."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Si vous configurez le déverrouillage par reconnaissance faciale et par empreinte digitale, votre téléphone vous demandera votre empreinte quand vous porterez un masque ou que vous serez dans un endroit sombre.\n\nLe Déverrouillage par une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple lorsque vos doigts sont mouillés ou que votre visage n\'est pas reconnu."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Le Déverrouillage par une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque votre empreinte digitale n\'est pas reconnue."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Le Déverrouillage par une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque votre visage n\'est pas reconnu."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Utiliser votre empreinte digitale ou montre pour"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Utiliser votre visage ou montre pour"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Utiliser votre visage, empreinte digitale ou montre pour"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Déverrouillage par reconnaissance faciale et la <xliff:g id="WATCH">%s</xliff:g> ajouté"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Visage, empreinte digitale et <xliff:g id="WATCH">%s</xliff:g> ajoutés"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Visage, empreintes digitales et <xliff:g id="WATCH">%s</xliff:g> ajoutés"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Déblocage de l\'authentificateur distant"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Montre ajoutée"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurer votre montre"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Le Déverrouillage par une montre est un autre moyen pratique de déverrouiller ce téléphone, par exemple, lorsque vos doigts sont mouillés ou que votre visage n\'est pas reconnu.\n\nVous pouvez utiliser votre montre pour déverrouiller ce téléphone lorsque vous :"</string>
+    <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">"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">"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>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmer"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Vous avez terminé !"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Vous pouvez désormais utiliser votre montre pour déverrouiller ce téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou appuyez sur une notification."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"OK"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Déverrouillage par une montre"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Vous pouvez utiliser votre montre pour déverrouiller ce téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou appuyez sur une notification."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Pour utiliser le Déverrouillage par une montre, votre montre doit être déverrouillée, à votre poignet, à proximité et connectée à ce téléphone. Si la connexion est interrompue, vous devrez déverrouiller le téléphone avant de pouvoir utiliser le Déverrouillage par une montre.\n\nÀ noter :\nVous ne pouvez avoir qu\'une seule montre configurée à la fois. Retirez la montre actuelle pour pouvoir en ajouter une autre."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"En savoir plus sur le Déverrouillage par une montre"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer la montre"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage par empreinte digitale et reconnaissance faciale"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverrouillage par reco. faciale et empreinte pour le travail"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuration requise"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sécurité"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Confidentialité"</string>
     <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="2274405892301976238">"Gardez les applications privées verrouillées et masquées"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Gardez vos applis privées dans un espace séparé que vous pouvez masquer ou verrouiller"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Verrouillage d\'Espace privé"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Utiliser le verrouillage de l\'écran de l\'appareil"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Déverrouillage par reconnaissance faciale/empreinte digitale"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Déverrouillage par empreinte digitale"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Déverrouillage par reconnaissance faciale"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Appuyez pour configurer"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Déverrouillage par empreinte digitale pour un espace privé"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Déverrouillage par reconnaissance faciale pour un espace privé"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Méthodes de déverrouillage"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Comme pour verrouiller l\'écran de l\'appareil"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Choisir un nouveau verrouillage d\'Espace privé ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Verrouiller automatiquement"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Verrouiller l\'espace privé automatiquement"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Vous avez la possibilité de verrouiller votre espace privé automatiquement lorsque vous n\'utilisez pas votre appareil pendant un certain temps"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"À chaque verrouillage de l\'appareil"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Après 5 minutes d\'inactivité"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Jamais"</string>
+    <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_delete_title" msgid="3075645119800272800">"Supprimer 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="private_space_unlocked" msgid="9091600948712932046">"Espace privé déverrouillé"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Définir le verrouillage de l\'écran"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Pour utiliser votre 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="private_space_cancel_label" msgid="379259667396956886">"Annuler"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configuration"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configurer un espace privé"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Gardez vos applis privées dans un espace séparé que vous pouvez masquer ou verrouiller"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Comment ça marche ?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Vous pouvez accéder à votre espace privé à partir du bas de votre liste d\'applis"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Les applis dans votre espace privé sont protégées par un verrouillage"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Les notifications des applis figurant dans votre espace privé sont masquées lorsque ces applis sont verrouillées"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Les applis installées dans votre espace privé n\'apparaîtront ni dans le gestionnaire d\'autorisations, ni dans le tableau de bord Confidentialité. Lorsque votre espace privé est verrouillé, d\'autres paramètres sont également concernés. \n\nIl est impossible de basculer votre espace privé sur un autre appareil. Vous devrez configurer un autre espace privé si vous souhaitez l\'utiliser sur un autre appareil.\n\nQuiconque connecte votre appareil à un ordinateur ou y installe des applis malveillantes peut avoir accès à votre espace privé."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configuration de l\'espace privé…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Les notifications des applis dans l\'espace privé sont masquées lorsque ces applis sont verrouillées"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Déverrouillez l\'espace privé pour partager des photos ou des fichiers provenant des applis de votre espace privé"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Certaines applis sont déjà installées dans votre espace privé"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Impossible de configurer l\'espace privé"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Réessayer"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Utiliser le verrouillage de l\'écran pour déverrouiller l\'espace privé ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Vous pouvez déverrouiller votre espace privé de la même manière que vous déverrouillez votre appareil ou bien choisir un verrouillage différent"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Utiliser le verrouillage de l\'écran"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Choisir un nouveau verrouillage"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tout est prêt !"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Pour accéder à votre espace privé, rendez-vous dans votre liste d\'applis, puis faites défiler vers le bas"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"OK"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Faites défiler vers le bas pour trouver votre espace privé"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Choisissez une méthode de verrouillage pour l\'espace privé"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Vous pouvez déverrouiller votre espace privé à l\'aide de votre empreinte digitale. Pour plus de sécurité, cette option doit être associée à une méthode secondaire de verrouillage."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Définir un code PIN pour l\'espace privé"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Définir un mot de passe pour l\'espace privé"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Définir un schéma pour l\'espace privé"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Pour afficher Espace privé (UX non finale)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Ouvrez l\'application Paramètres"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Appuyez sur sécurité et confidentialité &gt; Espace privé &gt; Masquer Espace privé lorsque l\'appareil est verrouillé"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Désactivez Masquer Espace privé lors du verrouillage"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Remarque à l\'attention des Googleurs : le développement de cette fonctionnalité est toujours en cours"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Vous pouvez ajouter jusqu\'à <xliff:g id="COUNT">%d</xliff:g> empreintes digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Vous avez ajouté le nombre maximal autorisé d\'empreintes digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossible d\'ajouter d\'autres empreintes digitales"</string>
@@ -648,13 +780,15 @@
     <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 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>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Impossible de se connecter à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Appareils disponibles"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"En mode Avion"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notifier en cas de réseaux publics"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"M\'avertir lorsqu\'un réseau public de haute qualité est disponible"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Autoriser les réseaux WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP est un ancien protocole de sécurité moins sécurisé"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Votre opérateur n\'autorise pas les réseaux WEP parce qu\'ils sont moins sécurisés"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activer automatiquement le Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Le Wi‑Fi se réactivera à proximité des réseaux haute qualité enregistrés, par ex. le réseau de votre domicile"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Indisponible, car le service de localisation est désactivé. Activez la "<annotation id="link">"localisation"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"La recherche Wi-Fi autorise les applis et les services à rechercher des réseaux Wi-Fi à tout moment, même si le Wi-Fi est désactivé. Ce réglage peut, par exemple, servir à améliorer les fonctionnalités et les services géolocalisés."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activer"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Recherche Wi-Fi activée"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ce réseau utilise un ancien protocole de sécurité moins sécurisé"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Le réseau <xliff:g id="NAME">%1$s</xliff:g> est bloqué"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ce réseau utilise un ancien protocole de sécurité appelé WEP, qui est moins sécurisé. Pour vous connecter malgré tout, vous pouvez autoriser les réseaux WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Votre opérateur ne vous permet pas de vous connecter à ce réseau parce qu\'il utilise un ancien protocole moins sécurisé"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Autoriser le WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Fermer"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Options avancées"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Liste déroulante \"Options avancées\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"développer"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Rester en Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne plus afficher"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Se connecter"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi activé"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connecté à <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connexion à <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connexion…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Échec de la connexion au réseau."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Réseau hors de portée"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Supprimer"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modifier"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Échec de la suppression du réseau."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Enregistrer"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Échec de l\'enregistrement du réseau."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Annuler"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Données mobiles"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> - Recharge en cours"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> - Recharge en cours"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Connexion du point d\'accès"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Force de connexion"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Réseaux enregistrés"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Aucun mot de passe défini"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nom du point d\'accès"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Mot de passe du point d\'accès"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Bande du point d\'accès"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Désactiver le point d\'accès automatiquement"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Lorsqu\'il n\'y a aucun appareil connecté"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Étendre la compatibilité"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balance des blancs de l\'écran"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
     <string name="fold_lock_behavior_title" msgid="786228803694268449">"Continuer à utiliser les applis quand 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 à <xliff:g id="ID_1">%1$s</xliff:g> Hz pour certains contenus. Sollicite davantage la batterie."</string>
+    <string name="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Désactiver la fréquence d\'images par défaut pour les jeux"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Désactiver la limitation de la fréquence d\'images maximale à <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz pour les jeux"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Affichage fluide"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Regard sur écran utilise la caméra frontale pour détecter si quelqu\'un regarde l\'écran. Il opère sur l\'appareil uniquement, et les images ne sont jamais enregistrées ni envoyées à Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activer Regard sur l\'écran"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Garde l\'écran allumé quand vous le regardez"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Un délai plus long de mise en veille de l\'écran sollicitera davantage la batterie."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"L\'appareil photo est verrouillé"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Vous devez déverrouiller l\'appareil photo pour la détection de visages"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"L\'appareil photo doit être déverrouillé pour utiliser Regard sur écran"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"Code IMEI (emplacement SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"Code IMEI (emplacement SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Pour l\'afficher, sélectionnez un réseau enregistré"</string>
+    <string name="status_imei" msgid="5719752369250485007">"Code IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"Code IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Version de la liste d\'itinérance préférée"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Niveau de la batterie"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Communs"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Paramètres communs"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Enregistrer"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Annuler"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Le champ \"Nom\" est obligatoire."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"L\'APN est obligatoire."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Le champ MCC doit contenir 3 chiffres."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Le champ MNC doit contenir 2 ou 3 chiffres."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"L\'opérateur n\'autorise pas l\'ajout d\'APN de type %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Le champ MMSC doit être valide."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restauration des paramètres APN par défaut en cours..."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Rétablir param. par défaut"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"La réinitialisation des paramètres APN par défaut est terminée."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Réinitialiser"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Le Bluetooth et le Wi‑Fi ont été réinitialisés"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Effacer les eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Cela n\'entraînera la résiliation d\'aucun forfait mobile. Pour télécharger des SIM de remplacement, contactez votre opérateur."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Réinitialiser les paramètres"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Réinitialiser tous les paramètres du réseau ? Cette action est irréversible."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Réinitialiser tous les paramètres réseau et effacer les eSIM ? Cette action est irréversible."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Réinitialiser ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"La réinitialisation du réseau n\'est pas disponible pour cet utilisateur."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Les paramètres réseau ont bien été réinitialisés."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Impossible d\'effacer les profils SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Une erreur empêche d\'effacer les eSIM.\n\nRedémarrez votre appareil et réessayez."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Effacer toutes les données (rétablir la configuration d\'usine)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Effacer données (rétablir config. d\'usine)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"La musique"</li>\n<li>"Les photos"</li>\n<li>"Les autres données utilisateur"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"Les cartes eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Cette opération n\'annulera pas votre forfait mobile."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Toutes vos informations personnelles et les applications téléchargées seront supprimées. Cette action est irréversible."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Toutes vos infos personnelles, y compris les applis et les profils SIM téléchargés, seront supprimées. Cette action est irréversible."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Effacer toutes les données ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Le rétablissement de la configuration d\'usine n\'est pas disponible pour cet utilisateur"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Suppression en cours"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Point d\'accès, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Connexion Internet non partagée avec d\'autres appareils"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Désactivé"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Partage de connexion"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ne pas utiliser le point d\'accès Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Ne partager Internet que via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Ne partager Internet que via le Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Ne partager Internet que via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Ne partager Internet que via le Bluetooth et USB"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Ne partager Internet que via USB et Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Ne partager Internet que via le Bluetooth et Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Ne partager Internet que via le Bluetooth, USB et Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Partage via USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Partage via Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Partage via Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilisez un point d\'accès et le partage de connexion pour fournir Internet à d\'autres appareils via votre connexion au Wi-Fi ou aux données mobiles. Les applis peuvent aussi créer un point d\'accès pour partager des contenus avec des appareils à proximité."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Aide"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Réseau mobile"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Forfait mobile"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Appli de SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Changer d\'application pour les SMS ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> comme application SMS ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Changer d\'assistant Wi‑Fi ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Utiliser <xliff:g id="NEW_APP">%1$s</xliff:g> au lieu de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pour gérer vos connexions réseau ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Utiliser <xliff:g id="NEW_APP">%s</xliff:g> pour gérer vos connexions réseau ?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Opérateur de carte SIM inconnu"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Aucun site Web de gestion des comptes connu pour <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insérez la carte SIM, puis redémarrez."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connectez-vous à Internet."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Demandes de localisation récentes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Position du profil pro"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Accès des applis à la position"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Supprimer l\'accès"</string>
     <string name="controls_label" msgid="8671492254263626383">"Commandes"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forcer l\'arrêt"</string>
+    <string name="archive" msgid="9074663845068632127">"Archiver"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurer"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Taille de l\'application"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Application sur USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Impossible de calculer la taille du package."</string>
     <string name="version_text" msgid="7628938665256107608">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Déplacer"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Échec de l\'archivage"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> archivée"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Échec de la restauration"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restauration de <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Une autre migration est déjà en cours."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Espace de stockage insuffisant."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"L\'application n\'existe pas."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Clavier à l\'écran disponible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gérer les claviers à l\'écran"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Options"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
     <string name="show_ime" msgid="4334255501724746849">"Utiliser le clavier à l\'écran"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Afficher le clavier virtuel même lorsque le clavier physique est actif"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Touches à rebonds"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Activez les Touches à rebonds pour une accessibilité accrue sur un clavier physique"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Touches persistantes"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Activer les Touches persistantes pour une accessibilité accrue sur un clavier physique"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Raccourcis clavier"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afficher la liste des raccourcis"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Claviers et outils du profil professionnel"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Trier par temps d\'utilisation"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Trier par dernière utilisation"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Trier par nom d\'appli"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Dernière utilisation"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Dernière utilisation"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"jamais"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Durée d\'utilisation"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibilité"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Paramètres d\'accessibilité"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuer"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuler"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Paramètres d\'agrandissement"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Agrandir en appuyant trois fois"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Agrandir avec un raccourci"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Agrandir avec un raccourci et trois tapotements"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"À propos de <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Appuyer deux 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="860548190334486449">"Pour commencer et arrêter l\'agrandissement, appuyez deux 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Pour utiliser une fonctionnalité d\'accessibilité, 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Paramètres bouton Accessibilité"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Paramètres du bouton"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Raccourci vers <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Bouton Accessibilité"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Geste Accessibilité"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Appui double à deux doigts sur l\'écran"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"appui double à deux doigts sur l\'écran"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Appuyer rapidement sur l\'écran {0,number,integer} fois avec deux doigts"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Appuyer trois fois sur l\'écran"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"En savoir plus sur le bouton et le geste d\'accessibilité"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Utilisation du bouton Accessibilité. Geste indisponible avec la navigation à trois boutons."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accès rapide aux fonctionnalités d\'accessibilité"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Pour commencer"</b>\n"1. Accédez aux paramètres d\'accessibilité\n2. Sélectionnez une fonctionnalité et appuyez sur le raccourci\n3. Indiquez si vous voulez accéder à cette fonctionnalité via un bouton ou par un geste"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Pour commencer"</b>\n"1. Accédez aux paramètres d\'accessibilité\n2. Sélectionnez une fonctionnalité et appuyez sur le raccourci\n3. Choisissez le bouton pour accéder à cette fonctionnalité"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Pour démarrer&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Accédez aux paramètres d\'accessibilité&lt;br/&gt; {1,number,integer}. Sélectionnez une fonctionnalité et appuyez sur le raccourci&lt;br/&gt; {2,number,integer}. Précisez si vous souhaitez utiliser un bouton ou un geste pour accéder au paramètre&lt;br/&gt;."</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Pour démarrer&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Accédez aux paramètres d\'accessibilité&lt;br/&gt; {1,number,integer}. Sélectionnez une fonctionnalité et appuyez sur le raccourci&lt;br/&gt; {2,number,integer}. Choisissez le bouton pour accéder à cette fonctionnalité&lt;br/&gt;."</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Utiliser le bouton ou le geste"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Emplacement"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Taille"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Bouton Marche/Arrêt pour raccrocher"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Agrandir le curseur"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Rendre le curseur plus visible"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Passer toutes les applis en mode sombre"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Concerne les applis n\'ayant pas leur propre thème sombre. Certaines applis peuvent présenter des problèmes d\'affichage tels qu\'un inversement des couleurs."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Supprimer les animations"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Réduire les mouvements à l\'écran"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Le service peut suivre vos interactions avec une application ou un capteur matériel, et interagir avec les applications en votre nom."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Autoriser"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuser"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Arrêter"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Annuler"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Arrêter <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Si vous appuyez sur <xliff:g id="STOP">%1$s</xliff:g>, le service <xliff:g id="SERVICE">%2$s</xliff:g> sera arrêté."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Désactiver"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ne pas désactiver"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Désactiver <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Aucun service installé"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Aucun service sélectionné"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Aucune description fournie"</string>
     <string name="settings_button" msgid="2195468788019730377">"Paramètres"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilité à la lumière, photophobie, thème sombre, migraine, mal de tête, mode lecture, mode nuit, réduire la luminosité, point blanc"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Simplicité d\'utilisation, facilité d\'accès, assistance, aide"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vision, audition, aveugle, sourd, motricité, dextérité, assistance, facilité d\'utilisation, facilité d\'accès, main, aide"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Agrandisseur de fenêtre, Zoom, Agrandissement, Déficience visuelle, Agrandir, zoomer"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Sous-titres, sous-titrage, ST, Transcription instantanée, malentendant, perte d\'audition, sous-titrage en temps réel, reconnaissance vocale, sous-titre"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste des couleurs"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"moteur, souris"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"appareils auditifs, malentendant, perte d\'audition, implants cochléaires, appareils amplificateurs, processeurs audio"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motricité, souris, souris externe, head mouse, souris adaptative, fauteuil roulant, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"appareils auditifs, malentendant, perte d\'audition, implants cochléaires, appareils amplificateurs, processeurs audio, CRAU"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"malentendant, perte d\'audition, sous-titres, téléscripteur, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"trois boutons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dextérité, motricité, senior, arthrite, TMS, accident vasculaire cérébral, tremblements, sclérose en plaques, paralysie cérébrale, troubles musculosquelettiques, main"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retard, dextérité, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impression"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Désactivé"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 service d\'impression activé}one{# service d\'impression activé}other{# services d\'impression activés}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Voir les applis sollicitant le plus la batterie"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Recharge optimisée pour protéger votre batterie"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Pour prolonger la durée de vie de votre batterie, la recharge est optimisée"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Recharge optimisée pour protéger votre batterie"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Pour prolonger la durée de vie de votre batterie, la recharge est optimisée lorsque l\'appareil se trouve dans la station d\'accueil"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Recharge optimisée pour protéger votre batterie"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Pour prolonger la durée de vie de votre batterie, la recharge est optimisée lorsque l\'appareil se trouve sur la station d\'accueil"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Recharge complète"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Pour protéger votre batterie, la recharge sera optimisée la prochaine fois que la tablette se trouvera sur la station d\'accueil"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"En savoir plus sur la suspension de la recharge"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Reprendre la recharge"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclut les activités en arrière-plan qui sollicitent fortement la batterie"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Supprimer"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Annuler"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Recharger complètement"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problème de recharge de l\'accessoire"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"En savoir plus sur la recharge incompatible"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gestionnaire de batterie"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gérer les applications automatiquement"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"maintenant"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Graphique d\'utilisation de la batterie"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Graphique d\'utilisation de la batterie par jour"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Graphique d\'utilisation de la batterie par heure"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Pourcentage du niveau de batterie de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> à <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Utilisation de la batterie depuis la dernière charge complète"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Utilisation de la batterie (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Temps d\'utilisation depuis la dernière charge complète"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal de numérotation d\'urgence"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Définir le comportement en cas d\'appel d\'urgence"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sauvegarde"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activé"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Désactivé"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sauvegarde et restauration"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Données personnelles"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sauvegarder mes données"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nom"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresse du serveur"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Chiffrement PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Secret L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identifiant IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Clé pré-partagée IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificat utilisateur IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificat CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificat de serveur IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Afficher les options avancées"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domaines de recherche DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Serveurs DNS (ex. : 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Routages (ex. : 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nom d\'utilisateur"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Mot de passe"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Enregistrer les informations de compte"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(non utilisé)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne pas valider le serveur)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(reçu du serveur)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ce type de VPN ne peut pas rester connecté en permanence"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Le VPN permanent n\'accepte que les adresses de serveur composées de chiffres"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Vous devez spécifier un serveur DNS pour le VPN permanent"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Les adresses de serveur DNS pour le VPN permanent doivent être composées de chiffres"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Les informations saisies ne sont pas acceptées avec le VPN permanent"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Annuler"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ignorer"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquer les connexions sans VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Exiger une connexion VPN ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Non sécurisé. Passez à un VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Échec du démarrage du VPN non pris en charge."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Sélectionnez un profil VPN auquel rester connecté en permanence. Le trafic réseau ne sera autorisé que lorsque vous serez connecté à ce VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Aucun"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Le VPN permanent nécessite une adresse IP pour le serveur et le DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertes enlèvement"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Recevoir les bulletins relatifs aux enlèvements d\'enfants"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Répéter"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Activer le gestionnaire d\'appels"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Autoriser ce service à gérer comment vous passez vos appels"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gestionnaire d\'appels"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertes d\'urgence sans fil"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Opérateurs de réseaux"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Noms des points d\'accès"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"portefeuille"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"payer, appuyer, paiements"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sauvegarde, sauvegarder"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"geste"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"visage, déverrouiller, authentifier, se connecter"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"visage, déverrouiller, authentification, se connecter, empreinte digitale, biométrie"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, version prl, imei sv"</string>
@@ -2999,6 +3160,7 @@
     <string name="keywords_font_size" msgid="1643198841815006447">"taille du texte, gros caractères, grande police, gros texte, vision basse, 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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Sons de mise en route"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Sous-titres instantanés"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Sous-titrer automatiquement les contenus multimédias"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Haut-parleurs du téléphone"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Haut-parleurs de la tablette"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Haut-parleurs de l\'appareil"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Casque filaire"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Le son des appareils multimédias compatibles devient plus immersif"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Désactivé"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Que voulez-vous que votre écran de verrouillage affiche ?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Conversations récentes supprimées"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversation supprimée"</string>
     <string name="clear" msgid="5092178335409471100">"Effacer"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Supprimer <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Les conversations prioritaires ou modifiées s\'afficheront ici"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Lorsque vous marquerez une conversation comme prioritaire ou que vous la modifierez, elle s\'affichera ici. \n\nPour modifier les paramètres des conversations : \nBalayez l\'écran de haut en bas pour ouvrir le volet déroulant, puis appuyez de manière prolongée sur une conversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Réduire"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Désactivé"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Épinglage d\'application"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Avec l\'épinglage d\'application, l\'application actuelle reste affichée jusqu\'à ce que vous la retiriez. Cette fonctionnalité vous permet, par exemple, de laisser une personne de confiance jouer à un jeu spécifique."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Les données personnelles peuvent être accessibles et d\'autres applis peuvent être ouvertes depuis une appli épinglée. \n\nPour utiliser l\'épinglage d\'appli : 	\n1. Activez l\'épinglage d\'appli 	\n2. Ouvrez \"Récents\" 	\n3. Appuyez sur l\'icône d\'appli en haut de l\'écran, puis sur \"Épingler\""</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Les données personnelles peuvent être accessibles et d\'autres applis peuvent être ouvertes depuis une appli épinglée. \n\nSi vous souhaitez partager votre appareil de manière sécurisée, essayez plutôt d\'utiliser un profil invité. \n\nPour utiliser l\'épinglage d\'application, procédez comme suit : 	\n1. Activez l\'épinglage d\'application 	\n2. Ouvrez \"Récents\" 	\n3. Appuyez sur l\'icône d\'appli en haut de l\'écran, puis sur \"Épingler\""</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Les données personnelles peuvent être accessibles et d\'autres applis peuvent être ouvertes depuis une appli épinglée. \n\nPour utiliser l\'épinglage d\'application : 	\n{0,number,integer}. Activer l\'épinglage d\'application 	\n{1,number,integer}. Ouvrir Récents 	\n{2,number,integer}. Appuyez sur l\'icône d\'appli en haut de l\'écran, puis sur \"Épingler\""</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Les données personnelles peuvent être accessibles et d\'autres applis peuvent être ouvertes depuis une appli épinglée. \n\nSi vous souhaitez partager votre appareil de manière sécurisée, essayez plutôt d\'utiliser un profil invité. \n\nPour utiliser l\'épinglage d\'application : 	\n{0,number,integer}. Activer l\'épinglage d\'application 	\n{1,number,integer}. Ouvrir Récents 	\n{2,number,integer}. Appuyez sur l\'icône d\'appli en haut de l\'écran, puis sur \"Épingler\""</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Lorsqu\'une application est épinglée : \n\n•	 Des données à caractère personnel peuvent être accessibles (comme des contacts et le contenu d\'e-mails) \n•		D\'autres applis peuvent être ouvertes depuis l\'application épinglée \n\nN\'utilisez l\'épinglage d\'application qu\'avec des personnes de confiance.\n"</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Demander le schéma de déverrouillage avant de retirer l\'épingle"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Demander le code avant de retirer l\'épingle"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Paramètres de l\'appli si inutilisée"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Suspendre l\'activité si inutilisée"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Retirer les autorisations, supprimer les fichiers temporaires et arrêter les notifications"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gérer l\'appli si inutilisée"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Retirer les autorisations, supprimer les fichiers temporaires, arrêter les notifications et archiver l\'appli"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Toutes les applis"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Applications installées"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Applis instantanées"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Disponible"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Mémoire utilisée par les applications"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 appli a utilisé de la mémoire au cours du dernier {time}}one{# appli a utilisé de la mémoire au cours du dernier {time}}other{# applis ont utilisé de la mémoire au cours du dernier {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Activer le profilage de l\'utilisation de la mémoire"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Le profilage de l\'utilisation de la mémoire nécessite des ressources système supplémentaires."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilage de la mémoire désactivé"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Fréquence"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Utilisation maximale"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Aucune donnée utilisée"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Superposition sur d\'autres applis"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Autoriser la superposition sur d\'autres applis"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Autorisez cette appli à se superposer aux autres applis que vous utilisez. Elle pourra voir où vous appuyez ou modifier ce qui est affiché à l\'écran."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Modifier la sortie multimédia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Autoriser l\'appli à modifier la sortie média"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Autoriser cette appli à choisir quel appareil connecté peut lire une piste audio ou une vidéo à partir d\'autres applis. Si elle y a été autorisée, cette appli peut accéder à une liste d\'appareils disponibles tels que des casques audio ou des enceintes et choisir le périphérique de sortie à utiliser pour caster ou lire en streaming une piste audio ou une vidéo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Accès à tous les fichiers"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Améliorer l\'activation des commandes vocales"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Cet appareil utilise vos données personnelles afin d\'améliorer le modèle d\'activation de la commande vocale. Les applis peuvent recevoir des résumés récapitulatifs regroupés pour de nombreux utilisateurs afin de préserver la confidentialité tout en assurant une amélioration du modèle d\'activation pour chacun.\n\n"<a href="">"En savoir plus sur les données personnelles"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Avertissement sur les données : <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limite de données : <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Avertissement sur les données : <xliff:g id="ID_1">^1</xliff:g> – Limite de données : <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Le suivi de consommation de votre opérateur peut différer de celui qui est effectué sur votre appareil."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Les données consommées via les réseaux d\'opérateurs sont exclues"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> utilisé(s)"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Activer l\'avertissement"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Mis à jour il y a <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Mis à jour par <xliff:g id="ID_1">^1</xliff:g> à l\'instant"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Mis à jour à l\'instant"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Afficher le forfait"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Afficher les détails"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Économiseur de données"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Données sans restrictions"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalie d\'utilisation de la batterie"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Blocs Réglages rapides pour les développeurs"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Désactiver le délai d\'expiration des autorisations adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Désactiver la révocation automatique des autorisations adb pour les systèmes qui ne se sont pas reconnectés dans le délai par défaut (7 jours) ou configuré par l\'utilisateur (1 jour minimum)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Trace Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Capteurs désactivés"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Paramètres du profil professionnel"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Rechercher les contacts de l\'annuaire pro dans les applis perso"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Service de saisie automatique"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Service de saisie automatique par défaut"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Mots de passe"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Mots de passe, clés d\'accès et services de données"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Autres fournisseurs"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# mot de passe}one{# mot de passe}other{# mots de passe}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatique, saisie, saisie automatique, mot de passe"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Mots de passe, clés d\'accès et services de données"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Désactiver tous les services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Les mots de passe, clés d\'accès ainsi que d\'autres informations sauvegardées ne bénéficieront pas de la saisie automatique lors de la connexion"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Modifiez votre service préféré pour &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; À partir de maintenant, les nouveaux mots de passe, les clés d\'accès ainsi que d\'autres éléments seront stocké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_enable_confirmation_message_title" msgid="1037501792652277829">"Utiliser %1$s ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Seuls cinq services peuvent être activés"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Désactivez au moins un service pour pouvoir en ajouter un autre"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s utilise ce qui est affiché à l\'écran pour déterminer ce qui peut être saisi automatiquement."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de mots de passe, clés d\'accès et services de données"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Vous pouvez avoir jusqu\'à cinq mots de passe, clés d\'accès et services de données actifs à la fois. Pour en ajouter un, désactivez-en un."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de mots de passe, clés d\'accès et services de données"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Vous pouvez avoir jusqu\'à cinq mots de passe, clés d\'accès et services de données actifs à la fois. Pour en ajouter un, désactivez-en un autre."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Désactiver"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Saisie automatique"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Niveau de journalisation"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Vous ne pouvez modifier la compatibilité des applications que si celles-ci sont débogables. Installez une application débogable, puis réessayez."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Dépend d\'un autre paramètre"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Compte"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d comptes"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nom de l\'appareil"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Infos générales"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Infos légales et réglementaires"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Autoriser cette appli à démarrer lorsqu\'un tag NFC est scanné.\nSi cette autorisation est activée, l\'appli sera disponible comme option chaque fois qu\'un tag sera détecté."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Diffuser des contenus multimédias sur"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Diffuser <xliff:g id="LABEL">%s</xliff:g> sur"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"L\'audio se mettra en marche"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Cet appareil"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Indisponible pendant les appels"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Accepter l\'appel sur"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Silencieux"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Pour l\'activer, changez dans un premier temps l\'option \"Appui prolongé sur le bouton Marche/Arrêt\" du menu Marche/Arrêt."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Détails sur le réseau"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Les applications de votre téléphone 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="devices_title" msgid="649715719278562515">"Appareils"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Sélectionner un réseau"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Déconnecté"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nom"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Couleur (utilisée par applis compatibles)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Enregistrer"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Utiliser la SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Utiliser cette carte SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Désactivé"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Pour désactiver cette carte SIM, retirez-la"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Appuyer pour activer <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Effacer la SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Type de réseau préféré"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Changer le mode de fonctionnement du réseau"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Type de réseau préféré"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Vérifiez le tarif auprès de votre opérateur."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Consommation de données des applications"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mode réseau non valide <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Action ignorée."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Noms des points d\'accès"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Indisponible lorsque connecté à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Passer à <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Utiliser la carte SIM ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Utiliser <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Un seul profil SIM peut être actif à la fois.\n\nPasser à <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> n\'entraînera pas la résiliation de votre service <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Une seule eSIM peut être active à la fois.\n\nPasser à <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> n\'entraînera pas la résiliation de votre service <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Un seul profil SIM peut être actif à la fois.\n\nCe changement n\'entraînera pas la résiliation de votre service <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Vous pouvez utiliser deux profils SIM à la fois. Pour utiliser <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, désactivez un autre profil SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Passer à <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Désactiver <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Non, merci"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Annuler"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Changer"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Désactiver"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Impossible d\'activer la carte SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Essayez à nouveau d\'activer la carte SIM. Si le problème persiste, redémarrez l\'appareil."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configurez votre SIM."</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Pour utiliser plusieurs cartes SIM sur cet appareil, définissez vos préférences en matière de réseau mobile"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Étiquetez vos cartes SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Ces étiquettes apparaîtront lorsque vous passerez des appels, enverrez des SMS et utiliserez les données. Elles apparaîtront également dans les paramètres."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Étiquette SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Étiquette"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Choisissez les SIM à utiliser"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Vous pouvez utiliser deux cartes SIM en même temps"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Définissez vos SIM principales"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Choisissez les cartes SIM à utiliser par défaut pour les appels, SMS et données"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Vos cartes SIM principales"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Appels"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Migration automatique des données"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Utiliser les données de l\'une ou l\'autre des cartes SIM en fonction de la couverture et de la disponibilité"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Données uniquement"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configuration"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Suivant"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Réseau mobile"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Numéro de téléphone"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Étiquette et couleur de la carte SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activation du réseau"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Changement d\'opérateur…"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> est actif"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Pour utiliser ultérieurement les données mobiles, les fonctionnalités d\'appel et les SMS, accédez à vos paramètres réseau"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Effacer cette eSIM ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Si vous effacez cette SIM, le service <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sera supprimé de cet appareil.\n\nLe service <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ne sera pas résilié."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Effacer"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Effacement du profil SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Impossible d\'effacer le profil SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Une erreur empêche l\'effacement de cette carte SIM.\n\nRedémarrez votre appareil et réessayez."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connexion à l\'appareil"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"L\'application <xliff:g id="APPNAME">%1$s</xliff:g> souhaite utiliser un réseau Wi‑Fi temporaire pour établir la connexion à votre appareil"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Aucun appareil trouvé. Assurez-vous que des appareils soient activés et prêts à être connectés."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Appels d\'urgence"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Les appels d\'urgence via la fonctionnalité Appels Wi-Fi ne sont pas compatibles avec votre opérateur.\nL\'appareil basculera automatiquement sur un réseau mobile pour passer un appel d\'urgence.\nLes appels d\'urgence sont possibles uniquement dans les zones couvertes par le réseau mobile."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Utiliser le Wi-Fi pour les appels afin d\'améliorer leur qualité"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Option d\'appel de secours"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Si <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> est indisponible ou en itinérance, utilisez votre SIM de données mobiles pour les appels <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"option d\'appel de secours"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS entrant"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Impossible d\'envoyer le MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Appuyez ici pour autoriser les MMS avec <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> lorsque les données mobiles sont désactivées"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informations sur les règles professionnelles"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Paramètres gérés par votre administrateur informatique"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Démarrer avec une page de 16 ko"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Démarrer l\'appareil à l\'aide d\'un kernel compatible avec une page de 16 ko"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Redémarrer avec un kernel compatible avec les pages de 16 ko ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVERTISSEMENT : Certaines applis risquent de présenter une incompatibilité avec ce mode. L\'appareil redémarrera après la confirmation."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Redémarrer avec un kernel compatible avec les pages de 4 ko ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"L\'appareil redémarrera après la confirmation."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Échec de la mise à jour du kernel vers un kernel compatible avec les pages de 16 ko."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Application des modifications"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Gestionnaire de rapport de bug"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Détermine quelle application gère le raccourci vers le rapport de bug sur votre appareil."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personnel"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Pour reprendre rapidement la lecture, le lecteur multimédia reste ouvert dans les Réglages rapides"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Afficher le média sur l\'écran de verrouillage"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Pour reprendre rapidement la lecture, le lecteur multimédia reste ouvert sur l\'écran de verrouillage"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Afficher les recommandations multimédias"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Afficher les recommandations de contenus multimédias proposées par Google Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"En fonction de votre activité"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Masquer le lecteur"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Afficher le lecteur"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Cartes eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Actif"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactif"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" - Valeur par défaut pour <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"appels"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Le son des appareils multimédias compatibles devient plus immersif"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Suivi des mouvements de la tête"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Le son change quand vous bougez la tête pour un son plus naturel"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Autorisations de synchronisation"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Accorder à <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> les mêmes autorisations que celles que vous avez accordées à <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synchroniser les autorisations du téléphone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Accorder à votre montre les mêmes autorisations que celles que vous avez accordées à votre téléphone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type d\'appareil audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Inconnu"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Haut-parleur"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Moyen"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Élevé"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Cette appli ne peut être ouverte que dans 1 fenêtre"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activé"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Désactivé"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Désactivé"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Désactivé"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Activé"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Désactivé"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Activée"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Désactivée"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Assombrir les écrans clairs et éclaircir les écrans sombres"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Faire un zoom avant sur l\'écran"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Désactivé"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Désactivé"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Activé"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Désactivés"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Activés"</string>
+    <string 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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Le mot de passe est maintenant défini"</string>
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 0a49979..6d5e88b 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Tras 1 minuto"</item>
     <item msgid="1574040255478150028">"Tras 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index f6dcab9..11ad7db 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Agora xa es programador!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Non é necesario, xa es un programador."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Activa primeiro as opcións para programadores."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Só os usuarios con acceso de administración poden acceder á configuración para programadores."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"En servizo"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fóra de servizo"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"A pantalla frontal acenderase cando pregues o dispositivo"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Só xogos, vídeos e outros"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"A pantalla frontal acenderase para as aplicacións que impiden que a pantalla quede inactiva"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Pasar dedo cara arriba para continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Prega o teléfono e pasa o dedo cara arriba na pantalla frontal para seguir usando a aplicación ou agarda uns segundos a que se bloquee a pantalla"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nunca"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"A pantalla frontal bloquearase cando pregues o dispositivo"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Usar a función de xirar automaticamente"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionado"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ton de chamada e alarmas"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio durante as chamadas"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimedia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificacións e outros sons do sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons do sistema e multimedia"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificacións"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Por defecto, a saída de audio determínaa cada aplicación"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositivo Bluetooth sen nome"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Buscando"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"O Bluetooth está activado"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todo"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Ver todos"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Lapis óptico"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Presión do botón superior"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de traballo)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Conectar a unha emisión de audio de baixo consumo"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Emisións de audio próximas"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Emisións de audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Conéctate a unha emisión de audio por medio dun código QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Ningunha emisión de audio próxima."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para seleccionar o idioma de cada aplicación, vai á configuración do idioma das aplicacións."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Máis información sobre os idiomas das aplicacións"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Queres cambiar o idioma do sistema ao %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Queres engadir o %s ás preferencias de idioma?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Con esta acción as aplicacións e os sitios web saben que prefires este idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"As preferencias rexionais e a configuración do dispositivo cambiarán."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Cambiar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"O idioma %s non está dispoñible"</string>
@@ -196,13 +212,21 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sábado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Se unha aplicación non admite preferencias rexionais, usará as opcións predeterminadas da súa configuración rexional."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Consulta máis información sobre as preferencias de idioma."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferencias adicionais"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Tratamento"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Define como queres que se dirixan a ti"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"As aplicacións poden usar a forma de tratamento que escollas para personalizar como se dirixen a ti."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sen especificar"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"En feminino"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"En masculino"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Queres quitar o idioma seleccionado?}other{Queres quitar os idiomas seleccionados?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto mostrarase noutro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Non se poden quitar todos os idiomas"</string>
     <string name="dlg_remove_locales_error_message" msgid="6504279959974675302">"Conserva polo menos un idioma preferido"</string>
     <string name="locale_not_translated" msgid="3071618135527110152">"Non dispoñible como idioma do sistema"</string>
-    <string name="action_drag_label_move_up" msgid="3392196942330705015">"Mover cara arriba"</string>
-    <string name="action_drag_label_move_down" msgid="9069518740553953426">"Mover cara abaixo"</string>
+    <string name="action_drag_label_move_up" msgid="3392196942330705015">"Mover cara a arriba"</string>
+    <string name="action_drag_label_move_down" msgid="9069518740553953426">"Mover cara a abaixo"</string>
     <string name="action_drag_label_move_top" msgid="2430471023612171619">"Situar arriba"</string>
     <string name="action_drag_label_move_bottom" msgid="6266165197792827003">"Situar abaixo"</string>
     <string name="action_drag_label_remove" msgid="1034900377796780568">"Quitar idioma"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Localización"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar localización"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desactivada"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Opción activada: # aplicación ten acceso á localización}other{Opción activada: # aplicacións teñen acceso á localización}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Opción activada: # aplicación ten acceso á localización}other{Opción activada: # aplicacións teñen acceso á localización}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Cargando…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"As aplicacións con permiso para buscar dispositivos próximos poden determinar a posición relativa dos dispositivos conectados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acceso á localización está desactivado para as aplicacións e os dispositivos. Con todo, é posible que a localización do dispositivo se envíe aos servizos de emerxencias cando chames a un número de emerxencias ou lle envíes unha mensaxe."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Máis información sobre a configuración de localización."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Máis información sobre a configuración de localización"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Cambio acceso localización: Configuración &gt; Seguranza e privacidade &gt; Controis priv."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para obter os mellores resultados, utiliza un protector de pantalla que conte coa certificación Made for Google. Se utilizas outros protectores, pode que non se detecte a impresión dixital do teu fillo ou filla."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueo mediante reloxo"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Se configuras o desbloqueo facial e o dactilar, o teléfono pedirache a impresión dixital no caso de que leves máscara ou esteas nun espazo escuro.\n\nPoderás desbloquealo co reloxo cando non se recoñeza a túa cara ou a túa impresión dixital."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Poderás desbloquealo co reloxo cando non se recoñeza a túa impresión dixital."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Poderás desbloquealo co reloxo cando non se recoñeza a túa cara."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Se configuras o desbloqueo facial e o dactilar, o teléfono pedirache a impresión dixital no caso de que leves máscara ou esteas nun espazo escuro.\n\nA función Desbloqueo mediante reloxo ofréceche outra forma de desbloquear o teléfono facilmente en determinadas situacións (por exemplo, cando teñas os dedos mollados ou non se che recoñeza a cara)."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"A función Desbloqueo mediante reloxo ofréceche outra forma de desbloquear o teléfono facilmente en determinadas situacións (por exemplo, cando non se recoñeza a túa impresión dixital)."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"A función Desbloqueo mediante reloxo ofréceche outra forma de desbloquear o teléfono facilmente en determinadas situacións (por exemplo, cando non se che recoñeza a cara)."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Usa a impresión dixital ou o reloxo para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Usa o rostro ou o reloxo para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Usa o rostro, a impresión dixital ou o reloxo para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Engadíronse o recoñecemento facial e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Engadíronse o recoñecemento facial, a impresión dixital e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Engadíronse o recoñecemento facial, as impresións dixitais e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueo de Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Engadiuse o reloxo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o teu reloxo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"A función Desbloqueo mediante reloxo ofréceche outra forma de desbloquear o teléfono facilmente en determinadas situacións (por exemplo, cando teñas os dedos mollados ou non se recoñeza a túa cara).\n\nPodes usar o reloxo para desbloquear o teléfono ao realizar estas accións:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora non"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Máis"</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 reloxo debe estar desbloqueado, no pulso e dentro do alcance do teléfono. Non precisas volver desbloquear o reloxo mentres o teñas posto."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Cando o teléfono estea desbloqueado, enviaráseche unha notificación ao reloxo. No caso de que desbloquees o teléfono sen querer, toca a notificación para bloquealo de novo."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ti tes o control"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Cando queiras, podes acceder a Configuración e desactivar a función Desbloqueo mediante reloxo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toca unha notificación"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pasa o dedo cara arriba na pantalla de bloqueo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Selecciona o teu reloxo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Reloxos dispoñibles"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está todo listo"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Xa podes usar o reloxo para desbloquear este teléfono cando pases o dedo cara arriba na pantalla de bloqueo ou toques unha notificación"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Feito"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueo mediante reloxo"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Podes usar o reloxo para desbloquear este teléfono cando pases o dedo cara arriba na pantalla de bloqueo ou toques unha notificación"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar Desbloqueo mediante reloxo, o reloxo debe estar desbloqueado, no pulso, dentro do alcance e conectado a este teléfono. Se se interrompe a conexión, terás que desbloquear o teléfono para poder usar esta función.\n\nRecordatorio:\nNon podes ter varios reloxos configurados á vez. Se queres engadir outro, primeiro debes quitar o actual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Máis información sobre a función Desbloqueo mediante reloxo"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Engadir reloxo"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloxo"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impresión dixital e desbloqueo facial"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo dactilar e facial para o traballo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cómpre realizar o proceso de configuración"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Seguranza"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacidade"</string>
     <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="2274405892301976238">"Mantén bloqueadas e ocultas as aplicacións privadas"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantén as aplicacións privadas nun espazo separado que poderás ocultar ou bloquear"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueo do espazo privado"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Podes desbloquear o espazo privado do mesmo xeito que fas co teu dispositivo ou elixir outro bloqueo"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usar bloqueo de pantalla do dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueo dactilar e facial"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueo dactilar"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueo facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toca para configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueo dactilar para o espazo privado"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueo facial para o espazo privado"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Maneiras de desbloquear o dispositivo"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"O mesmo que o bloqueo de pantalla do dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Queres usar outro bloqueo para o espazo privado?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloquear automaticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloquear automaticamente o espazo privado"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Podes facer que se bloquee automaticamente o teu espazo privado cando leves un tempo sen usar o dispositivo"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Cada vez que se bloquee o dispositivo"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Despois de 5 minutos de inactividade"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nunca"</string>
+    <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_delete_title" msgid="3075645119800272800">"Eliminar 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="private_space_unlocked" msgid="9091600948712932046">"Desbloqueouse 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="7436025227616244687">"Para usar o espazo privado, define un bloqueo de pantalla neste dispositivo"</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="private_space_cancel_label" msgid="379259667396956886">"Cancelar"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurar"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configura un espazo privado"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantén as aplicacións privadas nun espazo separado que poderás ocultar ou bloquear"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Como funciona?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Podes acceder ao espazo privado desde a parte inferior da túa lista de aplicacións"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"As aplicacións do espazo privado protéxense cun bloqueo"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Cando o espazo privado está bloqueado, ocúltanse as notificacións das súas aplicacións"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"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.\n\nO espazo privado non se pode mover a outro dispositivo. Terás que configurar un novo espazo privado se queres usalo noutro aparello.\n\nCalquera usuario que instale aplicacións daniñas no teu dispositivo ou o conecte a un ordenador poderá acceder ao teu espazo privado."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando espazo privado…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Cando o espazo privado está bloqueado, ocúltanse as notificacións das súas aplicacións"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloquea o espazo privado para compartir fotos ou ficheiros das súas aplicacións"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Algunhas aplicacións xa están instaladas no espazo privado"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Produciuse un erro ao configurar o espazo privado"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar de novo"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Usar bloqueo pant. para desbloquear espazo priv.?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Podes desbloquear o espazo privado do mesmo xeito que fas co teu dispositivo ou elixir outro bloqueo"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueo de pantalla"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Elixir outro bloqueo"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Todo listo"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para acceder ao espazo privado, vai á lista de aplicacións e desprázate cara abaixo"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Feito"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Desprázate cara abaixo para buscar o espazo privado"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Escolle un bloqueo para o espazo privado"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Podes desbloquear o espazo privado mediante a impresión dixital. Por motivos de seguranza, esta opción require un bloqueo alternativo."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Define un PIN para o espazo privado"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Define contrasinal para o espazo privado"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Define un padrón para o espazo privado"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Para mostrar o espazo privado (non é a versión final da EU)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Abre a aplicación Configuración"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Toca Seguranza e privacidade &gt; Espazo privado &gt; Ocultar espazo privado cando estea bloqueado"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Desactivar Ocultar espazo privado cando estea bloqueado"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota para Googlers: Esta función aínda está en fase de desenvolvemento"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"É posible que tamén teñas que escribir esta clave de acceso no outro dispositivo."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma que queres vincular o conxunto coordinado"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acceso aos teus contactos e ao historial de chamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Permitir tamén o acceso aos contactos e ao historial de chamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"A información empregarase para avisos de chamadas e moito máis"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Non se puido conectar a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos dispoñibles"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Co Bluetooth activado, o dispositivo pode comunicarse con dispositivos Bluetooth próximos"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"No modo avión"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Recibir notificacións cando haxa redes públicas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notifica cando unha rede pública de alta calidade estea dispoñible"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permitir redes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP é un protocolo de seguranza máis antigo que é menos seguro"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"O teu operador non permite as redes WEP porque son menos seguras"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activar a wifi automaticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"A wifi volverase activar preto de redes de alta calidade gardadas, como a túa rede doméstica"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Non está dispoñible porque a localización está desactivada. "<annotation id="link">"Actívaa"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"A busca de redes wifi permite que as aplicacións e os servizos busquen estas redes en calquera momento, mesmo se este tipo de conexión está desactivado. Esta opción pode utilizarse, por exemplo, para mellorar as funcións e os servizos baseados na localización."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activar"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Activouse a busca de redes wifi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Esta rede usa un protocolo de seguranza máis antigo que é menos seguro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"A rede <xliff:g id="NAME">%1$s</xliff:g> está bloqueada"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Esta rede utiliza un protocolo de seguranza máis antigo (WEP) que é menos seguro. Se queres conectarte igualmente, podes permitir as redes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"O teu operador non permite que te conectes a esta rede porque utiliza un protocolo de seguranza máis antigo que é menos seguro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permitir WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Pechar"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opcións avanzadas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista despregable Opcións avanzadas"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"despregar"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Permanecer na wifi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Non mostrar de novo"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"A wifi está activada"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectácheste á rede <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Erro ao conectar á rede"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Estás fóra da zona de cobertura da rede"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Erro ao esquecer a rede"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Gardar"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Erro ao gardar a rede"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wifi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Datos móbiles"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Cargando"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Cargando"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Conexión de zona wifi"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Calidade da conexión"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes gardadas"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Non hai ningún contrasinal definido"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nome da zona wifi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Contrasinal da zona wifi"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda do punto de acceso"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desactivar zona wifi automaticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Se non hai ningún dispositivo conectado"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Ampliar compatibilidade"</string>
@@ -1007,9 +1148,11 @@
     <string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desactivado"</string>
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balance de brancos da pantalla"</string>
     <string name="display_white_balance_summary" msgid="7625456704950209050"></string>
-    <string name="fold_lock_behavior_title" msgid="786228803694268449">"Usar apps 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="fold_lock_behavior_title" msgid="786228803694268449">"Seguir usando aplicacións co dispositivo pregado"</string>
+    <string name="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Desactivar fotog./s predet. en xogos"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Desactiva o límite máximo de fotogramas por segundo dos xogos de <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Pantalla fluída"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"A función Atención á pantalla utiliza a cámara dianteira para ver se alguén está mirando a pantalla. Funciona no dispositivo e as imaxes nunca se almacenan nin envían a Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activar a atención á pantalla"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantén a pantalla activa cando mires para ela"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Canto máis longo sexa o tempo de espera da pantalla, máis batería consumirá."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A cámara está bloqueada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Para usar a detección facial, a cámara debe estar desbloqueada"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A cámara debe estar desbloqueada para usar Atención á pantalla"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (rañura da SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (rañura da SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Para velo, escolle a rede gardada"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versión de PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivel de batería"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Comúns"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Opcións de configuración comúns"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Gardar"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"O nome do campo non pode quedar baleiro."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"O APN non pode estar baleiro."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"O campo MCC debe conter 3 díxitos."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"O campo MNC debe conter 2 ou 3 díxitos."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"O operador non permite engadir APN de tipo: %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"O campo MMSC debe ser válido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restaurando a configuración do APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Restablecer valores predeterminados"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Completouse o restablecemento da configuración de APN predeterminada."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Restablecer"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Restablecéronse o Bluetooth e a wifi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Borrar eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Non se cancelará ningún dos plans de servizos móbiles que teñas. Para descargar tarxetas SIM de substitución, ponte en contacto co teu operador."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Restablecer configuración"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Queres restablecer toda a configuración de rede? Non se pode desfacer esta acción."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Queres restablecer todas as opcións de configuración de rede e borrar as eSIM? Non se poderá desfacer esta acción."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Restablecer?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"O restablecemento de rede non está dispoñible para este usuario"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Restableceuse a configuración da rede"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Non se puideron borrar as SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"As eSIM non se puideron borrar debido a un erro.\n\nReinicia o dispositivo e téntao de novo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Volver á configuración de fábrica (borrar todos os datos)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Borrar todos os datos"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Outros datos do usuario"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Con esta acción non se cancelará o teu plan de servizos móbiles."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Eliminaranse as aplicacións descargadas e a túa información persoal. Non se pode desfacer esta acción."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Eliminarase toda a túa información persoal, entre a que se inclúen as aplicacións e as SIM descargadas. Non se pode desfacer esta acción."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Queres borrar todos os datos?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"O restablecemento da configuración de fábrica non está dispoñible para este usuario"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Borrando"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Zona wifi, USB, Bluetooth e Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Non se está compartindo a conexión a Internet con outros dispositivos"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desactivadas"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Conexión compartida"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Non utilizar zona wifi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Comparte Internet só por USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Comparte Internet só por Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Comparte Internet só por Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Compartirase Internet só por USB e Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Comparte Internet só por USB e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Comparte Internet só por Bluetooth e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Comparte Internet só por USB, Bluetooth e Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Compartir conexión por USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Conexión por Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Conexión por Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utiliza a zona wifi e a conexión compartida para ofrecer acceso a Internet a outros dispositivos mediante a túa wifi ou a túa conexión de datos móbiles. As aplicacións tamén poden crear unha zona wifi para compartir contido cos dispositivos que están cerca."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Axuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rede de telefonía móbil"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan móbil"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplicación de SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Queres cambiar a aplicación de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Queres utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como a túa aplicación de SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Queres cambiar o asistente de wifi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Queres utilizar <xliff:g id="NEW_APP">%1$s</xliff:g> en lugar de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para xestionar as túas conexións de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Queres utilizar <xliff:g id="NEW_APP">%s</xliff:g> para xestionar as túas conexións de rede?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador da SIM descoñecido"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> non ten un sitio web de aprovisionamento coñecido"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Introduce unha tarxeta SIM e reinicia"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conéctate a Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitudes de localización recentes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Localización do perfil de traballo"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permisos de localización das aplicacións"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Borrar acceso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controis"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forzar parada"</string>
+    <string name="archive" msgid="9074663845068632127">"Arquivar"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurar"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tamaño da aplicación"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplicación de almacenamento USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Non se puido calcular o tamaño do paquete."</string>
     <string name="version_text" msgid="7628938665256107608">"versión <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mover"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Produciuse un erro no arquivamento"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arquivouse <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Produciuse un erro ao restaurar a aplicación"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restaurando <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Xa está en curso outra migración."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Non hai espazo de almacenamento suficiente."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"A aplicación non existe."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado en pantalla dispoñible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Xestionar teclados en pantalla"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcións"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="show_ime" msgid="4334255501724746849">"Utilizar teclado en pantalla"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Móstrase na pantalla mentres o teclado físico estea activo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Activa as teclas de rebote para mellorar a accesibilidade do teclado físico"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Teclas presas"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Activa as teclas presas para a mellorar accesibilidade do teclado físico"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atallos de teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra a lista de atallos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas do perfil de traballo"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenar por tempo de uso"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenar por data de último uso"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenar por nome de aplicación"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Última vez que se utilizou"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Último uso"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nunca"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Tempo de uso"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accesibilidade"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Configuración de accesibilidade"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar igualmente"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configuración da ampliación"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ampliar ao tocar tres veces"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ampliar con atallo"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Ampliar con atallo e tres toques"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Acerca de: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Toca a pantalla dúas 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="860548190334486449">"Para iniciar e deter a ampliación, toca dúas veces 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Pasa 3 dedos cara arriba desde a parte inferior da pantalla para utilizar unha función de accesibilidade.\n\nPara cambiar de función, pasa 3 dedos cara arriba e mantén premida a pantalla."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Entendido"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Axustes botón Accesibilidade"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Configuración do botón"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Atallo de <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Botón Accesibilidade"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Xesto de accesibilidade"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Toca dúas veces a pantalla con dous dedos"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tocar dúas veces a pantalla con dous dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toca a pantalla rapidamente {0,number,integer} veces con dous dedos"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tres toques na pantalla"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Máis información acerca do botón e do xesto de accesibilidade"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Estás utilizando o botón Accesibilidade. O xesto non pode usarse coa navegación con 3 botóns."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accede rapidamente ás funcións de accesibilidade"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para comezar"</b>\n"1. Vai á configuración de accesibilidade\n2. Selecciona unha función e toca o atallo\n3. Escolle se queres utilizar un botón ou un xesto para acceder á función"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para comezar"</b>\n"1. Vai á configuración de accesibilidade\n2. Selecciona unha función e toca o atallo\n3. Escolle o botón para acceder á función"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para comezar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Vai á configuración de accesibilidade&lt;br/&gt; {1,number,integer}. Selecciona unha función e toca o atallo&lt;br/&gt; {2,number,integer}. Escolle se queres utilizar un botón ou un xesto para acceder á función&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para comezar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Vai á configuración de accesibilidade&lt;br/&gt; {1,number,integer}. Selecciona unha función e toca o atallo&lt;br/&gt; {2,number,integer}. Escolle o botón para acceder á función&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Usar botón ou xesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Localización"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamaño"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Botón de acendido para colgar"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Punteiro grande do rato"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Fai máis visible o punteiro do rato"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Usar modo escuro en todas as apps"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Para aplicacións que non teñan tema escuro. Algunhas poden ter problemas, como cores invertidas."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Quitar animacións"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduce o movemento na pantalla"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio en mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode facer un seguimento das túas interaccións cunha aplicación ou cun sensor de hardware, así como interactuar por ti coas aplicacións."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Denegar"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Deter"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancelar"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Queres deter <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ao tocar <xliff:g id="STOP">%1$s</xliff:g>, deterase <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desactivar"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Deixar"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Queres desactivar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ningún servizo instalado"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Non hai ningún servizo seleccionado"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Ningunha descrición fornecida."</string>
     <string name="settings_button" msgid="2195468788019730377">"Configuración"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade á luz, fotofobia, tema escuro, xaqueca, dor de cabeza, modo de lectura, modo nocturno, baixar o brillo, punto branco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de uso, fácil acceso, asistencia, asistencial"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visión, audición, cegueira, xordeira, motricidade, destreza, asistencial, asistencia, facilidade de uso, facilidade de acceso, man, axuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Lupa de ventá, zoom, ampliación, visión reducida, aumentar tamaño, agrandar"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Subtítulos, subtitulado, Transcrición instantánea, problemas auditivos, perda de audición, subtitulado en tempo real, CART, conversión de voz a texto, subtítulo"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, rato"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"audiófono, problemas auditivos, perda de audición, implantes cocleares, dispositivos de amplificación, procesadores de sons"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motricidade, rato, rato externo, rato de cabeza, rato adaptativo, cadeira de rodas, panca de control"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"audiófono, problemas auditivos, perda de audición, implantes cocleares, dispositivos de amplificación, procesadores de sons, amplificador de sons"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"problemas auditivos, perda de audición, subtítulos, teletipo, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botóns"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motricidade, persoa maior, artrite, LER, derramo, tremor, esclerose múltiple, parálise cerebral, lesión por esforzo repetitivo, man"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, persoa maior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impresión"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivado"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Hai 1 servizo de impresión activado}other{Hai # servizos de impresión activados}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Consulta as aplicacións que máis batería consomen"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"A carga está optimizada para protexer a batería"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"A carga está optimizada para axudar a aumentar a vida útil da batería"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"A carga está optimizada para protexer a batería"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para aumentar a vida útil da batería, a carga optimízase cando o dispositivo está na base"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"A carga está optimizada para protexer a batería"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para aumentar a vida útil da batería, a carga optimízase cando o dispositivo está na base"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Cargando ao máximo"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para protexer a batería, a carga optimizarase a próxima vez que a tableta estea na base"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Máis información sobre a carga en pausa"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Retomar carga"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclúe a actividade en segundo plano que consome moita batería"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Quitar"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancelar"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Cargar ao máximo"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema co accesorio de carga"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Máis información sobre a carga non compatible"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Xestor de batería"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Xestionar aplicacións automaticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"agora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gráfico de uso da batería"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gráfico de uso da batería por día"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gráfico de uso da batería por hora"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Porcentaxe do nivel de batería: de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> a <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Uso da batería desde a última carga completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Uso da batería (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tempo diante da pantalla desde a última carga completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sinal de marcación de emerxencia"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Define o comportamento cando se realiza unha chamada de emerxencia"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Copia de seguranza"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activada"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desactivada"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Copia de seguranza e restauración"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Datos persoais"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Realizar copia de seguranza dos meus datos"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nome"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Enderezo do servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Encriptación PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Segredo L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Clave precompartida IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificado de usuario IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificado de CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificado de servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostrar opcións avanzadas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Dominios de busca de DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidores DNS (por ex., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rutas de reenvío (por ex., 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nome de usuario"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Contrasinal"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Gardar información da conta"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(sen usar)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(non verificar servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(recibido do servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Este tipo de VPN non pode estar conectada en todo momento"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"A VPN que está sempre activada só admite enderezos de servidor numéricos"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"É necesario especificar un servidor DNS para as VPN que estean sempre activadas"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Os enderezos de servidor DNS deben ser numéricos para as VPN que estean sempre activadas"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"A información inserida non é compatible con VPN que estean sempre activadas"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancelar"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Pechar"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexións sen VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Requirir conexión VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"O tipo de aplicación non é seguro. Actualiza a unha VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Produciuse un erro ao iniciar unha VPN non compatible."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecciona un perfil de VPN ao que permanecer sempre conectado. Só se permitirá tráfico de rede cando esteas conectado a esta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ningunha"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"As VPN que están sempre activadas requiren un enderezo IP para o servidor e o DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertas AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Recibir boletíns sobre secuestros de menores"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetir"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Activar o xestor de chamadas"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permitir que este servizo xestione a forma na que se realizan as chamadas."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Xestor de chamadas"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertas de emerxencia sen fíos"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operadores de rede"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nomes dos puntos de acceso"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"moedeiro"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pagar, tocar, pagos"</string>
     <string name="keywords_backup" msgid="707735920706667685">"copia de seguranza, facer copia de seguranza"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"xesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"desbloqueo, facial, autenticar, iniciar sesión"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"desbloqueo, facial, autenticación, iniciar sesión, impresión dixital, desbloqueo biométrico"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versión de prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Sons de acendido"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtítulos instantáneos"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Crea subtítulos automáticos"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altofalantes do teléfono"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Altofalantes da tableta"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Altofalantes do dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Auriculares con cable"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"O audio dos contidos multimedia compatibles ofréceche unha experiencia máis envolvente"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Opción desactivada"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Que queres que mostre a túa pantalla de bloqueo?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Quitáronse as conversa recentes"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Eliminouse a conversa"</string>
     <string name="clear" msgid="5092178335409471100">"Borrar"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Borrar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Aquí aparecerán as conversas prioritarias e as modificadas"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Aquí aparecerán as conversas que marques como prioritarias e as que modifiques. \n\nPara cambiar a configuración dunha conversa: \nPasa o dedo cara abaixo desde a parte superior da pantalla para abrir o panel despregable e, a continuación, mantén premida a conversa."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizar"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Función desactivada"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fixar aplicación"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Podes fixar a aplicación actual para tela sempre á vista ata que a deixes de fixar. Con esta función podes, por exemplo, permitirlle a un amigo de confianza utilizar un xogo específico."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Cando unha aplicación está fixada, pode abrir outras aplicacións e é posible que se permita o acceso aos datos persoais. \n\nPara utilizar a función de fixar aplicacións, sigue estes pasos: 	\n1. Activa a función de fixar aplicacións 	\n2. Abre Visión xeral 	\n3. Toca a icona da aplicación na parte superior da pantalla e, despois, toca Fixar"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Cando unha aplicación está fixada, pode abrir outras aplicacións e é posible que se permita o acceso aos datos persoais. \n\nSe queres compartir o teu dispositivo con alguén de forma segura, recomendámosche que probes a utilizar unha sesión de usuario convidado. \n\nPara utilizar a función de fixar aplicacións, sigue estes pasos: 	\n1. Activa a función de fixar aplicacións 	\n2. Abre Visión xeral 	\n3. Toca a icona da aplicación na parte superior da pantalla e, despois, toca Fixar"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Cando unha aplicación está fixada, pode abrir outras aplicacións. Ademais, é posible que se permita o acceso aos datos persoais. \n\nPara usar a función de fixar aplicacións: 	\n{0,number,integer}. Activa a función de fixar aplicacións 	\n{1,number,integer}. Abre Vista xeral 	\n{2,number,integer}. Toca a icona da aplicación que está na parte superior da pantalla e, despois, toca Fixar"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Cando unha aplicación está fixada, pode abrir outras aplicacións. Ademais, é posible que se permita o acceso aos datos persoais. \n\nSe queres compartir o teu dispositivo con alguén de forma segura, recomendámosche que probes a utilizar unha conta de usuario convidado. \n\nPara usar a función de fixar aplicacións: 	\n{0,number,integer}. Activa a función de fixar aplicacións 	\n{1,number,integer}. Abre Vista xeral 	\n{2,number,integer}. Toca a icona da aplicación que está na parte superior da pantalla e, despois, toca Fixar"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Cando unha aplicación está fixada, ocorre o seguinte: \n\n•		Os datos persoais poden estar accesibles \n		(por exemplo, os contactos e o contido dos correos electrónicos) \n•		A aplicación fixada pode abrir outras aplicacións \n\nUtiliza a fixación de aplicación só con persoas nas que confíes."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pedir padrón de desbloqueo antes de soltar a fixación"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Pedir PIN antes de soltar a fixación"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Configuración das aplicacións sen uso"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pór en pausa actividade da aplicación se non se usa"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Quita permisos, elimina ficheiros temporais e detén as notificacións"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Xestionar aplicación se non se usa"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Quita permisos, elimina os ficheiros temporais, detén as notificacións e arquiva a aplicación"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Todas as aplicacións"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Aplicacións instaladas"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplicacións Instantáneas"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Dispoñible"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memoria usada polas aplicacións"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplicación usou a memoria no último {time}}other{# aplicacións usaron a memoria no último {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Activar perfís de uso de memoria"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"A elaboración de perfís de uso de memoria require recursos do sistema adicionais."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"A elaboración de perfís de uso de memoria está desactivada"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frecuencia"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Uso máximo"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Non se utilizaron datos"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Mostrar sobre outras aplicacións"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permitir mostrar sobre outras aplicacións"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permite que esta aplicación se mostre enriba doutras que esteas utilizando. Esta aplicación poderá ver onde tocas ou cambiar o que se mostra na pantalla."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Cambiar a saída multimedia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permitir á app cambiar a saída multimedia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permite que esta aplicación escolla que dispositivo conectado reproduce audio ou vídeo desde outras aplicacións. Se se dá este permiso, esta aplicación poderá acceder a unha lista de dispositivos dispoñibles (como altofalantes e auriculares) e escoller que dispositivo de saída se usará para reproducir en tempo real ou emitir audio e vídeo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acceso a todos os ficheiros"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Mellorar activación por voz"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Este dispositivo emprega información privada para mellorar o modelo de activación por voz. As aplicacións poden recibir actualizacións resumidas que se agrupan coas de moitos usuarios para manter a privacidade ao tempo que se mellora o modelo para todo o mundo.\n\n"<a href="">"Máis información sobre a información privada"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Aviso de consumo de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Límite de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Aviso de consumo de datos: <xliff:g id="ID_1">^1</xliff:g>/Límite de datos: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"A maneira na que o operador contabiliza os datos usados pode ser diferente á do dispositivo"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclúe os datos usados nas redes dos operadores"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Datos usados: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Definir aviso de consumo de datos"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Actualizado hai <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Actualizado por <xliff:g id="ID_1">^1</xliff:g> agora mesmo"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Actualizado agora mesmo"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Ver plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ver detalles"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Aforro de datos"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Datos sen restricións"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalía no uso da batería"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Atallos de configuración rápida para programadores"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Desactivar tempo de espera da autorización de ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Desactiva a revogación automática de autorizacións de ADB para sistemas que non se reconectasen dentro do período de tempo predeterminado (7 días) ou configurado polo usuario (1 día como mínimo)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Rastro de Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Desactivar sensores"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Configuración do perfil de traballo"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Buscar contactos do directorio de traballo nas aplicacións persoais"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Pasa o dedo cara arriba desde unha esquina da parte inferior para invocar a aplicación do asistente dixital"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Servizo de autocompletar"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Servizo de autocompletar predeterminado"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Contrasinais"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Contrasinais, claves de acceso e servizos de datos"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Provedores adicionais"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contrasinal}other{# contrasinais}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automaticamente, completar, autocompletar, contrasinal"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Contrasinais, claves de acceso e servizos de datos"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Queres desactivar todos os servizos?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Os contrasinais, as claves de acceso e outros datos gardados non estarán dispoñibles para a función de autocompletar cando inicies sesión"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Cambia o teu servizo favorito 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 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_enable_confirmation_message_title" msgid="1037501792652277829">"Queres usar %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Só podes ter 5 servizos activados"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desactiva polo menos 1 servizo para poder engadir outro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa o que aparece na pantalla para determinar o que se pode completar."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Límite de contrasinais, claves de acceso e servizos de datos"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Podes ter activos ao mesmo tempo un máximo de 5 contrasinais, claves de acceso e servizos de datos. Desactiva un servizo para engadir máis."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Límite de contrasinais, claves de acceso e servizos de datos"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Podes ter activos ao mesmo tempo un máximo de 5 contrasinais, claves de acceso e servizos de datos. Desactiva un servizo para engadir máis."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactivar"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de rexistro"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Os cambios na compatibilidade das aplicacións só se poden modificar para aplicacións que se poden depurar. Instala unha aplicación deste tipo e téntao de novo."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depende doutra opción de configuración"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Conta"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d contas"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nome do dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Información básica"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Información legal e normas"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permite que esta aplicación se inicie cando se escanee unha etiqueta NFC.\nSe este permiso está activado, a aplicación aparecerá como opción dispoñible cando se detecte unha etiqueta."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reproducir contido multimedia en:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reproducir <xliff:g id="LABEL">%s</xliff:g> en"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Reproducirase o audio en"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Este dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Non dispoñible durante as chamadas"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Contestar chamada en"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Silenciar"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Para activar a opción, no menú de acendido, primeiro cambia Manter premido botón de acendido."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalles da rede"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"As aplicacións do teu teléfono poden consultar o nome do teu dispositivo. Tamén poden velo outros usuarios cando te conectes a dispositivos Bluetooth ou a redes wifi, así como cando configures zonas wifi."</string>
     <string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Escoller rede"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Rede desconectada"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nome"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Cor (usada nas aplicacións compatibles)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Gardar"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Utilizar SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usar esta SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desactivada"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para desactivar esta SIM, sácaa do teléfono"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Toca o operador <xliff:g id="CARRIER">%1$s</xliff:g> para activalo"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Borrar SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferido"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Cambia o modo de funcionamento da rede"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo de rede preferido"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Consulta os prezos co teu provedor de rede."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Uso de datos das apps"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Modo de rede non válido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorar."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nomes dos puntos de acceso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Non dispoñible cando o dispositivo está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Queres cambiar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Queres pasar a utilizar a tarxeta SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Queres usar: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Non se poden ter activadas varias SIM á vez.\n\nAo cambiar a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, non se cancelará o teu servizo de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Non se poden ter activadas á vez varias eSIM.\n\nAo cambiar a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> non se cancelará o teu servizo de <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Non se poden ter activadas varias SIM á vez.\n\nAo cambiar, non se cancelará o teu servizo de <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Podes utilizar 2 SIM á vez. Para utilizar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desactiva a outra SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Cambiar a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Apagar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Non, grazas"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancelar"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Cambiar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desactivar"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Non se puido activar a SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Tenta activar a SIM de novo. Se o problema persiste, reinicia o dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configurar a SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Establece as preferencias de rede de telefonía móbil para usar varias SIM neste dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etiquetar as SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Verás estas etiquetas cando fagas chamadas, envíes mensaxes de texto, uses datos e accedas a Configuración"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etiqueta da SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiqueta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Seleccionar que SIM se usarán"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Podes utilizar dúas SIM á vez"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Configurar as SIM principais"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Selecciona as SIM que queres usar de forma predeterminada para as chamadas, as mensaxes de texto e os datos"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"As túas SIM principais"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Chamadas"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mensaxes de texto"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Cambio automático de datos"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Usa os datos de calquera das SIM en función da cobertura e a dispoñibilidade"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Só datos"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configurar"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Seguinte"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rede de telefonía móbil"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de teléfono"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Cor e etiqueta da SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activación da rede"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Cambio de operador"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operador activo: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para utilizar os datos móbiles, as funcións de chamada e as SMS máis tarde, vai á configuración de rede"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Queres borrar esta eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Ao borrar esta SIM, quitarase o servizo de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> deste dispositivo.\n\nNon se cancelará o servizo de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Borrar"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Borrando SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Non se puido borrar a SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Esta SIM non se puido borrar debido a un erro.\n\nReinicia o dispositivo e téntao de novo."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Conectar co dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"A aplicación <xliff:g id="APPNAME">%1$s</xliff:g> quere utilizar unha rede wifi temporal para conectar co teu dispositivo."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Non se atoparon dispositivos. Asegúrate de que estean activados e dispoñibles para a conexión."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Chamadas de emerxencia"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Este operador non admite as chamadas de emerxencia por wifi.\nO dispositivo cambia automaticamente a unha rede de telefonía móbil para facer unha chamada de emerxencia.\nSó se poden realizar chamadas de emerxencia en áreas con cobertura móbil."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Usa a wifi para mellorar a calidade das chamadas"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Chamadas alternativas"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Se <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> non está dispoñible ou está en itinerancia, usa a SIM dos datos móbiles para as chamadas de <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"chamadas alternativas"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mensaxe MMS entrante"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Non se puido enviar a mensaxe MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Toca para permitir as mensaxes MMS en <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> cando os datos móbiles estean desactivados"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Información sobre a política do teu traballo"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"A configuración xestiónaa o teu equipo de administración de TI"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Arrancar con páxinas de 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Arrancará co núcleo compatible con páx. de 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Queres que o dispositivo se reinicie co núcleo compatible con páxinas de 16 kB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ADVERTENCIA: Pode que algunhas aplicacións non sexan compatibles con este modo. O dispositivo reiniciarase despois da confirmación."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Queres que o dispositivo se reinicie co núcleo compatible con páxinas de 4 kB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"O dispositivo reiniciarase despois da confirmación."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Produciuse un erro a actualizar o núcleo compatible con páxinas de 16 kB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Aplicando cambio"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Controlador do Informe de erros"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina que aplicación xestiona o atallo aos informes de erros no teu dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Persoal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"O reprodutor multimedia permanece aberto en Configuración rápida para que poidas retomar rapidamente a reprodución"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Amosar recursos multimedia na pantalla de bloqueo"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"O reprodutor multimedia permanece aberto na pantalla de bloqueo para que poidas retomar rapidamente a reprodución"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostrar recomendacións de contido multimedia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostrar recomendacións de contido multimedia do Asistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Baséanse na túa actividade"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ocultar reprodutor"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostrar reprodutor"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Activa"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactiva"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Configuración predeterminada para <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"chamadas"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O audio dos contidos multimedia compatibles ofréceche unha experiencia máis envolvente"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimento da cabeza"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Para ofrecerche unha experiencia máis natural, o audio cambia a medida que moves a cabeza"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sincronizar os permisos"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Dálle ao dispositivo <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> os mesmos permisos de aplicacións que lle deches ao dispositivo <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizar os permisos desde o teléfono"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Dálle ao reloxo os mesmos permisos de aplicacións que lle deches a este teléfono"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Descoñecido"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altofalante"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Nivel medio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Nivel alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta aplicación só se pode abrir en 1 ventá"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Opción activada"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Opción desactivada"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Opción desactivada"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Opción desactivada"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Opción activada"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Opción desactivada"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Opción activada"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Opción desactivada"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Escurece as pantallas claras e clarea as escuras"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Achega o contido da pantalla"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Opción desactivada"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Opción desactivada"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Opción activada"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Opción desactivada"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Opción activada"</string>
+    <string name="about_phone_device_name_warning" msgid="3243226572404472381">"As aplicacións que teñas instaladas poderán consultar o nome do teu dispositivo. Tamén poderán velo outros usuarios cando te conectes a dispositivos Bluetooth ou a redes wifi, así como cando configures zonas wifi."</string>
+    <string name="grammatical_gender_title" msgid="8584242850477270828">"Xénero gramatical"</string>
+    <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Seleccionar o xénero gramatical"</string>
+    <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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Configurouse o contrasinal"</string>
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index e1457d7..084804c 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 મિનિટ પછી"</item>
     <item msgid="1574040255478150028">"5 મિનિટ પછી"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index c971eaa..a479e38 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"ફક્ત ઍડમિન વપરાશકર્તાઓ જ ડેવલપર સેટિંગ ઍક્સેસ કરી શકે છે."</string>
     <string name="header_category_system" msgid="1665516346845259058">"સિસ્ટમ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"સેવામાં"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"કાર્યરત્ નથી"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ચાલુ રાખવા માટે ઉપરની તરફ સ્વાઇપ કરો"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ઍપનો ઉપયોગ કરવાનું ચાલુ રાખવા માટે, તમારા ફોનને ફોલ્ડ કરો અને તેના ફ્રન્ટ ડિસ્પ્લે પર ઉપરની તરફ સ્વાઇપ કરો અથવા સ્ક્રીન લૉક થાય ત્યાં સુધી થોડી સેકન્ડ રાહ જુઓ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"સંબંધિત"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"રિંગટોન અને અલાર્મ"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"કૉલ દરમિયાન ઑડિયો"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"મીડિયા"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"નોટિફિકેશન અને અન્ય સિસ્ટમ સાઉન્ડ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"મીડિયા અને સિસ્ટમ સાઉન્ડ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"નોટિફિકેશન"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ડિફૉલ્ટ તરીકે, ઑડિયો આઉટપુટ અલગ-અલગ ઍપ મુજબ નક્કી કરવામાં આવે છે"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"અનામાંકિત બ્લૂટૂથ ડિવાઇસ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"શોધી રહ્યું છે"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"બ્લૂટૂથ ચાલુ કર્યું"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"બધા ડિવાઇસ જુઓ"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"તમામ જુઓ"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"સ્ટાઇલસ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ટેઇલ બટન દબાવો"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (ઑફિસની પ્રોફાઇલ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ઑડિયો સ્ટ્રીમ સાથે કનેક્ટ કરો"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"શેરિંગ ઑડિયો સ્ટ્રીમ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ઑડિયો સ્ટ્રીમ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR કોડનો ઉપયોગ કરીને કોઈ ઑડિયો સ્ટ્રીમ સાથે કનેક્ટ કરો"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"કોઈ શેરિંગ ઑડિયો સ્ટ્રીમ મળ્યું નથી."</string>
     <string name="date_and_time" msgid="1788358029823431692">"તારીખ અને સમય"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"પ્રૉક્સી"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"સાફ કરો"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"દરેક ઍપ માટે ભાષા પસંદ કરવા, ઍપની ભાષાના સેટિંગ પર જાઓ."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ઍપની ભાષાઓ વિશે વધુ જાણો"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"સિસ્ટમની ભાષા %s બદલીએ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%sને પસંદગીની ભાષાઓમાં ઉમેરીએ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"આમ કરવાથી ઍપ અને વેબસાઇટને જાણ થાય છે કે તમે પણ આ ભાષા પસંદ કરો છો."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"તમારા ડિવાઇસના સેટિંગ અને પ્રાદેશિક પસંદગીઓ બદલાઈ જશે."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"બદલો"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ઉપલબ્ધ નથી"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"શનિવાર"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"જો કોઈ ઍપ પ્રાદેશિક પસંદગીઓને સપોર્ટ કરતી ન હોય, તો તે ઍપ તેના ડિફૉલ્ટ લોકેલ સેટિંગનો ઉપયોગ કરશે."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ભાષાની પસંદગીઓ વિશે વધુ જાણો."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"વધારાની પસંદગીઓ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"સંબોધનની શરતો"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"તમે સંબોધિત થવા માંગો છો તે રીતને સેટ કરો"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"તમને કેવી રીતે સંબોધે તેને મનગમતું બનાવવા માટે ઍપ તમારી સંબોધનની શરતોનો ઉપયોગ કરી શકે છે."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"ઉલ્લેખિત નથી"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"સ્ત્રીલિંગી"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"પુલ્લિંગી"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"તટસ્થ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{પસંદ કરેલી ભાષા કાઢી નાખીએ?}one{પસંદ કરેલી ભાષા કાઢી નાખીએ?}other{પસંદ કરેલી ભાષાઓ કાઢી નાખીએ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ટેક્સ્ટ બીજી ભાષામાં પ્રદર્શિત કરવામાં આવશે."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"બધી ભાષાઓ દૂર કરી શકતાં નથી"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"લોકેશન"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"લોકેશનનો ઉપયોગ કરો"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"બંધ છે"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ચાલુ છે - # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}one{ચાલુ છે - # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}other{ચાલુ છે - # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}one{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}other{ચાલુ છે / # ઍપ લોકેશનનો ઍક્સેસ ધરાવે છે}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"લોડ કરી રહ્યું છે…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"નજીકના ડિવાઇસ જોવાની પરવાનગી ધરાવતી ઍપ, કનેક્ટ કરેલા ડિવાઇસના સ્થાનની માહિતી મેળવી શકે છે."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ઍપ અને સેવાઓને આપવામાં આવેલો લોકેશનની માહિતીનો ઍક્સેસ બંધ છે. આમ છતાં જ્યારે તમે કૉલ કે ટેક્સ્ટ મારફતે ઇમર્જન્સી નંબરનો સંપર્ક કરશો, ત્યારે ઇમર્જન્સીમાં પ્રતિસાદ આપનારાઓને તમારા ડિવાઇસના લોકેશનની માહિતી મોકલવામાં આવી શકે છે."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"લોકેશન સેટિંગ વિશે વધુ જાણો."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"લોકેશન સેટિંગ વિશે વધુ જાણો"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"લોકેશનનો ઍક્સેસ બદલવા, સેટિંગ &gt; સુરક્ષા અને પ્રાઇવસી &gt; પ્રાઇવસીના નિયંત્રણો પર જાઓ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"શ્રેષ્ઠ પરિણામો માટે, \'Google માટે બનાવેલા\' પ્રમાણિત સ્ક્રીનગાર્ડનો ઉપયોગ કરો. અન્ય સ્ક્રીનગાર્ડમાં, તમારા બાળકની ફિંગરપ્રિન્ટ કદાચ યોગ્ય રીતે કામ કરશે નહીં."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"વૉચ અનલૉક"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"જ્યારે તમે ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉક સુવિધાનું સેટઅપ કરતા હો, ત્યારે જો તમે માસ્ક પહેર્યું હોય કે અંધારિયા વિસ્તારમાં હો, તો તમારો ફોન તમારી ફિંગરપ્રિન્ટ માગશે.\n\nજ્યારે તમારો ફેસ કે ફિંગરપ્રિન્ટ ઓળખી ન શકાય, ત્યારે તમે તમારી વૉચ વડે અનલૉક કરી શકો છો."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"જ્યારે તમારી ફિંગરપ્રિન્ટ ઓળખી ન શકાય, ત્યારે તમે તમારી વૉચ વડે અનલૉક કરી શકો છો."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"જ્યારે તમારો ફેસ ઓળખી ન શકાય, ત્યારે તમે તમારી વૉચ વડે અનલૉક કરી શકો છો."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"જ્યારે તમે ફેસ અનલૉક અને ફિંગરપ્રિન્ટ અનલૉક સુવિધાનું સેટઅપ કરતા હો, ત્યારે જો તમે માસ્ક પહેર્યું હોય કે અંધારિયા વિસ્તારમાં હો, તો તમારો ફોન તમારી ફિંગરપ્રિન્ટ માગશે.\n\nવૉચ અનલૉકની સુવિધા એ તમારા ફોનને અનલૉક કરવાની એક અન્ય સુગમ રીત છે, ઉદાહરણ તરીકે જ્યારે તમારી આંગળીઓ ભીની હોય અથવા તમારો ચહેરો ઓળખાતો ન હોય."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"વૉચ અનલૉકની સુવિધા એ આ ફોનને અનલૉક કરવાની એક અન્ય સુગમ રીત છે, ઉદાહરણ તરીકે જ્યારે તમારી ફિંગરપ્રિન્ટ ઓળખાતી ન હોય."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"વૉચ અનલૉકની સુવિધા એ આ ફોનને અનલૉક કરવાની એક અન્ય સુગમ રીત છે, ઉદાહરણ તરીકે જ્યારે તમારો ચહેરો ઓળખાતો ન હોય."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"આ માટે ફિંગરપ્રિન્ટ અથવા સ્માર્ટવૉચનો ઉપયોગ કરો"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"આ માટે ફેસ અથવા સ્માર્ટવૉચનો ઉપયોગ કરો"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"આ માટે ફેસ, ફિંગરપ્રિન્ટ અથવા સ્માર્ટવૉચનો ઉપયોગ કરો"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ફેસ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"તેની કાર્ય કરવાની રીત"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"એ જરૂરી છે કે તમારી વૉચ અનલૉક કરેલી અને તમારા કાંડા પર હોય તથા તમે આ ફોનની પહોંચની અંદર હોવ. તમારી વૉચ તમારા કાંડા પર હોય, ત્યારે તમને તેને ફરી અનલૉક કરવાની જરૂર પડશે નહીં."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"જ્યારે આ ફોન અનલૉક કરવામાં આવે, ત્યારે તમને તમારી વૉચ પર સૂચિત કરવામાં આવશે. જ્યારે તમારો ઇરાદો ન હોય ત્યારે પણ ફોન અનલૉક થયો હોય, તો ફોનને ફરીથી લૉક કરવા માટે નોટિફિકેશન પર ટૅપ કરો."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"તમારા નિયંત્રણમાં છે"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"તમે સેટિંગમાં જઈને કોઈપણ સમયે વૉચ અનલૉકમાંથી તમારી વૉચને કાઢી નાખી શકો છો"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"નોટિફિકેશન પર ટૅપ કરો"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"લૉક સ્ક્રીન પર ઉપરની તરફ સ્વાઇપ કરો"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"તમારી વૉચ પસંદ કરો"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ઉપલબ્ધ વૉચ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"રદ કરો"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"કન્ફર્મ કરો"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"તમે બધી રીતે તૈયાર છો!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"લૉક સ્ક્રીન પર ઉપરની તરફ સ્વાઇપ કરો અથવા કોઈ નોટિફિકેશનને ટૅપ કરો ત્યારે આ ફોનને અનલૉક કરવા માટે તમે હવે તમારી વૉચનો ઉપયોગ કરી શકો છો"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"થઈ ગયું"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"વૉચ અનલૉક"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"લૉક સ્ક્રીન પર ઉપરની તરફ સ્વાઇપ કરો અથવા કોઈ નોટિફિકેશનને ટૅપ કરો ત્યારે આ ફોનને અનલૉક કરવા માટે તમે તમારી વૉચનો ઉપયોગ કરી શકો છો"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"વૉચ અનલૉકનો ઉપયોગ કરવા માટે, તમારી વૉચ અનલૉક કરેલી, તમારા કાંડા પર, પહોંચમાં અને આ ફોન સાથે કનેક્ટેડ હોવી આવશ્યક છે. જો કનેક્શનમાં વિક્ષેપ આવે, તો તમે વૉચ અનલૉકનો ઉપયોગ કરી શકો તે પહેલાં તમારે ફોનને અનલૉક કરવાની જરૂર પડશે.\n\nધ્યાનમાં રાખો:\nતમે એક સમયે ફક્ત એક વૉચ સેટ કરી શકો છો. કોઈ અન્ય વૉચ ઉમેરવા માટે, પહેલાં હમણાંની વૉચ કાઢી નાખો."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"વૉચ અનલૉક સુવિધા વિશે વધુ જાણો"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"વૉચ ઉમેરો"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"વૉચ કાઢી નાખો"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ફિંગરપ્રિન્ટ અને ફેસ અનલૉક"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ઑફિસની પ્રોફાઇલ માટે ફેસ અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધા"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"સેટઅપ જરૂરી છે"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"સુરક્ષા"</string>
     <string name="privacy_header" msgid="5526002421324257007">"પ્રાઇવસી"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"ઑફિસની પ્રોફાઇલ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ખાનગી સ્પેસ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ખાનગી ઍપને લૉક કરેલી અને છુપાવેલી રાખો"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ખાનગી ઍપ કોઈ એવી અલગ સ્પેસમાં રાખો જે તમે છુપાવી કે લૉક કરી શકો"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ખાનગી સ્પેસનું લૉક"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"તમે તમારા ડિવાઇસને જે રીતે અનલૉક કરો છો તે જ રીતે તમે ખાનગી સ્પેસને અનલૉક કરી શકો છો અથવા કોઈ અલગ લૉક પસંદ કરી શકો છો"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ડિવાઇસના સ્ક્રીન લૉકનો ઉપયોગ કરો"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ચહેરા અને ફિંગરપ્રિન્ટ વડે અનલૉક કરવાની સુવિધા"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ફિંગરપ્રિન્ટ અનલૉક"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ફેસ અનલૉક"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"સેટઅપ કરવા માટે ટૅપ કરો"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ખાનગી સ્પેસ માટે ફિંગરપ્રિન્ટ અનલૉક"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ખાનગી સ્પેસ માટે ફેસ અનલૉક"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"અનલૉક કરવાની રીતો"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ડિવાઇસના સ્ક્રીન લૉક જેવું જ લૉક"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ખાનગી સ્પેસ માટે નવું લૉક પસંદ કરીએ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ઑટોમૅટિક રીતે લૉક કરો"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ખાનગી સ્પેસ ઑટોમૅટિક રીતે લૉક કરો"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"જો તમે અમુક સમય માટે તમારા ડિવાઇસનો ઉપયોગ ન કર્યો હોય તો તમે તમારી ખાનગી સ્પેસ ઑટોમૅટિક રીતે લૉક કરી શકો છો"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"દર વખતે જ્યારે ડિવાઇસ લૉક થાય ત્યારે"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 મિનિટની નિષ્ક્રિયતા પછી"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ક્યારેય નહીં"</string>
+    <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_deleted" msgid="7825768516955610897">"ખાનગી સ્પેસ સફળતાપૂર્વક ડિલીટ કરી"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ખાનગી સ્પેસ ડિલીટ કરી શકાઈ નથી"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ખાનગી સ્પેસ અનલૉક કરી"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"કોઈ સ્ક્રીન લૉક સેટ કરો"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ખાનગી સ્પેસનો ઉપયોગ કરવા, આ ડિવાઇસ પર સ્ક્રીન લૉક સેટ કરો"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"સ્ક્રીન લૉક સેટ કરો"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"રદ કરો"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"રદ કરો"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"સેટઅપ કરો"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ખાનગી સ્પેસનું સેટઅપ કરો"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ખાનગી ઍપ કોઈ એવી અલગ સ્પેસમાં રાખો જે તમે છુપાવી કે લૉક કરી શકો"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"તેની કામ કરવાની રીત"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"તમે તમારી ઍપની સૂચિમાં સૌથી નીચેથી તમારી ખાનગી સ્પેસ ઍક્સેસ કરી શકશો"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ખાનગી સ્પેસમાંની ઍપ કોઈ લૉક વડે સુરક્ષિત રાખવામાં આવે છે"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે તમારી ખાનગી સ્પેસમાંની ઍપના નોટિફિકેશન છુપાવવામાં આવે છે"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે પરવાનગી મેનેજર, પ્રાઇવસી ડૅશબોર્ડ અને અન્ય સેટિંગમાં તમારી ખાનગી સ્પેસમાંની ઍપ દેખાશે નહીં.\n\nતમારી ખાનગી સ્પેસ નવા ડિવાઇસ પર ખસેડી શકાતી નથી. અન્ય કોઈ ડિવાઇસમાં ઉપયોગ કરવા માટે તમારે અન્ય કોઈ ખાનગી સ્પેસ સેટઅપ કરવી પડશે.\n\nજો કોઈ વ્યક્તિ તમારા ડિવાઇસને કોઈ કમ્પ્યૂટર સાથે જોડે કે તમારા ડિવાઇસ પર નુકસાનકારક ઍપ ઇન્સ્ટૉલ કરે, તો તેઓ તમારી ખાનગી સ્પેસને ઍક્સેસ કરી શકે એમ બને."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ખાનગી સ્પેસનું સેટઅપ કરી રહ્યાં છીએ…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"જ્યારે ખાનગી સ્પેસ લૉક કરવામાં આવી હોય, ત્યારે ખાનગી સ્પેસમાંની ઍપના નોટિફિકેશન છુપાવવામાં આવે છે"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ખાનગી સ્પેસમાંની ઍપમાંથી ફોટા કે ફાઇલો શેર કરવા માટે ખાનગી સ્પેસ અનલૉક કરો"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"તમારી ખાનગી સ્પેસમાં કેટલીક ઍપ પહેલાંથી જ ઇન્સ્ટૉલ કરેલી છે"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ખાનગી સ્પેસનું સેટઅપ કરી શકાતું નથી"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ફરી પ્રયાસ કરો"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ખાનગી સ્પેસને અનલૉક કરવા સ્ક્રીન લૉકનો ઉપયોગ કરીએ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"તમે તમારા ડિવાઇસને જે રીતે અનલૉક કરો છો તે જ રીતે તમે ખાનગી સ્પેસને અનલૉક કરી શકો છો અથવા કોઈ અલગ લૉક પસંદ કરો"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"સ્ક્રીન લૉકનો ઉપયોગ કરો"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"નવું લૉક પસંદ કરો"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"બધું સેટ થઈ ગયું!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"તમારી ખાનગી સ્પેસ ઍક્સેસ કરવા માટે તમારી ઍપની સૂચિમાં જાઓ, પછી નીચે સ્ક્રોલ કરો"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"થઈ ગયું"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"ખાનગી સ્પેસ શોધવા માટે નીચે સ્ક્રોલ કરો"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"તમારી ખાનગી સ્પેસ માટે કોઈ લૉક પસંદ કરો"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"તમે તમારી ફિંગરપ્રિન્ટનો ઉપયોગ કરીને તમારી ખાનગી સ્પેસ અનલૉક કરી શકો છો. સુરક્ષા માટે, આ વિકલ્પ માટે બૅકઅપ લૉક આવશ્યક છે."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"તમારી ખાનગી સ્પેસ માટે પિન સેટ કરો"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"તમારી ખાનગી સ્પેસ માટે પાસવર્ડ સેટ કરો"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"તમારી ખાનગી સ્પેસ માટે પૅટર્ન સેટ કરો"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ખાનગી સ્પેસ બતાવવા માટે (અંતિમ UX નથી)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Settings ઍપ ખોલો"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"લૉક હોય ત્યારે, સુરક્ષા અને પ્રાઇવસી &gt; ખાનગી સ્પેસ &amp;gt ખાનગી સ્પેસ છુપાવો પર ટૅપ કરો"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"લૉક હોય ત્યારે ખાનગી સ્પેસ છુપાવો ટૉગલને બંધ કરો"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googleના કર્મચારીઓ માટે નોંધ: આ સુવિધાના વિકાસની પ્રક્રિયા હજી પણ ચાલુ છે"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"તમારે આ પાસકીને અન્ય ઉપકરણ પર પણ લખવાની જરૂર પડી શકે છે."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"સુસંગત સેટ સાથે જોડાણ બનાવવાનું કન્ફર્મ કરો"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"તમારા સંપર્કો અને કૉલ ઇતિહાસના ઍક્સેસની મંજૂરી આપો"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"સંપર્કો અને કૉલ ઇતિહાસના ઍક્સેસની પણ મંજૂરી આપો"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"માહિતીનો ઉપયોગ કૉલની ઘોષણાઓ અને વધુ બાબતો માટે કરવામાં આવશે"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> સાથે કનેક્ટ કરી શકાયું નથી."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ઉપલબ્ધ ડિવાઇસ"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"એરપ્લેન મોડમાં"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"સાર્વજનિક નેટવર્ક માટે નોટિફિકેશન મેળવો"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"જ્યારે ઉચ્ચ ગુણવત્તાવાળું સાર્વજનિક નેટવર્ક ઉપલબ્ધ હોય ત્યારે નોટિફિકેશન આપો"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP નેટવર્કને મંજૂરી આપો"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP એ જૂનો સુરક્ષા પ્રોટોકૉલ છે, જે ઓછો સુરક્ષિત છે"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"તમારા મોબાઇલ ઑપરેટર WEP નેટવર્કને મંજૂરી આપતા નથી કારણ કે તે ઓછા સુરક્ષિત છે"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"વાઇ-ફાઇ ઑટોમૅટિક રીતે ચાલુ કરો"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"વાઇ-ફાઇ, તમારા હોમ નેટવર્ક જેવા, સાચવેલા ઉચ્ચ ક્વૉલિટીના નેટવર્કની નજીકમાં ઑટોમૅટિક રીતે ફરી ચાલુ થશે"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"અનુપલબ્ધ છે, કારણ કે સ્થાન બંધ છે. "<annotation id="link">"સ્થાન"</annotation>" ચાલુ કરો."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"વાઇ-ફાઇ બંધ હોય, ત્યારે પણ વાઇ-ફાઇ સ્કૅનિંગ ગમે ત્યારે ઍપ અને સેવાઓને વાઇ-ફાઇ નેટવર્ક સ્કૅન કરવાની મંજૂરી આપે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ સ્થાન-આધારિત સુવિધાઓ અને સેવાઓને બહેતર બનાવવા માટે કરી શકાય છે."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ચાલુ કરો"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"વાઇ-ફાઇ સ્કૅનિંગ ચાલુ કર્યું છે"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"આ નેટવર્ક જૂના સુરક્ષા પ્રોટોકૉલનો ઉપયોગ કરે છે, જે ઓછો સુરક્ષિત છે"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> બ્લૉક કરેલું છે"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"આ નેટવર્ક WEP નામના જૂના સુરક્ષા પ્રોટોકૉલનો ઉપયોગ કરે છે, જે ઓછો સુરક્ષિત છે. તેમ છતાં કનેક્ટ કરવા માટે, તમે WEP નેટવર્કને મંજૂરી આપી શકો છો."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"તમારા મોબાઇલ ઑપરેટર તમને આ નેટવર્ક સાથે કનેક્ટ કરવાની મંજૂરી આપતા નથી કારણ કે તે જૂના સુરક્ષા પ્રોટોકૉલનો ઉપયોગ કરે છે, જે ઓછો સુરક્ષિત છે"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEPને મંજૂરી આપો"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"બંધ કરો"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"વિગતવાર વિકલ્પો"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"વિગતવાર વિકલ્પોની ડ્રૉપ-ડાઉન સૂચિ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"મોટા કરો"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"વાઇ-ફાઇ પર રહો"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ફરી ક્યારેય બતાવશો નહીં"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"કનેક્ટ કરો"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi ચાલુ કર્યું"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>થી કનેક્ટ થયા"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> સાથે કનેક્ટ કરી રહ્યાં છીએ"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"કનેક્ટ થઈ રહ્યું છે…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"નેટવર્ક સાથે કનેક્ટ કરવામાં નિષ્ફળ થયાં"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"નેટવર્ક રેન્જમાં નથી"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ભૂલી જાઓ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ફેરફાર કરો"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"નેટવર્ક ભૂલવામાં નિષ્ફળ થયાં"</string>
     <string name="wifi_save" msgid="2312643132472226807">"સાચવો"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"નેટવર્ક સાચવવામાં નિષ્ફળ થયાં."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"રદ કરો"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"વાઇ-ફાઇ"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"મોબાઇલ ડેટા"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ઇથરનેટ"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ચાર્જિંગ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ચાર્જિંગ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"હૉટસ્પૉટ કનેક્શન"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"કનેક્શનની સશક્તતા"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"સાચવેલા નેટવર્ક"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"કોઈ પાસવર્ડ સેટ કરવામાં આવ્યો નથી"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"હૉટસ્પૉટનું નામ"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"હૉટસ્પૉટનો પાસવર્ડ"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP બૅન્ડ"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"હૉટસ્પૉટ ઑટોમૅટિક રીતે બંધ કરો"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"જ્યારે કોઈ ડિવાઇસ કનેક્ટ ન કરેલા હોય"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"સુસંગતતામાં વધારો કરો"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ગેમનો ડિફૉલ્ટ ફ્રેમરેટ બંધ કરો"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ગેમ માટેના મહત્તમ ફ્રેમ રેટને <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz સુધી મર્યાદિત રાખવાનો વિકલ્પ બંધ કરો."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"કોઈ સ્ક્રીન તરફ જોઈ રહ્યું છે કે નહીં તેની ખાતરી કરવા માટે સ્ક્રીન અટેન્શનની સુવિધા ફોનનો આગળનો કૅમેરા વાપરે છે. આ સુવિધા ડિવાઇસ પર કામ કરે છે, તેમજ છબીઓને ક્યારેય સ્ટોર કરવામાં અથવા Googleને મોકલવામાં આવતી નથી."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"સ્ક્રીન અટેન્શન ચાલુ કરો"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"સ્ક્રીનને જોતી વખતે તેને ચાલુ રાખો"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"સ્ક્રીનનો ઑટોમૅટિક સમાપ્તિ સમય જેટલો લાંબો હશે, તેટલો બૅટરીનો વપરાશ વધુ થશે."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"કૅમેરા લૉક છે"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ચહેરાની ઓળખ માટે કૅમેરા અનલૉક કરવો આવશ્યક છે"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"સ્ક્રીન અટેન્શન માટે કૅમેરા અનલૉક કરવો આવશ્યક છે"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (સિમ સ્લૉટ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (સિમ સ્લૉટ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (પ્રાથમિક)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"જોવા માટે, સાચવેલું નેટવર્ક પસંદ કરો"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"ન્યૂનતમ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL વર્ઝન"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"બૅટરી સ્તર"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"કૉમ્યુનલ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"કૉમ્યુનલ સેટિંગ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"સાચવો"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"રદ કરો"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"નામ ફીલ્ડ ખાલી હોઈ શકતું નથી."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ખાલી હોઇ શકતું નથી."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ફીલ્ડ 3 આંકડાનું હોવું આવશ્યક છે."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ફીલ્ડ 2 કે 3 આંકડાનું હોવું આવશ્યક છે."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"કૅરિઅર %s પ્રકારનું APN ઉમેરવાની મંજૂરી આપતું નથી."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ફીલ્ડ માન્ય હોવું જરૂરી છે."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ડિફૉલ્ટ APN સેટિંગ રિસ્ટોર કરવા."</string>
     <string name="menu_restore" msgid="4310539620115151551">"ડિફૉલ્ટ પર રીસેટ કરો"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ડિફૉલ્ટ APN સેટિંગ રીસેટ કરો પૂર્ણ થયું."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"રીસેટ કરો"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"બ્લૂટૂથ અને વાઇ-ફાઇ રીસેટ કર્યું છે"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM કાઢી નાખો"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"આનાથી કોઈપણ મોબાઇલ સેવા પ્લાન રદ થશે નહીં. બદલીના સિમ કાર્ડ ડાઉનલોડ કરવા માટે, તમારા મોબાઇલ ઑપરેટરનો સંપર્ક કરો."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"સેટિંગ રીસેટ કરો"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"બધાં નેટવર્ક સેટિંગ રીસેટ કરીએ? તમે આ ક્રિયા માટે કરેલો છેલ્લો ફેરફાર રદ કરી શકશો નહીં."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"બધા નેટવર્ક સેટિંગ રીસેટ કરીએ અને ઇ-સિમ કાઢી નાખીએ? તમે આ ક્રિયા માટે કરેલો છેલ્લો ફેરફાર રદ કરી શકશો નહીં."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ફરીથી સેટ કરીએ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"આ વપરાશકર્તા માટે નેટવર્ક ફરીથી સેટ કરો ઉપલબ્ધ નથી"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"નેટવર્ક સેટિંગ રીસેટ કરવામાં આવ્યા છે"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"સિમ કાઢી નાખી શકાતાં નથી"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"કોઈ ભૂલને કારણે ઇ-સિમ કાઢી નાખી શકાતું નથી.\n\nતમારું ડિવાઇસ ફરી શરૂ કરો અને ફરી પ્રયાસ કરો."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"બધો ડેટા કાઢી નાખો (ફેક્ટરી રીસેટ)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"બધો ડેટા કાઢી નાખો (ફેક્ટરી રીસેટ)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"મ્યુઝિક"</li>\n<li>"ફોટા"</li>\n<li>"અન્ય વપરાશકર્તા ડેટા"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"ઇ-સિમ"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"આનાથી તમારો મોબાઇલ સેવા પ્લાન રદ થશે નહીં."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"તમારી બધી વ્યક્તિગત માહિતી અને ડાઉનલોડ કરેલી ઍપ ડિલીટ કરવામાં આવશે. તમે આ ક્રિયા માટે કરેલો છેલ્લો ફેરફાર રદ કરી શકશો નહીં."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ડાઉનલોડ કરેલી ઍપ અને સિમ સહિતની તમારી બધી વ્યક્તિગત માહિતી ડિલીટ કરવામાં આવશે. તમે આ ક્રિયા માટે કરેલો છેલ્લો ફેરફાર રદ કરી શકશો નહીં."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"બધો ડેટા કાઢી નાખીએ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"આ વપરાશકર્તા માટે ફેક્ટરી રીસેટ ઉપલબ્ધ નથી"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"કાઢી નાખી રહ્યાં છીએ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"હૉટસ્પૉટ, USB, બ્લૂટૂથ, ઇથરનેટ"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"અન્ય ડિવાઇસ સાથે ઇન્ટરનેટ શેર કરી રહ્યાં નથી"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"બંધ છે"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ઇન્ટરનેટ શેર કરવાની સુવિધા"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"વાઇ-ફાઇ હૉટસ્પૉટનો ઉપયોગ કરશો નહીં"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"ફક્ત USB મારફતે ઇન્ટરનેટ શેર કરો"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ફક્ત બ્લૂટૂથ મારફતે ઇન્ટરનેટ શેર કરો"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ઇથરનેટ મારફતે માત્ર ઇન્ટરનેટ શેર કરો"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"ફક્ત USB અને બ્લૂટૂથ મારફતે ઇન્ટરનેટ શેર કરો"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"ફક્ત USB અને ઇથરનેટ મારફતે ઇન્ટરનેટ શેર કરો"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"બ્લૂટૂથ અને ઇથરનેટ મારફતે માત્ર ઇન્ટરનેટ શેર કરો"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, બ્લૂટૂથ અને ઇથરનેટ મારફતે માત્ર ઇન્ટરનેટ શેર કરો"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ટિથરિંગ"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"બ્લૂટૂથ ટિથરિંગ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ઇથરનેટ ટિથરિંગ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"તમારા વાઇ-ફાઇ અથવા મોબાઇલ ડેટા કનેક્શન મારફત અન્ય ડિવાઇસને ઇન્ટરનેટ પૂરું પાડવા માટે હૉટસ્પૉટ અને ઇન્ટરનેટ શેર કરવાની સુવિધાનો ઉપયોગ કરો. ઍપ નજીકના ડિવાઇસ સાથે કન્ટેન્ટ શેર કરવા માટે પણ હૉટસ્પૉટ બનાવી શકે છે."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"સહાય"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"મોબાઇલ નેટવર્ક"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"મોબાઇલ પ્લાન"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS ઍપ્લિકેશન"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ઍપ્લિકેશન બદલાવીએ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"તમારી SMS ઍપ્લિકેશન તરીકે <xliff:g id="CURRENT_APP">%2$s</xliff:g> ના બદલે <xliff:g id="NEW_APP">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"વાઇ-ફાઇ આસિસ્ટંટ બદલીએ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"તમારા નેટવર્ક્સ કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="CURRENT_APP">%2$s</xliff:g> ને બદલે <xliff:g id="NEW_APP">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"તમારા નેટવર્ક કનેક્શન્સનું સંચાલન કરવા માટે <xliff:g id="NEW_APP">%s</xliff:g> નો ઉપયોગ કરો?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"અજાણ્યો સિમ ઓપરેટર"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> પાસે કોઈ જાણીતી જોગવાઈ કરતી વેબસાઇટ નથી"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"કૃપા કરીને સિમ કાર્ડ શામેલ કરો અને પુનઃપ્રારંભ કરો"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"કૃપા કરીને ઇન્ટરનેટ સાથે કનેક્ટ કરો"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"તાજેતરની સ્થાન વિનંતિ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ઑફિસની પ્રોફાઇલ માટે સ્થાન"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ઍપ માટે લોકેશનની પરવાનગીઓ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"સાફ કરવાની ઍક્સેસ"</string>
     <string name="controls_label" msgid="8671492254263626383">"નિયંત્રણો"</string>
     <string name="force_stop" msgid="2681771622136916280">"ફરજિયાત બંધ કરો"</string>
+    <string name="archive" msgid="9074663845068632127">"આર્કાઇવ કરો"</string>
+    <string name="restore" msgid="7622486640713967157">"રિસ્ટોર કરો"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"કુલ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ઍપનું કદ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB સ્ટોરેજ ઍપ્લિકેશન"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"પેકેજ કદની ગણતરી કરી શક્યાં નથી."</string>
     <string name="version_text" msgid="7628938665256107608">"વર્ઝન <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ખસેડો"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"આર્કાઇવ કરવાની પ્રક્રિયા નિષ્ફળ રહી"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> આર્કાઇવ કરી"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"રિસ્ટોર કરવાની પ્રક્રિયા નિષ્ફળ રહી"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> રિસ્ટોર કરી રહ્યાં છીએ"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"અન્ય સ્થાનાંતરણ પહેલેથી જ પ્રગતિ પર છે."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"પર્યાપ્ત સંગ્રહ સ્થાન નથી."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ઍપ્લિકેશન અસ્તિત્વમાં નથી."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ઑન-સ્ક્રીન કીબોર્ડ ઉપલબ્ધ છે"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ઑન-સ્ક્રીન કીબોર્ડને મેનેજ કરો"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"વિકલ્પો"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ઍક્સેસિબિલિટી"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ભૌતિક કીબોર્ડ"</string>
     <string name="show_ime" msgid="4334255501724746849">"ઑન-સ્ક્રીન કીબોર્ડનો ઉપયોગ કરો"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"જ્યારે ભૌતિક કીબોર્ડ સક્રિય હોય ત્યારે તેને સ્ક્રીન પર રાખો"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"બાઉન્સ કી"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"વાસ્તવિક કીબોર્ડની ઍક્સેસિબિલિટી માટે બાઉન્સ કી ચાલુ કરો"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"સ્ટીકી કી"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"વાસ્તવિક કીબોર્ડની ઍક્સેસિબિલિટી માટે સ્ટીકી કી ચાલુ કરો"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"કીબોર્ડ શૉર્ટકટ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"શૉર્ટકટની સૂચિ બતાવો"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"કાર્યાલયનું પ્રોફાઇલ અને સાધનો"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"વપરાશના સમય મુજબ સૉર્ટ કરો"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"છેલ્લે ઉપયોગ કર્યાના સમય મુજબ સૉર્ટ કરો"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ઍપના નામ મુજબ સૉર્ટ કરો"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"છેલ્લે ઉપયોગ કરેલ સમય"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"છેલ્લે ઉપયોગ કરેલી"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ક્યારેય નહીં"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"વપરાશ સમય"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ઍક્સેસિબિલિટી"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ઍક્સેસિબિલિટી સેટિંગ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"તેમ છતાં ચાલુ રાખો"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"રદ કરો"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"સ્ક્રીન મોટી કરવાનું સેટિંગ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ત્રણ-ટૅપ વડે વિસ્તૃત કરો"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"શૉર્ટકટ વડે વિસ્તૃત કરો"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"શૉર્ટકટ વડે વિસ્તૃત કરો અને ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> વિશે"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ખોલવા માટે, સ્ક્રીન પર બે આંગળી વડે બે વાર ટૅપ કરો"</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="860548190334486449">"મોટું કરવાનું શરૂ અને બંધ કરવા માટે, બે આંગળી વડે તમારી સ્ક્રીન પર ગમે ત્યાં બે વાર ટૅપ કરો."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"કોઈ ઍક્સેસિબિલિટી સુવિધાનો ઉપયોગ કરવા માટે, 3 આંગળી વડે સ્ક્રીનની નીચેના ભાગથી ઉપરની તરફ સ્વાઇપ કરો.\n\nકોઈ એક સુવિધાથી બીજી સુવિધા પર સ્વિચ કરવા માટે, 3 આંગળી વડે ઉપરની તરફ સ્વાઇપ કરીને દબાવી રાખો."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"સમજાઈ ગયું"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ઍક્સેસિબિલિટી બટનના સેટિંગ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"બટનના સેટિંગ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> શૉર્ટકટ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ઍક્સેસિબિલિટી બટન"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ઍક્સેસિબિલિટી સંકેત"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"સ્ક્રીન પર બે આંગળી વડે બે વાર ટૅપ કરો"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"સ્ક્રીન પર બે આંગળી વડે બે વાર ટૅપ કરો"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"સ્ક્રીન પર ઝડપથી બે આંગળી વડે {0,number,integer} વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"સ્ક્રીનને ત્રણ વાર ટૅપ કરો"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ઝડપથી સ્ક્રીન પર {0,number,integer} વાર ટૅપ કરો. આ શૉર્ટકટ તમારા ડિવાઇસને ધીમું કરી શકે છે"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ઍક્સેસિબિલિટી બટન અને સંકેત વિશે વધુ જાણો"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ઍક્સેસિબિલિટી બટનનો ઉપયોગ કરી રહ્યાં છીએ. 3-બટનથી નૅવિગેશનમાં કોઈ સંકેત ઉપલબ્ધ હોતા નથી."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ઍક્સેસિબિલિટી સુવિધાઓ ઝડપથી ઍક્સેસ કરો"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"શરૂ કરવા માટે"</b>\n"1. ઍક્સેસિબિલિટી સેટિંગમાં જાઓ\n2. કોઈ સુવિધા પસંદ કરો અને શૉર્ટકટ પર ટૅપ કરો\n3. સુવિધાને ઍક્સેસ કરવા માટે, તમે બટન કે સંકેતનો ઉપયોગ કરવા માગો છો કે નહીં, તે પસંદ કરો"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"શરૂ કરવા માટે"</b>\n"1. ઍક્સેસિબિલિટી સેટિંગમાં જાઓ\n2. કોઈ સુવિધા પસંદ કરો અને શૉર્ટકટ પર ટૅપ કરો\n3. સુવિધાને ઍક્સેસ કરવા માટે બટન પસંદ કરો"</string>
+    <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_size_title" msgid="5785110470538960881">"કદ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"પાવર બટન કૉલને સમાપ્ત કરે છે"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"મોટું માઉસ પૉઇન્ટર"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"માઉસ પૉઇન્ટરને વધુ ધ્યાનમાં આવી શકે તેવું બનાવો"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"બધી ઍપમાં ડાર્ક થીમનો ઉપયોગ કરો"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ડાર્ક થીમ વિનાની ઍપને લાગુ થાય છે. અમુક ઍપમાં રંગો ઉલટાવા જેવી ડિસ્પ્લે સંબંધિત સમસ્યાઓ આવી શકે છે."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ઍનિમેશન કાઢી નાખો"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"સ્ક્રીન પર હિલચાલ ઘટાડો"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"મૉનો ઑડિયો"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"તે ઍપ અથવા હાર્ડવેર સેન્સર વડે તમારી ક્રિયાપ્રતિક્રિયાને ટ્રૅક કરી શકે છે અને તમારા વતી ઍપ સાથે ક્રિયાપ્રતિક્રિયા કરી શકે છે."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"મંજૂરી આપો"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"નકારો"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"રોકો"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"રદ કરો"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> બંધ કરીએ?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> પર ટૅપ કરવાથી <xliff:g id="SERVICE">%2$s</xliff:g> રોકાઈ જશે."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"બંધ કરો"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ચાલુ રાખો"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>ને બંધ કરીએ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"કોઈ સેવાઓ ઇન્સ્ટોલ કરેલી નથી"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"કોઈ સેવા પસંદ કરેલી નથી"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"કોઈ વર્ણન પ્રદાન કરવામાં આવેલ નથી."</string>
     <string name="settings_button" msgid="2195468788019730377">"સેટિંગ"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"લાઇટની સંવેદિતા, ફોટોફોબિયા, ઘેરી થીમ, આધાશીશી, માથાનો દુખાવો, વાંચવાનો મોડ, રાત્રિ મોડ, બ્રાઇટનેસ ઓછી કરો, વ્હાઇટ પૉઇન્ટ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ઉપયોગની સરળતા, ઍક્સેસની સરળતા, સહાયક, સહાયકારી"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"દ્રષ્ટિ, શ્રવણશક્તિ, અંધ, બધિર, મોટર, કાયાકૌશલ્ય, સહાયક, સહાયતા, ઉપયોગમાં સરળતા, ઍક્સેસની સરળતા, હાથ, સહાય"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"વિંડો મોટી કરવાની સુવિધા, નાનું-મોટું કરો, મોટું કરવું, ઓછું વિઝન, વધારો, વધુ મોટું કરો"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"કૅપ્શન, ઉપશીર્ષકો, CC, Live Transcribe, સાંભળવાની સમસ્યા, CART, સ્પીચ ટૂ ટેક્સ્ટ, સબટાઇટલ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"કલર કોન્ટ્રાસ્ટ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"મોટર, માઉસ"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"સાંભળવામાં મદદ આપતા યંત્રો, ઓછું સાંભળવાની સમસ્યા, સાંભળવાની સમસ્યા, કૉક્લિઅર ઇમ્પ્લાન્ટ, ઍમ્પ્લિફિકેશન ડિવાઇસ, સાઉન્ડ પ્રોસેસર"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"મોટર, માઉસ, બાહ્ય માઉસ, હેડ માઉસ, અડૅપ્ટિવ માઉસ, વ્હીલચેર, જૉયસ્ટિક"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"સાંભળવામાં મદદ આપતા યંત્રો, ઓછું સાંભળવાની સમસ્યા, બહેરાશ, કૉક્લિઅર ઇમ્પ્લાન્ટ, ઍમ્પ્લિફિકેશન ડિવાઇસ, સાઉન્ડ પ્રોસેસર, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"સાંભળવાની સમસ્યા, બહેરાશ, કૅપ્શન, ટેલિટાઇપ, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ત્રણ બટન"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"કાયાકૌશલ્ય, મોટર, વરિષ્ઠ, સંધિવા, rsi, સ્ટ્રોક, ધ્રુજારી, મલ્ટીપલ સ્ક્લેરોસિસ, મગજનો લકવો, કંપન, પુનરાવર્તિત તાણની ઇજા, હાથ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"વિલંબ, કાયાકૌશલ્ય, વરિષ્ઠ"</string>
     <string name="print_settings" msgid="8519810615863882491">"પ્રિન્ટિંગ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"બંધ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 પ્રિન્ટ સેવા ચાલુ છે}one{# પ્રિન્ટ સેવા ચાલુ છે}other{# પ્રિન્ટ સેવા ચાલુ છે}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"સૌથી વધુ વપરાતી હોય એવી ઍપ જુઓ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"તમારી બૅટરીની સુરક્ષા કરવા માટે, ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવ્યું છે"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"તમારી બૅટરીની આવરદા વધારવામાં સહાય કરવા માટે, ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવ્યું છે"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"તમારી બૅટરીની સુરક્ષા કરવા માટે, ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવ્યું છે"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"તમારી બૅટરીની આવરદા વધારવામાં સહાય કરવા માટે, ડૉક કરતી વખતે ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવે છે"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"તમારી બૅટરીની સુરક્ષા કરવા માટે, ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવ્યું છે"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"તમારી બૅટરીની આવરદા વધારવામાં સહાય કરવા માટે, ડૉક કરતી વખતે ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવે છે"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"સંપૂર્ણ ચાર્જિંગ વિશે"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"તમારી બૅટરીને સુરક્ષિત રાખવા માટે, આગલી વખતે જ્યારે તમારું ટૅબ્લેટ ડૉક કરેલું હોય, ત્યારે ચાર્જિંગ ઑપ્ટિમાઇઝ કરવામાં આવશે"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ચાર્જિંગ થોભાવેલું છે વિશે વધુ જાણો"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ચાર્જ કરવાનું ફરી શરૂ કરો"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"બૅકગ્રાઉન્ડમાંની હાઇ પાવર પ્રવૃત્તિનો સમાવેશ થાય છે"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"કાઢી નાખો"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"રદ કરો"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"પૂરી ચાર્જ કરો"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ચાર્જિંગ ઍક્સેસરીમાં સમસ્યા"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"અસંગત ચાર્જિંગ વિશે વધુ જાણો"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"બૅટરી મેનેજર"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ઍપને ઑટોમૅટિક રીતે મેનેજ કરો"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"હમણાં"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"બૅટરીના વપરાશનો ચાર્ટ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"બૅટરીના દૈનિક વપરાશનો ચાર્ટ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"બૅટરીના કલાક દીઠ વપરાશનો ચાર્ટ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"બૅટરીનું લેવલ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>થી <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> છે"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"છેલ્લા પૂર્ણ ચાર્જ પછી બૅટરીનો વપરાશ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> માટેનો બૅટરીનો વપરાશ"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"છેલ્લે પૂર્ણ ચાર્જ કર્યા પછી સ્ક્રીન સમય"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"કટોકટી સમયે ડાયલનું સિગ્નલ"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"જ્યારે કટોકટીનો કૉલ કરવામાં આવે ત્યારે વર્તન સેટ કરો"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"બૅકઅપ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ચાલુ છે"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"બંધ છે"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"બેકઅપ અને પુનર્સ્થાપન"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"વ્યક્તિગત ડેટા"</string>
     <string name="backup_data_title" msgid="507663517227498525">"મારા ડેટાનો બેક અપ લો"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"નામ"</string>
     <string name="vpn_type" msgid="5533202873260826663">"પ્રકાર"</string>
     <string name="vpn_server" msgid="2908816134941973935">"સર્વર ઍડ્રેસ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP એન્ક્રિપ્શન (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP રહસ્ય"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ઓળખકર્તા"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec પહેલાંથી શેર કરેલી કી"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec વપરાશકર્તા પ્રમાણપત્ર"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA પ્રમાણપત્ર"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec સર્વર પ્રમાણપત્ર"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"વિગતવાર વિકલ્પો બતાવો"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS શોધ ડોમેન"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS સર્વર (દા.ત. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ફૉરવર્ડિંગ રૂટ (દા.ત. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"વપરાશકર્તાનું નામ"</string>
     <string name="vpn_password" msgid="1183746907642628127">"પાસવર્ડ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"એકાઉન્ટ માહિતી સાચવો"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ઉપયોગ થયો નથી)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(સર્વર ચકાસશો નહીં)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(સર્વરમાંથી પ્રાપ્ત)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"આ VPN પ્રકાર હંમેશાં કનેક્ટ કરેલ રાખી શકાતો નથી"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"હંમેશાં-ચાલુ VPN માત્ર સંખ્યાત્મક સર્વર ઍડ્રેસને જ સપોર્ટ કરે છે"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"હંમેશાં-ચાલુ VPN માટે DNS સર્વરનો ઉલ્લેખ કરેલો હોવો આવશ્યક છે"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS સર્વર સરનામા હંમેશાં-ચાલુ VPN માટે સંખ્યાત્મક હોવા આવશ્યક છે"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"દાખલ કરેલી માહિતી હંમેશાં-ચાલુ VPNને સપોર્ટ કરતી નથી"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"રદ કરો"</string>
     <string name="vpn_done" msgid="5137858784289564985">"છોડી દો"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN વિનાના કનેક્શનને બ્લૉક કરો"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN કનેક્શનની જરૂર છે?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"સુરક્ષિત નથી. IKEv2 VPN પર અપડેટ કરો"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"અનસપોર્ટેડ VPN શરૂ કરવામાં નિષ્ફળ રહ્યાં."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"હંમેશા તેની સાથે કનેક્ટ રહેવા માટે એક VPN પ્રોફાઇલ પસંદ કરો. આ VPN સાથે કનેક્ટ હશે માત્ર ત્યારે જ નેટવર્ક ટ્રાફિકને મંજૂરી આપવામાં આવશે."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"કોઈ નહીં"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"હંમેશા-ચાલુ VPNને સર્વર અને DNS બંને માટે એક IP ઍડ્રેસની જરૂર હોય છે."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER અલર્ટ"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"બાળકના અપહરણો વિશે બુલેટિન્સ પ્રાપ્ત કરો"</string>
     <string name="repeat_title" msgid="8676570486899483606">"પુનરાવર્તન"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"કૉલ સંચાલક સક્ષમ કરો"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"આ સેવાને તમારા કૉલ કેવી રીતે કરવામાં આવે તે મેનેજ કરવાની મંજૂરી આપો."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"કૉલ સંચાલક"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"વાયરલેસ ઇમર્જન્સી અલર્ટ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"નેટવર્ક ઓપરેટર્સ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ઍક્સેસ પોઇન્ટના નામ"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"વૉલેટ"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ચુકવણી કરો, ટૅપ કરો, ચુકવણીઓ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"બૅકઅપ, બૅક અપ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"સંકેત"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ફેસ, અનલૉક, પ્રમાણીકરણ, સાઇન ઇન"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ફેસ, અનલૉક, પ્રમાણીકરણ, સાઇન ઇન કરો, ફિંગરપ્રિન્ટ, બાયોમેટ્રિક"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl વર્ઝન, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ચાલુ થવા પર વાગનાર ધ્વનિ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"લાઇવ કૅપ્શન"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"મીડિયામાં કૅપ્શન ઑટોમૅટિક રીતે ઉમેરો"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ફોનના સ્પીકર"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ટૅબ્લેટના સ્પીકર"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ડિવાઇસના સ્પીકર"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"વાયરવાળા હૅડફોન"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"સુસંગત મીડિયાનો ઑડિયો વધુ ઇમર્સિવ બને છે"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"બંધ"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"હાલની વાતચીતો કાઢી નાખી"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"વાતચીત કાઢી નાખી"</string>
     <string name="clear" msgid="5092178335409471100">"સાફ કરો"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> સાફ કરો"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"પ્રાધાન્યતા ધરાવતી અને ફેરફાર કરેલી વાતચીતો અહીં દેખાશે"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"એકવાર તમે વાતચીતને \'પ્રાધાન્યતા\' ધરાવતી વાતચીત તરીકે માર્ક કરો અથવા વાતચીતોમાં અન્ય કોઈ ફેરફારો કરો, એટલે તે અહીં દેખાશે. \n\nવાતચીતના સેટિંગ બદલવા માટે: \nનોટિફિકેશન શેડ ખોલવા માટે સ્ક્રીનની ઉપરની બાજુથી નીચેની તરફ સ્વાઇપ કરો અને પછી વાતચીતને ટચ કરીને દબાવી રાખો."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"નાનું કરો"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"બંધ છે"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ઍપ પિનિંગ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ઍપ પિનિંગ, તમે હાલની ઍપને અનપિન ન કરો ત્યાં સુધી તેને વ્યૂમાં રાખવાની તમને સુવિધા આપે છે. વિશ્વાસપાત્ર મિત્રને કોઈ ખાસ ગેમ રમવાની સવલત આપવા જેવા કાર્ય માટે આ સુવિધાનો ઉપયોગ થઈ શકે છે."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"જ્યારે ઍપ પિન કરેલી હોય, ત્યારે પિન કરેલી ઍપ કદાચ અન્ય ઍપ ખોલી શકે છે અને વ્યક્તિગત ડેટા ઍક્સેસ કરી શકાય તેવું બની શકે છે. \n\nઍપ પિનિંગ સુવિધાનો ઉપયોગ કરવા માટે: 	\n1. ઍપ પિનિંગ સુવિધા ચાલુ કરો 	\n2. ઓવરવ્યૂ ખોલો 	\n3. સ્ક્રીનમાં સૌથી ઉપર આવેલા ઍપ આઇકન પર ટૅપ કરો, ત્યાર બાદ પિન કરો પર ટૅપ કરો"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"જ્યારે ઍપ પિન કરેલી હોય, ત્યારે પિન કરેલી ઍપ કદાચ અન્ય ઍપ ખોલી શકે છે અને વ્યક્તિગત ડેટા ઍક્સેસ કરી શકાય તેવું બની શકે છે. \n\nજો તમારે તમારું ડિવાઇસ કોઈ વ્યક્તિ સાથે સુરક્ષિત રીતે શેર કરવું હોય, તો વિકલ્પ તરીકે કોઈ અતિથિ વપરાશકર્તાનો ઉપયોગ કરી જુઓ. \n\nઍપ પિનિંગ સુવિધાનો ઉપયોગ કરવા માટે: 	\n1. ઍપ પિનિંગ સુવિધા ચાલુ કરો 	\n2. ઓવરવ્યૂ ખોલો 	\n3. સ્ક્રીનમાં સૌથી ઉપર આવેલા ઍપ આઇકન પર ટૅપ કરો, ત્યાર બાદ પિન કરો પર ટૅપ કરો"</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_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">"અનપિન કરતા પહેલાં પિન માટે પૂછો"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ઍપનો ઉપયોગ કરતા ન હો, તો ઍપ મેનેજ કરો"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"પરવાનગીઓ કાઢી નાખો, હંગામી ફાઇલો ડિલીટ કરો, નોટિફિકેશન બંધ કરો અને ઍપ આર્કાઇવ કરો"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"બધી ઍપ"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ઇન્સ્ટૉલ કરેલી ઍપ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ઝટપટ ઍપ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ખાલી"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ઍપ્લિકેશનો દ્વારા વપરાયેલ મેમરી"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{છેલ્લી {time}માં 1 ઍપ દ્વારા મેમરીનો ઉપયોગ કરવામાં આવ્યો}one{છેલ્લી {time}માં # ઍપ દ્વારા મેમરીનો ઉપયોગ કરવામાં આવ્યો}other{છેલ્લી {time}માં # ઍપ દ્વારા મેમરીનો ઉપયોગ કરવામાં આવ્યો}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"મેમરી વપરાશની પ્રોફાઇલ બનાવવી ચાલુ કરો"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"મેમરીના વપરાશની પ્રોફાઇલ બનાવવા માટે સિસ્ટમના વધારાના સંસાધનો આવશ્યક છે."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"મેમરીના વપરાશની પ્રોફાઇલ બનાવવાની સુવિધા બંધ કરો"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ફ્રિકવન્સી"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"મહત્તમ વપરાશ"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"કોઈ ડેટાનો ઉપયોગ કર્યો નથી"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"અન્ય ઍપથી ઉપર બતાવો"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"અન્ય ઍપની ઉપર ડિસ્પ્લે કરવાની મંજૂરી આપો"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"તમે ઉપયોગમાં લઈ રહ્યાં હો તેવી અન્ય ઍપની ટોચ ઉપર આ ઍપને ડિસ્પ્લે થવા દો. આ ઍપ તમે ક્યાં ટૅપ કરો છો અથવા તો સ્ક્રીનના ડિસ્પ્લે પર શું ફેરફાર કરો છો તે જોઈ શકશે."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"મીડિયા આઉટપુટ બદલો"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ઍપને મીડિયા આઉટપુટ સ્વિચ કરવાની મંજૂરી આપો"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"અન્ય ઍપમાંથી ઑડિયો કે વીડિયો ચલાવવા માટે કનેક્ટ કરેલું ડિવાઇસ પસંદ કરવાની આ ઍપને મંજૂરી આપો. જો મંજૂરી આપવામાં આવે, તો આ ઍપ હૅડફોન અને સ્પીકર જેવા ઉપલબ્ધ ડિવાઇસની સૂચિ ઍક્સેસ કરી શકે છે અને ઑડિયો કે વીડિયો સ્ટ્રીમ કે કાસ્ટ કરવા માટે આઉટપુટ ડિવાઇસ પસંદ કરી શકે છે."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"બધી ફાઇલોનો ઍક્સેસ"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"વૉઇસ સક્રિયકરણ બહેતર બનાવો"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"વૉઇસ સક્રિયકરણ મૉડલને બહેતર બનાવવા માટે આ ડિવાઇસ ખાનગી ઇન્ટેલિજન્સનો ઉપયોગ કરે છે. દરેક જણ માટે મૉડલને બહેતર બનાવવા માટે ઍપને અપડેટનો સારાંશ મળી શકે છે, જેને ઘણા બધા વપરાશકર્તાઓ પાસેથી એકીકૃત કરવામાં આવ્યો હોય છે જેથી તેમની પ્રાઇવસી જળવાઈ રહે.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"ડેટા ચેતવણી <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"ડેટા મર્યાદા <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ડેટા ચેતવણી <xliff:g id="ID_1">^1</xliff:g> / ડેટા મર્યાદા <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"કૅરિઅર ડેટા ગણતરી, ડિવાઇસ ગણતરીથી અલગ હોઈ શકે છે"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"મોબાઇલ ઑપરેટરના નેટવર્ક દ્વારા વપરાયેલો ડેટા શામેલ નથી"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ઉપયોગ થયો"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ડેટા ચેતવણી સેટ કરો"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> પહેલાં અપડેટ કરેલ"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"હમણાં જ <xliff:g id="ID_1">^1</xliff:g> દ્વારા અપડેટ કરેલ"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"હમણાં જ અપડેટ કરેલ"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"પ્લાન જુઓ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"વિગતો જુઓ"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ડેટા સેવર"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"અપ્રતિબંધિત ડેટા"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"બૅટરીના વપરાશમાં વિસંગતતા"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ઝડપી સેટિંગ ડેવલપર ટાઇલ"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb અધિકરણ સમયસમાપ્તિને બંધ કરો"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ડિફૉલ્ટ (7 દિવસ) અથવા વપરાશકર્તા દ્વારા કન્ફિગર કરેલા સમય (ઓછામાં ઓછા 1 દિવસ)માં ફરી કનેક્ટ કરવામાં ન આવેલા હોય તેવા સિસ્ટમ માટે અધિકરણને ઑટોમૅટિક રીતે રદ કરવાનું બંધ કરો."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope ટ્રેસ"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"સેન્સર બંધ છે"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ઑફિસની પ્રોફાઇલના સેટિંગ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"વ્યક્તિગત ઍપને ઑફિસની ડિરેક્ટરીનો ઉપયોગ કરીને સંપર્કો ઓળખવાની મંજૂરી આપો"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ઑટોમૅટિક રીતે ભરવાની સુવિધા"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ડિફૉલ્ટ \'ઑટોમૅટિક રીતે ભરવાની સુવિધા\'"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"પાસવર્ડ"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"વધારાના પ્રદાતાઓ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# પાસવર્ડ}one{# પાસવર્ડ}other{# પાસવર્ડ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ઑટો, ભરો, આપમેળે ભરવાની સુવિધા, પાસવર્ડ"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ડેટા, પાસકી, પાસવર્ડ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ઑટો, ભરો, ઑટોમૅટિક રીતે ભરવાની સુવિધા, ડેટા, પાસકી, પાસવર્ડ"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;બધી સેવાઓ બંધ કરીએ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; જ્યારે તમે સાઇન ઇન કરશો ત્યારે પાસવર્ડ, પાસકી અને અન્ય સાચવેલી માહિતી ઑટોમૅટિક રીતે ભરવા માટે ઉપલબ્ધ રહેશે નહીં"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;તમારી પસંદગીની સેવાને આના વડે બદલો: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; હવેથી નવા પાસવર્ડ, પાસકી અને અન્ય માહિતી અહીં સાચવવામાં આવશે. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; દ્વારા ઑટોમૅટિક રીતે ભરવાની માહિતી નક્કી કરવા માટે તમારી સ્ક્રીન પરની માહિતીનો ઉપયોગ કરવામાં આવી શકે છે"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$sનો ઉપયોગ કરીએ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"તમે ફક્ત 5 સેવા ચાલુ રાખી શકો છો"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"અન્ય સેવા ઉમેરવા માટે ઓછામાં ઓછી 1 સેવા બંધ કરો"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"ઑટોમૅટિક રીતે શું ભરી શકાય તે નક્કી કરવા માટે %1$s તમારી સ્ક્રીન પર જે છે તેનો ઉપયોગ કરે છે."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓની મર્યાદા"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"તમે એક જ સમયે 5 પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓ સક્રિય રાખી શકો છો. વધુ સેવા ઉમેરવા માટે, કોઈ સેવાને બંધ કરો."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓની મર્યાદા"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"તમે એક જ સમયે 5 પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓ સક્રિય રાખી શકો છો. વધુ સેવા ઉમેરવા માટે, કોઈ સેવાને બંધ કરો."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"બંધ કરો"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ઑટોમૅટિક રીતે ભરવાના સેટિંગ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"લૉગિંગનું સ્તર"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ફક્ત ડિબગ કરી શકાય તેવી ઍપ માટે જ ઍપની સુસંગતતામાંના ફેરફારોમાં બદલાવ કરી શકાય છે. ડિબગ કરી શકાય તેવી ઍપ ઇન્સ્ટૉલ કરો અને ફરી પ્રયાસ કરો."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"અન્ય સેટિંગ પર આધાર રાખે છે"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"એકાઉન્ટ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d એકાઉન્ટ"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ડિવાઇસનું નામ"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"મૂળભૂત માહિતી"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"કાનૂની નોટિસ અને નિયમનકારી માહિતી"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ટૅગ સ્કૅન કરવામાં આવે ત્યારે આ ઍપને લૉન્ચ થવાની મંજૂરી આપો.\nજો આ પરવાનગી ચાલુ હોય, તો જ્યારે પણ ટૅગની ભાળ મળે ત્યારે આ ઍપ વિકલ્પ તરીકે ઉપલબ્ધ થશે."</string>
     <string name="media_output_title" msgid="8283629315159510680">"મીડિયા આના પર ચલાવો"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> પર ચલાવો"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ઑડિયો આની પર વાગશે"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"આ ડિવાઇસ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"કૉલ દરમિયાન અનુપલબ્ધ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"હૅન્ડ્સ ફ્રી પર કૉલ લો"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"મ્યૂટ કરો"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ચાલુ કરવા માટે, પહેલાં \"પાવર બટન દબાવી રાખો\" વિકલ્પને બદલીને પાવર મેનૂ કરો."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"નેટવર્કની વિગતો"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"તમારા ડિવાઇસનું નામ તમારા ફોનની ઍપ પર જોઈ શકાય છે. તમે બ્લૂટૂથ ડિવાઇસથી કનેક્ટ કરો, વાઇ-ફાઇ નેટવર્કથી કનેક્ટ કરો અથવા વાઇ-ફાઇ હૉટસ્પૉટને સેટ કરો ત્યારે તે અન્ય લોકોને પણ દેખાઈ શકે છે."</string>
     <string name="devices_title" msgid="649715719278562515">"ઉપકરણો"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"નેટવર્ક પસંદ કરો"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ડિસ્કનેક્ટેડ"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"નામ"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"રંગ (સુસંગત ઍપ દ્વારા ઉપયોગમાં લેવાય છે)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"સાચવો"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"સિમનો ઉપયોગ કરો"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"આ સિમ કાર્ડનો ઉપયોગ કરો"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"બંધ છે"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"આ સિમને બંધ કરવા માટે, સિમ કાર્ડ કાઢી નાખો"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g>ને સક્રિય કરવા માટે ટૅપ કરો"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"સિમ કાઢી નાખો"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"પસંદગીનો નેટવર્ક પ્રકાર"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"નેટવર્ક ઑપરેટિંગ મોડ બદલો"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"પસંદગીનો નેટવર્ક પ્રકાર"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"કિંમત માટે તમારા નેટવર્ક પ્રદાતાનો સંપર્ક કરો."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ઍપ ડેટા વપરાશ"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"અમાન્ય નેટવર્ક મોડ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. અવગણો."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ઍક્સેસ પૉઇન્ટના નામ"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"જ્યારે <xliff:g id="CARRIER">%1$s</xliff:g> સાથે કનેક્ટ થયેલ હોય, ત્યારે ઉપલબ્ધ નથી"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> પર સ્વિચ કરીએ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"શું સિમ કાર્ડના ઉપયોગ પર સ્વિચ કરીએ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>નો ઉપયોગ કરીએ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"એક સમયે માત્ર એક જ સિમ સક્રિય રહી શકશે.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> પર સ્વિચ કરવાથી તમારી <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> સેવા રદ થશે નહીં."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"એક સમયે માત્ર 1 ઇ-સિમ સક્રિય રહી શકશે.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> પર સ્વિચ કરવાથી તમારી <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> સેવા રદ થશે નહીં."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"એક સમયે માત્ર એક જ સિમને સક્રિય કરી શકાશે.\n\nસ્વિચ કરવાથી <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>નો તમારો સેવા પ્લાન રદ થશે નહીં."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"તમે એકવારમાં 2 સિમ કાર્ડનો ઉપયોગ કરી શકો છો. <xliff:g id="CARRIER_NAME">%1$s</xliff:g>નો ઉપયોગ કરવા માટે, બીજું સિમ કાર્ડ બંધ કરો."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> પર સ્વિચ કરો"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> બંધ કરો"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ના, આભાર"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"રદ કરો"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"સ્વિચ કરો"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"બંધ કરો"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"સિમ કાર્ડ સક્રિય કરી શકાતું નથી"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"સિમ કાર્ડ ફરીથી ચાલુ કરવાનો પ્રયાસ કરો. તેમ છતાં સમસ્યા આવે, તો તમારું ડિવાઇસ ફરી શરૂ કરો."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"તમારા સિમ કાર્ડનું સેટઅપ કરો"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"આ ડિવાઇસ પર અનેક સિમ કાર્ડનો ઉપયોગ કરવા માટે મોબાઇલ નેટવર્કની તમારી પસંદગીઓ સેટ કરો"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"તમારા સિમ કાર્ડને લેબલ કરો"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"કૉલ કરતી વખતે, ટેક્સ્ટ મોકલતી વખતે અને ડેટાનો ઉપયોગ કરતી વખતે તેમજ સેટિંગમાં તમને આ લેબલ દેખાશે"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"સિમ કાર્ડનું લેબલ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"લેબલ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"કયા સિમ કાર્ડનો ઉપયોગ કરવો તે પસંદ કરો"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"તમે એકવારમાં 2 સિમ કાર્ડનો ઉપયોગ કરી શકો છો"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"તમારા પ્રાથમિક સિમ કાર્ડ સેટ કરો"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"કૉલ, ટેક્સ્ટ અને ડેટા માટે ડિફૉલ્ટ તરીકે કયા સિમ કાર્ડનો ઉપયોગ કરવો તે પસંદ કરો"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"તમારા પ્રાથમિક સિમ કાર્ડ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"કૉલ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ટેક્સ્ટ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ઑટોમૅટિક રીતે ડેટા સ્વિચ કરવો"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"કવરેજ અને ઉપલબ્ધતાના આધારે કોઈપણ સિમ કાર્ડમાંથી ડેટાનો ઉપયોગ કરો"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ફક્ત ડેટા"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"સેટઅપ કરો"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"આગળ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"મોબાઇલ નેટવર્ક"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ફોન નંબર"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"સિમ કાર્ડનું લેબલ અને રંગ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"નેટવર્કનું સક્રિયકરણ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"મોબાઇલ ઑપરેટર સ્વિચ કરી રહ્યાં છે"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> સક્રિય છે"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"થોડા સમય પછીથી મોબાઇલ ડેટા, કૉલ સુવિધાઓ અને SMSનો ઉપયોગ કરવા માટે, તમારા નેટવર્ક સેટિંગ પર જાઓ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"સિમ કાર્ડ"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"આ ઇ-સિમ કાઢી નાખીએ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"આ સિમ કાઢી નાખવાથી આ ડિવાઇસમાંથી <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> સેવા કાઢી નાખવામાં આવશે.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> માટેની સેવા રદ નહીં થાય."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"કાઢી નાખો"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"સિમ કાઢી નાખી રહ્યાં છીએ…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"સિમ કાઢી નાખી શકાતું નથી"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ભૂલને કારણે આ સિમ કાઢી નાખી શકાતું નથી.\n\nતમારું ડિવાઇસ ફરી શરૂ કરો અને ફરી પ્રયાસ કરો."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ડિવાઇસ સાથે કનેક્ટ કરો"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> ઍપ તમારા ડિવાઇસ સાથે કનેક્ટ થવા માટે હંગામી વાઇ-ફાઇ નેટવર્કનો ઉપયોગ કરવા માગે છે"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"કોઈ ડિવાઇસ મળ્યું નથી. ખાતરી કરો કે ડિવાઇસ ચાલુ છે અને કનેક્ટ કરવા માટે ઉપલબ્ધ છે."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ઇમર્જન્સી કૉલ"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"વાઇ-ફાઇ કૉલિંગ પર ઇમર્જન્સી કૉલ કરવાની સુવિધા તમારા કૅરિઅર પર સમર્થિત નથી.\nઇમર્જન્સી કૉલ કરવા માટે ડિવાઇસ ઑટોમૅટિક રીતે સેલ્યુલર નેટવર્ક પર સ્વિચ કરે છે.\nઇમર્જન્સી કૉલ કરવાનું ફક્ત સેલ્યુલર કવરેજ ધરાવતા વિસ્તારમાં જ શક્ય છે."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ક્વૉલિટી સુધારવા કૉલ માટે વાઇ-ફાઇનો ઉપયોગ કરો"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"બૅકઅપ કૉલિંગ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"જો <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> અનુપલબ્ધ અથવા રોમિંગ હોય, તો <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> કૉલ માટે, તમારા મોબાઇલ ડેટાવાળા સિમ કાર્ડનો ઉપયોગ કરો."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"બૅકઅપ કૉલિંગ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ઇનક્મિંગ MMS સંદેશ"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS સંદેશ મોકલી શકાતો નથી"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"મોબાઇલ ડેટા બંધ હોય ત્યારે પણ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> પર MMS સંદેશ મોકલવાની મંજૂરી આપવા માટે ટૅપ કરો"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"તમારા ઑફિસની પૉલિસીની માહિતી"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"તમારા IT ઍડમિન દ્વારા સેટિંગ મેનેજ કરવામાં આવે છે"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"પેજના 16K કદ સાથે બૂટ કરો"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"પેજના 16K કદને સપોર્ટ કરતી કર્નલનો ઉપયોગ કરીને ડિવાઇસ બૂટ કરો"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"પેજના 16KB કદ સાથે સુસંગત કર્નલ વડે રીબૂટ કરીએ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ચેતવણી: અમુક ઍપ્લિકેશનો આ મોડ સાથે સુસંગત ન હોય તેમ બની શકે છે. કન્ફર્મેશન પછી ડિવાઇસને રીબૂટ કરવામાં આવશે."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"પેજના 4KB કદ સાથે સુસંગત કર્નલ વડે રીબૂટ કરીએ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"કન્ફર્મેશન પછી ડિવાઇસને રીબૂટ કરવામાં આવશે."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"કર્નલને 16KB પેજની સુસંગત કર્નલ પર અપડેટ કરવામાં નિષ્ફળ રહ્યાં."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ફેરફાર લાગુ કરી રહ્યાં છીએ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"બગ રિપોર્ટ હૅન્ડલ કરનાર"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"તમારા ડિવાઇસ પર કઈ ઍપ ખામીની જાણકારીના શૉર્ટકટને હૅન્ડલ કરે તે નક્કી કરે છે."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"વ્યક્તિગત"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"પ્લેબૅક ઝડપથી ફરી શરૂ કરી શકવા માટે, મીડિયા પ્લેયર ઝડપી સેટિંગમાં ખુલ્લું રહે છે"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"લૉક સ્ક્રીન પર મીડિયા બતાવો"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"પ્લેબૅક ઝડપથી ફરી શરૂ કરવા માટે, મીડિયા પ્લેયર લૉક સ્ક્રીન પર ખુલ્લું રહે છે"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"મીડિયાના સુઝાવો બતાવો"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant મીડિયા સંબંધિત સુઝાવો બતાવો"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"તમારી પ્રવૃત્તિ પર આધારિત"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"પ્લેયર છુપાવો"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"પ્લેયર બતાવો"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"સિમ"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ઇ-સિમ"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ઇ-સિમ"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"સક્રિય"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"નિષ્ક્રિય"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> માટે ડિફૉલ્ટ"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"કૉલ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"સુસંગત મીડિયાનો ઑડિયો વધુ ઇમર્સિવ બને છે"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"હેડ ટ્રૅકિંગ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"વધુ નૈસર્ગિક અવાજ માટે, જેમ તમે તમારું માથું હલાવશો તેમ અવાજમાં ફેરફાર થતો જશે"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"સિંકની પરવાનગીઓ"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"તમે <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> પર મંજૂરી આપી હોય તેવી જ ઍપ પરવાનગીઓ <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>ને આપો"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ફોનમાંથી પરવાનગીઓ સિંક કરો"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"તમે આ ફોન પર મંજૂર કરી છે એ ઍપ પરવાનગીઓ તમારી વૉચને આપો"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ઑડિયો ડિવાઇસનો પ્રકાર"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"અજાણ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"સ્પીકર"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"મધ્યમ"</string>
     <string name="contrast_high" msgid="3988567609694797696">"વધુ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"આ ઍપ માત્ર 1 વિન્ડોમાં ખોલી શકાય છે"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ચાલુ છે"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"બંધ છે"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"બંધ છે"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"બંધ"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ચાલુ"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"બંધ"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ચાલુ"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"બંધ"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"લાઇટ સ્ક્રીનને ઘેરી અને ઘેરી સ્ક્રીનને લાઇટ કરે છે"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"સ્ક્રીન મોટી કરો"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"બંધ"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"બંધ"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ચાલુ"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"બંધ"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ચાલુ"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"હવે પાસવર્ડનું સેટઅપ થઈ ગયું છે"</string>
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 24d45fc..b2a9db6 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"एक मिनट बाद"</item>
     <item msgid="1574040255478150028">"पांच मिनट बाद"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 6308c19..e520085 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"सिर्फ़ खाते के एडमिन ही डेवलपर सेटिंग ऐक्सेस कर सकते हैं."</string>
     <string name="header_category_system" msgid="1665516346845259058">"सिस्‍टम"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"सेवा में"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"सेवा में नहीं"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"जारी रखने के लिए, ऊपर की ओर स्वाइप करें"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ऐप्लिकेशन का इस्तेमाल जारी रखने के लिए, अपने फ़ोन को फ़ोल्ड करें और फ़्रंट डिसप्ले पर ऊपर की ओर स्वाइप करें या स्क्रीन लॉक होने तक इंतज़ार करें"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"मिलते-जुलते टूल"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"रिंगटोन और अलार्म"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"कॉल में सुनाई देने वाला ऑडियो"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"मीडिया"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"सूचनाएं और अन्य सिस्टम साउंड"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"मीडिया और सिस्टम की आवाज़ें"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"सूचनाएं"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"डिफ़ॉल्ट रूप से, ऑडियो आउटपुट अलग-अलग ऐप्लिकेशन के मुताबिक तय किया जाता है"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"अनामित ब्लूटूथ डिवाइस"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"खोजना"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ब्लूटूथ चालू किया गया"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"सभी देखें"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"सभी देखें"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"स्टाइलस"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"स्टाइलस बटन को दबाएं"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (वर्क प्रोफ़ाइल)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE Audio स्ट्रीम से कनेक्ट करें"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"आस-पास होने वाली ऑडियो स्ट्रीम"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ऑडियो स्ट्रीम"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"क्यूआर कोड का इस्तेमाल करके ऑडियो स्ट्रीम से कनेक्ट करें"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"आस-पास की कोई ऑडियो स्ट्रीम नहीं मिली."</string>
     <string name="date_and_time" msgid="1788358029823431692">"तारीख और समय"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"प्रॉक्सी"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"साफ़ करें"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"अगर आपको हर ऐप्लिकेशन के लिए अलग भाषा चुननी है, तो ऐप्लिकेशन की भाषा सेटिंग पर जाएं."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ऐप्लिकेशन की भाषाओं के बारे में ज़्यादा जानें"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"क्या सिस्टम की भाषा बदलकर %s करनी है ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"क्या आपको पसंदीदा भाषाओं में %s को जोड़ना है?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"इससे ऐप्लिकेशन और वेबसाइट को जानकारी मिलेगी कि आपको यह भाषा भी इस्तेमाल करनी है."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"आपके डिवाइस की सेटिंग और जगह के हिसाब से प्राथमिकताएं बदल जाएंगी."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"बदलें"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s उपलब्ध नहीं है"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"शनिवार"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"अगर कोई ऐप्लिकेशन जगह के हिसाब से तय की गई प्राथमिकताओं के साथ काम नहीं करता, तो वह जगह के हिसाब से दी गई डिफ़ॉल्ट सेटिंग का इस्तेमाल करेगा."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"भाषा की प्राथमिकताएं चुनने के बारे में ज़्यादा जानें."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"अन्य सेटिंग"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"लैंगिक पहचान से जुड़ी जानकारी"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"यह तय करें कि आपको किस तरह बुलाया जाए"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"आपके चुने गए सर्वनाम से आपको बुलाने के लिए, ऐप्लिकेशन आपकी लैंगिक पहचान से जुड़ी जानकारी का इस्तेमाल कर सकते हैं."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"जानकारी नहीं दी गई"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"महिला"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"पुरुष"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"न्यूट्रल"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{क्या आपको चुनी गई भाषा हटानी है?}one{क्या आपको चुनी गई भाषा हटानी है?}other{क्या आपको चुनी गई भाषाएं हटानी हैं?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"लेख किसी अन्य भाषा में प्रदर्शित किया जाएगा."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"सभी भाषाएं नहीं निकाली जा सकती हैं"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"जगह की जानकारी"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"जगह की जानकारी वाली सुविधा का इस्तेमाल करें"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"बंद है"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{चालू है - # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}one{चालू है - # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}other{चालू है - # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}one{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}other{चालू है / # ऐप्लिकेशन के पास जगह की जानकारी का ऐक्सेस है}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड हो रहा है…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ऐसे ऐप्लिकेशन, जिन्हें आस-पास मौजूद डिवाइसों के साथ इंटरैक्ट करने की अनुमति मिली है वे कनेक्ट किए गए डिवाइसों की जगह की जानकारी का पता लगा सकते हैं."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ऐप्लिकेशन और सेवाओं के लिए, जगह की जानकारी का ऐक्सेस बंद है. आपके डिवाइस की जगह की जानकारी, आपातकालीन स्थिति में मदद करने वाले लोगों को अब भी दी जा सकती है. ऐसा आपके किसी आपातकालीन नंबर पर कॉल करने या मैसेज भेजने पर किया जाएगा."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"जगह की जानकारी की सेटिंग के बारे में ज़्यादा जानें."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"जगह की जानकारी की सेटिंग के बारे में ज़्यादा जानें"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"सेटिंग &gt; सुरक्षा और निजता &gt; निजता सेटिंग में जाकर जगह की जानकारी का ऐक्सेस बदलें"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"बेहतर नतीजों के लिए, ऐसे स्क्रीन प्राेटेक्टर का इस्तेमाल करें जिसे Made for Google का सर्टिफ़िकेट मिला है. हो सकता है कि दूसरे स्क्रीन प्राेटेक्टर पर आपके बच्चे का फ़िंगरप्रिंट काम न करे."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"अगर आपके फ़ोन में फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप की गई है, तो चेहरे पर मास्क होने या आस-पास कम रोशनी होने पर, फ़ोन आपका फ़िंगरप्रिंट मांगेगा.\n\nचेहरे या फ़िंगरप्रिंट की पहचान न होने पर, स्मार्टवॉच की मदद से फ़ोन को अनलॉक किया जा सकता है."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"फ़िंगरप्रिंट की पहचान न होने पर, स्मार्टवॉच की मदद से फ़ोन को अनलॉक किया जा सकता है."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"चेहरे की पहचान न होने पर, स्मार्टवॉच की मदद से फ़ोन को अनलॉक किया जा सकता है."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"अगर आपके फ़ोन में फ़ेस अनलॉक और फ़िंगरप्रिंट अनलॉक की सुविधा सेट अप की गई है, तो चेहरे पर मास्क होने या आस-पास कम रोशनी होने पर, फ़ोन आपका फ़िंगरप्रिंट मांगेगा.\n\nस्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा, अपने फ़ोन को आसानी से अनलॉक करने का एक बेहतरीन तरीका है. यह तरीका, कई मौकों पर काम आ सकता है. जैसे, जब आपकी उंगलियां गीली हों या चेहरे से पहचान न हो पा रही हो."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा, अपने फ़ोन को आसानी से अनलॉक करने का एक बेहतरीन तरीका है. यह तरीका, कई मौकों पर काम आ सकता है. जैसे, जब आपकी उंगलियों से पहचान न हो पा रही हो."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा, अपने फ़ोन को आसानी से अनलॉक करने का एक बेहतरीन तरीका है. यह तरीका, कई मौकों पर काम आ सकता है. जैसे, जब आपके चेहरे से पहचान न हो पा रही हो."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"डिवाइस खोलने के लिए, फ़िंगरप्रिंट या स्मार्टवॉच का इस्तेमाल करें"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"डिवाइस खोलने के लिए, फ़ेस लॉक या स्मार्टवॉच का इस्तेमाल करें"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"डिवाइस खोलने के लिए, फ़ेस लॉक, फ़िंगरप्रिंट या स्मार्टवॉच का इस्तेमाल करें"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"यह सुविधा कैसे काम करती है"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"आपकी स्मार्टवॉच अनलॉक होनी चाहिए, आपकी कलाई पर बंधी होनी चाहिए, और इस फ़ोन के आस-पास होनी चाहिए. स्मार्टवॉच कलाई पर बंधे होने पर, आपको इसे दोबारा अनलॉक करने की ज़रूरत नहीं होगी."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"इस फ़ोन के अनलॉक होने पर, स्मार्टवॉच पर आपको इसकी सूचना मिलेगी. अगर आपके न चाहने पर भी यह अनलॉक हो जाता है, तो सूचना पर टैप करके फ़ोन को दोबारा लॉक करें."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"आपकी स्मार्ट वॉच का कंट्रोल आपके पास है"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा बंद करने के लिए, अपनी स्मार्टवॉच को किसी भी समय हटाया जा सकता है. इसके लिए सेटिंग में जाएं"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"सूचना पर टैप करें"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लॉक स्क्रीन पर ऊपर की ओर स्वाइप करें"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"अपनी स्मार्टवॉच चुनें"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"उपलब्ध स्मार्टवॉच"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"रद्द करें"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"पुष्टि करें"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"आप बिलकुल तैयार हैं!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"अब स्मार्टवॉच का इस्तेमाल करके, इस फ़ोन को अनलॉक किया जा सकता है. इसके लिए, लॉक स्क्रीन पर ऊपर की ओर स्वाइप करें या किसी सूचना पर टैप करें"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"हो गया"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"स्मार्टवॉच का इस्तेमाल करके, इस फ़ोन को अनलॉक किया जा सकता है. इसके लिए, लॉक स्क्रीन पर ऊपर की ओर स्वाइप करें या किसी सूचना पर टैप करें"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा का इस्तेमाल करने के लिए, आपकी स्मार्टवॉच अनलॉक होनी चाहिए और आपकी कलाई पर बंधी होनी चाहिए. साथ ही, वह इस फ़ोन के आस-पास और इससे कनेक्ट होनी चाहिए. कनेक्शन में रुकावट आने पर, आपको स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा का इस्तेमाल करने से पहले, फ़ोन को अनलॉक करना होगा.\n\nध्यान रखें:\nएक बार में सिर्फ़ एक स्मार्टवॉच को कनेक्ट किया जा सकता है. कोई दूसरी स्मार्टवॉच कनेक्ट करने के लिए, मौजूदा स्मार्टवॉच को फ़ोन से डिसकनेक्ट करें."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा के बारे में ज़्यादा जानें"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"स्मार्टवॉच कनेक्ट करें"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"स्मार्टवॉच डिसकनेक्ट करें"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फ़िंगरप्रिंट और फ़ेस अनलॉक"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"वर्क प्रोफ़ाइल के लिए, फ़ेस और फ़िंगरप्रिंट अनलॉक की सुविधा"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप करना होगा"</string>
@@ -410,7 +462,7 @@
     <string name="skip_lock_screen_dialog_button_label" msgid="641984698150020591">"सेट अप न करें"</string>
     <string name="cancel_lock_screen_dialog_button_label" msgid="1801132985957491690">"रद्द करें"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="886085239313346000">"सेंसर को छुएं"</string>
-    <string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"पावर बटन को दबाने के बजाय, इसे बस उंगली से छुएं"</string>
+    <string name="security_settings_sfps_enroll_find_sensor_title" msgid="8327884364635804363">"पावर बटन को बिना दबाए हाथ से छुएं"</string>
     <string name="security_settings_udfps_enroll_find_sensor_title" msgid="8077484429913330179">"फ़िंगरप्रिंट सेट अप करने का तरीका"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="6160543980992596286">"यह आपके फ़ोन के पीछे दिया गया है. अपने अंगूठे के पास की उंगली का उपयोग करें."</string>
     <string name="security_settings_udfps_enroll_find_sensor_message" msgid="8383106460819519961">"फ़िंगरप्रिंट सेंसर आपकी स्क्रीन पर मौजूद है. आपको अगली स्क्रीन पर अपना फ़िंगरप्रिंट कैप्चर करने का विकल्प मिलेगा."</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"सुरक्षा"</string>
     <string name="privacy_header" msgid="5526002421324257007">"निजता"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"वर्क प्रोफ़ाइल"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"प्राइवेट स्पेस"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"निजी ऐप्लिकेशन, लॉक करें और छिपाकर रखें"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"निजी ऐप्लिकेशन ऐसी जगह पर रखें जिसे छिपाया या लॉक किया जा सकता है"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"प्राइवेट स्पेस लॉक"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"डिवाइस की तरह ही प्राइवेट स्पेस को अनलॉक किया जा सकता है या कोई दूसरा लॉक सेट किया जा सकता है"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"डिवाइस के स्क्रीन लॉक का इस्तेमाल करें"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"फ़ेस और फ़िंगरप्रिंट अनलॉक"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"फ़िंगरप्रिंट अनलॉक"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"फ़ेस अनलॉक"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"सेट अप करने के लिए टैप करें"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"प्राइवेट स्पेस के लिए फ़िंगरप्रिंट अनलॉक"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"प्राइवेट स्पेस के लिए फ़ेस अनलॉक"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"फ़ोन को अनलॉक करने के तरीके"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"डिवाइस के स्क्रीन लॉक की तरह"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"प्राइवेट स्पेस के लिए नया लॉक चुनना है?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"अपने-आप लॉक होने की सुविधा पाएं"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"प्राइवेट स्पेस अपने-आप लॉक होने की सुविधा पाएं"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"आपके पास यह विकल्प है कि डिवाइस का इस्तेमाल कुछ समय तक न होने पर, प्राइवेट स्पेस अपने-आप लॉक हो जाए"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"हर बार डिवाइस लॉक होने पर"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"पांच मिनट तक कोई गतिविधि न होने पर"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"कभी नहीं"</string>
+    <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_deleted" msgid="7825768516955610897">"प्राइवेट स्पेस को मिटा दिया गया है"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"प्राइवेट स्पेस को मिटाया नहीं जा सका"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"प्राइवेट स्पेस अनलॉक हो गया"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"स्क्रीन लॉक सेट करें"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"प्राइवेट स्पेस इस्तेमाल करने के लिए, इस डिवाइस पर स्क्रीन लॉक सेट करें"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"स्क्रीन लॉक सेट करें"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"अभी नहीं"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"रद्द करें"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"सेट अप करें"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"प्राइवेट स्पेस सेट अप करें"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"निजी ऐप्लिकेशन ऐसी जगह पर रखें जिसे छिपाया या लॉक किया जा सकता है"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"यह सुविधा कैसे काम करती है"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ऐप्लिकेशन लिस्ट में सबसे नीचे जाकर, प्राइवेट स्पेस को ऐक्सेस किया जा सकता है"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"प्राइवेट स्पेस में ऐप्लिकेशन, लॉक करके सुरक्षित रखे जाते हैं"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"प्राइवेट स्पेस के लॉक होने पर, ऐप्लिकेशन की सूचनाएं छिपी रहती हैं"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"प्राइवेट स्पेस लॉक होने पर, उसमें मौजूद ऐप्लिकेशन, \'अनुमतियों को मैनेज करें\' सेक्शन, प्राइवसी डैशबोर्ड, और अन्य सेटिंग में नहीं दिखेंगे.\n\nआपका प्राइवेट स्पेस, किसी नए डिवाइस में नहीं भेजा जा सकता. दूसरे डिवाइस में इस्तेमाल करने के लिए, आपको दूसरा प्राइवेट स्पेस सेट अप करना होगा.\n\nअगर कोई व्यक्ति आपके डिवाइस को कंप्यूटर से कनेक्ट करता है या डिवाइस में, नुकसान पहुंचाने वाले ऐप्लिकेशन इंस्टॉल करता है, तो हो सकता है कि वह आपके प्राइवेट स्पेस को ऐक्सेस कर पाए."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"प्राइवेट स्पेस सेट अप किया जा रहा है…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"लॉक होने पर, प्राइवेट स्पेस में ऐप्लिकेशन की सूचनाएं छिपी रहती हैं"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"प्राइवेट स्पेस में मौजूद ऐप्लिकेशन से फ़ोटो या फ़ाइलें शेयर करने के लिए, स्पेस को अनलॉक करें"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"कुछ ऐप्लिकेशन पहले से ही आपके प्राइवेट स्पेस में इंस्टॉल हैं"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"प्राइवेट स्पेस को सेट अप नहीं किया जा सका"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"फिर से कोशिश करें"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"स्क्रीन लॉक से प्राइवेट स्पेस को अनलॉक करें?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"डिवाइस की तरह ही प्राइवेट स्पेस को अनलॉक किया जा सकता है या कोई दूसरा लॉक सेट किया जा सकता है"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"स्क्रीन लॉक का इस्तेमाल करें"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"नया लॉक चुनें"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"हो गया!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"प्राइवेट स्पेस को ऐक्सेस करने के लिए, ऐप्लिकेशन लिस्ट में जाएं और नीचे की ओर स्क्रोल करें"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"हो गया"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"प्राइवेट स्पेस को ढूंढने के लिए, नीचे की ओर स्क्रोल करें"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"प्राइवेट स्पेस के लिए लॉक चुनें"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"फ़िंगरप्रिंट का इस्तेमाल करके, प्राइवेट स्पेस को अनलॉक किया जा सकता है. सुरक्षा की वजह से, इस सुविधा को इस्तेमाल करने के लिए एक बैकअप लॉक होना चाहिए."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"प्राइवेट स्पेस के लिए पिन सेट करें"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"प्राइवेट स्पेस के लिए पासवर्ड सेट करें"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"प्राइवेट स्पेस के लिए पैटर्न सेट करें"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"प्राइवेट स्पेस दिखाने के लिए (उपयोगकर्ता अनुभव फ़ाइनल नहीं)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Settings ऐप्लिकेशन खोलें"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"सुरक्षा, निजता, प्राइवेट स्पेस, और लॉक होने पर प्राइवेट स्पेस छिपाएं पर टैप करें"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"लॉक होने पर प्राइवेट स्पेस छिपाएं टॉगल को बंद करें"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googler के लिए नोट: इस नई सुविधा पर अभी काम चल रहा है"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"आपको अन्‍य डिवाइस पर भी यह पासकी लिखनी होगी."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"कोऑर्डिनेटेड सेट से जोड़ने के लिए पुष्टि करें"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"अपने संपर्क और कॉल इतिहास देखने की मंज़ूरी दें"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"संपर्क और कॉल इतिहास को ऐक्सेस करने की भी अनुमति दें"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"इस जानकारी का इस्तेमाल कॉल की सूचना देने और दूसरी चीज़ों के लिए किया जाएगा"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> से कनेक्‍ट नहीं किया जा सका."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"उपलब्ध ब्लूटूथ डिवाइस"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"हवाई जहाज़ मोड में"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"सार्वजनिक नेटवर्क मिलने की सूचना पाएं"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"अच्छी क्वालिटी का सार्वजनिक नेटवर्क मिलने पर सूचना पाएं"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP नेटवर्क से कनेक्ट करने की अनुमति दें"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP एक पुराना सिक्योरिटी प्रोटोकॉल है, जो कि कम सुरक्षित है"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"आपको मोबाइल और इंटरनेट सेवा देने वाली कंपनी WEP नेटवर्क की सुविधा नहीं देती, क्योंकि ये कम सुरक्षित होते हैं"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"वाई-फ़ाई अपने-आप चालू हो जाए"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"सेव किए गए अच्छी क्वालिटी के नेटवर्क मिलने पर, वाई-फ़ाई अपने-आप चालू हो जाएगा. जैसे, आपके घर का नेटवर्क"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"जगह की जानकारी का विकल्प बंद होने की वजह से अपने आप वाई-फ़ाई कनेक्ट होने की सुविधा उपलब्ध नहीं है. "<annotation id="link">"जगह की जानकारी"</annotation>" का विकल्प चालू करें."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"वाई-फ़ाई स्कैन करने की सुविधा से ऐप्लिकेशन और सेवाएं, किसी भी समय वाई-फ़ाई नेटवर्क स्कैन कर सकती हैं. वाई-फ़ाई की सुविधा बंद होने पर भी ऐसा किया जा सकता है. उदाहरण के लिए, इसका इस्तेमाल जगह की जानकारी से जुड़ी सुविधाओं और सेवाओं को बेहतर बनाने के लिए किया जा सकता है."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"चालू करें"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"वाई-फ़ाई स्कैन करना चालू हो गया है"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"यह नेटवर्क पुराना सिक्योरिटी प्रोटोकॉल इस्तेमाल करता है, जो कि कम सुरक्षित है"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> को ब्लॉक कर दिया गया है"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"यह नेटवर्क, WEP नाम के पुराने सिक्योरिटी प्रोटोकॉल का इस्तेमाल करता है, जो कि कम सुरक्षित है. इससे फिर भी कनेक्ट करने के लिए, WEP नेटवर्क को अनुमति दें."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"आपको मोबाइल और इंटरनेट सेवा देने वाली कंपनी, इस नेटवर्क से कनेक्ट करने की अनुमति नहीं देती है. ऐसा इसलिए, क्योंकि यह पुराने सिक्योरिटी प्रोटोकॉल का इस्तेमाल करता है, जो कि कम सुरक्षित है"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP नेटवर्क को अनुमति दें"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"बंद करें"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"बेहतर विकल्प"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"बेहतर विकल्पों की ड्रॉप-डाउन सूची"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"बड़ा करें"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"वाई-फ़ाई पर रहें"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"फिर कभी ना दिखाएं"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"कनेक्ट करें"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"वाई-फ़ाई चालू किया गया"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> से कनेक्ट किया गया"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> से कनेक्ट हो रहा है"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"कनेक्ट हो रहा है…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"नेटवर्क से कनेक्ट करने में विफल रहा"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क पहुंच से बाहर है"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"हटाएं"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"बदलें"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"नेटवर्क भूलने में विफल रहा"</string>
     <string name="wifi_save" msgid="2312643132472226807">"सेव करें"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"नेटवर्क सहेजने में विफल रहा"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"रद्द करें"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"वाई-फ़ाई"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"मोबाइल डेटा"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ईथरनेट"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ चार्जिंग"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ चार्जिंग"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"हॉटस्पॉट कनेक्शन"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"कनेक्शन की क्वालिटी"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"सेव किए गए नेटवर्क"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"काेई पासवर्ड सेट नहीं है"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"हॉटस्पॉट का नाम"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"हॉटस्पॉट का पासवर्ड"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"एपी बैंड"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"हॉटस्पॉट अपने-आप बंद हो जाए"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"जब कोई भी डिवाइस कनेक्ट नहीं किया गया हो"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"कंपैटबिलिटी बढ़ाएं"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"गेम का डिफ़ॉल्ट फ़्रेम रेट बंद करें"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"<xliff:g id="FRAME_RATE">%1$d</xliff:g> हर्ट्ज़ पर गेम के लिए सबसे ज़्यादा फ़्रेम रेट को सीमित करना बंद करें."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"स्मूद डिसप्ले"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"स्क्रीन चालू रखने की सुविधा, सामने वाले कैमरे का इस्तेमाल करके यह पता लगाती है कि कोई स्क्रीन देख रहा है या नहीं. यह डिवाइस पर काम करती है. इसमें न तो इमेज सेव होती है और न ही Google को भेजी जाती है."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"स्क्रीन चालू रखने की सुविधा चालू करें"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"जब तक आप स्क्रीन देख रहें हैं, तब तक स्क्रीन चालू रखें"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"स्क्रीन बंद होने में लगने वाला समय ज़्यादा होने पर, ज़्यादा बैटरी खर्च होगी."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"कैमरा लॉक है"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"चेहरे की पहचान करने के लिए कैमरा अनलॉक होना ज़रूरी है"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"स्क्रीन चालू रखने की सुविधा के लिए, कैमरा अनलॉक होना ज़रूरी है"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (सिम स्लॉट <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (<xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> सिम स्लॉट) (मुख्य)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"देखने के लिए, सेव किया गया नेटवर्क चुनें"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL वर्शन"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"बैटरी स्‍तर"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"कम्यूनिटी"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"कम्यूनिटी सेटिंग"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"सेव करें"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"रद्द करें"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"नाम फ़ील्‍ड खाली मत छोड़िए."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN खाली नहीं हो सकता."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC फ़ील्‍ड में 3 अंक होने चाहिए."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MCC फ़ील्‍ड में 2 या 3 अंक होने चाहिए."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी %s प्रकार के APN जोड़ने की अनुमति नहीं देती."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC फ़ील्ड में मान्य वैल्यू होनी चाहिए."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"डिफ़ॉल्‍ट APN सेटिंग पुनर्स्थापित हो रही हैं."</string>
     <string name="menu_restore" msgid="4310539620115151551">"डिफ़ॉल्ट पर रीसेट करें"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"डिफ़ॉल्‍ट APN सेटिंग रीसेट करना पूरा हुआ."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"रीसेट करें"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ब्लूटूथ और वाई-फ़ाई को रीसेट कर दिया गया है"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ई-सिम का डेटा हमेशा के लिए मिटाएं"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"इससे मोबाइल सेवा का कोई भी प्लान रद्द नहीं होगा. दूसरे सिम डाउनलोड करने के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी से संपर्क करें."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"सेटिंग रीसेट करें"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"नेटवर्क की सभी सेटिंग रीसेट करें? इस कार्रवाई को पहले जैसा नहीं किया जा सकेगा."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"क्या आपको नेटवर्क की सभी सेटिंग को रीसेट करना है और ई-सिम का डेटा हमेशा के लिए मिटाना है? इस कार्रवाई को पहले जैसा नहीं किया जा सकता."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"रीसेट करें?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"इस उपयोगकर्ता के लिए नेटवर्क रीसेट मौजूद नहीं है"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"नेटवर्क सेटिंग रीसेट कर दी गई हैं"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"सिम नहीं मिटाए जा सकते"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"किसी गड़बड़ी की वजह से, ई-सिम का डेटा हमेशा के लिए नहीं मिटाया जा सका.\n\nडिवाइस को रीस्टार्ट करें और फिर से कोशिश करें."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"हमेशा के लिए पूरा डेटा मिटाएं (फ़ैक्ट्री रीसेट)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"हमेशा के लिए पूरा डेटा मिटाएं (फ़ैक्ट्री रीसेट)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"संगीत"</li>\n<li>"फ़ोटो"</li>\n<li>"उपयोगकर्ता का अन्य डेटा"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"इससे आपका मोबाइल सेवा प्लान रद्द नहीं होगा."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"आपकी सारी निजी जानकारी और डाउनलोड किए गए ऐप्लिकेशन मिटा दिए जाएंगे. मिटाया गया डेटा वापस नहीं पाया जा सकेगा."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"डाउनलोड किए गए ऐप्लिकेशन और सिम के साथ ही आपकी सारी निजी जानकारी मिटा दी जाएगी. आप मिटाया गया डेटा वापस नहीं पा सकते."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"क्या आपको पूरा डेटा मिटाना हैं?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"इस उपयोगकर्ता के लिए फ़ैक्ट्री रीसेट उपलब्ध नहीं है"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"हमेशा के लिए मिटाया जा रहा है"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"हॉटस्पॉट, यूएसबी, ब्लूटूथ, ईथरनेट"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"इंटरनेट को दूसरे डिवाइस से शेयर नहीं किया जा रहा है"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"बंद है"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"टेदरिंग"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"वाई-फ़ाई हॉटस्पॉट का इस्तेमाल न करें"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"सिर्फ़ यूएसबी के ज़रिए इंटरनेट शेयर करें"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"सिर्फ़ ब्लूटूथ के ज़रिए इंटरनेट शेयर करें"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"सिर्फ़ ईथरनेट से इंटरनेट शेयर करें"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"सिर्फ़ ब्लूटूथ और यूएसबी के ज़रिए इंटरनेट शेयर करें"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"सिर्फ़ यूएसबी और ईथरनेट से इंटरनेट शेयर करें"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"सिर्फ़ ब्लूटूथ और ईथरनेट से इंटरनेट शेयर करें"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"सिर्फ़ यूएसबी, ब्लूटूथ, और ईथरनेट से इंटरनेट शेयर करें"</string>
-    <string name="usb_title" msgid="1157283449840612901">"यूएसबी"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"यूएसबी टेदरिंग"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ब्लूटूथ टेदरिंग"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ईथरनेट टेदरिंग"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"दूसरे डिवाइसों के साथ अपना वाई-फ़ाई या मोबाइल डेटा कनेक्शन शेयर करने के लिए, हॉटस्पॉट और टेदरिंग का इस्तेमाल करें. आस-पास के डिवाइसों के साथ कॉन्टेंट शेयर करने के लिए, ऐप्लिकेशन भी हॉटस्पॉट बना सकते हैं."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"सहायता"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"मोबाइल नेटवर्क"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"मोबाइल प्लान"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"एसएमएस ऐप्लिकेशन"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"मैसेज (एसएमएस) ऐप बदलें?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> के बजाय <xliff:g id="NEW_APP">%1$s</xliff:g> को अपने मैसेज (एसएमएस) ऐप के तौर पर इस्तेमाल करें?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"वाई-फ़ाई सहायक बदलें?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="CURRENT_APP">%2$s</xliff:g> के बजाय <xliff:g id="NEW_APP">%1$s</xliff:g> का उपयोग करें?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"आपके नेटवर्क कनेक्शन प्रबंधित करने के लिए <xliff:g id="NEW_APP">%s</xliff:g> का उपयोग करें?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"अज्ञात सिम ऑपरेटर"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> की कोई भी ज्ञात प्रावधान वेबसाइट नहीं है"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"कृपया सिम कार्ड डालें और फिर से शुरू करें"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"कृपया इंटरनेट से कनेक्ट करें"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"हाल में किए गए जगह के अनुरोध"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"वर्क प्रोफ़ाइल की जगह"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ऐप्लिकेशन के लिए जगह की जानकारी की अनुमतियां"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ऐक्सेस साफ़ करें"</string>
     <string name="controls_label" msgid="8671492254263626383">"नियंत्रण"</string>
     <string name="force_stop" msgid="2681771622136916280">"ज़बरदस्ती रोकें"</string>
+    <string name="archive" msgid="9074663845068632127">"संग्रहित करें"</string>
+    <string name="restore" msgid="7622486640713967157">"वापस लाएं"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"कुल स्टोरेज"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ऐप्लिकेशन का साइज़"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB मेमोरी ऐप्लिकेशन"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"पैकेज आकार की गणना नहीं की जा सकी."</string>
     <string name="version_text" msgid="7628938665256107608">"वर्शन <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ले जाएं"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"संग्रहित नहीं किया जा सका"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> को संग्रहित किया गया"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"वापस नहीं लाया जा सका"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> को वापस लाया जा रहा है"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"कोई और डेटा दूसरी जगह भेजा जा रहा है."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"मेमोरी में ज़रुरत के मोताबिक जगह नहीं बची है"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ऐप्लिकेशन मौजूद नहीं है."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ऑन-स्क्रीन कीबोर्ड उपलब्ध है"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ऑन-स्क्रीन कीबोर्ड को मैनेज करें"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"अन्य विकल्प"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"सुलभता सुविधा"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"सामान्य कीबोर्ड"</string>
     <string name="show_ime" msgid="4334255501724746849">"ऑन-स्क्रीन कीबोर्ड का इस्तेमाल करें"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"सामान्य कीबोर्ड चालू रहने के दौरान इसे स्‍क्रीन पर दिखाते रहें"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"बाउंस कुंजियां"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"फ़िज़िकल कीबोर्ड सुलभता के लिए बाउंस कुंजियों को चालू करें"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"स्टिकी बटन"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"फ़िज़िकल कीबोर्ड सुलभता के लिए स्टिकी बटन को चालू करें"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"कीबोर्ड शॉर्टकट"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"शॉर्टकट की सूची दिखाएं"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"काम के प्रोफ़ाइल से जुड़े कीबोर्ड और टूल"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"इस्तेमाल किए जाने की अवधि के मुताबिक क्रम में लगाएं"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"पिछली बार इस्तेमाल किए जाने के मुताबिक क्रम में लगाएं"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ऐप के नाम से क्रम में लगाएं"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"पिछली बार उपयोग किया गया"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"पिछली बार कब इस्तेमाल किया गया"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"कभी नहीं"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"उपयोग समय"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"सुलभता"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"सरल उपयोग सेटिंग"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"जारी रखें"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"अभी नहीं"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ज़ूम करने की सुविधा की सेटिंग"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"तीन बार टैप करके आकार बढ़ाएं"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"शॉर्टकट की मदद से बड़ा करके देखें"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"तीन बार टैप और शॉर्टकट की मदद से बड़ा करके देखें"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> के बारे में जानकारी"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"खोलने के लिए, स्क्रीन पर दो उंगलियों से दो बार टैप करें"</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="860548190334486449">"ज़ूम करने की सुविधा को शुरू और बंद करने के लिए, स्क्रीन पर कहीं भी दो उंगलियों से दो बार टैप करें."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"सुलभता सुविधा का इस्तेमाल करने के लिए, स्क्रीन पर नीचे से ऊपर की ओर, तीन उंगलियों से स्वाइप करें.\n\nएक सुविधा से दूसरी सुविधा पर जाने के लिए, तीन उंगलियों से ऊपर की ओर स्वाइप करें और स्क्रीन को थोड़ी देर दबाकर रखें."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ठीक है"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"सुलभता बटन की सेटिंग"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"बटन सेटिंग"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> का शॉर्टकट"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"सुलभता बटन"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"सुलभता वाले जेस्चर (हाव-भाव)"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"दो उंगलियों से दो बार टैप करें"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"दो उंगलियों से दो बार टैप करें"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"स्क्रीन पर तुरंत दो उंगलियों से {0,number,integer} बार टैप करें"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीन पर तीन बार टैप करें"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"स्क्रीन पर तीन बार टैप करें"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीन पर जल्दी-जल्दी {0,number,integer} बार टैप करें. इस शॉर्टकट के इस्तेमाल से आपके डिवाइस की रफ़्तार धीमी हो सकती है"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"सुलभता बटन और हाथ के जेस्चर के बारे में ज़्यादा जानें"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"सुलभता बटन का इस्तेमाल करना. तीन बटन वाले नेविगेशन का इस्तेमाल करने पर, जेस्चर काम नहीं करता."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"सुलभता सुविधाओं को तुरंत ऐक्सेस करें"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"शुरू करने के लिए"</b>\n"1. सुलभता सेटिंग पर जाएं\n2. किसी सुविधा को चुनें और शॉर्टकट पर टैप करें\n3. इस सुविधा को ऐक्सेस करने के लिए, किसी बटन या हाथ के जेस्चर का इस्तेमाल करने का विकल्प चुनें"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"शुरू करने के लिए"</b>\n"1. सुलभता सेटिंग पर जाएं\n2. किसी सुविधा को चुनें और शॉर्टकट पर टैप करें\n3. चुनें कि आपको इस सुविधा का इस्तेमाल किस बटन से करना है"</string>
+    <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_size_title" msgid="5785110470538960881">"साइज़"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"पावर बटन से कॉल काटना"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"बड़ा माउस पॉइंटर"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"माउस पॉइंटर का साइज़ बढ़ाएं, ताकि वह सही से दिखे"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"सभी ऐप पर डार्क थीम लागू करें"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ऐप की डार्क थीम के बिना भी उन पर लागू होता है. ऐप में इन्वर्टेड कलर जैसी डिसप्ले की समस्याएं हो सकती हैं."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ऐनिमेशन हटाएं"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"स्क्रीन पर हलचल कम करें"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"मोनो ऑडियो"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यह आपके और किसी ऐप्लिकेशन या हार्डवेयर सेंसर के बीच होने वाले इंटरैक्शन को ट्रैक कर सकता है और आपकी तरफ़ से ऐप्लिकेशन के साथ इंटरैक्ट कर सकता है."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दें"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"अनुमति न दें"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"बंद करें"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"रद्द करें"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> को बंद करना है?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"\'<xliff:g id="STOP">%1$s</xliff:g>\' पर टैप करने से <xliff:g id="SERVICE">%2$s</xliff:g> बंद हो जाएगी."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करें"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"चालू रखें"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"क्या आपको <xliff:g id="SERVICE">%1$s</xliff:g> बंद करनी है?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"कोई सेवा इंस्‍टॉल नहीं है"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"कोई सेवा नहीं चुनी गई"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"कोई विवरण नहीं दिया गया."</string>
     <string name="settings_button" msgid="2195468788019730377">"सेटिंग"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"लाइट सेंसिटिविटी, फ़ोटोफ़ोबिया, गहरे रंग वाली थीम, माइग्रेन, सिरदर्द, रीडिंग मोड, नाइट मोड, स्क्रीन की चमक कम करें, व्हाइट पॉइंट"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"इस्तेमाल में आसानी, ऐक्सेस करने में आसानी, असिस्टेंस, असिस्टिव"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"देखना, सुनना, अंधा, बहरा, मोटर, डेक्स्टेरिटी, सहायक, असिस्टेंस, इस्तेमाल में आसानी, ऐक्सेस करने में आसानी, हैंड, सहायता"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"विंडो को ज़ूम करके देखने की सुविधा, ज़ूम करना, ज़ूम करने की सुविधा, कम दृष्टि, बड़ा करना, साइज़ बढ़ाना"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"कैप्शन, सबटाइटल, सीसी, Live Transcribe, कम सुनने वाला, सुनने में समस्या, रीयल-टाइम कैप्शनिंग (CART), बोली को लिखाई में बदलना, सबटाइटल"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"कलर कंट्रास्ट"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"मोटर, माउस"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"कान की मशीन, कम सुनने की समस्या, सुनने में समस्या, कॉकलीयर इंप्लांट, अन्य एंप्लिफ़िकेशन डिवाइस, साउंड प्रोसेसर"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"मोटर, माउस, एक्सटर्नल माउस, हेड माउस, अडैप्टिव माउस, व्हीलचेयर, जॉयस्टिक"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"कान की मशीन, कम सुनने वाला, सुनने में समस्या, कॉकलीयर इंप्लांट, एंप्लिफ़िकेशन डिवाइस, साउंड प्रोसेसर, पीएसएपी"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"कम सुनने वाला, सुनने में समस्या, कैप्शन, टेलीटाइप, टीटीवाई"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"तीन बटन वाला नेविगेशन"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"डेक्स्टेरिटी, मोटर, सीनियर, अर्थराइटिस, आरएसआई, स्ट्रोक, ट्रेमोर, मल्टिपल स्क्लिरोसिस, सेरब्रल पॉल्ज़ी, शेकिंग, रेपेटिटिव स्ट्रेन इंजरी, हैंड"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"डीले, डेक्स्टेरिटी, सीनियर"</string>
     <string name="print_settings" msgid="8519810615863882491">"प्रिंटिंग"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"बंद"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{प्रिंट करने की 1 सेवा चालू है}one{प्रिंट करने की # सेवा चालू है}other{प्रिंट करने की # सेवाएं चालू हैं}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"सबसे ज़्यादा बैटरी खर्च करने वाले ऐप्लिकेशन देखें"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"बैटरी को नुकसान से बचाने के लिए, चार्जिंग को ऑप्टिमाइज़ किया गया"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"बैटरी की लाइफ़ बढ़ाने के लिए, उसकी चार्जिंग को ऑप्टिमाइज़ किया गया है"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"बैटरी को नुकसान से बचाने के लिए, चार्जिंग को ऑप्टिमाइज़ किया गया"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"बैटरी लाइफ़ बढ़ाने के लिए, डॉक से जुड़े होने के दौरान चार्जिंग को ऑप्टिमाइज़ किया गया है"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"बैटरी को नुकसान से बचाने के लिए, चार्जिंग को ऑप्टिमाइज़ किया गया"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"बैटरी लाइफ़ बढ़ाने के लिए, डॉक से जुड़े होने के दौरान चार्जिंग को ऑप्टिमाइज़ किया गया है"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"पूरा चार्ज किया जा रहा है"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"बैटरी को नुकसान से बचाने के लिए, अगली बार डॉक से जुड़े होने पर चार्जिंग को ऑप्टिमाइज़ किया जाएगा"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"चार्जिंग रोके जाने के बारे में ज़्यादा जानें"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"चार्जिंग फिर से शुरू करें"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"बैकग्राउंड में ज़्यादा बैटरी इस्तेमाल करने वाली गतिवधियां शामिल हैं"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ऐप्लिकेशन से रोक हटाएं"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"अभी नहीं"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"पूरा चार्ज करें"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"चार्जर ऐक्सेसरी से जुड़ी समस्या"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"डिवाइस के साथ काम न करने वाले चार्जिंग सेटअप के बारे में ज़्यादा जानें"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"बैटरी मैनेजर"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ऐप्लिकेशन अपने आप प्रबंधित होने की सुविधा"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"अभी"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"बैटरी खर्च दिखाने वाला चार्ट"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"हर दिन का बैटरी खर्च दिखाने वाला चार्ट"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"हर घंटे का बैटरी खर्च दिखाने वाला चार्ट"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"बैटरी लेवल, <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> से <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> प्रतिशत है"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"पूरा चार्ज होने के बाद से, बैटरी खर्च"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> तक का बैटरी खर्च"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"पूरा चार्ज होने के बाद से, किसी डिवाइस के इस्तेमाल में बीता समय"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"आपातकालीन डायलिंग सिग्नल"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"आपातकालीन कॉल करने के दौरान व्‍यवहार सेट करें"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"बैकअप लें"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"चालू है"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"बंद है"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"सुरक्षित करें और पुनर्स्‍थापित करें"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"निजी डेटा"</string>
     <string name="backup_data_title" msgid="507663517227498525">"मेरे डेटा का बैकअप लें"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"नाम"</string>
     <string name="vpn_type" msgid="5533202873260826663">"टाइप"</string>
     <string name="vpn_server" msgid="2908816134941973935">"सर्वर पता"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP सुरक्षा (MPPE) चालू करें"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP सीक्रेट"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec पहचानकर्ता"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec पहले से शेयर की गई कुंजी"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec उपयोगकर्ता प्रमाणपत्र"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA प्रमाणपत्र"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec सर्वर प्रमाणपत्र"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"बेहतर विकल्प दिखाएं"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"डीएनएस सर्च डोमेन"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"डीएनएस सर्वर (उदाहरण 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"फ़ॉरवर्डिंग रूट्स (उदाहरण 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"उपयोगकर्ता का नाम"</string>
     <string name="vpn_password" msgid="1183746907642628127">"पासवर्ड"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"खाते की जानकारी सेव करें"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(इस्तेमाल नहीं किया)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(सर्वर की पुष्टि न करें)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(सर्वर से मिला)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"यह वीपीएन प्रकार हमेशा कनेक्ट नहीं रह सकता"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"हमेशा-चालू VPN सिर्फ़ संख्या वाले सर्वर पतों का समर्थन करता है"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"हमेशा-चालू VPN के लिए एक DNS सर्वर तय किया जाना चाहिए"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS सर्वर के पते हमेशा-चालू VPN के लिए संख्या रूप में होने चाहिए"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"डाली गई जानकारी \'वीपीएन हमेशा चालू रखें\' से मेल नहीं खाती"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"रद्द करें"</string>
     <string name="vpn_done" msgid="5137858784289564985">"खारिज करें"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"बिना वीपीएन वाले कनेक्शन ब्लॉक करें"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"वीपीएन कनेक्शन ज़रूरी है?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"यह वीपीएन सुरक्षित नहीं है. IKEv2 वीपीएन पर अपडेट करें"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"इस्तेमाल न किए जा सकने वाले वीपीएन को चालू नहीं किया जा सका."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"वह VPN प्रोफ़ाइल चुनें जिससे हमेशा कनेक्ट रहना है. नेटवर्क ट्रैफ़िक की अनुमति केवल इस VPN से कनेक्ट रहने पर ही दी जाएगी."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"कोई नहीं"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"हमेशा-चालू VPN के लिए, सर्वर और DNS दोनों के लिए आईपी पता होना ज़रूरी है."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"ऐंबर अलर्ट"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"बाल अपहरणों के बारे में बुलेटिन पाएं"</string>
     <string name="repeat_title" msgid="8676570486899483606">"दोहराएं"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"कॉल मैनेजर चालू करें"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"इस सेवा को कॉल करने का आपका तरीका प्रबंधित करने दें."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"कॉल मैनेजर"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"खतरे की चेतावनी"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"नेटवर्क ऑपरेटर"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ऐक्सेस पॉइंट नेम"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"भुगतान करें, टैप करें, भुगतान"</string>
     <string name="keywords_backup" msgid="707735920706667685">"बैकअप, बैक अप"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"जेस्चर"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"चेहरा, अनलॉक, अनुमति देना, साइन इन"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"फ़ेस अनलॉक, अनलॉक, पुष्टि करना, साइन इन करना, फ़िंगरप्रिंट, बायोमेट्रिक"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl वर्शन, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"चालू होने की ध्वनि"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"लाइव कैप्शन"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ऑडियो से अपने-आप कैप्शन बनना"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"फ़ोन के स्पीकर"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"टैबलेट के स्पीकर"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"डिवाइस के स्पीकर"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"तार वाले हेडफ़ोन"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"डिवाइस के साथ काम करने वाले मीडिया पर, ऑडियो का आनंद बेहतर तरीके से लिया जा सकता है"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"बंद है"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"हाल ही में की गई बातचीत को हटाया गया"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"बातचीत हटाई गई"</string>
     <string name="clear" msgid="5092178335409471100">"मिटाएं"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> मिटाएं"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"यहां ऐसी बातचीत दिखेंगी जो अहम हैं और जिनमें बदलाव किए गए हैं"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"जब किसी बातचीत को अहम के रूप में मार्क किया जाता है या उसमें कोई बदलाव किया जाता है, तो वह यहां दिखेगी. \n\nबातचीत की सेटिंग बदलने के लिए: \nपुल-डाउन शेड खोलने के लिए, स्क्रीन पर ऊपर से नीचे की ओर स्वाइप करें. इसके बाद, किसी बातचीत को दबाकर रखें."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"छोटा करें"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"बंद"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ऐप्लिकेशन पिन करने की सुविधा"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"किसी ऐप्लिकेशन को पिन करके, उसे तब तक स्क्रीन पर देखा जा सकता है, जब तक उसे अनपिन न कर दिया जाए. यह सुविधा कई चीज़ों के लिए इस्तेमाल की जा सकती है. उदाहरण के लिए, किसी भरोसेमंद दोस्त को डिवाइस पर सिर्फ़ कोई खास गेम खेलने की अनुमति देना."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"पिन किया गया ऐप्लिकेशन, दूसरे ऐप्लिकेशन से आपका निजी डेटा ऐक्सेस कर सकता है. \n\nऐप्लिकेशन पिन करने की सुविधा का इस्तेमाल करने के लिए: 	\n1. ऐप्लिकेशन पिन करने की सुविधा चालू करें 	\n2. खास जानकारी खोलें 	\n3. स्क्रीन पर सबसे ऊपर, ऐप्लिकेशन के आइकॉन पर टैप करें. इसके बाद, \'पिन करें\' पर टैप करें"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"पिन किया गया ऐप्लिकेशन, दूसरे ऐप्लिकेशन से आपका निजी डेटा ऐक्सेस कर सकता है. \n\nअगर आपको अपना डिवाइस सुरक्षित तरीके से किसी के साथ शेयर करना है, तो मेहमान उपयोगकर्ता प्रोफ़ाइल का इस्तेमाल करें. \n\nऐप्लिकेशन पिन करने की सुविधा का इस्तेमाल करने के लिए: 	\n1. ऐप्लिकेशन पिन करने की सुविधा चालू करें 	\n2. खास जानकारी खोलें 	\n3. स्क्रीन पर सबसे ऊपर, ऐप्लिकेशन के आइकॉन पर टैप करें. इसके बाद, \'पिन करें\' पर टैप करें"</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_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">"अनपिन करने से पहले पिन के लिए पूछें"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"इस्तेमाल न हुआ ऐप्लिकेशन मैनेज करें"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ऐप्लिकेशन की अनुमतियां हटाएं, डिवाइस में कुछ समय के लिए रहने वाली फ़ाइलें मिटाएं, सूचनाएं रोकें, और ऐप्लिकेशन संग्रहित करें"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"सभी ऐप्लिकेशन"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"इंस्‍टॉल किए गए ऐप"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"इंस्टैंट ऐप्लिकेशन"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"खाली"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ऐप्लिकेशन द्वारा उपयोग की गई मेमोरी"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{पिछले {time} में 1 ऐप्लिकेशन ने मेमोरी का इस्तेमाल किया}one{पिछले {time} में # ऐप्लिकेशन ने मेमोरी का इस्तेमाल किया}other{पिछले {time} में # ऐप्लिकेशन ने मेमोरी का इस्तेमाल किया}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"मेमोरी के इस्तेमाल की प्रोफ़ाइल बनाएं"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"मेमोरी के इस्तेमाल की प्रोफ़ाइल बनाने के लिए, सिस्टम के अतिरिक्त संसाधनों की ज़रूरत होगी."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"मेमोरी के इस्तेमाल की प्रोफ़ाइल बनाने की सुविधा बंद कर दी गई है"</string>
     <string name="running_frequency" msgid="7260225121706316639">"फ़्रीक्वेंसी"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"अधिकतम उपयोग"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"किसी डेटा का इस्तेमाल नहीं किया गया"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"दूसरे ऐप्लिकेशन के ऊपर दिखाएं"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"दूसरे ऐप्लिकेशन के ऊपर दिखाने की अनुमति दें"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"इस ऐप्लिकेशन को, उन सभी ऐप्लिकेशन के ऊपर दिखने की अनुमति दें जो इस्तेमाल में हैं. यह ऐप्लिकेशन देख पाएगा कि आपने कहां टैप किया है. इसके अलावा, स्क्रीन पर दिखने वाली चीज़ों को भी बदल पाएगा."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"मीडिया आउटपुट बदलें"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ऐप को मीडिया आउटपुट बदलने की अनुमति दें"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"इस ऐप्लिकेशन को यह चुनने की अनुमति दें कि कनेक्ट किया गया कौनसा डिवाइस, दूसरे ऐप्लिकेशन से ऑडियो या वीडियो चला सकता है. अनुमति मिलने पर, यह ऐप्लिकेशन उपलब्ध डिवाइसों की लिस्ट को ऐक्सेस कर सकता है. जैसे, हेडफ़ोन और स्पीकर. साथ ही, यह चुन सकता है कि ऑडियो या वीडियो को स्ट्रीम या कास्ट करने के लिए, कौनसा आउटपुट डिवाइस इस्तेमाल किया जाए."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"सभी फ़ाइलों का ऐक्सेस है"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"बोलकर चालू करने की सुविधा को बेहतर बनाएं"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"बोलकर चालू करने की सुविधा वाले मॉडल को बेहतर बनाने के लिए यह डिवाइस, प्राइवेट इंटेलिजेंस का इस्तेमाल करता है. सभी लोगों के लिए इस मॉडल को बेहतर बनाने और निजता बनाए रखने के लिए, ऐप्लिकेशन को खास जानकारी वाले ऐसे अपडेट मिल सकते हैं जो अलग-अलग लोगों से इकट्ठा किए गए हैं.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> डेटा खर्च की चेतावनी"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> डेटा सीमा"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> डेटा खर्च की चेतावनी / <xliff:g id="ID_2">^2</xliff:g> डेटा सीमा"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"डेटा खर्च को लेकर मोबाइल और इंटरनेट सेवा देने वाली कंपनी का हिसाब आपके डिवाइस के हिसाब से अलग हो सकता है."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी का इस्तेमाल किया गया डेटा हटा देता है"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> का इस्तेमाल किया गया"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"डेटा खर्च की चेतावनी सेट करें"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> पहले अपडेट किया गया"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> ने अभी-अभी अपडेट किया"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"अभी-अभी अपडेट किया गया"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"डेटा प्लान देखें"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"जानकारी देखें"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"डेटा बचाने की सेटिंग"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"पाबंदी के बिना डेटा इस्तेमाल"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"कितनी बैटरी खर्च की है"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"क्विक सेटिंग डेवलपर टाइल"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb अनुमतियों के लिए टाइम आउट बंद करें"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"adb से मिली अनुमतियों का अपने-आप रद्द होना बंद करें. ऐसा उन सिस्टम के लिए किया जा सकता है जिन्हें डिफ़ॉल्ट तौर पर सेट किए गए समय (सात दिन तक) या उपयोगकर्ता के सेट किए गए समय (कम से कम एक दिन) में दोबारा कनेक्ट नहीं किया गया है."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope ट्रेस"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"सेंसर बंद हैं"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"वर्क प्रोफ़ाइल सेटिंग"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"निजी ऐप्लिकेशन में, वर्क डायरेक्ट्री में सेव किए गए संपर्क खोजें"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ऑटोमैटिक भरने की सेवा"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"पासवर्ड अपने-आप भरने, मैनेज करने, और सेव करने की डिफ़ॉल्ट सेवा"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"पासवर्ड"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"पासवर्ड, पासकी, और डेटा सेवाएं"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"क्रेडेंशियल देने वाली अन्य सेवाएं"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# पासवर्ड}one{# पासवर्ड}other{# पासवर्ड}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"अपने-आप, भरना, अपने-आप भरने वाला, पासवर्ड"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"डेटा, पासकी, पासवर्ड"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"अपने-आप, भरना, अपने-आप भरना, डेटा, पासकी, और पासवर्ड"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"पासवर्ड, पासकी, और डेटा सेवाएं"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;क्या आपको सभी सुविधाएं बंद करनी हैं?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; साइन इन करने के बाद पासवर्ड, पासकी, और सेव की गई अन्य जानकारी अपने-आप नहीं भरी जा सकेगी"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;अपनी पसंदीदा सेवा के तौर पर &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; को चुनें. नए पासवर्ड, पासकी, और अन्य जानकारी अब से यहां सेव होगी. ऐसा हो सकता है कि &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; आपके डिवाइस की स्क्रीन पर मौजूद कॉन्टेंट का इस्तेमाल करे. इससे यह पता लगाया जा सकेगा कि कौनसी जानकारी अपने-आप भरी जा सकती है"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s का इस्तेमाल करना है?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"सिर्फ़ पांच सेवाएं जोड़ी जा सकती हैं"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"दूसरी सेवा जोड़ने के लिए, कम से कम एक सेवा बंद करें"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s आपकी स्क्रीन पर मौजूद जानकारी का इस्तेमाल करता है, ताकि अपने-आप भरने वाली जानकारी तय की जा सके."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"पासवर्ड, पासकी, और डेटा सर्विस चुनने की सीमा"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"जानकारी को ऑटोमैटिक तरीके से भरने के लिए, एक समय पर पांच पासवर्ड, पासकी, और डेटा सर्विस चालू रखी जा सकती हैं. कोई और सेवा जोड़ने के लिए, किसी मौजूदा सेवा को बंद करें."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"पासवर्ड, पासकी, और डेटा की सेवा चुनने के लिए तय सीमा"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"एक समय पर पांच पासवर्ड, पासकी, और डेटा की सेवाएं चालू रखी जा सकती हैं. कोई और सेवा जोड़ने के लिए, किसी मौजूदा सेवा को बंद करें."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"बंद करें"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ऑटोमैटिक भरने की सुविधा"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"लॉग की गई जानकारी का लेवल"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ऐप्लिकेशन के साथ काम करने के लिए किए जाने वाले बदलाव, सिर्फ़ डीबग करने लायक ऐप्लिकेशन में किए जा सकते हैं. डीबग करने लायक किसी ऐप्लिकेशन को इंस्टॉल करें और फिर से कोशिश करें."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"यह किसी दूसरी सेटिंग पर निर्भर है"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"खाता"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d खाते"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"डिवाइस का नाम"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"सामान्य जानकारी"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"कानूनी नोटिस और नियमों के पालन की जानकारी"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"इस ऐप्लिकेशन को, एनएफ़सी टैग के स्कैन होने पर लॉन्च होने की अनुमति दें.\nअगर आपने यह अनुमति दी है, तो टैग का पता चलने पर यह ऐप्लिकेशन एक विकल्प के तौर पर उपलब्ध होगा."</string>
     <string name="media_output_title" msgid="8283629315159510680">"मीडिया इस पर चलाएं"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> इस पर चलाएं"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ऑडियो इन डिवाइसों पर चलेगा"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"इस डिवाइस पर"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"कॉल के दौरान उपलब्ध नहीं है"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"इसके ज़रिए कॉल का जवाब दें"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"म्यूट"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"इस सेटिंग को चालू करने के लिए, पहले \"पावर बटन को दबाकर रखें\" को पावर मेन्यू में बदलें."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"नेटवर्क के बारे में जानकारी"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"फ़ोन पर मौजूद ऐप्लिकेशन, आपके डिवाइस का नाम ऐक्सेस कर सकते हैं. ब्लूटूथ डिवाइस जोड़ते समय, वाई-फ़ाई नेटवर्क से कनेक्ट करते समय या वाई-फ़ाई हॉटस्पॉट सेट अप करते समय भी दूसरे लोग आपके डिवाइस का नाम देख सकते हैं."</string>
     <string name="devices_title" msgid="649715719278562515">"डिवाइस"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"नेटवर्क चुनें"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"डिसकनेक्ट किया गया"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"नाम"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"रंग (ऐप्लिकेशन पर काम करने वाला)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"सेव करें"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"सिम का इस्तेमाल करें"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"यह सिम इस्तेमाल करें"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"बंद"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"इस सिम को बंद करने के लिए, सिम कार्ड निकालें"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> चालू करने के लिए टैप करें"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"सिम मिटाएं"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"पसंदीदा नेटवर्क टाइप"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"नेटवर्क संचालन मोड बदलें"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"पसंदीदा नेटवर्क टाइप"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"कीमतों की जानकारी के लिए आपको नेटवर्क सेवा देने वाली कंपनी से संपर्क करें."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ऐप्लिकेशन का डेटा खर्च"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"गलत नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. अनदेखा करें."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ऐक्सेस पॉइंट नेम"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"एपीएन"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> से कनेक्ट होने पर उपलब्ध नहीं है"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"क्या आपको <xliff:g id="CARRIER_NAME">%1$s</xliff:g> पर स्विच करना है?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"क्या आपको सिम कार्ड पर स्विच करना है?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> का इस्तेमाल करना है?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"एक समय में सिर्फ़ एक सिम चालू हो सकता है.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> पर स्विच करने से आपके <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> की सेवा रद्द नहीं की जाएगी."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"एक समय में एक ही ई-सिम चालू किया जा सकता है.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> पर स्विच करने से, आपको मिल रही <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> की सेवा रद्द नहीं की जाएगी."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"एक समय में सिर्फ़ एक सिम चालू हो सकता है.\n\nस्विच करने से, आपको मिल रही <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> की सेवा रद्द नहीं की जाएगी."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"एक समय पर दो सिम इस्तेमाल किए जा सकते हैं. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> को इस्तेमाल करने के लिए, दूसरी सिम को बंद करें."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> पर स्विच करें"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> को बंद करें"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"रहने दें"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"रद्द करें"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"स्‍विच करें"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"बंद करें"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"सिम चालू नहीं किया जा सका"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"सिम दोबारा चालू करने की कोशिश करें. अगर तब भी समस्या ठीक नहीं होती, तो डिवाइस को रीस्टार्ट करें."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"अपना सिम सेट अप करें"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"इस डिवाइस पर एक से ज़्यादा सिम इस्तेमाल करने के लिए, अपने मोबाइल नेटवर्क की प्राथमिकताएं सेट करें"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"अपने सिम लेबल करें"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"आपको ये लेबल, कॉल करते समय, मैसेज भेजते समय, और डेटा का इस्तेमाल करते समय दिखेंगे. ये लेबल, सेटिंग में भी मौजूद हैं"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"सिम का लेबल"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"लेबल"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"इस्तेमाल करने के लिए सिम चुनें"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"एक समय पर दो सिम इस्तेमाल किए जा सकते हैं"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"अपने मुख्य सिम सेट करें"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"वह सिम चुनें जिसका इस्तेमाल डिफ़ॉल्ट रूप से, कॉल, मैसेज, और डेटा के लिए किया जाएगा"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"आपके मुख्य सिम"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"कॉल"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"मैसेज"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"अपने-आप डेटा स्विच होना"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"नेटवर्क कवरेज या उसकी उपलब्धता के आधार पर डेटा का इस्तेमाल करें"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"सिर्फ़ डेटा"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"सेट अप करें"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"अगले पेज पर जाएं"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"मोबाइल नेटवर्क"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"फ़ोन नंबर"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"सिम का लेबल और रंग"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"नेटवर्क चालू करना"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी बदली जा रही है"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> चालू है"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"मोबाइल डेटा, कॉल से जुड़ी सुविधाएं, और मैसेज (एसएमएस) को बाद में इस्तेमाल करने के लिए, अपने नेटवर्क की सेटिंग पर जाएं"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"सिम"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"क्या आपको यह ई-सिम मिटाना है?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"इस सिम को मिटाने से, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> की सेवा इस डिवाइस से हट जाती है.\n\nहालांकि, <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> की सेवा रद्द नहीं की जाएगी."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"मिटाएं"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"सिम को हमेशा के लिए मिटाया जा रहा है…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"सिम हमेशा के लिए नहीं मिटाया जा सका"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"किसी गड़बड़ी की वजह से, इस सिम को हमेशा के लिए नहीं मिटाया जा सका.\n\nडिवाइस को रीस्टार्ट करें और फिर से कोशिश करें."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"डिवाइस से कनेक्ट करें"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"आपके डिवाइस से कनेक्ट होने के लिए, <xliff:g id="APPNAME">%1$s</xliff:g> ऐप्लिकेशन को किसी वाई-फ़ाई नेटवर्क से कुछ समय के लिए जुड़ना होगा"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"कोई डिवाइस नहीं मिला देख लें कि डिवाइस चालू हों और कनेक्ट किए जा सकते हों."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"मुसीबत के समय कॉल"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"आपकी मोबाइल और इंटरनेट सेवा देने वाली कंपनी, \'वाई-फ़ाई कॉलिंग\' के ज़रिए आपातकालीन कॉल करने की सुविधा नहीं देती है.\n आपातकालीन कॉल करने के लिए डिवाइस अपने आप माेबाइल नेटवर्क पर स्विच करता है.\n आपातकालीन कॉल सिर्फ़ उन्हीं इलाकाें में किया जा सकता है जहां नेटवर्क कवरेज हाे."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"कॉल की क्वालिटी सुधारने के लिए वाई-फ़ाई का इस्तेमाल करें"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"बैक अप कॉलिंग"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"अगर <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> उपलब्ध नहीं है या रोमिंग में है, तो <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> से कॉल करने के लिए, मोबाइल डेटा वाले सिम का इस्तेमाल करें."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"दूसरे सिम से कॉल करना"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"आने वाले मल्टीमीडिया मैसेज (एमएमएस)"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"मल्टीमीडिया मैसेज (एमएमएस) नहीं भेज सकते"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"मोबाइल डेटा बंद होने पर <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> से मल्टीमीडिया मैसेज (एमएमएस) की सुविधा चालू करने के लिए टैप करें"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"आपके काम से जुड़ी नीति की जानकारी"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"वे सेटिंग जिन्हें आपका आईटी एडमिन मैनेज करता है"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16 केबी वाले पेज साइज़ से चालू करें"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16 केबी पेज साइज़ वाले कर्नेल के ज़रिए चालू करें"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16 केबी वाले पेजों के साथ काम करने वाले कर्नेल के ज़रिए चालू करना है?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"चेतावनी: ऐसा हो सकता है कि इस मोड के साथ कुछ ऐप्लिकेशन काम न करें. पुष्टि होने के बाद, डिवाइस फिर चालू हो जाएगा."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 केबी वाले पेजों के साथ काम करने वाले कर्नेल के ज़रिए चालू करना है?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"पुष्टि होने के बाद, डिवाइस फिर चालू हो जाएगा."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"कर्नेल को 16 केबी पेज साइज़ के साथ काम करने वाले कर्नेल में अपडेट नहीं किया जा सका."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"बदलाव लागू किया जा रहा है"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"गड़बड़ी की रिपोर्ट हैंडल करने वाला"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"तय करें कि आपके डिवाइस पर कौनसा ऐप्लिकेशन गड़बड़ी की रिपोर्ट के शॉर्टकट का इस्तेमाल करता है."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"निजी"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"मीडिया प्लेयर \'फटाफट सेटिंग\' में खुला रहता है, ताकि आप मीडिया को तुरंत वहीं से शुरू कर सकें जहां आपने इसे छोड़ा था"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"लॉक स्क्रीन पर मीडिया दिखाएं"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"मीडिया प्लेयर, लॉक स्क्रीन पर खुला रहता है, ताकि मीडिया को तुरंत वहीं से शुरू किया जा सके जहां आपने इसे छोड़ा था"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"मीडिया से जुड़े सुझाव दिखाएं"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant की मदद से मीडिया के सुझाव दिखाएं"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"आपकी गतिविधि के हिसाब से"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"मीडिया प्लेयर को छिपाएं"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"मीडिया प्लेयर दिखाएं"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"सिम"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ई-सिम"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ई-सिम"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"चालू है"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"बंद है"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"कॉल"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"मैसेज (एसएमएस)"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"डिवाइस के साथ काम करने वाले मीडिया पर, ऑडियो का आनंद बेहतर तरीके से लिया जा सकता है"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"सिर के हिलने को ट्रैक करें"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"जब आपका सिर उस तरफ़ घूमता है जहां से आवाज़ आ रही है, तब ऑडियो की आवाज़ ज़्यादा बेहतर सुनाई देती है"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"सिंक करने की अनुमतियां"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"अपनी <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> के लिए वही ऐप्लिकेशन अनुमतियां दें जो आपने <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> पर दी हैं"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"फ़ोन से अनुमतियों को सिंक करें"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"अपनी स्मार्टवॉच के लिए वही ऐप्लिकेशन अनुमतियां दें जो आपने इस फ़ोन पर दी हैं"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ऑडियो डिवाइस का टाइप"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"कोई जानकारी नहीं है"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"स्पीकर"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"सामान्य"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ज़्यादा"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"इस ऐप्लिकेशन को सिर्फ़ एक विंडो में खोला जा सकता है"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"चालू है"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"बंद है"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"बंद है"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"बंद है"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"चालू है"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"बंद है"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"चालू है"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"बंद है"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"इससे हल्के रंग की स्क्रीन गहरे रंग में और गहरे रंग की स्क्रीन हल्के रंग में बदल जाती है"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"स्क्रीन पर ज़ूम इन करें"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"बंद है"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"बंद है"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"चालू है"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"बंद है"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"चालू है"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"अब पासवर्ड सेट अप हो गया"</string>
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index b3545d5..f56d73c 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Nakon 1 minute"</item>
     <item msgid="1574040255478150028">"Nakon 5 minuta"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index cd0954f..bdb36a9 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Sad ste razvojni programer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nema potrebe, već ste razvojni programer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Najprije omogućite opcije za razvojne programere."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Samo korisnici s administratorskim pravima mogu pristupiti postavkama razvojnog programera."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sustav"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Upotrebljava se"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ne radi"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Prednji se zaslon uključuje kad preklopite uređaj"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Samo igre, videozapisi i drugo"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Prednji zaslon uključuje se za aplikacije koje sprječavaju mirovanje zaslona"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Za nastavak prijeđite prstom prema gore"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Sklopite telefon i prijeđite prstom prema gore na prednjem zaslonu da biste nastavili upotrebljavati aplikaciju ili pričekajte nekoliko sekundi da se zaslon zaključa"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nikad"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Prednji se zaslon zaključava kad preklopite uređaj"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Koristi automatsko zakretanje"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Povezano"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Melodija zvona i alarmi"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zvuk tijekom poziva"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Mediji"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Obavijesti i drugi zvukovi sustava"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Zvukovi medija i sustava"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Obavijesti"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Prema zadanim postavkama audioizlaz se određuje na temelju pojedinačnih aplikacija"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Neimenovani Bluetooth uređaj"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Pretraživanje"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth je uključen"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Prikaži sve"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Pogledajte sve"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pisaljka"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pritisak na stražnji gumb"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (poslovni profil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Povežite se s audiostreamom LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Audiostreamovi u blizini"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audiostreamovi"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Povežite se s audiostreamom pomoću QR koda"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nema nađenih audiostreamova u blizini."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Da biste odabrali jezik za svaku aplikaciju, otvorite postavke jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saznajte više o jezicima aplikacije"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Želite li jezik sustava promijeniti na %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Želite li dodati %s u preferirane jezike?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Time aplikacije i web-lokacije obavještavate da preferirate taj jezik."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Promijenit će se postavke uređaja i regionalne preferencije."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Promijeni"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nije dostupan"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Subota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ako aplikacija ne podržava regionalne preferencije, aplikacija će upotrebljavati zadane postavke države/jezika."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Saznajte više o postavkama jezika."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Dodatne preferencije"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Željeni rod obraćanja"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Postavite rod u kojem želite da vam se obraća"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Kako bi pristup bio personalizira, aplikacije vam se mogu obraćati u rodu koji odaberete."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nije specificirano"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski rod"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Muški rod"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutralno"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Želite li ukloniti odabran jezik?}one{Želite li ukloniti odabran jezik?}few{Želite li ukloniti odabrana jezika?}other{Želite li ukloniti odabranih jezika?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst će se prikazivati na nekom drugom jeziku."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ne možete ukloniti sve jezike"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokacija"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Koristi lokaciju"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Isključeno"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Uključeno – # aplikacija ima pristup lokaciji}one{Uključeno – # aplikacija ima pristup lokaciji}few{Uključeno – # aplikacije imaju pristup lokaciji}other{Uključeno – # aplikacija ima pristup lokaciji}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Uključeno/# aplikacija ima pristup lokaciji}one{Uključeno/# aplikacija ima pristup lokaciji}few{Uključeno/# aplikacije imaju pristup lokaciji}other{Uključeno/# aplikacija ima pristup lokaciji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Učitavanje…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije s dopuštenjem za uređaje u blizini mogu odrediti približni položaj povezanih uređaja."</string>
     <string name="location_settings_footer_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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Saznajte više o postavkama lokacije."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saznajte više o postavkama lokacije"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Za izmjenu idite na Postavke &gt; Sigurnost i privatnost &gt; Kontrole privatnosti"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Za najbolje rezultate koristite zaštitu zaslona s certifikatom Made for Google. Otisak prsta vašeg djeteta možda neće funkcionirati s drugim zaštitama zaslona."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Otključavanje satom"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Kad postavite otključavanje licem i otključavanje otiskom prsta, telefon će tražiti vaš otisak prsta kad nosite masku ili se nalazite u tamnom prostoru.\n\nMožete otključati pomoću sata kada se vaše lice ili otisak prsta ne prepoznaju."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Možete otključati pomoću sata kada se vaš otisak prsta ne prepozna."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Možete otključati pomoću sata kada se vaše lice ili otisak prsta ne prepoznaju."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Kad postavite otključavanje licem i otključavanje otiskom prsta, telefon će tražiti vaš otisak prsta kad nosite masku ili se nalazite u tamnom prostoru.\n\nOtključavanje satom još je jedan praktičan način otključavanja telefona, primjerice kada su vam prsti mokri ili se vaše lice ne prepozna."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Otključavanje satom još je jedan praktičan način otključavanja telefona, primjerice kada se vaš otisak prsta ne prepozna."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Otključavanje satom još je jedan praktičan način otključavanja telefona, primjerice kada se vaše lice ne prepozna."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Otiskom prsta ili satom"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Licem ili satom"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Licem, otiskom prsta ili satom"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano je lice i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodani su lice, otisak prsta i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodani su lice, otisci prstiju i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Otključavanje apl. Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Sat je dodan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Postavite telefon"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Otključavanje satom još je jedan praktičan način otključavanja ovog telefona, primjerice kad su vam prsti mokri ili kad uređaj ne prepoznaje vaše lice.\n\nSat možete upotrijebiti za otključavanje telefona u sljedećim situacijama:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne sad"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nastavi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Više"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Način rada"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Sat mora biti otključan, na vašoj ruci i unutar dometa ovog telefona. Nećete trebati ponovo otključavati sat dok vam je na ruci."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kad se ovaj telefon otključa, dobit ćete obavijest na satu. Ako se otključa kad to ne želite, dodirnite obavijest da biste ponovno zaključali telefon."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontrola je u vašim rukama"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Sat možete ukloniti iz značajke otključavanja satom kad god želite u postavkama"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dodirnite obavijest"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Prijeđite prstom prema gore na zaključanom zaslonu"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Odaberite svoj sat"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupni satovi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Odustani"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Spremni ste!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Pomoću sata sada možete otključati ovaj telefon kad prijeđete prstom prema gore po zaključanom zaslonu ili kad dodirnete obavijest"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotovo"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Otključavanje satom"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Pomoću sata možete otključati ovaj telefon kad prijeđete prstom prema gore po zaključanom zaslonu ili kad dodirnete obavijest"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Da biste upotrebljavali otključavanje satom, vaš sat mora biti otključan, na vašoj ruci, unutar dometa i povezan s ovim telefonom. Ako je veza prekinuta, morat ćete otključati telefon da biste mogli upotrebljavati otključavanje satom.\n\nImajte na umu:\nne možete imati nekoliko povezanih satova istovremeno. Da biste dodali neki drugi sat, najprije uklonite trenutačni."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o otključavanju satom"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Uklonite sat"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebno je postavljanje"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sigurnost"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privatnost"</string>
     <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="2274405892301976238">"Neka privatne aplikacije ostanu zaključane i skrivene"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Držite privatne aplikacije u zasebnom prostoru koji možete sakriti ili zaključati"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Zaključavanje privatnog prostora"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Upotreba zaključavanja zaslona uređaja"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Otključavanje licem i otiskom prsta"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Otključavanje otiskom prsta"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Otključavanje licem"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Dodirnite za postavljanje"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Otključavanje otiskom prsta za privatni prostor"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Otključavanje licem za privatni prostor"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Načini otključavanja"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Isto kao i zaključavanje zaslona na uređaju"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Odabrati novo zaključavanje za privatni prostor?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automatsko zaključavanje"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Automatsko zaključavanje privatnog prostora"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Možete automatski zaključati svoj privatni prostor ako niste koristili uređaj neko vrijeme"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Svaki put kad se uređaj zaključa"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Nakon pet minuta neaktivnosti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nikad"</string>
+    <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_delete_title" msgid="3075645119800272800">"Brisanje privatnog prostora"</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="private_space_unlocked" msgid="9091600948712932046">"Privatni prostor je otključan"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Postavi zaključavanje zaslona"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Za upotrebu privatnog prostora postavite zaključavanje zaslona na ovom uređaju"</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="private_space_cancel_label" msgid="379259667396956886">"Odustani"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Postavi"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Postavljanje privatnog prostora"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Držite privatne aplikacije u zasebnom prostoru koji možete sakriti ili zaključati"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Kako to funkcionira"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Privatnom prostoru možete pristupiti s dna popisa aplikacija"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikacije u privatnom prostoru zaštićene su zaključavanjem"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Obavijesti aplikacija u privatnom prostoru sakrivene su kada je on zaključan"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Aplikacije u vašem privatnom prostoru neće se prikazati u Upravitelju dopuštenja, na nadzornoj ploči za privatnost i u drugim postavkama kada je privatni prostor zaključan.\n\nVaš se privatni prostor ne može premjestiti na novi uređaj. Trebat ćete postaviti drugi privatni prostor ako ga želite koristiti na drugom uređaju.\n\nSvatko tko poveže vaš uređaj s računalom ili instalira štetne aplikacije na vaš uređaj moći će pristupiti vašem privatnom prostoru."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"U tijeku je postavljanje privatnog prostora…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Obavijesti aplikacija u privatnom prostoru sakrivene su kada je on zaključan"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Otključajte privatni prostor da biste dijelili fotografije ili datoteke iz aplikacija privatnog prostora"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Neke su aplikacije već instalirane u vašem privatnom prostoru"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Postavljanje privatnog prostora nije uspjelo"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Pokušajte ponovo"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Koristiti zaključavanje zaslona za otključavanje?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Privatni prostor možete otključati na isti način kao što otključavate uređaj ili možete odabrati drugi način zaključavanja"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Koristi zaključavanje zaslona"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Odaberite novi način otključavanja"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Sve je spremno!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Da biste pristupili privatnom prostoru, otvorite popis aplikacija, a zatim se pomaknite prema dolje"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Gotovo"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Pomaknite se prema dolje da biste pronašli privatni prostor"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Odaberite zaključavanje za svoj privatni prostor"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Privatni prostor možete otključati otiskom prsta. Iz sigurnosnih razloga ta opcija zahtijeva dodatno zaključavanje."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Postavljanje PIN-a za privatni prostor"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Postavljanje zaporke za privatni prostor"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Postavljanje uzorka za privatni prostor"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Prikazivanje privatnog prostora (nije finalni UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Otvorite aplikaciju Postavke"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Dodirnite Sigurnost i privatnost &gt; Privatni prostor &gt; Sakrivanje privatnog prostora kad je zaključan"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Isključivanje sakrivanja privatnog prostora kad je zaključan"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Napomena za Googleove zaposlenike: razvoj te značajke još je u tijeku"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Možda ćete ovaj pristupni kôd trebati unijeti i na drugi uređaj."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrdite za uparivanje s koordiniranim skupom"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dopuštam pristup kontaktima i povijesti poziva"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Dopusti i pristup kontaktima i povijesti poziva"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Podaci će se koristiti za najave poziva i drugo"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nije moguće povezati se na <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupni uređaji"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"U načinu rada u zrakoplovu"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Obavijesti me o javnim mrežama"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Obavještava vas kada je dostupna javna mreža visoke kvalitete"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Dopusti WEP mreže"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP je stariji sigurnosni protokol koji je manje siguran"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Vaš mobilni operater ne dopušta WEP mreže jer su manje sigurne"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Automatski uključi Wi-Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi će se automatski ponovo uključiti u blizini spremljenih mreža visoke kvalitete, poput vaše kućne mreže"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nije dostupno jer je lokacija isključena. Uključite "<annotation id="link">"lokaciju"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Traženje Wi‑Fija omogućuje aplikacijama i uslugama da bilo kada traže Wi‑Fi mreže, čak i kada je Wi‑Fi isključen. Tako se primjerice mogu poboljšati značajke i usluge koje se temelje na lokaciji."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Uključi"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Uključeno je traženje Wi‑Fija"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ova mreža koristi stariji sigurnosni protokol koji je manje siguran"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Mreža <xliff:g id="NAME">%1$s</xliff:g> blokirana"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ova mreža koristi stariji sigurnosni protokol naziva WEP, koji je manje siguran. Da biste se svejedno povezali, možete dopustiti WEP mreže."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Vaš mobilni operater ne dopušta da se povežete s ovom mrežom jer ona koristi stariji sigurnosni protokol koji je manje siguran"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Dopusti WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zatvori"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Napredne opcije"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Padajući popis Napredne opcije"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"proširi"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani na Wi‑Fi-ju"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Nemoj više prikazivati"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Poveži"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi uključen"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano s <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Povezivanje s mrežom <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Povezivanje…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Povezivanje s mrežom nije uspjelo"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Zaboravi"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Izmijeni"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Zaboravljanje mreže nije uspjelo"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Spremi"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Spremanje mreže nije uspjelo"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Odustani"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobilni podaci"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – punjenje"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – punjenje"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Veza žarišne točke"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Jačina veze"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Spremljene mreže"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Zaporka nije postavljena"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Naziv žarišne točke"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Zaporka žarišne točke"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Frekvencija pristupne točke"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Automatski isključi žarišnu točku"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kada nema povezanih uređaja"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Proširi kompatibilnost"</string>
@@ -1008,8 +1149,10 @@
     <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">"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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Onemogućivanje zadanog broja sličica u sekundi za igre"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Onemogućite ograničavanje maksimalnog broja sličica u sekundi za igre pri <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Glatki prikaz"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Značajka Pozornost na zaslonu pomoću prednje kamere otkriva gleda li osoba u zaslon. Funkcionira na uređaju i slike se nikad ne pohranjuju i ne šalju Googleu."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Uključivanje pozornosti na zaslonu"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Zaslon ostaje uključen sve dok ga gledate"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Dugotrajnije automatsko isključivanje zaslona trošit će veću količinu baterije."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparat je zaključan"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Fotoaparat mora biti otključan za prepoznavanje lica"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera mora biti otključana da bi pozornost na zaslonu funkcionirala"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (utor za SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (utor za SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primarno)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Da biste je vidjeli, odaberite spremljenu mrežu"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL verzija"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Razina baterije"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Zajedničko"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Zajedničke postavke"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Spremi"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Odustani"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Polje naziva ne može biti prazno."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ne može biti prazan."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC polje mora imati 3 znamenke."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Polje MNC mora imati 2 ili 3 znamenke."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Mobilni operater ne dopušta dodavanje APN-ova vrste %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC polje mora biti važeće."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Vraćanje zadanih APN postavki"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Vrati na zadano"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Poništavanje zadanih postavki APN-a dovršeno."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Poništi"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth i Wi‑Fi su poništeni"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Brisanje eSIM-ova"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Time se neće poništiti ugovori o mobilnim uslugama. Za preuzimanje zamjenskih SIM-ova obratite se mobilnom operateru."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Poništi postavke"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Želite li poništiti sve postavke mreže? Ta se radnja ne može poništiti."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Želite li vratiti sve postavke mreže na zadano i izbrisati eSIM-ove? Ta se radnja ne može poništiti."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Poništiti?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Vraćanje mreže na zadano nije dostupno za ovog korisnika"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Postavke mreže vraćene su na zadano."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Brisanje SIM-ova nije uspjelo"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-ovi se ne mogu izbrisati zbog pogreške.\n\nPonovo pokrenite uređaj i pokušajte još jednom."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Brisanje svih podataka (vraćanje na tvorničke postavke)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Izbriši sve podatke"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"glazbu"</li>\n<li>"fotografije"</li>\n<li>"ostale korisničke podatke."</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-ove"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Time se neće otkazati vaš ugovor o mobilnoj usluzi."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Izbrisat će se svi vaši osobni podaci i preuzete aplikacije. Ta se radnja ne može poništiti."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Izbrisat će se svi vaši osobni podaci, uključujući preuzete aplikacije i SIM-ove. Ta se radnja ne može poništiti."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Želite li izbrisati sve podatke?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Vraćanje na tvorničko stanje nije dostupno za ovog korisnika"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Brisanje"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Žarišna točka, USB, Bluetooth, ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internetska veza ne dijeli se s drugim uređajima"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Isključeno"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Modemsko povezivanje"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nemoj koristiti Wi‑Fi žarišnu točku"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Dijeli internet samo putem USB-a"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Dijeli internet samo putem Bluetootha"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Dijeli internet samo ethernetom"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Dijeli internet samo putem USB-a i Bluetootha"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Dijeli internet samo USB-om i Bluetoothom"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Dijeli internet samo Bluetoothom i ethernetom"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Dijeli internet samo USB-om, Bluetoothom i ehernetom"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Dijeljenje veze USB-om"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Dijeljenje veze Bluetoothom"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Dijeljenje veze ethernetom"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Pomoću žarišne točke i modemskog povezivanja drugi se uređaji mogu povezati s internetom putem vašeg Wi-Fija ili podatkovne veze vašeg mobilnog uređaja. Žarišnu točku mogu izraditi i aplikacije radi dijeljenja sadržaja s uređajima u blizini."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoć"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilna mreža"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilni paket"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS aplikacija"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Želite li promijeniti aplikaciju za SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Želite li upotrijebiti aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umjesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> kao svoju aplikaciju za SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Želite li zamijeniti Wi‑Fi assistanta?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Želite li upotrebljavati aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g>, a ne <xliff:g id="CURRENT_APP">%2$s</xliff:g>, za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Želite li upotrebljavati aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nepoznati operater SIM kartice"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nema poznatu web-lokaciju za pružanje niza usluga"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Umetnite SIM karticu i pokrenite ponovo"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Povežite se s internetom"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavni zahtjevi za lokaciju"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za poslovni profil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Dopuštenja za pristup lokaciji"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Izbriši pristup"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrole"</string>
     <string name="force_stop" msgid="2681771622136916280">"Prisilno zaustavi"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhiviraj"</string>
+    <string name="restore" msgid="7622486640713967157">"Vrati"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Ukupno"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Veličina aplikacije"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB aplikacija za pohranu"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nije moguće izračunati veličinu paketa."</string>
     <string name="version_text" msgid="7628938665256107608">"verzija <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Premjesti"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhiviranje nije uspjelo"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arhivirano: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Vraćanje nije uspjelo"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Vraćanje aplikacije <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"U tijeku je neko drugo premještanje."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nema dovoljno prostora za pohranu."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikacija ne postoji."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Dostupna zaslonska tipkovnica"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Upravljajte tipkovnicama na zaslonu"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcije"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tipkovnica"</string>
     <string name="show_ime" msgid="4334255501724746849">"Upotreba tipkovnice na zaslonu"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Zadrži na zaslonu dok je fizička tipkovnica aktivna"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Sprečavanje ponovljenih unosa"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Omogućite tipke za sprečavanje ponovljenih unosa za pristupačnost fizičke tipkovnice"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Ljepljive tipke"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Omogućite ljepljive tipke za pristupačnost fizičke tipkovnice"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tipkovni prečaci"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaži popis prečaca"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tipkovnice i alati radnog profila"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Poredaj po vremenu upotrebe"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Poredaj po zadnjoj upotrebi"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Poredaj po nazivu aplikacije"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Posljednja upotreba"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Posljednja upotreba"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nikad"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Vrijeme upotrebe"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Pristupačnost"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Postavke dostupnosti"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ipak nastavi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Odustani"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Postavke povećavanja"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Povećavanje trostrukim dodirom"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Povećanje pomoću prečaca"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Povećanje pomoću prečaca i trostrukog dodira"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"O usluzi <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Dvaput 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="860548190334486449">"Da biste pokrenuli i zaustavili povećavanje, dvaput 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Da biste koristili značajku pristupačnosti, 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_button" msgid="2031773187678948436">"Shvaćam"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Postavke gumba za pristupačnost"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Postavke gumba"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Prečac za uslugu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Gumb za pristupačnost"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Pokret za pristupačnost"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dvaput dodirnite zaslon dvama prstima"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dvaput dodirnite zaslon dvama prstima"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Brzo dodirnite zaslon dvama prstima ovoliko puta: {0,number,integer}"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Triput dodirnite zaslon"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Saznajte više o gumbu i pokretu za pristupačnost"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Upotreba gumba za Pristupačnost. Pokret nije dostupan uz navigaciju pomoću tri gumba."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Brz pristup značajkama pristupačnosti"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Da biste započeli:"</b>\n"1. Otvorite postavke pristupačnosti.\n2. Odaberite značajku i dodirnite prečac.\n3. Odaberite hoćete li za pristup značajci koristiti gumb ili pokret."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Da biste započeli:"</b>\n"1. Otvorite postavke pristupačnosti.\n2. Odaberite značajku i dodirnite prečac.\n3. Odaberite gumb za pristup značajci."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Da biste započeli&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Otvorite postavke pristupačnosti&lt;br/&gt; {1,number,integer}. Odaberite značajku i dodirnite prečac&lt;br/&gt; {2,number,integer}. Odaberite želite li upotrebljavati gumb ili pokret za pristup značajki&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Da biste započeli&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Otvorite postavke pristupačnosti&lt;br/&gt; {1,number,integer}. Odaberite značajku i dodirnite prečac&lt;br/&gt; {2,number,integer}. Odaberite gumb za pristup značajci&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Upotreba gumba ili pokreta"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokacija"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Veličina"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Tipka za uklj. prekida poziv"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Veliki pokazivač miša"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Povećajte vidljivost pokazivača miša"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Promjena boje aplikacija u tamnu"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Za aplikacije bez vlastite tamne teme. Neke aplikacije mogu imati poteškoće, npr. preokrenute boje."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Uklanjanje animacija"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Smanjite pokrete na zaslonu"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monozvuk"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Može pratiti vaše interakcije s aplikacijama ili senzorom uređaja i stupati u interakciju s aplikacijama u vaše ime."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dopusti"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odbij"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Zaustavi"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Odustani"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Želite li zaustaviti uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ako dodirnete <xliff:g id="STOP">%1$s</xliff:g>, zaustavit će se <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Isključi"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ostavi uključeno"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Želite li isključiti uslugu mobilnog operatera <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nema instaliranih usluga"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nije odabrana nijedna usluga"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije dan opis."</string>
     <string name="settings_button" msgid="2195468788019730377">"Postavke"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"osjetljivost na svjetlo, fotofobija, tamna tema, migrena, glavobolja, način za čitanje, noćni način rada, smanjenje svjetline, bijela točka"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Lakoća upotrebe, lakoća pristupa, pomoć, asistivno"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slijepi, gluhi, motorički, spretnost, pomoćno, pomoć, jednostavna upotreba, jednostavan pristup, ruka, pomoć"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Alat za povećanje prozora, zumiranje, povećavanje, slabovidnost, povećati, uvećati"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Titlovi, Automatska transkripcija, nagluhost, gubitak sluha, računalni prijepis u stvarnom vremenu, pretvaranje govora u tekst"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontrast boja"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, miš"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, nagluha osoba, gubitak sluha, umjetne pužnice, uređaji za pojačanje zvuka, uređaji za obradu zvuka"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorički, miš, vanjski miš, naglavni miš, adaptivni miš, invalidska kolica, igraća palica"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušna pomagala, nagluhost, gubitak sluha, umjetne pužnice, uređaji za pojačanje zvuka, uređaji za obradu zvuka, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"nagluhost, gubitak sluha, titlovi, teleprinter, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri gumba"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"spretnost, motorički, starija osoba, artritis, učestala traumatska istegnuća zgloba, moždani udar, tremor, multipla skleroza, cerebralna paraliza, drhtavica, ruka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"odgoda, spretnost, starija osoba"</string>
     <string name="print_settings" msgid="8519810615863882491">"Ispis"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Isključeno"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Uključena je 1 usluga ispisa}one{Uključena je # usluga ispisa}few{Uključene su # usluge ispisa}other{Uključeno je # usluga ispisa}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Pogledajte aplikacije s najvećom potrošnjom baterije"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Punjenje se optimizira radi zaštite baterije"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Radi produljenja vijeka trajanja baterije punjenje se optimizira"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Punjenje se optimizira radi zaštite baterije"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Radi produljenja trajanja baterije, punjenje se optimizira dok je uređaj na priključnoj stanici"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Punjenje se optimizira radi zaštite baterije"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Radi produljenja trajanja baterije, punjenje se optimizira dok je uređaj na priključnoj stanici"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Punjenje do kraja"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Radi zaštite baterije, punjenje će se optimizirati kada tablet sljedeći put bude na priključnoj stanici"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Saznajte više o pauziranom punjenju"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Nastavi s punjenjem"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Uključuje aktivnost u pozadini s visokom potrošnjom energije"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ukloni"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Odustani"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Napuni do kraja"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem s priborom za punjenje"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Saznajte više o punjenju pomoću nekompatibilnog adaptera"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Automatski upravljaj aplikacijama"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"sad"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Grafikon potrošnje baterije"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafikon dnevne potrošnje baterije"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafikon potrošnje baterije po satima"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Postotak razine baterije od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Potrošnja baterije od zadnjeg potpunog punjenja"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Potrošnja baterije za <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Vrijeme upotrebe od zadnjeg potpunog punjenja"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Postavite način ponašanja za hitni poziv"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sigurnosno kopiranje"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Uključeno"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Isključeno"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sigurnosna kopija i vraćanje"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Osobni podaci"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sigurnosno kopiranje"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Naziv"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Vrsta"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresa poslužitelja"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP enkripcija (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"tajna L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikator"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec unaprijed dijeljeni ključ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec korisnički certifikat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA certifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec certifikat poslužitelja"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Prikaži napredne opcije"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domene DNS pretraživanja"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS poslužitelji (npr. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rute prosljeđivanja (npr. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Korisničko ime"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Zaporka"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Spremi podatke o računu"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ne koristi se)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne potvrđuj poslužitelj)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(primljen od poslužitelja)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ova vrsta VPN-a ne podržava stalnu vezu"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Uvijek uključeni VPN podržava samo numeričke adrese poslužitelja"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Za uvijek uključeni VPN mora biti naveden DNS poslužitelj"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adrese DNS poslužitelja za uvijek uključeni VPN moraju biti numeričke"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Uneseni podaci ne podržavaju uvijek uključeni VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Odustani"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Odbaci"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj veze bez VPN-a"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Zahtijevati VPN vezu?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nije sigurno. Ažurirajte na IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Pokretanje nepodržanog VPN-a nije uspjelo."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Odaberite VPN profil s kojim ćete uvijek biti povezani. Mrežni promet bit će dopušten samo kada ste povezani s tom VPN mrežom."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ništa"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Uvijek uključena VPN mreža zahtijeva IP adresu za poslužitelj i za DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER upozorenja"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Primanje biltena o otmicama djece"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ponovi"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Omogući Upravitelj poziva"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Dopusti usluzi upravljanje načinom uspostavljanja poziva."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Upravitelj poziva"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Hitna upozorenja putem bežične mreže"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Mrežni operateri"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Pristupne točke"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"novčanik"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"plati, dodir, plaćanja"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sigurnosno kopirati, sigurnosna kopija"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"pokret"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"otključavanje, lice, autentifikacija, prijava"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"lice, otključavanje, autentifikacija, prijava, otisak prsta, biometrijski"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI, MEID, min, verzija PRL-a, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Uključi zvukove"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Automatski titlovi"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatski titlovi za medije"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Zvučnici telefona"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Zvučnici tableta"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Zvučnici uređaja"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Žičane slušalice"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Zvuk s kompatibilnih medija postaje realističniji"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Isključeno"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Što želite da prikazuje vaš zaključani zaslon?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nedavni razgovori uklonjeni"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Razgovor uklonjen"</string>
     <string name="clear" msgid="5092178335409471100">"Izbriši"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Izbriši konverziju <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Ovdje će se prikazivati prioritetni i izmijenjeni razgovori"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Ovdje će se prikazivati razgovori koje označite kao prioritetne ili razgovori u koje unesete bilo kakve izmjene. \n\nDa biste promijenili postavke razgovora: \nprijeđite prstom od vrha zaslona prema dolje kako bi se otvorio zaslon obavijesti, a zatim dodirnite razgovor i zadržite pritisak."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimiziraj"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Isključeno"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Prikvačivanje aplikacije"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Prikvačivanje aplikacije omogućuje da vaša trenutačna aplikacija bude vidljiva dok je ne otkvačite. Tu značajku možete koristiti kako biste, na primjer, prijatelju kojem vjerujete dopustili da igra određenu igru."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kad je aplikacija prikvačena, može otvarati druge aplikacije i osobni podaci mogu biti dostupni. \n\nKako upotrebljavati prikvačivanje aplikacije: 	\n1. Uključite prikvačivanje aplikacije. 	\n2. Otvorite Pregled. 	\n3. Dodirnite ikonu aplikacije pri vrhu zaslona, a potom dodirnite Prikvači."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kad je aplikacija prikvačena, može otvarati druge aplikacije i osobni podaci mogu biti dostupni. \n\nAko želite s nekim sigurno dijeliti svoj uređaj, pokušajte koristiti profil gosta. \n\nKako upotrebljavati prikvačivanje aplikacije: 	\n1. Uključite prikvačivanje aplikacije. 	\n2. Otvorite Pregled. 	\n3. Dodirnite ikonu aplikacije pri vrhu zaslona, a potom dodirnite Prikvači."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kad je aplikacija prikvačena, može otvarati druge aplikacije i osobni podaci mogu biti dostupni. \n\nDa biste se koristili prikvačivanjem aplikacije: 	\n{0,number,integer}. Uključite prikvačivanje aplikacije 	\n{1,number,integer}. Otvorite Pregled 	\n{2,number,integer}. Dodirnite ikonu aplikacije pri vrhu zaslona, a potom dodirnite Prikvači."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kad je aplikacija prikvačena, može otvarati druge aplikacije i osobni podaci mogu biti dostupni. \n\nAko želite s nekim sigurno dijeliti svoj uređaj, pokušajte koristiti profil gosta. \n\nDa biste se koristili prikvačivanjem aplikacije: 	\n{0,number,integer}. Uključite prikvačivanje aplikacije 	\n{1,number,integer}. Otvorite Pregled 	\n{2,number,integer}. Dodirnite ikonu aplikacije pri vrhu zaslona, a potom dodirnite Prikvači."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kad je aplikacija prikvačena: \n\n•		osobni podaci mogu biti dostupni \n		(primjerice, kontakti i sadržaj e-pošte) \n•		prikvačena aplikacija može otvarati druge aplikacije \n\nPrikvačivanje aplikacije koristite samo s osobama kojima vjerujete."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Traži uzorak za otključavanje radi otkvačivanja"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Traži PIN radi otkvačivanja"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Postavke nekorištenih aplikacija"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pauziraj aktivnosti u aplikacijama ako se ne koriste"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Uklanjaju se dopuštenja, brišu privremene datoteke i zaustavljaju obavijesti"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Upravljajte nekorištenom aplikacijom"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Uklonite dopuštenja, izbrišite privremene datoteke, zaustavite obavijesti i arhivirajte aplikaciju"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Sve aplikacije"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Instalirane aplikacije"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant aplikacije"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Dostupno"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memorija koju upotrebljavaju aplikacije"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Jedna aplikacija upotrijebila je memoriju u posljednjih {time}}one{# aplikacija upotrijebila je memoriju u posljednjih {time}}few{# aplikacije upotrijebile su memoriju u posljednjih {time}}other{# aplikacija upotrijebilo je memoriju u posljednjih {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Omogući profiliranje upotrebe memorije"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profiliranje upotrebe memorije zahtijeva dodatne resurse sustava."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profiliranje memorije onemogućeno"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Učestalost"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimalna upotreba"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nema upotrebe podataka"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Prikaz iznad drugih aplikacija"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Dopusti prikaz iznad drugih aplikacija"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Dopustite toj aplikaciji da se prikazuje iznad drugih aplikacija koje upotrebljavate. Aplikacija će moći vidjeti gdje ste dodirnuli ili promijeniti sadržaj zaslona."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Promjena medijskog izlaza"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Omogući promjenu medijskog izlaza aplikacije"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Omogućite aplikaciji da odabere koji povezani uređaj reproducira zvuk ili videozapis iz drugih aplikacija. Ako to omogućite, aplikacija će moći pristupiti popisu dostupnih uređaja kao što su slušalice i zvučnici te odabrati koji se izlazni uređaj koristi za streamanje ili emitiranje zvuka ili videozapisa."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Pristup svim datotekama"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Poboljšavanje glasovne aktivacije"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Ovaj uređaj koristi privatne podatke za poboljšanje modela glasovne aktivacije. Aplikacije mogu primati sažeta ažuriranja koja se agregiraju putem mnogobrojnih korisnika kako bi se zadržala privatnost tijekom poboljšanja modela za sve korisnike.\n\n"<a href="">"Više o privatnim podacima"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Upozori na <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Ograničenje podatkovnog prometa od <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozori na <xliff:g id="ID_1">^1</xliff:g>/Ograniči na <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Mobilni operater može obračunavati podatke na drugačiji način od uređaja"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne uključuje podatke koje koriste mreže mobilnog operatera"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Iskoristili ste <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Postavi upozorenje o potrošnji"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Ažurirano prije <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Upravo ažurirao operater <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Upravo je ažurirano"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Prikaži plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Prikaz pojedinosti"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Štednja podat. prometa"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neograničeni podaci"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalija potrošnje baterije"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Pločice brzih postavki za razvojne programere"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Onemogući vrijeme čekanja za autorizacije za adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Onemogućite automatski opoziv autorizacija za adb za sustave koji se ne povežu u zadanom razdoblju (sedam dana) ili korisnički konfiguriranom razdoblju (najmanje jedan dan)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope praćenje"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzori su isključeni"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Postavke poslovnog profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Traži kontakte iz poslovnog direktorija u osobnim aplikacijama"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Automatsko popunjavanje"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Zadana usluga automatskog popunjavanja"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Zaporke"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usluge za zaporke, pristupne ključeve i podatke"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Dodatni davatelji usluga"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# zaporka}one{# zaporka}few{# zaporke}other{# zaporki}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatsko, popunjavanje, automatsko popunjavanje, zaporka"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Usluge za zaporke, pristupne ključeve i podatke"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Želite li isključiti sve usluge?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Zaporke, pristupni ključevi i drugi spremljeni podaci neće biti dostupni za automatsko popunjavanje kad se prijavite"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Promijenite preferiranu uslugu u &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 se utvrdilo što se može automatski popuniti"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Upotrijebiti davatelja vjerodajnica %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Može biti uključeno samo pet usluga"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Isključite barem jednu uslugu da biste dodali drugu"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s utvrđuje što se može automatski popuniti na temelju sadržaja zaslona."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Ograničenje broja usluga za zaporke, pristupne ključeve i podatke"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Istovremeno možete imati pet aktivnih usluga za zaporke, pristupne ključeve i podatke. Isključite jednu uslugu da biste ih dodali još."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Ograničenje broja usluga za zaporke, pristupne ključeve i podatke"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Istovremeno možete imati pet aktivnih usluga za zaporke, pristupne ključeve i podatke. Isključite jednu uslugu da biste ih dodali još."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Isključi"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatsko popunjavanje"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Razina zapisivanja"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Promjene kompatibilnosti aplikacija moguće su samo za aplikacije s mogućnošću otklanjanja pogrešaka. Instalirajte aplikaciju s mogućnošću otklanjanja pogrešaka i pokušajte ponovo."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Ovisi o drugoj postavci"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Račun"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d račun/računa"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Naziv uređaja"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Osnovne informacije"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Pravne i zakonske obaveze"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Dopustite da se ova aplikacija pokrene kad se skenira oznaka NFC.\nAko je to dopuštenje uključeno, aplikacija će biti dostupna kao opcija svaki put kad se otkrije oznaka."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reproduciraj medije na"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reproduciraj <xliff:g id="LABEL">%s</xliff:g> na"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Zvuk će se reproducirati"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Ovaj uređaj"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Nije dostupno tijekom poziva"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Preuzmi poziv na uređaju"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Isključi zvuk"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Da biste omogućili tu opciju, najprije promijenite opciju \"Pritisnite i zadržite tipku za uključivanje/isključivanje\" u izbornik tipke za uključivanje."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Podaci o mreži"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Naziv vašeg uređaja vidljiv je aplikacijama na vašem telefonu. Mogu ga vidjeti i druge osobe kada se povežete s Bluetooth uređajima ili Wi-Fi mrežom ili kada postavite Wi-Fi žarišnu točku."</string>
     <string name="devices_title" msgid="649715719278562515">"Uređaji"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Odabir mreže"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Nije povezano"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Naziv"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Boja (koriste kompatibilne aplikacije)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Spremi"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Koristi SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Upotrijebite ovaj SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Isključeno"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Da biste onemogućili ovaj SIM, uklonite SIM karticu"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Dodirnite da bi se aktivirao mobilni operater <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Izbriši SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Željena vrsta mreže"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Promijenite način rada mreže"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Željena vrsta mreže"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Podatke o cijeni možete saznati od svojeg mrežnog operatera."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Potrošnja podatkovnog prometa aplikacija"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mrežni način <xliff:g id="NETWORKMODEID">%1$d</xliff:g> nije važeći. Zanemarite."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nazivi pristupnih točaka"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nedostupno kada je povezano s mobilnim operaterom <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Želite li prijeći na mobilnog operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Želite li prijeći na SIM karticu?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Želite li upotrijebiti operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Istovremeno može biti aktivan samo jedan SIM.\n\nPrelaskom na mobilnog operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> neće se otkazati vaša usluga kod mobilnog operatera <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Istovremeno može biti aktivan samo jedan eSIM.\n\nPrelaskom na mobilnog operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> neće se otkazati vaša usluga kod mobilnog operatera <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Istovremeno može biti aktivan samo jedan SIM.\n\nPrelaskom se neće otkazati vaša usluga kod mobilnog operatera <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Na ovom uređaju ne možete istovremeno upotrebljavati dva SIM-a. Da biste koristili operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, isključite drugi SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Prebaci na <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Isključite operatera <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, hvala"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Odustani"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Prebaci"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Isključi"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM se ne može aktivirati"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Pokušajte ponovo uključiti SIM. Ako se problem ponovi, ponovo pokrenite uređaj."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Postavite SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Postavite preferencije mobilne mreže da biste upotrebljavali više SIM kartica na ovom uređaju"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Davanje oznaka SIM karticama"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Vidjet ćete ove oznake pri uspostavi poziva, slanja tekstnih poruka i upotrebi mobilnih podataka te u postavkama"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Oznaka SIM kartice"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Oznaka"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Odabir SIM-a za korištenje"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Na ovom uređaju ne možete istovremeno upotrebljavati dva SIM-a"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Postavljanje primarnih SIM-ova"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Odaberite koje ćete SIM kartice koristiti prema zadanim postavkama za pozive, tekstne poruke i mobilne podatke"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Vaše primarne SIM kartice"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Pozivi"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Tekstne poruke"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Autom. prebacivanje podataka"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Upotrijebite podatke s jedne od SIM kartica ovisno o pokrivenosti i dostupnosti"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Samo podatkovna veza"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Postavi"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Dalje"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilna mreža"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonski broj"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Oznaka i boja SIM-a"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivacija mreže"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Promjena mobilnog operatera"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivan"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Da biste se kasnije koristili mobilnim podacima, značajkama poziva i SMS-a, otvorite postavke mreže"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Želite li izbrisati taj eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Brisanjem tog SIM-a s uređaja se uklanja usluga mobilnog operatera <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nUsluga mobilnog operatera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> neće se otkazati."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Izbriši"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Brisanje SIM-a…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Brisanje SIM-a nije uspjelo"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"SIM se ne može izbrisati zbog pogreške.\n\nPonovo pokrenite uređaj i pokušajte još jednom."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Povezivanje s uređajem"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikacija <xliff:g id="APPNAME">%1$s</xliff:g> želi koristiti privremenu Wi‑Fi mrežu za povezivanje s vašim uređajem"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nije pronađen nijedan uređaj. Provjerite je li uređaj uključen i dostupan za povezivanje."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Hitni pozivi"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Vaš mobilni operater ne podržava hitne pozive putem Wi‑Fi poziva.\nUređaj se automatski prebacuje na mobilnu mrežu kako bi uputio hitni poziv.\nHitni pozivi mogući su samo u područjima pokrivenim mobilnim mrežama."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Upotrijebi Wi‑Fi za pozive radi poboljšanja kvalitete"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Rezervni način telefoniranja"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ako usluga <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nije dostupna ili je u roamingu, za pozive putem usluge <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> koristite SIM za mob. podatke."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"rezervni način telefoniranja"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Dolazna MMS poruka"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nije moguće poslati MMS poruku"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Dodirnite da biste dopustili MMS poruke na usluzi <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> kad su mobilni podaci isključeni"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informacije o poslovnim pravilima"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Postavkama upravlja vaš IT administrator"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Pokreni uz veličinu od 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Pokreni uređaj uz jezgru podržanu za 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Želite li ponovno pokrenuti uz jezgru kompatibilnu sa stranicama od 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"UPOZORENJE: neke aplikacije možda nisu kompatibilne s ovim načinom. Uređaj će se ponovno pokrenuti nakon potvrde."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Želite li ponovno pokrenuti uz jezgru kompatibilnu sa stranicama od 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Uređaj će se ponovno pokrenuti nakon potvrde."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ažuriranje jezgre na jezgru kompatibilnu sa stranicama od 16 KB nije uspjelo."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Primjena promjene"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Rukovatelj izvješćem o programskim pogreškama"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Određuje koja je aplikacija zadužena za prečac Izvješće o programskim pogreškama na vašem uređaju."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Osobno"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Da bi se reprodukcija brzo nastavila, medijski player ostaje otvoren u brzim postavkama"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Prikaži medije na zaključanom zaslonu"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Da bi se reprodukcija brzo nastavila, medijski player ostaje otvoren na zaključanom zaslonu"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Prikaži preporuke medija"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Prikaži Asistentove preporuke za medijske sadržaje"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Na temelju vaše aktivnosti"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Sakrij player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Prikaži player"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-ovi"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktivno"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktivno"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Zadano za <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"pozive"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk s kompatibilnih medija postaje realističniji"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se mijenja kako pomičete glavu kako bi prirodnije zvučao"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Dopuštenja sinkronizacije"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Dajte uređaju <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ista dopuštenja aplikacije koje ste dali uređaju <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinkronizacija dopuštenja s telefona"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Svojem satu dajte jednaka dopuštenja aplikacija koja ste dopustili na ovom telefonu"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta audiouređaja"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Srednji"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Visoki"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ova se aplikacija može otvoriti samo u jednom prozoru"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Uključeno"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Isključeno"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Isključeno"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Isključeno"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Uključeno"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Isključeno"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Uključeno"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Isključeno"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Svijetli zasloni postaju tamni, a tamni zasloni svijetli"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Povećajte na zaslonu"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Isključeno"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Isključeno"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Uključeno"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Isključeno"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Uključeno"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Zaporka je sada postavljena"</string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 5651324..a53728b 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 perc után"</item>
     <item msgid="1574040255478150028">"5 perc után"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index fe9acde..be201f9 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Ön mostantól már fejlesztő!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nincs rá szükség, Ön már fejlesztő."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Előbb engedélyeznie kell a fejlesztői beállításokat"</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Egyedül az adminisztrátor felhasználók férhetnek hozzá a fejlesztői beállításokhoz."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Rendszer"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Szolgáltatás"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Nem működik"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Az eszköz összehajtásakor az elülső kijelző bekapcsolódik"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Csak játékok, videók és egyebek"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Az elülső kijelző bekapcsol az olyan alkalmazásoknál, amelyek megakadályozzák, hogy a képernyő tétlen módba lépjen."</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"A folytatáshoz csúsztassa gyorsan felfelé az ujját"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Hajtsa össze a telefont, és az alkalmazás használatának folytatásához csúsztassa ujját gyorsan felfelé az elülső kijelzőn, vagy várjon néhány másodpercet a képernyő zárolásáig."</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Soha"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Az eszköz összehajtásakor az elülső kijelző zárolódik"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Automatikus forgatás használata"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Kapcsolódó"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Csengőhang és riasztások"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Hívás közbeni hang beállításai"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Média"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Értesítések és más rendszerhangok"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Média- és rendszerhangok"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Értesítések"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"A hangkimenetet alapértelmezés szerint az egyes alkalmazások határozzák meg"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Névtelen Bluetooth eszköz"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Keresés"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth bekapcsolva"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Az összes megtekintése"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Összes megtekintése"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Érintőceruza"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Az érintőceruza végén lévő gomb megnyomása"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (munkaprofil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Csatlakozás alacsony energiaszintű hangátvitelt használó streamhez"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Közeli audiostreamek"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audiostreamek"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Csatlakozhat audiostreamhez QR-kóddal"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nem találtunk közeli audiostreamet."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ha minden alkalmazásnál Ön szeretné kiválasztani a nyelvet, lépjen az egyes alkalmazások nyelvi beállításaihoz."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"További információ az alkalmazások nyelveiről"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Módosítja a rendszer nyelvét a következőre: %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s felvétele az előnyben részesített nyelvek közé?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Így az appok és webhelyek tudni fogják, hogy Ön előnyben részesíti ezt a nyelvet is."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Az eszközbeállítások és a regionális preferenciák módosulni fognak."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Módosítás"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"A(z) %s nyelv nem áll rendelkezésre"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Szombat"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ha valamelyik alkalmazás nem támogatja a regionális preferenciákat, az app az alapértelmezett nyelvi beállításait fogja használni."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"További információ a nyelvi beállításokról."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"További beállítások"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Megszólítás feltételei"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Állítsa be, hogy hogyan szeretné, hogy megszólítsák"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Az alkalmazások megszólítási feltételek segítségével szabhatják személyre, hogy milyen módon szólítsák meg Önt."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nincs megadva"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Női"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Férfi"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Semleges"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Eltávolítja a kiválasztott nyelvet?}other{Eltávolítja a kiválasztott nyelveket?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"A szöveg más nyelven fog megjelenni."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nem lehet eltávolítani az összes nyelvet"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Tartózkodási hely"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Helyadatok használata"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Ki"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Be – # alkalmazás hozzáfér a helyadatokhoz}other{Be – # alkalmazás hozzáfér a helyadatokhoz}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Be / # alkalmazás hozzáfér a helyadatokhoz}other{Be / # alkalmazás hozzáfér a helyadatokhoz}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Betöltés…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"A közeli eszközökre vonatkozó engedéllyel rendelkező alkalmazások meghatározhatják a csatlakoztatott eszközök relatív pozícióját."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"A helyhozzáférés ki van kapcsolva az alkalmazásoknál és a szolgáltatásoknál. A rendszer azonban így is elküldheti az eszköz helyét a segélyszolgálatoknak, ha Ön segélyhívó számot hív, vagy SMS-t küld rá."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"További információ a helybeállításokról."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"További információ a helybeállításokról."</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Helyhozzáférés-módosítás: Beállítások &gt; Biztonság és adatvédelem &gt; Adatvédelmi beállítások"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"A legjobb eredmény érdekében használjon Made for Google tanúsítvánnyal rendelkező kijelzővédőt. Előfordulhat, hogy más kijelzővédők esetében gyermeke ujjlenyomata nem működik."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Feloldás órával"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Ha beállítja az Arcalapú feloldás és a Feloldás ujjlenyomattal funkciót, telefonja az ujjlenyomatát fogja kérni, amikor Ön maszkot visel, vagy sötét helyen van.\n\nA feloldás az órájával is lehetséges, ha az arcát vagy az ujjlenyomatát nem ismeri fel a rendszer."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"A feloldás az órájával is lehetséges, ha az ujjlenyomatát nem ismeri fel a rendszer."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"A feloldás az órájával is lehetséges, ha az arcát nem ismeri fel a rendszer."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Ha beállítja az Arcalapú feloldás és a Feloldás ujjlenyomattal funkciót, telefonja az ujjlenyomatát fogja kérni, amikor Ön maszkot visel, vagy sötét helyen van.\n\nA Feloldás órával funkció a telefon zárolásának másik kényelmes módja, például amikor nedvesek az ujjai, vagy az eszköz nem ismeri fel az arcát."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"A Feloldás órával funkció a telefon zárolásának másik kényelmes módja, például amikor az eszköz nem ismeri fel az ujjlenyomatát."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"A Feloldás órával funkció a telefon zárolásának másik kényelmes módja, például amikor az eszköz nem ismeri fel az arcát."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Ujjlenyomat vagy az óra használata"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Arc vagy az óra használata"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Arc, ujjlenyomat vagy az óra használata"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Arc és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Arc, ujjlenyomat és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Arc, ujjlenyomatok és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Távoli hitelesítő alapú feloldás"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Óra hozzáadva"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Az óra beállítása"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"A Feloldás órával funkció a telefon zárolásának másik kényelmes módja, például amikor nedvesek az ujjai, vagy az eszköz nem ismeri fel az arcát.\n\nAz órával akkor oldhatja fel a telefon zárolását, ha:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Most nem"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Tovább"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Több"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Hogyan működik?"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Az órájának feloldott állapotban, a csuklóján és a telefon közelében kell lennie. Amíg a csuklóján van, többször már nem kell feloldania órája zárolását."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Értesítést kap az óráján, amikor a telefon zárolása feloldásra került. Ha a telefon zárolásának feloldása akaratlanul történt, akkor az értesítésre koppintva zárolhatja újból."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Az irányítás az Ön kezében van"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"A Beállításokban bármikor eltávolíthatja óráját a Feloldás órával funkcióból"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Koppintson valamelyik értesítésre"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Csúsztasson gyorsan felfelé a lezárási képernyőn"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Óra kiválasztása"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Rendelkezésre álló órák"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Mégse"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Megerősítés"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Készen is van!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Mostantól feloldhatja az órával a telefon zárolását, ha gyorsan felfelé csúsztat a lezárási képernyőn, vagy az egyik értesítésre koppint."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Kész"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Feloldás órával"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Feloldhatja az órával a telefon zárolását, ha gyorsan felfelé csúsztat a lezárási képernyőn, vagy az egyik értesítésre koppint."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"A Feloldás órával funkció használatához az órájának feloldott állapotban, a csuklóján, elérhető közelségben és a telefonhoz csatlakoztatva kell lennie. Ha megszakad a kapcsolat, fel kell oldania a telefon zárolását ahhoz, hogy használni tudja a Feloldás órával funkciót.\n\nNe feledje:\nEgyszerre csak egy óra lehet beállítva. Ha másik órát szeretne hozzáadni, először távolítsa el a meglévőt."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"További információ a Feloldás órával funkcióról"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Óra hozzáadása"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Óra eltávolítása"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Feloldás ujjlenyomattal és Arcalapú feloldás"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Arc- és ujjlenyomat-alapú feloldás a munkaprofilban"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Beállítás szükséges"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Biztonság"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Adatvédelem"</string>
     <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="2274405892301976238">"Privát alkalmazások zárolásának és rejtve tartásának fenntartása"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Tárolja olyan külön területen a privát alkalmazásokat, amelyet elrejthet vagy zárolhat"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Privát terület zárolása"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Az eszköz képernyőzárának használata"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Arcalapú feloldás és Feloldás ujjlenyomattal"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Feloldás ujjlenyomattal"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Arcalapú feloldás"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Koppintson ide a beállításhoz"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Ujjlenyomattal való feloldás a privát területhez"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Arcalapú feloldás a privát területhez"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Feloldási módszerek"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Ugyanaz, mint az eszköz képernyőzára"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Új zárolást választ a privát területhez?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automatikus zárolás"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Magánterület automatikus zárolása"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Automatikusan zárolhatja a magánterületet, ha bizonyos ideje nem használta az eszközt."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Minden alkalommal az eszköz zárolásakor"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 perces inaktivitás után"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Soha"</string>
+    <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_delete_title" msgid="3075645119800272800">"Privát terület törlése"</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="private_space_unlocked" msgid="9091600948712932046">"Magánterület feloldva"</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="7436025227616244687">"A 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="private_space_cancel_label" msgid="379259667396956886">"Mégse"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Beállítás"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Privát terület beállítása"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Tárolja olyan külön területen a privát alkalmazásokat, amelyet elrejthet vagy zárolhat"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Hogyan működik?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"A privát területhez az alkalmazások listájának alján férhet hozzá."</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"A privát területen lévő alkalmazásokat zárolás védi"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"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="private_space_apps_permission_text" msgid="7030946025253366172">"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.\n\nA privát terület nem helyezhető át új eszközre. Ha másik eszközön szeretné használni, akkor másik privát területet kell beállítania.\n\nBárki, aki az Ön eszközét számítógéphez csatlakoztatja, vagy kártékony alkalmazást telepít az Ön eszközére, hozzá tud férni a privát területhez."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"A privát terület beállítása…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"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="private_space_share_photos_title" msgid="2102594859384040485">"A privát területen található alkalmazásokban tárolt fotók vagy fájlok megosztásához oldja fel a terület zárolását"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Egyes alkalmazások már telepítve vannak a privát területén"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Nem sikerült a privát terület beállítása"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Újra"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"A privát terület feloldása képernyőzárral?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"A privát terület zárolását feloldhatja ugyanúgy, ahogyan az eszközét is, vagy kiválaszthat másik zárolási lehetőséget."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Képernyőzár használata"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Új zárolás kiválasztása"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Kész is!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"A privát terület megnyitásához lépjen az alkalmazáslistára, majd görgessen le"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Kész"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"A privát terület megtaláláshoz görgessen le"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Válasszon zárolást a privát területhez"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Ujjlenyomata segítségével feloldhatja a privát terület zárolását. Biztonsági okokból ennek a beállításnak az esetében szükség van biztonsági zárolásra is."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"PIN-kód beállítása a privát területhez"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Jelszó beállítása a privát területhez"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Minta beállítása a privát területhez"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"A privát terület megjelenítése (nem végleges UX-változat)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Nyissa meg a Beállítások alkalmazást"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Koppintson a Biztonság és adatvédelem &gt; Privát terület &gt; Privát terület elrejtése lezárt állapotban lehetőségre"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Kapcsolja ki a Privát terület elrejtése lezárt állapotban kapcsolót"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Megjegyzés a Google-alkalmazottaknak: Ennek a funkciónak a fejlesztése még folyamatban van"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Előfordulhat, hogy az azonosító kulcsot a másik eszközön is be kell írnia."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Erősítse meg a koordinált készlettel való párosításhoz"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Hozzáférést biztosít névjegyeihez és híváslistájához"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Hozzáférés engedélyezése a névjegyekhez és a híváslistához is"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Az információkat a hívások bejelentéséhez és egyebekhez használjuk majd fel"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nem sikerült csatlakozni a következőhöz: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Rendelkezésre álló eszközök"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Repülős üzemmódban"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Értesítés a nyilvános hálózatokról"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Értesítsen, ha rendelkezésre áll jó minőségű nyilvános hálózat"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP-hálózatok engedélyezése"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"A WEP egy régebbi, kevésbé biztonságos biztonsági protokoll."</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Szolgáltatója nem engedélyezi a WEP-hálózatokat, mert kevésbé biztonságosak."</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi automatikus bekapcsolása"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"A Wi‑Fi újra bekapcsol jó minőségű mentett hálózatok (például az otthoni hálózat) közelében"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nem áll rendelkezésre, mert a helyszolgáltatás ki van kapcsolva. "<annotation id="link">"Helyszolgáltatás"</annotation>" bekapcsolása."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"A Wi-Fi-keresés engedélyezi az alkalmazásoknak és szolgáltatásoknak, hogy Wi-Fi-hálózatokat keressenek még akkor is, ha ki van kapcsolva a Wi-Fi. Ez például a helyalapú funkciók és szolgáltatások hatékonyságának javítására használható."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Bekapcsolás"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi-keresés bekapcsolva"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ez a hálózat egy régebbi, kevésbé biztonságos biztonsági protokollt használ."</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"A(z) <xliff:g id="NAME">%1$s</xliff:g> le van tiltva"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ez a hálózat egy régebbi, kevésbé biztonságos biztonsági protokollt (WEP-et) használ. Ha ennek ellenére csatlakozni szeretne hozzá, engedélyezheti a WEP-hálózatokat."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Szolgáltatója nem engedélyezi a csatlakozást, mert ez a hálózat egy régebbi, kevésbé biztonságos biztonsági protokollt használ."</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"A WEP engedélyezése"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Bezárás"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Speciális beállítások"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Legördülő lista – Speciális beállítások"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"kibontás"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Maradjon a Wi-Fi-hálózaton"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ne jelenjen meg többé"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Kapcsolódás"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi bekapcsolva"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Kapcsolódva a(z) <xliff:g id="NETWORK_NAME">%1$s</xliff:g> hálózathoz"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Csatlakozás a következőhöz: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Csatlakozás…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nem sikerült hálózathoz csatlakozni."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"A hálózat nincs hatókörön belül"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Elfelejt"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Módosítás"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nem sikerült elfelejteni a hálózatot."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Mentés"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Nem sikerült menteni a hálózatot."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Mégse"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobiladat"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Töltés"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Töltés"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspotkapcsolat"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Kapcsolat erőssége"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mentett hálózatok"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nincs beállítva jelszó"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot neve"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot jelszava"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-sáv"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Wi-Fi-hotspot automatikus kikapcsolása"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Amikor nincsenek csatlakoztatva eszközök"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Kompatibilitás bővítése"</string>
@@ -1008,8 +1149,10 @@
     <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">"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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Játékok alapértelmezett képkockasebességének letiltása"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Maximális képkockasebesség korlátozásának letiltása <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz-es játékoknál."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"A Képernyőfigyelő az előlapi kamerát használja annak ellenőrzésére, hogy nézi-e valaki a képernyőt. A funkció az eszközön működik, és a fotókat sosem tárolja vagy küldi tovább a Google-nak."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Képernyőfigyelő bekapcsolása"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ne kapcsoljon ki a képernyő, amíg nézem"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Hosszabb képernyő-időkorlát használata nagyobb akkumulátorhasználattal jár."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera zárolva"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Az arcfelismerés működéséhez a kamera zárolásának feloldása szükséges."</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A kamerának feloldva kell lennie a képernyőfigyelő használatához"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (<xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>. SIM-kártya-foglalat)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (<xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>. SIM-kártya-foglalat) (elsődleges)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"A megtekintéshez válassza ki a mentett hálózatot"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL verzió"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Akkumulátorszint"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Közösségi"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Közösségi beállítások"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Mentés"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Mégse"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"A Név mező nem lehet üres."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Az APN nem lehet üres."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Az MCC mezőnek három számjegyet kell tartalmaznia."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Az MNC mezőbe 2 vagy 3 számjegyet kell írni."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"A szolgáltató nem engedélyezi a következő típusú APN-ek hozzáadását: %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Az MMSC-mezőnek érvényesnek kell lennie."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Alapértelmezett APN-beállítások visszaállítása."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Visszaállítás alaphelyzetbe"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Az alapértelmezett APN-beállítások visszaállítása befejeződött."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Alaphelyzet"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"A Bluetooth és a Wi‑Fi visszaállítása megtörtént"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"e-SIM-ek törlése"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Ezzel nem szűnik meg egyetlen mobil-előfizetési csomag sem. Csere-SIM letöltése érdekében forduljon szolgáltatójához."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Beállítások visszaállítása"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Alaphelyzetbe állítja az összes hálózati beállítást? Ez a művelet nem vonható vissza."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Visszaállítja az összes hálózati beállítást, és törli az eSIM-eket? Ez a művelet nem vonható vissza."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Visszaállítja?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"A hálózati beállítások visszaállítása nem hajtható végre ennél a felhasználónál"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"A hálózati beállítások vissza lettek állítva."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Nem lehet törölni a SIM-eket"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Hiba történt, ezért nem sikerült az eSIM törlése.\n\nIndítsa újra az eszközt, majd próbálja újra."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Összes adat törlése (gyári beállítások visszaállítása)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Összes adat törlése"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"a zenéket"</li>\n<li>"a fotókat"</li>\n<li>"más felhasználói adatokat"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-ek"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Ezzel nem szünteti meg mobil-előfizetését."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Az összes személyes adatot és letöltött alkalmazást törli. Ez a művelet nem vonható vissza."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Az összes személyes adata törlődik (beleértve a letöltött alkalmazásokat és SIM-eket is). Ez a művelet nem vonható vissza."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Törli az összes adatot?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"A gyári beállítások visszaállítása nem hajtható végre ennél a felhasználónál"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Törlés"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Nincs internetmegosztás más eszközökkel"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Ki"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Internetmegosztás"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ne használjon Wi‑Fi-hotspotot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Internetmegosztás csak USB-n keresztül"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Internetmegosztás csak Bluetooth-on keresztül"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Internetmegosztás csak Etherneten keresztül"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Internetmegosztás csak USB-n és Bluetooth-on keresztül"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Internetmegosztás csak USB-n és Etherneten keresztül"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Internetmegosztás csak Bluetooth-on és Etherneten keresztül"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Internetmegosztás csak USB-n, Bluetooth-on és Etherneten keresztül"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-megosztás"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-megosztás"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet megosztása"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"A hotspot és az internetmegosztás funkcióval más eszközöknek biztosíthat internet-hozzáférést saját Wi‑Fi- vagy mobiladat-kapcsolatán keresztül. Az alkalmazások szintén létrehozhatnak hotspotot, hogy tartalmat osszanak meg a közeli eszközökkel."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Súgó"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilhálózat"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilcsomag"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-küldő"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Módosítja az SMS-alkalmazást?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"A(z) <xliff:g id="CURRENT_APP">%2$s</xliff:g> helyett a(z) <xliff:g id="NEW_APP">%1$s</xliff:g> kezelje az SMS-eket?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi-kezelő módosítása?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Szeretné a(z) <xliff:g id="NEW_APP">%1$s</xliff:g> alkalmazást használni a(z) <xliff:g id="CURRENT_APP">%2$s</xliff:g> helyett a hálózati kapcsolatok kezelésére?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Szeretné a(z) <xliff:g id="NEW_APP">%s</xliff:g> alkalmazást használni a hálózati kapcsolatok kezelésére?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Ismeretlen szolgáltató"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nem rendelkezik hozzáférés-kezelő webhellyel"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Helyezze be a SIM-kártyát és indítsa újra"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Csatlakozzon az internethez"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Legutóbbi helylekérdezések"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"A munkahelyi profil helye"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Appok helyelérési engedélyei"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Hozzáférés letiltása"</string>
     <string name="controls_label" msgid="8671492254263626383">"Vezérlőelemek"</string>
     <string name="force_stop" msgid="2681771622136916280">"Kényszerített leállítás"</string>
+    <string name="archive" msgid="9074663845068632127">"Archiválás"</string>
+    <string name="restore" msgid="7622486640713967157">"Visszaállítás"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Összesen"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Alkalmazás mérete"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB-alkalmazás"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"A csomag méretének kiszámítása sikertelen."</string>
     <string name="version_text" msgid="7628938665256107608">"Verzió: <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Áthelyezés"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiválás sikertelen"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> archiválva"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"A visszaállítás nem sikerült"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"A(z) <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> visszaállítása…"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Már folyamatban van egy másik adatátvitel."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nincs elég tárhely."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Az alkalmazás nem létezik."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Használható képernyő-billentyűzet"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Képernyő-billentyűzetek kezelése"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opciók"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Kisegítő lehetőségek"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizikai billentyűzet"</string>
     <string name="show_ime" msgid="4334255501724746849">"Képernyő-billentyűzet használata"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Maradjon a képernyőn, amíg a fizikai billentyűzet aktív"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Billentyűblokkolás"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"A Billentyűblokkolás engedélyezése a fizikai billentyűzet kisegítő lehetőségeként"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Beragadó billentyűk"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Engedélyezheti a Beragadó billentyűket a fizikai billentyűzet kisegítő lehetőségeként"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Billentyűparancsok"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Billentyűparancsok listájának megjelenítése"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Munkaprofil billentyűzetei és eszközei"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Rendszerezés: használat ideje"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Rendszerezés: utolsó használat"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Rendszerezés: alkalmazásnév"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Utoljára használva"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Legutóbbi használat"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"soha"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Használat ideje"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Kisegítő lehetőségek"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Kisegítő lehetőségek beállításai"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Folytatás mégis"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Mégse"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nagyítási beállítások"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Nagyítás három koppintással"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Nagyítás gyorsparanccsal"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Nagyítás gyorsparanccsal és három koppintással"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Koppintson két ujjal a képernyőn duplán 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="860548190334486449">"A nagyítás megkezdéséhez és leállításához koppintson két ujjal duplán 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"A Kisegítő lehetőségek valamelyik funkciójának 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_button" msgid="2031773187678948436">"Értem"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Kisegítő gomb beállításai"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"A gomb beállításai"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> gyorsparancsa"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Kisegítő lehetőségek gomb"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Kisegítő kézmozdulat"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dupla koppintás a képernyőn két ujjal"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dupla koppintás a képernyőn két ujjal"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Gyors koppintás a képernyőre két ujjal {0,number,integer} alkalommal"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Háromszori koppintás a képernyőre"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"További információ a Kisegítő lehetőségek gombról és a kézmozdulatokról"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"A kisegítő lehetőségek gomb használata. Kézmozdulat nem használható háromgombos navigáció esetén."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Gyors hozzáférés a kisegítő lehetőségekhez"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Kezdő lépések"</b>\n"1. Lépjen a kisegítő lehetőségek beállításaihoz.\n2. Koppintson a kívánt funkcióra, majd a gyorsparancsra.\n3. Válassza ki, hogy gombbal vagy kézmozdulattal szeretne-e hozzáférni a funkcióhoz."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Kezdő lépések"</b>\n"1. Lépjen a kisegítő lehetőségek beállításaihoz.\n2. Koppintson a kívánt funkcióra, majd a gyorsparancsra.\n3. Válassza ki, hogy melyik gombbal szeretne hozzáférni a funkcióhoz."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Kezdő lépések&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Lépjen a kisegítő lehetőségek beállításaihoz&lt;br/&gt; {1,number,integer}. Koppintson a kívánt funkcióra, majd a gyorsparancsra&lt;br/&gt; {2,number,integer}. Válassza ki, hogy gombbal vagy kézmozdulattal szeretne-e hozzáférni a funkcióhoz&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Kezdő lépések&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Lépjen a kisegítő lehetőségek beállításaihoz&lt;br/&gt; {1,number,integer}. Koppintson a kívánt funkcióra, majd a gyorsparancsra&lt;br/&gt; {2,number,integer}. Válassza ki, hogy melyik gombbal szeretne hozzáférni a funkcióhoz&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Gomb vagy kézmozdulat használata"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Hely"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Méret"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"A bekapcs. gomb megszakítja a hívást"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Nagy egérmutató"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Könnyebben észrevehetővé teszi az egérmutatót"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Legyen az összes app sötét"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Appokra érvényes a sötét témájuk nélkül. Egyes appoknál megjelenítési probléma (pl. invertált szín) léphet fel."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animációk eltávolítása"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Mozgás mennyiségének csökkentése a képernyőn"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monó hang"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Követheti az alkalmazásokkal és hardveres érzékelőkkel való interakcióit, és műveleteket végezhet az alkalmazásokkal az Ön nevében."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Engedélyezés"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tiltás"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Leállítás"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Mégse"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Leállítja a következőt: <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"A <xliff:g id="STOP">%1$s</xliff:g> gombra koppintva leállítja a következő szolgáltatást: <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Igen"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nem"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Kikapcsolja a következőt: <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nincs telepített szolgáltatás"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nincs kiválasztott szolgáltatás"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nincs leírás."</string>
     <string name="settings_button" msgid="2195468788019730377">"Beállítások"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"fényérzékenység, fotofóbia, sötét téma, migrén, fejfájás, olvasó mód, éjszakai mód, fényerő csökkentése, fehér pont"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Egyszerű használat, egyszerű hozzáférés, segítség, kisegítő"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"látás, hallás, vak, siket, mozgás, kézügyesség, kisegítő, segítség, egyszerű használat, egyszerű hozzáférés, kéz, súgó"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Ablaknagyító, nagyítás, gyengénlátó, nagyít, felnagyít"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Feliratok, feliratozás, azonnali átírás, nagyothalló, halláskárosodás, CART, beszéd szöveggé alakítása, felirat"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"színkontraszt"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorikus, egér"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hallókészülékek, nagyothalló, hallásvesztés, cochleáris implantátumok, erősítő eszközök, hangfeldolgozók"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"mozgás, egér, külső egér, fejegér, adaptív egér, kerekesszék, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hallókészülékek, nagyothalló, hallásvesztés, cochleáris implantátumok, erősítő eszközök, hangfeldolgozók, segélyhívásokat fogadó központ"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"nagyothalló, halláskárosodás, feliratok, Teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"három gomb"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"kézügyesség, mozgás, idős, ízületi gyulladás, rsi, stroke, remegés, szklerózis multiplex, agyi paralízis, reszketés, ismétlődő terhelések okozta sérülés, kéz"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"késés, kézügyesség, idős"</string>
     <string name="print_settings" msgid="8519810615863882491">"Nyomtatás"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Kikapcsolva"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 bekapcsolt nyomtatási szolgáltatás}other{# bekapcsolt nyomtatási szolgáltatás}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Az akkumulátort leginkább használó alkalmazások megtekintése"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Optimalizált töltés az akkumulátor védelme érdekében"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Az akkumulátor élettartamának növelése érdekében optimalizálva van a töltés"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Optimalizált töltés az akkumulátor védelme érdekében"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Az akkumulátor élettartamának növelése érdekében dokkolás közben optimalizálva van a töltés"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Optimalizált töltés az akkumulátor védelme érdekében"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Az akkumulátor élettartamának növelése érdekében dokkolás közben optimalizálva van a töltés"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Teljes feltöltés"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Az akkumulátor élettartamának növelése érdekében optimalizálva lesz a töltés, amikor legközelebb dokkolva tölti a táblagépet"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"További információ a töltés szüneteltetéséről"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Töltés folytatása"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Tartalmazza a sok energiát igénylő háttérbeli tevékenységeket"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Eltávolítás"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Mégse"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Teljes feltöltés"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Probléma van a töltőtartozékkal"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"További információ a nem kompatibilis töltésről"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Akkumulátorkezelő"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Alkalmazások automatikus kezelése"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"most"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Akkumulátorhasználatot szemléltető diagram"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Napi akkumulátorhasználatot szemléltető diagram"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Óránkénti akkumulátorhasználatot szemléltető diagram"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Akkumulátor töltöttségi szintje: <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>–<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Akkuhasználat a legutóbbi teljes feltöltés óta"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Akkuhasználat – <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Képernyőidő az utolsó teljes feltöltés óta"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Segélyhívó jelzés"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Viselkedés beállítása segélyhívás kezdeményezésekor"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Biztonsági mentés"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Be"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Ki"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Biztonsági mentés és visszaállítás"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Személyes adatok"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Adatok mentése"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Név"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Típus"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Szerver címe"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-titkosítás (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-titok"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-azonosító"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Megosztott IPSec-kulcs"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec felhasználói tanúsítvány"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-tanúsítvány"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-szervertanúsítvány"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Speciális beállítások megjelenítése"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-keresési domainek"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-szerverek (pl. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Átirányítási útvonalak (pl. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Felhasználónév"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Jelszó"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Fiók adatainak mentése"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nincs használatban)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne ellenőrizze a szervert)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(szervertől fogadva)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ez a VPN-típus nem maradhat mindig csatlakoztatva"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"A mindig bekapcsolt VPN kizárólag a számjegyekből álló szervercímeket támogatja"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Mindig bekapcsolt VPN-hez DNS szerver megadása kötelező"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Mindig bekapcsolt VPN esetén a DNS-szervercímeknek számjegyekből kell állniuk"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"A megadott információ nem támogatja a mindig bekapcsolt VPN-t"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Mégse"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Elvetés"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN nélküli csatlakozások letiltása"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Kötelezővé teszi a VPN-kapcsolatot?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nem biztonságos. Frissítsen IKEv2 VPN-re."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nem sikerült elindítani a nem támogatott VPN-t."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Válasszon ki egy VPN-profilt, amelyhez mindig csatlakozni szeretne. A hálózati forgalom csak akkor lesz engedélyezve, ha ehhez a VPN-hez csatlakozik."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nincs"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A mindig bekapcsolt VPN-hez a szerver és a DNS IP-címe is szükséges."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"NARANCS riasztás"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Közlemények kérése elrabolt gyerekekről"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ismétlés"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Híváskezelő engedélyezése"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Engedélyezi a szolgáltatás számára a hívások módjának kezelését."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Híváskezelő"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Vezeték nélküli vészjelzések"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Mobilszolgáltatók"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Hozzáférési pontok nevei"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"fizetés, koppintás, kifizetések"</string>
     <string name="keywords_backup" msgid="707735920706667685">"biztonsági másolat, biztonsági mentés"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"kézmozdulat"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"arc, feloldás, hitelesítés, bejelentkezés"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"arc, feloldás, hitelesítés, bejelentkezés, ujjlenyomat, biometria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-verzió, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Indítási hangok"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Élő feliratozás"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatikus feliratozás"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefon hangszórója"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Táblagép hangszórója"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Eszköz hangszórója"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Vezetékes fejhallgató"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"A kompatibilis médiatartalmak hangja még inkább magával ragadó lesz"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Ki"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Mit szeretne megjeleníteni a lezárási képernyőn?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Legutóbbi beszélgetések eltávolítva"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"A beszélgetés eltávolítva"</string>
     <string name="clear" msgid="5092178335409471100">"Törlés"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> eltávolítása"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Az elsődleges és a módosított beszélgetések itt jelennek meg"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Amikor elsődlegesként jelöl meg egy beszélgetést, vagy ha bármilyen más módosítást végez a beszélgetéseken, ezek az információk itt jelennek meg. \n\nA beszélgetésbeállítások módosításához tegye a következőket: \nCsúsztassa le ujját a képernyő tetejétől a lehúzható értesítési felület megnyitásához, majd tartsa lenyomva ujját az egyik beszélgetésen."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Kis méret"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Ki"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Alkalmazáskitűzés"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Az alkalmazáskitűzés funkcióval az aktuális alkalmazás az előtérben marad egészen addig, amíg meg nem szünteti a kitűzést. Így például biztosíthatja, hogy ha valaki másnak adja át eszközét, az illető csak a kiválasztott alkalmazást használhatja."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"A kitűzött alkalmazás megnyithat más alkalmazásokat, és bizonyos személyes adatok hozzáférhetők lehetnek. \n\nAz alkalmazásokat a következőképpen tűzheti ki: 	\n1. Kapcsolja be az alkalmazáskitűzés beállítást. 	\n2. Nyissa meg az Áttekintés nézetet. 	\n3. Koppintson a képernyő tetején található alkalmazásikonra, majd a Kitűzés elemre."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"A kitűzött alkalmazás megnyithat más alkalmazásokat, és bizonyos személyes adatok hozzáférhetők lehetnek. \n\nHa szeretné biztonságosan megosztani eszközét másokkal, próbáljon inkább vendégprofilt használni. \n\nAz alkalmazásokat a következőképpen tűzheti ki: 	\n1. Kapcsolja be az alkalmazáskitűzés beállítást. 	\n2. Nyissa meg az Áttekintés nézetet. 	\n3. Koppintson a képernyő tetején található alkalmazásikonra, majd a Kitűzés elemre."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"A kitűzött alkalmazás megnyithat más alkalmazásokat, és bizonyos személyes adatok hozzáférhetők lehetnek. \n\nAlkalmazáskitűzés használata: 	\n{0,number,integer}. Alkalmazáskitűzés funkció bekapcsolása 	\n{1,number,integer}. Áttekintés megnyitása 	\n{2,number,integer}. Koppintson a képernyő tetején található alkalmazásikonra, majd a Kitűzés elemre."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"A kitűzött alkalmazás megnyithat más alkalmazásokat, és bizonyos személyes adatok hozzáférhetők lehetnek. \n\nHa szeretné biztonságosan megosztani eszközét másokkal, próbáljon inkább vendégprofilt használni. \n\nAlkalmazáskitűzés használata: 	\n{0,number,integer}. Alkalmazáskitűzés funkció bekapcsolása 	\n{1,number,integer}. Áttekintés megnyitása 	\n{2,number,integer}. Koppintson a képernyő tetején található alkalmazásikonra, majd a Kitűzés elemre."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Az alkalmazás kitűzését követően: \n\n•		Bizonyos személyes adatok hozzáférhetők lehetnek \n		(például a névjegyek és az e-mailek tartalma). \n•		A kitűzött alkalmazás más alkalmazásokat is megnyithat. \n\nCsak olyan személyekkel használja az alkalmazáskitűzést, akikben megbízik."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Feloldási minta kérése a rögzítés feloldásához"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"PIN-kód kérése a kitűzés megszüntetéséhez"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Nem használt alkalmazások beállításai"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"App szüneteltetése, ha nem használja"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Engedélyek eltávolítása, ideiglenes fájlok törlése és értesítések leállítása"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Használaton kívüli alkalmazás kezelése"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Engedélyek eltávolítása, ideiglenes fájlok törlése, értesítések leállítása és az alkalmazás archiválása"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Az összes alkalmazás"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Telepített alkalmazások"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Azonnali alkalmazások"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Szabad"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Alkalmazások által használt memória"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 alkalmazás használt memóriát az elmúlt {time} során}other{# alkalmazás használt memóriát az elmúlt {time} során}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Memóriahasználati profil engedélyezése"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"A memóriahasználati profilalkotáshoz további rendszererőforrásokra van szükség."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Memóriahasználati profil kikapcsolva"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Gyakoriság"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximális használat"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nincs felhasznált adatmennyiség"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Megjelenítés a többi alkalmazás fölött"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Más alkalmazások fölé helyezés engedélyezése"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Lehetővé teszi az adott alkalmazás számára, hogy megjelenjen a többi használatban lévő alkalmazás fölött. Ez az alkalmazás látja majd, hogy Ön hova kattint, illetve módosíthatja a képernyőn megjelenő tartalmakat."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Médiakiment módosítása"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Az appok átválthatják a médiakimenetet"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Engedélyezheti, hogy az app eldöntse, melyik csatlakoztatott eszköz játsszon le hang- vagy videótartalmat más appokról. Engedélyezés után az app hozzáférhet a rendelkezésre álló eszközök (pl. fejhallgatók vagy hangfalak) listájához, és eldöntheti, hogy melyik kimeneti eszközzel streamelje vagy küldje át a hang- vagy videótartalmakat."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Hozzáférés minden fájlhoz"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"A hangalapú aktiválás továbbfejlesztése"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Ez az eszköz privát intelligenciát használ a hangalapú aktiválási modell továbbfejlesztéséhez. Az alkalmazások összesített frissítéseket kaphatnak, amelyek összesítése számos felhasználó adatai alapján történik, hogy fenntartsuk az adatvédelmet, miközben mindenki számára jobbá tesszük a modellt.\n\n"<a href="">"További információ a privát intelligenciáró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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g>-os adatforgalmi figyelmeztetés"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g>-os adatforgalmi korlátozás"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g>-os adatforgalmi figyelmeztetés / <xliff:g id="ID_2">^2</xliff:g>-os adatforgalmi korlátozás"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"A szolgáltató adatszámlálási módja eltérhet az eszközétől"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Nem tartalmazza a szolgáltatói hálózatokon használt adatforgalmat"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> felhasználva"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Forgalmi figyelmeztetés beáll."</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Frissítve ennyi ideje: <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Éppen most frissítette a(z) <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Most frissítve"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Csomag megtekintése"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Részletek"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Adatforgalom-csökkentő"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Korlátlan adat"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Akkumulátorhasználati rendellenesség"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Fejlesztői gyorsbeállítási csempék"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Adb-hitelesítés letiltásának időkorlátja"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Az adb-hitelesítések automatikus megvonásának letiltása olyan rendszerek számára, amelyek nem csatlakoztak újra az alapértelmezett (hétnapos) vagy felhasználó által beállított (legalább egynapos) időszakban."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Érzékelők kikapcsolva"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Munkaprofil beállításai"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"A személyes alkalmazások használatakor kereshet a munkahelyi névjegyek címtárában"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Automatikus kitöltés"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Alapértelmezett automatikus kitöltés"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Jelszavak"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"További szolgáltatók"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# jelszó}other{# jelszó}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatikus, kitöltés, automatikus kitöltés, jelszó"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Minden szolgáltatást kikpcsol?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; A rendszer nem fogja automatikusan kitölteni a jelszavakat, azonosítókulcsokat és egyéb mentett adatokat, amikor Ön be van jelentkezve."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Módosítja a preferált szolgáltatást a következőre: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Az új jelszavak, azonosítókulcsok és egyéb adatok mostantól ide lesznek mentve. 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_enable_confirmation_message_title" msgid="1037501792652277829">"Használni szeretné a következőt: %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Legfeljebb öt szolgáltatás lehet egyszerre bekapcsolva"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Újabb szolgáltatás hozzáadásához kapcsoljon ki legalább egyet a meglévők közül"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"A(z) %1$s felhasználja az Ön képernyőjén megjelenő információkat az automatikusan kitölthető elemek meghatározásához."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Jelszavak, azonosítókulcsok és adatszolgáltatások korlátja"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Egyszerre legfeljebb öt aktív jelszava, azonosítókulcsa és adatszolgáltatása lehet. Továbbiak hozzáadásához kapcsolja ki valamelyik szolgáltatást."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Jelszavak, azonosítókulcsok és adatszolgáltatások korlátja"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Egyszerre legfeljebb öt aktív jelszava, azonosítókulcsa és adatszolgáltatása lehet. Továbbiak hozzáadásához kapcsolja ki valamelyik szolgáltatást."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Kikapcsolás"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatikus kitöltés"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Naplózási szint"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Az alkalmazáskompatibilitás csak a hibaelhárításra alkalmas alkalmazásoknál módosítható. Telepítsen hibaelhárításra alkalmas alkalmazást, és próbálja újra."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Másik beállítástól függ"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Fiók"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d fiók"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Eszköznév"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Alapvető adatok"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Jog és szabályozás"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC-címke beolvasásakor ez az alkalmazás elindulhat.\nHa ez az engedély be van kapcsolva, az alkalmazást ki lehet választani címke észlelésekor."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Média lejátszása:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> lejátszása itt:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"A hang lejátszása folytatódik"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Ez az eszköz"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Nem áll rendelkezésre hívások közben"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Hívás fogadása be"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Néma"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Az aktiválásához előbb módosítsa a bekapcsológombhoz tartozó menüben a „Bekapcsológomb lenyomva tartása” beállítást."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Hálózati információk"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Eszköze neve látható a telefonján lévő 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="devices_title" msgid="649715719278562515">"Eszközök"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Hálózat kiválasztása"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Leválasztva"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Név"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Szín (kompatibilis alkalmazásokban)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Mentés"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM-kártya használata"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"A SIM-kártya használata"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Ki"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"A SIM letiltásához távolítsa el a kártyát az eszközből"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Koppintson a következő aktiválásához: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM törlése"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Előnyben részesített hálózattípus"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"A hálózati üzemmód megváltoztatása"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Előnyben részesített hálózattípus"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Az árakat a szolgáltatótól tudhatja meg."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Alkalmazás adathasználata"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Érvénytelen hálózati mód: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Figyelmen kívül hagyás."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Hozzáférési pontok nevei"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nem hozzáférhető, amikor a következőhöz csatlakozik: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vált a(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g> szolgáltatóra?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Átvált SIM-kártya használatára?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"A(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g> szolgáltatót szeretné használni?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Egyszerre csak egy SIM-kártya lehet aktív.\n\nA(z) <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> szolgáltatóra történő váltással nem mondja le a(z) <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> szolgáltatását."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Egyszerre csak egy eSIM lehet aktív.\n\nA(z) <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> szolgáltatóra történő váltással nem mondja le a(z) <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> szolgáltatását."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Egyszerre csak egy SIM-kártya lehet aktív.\n\nA váltással nem mondja le a(z) <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> szolgáltatását."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Egyszerre két SIM-kártyát használhat. A(z) <xliff:g id="CARRIER_NAME">%1$s</xliff:g> szolgáltató használatához kapcsolja ki a másik SIM-kártyát."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Váltás erre: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> kikapcsolása"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Köszönöm, nem"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Mégse"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Váltás"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Kikapcsolás"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nem sikerült a SIM aktiválása"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Próbálkozzon meg újra a SIM bekapcsolásával. Ha a probléma továbbra is fennáll, indítsa újra az eszközt."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"A SIM-kártya beállítása"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Mobilhálózati beállítások módosítása több SIM-kártya használatára ezen a telefonon"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"A SIM-kártyák címkézése"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Ezeket a címkéket hívások indításakor, szöveges üzenetek küldésekor és adatok használatakor, valamint a beállítások között látja majd"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-címke"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Címke"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"SIM-ek kijelölése használathoz"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Egyszerre két SIM-et használhat"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Elsődleges SIM-ek beállítása"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Annak kiválasztása, hogy mely SIM-kártyákat használja alapértelmezés szerint a hívásokhoz, a szöveges üzenetekhez és az adatokhoz"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Az elsődleges SIM-ek"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Hívások"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS-ek"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatikus adatváltás"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Adatok használata bármelyik SIM-ről a lefedettségtől és a rendelkezésre állástól függően"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Csak adatkapcsolat"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Beállítás"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Következő"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilhálózat"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonszám"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-címke és -szín"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Hálózat aktiválása"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Szolgáltatóváltás"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: aktív"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Ha a jövőben mobiladatokkal, telefonhívással, továbbá SMS-ekkel kapcsolatos funkciókat szeretne használni, nyissa meg a hálózati beállításokat"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Törli ezt az eSIM-et?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"A SIM törlésével eltávolítja a(z) <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> szolgáltatását erről az eszközről.\n\nA(z) <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> szolgáltatását nem mondja le."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Törlés"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM törlése…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Nem lehet törölni a SIM-et"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Hiba történt, ezért nem sikerült a letöltött SIM törlése.\n\nIndítsa újra az eszközt, majd próbálja újra."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Csatlakozás adott eszközhöz"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"A(z) <xliff:g id="APPNAME">%1$s</xliff:g> alkalmazás ideiglenes Wi-Fi-hálózatot szeretne használni az eszközhöz való csatlakozáshoz."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nem találhatók eszközök. Ellenőrizze, hogy be vannak-e kapcsolva az eszközök, és lehetséges-e a hozzájuk való csatlakozás."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Segélyhívások"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"A szolgáltatója nem támogatja a Wi‑Fi-híváson keresztüli segélyhívásokat.\nAz eszköz automatikusan mobilhálózatra vált a segélyhívás indításához.\nSegélyhívások indítása csak mobilhálózati lefedettséggel rendelkező területen lehetséges."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Wi-Fi használata a hívásokhoz a minőség javítása érdekében"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Másodlagos hívási lehetőség"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ha a(z) <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nem hozzáférhető, vagy roaming esetén: <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-hívásokhoz használja a SIM mobiladat-forgalmát."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"másodlagos hívási lehetőség"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Bejövő MMS-üzenet"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nem lehet MMS-üzenetet küldeni"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Koppintson az MMS-üzenet-küldés engedélyezéséhez a(z) <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> hálózatán kikapcsolt mobiladatok esetén"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Munkahelyi házirendekkel kapcsolatos adatok"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"A rendszergazda által kezelt beállítások"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Újraindítás 16 kB-os oldalmérettel"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Eszközindítás 16 kB-os oldalakat támogató kernellel"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Újraindítja a rendszert 16 kB-os oldalakkal kompatibilis kernellel?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"FIGYELEM: Előfordulhat, hogy egyes alkalmazások nem kompatibilisek ezzel a móddal. A megerősítést követően újraindul az eszköz."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Újraindítja a rendszert 4 kB-os oldalakkal kompatibilis kernellel?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"A megerősítést követően újraindul az eszköz."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Nem sikerült a kernel frissítése 16 kB-os oldalakkal kompatibilis kernelre."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Módosítás alkalmazása"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Hibajelentés kezelője"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Meghatározza, hogy melyik alkalmazás kezeli a Hibajelentés gyorsparancsot az eszközön."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Személyes"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"A lejátszás gyors folytatásának érdekében a médialejátszó megnyitva marad a Gyorsbeállításokban."</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Médiatartalom megjelenítése a lezárási képernyőn"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"A lejátszás gyors folytatásának érdekében a médialejátszó megnyitva marad a lezárási képernyőn."</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Javasolt médiatartalmak megjelenítése"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"A Segéd által javasolt médiatartalmak megjelenítése"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Az Ön tevékenységei alapján."</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Lejátszó elrejtése"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Lejátszó megjelenítése"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-ek"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktív"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inaktív"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Alapértelmezett a következőhöz: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"hívások"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"A kompatibilis médiatartalmak hangja térhatású"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Fejkövetés"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Feje mozgatásával változik a hang, hogy természetesebbnek tűnjön"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Engedélyek szinkronizálása"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Legyenek megadva a(z) <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> eszközön is a következőn már engedélyezett alkalmazásengedélyek: <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Engedélyek szinkronizálása a telefonról"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Biztosítsa óráján is az ezen a telefonon már engedélyezett alkalmazásengedélyeket"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audioeszköz típusa"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ismeretlen"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Hangszóró"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Közepes"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Nagy"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ez az alkalmazás csak egy ablakban nyitható meg"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Be"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Ki"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Ki"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Ki"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Be"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Ki"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Be"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Ki"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"A világos képernyőket sötétíti, a sötéteket pedig világosítja"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Nagyítás a képernyőn"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Ki"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Ki"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Be"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Ki"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Be"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Jelszó beállítása kész"</string>
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index fb38c9b..64c2775 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 րոպեից"</item>
     <item msgid="1574040255478150028">"5 րոպեից"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index d817a47..8138d14 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Ծրագրավորողի կարգավորումները հասանելի են միայն ադմինիստրատորներին։"</string>
     <string name="header_category_system" msgid="1665516346845259058">"Համակարգ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Շահագործման մեջ է"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Չի շահագործվում"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Սահեցրեք շարունակելու համար"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Ծալեք ձեր հեռախոսը և սահեցրեք վերև՝ առջևի էկրանին, որպեսզի շարունակեք օգտվել հավելվածից, կամ սպասեք մի քանի վայրկյան, մինչև էկրանը կողպվի"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Նմանատիպ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Զանգերանգ և զարթուցիչներ"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Ձայնը զանգերի ժամանակ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Մեդիա"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Ծանուցման և համակարգի ձայներ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Մեդիա և համակարգի ձայներ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Ծանուցումներ"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Ըստ կանխադրման՝ աուդիո ելքը որոշվում է առանձին հավելվածների կողմից"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Անանուն Bluetooth սարք"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Որոնում"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth-ը միացված է"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Տեսնել բոլորը"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Տեսնել բոլորը"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Ստիլուս"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Ստիլուսի կոճակի սեղմում"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (աշխատանքային պրոֆիլ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Միացեք LE Audio հոսքի"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Մոտակա սարքերի աուդիո հոսքերը"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Աուդիո հոսքեր"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Միանալ աուդիո հոսքի՝ QR կոդի միջոցով"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Մոտակայքում աուդիո հոսքեր չեն գտնվել։"</string>
     <string name="date_and_time" msgid="1788358029823431692">"Ամսաթիվ և ժամ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Պրոքսի"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Մաքրել"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Անցեք հավելվածի լեզուների կարգավորումներ՝ ընտրելու լեզու յուրաքանչյուր հավելվածի համար։"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Իմանալ ավելին հավելվածների լեզուների մասին"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Դարձնե՞լ համակարգի լեզուն %s"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Ավելացնե՞լ %s լեզուն նախընտրած լեզուների ցանկում"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Հավելվածներն ու կայքերը կիմանան, որ դուք նախընտրում եք այս լեզուն։"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Ձեր սարքի պարամետրերը և տարածաշրջանային կարգավորումները կփոխվեն։"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Փոխել"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s լեզուն հասանելի չէ"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Շաբաթ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Եթե հավելվածը չի աջակցում տարածաշրջանային կարգավորումներ, այն կօգտագործի տեղույթի կանխադրված կարգավորումները։"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Իմացեք ավելին լեզվի կարգավորումների մասին։"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Լրացուցիչ կարգավորումներ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Դիմելաձև"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Նշեք, թե ինչպես եք ուզում, որ ձեզ դիմեն"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Հավելվածներն օգտագործում են ձեր դիմելաձևը՝ ձեզ դիմելու եղանակն անհատականացնելու համար։"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Նշված չէ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Իգական"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Արական"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Չեզոք"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Հեռացնե՞լ ընտրված լեզուն}one{Հեռացնե՞լ ընտրված լեզուն}other{Հեռացնե՞լ ընտրված լեզուները}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Տեքստը կցուցադրվի մեկ այլ լեզվով:"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Հնարավոր չէ հեռացնել բոլոր լեզուները"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Տեղադրություն"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Օգտագործել տեղորոշումը"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Անջատված է"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Միացված է – Տեղադրության տվյալները հասանելի են # հավելվածի}one{Միացված է – Տեղադրության տվյալները հասանելի են # հավելվածի}other{Միացված է – Տեղադրության տվյալները հասանելի են # հավելվածի}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}one{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}other{Միացված է / Տեղադրության տվյալները հասանելի են # հավելվածի}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Բեռնում…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Հավելվածները, որոնց հասանելի են մոտակա սարքերը, կարող են որոշել միացված սարքերի հարաբերական դիրքավորումը։"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Տեղադրության տվյալների օգտագործման թույլտվությունն անջատված է հավելվածների և ծառայությունների համար։ Ձեր սարքի տեղադրության տվյալները կարող են ուղարկվել փրկարար ծառայություններին, եթե դուք զանգեք կամ հաղորդագրություն գրեք արտակարգ իրավիճակների հեռախոսահամարով։"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Իմանալ ավելին տեղադրության կարգավորումների մասին"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Իմանալ ավելին տեղադրության կարգավորումների մասին"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Տեղորոշման թույլտվությունները փոփոխելու համար անցեք Կարգավորումներ &gt; Գաղտնիություն և անվտանգություն &gt; Գաղտնիության կարգավորումներ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Խորհուրդ ենք տալիս օգտագործել էկրանի պաշտպանիչ՝ «Made for Google» մակնշմամբ։ Էկրանի այլ պաշտպանիչներով սարքերը կարող են չճանաչել ձեր երեխայի մատնահետքը։"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ժամացույցով ապակողպում"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Երբ կարգավորեք դեմքով և մատնահետքով ապակողպումը, հեռախոսը կպահանջի, որ օգտագործեք մատնահետքը, եթե դիմակ կրելիս լինեք կամ լուսավորությունը թույլ լինի։\n\nԵթե չի հաջողվում ճանաչել ձեր դեմքը կամ մատնահետքը, ապա կարող եք հեռախոսն ապակողպել ժամացույցի միջոցով։"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Եթե չի հաջողվում ճանաչել ձեր մատնահետքը, ապա կարող եք սարքն ապակողպել ժամացույցի միջոցով։"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Եթե չի հաջողվում ճանաչել ձեր դեմքը, ապա կարող եք սարքն ապակողպել ժամացույցի միջոցով։"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Երբ կարգավորեք դեմքով և մատնահետքով ապակողպումը, հեռախոսը կպահանջի, որ օգտագործեք մատնահետքը, եթե դիմակ կրելիս լինեք կամ լուսավորությունը թույլ լինի։\n\nԺամացույցով ապակողպումը հարմարավետ եղանակ է հեռախոսն ապակողպելու համար, օրինակ, երբ ձեր ձեռքերը թաց են, կամ դեմքը չի հաջողվում ճանաչել։"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Ժամացույցով ապակողպումը հարմարավետ եղանակ է հեռախոսն ապակողպելու համար, օրինակ, երբ ձեր մատնահետքը չի հաջողվում ճանաչել։"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Ժամացույցով ապակողպումը հարմարավետ եղանակ է հեռախոսն ապակողպելու համար, օրինակ, երբ ձեր դեմքը չի հաջողվում ճանաչել։"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Օգտագործեք մատնահետքը կամ ժամացույցը՝"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Օգտագործեք դիմաճանաչումը կամ ժամացույցը՝"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Օգտագործեք դիմաճանաչումը, մատնահետքը կամ ժամացույցը՝"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Դեմքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Դեմքով, մատնահետքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Դեմքով, մատնահետքերով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticator-ով հեռակա ապակողպում"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ժամացույցն ավելացված է"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Կարգավորեք ձեր ժամացույցը"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ինչպես է դա աշխատում"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ձեր ժամացույցը պետք է լինի ապակողպված, ձեր դաստակի վրա և այս հեռախոսին մոտ։ Քանի դեռ ժամացույցը ձեր դաստակին է, այն նորից ապակողպելու կարիք չի լինի։"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Երբ այս հեռախոսն ապակողպվի, դուք ծանուցում կստանաք ձեր ժամացույցում։ Եթե այն պատահաբար է ապակողպվել, հպեք ծանուցմանը՝ հեռախոսը նորից կողպելու համար։"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ամեն ինչ դուք եք վերահսկում"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Դուք ցանկացած ժամանակ կարող եք «ժամացույցով ապակողպում» գործառույթի կարգավորումներում հեռացնել ձեր ժամացույցը"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Հպեք ծանուցմանը"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Կողպէկրանին սահեցրեք վերև"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Ընտրեք ձեր ժամացույցը"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Հասանելի ժամացույցներ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Չեղարկել"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Հաստատել"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Պատրա՛ստ է։"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Այժմ կարող եք ձեր ժամացույցով ապակողպել այս հեռախոսը՝ մատը կողպէկրանին սահեցնելով կամ հպելով ծանուցմանը"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Պատրաստ է"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ժամացույցով ապակողպում"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Դուք կարող եք ձեր ժամացույցով ապակողպել այս հեռախոսը՝ մատը կողպէկրանին սահեցնելով կամ հպելով ծանուցմանը"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ժամացույցով ապակողպումն օգտագործելու համար ձեր ժամացույցը պետք է լինի ապակողպված, ձեր դաստակի վրա, հասանելիության սահմաններում և միացված այս հեռախոսին։ Եթե կապը խափանվի, դուք պետք է ապակողպեք հեռախոսը, որպեսզի կարողանաք օգտագործել ժամացույցով ապակողպումը։\n\nՆկատի ունեցեք, որ\nմիաժամանակ կարող եք կարգավորել միայն մեկ ժամացույց։ Այլ ժամացույց ավելացնելու համար նախ հեռացրեք ընթացիկը։"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Իմանալ ավելին ժամացույցով ապակողպման մասին"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ավելացնել ժամացույց"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Հեռացնել ժամացույցը"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Մատնահետքով և դեմքով ապակողպում"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Դեմքով և մատնահետքով ապակողպում աշխատանքի համար"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Պահանջվում է կարգավորում"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Անվտանգություն"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Գաղտնիություն"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Աշխատանքային պրոֆիլ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Անձնական տարածք"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Անձնական հավելվածները պահեք կողպված և թաքցված"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Անձնական հավելվածները պահեք առանձին տարածքում, որը կարող եք թաքցնել կամ կողպել"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Անձնական տարածքի կողպում"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Դուք կարող եք օգտագործել ապակողպման նույն եղանակը, որն օգտագործվում է էկրանի համար, կամ ընտրել մեկ ուրիշը"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Օգտագործել սարքի էկրանի կողպումը"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Դեմքով և մատնահետքով ապակողպում"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Մատնահետքով ապակողպում"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Դեմքով ապակողպում"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Հպեք կարգավորելու համար"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Մատնահետքով ապակողպում անձնական տարածքի համար"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Դեմքով ապակողպում անձնական տարածքի համար"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Ապակողպման եղանակներ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Նույնը, ինչ սարքի էկրանի կողպումը"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Ընտրե՞լ նոր կողպում անձնական տարածքի համար։"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Ավտոմատ կողպում"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Մասնավոր տարածքի ավտոմատ կողպում"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Կարող եք այնպես անել, որ ձեր մասնավոր տարածքն ավտոմատ կողպվի, եթե որոշ ժամանակ չօգտագործեք ձեր սարքը"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Ամեն անգամ, երբ սարքը կողպվում է"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Անգործուն մնալուց 5 րոպե հետո"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Երբեք"</string>
+    <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_deleted" msgid="7825768516955610897">"Անձնական տարածքը ջնջվեց"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Անձնական տարածքը չհաջողվեց ջնջել"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Մասնավոր տարածքն ապակողպվել է"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Կարգավորեք էկրանի կողպումը"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Սահմանեք էկրանի կողպում և օգտագործեք ձեր անձնական տարածքը"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Կարգավորել էկրանի կողպումը"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Չեղարկել"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Չեղարկել"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Կարգավորել"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Կարգավորեք անձնական տարածք"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Անձնական հավելվածները պահեք առանձին տարածքում, որը կարող եք թաքցնել կամ կողպել"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Ինչպես է դա աշխատում"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Անձնական տարածք կարող եք անցնել ձեր հավելվածների ցանկի ներքևից"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Անձնական տարածքի հավելվածները պաշտպանված են կողպեքի միջոցով"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Անձնական տարածքում հավելվածներից ծանուցումները թաքցված են, երբ այն կողպված է"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Ձեր անձնական տարածքի հավելվածները չեն ցուցադրվի թույլտվությունների կառավարչում, թույլտվությունների կառավարման վահանակում և այլ կարգավորումներում, .երբ անձնական տարածքը կողպված է։\n\nՁեր անձնական տարածքը հնարավոր չէ տեղափոխել նոր սարք։ Դուք պետք է այլ անձնական տարածք կարգավորեք, եթե ուզում եք այն օգտագործել ուրիշ սարքում։\n\nՑանկացած մեկը, ով ձեր սարքը միացնի համակարգչի կամ վնասաբեր հավելվածներ տեղադրի ձեր սարքում, կկարողանա բացել ձեր անձնական տարածքը։"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Անձնական տարածքի կարգավորում…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Անձնական տարածքում հավելվածներից ծանուցումները թաքցված են, երբ այն կողպված է"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Ապակողպեք անձնական տարածքը, որպեսզի լուսանկարներով կամ ֆայլերով կիսվեք անձնական տարածքի հավելվածներից"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Որոշ հավելվածներ արդեն տեղադրված են ձեր անձնական տարածքում"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Չհաջողվեց անձնական տարածք կարգավորել"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Նորից փորձել"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Օգտագործե՞լ էկրանի կողպում անձնական տարածքի համար"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Դուք կարող եք օգտագործել ապակողպման նույն եղանակը, որն օգտագործվում է էկրանի համար, կամ ընտրել մեկ ուրիշը"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Օգտագործել էկրանի կողպումը"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Ընտրել կողպման այլ եղանակ"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Պատրա՛ստ է"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Անձնական տարածք անցնելու համար բացեք ձեր հավելվածների ցանկը և ոլորեք ներքև"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Պատրաստ է"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Ոլորեք ներքև՝ անձնական տարածքը գտնելու համար"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Ընտրեք անձնական տարածքի կողպում"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Անձնական տարածքը կարող եք ապակողպել ձեր մատնահետքի օգնությամբ։ Անվտանգության նկատառումներից ելնելով՝ այս ընտրանքը պահանջում է կողպման լրացուցիչ տարբերակ։"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"PIN կոդ անձնական տարածքի համար"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Գաղտնաբառ անձնական տարածքի համար"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Նախշ անձնական տարածքի համար"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Անձնական տարածքը ցույց տալու համար (միջերեսը վերջնական չէ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Բացեք «Կարգավորումներ» հավելվածը"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Հպեք Անվտանգություն &amp; Գաղտնիություն &gt; Անձնական տարածք &gt; Թաքցնել Անձնական տարածքը, երբ այն կողպված է"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"«Թաքցնել Անձնական տարածքը, երբ այն կողպված է» փոխանջատիչ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Նշում Google-ի աշխատողների համար․ այս գործառույթը դեռ մշակվում է"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Հնարավոր է պետք լինի մուտքագրել այս անցաբառը այլ սարքերում:"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Հաստատեք՝ համակարգված հավաքածուի հետ զուգակցվելու համար"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Թույլատրել կոնտակտների ու զանգերի պատմության հասանելիությունը"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Նաև հասանելի դարձնել կոնտակտները և զանգերի պատմությունը"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Տեղեկությունները կօգտագործվեն զանգերի մասին ծանուցումների համար և այլ նպատակներով"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Հնարավոր չեղավ միանալ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ին:"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Հասանելի սարքեր"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Ավիառեժիմում"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Ծանուցել բաց ցանցերի մասին"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Տեղեկացնել լավ ազդանշանով բաց ցանցերի հասանելիության մասին"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Թույլատրել WEP-ով ցանցեր"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP-ը պաշտպանության ցածր մակարդակով անվտանգության հին հաղորդակարգ է"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Ձեր օպերատորը չի թույլատրում WEP-ով ցանցեր, քանի որ դրանց պաշտպանության մակարդակը ցածր է"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Ավտոմատ միացնել Wi‑Fi-ը"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi-ը կրկին կմիանա լավ ազդանշանով պահված ցանցերի, օրինակ, ձեր տան ցանցի մոտակայքում"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Անհասանելի է, քանի որ տեղորոշումն անջատված է։ Միացրեք "<annotation id="link">"տեղորոշումը"</annotation>"։"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi ցանցերի որոնումը թույլ է տալիս հավելվածներին և ծառայություններին որոնել Wi‑Fi ցանցեր, նույնիսկ երբ Wi-Fi-ն անջատված է: Դա կարող է բարելավել տեղորոշում օգտագործող գործառույթների ու ծառայությունների ճշգրտությունը:"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Միացնել"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi-Fi ցանցերի որոնումը միացված է"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Այս ցանցն օգտագործում է պաշտպանության ցածր մակարդակով անվտանգության հին հաղորդակարգ"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> հավելվածն արգելափակվեց"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Այս ցանցն օգտագործում է պաշտպանության ցածր մակարդակով անվտանգության հին հաղորդակարգ, որը կոչվում է WEP։ Եթե միևնույն է ուզում եք միանալ, թույլատրեք WEP-ով ցանցերի օգտագործումը։"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Ձեր օպերատորը թույլ չի տալիս միանալ այս ցանցին, քանի որ այն օգտագործում է պաշտպանության ցածր մակարդակով անվտանգության հին հաղորդակարգ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Թույլատրել WEP-ով ցանցեր"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Փակել"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Ընդլայնված ընտրանքներ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Իջնող ցանկի լրացուցիչ կարգավորումներ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ծավալել"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Մնալ Wi-Fi ցանցում"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Այլևս չցուցադրել"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Միանալ"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi-ը միացած է"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Միացած է <xliff:g id="NETWORK_NAME">%1$s</xliff:g> ցանցին"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Միացում <xliff:g id="NETWORK_NAME">%1$s</xliff:g> ցանցին"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Միացում…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ցանցին միանալ չհաջողվեց"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ցանցն անհասանելի է"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Մոռանալ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Փոփոխել"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ցանցը մոռանալ չհաջողվեց"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Պահել"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Չհաջողվեց պահել ցանցը"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Չեղարկել"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Բջջային ինտերնետ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> — Լիցքավորում"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> — Լիցքավորում"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Թեժ կետով միացում"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Կապի ուժգնությունը"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Պահված ցանցեր"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Գաղտնաբառ նշված չէ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Թեժ կետի անունը"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Թեժ կետի գաղտնաբառը"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Հաճախականությունների միջակայք"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Ավտոմատ անջատել թեժ կետը"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Երբ սարքեր միացված չեն"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Ընդլայնված համատեղելիություն"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Անջատել կադրերի կանխադրված հաճախականությունը խաղերի համար"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Անջատեք կադրերի առավելագույն հաճախականության սահմանաչափը <xliff:g id="FRAME_RATE">%1$d</xliff:g> Հց հաճախականությամբ աշխատող խաղերի համար։"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Սահուն պատկեր"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ադապտիվ քնի ռեժիմում սարքն առջևի տեսախցիկի միջոցով տեսնում է, երբ ինչ-որ մեկը նայում է էկրանին։ Այս գործառույթն աշխատում է միայն ձեր սարքում, պատկերները չեն պահվում և չեն ուղարկվում Google-ին։"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Միացնել «Ուշադիր էկրան» ռեժիմը"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Քանի դեռ նայում եք էկրանին, այն վառ կմնա"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Որքան երկար միացված մնա էկրանը, այնքան մարտկոցի լիցքն ավելի արագ կսպառվի։"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Տեսախցիկը կողպված է"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Դիմաճանաչման համար տեսախցիկը պետք է ապակողպված լինի"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Էկրանի ուշադրության համար տեսախցիկը պետք է ապակողպված լինի"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM քարտի բնիկ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM քարտի բնիկ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (հիմնական)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Դիտելու համար ընտրեք պահված ցանցը"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL տարբերակ"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Մարտկոցի մակարդակը"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Ընդհանուր"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ընդհանուր կարգավորումներ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Պահել"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Չեղարկել"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Անվանման դաշտը պետք է լրացված լինի:"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN-ը չի կարող դատարկ լինել:"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC դաշտը պետք է 3 նիշ ունենա:"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC դաշտը պետք է լինի առնվազն 2 կամ 3 թվանշան:"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Օպերատորը չի թույլատրում ավելացնել %s տեսակի APN-ներ:"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-ի դաշտը պետք է վավեր լինի։"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Կանխադրված APN կարգավորումների վերականգնում:"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Վերականգնել կանխադրվածները"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Սկզբնական APN կարգավորումների վերակարգավորումն ավարտված է:"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Զրոյացնել"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth-ի և Wi‑Fi-ի կարգավորումները զրոյացվել են"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Ջնջել eSIM քարտերը"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Բջջային կապի սակագնային պլանները չեն չեղարկվի։ Նոր SIM քարտ ներբեռնելու համար դիմեք ձեր օպերատորին։"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Զրոյացնել կարգավորումները"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Զրոյացնե՞լ ցանցի բոլոր կարգավորումները: Այս գործողությունը հնարավոր չի լինի հետարկել:"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Զրոյացնե՞լ ցանցի բոլոր կարգավորումները և ջնջե՞լ eSIM քարտերը։ Այս գործողությունը չեք կարող հետարկել։"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Վերակայե՞լ:"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Ցանցի վերակայումը հասանելի չէ այս օգտատիրոջ"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Ցանցի կարգավորումները վերակայվել են"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Չհաջողվեց ջնջել SIM քարտերը"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Սխալի պատճառով չհաջողվեց ջնջել eSIM քարտերը։\n\nՎերագործարկեք սարքը և նորից փորձեք։"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Ջնջել բոլոր տվյալները (գործ. վերակայում)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Ջնջել բոլոր տվյալները (գործ. վերակայում)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Երաժշտությունը"</li>\n<li>"Լուսանկարները"</li>\n<li>"Օգտատիրոջ մյուս տվյալները"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM քարտեր"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Ձեր սակագնային պլանը չի չեղարկվի։"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Ձեր բոլոր անձնական տվյալները և ներբեռնված հավելվածները կջնջվեն։ Այս գործողությունը չեք կարող հետարկել։"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Ձեր բոլոր անձնական տվյալները, այդ թվում՝ ներբեռնված հավելվածները և SIM քարտերը կջնջվեն։ Այս գործողությունը չեք կարող հետարկել։"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Ջնջե՞լ բոլոր տվյալները"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Այս օգտատերը չի կարող վերակայել սարքը և վերականգնել գործարանային կարգավորումները"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Ջնջում"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Թեժ կետ, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Ինտերնետը հասանելի չէ այլ սարքերի"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Անջատված է"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Մոդեմի ռեժիմ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Չօգտագործել Wi‑Fi թեժ կետը"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Ինտերնետը տարածել միայն USB-ի միջոցով"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Ինտերնետը տարածել միայն Bluetooth-ի միջոցով"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Ինտերնետը տարածել միայն Ethernet-ի միջոցով"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Ինտերնետը տարածել միայն USB-ի և Bluetooth-ի միջոցով"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Ինտերնետը տարածել միայն USB-ի և Ethernet-ի միջոցով"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Ինտերնետը տարածել միայն Bluetooth-ի և Ethernet-ի միջոցով"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Ինտերնետը տարածել միայն USB-ի, Bluetooth-ի և Ethernet-ի միջոցով"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB մոդեմ"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth մոդեմ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet մոդեմ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Օգտագործեք թեժ կետն ու մոդեմի ռեժիմը՝ ձեր Wi-Fi-ի կամ բջջային ցանցի միջոցով մյուս սարքերին ինտերնետ կապ տրամադրելու համար։ Հավելվածները նույնպես կարող են թեժ կետ ստեղծել՝ մոտակա սարքերի հետ բովանդակությամբ կիսվելու համար։"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Օգնություն"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Բջջային ցանց"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Սակագնային պլան"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-ների փոխանակման հավելված"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Փոխե՞լ SMS-ների փոխանակման հավելվածը"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Որպես SMS-ների փոխանակման հավելված <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g>-ը:"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Փոխե՞լ Wi-Fi օգնականին:"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Օգտագործե՞լ <xliff:g id="NEW_APP">%1$s</xliff:g> ծրագիրը <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ի փոխարեն՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Օգտագործե՞լ <xliff:g id="NEW_APP">%s</xliff:g> ծրագիրը՝ ձեր ցանցային կապերը կառավարելու համար:"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Անհայտ SIM օպերատոր"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ը չունի ոչ մի ծանոթ նախակարգման վեբկայք"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Խնդրում ենք տեղադրել SIM քարտ և վերագործարկել"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Խնդրում ենք միանալ ինտերնետին"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Տեղորոշման վերջին հարցումները"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Տեղ աշխատանքային պրոֆիլի համար"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Տեղորոշման թույլտվություններ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Ջնջել մուտքի տվյալները"</string>
     <string name="controls_label" msgid="8671492254263626383">"Կարգավորիչներ"</string>
     <string name="force_stop" msgid="2681771622136916280">"Կանգնեցնել"</string>
+    <string name="archive" msgid="9074663845068632127">"Արխիվացնել"</string>
+    <string name="restore" msgid="7622486640713967157">"Վերականգնել"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Ընդամենը"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Հավելվածի չափը"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB կրիչի ծրագիր"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Չհաջողվեց հաշվել փաթեթի չափը:"</string>
     <string name="version_text" msgid="7628938665256107608">"տարբերակ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Տեղափոխել"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Չհաջողվեց արխիվացնել"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"«<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>» հավելվածն արխիվացվեց"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Չհաջողվեց վերականգնել"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> հավելվածը վերականգնվում է…"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Մեկ այլ տեղաշարժ արդեն ընթացքում է:"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Պահոցի բավարար տարածք չկա:"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Ծրագիրը գոյություն չունի:"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Հասանելի էկրանային ստեղնաշար"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Կառավարել էկրանի ստեղնաշարը"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Տարբերակներ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Հատուկ գործառույթներ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Ֆիզիկական ստեղնաշար"</string>
     <string name="show_ime" msgid="4334255501724746849">"Օգտագործել էկրանի ստեղնաշարը"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Պահել էկրանին, երբ ֆիզիկական ստեղնաշարն ակտիվ է"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Վերադառնալու ստեղներ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Միացնել վերադառնալու ստեղները ֆիզիկական ստեղնաշարի հատուկ գործառույթների համար"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Կպչուն ստեղներ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Միացնել կպչուն ստեղները ֆիզիկական ստեղնաշարի հատուկ գործառույթների համար"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Ստեղնային դյուրանցումներ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ցույց տալ ստեղնաշարի դյուրանցումների ցանկը"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Աշխատանքային պրոֆիլի ստեղնաշարեր և գործիքներ"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Դասավորել ըստ օգտագործ. ժաման."</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Դասավորել ըստ վերջ. օգտագործ."</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Դասավորել ըստ հավելվ. անվանման"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Վերջին օգտագործումը"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Վերջին օգտագործումը"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"երբեք"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Օգտագործման ժամանակը"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Հատուկ գործառույթներ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Հատուկ գործառույթների կարգավորումներ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Շարունակել"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Չեղարկել"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Խոշորացման կարգավորումներ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Խոշորացում եռակի հպման միջոցով"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Խոշորացում դյուրանցման միջոցով"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Խոշորացնել դյուրանցման կամ եռակի հպելու օգնությամբ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"«<xliff:g id="SERVICE">%1$s</xliff:g>» ծառայության մասին"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Բացելու համար երկու մատով կրկնակի հպեք էկրանին"</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="860548190334486449">"Խոշորացումը միացնելու և անջատելու համար երկու մատով կրկնակի հպեք էկրանի ցանկացած հատվածին։"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Որևէ հատուկ գործառույթ օգտագործելու համար երեք մատը սահեցրեք էկրանի ներքևից վերև։\n\nՄի գործառույթից մյուսին անցնելու համար երեք մատը սահեցրեք էկրանի ներքևից վերև և պահեք։"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Եղավ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Հատուկ գործառ․ կոճակի կարգավ․"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Կոճակի կարգավորումներ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"«<xliff:g id="SERVICE">%1$s</xliff:g>» դյուրանցում"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"«Հատուկ գործառույթներ» կոճակ"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Հատուկ գործառույթների ժեստ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Երկու մատով կրկնակի հպում էկրանին"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"երկու մատով կրկնակի հպում էկրանին"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Երկու մատով {0,number,integer} անգամ արագ հպեք էկրանին"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Եռակի հպեք էկրանին"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"եռակի հպում էկրանին"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Արագ հպեք էկրանին {0,number,integer} անգամ։ Այս դյուրանցումը կարող է դանդաղեցնել սարքի աշխատանքը։"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Իմացեք ավելին «Հատուկ գործառույթներ» կոճակի և ժեստի մասին"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"«Հատուկ գործառույթներ» կոճակի օգտագործում։ Ժեստը հասանելի չէ եռակոճակ նավիգացիայի դեպքում։"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Արագ բացեք հատուկ գործառույթները"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Սկսելու համար կատարեք հետևյալ քայլերը․"</b>\n"1. Անցեք հատուկ գործառույթների կարգավորումներ։\n2. Ընտրեք գործառույթ և հպեք դյուրանցմանը։\n3. Ընտրեք՝ արդյոք գործառույթը միացնելու համար կոճակ եք ուզում օգտագործել, թե ժեստ։"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Սկսելու համար կատարեք հետևյալ քայլերը․"</b>\n"1. Անցեք հատուկ գործառույթների կարգավորումներ։\n2. Ընտրեք գործառույթ և հպեք դյուրանցմանը։\n3. Ընտրեք կոճակը, որով պետք է միացվի գործառույթը։"</string>
+    <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_size_title" msgid="5785110470538960881">"Չափսը"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Սնուցման կոճակը ավարտում է զանգը"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Մկնիկի խոշոր նշորդ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Ավելի նկատելի դարձնել մկնիկի նշորդը"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Բոլոր հավելվածները դարձնել մուգ"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Վերաբերում է մուգ թեմա չունեցող հավելվածներին։ Որոշներում հնարավոր են էկրանի խնդիրներ, օր․՝ գույների շրջում։"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Հեռացնել անիմացիաները"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Նվազեցնել շարժումն էկրանին"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Մոնո"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Կարող է հետագծել ձեր գործողությունները հավելվածներում և սարքակազմի սենսորների վրա, ինչպես նաև հավելվածներում կատարել գործողություններ ձեր անունից։"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Թույլատրել"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Մերժել"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Կանգնեցնել"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Չեղարկել"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Կանգնեցնե՞լ «<xliff:g id="SERVICE">%1$s</xliff:g>» ծառայությունը"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Եթե հպեք <xliff:g id="STOP">%1$s</xliff:g> կոճակին, <xliff:g id="SERVICE">%2$s</xliff:g> ծառայությունը կանջատվի։"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Անջատել"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Ոչ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Անջատե՞լ <xliff:g id="SERVICE">%1$s</xliff:g> ծառայությունը"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Տեղադրված ծառայաթյուններ չկան"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ընտրված ծառայություն չկա"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Որևէ նկարագրություն չկա:"</string>
     <string name="settings_button" msgid="2195468788019730377">"Կարգավորումներ"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"լույսի հանդեպ զգայունություն, լուսաֆոբիա, մուգ թեմա, միգրեն, գլխացավ, ընթերցման ռեժիմ, գիշերային ռեժիմ, պայծառության նվազեցում, սպիտակ կետ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Օգտագործման հարմարություն, հեշտ օգտագործում, օգնություն, օգնող"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"տեսողություն, լսողություն, կույր, խուլ, մոտորիկա, շարժողական ընդունակություններ, օժանդակ, աջակցում, օգտագործման պարզություն, հեշտ հասանելիություն, ձեռք, օգնություն"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Խոշորացում, խոշորացույց, մասշտաբ, թույլ տեսողություն, մեծացում, մեծացնել, խոշորացնել"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Ենթագրեր, տառադարձում, կենդանի տառադարձում, լսողության խանգարում, խլություն, ուղիղ տառադարձություն, խոսքի տառադարձում, ձայնային ներածում, խոսքի ճանաչում"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"գույների կոնտրաստ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"շարժման խանգարումներ, մկնիկ"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"լսողական սարքեր, լսողության խանգարում, լսողության կորուստ, կոխլեար իմպլանտներ, ձայնն ուժեղացնող սարքեր, ձայնային պրոցեսորներ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"մոտորիկա, մկնիկ, արտաքին մկնիկ, գլխի մկնիկ, հարմարվող մկնիկ, անվասայլակ, ջոյսթիք"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"լսողական սարքեր, լսողության խանգարում, լսողության կորուստ, կոխլեար իմպլանտներ, ձայնն ուժեղացնող սարքեր, ձայնային պրոցեսորներ, հերթապահության միասնական դիսպետչերական ծառայություն"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"լսողության խանգարում, խլություն, ենթագրեր, տելեթայփ, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"երեք կոճակ"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"շարժողական ընդունակություններ, մոտորիկա, տարեց, արթրիտ, կրկնվող լարվածության հետևանքով վնասվածք, կաթված, տրեմոր, ցրված սկլերոզ, մանկական ուղեղային կաթված, դող, ձեռք"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"հետաձգում, շարժողական ընդունակություններ, տարեց"</string>
     <string name="print_settings" msgid="8519810615863882491">"Տպում"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Անջատված է"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Տպելու 1 ծառայություն միացված է}one{Տպելու # ծառայություն միացված է}other{Տպելու # ծառայություն միացված է}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Տեսեք, թե որ հավելվածներն են ամենաշատը օգտագործում մարտկոցի լիցքը"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Մարտկոցը պաշտպանելու համար լիցքավորումն օպտիմալացվել է"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Մարտկոցի աշխատաժամանակը երկարացնելու համար լիցքավորումն օպտիմալացվել է"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Մարտկոցը պաշտպանելու համար լիցքավորումն օպտիմալացվել է"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Մարտկոցի աշխատաժամանակը երկարացնելու համար լիցքավորումն օպտիմալացվում է, երբ սարքը տեղադրված է լինում դոկ-կայանում"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Մարտկոցը պաշտպանելու համար լիցքավորումն օպտիմալացվել է"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Մարտկոցի աշխատաժամանակը երկարացնելու համար լիցքավորումն օպտիմալացվում է, երբ սարքը տեղադրված է լինում դոկ-կայանում"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Լրիվ լիցքավորում"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Մարտկոցը պաշտպանելու համար լիցքավորումը կօպտիմալացվի, երբ հաջորդ անգամ պլանշետը տեղադրված լինի դոկ-կայանում"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Իմանալ ավելին լիցքավորման դադարեցման մասին"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Վերսկսել լիցքավորումը"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Ներառում է ֆոնային էներգատար գործողություններ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ջնջել"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Չեղարկել"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Լիցքավորել ամբողջությամբ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Լիցքավորիչի հետ կապված խնդիր"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Իմանալ ավելին անհամատեղելի ադապտերով լիցքավորման մասին"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Մարտկոցի կառավարիչ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Հավելվածների ավտոմատ կառավարում"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"հիմա"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Մարտկոցի օգտագործման գծապատկեր"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Մարտկոցի օրական օգտագործման գծապատկեր"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Մարտկոցի ամենժամյա օգտագործման գծապատկեր"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Մարտկոցի լիցքի մակարդակը՝ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>-ից <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Մարտկոցի օգտագործումը վերջին լրիվ լիցքավորումից հետո"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Մարտկոցի օգտագործումը (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Սարքի օգտագործման ժամանակը վերջին լրիվ լիցքավորումից հետո"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Արտակարգ կանչի համարհավաքման ազդանշան"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Կարգավորել աշխատանքի ռեժիմը շտապ կանչի դեպքում"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Պահուստավորում"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Միացված է"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Անջատված է"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Պահուստավորել և վերականգնել"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Անձնական տվյալներ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Պահուստավորել իմ տվյալները"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Անուն"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Տեսակը"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Սերվերի հասցեն"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP գաղտնագրում (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP գաղտնիք"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec նույնացուցիչ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec նախորոշված բանալին"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec օգտատիրոջ վկայագիրը"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA հավաստագիր"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec սերվերի հավաստագիր"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Ցույց տալ լրացուցիչ ընտրանքները"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS որոնման տիրույթներ"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS սերվերներ (օրինակ՝ 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Փոխանցման երթուղիներ (օրինակ՝ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Օգտանուն"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Գաղտնաբառ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Պահել հաշվի տեղեկությունները"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(չի օգտագործվում)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(սերվերը չստուգել)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(սերվերից ստացված)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"VPN-ի այս տեսակը չի կարող միշտ միացված լինել"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"«Միշտ միացված» VPN-ը աջակցում է միայն սերվերի թվային հասցեները"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"«Միշտ միացված» VPN-ի համար անհրաժեշտ է սահմանել DNS սերվեր"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"«Միշտ միացված» VPN-ի համար DNS սերվերի հասցեները պետք է թվային լինեն"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Մուտքագրած տվյալները չեն աջակցում VPN-ի «միշտ միացված» ռեժիմը"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Չեղարկել"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Փակել"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Արգելափակել առանց VPN-ի միացումները"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN միացում պահանջե՞լ։"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Անվտանգ չէ․ անցեք IKEv2 VPN-ի"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Չհաջողվեց գործարկել չաջակցվող VPN-ը։"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Ընտրել VPN պրոֆիլ` այդ պրոֆիլին միշտ միացված լինելու համար: Ցանցային շրջանառությունը թույլատրված կլինի միայն VPN-ին միացված ժամանակ:"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ոչ մեկը"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Միշտ միացված VPN-ը պահանջում է IP հասցե սերվերի և DNS-ի համար:"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER ծանուցումներ"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Ստանալ ամփոփագրեր երեխաների առևանգման մասին"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Կրկնել"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Միացնել Զանգերի կառավարիչը"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Թույլ տալ այս ծառայությանը կառավարել ձեր զանգերը:"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Զանգերի կառավարիչ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Արտակարգ իրավիճակների անլար ահազանգեր"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Կապի օպերատորներ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Մուտքի կետերի անունները"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"վճարել, հպել, վճարումներ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"պահուստավորում, պահուստավորել"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ժեստ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"դեմք, ապակողպում, ճանաչում, մուտք"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"դեմք, ապակողպում, ապակողպել, նույնականացում, մուտք, մտնել, մատնահետք, կենսաչափական համակարգեր"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-ի տարբերակ, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Միացման ձայներ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Կենդանի ենթագրեր"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Ավտոմատ ավելացնել ենթագրեր"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Հեռախոսի բարձրախոսներ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Պլանշետի բարձրախոսներ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Սարքի բարձրախոսներ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Լարով ականջակալ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Համատեղելի մեդիա սարքերի ձայնը դառնում է ավելի արտահայտիչ"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Անջատված է"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Վերջին զրույցները հեռացվեցին"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Զրույցը հեռացվեց"</string>
     <string name="clear" msgid="5092178335409471100">"Մաքրել"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Հեռացնել օգտատիրոջը (<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>)"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Կարևոր և փոփոխված զրույցները կցուցադրվեն այստեղ"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Այստեղ կցուցադրվեն զրույցներում կատարված բոլոր փոփոխությունները (օրինակ՝ եթե զրույցը դարձնեք կարևոր)։ \n\nԻնչպես փոփոխել զրույցի կարգավորումները․ \nՄատը սահեցրեք էկրանի վերևից ներքև՝ իջնող վահանակը բացելու համար, ապա հպեք զրույցին և պահեք։"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Ծալել"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Անջատված է"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Հավելվածների ամրացում"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Հավելվածների ամրացման օգնությամբ դուք կարող եք տեսադաշտում պահել ընթացիկ հավելվածն այնքան ժամանակ, մինչև չապամրացնեք այն։ Այս գործառույթը կարող է օգտագործվել, օրինակ, երբ ուզում եք թույլ տալ ձեր վստահելի ընկերոջը որոշակի խաղ խաղալ։"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Երբ որևէ հավելված ամրացված է, այն կարող է այլ հավելվածներ բացել։ Դրան կարող են նաև հասանելի լինել ձեր անձնական տվյալները։ \n\nՀավելվածների ամրացման գործառույթն օգտագործելու համար՝ 	\n1. Միացրեք հավելվածների ամրացումը։ 	\n2. Բացեք Համատեսքը։ 	\n3. Էկրանի վերևում հպեք հավելվածի պատկերակին, այնուհետև հպեք «Ամրացնել»։"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Երբ որևէ հավելված ամրացված է, այն կարող է այլ հավելվածներ բացել։ Դրան կարող են նաև հասանելի լինել ձեր անձնական տվյալները։ \n\nԵթե ձեր սարքից պետք է այլ մարդիկ օգտվեն, և դուք ուզում եք ձեզ ապահով զգալ, կարող եք հյուր ստեղծել։ \n\nՀավելվածների ամրացման գործառույթն օգտագործելու համար՝ 	\n1. Միացրեք հավելվածների ամրացումը։ 	\n2. Բացեք Համատեսքը։ 	\n3. Էկրանի վերևում հպեք հավելվածի պատկերակին, այնուհետև հպեք «Ամրացնել»։"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Կառավարել հավելվածը, եթե չի օգտագործվում"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Հեռացնել թույլտվությունները, ջնջել ժամանակավոր ֆայլերը, դադարեցնել ծանուցումները և արխիվացնել հավելվածը"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Բոլոր հավելվածները"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Տեղադրված հավելվածներ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Ակնթարթային հավելվածները"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Ազատ է"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Հավելվածների օգտագործած հիշողությունը"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Վերջին {time}ում հիշողությունն օգտագործվել է 1 հավելվածի կողմից}one{Վերջին {time}ում հիշողությունն օգտագործվել է # հավելվածի կողմից}other{Վերջին {time}ում հիշողությունն օգտագործվել է # հավելվածի կողմից}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Միացնել հիշողության պրոֆիլավորումը"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Հիշողության օգտագործման պրոֆիլավորման համար պահանջվում են համակարգի լրացուցիչ ռեսուրսներ։"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Հիշողության օգտագործման պրոֆիլավորումը միացված է"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Հաճախականություն"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Առավելագույն օգտագործումը"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Օգտագործված թրաֆիկ չկա"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Ցուցադրում այլ հավելվածների վրայից"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Ցուցադրել մյուս հավելվածների վրայից"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Թույլատրել այս հավելվածի ցուցադրումը մյուս ակտիվ հավելվածների վրայից: Այն կկարողանա տեսնել հպումները և փոխել էկրանին ցուցադրվող բովանդակությունը։"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Փոխել մեդիա արտածումը"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Թույլատրել հավելվածին փոխել մեդիա արտածումը"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Թույլատրել այս հավելվածին ընտրել, թե որ միացված սարքը աուդիո կամ վիդեո նվագարկի այլ հավելվածներից։ Թույլտվության դեպքում այս հավելվածը կկարողանա բացել հասանելի սարքերի, օրինակ՝ ականջակալների և բարձրախոսների ցանկը և ընտրել, թե արտածման որ սարքն օգտագործվի աուդիո կամ վիդեո հեռարձակելու համար։"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Բոլոր ֆայլերի հասանելիություն"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Բարելավել ձայնով ակտիվացումը"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Այս սարքն օգտագործում է անձնական տեղեկություններ՝ ձայնով ակտիվացման մոդելը բարելավելու համար։ Հավելվածները կարող են օգտագործել ամփոփ թարմացումներ, որոնք հավաքվել են տարբեր օգտատերերից՝ պահպանելով գաղտնիությունը և բարելավելով մոդելը բոլորի համար։\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Թրաֆիկի օգտագործման զգուշացում` <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Թրաֆիկի օգտագործման սահմանաչափ՝ <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Թրաֆիկի օգտագործման զգուշացում` <xliff:g id="ID_1">^1</xliff:g> / Թրաֆիկի օգտագործման սահմանաչափ` <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Օպերատորի վիճակագրությունը կարող է տարբերվել սարքի տվյալներից։"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Օպերատորների կողմից սպասարկվող ցանցերի տվյալները չեն հետագծվում"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Օգտագործվել է <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Նախազգուշացում դնել"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Թարմացվել է <xliff:g id="ID_1">^2</xliff:g> առաջ"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Թարմացվել է հենց նոր <xliff:g id="ID_1">^1</xliff:g>-ի կողմից"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Թարմացվել է հենց նոր"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Դիտել սակագնային պլանը"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Տեսնել մանրամասները"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Թրաֆիկի տնտեսում"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Տվյալների անսահմանափակ օգտագործում"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Մարտկոցի անկանոն օգտագործում"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Ծրագրավորողի արագ կարգավորման սալիկներ"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Անջատել adb թույլտվությունների սպասման ժամանակը"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Անջատել adb թույլտվությունների ավտոմատ չեղարկումը այն համակարգերի համար, որոնք նորից չեն միացել կանխադրված (7 օր) կամ օգտատիրոջ կողմից կարգավորված (առնվազն 1 օր) ժամանակահատվածում։"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-ի հետագծում"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Տվիչներն անջատված են"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Աշխատանքային պրոֆիլի կարգավորումներ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Որոնել կոնտակտներ աշխատանքային գրացուցակներից անձնական հավելվածներում"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Ինքնալրացման ծառայություն"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Ինքնալրացման կանխադրված ծառայություն"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Գաղտնաբառեր"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Լրացուցիչ մատակարարներ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# գաղտնաբառ}one{# գաղտնաբառ}other{# գաղտնաբառ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ավտոմատ, լրացում, ինքնալրացում, գաղտնաբառ"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"տվյալներ, անցաբառ, գաղտնաբառ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ավտոմատ, լրացնել, ինքնալրացում, տվյալներ, անցաբառ, գաղտնաբառ"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Անջատե՞լ բոլոր ծառայությունները&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Գաղտնաբառերը, անցաբառերը և այլ տեղեկություններ հասանելի չեն լինի ինքնալրացման համար, երբ հաշիվ մտնեք"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Փոխարինե՞լ նախընտրած ծառայությունը նորով՝ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Նոր գաղտնաբառերը, անցաբառերը և այլ տեղեկություններ այսուհետ կպահվեն այստեղ։ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; հավելվածը կարող է օգտագործել ձեր էկրանի բովանդակությունը՝ որոշելու, թե ինչ կարելի է ինքնալրացնել"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Օգտագործե՞լ %1$s"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Դուք կարող եք միայն 5 միացված ծառայություն ունենալ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Անջատեք առնվազն մեկ ծառայություն՝ նորն ավելացնելու համար"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s-ն օգտագործում է ձեր էկրանի բովանդակությունը՝ որոշելու, թե ինչ կարելի է ինքնալրացնել։"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայությունների քանակը սահմանափակ է"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Միաժամանակ դուք կարող եք ունենալ գաղտնաբառերի, անցաբառերի և տվյալների պահման մինչև 5 ակտիվ ծառայություն։ Նոր ծառայություն ավելացնելու համար անջատեք եղածներից որևէ մեկը։"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայությունների քանակը սահմանափակ է"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Միաժամանակ դուք կարող եք ունենալ գաղտնաբառերի, անցաբառերի և տվյալների պահման մինչև 5 ակտիվ ծառայություն։ Նոր ծառայություն ավելացնելու համար անջատեք եղածներից որևէ մեկը։"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Անջատել"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Ինքնալրացում"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Գրանցման մակարդակ"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Համատեղելիության փոփոխություններ հնարավոր է կատարել միայն վրիպազերծելի հավելվածներում։ Տեղադրեք վրիպազերծելի հավելված և նորից փորձեք։"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Այս կարգավորումը կախված է այլ պարամետրերից"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Հաշիվ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d հաշիվ"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Սարքի անունը"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Հիմնական տեղեկություններ"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Իրավական և կանոնակարգային տեղեկություններ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Թույլատրեք, որ այս հավելվածը գործարկվի NFC պիտակի սկանավորման ժամանակ։\nԵրբ այս թույլտվությունը միացված է, պիտակի հայտնաբերման դեպքում հավելվածը հասանելի կլինի որպես տարբերակ։"</string>
     <string name="media_output_title" msgid="8283629315159510680">"Որտեղ նվագարկել"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> – որտեղ նվագարկել"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Աուդիոն կնվագարկվի հետևյալ սարքում՝"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Այս սարքը"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Զանգի ընթացքում հասանելի չէ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Զանգն ընդունել հետևյալ սարքում՝"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Անձայն"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Միացնելու համար նախ նշեք, որ «Սեղմել և պահել սնուցման կոճակը» գործողության դեպքում սնուցման կոճակի ընտրացանկը բացվի։"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Ցանցի տվյալներ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Ձեր սարքի անունը տեսանելի է հեռախոսում տեղադրված հավելվածներին։ Այն կարող են տեսնել օգտատերերը, երբ միանում եք Bluetooth սարքերի, Wi-Fi ցանցի, կամ կարգավորում եք Wi-Fi թեժ կետ։"</string>
     <string name="devices_title" msgid="649715719278562515">"Սարքեր"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Ընտրել ցանց"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Անջատված է"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Անուն"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Գույն (համատեղելի հավելվածների համար)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Պահել"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Օգտագործել SIM քարտ"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Օգտագործել այս SIM քարտը"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Անջատած"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Այս SIM-ն անջատելու համար հանեք այն սարքից"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Հպեք՝ <xliff:g id="CARRIER">%1$s</xliff:g>-ի քարտն ակտիվացնելու համար"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ջնջել SIM քարտի տվյալները"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Ցանցի նախընտրելի տեսակը"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Ցանցի աշխատանքի ռեժիմի փոփոխություն"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Ցանցի նախընտրելի տեսակը"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Գների վերաբերյալ տեղեկություններ ստանալու համար դիմեք ձեր օպերատորին:"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Հավելվածների թրաֆիկ"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ցանցի անվավեր ռեժիմ՝ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>։ Փակել։"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Մուտքի կետերի անունները"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Հասանելի չէ <xliff:g id="CARRIER">%1$s</xliff:g>-ին միանալու դեպքում"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Անցնե՞լ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-ին"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Անցնե՞լ SIM քարտի օգտագործմանը"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Օգտագործե՞լ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> օպերատորի ցանցը"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Միաժամանակ ակտիվ կարող է լինել միայն մեկ SIM քարտ։\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-ին անցնելու դեպքում <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-ի սակագնային պլանը չի չեղարկվի։"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Միաժամանակ ակտիվ կարող է լինել միայն 1 eSIM քարտ։\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-ին անցնելու դեպքում <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-ի սակագնային պլանը չի չեղարկվի։"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Միաժամանակ ակտիվ կարող է լինել միայն մեկ SIM քարտ։\n\nՕպերատորին փոխելու դեպքում <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-ի սակագնային պլանը չի չեղարկվի։"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Դուք միաժամանակ կարող եք օգտագործել 2 SIM քարտ։ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> օպերատորի ցանցն օգտագործելու համար անջատեք մյուս SIM քարտը։"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Անցնել <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-ին"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Անջատել <xliff:g id="CARRIER_NAME">%1$s</xliff:g> օպերատորի ցանցը"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ոչ, շնորհակալություն"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Չեղարկել"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Անցնել"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Անջատել"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Չհաջողվեց ակտիվացնել SIM քարտը"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Փորձեք նորից միացնել SIM քարտը։ Եթե խնդիրը չվերանա, վերագործարկեք սարքը։"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Կարգավորեք ձեր SIM քարտը"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Կարգավորեք ձեր բջջային ցանցի պարամետրերը, որպեսզի կարողանաք այս սարքում մի քանի SIM քարտ օգտագործել"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Պիտակեք ձեր SIM քարտերը"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Այս պիտակները կտեսնեք զանգեր կատարելիս, SMS-ներ ուղարկելիս և ինտերնետից օգտվելիս, ինչպես նաև Կարգավորումներում"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM քարտի պիտակ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Պիտակ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Ընտրեք՝ որ SIM-երն օգտագործել"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Դուք միաժամանակ կարող եք օգտագործել 2 SIM քարտ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Սահմանեք ձեր հիմնական SIM-երը"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Ընտրեք, թե որ SIM քարտերն ըստ կանխադրման օգտագործել զանգերի, SMS-ների և բջջային ինտերնետի համար"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Ձեր հիմնական SIM քարտերը"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Զանգեր"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS-ներ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Ավտոմատ անցում բջջ․ ինտերնետին"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Օգտագործեք բջջային ինտերնետ ցանկացած SIM քարտից՝ կախված ծածկույթից և հասանելիությունից"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Միայն բջջային ինտերնետ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Կարգավորել"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Հաջորդը"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Բջջային ցանց"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Հեռախոսահամար"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM քարտի պիտակը և գույնը"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ցանցի ակտիվացում"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Անցում այլ օպերատորի"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ցանցն ակտիվ է"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Բջջային թրաֆիկը, զանգերի գործառույթները և SMS-ներն ավելի ուշ օգտագործելու համար անցեք ցանցի կարգավորումներ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM քարտ"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Ջնջե՞լ այս eSIM քարտը"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Այս SIM-ը ջնջելու դեպքում <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-ի ծառայությունը կհեռացվի սարքից։\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-ի ծառայությունը չի չեղարկվի։"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ջնջել"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM քարտի տվյալները ջնջվում են…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM քարտի տվյալները հնարավոր չէ ջնջել"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Սխալի պատճառով չհաջողվեց ջնջել SIM քարտի տվյալները։\n\nՎերագործարկեք սարքը և նորից փորձեք։"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Միացում սարքին"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> հավելվածը ցանկանում է օգտագործել ժամանակավոր Wi‑Fi ցանց՝ ձեր սարքին միանալու համար։"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Սարքեր չեն գտնվել։ Համոզվեք, որ սարքերը միացված են և հասանելի են կապակցման համար։"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Շտապ կանչեր"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Ձեր օպերատորի ցանցում հնարավոր չէ շտապ կանչեր անել «Զանգեր Wi-Fi-ով» գործառույթի միջոցով:\nՇտապ կանչ կատարելու համար սարքն ավտոմատ կանցնի բջջային ցանցին:\nՇտապ կանչեր կարող եք անել միայն այն տարածքներում, որտեղ կա բջջային ցանցի ծածկույթ:"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Միացեք Wi‑Fi ցանցի՝ զանգերի որակը լավացնելու համար"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Զանգելու պահեստային տարբերակ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Եթե <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>-ն անհասանելի է, օգտագործեք բջջային ինտերնետի SIM քարտը՝ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-ով զանգեր կատարելու և ստանալու համար։"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"զանգելու պահեստային տարբերակ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Մուտքային MMS հաղորդագրություն"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Չհաջողվեց ուղարկել MMS հաղորդագրությունը"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Հպեք՝ MMS հաղորդագրությունները <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>-ի ցանցում թույլատրելու համար, երբ բջջային ինտերնետն անջատված է"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Տեղեկություններ աշխատանքի կանոնների մասին"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ՏՏ ադմինիստրատորի կողմից կառավարվող կարգավորումներ"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Գործարկել էջի 16 ԿԲ չափսով"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Գործարկել սարքը 16 ԿԲ էջի հետ համատեղելի միջուկով"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Վերագործարկե՞լ 16 ԿԲ էջերի հետ համատեղելի միջուկով"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ԶԳՈՒՇԱՑՈՒՄ․ որոշ հավելվածներ կարող են համատեղելի չլինել այս ռեժիմի հետ։ Սարքը կվերագործարկվի հաստատումից հետո։"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Վերագործարկե՞լ 4 ԿԲ էջերի հետ համատեղելի միջուկով"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Սարքը կվերագործարկվի հաստատումից հետո։"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Չհաջողվեց փոխել միջուկը 16 ԿԲ էջերի հետ համատեղելի միջուկով։"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Փոփոխությունը կիրառվում է"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Վրիպակների մասին հաշվետվությունների մշակիչ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Որոշում է, թե որ հավելվածն է ձեր սարքում կառավարում վրիպակների մասին հաշվետվության դյուրանցումը:"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Անձնական"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Մեդիա նվագարկիչը բաց է մնում Արագ կարգավորումներում, որպեսզի կարողանաք անմիջապես վերսկսել նվագարկումը"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Ցույց տալ մեդիա բովանդակությունը կողպէկրանին"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Մեդիա նվագարկիչը բաց է մնում կողպէկրանին, որպեսզի կարողանաք անմիջապես վերսկսել նվագարկումը։"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Ցույց տալ մեդիա բովանդակության առաջարկներ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Ցույց տալ Օգնականի առաջարկվող մեդիա բովանդակությունը"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Ձեր գործողությունների հիման վրա"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Թաքցնել նվագարկիչը"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Ցուցադրել նվագարկիչը"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM քարտ"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM քարտ"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM քարտեր"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Ակտիվ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Ոչ ակտիվ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Կանխադրված՝ «<xliff:g id="ID_1">%1$s</xliff:g>» կատեգորիայի համար"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"զանգեր"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Համատեղելի մեդիա սարքերի ձայնը դառնում է ավելի արտահայտիչ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Գլխի շարժումների հետագծում"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Երբ դուք շարժում եք ձեր գլուխը, ձայնը դառնում է ավելի բնական"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Համաժամացնել թույլտվությունները"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> հավելվածին տվեք նույն թույլտվությունները, որոնք տվել եք <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> սարքում"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Համաժամացնել թույլտվությունները հեռախոսից"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Ժամացույցում հավելվածին տվեք նույն թույլտվությունները, որոնք տվել եք այս հեռախոսում"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Աուդիո սարքի տեսակը"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Անհայտ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Բարձրախոս"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Միջին"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Բարձր"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Այս հավելվածը հնարավոր է բացել միայն մեկ պատուհանում"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Միացված է"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Անջատված է"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Անջատված է"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Անջատված է"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Միացված է"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Անջատված է"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Միացված է"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Անջատված է"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Բաց էկրանները դարձնում է մուգ, իսկ մուգ էկրանները՝ բաց"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Մեծացնել էկրանի մասշտաբը"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Անջատված է"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Անջատված է"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Միացված է"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Անջատված է"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Միացված է"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Գաղտնաբառը կարգավորված է"</string>
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 15ed51f..a5291e5 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Setelah 1 menit"</item>
     <item msgid="1574040255478150028">"Setelah 5 menit"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 712a8da..e71940e 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Sekarang Anda adalah seorang developer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Tidak perlu, Anda sudah menjadi developer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Aktifkan opsi developer terlebih dahulu."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Hanya pengguna admin yang dapat mengakses setelan developer."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Dalam Layanan"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Di Luar Area Layanan"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Layar depan aktif saat perangkat dilipat"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Hanya game, video, dan lainnya"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Layar depan aktif untuk aplikasi agar layar tetap ada aktivitas"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Geser ke atas untuk melanjutkan"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Lipat ponsel dan geser ke atas di bagian layar depan untuk terus menggunakan aplikasi ini, atau tunggu beberapa detik agar layar terkunci"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Jangan pernah"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Layar depan dikunci saat perangkat dilipat"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Gunakan putar otomatis"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Terkait"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Nada dering dan alarm"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio saat panggilan"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Suara notifikasi dan sistem lainnya"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Suara media dan sistem"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifikasi"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Secara default, output audio ditentukan oleh masing-masing aplikasi"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Perangkat Bluetooth tak bernama"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Menelusuri"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth diaktifkan"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Lihat semua"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Lihat semua"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stilus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Tombol stilus ditekan"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Profil kerja)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Hubungkan ke streaming LE audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Streaming audio di sekitar"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Streaming audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Hubungkan ke streaming audio menggunakan kode QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Tidak ada streaming audio di sekitar."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Untuk memilih bahasa bagi setiap aplikasi, buka setelan bahasa aplikasi."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Pelajari bahasa aplikasi lebih lanjut"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Ubah bahasa sistem menjadi %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Tambahkan %s ke bahasa pilihan?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Tindakan ini memberi tahu aplikasi dan situs bahwa Anda juga memilih bahasa ini."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Setelan dan preferensi regional perangkat akan berubah."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Ubah"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s tidak tersedia"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sabtu"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Jika tidak mendukung preferensi regional, aplikasi akan menggunakan setelan lokalitas defaultnya."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Pelajari lebih lanjut preferensi bahasa."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferensi tambahan"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Kata sapaan"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Setel bagaimana Anda ingin disebut"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikasi dapat menggunakan kata sapaan untuk mempersonalisasi sebutan Anda."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Tidak ditentukan"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulin"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Netral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Hapus bahasa yang dipilih?}other{Hapus bahasa yang dipilih?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teks akan ditampilkan dalam bahasa lain."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Tidak dapat menghapus semua bahasa"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokasi"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Gunakan lokasi"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Nonaktif"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Aktif - # aplikasi memiliki akses ke lokasi}other{Aktif - # aplikasi memiliki akses ke lokasi}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktif/# aplikasi memiliki akses ke lokasi}other{Aktif/# aplikasi memiliki akses ke lokasi}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Memuat…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikasi dengan izin Perangkat di sekitar dapat menentukan posisi relatif perangkat terhubung."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Akses lokasi dinonaktifkan untuk aplikasi dan layanan. Lokasi perangkat Anda tetap dapat dikirimkan ke petugas tanggap darurat saat Anda menelepon atau mengirim SMS ke nomor darurat."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Pelajari Setelan Lokasi lebih lanjut."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pelajari lebih lanjut Setelan lokasi"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Untuk mengubah akses lokasi, buka Setelan &gt; Keamanan dan Privasi &gt; Kontrol privasi"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Untuk hasil terbaik, gunakan pelindung layar yang bersertifikasi Made for Google. Jika pelindung layar lain digunakan, sidik jari anak Anda mungkin tidak akan berfungsi."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Buka dengan Smartwatch"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Jika Anda telah menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari, ponsel akan meminta sidik jari saat Anda memakai masker atau berada di area yang gelap.\n\nAnda dapat membuka kunci dengan smartwatch saat wajah atau sidik jari Anda tidak dikenali."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Anda dapat membuka kunci dengan smartwatch saat sidik jari Anda tidak dikenali."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Anda dapat membuka kunci dengan smartwatch saat wajah Anda tidak dikenali."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Saat Anda menyiapkan Buka dengan Wajah dan Buka dengan Sidik Jari, ponsel akan meminta sidik jari saat Anda memakai masker atau berada di area yang gelap.\n\nBuka dengan Smartwatch adalah cara praktis lain untuk membuka kunci ponsel, misalnya, saat jari Anda basah atau wajah Anda tidak dikenali."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Buka dengan Smartwatch adalah cara praktis lain untuk membuka kunci ponsel, misalnya, saat sidik jari Anda tidak dikenali."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Buka dengan Smartwatch adalah cara praktis lain untuk membuka kunci ponsel, misalnya, saat wajah Anda tidak dikenali."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Gunakan sidik jari atau smartwatch untuk"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Gunakan wajah atau smartwatch untuk"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Gunakan wajah, sidik jari, atau smartwatch untuk"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Wajah dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Wajah, sidik jari, dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Wajah, sidik jari, dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Buka Kunci Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch ditambahkan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Menyiapkan smartwatch"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Buka dengan Smartwatch adalah cara praktis lain untuk membuka kunci ponsel ini, misalnya, saat jari Anda basah atau wajah Anda tidak dikenali.\n\nAnda dapat menggunakan smartwatch untuk membuka kunci ponsel ini saat Anda:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Lain kali"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Lanjutkan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Lainnya"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cara kerjanya"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Smartwatch harus tidak terkunci, dikenakan di pergelangan tangan, dan berada dalam jangkauan ponsel ini. Anda tidak perlu membuka kunci smartwatch lagi saat smartwatch sedang dikenakan di pergelangan tangan."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Saat ponsel ini dibuka kuncinya, Anda akan menerima notifikasi di smartwatch. Jika ponsel dibuka kuncinya saat Anda tidak memintanya, ketuk notifikasi untuk mengunci ponsel kembali."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kendali di tangan Anda"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Anda dapat menghapus smartwatch dari Buka dengan Smartwatch kapan saja di Setelan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Ketuk notifikasi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Geser ke atas di layar kunci"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Pilih smartwatch Anda"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Smartwatch yang tersedia"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Batal"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Konfirmasi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Anda sudah siap."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Anda kini dapat menggunakan smartwatch untuk membuka kunci ponsel ini saat menggeser ke atas di layar kunci atau mengetuk notifikasi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Selesai"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Buka dengan Smartwatch"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Anda dapat menggunakan smartwatch untuk membuka kunci ponsel ini saat menggeser ke atas di layar kunci atau mengetuk notifikasi"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Untuk menggunakan Buka dengan Smartwatch, smartwatch harus tidak terkunci, dikenakan di pergelangan tangan, berada dalam jangkauan, dan terhubung ke ponsel ini. Jika koneksi terganggu, Anda harus membuka kunci ponsel sebelum dapat menggunakan Buka dengan Smartwatch.\n\nPerlu diingat:\nAnda hanya dapat menyiapkan satu smartwatch pada satu waktu. Untuk menambahkan smartwatch lain, hapus smartwatch saat ini terlebih dahulu."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Pelajari lebih lanjut Buka dengan Smartwatch"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tambahkan smartwatch"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Hapus smartwatch"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Buka dengan Sidik Jari &amp; Wajah"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Buka dengan Wajah &amp; Sidik Jari untuk profil kerja"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Penyiapan diperlukan"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Keamanan"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privasi"</string>
     <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="2274405892301976238">"Tetap kunci dan sembunyikan ruang pribadi"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Tempatkan aplikasi pribadi di ruang terpisah yang dapat Anda sembunyikan atau kunci"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Kunci Ruang Pribadi"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Anda dapat membuka kunci Ruang Pribadi dengan cara yang sama seperti membuka kunci perangkat, atau memilih kunci lain"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Gunakan kunci layar perangkat"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Buka dengan Wajah &amp; Sidik Jari"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Buka dengan Sidik Jari"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Buka dengan Wajah"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Ketuk untuk menyiapkan"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Buka dengan Sidik Jari untuk Ruang Pribadi"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Buka dengan Wajah untuk Ruang Pribadi"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Cara membuka kunci"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Sama dengan kunci layar perangkat"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Pilih kunci baru untuk Ruang Pribadi?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Mengunci secara otomatis"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Mengunci ruang privasi secara otomatis"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Anda dapat mengunci ruang privasi secara otomatis jika Anda tidak menggunakan perangkat selama jangka waktu tertentu"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Setiap kali perangkat terkunci"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Setelah 5 menit tidak aktif"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Jangan pernah"</string>
+    <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_delete_title" msgid="3075645119800272800">"Hapus Ruang Pribadi"</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="private_space_unlocked" msgid="9091600948712932046">"Ruang privasi tidak terkunci"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setel kunci layar"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Batal"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Siapkan"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Siapkan ruang pribadi"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Tempatkan aplikasi pribadi di ruang terpisah yang dapat Anda sembunyikan atau kunci"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Cara kerjanya"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Anda dapat mengakses ruang pribadi dari bagian bawah daftar aplikasi"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikasi di ruang pribadi dilindungi dengan kunci"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notifikasi dari aplikasi di ruang pribadi disembunyikan saat ruang pribadi dikunci"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Aplikasi di ruang pribadi tidak akan muncul di pengelola izin, dasbor privasi, dan setelan lainnya jika ruang pribadi Anda dikunci.\n\nRuang pribadi tidak dapat dipindahkan ke perangkat baru. Anda harus menyiapkan ruang pribadi lain jika ingin menggunakannya di perangkat lain.\n\nSiapa saja yang menghubungkan perangkat Anda ke komputer atau menginstal aplikasi berbahaya ke perangkat Anda mungkin dapat mengakses ruang pribadi Anda."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Menyiapkan ruang pribadi…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notifikasi dari aplikasi di ruang pribadi disembunyikan saat ruang pribadi dikunci"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Buka ruang pribadi Anda untuk berbagi foto atau file dari aplikasi ruang pribadi"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Beberapa aplikasi sudah diinstal di ruang pribadi"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Tidak dapat menyiapkan ruang pribadi"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Coba Lagi"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Gunakan kunci layar untuk membuka ruang pribadi?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Anda dapat membuka kunci ruang pribadi dengan cara yang sama seperti membuka kunci perangkat, atau memilih kunci lain"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gunakan kunci layar"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Pilih kunci baru"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Semua siap."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Untuk mengakses ruang pribadi, buka daftar aplikasi, lalu scroll ke bawah"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Selesai"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scroll ke bawah untuk menemukan ruang pribadi"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Pilih kunci untuk ruang pribadi Anda"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Anda dapat membuka kunci ruang pribadi menggunakan sidik jari. Demi keamanan, opsi ini memerlukan kunci cadangan."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Setel PIN untuk ruang pribadi Anda"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Setel sandi untuk ruang pribadi Anda"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Setel pola untuk ruang pribadi Anda"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Untuk menampilkan Ruang Pribadi (Bukan UX akhir)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Buka Aplikasi Setelan"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Ketuk Keamanan &amp; privasi &gt; Ruang Pribadi &gt; Sembunyikan Ruang Pribadi saat terkunci"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Nonaktifkan tombol Sembunyikan Ruang Pribadi saat terkunci"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Catatan untuk Googler: Fitur ini sedang dalam proses pengembangan"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Anda mungkin juga perlu mengetikkan sandi ini ke perangkat lain."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Konfirmasikan agar dapat tersambung dengan kumpulan perangkat terkoordinasi"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Izinkan akses ke kontak dan histori panggilan Anda"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Juga izinkan akses ke kontak dan histori panggilan"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info akan digunakan untuk pengumuman panggilan dan lainnya"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Tidak dapat terhubung ke <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Perangkat yang tersedia"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Jika Bluetooth aktif, perangkat dapat berkomunikasi dengan perangkat Bluetooth lain di sekitar"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Dalam mode Pesawat"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Beri tahu untuk jaringan publik"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Beri tahu ketika jaringan publik berkualitas tinggi tersedia"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Izinkan jaringan WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP adalah protokol keamanan lama yang kurang aman"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operator Anda tidak mengizinkan jaringan WEP karena jaringan tersebut kurang aman"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Otomatis aktifkan Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi akan aktif kembali di dekat jaringan berkualitas tinggi yang tersimpan, seperti jaringan rumah Anda"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Tidak tersedia karena lokasi dinonaktifkan. Aktifkan "<annotation id="link">"lokasi"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Pemindaian Wi-Fi memungkinkan aplikasi dan layanan untuk memindai jaringan Wi-Fi kapan saja, meski Wi-Fi nonaktif. Ini dapat dilakukan, misalnya, untuk meningkatkan kualitas fitur dan layanan berbasis lokasi."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktifkan"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Pemindaian Wi-Fi diaktifkan"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Jaringan ini menggunakan protokol keamanan lama yang kurang aman"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> diblokir"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Jaringan ini menggunakan protokol keamanan lama yang disebut WEP, yang kurang aman. Untuk terhubung ke jaringan tersebut, Anda dapat mengizinkan jaringan WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operator Anda tidak mengizinkan Anda terhubung ke jaringan ini karena jaringan tersebut menggunakan protokol keamanan lama yang kurang aman"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Izinkan WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Tutup"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opsi lanjutan"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Menu drop-down Opsi Lanjutan"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"luaskan"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Tetap di Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Jangan tampilkan lagi"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Hubungkan"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi diaktifkan"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Terhubung ke <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Menghubungkan ke <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Menyambungkan…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Gagal menyambung ke jaringan"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Jaringan di luar jangkauan"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Lupakan"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Ubah"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Gagal melupakan jaringan"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Simpan"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Gagal menyimpan jaringan"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Batal"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Data seluler"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Mengisi daya"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Mengisi daya"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Koneksi hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Kekuatan koneksi"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Jaringan tersimpan"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Sandi tidak disetel"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nama hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Sandi hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP Band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Otomatis nonaktifkan hotspot"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Saat tidak ada perangkat terhubung"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Perluas kompatibilitas"</string>
@@ -1008,8 +1149,10 @@
     <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">"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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Nonaktifkan kecepatan frame default untuk game"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Menonaktifkan akan membatasi kecepatan frame maksimum game pada <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Fitur fokus ke layar menggunakan kamera depan untuk mengetahui apakah seseorang sedang melihat layar. Fitur ini berjalan di perangkat, dan gambar tidak pernah disimpan atau dikirim ke Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktifkan fokus ke layar"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Buat layar tetap menyala saat dilihat"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Waktu tunggu layar yang lebih lama akan menggunakan lebih banyak daya baterai."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera dikunci"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera harus dibuka kuncinya untuk Deteksi Wajah"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera harus dibuka kuncinya untuk Fokus ke Layar"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (utama)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Untuk melihat, pilih jaringan yang tersimpan"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versi PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Tingkat baterai"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Umum"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Setelan umum"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Simpan"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Batal"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Bidang Nama wajib diisi."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN wajib diisi."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Bidang MCC harus terdiri dari 3 digit."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Bidang MNC harus 2 atau 3 digit."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operator tidak mengizinkan penambahan APN jenis %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Kolom MMSC harus valid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Memulihkan setelan APN default."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Reset ke default"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Reset setelan APN default selesai."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reset"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi‑Fi telah direset"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Hapus eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Tindakan ini tidak akan membatalkan paket layanan seluler apa pun. Untuk mendownload SIM pengganti, hubungi operator Anda."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Reset setelan"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Reset semua setelan jaringan? Anda tidak dapat mengurungkan tindakan ini."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Reset semua setelan jaringan dan hapus eSIM? Anda tidak dapat mengurungkan tindakan ini."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Reset?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Reset jaringan tidak tersedia untuk pengguna ini"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Setelan jaringan telah direset"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Tidak dapat menghapus SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM tidak dapat dihapus karena terjadi error.\n\nMulai ulang perangkat, lalu coba lagi."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Hapus semua data (reset ke setelan pabrik)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Hapus semua data"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musik"</li>\n<li>"Foto"</li>\n<li>"Data pengguna lainnya"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Tindakan ini tidak akan membatalkan paket layanan seluler."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Semua informasi pribadi dan aplikasi yang didownload akan dihapus. Anda tidak dapat mengurungkan tindakan ini."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Semua informasi pribadi, termasuk aplikasi &amp; SIM yang telah didownload, akan dihapus. Anda tidak dapat mengurungkan tindakan ini."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Hapus semua data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Reset ke setelan pabrik tidak tersedia untuk pengguna ini"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Menghapus"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Tidak berbagi internet dengan perangkat lain"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Nonaktif"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Jangan gunakan hotspot Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Bagikan internet hanya melalui USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Bagikan internet hanya melalui Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Bagikan internet hanya melalui Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Bagikan internet hanya melalui USB dan Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Bagikan internet hanya melalui USB dan Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Bagikan internet hanya melalui Bluetooth dan Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Bagikan internet hanya melalui USB, Bluetooth, dan Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gunakan hotspot dan tethering untuk menyediakan koneksi internet bagi perangkat lain melalui koneksi Wi‑Fi atau data seluler Anda. Aplikasi juga dapat membuat hotspot untuk berbagi konten dengan perangkat sekitar."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Bantuan"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Jaringan seluler"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Paket seluler"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikasi SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Ubah aplikasi SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> dan bukan <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai aplikasi SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Ubah Wi-Fi Assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> sebagai ganti <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengelola koneksi jaringan?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengelola koneksi jaringan?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operator SIM tidak dikenal"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> tidak punya situs web penyediaanyang dikenal"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Masukkan kartu SIM dan mulai ulang"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Sambungkan ke internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Permintaan lokasi terbaru"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokasi untuk profil kerja"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Izin akses lokasi aplikasi"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Hapus akses"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrol"</string>
     <string name="force_stop" msgid="2681771622136916280">"Paksa berhenti"</string>
+    <string name="archive" msgid="9074663845068632127">"Arsipkan"</string>
+    <string name="restore" msgid="7622486640713967157">"Pulihkan"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Ukuran aplikasi"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Apl penyimpanan USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Tidak dapat menghitung ukuran paket."</string>
     <string name="version_text" msgid="7628938665256107608">"versi <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Pindahkan"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Gagal mengarsipkan"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> diarsipkan"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Pemulihan gagal"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Memulihkan <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Migrasi lain sedang berlangsung."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ruang penyimpanan tidak cukup."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Apl tidak ada."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Keyboard virtual yang Tersedia"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Kelola keyboard virtual"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opsi"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Aksesibilitas"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Keyboard fisik"</string>
     <string name="show_ime" msgid="4334255501724746849">"Gunakan keyboard virtual"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Biarkan di layar meski keyboard fisik aktif"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Tombol Pantul"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Aktifkan tombol Pantul untuk aksesibilitas keyboard fisik"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Tombol Lekat"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Aktifkan tombol Lekat untuk aksesibilitas keyboard fisik"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pintasan keyboard"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tampilkan daftar pintasan"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Keyboard &amp; fitur profil kerja"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Urutkan menurut waktu penggunaan"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Urutkan menurut terakhir digunakan"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Urutkan menurut nama aplikasi"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Terakhir kali digunakan"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Terakhir digunakan"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"tidak pernah"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Waktu penggunaan"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Aksesibilitas"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Setelan aksesibilitas"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Tetap lanjutkan"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Batal"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Setelan pembesaran"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Perbesar dengan ketuk 3 kali"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Perbesar dengan pintasan"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Perbesar dengan pintasan &amp; ketuk tiga kali"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Tentang <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Ketuk dua kali layar 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="860548190334486449">"Untuk memulai dan menghentikan pembesaran, ketuk dua 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Untuk menggunakan fitur aksesibilitas, 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_button" msgid="2031773187678948436">"Oke"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Setelan tombol aksesibilitas"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Setelan tombol"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Pintasan <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Tombol aksesibilitas"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gestur aksesibilitas"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Ketuk dua kali layar dengan dua jari"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ketuk dua kali layar dengan dua jari"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ketuk cepat layar sebanyak {0,number,integer} kali dengan dua jari"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ketuk layar tiga kali"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Pelajari tombol aksesibilitas &amp; gestur lebih lanjut"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Menggunakan tombol aksesibilitas. Gestur tidak tersedia dengan navigasi 3 tombol."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Akses fitur aksesibilitas dengan cepat"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Untuk memulai"</b>\n"1. Buka setelan aksesibilitas\n2. Pilih salah satu fitur, lalu ketuk pintasan\n3. Pilih apakah Anda ingin menggunakan tombol atau gestur untuk mengakses fitur tersebut"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Untuk memulai"</b>\n"1. Buka setelan aksesibilitas\n2. Pilih salah satu fitur, lalu ketuk pintasan\n3. Pilih tombol untuk mengakses fitur tersebut"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Untuk memulai&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Buka setelan aksesibilitas&lt;br/&gt; {1,number,integer}. Pilih fitur dan ketuk pintasan&lt;br/&gt; {2,number,integer}. Pilih apakah Anda ingin menggunakan tombol atau gestur untuk mengakses fitur&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Untuk memulai&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Buka setelan aksesibilitas&lt;br/&gt; {1,number,integer}. Pilih fitur dan ketuk pintasan&lt;br/&gt; {2,number,integer}. Pilih tombol untuk mengakses fitur&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Gunakan tombol atau gestur"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokasi"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Ukuran"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Tombol daya untuk tutup telepon"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Kursor mouse besar"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Membuat kursor mouse lebih mudah dilihat"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Tema gelap untuk semua aplikasi"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Berlaku pada aplikasi yang tidak memiliki tema gelap. Beberapa aplikasi mungkin mengalami masalah tampilan, seperti warna terbalik."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Hapus animasi"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Kurangi gerakan di layar"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Voice Access dapat melacak interaksi Anda dengan aplikasi atau sensor hardware, dan berinteraksi dengan aplikasi untuk Anda."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Izinkan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Berhenti"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Batal"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Hentikan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Mengetuk <xliff:g id="STOP">%1$s</xliff:g> akan menghentikan <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Nonaktifkan"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Tetap aktifkan"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Nonaktifkan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Tidak ada layanan terpasang"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Layanan tidak dipilih"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Tidak tersedia deskripsi."</string>
     <string name="settings_button" msgid="2195468788019730377">"Setelan"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensitivitas cahaya, fotofobia, tema gelap, migrain, sakit kepala, mode baca, mode malam, kurangi kecerahan, titik putih"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Kemudahan penggunaan, kemudahan akses, bantuan, asistif"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"penglihatan, pendengaran, tunanetra, tunarungu, motorik, ketangkasan, asistif, bantuan, kemudahan penggunaan, kemudahan akses, tangan, bantuan"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Pembesar Jendela, Zoom, Pembesaran, Gangguan penglihatan, Perbesar, buat lebih besar"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Teks, teks tertutup, CC, Transkripsi Instan, gangguan pendengaran, kerusakan pendengaran, CART, speech to text, subtitel"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontras warna"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorik, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"alat bantu dengar, gangguan pendengaran, kehilangan pendengaran, implan koklea, perangkat amplifikasi, prosesor suara"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorik, mouse, mouse eksternal, mouse kepala, mouse adaptif, kursi roda, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"alat bantu dengar, gangguan pendengaran, kehilangan pendengaran, implan koklea, perangkat amplifikasi, prosesor suara, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"gangguan pendengaran, kerusakan pendengaran, teks, Teletip, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tiga tombol"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ketangkasan, motorik, lansia, artritis, rsi, stroke, tremor, sklerosis ganda, lumpuh otak, gemetar, cedera regangan berulang, tangan"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"penundaan, ketangkasan, lansia"</string>
     <string name="print_settings" msgid="8519810615863882491">"Pencetakan"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Nonaktif"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 layanan cetak aktif}other{# layanan cetak aktif}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Lihat aplikasi dengan penggunaan tertinggi"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Pengisian daya dioptimalkan untuk melindungi baterai"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Untuk membantu memperpanjang masa pakai baterai, pengisian daya dioptimalkan"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Pengisian daya dioptimalkan untuk melindungi baterai"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Untuk membantu memperpanjang masa pakai baterai, pengisian daya dioptimalkan saat dipasang ke dok"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Pengisian daya dioptimalkan untuk melindungi baterai"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Untuk membantu memperpanjang masa pakai baterai, pengisian daya dioptimalkan saat dipasang ke dok"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Mengisi daya sampai penuh"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Untuk melindungi baterai, pengisian daya akan dioptimalkan saat berikutnya tablet dipasang ke dok"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Pelajari lebih lanjut pengisian daya dijeda"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Lanjutkan pengisian daya"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Termasuk aktivitas latar belakang yang menggunakan banyak daya"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Hapus"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Batal"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Isi daya sampai penuh"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Masalah dengan aksesori pengisian daya"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Pelajari lebih lanjut mengisi daya dengan pengisi daya yang tidak kompatibel"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Pengelola Baterai"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Kelola aplikasi secara otomatis"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"sekarang"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Diagram penggunaan baterai"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagram penggunaan baterai per hari"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagram penggunaan baterai per jam"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Persentase level baterai dari <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> hingga <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Penggunaan baterai sejak terakhir kali terisi penuh"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Penggunaan baterai <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Waktu pemakaian perangkat sejak terakhir kali baterai terisi penuh"</string>
@@ -2401,7 +2577,7 @@
     <string name="on_device_recognition_settings_summary" msgid="3292736423223499348">"Pengenalan ucapan di perangkat"</string>
     <string name="tts_engine_preference_title" msgid="7808775764174571132">"Mesin yang dipilih"</string>
     <string name="tts_engine_settings_title" msgid="1298093555056321577">"Setelan mesin"</string>
-    <string name="tts_sliders_title" msgid="6901146958648426181">"Kecepatan bicara &amp; tinggi nada"</string>
+    <string name="tts_sliders_title" msgid="6901146958648426181">"Kecepatan &amp; tinggi nada ucapan"</string>
     <string name="tts_engine_section_title" msgid="5115035218089228451">"Mesin"</string>
     <string name="tts_install_voice_title" msgid="5133545696447933812">"Suara"</string>
     <string name="tts_spoken_language" msgid="4652894245474520872">"Bahasa Lisan"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sinyal panggilan darurat"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Setel perilaku ketika panggilan darurat dilakukan"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Pencadangan"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Aktif"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Nonaktif"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Pencadangan &amp; pemulihan"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Data pribadi"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Cadangkan data saya"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nama"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Jenis"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Alamat server"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Enkripsi PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Rahasia L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Pengenal IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Kunci pra-bagi IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Sertifikat pengguna IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Sertifikat CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Sertifikat server IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Tampilkan opsi lanjutan"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domain penelusuran DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Server DNS (misal: 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rute penerusan (misal: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nama pengguna"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Sandi"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Simpan informasi akun"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(tidak digunakan)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(jangan verifikasi server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(diterima dari server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Jenis VPN ini tidak dapat selalu terhubung"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN selalu aktif hanya mendukung alamat server numerik"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Server DNS untuk VPN selalu aktif harus ditentukan"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Alamat server DNS untuk VPN selalu aktif harus numerik"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Informasi yang dimasukkan tidak mendukung VPN selalu aktif"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Batal"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Tutup"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Memblokir koneksi tanpa VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Perlu sambungan VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tidak aman. Update ke VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Gagal memulai VPN yang tidak didukung."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pilih profil VPN untuk tetap terhubung. Lalu lintas jaringan hanya akan diperbolehkan jika terhubung ke VPN ini."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Tidak ada"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN selalu aktif membutuhkan alamat IP baik untuk server serta DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Notifikasi AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Terima buletin tentang penculikan anak"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ulangi"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktifkan Pengelola Panggilan"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Memungkinkan layanan ini mengelola cara panggilan Anda dilakukan."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Pengelola Telepon"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Peringatan darurat nirkabel"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Penyedia jaringan"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nama poin akses"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"bayar, tempel, pembayaran"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gestur"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"wajah, buka kunci, autentikasi, login"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"wajah, buka kunci, autentikasi, login, sidik jari, biometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versi prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Aktifkan suara"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Teks Otomatis"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Otomatis tambahkan teks ke media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Speaker ponsel"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Speaker tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Speaker perangkat"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Headphone berkabel"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio dari perangkat media yang kompatibel menjadi lebih imersif"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Nonaktif"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Apa yang ingin Anda tampilkan di layar kunci?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Percakapan terakhir dihapus"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Percakapan dihapus"</string>
     <string name="clear" msgid="5092178335409471100">"Hapus"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Hapus <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Percakapan prioritas dan yang diubah akan muncul di sini"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Setelah Anda menandai percakapan sebagai prioritas, atau membuat perubahan lain pada percakapan, percakapan akan muncul di sini. \n\nUntuk mengubah setelan percakapan: \nGeser layar dari atas ke bawah untuk membuka menu notifikasi, lalu sentuh lama percakapan."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Perkecil"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Nonaktif"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Penyematan aplikasi"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Penyematan aplikasi memungkinkan Anda terus menampilkan aplikasi saat ini hingga sematannya dilepas. Fitur ini dapat digunakan, misalnya, untuk mengizinkan teman tepercaya bermain game tertentu."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Saat aplikasi disematkan, aplikasi tersebut mungkin dapat membuka aplikasi lain dan data pribadi mungkin dapat diakses. \n\nUntuk menggunakan penyematan aplikasi: 	\n1. Aktifkan penyematan aplikasi 	\n2. Buka Ringkasan 	\n3. Ketuk ikon aplikasi di bagian atas layar, lalu ketuk Sematkan"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Saat aplikasi disematkan, aplikasi tersebut mungkin dapat membuka aplikasi lain dan data pribadi mungkin dapat diakses. \n\nJika Anda ingin perangkat digunakan orang lain dengan aman, coba gunakan pengguna tamu. \n\nUntuk menggunakan penyematan aplikasi: 	\n1. Aktifkan penyematan aplikasi 	\n2. Buka Ringkasan \n3. Ketuk ikon aplikasi di bagian atas layar, lalu ketuk Sematkan"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Saat aplikasi disematkan, aplikasi tersebut dapat membuka aplikasi lain dan data pribadi mungkin dapat diakses. \n\nUntuk menggunakan penyematan aplikasi: 	\n{0,number,integer}. Aktifkan penyematan aplikasi 	\n{1,number,integer}. Buka Ringkasan 	\n{2,number,integer}. Ketuk ikon aplikasi di bagian atas layar, lalu ketuk Sematkan"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Saat aplikasi disematkan, aplikasi tersebut dapat membuka aplikasi lain dan data pribadi mungkin dapat diakses. \n\nJika Anda ingin perangkat digunakan orang lain dengan aman, coba gunakan pengguna tamu. \n\nUntuk menggunakan penyematan aplikasi: 	\n{0,number,integer}. Aktifkan penyematan aplikasi 	\n{1,number,integer}. Buka Ringkasan 	\n{2,number,integer}. Ketuk ikon aplikasi di bagian atas layar, lalu ketuk Sematkan"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Saat aplikasi disematkan: \n\n•	 Data pribadi mungkin dapat diakses \n		(seperti kontak dan konten email) \n•	 Aplikasi yang disematkan mungkin dapat membuka aplikasi lain \n\nGunakan penyematan aplikasi hanya untuk orang yang Anda percayai."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Minta pola pembuka kunci sebelum melepas sematan"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Minta PIN sebelum melepas sematan"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Setelan aplikasi yang tidak digunakan"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Jeda aktivitas aplikasi jika tak dipakai"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Hapus izin dan file sementara, serta hentikan notifikasi"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Kelola aplikasi jika tidak digunakan"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Menghapus izin dan file sementara, menghentikan notifikasi, serta mengarsipkan aplikasi"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Semua aplikasi"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Aplikasi terinstal"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplikasi instan"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Bebas"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memori yang digunakan oleh aplikasi"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikasi menggunakan memori dalam {time} terakhir}other{# aplikasi menggunakan memori dalam {time} terakhir}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Aktifkan profiling penggunaan memori"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profiling penggunaan memori memerlukan resource sistem tambahan."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profiling memori dinonaktifkan"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekuensi"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Penggunaan maksimum"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Tidak ada data seluler yang digunakan"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Tampilkan di atas aplikasi lain"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Izinkan ditampilkan di atas aplikasi lain"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Mengizinkan aplikasi ini ditampilkan di atas aplikasi lain yang sedang digunakan. Aplikasi ini dapat melihat lokasi ketukan atau mengubah konten yang ditampilkan di layar."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Ubah output media"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Izinkan aplikasi beralih output media"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Izinkan aplikasi ini memilih perangkat terhubung mana yang memutar audio atau video dari aplikasi lain. Jika diizinkan, aplikasi ini dapat mengakses daftar perangkat yang tersedia seperti headphone dan speaker, lalu memilih perangkat output mana yang digunakan untuk melakukan streaming atau transmisi audio atau video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Akses semua file"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Meningkatkan aktivasi suara"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Perangkat ini menggunakan kecerdasan pribadi untuk meningkatkan kualitas model aktivasi suara. Aplikasi dapat menerima ringkasan update yang dikumpulkan dari banyak pengguna untuk menjaga privasi sekaligus meningkatkan kualitas model bagi semua orang.\n\n"<a href="">"Selengkapnya tentang kecerdasan pribadi"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Peringatan penggunaan data <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Batas kuota <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Peringatan penggunaan data <xliff:g id="ID_1">^1</xliff:g> / Batas penggunaan data <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Perhitungan data oleh operator dapat berbeda dengan perhitungan perangkat"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Mengecualikan data yang digunakan oleh jaringan operator"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> digunakan"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Setel peringatan penggunaan data"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Diupdate <xliff:g id="ID_1">^2</xliff:g> lalu"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Diupdate oleh <xliff:g id="ID_1">^1</xliff:g> baru saja"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Baru saja diupdate"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Lihat paket"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Lihat detail"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Penghemat Data"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Data tidak dibatasi"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomali penggunaan baterai"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Kartu setelan cepat developer"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Nonaktifkan waktu tunggu otorisasi adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Nonaktifkan pencabutan otorisasi adb otomatis untuk sistem yang belum terhubung kembali dalam jangka waktu default (7 hari) atau yang dikonfigurasi oleh pengguna (minimal 1 hari)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Pelacakan Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensor Nonaktif"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Setelan profil kerja"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Telusuri kontak direktori kerja di aplikasi pribadi"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Geser ke atas dari pojok bawah untuk memanggil aplikasi asisten digital"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Layanan isi otomatis"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Layanan isi otomatis default"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Sandi"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Sandi, kunci sandi, dan layanan data"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Penyedia tambahan"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# sandi}other{# sandi}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"otomatis, isi, isi otomatis, sandi"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Sandi, kunci sandi, dan layanan data"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Nonaktifkan semua layanan?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Sandi, kunci sandi, dan info tersimpan lainnya tidak akan tersedia untuk pengisian otomatis saat Anda login"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Ubah layanan pilihan Anda ke &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; menggunakan konten di layar untuk menentukan item yang dapat diisi otomatis"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Gunakan %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Anda hanya dapat memiliki 5 layanan aktif"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Nonaktifkan minimal 1 layanan untuk menambahkan layanan lain"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s menggunakan item yang ada di layar untuk menentukan item apa yang dapat diisi otomatis."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Batas sandi, kunci sandi, dan layanan data"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Anda dapat memiliki hingga 5 sandi, kunci sandi, dan layanan data yang aktif secara bersamaan. Nonaktifkan satu layanan untuk menambahkan layanan lain."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Batas sandi, kunci sandi, dan layanan data"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Anda dapat memiliki hingga 5 sandi, kunci sandi, dan layanan data yang aktif secara bersamaan. Nonaktifkan satu layanan untuk menambahkan layanan lain."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Nonaktifkan"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Isi Otomatis"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Level logging"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Perubahan kompatibilitas aplikasi hanya dapat diubah untuk aplikasi yang dapat di-debug. Instal aplikasi yang dapat di-debug dan coba lagi."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Bergantung pada setelan lain"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Akun"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d akun"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nama perangkat"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Info dasar"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Hukum &amp; peraturan"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Izinkan aplikasi ini diluncurkan saat tag NFC dipindai.\nJika izin ini diaktifkan, aplikasi akan tersedia sebagai opsi setiap kali tag terdeteksi."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Putar media ke"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Putar <xliff:g id="LABEL">%s</xliff:g> di"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio akan diputar di"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Perangkat ini"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Tidak tersedia saat panggilan berlangsung"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Jawab panggilan di"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Bisukan"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Untuk mengaktifkan, ubah \"Tekan &amp; tahan tombol daya\" ke menu daya terlebih dahulu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detail jaringan"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nama perangkat terlihat oleh aplikasi di ponsel, dan juga mungkin dilihat oleh orang lain saat Anda menghubungkan ke perangkat Bluetooth atau jaringan Wi-Fi, atau saat menyiapkan hotspot Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Perangkat"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Pilih jaringan"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Terputus"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nama"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Warna (digunakan oleh apl kompatibel)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Simpan"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Gunakan SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Gunakan SIM ini"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Nonaktif"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Untuk menonaktifkan SIM ini, keluarkan kartu SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Ketuk untuk mengaktifkan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Hapus SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferensi jenis jaringan"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Ubah mode pengoperasian jaringan"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferensi jenis jaringan"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Hubungi penyedia jaringan untuk mengetahui harganya."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Penggunaan data oleh aplikasi"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mode Jaringan Tidak Valid <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Abaikan."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nama Titik Akses"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Tidak tersedia saat terhubung ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Beralih ke <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Beralih menggunakan kartu SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Gunakan <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Hanya satu SIM yang dapat diaktifkan pada satu waktu.\n\nBeralih ke <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> tidak akan membatalkan layanan <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Hanya 1 eSIM yang dapat aktif pada satu waktu.\n\nBeralih ke <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> tidak akan membatalkan layanan <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Hanya satu SIM yang dapat diaktifkan pada satu waktu.\n\nPengalihan tidak akan membatalkan layanan <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Anda tidak dapat menggunakan 2 SIM sekaligus. Untuk menggunakan <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, nonaktifkan SIM lainnya."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Alihkan ke <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Nonaktifkan <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Lain kali"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Batal"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Alihkan"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Nonaktifkan"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Tidak dapat mengaktifkan SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Coba aktifkan SIM lagi. Jika masalah berlanjut, mulai ulang perangkat."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Siapkan SIM Anda"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Setel preferensi jaringan seluler Anda untuk menggunakan beberapa SIM di perangkat ini"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Beri label SIM Anda"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Anda akan melihat label ini saat melakukan panggilan, mengirim pesan teks, dan menggunakan data, serta di Setelan"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Label SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Pilih SIM yang akan digunakan"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Anda tidak dapat menggunakan 2 SIM sekaligus"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Setel SIM utama Anda"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Pilih SIM yang akan digunakan secara default untuk melakukan panggilan, mengirim pesan teks, dan menggunakan data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"SIM utama Anda"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Panggilan"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Pesan teks"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Pengalihan data otomatis"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Gunakan data dari salah satu SIM tergantung pada cakupan dan ketersediaan"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Khusus data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Siapkan"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Berikutnya"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Jaringan seluler"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Nomor telepon"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Label dan warna SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivasi jaringan"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Beralih operator"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> aktif"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Untuk menggunakan data seluler, fitur panggilan, dan SMS di lain waktu, buka setelan jaringan"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Hapus eSIM ini?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Menghapus SIM ini akan menghapus layanan <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> dari perangkat ini.\n\nLayanan untuk <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> tidak akan dibatalkan."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Hapus"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Menghapus SIM …"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Tidak dapat menghapus SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"SIM ini tidak dapat dihapus karena terjadi error.\n\nMulai ulang perangkat, lalu coba lagi."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Hubungkan ke perangkat"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikasi <xliff:g id="APPNAME">%1$s</xliff:g> ingin menggunakan jaringan Wi-Fi sementara untuk terhubung ke perangkat"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Perangkat tidak ditemukan. Pastikan perangkat dihidupkan dan dapat terhubung ke jaringan."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Panggilan darurat"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Panggilan darurat melalui Panggilan Wi‑Fi tidak didukung oleh operator Anda.\nPerangkat beralih ke jaringan seluler secara otomatis untuk melakukan panggilan darurat.\nPanggilan darurat hanya dapat dilakukan dengan cakupan seluler."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Gunakan Wi‑Fi untuk melakukan panggilan dengan kualitas lebih baik"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Panggilan cadangan"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Jika <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> tidak tersedia atau sedang roaming, gunakan SIM data seluler untuk panggilan <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"panggilan cadangan"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Pesan MMS masuk"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Tidak dapat mengirim pesan MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Ketuk untuk mengizinkan pengiriman pesan MMS menggunakan <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> saat kuota nonaktif"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Info kebijakan profil kerja Anda"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Setelan yang dikelola oleh admin IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Boot dengan halaman berukuran 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Boot perangkat menggunakan kernel yang didukung halaman berukuran 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Mulai ulang dengan kernel yang kompatibel dengan halaman 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"PERINGATAN: Beberapa aplikasi mungkin tidak kompatibel dengan mode ini. Perangkat akan memulai ulang setelah konfirmasi."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Mulai ulang dengan kernel yang kompatibel dengan halaman 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Perangkat akan memulai ulang setelah konfirmasi."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Gagal mengupdate kernel ke kernel yang kompatibel dengan halaman 16K."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Menerapkan perubahan"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Pengendali laporan bug"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Menentukan aplikasi mana yang menangani pintasan Laporan Bug di perangkat."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Pribadi"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Untuk melanjutkan pemutaran dengan cepat, pemutar media tetap terbuka di Setelan Cepat"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Tampilkan media di layar kunci"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Untuk melanjutkan pemutaran dengan cepat, pemutar media tetap terbuka di layar kunci"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Tampilkan rekomendasi media"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Tampilkan rekomendasi media Asisten"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Berdasarkan aktivitas Anda"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Sembunyikan pemutar"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Tampilkan pemutar"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktif"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Tidak aktif"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Default untuk <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"panggilan telepon"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio dari perangkat media yang kompatibel menjadi lebih imersif"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pelacakan gerak kepala"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio akan berubah saat Anda menggerakkan kepala agar terdengar lebih alami"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinkronkan izin"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Memberi <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> izin aplikasi yang sama dengan yang Anda berikan di <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinkronkan izin dari ponsel"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Memberi smartwatch izin aplikasi yang sama dengan yang Anda berikan di ponsel ini"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Jenis Perangkat Audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tidak diketahui"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Sedang"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Tinggi"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aplikasi ini hanya dapat dibuka di 1 jendela"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktif"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Nonaktif"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Nonaktif"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Nonaktif"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Aktif"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Nonaktif"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Aktif"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Nonaktif"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Mengubah layar terang menjadi gelap dan layar gelap menjadi terang"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Perbesar layar"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Nonaktif"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Nonaktif"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Aktif"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Nonaktif"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Aktif"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Sandi telah siap"</string>
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index d6ece01..8d26706 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Eftir 1 mínútu"</item>
     <item msgid="1574040255478150028">"Eftir 5 mínútur"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 5a9ffb2..1f8c6b7 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Nú ertu orðin(n) þróunaraðili!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Þetta er óþarfi; þú ert nú þegar þróunaraðili."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Virkjaðu valkosti þróunaraðila fyrst."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Aðeins stjórnendur hafa aðgang að stillingum þróunaraðila."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Kerfi"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Innan þjónustusvæðis"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Utan þjónustusvæðis"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Þegar þú brýtur tækið saman kviknar á framskjánum"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Aðeins leikir, vídeó og fleira"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Forrit sem koma í veg fyrir skjáslokknun kveikja á framskjá"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Strjúka upp til að halda áfram"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Leggðu símann saman og strjúktu upp á framskjánum til að halda áfram að nota forritið eða bíddu í nokkrar sekúndur þar til skjárinn læsist"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Aldrei"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Framskjárinn læsist þegar þú brýtur tækið saman"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Nota sjálfvirkan snúning"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Tengt"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Hringitónn og vekjarar"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Hljóð í símtölum"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Efni"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Tilkynningar og önnur kerfishljóð"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Efni og kerfishljóð"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Tilkynningar"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Sjálfgefið er að hvert forrit ákvarði hljóðúttak"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Ónefnt Bluetooth-tæki"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Leitar"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Kveikt á Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Sjá allt"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Sjá allt"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Penni"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Ýtt á pennahnapp"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (vinnusnið)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Tengjast LE-hljóðstreymi"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Nálæg hljóðstreymi"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Hljóðstreymi"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Tengjast hljóðstreymi með QR-kóða"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Engin nálæg hljóðstreymi fundust."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Til að velja tungumál fyrir hvert forrit skaltu fara í tungumálastillingar forrita."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Nánar um tungumál forrita"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Breyta kerfistungumáli í %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Bæta %s við valin tungumál?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Þetta lætur forrit og vefsvæði vita að þú viljir líka nota þetta tungumál."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Tækjastillingum og kjörstillingum svæðis verður breytt."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Breyta"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ekki í boði"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Laugardagur"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ef forrit styður ekki kjörstillingar svæðis notar forritið sjálfgefnar stillingar tungumálskóða."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Nánar um tungumálaval."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Viðbótarstillingar"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Ávarpskyn"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Stilltu hvernig þú vilt láta ávarpa þig"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Forrit geta notað valin kyn til að sérsníða hvernig þau ávarpa þig."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ekki gefið upp"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Kvenkyn"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Karlkyn"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Hlutlaust"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Viltu fjarlægja valið tungumál?}one{Viltu fjarlægja valin tungumál?}other{Viltu fjarlægja valin tungumál?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Texti mun birtast á öðru tungumáli."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ekki er hægt að fjarlægja öll tungumál"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Staðsetning"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Nota staðsetningu"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Slökkt"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Kveikt – # forrit hefur aðgang að staðsetningu}one{Kveikt – # forrit hefur aðgang að staðsetningu}other{Kveikt – # forrit hafa aðgang að staðsetningu}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Kveikt / # forrit hefur aðgang að staðsetningu}one{Kveikt / # forrit hefur aðgang að staðsetningu}other{Kveikt / # forrit hafa aðgang að staðsetningu}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Hleður…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Forrit með heimildir nálægra tækja geta ákvarðað afstæða staðsetningu tengdra tækja."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Slökkt er á aðgangi að staðsetningu fyrir forrit og þjónustur. Staðsetning tækisins kann samt að verða send til viðbragðsaðila þegar þú hringir eða sendir skilaboð í neyðarnúmer."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Nánar um staðsetningarstillingar."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Nánar um staðsetningarstillingar"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Til að breyta aðgangi að staðsetningu skaltu fara í „Stillingar &gt; Öryggi og persónuvernd &gt; Persónuverndarstillingar“"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Best er að nota skjávörn sem er vottuð með merkinu „Hannað fyrir Google“. Óvíst er að barnið geti notað fingrafarið með öðrum skjávörnum."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Opnun með úri"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Þegar þú setur upp andlits- og fingrafarskenni biður síminn um fingrafarið þitt þegar þú ert með grímu eða á dimmum stað.\n\nÞú getur tekið úr lás með úrinu þegar hvorki tekst að greina andlit né fingrafar."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Þú getur tekið úr lás með úrinu þegar ekki tekst að greina fingrafarið."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Þú getur tekið úr lás með úrinu þegar ekki tekst að greina andlitið."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Þegar þú setur upp andlits- og fingrafarskenni biður síminn um fingrafarið þitt þegar þú ert með grímu eða á dimmum stað.\n\n„Opnun með úri“ er önnur þægileg leið til að opna símann, t.d. þegar þú ert með blauta fingur eða andlitið á þér þekkist ekki."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"„Opnun með úri“ er önnur þægileg leið til að opna símann, t.d. þegar fingrafarið þitt þekkist ekki."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"„Opnun með úri“ er önnur þægileg leið til að opna símann, t.d. þegar andlitið á þér þekkist ekki."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Notaðu fingrafarið eða úrið til að"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Notaðu andlitið eða úrið til að"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Notaðu andlitið, fingrafarið eða úrið til að"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Andliti og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Andliti, fingrafari og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Andliti, fingraförum og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Taka úr lás með Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Úri bætt við"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Setja upp úr"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"„Opnun með úri“ er önnur þægileg leið til að opna þennan síma, t.d. þegar þú ert með blauta fingur eða andlitið á þér þekkist ekki.\n\nÞú getur notað úrið þitt til að opna þennan síma þegar þú:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ekki núna"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Halda áfram"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Meira"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Svona virkar þetta"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Úrið þitt verður að vera ólæst, á úlnliðnum og nálægt þessum síma. Þú munt ekki þurfa að taka úrið aftur úr lás á meðan það er á úlnliðnum."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Þegar þessi sími er tekinn úr lás færðu tilkynningu í úrið. Ef hann opnaðist þegar það var ekki ætlunin skaltu ýta aftur á tilkynninguna til að læsa símanum aftur."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Þú ert við stjórnvölinn"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Þú getur fjarlægt úrið úr „Opnun með úri“ hvenær sem er í stillingunum"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Ýttu á tilkynningu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Strjúktu upp á lásskjánum"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Veldu úrið þitt"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tiltæk úr"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Hætta við"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Staðfesta"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Þá er allt klárt!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Núna geturðu notað úrið þitt til að opna þennan síma þegar þú strýkur upp á lásskjánum eða ýtir á tilkynningu"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Lokið"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Opnun með úri"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Þú getur notað úrið þitt til að opna þennan síma þegar þú strýkur upp á lásskjánum eða ýtir á tilkynningu"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Til að nota „Opnun með úri“ verður úrið þitt að vera ólæst, á úlnliðnum, innan seilingar og tengt þessum síma. Ef tengingin rofnar þarftu að opna símann áður en þú getur notað „Opnun með úri“.\n\nHafðu í huga:\nÞú getur aðeins verið með eitt úr uppsett hverju sinni. Til að setja annað úr upp þarftu fyrst að fjarlægja núverandi úr."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Nánar um opnun með úri"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Bæta við úri"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjarlægja úr"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingrafar og andlitskenni"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Andlits- og fingrafarskenni fyrir vinnu"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Þörf er á uppsetningu"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Öryggi"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Persónuvernd"</string>
     <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="2274405892301976238">"Hafðu einkaforrit lokuð og falin"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Geymdu einkaforrit í aðskildu rými sem þú getur falið eða læst"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Læsing einkarýmis"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Nota skjálás tækis"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Andlits- og fingrafarsopnun"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingrafarskenni"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Andlitskenni"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Ýttu til að setja upp"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingrafarskenni fyrir einkarými"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Andlitskenni fyrir einkarými"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Leiðir til að taka úr lás"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Sami skjálás og í tæki"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Velja nýjan lás fyrir einkarými?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Læsa sjálfkrafa"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Læsa leynirými sjálfkrafa"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Þú getur valið að læsa leynirýminu þínu sjálfkrafa ef þú hefur ekki notað tækið í tiltekinn tíma"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Í hvert skipti sem tækið læsist"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Eftir 5 mínútur af aðgerðaleysi"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Aldrei"</string>
+    <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_delete_title" msgid="3075645119800272800">"Eyða 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="private_space_unlocked" msgid="9091600948712932046">"Einkarými var opnað"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setja upp skjálás"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Hætta við"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Setja upp"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Setja upp einkarými"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Geymdu einkaforrit í aðskildu rými sem þú getur falið eða læst"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Svona virkar þetta"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Þú getur nálgast einkarými neðst á forritalistanum"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Forrit í einkarými eru varin með lás"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Tilkynningar forrita í einkarýminu eru faldar þegar það er læst"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Forrit í einkarýminu þínu birtast ekki í leyfisstjóra, á persónuverndarstjórnborði og í öðrum stillingum þegar einkarýmið er læst.\n\nEkki er hægt að flytja einkarýmið yfir í annað tæki. Þú þarft að setja upp nýtt einkarými ef þú vilt nota það í öðru tæki.\n\nHver sem er sem tengir tækið þitt við tölvu eða setur upp skaðleg forrit í tækinu gæti fengið aðgang að einkarýminu."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Setur upp einkarými…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Tilkynningar forrita í einkarými eru faldar þegar það er læst"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Taktu einkarými úr lás til að deila myndum eða skrám úr forritum í rýminu"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Sum forrit eru þegar sett upp í einkarýminu"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Ekki tókst að setja upp einkarými"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Reyna aftur"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Nota skjálás til að taka einkarýmið úr lás?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Þú getur tekið einkarýmið úr lás á sama hátt og tækið eða valið annan lás"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Nota skjálás"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Velja nýjan lás"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Allt tilbúið!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Farðu í forritalistann og flettu niður til að finna einkarýmið þitt"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Lokið"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Flettu niður til að finna einkarými"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Veldu hvernig þú vilt læsa einkarýminu"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Þú getur tekið einkarýmið úr lás með fingrafarinu þínu. Af öryggisástæðum krefst þessi valkostur þess að varalás sé stilltur."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Stilltu PIN-númer fyrir einkarýmið þitt"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Stilltu aðgangsorð fyrir einkarýmið þitt"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Stilltu mynstur fyrir einkarýmið þitt"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Til að sýna einkarými (ekki lokaupplifun notanda)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Opnaðu forritið Stillingar"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Ýttu á Öryggi og persónuvernd &gt; Einkarými &gt; Fela einkarými þegar læst er"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Slökkva á Fela einkarými þegar rofi er læstur"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Athugasemd til starfsmanna Google: Þróun þessa eiginleika er enn í gangi"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Þú gætir einnig þurft að slá þennan aðgangslykil inn á hinu tækinu."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Staðfestu pörun við samstillta settið"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Veita aðgang að tengiliðum þínum og símtalaferli"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Veita einnig aðgang að tengiliðum og símtalaferli"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Upplýsingar verða notaðar fyrir símtalatilkynningar og fleira"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Ekki tókst að tengjast <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tæki í boði"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Þegar kveikt er á Bluetooth getur tækið átt í samskiptum við önnur nálæg Bluetooth-tæki"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Í flugstillingu"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Tilkynna opin net"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Tilkynna þegar opið gæðanet er tiltækt"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Leyfa WEP-netkerfi"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP er eldri öryggissamskiptaregla sem er ekki eins örugg"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Símafyrirtækið þitt leyfir ekki WEP-netkerfi því þau eru ekki eins örugg"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Kveikja sjálfkrafa á Wi-Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi mun kveikja á sér innan sendisviðs vistaðra, öruggra neta, eins og netsins þíns heima"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Ekki tiltækt vegna þess að slökkt er á staðsetningu. Kveiktu á "<annotation id="link">"staðsetningu"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi leit leyfir forritum og þjónustu að leita að Wi-Fi neti hvenær sem er, jafnvel þegar slökkt er á Wi-Fi. Sem dæmi er hægt að nota þetta til að bæta eiginleika og þjónustu sem byggja á staðsetningu."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Kveikja"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Kveikt á Wi‑Fi leit"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Þetta netkerfi notar eldri öryggissamskiptareglu sem er ekki eins örugg"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> er á bannlista"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Þetta netkerfi notar eldri öryggissamskiptareglu sem kallast WEP, sem er ekki eins örugg. Til að tengjast samt sem áður geturðu leyft WEP-netkerfi."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Símafyrirtækið þitt leyfir þér ekki að tengjast þessu netkerfi vegna þess að það notar eldri öryggissamskiptareglu sem er ekki eins örugg"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Leyfa WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Loka"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Ítarlegri valkostir"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Ítarlegir valkostir fellilista"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"Opna"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Halda áfram á Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Aldrei sýna aftur"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Tengjast"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Kveikt á Wi-Fi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Tengt við <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Tengist <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Tengist…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ekk tókst að tengjast neti"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ekkert samband við netkerfi"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Gleyma"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Breyta"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ekki tókst að gleyma neti"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Vista"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Ekki tókst að vista net"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Hætta við"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Farsímagögn"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Í hleðslu"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Í hleðslu"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Tenging við heitan reit"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Tengingarstyrkur"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Vistuð net"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Ekkert aðgangsorð valið"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Heiti á heitum reit"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Aðgangsorð fyrir heitan reit"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Tíðnisvið"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Slökkva á heitum reit sjálfkrafa"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Þegar engin tæki eru tengd"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Auka samhæfi"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Sýna hvítjöfnun"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Slökkva á hámarks rammatíðni fyrir leiki"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Slökkva á takmörkun á hámarks rammatíðni upp á <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz fyrir leiki."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Mýkri mynd"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Skjáskynjun notar fremri myndavélina til að sjá hvort einhver sé að horfa á skjáinn. Skjáskynjun virkar í tækinu, en myndir eru aldrei geymdar eða sendar til Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Kveikja á skjáskynjun"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hafðu kveikt á skjánum á meðan þú horfir á hann"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Langur tími þar til skjárinn slekkur á sér gengur hraðar á rafhlöðuna."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Myndavél er læst"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Taka þarf myndavél úr lás fyrir andlitsgreiningu"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Myndavélin verður að vera ólæst til að nota skjáskynjun"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM-kortarauf <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM-kortarauf <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (aðal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Veldu vistað netkerfi til að skoða"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-útgáfa"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Staða rafhlöðu"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Sameiginlegt"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Sameiginlegar stillingar"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Vista"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Hætta við"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Reiturinn fyrir heiti má ekki vera auður."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Heiti aðgangsstaðar má ekki vera autt."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-reitur verður að innihalda 3 tölustafi."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-reitur verður að innihalda 2 eða 3 tölustafi."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Símafyrirtækið leyfir ekki að APN af gerðinni %s sé bætt við."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-reitur þarf að vera gildur."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Endurheimtir sjálfgefnar stillingar aðgangsstaðar."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Núllstilla"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Sjálfgefnar stillingar aðgangsstaðar endurheimtar."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Endurstilla"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth og Wi‑Fi hafa verið endurstillt"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Eyða eSIM-kortum"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Þetta segir ekki upp neinni áskrift hjá símafyrirtæki. Til að sækja ný SIM-kort þarftu að hafa samband við símafyrirtækið þitt."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Endurstilla"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Endurstilla allar netstillingar? Ekki er hægt að afturkalla þessa aðgerð."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Endurstilla allar netstillingar og eyða eSIM-kortum? Ekki er hægt að afturkalla þessa aðgerð."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Endurstilla?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Núllstilling nets er ekki í boði fyrir þennan notanda"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Netstillingar voru endurstilltar"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Ekki tókst að eyða SIM-korti"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Ekki er hægt að eyða eSIM-kortum vegna villu.\n\nEndurræstu tækið og reyndu aftur."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Eyða öllum gögnum (núllstilla)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Eyða öllum gögnum (núllstilla)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Tónlist"</li>\n<li>"Myndum"</li>\n<li>"Öðrum notandagögnum"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-kort"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Þetta mun ekki segja upp farsímaáskrift þinni."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Öllum persónuupplýsingunum þínum og forritum sem hafa verið sótt verður eytt. Ekki er hægt að afturkalla þessa aðgerð."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Öllum persónuupplýsingunum þínum verður eytt, þar á meðal forritum og SIM-kortum sem hafa verið sótt. Ekki er hægt að afturkalla þessa aðgerð."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Viltu eyða öllum gögnum?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Núllstilling er ekki í boði fyrir þennan notanda"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Eyðir"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Heitur reitur, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Nettengingu er ekki deilt með öðrum tækjum"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Slökkt"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tjóðrun"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ekki nota heitan Wi-Fi reit"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Deila interneti aðeins gegnum USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Deila interneti aðeins með Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Deila interneti aðeins gegnum Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Deila interneti aðeins með USB og Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Deila interneti aðeins gegnum USB og Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Deila interneti aðeins gegnum Bluetooth og Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Deila interneti aðeins gegnum USB, Bluetooth og Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-tjóðrun"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-tjóðrun"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-tjóðrun"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Notaðu heitan reit og tjóðrun til að tengja önnur tæki við internetið í gegnum Wi-Fi eða farsímagagnatenginguna þína. Forrit geta einnig búið til heitan reit til að deila efni með nálægum tækjum."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hjálp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Farsímakerfi"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Farsímaáskrift"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-forrit"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Skipta um SMS-forrit?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Nota <xliff:g id="NEW_APP">%1$s</xliff:g> í stað <xliff:g id="CURRENT_APP">%2$s</xliff:g> sem SMS-forrit?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Skipta um Wi-Fi aðstoð?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Nota <xliff:g id="NEW_APP">%1$s</xliff:g> í stað <xliff:g id="CURRENT_APP">%2$s</xliff:g> til að stjórna nettengingunum þínum?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Nota <xliff:g id="NEW_APP">%s</xliff:g> til að stjórna nettengingunum þínum?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Óþekkt símafyrirtæki SIM-korts"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> er ekki með neitt þekkt úthlutunarvefsvæði"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Settu SIM-kortið í og endurræstu"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Tengdu tækið við netið"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nýlegar staðsetningarbeiðnir"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Staðsetning vinnusniðs"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Staðsetningarheimildir forrits"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Hreinsa aðgang"</string>
     <string name="controls_label" msgid="8671492254263626383">"Stýringar"</string>
     <string name="force_stop" msgid="2681771622136916280">"Þvinga lokun"</string>
+    <string name="archive" msgid="9074663845068632127">"Setja í geymslu"</string>
+    <string name="restore" msgid="7622486640713967157">"Endurheimta"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Samtals"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Stærð forrits"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB-geymsluforrit"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Ekki tókst að reikna út stærð pakka."</string>
     <string name="version_text" msgid="7628938665256107608">"útgáfa <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Færa"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Ekki tókst að setja í geymslu"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> var sett í geymslu"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Ekki tókst að endurheimta"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Endurheimtir <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Annar flutningur er nú þegar í gangi."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ekki nægilegt geymslurými."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Forritið er ekki til."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tiltækt skjályklaborð"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Stjórna skjályklaborðum"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Valkostir"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Aðgengi"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Vélbúnaðarlyklaborð"</string>
     <string name="show_ime" msgid="4334255501724746849">"Nota skjályklaborð"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Haltu því á skjánum meðan vélbúnaðarlyklaborðið er virkt"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Endurkastslyklar"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Virkjaðu endurkastslykla fyrir aukið aðgengi á vélbúnaðarlyklaborðinu"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Festilyklar"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Virkjaðu festilykla fyrir aukið aðgengi á vélbúnaðarlyklaborðinu"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Flýtilyklar"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Sýna lista yfir flýtileiðir"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Lyklaborð og verkfæri vinnusniðs"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Flokka eftir notkunartíma"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Flokka eftir síðustu notkun"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Flokka eftir heiti forrits"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Síðast notað"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Síðast notað"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"aldrei"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Notkunartími"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Aðgengi"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Aðgengisstillingar"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Halda samt áfram"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Hætta við"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Stillingar stækkunar"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Stækka með því að ýta þrisvar"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Stækka með flýtilykli"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Stækka með flýtilykli og með því að ýta þrisvar"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Um þjónustuna „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Ýtt tvisvar á 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="860548190334486449">"Til að ræsa og stöðva stækkun skaltu ýta tvisvar 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Til að nota aðgengiseiginleika 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_button" msgid="2031773187678948436">"Ég skil"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Stillingar fyrir aðgengishnapp"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Stillingar hnapps"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Flýtileið fyrir „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Aðgengishnappur"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Aðgengisbending"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Ýtt tvisvar á skjáinn með tveimur fingrum"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ýtt tvisvar á skjáinn með tveimur fingrum"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ýtt hratt á skjáinn {0,number,integer} sinnum með tveimur fingrum"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ýta þrisvar á skjá"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Frekari upplýsingar um aðgengishnapp og bendingu"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Notkun aðgengishnappsins. Ekki er hægt að nota bendinguna með þriggja hnappa stjórnun."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Skjótur aðgangur að aðgengiseiginleikum"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Til að hefjast handa"</b>\n"1. Opnaðu aðgengisstillingar\n2. Veldu eiginleika og ýttu á flýtileiðina\n3. Veldu hvort þú vilt nota hnapp eða bendingu til að opna eiginleikann"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Til að hefjast handa"</b>\n"1. Opnaðu aðgengisstillingar\n2. Veldu eiginleika og ýttu á flýtileiðina\n3. Veldu hnapp til að opna eiginleikann"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Til að hefjast handa&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Opnaðu aðgengisstillingarnar&lt;br/&gt; {1,number,integer}. Veldu eiginleika og ýttu á flýtileiðina&lt;br/&gt; {2,number,integer}. Veldu hvort þú vilt nota hnapp eða bendingu til að opna eiginleikann&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Til að hefjast handa&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Opnaðu aðgengisstillingarnar&lt;br/&gt; {1,number,integer}. Veldu eiginleika og ýttu á flýtileiðina&lt;br/&gt; {2,number,integer}. Veldu hnappinn til að opna eiginleikann&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Nota hnapp eða bendingu"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Staðsetning"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Stærð"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Aflrofi lýkur símtali"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Stór músarbendill"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Gera músarbendilinn greinilegri"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Nota dökkt þema í öllum forritum"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Gildir um forrit sem eru ekki með innbyggt dökkt þema. Skjávandamál kunna að koma upp í sumum forritum, t.d. umsnúnir litir."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Fjarlægja hreyfimyndir"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Draga úr hreyfingu á skjánum"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Einóma hljóð"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Það getur fylgst með samskiptum þínum við forrit eða skynjara vélbúnaðar og haft samskipti við forrit fyrir þína hönd."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leyfa"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Hafna"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stöðva"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Hætta við"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Stöðva <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ef ýtt er á <xliff:g id="STOP">%1$s</xliff:g> mun <xliff:g id="SERVICE">%2$s</xliff:g> stöðvast."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slökkva"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Hafa kveikt"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Viltu slökkva á <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Engin þjónusta uppsett"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Engin þjónusta valin"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Engin lýsing til staðar."</string>
     <string name="settings_button" msgid="2195468788019730377">"Stillingar"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ljósnæmi, ljósfælni, dökkt þema, mígreni, höfuðverkur, lestrarstilling, næturstilling, minnkuð birta, hvítpunktur"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Auðveld notkun, auðvelt aðgengi, aðstoð, stuðningur"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"sjón, heyrn, blind(ur), heyrnarlaus, hreyfivirkni, fimi, aðstoðartækni, aðstoð, auðveld notkun, auðveldur aðgangur, hönd, hjálp"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"gluggastækkun, aðdráttur, stækkun, sjónskerðing, stækka, gera stærra"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"skjátextar, skýringartextar, CC, umritun í beinni, heyrnarskerðing, heyrnarleysi, tölvustudd umritun í beinni, talgreinir, texti"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"litaleiðrétting"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"mótor, mús"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"heyrnartæki, heyrnarskerðing, heyrnartap, kuðungsígræði, hljóðmögnunartæki, hljóðvinnsla"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"hreyfivirkni, mús, utanáliggjandi mús, höfuðmús, aðlögunarhæf mús, hjólastóll, stýripinni"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"heyrnartæki, heyrnarskerðing, heyrnartap, kuðungsígræði, hljóðmögnunartæki, hljóðvinnsla, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"heyrnarskerðing, heyrnarleysi, skjátextar, telex, fjarriti"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"þrír hnappar"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"fimi, hreyfivirkni, eldri, gigt, rsi, heilablóðfall, skjálfti, heila- og mænusigg, heilalömun, skjálfti, vöðvabólga, hönd"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"seinkun, fimi, eldri"</string>
     <string name="print_settings" msgid="8519810615863882491">"Prentun"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Slökkt"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 prentþjónusta virk}one{# prentþjónusta virk}other{# prentþjónustur virkar}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Sjá hvaða forrit nota mest af rafhlöðu"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Hleðsla fínstillt til að vernda rafhlöðuna"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Hleðsla er fínstillt til að stuðla að lengri endingartíma rafhlöðunnar"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Hleðsla fínstillt til að vernda rafhlöðuna"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Til að hjálpa til við að lengja endingartíma rafhlöðunnar er hleðsla fínstillt á meðan hún er tengd við dokku"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Hleðsla fínstillt til að vernda rafhlöðuna"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Til að hjálpa til við að lengja endingartíma rafhlöðunnar er hleðsla fínstillt á meðan hún er tengd við dokku"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Fullhleður"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Til að vernda rafhlöðuna verður hleðsla fínstillt næst þegar spjaldtölvan er tengd við dokku"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Kynntu þér hleðsluhlé nánar"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Halda hleðslu áfram"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inniheldur bakgrunnsvirkni sem notar mikla orku"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Fjarlægja"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Hætta við"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Fullhlaða"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Vandamál með hleðslubúnað"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Nánar um ósamhæfa hleðslu"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Rafhlöðustjórnun"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Stjórna forritum sjálfkrafa"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"núna"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Myndrit yfir rafhlöðunotkun"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Myndrit fyrir daglega rafhlöðunotkun"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Myndrit fyrir rafhlöðunotkun á klukkustund"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Staða rafhlöðu er frá <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> til <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Rafhlöðunotkun frá síðustu fullu hleðslu"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Rafhlöðunotkun <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Skjátími frá síðustu fullu hleðslu"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Neyðarhringimerki"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Velja hvað gerist þegar neyðarsímtal er hringt"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Öryggisafrit"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Kveikt"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Slökkt"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Afritun og endurheimt"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Persónuleg gögn"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Taka öryggisafrit af gögnunum mínum"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Heiti"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tegund"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Vistfang þjóns"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-dulkóðun (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-leyndarmál"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-auðkenni"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec-lykill sem var deilt"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-notandavottorð"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-vottorð"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-þjónsvottorð"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Sýna ítarlega valkosti"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-leitarlén"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-þjónar (t.d. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Áframsendingarleiðir (t.d. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Notandanafn"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Aðgangsorð"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Vista reikningsupplýsingar"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ekki notað)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ekki sannvotta þjón)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(móttekið frá þjóninum)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Þessi gerð VPN-tengingar getur ekki verið sívirk"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Sívirkt VPN styður eingöngu vistfang þjóns sem er eingöngu tölugildi"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"DNS-þjónn verður að vera tilgreindur fyrir sívirkt VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Vistfang DNS-þjóns verður að vera tölugildi fyrir sívirkt VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Upplýsingarnar sem voru færðar inn styðja ekki sívirkt VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Hætta við"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Hunsa"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Loka á tengingar sem eru ekki með VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Krefjast VPN-tengingar?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ekki öruggt. Uppfæra í IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Ekki tókst að virkja óstutt VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Veldu VPN-snið sem alltaf á að vera tengt. Netumferð er aðeins leyfð þegar tenging við þetta VPN er virk."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ekkert"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN sem er alltaf virkt krefst IP-tölu þjóns og nafnaþjóns (DNS)."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER-viðvaranir"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Fá tilkynningar um barnsrán"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Endurtaka"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Kveikja á símtalastjórnun"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Leyfa þessari þjónustu að stjórna því hvernig þú hringir símtöl."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Símtalastjórnun"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Þráðlausar neyðartilkynningar"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Símafyrirtæki"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Heiti aðgangsstaða"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"veski"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"borga, ýta, greiðslur"</string>
     <string name="keywords_backup" msgid="707735920706667685">"afrita, afritun"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"bendingar"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"andlit, opna, taka úr lás, sannvottun, innskráning, skrá inn"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"andlit, taka úr lás, sannvotta, skrá inn, fingrafar, lífkenni"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-útgáfa, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ræsingarhljóð"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Skjátextar í rauntíma"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Setja sjálfkrafa skjátexta við efni"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Hátalarar síma"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Hátalarar spjaldtölvu"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Hátalarar tækis"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Heyrnartól með snúru"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Hljómgæði samhæfs efnis verða betri"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Slökkt"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Hvað viltu að lásskjárinn sýni?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nýleg samtöl fjarlægð"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Samtal fjarlægt"</string>
     <string name="clear" msgid="5092178335409471100">"Hreinsa"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Hreinsa <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Forgangssamtöl og breytt samtöl birtast hér"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Þegar samtal er merkt sem forgangssamtal eða aðrar breytingar eru gerðar á samtölum birtast þau hér. \n\nTil að breyta stillingum samtals: \nStrjúktu niður frá efri brún skjásins til að opna tilkynningasvæðið og haltu svo fingrinum á samtali."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minnka"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Slökkt"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Forritsfesting"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Forritsfesting gerir þér kleift að birta núverandi forrit á skjánum þar til þú losar það. Þú getur til dæmis notað þennan eiginleika til að leyfa vini að spila ákveðinn leik."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Þegar forrit er fest getur það opnað önnur forrit og persónuupplýsingar gætu verið aðgengilegar. \n\nTil að nota forritsfestingu: 	\n1. Kveiktu á forritsfestingu 	\n2. Opnaðu „Yfirlit“ 	\n3. Ýttu á forritstáknið efst á skjánum og ýttu svo á „Festa“"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Þegar forrit er fest getur það opnað önnur forrit og persónuupplýsingar gætu verið aðgengilegar. \n\nEf þú vilt deila tækinu þínu með einhverjum á öruggan hátt skaltu prófa að nota gestanotanda frekar. \n\nTil að nota forritsfestingu: 	\n1. Kveiktu á forritsfestingu 	\n2. Opnaðu „Yfirlit“ 	\n3. Ýttu á forritstáknið efst á skjánum og ýttu svo á „Festa“"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Þegar forrit er fest getur það opnað önnur forrit og persónuupplýsingar gætu verið aðgengilegar. \n\nTil að nota forritsfestingu: 	\n{0,number,integer}. Kveiktu á forritsfestingu 	\n{1,number,integer}. Opnaðu yfirlitið 	\n{2,number,integer}. Ýttu á forritstáknið efst á skjánum og síðan á „Festa“"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Þegar forrit er fest getur það opnað önnur forrit og persónuupplýsingar gætu verið aðgengilegar. \n\nEf þú vilt deila tækinu þínu með einhverjum á öruggan hátt skaltu prófa að nota gestanotanda frekar. \n\nTil að nota forritsfestingu: 	\n{0,number,integer}. Kveiktu á forritsfestingu 	\n{1,number,integer}. Opnaðu yfirlitið 	\n{2,number,integer}. Ýttu á forritstáknið efst á skjánum og síðan á „Festa“"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Þegar forrit er fest: \n\n•		Geta persónuupplýsingar verið aðgengilegar \n		(s.s. tengiliðir og efni tölvupósta) \n•	 Getur fest forrit opnað önnur forrit \n\nNotaðu aðeins forritsfestingu með fólki sem þú treystir."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Biðja um opnunarmynstur til að losa"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Biðja um PIN-númer til að losa"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Ónotaðar forritastillingar"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Gera hlé á forritavirkni ef ekki notað"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Fjarlægja heimildir, eyða tímabundnum skrám og stöðva tilkynningar"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Stjórna forriti ef það er ónotað"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Fjarlægja heimildir, eyða tímabundnum skrám, stöðva tilkynningar og setja forritið í geymslu"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Öll forrit"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Uppsett forrit"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Skyndiforrit"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Laust"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Minni sem forrit nota"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 forrit notaði minnið síðustu {time}}one{# forrit notaði minnið síðustu {time}}other{# forrit notuðu minnið síðustu {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Virkja greiningu minnisnotkunar"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Greining minnisnotkunar krefst aukinna kerfistilfanga."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Slökkt á minnisgreiningu"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Tíðni"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Hámarksnotkun"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Engin gögn notuð"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Opna ofan á öðrum forritum"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Leyfa að opnað sé ofan á öðrum forritum"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Leyfa þessu forriti að opnast ofan á öðrum opnum forritum. Þetta forrit getur séð hvar þú ýtir eða breytt því sem birtist á skjánum."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Breyta margmiðlunarúttaki"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Leyfa forriti að skipta um margmiðlunarúttak"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Leyfa þessu forriti að velja hvaða tengda tæki spilar hljóð eða vídeó úr öðrum forritum. Ef þú leyfir þetta fær forritið aðgang að lista yfir tæki sem eru í boði, t.d. heyrnartól og hátalara, og getur valið hvaða úttakstæki er notað til að streyma eða senda út hljóð eða vídeó."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Aðgangur að öllum skrám"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Bættu raddvirkjun"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Þetta tæki notar persónuupplýsingar til að bæta raddvirkjunarlíkanið. Forrit geta fengið samanteknar uppfærslur sem er safnað frá mörgum notendum til að viðhalda persónuvernd á meðan líkanið er bætt fyrir alla.\n\n"<a href="">"Nánar um notkun persónuupplýsinga"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> gagnaviðvörun"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> gagnamörk"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> gagnaviðvörun / <xliff:g id="ID_2">^2</xliff:g> gagnamörk"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Gögn símafyrirtækisins kunna að vera önnur en tækið sýnir"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Tekur ekki með gögn sem eru notuð af netkerfum símafyrirtækja"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> notuð"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Stilla gagnaviðvörun"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Uppfært fyrir <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Uppfært af <xliff:g id="ID_1">^1</xliff:g> rétt í þessu"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Uppfært rétt í þessu"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Skoða áskrift"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Skoða upplýsingar"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Gagnasparnaður"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Engin takmörkun á gögnum"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Frávik í rafhlöðunotkun"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Reitir fyrir flýtistillingar forritara"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Slökkva á tímamörkum adb-heimildar"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Slökkva á sjálfvirkri ógildingu adb-heimilda fyrir kerfi sem hafa ekki endurtengst innan sjálfgefins tíma (sjö daga) eða tíma sem notandi hefur stillt (að lágmarki einn dagur)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-rakning"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Slökkt á skynjurum"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Stillingar vinnusniðs"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Leita í einkaforritum að tengiliðum í vinnuskrá"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Strjúktu upp frá neðra horni skjásins til að ræsa stafrænt hjálparaforrit"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Sjálfvirk útfyllingarþjónusta"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Sjálfgefin sjálfvirk útfyllingarþjónusta"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Aðgangsorð"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Fleiri þjónustuaðilar"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# aðgangsorð}one{# aðgangsorð}other{# aðgangsorð}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"sjálfvirk, útfylling, sjálfvirk útfylling, aðgangsorð"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Slökkva á öllum þjónustum?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Aðgangsorð, aðgangslyklar og aðrar vistaðar upplýsingar verða ekki tiltækar fyrir sjálfvirka útfyllingu þegar þú skráir þig inn"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Breyta valinni þjónustu í &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éðan í frá. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Nota %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Þú getur aðeins verið með kveikt á 5 þjónustum í einu"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Slökktu á a.m.k. 1 þjónustu til að bæta nýrri við"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s notar efni á skjánum hjá þér til að ákvarða hvað er hægt að fylla út sjálfkrafa."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Hámark aðgangsorða, aðgangslykla og gagnaþjónusta"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Þú getur verið með allt að 5 aðgangsorð, aðgangslykla og gagnaþjónustur virkar á sama tíma. Slökktu á þjónustu til að bæta nýrri við."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Hámark aðgangsorða, aðgangslykla og gagnaþjónusta"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Þú getur verið með allt að 5 aðgangsorð, aðgangslykla og gagnaþjónustur virkar á sama tíma. Slökktu á þjónustu til að bæta nýrri við."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Slökkva"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Sjálfvirk útfylling"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Skráningarstig"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Aðeins er hægt að gera breytingar á samhæfi forrita fyrir forrit sem hægt er að villuleita. Settu upp forrit sem hægt er að villuleita og reyndu aftur."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Hún er háð annarri stillingu"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Reikningur"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d reikningar"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Heiti tækis"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Grunnupplýsingar"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Lög og reglur"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Leyfa ræsingu þessa forrits þegar NFC-merki er skannað.\nEf kveikt er á þessari heimild verður forritið í boði sem valkostur þegar merki greinist."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Spila efni í"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Spila <xliff:g id="LABEL">%s</xliff:g> á"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Hljóð heldur áfram að spilast"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Þessu tæki"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Ekki í boði á meðan símtal er í gangi"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Taka við símtali í"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Þagga"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Til að virkja þarf fyrst að breyta „Halda aflrofa inni“ í aflrofavalmyndina."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Upplýsingar um net"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Heiti tækisins þíns er sýnilegt forritum í símanum. Heiti þess er hugsanlega einnig sýnilegt öðru fólki þegar þú tengist Bluetooth-tækjum, Wi-Fi neti eða setur upp heitan Wi-Fi reit."</string>
     <string name="devices_title" msgid="649715719278562515">"Tæki"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Velja símkerfi"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Aftengt"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Heiti"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Litur (notaður af samhæfum forritum)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Vista"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Nota SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Nota þetta SIM-kort"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Slökkt"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Til að gera SIM-kort óvirkt þarftu að fjarlægja það úr símanum"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Ýttu til að virkja <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Hreinsa SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Valin símkerfistegund"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Breyta virknihætti símkerfis"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Valin símkerfistegund"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Upplýsingar um verð fást hjá símafyrirtækinu."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Gagnanotkun forrits"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ógild símkerfisstilling <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Hunsa."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Heiti aðgangsstaða"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"Aðgangsstaður"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Ekki í boði þegar tenging við <xliff:g id="CARRIER">%1$s</xliff:g> er til staðar"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Skipta yfir í <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Viltu skipta yfir í að nota SIM-kort?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Viltu nota <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Aðeins eitt SIM-kort getur verið virkt í einu.\n\nÞótt þú skiptir yfir í <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> verður þjónustunni hjá <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ekki sagt upp."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Aðeins er hægt að vera með 1 eSIM virkt í einu.\n\nÞótt þú skiptir yfir í <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> verður þjónustunni þinni hjá <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ekki sagt upp."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Aðeins eitt SIM-kort getur verið virkt í einu.\n\nÞótt þú skiptir verður þjónustunni hjá <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ekki sagt upp."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Þú getur notað 2 SIM-kort í einu. Slökktu á öðru SIM-kortinu til að nota <xliff:g id="CARRIER_NAME">%1$s</xliff:g>."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Skipta yfir í <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Slökkva á <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nei, takk"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Hætta við"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Skipta"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Slökkva"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Ekki er hægt að virkja SIM-kort"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prófaðu að kveikja aftur á SIM-kortinu. Ef vandamálið leysist ekki skaltu endurræsa tækið."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Settu upp SIM-kort"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Stilltu grunnstillingar farsímakerfisins til að nota fleiri en eitt SIM-kort í þessu tæki"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Merktu SIM-kortin þín"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Þú sérð þessi merki þegar þú hringir símtöl, sendir SMS-skilaboð, notar gögn og í stillingunum"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Merki SIM-korts"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Merki"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Veldu SIM-kort til að nota"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Þú getur notað 2 SIM-kort í einu"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Stilltu aðal SIM-kort"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Veldu hvaða SIM-kort verða sjálfkrafa notuð fyrir símtöl, SMS-skilaboð og gögn"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Aðal SIM-kort"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Símtöl"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS-skilaboð"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Sjálfvirk gagnaskipting"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Nota gögn af öðru hvoru SIM-korti byggt á umfangi og tiltækileika"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Aðeins gögn"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Setja upp"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Áfram"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Farsímakerfi"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Símanúmer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Merki og litur SIM-korts"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Virkjun símkerfis"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Skipt um símafyrirtæki"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> er virkt"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Til að nota farsímagögn, símtalseiginleika og SMS síðar skaltu fara í netstillingar"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Eyða þessu eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Ef þetta SIM-kort er hreinsað verður þjónusta <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> fjarlægð úr þessu tæki.\n\nÞjónustu <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> verður ekki sagt upp."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Hreinsa"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Eyðir SIM-korti…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Ekki er hægt að eyða SIM-korti"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Ekki er hægt að eyða þessu SIM-korti vegna villu.\n\nEndurræstu tækið og reyndu aftur."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Tengjast tæki"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Forritið <xliff:g id="APPNAME">%1$s</xliff:g> vill nota tímabundið Wi‑Fi net til að tengjast við tækið þitt"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Engin tæki fundust. Gakktu úr skugga um að kveikt sé á tækjunum og að hægt sé að tengjast við þau."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Neyðarsímtöl"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Símafyrirtækið þitt styður ekki neyðarsímtöl í gegnum Wi-Fi.\nTækið skiptir sjálfkrafa yfir í farsímakerfi til að hringja neyðarsímtal.\nAðeins er hægt að hringja neyðarsímtöl á svæðum sem eru með farsímasamband."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Notaðu Wi-Fi fyrir símtöl til að bæta gæðin"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Varasímtöl"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ef <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> er ekki í boði eða í reiki skaltu nota farsímagögn SIM-kortsins fyrir <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> símtöl."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"varasímtöl"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS-skilaboð bárust"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Ekki er hægt að senda MMS-skilaboð"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Ýttu til að leyfa MMS-skilaboð hjá <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> þegar slökkt er á farsímagögnum"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Upplýsingar um vinnureglurnar þínar"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Kerfisstjóri stjórnar stillingum"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Skjákort"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Ræsa með 16 kB af síðum"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Ræsa með studdum kjarna sem hefur 16 kB af síðum"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Endurræsa með samhæfum kjarna sem inniheldur 16 kB af síðum?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"VIÐVÖRUN: Sum forrit eru hugsanlega ekki samhæf þessari stillingu. Tækið mun endurræsast eftir staðfestingu."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Endurræsa með samhæfum kjarna sem inniheldur 4 kB af síðum?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Tækið mun endurræsast eftir staðfestingu."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ekki tókst að uppfæra kjarna í samhæfðan kjarna sem inniheldur 16 kB af síðum"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Staðfestir breytingu"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Meðhöndlun villutilkynningar"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Ákvarðar hvaða forrit meðhöndlar flýtileiðir í villutilkynningu í tækinu þínu."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Persónulegt"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Efnisspilarinn helst opinn í flýtistillingum svo hægt sé að ræsa spilun aftur í skyndi"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Sýna efni á lásskjá"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Efnisspilarinn helst opinn á lásskjánum svo hægt sé að hefja spilun aftur á skjótan hátt"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Sýna tillögur að efni"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Sýna efnistillögur Hjálpara"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Byggt á virkni þinni"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Fela spilara"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Sýna spilara"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Virkt"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Óvirkt"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Sjálfgefið fyrir <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"símtöl"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Hljómgæði samhæfs efnis verða betri"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Rakning höfuðs"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Hljóðið aðlagast höfuðhreyfingum til að allt hljómi sem eðlilegast"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Samstilla heimildir"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Veita <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> sömu heimildir forrits og þú hefur veitt í <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Samstilla heimildir úr síma"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Veita úrinu sömu forritsheimildir og þú hefur veitt í þessum síma"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tegund hljómtækis"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Óþekkt"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Hátalari"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Miðlungs"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Mikið"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aðeins er hægt að opna þetta forrit í 1 glugga"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Kveikt"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Slökkt"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Slökkt"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Slökkt"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Kveikt"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Slökkt"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Kveikt"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Slökkt"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Gerir ljósa skjái dekkri og dekkri skjái ljósari"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Stækka skjáinn"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Slökkt"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Slökkt"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Kveikt"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Slökkt"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Kveikt"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Aðgangsorð hefur nú verið stillt"</string>
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index b246a4c..be222df 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Dopo 1 minuto"</item>
     <item msgid="1574040255478150028">"Dopo 5 minuti"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index a51213c..d29c711 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Ora sei uno sviluppatore."</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Non è necessario, sei già uno sviluppatore."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Attiva prima Opzioni sviluppatore."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Solo gli utenti amministratori possono accedere alle impostazioni dello sviluppatore."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In servizio"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fuori servizio"</string>
@@ -46,6 +47,8 @@
     <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 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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Scorri verso l\'alto per continuare"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Piega lo smartphone e scorri verso l\'alto sul display anteriore per continuare a utilizzare l\'app, oppure attendi qualche secondo affinché lo schermo si blocchi"</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>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Usa la rotazione automatica"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Correlati"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Suoneria e sveglie"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio durante le chiamate"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Contenuti multimediali"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notifiche e altri suoni di sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Suoni cont. multim. e sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notifiche"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Per impostazione predefinita, l\'output audio viene determinato dalle singole app"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositivo Bluetooth senza nome"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Ricerca in corso…"</string>
@@ -113,23 +116,34 @@
     <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">"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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Collegati a uno stream LE audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Stream audio nelle vicinanze"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Stream audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Collegati a uno stream audio tramite codice QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nessuno stream audio nelle vicinanze."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Per selezionare una lingua per ogni app, vai alle impostazioni della lingua delle app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Scopri di più sulle lingue delle app"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Impostare la lingua di sistema in %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Aggiungere %s alle lingue preferite?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"In questo modo le app e i siti web sapranno che preferisci anche questa lingua."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Le impostazioni del dispositivo e le preferenze locali cambieranno."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Cambia"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s non disponibile"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sabato"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Se un\'app non supporta le preferenze locali, userà le proprie impostazioni internazionali predefinite."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Scopri di più sulle preferenze di lingua."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferenze aggiuntive"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Appellativi"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Imposta gli appellativi da usare per rivolgersi a te"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Le app possono usare i tuoi appellativi per personalizzare il modo in cui rivolgersi a te."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Non specificati"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femminili"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maschili"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutra"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vuoi rimuovere la lingua selezionata?}other{Vuoi rimuovere le lingue selezionate?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Il testo verrà mostrato in un\'altra lingua."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossibile rimuovere tutte le lingue"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Geolocalizzazione"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usa posizione"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Off"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{On - # app ha accesso alla posizione}other{On - # app hanno accesso alla posizione}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Opzione attiva: # app ha accesso alla posizione}other{Opzione attiva: # app hanno accesso alla posizione}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Caricamento…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Le app con l\'autorizzazione Dispositivi nelle vicinanze possono stabilire la posizione relativa dei dispositivi connessi."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"L\'accesso alla posizione è disattivato per app e servizi. La posizione del dispositivo potrebbe essere comunque inviata ai servizi di emergenza se chiami o invii un SMS a un numero di emergenza."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Scopri di più sull\'impostazione Geolocalizzazione."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Scopri di più sulle impostazioni di geolocalizzazione"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Modifica accesso a posizione: Impostazioni &gt; Sicurezza e privacy &gt; Controlli per la privacy"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Per risultati ottimali, usa una protezione per lo schermo con la certificazione Made For Google. Con altre protezioni per lo schermo l\'impronta di tuo figlio potrebbe non funzionare."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Sblocco dall\'orologio"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Se configuri lo Sblocco con il Volto e l\'Impronta, lo smartphone ti chiederà l\'impronta se indossi una mascherina o ti trovi in un luogo buio.\n\nSe il tuo volto o la tua impronta non vengono riconosciuti, puoi sbloccare con lo smartwatch."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Se la tua impronta non viene riconosciuta, puoi sbloccare con lo smartwatch."</string>
-    <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_intro_with_activeunlock" msgid="5032953826653108646">"Se configuri lo Sblocco con il Volto e l\'Impronta, lo smartphone ti chiederà l\'impronta se indossi una mascherina o ti trovi in un luogo buio.\n\nSblocco dall\'orologio è un altro modo pratico per sbloccare lo smartphone, ad esempio quando hai le dita bagnate o il volto non viene riconosciuto."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Sblocco dall\'orologio è un altro modo pratico per sbloccare lo smartphone, ad esempio quando le dita non vengono riconosciute."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Sblocco dall\'orologio è un altro modo pratico per sbloccare il tuo smartphone, ad esempio quando il volto non viene riconosciuto."</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">"Uso del volto, dell\'impronta o dell\'orologio"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Volto e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Volto, impronta e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Volto, impronte e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Sblocco Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch aggiunto"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura l\'orologio"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Sblocco dall\'orologio è un altro modo pratico per sbloccare lo smartphone, ad esempio quando hai le dita bagnate o il volto non viene riconosciuto.\n\nPuoi usare lo smartwatch per sbloccare lo smartphone quando:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Non ora"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continua"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Altro"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Come funziona"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Lo smartwatch deve essere sbloccato, sul polso e vicino allo smartphone. Non sarà necessario sbloccare nuovamente lo smartwatch quando si trova sul polso."</string>
+    <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">"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>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annulla"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Conferma"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Ecco fatto!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ora puoi usare lo smartwatch per sbloccare lo smartphone quando scorri verso l\'alto sulla schermata di blocco o tocchi una notifica"</string>
+    <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, 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>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sblocco con il Volto e l\'Impronta"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Sblocco con il Volto e l\'Impronta per lavoro"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configurazione richiesta"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sicurezza"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Mantieni le app private bloccate e nascoste"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Conserva le app private in uno spazio separato che puoi nascondere o bloccare"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Blocco dello Spazio privato"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Puoi sbloccare lo Spazio privato nello stesso modo in cui sblocchi il tuo dispositivo oppure scegliere un blocco diverso"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usa il blocco schermo del dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Sblocco con il Volto e con l\'Impronta"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Sblocco con l\'Impronta"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Sblocco con il Volto"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tocca per configurare"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Sblocco con l\'Impronta per lo spazio privato"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Sblocco con il Volto per lo spazio privato"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Modi per sbloccare"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Uguale al blocco schermo del dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Scegliere un nuovo blocco per lo Spazio privato?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Blocca automaticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloccare automaticamente lo spazio privato"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Puoi bloccare automaticamente il tuo spazio privato se non hai utilizzato il dispositivo per un certo periodo di tempo"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Ogni volta che il dispositivo si blocca"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Dopo 5 minuti di inattività"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Mai"</string>
+    <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_delete_title" msgid="3075645119800272800">"Elimina 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="private_space_unlocked" msgid="9091600948712932046">"Spazio privato sbloccato"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Imposta un blocco schermo"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Per utilizzare il tuo spazio privato, imposta un blocco schermo sul dispositivo"</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="private_space_cancel_label" msgid="379259667396956886">"Annulla"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurazione"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configura uno spazio privato"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Conserva le app private in uno spazio separato che puoi nascondere o bloccare"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Come funziona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Puoi accedere al tuo spazio privato dalla parte inferiore dell\'elenco di app"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Le app nello spazio privato sono protette da un blocco"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Le notifiche delle app nello spazio privato vengono nascoste quando quest\'ultimo è bloccato"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Le app presenti nello spazio privato non vengono visualizzate nella gestione autorizzazioni, nella dashboard della privacy e in altre impostazioni quando lo spazio privato è bloccato.\n\nLo spazio privato non può essere spostato su un nuovo dispositivo. Dovrai configurare un altro spazio privato per poterlo usare su un altro dispositivo.\n\nChiunque colleghi il dispositivo a un computer o installi app dannose sul dispositivo può avere accesso al tuo spazio privato."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurazione dello spazio privato in corso…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Le notifiche delle app nello spazio privato vengono nascoste quando quest\'ultimo è bloccato"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Sblocca lo spazio privato per condividere foto o file dalle app dello spazio privato"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Alcune app sono già installate nel tuo spazio privato"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Impossibile configurare lo spazio privato"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Riprova"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Usare blocco schermo per sbloccare spazio privato?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Puoi sbloccare lo spazio privato nello stesso modo in cui sblocchi il tuo dispositivo oppure scegliere un blocco diverso"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usa il blocco schermo"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Scegli un nuovo blocco"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Fatto."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Per accedere al tuo spazio privato, vai all\'elenco delle app e scorri verso il basso"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Fine"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scorri verso il basso per trovare lo spazio privato"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Scegli un blocco per il tuo spazio privato"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Puoi sbloccare il tuo spazio privato usando l\'impronta. Per motivi di sicurezza, questa opzione richiede un blocco di backup."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Imposta PIN per lo spazio privato"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Imposta password per lo spazio privato"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Imposta sequenza per lo spazio privato"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Per mostrare lo Spazio privato (UX non finale)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Apri l\'app Impostazioni"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tocca Sicurezza e privacy &gt; Spazio privato &gt; Nascondi Spazio privato quando è bloccato"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Disattiva Nascondi Spazio privato quando è bloccato"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota per i Googler: lo sviluppo di questa funzionalità è ancora in corso"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puoi aggiungere fino a <xliff:g id="COUNT">%d</xliff:g> impronte digitali"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Hai aggiunto il numero massimo di impronte digitali"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossibile aggiungere ulteriori impronte digitali"</string>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Potrebbe inoltre essere necessario digitare questa passkey sull\'altro dispositivo."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Conferma per eseguire l\'accoppiamento con il set coordinato"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Consenti l\'accesso ai tuoi contatti e alla cronologia chiamate"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Consenti anche l\'accesso ai contatti e alla cronologia delle chiamate"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Le informazioni saranno utilizzate per gli annunci delle chiamate e altro ancora"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Impossibile collegarsi a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivi disponibili"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Quando il Bluetooth è attivato, il tuo dispositivo può comunicare con altri dispositivi che si trovano nelle vicinanze"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In modalità aereo"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Invia notifica per reti pubbliche"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Invia una notifica quando è disponibile una rete pubblica di alta qualità"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Consenti le reti WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP è un protocollo di sicurezza meno recente e meno sicuro"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Il tuo operatore non consente le reti WEP perché sono meno sicure"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Attiva Wi‑Fi automaticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"La connessione Wi-Fi si riattiverà vicino a reti salvate di alta qualità, come quella di casa"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Non disponibile perché la geolocalizzazione non è attiva. Attiva la "<annotation id="link">"geolocalizzazione"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"La ricerca di reti Wi-Fi consente ad app e servizi di cercare reti Wi-Fi in qualsiasi momento, anche quando il Wi-Fi non è attivo. Questa funzione è utile, ad esempio, per migliorare funzioni e servizi basati sulla posizione."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Attiva"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Ricerca di reti Wi-Fi attiva"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Questa rete utilizza un protocollo di sicurezza meno sicuro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"L\'app <xliff:g id="NAME">%1$s</xliff:g> è bloccata"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Questa rete utilizza un protocollo di sicurezza meno recente chiamato WEP, che è meno sicuro. Se vuoi connetterti comunque, consenti le reti WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Il tuo operatore non consente la connessione a questa rete perché utilizza un protocollo di sicurezza meno recente e meno sicuro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Consenti le reti WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Chiudi"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opzioni avanzate"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Elenco a discesa Opzioni avanzate"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"espandi"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Resta sulla rete Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Non mostrare più"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Connetti"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi attivato"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Connesso a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Connessione a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Connessione…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Impossibile connettersi alla rete"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rete fuori portata"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Elimina"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modifica"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Impossibile eliminare la rete"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Salva"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Impossibile salvare la rete"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Annulla"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Dati mobili"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ In carica"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ In carica"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Connessione tramite hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Potenza connessione"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Reti salvate"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nessuna password impostata"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nome hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Password hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Disattiva hotspot automaticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Quando non sono connessi dispositivi"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Estendi compatibilità"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Bilanciamento bianco display"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Disattiva frequenza fotogrammi"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Disattiva la limitazione della frequenza massima di fotogrammi per i giochi a <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Display fluido"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"La funzionalità Schermo vigile usa la fotocamera anteriore per controllare se qualcuno sta guardando lo schermo. Funziona sul dispositivo e le immagini non vengono mai memorizzate o inviate a Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Attiva Schermo vigile"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantiene lo schermo attivo mentre lo guardi"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Uno spegnimento dello schermo più lento consumerà più batteria."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotocamera bloccata"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"È necessario sbloccare la fotocamera per poter procedere con il riconoscimento facciale"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"È necessario sbloccare la fotocamera per poter utilizzare Schermo vigile"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principale)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Per visualizzarlo, seleziona la rete salvata"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versione PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Livello batteria"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Comuni"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Impostazioni comuni"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Salva"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Annulla"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Il campo Nome non può essere vuoto."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Il campo APN non può essere vuoto."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Il campo MCC deve contenere 3 cifre."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Il campo MNC deve contenere 2 o 3 cifre."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"L\'operatore non consente di aggiungere APN di tipo %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Il campo MMSC deve essere valido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Ripristino delle impostazioni APN predefinite."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Ripristina impostazioni predefinite"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Ripristino delle impostazioni APN predefinite completato."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reimposta"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth e Wi-Fi sono stati reimpostati"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Resetta eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Gli eventuali piani tariffari non verranno annullati. Per scaricare SIM sostitutive, contatta il tuo operatore."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Reimposta"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Ripristinare tutte le impostazioni della rete? Questa azione non può essere annullata."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vuoi reimpostare tutte le impostazioni di rete e resettare le eSIM? L\'operazione non può essere annullata."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Reimpostare?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"La reimpostazione della rete non è disponibile per questo utente"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Le impostazioni di rete sono state reimpostate"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Impossibile resettare le SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Non è possibile resettare le eSIM a causa di un errore.\n\nRiavvia il dispositivo e riprova."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Cancella tutti i dati (ripristino dei dati di fabbrica)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Cancella tutti i dati"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musica"</li>\n<li>"Foto"</li>\n<li>"Altri dati utente"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Il tuo piano di servizio dati mobile non verrà annullato."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Tutte le tue informazioni personali e le app scaricate saranno eliminate. Questa azione non può essere annullata."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Tutte le tue informazioni personali, tra cui le app e le SIM scaricate, saranno eliminate. Questa azione non può essere annullata."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vuoi cancellare tutti i dati?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Il ripristino dei dati di fabbrica non è disponibile per questo utente"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Cancellazione…"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Connessione a Internet non condivisa con altri dispositivi"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Off"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Non usare hotspot Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Condividi Internet solo tramite USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Condividi Internet solo tramite Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Condividi Internet solo tramite Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Condividi Internet solo tramite USB e Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Condividi Internet solo tramite USB ed Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Condividi Internet solo tramite Bluetooth ed Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Condividi Internet solo tramite USB, Bluetooth ed Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Utilizza hotspot e tethering per consentire ad altri dispositivi di accedere a Internet usando la tua connessione Wi-Fi o dati mobili. Le app possono inoltre creare un hotspot per condividere contenuti con i dispositivi nelle vicinanze."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Guida"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rete mobile"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Piano dati mobile"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vuoi cambiare app per gli SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Utilizzare <xliff:g id="NEW_APP">%1$s</xliff:g> anziché <xliff:g id="CURRENT_APP">%2$s</xliff:g> come app per gli SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Cambiare assistente Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Utilizzare <xliff:g id="NEW_APP">%1$s</xliff:g> invece di <xliff:g id="CURRENT_APP">%2$s</xliff:g> per gestire le connessioni di rete?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Utilizzare <xliff:g id="NEW_APP">%s</xliff:g> per gestire le connessioni di rete?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operatore SIM sconosciuto"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Nessun sito web di provisioning per <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Inserisci la scheda SIM e riavvia"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Connettiti a Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Richieste di posizione recenti"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Posizione per profilo di lavoro"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Autorizzazioni per la posizione"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Cancella accesso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controlli"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forza interruzione"</string>
+    <string name="archive" msgid="9074663845068632127">"Archivia"</string>
+    <string name="restore" msgid="7622486640713967157">"Ripristina"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Totale"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Dimensioni app"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"App in archivio USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Impossibile calcolare le dimensioni del pacchetto."</string>
     <string name="version_text" msgid="7628938665256107608">"versione <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Sposta"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiviazione non riuscita"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"App <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> archiviata"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Ripristino non riuscito"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Ripristino di <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> in corso…"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"È già in corso un\'altra migrazione."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Spazio di archiviazione insufficiente."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"L\'applicazione non esiste."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tastiera sullo schermo disponibile"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gestisci tastiere sullo schermo"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opzioni"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilità"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fisica"</string>
     <string name="show_ime" msgid="4334255501724746849">"Usa tastiera sullo schermo"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Tienila sullo schermo quando è attiva la tastiera fisica"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Tasti rimbalzati"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Abilita i tasti rimbalzati per l\'accessibilità della tastiera fisica"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Tasti permanenti"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Abilita i tasti permanenti per l\'accessibilità della tastiera fisica"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Scorciatoie da tastiera"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra l\'elenco di scorciatoie"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastiere e strumenti del profilo di lavoro"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordina per tempo di utilizzo"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordina per data ult. utilizzo"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordina per nome app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Data ultimo utilizzo:"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Ultimo utilizzo"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"mai"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Tempo di utilizzo"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibilità"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Impostazioni di accessibilità"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continua comunque"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annulla"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Impostazioni ingrandimento"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ingrandisci con triplo tocco"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ingrandisci con scorciatoia"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Ingrandisci con scorciatoia e triplo tocco"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Informazioni su <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Tocca due 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="860548190334486449">"Per avviare e interrompere l\'ingrandimento, tocca due 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Per usare una funzione di accessibilità, 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Impost. pulsante Accessibilità"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Impostazioni pulsante"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Scorciatoia <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Pulsante Accessibilità"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto di accessibilità"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Tocca due volte lo schermo con due dita"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tocca due volte lo schermo con due dita"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tocca rapidamente lo schermo {0,number,integer} volte con due dita"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocca 3 volte lo schermo"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Scopri di più sul gesto e sul pulsante Accessibilità"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Viene usato il pulsante Accessibilità. Gesto non disponibile con la navigazione con tre pulsanti."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accedi rapidamente alle funzioni di accessibilità"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Per iniziare"</b>\n"1. Vai alle impostazioni di accessibilità\n2. Seleziona una funzione e tocca la scorciatoia\n3. Scegli se vuoi utilizzare un pulsante o un gesto per accedere alla funzione"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Per iniziare"</b>\n"1. Vai alle impostazioni di accessibilità\n2. Seleziona una funzione e tocca la scorciatoia\n3. Scegli il pulsante per accedere alla funzione"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Per iniziare&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Vai alle impostazioni di accessibilità.&lt;br/&gt; {1,number,integer}. Seleziona una funzionalità e tocca la scorciatoia.&lt;br/&gt; {2,number,integer}. Scegli se vuoi utilizzare un pulsante o un gesto per accedere alla funzionalità.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Per iniziare&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Vai alle impostazioni di accessibilità.&lt;br/&gt; {1,number,integer}. Seleziona una funzionalità e tocca la scorciatoia.&lt;br/&gt; {2,number,integer}. Scegli il pulsante per accedere alla funzionalità.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Usa pulsante o gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Posizione"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Dimensioni"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Chiudi chiamata con tasto accensione"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Puntatore del mouse grande"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Rendi più visibile il puntatore del mouse"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Applica tema scuro a tutte le app"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Si applica ad app prive di un tema scuro. Potrebbero verificarsi problemi, ad es. colori invertiti."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Rimuovi le animazioni"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Riduci il movimento sullo schermo"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio in formato mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Può tenere traccia delle tue interazioni con un\'app o un sensore hardware e interagire con app per tuo conto."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Consenti"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rifiuta"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Interrompi"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Annulla"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Interrompere <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Se tocchi <xliff:g id="STOP">%1$s</xliff:g>, il servizio <xliff:g id="SERVICE">%2$s</xliff:g> verrà interrotto."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Disattiva"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Tieni on"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vuoi disattivare <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nessun servizio installato"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nessun servizio selezionato"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nessuna descrizione fornita."</string>
     <string name="settings_button" msgid="2195468788019730377">"Impostazioni"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilità alla luce, fotofobia, tema scuro, emicrania, mal di testa, modalità di lettura, modalità notturna, ridurre la luminosità, punto di bianco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"facilità d\'uso, facilità di accesso, assistenza, assistivo"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vista, udito, cieco, sordo, motorie, mobilità, assistivo, assistenza, facilità di utilizzo, facilità di accesso, mano, aiuto"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ingrandimento della finestra, zoom, ingrandimento, ipovedente, ingrandimento, ingrandire"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"sottotitoli codificati, sottotitolaggio codificato, CC, Trascrizione Istantanea, problemi di udito, perdita dell\'udito, CART, conversione della voce in testo, sottotitolo"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contrasto di colore"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motore, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"apparecchi acustici, disabilità uditiva, perdita dell\'udito, impianti cocleari, dispositivi di amplificazione, processori del suono"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorie, mouse, mouse esterno, head mouse, mouse adattivo, sedia a rotelle, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"apparecchi acustici, disabilità uditiva, perdita dell\'udito, impianti cocleari, dispositivi di amplificazione, processori del suono, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"problemi di udito, perdita dell\'udito, sottotitoli, teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre pulsanti"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"mobilità, motorie, anziani, artrite, lsr, ictus, tremore, sclerosi multipla, paralisi cerebrale, tremolio, lesioni da sforzo ripetuto, mano"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ritardo, mobilità, anziani"</string>
     <string name="print_settings" msgid="8519810615863882491">"Stampa"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servizio di stampa attivo}other{# servizi di stampa attivi}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Scopri le app con il massimo utilizzo"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Ricarica ottimizzata per proteggere la batteria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Per contribuire a prolungare la durata della batteria, la ricarica viene ottimizzata"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Ricarica ottimizzata per proteggere la batteria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Per prolungare la durata della batteria, la ricarica viene ottimizzata quando il dispositivo è agganciato alla base"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Ricarica ottimizzata per proteggere la batteria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Per prolungare la durata della batteria, la ricarica viene ottimizzata quando il dispositivo è agganciato al dock"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Ricarica completa"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Per proteggere la batteria, la ricarica verrà ottimizzata la prossima volta che il tablet verrà agganciato al dock"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Scopri di più sulla ricarica in pausa"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Riprendi la ricarica"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Include attività in background a consumo elevato"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Rimuovi"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Annulla"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Carica completamente"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema relativo all\'accessorio di ricarica"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Scopri di più sulla ricarica con un alimentatore non compatibile"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gestione batteria"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gestisci le app automaticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Grafico sull\'utilizzo della batteria"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafico sull\'utilizzo della batteria giornaliero"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafico sull\'utilizzo della batteria orario"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Percentuale del livello della batteria da <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> a <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Utilizzo della batteria dall\'ultima ricarica completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Utilizzo della batteria nel periodo <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tempo di utilizzo dall\'ultima ricarica completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Segnale chiamata di emergenza"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Imposta il comportamento in caso di chiamata di emergenza"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"On"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Off"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup e ripristino"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dati personali"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Backup dei miei dati"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nome"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Indirizzo server"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Crittografia PPP  (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Segreto L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificatore IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Chiave pre-condivisa IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificato IPSec dell\'utente"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificato CA per IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificato server IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostra opzioni avanzate"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domini di ricerca DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Server DNS (ad es. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Route di inoltro (ad es. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nome utente"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Password"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Salva informazioni account"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(non utilizzato)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(non eseguire verifica server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ricevuto dal server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Questo tipo di VPN non può rimanere sempre connesso"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"La VPN sempre attiva supporta solo gli indirizzi server numerici"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Specificare un server DNS per la VPN sempre attiva"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Gli indirizzi dei server DNS devono essere numerici per la VPN sempre attiva"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Le informazioni inserite non supportano la VPN sempre attiva"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Annulla"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Chiudi"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blocca connessioni senza VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Connessione VPN obbligatoria?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tipo non sicuro. Usa una VPN IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Impossibile avviare la VPN non supportata."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Seleziona un profilo VPN a cui rimanere sempre connesso. Il traffico di rete sarà consentito solo quando sei connesso a questa VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nessuna"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"La VPN sempre attiva richiede un indirizzo IP per server e DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Allerte AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Ricevi bollettini su rapimenti di bambini"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ripeti"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Abilita Gestione chiamate"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Consenti al servizio di gestire come vengono eseguite le chiamate."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gestione chiamate"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Avvisi di emergenza wireless"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operatori di rete"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nomi punti di accesso"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"paga, tocca, pagamenti"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"viso, sblocco, autenticazione, accesso"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"volto, sblocco, autenticazione, accesso, impronta, biometrico"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versione prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Attiva suoni"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Sottotitoli in tempo reale"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Sottotitoli codificati automatici"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altoparlanti smartphone"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Altoparlanti tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Speaker dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Cuffie con cavo"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"L\'audio dei dispositivi multimediali compatibili diventa più immersivo"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Off"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Cosa vuoi che mostri la tua schermata di blocco?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Conversazioni recenti rimosse"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversazione rimossa"</string>
     <string name="clear" msgid="5092178335409471100">"Cancella"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Cancella <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Le conversazioni prioritarie e modificate appariranno qui"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Le conversazioni che contrassegni come prioritarie o a cui apporti altre modifiche verranno visualizzate qui. \n\nPer modificare le impostazioni relative alle conversazioni: \nscorri verso il basso dalla parte superiore dello schermo per aprire l\'area a discesa, quindi tocca e tieni premuta una conversazione."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Riduci"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Off"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Blocco app su schermo"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"La funzionalità di blocco delle app su schermo ti consente di mantenere visibile l\'app in uso finché non decidi di sbloccarla. Questa funzionalità può essere usata, ad esempio, per consentire a un amico di cui ti fidi di giocare a un gioco specifico."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Un\'app bloccata potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nPer usare la funzionalità di blocco app su schermo: 	\n1. Attiva il blocco app su schermo. 	\n2. Apri Panoramica. 	\n3. Tocca l\'icona dell\'app nella parte superiore dello schermo, quindi tocca Blocca."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Un\'app bloccata potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nSe vuoi condividere il tuo dispositivo con qualcuno in modo sicuro, prova a usare invece un utente ospite. \n\nPer usare la funzionalità di blocco app su schermo: 	\n1. Attiva il blocco app su schermo. 	\n2. Apri Panoramica. 	\n3. Tocca l\'icona dell\'app nella parte superiore dello schermo, quindi tocca Blocca."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Un\'app bloccata potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nPer usare la funzionalità di blocco app su schermo: 	\n{0,number,integer}. Attiva il blocco app su schermo. 	\n{1,number,integer}. Apri Panoramica. 	\n{2,number,integer}. Tocca l\'icona dell\'app nella parte superiore dello schermo, quindi tocca Blocca."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Un\'app bloccata potrebbe aprire altre app e i dati personali potrebbero essere accessibili. \n\nSe vuoi condividere il tuo dispositivo con qualcuno in modo sicuro, prova a usare invece un utente ospite. \n\nPer usare la funzionalità di blocco app su schermo: 	\n{0,number,integer}. Attiva il blocco app su schermo. 	\n{1,number,integer}. Apri Panoramica. 	\n{2,number,integer}. Tocca l\'icona dell\'app nella parte superiore dello schermo, quindi tocca Blocca."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Quando un\'app è bloccata su schermo: \n\n•		I dati personali potrebbero essere accessibili (ad esempio i contatti o i contenuti delle email) \n\n•		Le app bloccate potrebbero aprire altre app \n\nUtilizza il blocco app su schermo solo con persone di cui ti fidi."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Richiedi sequenza prima di sbloccare"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Richiedi il PIN per lo sblocco"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Impostazioni app inutilizzate"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Sospendi attività app se inutilizzata"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Rimuovi le autorizzazioni, elimina i file temporanei e interrompi le notifiche"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gestisci l\'app se inutilizzata"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Rimuovi le autorizzazioni, elimina i file temporanei, interrompi le notifiche e archivia l\'app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Tutte le app"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"App installate"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"App istantanee"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Memoria disponibile"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memoria utilizzata dalle app"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app ha usato la memoria nell\'ultimo periodo di {time}}other{# app hanno usato la memoria nell\'ultimo periodo di {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Attiva profilazione memoria utilizzata"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"La profilazione della memoria utilizzata richiede risorse di sistema aggiuntive."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilazione della memoria disattivata"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequenza"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Utilizzo massimo"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nessun utilizzo dati"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Mostra sopra altre app"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Consenti la visualizzazione sopra altre app"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Consenti di mostrare questa app sopra le altre app in uso. Questa app potrà rilevare dove tocchi o cambiare gli elementi visualizzati sullo schermo."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Cambia uscita conten. multim."</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Consenti ad app cambio uscita conten. multim."</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Consenti a questa app di scegliere quale dispositivo collegato riproduce l\'audio o il video di altre app. Se lo consenti, questa app può accedere a un elenco di dispositivi disponibili, come cuffie e speaker, e scegliere quale dispositivo di output utilizzare per lo streaming o la trasmissione di audio o video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Accesso a tutti i file"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Migliora l\'attivazione vocale"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Questo dispositivo usa l\'intelligenza privata per migliorare il modello di attivazione vocale. Le app ricevono riepiloghi degli aggiornamenti aggregati per più utenti per preservare la privacy durante il miglioramento del modello per tutti.\n\n"<a href="">"Ulteriori informazioni sull\'intelligenza privata"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Avviso sui dati: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limite dati: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Avviso relativo ai dati: <xliff:g id="ID_1">^1</xliff:g> / Limite dati: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"La misurazione dell\'operatore potrebbe differire da quella del dispositivo"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Sono esclusi i dati usati dalle reti dell\'operatore"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Dati utilizzati: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Imposta avviso sui dati"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Aggiornato <xliff:g id="ID_1">^2</xliff:g> fa"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Appena aggiornato da <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Appena aggiornato"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Visualizza piano"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Visualizza dettagli"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Risparmio dati"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dati senza limitazioni"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia dell\'utilizzo della batteria"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Riquadri sviluppatore per impostazioni rapide"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Disattiva timeout autorizzazione ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Disattiva la revoca automatica delle autorizzazioni ADB per i sistemi che non si sono riconnessi entro l\'intervallo di tempo configurato dall\'utente (minimo 1 giorno) o predefinito (7 giorni)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Traccia Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensori disattivati"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Impostazioni profilo di lavoro"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Cerca contatti della directory di lavoro nelle app personali"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Scorri verso l\'alto da un angolo in basso per aprire l\'app dell\'assistente digitale"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Servizio di compilazione automatica"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Servizio di compilazione automatica predefinito"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Password"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Servizi per password, passkey e dati"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Provider aggiuntivi"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# password}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatica, compilazione, compilazione automatica, password"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Servizi per password, passkey e dati"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Disattiva tutti i servizi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Password, passkey e altre informazioni salvate potrebbero non essere disponibili quando esegui l\'accesso"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Modifica il tuo servizio preferito in &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_enable_confirmation_message_title" msgid="1037501792652277829">"Vuoi usare %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Puoi attivare solo 5 servizi"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Disattiva almeno 1 servizio per aggiungerne un altro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa i contenuti sullo schermo per stabilire quali informazioni possono essere compilate automaticamente."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limite di servizi per password, passkey e dati"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Puoi attivare contemporaneamente fino a 5 servizi per password, passkey e dati. Per aggiungere un altro servizio devi disattivarne uno."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limite di servizi per password, passkey e dati"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Puoi attivare contemporaneamente fino a 5 servizi per password, passkey e dati. Per aggiungere un altro servizio devi disattivarne uno."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Disattiva"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Compilazione automatica"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Livello di logging"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Le modifiche alla compatibilità delle app possono essere cambiate solo per le app di cui è possibile eseguire il debug. Installa un\'app di cui è possibile eseguire il debug e riprova."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Dipende da un\'altra impostazione"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d account"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nome dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informazioni di base"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Note legali e informazioni sulle normative"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Consenti l\'avvio di questa app quando viene rilevato un tag NFC.\nSe questa autorizzazione viene attivata, l\'app sarà disponibile sotto forma di opzione ogni volta che verrà rilevato un tag."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Riproduci contenuti multimediali su"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Riproduci <xliff:g id="LABEL">%s</xliff:g> su"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"L\'audio verrà riprodotto su"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Questo dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Non disponibile durante le chiamate"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Rispondi alle chiamate su"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Silenzia"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Per procedere con l\'attivazione, devi prima modificare l\'opzione \"Tieni premuto il tasto di accensione\" impostandola sul menu del tasto di accensione."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Dettagli rete"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Il nome del tuo dispositivo è visibile alle app installate sul telefono. 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="devices_title" msgid="649715719278562515">"Dispositivi"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Scegli rete"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Scollegato"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nome"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Colore (usato da app compatibili)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Salva"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Utilizza SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usa questa SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Off"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Per disattivare questa scheda SIM, rimuovila"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tocca per attivare <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Elimina SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo di rete preferito"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Cambia la modalità di funzionamento della rete"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo di rete preferito"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Verifica i costi con il tuo fornitore di rete."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Utilizzo dati delle app"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Modalità di rete <xliff:g id="NETWORKMODEID">%1$d</xliff:g> non valida. Ignora."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nomi punti di accesso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Non disponibile se è attiva la connessione a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vuoi passare a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vuoi passare alla scheda SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Vuoi utilizzare <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"È possibile attivare una sola SIM alla volta.\n\nIl passaggio a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> non annullerà il servizio di <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"È possibile attivare una sola eSIM alla volta.\n\nIl passaggio a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> non annullerà il servizio di <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"È possibile attivare una sola SIM alla volta.\n\nIl passaggio non annullerà il servizio di <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Puoi utilizzare 2 SIM contemporaneamente. Per utilizzare <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, disattiva l\'altra SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Passa a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Disattiva <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"No, grazie"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Annulla"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Cambia"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Disattiva"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Impossibile attivare la SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Riprova ad attivare la SIM. Se il problema persiste, riavvia il dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configura la SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Imposta le preferenze per la rete mobile in modo da utilizzare più SIM su questo dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etichetta le tue SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Vedrai queste etichette quando effettui chiamate, invii SMS, usi i dati e in Impostazioni"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etichetta SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etichetta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Seleziona quali SIM utilizzare"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Puoi utilizzare 2 SIM contemporaneamente"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Imposta le tue SIM principali"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Scegli quali SIM utilizzare per impostazione predefinita per chiamate, SMS e dati"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Le tue SIM principali"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Chiamate"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Passaggio dati automatico"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Utilizza i dati di entrambe le SIM in base alla copertura e alla disponibilità"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Solo dati"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configura"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Avanti"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rete mobile"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Numero di telefono"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Etichetta e colore della SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Attivazione della rete"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Cambio di operatore in corso…"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"L\'operatore <xliff:g id="CARRIER_NAME">%1$s</xliff:g> è attivo"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Per utilizzare i dati mobili, le funzionalità di chiamata e gli SMS in un secondo momento, vai alle impostazioni di rete"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vuoi resettare questa eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Se elimini questa SIM, il servizio di <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> verrà rimosso da questo dispositivo.\n\nIl servizio di <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> non verrà annullato."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Elimina"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Reset della SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Impossibile resettare la SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Questa SIM non può essere resettata a causa di un errore.\n\nRiavvia il dispositivo e riprova."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Connessione al dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"L\'app <xliff:g id="APPNAME">%1$s</xliff:g> vorrebbe usare una rete Wi-Fi temporanea per connettersi al tuo dispositivo"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nessun dispositivo trovato. Assicurati che i dispositivi siano accesi e disponibili per la connessione."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Chiamate di emergenza"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Le chiamate di emergenza tramite Chiamate Wi-Fi non sono supportate dal tuo operatore.\nIl dispositivo passa automaticamente a una rete dati per fare una chiamata di emergenza.\nÈ possibile fare chiamate di emergenza soltanto in zone con copertura mobile."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Utilizza il Wi-Fi per migliorare la qualità delle chiamate"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Chiamate di backup"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Se <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> non è disponibile o è in roaming, usa la SIM di dati mobili per effettuare chiamate tramite <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"chiamate di backup"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Messaggio MMS in arrivo"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Impossibile inviare messaggio MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tocca per consentire i messaggi MMS su <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> quando i dati mobili non sono attivi"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informazioni sulle norme di lavoro"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Impostazioni gestite dall\'amministratore IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Avvia con dimensione pagina di 16 K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Avvia con un kernel per dimensione pagina di 16 K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Vuoi riavviare con un kernel compatibile con pagine da 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVVISO: alcune applicazioni potrebbero non essere compatibili con questa modalità. Il dispositivo verrà riavviato dopo la conferma."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Vuoi riavviare con un kernel compatibile con pagine da 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Il dispositivo verrà riavviato dopo la conferma."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Impossibile aggiornare il kernel alla versione compatibile con pagine da 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Applicazione della modifica in corso…"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Gestore segnalazione di bug"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Consente di stabilire quale app gestisce la scorciatoia per la segnalazione di bug sul dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personale"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Per riprendere velocemente la riproduzione, il media player rimane aperto nelle Impostazioni rapide"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostra contenuti multimediali nella schermata di blocco"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Per riprendere velocemente la riproduzione, il media player rimane aperto nella schermata di blocco"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostra consigli relativi a contenuti multimediali"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostra consigli di contenuti multimediali con l\'assistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"In base alle tue attività"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Nascondi player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostra player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Attiva"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Non attiva"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Predefinita per: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"chiamate"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"L\'audio dei dispositivi multimediali compatibili diventa più immersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Rilevamento dei movimenti della testa"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"L\'audio cambia in base ai movimenti della testa per sembrare più naturale"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Autorizzazioni di sincronizzazione"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Fornisci a <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> le stesse autorizzazioni app concesse su questo <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizzare le autorizzazioni dal telefono"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Fornisci all\'orologio le stesse autorizzazioni app concesse su questo telefono"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo di dispositivo audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Sconosciuto"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altoparlante"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Questa app può essere aperta soltanto in 1 finestra"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"On"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Off"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Rende gli schermi chiari in scuri e gli schermi scuri in chiari"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Aumenta lo zoom sullo schermo"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Off"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Off"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"On"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Off"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"On"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"La password non è impostata"</string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 9d016bb..b8c1696 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"לאחר דקה אחת"</item>
     <item msgid="1574040255478150028">"לאחר 5 דקות"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 0abff6a..0055aa1 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"רק משתמשים עם הרשאת אדמין יכולים לגשת להגדרות המפתח."</string>
     <string name="header_category_system" msgid="1665516346845259058">"מערכת"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"בשירות"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"לא תקין"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"מחליקים למעלה כדי להמשיך"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"מקפלים את הטלפון ומחליקים כלפי מעלה במסך החיצוני כדי להמשיך להשתמש באפליקציה, או ממתינים כמה שניות עד שהמסך יינעל"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"קשורים"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"רינגטון ושעונים מעוררים"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"אודיו במהלך שיחות"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"מדיה"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"התראות וצלילי מערכת אחרים"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"צלילי מדיה ומערכת"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"התראות"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"כברירת מחדל, פלט האודיו נקבע על ידי כל אפליקציה בנפרד"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"‏מכשיר Bluetooth ללא שם"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"מתבצע חיפוש"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"‏Bluetooth הופעל"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"הצגת כל המכשירים"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"הצגת הכול"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"סטיילוס"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"לחיצה על הלחצן האחורי"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (פרופיל העבודה)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"‏חיבור לשידור אודיו LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"שידורי אודיו בקרבת מקום"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"שידורי אודיו"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"‏חיבור לשידור אודיו באמצעות קוד QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"לא נמצאו שידורי אודיו בקרבת מקום."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"כדי לבחור שפה עבור כל אפליקציה, יש לעבור אל ההגדרות של שפת האפליקציה."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"מידע נוסף על שפות של אפליקציות"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏לשנות את שפת המערכת ל-%s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"‏להוסיף את %s לשפות המועדפות?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"כך אפליקציות ואתרים יכולים לדעת שזוהי השפה המועדפת עליך."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"הגדרות המכשיר והעדפות הפורמט והמידות שלך ישתנו."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"שינוי"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"‏%s לא זמינה"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"שבת"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"אם אפליקציה כלשהי לא תומכת בהעדפות הפורמט והמידות, השפה והאזור ייקבעו לפי ברירות המחדל של האפליקציה הזו."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"מידע נוסף על העדפות השפה"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"העדפות נוספות"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"אופן הפנייה"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"איך היית רוצה שנפנה אליך?"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"אפליקציות יכולות להשתמש באופן הפנייה שלך כדי להתאים אישית את האופן שבו יפנו אליך."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"לא רוצה להגדיר"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"נקבה"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"זכר"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ניטרלי"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{להסיר את השפה שנבחרה?}one{להסיר את השפות שנבחרו?}two{להסיר את השפות שנבחרו?}other{להסיר את השפות שנבחרו?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"הטקסט יוצג בשפה אחרת."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"לא ניתן להסיר את כל השפות"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"מיקום"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"שימוש במיקום"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"כבוי"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{פועל – לאפליקציה אחת (#) יש גישה למיקום}one{פועל – ל-# אפליקציות יש גישה למיקום}two{פועל – ל-# אפליקציות יש גישה למיקום}other{פועל – ל-# אפליקציות יש גישה למיקום}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{פועלת / לאפליקציה אחת (#) יש גישה למיקום}one{פועלת / ל-# אפליקציות יש גישה למיקום}two{פועלת / ל-# אפליקציות יש גישה למיקום}other{פועלת / ל-# אפליקציות יש גישה למיקום}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"בטעינה…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"אפליקציות עם ההרשאה \"מכשירים בקרבת מקום\" יכולות להעריך את המיקום היחסי של המכשירים המחוברים."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"הגישה למיקום מושבתת עבור אפליקציות ושירותים. אם מתקשרים למספר חירום או שולחים אליו הודעת טקסט, ייתכן שפרטי מיקום המכשיר יישלחו לצוותי חירום."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"למידע נוסף על הגדרות המיקום"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"מידע נוסף על הגדרות המיקום"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"‏כדי לשנות גישה למיקום, נכנסים ל\'הגדרות\' &gt; \'אבטחה ופרטיות\' &gt; \'אמצעי בקרה על פרטיות\'"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"‏לקבלת התוצאות הטובות ביותר, כדאי להשתמש במגן מסך בעל אישור Made for Google. טביעת האצבע של הילד או הילדה עלולה לא לעבוד עם מגני מסך אחרים."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ביטול נעילה עם השעון"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"לאחר הגדרה של פתיחה ע\"י זיהוי הפנים וביטול הנעילה בטביעת אצבע, טביעת האצבע נדרשת בטלפון אם עוטים מסיכה או נמצאים באזור חשוך.\n\nאפשר לבטל את הנעילה עם השעון כשהפנים או טביעת האצבע לא מזוהים."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"אפשר לבטל את הנעילה עם השעון כשטביעת האצבע לא מזוהה."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"אפשר לבטל את הנעילה עם השעון כשהפנים לא מזוהים."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"לאחר הגדרה של פתיחה ע\"י זיהוי הפנים וביטול הנעילה בטביעת אצבע, תופיע בקשה בטלפון לבטל את הנעילה באמצעות טביעת אצבע אם עוטים מסיכה או נמצאים במקום חשוך.\n\nהתכונה \'ביטול נעילה עם השעון\' היא עוד דרך נוחה לבטל את הנעילה של הטלפון, למשל, אם האצבעות רטובות או הפנים לא מזוהות."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"התכונה \'ביטול נעילה עם השעון\' היא עוד דרך נוחה לבטל את הנעילה של הטלפון, למשל, אם טביעת האצבע לא מזוהה."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"התכונה \'ביטול נעילה עם השעון\' היא עוד דרך נוחה לבטל את הנעילה של הטלפון, למשל, אם הפנים לא מזוהות."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"שימוש בטביעת האצבע או בשעון לצורך"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"שימוש בזיהוי פנים או בשעון לצורך"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"שימוש בזיהוי פנים, בטביעת האצבע או בשעון לצורך"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"הפנים וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"הפנים, טביעת האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"הפנים, טביעות האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"איך זה עובד"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"השעון צריך להיות פתוח, על פרק כף היד שלך וקרוב לטלפון. כשהשעון על פרק כף היד, לא צריך לבטל את הנעילה שלו שוב."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"כשמבטלים את הנעילה של הטלפון מקבלים התראה בשעון. אם הטלפון נפתח כשלא התכוונת, אפשר להקיש על ההתראה כדי לנעול אותו שוב."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"השליטה בידיים שלך"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"אפשר להסיר את השעון מהתכונה \'ביטול נעילה עם השעון\' בכל שלב בהגדרות"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"מקישים על התראה"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"מחליקים כלפי מעלה על מסך הנעילה"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"בחירת השעון"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"שעונים זמינים"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ביטול"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"אישור"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"הכול מוכן!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"עכשיו אפשר להשתמש בשעון כדי לבטל את נעילת הטלפון הזה כשמחליקים למעלה במסך הנעילה או כשמקישים על התראה"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"סיום"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ביטול נעילה עם השעון"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"אפשר להשתמש בשעון כדי לבטל את הנעילה של הטלפון הזה כשמחליקים למעלה במסך הנעילה או כשמקישים על התראה"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"כדי להשתמש בתכונה \'ביטול נעילה עם השעון\', השעון צריך להיות פתוח, על פרק כף היד שלך, בהישג יד ומחובר לטלפון הזה. אם החיבור נקטע, עליך לבטל את נעילת הטלפון כדי להשתמש בתכונה \'ביטול נעילה עם השעון\'.\n\nחשוב לזכור:\nניתן להגדיר רק שעון אחד בכל פעם. כדי להוסיף עוד שעון, קודם צריך להסיר את השעון הנוכחי."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"מידע נוסף על ביטול נעילה עם השעון"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"הוספת השעון"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"הסרת השעון"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"פתיחה בטביעת אצבע ופתיחה ע\"י זיהוי הפנים"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"פתיחה ע\"י זיהוי הפנים וביטול הנעילה בטביעת אצבע בפרופיל העבודה"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"צריך להגדיר ביטול נעילה בעזרת מידע ביומטרי"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"אבטחה"</string>
     <string name="privacy_header" msgid="5526002421324257007">"פרטיות"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"פרופיל העבודה"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"מרחב פרטי"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"נעילה והסתרה של אפליקציות פרטיות"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"שמירת אפליקציות פרטיות במרחב נפרד שאפשר להסתיר או לנעול"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"נעילה של המרחב הפרטי"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"אפשר לפתוח את המרחב הפרטי באותה דרך שפותחים את המכשיר או לבחור בנעילה אחרת"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"שימוש בשיטה לביטול נעילת המסך"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"פתיחה על ידי זיהוי הפנים וביטול הנעילה בטביעת אצבע"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ביטול הנעילה בטביעת אצבע"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"פתיחה ע\"י זיהוי הפנים"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"אפשר להקיש כדי להגדיר"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"הגדרת ביטול הנעילה בטביעת אצבע למרחב הפרטי"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"הגדרת פתיחה ע\"י זיהוי הפנים למרחב הפרטי"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"דרכים לביטול הנעילה"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"זהה לנעילת המסך במכשיר"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"רוצה לבחור שיטת נעילה חדשה למרחב הפרטי?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"נעילה אוטומטית"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"נעילת המרחב הפרטי באופן אוטומטי"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"אפשר לנעול את המרחב הפרטי באופן אוטומטי אם לא משתמשים במכשיר במשך פרק זמן מסוים"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"בכל פעם שהמכשיר ננעל"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"אחרי 5 דקות של חוסר פעילות"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"אף פעם"</string>
+    <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_deleted" msgid="7825768516955610897">"מחקת את המרחב הפרטי"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"לא ניתן היה למחוק את המרחב הפרטי"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"הנעילה של המרחב הפרטי בוטלה"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"הגדרת נעילת מסך"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"כדי להשתמש במרחב הפרטי שלך, עליך להגדיר נעילת מסך במכשיר הזה"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"הגדרה של נעילת מסך"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ביטול"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ביטול"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"הגדרה"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"הגדרת מרחב פרטי"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"שמים אפליקציות פרטיות במרחב נפרד שאפשר להסתיר או לנעול"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"איך זה עובד"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"אפשר לגשת למרחב הפרטי בחלק התחתון של רשימת האפליקציות שלך"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"אפליקציות במרחב הפרטי מוגנות באמצעות נעילה"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ההתראות מהאפליקציות במרחב הפרטי מוסתרות כשהוא נעול"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"אפליקציות במרחב הפרטי לא יופיעו בניהול ההרשאות, במרכז הבקרה להגדרות הפרטיות ובהגדרות אחרות כשהמרחב הפרטי נעול.\n\nלא ניתן להעביר את המרחב הפרטי למכשיר חדש. עליך להגדיר מרחב פרטי אחר אם ברצונך להשתמש בו במכשיר אחר.\n\nכל מי שיחבר את המכשיר שלך למחשב או יתקין אפליקציות מזיקות במכשיר שלך יוכל לגשת למרחב הפרטי שלך."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"הגדרת המרחב הפרטי מתבצעת…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ההתראות מהאפליקציות במרחב הפרטי מוסתרות כשהוא נעול"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ביטול נעילת המרחב הפרטי כדי לשתף תמונות או קבצים מאפליקציות במרחב הפרטי"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"חלק מהאפליקציות כבר מותקנות במרחב הפרטי שלך"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"לא ניתן להגדיר את המרחב הפרטי"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ניסיון נוסף"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"להשתמש בנעילת המסך כדי לבטל את נעילת המרחב הפרטי?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"אפשר לפתוח את המרחב הפרטי באותה דרך שפותחים את המכשיר או לבחור בשיטת נעילה אחרת"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"שימוש בשיטה לביטול נעילת המסך"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"בחירת נעילה חדשה"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"הכול מוכן!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"כדי לגשת למרחב הפרטי שלך, צריך לעבור לרשימת האפליקציות שלך ואז לגלול למטה"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"סיום"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"צריך לגלול למטה כדי למצוא את המרחב הפרטי"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"בחירת שיטת נעילה למרחב הפרטי"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"יש לך אפשרות לבטל את נעילת המרחב הפרטי בעזרת טביעת האצבע שלך. מטעמי אבטחה, האפשרות הזו מחייבת שיטת נעילה לגיבוי."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"הגדרת קוד אימות למרחב הפרטי"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"הגדרת סיסמה למרחב הפרטי"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"הגדרת קו ביטול נעילה למרחב הפרטי"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"‏כדי להציג את המרחב הפרטי (UX לא סופי)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"פותחים את אפליקציית ההגדרות"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"‏מקישים על \'אבטחה ופרטיות\' &gt; \'מרחב פרטי\' &gt; \'הסתרת המרחב הפרטי במצב נעילה\'"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"השבתת המתג \'הסתרת המרחב הפרטי במצב נעילה\'"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"הערה לגוגלרים: התכונה הזו עדיין בתהליך פיתוח"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ייתכן שתצטרך להקליד את המפתח הזה גם במכשיר השני."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"עליך לאשר התאמה עם הקבוצה המתואמת"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"אישור גישה אל אנשי הקשר והיסטוריית השיחות"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"תינתן גישה לאנשי הקשר ולהיסטוריית השיחות"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"המידע ישמש להודעות על שיחות ועוד"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"לא הייתה אפשרות להתחבר אל <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"מכשירים זמינים"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"במצב טיסה"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"קבלת התראות על רשתות ציבוריות"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"הצגת התראה כאשר רשת ציבורית באיכות גבוהה זמינה"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"‏הרשאה לרשתות WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"‏WEP הוא פרוטוקול אבטחה ישן יותר ופחות מאובטח"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"‏הספק שלך לא מתיר רשתות WEP כי הן פחות מאובטחות"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"‏הפעלה אוטומטית של Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‏Wi‑Fi יחזור לפעול בסביבת רשתות שמורות באיכות גבוהה, כמו הרשת הביתית שלך"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"לא זמין כי המיקום כבוי. יש להפעיל "<annotation id="link">"מיקום"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"‏התכונה \'חיפוש נקודות Wi-Fi\' מאפשרת לאפליקציות ולשירותים לחפש רשתות Wi-Fi בכל שלב, גם כאשר ה-Wi-Fi כבוי. האפשרות הזו יעילה, למשל, לשיפור תכונות ושירותים מבוססי מיקום."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"הפעלה"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"‏\'חיפוש נקודות Wi-Fi\' מופעל"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"הרשת הזו משתמשת בפרוטוקול אבטחה ישן יותר ופחות מאובטח"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"הגישה אל <xliff:g id="NAME">%1$s</xliff:g> חסומה"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"‏הרשת הזו משתמשת בפרוטוקול אבטחה ישן יותר ופחות מאובטח בשם WEP. כדי להתחבר בכל מקרה, אפשר לתת גישה לרשתות WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"הספק שלך לא מאפשר לך להתחבר לרשת הזו כי היא משתמשת בפרוטוקול אבטחה ישן יותר ופחות מאובטח"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"‏הרשאה ל-WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"סגירה"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"אפשרויות מתקדמות"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"רשימה נפתחת של אפשרויות מתקדמות"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"הרחבה"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"‏הישאר ברשת Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"אל תציג שוב אף פעם"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"התחברות"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"‏Wi-Fi הופעל"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"יש חיבור אל <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"מתבצעת התחברות אל <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"מתבצע חיבור…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"נכשל הניסיון להתחבר לרשת"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"הרשת לא בטווח"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"הסרה"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"שנה"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"נכשל הניסיון לשכוח את הרשת"</string>
     <string name="wifi_save" msgid="2312643132472226807">"שמירה"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"נכשל הניסיון לשמור את הרשת"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ביטול"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"חבילת גלישה"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"אתרנט"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – בטעינה"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – בטעינה"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"חיבור לנקודת אינטרנט"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"עוצמת החיבור"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"רשתות שנשמרו"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"לא הוגדרה סיסמה"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"שם הנקודה לשיתוף אינטרנט"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"הסיסמה לנקודת האינטרנט"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"‏תדר AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"כיבוי אוטומטי של נקודת האינטרנט"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"כשאין מכשירים מחוברים"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"הגדלת התאימות"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"השבתת ברירת המחדל של קצב הפריימים למשחקים"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"השבתה של הגבלת קצב הפריימים המרבי למשחקים ב-<xliff:g id="FRAME_RATE">%1$d</xliff:g> הרץ."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"תצוגה חלקה"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"‏התכונה \'המסך יישאר דלוק בזמן צפייה\' משתמשת במצלמה הקדמית כדי לזהות אם מישהו מביט במסך. התכונה פועלת במכשיר, והתמונות אף פעם לא נשמרות ולא נשלחות אל Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"המסך יישאר דלוק בזמן צפייה"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"כשמביטים במסך, הוא ממשיך לפעול"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"צריכת הסוללה עולה כשהזמן הקצוב לכיבוי המסך ארוך יותר."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"המצלמה נעולה"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"יש לבטל את הנעילה של המצלמה כדי להשתמש בתכונה לזיהוי הפנים"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"יש לבטל את הנעילה של המצלמה כדי להפעיל את התכונה \'המסך יישאר דלוק בזמן צפייה\'"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"‏IMEI (חריץ SIM ‏<xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"‏IMEI (חריץ SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ראשי)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"יש לבחור רשת שמורה כדי להציג"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"‏גרסת PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"טעינת סוללה:"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"שיתופי"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"הגדרות שיתופיות"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"שמירה"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ביטול"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"השדה \'שם\' לא יכול להיות ריק."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"‏ה-APN לא יכול להיות ריק."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"‏שדה MCC חייב להכיל 3 ספרות."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"‏שדה MNC חייב להכיל 2 או 3 ספרות."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"‏הספק לא מתיר הוספה של APNs מסוג %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"‏שדה MMSC חייב להיות חוקי."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"‏מתבצע שחזור של הגדרות ברירת המחדל של APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"איפוס לברירת המחדל"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"‏איפוס הגדרות ברירת המחדל של APN הושלם."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"איפוס"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"‏חיבורי Bluetooth ו-Wi‑Fi אופסו"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"‏מחיקה של כרטיסי ה-eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"‏הפעולה הזו לא תבטל אף חבילת גלישה. כדי להוריד כרטיסי SIM חלופיים, יש לפנות לספק חבילת הסלולר."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"איפוס הגדרות"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"לאפס את כל הגדרות הרשת? לא ניתן לבטל את הפעולה הזו."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"‏לאפס את כל הגדרות הרשת ולמחוק את כרטיסי ה-eSIM? לא ניתן לבטל את הפעולה הזו."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"האם לאפס?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"המשתמש הזה לא יכול לאפס את הגדרות הרשת"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"הגדרות הרשת אופסו"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"‏לא ניתן למחוק כרטיסי SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"‏בגלל שגיאה כלשהי לא ניתן למחוק את כרטיסי ה-eSIM.\n\nצריך להפעיל מחדש את המכשיר ולנסות שוב."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"מחיקת כל הנתונים (איפוס לנתוני היצרן)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"מחיקת כל הנתונים (איפוס לנתוני היצרן)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"מוזיקה"</li>\n<li>"תמונות"</li>\n<li>"נתוני משתמש אחרים"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729">"‏"<li>"כרטיסי eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"מחיקת הנתונים לא תבטל את תוכנית השירות הסלולרי שלך."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"כל המידע האישי שלך והאפליקציות שהורדת יימחקו. לא ניתן לבטל את הפעולה הזו."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"‏כל המידע האישי שלך יימחק, כולל אפליקציות וכרטיסי SIM שהורדת. לא ניתן לבטל את הפעולה הזו."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"האם למחוק את כל הנתונים?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"איפוס להגדרות המקוריות אינו זמין עבור המשתמש הזה"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"מתבצעת מחיקה"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"‏נקודה לשיתוף אינטרנט, USB, ‏Bluetooth, ‏Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"לא יתבצע שיתוף של חיבור לאינטרנט עם מכשירים אחרים"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"מושבת"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"שיתוף אינטרנט בין מכשירים"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"‏אין להשתמש בנקודה לשיתוף אינטרנט דרך Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"‏שיתוף אינטרנט רק באמצעות USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"‏שיתוף אינטרנט רק באמצעות Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"‏שיתוף אינטרנט רק באמצעות Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"‏שיתוף אינטרנט רק באמצעות USB ו-Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"‏שיתוף אינטרנט רק באמצעות USB ו-Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"‏שיתוף אינטרנט רק באמצעות Bluetooth ו-Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"‏שיתוף אינטרנט רק באמצעות USB, ‏Bluetooth ו-Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"‏שיתוף אינטרנט ב-USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"‏שיתוף אינטרנט ב-Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"שיתוף אינטרנט דרך אתרנט"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"‏נקודה לשיתוף אינטרנט (Hotspot) ושיתוף אינטרנט בין מכשירים (tethering) מאפשרים למכשירים אחרים להתחבר לאינטרנט דרך חיבור ה-Wi-Fi או חבילת הגלישה שלך. יש גם אפליקציות שמאפשרות ליצור נקודה לשיתוף אינטרנט ולשתף תכנים עם מכשירים קרובים."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"עזרה"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"רשתות סלולריות"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"תוכנית לנייד"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"‏אפליקציית SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"‏לשנות את אפליקציית ה-SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"‏האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כאפליקציית ה-SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"‏האם לשנות את אסיסטנט ה-Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"האם להשתמש ב-<xliff:g id="NEW_APP">%1$s</xliff:g> במקום ב-<xliff:g id="CURRENT_APP">%2$s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"האם להשתמש ב-<xliff:g id="NEW_APP">%s</xliff:g> כדי לנהל את חיבורי הרשת שלך?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"‏מפעיל SIM לא ידוע"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"ל-<xliff:g id="OPERATOR">%1$s</xliff:g> אין אתר ידוע לניהול תצורה"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"‏יש להכניס כרטיס SIM ולאתחל"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"יש להתחבר לאינטרנט"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"בקשות של מיקומים אחרונים"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"מיקום עבור פרופיל עבודה"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"הרשאות מיקום של אפליקציות"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ניקוי גישה"</string>
     <string name="controls_label" msgid="8671492254263626383">"פקדים"</string>
     <string name="force_stop" msgid="2681771622136916280">"אילוץ עצירה"</string>
+    <string name="archive" msgid="9074663845068632127">"העברה לארכיון"</string>
+    <string name="restore" msgid="7622486640713967157">"שחזור"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"סה\"כ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"גודל האפליקציה"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"‏אפליקציה של אחסון USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"לא ניתן לחשב את גודל החבילה."</string>
     <string name="version_text" msgid="7628938665256107608">"גרסה <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"העברה"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ההעברה לארכיון נכשלה"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> בארכיון"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"השחזור נכשל"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"מתבצע שחזור של <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"העברה אחרת מתבצעת כבר."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"אין מספיק שטח אחסון."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"האפליקציה לא קיימת."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"מקלדת שמופיעה במסך זמינה"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ניהול מקלדות שמופיעות במסך"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"אפשרויות"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"נגישות"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"מקלדת פיזית"</string>
     <string name="show_ime" msgid="4334255501724746849">"שימוש במקלדת שמופיעה במסך"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"תישאר במסך בזמן שהמקלדת הפיזית פעילה"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"מקשים חוזרים"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"הפעלת מקשים חוזרים לשיפור הנגישות במקלדת פיזית"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"מקשים \"דביקים\""</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"הפעלת מקשים \"דביקים\' לשיפור הנגישות במקלדת פיזית"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"מקשי קיצור"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"הצגת רשימה של מקשי הקיצור"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"מקלדות וכלים בפרופיל העבודה"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"מיון לפי זמן שימוש"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"מיון לפי זמן שימוש אחרון"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"מיון לפי שם האפליקציה"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"מועד שימוש אחרון"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"תאריך השימוש האחרון"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"אף פעם"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"זמן שימוש"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"נגישות"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"הגדרות נגישות"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"אני רוצה להמשיך בכל זאת"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ביטול"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"הגדרות ההגדלה"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"הגדלה על-ידי הקשה שלוש פעמים"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"הגדלה בעזרת קיצור דרך"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"הגדלה בעזרת קיצור דרך והקשה שלוש פעמים"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"מידע על <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"הקשה כפולה במסך עם שתי אצבעות כדי לפתוח"</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="860548190334486449">"כדי להתחיל ולהפסיק את ההגדלה, מקישים הקשה כפולה במיקום כלשהו במסך עם שתי אצבעות."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"כדי להשתמש בתכונת הנגישות, יש להחליק כלפי מעלה מתחתית המסך באמצעות שלוש אצבעות.\n\nכדי לעבור בין התכונות השונות, יש להחליק כלפי מעלה באמצעות שלוש אצבעות ולהחזיק."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"הבנתי"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"הגדרות של לחצן הנגישות"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"הגדרות הלחצן"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"קיצור הדרך של \'<xliff:g id="SERVICE">%1$s</xliff:g>\'"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"לחצן הנגישות"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"תנועת נגישות"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"מקישים הקשה כפולה על המסך עם שתי אצבעות"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"מקישים הקשה כפולה על המסך עם שתי אצבעות"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏מקישים במהירות על המסך {0,number,integer} פעמים עם שתי אצבעות"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"הקשה על המסך 3 פעמים"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"הקשה שלוש פעמים על המסך"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏מקישים במהירות על המסך {0,number,integer} פעמים. קיצור הדרך הזה עלול להאט את פעולת המכשיר"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"מידע נוסף על התנועות ולחצן הנגישות"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"השימוש בלחצן הנגישות. התנועה אינה זמינה עם ניווט ב-3 לחצנים."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"גישה מהירה לתכונות נגישות"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"כדי להתחיל:"</b>\n"1. עוברים להגדרות בנושא נגישות\n2. בוחרים תכונה ומקישים על קיצור הדרך\n3. בוחרים אם להשתמש בלחצן או בתנועה כדי לגשת לתכונה"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"כדי להתחיל:"</b>\n"1. עוברים להגדרות בנושא נגישות\n2. בוחרים תכונה ומקישים על קיצור הדרך\n3. בוחרים לחצן לגישה לתכונה"</string>
+    <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_size_title" msgid="5785110470538960881">"גודל"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"לחצן ההפעלה מסיים שיחה"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"מצביע עכבר גדול"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"הדגשה של מצביע העכבר"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"הגדרת עיצוב כהה לכל האפליקציות"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"רלוונטי לאפליקציות ללא עיצוב כהה משלהן. בחלק מהאפליקציות עשויות להיות בעיות תצוגה, כמו היפוך צבעים."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"הסרת אנימציות"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"הפחתת התנועה במסך"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"אודיו במונו"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"אפשרות למעקב אחר האינטראקציה שלך עם אפליקציות או חיישני חומרה, וביצוע אינטראקציה בשמך."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"אישור"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"עדיף שלא"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"עצירה"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ביטול"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"האם לעצור את <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"הקשה על <xliff:g id="STOP">%1$s</xliff:g> תפסיק את הפעולה של <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"השבתה"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"להמשיך"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"להשבית את <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"אין שירותים מותקנים"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"לא נבחר שירות"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"לא סופק תיאור."</string>
     <string name="settings_button" msgid="2195468788019730377">"הגדרות"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"רגישות לאור, פוטופוביה, עיצוב כהה, מיגרנה, כאב ראש, מצב קריאה, מצב לילה, הפחתת בהירות, נקודה לבנה"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"שימוש בקלות, קבלת גישה בקלות, עזרה, כלי מסייע"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ראייה, שמיעה, עיוור, לקוי ראייה, עיוורון, חירש, לקוי שמיעה, חירשות, מוטורי, לקות מוטורית, ניידות, מוטוריקה עדינה, מסייע, סיוע, קלות השימוש, נגישות, גישה קלה, יד, עזרה"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"כלי להגדלת חלון, זום, הגדלה, לקוי ראייה, הגדלה"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"‏כתוביות, תמלול בזמן אמת, כבד שמיעה, אובדן שמיעה, CART, המרת דיבור לטקסט (STT), כתובית"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ניגודיות של צבעים"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"מוטורי, עכבר"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"מכשירי שמיעה, כבד שמיעה, אובדן שמיעה, שתלים קוכליאריים, מכשירי הגברה, מעבדי צלילים"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"מוטורי, לקות מוטורית, ניידות, עכבר, עכבר חיצוני, עכבר ראש, עכבר ניתן להתאמה, עכבר מותאם, כיסא גלגלים, ג\'ויסטיק, מוט היגוי"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"‏מכשירי שמיעה, כבד שמיעה, לקות שמיעה, אובדן שמיעה, שתלים קוכליאריים, שתל קוכליארי, מכשירי הגברה, מעבדי צלילים, עיבוד צלילים, PSAP, מוקד חירום לציבור"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"‏כבד שמיעה, אובדן שמיעה, כתוביות, הקלדה באמצעות TTY,‏ TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"שלושה לחצנים"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"‏מוטוריקה עדינה, מוטורי, לקות מוטורית, ניידות, דלקת מפרקים, מדד העוצמה היחסית (RSI), שבץ, רעד, טרשת נפוצה, שיתוק מוחין, רעידה, פציעה בעקבות עומס חוזר ונשנה, יד"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"עיכוב, מוטוריקה עדינה, אזרחים ותיקים, מבוגרים"</string>
     <string name="print_settings" msgid="8519810615863882491">"הדפסה"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"כבוי"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{שירות הדפסה אחד פועל}one{# שירותי הדפסה פועלים}two{# שירותי הדפסה פועלים}other{# שירותי הדפסה פועלים}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"האפליקציות המובילות במידת השימוש בסוללה"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"הטעינה עברה אופטימיזציה כדי להגן על הסוללה"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"כדי להאריך את משך חיי הסוללה, הטעינה עוברת אופטימיזציה"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"הטעינה עברה אופטימיזציה כדי להגן על הסוללה"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"כדי להאריך את חיי הסוללה, הטעינה עוברת אופטימיזציה בזמן העגינה"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"הטעינה עברה אופטימיזציה כדי להגן על הסוללה"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"כדי להאריך את חיי הסוללה, הטעינה עוברת אופטימיזציה בזמן העגינה"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"טעינה עד מצב מלא"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"כדי להגן על הסוללה, הטעינה תעבור אופטימיזציה בפעם הבאה שהטאבלט יהיה באביזר העגינה"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"מידע נוסף על השהיית הטעינה"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"המשך הטעינה"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"כולל פעילות ברקע שצורכת חשמל רב"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"הסרה"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ביטול"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"טעינה מלאה"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"יש בעיה עם אביזר הטעינה"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"מידע נוסף על טעינה לא תואמת"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"מנהל הסוללה"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ניהול אפליקציות באופן אוטומטי"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"עכשיו"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"‎<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>‎"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"תרשים של השימוש בסוללה"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"תרשים של השימוש היומי בסוללה"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"תרשים של השימוש השעתי בסוללה"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"אחוז רמת הטעינה מ-<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> עד <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"שימוש בסוללה מאז הטעינה המלאה האחרונה"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"שימוש בסוללה <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"זמן מסך מאז הטעינה המלאה האחרונה"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"אות לחיוג חירום"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"הגדרת אופן פעולה בעת ביצוע שיחת חירום"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"גיבוי"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"פועל"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"כבוי"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"גיבוי ושחזור"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"נתונים אישיים"</string>
     <string name="backup_data_title" msgid="507663517227498525">"גיבוי הנתונים שלי"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"שם"</string>
     <string name="vpn_type" msgid="5533202873260826663">"סוג"</string>
     <string name="vpn_server" msgid="2908816134941973935">"כתובת שרת"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"‏הצפנת PPP‏ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"‏סוד של L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"‏מזהה IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"‏מפתח משותף מראש של IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"‏אישור משתמש IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"‏אישור CA של IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"‏אישור של שרת IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"אפשרויות מתקדמות"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"‏דומיינים של חיפוש DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"‏שרתי DNS (לדוגמה, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"מסלולי העברה (לדוגמה, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"שם משתמש"</string>
     <string name="vpn_password" msgid="1183746907642628127">"סיסמה"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"שמירת פרטי החשבון"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(לא בשימוש)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(לא לאמת את השרת)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(התקבל מהשרת)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"‏סוג זה של VPN לא יכול להישאר מחובר תמיד"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"‏VPN בחיבור תמידי תומך רק בכתובות שרת מספריות"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"‏יש להגדיר שרת DNS ל-VPN בחיבור תמידי"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"‏הכתובות של שרת ה-DNS צריכות להיות מספריות עבור VPN בחיבור תמידי"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"‏המידע שהוזן לא תומך ב-VPN בחיבור תמידי"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ביטול"</string>
     <string name="vpn_done" msgid="5137858784289564985">"סגירה"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"‏חסימת חיבורים ללא VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"‏תמיד לדרוש חיבור VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"‏לא מאובטחת. עדכון ל-VPN בפרוטוקול IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"‏הפעלת VPN לא נתמך נכשלה."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"‏בוחרים פרופיל VPN שנשארים מחוברים אליו תמיד. תנועת רשת תהיה מותרת רק כאשר יהיה חיבור ל-VPN זה."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ללא"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"‏VPN מופעל תמיד מחייב כתובת IP לשרת ול-DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"‏התרעות AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"קבלת מבזקים על חטיפות ילדים"</string>
     <string name="repeat_title" msgid="8676570486899483606">"חוזר"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"‏הפעל את Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"התרה לשירות הזה לנהל את האופן שבו מבוצעות שיחות."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"התרעות אלחוטיות על מקרי חירום"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ספקי רשתות"</string>
     <string name="access_point_names" msgid="5768430498022188057">"‏שמות של נקודות גישה (APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"ארנק"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"תשלום, הקשה, תשלומים"</string>
     <string name="keywords_backup" msgid="707735920706667685">"‏גיבוי, לגבות, backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"תנועה"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"פנים, ביטול נעילה, אימות, כניסה"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"פתיחה ע\"י זיהוי הפנים, אימות, כניסה לחשבון, טביעת אצבע, מידע ביומטרי"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"‏imei,‏ meid,‏ min, גרסת prl,‏ imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"הפעלת צלילים"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"כתוביות מיידיות"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"הוספת כתוביות למדיה באופן אוטומטי"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"רמקולים של טלפון"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"רמקולים של טאבלט"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"רמקולים של מכשיר"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"אוזניות חוטיות"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"אודיו שמגיע ממכשירי מדיה תואמים יוצר חוויה עשירה יותר"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"התכונה כבויה"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"השיחות האחרונות הוסרו"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"השיחה הוסרה"</string>
     <string name="clear" msgid="5092178335409471100">"ניקוי"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"מחיקה של <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"שיחות בעדיפות גבוהה ושיחות שנערכו בהן שינויים יופיעו כאן"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"שיחות שסומנו כשיחות בעדיפות גבוהה או שיחות שנערכו בהן שינויים אחרים יופיעו כאן. \n\nלשינוי הגדרות השיחות: \nיש להחליק למטה מהחלק העליון של המסך כדי לפתוח את חלונית ההתראות, ואז ללחוץ לחיצה ארוכה על שיחה כלשהי."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ברמה מינימלית"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"מושבתת"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"הצמדת אפליקציה"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"התכונה \'הצמדת אפליקציה\' מאפשרת לקבע את האפליקציה הנוכחית בתצוגה עד לביטול ההצמדה. אפשר להשתמש בתכונה, למשל, כשנותנים לחבר מהימן לשחק במשחק מסוים."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"לאחר הצמדת אפליקציה כלשהי, האפליקציה יכולה לפתוח אפליקציות אחרות ולאפשר גישה למידע האישי. \n\nכדי להשתמש בהצמדת אפליקציה: ←\n1. מפעילים את הצמדת האפליקציה ←\n2. פותחים את הסקירה הכללית ←\n3. מקישים על סמל האפליקציה שמופיע בחלק העליון של המסך ואז מקישים על \'הצמדה\'"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"לאחר הצמדת אפליקציה כלשהי, האפליקציה יכולה לפתוח אפליקציות אחרות ולאפשר גישה למידע האישי. \n\nכדי לשתף את המכשיר באופן מאובטח עם אדם אחר, כדאי להשתמש במשתמש אורח במקום זאת. \n\nכדי להשתמש בהצמדת אפליקציה: ←\n1. מפעילים את הצמדת האפליקציה ←\n2. פותחים את הסקירה הכללית ←\n3. מקישים על סמל האפליקציה שמופיע בחלק העליון של המסך ואז מקישים על \'הצמדה\'"</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_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">"בקשת קוד גישה לפני ביטול הצמדה"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ניהול האפליקציה כשהיא לא בשימוש"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"הסרת ההרשאות, מחיקה של הקבצים הזמניים, הפסקה של קבלת ההתראות והעברת האפליקציה לארכיון"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"כל האפליקציות"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"אפליקציות מותקנות"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"אפליקציות ללא התקנה"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"פנוי"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"זיכרון בשימוש על ידי אפליקציות"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{אפליקציה אחת השתמשה בזיכרון ב-{time}}one{# אפליקציות השתמשו בזיכרון ב-{time}}two{# אפליקציות השתמשו בזיכרון ב-{time}}other{# אפליקציות השתמשו בזיכרון ב-{time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"הפעלת הפרופיילינג של השימוש בזיכרון"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"הפרופיילינג של השימוש בזיכרון דורש משאבי מערכת נוספים."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"הפרופיילינג של הזיכרון מושבת"</string>
     <string name="running_frequency" msgid="7260225121706316639">"תדר"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"שימוש מקסימלי"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"לא נעשה שימוש בנתונים"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"הצגה מעל אפליקציות אחרות"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"הצגה מעל אפליקציות אחרות"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ההגדרה הזו מאפשרת לאפליקציה להופיע מעל אפליקציות אחרות שנמצאות בשימוש. האפליקציה תוכל לראות את מיקומי ההקשות שלך או לשנות את מה שמוצג במסך."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"שינוי פלט המדיה"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"מתן הרשאה לאפליקציה להחליף פלט מדיה"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"‏מתן הרשאה לאפליקציה הזו לבחור איזה מכשיר מחובר יפעיל אודיו או וידאו מאפליקציות אחרות. אם תינתן הרשאה לאפליקציה, היא תוכל לגשת לרשימה של מכשירים זמינים כמו אוזניות ורמקולים ולבחור איזה מכשיר להצגת מידע ישמש כדי לשדר או להעביר (cast) אודיו או וידאו."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"גישה לכל הקבצים"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"שיפור ההפעלה הקולית"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"המכשיר הזה משתמש בבינה פרטית כדי לשפר את מודל ההפעלה הקולית. אפליקציות יכולות לקבל סיכומי עדכונים שנאספים ממשתמשים רבים כדי לשמור על פרטיות המשתמשים ולשפר את המודל לכולם.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"אזהרה לגבי שימוש בנתונים: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"מגבלת נתונים: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"אזהרה לגבי שימוש בנתונים – <xliff:g id="ID_1">^1</xliff:g> / מגבלת נתונים – <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ייתכן שחישוב השימוש בנתונים אצל הספק יהיה שונה מזה שבמכשיר"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"לא כולל נתונים שמשמשים את רשתות הספק"</string>
     <string name="data_used_template" msgid="8229342096562327646">"נעשה שימוש ב-<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"הגדרת אזהרה לגבי שימוש בנתונים"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"עודכן לפני <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"עדכון בוצע על ידי <xliff:g id="ID_1">^1</xliff:g> זה עתה"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"עודכן עכשיו"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"הצגת התוכנית"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"לפרטים"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"‏חוסך הנתונים (Data Saver)"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"שימוש בנתונים בלתי מוגבלים"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"חריגה בשימוש בסוללה"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"כרטיסי מידע למפתחים בהגדרות המהירות"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‏השבתה של זמן קצוב לתפוגה של הרשאת adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"‏השבתה של ביטול אוטומטי של הרשאות adb, למערכות שלא התחברו מחדש במסגרת משך הזמן המוגדר כברירת מחדל (שבעה ימים) או מוגדר על ידי משתמשים (יום אחד לפחות)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"‏מעקב Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"כיבוי חיישנים"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"הגדרות של פרופיל העבודה"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"חיפוש אנשי קשר מספריית העבודה באפליקציות לשימוש אישי"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"שירות מילוי אוטומטי"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"שירות מילוי אוטומטי שמוגדר כברירת מחדל"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"סיסמאות"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"סיסמאות, מפתחות גישה ושירותי נתונים"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ספקים נוספים"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{סיסמה אחת (#)}one{# סיסמאות}two{# סיסמאות}other{# סיסמאות}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"אוטומטי, מילוי, מילוי אוטומטי, סיסמה"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"נתונים, מפתח גישה, סיסמה"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"מילוי, אוטומטי, מילוי אוטומטי, נתונים, מפתח גישה, סיסמה"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"סיסמאות, מפתחות גישה ושירותי נתונים"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"‏&lt;b&amp;gtלהשבית את כל השירותים?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; סיסמאות, מפתחות גישה ונתונים שמורים אחרים לא יהיו זמינים למילוי אוטומטי בכניסה לחשבון"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"‏&lt;b&gt;שינוי השירות המועדף עליך ל-&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; סיסמאות ומפתחות גישה חדשים ונתונים אחרים יישמרו כאן מעכשיו. האפליקציה &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; יכולה לבדוק את אילו מהפריטים במסך אפשר למלא באופן אוטומטי"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"‏להשתמש ב-%1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"אפשר להפעיל רק 5 שירותים בכל פעם"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"צריך להשבית לפחות שירות אחד כדי להוסיף עוד שירות"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"‏%1$s עושה שימוש במידע המוצג במסך כדי לקבוע אילו פרטים ניתן למלא באופן אוטומטי."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"מגבלת הסיסמאות, מפתחות הגישה ושירותי הנתונים"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ניתן להפעיל עד 5 סיסמאות, מפתחות גישה ושירותי נתונים בו-זמנית. יש להשבית אחד מהשירותים כדי להוסיף שירות אחר."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"מגבלת הסיסמאות, מפתחות הגישה ושירותי הנתונים"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ניתן להפעיל עד 5 סיסמאות, מפתחות גישה ושירותי נתונים בו-זמנית. יש להשבית אחד מהשירותים כדי להוסיף שירות אחר."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"השבתה"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"מילוי אוטומטי"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"רמת רישום ביומן"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ניתן לבצע שינויים בתאימות האפליקציה רק עבור אפליקציות שניתנות לניפוי באגים. יש להתקין אפליקציה שניתנת לניפוי באגים ולנסות שוב."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"תלויה בהגדרה אחרת"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"חשבון"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"‏%d חשבונות"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"שם המכשיר"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"מידע בסיסי"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"משפטי ורגולטורי"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"‏ההרשאה הזו מאפשרת לאפליקציה לפעול כשתג NFC נסרק.\nכשההרשאה פועלת, האפליקציה תופיע כאפשרות בכל פעם שיאותר תג."</string>
     <string name="media_output_title" msgid="8283629315159510680">"הפעלת מדיה באמצעות"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"הפעלת <xliff:g id="LABEL">%s</xliff:g> ב:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"האודיו יופעל"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"מכשיר זה"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"לא זמין במהלך ביצוע שיחות"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"קבלת שיחה בסוג פלט"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"השתקה"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"כדי להפעיל, קודם צריך לשנות את \'לחיצה ארוכה על לחצן ההפעלה\' לתפריט ההפעלה."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"פרטי הרשת"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"‏שם המכשיר שלך גלוי לאפליקציות בטלפון. כמו כן, ייתכן שאנשים אחרים יראו אותו בהתחברות למכשירי Bluetooth, לרשת Wi-Fi, או בהגדרת נקודת Wi-Fi לשיתוף אינטרנט."</string>
     <string name="devices_title" msgid="649715719278562515">"מכשירים"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"בחירת רשת"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"מנותק"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"שם"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"צבע (בשימוש על ידי אפליקציות תואמות)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"שמירה"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"‏שימוש ב-SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"‏צריך להשתמש בכרטיס ה-SIM הזה"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"מושבת"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"‏כדי להשבית את ה-SIM הזה, יש להסיר את כרטיס ה-SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"יש להקיש כדי להפעיל את <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‏מחיקת SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"סוג רשת מועדף"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"שינוי מצב ההפעלה של הרשת"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"סוג רשת מועדף"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"למידע נוסף על המחירים, יש לפנות לספק השירות."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"שימוש בחבילת הגלישה באפליקציות"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"מצב רשת לא חוקי <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. התעלמות."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"‏שמות של נקודות גישה (APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"לא זמין כשהמכשיר מחובר ל-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"לעבור אל <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"‏לעבור לכרטיס SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"להשתמש בספק <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"‏אפשר להשתמש רק בכרטיס SIM אחד בכל רגע נתון.\n\nמעבר אל <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> לא יבטל את השירות של <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"‏בכל רגע נתון אפשר להשתמש רק ב-eSIM אחד.\n\nמעבר אל <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> לא יבטל את השירות של <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"‏אפשר להשתמש רק בכרטיס SIM אחד בכל רגע נתון.\n\nהחלפת הכרטיס לא תבטל את השירות של <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"‏ניתן להשתמש ב-2 כרטיסי SIM בו-זמנית. כדי להשתמש בכרטיס <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, עליך לכבות כרטיס SIM אחר."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"מעבר אל <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"כיבוי של <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"לא תודה"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ביטול"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"מעבר"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"השבתה"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"‏לא ניתן להפעיל את ה-SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"‏יש להפעיל שוב את ה-SIM. אם הבעיה נמשכת, יש להפעיל מחדש את המכשיר."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"‏הגדרת כרטיס ה-SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"‏צריך להגדיר את ההעדפות של הרשת הסלולרית כדי להשתמש בכמה כרטיסי SIM במכשיר הזה"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"‏הוספת תווית לכרטיסי ה-SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"התוויות האלה יוצגו לך בביצוע שיחות, בשליחת טקסטים ובשימוש בנתונים וב\'הגדרות\'"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"‏התווית של כרטיס ה-SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"תווית"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"‏בחירה באיזה כרטיסי SIM להשתמש"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"‏ניתן להשתמש בשני כרטיסי SIM בו-זמנית"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"‏הגדרת כרטיסי ה-SIM העיקריים"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"‏אפשר לבחור באיזה כרטיס SIM להשתמש כברירת מחדל לשיחות, לטקסטים ולנתונים"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"‏כרטיסי ה-SIM העיקריים"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"שיחות"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"הודעות טקסט"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"מעבר אוטומטי בין חבילות גלישה"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"‏שימוש בחבילת הגלישה של אחד מכרטיסי ה-SIM, תלוי בכיסוי ובזמינות"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"נתונים בלבד"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"הגדרה"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"הבא"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"רשת סלולרית"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"מספר טלפון"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"‏התווית והצבע של כרטיס ה-SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"הפעלת רשת"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"החלפת ספק"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> פעיל"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"‏כדי להשתמש בחבילת גלישה, תכונות של שיחות והודעות SMS מאוחר יותר, יש לעבור אל הגדרות הרשת"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"‏כרטיס SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"‏למחוק את ה-eSIM הזה?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"‏מחיקת כרטיס ה-SIM הזה תסיר את השירות של <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> מהמכשיר.\n\nהשירות של <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> לא יבוטל."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"מחיקה"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"‏מתבצעת מחיקת SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"‏לא ניתן למחוק את ה-SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"‏עקב שגיאה, לא ניתן למחוק את ה-SIM הזה.\n\nצריך להפעיל מחדש את המכשיר ולנסות שוב."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"התחברות למכשיר"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"‏האפליקציה <xliff:g id="APPNAME">%1$s</xliff:g> מבקשת להשתמש ברשת Wi-Fi זמנית כדי להתחבר למכשיר שלך"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"לא נמצאו מכשירים. יש לוודא שהמכשירים פועלים וזמינים לחיבור."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"שיחות חירום"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"‏הספק שלך לא תומך בשיחות חירום ב-Wi-Fi.\n. הגדרות המכשיר עוברות באופן אוטומטי לרשת סלולרית כדי לבצע שיחת חירום.\nניתן לבצע שיחות חירום רק באזורים שבהם יש קליטה סלולרית."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"‏שימוש ברשת Wi-Fi לשיחות לצורך שיפור האיכות"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"אמצעי גיבוי להתקשרות"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"‏אם <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> לא זמין או בנדידה, יש להשתמש ב-SIM עם חבילת גלישה לשיחות <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"אמצעי גיבוי להתקשרות"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"‏הודעת MMS נכנסת"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"‏לא ניתן לשלוח הודעת MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"‏יש להקיש כדי להתיר העברת הודעות MMS ב-<xliff:g id="OPERATOR_NAME">%1$s</xliff:g> כשחבילת הגלישה מושבתת"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"פרטי המדיניות של פרופיל העבודה"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"‏הגדרות שעליהן אחראי מנהל ה-IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"‏הפעלה בגודל דף של 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"‏הפעלת המכשיר באמצעות ליבה נתמכת בגודל דף של 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"‏להפעיל מחדש עם ליבה (kernel) תואמת לדפים של 16KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"אזהרה: יכול להיות שאפליקציות מסוימות לא תואמות למצב הזה. המכשיר יופעל מחדש לאחר האישור."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"‏להפעיל מחדש עם ליבה (kernel) תואמת לדפים של 4KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"המכשיר יופעל מחדש לאחר האישור."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"‏עדכון הליבה (kernel) התואמת לדפים של 16KB נכשל."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"השינויים מתעדכנים"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"טיפול בדוחות על באגים"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"הגדרה זו קובעת איזו אפליקציה מטפלת במקש הקיצור של הדוח על הבאג במכשיר."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"אישי"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"לצורך המשך מהיר של ההפעלה, נגן המדיה נשאר פתוח בהגדרות המהירות"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"הצגת מדיה במסך הנעילה"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"כדי שתהיה לך אפשרות להמשיך במהירות את ההפעלה, נגן המדיה נשאר פתוח במסך הנעילה"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"הצגת המלצות על מדיה"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"‏הצגת המלצות המדיה של Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"על סמך הפעילות שלך"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"הסתרת הנגן"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"הצגת הנגן"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"‏כרטיסי eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"פעיל"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"לא פעיל"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / ברירת המחדל של <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"שיחות"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"אודיו שמגיע ממכשירי מדיה תואמים יוצר חוויה עשירה יותר"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"מעקב אחר תנועות הראש"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"האודיו משתנה בהתאם לתנועות הראש כדי שיישמע טבעי יותר"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"סנכרון ההרשאות"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"עליך לתת למכשיר <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> את אותן הרשאות לאפליקציות שנתת למכשיר <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"סנכרון ההרשאות מהטלפון"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"עליך לתת לשעון את אותן הרשאות לאפליקציות שנתת לטלפון הזה"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"סוג של התקן אודיו"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"לא ידוע"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"רמקול"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"בינונית"</string>
     <string name="contrast_high" msgid="3988567609694797696">"גבוהה"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ניתן לפתוח את האפליקציה הזו רק בחלון אחד"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"מצב פעיל"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"מצב מושבת"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"מצב מושבת"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"מושבת"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"מופעלת"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"מושבתת"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"מופעלת"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"מושבתת"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"התכונה משנה את הצבעים של מסכים בהירים לצבעים כהים ולהפך"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"הגדלת התצוגה במסך"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"מושבתת"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"מושבתת"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"מופעלת"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"מושבתות"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"מופעלות"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"הסיסמה מוגדרת עכשיו"</string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index 0553b20..ebdf56a 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -306,7 +306,7 @@
   <string-array name="captioning_typeface_selector_titles">
     <item msgid="2166553138528640250">"デフォルト"</item>
     <item msgid="4234707448428002595">"Sans Serif"</item>
-    <item msgid="2390008695651897663">"Sans Serif コンデンス"</item>
+    <item msgid="2390008695651897663">"Sans Serif Condensed"</item>
     <item msgid="2396492419730702454">"Sans Serif 固定幅"</item>
     <item msgid="8199675052804786099">"Serif"</item>
     <item msgid="4554123140736897688">"Serif 固定幅"</item>
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 8bc17d5..747a3a9 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"デベロッパー向けの設定には管理者ユーザーのみアクセスできます。"</string>
     <string name="header_category_system" msgid="1665516346845259058">"システム"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"圏内"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"圏外"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"上にスワイプして続行"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"スマートフォンを折りたたみ、フロント ディスプレイで上にスワイプしてアプリを使い続け、数秒ほどすると画面がロックされます"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"関連ツール"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"着信音とアラーム"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"通話中の音声"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"メディア"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"通知などのシステム音"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"メディア、システム音"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"通知"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"デフォルトでは、音声出力方法はアプリによって決まります"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"名前のないBluetoothデバイス"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"検索中"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth を ON にしました"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"すべて表示"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"すべて表示"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"タッチペン"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"テールボタンを押す"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g>(仕事用プロファイル)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE Audio ストリームへの接続"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"付近の音声ストリーム"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"音声ストリーム"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR コードを使用して音声ストリームに接続します"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"付近に音声ストリームは見つかりませんでした。"</string>
     <string name="date_and_time" msgid="1788358029823431692">"日付と時刻"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"プロキシ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"消去"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"アプリごとに言語を選択するには、アプリの言語設定に移動してください。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"アプリの言語の詳細"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"システムの言語を%sに変更しますか?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%sを使用言語に追加しますか?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"これにより、この言語もアプリやウェブサイトで使用言語として認識されるようになります。"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"デバイスの設定と地域別の設定が変更されます。"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"変更"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%sは使用できません"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"土曜日"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"アプリで地域別の設定がサポートされていない場合は、デフォルトの言語 / 地域設定が使用されます。"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"詳しくは、言語設定についての説明をご覧ください。"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"追加設定"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"呼び方"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"自分を何と呼んでほしいかを設定します"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"アプリがあなたを呼ぶときに使用できる呼び方を設定できます。"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"指定しない"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"女性"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"男性"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"普通"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{選択した言語を削除しますか?}other{選択した言語を削除しますか?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"テキストは別の言語で表示されるようになります。"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"すべての言語を削除することはできません"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"位置情報"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"位置情報を使用"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"OFF"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ON - # 件のアプリに位置情報へのアクセスを許可}other{ON - # 件のアプリに位置情報へのアクセスを許可}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ON / # 個のアプリに位置情報へのアクセスを許可}other{ON / # 個のアプリに位置情報へのアクセスを許可}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"読み込んでいます…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"付近のデバイスへのアクセス許可を持つアプリは、接続されたデバイスの相対位置を確認できます。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"アプリとサービスの位置情報へのアクセスは OFF になっています。緊急通報番号に電話をかけたりテキスト メッセージを送信したりした場合は、デバイスの位置情報が緊急サービスに送信されることがあります。"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"位置情報の設定の詳細"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"位置情報の設定の詳細"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"位置情報のアクセス権を変更するには、[設定] &gt; [セキュリティとプライバシー] &gt; [プライバシー管理] に移動します"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"最適な結果を得るには、Made For Google 認定の画面保護シートを使用してください。認定されていないシートを使うと、お子様の指紋が認識されない可能性があります。"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ウォッチ認証"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"顔認証と指紋認証を設定した場合、マスク着用時や暗い場所にいるときは指紋認証が求められます。\n\n顔や指紋が認識されなかった場合は、ウォッチでロック解除できます。"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"指紋が認識されなかった場合はウォッチでロック解除できます。"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"顔が認識されなかった場合はウォッチでロック解除できます。"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"顔認証と指紋認証を設定した場合、マスク着用時や暗い場所にいるときは指紋認証が求められます。\n\nウォッチ認証を使用すると、指が濡れているときや顔が認識されないときなどでも、このスマートフォンをロック解除できます。"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ウォッチ認証を使用すると、指紋が認識されないときなどでも、スマートフォンをロック解除できます。"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ウォッチ認証を使用すると、顔が認識されないときなどでも、スマートフォンをロック解除できます。"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"指紋認証またはウォッチの使用:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"顔認証またはウォッチの使用:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"顔認証、指紋認証、またはウォッチの使用:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"顔、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"リモート認証のロック解除"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"スマートウォッチを追加しました"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"スマートウォッチのセットアップ"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"仕組み"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"スマートウォッチをロック解除し、手首に着けて、このスマートフォンに近づける必要があります。すでに着けている場合は、スマートウォッチを再びロック解除する必要はありません。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"このスマートフォンがロック解除されると、スマートウォッチに通知が届きます。意図せずロック解除された場合は、通知をタップしてスマートフォンをもう一度ロックしてください。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ユーザーが設定可能"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"[設定] で、ウォッチ認証からスマートウォッチをいつでも削除できます"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"通知をタップする"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ロック画面を上にスワイプする"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"スマートウォッチの選択"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"対応しているスマートウォッチ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"キャンセル"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"確認"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"設定完了"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ロック画面で上にスワイプするか通知をタップすることで、スマートウォッチからスマートフォンをロック解除できるようになりました"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完了"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ウォッチ認証"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ロック画面で上にスワイプするか通知をタップすることで、スマートウォッチからスマートフォンをロック解除できます"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ウォッチ認証を使用するには、スマートウォッチがロック解除されていること、手首に装着されていること、このスマートフォンの近くにあること、このスマートフォンと接続済みであることが必要です。接続が中断された場合、ウォッチ認証を使用するにはスマートフォンをロック解除する必要があります。\n\n注意事項:\n一度にセットアップできるスマートウォッチは 1 つだけです。他のスマートウォッチを追加するには、セットアップ済みのスマートウォッチを削除してください。"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ウォッチ認証の詳細"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"スマートウォッチを追加"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"スマートウォッチを削除"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋認証と顔認証"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"仕事用の顔認証と指紋認証"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"セットアップが必要です"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"セキュリティ"</string>
     <string name="privacy_header" msgid="5526002421324257007">"プライバシー"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"仕事用プロファイル"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"プライベート スペース"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"限定公開アプリはロックされたままで非表示となります"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"非表示またはロックできる個別のスペースに限定公開アプリを保持できます"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"プライベート スペースのロック"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"デバイスのロック解除と同じ方法でプライベート スペースのロックを解除するか、別のロックを選択できます"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"デバイスの画面ロックを使用"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"顔認証と指紋認証によるロック解除"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"指紋認証"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"顔認証"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"タップして設定してください"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"プライベート スペースの指紋認証"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"プライベート スペースの顔認証"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"ロック解除方法"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"デバイスと同じ画面ロックを使用中"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"プライベート スペースの新規ロックを選択しますか?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"自動ロック"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"プライベート スペースを自動的にロックする"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"デバイスを一定時間使用していないときに、プライベート スペースを自動的にロックできます"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"デバイスのロック時は毎回"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"操作が行われない状態で 5 分経過後"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"なし"</string>
+    <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_delete_title" msgid="3075645119800272800">"プライベート スペースの削除"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"プライベート スペースを削除しました"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"プライベート スペースを削除できませんでした"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"プライベート スペースのロックを解除"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"画面ロックの設定"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"プライベート スペースを使用するには、このデバイスで画面ロックを設定してください"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"画面ロックを設定"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"キャンセル"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"キャンセル"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"設定"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"プライベート スペースを設定する"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"非表示またはロックできる個別のスペースに限定公開アプリを保持できます"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"仕組み"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"アプリのリストの下部からプライベート スペースにアクセスできます"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"プライベート スペースのアプリはロックによって保護されます"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"プライベート スペースがロックされているときは、プライベート スペースにアプリからの通知は表示されません"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"プライベート スペースがロックされている場合、プライベート スペースにあるアプリは、権限マネージャ、プライバシー ダッシュボード、その他の設定に表示されません。\n\nプライベート スペースを新しいデバイスに移動することはできません。別のデバイスで使用したい場合は、別のプライベート スペースを設定する必要があります。\n\nお使いのデバイスをパソコンに接続したり、デバイスに有害なアプリをインストールしたりしたユーザーが、あなたのプライベート スペースにアクセスできる可能性があります。"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"プライベート スペースを設定しています…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"プライベート スペースがロックされているときは、プライベート スペースにアプリからの通知は表示されません"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"プライベート スペースのロックを解除してプライベート スペースのアプリから写真やファイルを共有する"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"一部のアプリはプライベート スペースにすでにインストールされています"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"プライベート スペースを設定できませんでした"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"再試行"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"プライベート スペースを画面ロックでロック解除しますか?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"デバイスのロック解除と同じ方法でプライベート スペースのロックを解除するか、別のロックを選択できます"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"画面ロックを使用"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"新しいロックを選択"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"設定完了"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"プライベート スペースにアクセスするには、アプリのリストに移動してから下にスクロールします"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"完了"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"プライベート スペースを探すには下にスクロールしてください"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"プライベート スペース用のロックを選択してください"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"指紋を使ってプライベート スペースのロックを解除できます。セキュリティ上の理由により、この方法を使用するには予備のロックが必要になります。"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"プライベート スペースの PIN の設定"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"プライベート スペースのパスワードの設定"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"プライベート スペースのパターンの設定"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"プライベート スペースを表示するには(暫定 UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"設定アプリを開きます"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"[セキュリティとプライバシー] &gt; [プライベート スペース] &gt; [ロック時にプライベート スペースを表示しない] をタップします"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"[ロック時にプライベート スペースを表示しない] をオフにします"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google 社員への注記: この機能は現在開発中です"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"もう一方のデバイスでも、このパスキーの入力が必要な場合があります。"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"確認すると、調整された設定でペア設定します"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"連絡先と通話履歴へのアクセスを許可する"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"連絡先と通話履歴へのアクセスも許可します"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"情報は着信の通知などに使用されます"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>に接続できませんでした。"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"使用可能なデバイス"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"機内モード"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"利用可能なパブリック ネットワークを通知する"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"高品質の公共ネットワークが利用可能なときに通知する"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ネットワークを許可"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP は安全性の低い旧式のセキュリティ プロトコルです"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP ネットワークは安全性が低いため、ご利用の携帯通信会社では許可されていません"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi を自動的に ON にする"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"ホーム ネットワークなどの高品質の保存済みネットワークの検出時に Wi‑Fi を ON にする"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"位置情報が OFF のため使用できません。"<annotation id="link">"位置情報"</annotation>"を ON にしてください。"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi スキャンを ON にすると、Wi‑Fi が OFF の場合でも、アプリやサービスが常に Wi-Fi ネットワークをスキャンできます。位置情報を使用する機能やサービスで利便性が向上するなどの効果があります。"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ON にする"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi スキャンを ON にしました"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"このネットワークは安全性の低い旧式のセキュリティ プロトコルを使用しています"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> をブロックしました"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"このネットワークは安全性の低い旧式のセキュリティ プロトコルである WEP を使用しています。接続を続行するには、WEP ネットワークを許可してください。"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"このネットワークは安全性の低い旧式のセキュリティ プロトコルを使用しているため、ご利用の携帯通信会社では接続が許可されていません"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP を許可する"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"閉じる"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"詳細設定"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"プルダウン リスト、詳細設定"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"展開"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi を継続"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"次回から表示しない"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"接続"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi を有効にしました"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> に接続しました"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> に接続中"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"接続しています…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ネットワークに接続できませんでした"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ネットワーク圏外です"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"削除"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"変更"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ネットワークを削除できませんでした"</string>
     <string name="wifi_save" msgid="2312643132472226807">"保存"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ネットワークを保存できませんでした"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"キャンセル"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"モバイルデータ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"イーサネット"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ 充電中"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ 充電中"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"アクセス ポイントへの接続"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"接続強度"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"保存済みネットワーク"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"パスワードが設定されていません"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"アクセス ポイント名"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"アクセス ポイントのパスワード"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP 周波数帯"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"アクセス ポイントを自動的に OFF にする"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"デバイスが接続されていない場合、自動的に OFF にします。"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"互換性を拡張する"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ゲームのデフォルトの fps を無効にする"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ゲームの最大フレームレート(<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz)の制限を無効にします。"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"スムーズ ディスプレイ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"スクリーン アテンションは前面カメラを使用して、ユーザーが画面を見ているかどうかを検出します。この検出はデバイスのみで行われます。画像が保存されたり、Google に送信されたりすることはありません。"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"スクリーン アテンションを ON にする"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"見ている間は画面が OFF になりません"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"画面自動消灯の時間を長くすると、バッテリー消費量が多くなります。"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"カメラのロックを解除しました"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"顔検出を利用するにはカメラのロックを解除する必要があります"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"スクリーン アテンションを使用する場合は、カメラのロックを解除してください"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI(SIM スロット <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI(SIM スロット <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>)(メイン)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"表示するには、保存済みネットワークを選択してください"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRLバージョン:"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"バッテリー残量"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"共用"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"共用の設定"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"保存"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"キャンセル"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"[名前]フィールドは必須です。"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APNは必ず指定してください。"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC欄は3桁で指定してください。"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC欄は2桁か3桁で指定してください。"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"携帯通信会社により、タイプ %s の APN の追加は許可されていません。"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC フィールドには有効な値を指定する必要があります。"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"デフォルトのAPN設定を復元しています。"</string>
     <string name="menu_restore" msgid="4310539620115151551">"初期設定にリセット"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"APN設定をリセットしました。"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"リセット"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth と Wi-Fi をリセットしました"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM を消去"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"この操作でモバイルのサービスプランが解約されることはありません。別の eSIM をダウンロードするには、携帯通信会社にお問い合わせください。"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"設定をリセット"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"すべてのネットワーク設定をリセットしますか?この操作を取り消すことはできません。"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"すべてのネットワーク設定をリセットして eSIM を消去しますか?この操作を元に戻すことはできません。"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"リセットしますか?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ネットワークのリセットはこのユーザーには許可されていません"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ネットワーク設定をリセットしました"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM を消去できません"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"エラーのため、eSIM を消去できません。\n\nデバイスを再起動してもう一度お試しください。"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"すべてのデータを消去(初期設定にリセット)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"すべてのデータを消去(初期設定にリセット)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"音楽"</li>\n<li>"画像"</li>\n<li>"他のユーザーデータ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"この操作を行っても、ご利用のモバイル サービス プランはキャンセルされません。"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"個人情報とダウンロードしたアプリがすべて削除されます。この操作を取り消すことはできません。"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ダウンロードしたアプリや SIM を含め、個人情報がすべて削除されます。この操作を取り消すことはできません。"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"すべてのデータを消去しますか?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"このユーザーには初期設定へのリセットが許可されていません"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"消去しています"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"アクセス ポイント、USB、Bluetooth、イーサネット"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"インターネットを他のデバイスと共有しない"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"OFF"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"テザリング"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi-Fi アクセス ポイントを使用しない"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB でのみインターネットを共有"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Bluetooth でのみインターネットを共有"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"イーサネットでのみインターネットを共有"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB と Bluetooth でのみインターネットを共有"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB とイーサネットでのみインターネットを共有"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Bluetooth とイーサネットでのみインターネットを共有"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB、Bluetooth、イーサネットでのみインターネットを共有"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB テザリング"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth テザリング"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"イーサネット テザリング"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"このデバイスをアクセス ポイントとして機能させてテザリングすることで、Wi-Fi またはモバイルデータ通信のインターネット接続を他のデバイスと共有できます。アプリでアクセス ポイントを作成し、近くのデバイスに接続することも可能です。"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ヘルプ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"モバイル ネットワーク"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"モバイルプラン"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS アプリ"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMSアプリを変更しますか?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMSアプリとして<xliff:g id="CURRENT_APP">%2$s</xliff:g>の代わりに<xliff:g id="NEW_APP">%1$s</xliff:g>を使用しますか?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi-Fiアシスタントを変更しますか?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ネットワーク接続の管理に<xliff:g id="CURRENT_APP">%2$s</xliff:g>ではなく<xliff:g id="NEW_APP">%1$s</xliff:g>を使用しますか?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ネットワーク接続の管理に<xliff:g id="NEW_APP">%s</xliff:g>を使用しますか?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"不明なSIM事業者"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> には既知のプロビジョニング ウェブサイトがありません"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIMカードを挿入して再起動してください"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"インターネットに接続してください"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"最近の位置情報リクエスト"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"仕事用プロファイルで位置情報を使用"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"アプリへの位置情報の利用許可"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"アクセスをクリア"</string>
     <string name="controls_label" msgid="8671492254263626383">"コントロール"</string>
     <string name="force_stop" msgid="2681771622136916280">"強制停止"</string>
+    <string name="archive" msgid="9074663845068632127">"アーカイブ"</string>
+    <string name="restore" msgid="7622486640713967157">"復元"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"合計"</string>
     <string name="application_size_label" msgid="6407051020651716729">"アプリのサイズ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USBストレージアプリ"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"パッケージのサイズを計算できませんでした。"</string>
     <string name="version_text" msgid="7628938665256107608">"バージョン<xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"移動"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"アーカイブできませんでした"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> をアーカイブしました"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"復元に失敗しました"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>アプリを復元しています"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"別の移行を既に実行しています。"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"十分な空き容量がありません。"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"アプリが存在しません。"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"利用可能な画面キーボード"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"画面キーボードを管理"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"オプション"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ユーザー補助"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"物理キーボード"</string>
     <string name="show_ime" msgid="4334255501724746849">"画面キーボードの使用"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"物理キーボードが有効になっていても画面に表示させます"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"バウンスキー"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"物理キーボードのユーザー補助のバウンスキーを有効にします"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"固定キー"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"物理キーボードのユーザー補助の固定キーを有効にする"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"キーボード ショートカット"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ショートカットのリストを表示"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"仕事用プロファイルのキーボードとツール"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"使用時間で並び替え"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"前回の使用日時で並び替え"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"アプリ名で並び替え"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"前回の使用"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"最終使用日時"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"なし"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"使用時間"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ユーザー補助"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ユーザー補助の設定"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"無視して続行"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"キャンセル"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"画面の拡大設定"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"トリプルタップで拡大"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ショートカットで拡大"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ショートカットとトリプルタップで拡大"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>について"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"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="860548190334486449">"拡大を開始および停止するには、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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ユーザー補助機能を使用するには、3 本の指で画面の下から上にスワイプします。\n\n機能を切り替えるには、3 本の指で上にスワイプしたまま長押しします。"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ユーザー補助機能ボタンの設定"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ボタンの設定"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g>のショートカット"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ユーザー補助機能ボタン"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ユーザー補助操作"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"2 本の指で画面をダブルタップする"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"2 本の指で画面をダブルタップする"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"2 本の指で画面を {0,number,integer} 回すばやくタップします"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"画面をトリプルタップ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"画面をトリプルタップ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"画面をすばやく {0,number,integer} 回タップします。このショートカットを使うと、デバイスの動作が遅くなる場合があります"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ユーザー補助機能ボタンと操作の詳細"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ユーザー補助機能ボタンを使用します。3 ボタン ナビゲーションでは操作は利用できません。"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ユーザー補助機能にすばやくアクセスできます"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"手順は次のとおりです。"</b>\n"1. ユーザー補助設定に移動します\n2. 機能を選んでショートカットをタップします\n3. 機能にアクセスするためにボタンを使うか、ジェスチャーを使うかを選択します"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"手順は次のとおりです。"</b>\n"1. ユーザー補助設定に移動します\n2. 機能を選んでショートカットをタップします\n3. 機能にアクセスするためのボタンを選択します"</string>
+    <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_size_title" msgid="5785110470538960881">"サイズ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"電源ボタンで通話を終了"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"マウスポインタを拡大"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"マウスポインタを目立たせることができます"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"すべてのアプリをダークモードにする"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"独自のダークモードがないアプリに適用されます。表示の問題(色の反転など)が起きる場合があります。"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"アニメーションを無効化"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"画面上の動きを軽減できます"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"モノラル音声"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"アプリやハードウェア センサーの操作を記録したり、自動的にアプリを操作したりできます。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"許可"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"許可しない"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"停止"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"キャンセル"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"「<xliff:g id="SERVICE">%1$s</xliff:g>」を停止しますか?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"[<xliff:g id="STOP">%1$s</xliff:g>] をタップすると「<xliff:g id="SERVICE">%2$s</xliff:g>」が停止します。"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"OFF にする"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ON のまま"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> を OFF にしますか?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"インストールされているサービスはありません"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"サービスが選択されていません"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"説明はありません。"</string>
     <string name="settings_button" msgid="2195468788019730377">"設定"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"光 過敏, 羞明, ダーク テーマ, 片頭痛, 頭痛, 読書 モード, 夜間 モード, 下げる 明るさ, ホワイト ポイント"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"使いやすい, アクセスしやすい, アシスタント, アシスト"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"視覚, 聴覚, 視覚障がい, 聴覚障がい, 運動, 運動機能, 補助, アシスト, 使いやすい, アクセスしやすい, 腕, ヘルプ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, ズーム, 拡大, ロー ビジョン, 大きくする, 切り替え 大きく"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"キャプション, クローズド キャプション, CC, 音声 文字変換, 難聴, 聴覚 障がい, CART, 音声 入力, 字幕"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"色のコントラスト"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"運動, マウス"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"補聴器, 難聴, 聴力の喪失, 人工内耳, 聴覚補助器, サウンド プロセッサ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"運動, マウス, 外付けマウス, ヘッドマウス, 適応型マウス, 車椅子, ジョイスティック"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"補聴器, 難聴, 聴力の喪失, 人工内耳, 聴覚補助器, サウンド プロセッサ, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"難聴, 聴覚 障がい, 字幕, テレタイプ, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"3 ボタン"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"運動機能, 運動, 高齢者, 関節炎, RSI, 脳卒中, 振戦, 多発性硬化症, 脳性麻痺, 震え, 反復運動損傷, 腕"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"遅い, 運動機能, 高齢者"</string>
     <string name="print_settings" msgid="8519810615863882491">"印刷"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"OFF"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 件の印刷サービスが ON}other{# 件の印刷サービスが ON}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"使用量の多いアプリを確認"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"バッテリーを保護するために、充電が最適化されています"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"バッテリーを長持ちさせるために、充電が最適化されます"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"バッテリーを保護するために、充電が最適化されています"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"バッテリーを長持ちさせるために、ホルダーにセットされているときは充電が最適化されます"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"バッテリーを保護するために、充電が最適化されています"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"バッテリーを長持ちさせるために、ホルダーにセットされているときは充電が最適化されます"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"フル充電しています"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"バッテリーを保護するために、次回タブレットをホルダーにセットしたときには充電が最適化されます"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"充電一時停止の詳細"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"充電を再開"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"電力消費量の多いバックグラウンド アクティビティを含める"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"解除"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"キャンセル"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"フル充電する"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"充電用アクセサリに関する問題"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"互換性のない充電方法の詳細"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"バッテリー マネージャ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"アプリを自動的に管理"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"現在"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>~<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"バッテリー使用量グラフ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"バッテリー使用量グラフ(日)"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"バッテリー使用量グラフ(時間)"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"バッテリー残量が<xliff:g id="START_PERCENTAGE">%1$s</xliff:g>から<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>に低下しました"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"前回のフル充電以降のバッテリー使用量"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> のバッテリー使用量"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"前回のフル充電以降の利用時間"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"緊急通報信号"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"緊急通報時の動作を設定します"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"バックアップ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ON"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"OFF"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"バックアップと復元"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"個人データ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"データのバックアップ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"名前"</string>
     <string name="vpn_type" msgid="5533202873260826663">"タイプ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"サーバー アドレス"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP 暗号化(MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TPセキュリティ保護"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ID"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec事前共有鍵"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSecユーザー証明書"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA 証明書"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSecサーバー証明書"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"詳細オプションを表示する"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS 検索ドメイン"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS サーバー(例: 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"転送ルート(例: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ユーザー名"</string>
     <string name="vpn_password" msgid="1183746907642628127">"パスワード"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"アカウント情報を保存する"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(未使用)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(サーバーを確認しない)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(サーバーから受信)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"この VPN タイプは常時接続できません"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"常時接続 VPN で使用できるのはアドレスが数値のサーバーのみです"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"常時接続 VPN には DNS サーバーを指定してください"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"常時接続 VPN の DNS サーバー アドレスには数値を指定してください"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"入力した情報は常時接続 VPN に対応していません"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"キャンセル"</string>
     <string name="vpn_done" msgid="5137858784289564985">"終了"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN 以外の接続のブロック"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN 接続を要求しますか?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"安全ではありません。IKEv2 VPN に更新してください"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"サポート対象外の VPN を開始できませんでした。"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"常時接続するVPNプロファイルを選択します。このVPNに接続しているときのみネットワークにアクセスできます。"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"なし"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPNへの常時接続にはサーバーとDNSの両方のIPアドレスが必要です。"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"誘拐事件速報"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"児童誘拐についての速報を受信する"</string>
     <string name="repeat_title" msgid="8676570486899483606">"繰り返し"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"通話マネージャを有効にする"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"このサービスを使って通話方法を管理することを許可します。"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"通話マネージャ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"緊急速報メール"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"携帯通信会社"</string>
     <string name="access_point_names" msgid="5768430498022188057">"アクセスポイント名"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"ウォレット"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"支払い, タップ, ペイメント"</string>
     <string name="keywords_backup" msgid="707735920706667685">"バックアップ, バック アップ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ジェスチャー"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"顔, フェイス, ロック解除, アンロック, 認証, ログイン, 顔認証"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"顔, ロック解除, 認証, ログイン, 指紋, 生体認証"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI, MEID, MIN, PRL バージョン, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"電源オンの音"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"自動字幕起こし"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"メディアの自動字幕起こし"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"スマートフォンのスピーカー"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"タブレットのスピーカー"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"デバイスのスピーカー"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"有線ヘッドフォン"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"対応するメディアを臨場感あふれる音声でお楽しみいただけます"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"OFF"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"最近の会話を削除しました"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"会話を削除しました"</string>
     <string name="clear" msgid="5092178335409471100">"消去"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>を消去"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"優先度の高い会話や設定を変更した会話がここに表示されます"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"会話の優先度を高く設定したり、設定を変更したりすると、ここに表示されます。\n\n会話の設定を変更するには: \n画面の上から下にスワイプし、プルダウン シェードを開いて、会話を長押しします。"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"最小化"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"OFF"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"アプリ固定"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"アプリ固定機能を使用すると、固定を解除するまで現在のアプリを表示したままにすることができます。たとえば、この機能を使用して、信頼できる友だちに特定のゲームをプレイすることを許可できます。"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"アプリを固定した場合、そのアプリが他のアプリを開いたり、個人データにアクセスしたりする可能性があります。\n\nアプリ固定機能を使用するには: 	\n1. アプリ固定機能をオンにします 	\n2. [概要] を開きます 	\n3. 画面上部のアプリアイコンをタップし、[固定] をタップします"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"アプリを固定した場合、そのアプリが他のアプリを開いたり、個人データにアクセスしたりする可能性があります。\n\nデバイスを他のユーザーと安全に共有するには、代わりにゲストユーザーを使用してみてください。\n\nアプリ固定機能を使用するには: 	\n1. アプリ固定機能をオンにします 	\n2. [概要] を開きます 	\n3. 画面上部のアプリアイコンをタップし、[固定] をタップします"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"使用していないアプリを管理する"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"権限と一時ファイルを削除し、通知を停止し、アプリをアーカイブします"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"すべてのアプリ"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"インストール済みアプリ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"空き"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"アプリのメモリ使用状況"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{過去 {time}に 1 個のアプリがメモリを使用しました}other{過去 {time}に # 個のアプリがメモリを使用しました}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"メモリ使用量のプロファイリングを有効化"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"メモリ使用量のプロファイリングには、より多くのシステム リソースが必要になります。"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"メモリのプロファイリングは無効です"</string>
     <string name="running_frequency" msgid="7260225121706316639">"頻度"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"最大使用量"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"データ通信の使用はありません"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"他のアプリの上に重ねて表示"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"他のアプリの上に重ねて表示できるようにする"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"使用中の他のアプリの上にこのアプリを重ねて表示できます。このアプリ側から、タップする場所を把握したり、画面に表示する内容を変更したりできます。"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"メディア出力の変更"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"アプリにメディア出力の切り替えを許可"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"このアプリに、他のアプリの音声や動画を再生する接続済みデバイスの選択を許可します。許可された場合、このアプリは、使用可能なデバイス(ヘッドフォン、スピーカーなど)のリストにアクセスして、音声や動画のストリーミングやキャストに使用する出力デバイスを選択できるようになります。"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"すべてのファイルへのアクセス"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"音声アクティベーションを改善する"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"このデバイスは音声アクティベーションの改善を目的として、個人情報を使用します。さまざまなユーザーから集められて要約された最新の情報をアプリが受け取る場合があります。これらの情報はユーザーのプライバシーを保護しつつ、すべてのユーザーのモデルを改善するために使用されます。\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"警告するデータ使用量: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"データ上限: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"データ警告: <xliff:g id="ID_1">^1</xliff:g> / データ上限: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"デバイスで記録されるデータ使用量と携帯通信会社のデータ使用量は異なる場合があります"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"モバイルデータ通信の使用量は含まれません"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> 使用"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"データ使用量を警告"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"更新: <xliff:g id="ID_1">^2</xliff:g> 前"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"更新: <xliff:g id="ID_1">^1</xliff:g>、たった今"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"更新: たった今"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"プランを表示"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"詳細を表示"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"データセーバー"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"モバイルデータの無制限利用"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"バッテリー使用量が異常です"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"クイック設定開発者用タイル"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb 承認無効のタイムアウト"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"デフォルトの期間(7 日)またはユーザー設定の期間(1 日以上)内に再接続されなかったシステムに対する adb 承認の自動取り消しを無効にします。"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"ウィンスコープ トレース"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"センサー OFF"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"仕事用プロファイルの設定"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"個人用アプリで仕事用の連絡先リストを検索"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"自動入力サービス"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"デフォルトの自動入力サービス"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"パスワード"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"パスワード、パスキー、データのサービス"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"追加のプロバイダ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 件のパスワード}other{# 件のパスワード}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"自動, 入力, 自動入力, パスワード"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"データ, パスキー, パスワード"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自動, 入力, 自動入力, データ, パスキー, パスワード"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"パスワード、パスキー、データのサービス"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;すべてのサービスを無効にしますか?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;新しいパスワード、パスキー、その他の保存した情報は、ログイン時の自動入力で使用できなくなります。"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;優先的に使用するサービスを &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; に変更しますか?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;今後は、新しいパスワード、パスキー、その他の情報がここに保存されます。&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; は画面上の内容に基づいて、自動入力可能な情報を判別します"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s を使用しますか?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"有効にできるサービスは 5 個だけです"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"他のサービスを追加するには、サービスを 1 つ以上無効にしてください"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s は自動入力できる情報を判断するために画面上に表示される情報を使用します。"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"パスワード、パスキー、データのサービスの上限に達しました"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"一度に有効にできるパスワード、パスキー、データのサービスは 5 個までです。追加するには、いずれかのサービスを OFF にしてください。"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"パスワード、パスキー、データのサービスの上限に達しました"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"一度に有効にできるパスワード、パスキー、データのサービスは 5 個までです。追加するには、いずれかのサービスを OFF にしてください。"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"OFF にする"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"自動入力"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ロギングレベル"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"アプリの互換性の変更は、デバッグ可能アプリでのみ行えます。デバッグ可能アプリをインストールしてから、もう一度お試しください。"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"別の設定に依存しています"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"アカウント"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d 個のアカウント"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"デバイス名"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"基本情報"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"法律と規制"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC タグが検出されたときに起動することを、このアプリに許可します。\nこの権限が有効の場合にタグが検出されると、このアプリをオプションとして利用できるようになります。"</string>
     <string name="media_output_title" msgid="8283629315159510680">"メディアの再生先"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> を再生:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"音声の再生形式:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"このデバイス"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"通話中は利用できません"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"通話するデバイス"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ミュート"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"有効にするには、まず [電源ボタンを長押し] を電源ボタン メニューに変更します。"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ネットワークの詳細"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"デバイス名がスマートフォンのアプリに表示されます。また、Bluetooth デバイスや Wi-Fi ネットワークに接続したり Wi-Fi アクセス ポイントを設定したりすると、他のユーザーもデバイス名を確認できるようになります。"</string>
     <string name="devices_title" msgid="649715719278562515">"デバイス"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ネットワークを選択"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"接続が解除されました"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"名前"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"色(対応アプリで使用)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"保存"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM を使用"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"この SIM を使用する"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"OFF"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"この SIM を無効にするには、SIM カードを取り出してください"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> を有効にするにはタップします"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM を消去"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"優先ネットワークの種類"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ネットワーク動作モードの変更"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"優先ネットワークの種類"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"価格設定については、ネットワーク プロバイダにお問い合わせください。"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"アプリのデータ使用量"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ネットワーク モード <xliff:g id="NETWORKMODEID">%1$d</xliff:g> は無効です。無視してください。"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"アクセス ポイント名"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> への接続時は利用できません"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> に切り替えますか?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM カードの使用に切り替えますか?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> を使用しますか?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"SIM は一度に 1 つのみ有効にできます。\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> に切り替えても、<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> サービスが解約されることはありません。"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"eSIM は一度に 1 つのみ有効にできます。\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> に切り替えても、<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> のサービスが解約されることはありません。"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"SIM は一度に 1 つのみ有効にできます。\n\n切り替えても、<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> サービスが解約されることはありません。"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"同時に 2 つの SIM を試用できます。<xliff:g id="CARRIER_NAME">%1$s</xliff:g> を使用するには、別の SIM を OFF にしてください。"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> に切り替える"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> を OFF にする"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"いいえ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"キャンセル"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"切り替える"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"OFF にする"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM を有効にできません"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM をもう一度 ON にしてみてください。問題が解決しない場合は、デバイスを再起動してください。"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM を設定する"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"モバイル ネットワークの設定を変更して、このデバイスで複数の SIM を使用できるようにします"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM のラベルを設定する"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"通話時、テキスト メッセージの送信時、データの使用時や [設定] 内で、これらのラベルが表示されます"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM のラベル"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ラベル"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"使用する SIM を選択する"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"同時に 2 つの SIM を使用できます"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"プライマリ SIM を設定する"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"通話、テキスト メッセージ、データ用にデフォルトで使う SIM を選択します"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"プライマリ SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"通話"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"テキスト メッセージ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"自動データ切り替え"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"サービスの対象エリアや提供状況に応じて、いずれかの SIM のデータを使用します"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"データのみ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"設定"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"次へ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"モバイル ネットワーク"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"電話番号"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM のラベルと色"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ネットワークの有効化"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"携帯通信会社の切り替え"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> は有効です"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"モバイルデータ、電話機能、SMS を後で使用するには、ネットワークの設定に移動してください"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"この eSIM を消去しますか?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"この SIM を消去すると、デバイスから <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> サービスが削除されます。\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> のサービスが解約されることはありません。"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"消去"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM を消去しています…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM を消去できません"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"エラーのため、この SIM を消去できません。\n\nデバイスを再起動してもう一度お試しください。"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"デバイスに接続"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> アプリがデバイスに接続するために、Wi-Fi ネットワークを一時的に使用します"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"デバイスが見つかりません。デバイスの電源が入っており、接続が可能であることを確認してください。"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"緊急通報"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"お使いの携帯通信会社は、Wi‑Fi 通話による緊急通報には対応していません。\n緊急通報できるようデバイスはモバイル ネットワークに自動的に切り替わります。\n緊急通報が可能なのは、通信エリア内の地域のみです。"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"通話に Wi-Fi を使用して品質を改善する"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"通話のバックアップ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> が利用できない場合やローミング中の場合は、モバイルデータ SIM を使って <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> の発着信を行ってください。"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"通話のバックアップ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS メッセージの受信"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS メッセージを送信できません"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"モバイルデータが OFF のときに <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> で MMS メッセージを送受信できるようにするには、タップします"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"仕事に関するポリシーの情報"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"IT 管理者によって管理されている設定"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16 KB ページサイズで起動"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16 KB ページサイズのサポートされているカーネルでデバイスを起動します"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16 KB ページの互換性のあるカーネルで再起動しますか?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"警告: 一部のアプリケーションはこのモードに対応していない可能性があります。確認後にデバイスが再起動します。"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 KB ページの互換性のあるカーネルで再起動しますか?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"確認後にデバイスが再起動します。"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"16 KB ページの互換性のあるカーネルにアップデートできませんでした。"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"変更を適用しています"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"バグレポート ハンドラ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"デバイスでバグレポートのショートカットを処理するアプリを選択します。"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"個人用"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"再生をすばやく再開できるよう、[クイック設定] にメディア プレーヤーを開いたままにします"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ロック画面にメディアを表示"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"再生をすばやく再開できるよう、ロック画面にメディア プレーヤーを開いたままにします"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"おすすめのメディアを表示"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"アシスタントのおすすめのメディアを表示する"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"アクティビティに基づいて表示します"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"プレーヤーを非表示"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"クイック設定に表示させるプレーヤーを選択"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"有効"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"無効"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g>のデフォルト"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"通話"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"対応するメディアを臨場感あふれる音声でお楽しみいただけます"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ヘッド トラッキング"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"より自然なサウンドになるよう頭の動きに合わせて音声が変化します"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"権限を同期する"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> で許可したものと同じアプリの権限を <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> に付与してください"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"スマートフォンから権限を同期する"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"このスマートフォンで許可したものと同じアプリの権限をスマートウォッチに付与してください"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"オーディオ システムのタイプ"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"スピーカー"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
     <string name="contrast_high" msgid="3988567609694797696">"高"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"このアプリはウィンドウが 1 つの場合のみ開くことができます"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ON"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"OFF"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"OFF"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"OFF"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ON"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"OFF"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ON"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"OFF"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"明るい画面が暗くなり、暗い画面が明るくなります"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"画面上で拡大する"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"OFF"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"OFF"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ON"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"OFF"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ON"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"パスワードを設定しました"</string>
 </resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index d101086..5c3f956 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 წუთის შემდეგ"</item>
     <item msgid="1574040255478150028">"5 წუთის შემდეგ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 811e6fa..0bd1aed 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"მხოლოდ ადმინისტრატორ მომხმარებლებს შეუძლიათ წვდომა დეველოპერის პარამეტრებზე."</string>
     <string name="header_category_system" msgid="1665516346845259058">"სისტემა"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"მომსახურების არეში"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"მომსახურების არის მიღმა"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"გასაგრძელებლად გადაფურცლეთ ზემოთ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"დაკეცეთ ტელეფონი და აპის გამოყენების გასაგრძელებლად წინა ეკრანზე გადაფურცლეთ ზემოთ, ან დაელოდეთ ეკრანის ჩაკეტვას რამდენიმე წამის განმავლობაში."</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"მსგავსი"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ზარი და მაღვიძარები"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"აუდიო დარეკვის დროს"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"მედია"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"შეტყობ. და სხვა სისტემური ხმა"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"მედიისა და სისტემის ხმები"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"შეტყობინებები"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ნაგულისხმევად, გამომავალ აუდიოს განსაზღვრავს ინდივიდუალური აპები"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"უსახელო Bluetooth მოწყობილობა"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"მიმდინარეობს ძიება"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth ჩაირთო"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ყველას ნახვა"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ყველას ნახვა"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"სტილუსი"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"კუდის ღილაკზე დაჭერა"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (სამსახურის პროფილი)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"დაუკავშირდით LE-აუდიო ნაკადს"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"ახლომახლო აუდიო ნაკადები"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"აუდიო ნაკადები"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"დაუკავშირდით აუდიო ნაკადს QR კოდის გამოყენებით"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"ახლომახლო აუდიო ნაკადები ვერ მოიძებნა."</string>
     <string name="date_and_time" msgid="1788358029823431692">"თარიღი და დრო"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"პროქსი"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"გაწმენდა"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"თითოეული აპისთვის ენის ასარჩევად, გადადით აპის ენების პარამეტრებში."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"შეიტყვეთ მეტი აპის ენების შესახებ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"გსურთ სისტემური ენის შეცვლა %s-ით?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"დაემატოს %s პრიორიტეტულ ენებს?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ეს საშუალებას აძლევს აპებსა და ვებსაიტებს, გაიგონ, რომ თქვენც ამ ენას ანიჭებთ უპირატესობას."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"თქვენი მოწყობილობის პარამეტრები და რეგიონალური უპირატესი ფუნქციები შეიცვლება."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"შეცვლა"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s მიუწვდომელია"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"შაბათი"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"თუ აპი მხარს არ უჭერს რეგიონულ პარამეტრებს, ის ნაგულისხმევი ლოკალის პარამეტრებს გამოიყენებს."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"შეიტყვეთ მეტი ენის პარამეტრების შესახებ."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"დამატებითი პარამეტრები"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"მომართვის პირობები"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"დააყენეთ თქვენთან მომართვის პირობები"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"აპს შეუძლია თქვენთან მომართვის პირობების პერსონალიზება."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"არ არის მითითებული"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"მდედრობითი"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"მამრობითი"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ნეიტრალური"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ამოიშალოს არჩეული ენა?}other{ამოიშალოს არჩეული ენები?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ტექსტი სხვა ენაზე იქნება ნაჩვენები."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ყველა ენის ამოშლა ვერ მოხერხდება"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"მდებარეობა"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"მდებარეობის გამოყენება"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"გამორთული"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}other{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}other{ჩართულია — # აპს აქვს მდებარეობაზე წვდომა}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"მიმდინარეობს ჩატვირთვა…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ახლომდებარე მოწყობილობების ნებართვების მქონე აპებს შეუძლია დაკავშირებული მოწყობილობების პოზიციის განსაზღვრა."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"აპებისა და სერვისების მდებარეობაზე წვდომა გამორთულია. თქვენი მოწყობილობის მდებარეობა მაინც გაიგზავნება გადაუდებელი დახმარების სამსახურში, როცა გადაუდებელი დახმარების სამსახურის ნომერზე დარეკავთ ან ტექსტურ შეტყობინებას გაგზავნით."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"შეიტყვეთ მეტი მდებარეობის პარამეტრების შესახებ."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"შეიტყვეთ მეტი მდებარეობის პარამეტრების შესახებ"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"მდებარეობის წვდომის შეცვლა: პარამეტრები &gt; უსაფრთხოება და კონფიდენციალურობა &gt; კონფიდენციალურობის მართვის პარამეტრები"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"საუკეთესო შედეგების მისაღებად გამოიყენეთ ეკრანის დამცავი, რომელიც სერტიფიცირებულია Made for Google-ის მიერ. ეკრანის სხვა დამცავებზე თქვენი ბავშვის თითის ანაბეჭდი, შესაძლოა, არ მუშაობდეს."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"საათით განბლოკვა"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"სახით და ანაბეჭდით განბლოკვას რომ დააყენებთ, ტელეფონი მოგთხოვთ თითის ანაბეჭდს, როცა პირბადეს ატარებთ ან ბნელ სივრცეში ხართ.\n\nშეგიძლიათ განბლოკოთ თქვენი საათით, როდესაც თქვენი სახის ან თითის ანაბეჭდის ამოცნობა ვერ ხერხდება."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"შეგიძლიათ განბლოკოთ თქვენი საათით, როდესაც თქვენი თითის ანაბეჭდის ამოცნობა ვერ ხერხდება."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"შეგიძლიათ განბლოკოთ თქვენი საათით, როდესაც თქვენი სახის ამოცნობა ვერ ხერხდება."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"სახით განბლოკვისა და ანაბეჭდით განბლოკვის დაყენების შემთხვევაში თქვენი ტელეფონი მოგთხოვთ თითის ანაბეჭდს, თუ ნიღაბი გეკეთებათ ან ბნელ სივრცეში იქნებით.\n\nსაათის განბლოკვა კიდევე ერთი ხელსაყრელი გზაა თქვენი ტელეფონის განსაბლოკად, მაგალითად, როცა თითები სველი გაქვთ ან სახე არაა ამოცნობილი."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"საათის განბლოკვა კიდევე ერთი ხელსაყრელი გზაა თქვენი ტელეფონის განსაბლოკად, მაგალითად, როცა თითის ანაბეჭდი არაა ამოცნობილი."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"საათის განბლოკვა კიდევე ერთი ხელსაყრელი გზაა თქვენი ტელეფონის განსაბლოკად, მაგალითად, როცა სახე არაა ამოცნობილი."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"გამოიყენეთ თითის ანაბეჭდი ან საათი, რათა"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"გამოიყენეთ სახე ან საათი, რათა"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"გამოიყენეთ სახე, თითის ანაბეჭდი ან საათი, რათა"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"დაემატა სახე და <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"დაემატა სახე, თითის ანაბეჭდი და <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"დაემატა სახე, თითის ანაბეჭდები და <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Authenticator-ით დისტანციურად განბლოკვა"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"დაემატა საათი"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"თქვენი საათის დაყენება"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"მუშაობის პრინციპი"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"თქვენი საათი უნდა გქონდეთ მაჯაზე განბლოკილ მდგომარეობაში და ამ ტელეფონის დაფარვის არეალში. საათის ხელახლა განბლოკვა არ დაგჭირდებათ, როცა ის მაჯაზე გიკეთიათ."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ტელეფონის განბლოკვის შესახებ შეტყობინებას საათზე მიიღებთ. შემთხვევით განბლოკვის შემთხვევაში შეეხეთ შეტყობინებას, რომ ხელახლა დაბლოკოთ ტელეფონი."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ამას თქვენ აკონტროლებთ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"საათის განბლოკვის გაუქმება ნებისმიერ დროს შეგიძლიათ პარამეტრებიდან"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"შეეხეთ შეტყობინებას"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ჩაკეტილ ეკრანზე გადაფურცლეთ ზემოთ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"აირჩიეთ საათი"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ხელმისაწვდომი საათები"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"გაუქმება"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"დადასტურება"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ყველაფერი მზადაა!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ტელეფონის განბლოკვა უკვე საათითაც შეგიძლიათ ჩაკეტილ ეკრანზე ზემოთ გადაფურცვლით ან შეტყობინებაზე შეხებით"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"მზადაა"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"საათის განბლოკვა"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ტელეფონის განბლოკვა საათით შეგიძლიათ, როდესაც ზემოთ გადაფურცლავთ ჩაკეტილ ეკრანზე ან შეეხებით შეტყობინებას"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"საათის განბლოკვით რომ ისარგებლოთ, თქვენი საათი განბლოკილი, მაჯაზე გაკეთებული, მისაწვდომი და ამ ტელეფონთან დაკავშირებული უნდა იყოს. თუ კავშირი შეფერხდება, დაგჭირდებათ, რომ განბლოკოთ ტელეფონი, სანამ საათის განბლოკვას გამოიყენებთ.\n\nგაითვალისწინეთ:\nერთ ჯერზე მხოლოდ ერთი საათის დაყენება შეგიძლიათ. სხვა საათის დასამატებლად თავდაპირველად არსებული საათი ამოშალეთ."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"შეიტყვეთ მეტი საათის განბლოკვის შესახებ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"საათის დამატება"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"საათის ამოშლა"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"თითის ანაბეჭდით და სახით განბლოკვა"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"სახით და თითის ანაბეჭდით განბლოკვა სამსახურისთვის"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"საჭიროა დაყენება"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"უსაფრთხოება"</string>
     <string name="privacy_header" msgid="5526002421324257007">"კონფიდენციალურობა"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"სამსახურის პროფილი"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"პირადი სივრცე"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ჩაკეტეთ და დამალეთ პირადი აპები"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"შეინახეთ პირადი აპები ცალკე სივრცეში, რომლის დამალვა ან ჩაკეტვა შეგიძლიათ"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"პირადი სივრცის ჩაკეტვა"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"განბლოკეთ თქვენი პირადი სივრცე ისევე, როგორ მოწყობილობას განბლოკავთ, ან დააყენეთ განსხვავებული საკეტი"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"გამოიყენეთ მოწყობილობის ეკრანის დაბლოკვა"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"სახით და თითის ანაბეჭდით განბლოკვა"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ანაბეჭდით განბლოკვა"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"სახით განბლოკვა"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"შეეხეთ დასაყენებლად"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"კერძო სივრცის ანაბეჭდით განბლოკვა"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"კერძო სივრცის სახით განბლოკვა"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"განბლოკვის ხერხები"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"მოწყობილობის იდენტური ეკრანის დაბლოკვის მეთოდი"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"აირჩიეთ ახალი საკეტი პირადი სივრცისთვის?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ავტომატურად ჩაკეტვა"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"კერძო სივრცის ავტომატურად ჩაკეტვა"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"შეგიძლიათ კერძო სივრცის ავტომატურად ჩაკეტვა, თუ არ იყენებთ მოწყობილობას გარკვეული პერიოდის განმავლობაში"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ყოველთვის, როდესაც მოწყობილობა ჩაიკეტება"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5-წუთიანი უმოქმედობის შემდეგ"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"არასოდეს"</string>
+    <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_delete_title" msgid="3075645119800272800">"პირადი სივრცის წაშლა"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"პირადი სივრცე წარმატებით წაიშალა"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"პირადი სივრცის წაშლა ვერ მოხერხდა"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"კერძო სივრცე განბლოკილია"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"დააყენეთ ეკრანის დაბლოკვა"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"პირადი სივრცის გამოსაყენებლად დააყენეთ ეკრანის დაბლოკვა ამ მოწყობილობაზე."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ეკრანის დაბლოკვის დაყენება"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"გაუქმება"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"გაუქმება"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"დაყენება"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"პირადი სივრცის დაყენება"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"შეინახეთ პირადი აპები ცალკე სივრცეში, რომლის დამალვა ან ჩაკეტვა შეგიძლიათ"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"მუშაობის პრინციპი"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"თქვენს პირად სივრცეზე წვდომა შეგიძლიათ აპების გვერდის ბოლოში"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"აპებს პირად სივრცეში იცავს საკეტი"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"პირად სივრცეში არსებული აპების შეტყობინებები დამალულია, როცა ის ჩაკეტილია"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"თქვენს პირად სივრცეში არსებული აპები არ გამოჩნდება ნებართვების მენეჯერში, კონფიდენციალურობის საინფორმაციო დაფაში და სხვა პარამეტრებში, როდესაც თქვენი პირადი სივრცე დაბლოკილია.\n\nთქვენი პირადი სივრცის ახალ მოწყობილობაში გადატანა შეუძლებელია. თქვენ უნდა დააყენოთ სხვა პირადი სივრცე, თუ გსურთ მისი სხვა მოწყობილობაზე გამოყენება.\n\nნებისმიერს, ვინც თქვენს მოწყობილობას აკავშირებს კომპიუტერთან ან დააინსტალირებს მავნე აპებს თქვენს მოწყობილობაზე, შეიძლება ჰქონდეს წვდომა თქვენს პირად სივრცეში."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"მიმდინარეობს პირადი სივრცის დაყენება…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"პირად სივრცეში არსებული აპების შეტყობინებები დამალულია, როცა ის ჩაკეტილია"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"განბლოკეთ თქვენი კერძო სივრცე, რათა გააზიაროთ ფოტოები ან ფაილები პირადი სივრცის აპებიდან"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"ზოგიერთი აპი უკვე დაინსტალირებულია თქვენს პირად სივრცეში"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"პირადი სივრცის დაყენება ვერ მოხერხდა"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ხელახლა ცდა"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"გსურთ ეკრანის დაბლოკვის გამოყენება პირადი სივრცის განსაბლოკად?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"განბლოკეთ თქვენი პირადი სივრცე ისევე, როგორ მოწყობილობას განბლოკავთ, ან დააყენეთ განსხვავებული საკეტი"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"გამოიყენეთ ეკრანის დაბლოკვა"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"აირჩიეთ ახალი საკეტი"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"მზადაა!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"თქვენს პირად სივრცეში წვდომისთვის გადადით თქვენი აპების სიაში, შემდეგ გადაადგილდით ქვემოთ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"მზადაა"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"პირადი სივრცის საპოვნელად გადაადგილდით ქვემოთ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"აირჩიეთ საკეტი თქვენი პირადი სივრცისთვის"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"თქვენ შეგიძლიათ განბლოკოთ თქვენი პირადი სივრცე თქვენი თითის ანაბეჭდის გამოყენებით. უსაფრთხოებისთვის, ეს ვარიანტი მოითხოვს სარეზერვო ჩაკეტვას."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"დააყენეთ PIN თქვენი კერძო სივრცისთვის"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"დააყენეთ პაროლი თქვენი კერძო სივრცისთვის"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"დააყენეთ ნიმუში თქვენი კერძო სივრცისთვის"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"პირადი სივრცის ჩვენება (არ არის საბოლოო UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"გახსენით პარამეტრების აპი."</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"შეეხეთ უსაფრთხოებას და კონფიდენციალურობას &gt; პირადი სივრცე &gt; პირადი სივრცის დამალვა ჩაკეტილზე"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"გამორთეთ გადამრთველი, პირადი სივრცის დამალვა ჩაკეტვისას"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"შენიშვნა Google-ის თანამშრომლებისთვის ამ ფუნქციის განვითარება ჯერ კიდევ მიმდინარეობს"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"შესაძლოა ამ წვდომის გასაღების სხვა მოწყობილობაში შეყვანაც დაგჭირდეთ."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"დაადასტურეთ კოორდინირებულ ნაკრებთან დასაწყვილებლად"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"კონტაქტებსა და საუბრის ისტორიაზე წვდომის დაშვება"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"დაუშვით წვდომა კონტაქტებსა და საუბრის ისტორიაზეც"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ინფორმაცია გამოიყენება განცხადებების გამოცხადებისა და სხვა მოქმედებებისთვის"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-თან დაკავშირება ვერ მოხერხდა."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ხელმისაწვდომი მოწყობილობები"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"თვითმფრინავის რეჟიმში"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"შეტყობინება საჯარო ქსელების არსებობის შესახებ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"შეტყობინების მიღება მაღალხარისხიანი საჯარო ქსელის ხელმისაწვდომობისას"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"დაუშვით WEP ქსელები"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP არის დაცვის შედარებით ძველი პროტოკოლი და ნაკლებად დაცულია"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"თქვენი ოპერატორი კრძალავს WEP ქსელებს, რადგან ნაკლებად დაცულია"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi-ს ავტომატურად ჩართვა"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi ჩაირთვება შენახულ, მაღალხარისხიან ქსელებთან სიახლოვისას (მაგალითად, სახლის ქსელისას)"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"მიუწვდომელია, რადგან გამორთულია მდებარეობა. "<annotation id="link">"მდებარეობის"</annotation>" ჩართვა."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi-ს სკანირება აპებსა და სერვისებს Wi‑Fi ქსელების აღმოსაჩენად ნებისმიერ დროს სკანირების საშუალებას აძლევს, მაშინაც კი, როცა Wi‑Fi გამორთულია. მაგალითისთვის, ამის გამოყენება შესაძლებელია მდებარეობაზე დაფუძნებული ფუნქციების და სხვა სერვისების გასაუმჯობესებლად."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ჩართვა"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi სკანირება ჩართულია"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ეს ქსელი იყენებს დაცვის შედარებით ძველ პროტოკოლს, რომელიც ნაკლებად დაცულია"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> დაბლოკილია"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ეს ქსელი იყენებს დაცვის შედარებით ძველ პროტოკოლს, სახელწოდებით WEP, რომელიც ნაკლებად დაცულია. იმისათვის, რომ მაინც დაუკავშირდეთ, დაუშვით WEP ქსელები."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"თქვენი ოპერატორი გიკრძალავთ ამ ქსელთან დაკავშირებას, რადგან ის იყენებს დაცვის შედარებით ძველ პროტოკოლს, რომელიც ნაკლებად დაცულია"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP-ს დაშვება"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"დახურვა"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"დამატებითი პარამეტრები"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ჩამოსაშლელი სიის დამატებითი პარამეტრები"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"გაფართოება"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi ქსელზე დარჩენა"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"აღარ გამოჩნდეს"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"დაკავშირება"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ჩართულია"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"დაკავშირებულია <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-თან"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"მიმდინარეობს <xliff:g id="NETWORK_NAME">%1$s</xliff:g>-თან დაკავშირება"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"დაკავშირება…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ქსელთან დაკავშირება ვერ ხერხდება"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ქსელი არეალში არ არის"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"წაშლა"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"შეცვლა"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ქსელის დავიწყება ვერ მოხერხდა"</string>
     <string name="wifi_save" msgid="2312643132472226807">"შენახვა"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ქსელის შენახვა ვერ მოხერხდა"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"გაუქმება"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"მობილური ინტერნეტი"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – იტენება"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – იტენება"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"უსადენო ქსელთან კავშირი"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"კავშირის სიძლიერე"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"დამახს. ქსელები"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"პაროლი არაა დაყენებული"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"უსადენო ქსელის სახელი"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"უსადენო ქსელის პაროლი"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP Band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"უსადენო ქსელის ავტოგამორთვა"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"როდესაც არცერთი მოწყობილობა არ არის დაკავშირებული"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"თავსებადობის გაფართოება"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"თამაშებისთვის კადრების ნაგულისხმევი სიხშირის გათიშვა"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"თამაშებისთვის კადრების მაქსიმალური სიხშირის (<xliff:g id="FRAME_RATE">%1$d</xliff:g> ჰც) შეზღუდვის გათიშვა."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ეკრანისკენ მიმართული ყურადღება იყენებს წინა კამერას იმისთვის, რომ გაიგოს, უყურებს თუ არა ვინმე ეკრანს. ის მოწყობილობის დონეზე მუშაობს, სურათები არასოდეს ინახება და არც Google-ს ეგზავნება."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ეკრანისკენ მიმართული ყურადღების ჩართვა"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ეკრანის ჩართულად დატოვება, როცა თქვენ მას უყურებთ"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ეკრანის ავტომატურად გამორთვის ხანგრძლივი დრო ბატარეას მეტად ხარჯავს."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"კამერა ჩაკეტილია"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"სახის ამოცნობისთვის კამერა განბლოკილი უნდა იყოს"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"კამერა უნდა განიბლოკოს ეკრანისკენ მიმართული ყურადღების გამოსაყენებლად"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM ბარათის სათავსო <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM ბარათის სათავსო <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (პირველადი)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"სანახავად აირჩიეთ შენახული ქსელი"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"წთ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL ვერსია"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ბატარეის დატენვის დონე"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"საერთო"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"საერთო პარამეტრები"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"შენახვა"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"გაუქმება"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"სახელის ველი არ შეიძლება იყოს ცარიელი."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN არ უნდა იყოს ცარიელი."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ველი უნდა შეიცავდეს 3 ციფრს."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ველი უნდა შეიცავდეს ორ ან სამ ციფრს."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"ეს ოპერატორი კრძალავს %s ტიპის APN-ებს."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ველი უნდა იყოს მოქმედი."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ნაგულისხმევი APN პარამეტრების აღდგენა."</string>
     <string name="menu_restore" msgid="4310539620115151551">"საწყის პარამეტრებზე ჩამოყრა"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ნაგულისხმევი APN პარამეტრების  აღდგენა დასრულებულია"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"გადაყენება"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth და Wi‑Fi გადატვირთულია"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM-ების ამოშლა"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ეს არ გააუქმებს მობილური სერვისის მოქმედ გეგმებს. ჩამნაცვლებელი SIM-ების ჩამოსატვირთად დაუკავშირდით თქვენს ოპერატორს."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"პარამეტრების ჩამოყრა"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"გსურთ ქსელის ყველა პარამეტრის გადაყენება? ამ მოქმედებას ვერ გააუქმებთ."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"გსურთ ქსელის ყველა პარამეტრის ჩამოყრა და eSIM-ების ამოშლა? ამ მოქმედებას ვერ გააუქმებთ."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"გადავაყენოთ პარამეტრები?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ქსელის გადაყენება ამ მომხმარებლისათვის მიუწვდომელია"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ქსელის პარამეტრები ჩამოიყარა"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM ბარათების ამოშლა ვერ ხერხდება"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-ები ვერ იშლება შეცდომის გამო.\n\nგადატვირთეთ მოწყობილობა და ხელახლა ცადეთ."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ყველა მონაცემის ამოშლა (ქარხნული პარამეტრების დაბრუნება)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ყველა მონაცემის ამოშლა (ქარხნული პარამეტრების დაბრუნება)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"მუსიკა"</li>\n<li>"ფოტოები"</li>\n<li>"მომხმარებლის სხვა მონაცემები"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-ები"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ეს არ გააუქმებს თქვენს მობილურ სერვისთა პაკეტს."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"მთლიანად წაიშლება თქვენი პერსონალური ინფორმაცია და ჩამოტვირთული აპები. ამ მოქმედებას ვერ გააუქმებთ."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"მთლიანად წაიშლება თქვენი პერსონალური ინფორმაცია, მათ შორის, ჩამოტვირთული აპები და SIM ბარათები. ამ მოქმედებას ვერ გააუქმებთ."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"გსურთ ყველა მონაცემის ამოშლა?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ქარხნულ პარამეტრებზე დაბრუნება ამ მომხმარებლისათვის მიუწვდომელია"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"მიმდინარეობს ამოშლა"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"უსადენო ქსელი, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"არ ხორციელდება ინტერნეტის სხვა მოწყობილობებთან გაზიარება"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"გამორთული"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ტეტერინგი"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"არ გამოიყენო Wi-Fi უსადენო ქსელი"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"ინტერნეტის გაზიარება მხოლოდ USB-ით"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ინტერნეტის გაზიარება მხოლოდ Bluetooth-ით"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ინტერნეტის გაზიარება მხოლოდ Ethernet-ით"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"ინტერნეტის გაზიარება მხოლოდ USB-ით და Bluetooth-ით"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"ინტერნეტის გაზიარება მხოლოდ USB-ით და Ethernet-ით"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ინტერნეტის გაზიარება მხოლოდ Bluetooth-ით და Ethernet-ით"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"ინტერნეტის გაზიარება მხოლოდ USB-ით, Bluetooth-ით და Ethernet-ით"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ტეტერინგი"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth ტეტერინგი"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-ტეტერინგი"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"უსადენო ქსელი და ტეტერინგი საშუალებას მოგცემთ, გაუზიაროთ მობილური ინტერნეტი ან Wi‑Fi კავშირი სხვა მოწყობილობებს. უსადენო ქსელის შექმნა შეუძლია აპებსაც, კონტენტის გასაზიარებლად ახლომახლო მოწყობილობებთან."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"დახმარება"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"მობილური ქსელი"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"მობილური სატარიფო გეგმა"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS აპი"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"შეიცვალოს SMS-ის აპი?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"გსურთ, <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ის ნაცვლად გამოიყენოთ <xliff:g id="NEW_APP">%1$s</xliff:g> თქვენს SMS აპად?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"შეიცვალოს Wi‑Fi ასისტენტი?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"გსურთ ქსელის სამართავად <xliff:g id="CURRENT_APP">%2$s</xliff:g>-ის ნაცვლად <xliff:g id="NEW_APP">%1$s</xliff:g> გამოიყენოთ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"გსურთ ქსელის კავშირების სამართავად <xliff:g id="NEW_APP">%s</xliff:g>-ის გამოყენება?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"უცნობი SIM-ოპერატორი"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>-ს უზრუნველყოფის ნაცნობი ვებსაიტი არ გააჩნია"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"გთხოვთ, ჩადოთ SIM ბარათი და გადატვირთოთ"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"გთხოვთ, დააკავშიროთ ინტერნეტთან"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"მდებარეობის ბოლო მოთხოვნები"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ადგილმდებარეობა სამუშაო პროფილისათვის"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"აპის მდებარეობის ნებართვები"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"წვდომის გაუქმება"</string>
     <string name="controls_label" msgid="8671492254263626383">"კონტროლები"</string>
     <string name="force_stop" msgid="2681771622136916280">"ძალით შეჩერება"</string>
+    <string name="archive" msgid="9074663845068632127">"არქივი"</string>
+    <string name="restore" msgid="7622486640713967157">"აღდგენა"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"სულ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"აპის ზომა"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB მეხსიერების აპი"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"პაკეტის ზომის გამოთვლა ვერ მოხერხდა."</string>
     <string name="version_text" msgid="7628938665256107608">"ვერსია <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"გადაადგილება"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"დაარქივება ვერ მოხერხდა"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> დაარქივებულია"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"აღდგენა ვერ მოხერხდა"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"მიმდინარეობს <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-ის აღდგენა"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"მიგრაციის სხვა პროცესი უკვე მიმდინარეობს."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"არ არის საკმარისი სივრცე შესანახად."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"აპი არ არსებობს."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ხელმისაწვდომი ეკრანული კლავიატურა"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ეკრანული კლავიატურების მართვა"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ვარიანტები"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"წვდომა"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ფიზიკური კლავიატურა"</string>
     <string name="show_ime" msgid="4334255501724746849">"ეკრანული კლავიატურის გამოყენება"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"აქტიური ფიზიკური კლავიატურისას ეკრანზე შენარჩუნება"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"კლავიშების ასხლეტა"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"კლავიშების ასხლეტის ჩართვა ფიზიკურ კლავიატურაზე მარტივი წვდომისთვის"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"კლავიშების ფიქსაცია"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"კლავიშების ფიქსაციის ჩართვა ფიზიკურ კლავიატურაზე მარტივი წვდომისთვის"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"კლავიატურის მალსახმობები"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"მალსახმობების სიის ჩვენება"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"სამსახურის პროფილის კლავიატურა და ხელსაწყოები"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"დალაგება გამოყენების დროით"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"დალაგება ბოლო გამოყენებით"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"დალაგება აპის სახელის მიხედვით"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ბოლოს გამოყენებული"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ბოლო გამოყენება"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"არასოდეს"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"გამოყენების დრო"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"მარტივი წვდომა"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"მარტივი წვდომის პარამეტრები"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"მაინც გაგრძელება"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"გაუქმება"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"გადიდების პარამეტრები"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"გადიდება სამმაგი შეხებით"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"გადიდება მალსახმობით"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"გადიდება მალსახმობითა და სამმაგი შეხებით"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>-ის შესახებ"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"გასახსნელად ორმაგად შეეხეთ ეკრანს ორი თითით"</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="860548190334486449">"გადიდების დასაწყებად და შესაწყვეტად ორი თითით ორმაგად შეეხეთ ეკრანს ნებისმიერ ადგილზე."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"მარტივი წვდომის ფუნქციით სარგებლობისთვის 3 თითით გადაფურცლეთ ეკრანის ქვედა კიდიდან ზემოთ.\n\nფუნქციების გადასართავად 3 თითით გადაფურცლეთ ზემოთ და დააყოვნეთ."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"გასაგებია"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"მარტივი წვდომის ღილაკის პარამ."</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ღილაკის პარამეტრები"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> - მალსახმობი"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"მარტივი წვდომის ღილაკი"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"მარტივი წვდომის ჟესტი"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ეკრანზე ორი თითით ორმაგი შეხება"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ეკრანზე ორი თითით ორმაგი შეხება"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ ორი თითით"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"სამმაგად შეეხეთ ეკრანს"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"სამმაგად შეეხეთ ეკრანს"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"სწრაფად შეეხეთ ეკრანს {0,number,integer}-ჯერ. ამ მალსახმობმა შეიძლება მოწყობილობა შეანელოს"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"შეიტყვეთ მეტი მარტივი წვდომის ღილაკისა და ჟესტის შესახებ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"მარტივი წვდომის ღილაკის გამოყენებისას. ჟესტი არ არის ხელმისაწვდომი 3-ღილაკიანი ნავიგაციით."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"სწრაფად შეძელით მარტივი წვდომის ფუნქციების გამოყენება"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"დასაწყებად"</b>\n"1. გადადით მარტივი წვდომის პარამეტრებზე\n2. აირჩიეთ ფუნქცია და შეეხეთ მალსახმობს\n3. აირჩიეთ, რა გირჩევნიათ ფუნქციაზე წვდომისთვის — ღილაკი თუ ჟესტი"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"დასაწყებად"</b>\n"1. გადადით მარტივი წვდომის პარამეტრებზე\n2. აირჩიეთ ფუნქცია და შეეხეთ მალსახმობს\n3. ფუნქციაზე წვდომისთვის აირჩიეთ შესაბამისი ღილაკი"</string>
+    <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_size_title" msgid="5785110470538960881">"ზომა"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ზარი შეწყდება ჩართვის ღილაკზე დაჭერით"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"მაუსის დიდი ისარი"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"უფრო შესამჩნევი მაუსის ისრის გამოყენება"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"გახადეთ ყველა აპი მუქი"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ვრცელდება აპებზე საკუთარი მუქი თემის გარეშე. ზოგიერთ აპს შეიძლება ჰქონდეს ეკრანის პრობლემა, როგორიცაა ფერების ინვერსია."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ანიმაციის გათიშვა"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ეკრანზე მოძრაობის შემცირება"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"მონო აუდიო"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"მას შეუძლია თვალი მიადევნოს თქვენს ინტერაქციებს აპის ან აპარატურის სენსორის საშუალებით, ასევე, თქვენი სახელით აწარმოოს აპებთან ინტერაქცია."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"დაშვება"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"უარყოფა"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"შეწყვეტა"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"გაუქმება"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"გაითიშოს <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g>-ზე შეხება შეწყვეტს <xliff:g id="SERVICE">%2$s</xliff:g>-ს."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"გამორთვა"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"დარჩეს ჩართული"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"გამოირთოს <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"სერვისები დაყენებული არ არის"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"სერვისი არჩეულია არ არის"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"აღწერა არ არის მოწოდებული."</string>
     <string name="settings_button" msgid="2195468788019730377">"პარამეტრები"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"შუქის მიმართ მგრძნობიარობა, ფოტოფობია, მუქი თემა, შაკიკი, თავის ტკივილი, წაკითხვის რეჟიმი, ღამის რეჟიმი, სიკაშკაშის შემცირება, თეთრი წერტილი"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"გამოყენების სიმარტივე, წვდომის სიმარტივე, დახმარება, დამხმარე"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"მხედველობა, სმენა, უსინათლო, ყრუ, მოტორული, უნარი, დამხმარე, დახმარება, გამოყენების სიმარტივე, წვდომის სიმარტივე, ხელი, დახმარება"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ფანჯრის გამადიდებელი, მასშტაბირება, გადიდება, მხედველობადაქვეითებული, გადიდება, გადიდება"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"სუბტიტრები, დახურული სუბტიტრები, დახ. სუბტ., მყისიერი ტრანსკრიფცია, სმენადაქვეითებული, სმენის დაკარგვა, კომუნიკაციური წვდომის მომსახურება რეალურ დროში (CART), მეტყველების გარდაქმნა ტექსტად, სუბტიტრი"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ფერთა კონტრასტი"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ძრავა, მაუსი"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"სმენის მოწყობილობები, სმენის სირთულე, სმენის დაკარგვა, კოხლეარული იმპლანტები, გამაძლიერებელი მოწყობილობები, ხმის დამამუშავებლები"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"მოტორული, მაუსი, გარე მაუსი, თავის მაუსი, ადაპტირებული მაუსი, ეტლი, ჯოისტიკი"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"სმენის მოწყობილობები, სმენის სირთულე, სმენის დაკარგვა, კოხლეარული იმპლანტები, გამაძლიერებელი მოწყობილობები, ხმის დამამუშავებლები, პირადი მოხმარების ხმის გამაძლიერებელი პროდუქტი (PSAP)"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"სმენადაქვეითებული, სმენის დაკარგვა, სუბტიტრები, დისტანციური აკრეფა, დისტანციური ამკრეფი"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"სამი ღილაკი"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"უნარი, მოტორული, ასაკოვანი, ართრიტი, RSI, ინსულტი, ტრემორი, გაფანტული სკლეროზი, ცერებრული დამბლა, მოკანკალე დამბლა, განმეორებითი დაძაბვის დაზიანება, ხელი"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"დაყოვნება, უნარი, ასაკოვანი"</string>
     <string name="print_settings" msgid="8519810615863882491">"ბეჭდვა"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"გამორთული"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ჩართულია ბეჭდვის 1 სერვისი}other{ჩართულია ბეჭდვის # სერვისი}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ყველაზე დიდი მოხმარების აპების ნახვა"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"დატენვა ოპტიმიზირებულია თქვენი ბატარეის დასაცავად"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"თქვენი ბატარეის სიცოცხლის ხანგრძლივობის გასაზრდელად, დატენვა ოპტიმიზებულია"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"დატენვა ოპტიმიზირებულია თქვენი ბატარეის დასაცავად"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"თქვენი ბატარეის სიცოცხლის გახანგრძლივების მიზნით, დატენვა ოპტიმიზირებულია, როდესაც ჩამაგრებულია"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"დატენვა ოპტიმიზირებულია თქვენი ბატარეის დასაცავად"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"თქვენი ბატარეის სიცოცხლის გახანგრძლივების მიზნით, დატენვა ოპტიმიზირებულია, როდესაც ჩამაგრებულია"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"სრულად დატენვა"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"თქვენი ბატარეის დასაცავად, დატენვა ოპტიმიზირებული იქნება თქვენი ტაბლეტის დამაგრების შემდეგ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"შეიტყვეთ მეტი დატენვის შეწყვეტის შესახებ"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"დატენვის გაგრძელება"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"მოიცავს მაღალი ენერგომოხმარების ფონურ აქტივობას"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"წაშლა"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"გაუქმება"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"სრულად დატენვა"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"დამტენი დამხმარე მოწყობილობის პრობლემა"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"შეიტყვეთ მეტი შეუთავსებელი დატენვის შესახებ"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"აპების ავტომატურად მართვა"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ახლა"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> — <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ბატარეის მოხმარების დიაგრამა"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ბატარეის ყოველდღიური გამოყენების სქემა"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ბატარეის სააᲗობრივი გამოყენების სქემა"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ბატარეის დამუხტვის დონის პროცენტი <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>-დან <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>-მდე"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ბატარეის გამოყენება ბოლოს სრულად დამუხტვის შემდეგ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"ბატარეის გამოყენება <xliff:g id="SLOT">%s</xliff:g> პერიოდზე"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"ეკრანთან გატარებული დრო ბოლოს სრულად დამუხტვის შემდეგ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"საგანგებო დარეკვის სიგნალი"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ქცევის დაყენება, როცა განხორციელებულია გადაუდებელი ზარი"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"სარეზერვო კოპირება"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ჩართული"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"გამორთული"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"სარეზერვო კოპირება და აღდგენა"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"პერსონალური მონაცემები"</string>
     <string name="backup_data_title" msgid="507663517227498525">"მონაცემების სარეზერვო კოპირება"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"სახელი"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ტიპი"</string>
     <string name="vpn_server" msgid="2908816134941973935">"სერვერის მისამართი"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP დაშიფრვა (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP საიდუმლო"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec იდენტიფიკატორი"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec pre-shared გასაღები"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec მომხმარებლის სერტიფიკატი"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA სერტიფიკატი"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec სერვერის სერტიფიკატი"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"დამატებითი პარამეტრების ჩვენება"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"დომენები DNS-ის მოსაძებნად"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS სერვერები (მაგ. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"გადამისამართების მარშრუტები (მაგ. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"მომხმარებლის სახელი"</string>
     <string name="vpn_password" msgid="1183746907642628127">"პაროლი"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ანგარიშის ინფორმაციის შენახვა"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(არ გამოიყენება)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(არ შეამოწმო სერვერი)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(მიღებულია სერვერიდან)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ამ ტიპის VPN ყოველთვის დაკავშირებული ვერ იქნება"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"ყოველთვის ჩართული VPN-ის მიერ მხარდაჭერილია მხოლოდ სერვერების ის მისამართები, რომლებიც ციფრებისგან შედგება"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ყოველთვის ჩართული VPN-ისთვის საჭიროა DNS სერვერის მითითება"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ყოველთვის ჩართული VPN-ისთვის DNS სერვერების მისამართები ციფრებისგან უნდა შედგებოდეს"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ყოველთვის ჩართული VPN შეუთავსებელია შეყვანილ ინფორმაციასთან"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"გაუქმება"</string>
     <string name="vpn_done" msgid="5137858784289564985">"დახურვა"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN-ის გარეშე კავშირების დაბლოკვა"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"გსურთ VPN კავშირის მოთხოვნა?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"დაუცველია. განახლდეს შემდეგით: IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"მხარდაუჭერელი VPN-ის დაწყება ვერ მოხერხდა."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"მუდმივი კავშირისათვის აირჩიეთ VPN პროფილი. ქსელის ტრაფიკი დაიშვება მხოლოდ ამ VPN-თან კავშირის დროს."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"არც ერთი"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ყოველთვის ჩართული VPN ითხოვს IP მისამართს როგორც სერვერისთვის, ისე DNS-თვის."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER განცხადებები"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ბავშვების მოტაცებების შესახებ ცნობების მიღება"</string>
     <string name="repeat_title" msgid="8676570486899483606">"გამეორება"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"ზარების მენეჯერის ჩართვა"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"მიეცეს ნება ამ სერვისს თქვენი ზარების განხორციელების გზის მართვისთვის."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"ზარების მენეჯერი"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"უსადენო საგანგებო გაფრთხილებები"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ქსელის ოპერატორები"</string>
     <string name="access_point_names" msgid="5768430498022188057">"წვდომის წერტილის სახელი (APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"საფულე"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"გადახდა, შეხება, გადახდები"</string>
     <string name="keywords_backup" msgid="707735920706667685">"სარეზერვო ასლი, სარეზერვო ასლის შექმნა"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ჟესტი"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"სახე, განბლოკვა, ავტორიზაცია, შესვლა"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"სახე, განბლოკვა, ავტორიზაცია, სისტემაში შესვლა, თითის ანაბეჭდი, ბიომეტრიული"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI, MEID, MIN, PRL ვერსია, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ჩართვის ხმები"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"პირდაპირი სუბტიტრები"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"მედიის ავტომ. სუბტიტრირება"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ტელეფონის დინამიკები"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ტაბლეტის დინამიკები"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"მოწყობილობის დინამიკები"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"სადენიანი ყურსასმენი"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"თავსებადი მედიის ხმა უფრო იმერსიული ხდება"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"გამორთული"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ბოლოდროინდელი საუბრები ამოიშალა"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"საუბარი ამოიშალა"</string>
     <string name="clear" msgid="5092178335409471100">"გასუფთავება"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>-ის გასუფთავება"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"აქ გამოჩნდება პრიორიტეტული და შეცვლილი მიმოწერები"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"მიმოწერის პრიორიტეტულად მონიშვნის ან მათში სხვა ცვლილებების შეტანის შემთხვევაში, ისინი აქ გამოჩნდება. \n\nმიმოწერის პარამეტრების შესაცვლელად: \nგადაფურცლეთ ეკრანის ზედა ნაწილიდან ქვემოთ, ჩამოსაშლელი ფარდის გასახსნელად, შემდეგ ხანგრძლივად შეეხეთ მიმოწერას."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ჩაკეცვა"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"გამორთვა"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"აპის ჩამაგრება"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"აპის ჩამაგრება საშუალებას გაძლევთ, ჩანდეს მიმდინარე აპი, სანამ ჩამაგრებას არ მოხსნით. ამ ფუნქციის გამოყენებით შეგიძლიათ, მაგალითად, სანდო მეგობარი დაუშვათ კონკრეტულ თამაშზე."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"როდესაც აპი ჩამაგრებულია, ჩამაგრებულმა აპმა შეიძლება გახსნას სხვა აპები და მისაწვდომი გახდეს პერსონალური მონაცემები. \n\nაპის ჩამაგრებით სარგებლობისთვის: 	\n1. ჩართეთ აპის ჩამაგრება 	\n2. გახსენით მიმოხილვა 	\n3. შეეხეთ აპის ხატულას ეკრანის ზედა ნაწილში, შემდეგ შეეხეთ „ჩამაგრებას“"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"როდესაც აპი ჩამაგრებულია, ჩამაგრებულმა აპმა შეიძლება გახსნას სხვა აპები და მისაწვდომი გახდეს პერსონალური მონაცემები. \n\nთუ გსურთ, უსაფრთხოდ გაუზიაროთ თქვენი მოწყობილობა სხვას, ამის ნაცვლად, ცადეთ სტუმარი მომხმარებლის გამოყენება. \n\nაპის ჩამაგრებით სარგებლობისთვის: 	\n1. ჩართეთ აპის ჩამაგრება 	\n2. გახსენით მიმოხილვა 	\n3. შეეხეთ აპის ხატულას ეკრანის ზედა ნაწილში, შემდეგ შეეხეთ „ჩამაგრებას“"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"აპის მართვა გამოუყენებლობის შემთხვევაში"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ნებართვების, დროებითი ფაილების წაშლა, შეტყობინებების გამორთვა და აპის დაარქივება"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"ყველა აპი"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"დაინსტალირებული აპები"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"მყისიერი აპები"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"თავისუფალი"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"აპების მიერ გამოყენებული მეხსიერება"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{ბოლო დროს 1 აპმა გამოიყენა მეხსიერება {time}}other{# აპმა ბოლო დროს გამოიყენა მეხსიერება {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"მეხსიერების გამოყენების პროფილირების ჩართვა"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"მეხსიერების გამოყენების პროფილირებისთვის საჭიროა სისტემის დამატებითი რესურსები."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"მეხსიერების პროფილირება გათიშულია"</string>
     <string name="running_frequency" msgid="7260225121706316639">"სიხშირე"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"მაქსიმალური გამოყენება"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"არ არის გამოყენებული მონაცემები"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"სხვა აპების ზემოდან გამოჩენა"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"სხვა აპების ზემოდან გამოჩენის დაშვება"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ეს საშუალებას მისცემს ამ აპს, გამოჩნდეს სხვა აპების ზემოდან. ეს აპი შეძლებს ამოიცნოს, თუ ეკრანის რა ნაწილს ეხებით, ან შეცვალოს ეკრანის გამოსახულება."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"გამომავალი მედიის გამოტანის"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"აპს მიეცით უფლება, გადართოს გამომავალი მედია"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"მიეცით უფლება ამ აპს, აირჩიოს, თუ რომელი დაკავშირებული მოწყობილობა დაუკრავს აუდიოს ან ვიდეოს სხვა აპებიდან. თუ ნებადართულია, ამ აპს შეუძლია წვდომა ხელმისაწვდომი მოწყობილობების სიაზე, როგორიცაა ყურსასმენები და დინამიკები, და აირჩიოს რომელი გამომავალი მოწყობილობა იქნება გამოყენებული აუდიოსა და ვიდეოს სტრიმინგისთვის ან ტრანსლირებისთვის."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"წვდომა ყველა ფაილზე"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ხმოვანი აქტივაციის გაუმჯობესება"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ეს მოწყობილობა იყენებს კერძო ინტელექტს ხმოვანი აქტივაციის მოდელის გაუმჯობესებისთვის. მოდელის ყველასთვის გაუმჯობესებისას კონფიდენციალურობის დაცვის მიზნით აპებს შეუძლიათ მიიღონ სხვადასხვა მომხმარებლებისგან შეგროვებული განახლებების შეჯამება. \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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> გაფრთხილება მობილურ ინტერნეტზე"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> მონაცემთა მოხმარების ლიმიტი"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> გაფრთხილება მობილურ ინტერნეტზე / <xliff:g id="ID_2">^2</xliff:g> მონაცემთა მოხმარების ლიმიტი"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ოპერატორი თქვენ მიერ მოხმარებულ ინტერნეტს შეიძლება მოწყობილობისგან განსხვავებულად ითვლიდეს"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"გამორიცხავს მონაცემებს, რომლებსაც ოპერატორის ქსელები იყენებს"</string>
     <string name="data_used_template" msgid="8229342096562327646">"გამოყენებულია <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"მონაც. გაფრთხილების დაყენება"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"განახლდა <xliff:g id="ID_1">^2</xliff:g>-ის წინ"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ახლახან განაახლა <xliff:g id="ID_1">^1</xliff:g>-მ(ა)"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ახლა განახლდა"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"გეგმის ნახვა"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"დეტალების ნახვა"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"მონაცემთა დამზოგველი"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"მონაცემებზე შეუზღუდავი წვდომით"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ბატარეის გამოყენების ანომალია"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"დეველოპერის სწრაფი პარამეტრების მოზაიკები"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb ავტორიზაციის დროის ამოწურვის გამორთვა"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"adb ავტორიზაციების ავტომატურად გაუქმების გამორთვა სისტემებისთვის, რომლებიც ნაგულისხმევი (7 დღე) ან მომხმარებლის მიერ დაყენებული პერიოდის განმავლობაში (მინიმუმ 1 დღე) ხელახლა არ დაუკავშირდა."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-ის კვალის მიდევნება"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"სენსორების გამორთვა"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"სამსახურის პროფილის პარამეტრები"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"სამსახურის კატალოგის კონტაქტების ძიება პირად აპებში"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ავტომატური შევსების სერვისი"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ავტომატური შევსების ნაგულისხმევი სერვისი"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"პაროლები"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"პაროლების, წვდომის გასაღებებისა და მონაცემთა სერვისები"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"დამატებითი პროვაიდერები"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# პაროლი}other{# პაროლი}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ავტომატური, შევსება, ავტომატური შევსება, პაროლი"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"მონაცემები, წვდომის გასაღები, პაროლი"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ავტომატური, შევსება, ავტომატური შევსება, მონაცემები, წვდომის გასაღებებიწვდომის გასაღები, პაროლი"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"პაროლები, წვდომის გასაღებები და მონაცემთა სერვისები"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; პაროლები, წვდომის გასაღებები და სხვა შენახული ინფორმაცია ავტომატური შევსებისთვის არ იქნება ხელმისაწვდომი ანგარიშზე შესვლისას"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;შეცვალეთ თქვენი სასურველი მომსახურება შემდეგზე: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ახალი პაროლები, წვდომის გასაღებები და სხვა ინფორმაცია ამიერიდან აქ შეინახება. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; შეძლებს თქვენს ეკრანზე განთავსებული ინფორმაციის გამოყენებას იმის განსაზღვრისთვის, თუ რისი შევსებაა ავტომატურად შესაძლებელი"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"გსურთ %1$s-ის გამოყენება?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"შეგიძლიათ ჩართული გქონდეთ მხოლოდ 5 მომსახურება"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ახლის დასამატებლად გამორთეთ სულ მცირე ერთი მომსახურება მაინც"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s იყენებს თქვენს ეკრანზე გამოსახულ კონტენტს, რათა გაარკვიოს, რა შეიძლება შეივსოს ავტომატურად."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"პაროლების, წვდომის გასაღებებისა და მონაცემთა სერვისების ლიმიტი"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"შეგიძლიათ, ერთდროულად მაქსიმუმ 5 პაროლი, წვდომის გასაღები და მონაცემთა სერვისი გაააქტიუროთ. მეტის დასამატებლად გამორთეთ სერვისი."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"პაროლების, წვდომის გასაღებებისა და მონაცემთა სერვისების ლიმიტი"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ერთდროულად, შეგიძლიათ, მაქსიმუმ 5 პაროლი, წვდომის გასაღები და მონაცემთა სერვისი გქონდეთ. სხვების დასამატებლად გამორთეთ სერვისი."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"გამორთვა"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ავტომატური შევსება"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"აღრიცხვის დონე"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"აპის თავსებადობის ცვლილებები მხოლოდ გამართვადი აპლიკაციებისთვის შეიძლება განხორციელდეს დააინსტალირეთ გამართვადი აპი და ხელახლა ცადეთ."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"დამოკიდებულია სხვა პარამეტრზე"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ანგარიში"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ანგარიში"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"მოწყობილობის სახელი"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ძირითადი ინფორმაცია"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"სამართლებრივი და სარეგულაციო"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"ნება დართეთ ამ აპს, გაეშვას NFC თეგის სკანირებისას.\n თუ ეს ნებართვა ჩართულია, თეგის ამოცნობისას ეს აპი ერთ-ერთ ვარიანტად იქნება ხელმისაწვდომი."</string>
     <string name="media_output_title" msgid="8283629315159510680">"მედიის დაკვრა შემდეგზე"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>-ის დაკვრა"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"აუდიო დაიკვრება"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ეს მოწყობილობა"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ზარების განხორციელებისას მიუწვდომელია"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ზარის აღება მოწყობილობაზე:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"დადუმება"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ჩასართავად ჯერ შეცვალეთ „ხანგრძლივად დააჭირეთ ჩართვის ღილაკს“ ჩართვის მენიუთი."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ქსელის დეტალები"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"თქვენი მოწყობილობის სახელი ხილულია თქვენს ტელეფონზე არსებული აპებისთვის. მის დანახვას შეძლებენ სხვა პირებიც, როცა Bluetooth მოწყობილობებს ან Wi-Fi ქსელს დაუკავშირდებით, ან Wi-Fi უსადენო ქსელს დააყენებთ."</string>
     <string name="devices_title" msgid="649715719278562515">"მოწყობილობები"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ქსელის არჩევა"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"კავშირი გაწყვეტილია"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"სახელი"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ფერი (იყენებს თავსებადი აპები)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"შენახვა"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM ბარათის გამოყენება"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"SIM-ის გამოყენება"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"გამორთვა"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ამ SIM-ის გასათიშად, ამოიღეთ SIM ბარათი"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"შეეხეთ <xliff:g id="CARRIER">%1$s</xliff:g>-ის გასააქტიურებლად"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM ბარათის ამოშლა"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ქსელის სასურველი ტიპი"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ქსელის მუშაობის რეჟიმის შეცვლა"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ქსელის სასურველი ტიპი"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ფასები შეამოწმეთ თქვენს ოპერატორთან."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"აპის მიერ მონაცემთა მოხმარება"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ქსელის რეჟიმი (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>) არასწორია. იგნორირება."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"წვდომის წერტილების სახელები"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"მიუწვდომელია, როცა დაკავშირებულია <xliff:g id="CARRIER">%1$s</xliff:g>-თან"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"გსურთ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-ზე გადართვა?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"გსურთ SIM ბარათის გამოყენებაზე გადართვა?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"გსურთ, გამოიყენოთ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ყოველ ჯერზე მხოლოდ ერთი SIM ბარათი შეიძლება იყოს აქტიური.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-ზე გადართვა <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-ის სერვისს არ გააუქმებს."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"მხოლოდ 1 eSIM შეიძლება აქტიური იყოს ერთდროულად.\n\n <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-ზე გადართვა თქვენს <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-ის სერვისს არ გააუქმებს."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ყოველ ჯერზე მხოლოდ ერთი SIM ბარათი შეიძლება იყოს აქტიური.\n\nგადართვა <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-ის სერვისს არ გააუქმებს."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ერთდროულად 2 SIM-ის გამოყენება შეგიძლიათ. <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-ის გამოსაყენელად გამორთეთ მეორე SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>-ზე გადართვა"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"გამორთვა: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"არა, გმადლობთ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"გაუქმება"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"გადართვა"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"გამორთვა"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM ბარათის გააქტიურება ვერ ხერხდება"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ცადეთ, ხელახლა ჩართოთ SIM ბარათი. თუ პრობლემა არ მოგვარდა, გადატვირთეთ მოწყობილობა."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"თქვენი SIM-ის კონფიგურაცია"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"მობილური ქსელის პრეფერენციების კონფიგურაცია ამ მოწყობილობაზე რამდენიმე SIM-ის გამოსაყენებლად"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"მიამაგრეთ ლეიბლი SIM-ებს"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ეს ლეიბლები გამოჩნდება ზარების განხორციელებისას, ტექსტური შეტყობინებების გაგზავნისას და ინტერნეტის გამოყენებისას, ასევე, პარამეტრებში"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-ლეიბლი"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ლეიბლი"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"SIM-ების არჩევა"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ერთდროულად 2 SIM-ის გამოყენება შეგიძლიათ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ძირითადი SIM-ების კონფიგურაცია"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"აირჩიეთ ზარებისთვის, ტექსტური შეტყობინებების გაგზავნისთვის და ინტერნეტისთვის ნაგულისხმევად გამოსაყენებელი SIM-ები"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"თქვენი ძირითადი SIM-ები"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ზარები"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ტექსტი"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"მონაცემთა ავტომატური გადართვა"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"დაფარვისა და ხელმისაწვდომობის მიხედვით მონაცემების გამოყენება ნებისმიერი SIM-იდან"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"მხოლოდ ინტერნეტისთვის"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"კონფიგურაცია"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"შემდეგი"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"მობილური ქსელი"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ტელეფონის ნომერი"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-ლეიბლი და ფერი"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ქსელის გააქტიურება"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"ოპერატორის გადართვა"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> აქტიურია"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"მობილური ინტერნეტის, ზარის ფუნქციებისა და SMS-ების მოგვიანებით გამოსაყენებლად, გადადით თქვენი ქსელის პარამეტრებზე"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"გსურთ ამ eSIM-ის წაშლა?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ამ SIM ბარათის ამოშლა მოწყობილობიდან <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-ის სერვისს ამოიღებს.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-ის სერვისი არ გაუქმდება."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ამოშლა"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"მიმდინარეობს SIM ბარათის ამოშლა…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM ბარათი ვერ იშლება"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ეს SIM ბარათი ვერ იშლება შეცდომის გამო.\n\nგადატვირთეთ მოწყობილობა და ხელახლა ცადეთ."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"მოწყობილობასთან დაკავშირება"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> აპს სურს დროებითი Wi-Fi ქსელის გამოყენება თქვენს მოწყობილობასთან დასაკავშირებლად"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"მოწყობილობები ვერ მოიძებნა. დარწმუნდით, რომ მოწყობილობები ჩართულია და ხელმისაწვდომია დასაკავშირებლად."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"გადაუდებელი ზარები"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"გადაუდებელი ზარების Wi‑Fi დარეკვის საშუალებით შესრულება არ არის მხარდაჭერილი თქვენი ოპერატორის მიერ.\nგადაუდებელი ზარის განსახორციელებლად მოწყობილობა ავტომატურად გადაერთვება ფიჭურ ქსელზე.\nგადაუდებელი ზარები მხოლოდ იმ არეალებშია შესაძლებელი, სადაც ფიჭური კავშირგაბმულობა არსებობს."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ხარისხის გასაუმჯობესებლად ზარებისთვის Wi‑Fi გამოიყენეთ"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"დარეკვის სარეზერვო ხერხი"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"თუ <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> მიუწვდომელი არის ან როუმინგზეა, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ზარებისთვის გამოიყენეთ თქვენი მობილური ინტერნეტის SIM."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"დარეკვის სარეზერვო ხერხი"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"შემომავალი MMS შეტყობინება"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS შეტყობინების გაგზავნა ვერ ხერხდება"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"შეეხეთ MMS შეტყობინებების დასაშვებად <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>-ზე, როდესაც მობილური ინტერნეტი გამორთულია"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ინფორმაცია თქვენი სამსახურის პოლიტიკის შესახებ"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"პარამეტრებს მართავს თქვენი IT ადმინისტრატორი"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16 კბ ზომის გვერდით ჩატვირთვა"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"ჩატვირთვა 16 კბ-იანი გვერდის მხარდაჭერის კერნელით"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"გსურთ გადატვირთოთ 16-კბაიტიანი გვერდებისთვის თავსებადი კერნელი?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"გაფრთხილება: ზოგიერთი აპი შეიძლება არ იყოს თავსებადი ამ რეჟიმთან. დადასტურების შემდეგ მოწყობილობა გადაიტვირთება."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"გსურთ გადატვირთოთ 4-კბაიტიანი გვერდებისთვის თავსებადი კერნელი?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"დადასტურების შემდეგ მოწყობილობა გადაიტვირთება."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"ვერ მოხერხდა კერნელის განახლება კერნელის ვერსიაზე, რომელიც თავსებადია 16-კბაიტიან გვერდების ზომასთან"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"მიმდინარეობს ცვლილებების გააქტიურება"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"სისტემის ხარვეზის ანგარიშის დამმუშავებელი"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"განსაზღვრავს, რომელი აპი მართავს სისტემის ხარვეზის ანგარიშის მალსახმობს თქვენს მოწყობილობაზე."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"პირადი"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"დაკვრის სწრაფად გასაგრძელებლად მედიადამკვრელი გახსნილი დარჩება სწრაფ პარამეტრებში"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"მედიის ჩაკეტილ ეკრანზე ჩვენება"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"დაკვრის სწრაფად გასაგრძელებლად მედიადამკვრელი გახსნილი იქნება ჩაკეტილ ეკრანზე"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"მედიარეკომენდაციების ჩვენება"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"ასისტენტის მედია რეკომენდაციების ჩვენება"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"თქვენი აქტივობის საფუძველზე"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"დამკვრელის დამალვა"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"დამკვრელის ჩვენება"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-ები"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"აქტიური"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"არააქტიური"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / ნაგულისხმევი <xliff:g id="ID_1">%1$s</xliff:g>-თვის"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ზარები"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"თავსებადი მედიის ხმა უფრო იმერსიული ხდება"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"თავის მოძრაობაზე თვალის დევნება"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"აუდიო იცვლება თქვენი თავის მოძრაობასთან ერთად"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ნებართვების სინქრონიზაცია"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"მიეცით <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>-ს იმავე აპის ნებართვები, რომლებიც დაშვებული გაქვთ <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>-ზე"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ტელეფონიდან ნებართვების სინქრონიზაცია"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"დაუშვით თქვენს საათზე იგივე აპის ნებართვები, რაც ტელეფონზეა"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"აუდიო მოწყობილობის ტიპი"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"უცნობი"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"დინამიკი"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"საშუალო"</string>
     <string name="contrast_high" msgid="3988567609694797696">"მაღალი"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ამ აპის გახსნა შესაძლებელია მხოლოდ 1 ფანჯარაში"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ჩართული"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"გამორთული"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"გამორთული"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"გამორთული"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ჩართული"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"გამორთული"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ჩართული"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"გამორთული"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"მუქ ეკრანებს გააღიავებს და პირიქით"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ეკრანზე მასშტაბის გადიდება"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"გამორთული"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"გამორთული"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ჩართული"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"გამორთული"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ჩართული"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"პაროლი დაყენებულია"</string>
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 1970543..4fb8109 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 минуттан кейін"</item>
     <item msgid="1574040255478150028">"5 минуттан кейін"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 2d80e14..13aaade 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Әзірлеуші параметрлеріне тек әкімші пайдаланушылар кіре алады."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Жүйе"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Істеп тұр"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Істен шыққан"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Жалғастыру үшін жоғары қарай сырғытыңыз"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Қолданбаны пайдалана беру үшін телефоныңызды жауып, алдыңғы экранда жоғары қарай сырғытыңыз немесе экран құлыпталғанша бірнеше секунд күтіңіз."</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Ұқсас"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Рингтон және оятқыштар"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Қоңырау шалу кезіндегі аудио"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Meдиа"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Хабарландырулар мен басқа жүйелік дыбыстар"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Медиа және жүйе дыбыстары"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Хабарландырулар"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Әдепкісінше аудиошығысты жеке қолданбалар анықтайды."</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Атауы жоқ Bluetooth құрылғысы"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Іздеуде..."</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth қосылды"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Барлығын көру"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Барлығын көру"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Стилус"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Стилус түймесін басу"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (жұмыс профилі)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE аудио трансляциясына қосылу"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Маңайдағы аудио трансляциялар"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудио трансляциялар"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR коды арқылы аудио трансляцияға қосылуға болады."</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Маңайда аудио трансляциялар табылмады."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Күн және уақыт"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Өшіру"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Әр қолданбаның өз тілін таңдау үшін сол қолданбаның тіл параметрлеріне өтіңіз."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Қолданба тілдері туралы толық ақпарат"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Жүйе тілін %s тіліне ауыстыру керек пе?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s қолданатын тілдер қатарына қосылсын ба?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Қолданбалар мен веб-сайттарға сізге осы тілдің де қажет екенін білуге мүмкіндік береді."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Құрылғы параметрлері мен аймақтық параметрлер өзгереді."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Ауыстыру"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s тілін пайдалану мүмкін емес"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Сенбі"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Аймақтық параметрлер болмаса, қолданба өзінің тіл параметрлерін пайдаланады."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Тіл параметрлері туралы толық ақпарат алыңыз."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Қосымша параметрлер"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Қарату формасы"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Сізді қалай деп атау керектігін көрсетіңіз."</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Қолданбалар сізбен тіл қатысу үшін өзіңіз таңдаған қарату формасын пайдалана алады."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Көрсетілмеген"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Аналық"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Аталық"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Белгісіз"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Таңдалған тілді жою керек пе?}other{Таңдалған тілдерді жою керек пе?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Мәтін басқа тілде көрсетіледі."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Барлық тілдерді жою мүмкін емес"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Локация"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Локацияны пайдалану"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Өшірулі"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Қосулы: # қолданба локацияны пайдалана алады.}other{Қосулы: # қолданба локацияны пайдалана алады.}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Қосулы / # қолданба локацияны пайдалана алады.}other{Қосулы / # қолданба локацияны пайдалана алады.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктелуде…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Маңайдағы құрылғыларды пайдалану рұқсаты бар қолданбалар телефонға жалғанған құрылғылардың тиісті орнын анықтай алады."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Қолданбалар мен қызметтер үшін локацияны пайдалану рұқсаты өшірулі. Бірақ құтқару қызметіне қоңырау шалатын немесе хабар жіберетін болсаңыз, құрылғыңыздың локациясы беріледі."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Локация параметрлері туралы толығырақ ақпарат алыңыз."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Локация параметрлері туралы толық ақпарат"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Локацияны пайдалану рұқсатын өзгерту үшін \"Параметрлер &gt; Қауіпсіздік және құпиялық &gt; Құпиялық параметрлері\" бөліміне өтіңіз."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Ең жақсы нәтижелер алу үшін \"Google-ға арнап жасалған\" сертификаты бар экран қорғанышын пайдаланыңыз. Басқа экран қорғаныштары пайдаланылса, балаңыздың саусақ ізі оқылмай қалуы мүмкін."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Құлыпты сағат арқылы ашу"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Бет тану және саусақ ізімен ашу функцияларын реттесеңіз, бетперде таққанда немесе қараңғы жерде болғанда, телефон саусақ ізін пайдалануды ұсынатын болады.\n\nБет тану функциясы немесе саусақ ізі арқылы аша алмасаңыз, сағатты пайдалануыңызға болады."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Саусақ ізі арқылы аша алмасаңыз, сағатты пайдалануыңызға болады."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Бет тану функциясы арқылы аша алмасаңыз, сағатты пайдалануыңызға болады."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Бет тану және саусақ ізімен ашу функцияларын реттесеңіз, маска таққанда немесе қараңғы жерде болғанда, телефон саусақ ізін пайдалануды сұрайды.\n\nҚұлыпты сағат арқылы ашу — телефон құлпын ашудың тағы бір ыңғайлы әдісі. Мысалы оны саусағыңыз ылғал болғанда не бетіңіз танылмағанда пайдалануға болады."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Құлыпты сағат арқылы ашу — телефон құлпын ашудың тағы бір ыңғайлы әдісі. Мысалы оны саусақ ізіңіз танылмағанда пайдалануға болады."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Құлыпты сағат арқылы ашу — телефон құлпын ашудың тағы бір ыңғайлы әдісі. Мысалы оны бетіңіз танылмағанда пайдалануға болады."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Мына әрекет үшін саусақ ізін немесе сағатты пайдаланыңыз:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Мына әрекет үшін бет үлгісін немесе сағатты пайдаланыңыз:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Мына әрекет үшін бет үлгісін, саусақ ізін немесе сағатты пайдаланыңыз:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Бет тану функциясы және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Бет тану функциясы, саусақ ізі және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Бет тану функциясы, саусақ іздері және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Бұл қалай жұмыс істейді?"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Сағатыңызды білекке тағып, оның құлпын ашуыңыз және осы телефонға жақын жерде ұстауыңыз керек. Сағат қолыңызға тағылғаннан кейін, оның құлпын қайтадан ашпайсыз."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Телефон құлпы ашылғаннан кейін, сағатқа хабарландыру келеді. Құлпын байқаусызда ашып жіберсеңіз, оны қайта құлыптау үшін хабарландыруды түртіңіз."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Барлығы өз қолыңызда"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Кез келген уақытта параметрлерді пайдаланып, құлыпты сағат арқылы ашу функциясынан сағатыңызды өшіре аласыз."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Хабарландыруды түртіңіз."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Құлып экранын жоғары сырғытыңыз."</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Сағат таңдаңыз"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Қолжетімді сағаттар"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Бас тарту"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Растау"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Барлығы дайын!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Құлып экранында жоғары сырғытқанда не хабарландыруды түрткенде, осы телефонды енді сағатыңызбен аша аласыз."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Дайын"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Құлыпты сағат арқылы ашу"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Құлып экранында жоғары сырғытқанда не хабарландыруды түрткенде, осы телефонды сағатыңызбен аша аласыз."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Құлыпты сағат арқылы ашу функциясын пайдалану үшін сағатыңызды білекке тағып, оның құлпын ашуыңыз және осы телефонға жақын жерде ұстап, оған қосуыңыз керек. Байланыс үзіліп кетсе, аталған функцияны пайдаланбас бұрын, телефон құлпын ашуыңыз қажет.\n\nЕсте сақтаңыз:\nБір уақытта тек бір сағатты реттей аласыз. Басқа сағатты қосу үшін алдымен қазіргісін өшіріңіз."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Құлыпты сағат арқылы ашу туралы толық ақпарат"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Сағатты қосу"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Сағатты өшіру"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Бет және саусақ ізі арқылы құлыпты ашу"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Жұмысқа арналған бет тану және саусақ ізімен ашу функциялары"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Реттеу қажет."</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Қауіпсіздік"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Құпиялық"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Жұмыс профилі"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Жеке бөлме"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Жеке кеңістік қолданбаларын құлыптаулы және жасырын қалдырыңыз."</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Жеке қолданбаларды жасыруға не құлыптауға болатын бөлек жерде сақтаңыз."</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Жеке бөлме құлпы"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Жеке бөлме құлпын құрылғы құлпын ашқандай аша аласыз немесе басқа құлып таңдай аласыз."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Құрылғының экран құлпын пайдалану"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Бет және саусақ ізімен ашу"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Саусақ ізімен ашу"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Бет тану"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Реттеу үшін түртіңіз"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Жеке кеңістік үшін \"Саусақ ізімен ашу\" функциясын пайдалану"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Жеке кеңістік үшін \"Бет тану\" функциясын пайдалану"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Құлыпты ашу тәсілдері"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Құрылғының экран құлпымен бірдей"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Жеке бөлмеге жаңа құлып таңдау керек пе?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Автоматты түрде құлыптау"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Құпия кеңістікті автоматты түрде құлыптау"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Құрылғыңызды белгілі бір уақыт бойы қолданбаған болсаңыз, құпия кеңістікті автоматты түрде құлыптай аласыз."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Құрылғы құлыпталған сайын"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 минуттық әрекетсіздіктен кейін"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Ешқашан"</string>
+    <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_deleted" msgid="7825768516955610897">"Жеке бөлме жойылды."</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Жеке бөлме жойылмады."</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Құпия кеңістіктің құлпы ашылды."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Экран құлпын орнатыңыз"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Жеке бөлмеңізді қолдану үшін осы құрылғыда экран құлпын орнатыңыз."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Экран құлпын орнату"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Бас тарту"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Бас тарту"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Реттеу"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Жеке бөлмені реттеу"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Жеке қолданбаларды жасыруға не құлыптауға болатын бөлек жерде сақтаңыз."</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Бұл қалай жұмыс істейді?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Жеке бөлмеңізге қолданбалар тізімінің төменгі жағынан кіруге болады."</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Жеке бөлмеңіздегі қолданбалар құлыппен қорғалады."</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Жеке бөлме құлыптаулы кезде, ондағы қолданбалардан келетін хабарландырулар жасырылады."</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Жеке бөлмеңіз құлыпталып тұрған кезде, ондағы қолданбалар \"Рұқсаттарды басқару\" бөлімінде, құпиялық тақтасында және басқа параметрлерде көрсетілмейді.\n\nЖеке бөлмені жаңа құрылғыға көшіруге болмайды. Оны басқа құрылғыда пайдаланғыңыз келсе, басқа жеке бөлмені реттеуіңіз керек.\n\nҚұрылғыңызды компьютерге жалғайтын немесе оған зиянды қолданбалар орнататын кез келген адам жеке бөлмеңізге кіре алады."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Жеке бөлме реттеліп жатыр…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Жеке бөлме құлыптаулы кезде, ондағы қолданбалардан келетін хабарландырулар жасырылады"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Жеке кеңістік қолданбаларындағы фотосуреттерді не файлдарды бөлісу үшін жеке кеңістік құлпын ашыңыз"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Кейбір қолданбалар жеке бөлмеңізде орнатылып қойған"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Жеке бөлмені реттеу мүмкін болмады"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Қайталау"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Жеке бөлмеңіздің құлпы экран құлпымен ашылсын ба?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Жеке бөлмеңіздің құлпын құрылғы құлпын ашқандай аша аласыз немесе басқа құлып таңдай аласыз."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Экран құлпын пайдалану"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Жаңа құлып таңдау"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Бәрі дайын!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Жеке бөлмеңізге кіру үшін қолданбалар тізіміне өтіп, төмен айналдырыңыз."</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Дайын"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Жеке бөлмені табу үшін төмен айналдырыңыз."</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Жеке бөлмеңіздің құлпын таңдаңыз"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Жеке бөлмеңіздің құлпын саусақ ізімен ашуға болады. Қауіпсіздік мақсатында бұл опция үшін қосымша құлып орнату керек болады."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Жеке кеңістік үшін PIN кодын орнату"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Жеке кеңістік үшін құпия сөз орнату"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Жеке кеңістік үшін өрнек орнату"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Жеке бөлмені көрсету (соңғы пайдаланушы интерфейсі емес)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Параметрлер қолданбасын ашыңыз."</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Құлыптаулы кезде \"Қауіпсіздік және құпиялық &gt; Жеке бөлме &gt; Жеке бөлмені жасыру\" бөлімін түртіңіз."</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"\"Құлыптаулы кезде жеке бөлмені жасыру\" ауыстырғышын өшіріңіз."</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google қызметкерлеріне ескертпе: Бұл функция әлі әзірленіп жатыр."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Бұл кілтпернені басқа құрылғыларды қолданғанда да теру қажет болады."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Үйлестірілген жинақпен жұптауды растаңыз."</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Контактілер мен қоңыраулар тарихына кіруге рұқсат беру"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Сондай-ақ контактілерге және қоңыраулар тарихына кіруге рұқсат беріледі."</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Ақпарат қоңырау туралы хабарландырулар және т.б. үшін пайдаланылады."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына жалғану мүмкін болмады."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Қолжетімді құрылғылар"</string>
     <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>
+    <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Ұшақ режимі"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Қоғамдық желі қолжетімді болғанда хабарлау"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Жоғары сапалы қоғамдық желі қолжетімді болғанда хабарлау"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP желілеріне рұқсат беру"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP — қауіпсіздік деңгейі төмен ескі қауіпсіздік протоколы."</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Қауіпсіздік деңгейі төмен болғандықтан, операторыңыз WEP желілерін пайдалануға рұқсат бермейді."</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi желісін автоматты түрде қосу"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi бұрын сақталған жоғары сапалы желі (мысалы, үйдегі желі) аймағында қайта қосылады."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Орынды анықтау функциясы өшірулі болғандықтан, қолжетімді емес. "<annotation id="link">"Орынды анықтау"</annotation>" қызметін қосыңыз."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi іздеу функциясы қолданбалар мен қызметтерге кез келген уақытта (Wi‑Fi өшірулі кезде де) Wi‑Fi желілерін іздеуге мүмкіндік береді. Оны орналасқан жерге қатысты функциялар мен қызметтерді жақсарту үшін пайдалануға болады."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Қосу"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi іздеу функциясы қосылды."</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Бұл желіде қауіпсіздік деңгейі төмен ескі қауіпсіздік протоколы пайдаланылады."</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> блокталған"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Бұл желіде WEP деп аталатын ескі қауіпсіздік протоколы пайдаланылады. Оның қауіпсіздік деңгейі төмен. Бәрібір қосылу керек болса, WEP желілеріне рұқсат бере аласыз."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Қауіпсіздік деңгейі төмен ескі қауіпсіздік протоколы пайдаланылатындықтан, операторыңыз бұл желіге қосылуға рұқсат бермейді."</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP протоколына рұқсат беру"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Жабу"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Қосымша опциялар"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Қосымша опциялардың ашылмалы тізімі"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"жаю"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi желісінде қалу"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Қайта көрсетілмесін"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Жалғау"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi қосылды."</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> желісіне жалғанды."</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> желісіне қосылуда"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Жалғануда…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Желіге қосылу орындалмады"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Желі байланыс аясында емес."</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Ұмыту"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Өзгерту"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Желіні жою орындалмады"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Сақтау"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Желіні сақтау орындалмады"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Бас тарту"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобильдік интернет"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Зарядталып жатыр."</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Зарядталып жатыр."</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Хотспот байланысы"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Байланыс күші"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сақталған желілер"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Құпия сөз жоқ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Хотспот атауы"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Хотспот құпия сөзі"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP диапазоны"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Хотспотты автоматты өшіру"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Ешқандай құрылғы жалғанбаған кезде"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Үйлесімділік деңгейін арттыру"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Ойындар үшін әдепкі кадр жиілігін өшіру"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Ойындар үшін максималды кадр жиілігін <xliff:g id="FRAME_RATE">%1$d</xliff:g> Гц шамасында шектеу опциясын өшіреді."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"Зейінді экран\" функциясы алдыңғы камера арқылы адамның экранға қарап тұрғанын тани алады. Ол құрылғыда ғана жұмыс істейді. Суреттер еш уақытта Google-ға жіберілмейді."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\"Зейінді экран\" функциясын қосу"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Экранға қарап тұрғанда, ол өшпейді"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Экранның ұзағырақ өшу уақыты батеряны көбірек тұтынады."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера құлыптаулы"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Бетті анықтау үшін камераның құлпы ашық болуы керек."</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Зейінді экран функциясы үшін камераның құлпын ашу керек."</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g> ұясы)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> ұясы) (негізгі)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Көру үшін сақталған желіні таңдаңыз."</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MИН"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL нұсқасы"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Батарея деңгейі"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Жалпы"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Жалпы параметрлер"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Сақтау"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Бас тарту"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Атау жақтауы бос болмауы тиіс."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN (Apple хабар жіберу қызметі )бос болмауы тиіс."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC өрісінде 3 цифр болуы тиіс."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC өрісінде 2 немесе 3 цифр тұруы тиіс."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Оператор %s түріндегі APN қосуға рұқсат бермейді."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC өрісі жарамды болуы керек."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Бастапқы APN параметрлерін қалпына келтіру."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Әдепкі параметрлеріне қайтару"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Әдепкі APN параметрлерін қайта орнату аяқталды."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Бастапқы қалпына келтіру"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth пен Wi‑Fi қайта орнатылды."</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM карталарын тазарту"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Бұл әрекет тарифтік жоспарлардың күшін жоймайды. Жаңа SIM карталарын жүктеп алу үшін операторға хабарласыңыз."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Параметрлерді бастапқы күйге қайтару"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Барлық желі параметрлері бастапқы күйіне қайтарылсын ба? Бұл әрекетті қайтару мүмкін емес."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Барлық желі параметрі бастапқы күйге қайтарылып, eSIM карталары жойылсын ба? Бұл әрекет кері қайтарылмайды."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Бастапқы күйге қайтару қажет пе?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Бұл пайдаланушы желіні қалпына келтіре алмайды"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Желі параметрлері қалпына келтірілген"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM карталары тазартылмайды"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Қатеге байланысты бұл eSIM карталарын жою мүмкін емес.\n\nҚұрылғыны өшіріп қосып, әрекетті қайталаңыз."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Барлық деректі өшіру (зауыттық параметрлерге қайтару)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Барлық деректі өшіру (зауыттық параметрлерді қайтару)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музыка;"</li>\n<li>"фотосуреттер;"</li>\n<li>"пайдаланушының басқа деректері."</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM карталары"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Мұның нәтижесінде мобильдік қызмет жоспарыңыздан бас тартылмайды."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Барлық жеке ақпаратыңыз бен жүктеп алынған қолданбаларыңыз жойылады. Бұл әрекет кері қайтарылмайды."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Барлық жеке ақпаратыңыз, соның ішінде жүктеп алынған қолданбалар мен SIM карталары жойылады. Бұл әрекет кері қайтарылмайды."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Барлық дерек өшірілсін бе?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Бұл пайдаланушы зауыттық параметрлерді қайтара алмайды."</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Өшіріліп жатыр"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Хотспот USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Интернет басқа құрылғыларға беріліп жатқан жоқ."</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Өшірулі"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Тетеринг"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi хотспотын пайдаланбау"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Интернетті тек USB арқылы бөлісу"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Интернетті тек Bluetooth арқылы бөлісу"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Интернетті тек Ethernet арқылы бөлісу"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Интернетті тек USB және Bluetooth арқылы бөлісу"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Интернетті тек USB және Ethernet арқылы бөлісу"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Интернетті тек Bluetooth және Ethernet арқылы бөлісу"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Интернетті тек USB, Bluetooth және Ethernet арқылы бөлісу"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-тетеринг"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-тетеринг"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-тетеринг"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Wi‑Fi не мобильдік интернет байланысы арқылы басқа құрылғыларды интернетке қосу үшін хотспот және тетеринг функцияларын пайдаланыңыз. Қолданбалар маңайдағы құрылғылармен контентті бөлісу үшін де хотспот жасай алады."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Көмек"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобильдік желі"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Ұялы жоспар"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS қолданбасы"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS қолданбасы өзгертілсін бе?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасы <xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына SMS қолданбасы ретінде қолданылсын ба?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi көмек құралын ауыстыру керек пе?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Желілік байланыстарды басқару үшін <xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына <xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасын пайдалану керек пе?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Желілік байланыстарды басқару үшін <xliff:g id="NEW_APP">%s</xliff:g> қолданбасын пайдалану керек пе?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Белгісіз SIM операторы"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторының қызмет көрсетуші вебсайты жоқ"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM картасын енгізіп, қайта бастаңыз"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Интернетке қосылыңыз"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Соңғы орынды анықтау сұраулары"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Жұмыс профиліндегі локация"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Қолданбалардың локацияны пайдалануы"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Тазалауға қатынасу"</string>
     <string name="controls_label" msgid="8671492254263626383">"Басқарулар"</string>
     <string name="force_stop" msgid="2681771622136916280">"Күштеп тоқтату"</string>
+    <string name="archive" msgid="9074663845068632127">"Мұрағаттау"</string>
+    <string name="restore" msgid="7622486640713967157">"Қалпына келтіру"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Барлығы"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Қолданба көлемі"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB жады қолданбасы"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Жинақ өлшемін есептей алмады."</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> нұсқасы"</string>
     <string name="move_app" msgid="5421158479447276791">"Жылжыту"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Мұрағатталмады."</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> қолданбасы мұрағатталды."</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Қалпына келтірілмеді."</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> қалпына келтіріліп жатыр."</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Басқа көшіру орындалуда."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Жадта орын жеткіліксіз."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Қолданба жоқ."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Экрандағы пернетақта қолжетімді"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Экрандағы пернетақталарды басқару"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опциялар"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Арнайы мүмкіндіктер"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физикалық пернетақта"</string>
     <string name="show_ime" msgid="4334255501724746849">"Экрандағы пернетақтаны пайдалану"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Физикалық пернетақта қосулы кезде оны экранға шығару"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Қайтару пернелері"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Физикалық пернетақта қолжетімділігі үшін қайтару пернелерін қосыңыз."</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Бекітілген пернелер"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Физикалық пернетақта қолжетімділігі үшін бекітілген пернелерді қосыңыз."</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Перне тіркесімдері"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Жылдам пәрмендер тізімін көрсету"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Жұмыс профилі пернетақталары және құралдары"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Пайдаланылған уақыт ұзақтығымен сұрыптау"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Соңғы пайдаланылған уақытымен сұрыптау"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Қолданба атауымен сұрыптау"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Соңғы пайдаланылған уақыты"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Соңғы пайдаланылғандар"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ешқашан"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Қолдану уақыты"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Арнайы мүмкіндіктер"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Қол жетімділік параметрлері"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Бәрібір жалғастыру"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Бас тарту"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ұлғайту параметрлері"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Үш рет түртіп үлкейту"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Таңбашамен үлкейту"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Таңбашамен және үш рет түртіп үлкейту"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> туралы ақпарат"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Экранды ашу үшін екі саусақпен екі рет түрту"</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="860548190334486449">"Ұлғайту функциясын қосу және тоқтату үшін экранның кез келген жерін екі саусақпен екі рет түртіңіз."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Арнайы мүмкіндіктерді пайдалану үшін экранның төменгі жағынан 3 саусағыңызбен жоғары сырғытыңыз.\n\nБір функциядан екіншісіне ауысу үшін 3 саусақпен жоғары қарай сырғытып, ұстап тұрыңыз."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Түсінікті"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Арнайы мүмкіндіктер түймесі параметрлері"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Түйме параметрлері"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> жылдам пәрмені"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Арнайы мүмкіндіктер түймесі"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Арнайы мүмкіндіктер қимылы"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Экранды екі саусақпен екі рет түрту"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"экранды екі саусақпен екі рет түрту"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Экранды екі саусағыңызбен {0,number,integer} рет жылдам түртіңіз."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үш рет түрту"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"экранды үш рет түрту"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} рет жылдам түртіңіз. Бұл жылдам пәрмен құрылғы жұмысын баяулатуы мүмкін."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Арнайы мүмкіндіктер түймесі мен қимылы туралы толығырақ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Арнайы мүмкіндіктер түймесі қолданылуда. Бұл қимыл 3 түймемен басқарылмайды."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Арнайы мүмкіндіктерге жылдам қол жеткізу"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Бастау үшін:"</b>\n"1. Арнайы мүмкіндіктердің параметрлеріне өтіңіз.\n2. Функцияны таңдап, таңбашаны түртіңіз.\n3. Функцияны пайдалану үшін түймені не қимылды қолдану мүмкіндігін таңдаңыз."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Бастау үшін:"</b>\n"1. Арнайы мүмкіндіктердің параметрлеріне өтіңіз.\n2. Функцияны таңдап, таңбашаны түртіңіз.\n3. Функцияны пайдалану үшін түймені таңдаңыз."</string>
+    <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_size_title" msgid="5785110470538960881">"Көлемі"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Қуат түймесі арқылы қоңырауды үзу"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Үлкен тінтуір меңзері"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Тінтуір меңзерін айқынырақ ету"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Барлық қолданбада қараңғы ету"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Қараңғы режимдері жоқ қолданбаларға қолданылады. Кейбір қолданбаларда көрсетуге қатысты мәселелер (түсін кетіру сияқты) болуы мүмкін."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Анимацияны өшіру"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Экрандағы қозғалысты азайту"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Моно аудио"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ол қолданбамен немесе жабдық датчигімен істеген тапсырмаларыңызды бақылайды және қолданбаларды сіздің атыңыздан пайдаланады."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Рұқсат ету"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Тыйым салу"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Тоқтату"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Бас тарту"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> тоқтатылсын ба?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> түймесін бассаңыз, <xliff:g id="SERVICE">%2$s</xliff:g> өз жұмысын тоқтатады."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өшіру"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Қосулы қалдыру"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> өшірілсін бе?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ешқандай қызметтер орнатылмаған"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ешқандай қызмет таңдалмаған"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Сипаттама ұсынылмаған"</string>
     <string name="settings_button" msgid="2195468788019730377">"Параметрлер"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"жарықсезгіштік, фотофобия, қараңғы режим, бас сақинасы ауруы, бас ауруы, оқу режимі, түнгі режим, жарықтықты азайту, ақ нүкте"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Оңай пайдалану, оңай кіру, көмек, көмекші"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"көру, есту, соқыр, саңырау, қозғалыс, ептілік, көмекші, көмек, оңай қолдану, оңай кіру, қол, көмек"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Терезені ұлғайтқыш, масштабтау, ұлғайту, нашар көру қабілеті, жақындату, үлкейту"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Жазулар, субтитрлер, субтитр, Live Transcribe, нашар есту қабілеті, есту қабілетінен айырылу, тікелей транскрипция, дауысты мәтінге айналдыру"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"түс конрасты"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"моторика, тінтуір"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"есту аппараттары, нашар есту, естімеу, кохлеар импланттары, күшейткіш құрылғылар, дыбыс процессорлары"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"қозғалыс, тінтуір, кәдімгі тінтуір, баспен басқарылатын тінтуір, адаптивті тінтуір, мүгедектер арбасы, джойстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"есту аппараттары, нашар есту, естімеу, кохлеар импланттары, күшейткіш құрылғылар, дыбыс процессорлары, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"нашар есту қабілеті, есту қабілетінен айырылу, жазулар, телетайп"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"үш түйме"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ептілік, қозғалыс, қарт адам, артрит, туннельдік нейропатия, инсульт, діріл, шашыраңқы склероз, орталықтан сал болу, қалтырау, қайталанбалы қозғалыс зақымы, қол"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"кідіріс, ептілік, қарт адам"</string>
     <string name="print_settings" msgid="8519810615863882491">"Басып шығару"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Өшірулі"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 баспа қызметі қосулы}other{# баспа қызметі қосулы}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Батарея зарядын ең көп шығындайтын қолданбаларды көріңіз."</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Батареяны қорғау үшін зарядтау оңтайландырылды"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Батареяның қызмет мерзімін ұзарту үшін зарядтау оңтайландырылады."</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Батареяны қорғау үшін зарядтау оңтайландырылды"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Құрылғы қондыру станциясында болғанда, батареяның қызмет мерзімін ұзарту үшін зарядтау оңтайландырылады."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Батареяны қорғау үшін зарядтау оңтайландырылды"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Құрылғы қондыру станциясында болғанда, батареяның қызмет мерзімін ұзарту үшін зарядтау оңтайландырылады."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Толық зарядтау"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Келесі жолы планшет қондыру станциясында тұрғанда, батареяны қорғау үшін зарядтау оңтайландырылады."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Зарядтауды кідірту туралы толық ақпарат алыңыз."</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Зарядтауды жалғастыру"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Қуатты көп пайдаланатын фондық әрекетті қамтиды."</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Алу"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Бас тарту"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Толық зарядтау"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Зарядтау құрылғысына қатысты мәселе туындады"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Үйлесімсіз зарядтау туралы толық ақпарат"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Батарея шығынын қадағалау"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Қолданбаларды автоматты түрде реттеу"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"қазір"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Батарея шығыны диаграммасы"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Күн бойынша көрсетілген батарея шығыны диаграммасы"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Сағат бойынша көрсетілген батарея шығыны диаграммасы"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Батарея деңгейінің пайызы: <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>–<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Соңғы рет толық зарядталғаннан бергі батарея шығыны"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Батарея шығыны: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Соңғы рет толық зарядталғаннан бергі пайдалану уақыты"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Төтенше жағдайда теру сигналы"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Төтенше қоңырау шалу әрекетін орнату"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Сақтық көшірме"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Қосулы"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Өшірулі"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Сақтық көшірме жасау және қалпына келтіру"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Жеке деректер"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Деректердің сақтық көшірмесін жасау"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Атауы"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tүрі"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Сервер мекенжайы"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP шифрлау (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP құпия"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec идентификаторы"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec алдын ала берілген кілті"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec пайдаланушы сертификаты"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA сертификаты"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec серверінің сертификаты"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Қосымша опцияларды көрсету"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS іздеу домендері"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS серверлері (мысалы, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Басқалай жіберу жолдары (мысалы, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Пайдаланушы аты"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Құпия сөз"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Аккаунт ақпаратын сақтау"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(қолданылмайды)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(серверді растамау)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(серверден алынды)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"VPN желісінің бұл түрі әрқашан қосылып тұра алмайды."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Әрқашан қосулы VPN желісі тек саннан тұратын сервер мекенжайларын қолдайды"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Әрқашан қосулы VPN желісі үшін DNS сервері көрсетілуі керек"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Әрқашан қосулы VPN желісі үшін DNS серверінің мекенжайлары саннан тұруы керек"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Енгізілген ақпарат әрқашан қосулы VPN желісін қолдамайды."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Бас тарту"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Жабу"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN желісінсіз байланыстарды бөгеу"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN байланысы қажет пе?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Қорғалмаған. Мынаған жаңартыңыз: IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Қолдау көрсетілмейтін VPN іске қосылмады."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Әрқашан жалғанып тұратын VPN профилін таңдаңыз. Желі трафигі осы VPN жалғанып тұрғанда ғана жүреді."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Жоқ"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Әрқашан қосулы ВЖЖ сервер және домен атауы жүйесінің IP мекенжайын қажет етеді."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER хабарландырулары"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Балаларды ұрлап кетулер туралы бюллетеньдерді алу"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Қайталау"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Қоңыраулар реттегішін қосу"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Осы қызметке қоңырауларды шалу әдісін басқаруға рұқсат ету."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Қоңыраулар реттегіші"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Төтенше жағдай туралы сымсыз хабарландырулар"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Желі операторлары"</string>
     <string name="access_point_names" msgid="5768430498022188057">"APN"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"төлеу, түрту, төлемдер"</string>
     <string name="keywords_backup" msgid="707735920706667685">"сақтық көшірме, сақтық көшірме жасау"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"қимыл"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"бет, құлыпты ашу, авторизация, кіру"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"бет, құлыпты ашу, аутентификация, жүйеге кіру, саусақ ізі, биометрика"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl нұсқасы, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Дыбыстарды қосу"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Автоматты субтитр қосу"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Телефон динамиктері"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Планшет динамиктері"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Құрылғы динамиктері"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Сымды құлақаспап"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Үйлесімді медиақұрылғылардан дыбыс барынша иммерсивті шығады."</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Өшірулі"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Соңғы әңгімелер өшірілді."</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Әңгіме өшірілді"</string>
     <string name="clear" msgid="5092178335409471100">"Өшіру"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Тазалау: <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Маңызды және өзгертілген әңгімелер осы жерде көрсетіледі"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Әңгімені маңызды деп белгілесеңіз немесе оған қандай да бір өзгерістер енгізсеңіз, ол осы жерде көрсетіледі. \n\nӘңгіме параметрлерін өзгерту үшін: \nэкранды жоғарғы жақтан сырғытып, ашылмалы панельді шығарасыз да, әңгімені басып тұрасыз."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Жию"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Өшірулі"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Қолданбаны бекіту"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Экранда бекітілген қолданба ғана көрсетіліп тұрады. Оны, мысалы, досыңыз құрылғыңызды бір ойын ойнау үшін сұрағанда қолдануға болады."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Қолданба бекітілген кезде, ол арқылы басқа қолданбаларды және жеке деректерді ашуға болады. \n\nҚолданбаны бекіту функциясын пайдалану үшін: 	\n1. Оны іске қосыңыз. 	\n2. \"Шолу\" мәзірін ашыңыз. 	\n3. Экранның жоғарғы жағындағы қолданба белгішесін, одан кейін \"Бекіту\" түймесін түртіңіз."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Қолданба бекітілген кезде, ол арқылы басқа қолданбаларды және жеке деректерді ашуға болады. \n\nЕгер құрылғыңызды біреумен қауіпсіз күйде бөліскіңіз келсе, қонақ профилін пайдаланыңыз. \n\nҚолданбаны бекіту функциясын пайдалану үшін: 	\n1. Оны іске қосыңыз. 	\n2. \"Шолу\" мәзірін ашыңыз. 	\n3. Экранның жоғарғы жағындағы қолданба белгішесін, одан кейін \"Бекіту\" түймесін түртіңіз."</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Қолданба пайдаланылмаса, оны басқарыңыз."</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Рұқсаттарды өшіру, уақытша файлдарды жою, хабарландыруларды тоқтату және қолданбаны мұрағаттау."</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Барлық қолданба"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Орнатылған қолданбалар"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Лезде қосылатын қолданбалар"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Бос"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Қолданбалар пайдаланатын жад"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Соңғы {time} ішінде 1 қолданба жад қолданды.}other{Соңғы {time} ішінде # қолданба жад қолданды.}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Жадтың қолданысын профильдеуді қосу"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Жадтың қолданысын профильдеу үшін қосымша жүйе ресурстары керек."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Жадтың қолданысын профильдеу өшірулі"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Жиілік"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Ең көп пайдалануы"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Деректер пайдаланылмаған."</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Басқа қолданбалардың үстінен көрсету"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Басқа қолданба үстінен көрсетуге рұқсат беру"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Бұл қолданбаның барлық ашық тұрған қолданбалардың үстінен шығуына рұқсат ету. Бұл қолданба сіздің қай жерді түрткеніңізді көреді және экрандағы контентті өзгерте алады."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Мультимедиа шығысын өзгерту"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Қолданбаға мультимедиа шығысын ауыстыруға рұқсат беру"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Осы қолданбаның жалғанған құрылғының қайсысы басқа қолданбалардан аудионы не бейнені ойната алатынын таңдауына рұқсат беріңіз. Егер рұқсат берсеңіз, қолданба құлақаспаптар мен динамиктер сияқты қолжетімді құрылғылар тізімін ашып, қай шығару құрылғысы аудионы не бейнені трансляциялауға пайдаланылатынын таңдай алады."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Барлық файлды пайдалану"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Дауыспен іске қосу функциясын жақсарту"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Бұл құрылғы дауыспен іске қосу үлгісін жақсарту үшін жеке ақпаратты пайдаланады. Қолданбалар көптеген пайдаланушыдан жиынтықталған деректерді алуы мүмкін, соның арқасында құпиялықты сақтай отырып, үлгіні барлығы үшін жақсартады.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Дерек шығыны туралы ескерту: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> дерек шегі орнатылған"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Дерек шығыны туралы ескерту: <xliff:g id="ID_1">^1</xliff:g> / Дерек шегі: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Оператордың деректер есебі құрылғының есебінен өзгеше болуы мүмкін."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Оператор желілері пайдаланған деректерді қамтымайды."</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> пайдаланылған"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Дерек шығыны туралы ескерту"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> бұрын жаңартылды"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Жаңа ғана <xliff:g id="ID_1">^1</xliff:g> арқылы жаңартылды"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Жаңа ғана жаңартылды"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Жоспарды көру"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Мәліметтерді көру"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Трафикті үнемдеу"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Шексіз мобильдік интернет"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Батерея шығынындағы ауытқу"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Жылдам параметрлердің әзірлеушілерге арналған бөлшектері"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb авторизациясынан автоматты бас тартуды өшіру"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Әдепкісінше белгіленген (7 күн) немесе пайдаланушы көрсеткен (ең кемі 1 күн) уақыт ішінде қайта қосылмаған жүйелер үшін adb авторизацияларынан автоматты түрде бас тартуды өшіреді."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope трассасы"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Датчиктер өшірулі"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Жұмыс профилінің параметрлері"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Жұмыс каталогіндегі контактілерді жеке қолданбаларда іздеу"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Автотолтыру қызметі"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Әдепкі автотолтыру қызметі"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Құпия сөздер"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Құпия сөздер, кіру кілттері мен дерек қызметтері"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Қосымша провайдерлер"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# құпия сөз}other{# құпия сөз}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"автоматты, толтыру, автотолтыру, құпия сөз"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"деректер, кіру кілті, құпия сөз"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"авто, толтыру, автотолтыру, дерек, кіру кілті, құпия сөз"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Құпия сөздер, кіру кілттері мен дерек қызметтері"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Барлық қызметті өшіріңіз?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Аккаунтқа кірген кезде, құпия сөздерді, кіру кілттері мен басқа да ақпаратты автотолтыру мүмкін болмай қалады."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Қалаулы қызметіңізді мына қолданбаға өзгертіңіз: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Жаңа құпия сөздер, кіру кілттері және басқа да ақпарат бұдан былай осы жерде сақталады. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; қолданбасы нені автотолтыруға болатынын анықтау үшін экраныңыздағы деректерді пайдалана алады."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s пайдаланылсын ба?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Тек 5 қызметті қосып қоюға болады"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Басқасын қосу үшін ең кемі 1 қызметті өшіріңіз."</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s экранда көрсетілгенді нені автоматты түрде толтыруға болатынын анықтау үшін пайдаланады."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Құпия сөздер, кіру кілттері мен дерек қызметтерінің саны шектеулі"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Бір мезгілде ең көбі 5 құпия сөз, кіру кілтін және дерек қызметін қосып қоя аласыз. Басқасын қосу үшін бір қызметті өшіріңіз."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Құпия сөздердің, кіру кілттері мен дерек қызметтерінің саны шектеулі"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Бір мезгілде ең көбі 5 құпия сөз, кіру кілтін және дерек қызметін қосып қоя аласыз. Басқасын қосу үшін бір қызметті өшіріңіз."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Өшіру"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Aвтотолтыру"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Тіркеу деңгейі"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Үйлесімділік параметрлері түзетілетін қолданбаларда ғана реттеледі. Түзетілетін қолданбаларды орнатып, әрекетті қайталап көріңіз."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Басқа параметрге тәуелді"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Аккаунт"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d аккаунт"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Құрылғы атауы"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Негізгі ақпарат"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Құқық және ережелер туралы ақпарат"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC белгісін сканерлегенде, бұл қолданбаның іске қосылуына рұқсат етіңіз.\nОсы рұқсат қосулы болса, қолданбаны белгі табылған кезде қосымша пайдалануға болады."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Мультимедианы келесіден ойнату:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> қолданбасын ойнату:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Аудио әрі қарай ойнатылады"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Осы құрылғы"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Қоңыраулар кезінде қолжетімді емес"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Қоңырауды қабылдау құрылғысы"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Дыбысын өшіру"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Қосу үшін алдымен \"Қуат түймесін басып тұру\" параметріне \"Қуат мәзірі\" мәнін орнатыңыз."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Желі мәліметі"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Құрылғыңыздың аты телефоныңыздағы қолданбаларға көрінеді. Сонымен қатар Bluetooth құрылғыларына қосылғанда, Wi-Fi желісіне қосылғанда немесе Wi-Fi хотспотын орнатқанда, басқа адамдарға көрінуі мүмкін."</string>
     <string name="devices_title" msgid="649715719278562515">"Құрылғылар"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Желі таңдау"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Ажыратылған"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Атауы"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Түс (үйлесімді қолданбада пайдаланылады)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Сақтау"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM картасын пайдалану"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Осы SIM картасын пайдалану"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Өшірулі"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"SIM картасын өшіру үшін оны алып тастаңыз."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> картасын іске қосу үшін түртіңіз."</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM картасын өшіру"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Таңдалған желі түрі"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Желі жұмысының режимін өзгерту"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Таңдалған желі түрі"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Бағасын желі провайдерінен біліңіз."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Қолданбаның дерек шығыны"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> желі режимі дұрыс емес. Мән бермеңіз."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Кіру нүктесінің атауы"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> операторына қосылып тұрғанда қолжетімді емес"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> қызметіне ауысу қажет пе?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM картасына ауысасыз ба?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> қолданылсын ба?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Бір уақытта тек бір SIM картасын пайдалануға болады.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> картасына ауыссаңыз да, <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> қызметінен бас тартылмайды."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Бір уақытта тек бір eSIM картасы жұмыс істейді.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> операторына ауысқаннан <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> қызметінен бас тартылмайды."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Бір уақытта тек бір SIM картасын пайдалануға болады. \n\nБасқа картаға ауыссаңыз да, <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> қызметінен бас тартылмайды."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Екі SIM картасын қатар қолдануға болады. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> операторын қолдану үшін басқа SIM картасын өшіріңіз."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> қызметіне ауысу"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> операторын өшіру"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Жоқ, рақмет"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Бас тарту"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Ауысу"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Өшіру"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM картасын іске қосу мүмкін емес"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM картасын қайтадан қосып көріңіз. Егер ақау жойылмаса, құрылғыны өшіріп қосыңыз."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM картасын реттеу"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Осы құрылғыда бірнеше SIM картасын пайдалану үшін мобильдік желі параметрлерін реттеңіз."</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM карталарын белгілеу"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Бұл белгілерді қоңырау шалғанда, мәтіндік хабарлар жібергенде және деректерді пайдаланған кезде, сондай-ақ \"Параметрлерде\" көресіз."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM картасының белгісі"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Белгі"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Пайдаланатын SIM картасын таңдау"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Енді 2 SIM картасын қатар қолдануға болады."</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Негізгі SIM карталарын орнату"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Қоңырауларға, мәтіндік хабарларға және деректерге әдепкісінше пайдаланылатын SIM карталарын таңдаңыз."</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Жеке SIM карталарыңыз"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Қоңыраулар"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Мәтіндік хабарлар"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Деректерді автоматты ауыстыру"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Қызмет аясына және байланыста болуына қарай қажетті SIM картасының деректерін пайдаланыңыз."</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Тек деректер"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Реттеу"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Келесі"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобильдік желі"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Телефон нөмірі"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM картасының белгісі және түсі"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Желіні іске қосу"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Операторды ауыстыру"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> қосулы"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Мобильдік интернетті, қоңырау шалу және SMS жіберу функцияларын пайдалану үшін желі параметрлеріне өтіңіз."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM картасы"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"eSIM картасы өшірілсін бе?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Бұл SIM картасының деректерін өшірсеңіз, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> қызметі бұл құрылғыдан жойылады.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> қызметінен бас тартылмайды."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Тазарту"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM картасы өшіріледі…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM картасының деректері өшірілмеді"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Қатеге байланысты бұл SIM картасының деректерін өшіру мүмкін емес.\n\nҚұрылғыны қайта қосып, әрекетті қайталаңыз."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Құрылғыға қосылу"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> қолданбасы құрылғыңызға қосылу үшін уақытша Wi‑Fi желісін пайдаланғысы келеді."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Ешбір құрылғы табылмады. Құрылғылардың қосулы екенін, оларды жалғауға болатынын тексеріңіз."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Құтқару қызметіне қоңырау шалу"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Wi‑Fi қоңыраулары арқылы жедел қызметке қоңырау шалуды операторыңыз қолдамайды.\nЖедел қызметке қоңырау шалу үшін құрылғы ұялы желіге автоматты түрде ауысады.\nТек мобильдік байланыс бар аймақтарда ғана жедел қызметке қоңырау шалуға болады."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Қоңыраудың сапасы жақсы болуы үшін, Wi‑Fi желісін пайдаланыңыз."</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Қосалқы қоңырау шалу"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Егер <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> қолжетімді болмаса немесе роуминг қосылса, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> қоңыраулары үшін SIM картаңыздың мобильдік интернетін пайдаланыңыз."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"қосалқы қоңырау шалу"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Кіріс MMS хабары"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS хабары жіберілмейді"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Мобильдік интернет өшірулі кезде, <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> операторында MMS қызметіне рұқсат ету үшін түртіңіз."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Жұмыс саясатыңыз туралы ақпарат"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"АТ әкімшісі басқаратын параметрлер"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16 КБ-тық бет өлшемімен жүктеу"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Құрылғыны 16 КБ-тық бет өлшемін қолдайтын ядро арқылы жүктеу"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16 КБ-тық беттермен үйлесімді ядромен өшіріп қосу керек пе?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ЕСКЕРТУ: кейбір қолданбалар бұл режиммен пайдалану үшін үйлесімді болмауы мүмкін. Құрылғы расталғаннан кейін өшіріп қосылады."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 КБ-тық беттермен үйлесімді ядромен өшіріп қосу керек пе?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Құрылғы расталғаннан кейін өшіріп қосылады."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ядро 16 КБ-тық беттермен үйлесімді ядроға жаңартылмады."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Өзгерту қолданылып жатыр"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Қате туралы есеп өңдеу құралы"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Құрылғыдағы қате туралы есепті жіберу үшін жылдам әрекетпен қандай қолданба ашылатынын анықтайды."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Жеке"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Ойнатуды оңай жалғастыру үшін медиа ойнатқыш \"Жылдам параметрлер\" мәзірінде ашық тұрады."</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Медиа ойнатқышты құлыптаулы экранда көрсету"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Ойнатуды оңай жалғастыру үшін медиа ойнатқыш құлыптаулы экранда ашық тұрады."</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Медиамазмұн ұсыныстарын көрсету"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant медиа ұсыныстарын көрсету"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Әрекеттеріңізге негізделген"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ойнатқышты жасыру"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Ойнатқышты көрсету"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM карталары"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Қосулы"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Өшірулі"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /<xliff:g id="ID_1">%1$s</xliff:g> үшін әдепкі"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"қоңыраулар"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Дыбыс үйлесімді медиақұрылғылардан иммерсивті болып шығады."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Бас қимылын қадағалау"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Басыңызды қозғалтқан кезде дыбыс өзгеріп, табиғи шығады."</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синхрондау рұқсаттары"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> құрылғысына <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> құрылғысындағыдай қолданба рұқсаттарын беру"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Рұқсаттарды телефоннан синхрондау"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Сағатыңызға осы телефонға берген қолданба рұқсаттарын беріңіз."</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Аудио құрылғы түрі"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Белгісіз"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Динамик"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Орташа"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Жоғары"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Бұл қолданбаны тек 1 терезеден ашуға болады."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Қосулы"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Өшірулі"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Өшірулі"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Өшірулі"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Қосулы"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Өшірулі"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Қосулы"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Өшірулі"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Жарық экрандарды қараңғы, ал қараңғы экрандарды жарық қылады."</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Экранда ұлғайту"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Өшірулі"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Өшірулі"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Қосулы"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Өшірулі"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Қосулы"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Құпия сөз орнатылды."</string>
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index e460e2f..7292a00 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"បន្ទាប់ពី 1 នាទី"</item>
     <item msgid="1574040255478150028">"បន្ទាប់ពី 5 នាទី"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 31c4a02..f1189e9 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"មានតែអ្នកប្រើប្រាស់​ដែលជាអ្នកគ្រប់គ្រងប៉ុណ្ណោះ ទើបអាចចូលប្រើការកំណត់អ្នក​អភិវឌ្ឍន៍បាន។"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ប្រព័ន្ធ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"កំពុងដំណើរការ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"មិនដំណើរការ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"អូសឡើងលើ ដើម្បីបន្ត"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"បត់ទូរសព្ទរបស់អ្នក រួចអូសឡើងនៅលើអេក្រង់មុខ ដើម្បីបន្តប្រើប្រាស់កម្មវិធី ឬរង់ចាំពីរបីវិនាទី ដើម្បីឱ្យអេក្រង់ចាក់សោ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ពាក់ព័ន្ធ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"សំឡេងរោទ៍ និងម៉ោងរោទ៍"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"សំឡេងពេលហៅទូរសព្ទ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"មេឌៀ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"សំឡេងការជូនដំណឹង និងសំឡេងផ្សេងទៀតរបស់ប្រព័ន្ធ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"សំឡេងមេឌៀ និងប្រព័ន្ធ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"ការ​ជូនដំណឹង"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"តាមលំនាំដើម កម្មវិធីនីមួយៗជាអ្នកកំណត់ឧបករណ៍បញ្ចេញសំឡេង"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"ឧបករណ៍​ប៊្លូធូស​គ្មាន​ឈ្មោះ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"ស្វែងរក"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"បាន​បើក​ប៊្លូធូស"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"មើលទាំងអស់"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"មើល​ទាំងអស់"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ប៊ិក"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ការចុចប៊ូតុងកន្ទុយ"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (កម្រងព័ត៌មានការងារ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"ភ្ជាប់ទៅកាន់ការចាក់សំឡេងលើអ៊ីនធឺណិត LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"ការចាក់សំឡេងលើអ៊ីនធឺណិតដែលនៅជិត"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ការចាក់សំឡេងលើអ៊ីនធឺណិត"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"ភ្ជាប់ទៅកាន់ការចាក់សំឡេងលើអ៊ីនធឺណិតដោយប្រើប្រាស់កូដ QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"រកមិនឃើញការចាក់សំឡេងលើអ៊ីនធឺណិតនៅជិតទេ។"</string>
     <string name="date_and_time" msgid="1788358029823431692">"កាលបរិច្ឆេទ និង ម៉ោង"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ប្រូកស៊ី"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"សម្អាត"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ដើម្បីជ្រើសរើស​ភាសាសម្រាប់​កម្មវិធីនីមួយៗ សូមចូលទៅកាន់​ការកំណត់ភាសាកម្មវិធី។"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ស្វែងយល់បន្ថែម​អំពីភាសាកម្មវិធី"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ផ្លាស់ប្ដូរ​ភាសាប្រព័ន្ធ​ទៅជាភាសា %s ឬ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"បញ្ចូល %s ទៅក្នុងភាសាដែលចង់ប្រើឬ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ការធ្វើបែនេះអាចឱ្យកម្មវិធី និងគេហទំព័រដឹងថា អ្នកក៏ចូលចិត្តភាសានេះដែរ។"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"ចំណូលចិត្តតាមតំបន់ និងការកំណត់ឧបករណ៍​របស់អ្នក​នឹងផ្លាស់ប្ដូរ។"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ផ្លាស់ប្ដូរ"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"មិនអាចប្រើភាសា %s បានទេ"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"សៅរ៍"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ប្រសិនបើកម្មវិធីមិនអាចប្រើចំណូលចិត្តតាមតំបន់បានទេ នោះកម្មវិធីនឹងប្រើការកំណត់ភាសាលំនាំដើមរបស់វា។"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ស្វែងយល់បន្ថែមអំពីចំណូលចិត្តភាសា។"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ចំណូលចិត្តបន្ថែម"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ពាក្យសម្រាប់ហៅ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"កំណត់របៀបដែលអ្នកចង់ឱ្យអ្នកផ្សេងហៅ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"កម្មវិធីអាចប្រើពាក្យសម្រាប់ហៅអ្នក ដើម្បីកំណត់ឱ្យមានលក្ខណៈផ្ទាល់ខ្លួននូវរបៀបដែលកម្មវិធីទាំងនោះហៅអ្នក។"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"មិនបានបញ្ជាក់"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ស្រី"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ប្រុស"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ធម្មតា"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{លុបភាសា​ដែលបានជ្រើសរើសចេញ​ឬ?}other{លុបភាសា​ដែលបានជ្រើសរើសចេញ​ឬ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"អត្ថបទនឹងត្រូវបានបង្ហាញជាភាសាផ្សេងទៀត។"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"មិនអាចយកភាសាទាំងអស់ចេញបានទេ"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ទី​តាំង​"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ប្រើទីតាំង"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"បិទ"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{បើក - កម្មវិធី # មានសិទ្ធិ​ចូលប្រើ​ទីតាំង}other{បើក - កម្មវិធី # មានសិទ្ធិ​ចូលប្រើ​ទីតាំង}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{បើក / កម្មវិធី # មានសិទ្ធិ​ចូលប្រើ​ទីតាំង}other{បើក / កម្មវិធី # មានសិទ្ធិ​ចូលប្រើ​ទីតាំង}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"កំពុងផ្ទុក…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"កម្មវិធីដែលមានការអនុញ្ញាត​ឱ្យប្រើឧបករណ៍នៅជិត​អាចកំណត់​ចម្ងាយពាក់ព័ន្ធ​នៃឧបករណ៍​ដែលបានភ្ជាប់។"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ការចូលប្រើ​ទីតាំងត្រូវបានបិទ​សម្រាប់​កម្មវិធី និងសេវាកម្ម។ ទីតាំងឧបករណ៍របស់អ្នកនៅតែអាចត្រូវបានផ្ញើទៅអ្នកសង្គ្រោះបន្ទាន់ដដែល នៅពេលដែលអ្នកហៅទូរសព្ទ ឬផ្ញើសារជាអក្សរទៅលេខសង្គ្រោះបន្ទាន់។"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ស្វែងយល់បន្ថែម​អំពី​ការកំណត់​ទីតាំង​។"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ស្វែងយល់បន្ថែម​អំពី​ការកំណត់​ទីតាំង"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ដើម្បីផ្លាស់ប្ដូរសិទ្ធិចូលប្រើទីតាំង សូមចូលទៅកាន់ការកំណត់ &gt; សុវត្ថិភាព និងឯកជនភាព &gt; ការគ្រប់គ្រងឯកជនភាព"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ដើម្បីទទួលបាន​លទ្ធផល​ល្អបំផុត សូមប្រើកញ្ចក់​ការពារ​អេក្រង់​ដែលបានទទួលស្គាល់​ពី Made for Google។ តាមរយៈ​កញ្ចក់​ការពារ​អេក្រង់ផ្សេងទៀត ស្នាមម្រាមដៃរបស់អ្នកអាចមិនដំណើរការ។"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ការដោះសោដោយប្រើនាឡិកា"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"នៅពេល​អ្នករៀបចំ​ការដោះសោ​តាមទម្រង់មុខ និងការដោះសោ​ដោយប្រើ​ស្នាមម្រាមដៃ ទូរសព្ទ​របស់អ្នក​នឹងសួររក​ស្នាមម្រាមដៃ​របស់អ្នក នៅពេល​អ្នកពាក់ម៉ាស់ ឬស្ថិតនៅក្នុង​ទីងងឹត។\n\nអ្នកអាចដោះសោ​ដោយប្រើនាឡិការបស់អ្នកបាន នៅពេលមិនស្គាល់​ស្នាមម្រាមដៃ ឬមុខរបស់អ្នក។"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"អ្នកអាចដោះសោ​ដោយប្រើនាឡិកា​របស់អ្នកបាន នៅពេលមិនស្គាល់​ស្នាមម្រាមដៃរបស់អ្នក។"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"អ្នកអាចដោះសោ​ដោយប្រើនាឡិកា​របស់អ្នកបាន នៅពេលមិនស្គាល់មុខ​របស់អ្នក។"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"នៅពេល​អ្នករៀបចំ​ការដោះ​សោ​ដោយស្កេន​មុខ និងការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ ទូរសព្ទ​របស់អ្នក​នឹងសួររក​ស្នាមម្រាមដៃ​របស់អ្នក នៅពេល​អ្នកពាក់ម៉ាស់ ឬស្ថិតក្នុង​ទីងងឹត។\n\nការដោះសោដោយប្រើនាឡិកាគឺ​ជាវិធីងាយស្រួលមួយទៀត​ក្នុងការដោះសោទូរសព្ទរបស់អ្នក ឧទាហរណ៍ នៅពេលម្រាមដៃ​របស់អ្នកសើម ឬមិនស្គាល់មុខ។"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ការដោះសោដោយប្រើនាឡិកាគឺ​ជាវិធីងាយស្រួលមួយទៀត​ក្នុងការដោះសោទូរសព្ទរបស់អ្នក ឧទាហរណ៍ នៅពេលមិនស្គាល់ស្នាមម្រាមដៃរបស់អ្នក។"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ការដោះសោដោយប្រើនាឡិកាគឺ​ជាវិធីងាយស្រួលមួយទៀត​ក្នុងការដោះសោទូរសព្ទរបស់អ្នក ឧទាហរណ៍ នៅពេលមិនស្គាល់មុខរបស់អ្នក។"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ប្រើស្នាមម្រាមដៃ ឬនាឡិកា ដើម្បី"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ប្រើមុខ ឬនាឡិកា ដើម្បី"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ប្រើមុខ ស្នាមម្រាមដៃ ឬនាឡិកា ដើម្បី"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"បានបញ្ចូលមុខ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ការដោះសោពីចម្ងាយតាមកម្មវិធីផ្ទៀងផ្ទាត់"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"បានបញ្ចូលនាឡិកាហើយ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"រៀបចំនាឡិការបស់អ្នក"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"របៀបដែលវាដំណើរការ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ត្រូវតែដោះសោនាឡិការបស់អ្នកនៅលើកដៃរបស់អ្នក និងក្នុងចម្ងាយដែលអាចឈោងដៃដល់ទូរសព្ទនេះ។ អ្នកនឹងមិនចាំបាច់ដោះសោនាឡិការបស់អ្នកម្តងទៀតទេ នៅពេលនាឡិកានោះស្ថិតនៅលើកដៃរបស់អ្នក។"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"នៅពេលដែលទូរសព្ទនេះត្រូវបានដោះសោ អ្នកនឹងទទួលបានការជូនដំណឹងនៅលើនាឡិការបស់អ្នក។ ប្រសិនបើវាត្រូវបានដោះសោ នៅពេលអ្នកមិនមានបំណងទេ សូមចុចការជូនដំណឹង ដើម្បីចាក់សោទូរសព្ទម្ដងទៀត។"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ការគ្រប់គ្រង​ស្ថិតក្នុង​ដៃអ្នក"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"អ្នកអាចដកនាឡិការបស់អ្នកចេញពីមុខងារដោះសោដោយប្រើនាឡិកាបានគ្រប់ពេលនៅក្នុងការកំណត់"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ចុចការជូនដំណឹង"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"អូសឡើងលើនៅលើអេក្រង់ចាក់សោ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ជ្រើសរើស​នាឡិកា​របស់អ្នក"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"នាឡិកា​ដែលអាច​ភ្ជាប់បាន"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"បោះបង់"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"បញ្ជាក់"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"រួចរាល់​អស់ហើយ!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ឥឡូវនេះ អ្នកអាចប្រើ​នាឡិការបស់អ្នក ដើម្បីដោះសោ​ទូរសព្ទនេះ នៅពេលអ្នកអូសឡើងលើ​នៅលើអេក្រង់ចាក់សោ ឬចុចការជូនដំណឹង"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"រួចរាល់"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ការដោះសោដោយប្រើនាឡិកា"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"អ្នកអាចប្រើ​នាឡិការបស់អ្នក ដើម្បីដោះសោ​ទូរសព្ទនេះ នៅពេលអ្នកអូសឡើងលើ​នៅលើអេក្រង់ចាក់សោ ឬចុចការជូនដំណឹង"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ដើម្បីប្រើការដោះសោដោយប្រើនាឡិកា ត្រូវតែដោះសោនាឡិការបស់អ្នកនៅលើកដៃរបស់អ្នក ក្នុងចម្ងាយដែលអាចឈោងដៃដល់ និងភ្ជាប់ទៅទូរសព្ទនេះ។ ប្រសិនបើការតភ្ជាប់ត្រូវបានរំខាន អ្នកនឹងត្រូវដោះសោទូរសព្ទ មុនពេលអ្នកអាចប្រើ​ការដោះសោដោយប្រើនាឡិកា។\n\nសូមចងចាំថា៖\nអ្នកអាចរៀបចំនាឡិកាមួយ​ក្នុងមួយលើកតែប៉ុណ្ណោះ។ ដើម្បីបញ្ចូលនាឡិកាផ្សេងទៀត សូមដកនាឡិកាបច្ចុប្បន្នចេញជាមុនសិន។"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ស្វែងយល់បន្ថែមអំពីការដោះសោដោយប្រើនាឡិកា"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"បញ្ចូលនាឡិកា"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ដកនាឡិកាចេញ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ការដោះ​សោ​ដោយស្កេន​មុខ និងស្នាមម្រាមដៃ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ការដោះសោដោយស្កេន​ស្នាមម្រាមដៃ និងមុខ​សម្រាប់ការងារ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ត្រូវការរៀបចំ"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"សុវត្ថិភាព"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ឯកជនភាព"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"កម្រងព័ត៌មានការងារ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"បន្ទប់​ឯកជន"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"រក្សាកម្មវិធីឯកជនឱ្យនៅជាប់សោ និងលាក់"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"រក្សាកម្មវិធីឯកជនក្នុងបន្ទប់ដាច់ដោយឡែកដែលអ្នកអាចលាក់ ឬចាក់សោបាន"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ការចាក់សោ Private Space"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"អ្នកអាចដោះសោ Private Space តាមវិធីដូចគ្នាដែលអ្នកដោះសោឧបករណ៍របស់អ្នក ឬជ្រើសរើសការចាក់សោផ្សេង"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ប្រើការចាក់សោអេក្រង់ឧបករណ៍"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ និងមុខ"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃ"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ការដោះ​សោ​ដោយស្កេន​មុខ"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ចុច​ដើម្បី​រៀបចំ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ការដោះសោ​ដោយស្កេន​ស្នាមម្រាមដៃសម្រាប់លំហឯកជន"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ការដោះ​សោ​ដោយស្កេន​មុខសម្រាប់លំហឯកជន"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"វិធី​ដោះសោ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ដូចគ្នានឹងការចាក់សោអេក្រង់ឧបករណ៍"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ជ្រើសរើសការចាក់សោថ្មីសម្រាប់ Private Space ឬ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ចាក់សោដោយស្វ័យប្រវត្តិ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ចាក់សោលំហឯកជនដោយស្វ័យប្រវត្តិ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"អ្នកអាចចាក់សោលំហឯកជនរបស់អ្នកដោយស្វ័យប្រវត្តិ ប្រសិនបើអ្នកមិនបានប្រើឧបករណ៍របស់អ្នកមួយរយៈ"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"រាល់ពេលឧបកណ៍ចាក់សោ"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"ក្រោយពេលអសកម្ម 5 នាទី"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"កុំឱ្យសោះ"</string>
+    <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_delete_title" msgid="3075645119800272800">"លុបបន្ទប់ឯកជន"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"បានលុបបន្ទប់ឯកជនដោយជោគជ័យ"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"មិនអាចលុបបន្ទប់ឯកជនបានទេ"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"បានដោះសោលំហឯកជន"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"កំណត់​ការចាក់​សោអេក្រង់"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ដើម្បីប្រើបន្ទប់ឯកជនរបស់អ្នក សូមកំណត់ការចាក់សោអេក្រង់នៅលើឧបករណ៍នេះ"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"កំណត់​ការចាក់​សោ​អេក្រង់"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"បោះបង់"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"បោះបង់"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"រៀបចំ"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"រៀបចំបន្ទប់ឯកជន"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"រក្សាកម្មវិធីឯកជនក្នុងបន្ទប់ដាច់ដោយឡែកដែលអ្នកអាចលាក់ ឬចាក់សោបាន"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"របៀបដែលវាដំណើរការ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"អ្នកអាចចូលប្រើប្រាស់បន្ទប់ឯកជនរបស់អ្នកពីផ្នែកខាងក្រោមនៃបញ្ជីកម្មវិធីរបស់អ្នក"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"កម្មវិធីនៅក្នុងបន្ទប់ឯកជនរបស់អ្នកត្រូវបានការពារដោយការចាក់សោ"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ការជូនដំណឹងពីកម្មវិធីនៅក្នុងបន្ទប់ឯកជនរបស់អ្នកត្រូវបានលាក់ នៅពេលបន្ទប់នេះត្រូវបានចាក់សោ"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"កម្មវិធីនៅក្នុងបន្ទប់ឯកជនរបស់អ្នកនឹងមិនបង្ហាញនៅក្នុងមុខងារគ្រប់គ្រងការអនុញ្ញាត ផ្ទាំងគ្រប់គ្រងឯកជនភាព និងការកំណត់ផ្សេងទៀតទេ នៅពេលបន្ទប់ឯកជនរបស់អ្នកត្រូវបានចាក់សោ។\n\nមិនអាចផ្លាស់ទីបន្ទប់ឯកជនរបស់អ្នកទៅឧបករណ៍ថ្មីបានទេ។ អ្នកនឹងត្រូវរៀបចំបន្ទប់ឯកជនមួយទៀត ប្រសិនបើអ្នកចង់ប្រើវាលើឧបករណ៍មួយទៀត។\n\nគ្រប់គ្នាដែលភ្ជាប់ឧបករណ៍របស់អ្នកទៅនឹងកុំព្យូទ័រ ឬដំឡើងកម្មវិធីគ្រោះថ្នាក់នៅលើឧបករណ៍របស់អ្នក ប្រហែលអាចចូលប្រើប្រាស់បន្ទប់ឯកជនរបស់អ្នកបាន។"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"កំពុងរៀបចំបន្ទប់ឯកជន…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ការជូនដំណឹងពីកម្មវិធីនៅក្នុងបន្ទប់ឯកជនត្រូវបានលាក់ នៅពេលបន្ទប់នេះត្រូវបានចាក់សោ"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ដោះសោលំហឯកជន ដើម្បីចែករំលែករូបថត ឬឯកសារពីកម្មវិធីលំហឯកជន"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"កម្មវិធីមួយចំនួនត្រូវបានដំឡើងរួចហើយនៅក្នុងបន្ទប់ឯកជនរបស់អ្នក"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"មិនអាចរៀបចំបន្ទប់ឯកជនបានទេ"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ព្យាយាមម្ដងទៀត"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ប្រើមុខងារចាក់សោអេក្រង់ ដើម្បីដោះសោបន្ទប់ឯកជនឬ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"អ្នកអាចដោះសោបន្ទប់ឯកជនរបស់អ្នកតាមវិធីតែមួយដែលអ្នកប្រើសម្រាប់ដោះសោឧបករណ៍របស់អ្នក ឬជ្រើសរើសការចាក់សោផ្សេង"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ប្រើ​ការ​ចាក់​សោ​អេក្រង់"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"ជ្រើសរើសការចាក់សោថ្មី"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"រួចហើយ!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"ដើម្បីចូលប្រើប្រាស់បន្ទប់ឯកជនរបស់អ្នក សូមចូលទៅកាន់បញ្ជីកម្មវិធីរបស់អ្នក រួចរំកិលចុះ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"រួចរាល់"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"រំកិលចុះ ដើម្បីរកបន្ទប់ឯកជន"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ជ្រើសរើសការចាក់សោសម្រាប់បន្ទប់ឯកជនរបស់អ្នក"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"អ្នកអាចដោះសោបន្ទប់ឯកជនរបស់អ្នកដោយប្រើស្នាមម្រាមដៃរបស់អ្នក។ ដើម្បី​សុវត្ថិភាព ជម្រើសនេះ​តម្រូវឱ្យមាន​ការចាក់សោការបម្រុងទុក។"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"កំណត់កូដ PIN សម្រាប់លំហឯកជនរបស់អ្នក"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"កំណត់ពាក្យសម្ងាត់សម្រាប់លំហឯកជនរបស់អ្នក"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"កំណត់លំនាំសម្រាប់លំហឯកជនរបស់អ្នក"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ដើម្បីបង្ហាញ Private Space (មិនមែនជា UX ចុងក្រោយទេ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"បើកកម្មវិធីការកំណត់"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ចុចលើសុវត្ថិភាព និងឯកជនភាព &gt; Private Space &gt; លាក់ Private Space នៅពេលជាប់សោ"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"បិទ \"លាក់ Private Space\" នៅពេលប៊ូតុងបិទ/បើកជាប់សោ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"កំណត់ចំណាំចំពោះបុគ្គលិក Google៖ ការអភិវឌ្ឍមុខងារនេះកំពុងដំណើរការ​នៅឡើយ"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"អ្នក​ក៏​អាច​ត្រូវ​បញ្ចូល​លេខ​កូដ​នេះ​លើ​ឧបករណ៍​ផ្សេង។"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"បញ្ជាក់ ដើម្បីផ្គូផ្គងជាមួយសំណុំដែលបានសម្របសម្រួល"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ផ្ដល់​សិទ្ធិ​អនុញ្ញាត​ចូល​ប្រើ​ទំនាក់ទំនង​ និង​ប្រវត្តិ​ហៅ​ទូរសព្ទ​របស់អ្នក"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"អនុញ្ញាតឱ្យចូលប្រើប្រាស់ប្រវត្តិហៅទូរសព្ទ និងទំនាក់ទំនងផងដែរ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ព័ត៌មាននឹងត្រូវបានប្រើសម្រាប់ការប្រកាសអំពីការហៅទូរសព្ទ និងអ្វីៗជាច្រើនទៀត"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"មិន​អាច​តភ្ជាប់​ទៅ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ។"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ឧបករណ៍​ដែល​អាច​ភ្ជាប់បាន"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ពេល​ជិះ​យន្ត"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ជូនដំណឹង​សម្រាប់​បណ្ដាញសាធារណៈ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ជូនដំណឹងនៅពេលមានបណ្តាញសាធារណៈគុណភាពខ្ពស់"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"អនុញ្ញាតបណ្ដាញ WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP គឺជាប្រូតូកូលសុវត្ថិភាពចាស់ ដែលមិនសូវមានសុវត្ថិភាព"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"ក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នកមិនអនុញ្ញាតបណ្ដាញ WEP ទេ ដោយសារបណ្ដាញទាំងនោះមិនសូវមានសុវត្ថិភាព"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"បើក Wi‑Fi ដោយស្វ័យប្រវត្តិ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi នឹងបើកឡើងវិញនៅក្បែរបណ្តាញដែលមានគុណភាពខ្ពស់ដែលបានរក្សាទុក ដូចជាបណ្តាញ​នៅ​ផ្ទះ​របស់អ្នក"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"មិន​អាច​ប្រើ​បាន​ទេ ​ពីព្រោះ​ទីតាំង​បាន​បិទ។ សូម​បើក"<annotation id="link">"ទីតាំង"</annotation>"។"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ការ​ស្កេន Wi‑Fi អនុញ្ញាត​ឱ្យ​កម្មវិធី និងសេវាកម្ម​ធ្វើ​ការ​ស្កេនរក​បណ្ដាញ Wi‑Fi បាន​គ្រប់ពេល ទោះបីជា Wi‑Fi ​បិទក៏ដោយ។ សកម្មភាព​នេះ​អាច​ត្រូវ​បាន​ប្រើ ដើម្បី​កែលម្អ​មុខងារ និងសេវាកម្មនានា​ដែល​ផ្អែក​លើ​ទីតាំង​ជាដើម។"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"បើក"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"បានបើក​ការស្កេន Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"បណ្ដាញនេះប្រើប្រូតូកូលសុវត្ថិភាពចាស់ ដែលមិនសូវមានសុវត្ថិភាព"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ត្រូវបាន​ទប់ស្កាត់"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"បណ្ដាញនេះប្រើប្រូតូកូលសុវត្ថិភាពចាស់ដែលមានឈ្មោះថា WEP ដែលមិនសូវមានសុវត្ថិភាព។ ទោះជាយ៉ាងណា ដើម្បីភ្ជាប់ អ្នកអាចអនុញ្ញាតបណ្ដាញ WEP។"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នកមិនអនុញ្ញាតឱ្យអ្នកភ្ជាប់ទៅបណ្ដាញនេះទេ ដោយសារវាប្រើប្រូតូកូលសុវត្ថិភាពចាស់ ដែលមិនសូវមានសុវត្ថិភាព"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"អនុញ្ញាត WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"បិទ"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"ជម្រើស​កម្រិត​ខ្ពស់"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ជម្រើស​កម្រិតខ្ពស់​នៃបញ្ជីធ្លាក់ចុះ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ពង្រីក"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"បន្តប្រើ Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"កុំ​បង្ហាញ​ម្ដង​ទៀត"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"តភ្ជាប់"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"បានបើក Wi‑Fi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"បានភ្ជាប់ជាមួយ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"កំពុងភ្ជាប់ទៅ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"កំពុងភ្ជាប់…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"បាន​បរាជ័យ​ក្នុង​ការ​តភ្ជាប់​បណ្ដាញ"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"បណ្ដាញ​មិន​មានសេវា​ទេ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"បំភ្លេច"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"កែសម្រួល"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"បាន​បរាជ័យ​ក្នុង​បំភ្លេច​បណ្ដាញ"</string>
     <string name="wifi_save" msgid="2312643132472226807">"រក្សាទុក"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"បាន​បរាជ័យ​ក្នុង​ការ​រក្សាទុក​បណ្ដាញ"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"បោះ​បង់​"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ទិន្នន័យ​ទូរសព្ទចល័ត"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"អ៊ីសឺរណិត"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ កំពុង​សាក​ថ្ម"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ កំពុង​សាក​ថ្ម"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ការតភ្ជាប់​ហតស្ប៉ត"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"កម្លាំង​តភ្ជាប់"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"បណ្ដាញ​ដែលបាន​រក្សាទុក"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"មិនមានការកំណត់ពាក្យសម្ងាត់​ទេ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ឈ្មោះ​ហតស្ប៉ត"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ពាក្យសម្ងាត់​ហតស្ប៉ត"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"កម្រិតបញ្ជូន AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"បិទ​ហតស្ប៉ត​ដោយ​ស្វ័យប្រវត្តិ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"នៅពេល​ដែលគ្មាន​ការភ្ជាប់ឧបករណ៍"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"បង្កើនភាពត្រូវគ្នា"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"បិទអត្រាហ្វ្រេមលំនាំដើមសម្រាប់ហ្គេម"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"បិទការដាក់កំហិតអត្រាហ្វ្រេមអតិបរមាសម្រាប់ហ្គេមនៅ <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz។"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"អេក្រង់រលូន"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"មុខងារដឹងថាកំពុងនៅប្រើ​\" ប្រើ​កាមេរ៉ា​ខាងមុខ ដើម្បី​មើល​ថាតើមាន​នរណាម្នាក់​កំពុង​មើល​អេក្រង់​ឬអត់។ វា​ដំណើរការ​នៅលើ​ឧបករណ៍ ហើយ​រូបភាព​មិនត្រូវបាន​រក្សាទុក ឬផ្ញើទៅ Google នោះទេ។"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"បើក​ការដឹងថា​កំពុងនៅប្រើ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"បន្ត​បើក​អេក្រង់ នៅពេល​មើល​វា"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"រយៈពេលទម្រាំអេក្រង់បិទកាន់តែយូរនឹងប្រើថ្មកាន់តែច្រើន។"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"កាមេរ៉ា​ត្រូវបាន​ចាក់សោ"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ត្រូវតែដោះសោ​កាមេរ៉ា​សម្រាប់​ការសម្គាល់មុខ"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ត្រូវតែ​ដោះសោ​កាមេរ៉ាសម្រាប់​ការដឹងថា​កំពុងនៅប្រើ"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (រន្ធស៊ីម <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (រន្ធស៊ីម <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ចម្បង)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"ដើម្បីមើល សូមជ្រើសរើស​បណ្តាញដែលបាន​រក្សាទុក"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"កំណែ PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"កម្រិត​ថ្ម"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"ទូទៅ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"ការកំណត់ទូទៅ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"រក្សាទុក"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"បោះបង់"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"វាល​ឈ្មោះ​មិន​អាច​ទទេ។"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN មិន​អាច​ទទេ។"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"វាល MCC ត្រូវ​តែ​មាន​ ៣ តួ។"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"វាល MNC ត្រូវ​តែ​មាន​ពីរ ឬ​បី​តួលេខ។"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"ក្រុមហ៊ុនបម្រើសេវាទូរសព្ទមិនអនុញ្ញាតឲ្យបញ្ចូល APN ប្រភេទ %s ទេ។"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"កន្លែងបញ្ចូល MMSC ត្រូវតែត្រឹមត្រូវ។"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ស្ដារ​ការ​កំណត់ APN លំនាំដើម​ឡើងវិញ។"</string>
     <string name="menu_restore" msgid="4310539620115151551">"កំណត់​ទៅ​លំនាំដើម​ឡើងវិញ"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"បាន​បញ្ចប់ការប្ដូរ​ការ​កំណត់ APN ទៅលំនាំដើមវិញហើយ។"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"កំណត់​ឡើងវិញ"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ប៊្លូធូស និង Wi-Fi ត្រូវបានកំណត់ឡើងវិញ"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"លុប eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"សកម្មភាពនេះ​នឹងមិនបោះបង់​គម្រោង​សេវាទូរសព្ទចល័ត​ណាមួយឡើយ។ ដើម្បី​ទាញយក​ស៊ីមជំនួស សូម​ទាក់ទង​ក្រុមហ៊ុន​សេវាទូរសព្ទរបស់​អ្នក។"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"កំណត់ការកំណត់ឡើងវិញ"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"កំណត់ការកំណត់​បណ្ដាញ​ទាំងអស់​ឡើងវិញ? អ្នកមិន​អាចត្រឡប់​សកម្មភាពនេះ​វិញបានទេ។"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"កំណត់ការកំណត់បណ្តាញទាំងអស់ឡើងវិញ និងលុប eSIMឬ? អ្នកមិន​អាចត្រឡប់​សកម្មភាពនេះ​វិញបានទេ។"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"កំណត់ឡើងវិញ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ការកំណត់បណ្តាញឡើងវិញមិនមានសម្រាប់អ្នកប្រើនេះទេ"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"បានកំណត់ការកំណត់បណ្តាញឡើងវិញ"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"មិន​អាចលុប​ស៊ីម​បានទេ"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"មិនអាចលុប eSIM នេះ​បានទេ​ ដោយសារមាន​បញ្ហា។\n\nសូមចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នក​ឡើងវិញ​ រួច​ព្យាយាម​ម្ដងទៀត។"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"លុបទិន្នន័យទាំងអស់ (កំណត់ដូច​ចេញពីរោងចក្រ)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"លុបទិន្នន័យទាំងអស់ (កំណត់ដូច​ចេញពីរោងចក្រ)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"តន្ត្រី"</li>\n<li>"រូបថត"</li>\n<li>"ទិន្នន័យ​អ្នក​ប្រើ​ប្រាស់ផ្សេង​ទៀត"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"សកម្មភាពនេះ​នឹងមិនលុបចោលគម្រោង​សេវាកម្មឧបករណ៍ចល័ត​របស់អ្នកទេ។"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ព័ត៌មាន​ផ្ទាល់ខ្លួន និងកម្មវិធី​ដែលបានទាញយក​ទាំងអស់​របស់អ្នកនឹងត្រូវបានលុបចេញ។ អ្នកមិន​អាចត្រឡប់​សកម្មភាពនេះ​វិញបានទេ។"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ព័ត៌មាន​ផ្ទាល់ខ្លួន​ទាំងអស់​របស់អ្នក រួម​ទាំង​ស៊ីម និងកម្មវិធី​ដែលបាន​ទាញយកនឹងត្រូវបានលុបចេញ។ អ្នកមិន​អាចត្រឡប់​សកម្មភាពនេះ​វិញបានទេ។"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"លុប​ទិន្នន័យ​ទាំង​អស់ឬ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ការកំណត់​ដូចចេញពី​រោងចក្រ​មិនអាចប្រើបាន​សម្រាប់​អ្នកប្រើប្រាស់​នេះទេ"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"កំពុងលុប"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ហតស្ប៉ត, USB, ប៊្លូធូស, អ៊ីសឺរណិត"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"មិនកំពុង​ចែករំលែក​អ៊ីនធឺណិត​ជាមួយ​ឧបករណ៍​ផ្សេងទៀត​នោះទេ"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"បិទ"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ការ​ភ្ជាប់"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"កុំប្រើ​ហតស្ប៉ត Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ USB តែប៉ុណ្ណោះ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ​ប៊្លូធូស​តែប៉ុណ្ណោះ"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ​អ៊ីសឺរណិត​តែប៉ុណ្ណោះ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ USB និង​ប៊្លូធូស​តែប៉ុណ្ណោះ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ USB និង​អ៊ីសឺរណិត​តែប៉ុណ្ណោះ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ​ប៊្លូធូស និងអ៊ីសឺរណិត​តែប៉ុណ្ណោះ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"ចែករំលែក​អ៊ីនធឺណិត​តាមរយៈ USB, ប៊្លូធូស និងអ៊ីសឺរណិត​តែប៉ុណ្ណោះ"</string>
-    <string name="usb_title" msgid="1157283449840612901">"យូអេសប៊ី"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"ការ​ភ្ជាប់​តាម USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ការ​ភ្ជាប់​តាមប៊្លូធូស"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ការ​ភ្ជាប់អ៊ីសឺរណិត"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ប្រើ​ហតស្ប៉ត និង​ការភ្ជាប់ ដើម្បី​ផ្តល់​អ៊ីនធឺណិត​ដល់​ឧបករណ៍​ផ្សេងទៀត​តាមរយៈ​ការតភ្ជាប់ Wi-Fi ឬ​ទិន្នន័យ​ទូរសព្ទ​ចល័ត​របស់​អ្នក។ កម្មវិធី​ក៏​អាច​បង្កើត​ហតស្ប៉ត ដើម្បី​ចែករំលែក​ខ្លឹមសារ​ជាមួយ​ឧបករណ៍​ដែល​នៅជិត​បាន​ផងដែរ។"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ជំនួយ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"បណ្ដាញទូរសព្ទចល័ត"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ផែនការ​ទិន្នន័យ​ចល័ត"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"កម្មវិធីផ្ញើសារ SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"ប្ដូរ​កម្មវិធី​សារ SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួស​ឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ជា​កម្មវិធី​សារ SMS របស់​អ្នក?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ប្ដូរ​ជំនួយការ​វ៉ាយហ្វាយ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ប្រើ <xliff:g id="NEW_APP">%1$s</xliff:g> ជំនួស​ឲ្យ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ដើម្បី​គ្រប់គ្រង​ការ​ភ្ជាប់​បណ្ដាញ​របស់​អ្នក?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ប្រើ <xliff:g id="NEW_APP">%s</xliff:g> ដើម្បី​គ្រប់គ្រង​ការ​ភ្ជាប់​បណ្ដាញ​របស់​អ្នក?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"មិន​ស្គាល់​ប្រតិបត្តិ​ករ​ស៊ីមកាត"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> មិនមានគេហទំព័រសម្រាប់ផ្តល់សិទ្ធិចូលប្រើដែលស្គាល់នោះទេ"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"សូម​បញ្ចូល​ស៊ីមកាត និង​ចាប់ផ្ដើម​ឡើង​វិញ"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"សូម​ភ្ជាប់​អ៊ីនធឺណិត"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"សំណើ​ទីតាំង​ថ្មី"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ទីតាំងសម្រាប់កម្រងព័ត៌មានការងារ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ការអនុញ្ញាតទីតាំងកម្មវិធី"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ជម្រះការចូលដំណើរការ"</string>
     <string name="controls_label" msgid="8671492254263626383">"ពិនិត្យ"</string>
     <string name="force_stop" msgid="2681771622136916280">"បង្ខំ​ឲ្យ​បញ្ឈប់"</string>
+    <string name="archive" msgid="9074663845068632127">"ទុក​ក្នុង​បណ្ណសារ"</string>
+    <string name="restore" msgid="7622486640713967157">"ស្ដារ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"សរុប"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ទំហំកម្មវិធី"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"កម្មវិធី​ឧបករណ៍​ផ្ទុក​យូអេសប៊ី"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"មិន​អាច​គណនា​ទំហំ​កញ្ចប់។"</string>
     <string name="version_text" msgid="7628938665256107608">"កំណែ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ផ្លាស់ទី"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ការទុកក្នុងបណ្ណសារមិនបានសម្រេចទេ"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"បាន​ទុក <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ក្នុង​បណ្ណសារ"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ការស្ដារមិនបានសម្រេច"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"កំពុងស្ដារ \"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\""</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ការផ្លាស់ទីផ្សេងទៀតស្ថិតក្នុងដំណើរការរួចទៅហើយ។"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ទំហំ​ផ្ទុក​មិន​គ្រប់គ្រាន់។"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"មិន​មាន​កម្មវិធី។"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ក្ដារចុចលើអេក្រង់​ដែលអាចប្រើបាន"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"គ្រប់គ្រង​ក្ដារចុច​លើអេក្រង់"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ជម្រើស"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ភាពងាយស្រួល"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ក្ដារចុច​រូបវ័ន្ត"</string>
     <string name="show_ime" msgid="4334255501724746849">"ប្រើក្ដារចុច​លើអេក្រង់"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"រក្សា​នៅលើអេក្រង់ ពេលក្តារចុចរូបវ័ន្តកំពុងធ្វើ​​ប្រតិបត្តិការ"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"គ្រាប់ចុចលោត"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"បើកគ្រាប់ចុចលោត ដើម្បីងាយស្រួលប្រើក្ដារចុចរូបវន្ត"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"គ្រាប់ចុចស្អិត"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"បើកគ្រាប់ចុចស្អិត ដើម្បីងាយស្រួលប្រើក្ដារចុចរូបវន្ត"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ផ្លូវកាត់ក្តារចុច"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"បង្ហាញបញ្ជីផ្លូវកាត់"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ឧបករណ៍ និងក្ដារចុច​កម្រងព័ត៌មាន​ការងារ"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"តម្រៀបតាមរយៈពេលប្រើប្រាស់"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"តម្រៀបតាមបានប្រើចុងក្រោយ"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"តម្រៀបតាមឈ្មោះកម្មវិធី"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"បាន​ប្រើ​​​ចុងក្រោយ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"បានប្រើ​ចុងក្រោយ"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"មិនដែលសោះ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ពេល​វាល​ប្រើ"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ភាព​ងាយស្រួល"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"កំណត់​ការ​ចូល​ដំណើរការ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"មិនអីទេ បន្តចុះ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"បោះបង់"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ការកំណត់​ការពង្រីក"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ពង្រីកដោយធ្វើការចុចបីដង"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ពង្រីកដោយប្រើផ្លូវកាត់"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ពង្រីកដោយប្រើផ្លូវកាត់ និងចុចបីដង"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"អំពី <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ចុចអេក្រង់ពីរដងដោយប្រើម្រាមដៃពីរ ដើម្បីបើក"</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="860548190334486449">"ដើម្បីចាប់ផ្ដើម និងបញ្ឈប់ការពង្រីក សូមចុចពីរដងនៅកន្លែងណាមួយនៅលើអេក្រង់របស់អ្នកដោយប្រើម្រាមដៃពីរ។"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ដើម្បីប្រើ​មុខងារ​ភាពងាយប្រើ សូមអូស​ឡើងលើ​ពីផ្នែកខាងក្រោម​នៃអេក្រង់ ដោយប្រើ​ម្រាមដៃ 3។\n\nដើម្បី​ប្ដូររវាង​មុខងារ​ផ្សេងៗ សូមអូស​ឡើងលើ ដោយប្រើ​ម្រាមដៃ 3 រួច​សង្កត់ឱ្យជាប់។"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"យល់ហើយ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ការកំណត់ប៊ូតុង​ភាពងាយស្រួល"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ការកំណត់ប៊ូតុង"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"ផ្លូវកាត់​ <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ប៊ូតុង​ភាពងាយស្រួល"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ចលនាភាពងាយស្រួល"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ចុចអេក្រង់ពីរដងដោយប្រើម្រាមដៃពីរ"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ចុចអេក្រង់ពីរដងដោយប្រើម្រាមដៃពីរ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័សដោយប្រើម្រាមដៃពីរ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ចុច​អេក្រង់​បីដង"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ចុច​អេក្រង់​បីដង"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ចុចអេក្រង់ {0,number,integer} ដងឱ្យរហ័ស។ ផ្លូវកាត់​នេះ​អាច​ធ្វើឱ្យ​ឧបករណ៍​របស់អ្នក​ដើរយឺត"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ស្វែងយល់បន្ថែមអំពីប៊ូតុង​ភាពងាយស្រួល និងចលនា"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ប្រើប៊ូតុង​ភាពងាយស្រួល។ មិនអាចប្រើចលនានេះតាមរយៈការរុករកដោយប្រើ​​ប៊ូតុង 3 បានទេ។"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ចូលប្រើមុខងារ​ភាពងាយស្រួល​បានយ៉ាងរហ័ស"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ដើម្បី​ចាប់ផ្ដើម"</b>\n"1. ចូលទៅកាន់​ការកំណត់​ភាពងាយស្រួល\n2. ជ្រើសរើសមុខងារ រួចចុចផ្លូវកាត់\n3. ជ្រើសរើសថាតើ​អ្នកចង់ប្រើប៊ូតុង ឬចលនា ដើម្បីចូលប្រើមុខងារនោះឬអត់"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ដើម្បី​ចាប់ផ្ដើម"</b>\n"1. ចូលទៅកាន់​ការកំណត់​ភាពងាយស្រួល\n2. ជ្រើសរើសមុខងារ រួចចុចផ្លូវកាត់\n3. ជ្រើសរើស​ប៊ូតុង ដើម្បីចូលប្រើ​មុខងារ"</string>
+    <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_size_title" msgid="5785110470538960881">"ទំហំ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ប៊ូតុងថាមពល​បញ្ចប់​ការ​ហៅ"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ទស្សន៍ទ្រនិច​កណ្តុរធំ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ធ្វើឱ្យកាន់តែងាយសម្គាល់ឃើញទស្សន៍ទ្រនិចកណ្ដុរ"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"ធ្វើឱ្យកម្មវិធីទាំងអស់ងងឹត"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"អនុវត្តលើកម្មវិធីដែលគ្មានទម្រង់រចនាងងឹតរបស់ពួកវាផ្ទាល់។ កម្មវិធីមួយចំនួនអាចមានបញ្ហាបង្ហាញ ដូចជាពណ៌បញ្ច្រាសជាដើម។"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"លុប​រូបភាព​មាន​ចលនា"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"កាត់បន្ថយចលនានៅលើអេក្រង់"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"សំឡេងម៉ូណូ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"វា​អាចតាមដានអន្តរកម្មរបស់អ្នកជាមួយនឹងកម្មវិធី ឬសេនស័រហាតវែរ និងធ្វើអន្តរកម្ម​ជាមួយកម្មវិធីនានា​ជំនួសឱ្យអ្នក។"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"អនុញ្ញាត"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"បដិសេធ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"បញ្ឈប់"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"បោះបង់"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"បញ្ឈប់ <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"ការចុចលើពាក្យ \"<xliff:g id="STOP">%1$s</xliff:g>\" នឹងបញ្ឈប់ <xliff:g id="SERVICE">%2$s</xliff:g>។"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"បិទ"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"បន្តបើក"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"បិទ <xliff:g id="SERVICE">%1$s</xliff:g> ឬ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"គ្មាន​សេវាកម្ម​បាន​ដំឡើង"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"មិនបានជ្រើសរើសសេវាកម្មណាមួយឡើយ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"គ្មាន​ការ​ពណ៌នា​បាន​ផ្ដល់។"</string>
     <string name="settings_button" msgid="2195468788019730377">"ការ​កំណត់"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"កម្រិតពន្លឺ ប្រតិកម្មនឹងពន្លឺ ​រចនាប័ទ្ម​ងងឹត ឈឺក្បាលប្រកាំង ឈឺក្បាល មុខងារអាន មុខងារយប់ បន្ថយពន្លឺ ចំណុច​ពណ៌​ស"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ងាយស្រួលប្រើប្រាស់ ងាយស្រួលចូលប្រើ ជំនួយ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ការមើល, ការស្ដាប់ឮ, ងងឹតភ្នែក, ថ្លង់, ចលនា, ភាពស្ទាត់ជំនាញ, ជំនួយ, ការជួយ, ងាយស្រួល​ប្រើប្រាស់, ងាយស្រួល​ចូលប្រើ, ដៃ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"កម្មវិធីពង្រីកវិនដូ ពង្រីកបង្រួម ការពង្រីក ខ្សោយភ្នែក ពង្រីក ធ្វើឱ្យកាន់តែធំ"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"អក្សររត់, CC, ធ្វើប្រតិចារឹកភ្លាមៗ, មានបញ្ហាស្ដាប់, ស្ដាប់មិនឮ, CART, ការបំប្លែងការនិយាយទៅជាអត្ថបទ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"កម្រិតរំលេចពណ៌"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ម៉ូទ័រ កណ្ដុរ"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ឧបករណ៍ជំនួយការស្តាប់ ការពិបាកស្តាប់ ការស្ដាប់មិនឮ ការវះកាត់ដាក់ឧបករណ៍ជំនួយការស្ដាប់ ឧបករណបង្កើនសំឡេង ឧបករណ៍កែសម្រួលសំឡេង"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ចលនា, កណ្ដុរ, កណ្ដុរ​ខាងក្រៅ, ឧបករណ៍​ពាក់ក្បាល​សម្រាប់បញ្ជា​កណ្ដុរ, កណ្ដុរ​ដែលមាន​ភាពបត់បែន, រទេះ​រុញ, ដងបញ្ជា"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ឧបករណ៍​ជំនួយការស្តាប់, មានបញ្ហា​ក្នុងការស្ដាប់, ស្ដាប់មិនឮ, ឧបករណ៍​អេឡិចត្រូនិក​ក្នុងខ្លួនមនុស្ស​សម្រាប់ជំនួយការស្ដាប់, ឧបករណ៍​បង្កើនសំឡេង, ឧបករណ៍​កែសម្រួលសំឡេង, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"មានបញ្ហាស្ដាប់, ស្ដាប់មិនឮ, អក្សររត់, អង្គលីលេខ, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ប៊ូតុង​បី"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ភាពស្ទាត់ជំនាញ, ចលនា, មនុស្សចាស់, ជំងឺ​សន្លាក់ឆ្អឹង, rsi, ជំងឺដាច់សរសៃឈាមខួរក្បាល, ញ័រ, ជំងឺក្រិន​សរសៃឈាមច្រើន, ពិការ​ខួរក្បាល, រង្គើ, ការចុករោយ, ដៃ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ពន្យារ​ពេល, ភាពស្ទាត់ជំនាញ, មនុស្សចាស់"</string>
     <string name="print_settings" msgid="8519810615863882491">"ការ​បោះពុម្ព"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"បិទ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{សេវាកម្មបោះពុម្ព 1 បានបើក}other{សេវាកម្មបោះពុម្ព # បានបើក}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"មើលកម្មវិធី​ដែលមាន​ការប្រើប្រាស់ខ្ពស់បំផុត"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"បានបង្កើនប្រសិទ្ធភាពការសាក ដើម្បីការពារថ្មរបស់អ្នក"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"ដើម្បីជួយបង្កើនអាយុកាលថ្មរបស់អ្នក ការសាកត្រូវបានបង្កើនប្រសិទ្ធភាព"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"បានបង្កើនប្រសិទ្ធភាពការសាក ដើម្បីការពារថ្មរបស់អ្នក"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ដើម្បីជួយបង្កើនអាយុកាលថ្មរបស់អ្នក ការសាកត្រូវបានបង្កើនប្រសិទ្ធភាពពេលភ្ជាប់"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"បានបង្កើនប្រសិទ្ធភាពការសាក ដើម្បីការពារថ្មរបស់អ្នក"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ដើម្បីជួយបង្កើនអាយុកាលថ្មរបស់អ្នក ការសាកត្រូវបានបង្កើនប្រសិទ្ធភាពពេលភ្ជាប់"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"កំពុង​សាកថ្មឱ្យពេញ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ដើម្បីការពារថ្មរបស់អ្នក ការសាកនឹងត្រូវបានបង្កើនប្រសិទ្ធភាព ពេលភ្ជាប់ថេប្លេតរបស់អ្នកលើកក្រោយ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ស្វែងយល់បន្ថែមអំពីការណ៍ដែលការសាកថ្ម​ត្រូវ​បាន​ផ្អាក"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"បន្តសាកថ្ម"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"រួម​បញ្ចូល​សកម្មភាព​ផ្ទៃខាងក្រោយ​ដែលប្រើថាមពលច្រើន"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"លុប"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"បោះបង់"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"សាក​ថ្ម​រហូត​ដល់​ពេញ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"បញ្ហាពាក់ព័ន្ធនឹងគ្រឿងសាកថ្ម"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ស្វែងយល់បន្ថែមអំពី​ការសាកថ្មមិនត្រូវគ្នា"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"កម្មវិធី​គ្រប់គ្រង​ថ្ម"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"គ្រប់គ្រង​កម្មវិធី​ដោយ​ស្វ័យប្រវត្តិ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ឥឡូវ​នេះ"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> ​<xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"គំនូសតាង​ការប្រើប្រាស់​ថ្ម"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"គំនូស​តាង​ការប្រើប្រាស់​ថ្ម​រៀង​រាល់​ថ្ងៃ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"គំនូស​តាង​ការប្រើប្រាស់​ថ្ម​រៀង​រាល់​ម៉ោង"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ភាគរយនៃកម្រិតថ្មពី <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ទៅ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ការប្រើប្រាស់ថ្មតាំងពីសាកថ្មពេញចុងក្រោយ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"ការប្រើប្រាស់ថ្មសម្រាប់ <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"រយៈពេលប្រើប្រាស់​តាំងពីសាកថ្មពេញ​ចុងក្រោយ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"សញ្ញា​ហៅទូរសព្ទ​ពេលអាសន្ន"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"កំណត់​ឥរិយាបថ​ពេល​ហៅ​ពេល​មាន​អាសន្ន"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"បម្រុង​ទុក"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"បើក"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"បិទ"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"បម្រុងទុក &amp; ស្ដារ​ឡើងវិញ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ទិន្នន័យ​ផ្ទាល់ខ្លួន"</string>
     <string name="backup_data_title" msgid="507663517227498525">"បម្រុង​ទុក​ទិន្នន័យ​របស់​ខ្ញុំ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ឈ្មោះ"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ប្រភេទ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"អាសយដ្ឋាន​ម៉ាស៊ីន​មេ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"ការអ៊ីនគ្រីប PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"ព័ត៌មាន​សម្ងាត់ L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"ព័ត៌មាន​សម្គាល់ IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"កូដ​ចែករំលែក​ពីមុន IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"វិញ្ញាបនបត្រ​អ្នក​ប្រើ IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"វិញ្ញាបនបត្រ IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"វិញ្ញាបនបត្រ​ម៉ាស៊ីន​មេ IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"បង្ហាញ​ជម្រើស​កម្រិត​ខ្ពស់"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"ដែន​ស្វែងរក DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"ម៉ាស៊ីន​មេ DNS (ឧ. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ផ្លូវបញ្ជូន​​បន្ត (ឧ. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ឈ្មោះ​អ្នក​ប្រើ​"</string>
     <string name="vpn_password" msgid="1183746907642628127">"ពាក្យសម្ងាត់​"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"រក្សាទុក​ព័ត៌មាន​គណនី"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(មិន​បាន​ប្រើ)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(កុំ​ផ្ទៀងផ្ទាត់​ម៉ាស៊ីន​មេ)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(បាន​ទទួល​ពី​ម៉ាស៊ីន​មេ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"VPN ប្រភេទនេះ​មិនអាចបន្តភ្ជាប់រហូតនោះទេ"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN ដែលបើកជានិច្ចស្គាល់តែអាសយដ្ឋានម៉ាស៊ីមេជាលេខតែប៉ុណ្ណោះ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ម៉ាស៊ីនមេ DNS ត្រូវតែធ្វើការបញ្ជាក់សម្រាប់ VPN ដែលបើកជានិច្ច"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"អាសយដ្ឋាន​ម៉ាស៊ីនមេ DNS ត្រូវតែជាលេខសម្រាប់ VPN ដែលបើកជានិច្ច"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ព័ត៌មានដែល​បានបញ្ចូល​មិនអាចប្រើជាមួយ \"បើក VPN ជានិច្ច\" បានទេ"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"បោះ​បង់​"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ច្រានចោល"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"ទប់ស្កាត់ការ​តភ្ជាប់​ដោយ​មិនចាំបាច់ប្រើ VPN ទេ"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"តម្រូវឲ្យ​មាន​ការ​តភ្ជាប់ VPN ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"គ្មានសុវត្ថិភាពទេ។ សូមដំឡើងកំណែទៅ IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"មិនអាចចាប់ផ្ដើម VPN ដែលមិនស្គាល់បានទេ។"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ជ្រើស​ប្រវត្តិរូប VPN តភ្ជាប់​ជា​និច្ច។ ចរាចរណ៍​បណ្ដាញ​នឹង​ត្រូវ​បាន​អនុញ្ញាត​ ពេល​តភ្ជាប់​ទៅ VPN នេះ។"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"គ្មាន"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"បើក​ជា​និច្ច VPN ទាមទារ​អាសយដ្ឋាន IP សម្រាប់​ទាំង​ម៉ាស៊ីន​មេ និង​ DNS ។"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"ការ​ជូនដំណឹងចាប់ជំរិតក្មេង"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ទទួល​បាន​ដំណឹង​​អំពី​ការ​ចាប់​ជំរិត​កូន"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ធ្វើ​ឡើងវិញ"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"បើក​កម្មវិធី​គ្រប់គ្រង​ការ​ហៅ"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"អនុញ្ញាត​ឲ្យ​សេវា​នេះ​ដើម្បី​​គ្រប់គ្រង​របៀប​ការ​ហៅ​របស់​អ្នក។"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"កម្មវិធី​គ្រប់គ្រង​ការ​ហៅ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ការប្រកាសអាសន្ន​តាមប្រព័ន្ធឥតខ្សែ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ប្រតិបត្តិ​ករ​​​បណ្ដាញ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ឈ្មោះ​ចំណុច​ចូល​ដំណើរការ"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"បង់​ប្រាក់, ចុច, ការ​បង់​ប្រាក់"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ការបម្រុងទុក បម្រុងទុក"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ចលនា"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"មុខ ដោះសោ ផ្ទៀងផ្ទាត់ ចូល"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"មុខ ដោះសោ ការផ្ទៀងផ្ទាត់ ចូល ស្នាមម្រាមដៃ ជីវមាត្រ"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, កំណែ prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"បើកសំឡេង"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"អក្សររត់ក្នុងពេលជាក់ស្ដែង"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ដាក់អក្សររត់លើមេឌៀដោយស្វ័យប្រវត្តិ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ឧបករណ៍បំពងសំឡេងរបស់ទូរសព្ទ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ឧបករណ៍បំពងសំឡេងរបស់ថេប្លេត"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ឧបករណ៍បំពងសំឡេងរបស់ឧបករណ៍"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"កាស​ប្រើ​ខ្សែ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"សំឡេងពីមេឌៀដែលត្រូវគ្នាកាន់តែធ្វើឱ្យជក់អារម្មណ៍"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"បិទ"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ការសន្ទនា​ថ្មីៗ​ត្រូវបាន​លុបចេញ"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"ការសន្ទនា​ត្រូវបាន​លុបចេញ"</string>
     <string name="clear" msgid="5092178335409471100">"សម្អាត"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"សម្អាត <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ការសន្ទនា​ដែលបានកែប្រែ និងការសន្ទនាអាទិភាព​នឹងបង្ហាញ​នៅទីនេះ"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"នៅពេលអ្នក​សម្គាល់​ការសន្ទនាថាជាអាទិភាព ឬធ្វើការផ្លាស់ប្ដូរ​ផ្សេងទៀតទៅលើ​ការសន្ទនា ការសន្ទនាទាំងនោះ​នឹងបង្ហាញ​នៅទីនេះ។ \n\nដើម្បីប្ដូរ​ការកំណត់​ការសន្ទនា៖ \nអូសចុះក្រោមពីផ្នែកខាងលើ​នៃអេក្រង់ ដើម្បីបើក​ផ្ទាំងទាញចុះ រួចចុច​ការសន្ទនា​ឱ្យជាប់។"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"បង្រួម"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"បិទ"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ការខ្ទាស់​កម្មវិធី"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ការខ្ទាស់កម្មវិធី​អនុញ្ញាតឱ្យអ្នក​បន្តមើល​ឃើញកម្មវិធីបច្ចុប្បន្ន រហូតទាល់តែ​អ្នកដកខ្ទាស់​កម្មវិធីនោះ។ មុខងារនេះ​អាចប្រើ ដើម្បីអនុញ្ញាតឱ្យ​មិត្តភ័ក្តិដែលទុកចិត្ត​លេងហ្គេម​ជាក់លាក់ ជាដើម។"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"នៅពេលខ្ទាស់កម្មវិធី កម្មវិធីដែលបានខ្ទាស់​អាចបើក​កម្មវិធីផ្សេងទៀត ហើយអាចចូលប្រើទិន្នន័យ​ផ្ទាល់ខ្លួនបាន។ \n\nដើម្បីប្រើការខ្ទាស់កម្មវិធី៖ 	\n1. បើក​ការខ្ទាស់កម្មវិធី 	\n2. បើក​ទិដ្ឋភាពរួម 	\n3. ចុច​រូបកម្មវិធី​នៅផ្នែកខាងលើ​នៃអេក្រង់ បន្ទាប់មកចុច \"ខ្ទាស់\""</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"នៅពេលខ្ទាស់កម្មវិធី កម្មវិធីដែលបានខ្ទាស់​អាចបើក​កម្មវិធីផ្សេងទៀត ហើយអាចចូលប្រើទិន្នន័យ​ផ្ទាល់ខ្លួនបាន។ \n\nប្រសិនបើ​អ្នក​ចង់​ចែករំលែក​ឧបករណ៍​របស់អ្នក​ជាមួយ​នរណាម្នាក់​ប្រកបដោយសុវត្ថិភាព សូម​សាកល្បងប្រើ​អ្នកប្រើប្រាស់ជាភ្ញៀវ​ជំនួសវិញ​។ \n\nដើម្បីប្រើ​ការខ្ទាស់កម្មវិធី៖ 	\n1. បើក​ការខ្ទាស់កម្មវិធី 	\n2. បើក​ទិដ្ឋភាពរួម 	\n3. ចុច​រូបកម្មវិធី​នៅផ្នែកខាងលើ​នៃអេក្រង់ បន្ទាប់មកចុច \"ខ្ទាស់\""</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"គ្រប់គ្រងកម្មវិធី ប្រសិនបើមិនបានប្រើ"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ដកការអនុញ្ញាតចេញ លុបឯកសារបណ្ដោះអាសន្ន បញ្ឈប់ការជូនដំណឹង និងទុកកម្មវិធីក្នុងបណ្ណសារ"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"កម្មវិធីទាំងអស់"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"កម្មវិធី​ដែល​បាន​ដំឡើង"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"កម្មវិធី​ប្រើ​ភ្លាមៗ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ទំនេរ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"អង្គចងចាំបានប្រើដោយកម្មវិធី"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{កម្មវិធី 1 បានប្រើអង្គចងចាំក្នុងរយៈពេល {time} ចុងក្រោយ}other{កម្មវិធី # បានប្រើអង្គចងចាំក្នុងរយៈពេល {time} ចុងក្រោយ}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"បើកការពិនិត្យកម្រងព័ត៌មាននៃការប្រើប្រាស់អង្គចងចាំ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"ការពិនិត្យកម្រងព័ត៌មាននៃការប្រើប្រាស់អង្គចងចាំតម្រូវឱ្យមានធនធានប្រព័ន្ធបន្ថែម។"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"បានបិទការពិនិត្យកម្រងព័ត៌មាននៃអង្គចងចាំ"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ប្រេកង់"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"ការប្រើអតិបរមា"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"មិនបានប្រើទិន្នន័យទេ"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"បង្ហាញនៅលើកម្មវិធីផ្សេងទៀត"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"អនុញ្ញាតឲ្យបង្ហាញនៅលើកម្មវិធីផ្សេងទៀត"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"អនុញ្ញាតឱ្យកម្មវិធីនេះបង្ហាញនៅផ្នែកខាងលើ​កម្មវិធីផ្សេងទៀត ដែលអ្នកកំពុង​ប្រើ។ កម្មវិធី​នេះ​នឹងអាច​មើលឃើញកន្លែងដែលអ្នកចុច ឬផ្លាស់ប្ដូរ​អ្វីដែលត្រូវបង្ហាញនៅលើអេក្រង់។"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"ប្ដូរឧបករណ៍មេឌៀ"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"អនុញ្ញាតឱ្យកម្មវិធីប្ដូរឧបករណ៍មេឌៀ"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"អនុញ្ញាតឱ្យកម្មវិធីនេះជ្រើសរើសថាតើឧបករណ៍​ដែលបានភ្ជាប់ណាចាក់សំឡេង ឬវីដេអូពីកម្មវិធីផ្សេងទៀត។ ប្រសិនបើអនុញ្ញាត កម្មវិធីនេះអាចចូលប្រើប្រាស់បញ្ជីឧបករណ៍ដែលអាចប្រើបាន ដូចជាកាស និងឧបករណ៍បំពងសំឡេង ព្រមទាំងជ្រើសរើសថាតើប្រើឧបករណ៍បញ្ចេញណាសម្រាប់ចាក់ ឬបញ្ជូនសំឡេង ឬវីដេអូ។"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ចូលប្រើ​ឯកសារ​ទាំងអស់"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"កែលម្អការបើកដំណើរការសំឡេង"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ឧបករណ៍នេះប្រើប្រាស់បញ្ញាឯកជន ដើម្បីកែលម្អគំរូបើកដំណើរការសំឡេង។ កម្មវិធីអាចទទួលព័ត៌មានថ្មីៗដោយសង្ខេបដែលប្រមូលផ្ដុំពីអ្នកប្រើប្រាស់ជាច្រើន ដើម្បីរក្សាឯកជនភាព ខណៈពេលកែលម្អគំរូសម្រាប់អ្នកគ្រប់គ្នា។\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"ការព្រមាន​ពី​ការប្រើ​ទិន្នន័យ <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"កម្រិតកំណត់​​​ទិន្នន័យ <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ការព្រមាន​ពី​ការប្រើទិន្នន័យ <xliff:g id="ID_1">^1</xliff:g>/កម្រិតកំណត់​ទិន្នន័យ <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ការគណនាទិន្នន័យរបស់ក្រុមហ៊ុនសេវាទូរសព្ទអាចនឹងខុសគ្នាពីការគណនារបស់ឧបករណ៍"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"មិនរួមបញ្ចូលទិន្នន័យ​ដែលប្រើដោយបណ្ដាញ​ក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"បានប្រើ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"កំណត់ការព្រមានពីការប្រើទិន្នន័យ"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"បានធ្វើ​បច្ចុប្បន្នភាពកាលពី <xliff:g id="ID_1">^2</xliff:g> មុន"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ទើប​បាន​ធ្វើ​បច្ចុប្បន្នភាព​ដោយ <xliff:g id="ID_1">^1</xliff:g> អម្បាញ់មិញ"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ទើប​បាន​ធ្វើ​បច្ចុប្បន្នភាព​អម្បាញ់មិញ"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"មើល​គម្រោង"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"មើល​ព័ត៌មាន​លម្អិត"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"មុខងារសន្សំសំចៃទិន្នន័យ"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ទិន្នន័យ​ដែល​គ្មាន​ការដាក់​កំហិត"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ភាពខុសប្រក្រតីនៃការប្រើប្រាស់ថ្ម"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ប្រអប់​ការ​កំណត់​រហ័ស​សម្រាប់​អ្នកអភិវឌ្ឍន៍"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"បិទ​ការអស់ម៉ោង​សម្រាប់​ការផ្ដល់សិទ្ធិ adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"បិទ​ការដកសិទ្ធិ adb ដោយស្វ័យប្រវត្តិ​សម្រាប់ប្រព័ន្ធ​ដែលមិនបានភ្ជាប់​ឡើងវិញ​ក្នុងអំឡុង​រយៈពេល​លំនាំដើម (7 ថ្ងៃ) ឬ​រយៈពេល​ដែលបាន​កំណត់​ដោយអ្នក​ប្រើប្រាស់ (តិចបំផុត 1 ថ្ងៃ)។"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"ដាន Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ឧបករណ៍​ចាប់សញ្ញាបានបិទ"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ការកំណត់កម្រងព័ត៌មានការងារ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ស្វែងរក​ទំនាក់ទំនង​ក្នុងបញ្ជីការងារ​នៅក្នុង​កម្មវិធី​ផ្ទាល់ខ្លួន"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"សេវាកម្មបំពេញដោយស្វ័យប្រវត្តិ"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"សេវាកម្មបំពេញស្វ័យប្រវត្តិ​លំនាំដើម"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"ពាក្យ​សម្ងាត់"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"ពាក្យ​សម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ក្រុមហ៊ុនផ្ដល់សេវាបន្ថែម"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{ពាក្យសម្ងាត់ #}other{ពាក្យសម្ងាត់ #}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ស្វ័យប្រវត្តិ បំពេញ បំពេញស្វ័យប្រវត្តិ ពាក្យសម្ងាត់"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ទិន្នន័យ, កូដសម្ងាត់, ពាក្យ​សម្ងាត់"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ស្វ័យប្រវត្តិ, បំពេញ, បំពេញស្វ័យប្រវត្តិ, ទិន្នន័យ, កូដសម្ងាត់, ពាក្យ​សម្ងាត់"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"ពាក្យ​សម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;បិទសេវាកម្មទាំងអស់ឬ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ពាក្យសម្ងាត់ កូដសម្ងាត់ និងព័ត៌មានដែលបានរក្សាទុកផ្សេងទៀតនឹងមិនអាចប្រើប្រាស់សម្រាប់បំពេញស្វ័យប្រវត្តិបានទេ នៅពេលអ្នកចូលគណនី"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;ផ្លាស់ប្ដូរសេវាកម្មជាអាទិភាពរបស់អ្នកទៅ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ពាក្យសម្ងាត់ កូដសម្ងាត់ថ្មីៗ និងព័ត៌មានផ្សេងទៀតនឹងត្រូវបានរក្សាទុកនៅទីនេះចាប់ពីពេលនេះតទៅ។ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; អាចនឹងប្រើប្រាស់អ្វីដែលមាននៅលើអេក្រង់របស់អ្នក ដើម្បីកំណត់ថាអាចបំពេញអ្វីខ្លះដោយស្វ័យប្រវត្តិ"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ប្រើប្រាស់ %1$s ឬ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"អ្នកអាចបើកសេវាកម្មតែ 5 ប៉ុណ្ណោះ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"បិទសេវាកម្មយ៉ាងហោចណាស់ 1 ដើម្បីបញ្ចូលសេវាកម្មមួយទៀត"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ប្រើអ្វីដែលមាននៅលើអេក្រង់របស់អ្នក ដើម្បីកំណត់ពីអ្វីដែលអាចបំពេញបានដោយស្វ័យប្រវត្តិ។"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"ដែនកំណត់នៃពាក្យ​សម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"អ្នកអាចបើកដំណើរការពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យរហូតដល់ 5 ក្នុងពេលតែមួយ។ សូមបិទសេវាកម្មមួយ ដើម្បីបញ្ចូលបន្ថែមទៀត។"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"ដែនកំណត់នៃពាក្យ​សម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"អ្នកអាចបើកដំណើរការពាក្យសម្ងាត់ កូសម្ងាត់ និងសេវាកម្មទិន្នន័យរហូតដល់ 5 ក្នុងពេលតែមួយ។ សូមបិទសេវាកម្ម ដើម្បីបញ្ចូលបន្ថែមទៀត។"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"បិទ"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"បំពេញ​ដោយស្វ័យប្រវត្តិ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"កម្រិត​កត់ត្រា"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ការផ្លាស់ប្ដូរ​ភាពត្រូវគ្នា​នៃ​កម្មវិធី​អាចត្រូវបាន​កែប្រែសម្រាប់​តែកម្មវិធី​ដែលអាចជួសជុល​បានប៉ុណ្ណោះ។ ដំឡើង​កម្មវិធី​ដែលអាចជួសជុលបាន រួចព្យាយាមម្ដងទៀត។"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"ផ្អែក​លើ​ការកំណត់​ផ្សេង​ទៀត"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"គណនី"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"គណនី %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ឈ្មោះ​ឧបករណ៍"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ព័ត៌មាន​មូលដ្ឋាន"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"ច្បាប់ និងបទប្បញ្ញត្តិ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"អនុញ្ញាតឱ្យកម្មវិធីនេះ​បើកដំណើរការ នៅពេលស្លាក NFC ត្រូវបានស្កេន។\nប្រសិនបើបើកការអនុញ្ញាតនេះ កម្មវិធីនេះ​នឹងមានជាជម្រើស រាល់ពេលដែលរកឃើញស្លាក។"</string>
     <string name="media_output_title" msgid="8283629315159510680">"ចាក់​មេឌៀនៅលើ"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"ចាក់ <xliff:g id="LABEL">%s</xliff:g> នៅលើ"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"សំឡេងនឹងលេងនៅលើ"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ឧបករណ៍នេះ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"មិនអាច​ប្រើបានទេ​អំឡុងពេល​ហៅទូរសព្ទ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ទទួល​ការហៅ​ទូរសព្ទ"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"បិទសំឡេង"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ដើម្បី​បើក សូមធ្វើការ​ផ្លាស់ប្ដូរ \"ចុចប៊ូតុង​ថាមពល​ឱ្យជាប់\" ចំពោះ​ម៉ឺនុយថាមពល​ជាមុនសិន។"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ព័ត៌មាន​បណ្ដាញ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ឈ្មោះ​ឧបករណ៍​របស់អ្នក​អាច​ឱ្យ​កម្មវិធី​នៅលើ​ទូរសព្ទ​របស់អ្នក​មើលឃើញ។ វាក៏​អាចឱ្យ​អ្នកដទៃ​មើលឃើញ​ផងដែរ នៅពេលអ្នក​ភ្ជាប់​ជាមួយឧបករណ៍​ប៊្លូធូស, ភ្ជាប់បណ្ដាញ Wi-Fi ឬរៀបចំ​ហតស្ប៉ត Wi-Fi។"</string>
     <string name="devices_title" msgid="649715719278562515">"ឧបករណ៍"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ជ្រើសរើសបណ្តាញ"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"បាន​ផ្ដាច់"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ឈ្មោះ"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ពណ៌ (ប្រើដោយ​កម្មវិធីដែល​ត្រូវគ្នា)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"រក្សាទុក"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ប្រើ​ស៊ីម"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ប្រើស៊ីមនេះ"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"បិទ"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"សូមដកស៊ីមកាត​ចេញ ដើម្បីបិទស៊ីមនេះ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"ចុច​ដើម្បីបើកដំណើរការ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"លុបស៊ីម"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ប្រភេទ​បណ្ដាញ​​ដែលប្រើជាអាទិភាព​"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ប្ដូរ​មុខងារ​​​ប្រតិបត្តិការ​បណ្ដាញ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ប្រភេទ​បណ្ដាញ​​ដែលប្រើជាអាទិភាព​"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ពិនិត្យមើល​តម្លៃ​ជាមួយ​ក្រុមហ៊ុន​ផ្ដល់​សេវា​​បណ្ដាញ​​របស់​អ្នក។"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ការប្រើទិន្នន័យកម្មវិធី"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"មុខងារបណ្ដាញ​មិនត្រឹមត្រូវ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>។ សូមកុំអើពើ។"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ឈ្មោះ​ចំណុច​ចូល​ប្រើប្រាស់"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"មិន​អាច​ប្រើបាន​ទេ នៅពេលភ្ជាប់ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"ប្ដូរទៅ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ឬ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ប្ដូរ​ទៅប្រើ​ស៊ីមកាតឬ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"ប្រើ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ឬ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"អាចបើកដំណើរការ​ស៊ីម​ម្តងមួយតែប៉ុណ្ណោះ។\n\nការប្ដូរទៅ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> នឹងមិនបោះបង់​សេវាកម្ម <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> របស់អ្នកទេ។"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"អាចដំណើរការ eSIM បានតែ 1 ប៉ុណ្ណោះក្នុងមួយលើក។\n\nការប្ដូរទៅ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> នឹងមិនលុបចោលសេវាកម្ម <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> របស់អ្នកទេ។"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"អាចបើក​ដំណើរការ​ស៊ីម​ម្តងមួយតែប៉ុណ្ណោះ។\n\nការប្ដូរ​នឹងមិន​បោះបង់​សេវាកម្ម <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> របស់អ្នក​ទេ។"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"អ្នកអាចប្រើ​ស៊ីមបាន 2 ក្នុងពេលតែមួយ។ ដើម្បីប្រើ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> សូមបិទស៊ីម​ផ្សេងទៀត។"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"ប្ដូរទៅ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"បិទ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ទេ អរគុណ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"បោះបង់"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ប្តូរ"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"បិទ"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"មិនអាច​បើកដំណើរការ​ស៊ីមបានទេ"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"សូម​សាកល្បង​បើកស៊ីមម្ដងទៀត។ ប្រសិនបើនៅតែមានបញ្ហា សូម​ចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នកឡើងវិញ។"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"រៀបចំស៊ីមរបស់អ្នក"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"កំណត់ចំណូលចិត្តបណ្ដាញ​ទូរសព្ទ​ចល័តរបស់អ្នក ដើម្បីប្រើស៊ីមច្រើននៅលើឧបករណ៍នេះ"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ដាក់ស្លាកស៊ីមរបស់អ្នក"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"អ្នកនឹងមើលឃើញស្លាកទាំងនេះ នៅពេលធ្វើការហៅទូរសព្ទ ផ្ញើសារជាអក្សរ និងប្រើទិន្នន័យ និងនៅក្នុងការកំណត់"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"ស្លាកស៊ីម"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ស្លាក"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"ជ្រើសរើសស៊ីមដែលត្រូវប្រើ"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"អ្នកអាចប្រើ​ស៊ីមបាន 2 ក្នុងពេលតែមួយ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"កំណត់ស៊ីមចម្បងរបស់អ្នក"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ជ្រើសរើសស៊ីមដែលត្រូវប្រើតាមលំនាំដើមសម្រាប់ការហៅទូរសព្ទ សារជាអក្សរ និងទិន្នន័យ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ស៊ីមចម្បងរបស់អ្នក"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ការហៅទូរសព្ទ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"សារ​ជាអក្សរ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ការប្ដូរទិន្នន័យស្វ័យប្រវត្តិ"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ប្រើទិន្នន័យពីស៊ីមណាមួយដោយផ្អែកលើដែនសេវា និងភាពអាចប្រើប្រាស់បាន"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ទិន្នន័យតែប៉ុណ្ណោះ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"រៀបចំ"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"បន្ទាប់"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"បណ្ដាញទូរសព្ទចល័ត"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"លេខទូរសព្ទ"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"ពណ៌ និងស្លាកស៊ីម"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ការបើកដំណើរការ​បណ្ដាញ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"ការប្ដូរក្រុមហ៊ុន​សេវា​ទូរសព្ទ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> កំពុង​ដំណើរការ"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"ដើម្បី​ប្រើ​ទិន្នន័យ​ទូរសព្ទចល័ត មុខងារ​ហៅទូរសព្ទ និង​សារ SMS នៅពេលក្រោយ សូមចូលទៅកាន់​ការកំណត់​បណ្ដាញ​របស់អ្នក"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ស៊ីម"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"លុប eSIM នេះឬ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ការលុប​ស៊ីមនេះ​នឹងលុប​សេវាកម្ម <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ពីឧបករណ៍​នេះ។\n\nសេវាកម្ម​សម្រាប់ <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> នឹង​មិនត្រូវបាន​បោះបង់ទេ។"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"លុប"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"កំពុង​លុបស៊ីម…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"មិនអាច​លុប​ស៊ីម​បានទេ"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"មិនអាចលុប​ស៊ីមនេះ​បានទេ​ ដោយសារមាន​បញ្ហា។\n\nសូមចាប់ផ្ដើម​ឧបករណ៍​របស់អ្នក​ឡើងវិញ​ រួច​ព្យាយាម​ម្ដងទៀត។"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ភ្ជាប់​ឧបករណ៍"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"កម្មវិធី <xliff:g id="APPNAME">%1$s</xliff:g> ចង់ប្រើ​បណ្ដាញ Wi‑Fi បណ្ដោះអាសន្ន ដើម្បីភ្ជាប់ជាមួយ​ឧបករណ៍​របស់អ្នក"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"រកមិន​ឃើញ​ឧបករណ៍ទេ។ សូម​ប្រាកដថា​ឧបករណ៍​បានបើក និងអាច​ភ្ជាប់បាន។"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ការហៅ​ទៅលេខ​សង្គ្រោះបន្ទាន់"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ក្រុមហ៊ុន​សេវាទូរសព្ទ​របស់អ្នក​​មិនផ្ដល់សេវាហៅ​ទៅលេខ​សង្គ្រោះបន្ទាន់​តាមរយៈការហៅតាម Wi‑Fi ទេ។\nឧបករណ៍​ប្ដូរទៅប្រើ​បណ្តាញចល័ត​ដោយស្វ័យប្រវត្តិ​ ដើម្បី​ហៅ​ទៅលេខ​សង្គ្រោះបន្ទាន់។\nការហៅ​ទៅលេខ​សង្គ្រោះបន្ទាន់​អាច​ធ្វើ​បាននៅក្នុង​តំបន់​ដែលមាន​សេវាគ្របដណ្តប់​បណ្តាញ​ចល័ត​តែប៉ុណ្ណោះ។"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ប្រើ Wi‑Fi សម្រាប់​ការហៅទូរសព្ទ ដើម្បី​កែលម្អ​គុណភាព"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ការហៅទូរសព្ទ​បម្រុង"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"ប្រសិនបើមិនអាចប្រើ <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ឬរ៉ូ​មីង​បានទេ សូមប្រើស៊ីមដែលប្រើទិន្នន័យទូរសព្ទចល័តសម្រាប់ការហៅទូរសព្ទតាម <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>។"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ការហៅទូរសព្ទ​បម្រុង"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"សារ MMS ចូល"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"មិនអាច​ផ្ញើសារ MMS បានទេ"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ចុចដើម្បីអនុញ្ញាត​ឱ្យមានការផ្ញើសារ MMS នៅលើ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> នៅពេល​បិទទិន្នន័យទូរសព្ទចល័ត"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ព័ត៌មាន​អំពីគោលការណ៍ការងារ​របស់អ្នក"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ការកំណត់​​ដែល​ស្ថិត​ក្រោម​ការ​គ្រប់គ្រង​អ្នកគ្រប់គ្រង​ផ្នែកព័ត៌មានវិទ្យា​របស់អ្នក"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"ចាប់ផ្ដើមដោយប្រើទំហំទំព័រ 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"ចាប់ផ្ដើមឧបករណ៍ដោយប្រើខឺណែលដែលស្គាល់ទំហំទំព័រ 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"ចាប់ផ្ដើមឡើងវិញដោយប្រើខឺណែលដែលត្រូវគ្នានឹងទំព័រ 16KB ឬ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"សូមប្រុងប្រយ័ត្ន៖ កម្មវិធីមួយចំនួនប្រហែលមិនត្រូវគ្នានឹងមុខងារនេះទេ។ ឧបករណ៍នឹងចាប់​ផ្ដើម​ឡើង​វិញ ក្រោយពេលបញ្ជាក់។"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"ចាប់ផ្ដើមឡើងវិញដោយប្រើខឺណែលដែលត្រូវគ្នានឹងទំព័រ 4KB ឬ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"ឧបករណ៍នឹងចាប់​ផ្ដើម​ឡើង​វិញ ក្រោយពេលបញ្ជាក់។"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"មិនអាចធ្វើបច្ចុប្បន្នភាពខឺណែលទៅជាខឺណែលដែលត្រូវគ្នានឹងទំព័រ 16KB បានទេ។"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"កំពុងអនុវត្តការផ្លាស់ប្ដូរ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ឧបករណ៍​ដោះស្រាយ​របាយការណ៍​អំពី​បញ្ហា"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"កំណត់​ថាតើ​កម្មវិធី​មួយណា​ដែលត្រូវ​ចាត់ចែង​ផ្លូវកាត់​សម្រាប់​របាយការណ៍​អំពី​បញ្ហា​នៅលើ​ឧបករណ៍​របស់អ្នក​។"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ផ្ទាល់ខ្លួន"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"ដើម្បីបន្ត​ការចាក់​បានរហ័ស កម្មវិធី​ចាក់មេឌៀ​បន្តបើក​នៅក្នុង​ការកំណត់រហ័ស"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"បង្ហាញមេឌៀនៅលើអេក្រង់ចាក់សោ"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"ដើម្បីបន្ត​ការចាក់​បានរហ័ស កម្មវិធី​ចាក់មេឌៀ​បន្តបើក​នៅលើអេក្រង់ចាក់សោ"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"បង្ហាញ​ការណែនាំ​អំពីមេឌៀ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"បង្ហាញការណែនាំមេឌៀដោយ Google Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"ផ្អែកលើ​សកម្មភាព​របស់អ្នក"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"លាក់​កម្មវិធីចាក់"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"បង្ហាញ​កម្មវិធីចាក់"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ស៊ីម"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"សកម្ម"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"អសកម្ម​"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / លំនាំដើម​សម្រាប់ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ការហៅទូរសព្ទ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"សំឡេងពីមេឌៀដែលត្រូវគ្នាកាន់តែធ្វើឱ្យជក់អារម្មណ៍"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ការតាមដានក្បាល"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"សំឡេងប្រែប្រួល នៅពេលអ្នកធ្វើចលនាក្បាលរបស់អ្នក ដើម្បីធ្វើឱ្យសំឡេងកាន់តែដូចធម្មជាតិ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ការអនុញ្ញាតឱ្យធ្វើសមកាលកម្ម"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"ផ្ដល់ឱ្យ <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> នូវការអនុញ្ញាតកម្មវិធីដូចគ្នានឹងការអនុញ្ញាតដែលអ្នកបានផ្ដល់នៅលើ <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ធ្វើសមកាលកម្មការអនុញ្ញាតពីទូរសព្ទ"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ផ្ដល់ឱ្យនាឡិការបស់អ្នកនូវការអនុញ្ញាតកម្មវិធីដូចគ្នានឹងការអនុញ្ញាតដែលអ្នកបានអនុញ្ញាតនៅលើទូរសព្ទនេះ"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ប្រភេទឧបករណ៍សំឡេង"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"មិន​ស្គាល់"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ឧបករណ៍​បំពង​សំឡេង"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"មធ្យម"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ខ្ពស់"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"អាចបើកកម្មវិធីនេះបានតែក្នុងវិនដូ 1 ប៉ុណ្ណោះ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"បើក"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"បិទ"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"បិទ"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"បិទ"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"បើក"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"បិទ"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"បើក"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"បិទ"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ធ្វើឱ្យអេក្រង់ភ្លឺទៅជាងងឹត និងអេក្រង់ងងឹតទៅជាភ្លឺ"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ពង្រីកនៅលើអេក្រង់"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"បិទ"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"បិទ"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"បើក"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"បិទ"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"បើក"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"ឥឡូវនេះ ពាក្យ​សម្ងាត់ត្រូវបានរៀបចំហើយ"</string>
 </resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 11e4cea..a79ba9b 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 ನಿಮಿಷದ ನಂತರ"</item>
     <item msgid="1574040255478150028">"5 ನಿಮಿಷಗಳ ನಂತರ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 922134f..57a0a89 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"ನಿರ್ವಾಹಕ ಬಳಕೆದಾರರು ಮಾತ್ರ ಡೆವಲಪರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಬಹುದು."</string>
     <string name="header_category_system" msgid="1665516346845259058">"ಸಿಸ್ಟಂ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"ಸೇವೆಯಲ್ಲಿದೆ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ಸೇವೆಯಲ್ಲಿಲ್ಲ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ಮುಂದುವರಿಯಲು ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ಆ್ಯಪ್ ಬಳಸುವುದನ್ನು ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಫೋಲ್ಡ್ ಮಾಡಿ ಮತ್ತು ಫ್ರಂಟ್ ಡಿಸ್‌ಪ್ಲೇಯಲ್ಲಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಅಥವಾ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಗಲು ಕೆಲವು ಸೆಕಂಡ್‌ಗಳ ಕಾಲ ನಿರೀಕ್ಷಿಸಿ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ಸಂಬಂಧಿತ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ರಿಂಗ್‌ಟೋನ್ ಮತ್ತು ಅಲಾರಾಂಗಳು"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"ಕರೆಗಳ ಸಮಯದಲ್ಲಿ ಆಡಿಯೋ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"ಮಾಧ್ಯಮ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"ಅಧಿಸೂಚನೆಗಳು, ಇತರೆ ಸಿಸ್ಟಂ ಧ್ವನಿ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"ಮಾಧ್ಯಮ ಮತ್ತು ಸಿಸ್ಟಮ್ ಶಬ್ದಗಳು"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"ನೋಟಿಫಿಕೇಶನ್‌ಗಳು"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ಡೀಫಾಲ್ಟ್ ಆಗಿ, ಆಡಿಯೊ ಔಟ್‌ಪುಟ್ ಅನ್ನು ಪ್ರತ್ಯೇಕ ಆ್ಯಪ್‌ಗಳಿಂದ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"ಹೆಸರಿಲ್ಲದ ಬ್ಲೂಟೂತ್‌‌ ಸಾಧನ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"ಹುಡುಕಲಾಗುತ್ತಿದೆ"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ಸ್ಟೈಲಸ್"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ಟೈಲ್ ಬಟನ್ ಒತ್ತಿರಿ"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್‌)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"ಸಮೀಪದ ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್‌ಗಳು"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್‌ಗಳು"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR ಕೋಡ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"ಸಮೀಪದ ಆಡಿಯೋ ಸ್ಟ್ರೀಮ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ."</string>
     <string name="date_and_time" msgid="1788358029823431692">"ದಿನಾಂಕ ಮತ್ತು ಸಮಯ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ಪ್ರಾಕ್ಸಿ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ತೆರವುಗೊಳಿಸಿ"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ಪ್ರತಿ ಆ್ಯಪ್‌ಗೆ ಭಾಷೆಯನ್ನು ಆಯ್ಕೆಮಾಡಲು, ಆ್ಯಪ್ ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ಆ್ಯಪ್ ಭಾಷೆಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ಸಿಸ್ಟಂ ಭಾಷೆಯನ್ನು %s ಗೆ ಬದಲಿಸಬೇಕೇ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"ಆದ್ಯತೆಯ ಭಾಷೆಗಳಿಗೆ %s ಅನ್ನು ಸೇರಿಸಬೇಕೆ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ನೀವು ಈ ಭಾಷೆಗೆ ಆದ್ಯತೆ ನೀಡುತ್ತೀರಿ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಇದು ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ವೆಬ್‌ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"ನಿಮ್ಮ ಸಾಧನದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಮತ್ತು ಪ್ರಾದೇಶಿಕ ಆದ್ಯತೆಗಳು ಬದಲಾಗುತ್ತವೆ."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ಬದಲಾಯಿಸಿ"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ಲಭ್ಯವಿಲ್ಲ"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ಶನಿವಾರ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ಒಂದು ಆ್ಯಪ್ ಪ್ರಾದೇಶಿಕ ಆದ್ಯತೆಗಳನ್ನು ಬೆಂಬಲಿಸದಿದ್ದರೆ, ಅದು ತನ್ನ ಡೀಫಾಲ್ಟ್ ಭಾಷೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ಭಾಷೆಯ ಆದ್ಯತೆಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ಹೆಚ್ಚುವರಿ ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ಸೇವಾ ನಿಯಮಗಳು"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"ನಿಮ್ಮನ್ನು ಹೇಗೆ ಸಂಬೋಧಿಸಬೇಕೆಂದು ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"ಇತರರು ನಿಮ್ಮನ್ನು ಹೇಗೆ ಸಂಬೋಧಿಸಬೇಕು ಎಂಬುದನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು, ಆ್ಯಪ್‌ಗಳು ಸಂಬೋಧಿಸುವುದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ನಿಯಮಗಳನ್ನು ಬಳಸಬಹುದು."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ಮಹಿಳೆಯರಿಗಾಗಿ"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ಪುರುಷರಿಗಾಗಿ"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ನ್ಯೂಟ್ರಲ್‌‌"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ಆಯ್ಕೆಮಾಡಿದ ಭಾಷೆಯನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?}one{ಆಯ್ಕೆಮಾಡಿದ ಭಾಷೆಗಳನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?}other{ಆಯ್ಕೆಮಾಡಿದ ಭಾಷೆಗಳನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ಪಠ್ಯವನ್ನು ಮತ್ತೊಂದು ಭಾಷೆಯಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ಎಲ್ಲಾ ಭಾಷೆಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ಸ್ಥಳ"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ಸ್ಥಳ ಬಳಸಿ"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ಆಫ್"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ಆನ್ ಆಗಿದೆ - # ಆ್ಯಪ್ ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿದೆ}one{ಆನ್ ಆಗಿದೆ - # ಆ್ಯಪ್‌ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}other{ಆನ್ ಆಗಿದೆ - # ಆ್ಯಪ್‌ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್ ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿದೆ}one{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್‌ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}other{ಆನ್ ಆಗಿದೆ / # ಆ್ಯಪ್‌ಗಳು ಸ್ಥಳಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಹೊಂದಿವೆ}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ಲೋಡ್ ಆಗುತ್ತಿದೆ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳ ಅನುಮತಿ ಹೊಂದಿರುವ ಆ್ಯಪ್‌ಗಳು ಕನೆಕ್ಟ್ ಮಾಡಿರುವ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ನಿರ್ಧರಿಸಬಹುದು."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸೇವೆಗಳಿಗೆ ಸ್ಥಳ ಪ್ರವೇಶಪಡೆಯುವಿಕೆ ಆಫ್ ಆಗಿದೆ. ನೀವು ತುರ್ತು ಸಂಖ್ಯೆಗೆ ಕರೆ ಮಾಡಿದಾಗ ಅಥವಾ ಪಠ್ಯ ಕಳುಹಿಸಿದಾಗ ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ತುರ್ತಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸುವವರಿಗೆ ಕಳುಹಿಸಬಹುದು."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ಸ್ಥಳ ಆ್ಯಕ್ಸೆಸ್ ಬದಲಿಸಲು, ಸೆಟ್ಟಿಂಗ್ &gt; ಭದ್ರತೆ ಹಾಗೂ ಗೌಪ್ಯತೆ &gt; ಗೌಪ್ಯತೆ ನಿಯಂತ್ರಣಗಳಿಗೆ ಹೋಗಿ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ಉತ್ತಮ ಫಲಿತಾಂಶಗಳಿಗಾಗಿ, Google ಗಾಗಿ ತಯಾರಿಸಲಾಗಿದೆ ಎಂದು ಪ್ರಮಾಣೀಕರಿಸಿದ ಸ್ಕ್ರೀನ್ ಗಾರ್ಡ್ ಅನ್ನು ಬಳಸಿ. ಇತರ ಸ್ಕ್ರೀನ್ ಗಾರ್ಡ್‌ಗಳನ್ನು ಬಳಸಿದರೆ ನಿಮ್ಮ ಮಗುವಿನ ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ವಾಚ್ ಅನ್‌ಲಾಕ್"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"ನೀವು ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟ್ ಮಾಡಿದಾಗ, ನೀವು ಫೇಸ್ ಮಾಸ್ಕ್ ಧರಿಸಿದಾಗ ಅಥವಾ ಕತ್ತಲೆ ಪ್ರದೇಶದಲ್ಲಿದ್ದಾಗ ನಿಮ್ಮ ಫೋನ್ ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್ನು ಕೇಳುತ್ತದೆ.\n\nನಿಮ್ಮ ಮುಖ ಅಥವಾ ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ವಾಚ್‌ನೊಂದಿಗೆ ನೀವು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"ನಿಮ್ಮ ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ವಾಚ್‌ನೊಂದಿಗೆ ನೀವು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"ನಿಮ್ಮ ಮುಖವನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ ನಿಮ್ಮ ವಾಚ್‌ನೊಂದಿಗೆ ನೀವು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"ನೀವು ಫೇಸ್ ಅನ್‌ಲಾಕ್ ಮತ್ತು ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿದಾಗ, ನೀವು ಫೇಸ್ ಮಾಸ್ಕ್ ಧರಿಸಿರುವಾಗ ಅಥವಾ ಕತ್ತಲೆ ಪ್ರದೇಶದಲ್ಲಿದ್ದಾಗ ನಿಮ್ಮ ಫೋನ್ ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್ನು ಕೇಳುತ್ತದೆ.\n\nನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ವಾಚ್ ಅನ್‌ಲಾಕ್ ಮತ್ತೊಂದು ಅನುಕೂಲಕರ ಮಾರ್ಗವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಬೆರಳುಗಳು ಒದ್ದೆಯಾಗಿರುವಾಗ ಅಥವಾ ಮುಖವನ್ನು ಗುರುತಿಸದಿದ್ದಾಗ."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ವಾಚ್ ಅನ್‌ಲಾಕ್ ಮತ್ತೊಂದು ಅನುಕೂಲಕರ ಮಾರ್ಗವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅನ್ನು ಗುರುತಿಸದಿದ್ದಾಗ."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ವಾಚ್ ಅನ್‌ಲಾಕ್ ಮತ್ತೊಂದು ಅನುಕೂಲಕರ ಮಾರ್ಗವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಮುಖವನ್ನು ಗುರುತಿಸದಿದ್ದಾಗ."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ಇದಕ್ಕಾಗಿ ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅಥವಾ ವಾಚ್ ಅನ್ನು ಬಳಸಿ"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ಇದಕ್ಕಾಗಿ ಫೇಸ್ ಅಥವಾ ವಾಚ್ ಬಳಸಿ"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ಇದಕ್ಕಾಗಿ ಫೇಸ್, ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್ ಅಥವಾ ವಾಚ್ ಬಳಸಿ"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ಮುಖ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ಮುಖ, ಫಿಂಗರ್‌‍‍‍ಪ್ರಿಂಟ್‌ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ಮುಖ ಮತ್ತು ಫಿಂಗರ್‌‍‍‍ಪ್ರಿಂಟ್‌ಗಳನ್ನು, ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ರಿಮೋಟ್ Authenticator ಅನ್‌ಲಾಕ್"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ವಾಚ್ ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ನಿಮ್ಮ ವಾಚ್ ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ಅದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ನಿಮ್ಮ ವಾಚ್ ಅನ್‌ಲಾಕ್ ಆಗಿರಬೇಕು, ನಿಮ್ಮ ಮಣಿಕಟ್ಟಿನಲ್ಲಿ ಧರಿಸಿರಬೇಕು ಹಾಗೂ ಈ ಫೋನ್‌ನ ಸಮೀಪದಲ್ಲಿರಬೇಕು. ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ಮಣಿಕಟ್ಟಿನಲ್ಲಿ ಧರಿಸಿರುವಾಗ ಅದನ್ನು ಪುನಃ ನೀವು ಅನ್‌ಲಾಕ್ ಮಾಡಬೇಕಾಗಿಲ್ಲ."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ಈ ಫೋನ್ ಅನ್‌ಲಾಕ್ ಆದಾಗ, ನಿಮ್ಮ ವಾಚ್‌ನಲ್ಲಿ ನೀವು ಸೂಚನೆ ಪಡೆಯುತ್ತೀರಿ. ನೀವು ಉದ್ದೇಶಿಸದೇ ಇದ್ದಾಗಲೂ ಅದು ಅನ್‌ಲಾಕ್ ಆಗಿದ್ದರೆ, ಫೋನ್ ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಲಾಕ್ ಮಾಡಲು ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ಇದು ನಿಮ್ಮ ನಿಯಂತ್ರಣದಲ್ಲಿದೆ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಯಾವಾಗ ಬೇಕಾದರೂ ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ವಾಚ್ ಅನ್‌ಲಾಕ್‌ನಿಂದ ನೀವು ತೆಗೆದುಹಾಕಬಹುದು"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ಲಭ್ಯವಿರುವ ವಾಚ್‌ಗಳು"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ರದ್ದುಮಾಡಿ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ದೃಢೀಕರಿಸಿ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ನೀವು ಸಿದ್ಧರಾಗಿರುವಿರಿ!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ನೀವು ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ ಸ್ವೈಪ್ ಅಪ್ ಮಾಡಿದಾಗ ಅಥವಾ ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗ ಈ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ನೀವು ಈಗ ಬಳಸಬಹುದು"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ಮುಗಿದಿದೆ"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ವಾಚ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ನೀವು ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿದಾಗ ಅಥವಾ ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗ ಈ ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ನೀವು ಬಳಸಬಹುದು"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ವಾಚ್ ಅನ್‌ಲಾಕ್ ಅನ್ನು ಬಳಸಲು, ನಿಮ್ಮ ವಾಚ್ ಅನ್‌ಲಾಕ್ ಆಗಿರಬೇಕು, ನಿಮ್ಮ ಮಣಿಕಟ್ಟಿನಲ್ಲಿ ಧರಿಸಿರಬೇಕು, ಸಮೀಪದಲ್ಲಿರಬೇಕು ಮತ್ತು ಈ ಫೋನ್‌ಗೆ ಕನೆಕ್ಟ್ ಆಗಿರಬೇಕು. ಕನೆಕ್ಷನ್‌ನಲ್ಲಿ ಅಡಚಣೆ ಉಂಟಾದರೆ, ನೀವು ವಾಚ್ ಅನ್‌ಲಾಕ್ ಬಳಸುವ ಮೊದಲು ಫೋನ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\n\nನೆನಪಿಡಿ:\nನೀವು ಒಂದು ಬಾರಿಗೆ ಒಂದು ವಾಚ್ ಅನ್ನು ಮಾತ್ರ ಸೆಟಪ್ ಮಾಡಬಹುದು. ಬೇರೊಂದು ವಾಚ್ ಅನ್ನು ಸೇರಿಸಲು, ಪ್ರಸ್ತುತ ಇರುವ ವಾಚ್ ಅನ್ನು ಮೊದಲು ತೆಗೆದುಹಾಕಿ."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ವಾಚ್ ಅನ್‌ಲಾಕ್ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ವಾಚ್ ಅನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ವಾಚ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ಫಿಂಗರ್ ಪ್ರಿಂಟ್ &amp; ಫೇಸ್ ಅನ್‌ಲಾಕ್"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ಕೆಲಸಕ್ಕಾಗಿ ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ಸೆಟಪ್ ಅಗತ್ಯವಿದೆ"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ಭದ್ರತೆ"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ಗೌಪ್ಯತೆ"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ಖಾಸಗಿ ಸ್ಪೇಸ್"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ಖಾಸಗಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಲಾಕ್ ಮಾಡಿ ಮತ್ತು ಮರೆಮಾಡಿ"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ನೀವು ಮರೆಮಾಡಲು ಅಥವಾ ಲಾಕ್ ಮಾಡಬಹುದಾದ ಪ್ರತ್ಯೇಕ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಖಾಸಗಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಇರಿಸಿ"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಲಾಕ್"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುವ ರೀತಿಯಲ್ಲಿಯೇ ನೀವು ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು ಅಥವಾ ಬೇರೆ ಲಾಕ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ಸಾಧನದ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ಫೇಸ್ ಮತ್ತು ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ಫೇಸ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ಸೆಟಪ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್‌ನ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್‌ನ ಫೇಸ್ ಅನ್‌ಲಾಕ್"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"ಅನ್‌ಲಾಕ್ ಮಾಡುವ ವಿಧಾನಗಳು"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ಸಾಧನದ ಸ್ಕ್ರೀನ್ ಲಾಕ್‌ ಅನ್ನೇ ಬಳಸಲಾಗುತ್ತಿದೆ"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ಖಾಸಗಿ ಸ್ಪೇಸ್‌ಗೆ ಹೊಸ ಲಾಕ್ ಆರಿಸಬೇಕೇ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲಾಕ್ ಮಾಡಿ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲಾಕ್ ಮಾಡಿ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"ನೀವು ಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ ನಿಮ್ಮ ಸಾಧನವನ್ನು ಬಳಸದಿದ್ದರೆ ನಿಮ್ಮ ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ನೀವು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲಾಕ್ ಮಾಡಬಹುದು"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ಪ್ರತಿ ಬಾರಿ ಸಾಧನ ಲಾಕ್ ಆಗುತ್ತದೆ"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 ನಿಮಿಷಗಳ ನಿಷ್ಕ್ರಿಯತೆಯ ನಂತರ"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ಎಂದಿಗೂ ಬೇಡ"</string>
+    <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_deleted" msgid="7825768516955610897">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅಳಿಸಲಾಗಿದೆ"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ಪ್ರೈವೆಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಬಳಸಲು, ಈ ಸಾಧನದಲ್ಲಿ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ರದ್ದುಗೊಳಿಸಿ"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ರದ್ದುಗೊಳಿಸಿ"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ನೀವು ಮರೆಮಾಡಲು ಅಥವಾ ಲಾಕ್ ಮಾಡಬಹುದಾದ ಪ್ರತ್ಯೇಕ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಖಾಸಗಿ ಆ್ಯಪ್‌ಗಳನ್ನು ಇರಿಸಿ"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ನಿಮ್ಮ ಆ್ಯಪ್‌ಗಳ ಪಟ್ಟಿಯ ಕೆಳಗಿನಿಂದ ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್‌ ಅನ್ನು ನೀವು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಬಹುದು"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ಖಾಸಗಿ ಸ್ಪೇಸ್‌ನಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳನ್ನು ಲಾಕ್‌ ಮೂಲಕ ರಕ್ಷಿಸಲಾಗಿದೆ"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಲಾಕ್ ಆಗಿರುವಾಗ ಅದರಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳಿಂದ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಿರುವಾಗ ಅನುಮತಿ ನಿರ್ವಾಹಕ, ಗೌಪ್ಯತೆ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್‌ನಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳು ಗೋಚರಿಸುವುದಿಲ್ಲ.\n\nನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಹೊಸ ಸಾಧನಕ್ಕೆ ಸರಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನೀವು ಮತ್ತೊಂದು ಸಾಧನದಲ್ಲಿ ಅದನ್ನು ಬಳಸಲು ಬಯಸಿದರೆ, ನೀವು ಇನ್ನೊಂದು ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\n\nನಿಮ್ಮ ಸಾಧನವನ್ನು ಕಂಪ್ಯೂಟರ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡುವ ಅಥವಾ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಹಾನಿಕಾರಕ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವ ಯಾರಾದರೂ ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಲಾಕ್ ಆಗಿರುವಾಗ ಅದರಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳಿಂದ ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ಮರೆಮಾಡಲಾಗುತ್ತದೆ"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್ ಆ್ಯಪ್‌ಗಳಿಂದ ಫೋಟೋಗಳು ಅಥವಾ ಫೈಲ್‌ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"ಕೆಲವು ಆ್ಯಪ್‌ಗಳನ್ನು ಈಗಾಗಲೇ ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಬಳಸಬೇಕೇ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡುವ ರೀತಿಯಲ್ಲಿಯೇ ನೀವು ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು ಅಥವಾ ಬೇರೆ ಲಾಕ್ ಅನ್ನು ಆರಿಸಬಹುದು"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಅನ್ನು ಬಳಸಿ"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"ಹೊಸ ಲಾಕ್ ಆರಿಸಿ"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"ಎಲ್ಲವೂ ಸಿದ್ಧವಾಗಿದೆ!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು, ನಿಮ್ಮ ಆ್ಯಪ್‌ಗಳ ಪಟ್ಟಿಗೆ ಹೋಗಿ, ನಂತರ ಕೆಳಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ಮುಗಿದಿದೆ"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಹುಡುಕಲು ಕೆಳಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್‌ಗಾಗಿ ಲಾಕ್ ಅನ್ನು ಆರಿಸಿ"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ನೀವು ಅನ್‌ಲಾಕ್ ಮಾಡಬಹುದು. ಭದ್ರತೆಗಾಗಿ, ಈ ಆಯ್ಕೆಗೆ ಬ್ಯಾಕಪ್ ಲಾಕ್‌ನ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ನಿಮ್ಮ ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್‌ಗೆ ಪಿನ್ ಸೆಟ್‌ ಮಾಡಿ"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್‌ಗೆ ಪಾಸ್‌ವರ್ಡ್ ಸೆಟ್‌ ಮಾಡಿ"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ಪ್ರೈವೇಟ್ ಸ್ಪೇಸ್‌ಗೆ ಪ್ಯಾಟರ್ನ್ ಸೆಟ್‌ ಮಾಡಿ"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ತೋರಿಸಲು (ಅಂತಿಮ UX ಅಲ್ಲ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಆ್ಯಪ್ ಅನ್ನು ತೆರೆಯಿರಿ"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ಲಾಕ್ ಆಗಿರುವಾಗ, ಭದ್ರತೆ &amp; ಗೌಪ್ಯತೆ &gt; ಖಾಸಗಿ ಸ್ಪೇಸ್ &gt; Hide ಖಾಸಗಿ ಸ್ಪೇಸ್ ಅನ್ನು ಮರೆಮಾಡಿ ಎಂಬುದರ ಮೇಲೆ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"ಟಾಗಲ್ ಲಾಕ್ ಮಾಡಿದ ನಂತರ ಖಾಸಗಿ ಸ್ಪೇಸ್ ಮರೆಮಾಡಿ ಅನ್ನು ಆಫ್ ಮಾಡಿ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"ಗೂಗ್ಲರ್‌ಗಳಿಗೆ ಸೂಚನೆ: ಈ ಫೀಚರ್‌ನ ಅಭಿವೃದ್ಧಿ ಕಾರ್ಯ ಇನ್ನೂ ಪ್ರಗತಿಯಲ್ಲಿದೆ"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ನಿಮಗೆ ಇತರ ಸಾಧನದಲ್ಲಿ ಈ ಪಾಸ್‌ಕೀಯನ್ನು ಟೈಪ್‌ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ಸಂಯೋಜಿತ ಪ್ಯಾಕೇಜ್‌ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಸಾಧನಗಳಿಗೆ ಜೋಡಿಸುವುದನ್ನು ಮರೆಯದಿರಿ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆ ಇತಿಹಾಸಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆ ಇತಿಹಾಸಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಸಹ ಅನುಮತಿಸಿ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ಮಾಹಿತಿಯನ್ನು ಕರೆ ಪ್ರಕಟಣೆಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ಲಭ್ಯವಿರುವ ಸಾಧನಗಳು"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ಏರ್‌ಪ್ಲೇನ್ ಮೋಡ್‌ನಲ್ಲಿ"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ಸಾರ್ವಜನಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿದ್ದಾಗ ಸೂಚಿಸಿ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ಅಧಿಕ-ಗುಣಮಟ್ಟದ ಸಾರ್ವಜನಿಕ ನೆಟ್‌ವರ್ಕ್ ಲಭ್ಯವಿರುವಾಗ ಸೂಚನೆ ನೀಡಿ"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ಎಂಬುದು ಹಳೆಯ ಭದ್ರತಾ ಪ್ರೊಟೊಕಾಲ್ ಆಗಿದ್ದು ಅದು ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿದೆ"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"ನಿಮ್ಮ ವಾಹಕವು WEP ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಅವುಗಳು ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿವೆ"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"ವೈ-ಫೈ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಮಾಡಿ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"ಉಳಿಸಿರುವ ಅಧಿಕ-ಗುಣಮಟ್ಟದ ನೆಟ್‌ವರ್ಕ್‌ಗಳ ಸಮೀಪದಲ್ಲಿರುವಾಗ, ಉದಾಹರಣೆಗೆ ನಿಮ್ಮ ಮನೆಯ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ವೈ-ಫೈ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆನ್ ಆಗುತ್ತದೆ"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ಸ್ಥಳ ಆಫ್ ಆಗಿರುವುದರಿಂದ ಲಭ್ಯವಿಲ್ಲ. "<annotation id="link">"ಸ್ಥಳ"</annotation>" ಆನ್ ಮಾಡಿ."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ವೈ-ಫೈ ಆಫ್‌ ಆಗಿದ್ದರೂ ಸಹ, ಯಾವ ಸಮಯದಲ್ಲಾದರೂ ವೈ-ಫೈ ನೆಟ್‍‍ವರ್ಕ್‍ಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್‌ ಮಾಡಲು ಆ್ಯಪ್‍‍ಗಳಿಗೆ ಮತ್ತು ಸೇವೆಗಳಿಗೆ ವೈ-ಫೈ ಸ್ಕ್ಯಾನಿಂಗ್ ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ: ಸ್ಥಳ ಆಧಾರಿತ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಮತ್ತು ಸೇವೆಗಳನ್ನು ಸುಧಾರಿಸಲು ಇದನ್ನು ಬಳಸಬಹುದಾಗಿದೆ."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ಆನ್"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"ವೈ-ಫೈ ಸ್ಕ್ಯಾನಿಂಗ್ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ಈ ನೆಟ್‌ವರ್ಕ್ ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿರುವ ಹಳೆಯ ಭದ್ರತಾ ಪ್ರೊಟೊಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ಈ ನೆಟ್‌ವರ್ಕ್ WEP ಎಂಬ ಹಳೆಯ ಭದ್ರತಾ ಪ್ರೊಟೊಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿದೆ. ಹೇಗಿದ್ದರೂ ಕನೆಕ್ಟ್ ಮಾಡಲು, ನೀವು WEP ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗೆ ಅನುಮತಿ ನೀಡಬಹುದು."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ನಿಮ್ಮ ವಾಹಕವು ಈ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಅದು ಕಡಿಮೆ ಸುರಕ್ಷಿತವಾಗಿರುವ ಹಳೆಯ ಭದ್ರತಾ ಪ್ರೊಟೊಕಾಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP ಅನ್ನು ಅನುಮತಿಸಿ"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ಮುಚ್ಚಿರಿ"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"ಸುಧಾರಿತ ಆಯ್ಕೆಗಳು"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ಡ್ರಾಪ್-ಡೌನ್ ಪಟ್ಟಿಯ ಸುಧಾರಿತ ಆಯ್ಕೆಗಳು"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ವಿಸ್ತರಿಸಿ"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"ವೈ-ಫೈ ನಲ್ಲಿಯೇ ಇರಿ"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ಮತ್ತೊಮ್ಮೆ ತೋರಿಸಬೇಡಿ"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"ವೈ-ಫೈ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ನೆಟ್‌ವರ್ಕ್‌ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ನೆಟ್‌ವರ್ಕ್ ವ್ಯಾಪ್ತಿಯಲ್ಲಿಲ್ಲ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ಮರೆತುಬಿಡಿ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ಮಾರ್ಪಡಿಸಿ"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ನೆಟ್‌ವರ್ಕ್‌ ಮರೆಯಲು ವಿಫಲವಾಗಿದೆ"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ಸೇವ್ ಮಾಡಿ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ನೆಟ್‌ವರ್ಕ್‌ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ರದ್ದುಮಾಡಿ"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"ವೈ‑ಫೈ"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ಮೊಬೈಲ್ ಡೇಟಾ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ಇಥರ್ನೆಟ್"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ಚಾರ್ಜಿಂಗ್ ಆಗುತ್ತಿದೆ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ಚಾರ್ಜಿಂಗ್ ಆಗುತ್ತಿದೆ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಕನೆಕ್ಷನ್"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"ಕನೆಕ್ಷನ್ ಸಾಮರ್ಥ್ಯ"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ಸೇವ್ ಮಾಡಿದ ನೆಟ್‌ವರ್ಕ್‌"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"ಯಾವುದೇ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೊಂದಿಸಿಲ್ಲ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಹೆಸರು"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಪಾಸ್‌ವರ್ಡ್"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP ಬ್ಯಾಂಡ್"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹಾಟ್‌ಸ್ಪಾಟ್ ಆಫ್ ಮಾಡಿ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"ಯಾವುದೇ ಸಾಧನಗಳನ್ನು ಸಂಪರ್ಕಿಸದಿದ್ದಾಗ"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"ಹೊಂದಾಣಿಕೆಯನ್ನು ವಿಸ್ತರಿಸಿ"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ಗೇಮ್‌ಗಳ ಡೀಫಾಲ್ಟ್ ಫ್ರೇಮ್ ರೇಟ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ಗೇಮ್‌ಗಳ ಗರಿಷ್ಠ ಫ್ರೇಮ್ ರೇಟ್ ಅನ್ನು <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz ಗೆ ಸೀಮಿತಗೊಳಿಸುವುದನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"ಸ್ಮೂತ್ ಡಿಸ್‌ಪ್ಲೇ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ಯಾರಾದರೂ ಸ್ಕ್ರೀನ್‌ ಕಡೆಗೆ ನೋಡುತ್ತಿದ್ದಾರೆಯೇ ಎಂಬುದನ್ನು ವೀಕ್ಷಿಸಲು, ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆ ಮುಂಬದಿ ಕ್ಯಾಮರಾವನ್ನು ಬಳಸುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಸಾಧನದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ಎಂದಿಗೂ ಸಂಗ್ರಹಿಸುವುದಿಲ್ಲ ಅಥವಾ Google ಗೆ ಕಳುಹಿಸುವುದಿಲ್ಲ."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆನ್ ಮಾಡಿ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ಅದನ್ನು ನೋಡುವಾಗ, ಪರದೆಯನ್ನು ಆನ್ ಆಗಿರಿಸಿ"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ದೀರ್ಘವಾದ ಸ್ಕ್ರೀನ್ ಟೈಮ್‌ಔಟ್ ಹೆಚ್ಚು ಬ್ಯಾಟರಿಯನ್ನು ಬಳಸುತ್ತದೆ."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ಕ್ಯಾಮರಾ ಲಾಕ್ ಆಗಿದೆ"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ಮುಖ ಪತ್ತೆಹಚ್ಚುವಿಕೆಗಾಗಿ ಕ್ಯಾಮರಾ ಅನ್‌ಲಾಕ್ ಮಾಡಿರಬೇಕು"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ಸ್ಕ್ರೀನ್ ಆನ್ ಆಗಿರುವಿಕೆಗಾಗಿ ಕ್ಯಾಮರಾವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಬೇಕು"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ಸಿಮ್ ಸ್ಲಾಟ್ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ಸಿಮ್ ಸ್ಲಾಟ್ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ಪ್ರೈಮರಿ)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"ವೀಕ್ಷಿಸಲು, ಉಳಿಸಲಾದ ನೆಟ್‌ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"ನಿಮಿ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL ಆವೃತ್ತಿ"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ಬ್ಯಾಟರಿ ಮಟ್ಟ"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"ಸಮುದಾಯ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"ಸಮುದಾಯದ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"ಸೇವ್ ಮಾಡಿ"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ರದ್ದುಮಾಡಿ"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"ಹೆಸರಿನ ಕ್ಷೇತ್ರವು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ಖಾಲಿ ಇರುವಂತಿಲ್ಲ."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ಕ್ಷೇತ್ರವು 3 ಅಂಕಿಗಳಾಗಿರಬೇಕು."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ಕ್ಷೇತ್ರವು 2 ಅಥವಾ 3 ಅಂಕಿಗಳಾಗಿರಬೇಕು."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"%s ಪ್ರಕಾರದ APN ಗಳನ್ನು ಸೇರಿಸಲು ವಾಹಕ ಅನುಮತಿಸುವುದಿಲ್ಲ."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ಫೀಲ್ಡ್‌ ಮಾನ್ಯವಾಗಿರಬೇಕು."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ಡಿಫಾಲ್ಟ್ APN ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ."</string>
     <string name="menu_restore" msgid="4310539620115151551">"ಡೀಫಾಲ್ಟ್‌ಗೆ  ಮರುಹೊಂದಿಸಿ"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ಡಿಫಾಲ್ಟ್ APN ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಮರುಹೊಂದಿಕೆಯು ಪೂರ್ಣಗೊಂಡಿದೆ."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ರೀಸೆಟ್ ಮಾಡಿ"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ಬ್ಲೂಟೂತ್ ಮತ್ತು ವೈ-ಫೈ ಅನ್ನು ರೀಸೆಟ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM ಗಳನ್ನು ಅಳಿಸಿಹಾಕಿ"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ಇದು ಯಾವುದೇ ಮೊಬೈಲ್ ಸೇವಾ ಪ್ಲಾನ್‌ಗಳನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ. ಬದಲಾಯಿಸಿದ SIM ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿಕೊಳ್ಳಲು, ನಿಮ್ಮ ವಾಹಕವನ್ನು ಸಂಪರ್ಕಿಸಿ."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಹೊಂದಿಸಿ"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"ಎಲ್ಲಾ ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಹೊಂದಿಸುವುದೇ? ನೀವು ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"ಎಲ್ಲಾ ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಹೊಂದಿಸುವುದೇ ಮತ್ತು eSIM ಗಳನ್ನು ಅಳಿಸುವುದೇ? ನೀವು ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ಮರುಹೊಂದಿಸುವುದೇ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ಈ ಬಳಕೆದಾರರಿಗೆ ನೆಟ್‌ವರ್ಕ್ ಮರುಹೊಂದಿಕೆ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ನೆಟ್‌ವರ್ಕ್‌ ಸೆಟ್ಟಿಂಗ್‌ ಮರುಹೊಂದಿಸಲಾಗಿದೆ"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM ಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ದೋಷವೊಂದರ ಕಾರಣ eSIM ಗಳನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.\n\nನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ಎಲ್ಲಾ ಡೇಟಾ ಅಳಿಸಿ (ಫ್ಯಾಕ್ಟರಿ ರೀಸೆಟ್)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ಡೇಟಾ ಅಳಿಸಿ (ಫ್ಯಾಕ್ಟರಿ ರಿಸೆಟ್)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"ಸಂಗೀತ"</li>\n<li>"ಫೋಟೋಗಳು"</li>\n<li>"ಬಳಕೆದಾರರ ಇತರ ಡೇಟಾ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"ಇ-ಸಿಮ್‌ಗಳು"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ಇದು ನಿಮ್ಮ ಮೊಬೈಲ್ ಸೇವಾ ಯೋಜನೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ನಿಮ್ಮ ಎಲ್ಲಾ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿ ಮತ್ತು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳು ಮತ್ತು ಸಿಮ್‌ಗಳು ಸೇರಿದಂತೆ, ನಿಮ್ಮ ಎಲ್ಲಾ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ನೀವು ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಬೇಕೇ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ಈ ಬಳಕೆದಾರರಿಗೆ ಫ್ಯಾಕ್ಟರಿ ರಿಸೆಟ್ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"ಅಳಿಸಲಾಗುತ್ತಿದೆ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ಹಾಟ್‌ಸ್ಪಾಟ್, USB, ಬ್ಲೂಟೂತ್, ಇಥರ್ನೆಟ್"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"ಇತರ ಸಾಧನಗಳ ಜೊತೆಗೆ ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಿಲ್ಲ"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ಆಫ್ ಆಗಿದೆ"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ಟೆಥರಿಂಗ್‌"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ವೈ-ಫೈ ಹಾಟ್‌ಸ್ಪಾಟ್ ಬಳಸಬೇಡಿ"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB ಮೂಲಕ ಮಾತ್ರ ಇಂಟರ್ನೆಟ್ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ಬ್ಲೂಟೂತ್ ಮೂಲಕ ಮಾತ್ರ ಇಂಟರ್ನೆಟ್ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಇಥರ್ನೆಟ್ ಮೂಲಕ ಮಾತ್ರ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB ಮತ್ತು ಬ್ಲೂಟೂತ್ ಮೂಲಕ ಮಾತ್ರ ಇಂಟರ್ನೆಟ್ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"ಇಂಟರ್ನೆಟ್ ಅನ್ನು USB ಮತ್ತು ಬ್ಲೂಟೂತ್ ಮೂಲಕ ಮಾತ್ರ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಬ್ಲೂಟೂತ್ ಮತ್ತು ಇಥರ್ನೆಟ್ ಮೂಲಕ ಮಾತ್ರ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"ಇಂಟರ್ನೆಟ್ ಅನ್ನು USB, ಬ್ಲೂಟೂತ್ ಮತ್ತು ಇಥರ್ನೆಟ್ ಮೂಲಕ ಮಾತ್ರ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ಟೆಥರಿಂಗ್"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ಬ್ಲೂಟೂತ್‌‌ ಟೆಥರಿಂಗ್‌"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ಇಥರ್ನೆಟ್ ಟೆಥರಿಂಗ್"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ನಿಮ್ಮ ವೈ-ಫೈ ಅಥವಾ ಮೊಬೈಲ್ ಡೇಟಾ ಕನೆಕ್ಷನ್ ಮೂಲಕ ಇತರ ಸಾಧನಗಳಿಗೆ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಒದಗಿಸಲು ಹಾಟ್‌ಸ್ಪಾಟ್ ಮತ್ತು ಟೆಥರಿಂಗ್ ಅನ್ನು ಬಳಸಿ. ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳ ಜೊತೆಗೆ ವಿಷಯಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಆ್ಯಪ್‌ಗಳು ಹಾಟ್‌ಸ್ಪಾಟ್ ಅನ್ನು ಸಹ ರಚಿಸಬಹುದು."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ಸಹಾಯ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"ಮೊಬೈಲ್‌ ನೆಟ್‌ವರ್ಕ್‌"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ಮೊಬೈಲ್ ಯೋಜನೆ"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS ಅಪ್ಲಿಕೇಶನ್"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ಅಪ್ಲಿಕೇಶನ್‌ ಬದಲಾಯಿಸುವುದೇ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> ಬದಲಾಗಿ <xliff:g id="NEW_APP">%1$s</xliff:g> ಅನ್ನು ನಿಮ್ಮ SMS ಅಪ್ಲಿಕೇಶನ್‌ ಆಗಿ ಬಳಸುವುದೇ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi ಸಹಾಯಕವನ್ನು ಬದಲಿಸುವುದೇ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="CURRENT_APP">%2$s</xliff:g> ಬದಲಿಗೆ <xliff:g id="NEW_APP">%1$s</xliff:g> ಬಳಸುವುದೇ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕಗಳನ್ನು ನಿರ್ವಹಿಸಲು <xliff:g id="NEW_APP">%s</xliff:g> ಬಳಸುವುದೇ?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ಅಪರಿಚಿತ ಸಿಮ್‌ ಆಪರೇಟರ್‌"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ಯಾವುದೇ ತಿಳಿದಿರುವ ಪೂರೈಕೆಯ ವೆಬ್‌ಸೈಟ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ದಯವಿಟ್ಟು ಸಿಮ್‌ ಕಾರ್ಡ್‌ ಅನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಮರುಪ್ರಾರಂಭಿಸಿ"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"ಇತ್ತೀಚಿನ ಸ್ಥಳ ವಿನಂತಿಗಳು"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್‌ನ ಸ್ಥಳ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ಆ್ಯಪ್ ಸ್ಥಳದ ಅನುಮತಿಗಳು"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ಆ್ಯಕ್ಸೆಸ್ ತೆರವುಗೊಳಿಸು"</string>
     <string name="controls_label" msgid="8671492254263626383">"ನಿಯಂತ್ರಣಗಳು"</string>
     <string name="force_stop" msgid="2681771622136916280">"ಬಲವಂತವಾಗಿ ನಿಲ್ಲಿಸಿ"</string>
+    <string name="archive" msgid="9074663845068632127">"ಆರ್ಕೈವ್ ಮಾಡಿ"</string>
+    <string name="restore" msgid="7622486640713967157">"ಮರುಸ್ಥಾಪಿಸಿ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"ಒಟ್ಟು"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ಅಪ್ಲಿಕೇಶನ್ ಗಾತ್ರ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB ಸಂಗ್ರಹಣೆ ಅಪ್ಲಿಕೇಶನ್"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"ಪ್ಯಾಕೇಜ್‌ನ ಗಾತ್ರವನ್ನು ಲೆಕ್ಕ ಮಾಡಲಾಗಲಿಲ್ಲ."</string>
     <string name="version_text" msgid="7628938665256107608">"ಆವೃತ್ತಿ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ಸರಿಸು"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ಆರ್ಕೈವ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ಅನ್ನು ಆರ್ಕೈವ್ ಮಾಡಲಾಗಿದೆ"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ಮರುಸ್ಥಾಪಿಸುವಿಕೆ ವಿಫಲವಾಗಿದೆ"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ಮತ್ತೊಂದು ರವಾನೆ ಈಗಾಗಲೇ ಪ್ರಗತಿಯಲ್ಲಿದೆ."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ಸಾಕಷ್ಟು ಸಂಗ್ರಹಣೆ ಸ್ಥಳ ಇಲ್ಲ"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ಅಪ್ಲಿಕೇಶನ್ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ಲಭ್ಯವಿರುವ ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್‌ ನಿರ್ವಹಿಸಿ"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ಆಯ್ಕೆಗಳು"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್‌"</string>
     <string name="show_ime" msgid="4334255501724746849">"ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ಬಳಸಿ"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಸಕ್ರಿಯವಾಗಿರುವಾಗ ಅದನ್ನು ಪರದೆಯ ಮೇಲೆ ಇರಿಸಿಕೊಳ್ಳಿ"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"ಬೌನ್ಸ್ ಕೀಗಳು"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿಗಾಗಿ ಬೌನ್ಸ್ ಕೀಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ಸ್ಟಿಕಿ ಕೀಗಳು"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿಗಾಗಿ ಸ್ಟಿಕಿ ಕೀಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ಶಾರ್ಟ್‌ಕಟ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸಿ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಕೀಬೋರ್ಡ್‌ಗಳು ಮತ್ತು ಉಪಕರಣಗಳು"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ಬಳಕೆಯ ಸಮಯದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"ಕೊನೆಯ ಬಾರಿ ಬಳಸಿದ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ಆ್ಯಪ್ ಹೆಸರಿನ ಪ್ರಕಾರ ವಿಂಗಡಿಸಿ"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ಕಳೆದ ಬಾರಿಯ ಬಳಕೆ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ಕೊನೆಯದಾಗಿ ಬಳಸಿರುವುದು"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ಎಂದಿಗೂ ಇಲ್ಲ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ಬಳಕೆ ಸಮಯ"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ಹೇಗಾದರೂ ಮುಂದುವರಿಸಿ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ರದ್ದುಮಾಡಿ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ಹಿಗ್ಗಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ಟ್ರಿಪಲ್-ಟ್ಯಾಪ್ ಮೂಲಕ ಹಿಗ್ಗಿಸಿ"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ಶಾರ್ಟ್‌ಕಟ್ ಮೂಲಕ ಹಿಗ್ಗಿಸಿ"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ಶಾರ್ಟ್‌ಕಟ್ ಮತ್ತು ಮೂರು-ಟ್ಯಾಪ್ ಮೂಲಕ ಹಿಗ್ಗಿಸಿ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> ಕುರಿತು"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ತೆರೆಯಲು ಎರಡು-ಬೆರಳಿನಿಂದ ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ"</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="860548190334486449">"ಹಿಗ್ಗಿಸುವಿಕೆ ಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ನಿಲ್ಲಿಸಲು, ಎರಡು ಬೆರಳಿನಿಂದ ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಎಲ್ಲಿಯಾದರೂ ಡಬಲ್-ಟ್ಯಾಪ್ ಮಾಡಿ."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಫೀಚರ್ ಬಳಸಲು, 3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಸ್ಕ್ರೀನ್ ಕೆಳಭಾಗದಿಂದ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ.\n\nವೈಶಿಷ್ಟ್ಯಗಳ ನಡುವೆ ಬದಲಿಸಲು, 3 ಬೆರಳುಗಳನ್ನು ಬಳಸಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ಅರ್ಥವಾಯಿತು"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಸೆಟ್ಟಿಂಗ್"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ಬಟನ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ಶಾರ್ಟ್‌ಕಟ್"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಗೆಸ್ಚರ್"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ಎರಡು ಬೆರಳಿನ ಡಬಲ್-ಟ್ಯಾಪ್ ಸ್ಕ್ರೀನ್"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ಎರಡು ಬೆರಳಿನ ಡಬಲ್-ಟ್ಯಾಪ್ ಸ್ಕ್ರೀನ್"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ಎರಡು ಬೆರಳುಗಳಿಂದ ಸ್ಕ್ರೀನ್ ಅನ್ನು {0,number,integer} ಬಾರಿ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಮೂರು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಮೂರು ಬಾರಿ ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ಸ್ಕ್ರೀನ್‌ನ ಮೇಲೆ {0,number,integer} ಸಲ ತ್ವರಿತವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡಿ. ಈ ಶಾರ್ಟ್‌ಕಟ್, ನಿಮ್ಮ ಸಾಧನವನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಮತ್ತು ಗೆಸ್ಚರ್ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಬಟನ್ ಬಳಸಿ. 3-ಬಟನ್ ನ್ಯಾವಿಗೇಶನ್‌ನ ಜೊತೆಗೆ ಗೆಸ್ಚರ್ ಲಭ್ಯವಿಲ್ಲ."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಫೀಚರ್‌ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಪ್ರವೇಶಿಸಿ"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ಪ್ರಾರಂಭಿಸಲು"</b>\n"1. ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ\n2. ಒಂದು ಫೀಚರ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ\n3. ಫೀಚರ್ ಪ್ರವೇಶಿಸಲು ನೀವು ಬಟನ್ ಅಥವಾ ಗೆಸ್ಚರ್ ಅನ್ನು ಬಳಸಲು ಬಯಸುತ್ತೀರಾ ಎಂಬುದನ್ನು ಆರಿಸಿ"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ಪ್ರಾರಂಭಿಸಲು"</b>\n"1. ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ\n2. ಒಂದು ಫೀಚರ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ\n3. ಫೀಚರ್ ಅನ್ನು ಪ್ರವೇಶಿಸಲು ಬಟನ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <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_size_title" msgid="5785110470538960881">"ಗಾತ್ರ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ಪವರ್ ಬಟನ್ ಕರೆಯನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ದೊಡ್ಡ ಮೌಸ್ ಪಾಯಿಂಟರ್"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ಮೌಸ್ ಪಾಯಿಂಟರ್ ದೊಡ್ಡದಾಗಿ ಕಾಣುವಂತೆ ಮಾಡಿ"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳನ್ನು ಡಾರ್ಕ್ ಮಾಡಿ"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ತಮ್ಮದೇ ಆದ ಡಾರ್ಕ್ ಥೀಮ್ ಇಲ್ಲದ ಆ್ಯಪ್‌ಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ಕೆಲವು ಆ್ಯಪ್‌ಗಳು ಬಣ್ಣಗಳನ್ನು ಇನ್‌ವರ್ಟ್ ಮಾಡಿದಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿರಬಹುದು."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ಅನಿಮೇಷನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಚಲನೆಗಳನ್ನು ಕಡಿಮೆಮಾಡಿ"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ಮೊನೊ ಆಡಿಯೊ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ಇದು ಆ್ಯಪ್ ಅಥವಾ ಹಾರ್ಡ್‌ವೇರ್ ಸೆನ್ಸರ್‌ನ ಜೊತೆಗಿನ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಬಹುದು, ಮತ್ತು ನಿಮ್ಮ ಪರವಾಗಿ ಆ್ಯಪ್‌ಗಳ ಜೊತೆ ಸಂವಹನ ನಡೆಸಬಹುದು."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ಅನುಮತಿಸಿ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ನಿರಾಕರಿಸಿ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"ನಿಲ್ಲಿಸಿ"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ರದ್ದುಮಾಡಿ"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> ನಿಲ್ಲಿಸಬೇಕೇ?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದರೆ <xliff:g id="SERVICE">%2$s</xliff:g> ಸ್ಥಗಿತವಾಗುತ್ತದೆ."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ಆಫ್ ಮಾಡಿ"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ಆನ್ ಇರಿಸಿ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ಆಫ್ ಮಾಡಬೇಕೆ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"ಯಾವುದೇ ಸೇವೆಗಳನ್ನು ಸ್ಥಾಪಿಸಿಲ್ಲ"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ಯಾವುದೇ ಸೇವೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡಿಲ್ಲ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"ಯಾವುದೇ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಿಲ್ಲ."</string>
     <string name="settings_button" msgid="2195468788019730377">"ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ಬೆಳಕಿನ ಸೂಕ್ಷ್ಮತೆ, ಫೋಟೊಫೋಬಿಯಾ, ಡಾರ್ಕ್ ಥೀಮ್, ಮೈಗ್ರೇನ್, ತಲೆನೋವು, ಓದುವ ಮೋಡ್, ರಾತ್ರಿ ಮೋಡ್, ಕಡಿಮೆ ಹೊಳಪು, ವೈಟ್ ಪಾಯಿಂಟ್"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ಸುಲಭ ಬಳಕೆ, ಸುಲಭ ಆ್ಯಕ್ಸೆಸ್, ಸಹಾಯ, ಅಸಿಸ್ಟೀವ್"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ದೃಷ್ಟಿ, ಶ್ರವಣ, ಕುರುಡು, ಕಿವುಡು, ಮೋಟಾರ್, ದಕ್ಷತೆ, ಅಸಿಸ್ಟೀವ್, ಸಹಾಯ, ಸುಲಭ ಬಳಕೆ, ಸುಲಭ ಆ್ಯಕ್ಸೆಸ್, ಹ್ಯಾಂಡ್, ನೆರವು"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ವಿಂಡೋ ಮ್ಯಾಗ್ನಿಫೈಯರ್, ಝೂಮ್‌, ಹಿಗ್ಗಿಸುವಿಕೆ, ಕಡಿಮೆ ವಿಷನ್‌, ಹಿಗ್ಗಿಸಿ, ದೊಡ್ಡದಾಗಿಸಿ"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"ಶೀರ್ಷಿಕೆಗಳು, ಉಪಶೀರ್ಷಿಕೆಗಳು, CC, ಲೈವ್ ಟ್ರಾನ್ಸ್‌ಕ್ರೈಬ್, ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಕಾರ್ಟ್, ಧ್ವನಿಯಿಂದ ಪಠ್ಯ, ಉಪಶೀರ್ಷಿಕೆ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ಕಲರ್ ಕಾಂಟ್ರಾಸ್ಟ್‌‌"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ಮೋಟಾರ್, ಮೌಸ್"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ಶ್ರವಣ ಸಾಧನಗಳು, ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಕಾಕ್ಲಿಯರ್ ಇಂಪ್ಲಾಂಟ್‌ಗಳು, ಆಂಪ್ಲಿಫಿಕೇಶನ್ ಸಾಧನಗಳು, ಧ್ವನಿ ಪ್ರಾಸೆಸರ್‌ಗಳು"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ಮೋಟಾರ್, ಮೌಸ್, ಬಾಹ್ಯ ಮೌಸ್, ಹೆಡ್ ಮೌಸ್, ಅಡಾಪ್ಟಿವ್ ಮೌಸ್, ವೀಲ್‌ಚೇರ್, ಜಾಯ್‌ಸ್ಟಿಕ್‌"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ಶ್ರವಣ ಸಾಧನಗಳು, ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಕಾಕ್ಲಿಯರ್ ಇಂಪ್ಲಾಂಟ್‌ಗಳು, ಆಂಪ್ಲಿಫಿಕೇಶನ್ ಸಾಧನಗಳು, ಧ್ವನಿ ಪ್ರಾಸೆಸರ್‌ಗಳು, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಶೀರ್ಷಿಕೆಗಳು, ಟೆಲಿಟೈಪ್, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ಮೂರು ಬಟನ್‌ಗಳು"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ದಕ್ಷತೆ, ಮೋಟಾರ್, ಹಿರಿಯ, ಸಂಧಿವಾತ, rsi, ಸ್ಟ್ರೋಕ್‌‌, ನಡುಕ, ಮಲ್ಟಿಪಲ್ ಸ್ಕ್ಲೆರೋಸಿಸ್, ಸೆರೆಬ್ರಲ್ ಪಾಲ್ಸಿ, ಅಲುಗಾಡುವಿಕೆ, ಪುನರಾವರ್ತಿತ ಒತ್ತಡದ ಗಾಯ, ಹ್ಯಾಂಡ್"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ವಿಳಂಬ, ದಕ್ಷತೆ, ಹಿರಿಯ"</string>
     <string name="print_settings" msgid="8519810615863882491">"ಮುದ್ರಣ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ಆಫ್"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ಮುದ್ರಣ ಸೇವೆ ಆನ್ ಆಗಿದೆ}one{# ಮುದ್ರಣ ಸೇವೆಗಳು ಆನ್ ಆಗಿವೆ}other{# ಮುದ್ರಣ ಸೇವೆಗಳು ಆನ್ ಆಗಿವೆ}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ಅತ್ಯಂತ ಹೆಚ್ಚು ಬಳಸಲಾದ ಆ್ಯಪ್‌ಗಳನ್ನು ನೋಡಿ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ರಕ್ಷಿಸಲು ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"ನಿಮ್ಮ ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಲು, ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ರಕ್ಷಿಸಲು ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯ ಬಾಳಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಲು, ಡಾಕ್ ಆಗಿರುವಾಗ ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ರಕ್ಷಿಸಲು ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯ ಬಾಳಿಕೆಯನ್ನು ಹೆಚ್ಚಿಸುವುದಕ್ಕೆ ಸಹಾಯ ಮಾಡಲು, ಡಾಕ್ ಆಗಿರುವಾಗ ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"ಪೂರ್ಣವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ನಿಮ್ಮ ಬ್ಯಾಟರಿಯನ್ನು ರಕ್ಷಿಸಲು, ಮುಂದಿನ ಬಾರಿ ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಡಾಕ್ ಆಗಿರುವಾಗ ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗುತ್ತದೆ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ಚಾರ್ಜಿಂಗ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ ಎಂಬುದರ ಕುರಿತು ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ಚಾರ್ಜಿಂಗ್ ಪುನರಾರಂಭಿಸಿ"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ಅಧಿಕ ಬ್ಯಾಟರಿ ಬಳಸುವ ಹಿನ್ನೆಲೆ ಚಟುವಟಿಕೆಯನ್ನು ಒಳಗೊಂಡಿದೆ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ತೆಗೆದುಹಾಕಿ"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ರದ್ದು ಮಾಡಿ"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"ಸಂಪೂರ್ಣವಾಗಿ ಚಾರ್ಜ್ ಮಾಡಿ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ಚಾರ್ಜಿಂಗ್ ಪರಿಕರ ಕುರಿತು ಸಮಸ್ಯೆ ಇದೆ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ಹೊಂದಾಣಿಕೆಯಾಗದ ಚಾರ್ಜಿಂಗ್ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ಬ್ಯಾಟರಿ ನಿರ್ವಾಹಕ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ಈಗ"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ಬ್ಯಾಟರಿ ಬಳಕೆಯ ಚಾರ್ಟ್"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ದೈನಂದಿನ ಬ್ಯಾಟರಿ ಬಳಕೆಯ ಚಾರ್ಟ್"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ಪ್ರತಿಗಂಟೆಯ ಬ್ಯಾಟರಿ ಬಳಕೆಯ ಚಾರ್ಟ್"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ನಿಂದ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> ವರೆಗೆ ಬ್ಯಾಟರಿ ಮಟ್ಟದ ಶೇಕಡಾವಾರು"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ಕೊನೆಯ ಸಂಪೂರ್ಣ ಚಾರ್ಜಿಂಗ್ ಮಾಡಿದ ನಂತರದಿಂದ ಬ್ಯಾಟರಿ ಬಳಕೆ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> ನ ಬ್ಯಾಟರಿ ಬಳಕೆ"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"ಕೊನೆಯ ಪೂರ್ಣ ಚಾರ್ಜ್‌ನಿಂದ ವೀಕ್ಷಣಾ ಅವಧಿ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"ತುರ್ತು ಡೈಯಲಿಂಗ್ ಸಿಗ್ನಲ್"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ತುರ್ತು ಕರೆ ಮಾಡಿದಾಗ ಕಾರ್ಯ ರೀತಿಯನ್ನು ಹೊಂದಿಸಿ"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ಬ್ಯಾಕಪ್"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ಆನ್"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ಆಫ್"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ಬ್ಯಾಕಪ್ &amp; ಮರುಸ್ಥಾಪನೆ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ವೈಯಕ್ತಿಕ ಡೇಟಾ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ನನ್ನ ಡೇಟಾ ಬ್ಯಾಕಪ್ ಮಾಡು"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ಹೆಸರು"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ಪ್ರಕಾರ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ಸರ್ವರ್ ವಿಳಾಸ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP ಎನ್‌ಕ್ರಿಪ್ಷನ್ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP ರಹಸ್ಯ"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ಗುರುತಿಸುವಿಕೆ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec ಪೂರ್ವ-ಹಂಚಿತ ಕೀ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec ಬಳಕೆದಾರರ ಪ್ರಮಾಣಪತ್ರ"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA ಪ್ರಮಾಣಪತ್ರ"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರ"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"ಸುಧಾರಿತ ಆಯ್ಕೆಗಳನ್ನು ತೋರಿಸು"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS ಹುಡುಕಾಟ ಡೊಮೇನ್‌ಗಳು"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS ಸರ್ವರ್‌ಗಳು (ಉದಾ. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ಫಾರ್ವರ್ಡಿಂಗ್ ಮಾರ್ಗಗಳು (ಉದಾ. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ಬಳಕೆದಾರರಹೆಸರು"</string>
     <string name="vpn_password" msgid="1183746907642628127">"ಪಾಸ್‌ವರ್ಡ್"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ಖಾತೆಯ ಮಾಹಿತಿಯನ್ನು ಸೇವ್ ಮಾಡಿ"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ಬಳಸಲಾಗಿಲ್ಲ)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ಸರ್ವರ್‌ ಅನ್ನು ಪರಿಶೀಲಿಸದಿರು)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ಸರ್ವರ್‌ನಿಂದ ಸ್ವೀಕರಿಸಲಾಗಿದೆ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ಈ VPN ಪ್ರಕಾರವು, ಎಲ್ಲ ಸಮಯಗಳಲ್ಲೂ ಸಂಪರ್ಕ ಹೊಂದಿರಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"ಯಾವಾಗಲೂ-ಆನ್ VPN, ಅಂಕಿಗಳಲ್ಲಿರುವ ಸರ್ವರ್ ವಿಳಾಸಗಳನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸುತ್ತದೆ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ಯಾವಾಗಲೂ-ಆನ್ VPN ಗಾಗಿ DNS ಸರ್ವರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ಯಾವಾಗಲೂ-ಆನ್ VPN ಗಾಗಿ, DNS ಸರ್ವರ್ ವಿಳಾಸಗಳು ಅಂಕಿಗಳಲ್ಲಿರಬೇಕು"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ನಮೂದಿಸಿದ ಮಾಹಿತಿಯು ಯಾವಾಗಲೂ-ಆನ್ VPN ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ರದ್ದುಮಾಡಿ"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ವಜಾಗೊಳಿಸಿ"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN ಇಲ್ಲದಿರುವ ಸಂಪರ್ಕಗಳನ್ನು ಬ್ಲಾಕ್ ಮಾಡಿ"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN ಸಂಪರ್ಕ ಅಗತ್ಯವಿದೆಯೇ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ. IKEv2 VPN ಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಿ"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ಬೆಂಬಲಿಸದ VPN ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ವಿಫಲವಾಗಿದೆ."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ಯಾವಾಗಲೂ ಸಂಪರ್ಕದಿಂದಿರಲು VPN ಪ್ರೊಫೈಲ್‌ ಆಯ್ಕೆಮಾಡಿ. ಈ VPN ಗೆ ಸಂಪರ್ಕಗೊಳಿಸಿದಾಗ ಮಾತ್ರ ನೆಟ್‌ವರ್ಕ್‌ ದಟ್ಟಣೆಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದು."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ಯಾವುದೂ ಇಲ್ಲ"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ಎರಡೂ ಸರ್ವರ್‌ ಮತ್ತು DNS ಗಾಗಿ VPN ನಲ್ಲಿ ಯಾವಾಗಲೂ IP ವಿಳಾಸದ ಅಗತ್ಯವಿರುತ್ತದೆ."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER ಎಚ್ಚರಿಕೆಗಳು"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ಮಕ್ಕಳ ಅಪಹರಣಗಳ ಕುರಿತ ಪ್ರಕಟಣೆಗಳನ್ನು ಸ್ವೀಕರಿಸಿ"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ಪುನರಾವರ್ತನೆ"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"ಕರೆ ನಿರ್ವಾಹಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"ನಿಮ್ಮ ಕರೆಗಳನ್ನು ಹೇಗೆ ಮಾಡಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿರ್ವಹಿಸಲು ಈ ಸೇವೆಗೆ ಅನುಮತಿಸಿ."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"ಕರೆ ನಿರ್ವಾಹಕ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ವೈರ್‌ಲೆಸ್ ತುರ್ತು ಅಲರ್ಟ್‌ಗಳು"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ನೆಟ್‌ವರ್ಕ್‌ ಆಪರೇಟರ್‌ಗಳು"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ಆ್ಯಕ್ಸೆಸ್ ಕೇಂದ್ರದ ಹೆಸರುಗಳು"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"ವಾಲೆಟ್"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ಪಾವತಿಸಿ, ಟ್ಯಾಪ್ ಮಾಡಿ, ಪಾವತಿಗಳು"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ಬ್ಯಾಕಪ್, ಬ್ಯಾಕ್ ಅಪ್"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ಗೆಸ್ಚರ್"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ಮುಖ, ಅನ್‌ಲಾಕ್‌, ದೃಢೀಕರಣ, ಸೈನ್ ಇನ್"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ಫೇಸ್, ಅನ್‌ಲಾಕ್, ದೃಢೀಕರಣ, ಸೈನ್ ಇನ್, ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್, ಬಯೋಮೆಟ್ರಿಕ್"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl ಆವೃತ್ತಿ, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ಧ್ವನಿಗಳನ್ನು ಪವರ್ ಆನ್ ಮಾಡಿ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"ಲೈವ್ ಶೀರ್ಷಿಕೆ"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ಸ್ವಯಂಚಾಲಿತ ಶೀರ್ಷಿಕೆ ಮಾಧ್ಯಮ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ಫೋನ್ ಸ್ಪೀಕರ್‌ಗಳು"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ಟ್ಯಾಬ್ಲೆಟ್‌‌ ಸ್ಪೀಕರ್‌ಗಳು"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ಸಾಧನದ ಸ್ಪೀಕರ್‌ಗಳು"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ವೈರ್ ಕನೆಕ್ಷನ್ ಹೊಂದಿರುವ ಹೆಡ್‌ಫೋನ್‌ಗಳು"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"ಹೊಂದಾಣಿಕೆಯಾಗುವ ಮಾಧ್ಯಮಗಳ ಆಡಿಯೋ ಇನ್ನಷ್ಟು ತಲ್ಲೀನವಾಗಿ ಕೇಳಿಸುತ್ತದೆ"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ಆಫ್"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ಇತ್ತೀಚಿನ ಸಂಭಾಷಣೆಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"ಸಂಭಾಷಣೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
     <string name="clear" msgid="5092178335409471100">"ತೆರವುಗೊಳಿಸಿ"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> ಅನ್ನು ತೆರವುಗೊಳಿಸಿ"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ಆದ್ಯತೆ ಮತ್ತು ಮಾರ್ಪಡಿಸಿದ ಸಂಭಾಷಣೆಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"ನೀವು ಸಂಭಾಷಣೆಯನ್ನು ಆದ್ಯತೆಯಾಗಿ ಗುರುತಿಸಿದ ನಂತರ ಅಥವಾ ಸಂಭಾಷಣೆಗಳಲ್ಲಿ ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದ ನಂತರ, ಅವು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ. \n\nಸಂಭಾಷಣೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು: \n ಪುಲ್-ಡೌನ್ ಶೇಡ್ ತೆರೆಯಲು ಸ್ಕ್ರೀನ್‌ನ ಮೇಲಿನಿಂದ ಕೆಳಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ, ನಂತರ ಸಂಭಾಷಣೆಯನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ಕುಗ್ಗಿಸಿ"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ಆಫ್"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ನೀವು ಆ್ಯಪ್ ಅನ್ನು ಅನ್‌ಪಿನ್ ಮಾಡುವವರೆಗೆ ಪ್ರಸ್ತುತ ಆ್ಯಪ್ ಅನ್ನು ನೋಡುತ್ತಿರಲು ಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ವಿಶ್ವಾಸಾರ್ಹ ಸ್ನೇಹಿತರೊಂದಿಗೆ ನಿರ್ದಿಷ್ಟ ಆಟವನ್ನು ಆಡಲು ನೀವು ಈ ಫೀಚರ್ ಬಳಸಬಹುದು."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"ಆ್ಯಪ್ ಅನ್ನು ಪಿನ್ ಮಾಡಿದಾಗ, ಪಿನ್ ಮಾಡಲಾದ ಆ್ಯಪ್ ಇತರ ಆ್ಯಪ್‌ಗಳನ್ನು ತೆರೆಯಬಹುದು ಮತ್ತು ವೈಯಕ್ತಿಕ ಡೇಟಾಗೆ ಆ್ಯಕ್ಸೆಸ್ ದೊರಕಬಹುದು. \n\nಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ಅನ್ನು ಬಳಸಲು: 	\n1. ಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ಅನ್ನು ಆನ್ ಮಾಡಿ 	\n2. ಸಮಗ್ರ ನೋಟವನ್ನು ತೆರೆಯಿರಿ 	\n3. ಸ್ಕ್ರೀನ್‌ನ ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ ಆ್ಯಪ್ ಐಕಾನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ, ನಂತರ ಪಿನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"ಆ್ಯಪ್ ಅನ್ನು ಪಿನ್ ಮಾಡಿದಾಗ, ಪಿನ್ ಮಾಡಲಾದ ಆ್ಯಪ್ ಇತರ ಆ್ಯಪ್‌ಗಳನ್ನು ತೆರೆಯಬಹುದು ಮತ್ತು ವೈಯಕ್ತಿಕ ಡೇಟಾಗೆ ಆ್ಯಕ್ಸೆಸ್ ದೊರಕಬಹುದು. \n\nನಿಮ್ಮ ಸಾಧನವನ್ನು ಇತರರೊಂದಿಗೆ ಸುರಕ್ಷಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಲು ನೀವು ಬಯಸಿದರೆ, ಅದರ ಬದಲಿಗೆ ಅತಿಥಿ ಪ್ರೊಫೈಲ್ ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿ. \n\nಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ಅನ್ನು ಬಳಸಲು: 	\n1. ಆ್ಯಪ್ ಪಿನ್ನಿಂಗ್ ಅನ್ನು ಆನ್ ಮಾಡಿ	\n2. ಸಮಗ್ರ ನೋಟವನ್ನು ತೆರೆಯಿರಿ 	\n3. ಸ್ಕ್ರೀನ್‌ನ ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ ಆ್ಯಪ್ ಐಕಾನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ, ನಂತರ ಪಿನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</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_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">"ಅನ್‌ಪಿನ್‌ ಮಾಡಲು ಪಿನ್‌ ಕೇಳಿ"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ಬಳಸದಿದ್ದರೆ ಆ್ಯಪ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ಅನುಮತಿಗಳನ್ನು ತೆಗೆದುಹಾಕಿ, ತಾತ್ಕಾಲಿಕ ಫೈಲ್‌ಗಳನ್ನು ಅಳಿಸಿ, ನೋಟಿಫಿಕೇಶನ್‌ಗಳನ್ನು ನಿಲ್ಲಿಸಿ ಮತ್ತು ಆ್ಯಪ್ ಅನ್ನು ಆರ್ಕೈವ್ ಮಾಡಿ"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ಸ್ಥಾಪಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ಇನ್‌ಸ್ಟಂಟ್ ಆ್ಯಪ್‌ಗಳು"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ಲಭ್ಯವಿರುವುದು"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಬಳಸಿರುವ ಮೆಮೊರಿ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{ಕಳೆದ {time} ದಲ್ಲಿ 1 ಆ್ಯಪ್ ಮೆಮೊರಿಯನ್ನು ಬಳಸಿದೆ}one{ಕಳೆದ {time} ದಲ್ಲಿ # ಆ್ಯಪ್‌ಗಳು ಮೆಮೊರಿಯನ್ನು ಬಳಸಿವೆ}other{ಕಳೆದ {time} ದಲ್ಲಿ # ಆ್ಯಪ್‌ಗಳು ಮೆಮೊರಿಯನ್ನು ಬಳಸಿವೆ}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"ಮೆಮೊರಿ ಬಳಕೆಯ ಪ್ರೊಫೈಲಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"ಮೆಮೊರಿ ಬಳಕೆಯ ಪ್ರೊಫೈಲಿಂಗ್‌ಗೆ ಹೆಚ್ಚುವರಿ ಸಿಸ್ಟಮ್ ಮಾಹಿತಿಯ ಮೂಲಗಳ ಅಗತ್ಯವಿದೆ."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"ಮೆಮೊರಿ ಪ್ರೊಫೈಲಿಂಗ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ಫ್ರೀಕ್ವೆನ್ಸಿ"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"ಗರಿಷ್ಠ ಬಳಕೆ"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"ಡೇಟಾ ಬಳಸಲಾಗಿಲ್ಲ"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"ಇತರ ಆ್ಯಪ್‍ಗಳ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಿ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"‍ಇತರ ಆ್ಯಪ್ ಮೇಲೆ ಡಿಸ್‌ಪ್ಲೇ ಮಾಡಲು ಅನುಮತಿಸಿ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ನೀವು ಬಳಸುತ್ತಿರುವ ಇತರ ಆ್ಯಪ್‌ಗಳ ಮೇಲೆ ಈ ಆ್ಯಪ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಲು ಅನುಮತಿ ನೀಡಿ. ಪರದೆಯಲ್ಲಿ ನೀವು ಎಲ್ಲಿ ಟ್ಯಾಪ್ ಮಾಡುತ್ತೀರಿ ಎಂಬುದನ್ನು ಅಥವಾ ಏನನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನೋಡಲು ಈ ಆ್ಯಪ್‌ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"ಮೀಡಿಯಾ ಔಟ್‌‌ಪುಟ್ ಬದಲಾಯಿಸಿ"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ಮೀಡಿಯಾ ಔಟ್‌ಪುಟ್ ಬದಲಿಸಲು ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸಿ"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"ಯಾವ ಕನೆಕ್ಟ್ ಮಾಡಿದ ಸಾಧನವು ಇತರ ಆ್ಯಪ್‌ಗಳಿಂದ ಆಡಿಯೋ ಅಥವಾ ವೀಡಿಯೊವನ್ನು ಪ್ಲೇ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಲು ಈ ಆ್ಯಪ್‌ಗೆ ಅನುಮತಿಸಿ. ಅನುಮತಿಸಿದರೆ, ಹೆಡ್‌ಫೋನ್‌ಗಳು ಮತ್ತು ಸ್ಪೀಕರ್‌ಗಳಂತಹ ಲಭ್ಯವಿರುವ ಸಾಧನಗಳ ಪಟ್ಟಿಯನ್ನು ಈ ಆ್ಯಪ್ ಆ್ಯಕ್ಸೆಸ್ ಮಾಡಬಹುದು ಹಾಗೂ ಆಡಿಯೋ ಅಥವಾ ವೀಡಿಯೊವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಅಥವಾ ಕ್ಯಾಸ್ಟ್ ಮಾಡಲು ಯಾವ ಔಟ್‌ಪುಟ್ ಸಾಧನವನ್ನು ಬಳಸಬೇಕೆಂದು ಆಯ್ಕೆಮಾಡಬಹುದು."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ಎಲ್ಲಾ ಫೈಲ್‌ಗಳ ಆ್ಯಕ್ಸೆಸ್"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ಧ್ವನಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆಯನ್ನು ಸುಧಾರಿಸಿ"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ಧ್ವನಿ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಮಾದರಿಯನ್ನು ಸುಧಾರಿಸಲು ಈ ಸಾಧನವು ಖಾಸಗಿ ಬುದ್ಧಿವಂತಿಕೆಯನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ಮಾದರಿಯನ್ನು ಸುಧಾರಿಸುವಾಗ ಗೌಪ್ಯತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಅನೇಕ ಬಳಕೆದಾರರಲ್ಲಿ ಅಗ್ರಿಗೇಟ್ ಮಾಡಲಾದ ಸಂಕ್ಷಿಪ್ತ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಆ್ಯಪ್‌ಗಳು ಪಡೆಯಬಹುದು.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ಡೇಟಾ ಎಚ್ಚರಿಕೆ"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ಡೇಟಾ ಮಿತಿ"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ಡೇಟಾ ಎಚ್ಚರಿಕೆ / <xliff:g id="ID_2">^2</xliff:g> ಡೇಟಾ ಮಿತಿ"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ವಾಹಕ ಡೇಟಾ ಲೆಕ್ಕಾಚಾರವು ಸಾಧನ ಲೆಕ್ಕಾಚಾರಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿರಬಹುದು"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ಕ್ಯಾರಿಯರ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಬಳಸುವ ಡೇಟಾವನ್ನು ಇದು ಹೊರತುಪಡಿಸುತ್ತದೆ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ಬಳಸಲಾಗಿದೆ"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ಡೇಟಾ ಎಚ್ಚರಿಕೆಯನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> ಸಮಯದ ಹಿಂದೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> ನಿಂದ ಈಗ ತಾನೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗಿದೆ"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ಇದೀಗ ನವೀಕರಿಸಲಾಗಿದೆ"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ಯೋಜನೆಯನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"ವಿವರಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ಡೇಟಾ ಸೇವರ್"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ಅನಿಯಂತ್ರಿತ ಡೇಟಾ"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ಬ್ಯಾಟರಿ ಬಳಕೆಯ ಅಸಹಜತೆ"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ಡೆವಲಪರ್ ಟೈಲ್ಸ್‌ನ ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb ದೃಢೀಕರಣ ಅವಧಿ ಮೀರುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ಡೀಫಾಲ್ಟ್ (7 ದಿನಗಳು) ಅಥವಾ ಬಳಕೆದಾರ-ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ (ಕನಿಷ್ಠ 1 ದಿನ) ಅವಧಿಯಲ್ಲಿ ಮರುಸಂಪರ್ಕಿಸದಿರುವ ಸಿಸ್ಟಮ್‌ಗಳಿಗೆ adb ದೃಢೀಕರಣಗಳ ಸ್ವಯಂಚಾಲಿತ ಹಿಂತೆಗೆದುಕೊಳ್ಳುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"ವಿನ್ಸ್‌ಕೋಪ್‌ ಟ್ರೇಸ್"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ಸೆನ್ಸರ್‌ಗಳು ಆಫ್"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ವೈಯಕ್ತಿಕ ಆ್ಯಪ್‌ಗಳಲ್ಲಿ ಕೆಲಸದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸಿ ಸಂಪರ್ಕಗಳನ್ನು ಹುಡುಕಿ"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ಸ್ವಯಂತುಂಬುವಿಕೆ ಸೇವೆ"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ಡೀಫಾಲ್ಟ್ ಆಟೋಫಿಲ್ ಸೇವೆ"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ಹೆಚ್ಚುವರಿ ಪೂರೈಕೆದಾರರು"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ಪಾಸ್‌ವರ್ಡ್}one{# ಪಾಸ್‌ವರ್ಡ್‌ಗಳು}other{# ಪಾಸ್‌ವರ್ಡ್‌ಗಳು}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ಸ್ವಯಂಚಾಲಿತ, ಭರ್ತಿ ಮಾಡುವಿಕೆ, ಸ್ವಯಂ-ಭರ್ತಿಮಾಡುವಿಕೆ, ಪಾಸ್‌ವರ್ಡ್"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ಡೇಟಾ, ಪಾಸ್‌ಕೀ, ಪಾಸ್‌ವರ್ಡ್"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ಆಟೋ, ಫಿಲ್, ಆಟೋಫಿಲ್, ಡೇಟಾ, ಪಾಸ್‌ಕೀ, ಪಾಸ್‌ವರ್ಡ್"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ಎಲ್ಲಾ ಸೇವೆಗಳನ್ನು ಆಫ್ ಮಾಡಬೇಕೆ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಹಾಗೂ ಇತರ ಸೇವ್‌ ಮಾಡಿದ ಮಾಹಿತಿಯು ಆಟೋಫಿಲ್ ಮಾಡಲು ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;ಇದಕ್ಕೆ ನಿಮ್ಮ ಆದ್ಯತೆಯ ಸೇವೆಯನ್ನು ಬದಲಾಯಿಸಿ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ಇನ್ನು ಮುಂದೆ ಹೊಸ ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಇತರ ಮಾಹಿತಿಯನ್ನು ಇಲ್ಲಿ ಸೇವ್ ಮಾಡಲಾಗುತ್ತದೆ. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ಏನನ್ನು ಆಟೋಫಿಲ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವುದನ್ನು ಬಳಸಬಹುದು"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ಬಳಸಬೇಕೇ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"ನೀವು ಕೇವಲ 5 ಸೇವೆಗಳನ್ನು ಮಾತ್ರ ಹೊಂದಬಹುದು"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ಮತ್ತೊಂದು ಸೇವೆಯನ್ನು ಸೇರಿಸಲು ಕನಿಷ್ಠ 1 ಸೇವೆಯನ್ನು ಆಫ್ ಮಾಡಿ"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"ಯಾವುದನ್ನು ಆಟೋಫಿಲ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು %1$s ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವುದನ್ನು ಬಳಸುತ್ತದೆ."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳ ಮಿತಿ"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ನೀವು ಒಂದೇ ಸಮಯದಲ್ಲಿ 5 ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಬಹುದು. ಇನ್ನಷ್ಟು ಸೇರಿಸಲು ಸೇವೆಯನ್ನು ಆಫ್ ಮಾಡಿ."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳ ಮಿತಿ"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ನೀವು ಒಂದೇ ಸಮಯದಲ್ಲಿ 5 ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಪಾಸ್‌ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಬಹುದು. ಇನ್ನಷ್ಟು ಸೇರಿಸಲು ಸೇವೆಯನ್ನು ಆಫ್ ಮಾಡಿ."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ಆಫ್ ಮಾಡಿ"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ಸ್ವಯಂ ಭರ್ತಿ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ಲಾಗಿಂಗ್ ಮಟ್ಟ"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ಆ್ಯಪ್ ಹೊಂದಾಣಿಕೆ ಬದಲಾವಣೆಗಳನ್ನು, ಡೀಬಗ್ ಮಾಡಬಹುದಾದ ಆ್ಯಪ್‌ಗಳಲ್ಲಿ ಮಾತ್ರ ಮಾರ್ಪಡಿಸಬಹುದು. ಡೀಬಗ್ ಮಾಡಬಹುದಾದ ಆ್ಯಪ್ ಅನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"ಇನ್ನೊಂದು ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ಖಾತೆ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ಖಾತೆಗಳು"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ಸಾಧನದ ಹೆಸರು"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ಸಾಮಾನ್ಯ ಮಾಹಿತಿ"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"ಕಾನೂನು ಮತ್ತು ನಿಯಂತ್ರಣ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ಟ್ಯಾಗ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದಾಗ ಪ್ರಾರಂಭಿಸಲು ಈ ಆ್ಯಪ್ ಅನ್ನು ಅನುಮತಿಸಿ.\nಈ ಅನುಮತಿಯು ಆನ್ ಆಗಿದ್ದರೆ, ಟ್ಯಾಗ್ ಪತ್ತೆಯಾದಾಗಲೆಲ್ಲಾ ಆ್ಯಪ್ ಆಯ್ಕೆಯಾಗಿ ಲಭ್ಯವಿರುತ್ತದೆ."</string>
     <string name="media_output_title" msgid="8283629315159510680">"ಮಾಧ್ಯಮವನ್ನು ಇದರಲ್ಲಿ ಪ್ಲೇ ಮಾಡಿ"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"ಇದರಲ್ಲಿ <xliff:g id="LABEL">%s</xliff:g> ಪ್ಲೇ ಮಾಡಿ"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ಆಡಿಯೋ ಈ ಸಾಧನಗಳಲ್ಲಿ ಪ್ಲೇ ಆಗುತ್ತದೆ"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ಈ ಸಾಧನ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ಕರೆಗಳ ಸಮಯಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ಕರೆ ಮಾಡಿ"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ಮ್ಯೂಟ್"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ಸಕ್ರಿಯಗೊಳಿಸಲು, ಮೊದಲು ಪವರ್ ಮೆನುಗೆ \"ಪವರ್ ಬಟನ್ ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ\" ಅನ್ನು ಬದಲಾಯಿಸಿ."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ನೆಟ್‌ವರ್ಕ್‌ ವಿವರಗಳು"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ನಿಮ್ಮ ಫೋನ್‌ನಲ್ಲಿರುವ ಆ್ಯಪ್‌ಗಳಿಗೆ ನಿಮ್ಮ ಸಾಧನದ ಹೆಸರು ಕಾಣಿಸುತ್ತದೆ. ನೀವು ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ, ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ ಅಥವಾ ವೈ-ಫೈ ಹಾಟ್‌ಸ್ಪಾಟ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿದಾಗ ಇತರ ಜನರು ಸಹ ಅದನ್ನು ನೋಡಬಹುದು."</string>
     <string name="devices_title" msgid="649715719278562515">"ಸಾಧನಗಳು"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ನೆಟ್‌ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ಹೆಸರು"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ಬಣ್ಣ (ಹೊಂದಾಣಿಕೆಯ ಆ್ಯಪ್‌ಗಳಿಂದ ಬಳಸಲಾಗಿದೆ)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"ಸೇವ್ ಮಾಡಿ"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ಸಿಮ್ ಬಳಸಿ"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ಈ SIM ಅನ್ನು ಬಳಸಿ"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ಆಫ್"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ಈ SIM ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು, SIM ಕಾರ್ಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM ಅಳಿಸಿ"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ನೆಟ್‌ವರ್ಕ್‌ ಕಾರ್ಯಾಚರಣೆ ಮೋಡ್‌ ಬದಲಾಯಿಸಿ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ಪ್ರಾಶಸ್ತ್ಯ ನೀಡಿದ ನೆಟ್‌ವರ್ಕ್‌ ಪ್ರಕಾರ"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ಬೆಲೆ ನಿಗದಿಗಾಗಿ ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ಆ್ಯಪ್ ಡೇಟಾ ಬಳಕೆ"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ಅಮಾನ್ಯ ನೆಟ್‌ವರ್ಕ್‌ ಮೋಡ್‌ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. ನಿರ್ಲಕ್ಷಿಸಿ."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ಆ್ಯಕ್ಸೆಸ್ ಪಾಯಿಂಟ್ ಹೆಸರುಗಳು"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಿಸಿದಾಗ ಲಭ್ಯವಿರುವುದಿಲ್ಲ"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಗೆ ಬದಲಿಸಬೇಕೇ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ಬಳಸುತ್ತಿರುವ ಸಿಮ್‌ ಕಾರ್ಡ್‌ಗೆ ಬದಲಿಸಬೇಕೇ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಅನ್ನು ಬಳಸಬೇಕೇ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ಒಂದು ಬಾರಿಗೆ ಕೇವಲ ಒಂದು SIM ಮಾತ್ರ ಸಕ್ರಿಯವಾಗಿರಬಹುದು.\n\n <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ಗೆ ಬದಲಿಸುವುದರಿಂದ, ನಿಮ್ಮ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ಸೇವೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ಒಂದು ಬಾರಿಗೆ ಕೇವಲ 1 eSIM ಮಾತ್ರ ಸಕ್ರಿಯವಾಗಿರಬಹುದು.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ಕ್ಕೆ ಬದಲಾಯಿಸುವುದರಿಂದ ನಿಮ್ಮ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ಸೇವೆ ರದ್ದಾಗುವುದಿಲ್ಲ."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ಒಂದು ಬಾರಿಗೆ ಕೇವಲ ಒಂದು ಸಿಮ್ ಮಾತ್ರ ಸಕ್ರಿಯವಾಗಿರಬಹುದು.\n\nಸಿಮ್‌ಗಳನ್ನು ಬದಲಿಸುವುದರಿಂದ ನಿಮ್ಮ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ಸೇವೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ನೀವು ಒಂದು ಸಮಯದಲ್ಲಿ 2 SIM ಗಳನ್ನು ಬಳಸಬಹುದು. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಅನ್ನು ಬಳಸಲು, ಮತ್ತೊಂದು SIM ಅನ್ನು ಆಫ್ ಮಾಡಿ."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಗೆ ಬದಲಿಸಿ"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಆಫ್ ಮಾಡಿ"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ಬೇಡ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ರದ್ದುಮಾಡಿ"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ಬದಲಿಸಿ"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ಆಫ್ ಮಾಡಿ"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"ಸಿಮ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ಸಿಮ್ ಅನ್ನು ಮತ್ತೆ ಆನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ನಿಮ್ಮ SIM ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ಈ ಸಾಧನದಲ್ಲಿ ಹಲವು SIM ಗಳನ್ನು ಬಳಸಲು ನಿಮ್ಮ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ನಿಮ್ಮ SIM ಗಳನ್ನು ಲೇಬಲ್ ಮಾಡಿ"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ಕರೆಗಳನ್ನು ಮಾಡುವಾಗ, ಪಠ್ಯ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸುವಾಗ ಮತ್ತು ಡೇಟಾ ಬಳಸುವಾಗ ಹಾಗೂ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನೀವು ಈ ಲೇಬಲ್‌ಗಳನ್ನು ನೋಡುತ್ತೀರಿ"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM ಲೇಬಲ್"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ಲೇಬಲ್"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"ಯಾವ SIM ಬಳಸಬೇಕು ಎಂದು ಆರಿಸಿ"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ನೀವು ಒಂದೇ ಬಾರಿಗೆ 2 SIM ಗಳನ್ನು ಬಳಸಬಹುದು"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ಪ್ರಾಥಮಿಕ SIM ಗಳನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ಕರೆಗಳು, ಪಠ್ಯ ಸಂದೇಶಗಳು ಮತ್ತು ಡೇಟಾಗಾಗಿ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಯಾವ SIM ಗಳನ್ನು ಬಳಸಬೇಕು ಎಂಬುದನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ನಿಮ್ಮ ಪ್ರಾಥಮಿಕ SIM ಗಳು"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ಕರೆಗಳು"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ಪಠ್ಯ ಸಂದೇಶಗಳು"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ಸ್ವಯಂಚಾಲಿತ ಡೇಟಾ ಬದಲಿಸುವಿಕೆ"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ಕವರೇಜ್ ಮತ್ತು ಲಭ್ಯತೆಯನ್ನು ಆಧರಿಸಿ ಎರಡರಲ್ಲಿ ಒಂದು SIM ನಲ್ಲಿನ ಡೇಟಾ ಬಳಸಿ"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ಡೇಟಾ ಮಾತ್ರ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ಸೆಟಪ್ ಮಾಡಿ"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ಮುಂದಿನದು"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ಫೋನ್ ಸಂಖ್ಯೆ"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM ಲೇಬಲ್ ಮತ್ತು ಬಣ್ಣ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ನೆಟ್‌ವರ್ಕ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"ವಾಹಕ ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಸಕ್ರಿಯವಾಗಿದೆ"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"ಮೊಬೈಲ್ ಡೇಟಾ, ಕರೆಯ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು SMS ಅನ್ನು ಆನಂತರ ಬಳಸಲು, ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ಈ eSIM ಅನ್ನು ಅಳಿಸಬೇಕೆ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ಈ ಸಿಮ್ ಅನ್ನು ಅಳಿಸುವುದರಿಂದ, ಅದು ಈ ಸಾಧನದಿಂದ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ಸೇವೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ಗಾಗಿ ಇರುವ ಸೇವೆಯನ್ನು ರದ್ದುಗೊಳಿಸುವುದಿಲ್ಲ."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ಅಳಿಸಿ"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"ಸಿಮ್ ಅಳಿಸಲಾಗುತ್ತಿದೆ…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ಸಿಮ್ ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ದೋಷದ ಕಾರಣದಿಂದಾಗಿ ಈ ಸಿಮ್ ಅನ್ನು ಅಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.\n\nನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಿಸಿ"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ತಾತ್ಕಾಲಿಕ ವೈ-ಫೈ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಬಳಸಲು <xliff:g id="APPNAME">%1$s</xliff:g> ಆ್ಯಪ್ ಬಯಸುತ್ತದೆ"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"ಯಾವುದೇ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ. ಸಾಧನಗಳನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು ಸಂಪರ್ಕಿಸಲು ಲಭ್ಯವಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ತುರ್ತು ಕರೆಗಳು"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ ಮೂಲಕ ಮಾಡಲಾಗುವ ತುರ್ತು ಕರೆಗಳನ್ನು ನಿಮ್ಮ ವಾಹಕವು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.\nತುರ್ತು ಕರೆ ಮಾಡಲು ಸಾಧನವು ಸೆಲ್ಯುಲರ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬದಲಾಯಿಸುತ್ತದೆ.\nಸೆಲ್ಯುಲರ್ ಪ್ರಸಾರ ವ್ಯಾಪ್ತಿ ಇರುವ ಪ್ರದೇಶಗಳಲ್ಲಿ ಮಾತ್ರ ತುರ್ತು ಕರೆಗಳನ್ನು ಮಾಡಲು ಸಾಧ್ಯ."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ಗುಣಮಟ್ಟವನ್ನು ಹೆಚ್ಚಿಸಲು ಕರೆಗಳನ್ನು ಮಾಡಲು ವೈ-ಫೈ ಬಳಸಿ"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ಬ್ಯಾಕಪ್ ಕರೆ ಮಾಡುವಿಕೆ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ ಅಥವಾ ರೋಮಿಂಗ್‌ನಲ್ಲಿ ಇದ್ದರೆ, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ಕರೆಗಳನ್ನು ಮಾಡಲು ನಿಮ್ಮ ಮೊಬೈಲ್ ಡೇಟಾ ಸಿಮ್ ಬಳಸಿ."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ಬ್ಯಾಕಪ್ ಕರೆ ಮಾಡುವಿಕೆ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ಒಳಬರುವ MMS ಸಂದೇಶ"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ಮೊಬೈಲ್ ಡೇಟಾ ಆಫ್ ಇರುವಾಗ, <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> ನಲ್ಲಿ MMS ಸಂದೇಶ ಕಳುಹಿಸುವುದನ್ನು ಅನುಮತಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ನಿಮ್ಮ ಕೆಲಸದ ನೀತಿಯ ಮಾಹಿತಿ"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ನಿಮ್ಮ IT ನಿರ್ವಾಹಕರಿಂದ ನಿರ್ವಹಿಸುತ್ತಾರೆ"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K ಪುಟದ ಗಾತ್ರದೊಂದಿಗೆ ಬೂಟ್ ಮಾಡಿ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16K ಪುಟ ಗಾತ್ರದ ಬೆಂಬಲಿತ ಕೆರ್ನಲ್ ಬಳಸಿ ಸಾಧನ ಬೂಟ್ ಮಾಡಿ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB ಪುಟಗಳ ಹೊಂದಾಣಿಕೆಯ ಕೆರ್ನಲ್‌ನೊಂದಿಗೆ ರೀಬೂಟ್ ಮಾಡಬೇಕೆ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ಎಚ್ಚರಿಕೆ: ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಈ ಮೋಡ್‌ಗೆ ಹೊಂದಾಣಿಕೆಯಾಗದಿರಬಹುದು. ದೃಢೀಕರಣದ ನಂತರ ಸಾಧನವು ರೀಬೂಟ್ ಆಗುತ್ತದೆ."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB ಪುಟಗಳ ಹೊಂದಾಣಿಕೆಯ ಕೆರ್ನಲ್‌ನೊಂದಿಗೆ ರೀಬೂಟ್ ಮಾಡಬೇಕೆ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"ದೃಢೀಕರಣದ ನಂತರ ಸಾಧನವು ರೀಬೂಟ್ ಆಗುತ್ತದೆ."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"ಕೆರ್ನಲ್ ಅನ್ನು 16KB ಪುಟಗಳ ಹೊಂದಾಣಿಕೆಯ ಕೆರ್ನಲ್‌ಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ಬದಲಾವಣೆಯನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತಿದೆ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ಬಗ್ ವರದಿ ಮಾಡುವಿಕೆ ಹ್ಯಾಂಡಲರ್"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಬಗ್ ವರದಿ ಮಾಡುವಿಕೆ ಶಾರ್ಟ್‌ಕಟ್ ಅನ್ನು ಯಾವ ಆ್ಯಪ್ ಹ್ಯಾಂಡಲ್ ಮಾಡುತ್ತದೆ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ವೈಯಕ್ತಿಕ"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"ಪ್ಲೇಬ್ಯಾಕ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಪುನರಾರಂಭಿಸಲು, ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ಮೀಡಿಯಾ ಪ್ಲೇಯರ್ ತೆರೆದಿರುತ್ತದೆ"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಮೀಡಿಯಾ ಅನ್ನು ತೋರಿಸಿ"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"ಪ್ಲೇಬ್ಯಾಕ್ ಅನ್ನು ತ್ವರಿತವಾಗಿ ಪುನರಾರಂಭಿಸಲು, ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ಮೀಡಿಯಾ ಪ್ಲೇಯರ್ ತೆರೆದಿರುತ್ತದೆ"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"ಮಾಧ್ಯಮ ಶಿಫಾರಸುಗಳನ್ನು ತೋರಿಸಿ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant ಮಾಧ್ಯಮ ಶಿಫಾರಸುಗಳನ್ನು ತೋರಿಸಿ"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"ನಿಮ್ಮ ಚಟುವಟಿಕೆಯ ಆಧಾರದ ಮೇಲೆ"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ಪ್ಲೇಯರ್ ಮರೆಮಾಡಿ"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ಪ್ಲೇಯರ್ ತೋರಿಸಿ"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ಸಿಮ್"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM ಗಳು"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"ಸಕ್ರಿಯವಾಗಿದೆ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> ಗಾಗಿ ಡೀಫಾಲ್ಟ್ ಆಗಿದೆ"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ಕರೆಗಳು"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ಹೊಂದಾಣಿಕೆಯಾಗುವ ಮಾಧ್ಯಮಗಳ ಆಡಿಯೋ ಇನ್ನಷ್ಟು ತಲ್ಲೀನವಾಗಿ ಕೇಳಿಸುತ್ತದೆ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ಹೆಡ್ ಟ್ರ್ಯಾಕಿಂಗ್"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ಆಡಿಯೋ ಇನ್ನಷ್ಟು ನೈಜವಾಗಿ ಕೇಳಿಸಲು ನಿಮ್ಮ ತಲೆಯನ್ನು ಸರಿಸಿದಾಗಲೆಲ್ಲಾ ಆಡಿಯೋ ಬದಲಾಗುತ್ತದೆ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ಅನುಮತಿಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> ನಲ್ಲಿ ನೀವು ಅನುಮತಿಸಿದ ಆ್ಯಪ್ ಅನುಮತಿಗಳನ್ನು <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸಹ ನೀಡಿ"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ಫೋನ್‌ನಿಂದ ಅನುಮತಿಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಿ"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ಈ ಫೋನ್‌ನಲ್ಲಿ ನೀವು ಅನುಮತಿಸಿದ ಆ್ಯಪ್ ಅನುಮತಿಗಳನ್ನು ನಿಮ್ಮ ವಾಚ್‌ಗೂ ಸಹ ನೀಡಿ"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ಆಡಿಯೋ ಸಾಧನದ ಪ್ರಕಾರ"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ಅಪರಿಚಿತ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ಸ್ಪೀಕರ್"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"ಮಧ್ಯಮ"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ಹೆಚ್ಚು"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ಈ ಆ್ಯಪ್ ಅನ್ನು 1 ವಿಂಡೋದಲ್ಲಿ ಮಾತ್ರ ತೆರೆಯಬಹುದು"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ಆನ್ ಆಗಿದೆ"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ಆಫ್ ಆಗಿದೆ"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ಆಫ್ ಆಗಿದೆ"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ಆಫ್"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ಆನ್"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ಆಫ್"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ಆನ್"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ಆಫ್"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ಡಾರ್ಕ್‌ ಸ್ಕ್ರೀನ್‌ಗಳನ್ನು ಲೈಟ್ ಆಗಿಯೂ ಹಾಗೂ ಲೈಟ್ ಆದ ಸ್ಕ್ರೀನ್‌ಗಳನ್ನು ಡಾರ್ಕ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ಸ್ಕ್ರೀನ್ ಮೇಲೆ ಝೂಮ್‌ ಇನ್‌ ಮಾಡಿ"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ಆಫ್"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ಆಫ್"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ಆನ್"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ಆಫ್"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ಆನ್"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಈಗ ಸೆಟಪ್ ಮಾಡಲಾಗಿದೆ"</string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index e8bd555..50b65b0 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1분 후"</item>
     <item msgid="1574040255478150028">"5분 후"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index e7607f6..46a12ed 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"관리자만 개발자 설정에 액세스할 수 있습니다."</string>
     <string name="header_category_system" msgid="1665516346845259058">"시스템"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"서비스 중"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"서비스 지역 벗어남"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"위로 스와이프하여 계속하기"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"휴대전화를 접고 전면 디스플레이에서 위로 스와이프하여 계속 앱을 사용하거나 화면이 잠길 때까지 몇 초 동안 기다리세요."</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"관련 도구"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"벨소리 및 알람"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"통화 중 오디오"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"미디어"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"알림 및 기타 시스템 사운드"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"미디어 및 시스템 소리"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"알림"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"기본적으로 오디오 출력은 개별 앱에 의해 결정됩니다."</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"이름이 없는 블루투스 기기"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"검색 중"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"블루투스가 사용 설정됨"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"전체 보기"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"모두 보기"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"스타일러스"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"테일 버튼 누르기"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g>(직장 프로필)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE 오디오 스트림에 연결"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"주변 오디오 스트림"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"오디오 스트림"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR 코드를 사용해 오디오 스트림에 연결"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"주변 오디오 스트림이 없습니다."</string>
     <string name="date_and_time" msgid="1788358029823431692">"날짜 및 시간"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"프록시"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"지우기"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"앱별로 언어를 선택하려면 앱 언어 설정으로 이동하세요."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"앱 언어 자세히 알아보기"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"시스템 언어를 %s 언어로 변경하시겠습니까?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s를 기본 언어에 추가하시겠습니까?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"이렇게 하면 앱과 웹사이트에서 사용자가 이 언어도 기본 언어로 사용함을 알게 됩니다."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"기기 설정과 지역 설정이 변경됩니다."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"변경"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s 사용할 수 없음"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"토요일"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"지역 설정을 지원하지 않는 앱에서는 기본 언어 설정이 사용됩니다"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"언어 환경설정에 관해 자세히 알아보세요."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"추가 환경설정"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"호칭어"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"호칭 방식 설정하기"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"앱이 내가 지정한 호칭어를 사용하여 나를 호칭하는 방식을 맞춤설정할 수 있습니다"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"지정되지 않음"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"여성"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"남성"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"중성"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{선택한 언어를 삭제하시겠습니까?}other{선택한 언어를 삭제하시겠습니까?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"텍스트가 다른 언어로 표시됩니다."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"모든 언어를 삭제할 수는 없습니다."</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"위치"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"위치 사용"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"사용 안함"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{사용 - 앱 #개가 위치에 액세스할 수 있음}other{사용 - 앱 #개가 위치에 액세스할 수 있음}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{사용 - 앱 #개가 위치에 액세스할 수 있음}other{사용 - 앱 #개가 위치에 액세스할 수 있음}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"로드 중…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"근처 기기 액세스 권한이 있는 앱은 연결된 기기 간의 상대적인 위치를 파악할 수 있습니다."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"앱 및 서비스에 대한 위치 정보 액세스가 사용 중지되어 있습니다. 그래도 긴급 전화번호로 전화를 걸거나 문자 메시지를 보내면 기기의 위치 정보가 긴급 구조원에게 전달될 수 있습니다."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"위치 설정 자세히 알아보기"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"위치 설정에 대해 자세히 알아보기"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"위치 액세스 권한을 변경하려면 설정 &gt; 보안 및 개인 정보 보호 &gt; 개인 정보 보호 설정으로 이동하세요."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"최상의 결과를 얻으려면 Made For Google 인증 화면 보호재를 사용하세요. 다른 화면 보호재를 사용할 경우 자녀의 지문이 인식되지 않을 수 있습니다."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"스마트시계 잠금 해제"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하면 마스크를 쓰고 있거나 어두운 곳에 있을 때 휴대전화에서 지문을 요청합니다.\n\n얼굴 또는 지문이 인식되지 않을 때 시계로 잠금 해제할 수 있습니다."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"지문이 인식되지 않을 때 시계로 잠금 해제할 수 있습니다."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"얼굴이 인식되지 않을 때 시계로 잠금 해제할 수 있습니다."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"얼굴 인식 잠금 해제 및 지문 잠금 해제를 설정하면 마스크를 쓰고 있거나 어두운 곳에 있을 때 휴대전화에서 지문을 요청합니다.\n\n스마트시계 잠금 해제는 손가락이 젖었거나 얼굴이 인식되지 않을 때 휴대전화를 잠금 해제할 수 있는 또 다른 편리한 방법입니다."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"스마트시계 잠금 해제는 지문이 인식되지 않을 때 휴대전화를 잠금 해제할 수 있는 또 다른 편리한 방법입니다."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"스마트시계 잠금 해제는 얼굴이 인식되지 않을 때 휴대전화를 잠금 해제할 수 있는 또 다른 편리한 방법입니다."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"다음에 지문 또는 워치 사용"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"다음에 얼굴 또는 워치 사용"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"다음에 얼굴, 지문 또는 워치 사용"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"얼굴 및 <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"작동 원리"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"시계를 손목에 착용하고 있는 상태에서 시계가 잠금 해제되어 있으며 이 휴대전화와 가까이에 있어야 합니다. 손목에 착용하고 있는 상태에서는 시계를 다시 잠금 해제할 필요가 없습니다."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"이 휴대전화가 잠금 해제되면 시계로 알림이 전송됩니다. 의도하지 않았는데 휴대전화 잠금이 해제된 경우 알림을 탭하여 휴대전화를 다시 잠글 수 있습니다."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"직접 관리하기"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"언제든지 설정을 통해 스마트시계 잠금 해제에서 시계를 삭제할 수 있습니다."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"알림 탭하기"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"잠금 화면에서 위로 스와이프"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"시계 선택하기"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"사용 가능한 시계"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"취소"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"확인"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"설정 완료"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"이제 잠금 화면을 위로 스와이프하거나 알림을 탭하면 시계를 사용하여 이 휴대전화의 잠금을 해제할 수 있습니다."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"완료"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"스마트시계 잠금 해제"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"잠금 화면을 위로 스와이프하거나 알림을 탭하면 시계를 사용하여 이 휴대전화의 잠금을 해제할 수 있습니다."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"스마트시계 잠금 해제를 사용하려면 시계를 손목에 착용하고 있는 상태에서 시계가 잠금 해제되어 있으며 이 휴대전화와 연결되어 있어야 합니다. 연결이 중단되면 스마트시계 잠금 해제를 사용하기 전에 휴대전화를 잠금 해제해야 합니다.\n\n주의사항:\n한 번에 하나의 시계만 설정할 수 있습니다. 다른 시계를 추가하려면 먼저 기존 시계를 삭제해야 합니다."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"스마트시계 잠금 해제 자세히 알아보기"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"시계 추가"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"시계 삭제"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"지문 및 얼굴 인식 잠금 해제"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"직장용 얼굴 인식/지문 잠금 해제"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"설정 필요"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"보안"</string>
     <string name="privacy_header" msgid="5526002421324257007">"개인 정보 보호"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"직장 프로필"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"비공개 스페이스"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"비공개 앱을 잠그고 숨겨진 상태로 유지"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"비공개 앱을 숨기거나 잠글 수 있는 별도의 스페이스에 보관하세요."</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"비공개 스페이스 잠금"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"기기를 잠금 해제하는 방식과 동일하게 비공개 스페이스를 잠금 해제하거나 다른 잠금 방식을 선택할 수 있습니다."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"기기 화면 잠금 사용"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"얼굴 및 지문 잠금 해제"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"지문 잠금 해제"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"얼굴 인식 잠금 해제"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"탭하여 설정"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"비공개 스페이스용 지문 잠금 해제"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"비공개 스페이스용 얼굴 인식 잠금 해제"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"잠금 해제 방법"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"기기 화면 잠금과 동일"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"새로운 비공개 스페이스용 잠금을 선택하시겠습니까?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"자동 잠금"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"비공개 스페이스 자동 잠금"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"일정 시간 동안 기기를 사용하지 않은 경우 비공개 스페이스를 자동으로 잠글 수 있습니다."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"기기를 잠글 때마다"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5분 동안 사용하지 않은 경우"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"사용 안 함"</string>
+    <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_deleted" msgid="7825768516955610897">"비공개 스페이스가 삭제됨"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"비공개 스페이스를 삭제할 수 없음"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"비공개 스페이스 잠금 해제됨"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"화면 잠금 설정"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"비공개 스페이스를 사용하려면 이 기기에 화면 잠금을 설정하세요."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"화면 잠금 설정"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"취소"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"취소"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"설정"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"비공개 스페이스를 설정하세요"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"비공개 앱을 숨기거나 잠글 수 있는 별도의 스페이스에 보관하세요."</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"작동 방식"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"앱 목록 하단에서 비공개 스페이스에 액세스할 수 있습니다."</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"잠금을 통해 비공개 스페이스의 앱이 보호됩니다."</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"비공개 스페이스가 잠겨 있으면 비공개 스페이스의 앱에서 보내는 알림은 표시되지 않습니다."</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"비공개 스페이스가 잠겨 있으면 비공개 스페이스의 앱은 권한 관리자, 개인 정보 대시보드, 기타 설정에 표시되지 않습니다.\n\n비공개 스페이스는 새 기기로 옮길 수 없습니다. 다른 기기에서 사용하려면 다른 비공개 스페이스를 설정해야 합니다.\n\n기기를 컴퓨터에 연결하거나 기기에 유해한 앱을 설치 가능한 사람은 비공개 스페이스에 액세스할 수 있습니다."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"비공개 스페이스 설정 중…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"비공개 스페이스가 잠겨 있으면 비공개 스페이스의 앱에서 보내는 알림이 표시되지 않습니다"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"비공개 스페이스를 잠금 해제하여 비공개 스페이스 앱의 사진이나 파일 공유"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"일부 앱이 이미 비공개 스페이스에 설치되어 있습니다"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"비공개 스페이스를 설정할 수 없습니다"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"다시 시도"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"화면 잠금을 사용하여 비공개 스페이스를 잠금 해제하시겠습니까?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"기기를 잠금 해제하는 방식과 동일하게 비공개 스페이스를 잠금 해제하거나 다른 잠금 방식을 선택할 수 있습니다."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"화면 잠금 사용"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"새 잠금 방식 선택"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"설정 완료"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"비공개 스페이스에 액세스하려면 앱 목록으로 이동한 후 아래로 스크롤하세요."</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"완료"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"비공개 스페이스를 찾으려면 아래로 스크롤하세요."</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"비공개 스페이스용 잠금 방식을 선택하세요"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"지문을 사용하여 비공개 스페이스를 잠금 해제할 수 있습니다. 이 옵션을 사용하려면 보안을 위해 백업 잠금이 필요합니다."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"비공개 스페이스용 PIN 설정"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"비공개 스페이스용 비밀번호 설정"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"비공개 스페이스용 패턴 설정"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"비공개 스페이스 표시(최종 UX 아님)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"설정 앱을 엽니다."</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"보안 및 개인 정보 보호 &gt; 비공개 스페이스 &gt; 잠겨 있을 때 비공개 스페이스 숨기기를 탭합니다."</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"잠겨 있을 때 비공개 스페이스 숨기기를 사용 중지합니다."</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google 직원 참고사항: 이 기능은 아직 개발 중입니다."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"또한 경우에 따라 다른 기기에 이 패스키를 입력해야 합니다."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"통합 세트와의 페어링 확인"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"연락처 및 통화 기록 액세스 허용"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"연락처 및 통화 기록에 대한 액세스도 허용합니다."</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"정보는 전화 알림 등에 사용됩니다."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 연결할 수 없습니다."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"사용할 수 있는 기기"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"비행기 모드"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"공용 네트워크 알림"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"고품질 공용 네트워크를 사용할 수 있을 때 알림"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP 네트워크 허용"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP는 오래되어서 안전성이 낮은 보안 프로토콜입니다"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"사용 중인 이동통신사에서는 WEP 네트워크의 낮은 안전성으로 인해 해당 네트워크를 허용하지 않습니다"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"자동으로 Wi‑Fi 사용 설정"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"홈 네트워크 등의 저장된 고품질 네트워크가 가까이 있을 때 Wi‑Fi가 다시 사용 설정됨"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"위치 정보가 사용 중지되어 있으므로 사용할 수 없습니다. "<annotation id="link">"위치 정보"</annotation>"를 사용 설정해 주세요."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi 검색을 사용하면 Wi‑Fi가 꺼져 있을 때도 앱과 서비스에서 항상 Wi-Fi 네트워크를 검색할 수 있습니다. 이 설정은 위치 기반 기능 및 서비스 개선 등에 사용할 수 있습니다."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"사용 설정"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi 검색 사용 설정됨"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"이 네트워크는 오래되어서 안전성이 낮은 보안 프로토콜을 사용합니다"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> 차단됨"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"이 네트워크는 오래되어서 안전성이 낮은 WEP라는 보안 프로토콜을 사용합니다. 그래도 연결하려면 WEP 네트워크를 허용하세요."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"사용 중인 이동통신사에서는 이 네트워크가 오래되어서 안전성이 낮은 보안 프로토콜을 사용하기 때문에 해당 네트워크에 대한 연결을 허용하지 않습니다"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP 허용"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"닫기"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"고급 옵션"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"드롭다운 목록 고급 옵션"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"펼치기"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi 계속 사용"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"다시 표시하지 않음"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"연결"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi 사용 설정됨"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>에 연결됨"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>에 연결 중"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"연결 중…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"네트워크 연결 실패"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"범위 안에 네트워크가 없음"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"삭제"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"수정"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"네트워크 기록 삭제 실패"</string>
     <string name="wifi_save" msgid="2312643132472226807">"저장"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"네트워크 저장 실패"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"취소"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"모바일 데이터"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"이더넷"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ 충전 중"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ 충전 중"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"핫스팟 연결"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"연결 강도"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"저장된 네트워크"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"설정된 비밀번호 없음"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"핫스팟 이름"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"핫스팟 비밀번호"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP 대역"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"자동으로 핫스팟 사용 중지"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"연결된 기기가 없을 때"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"호환성 확장"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"게임 기본 프레임 속도 사용 중지"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"게임 최대 프레임 속도 <xliff:g id="FRAME_RATE">%1$d</xliff:g>Hz 제한을 사용 중지합니다."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"스무스 디스플레이"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"화면 시선 감지는 전면 카메라를 사용하여 화면을 보고 있는 사용자가 있는지 확인하는 기능입니다. 이 기능은 기기에서 작동하며 이미지는 Google에 전송되거나 저장되지 않습니다."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"화면 시선 감지 사용"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"화면을 보고 있는 동안 화면을 켜진 상태로 유지"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"화면 자동 잠금 시간이 길어지면 배터리 소모량이 많아집니다."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"카메라가 잠겨 있음"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"얼굴 인식을 위해 카메라를 잠금 해제해야 합니다."</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"화면 시선 감지를 위해 카메라를 잠금 해제해야 합니다."</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI(SIM 슬롯 <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI(SIM 슬롯 <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>)(기본)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"확인하려면 저장된 네트워크를 선택하세요."</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL 버전"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"배터리 수준"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"커뮤니티"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"커뮤니티 설정"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"저장"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"취소"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"이름 입력란은 비워둘 수 없습니다."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN을 비워둘 수 없습니다."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC는 3자리 숫자여야 합니다."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC는 2~3자리 숫자여야 합니다."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"이동통신사에서 %s 유형의 APN을 추가하도록 허용하지 않습니다."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC 입력란은 유효해야 합니다."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"기본 APN 설정 복원 중"</string>
     <string name="menu_restore" msgid="4310539620115151551">"초기화"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"기본 APN 설정을 초기화했습니다."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"초기화"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"블루투스 및 Wi-Fi가 초기화됨"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"e-SIM 삭제"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"SIM을 삭제해도 모바일 서비스 요금제는 취소되지 않습니다. 교체 SIM을 다운로드하려면 이동통신사에 문의하세요."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"설정 초기화"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"네트워크 설정을 모두 초기화하시겠습니까? 이 작업은 실행취소할 수 없습니다."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"모든 네트워크 설정을 초기화하고 eSIM을 삭제하시겠습니까? 이 작업은 실행취소할 수 없습니다."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"초기화하시겠습니까?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"네트워크 재설정 권한이 없는 사용자입니다."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"네트워크 설정이 재설정되었습니다."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM을 삭제할 수 없음"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"오류로 인해 eSIM을 삭제할 수 없습니다.\n\n기기를 다시 시작한 후 다시 시도해 보세요."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"모든 데이터 삭제(초기화)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"모든 데이터 삭제(초기화)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"음악"</li>\n<li>"사진"</li>\n<li>"기타 사용자 데이터"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"모바일 서비스 요금제는 취소되지 않습니다."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"모든 개인 정보와 다운로드한 앱이 삭제됩니다. 이 작업은 실행취소할 수 없습니다."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"다운로드한 앱 및 SIM을 포함한 모든 개인 정보가 삭제됩니다. 이 작업은 실행취소할 수 없습니다."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"모든 데이터를 삭제하시겠습니까?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"초기화를 실행할 권한이 없는 사용자입니다."</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"삭제 중"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"핫스팟, USB, 블루투스, 이더넷"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"다른 기기와 인터넷 공유 안함"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"사용 안함"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"테더링"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi 핫스팟 사용 안함"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB를 통해서만 인터넷 공유"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"블루투스를 통해서만 인터넷 공유"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"이더넷을 통해서만 인터넷 공유"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB 및 블루투스를 통해서만 인터넷 공유"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB 및 이더넷을 통해서만 인터넷 공유"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"블루투스 및 이더넷을 통해서만 인터넷 공유"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, 블루투스, 이더넷을 통해서만 인터넷 공유"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB 테더링"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"블루투스 테더링"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"이더넷 테더링"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"핫스팟 및 테더링으로 다른 기기에서 내 Wi-Fi 또는 모바일 데이터 연결을 통해 인터넷을 사용할 수 있도록 합니다. 앱에서도 핫스팟을 만들어 주변 기기와 콘텐츠를 공유할 수 있습니다."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"고객센터"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"모바일 네트워크"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"모바일 요금제"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS 앱"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS 앱을 변경하시겠습니까?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMS 앱으로 <xliff:g id="CURRENT_APP">%2$s</xliff:g> 대신 <xliff:g id="NEW_APP">%1$s</xliff:g>을(를) 사용하시겠습니까?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi 도우미를 변경하시겠습니까?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> 대신 <xliff:g id="NEW_APP">%1$s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g>을(를) 사용하여 네트워크 연결을 관리하시겠습니까?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"알 수 없는 SIM 연산자입니다."</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>에 알려진 프로비저닝 웹사이트가 없습니다."</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM 카드를 삽입하고 다시 시작하세요."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"인터넷에 연결하세요."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"최근 위치 요청"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"직장 프로필 위치"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"앱 위치 정보 액세스 권한"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"액세스 삭제"</string>
     <string name="controls_label" msgid="8671492254263626383">"제어"</string>
     <string name="force_stop" msgid="2681771622136916280">"강제 종료"</string>
+    <string name="archive" msgid="9074663845068632127">"보관처리"</string>
+    <string name="restore" msgid="7622486640713967157">"복원"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"전체"</string>
     <string name="application_size_label" msgid="6407051020651716729">"앱 크기"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB 저장소 애플리케이션"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"패키지 크기를 계산할 수 없습니다."</string>
     <string name="version_text" msgid="7628938665256107608">"버전 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"이동"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"보관처리 실패"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> 보관처리됨"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"복원 실패"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> 복원 중"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"또 다른 이전이 이미 진행 중입니다."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"저장공간이 충분하지 않습니다."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"앱이 없습니다."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"사용 가능한 터치 키보드"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"터치 키보드 관리"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"옵션"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"접근성"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"물리적 키보드"</string>
     <string name="show_ime" msgid="4334255501724746849">"터치 키보드 사용"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"물리적 키보드가 활성 상태인 경우 화면에 켜 둠"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"바운스 키"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"물리적 키보드 접근성을 위해 바운스 키 사용 설정"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"고정키"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"물리적 키보드 접근성을 위해 고정키 사용 설정"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"단축키"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"단축키 목록을 표시합니다."</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"직장 프로필 키보드 및 도구"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"사용 시간으로 정렬"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"최근 사용 시간으로 정렬"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"앱 이름으로 정렬"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"최근 사용"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"마지막 사용"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"사용한 적 없음"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"사용 시간"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"접근성"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"접근성 설정"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"무시하고 계속하기"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"취소"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"확대 설정"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"세 번 탭하여 확대"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"바로가기를 사용하여 확대"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"바로가기 및 세 번 탭으로 확대"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> 정보"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"두 손가락으로 화면을 세 번 탭하여 열기"</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="860548190334486449">"확대를 시작 및 중지하려면 화면의 아무 곳이나 두 손가락으로 두 번 탭하세요."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"접근성 기능을 사용하려면 세 손가락을 사용하여 화면 하단에서 위로 스와이프하세요.\n\n기능 간에 전환하려면 세 손가락을 사용하여 위로 스와이프한 후 잠시 기다립니다."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"확인"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"접근성 버튼 설정"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"버튼 설정"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> 바로가기"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"접근성 버튼"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"접근성 동작"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"두 손가락으로 화면을 두 번 탭하기"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"두 손가락으로 화면을 두 번 탭하기"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"두 손가락으로 화면을 {0, 숫자, 정수}번 빠르게 탭하세요."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"세 번 탭하기"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"화면 세 번 탭하기"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"화면을 {0,number,integer}번 빠르게 탭합니다. 이 바로가기를 사용하면 기기가 느려질 수 있습니다."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"접근성 버튼 및 동작에 관해 자세히 알아보기"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"접근성 버튼을 사용하세요. 3버튼 탐색에서는 동작을 사용할 수 없습니다."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"접근성 기능에 빠르게 액세스"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"시작하려면 다음 단계를 따르세요."</b>\n"1. 접근성 설정으로 이동합니다.\n2. 기능을 선택하고 단축키를 탭합니다.\n3. 기능에 액세스하는 데 버튼을 사용할지, 동작을 사용할지 선택합니다."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"시작하려면 다음 단계를 따르세요."</b>\n"1. 접근성 설정으로 이동합니다.\n2. 기능을 선택하고 단축키를 탭합니다.\n3. 기능에 액세스하는 데 사용할 버튼을 선택합니다."</string>
+    <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_size_title" msgid="5785110470538960881">"크기"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"전원 버튼으로 통화 종료"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"대형 마우스 포인터"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"마우스 포인터를 더 눈에 띄게 만듭니다."</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"모든 앱에 어두운 테마 적용"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"자체적인 어두운 테마가 없는 앱에 적용됩니다. 일부 앱에는 반전 색상과 같은 표시 문제가 발생할 수 있습니다."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"애니메이션 삭제"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"화면상의 움직임을 줄입니다."</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"모노 오디오"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"앱 또는 하드웨어 센서와의 상호작용을 추적할 수 있으며 나를 대신해 앱과 상호작용할 수 있습니다."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"허용"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"거부"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"중지"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"취소"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g>을(를) 중지하시겠습니까?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g>를 탭하면 <xliff:g id="SERVICE">%2$s</xliff:g>가 중지됩니다."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"사용 중지"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"계속 사용"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>을(를) 사용 중지하시겠습니까?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"설치된 서비스가 없습니다."</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"선택된 서비스 없음"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"제공된 설명이 없습니다."</string>
     <string name="settings_button" msgid="2195468788019730377">"설정"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"광과민성, 광선공포증, 어두운 테마, 편두통, 두통, 읽기 모드, 야간 모드, 밝기 낮추기, 화이트 포인트"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"사용 편의성, 접근 편의성, 지원, 보조"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"시각, 청각, 시각장애, 청각장애, 거동, 민첩성, 보조, 도움, 사용 편의성, 접근 편의성, 손, 지원"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"창 돋보기, 확대/축소, 확대, 저시력, 크게, 화면 크게"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"캡션, 폐쇄 자막, CC, 음성 자막 변환, 난청, 청력 손실, CART, 음성 텍스트 변환, 자막"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"색상 대비"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"거동, 마우스"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"보청기, 난청, 청력 상실, 인공 와우, 소리 증폭 기기, 사운드 프로세서"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"거동, 마우스, 외장 마우스, 헤드 마우스, 어댑티브 마우스, 휠체어, 조이스틱"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"보청기, 난청, 청력 상실, 인공 와우, 소리 증폭 기기, 사운드 프로세서, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"난청, 청력 손실, 캡션, 텔레타이프, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"버튼 3개"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"민첩성, 거동, 노인, 관절염, RSI, 뇌졸중, 떨림, 다발성 경화증, 뇌성마비, 경련, 반복성 긴장 장애, 손"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"지연, 민첩성, 노인"</string>
     <string name="print_settings" msgid="8519810615863882491">"인쇄"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"사용 안함"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{인쇄 서비스 1개 사용}other{인쇄 서비스 #개 사용}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"배터리 사용량이 가장 높은 앱을 확인하세요"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"배터리 보호를 위해 충전 최적화됨"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"배터리 수명 연장에 도움이 되도록 충전이 최적화됩니다."</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"배터리 보호를 위해 충전 최적화됨"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"배터리 수명 연장에 도움이 되도록 도킹 상태에서 충전을 최적화합니다."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"배터리 보호를 위해 충전 최적화됨"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"배터리 수명 연장에 도움이 되도록 도킹 상태에서 충전을 최적화합니다."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"완전 충전"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"배터리 보호를 위해 다음에 태블릿이 도킹되면 충전이 최적화됩니다."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"충전 일시중지에 관해 자세히 알아보세요."</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"충전 재개"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"고전력 백그라운드 활동 포함"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"삭제"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"취소"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"완전히 충전하기"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"충전 액세서리 문제"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"호환되지 않는 충전에 관해 자세히 알아보기"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"배터리 관리"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"자동으로 앱 관리"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"현재"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>~<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"배터리 사용량 차트"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"일일 배터리 사용량 차트"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"시간별 배터리 사용량 차트"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"배터리 잔량 비율은 <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>~<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>입니다"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"마지막 완충 이후 배터리 사용량"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"배터리 사용량(<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"마지막 완충 이후 기기 사용 시간"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"응급 상황 다이얼링 신호"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"긴급 통화 중 동작 설정"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"백업"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"사용"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"사용 안함"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"백업 및 복원"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"개인 데이터"</string>
     <string name="backup_data_title" msgid="507663517227498525">"내 데이터 백업"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"이름"</string>
     <string name="vpn_type" msgid="5533202873260826663">"유형"</string>
     <string name="vpn_server" msgid="2908816134941973935">"서버 주소"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP 암호화(MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP 보안"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec 식별자"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec 사전 공유 키"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec 사용자 인증서"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA 인증서"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec 서버 인증서"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"고급 옵션 표시"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS 검색 도메인"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS 서버(예: 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"전달 경로(예: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"사용자 이름"</string>
     <string name="vpn_password" msgid="1183746907642628127">"비밀번호"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"계정 정보 저장"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(사용되지 않음)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(서버를 인증하지 않음)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(서버에서 수신)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"이 VPN 유형은 항상 연결된 상태로 유지할 수 없습니다."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"연결 유지 VPN은 숫자로 된 서버 주소만 지원합니다."</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"연결 유지 VPN의 DNS 서버를 지정해야 합니다."</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"연결 유지 VPN에 사용되는 DNS 서버 주소는 숫자여야 합니다."</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"입력된 정보가 연결 유지 VPN을 지원하지 않습니다."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"취소"</string>
     <string name="vpn_done" msgid="5137858784289564985">"취소"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN 없는 연결 차단"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN 연결이 필요한가요?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"안전하지 않습니다. IKEv2 VPN으로 업데이트하세요"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"지원되지 않는 VPN을 시작할 수 없습니다."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"VPN 프로필을 선택하여 연결된 상태를 유지하세요. 이 VPN에 연결된 상태에서만 네트워크 트래픽이 허용됩니다."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"없음"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN을 연결 상태로 유지하려면 서버와 DNS의 IP 주소가 필요합니다."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"앰버 경보"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"아동 유괴에 대한 공지 수신"</string>
     <string name="repeat_title" msgid="8676570486899483606">"반복"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"통화 관리자 사용"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"이 서비스에서 통화 방식을 관리하도록 허용합니다."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"통화 관리자"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"긴급 재난 문자"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"네트워크 이동통신사"</string>
     <string name="access_point_names" msgid="5768430498022188057">"액세스 포인트 이름(APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"월렛"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"결제, 탭, 결제"</string>
     <string name="keywords_backup" msgid="707735920706667685">"백업, 백 업"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"동작"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"얼굴, 잠금 해제, 승인, 로그인"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"얼굴, 잠금 해제, 인증, 로그인, 지문, 생체 인식"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI, MEID, MIN, PRL 버전, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"부팅 소리"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"실시간 자막"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"미디어 자막 자동 생성"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"휴대전화 스피커"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"태블릿 스피커"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"기기 스피커"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"유선 헤드폰"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"호환되는 미디어의 오디오를 넘치는 몰입감으로 즐길 수 있습니다."</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"사용 안함"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"최근 대화 삭제됨"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"대화 삭제"</string>
     <string name="clear" msgid="5092178335409471100">"삭제"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> 삭제"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"우선순위 대화 및 수정된 대화가 여기에 표시됩니다"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"대화를 우선순위로 표시하는 등 수정하면 여기에 표시됩니다. \n\n대화 설정 변경하기: \n화면 상단에서 아래로 스와이프하여 풀다운 창을 열고 대화를 길게 누릅니다."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"최소화"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"사용 중지"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"앱 고정"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"앱을 고정하여 고정 해제할 때까지 계속 화면에 표시되도록 할 수 있습니다. 예를 들어 신뢰할 수 있는 친구가 특정 게임을 하도록 허용할 때 이 기능을 사용해 보세요."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"앱을 고정하면 고정된 앱을 통해 다른 앱이 열리고 개인 정보가 표시될 수 있습니다. \n\n앱 고정을 사용하려면 다음 단계를 따르세요. 	\n1. 앱 고정을 사용 설정합니다. 	\n2. 최근 사용을 엽니다. 	\n3. 화면 상단의 앱 아이콘을 탭한 후 고정을 탭합니다."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"앱을 고정하면 고정된 앱을 통해 다른 앱이 열리고 개인 정보가 표시될 수 있습니다. \n\n기기를 다른 사람과 안전하게 공유하고 싶다면 게스트 사용자를 대신 사용해 보세요. \n\n앱 고정을 사용하려면 다음 단계를 따르세요. 	\n1. 앱 고정을 사용 설정합니다. 	\n2. 최근 사용을 엽니다. 	\n3. 화면 상단의 앱 아이콘을 탭한 후 고정을 탭합니다."</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"사용하지 않는 경우 앱 관리"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"권한 제거, 임시 파일 삭제, 알림 중지, 앱 보관처리"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"모든 앱"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"설치된 앱"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"인스턴트 앱"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"사용 가능"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"앱에서 사용한 메모리"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{지난 {time} 동안 1개 앱에서 메모리를 사용했습니다.}other{지난 {time} 동안 #개 앱에서 메모리를 사용했습니다.}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"메모리 사용량 프로파일링 사용 설정"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"메모리 사용량 프로파일링에는 추가 시스템 리소스가 필요합니다."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"메모리 프로파일링 사용 중지됨"</string>
     <string name="running_frequency" msgid="7260225121706316639">"빈도"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"최대 사용량"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"사용한 데이터 없음"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"다른 앱 위에 표시"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"다른 앱 위에 표시 허용"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"이 앱이 사용 중인 다른 앱 위에 표시되도록 허용합니다. 앱에서 내가 탭하는 위치를 확인하고 화면에 표시되는 내용을 변경할 수 있습니다."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"미디어 출력을 변경하세요"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"앱이 미디어 출력을 전환하도록 허용"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"이 앱이 다른 앱에서 오디오나 동영상을 재생할 연결된 기기를 선택하도록 허용합니다. 허용할 경우, 이 앱은 헤드폰이나 스피커와 같은 사용 가능한 기기의 목록에 액세스하여 오디오 또는 동영상을 스트리밍하거나 전송할 출력 장치를 선택할 수 있습니다."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"모든 파일에 액세스"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"음성 활성화 개선"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"이 기기에서 개인 정보를 사용하여 음성 활성화 모델을 개선합니다. 앱에서 여러 사용자로부터 집계한 요약된 업데이트를 수신하여 개인 정보를 보호하는 동시에 모든 사용자를 위한 모델을 개선할 수 있습니다.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"데이터 사용량 경고 한도: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"데이터 사용 한도: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"데이터 사용량 경고 한도: <xliff:g id="ID_1">^1</xliff:g> / 데이터 사용 한도: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"기기에 표시되는 데이터 사용량은 이동통신사에서 산출한 데이터 사용량과 다를 수 있습니다."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"이동통신사 네트워크를 통해 사용된 데이터는 제외됩니다."</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> 사용함"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"데이터 경고 설정"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> 전에 업데이트됨"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"조금 전 <xliff:g id="ID_1">^1</xliff:g>에서 업데이트함"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"조금 전 업데이트됨"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"요금제 보기"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"세부정보 보기"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"데이터 절약 모드"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"무제한 데이터"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"배터리 사용량 이상치"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"빠른 설정 개발자 타일"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb 승인 시간 제한 사용 중지"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"기본값(7일) 또는 사용자가 설정한 기간(최소 1일) 내에 다시 연결되지 않은 시스템의 adb 승인 자동 취소를 사용 중지합니다."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope 추적"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"센서 사용 안함"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"직장 프로필 설정"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"개인 앱에서 직장 디렉터리 연락처 검색"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"자동완성 서비스"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"기본 자동 완성 서비스"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"비밀번호"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"비밀번호, 패스키, 데이터 서비스"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"추가 제공업체"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{비밀번호 #개}other{비밀번호 #개}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"자동, 채우기, 자동 완성, 비밀번호"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"데이터, 패스키, 비밀번호"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"자동, 완성, 자동 완성, 데이터, 패스키, 비밀번호"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"비밀번호, 패스키, 데이터 서비스"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;모든 서비스를 사용 중지하시겠습니까?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; 로그인할 때 비밀번호, 패스키 및 기타 저장된 정보를 자동 입력에 사용할 수 없습니다."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;기본 서비스를 &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;(으)로 변경하시겠습니까?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; 이제부터 새 비밀번호, 패스키 및 기타 정보가 여기에 저장됩니다. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;에서 자동 완성할 수 있는 항목을 파악하기 위해 화면에 표시된 내용을 사용할 수도 있습니다."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s을(를) 사용하시겠습니까?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"5개 서비스만 사용할 수 있음"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"다른 서비스를 추가하려면 서비스를 1개 이상 사용 중지하세요."</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s에서 내 화면에 있는 항목을 사용해 자동 완성 항목을 결정합니다."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"비밀번호, 패스키, 데이터 서비스 한도"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"동시에 최대 5개의 비밀번호, 패스키, 데이터 서비스를 활성화할 수 있습니다. 추가하려면 서비스를 사용 중지하세요."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"비밀번호, 패스키, 데이터 서비스 한도"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"최대 5개의 비밀번호, 패스키, 데이터 서비스를 동시에 활성화할 수 있습니다. 추가하려면 서비스를 사용 중지하세요."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"사용 중지"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"자동 완성"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"로깅 수준"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"디버그 가능한 앱의 경우에만 앱 호환성 변경사항을 수정할 수 있습니다. 디버그 가능한 앱을 설치하고 다시 시도해 보세요."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"다른 설정을 변경해야 함"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"계정"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"계정 %d개"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"기기 이름"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"기본 정보"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"법률 및 규제"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC 태그가 스캔되면 이 앱이 실행되도록 허용합니다.\n이 권한이 허용되어 있는 경우 태그가 감지되면 이 앱을 옵션으로 사용할 수 있게 됩니다."</string>
     <string name="media_output_title" msgid="8283629315159510680">"미디어 출력 대상"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> 재생 위치"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"오디오 재생 위치:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"이 기기"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"통화 중에는 사용할 수 없습니다."</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"전화 받기 기능 사용"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"음소거"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"사용 설정하려면 먼저 \'전원 버튼 길게 누르기\'를 전원 메뉴로 변경하세요."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"네트워크 세부정보"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"기기 이름이 휴대전화에 있는 앱에 표시됩니다. 기기 이름은 블루투스 기기 및 Wi-Fi 네트워크에 연결하거나 Wi-Fi 핫스팟을 설정할 때 다른 사용자에게도 표시될 수 있습니다."</string>
     <string name="devices_title" msgid="649715719278562515">"기기"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"네트워크 선택"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"연결 끊김"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"이름"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"색상(호환 앱에서 사용됨)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"저장"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM 사용"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"이 SIM 사용"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"꺼짐"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"이 SIM을 사용 중지하려면 SIM 카드를 제거하세요."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g>을(를) 활성화하려면 탭하세요."</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM 삭제"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"기본 네트워크 유형"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"네트워크 작동 모드 변경"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"기본 네트워크 유형"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"요금은 이동통신사에 문의하세요."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"앱 데이터 사용량"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"잘못된 네트워크 모드(<xliff:g id="NETWORKMODEID">%1$d</xliff:g>)입니다. 무시하세요."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"액세스 포인트 이름(APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>에 연결된 경우 사용할 수 없음"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> 서비스로 전환하시겠습니까?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM 카드 사용으로 전환하시겠습니까?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> SIM을 사용할까요?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"SIM은 한 번에 하나만 활성화할 수 있습니다.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> 서비스로 전환해도 <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> 서비스는 취소되지 않습니다."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"eSIM은 한 번에 하나만 활성화할 수 있습니다.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> 이동통신사로 전환해도 <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> 서비스는 취소되지 않습니다."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"SIM은 한 번에 하나만 활성화할 수 있습니다.\n\nSIM으로 전환해도 <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> 서비스는 취소되지 않습니다."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"한 번에 2개의 SIM을 사용할 수 없습니다. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> SIM을 사용하려면 다른 SIM을 사용 중지하세요."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> 서비스로 전환"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> 사용 중지"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"사용 안함"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"취소"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"전환"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"사용 중지"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM을 활성화할 수 없음"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM을 다시 사용 설정해 보세요. 그래도 문제가 지속되면 기기를 다시 시작하세요."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM 설정"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"이 기기에서 여러 개의 SIM을 사용하도록 모바일 네트워크 환경설정을 설정하세요."</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM 라벨 지정"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"전화를 걸고, 문자를 보내고, 데이터를 사용할 때 설정에서 이러한 라벨이 표시됩니다."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM 라벨"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"라벨"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"사용할 SIM 선택"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"한 번에 2개의 SIM을 사용할 수 있습니다."</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"기본 SIM 설정"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"전화, 문자, 데이터에 기본적으로 사용할 SIM을 선택하세요"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"기본 SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"통화"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"문자 메시지"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"자동 데이터 전환"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"서비스 범위 및 지원 여부에 따라 SIM 중 하나의 데이터를 사용하세요."</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"데이터 전용"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"설정"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"다음"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"모바일 네트워크"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"전화번호"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM 라벨 및 색상"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"네트워크 활성화"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"이동통신사 전환"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>이(가) 활성화됨"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"나중에 모바일 데이터, 통화 기능, SMS를 사용하려면 네트워크 설정으로 이동하세요."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"이 eSIM을 삭제하시겠습니까?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"이 SIM을 삭제하면 기기에서 <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> 서비스가 삭제됩니다.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> 서비스는 취소되지 않습니다."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"삭제"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM 삭제 중…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM을 삭제할 수 없음"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"오류로 인해 SIM을 삭제할 수 없습니다.\n\n기기를 다시 시작하고 다시 시도해 보세요."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"기기에 연결"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> 앱에서 임시 Wi‑Fi 네트워크를 사용하여 기기에 연결하려고 합니다."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"기기가 없습니다. 기기가 켜져 있으며 연결 가능한지 확인하세요."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"긴급 전화"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Wi‑Fi 통화를 사용한 긴급 전화가 이용 중인 이동통신사에서 지원되지 않습니다.\n긴급 전화를 걸면 기기에서 모바일 네트워크로 자동 전환합니다.\n긴급 전화는 모바일 데이터가 지원되는 지역에서만 사용할 수 있습니다."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"통화에 Wi‑Fi를 사용하여 통화 품질을 개선합니다."</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"백업 전화"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>이(가) 사용 불가 상태이거나 로밍 중인 경우 모바일 데이터 SIM이 <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> 통화에 사용됩니다."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"백업 전화"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS 메시지 수신 중"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS 메시지 전송 불가"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"탭하여 모바일 데이터가 꺼져 있을 때 <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>에서 MMS 메시지 허용"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"직장용 정책 정보"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"IT 관리자가 관리하는 설정"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K 페이지 크기로 부팅"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16K 페이지 크기 지원 커널을 사용하여 기기 부팅"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB 페이지 호환 커널로 재부팅하시겠습니까?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"경고: 일부 애플리케이션이 이 모드와 호환되지 않을 수 있습니다. 확인 후 기기가 재부팅됩니다."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB 페이지 호환 커널로 재부팅하시겠습니까?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"확인 후 기기가 재부팅됩니다."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"16KB 페이지 호환 커널로 커널을 업데이트할 수 없습니다."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"변경사항 적용 중"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"버그 신고 핸들러"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"어떤 앱이 기기의 버그 신고 바로가기를 처리하는지 정합니다."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"개인"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"재생을 빠르게 재개할 수 있도록 빠른 설정에서 미디어 플레이어를 계속 열어 둡니다."</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"잠금 화면에 미디어 표시"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"재생을 빠르게 재개할 수 있도록 잠금 화면에서 미디어 플레이어를 계속 열어 둡니다."</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"미디어 추천 표시"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"어시스턴트 미디어 추천 표시"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"활동을 바탕으로 추천을 받습니다."</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"플레이어를 숨깁니다."</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"플레이어 표시"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"활성"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"비활성"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /<xliff:g id="ID_1">%1$s</xliff:g> 기본값"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"통화"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"호환되는 미디어에서 더 몰입감 넘치는 오디오를 경험할 수 있습니다."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"머리 추적"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"머리를 움직이면 오디오가 변경되어 더 자연스러운 소리를 들을 수 있습니다."</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"권한 동기화"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>에서 허용한 것과 동일한 앱 권한을 <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>에 부여합니다."</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"휴대전화에서 권한 동기화"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"이 휴대전화에서 허용한 것과 동일한 앱 권한을 시계에 부여합니다."</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"오디오 기기 유형"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"알 수 없음"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"스피커"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"보통"</string>
     <string name="contrast_high" msgid="3988567609694797696">"높음"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"이 앱은 창 1개에서만 열 수 있습니다."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"사용"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"사용 안함"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"사용 안함"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"사용 안함"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"사용"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"사용 안함"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"사용"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"사용 안함"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"밝은 화면은 어둡게, 어두운 화면은 밝게 바꿉니다."</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"화면 확대"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"사용 안함"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"사용 안함"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"사용"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"사용 안함"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"사용"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"비밀번호 설정 완료"</string>
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 4b19f1d..e20cb78 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 мүнөттөн кийин"</item>
     <item msgid="1574040255478150028">"5 мүнөттөн кийин"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 2fe2e39..cb65080 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Иштеп чыгуучунун жөндөөлөрүнө администратор колдонуучулар гана кире алышат."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Система"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Тейлөө аймагында"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Тейлөө аймагынын сыртында"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Улантуу үчүн сүрүп коюңуз"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Колдонмону пайдалана берүү үчүн телефонду бүктөп, алдыңкы экранды өйдө сүрүңүз же экран кулпулангыча бир нече секунд күтө туруңуз"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Окшош"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Рингтон жана ойготкучтар"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Чалуулардагы аудио"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Медиа"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Билдирмелер жана системанын башка сигналдары"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Медиа жана тутум эскертүүлөрү"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Билдирмелер"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Демейки шартта жеке колдонмолор аудио түзмөктү аныкташат"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Аты жок Bluetooth-түзмөк"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Изделүүдө"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth күйгүзүлдү"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Баарын көрүү"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Баарын көрүү"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Стилус"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Стилус баскычын басуу"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Жумуш профили)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE аудио агымына туташтыруу"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Жакын жердеги аудио агымдар"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудио агымдар"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Аудио агымга QR коду аркылуу туташуу"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Жакын жерде аудио агымдар табылган жок."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Күн жана убакыт"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Тазалоо"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ар бир колдонмого өзүнчө тил тандоо үчүн анын тилдер параметрлерине өтүңүз."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Колдонмонун тилдери жөнүндө кеңири маалымат"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Системанын тилин %s тилине өзгөртөсүзбү?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s тилин тандалган тилдерге кошосузбу?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Ушуну менен колдонмолор жана вебсайттар ушул тилди да тандаганыңызды билет."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Түзмөгүңүздүн чөлкөмдүк жана башка параметрлери өзгөрөт."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Өзгөртүү"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s жеткиликсиз"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Ишемби"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Эгер колдонмодо чөлкөмдүк параметрлер иштебесе, колдонмо демейки тил параметрин колдонот."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Тил параметрлери жөнүндө кененирээк маалымат алыңыз."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Кошумча параметрлер"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Кайрылуу шарттары"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Сизге кандай кайрылуу керектигин белгилеңиз"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Колдонмолор сизге кайрылууну жекелештирүү үчүн кайрылуу шарттарын колдоно алышат."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Белгиленген эмес"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Аял жак"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Эркек жак"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Орто"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Тандалган тилди өчүрөсүзбү?}other{Тандалган тилдерди өчүрөсүзбү?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст башка тилде көрүнөт."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Тилдердин баары алынбайт"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Жайгашкан жер"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Жайгашкан жерди аныктоо"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Өчүк"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Күйүк - # колдонмо жайгашкан жерди көрө алат}other{Күйүк - # колдонмо жайгашкан жерди көрө алат}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Күйүк / # колдонмо жайгашкан жерди көрө алат}other{Күйүк / # колдонмо жайгашкан жерди көрө алат}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Жүктөлүүдө…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Жакын жердеги түзмөктөрдү көрө алган колдонмолор туташкан түзмөктөрдүн абалын аныкташы мүмкүн."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Колдонмолор менен кызматтар түзмөктүн жайгашкан жерин көрө алышпайт. Кырсыктаганда жардамга келчү кызматка чалып же билдирүү жөнөтүп жатканыңызда, ага түзмөгүңүздүн жайгашкан жери көрүнөт."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Жайгашкан жерди аныктоо параметрлери жөнүндө кеңири маалымат алыңыз."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Жайгашкан жерди аныктоо параметрлери жөнүндө кеңири маалымат"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Жайгашкан жерди аныктоо мүмкүнчүлүгүн өзгөртүү үчүн Параметрлер &gt; Коопсуздук жана купуялык &gt; Купуялуулукту көзөмөлдөө каражаттарына өтүңүз"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"\"Google үчүн жасалган\" деген коргоочу айнекти же пленканы колдонууну сунуштайбыз. Башка коргоочу айнектер же пленкалар балаңыздын манжа изин тааныбай коюшу мүмкүн."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Кулпуну саат менен ачуу"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Эгер манжа изи менен ачуу жана жүзүнөн таанып ачуу функцияларын кошкон болсоңуз, беткап тагынып же караңгы жерде турганыңызда телефонуңуз манжаңыздын изин сурайт.\n\nЖүзүңүз же манжаңыздын изи таанылбаганда, кулпуну саатыңыз менен ача аласыз."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Манжаңыздын изи таанылбаганда, кулпуну саатыңыз менен ача аласыз."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Жүзүңүз таанылбаганда, кулпуну саатыңыз менен ача аласыз."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Эгер манжа изи менен ачуу жана жүзүнөн таанып ачуу функцияларын тууралаган болсоңуз, беткап тагынып же караңгы жерде турганыңызда телефонуңуз манжаңыздын изин сурайт.\n\nКулпуну саат менен ачуу функциясы — манжаларыңыз ным болуп же жүзүңүз таанылбай турганда телефондун кулпусун ачуунун дагы бир ыңгайлуу жолу."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Кулпуну саат менен ачуу функциясы — манжаларыңыз ным болуп же манжаңыздын изи таанылбай турганда телефондун кулпусун ачуунун дагы бир ыңгайлуу жолу."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Кулпуну саат менен ачуу функциясы — жүзүңүз таанылбай турганда телефондун кулпусун ачуунун дагы бир ыңгайлуу жолу."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Төмөнкү үчүн манжаңыздын изин же саатыңызды колдонуңуз:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Төмөнкү үчүн жүзүңүздү же саатыңызды колдонуңуз:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Төмөнкү үчүн жүзүңүздү, манжаңыздын изин же саатыңызды колдонуңуз:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Жүз жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ал кантип иштейт"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Саатыңыздын кулпусу ачылып, билегиңизге тагылып жана телефонго жакын болушу керек. Саатыңыз билегиңизде болсо, анын кулпусун кайра ачуунун кереги жок."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Бул телефондун кулпусу ачылганда саатыңызга билдирме аласыз. Эгер телефондун кулпусу кокустан ачылып кетсе, билдирмени таптап, аны кайра кулпулап койсоңуз болот."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Баары өзүңүздүн колуңузда"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Тууралоого өтүп, саатыңызды каалаган убакта кулпуну саат менен ачуу функциясынан алып салсаңыз болот"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Билдирмени таптоо"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Кулпуланган экранды өйдө сүрүңүз"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Саатыңызды тандаңыз"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Жеткиликтүү сааттар"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Жокко чыгаруу"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Ырастоо"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Баары даяр!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Эми кулпуланган экранды өйдө сүрүп же билдирмени таптап, телефонуңуздун кулпусун саатыңыз менен ача аласыз"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Бүттү"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Кулпуну саат менен ачуу"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Кулпуланган экранды өйдө сүрүп же билдирмени таптап, телефонуңуздун кулпусун саатыңыз менен ача аласыз"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Кулпуну саат менен ачуу үчүн саатыңыздын кулпусу ачылып, билегиңизге тагылып жана телефонго туташып турушу керек. Эгер байланыш үзгүлтүккө учураса, кулпуну саат менен ачуу үчүн адегенде телефонуңуздун кулпусун ачышыңыз керек болот.\n\nКөңүл буруңуз:\nБир убакта бир саатты гана тууралай аласыз. Башка саатты кошуу үчүн адегенде учурдагысын өчүрүңүз."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Кулпуну саат менен ачуу тууралуу кеңири маалымат"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Саат кошуу"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Саатты өчүрүү"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Манжа изи жана Жүзүнөн таанып ачуу"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Жумуш профилинде жүз жана манжа изи менен ачуу функциясы"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Коюу керек"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Коопсуздук"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Купуялык"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Жумуш профили"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Жеке чөйрө"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Жеке колдонмолорду кулпулап жана жашырып коюңуз"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Жеке колдонмолорду жашырып же кулпулай ала турган өзүнчө чөйрөдө сактаңыз"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Жеке чөйрөнү кулпулоо"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Жеке чөйрө үчүн түзмөгүңүздүн кулпусун ачуу ыкмасын колдонуп же башка кулпуну тандай аласыз"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Түзмөктүн экранын кулпулоо ыкмасын колдонуу"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Жүз жана манжа изи менен ачуу"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Манжа изи менен ачуу"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Жүзүнөн таанып ачуу"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Коюу үчүн басыңыз"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Жеке мейкиндик үчүн \"Манжа изи менен ачуу\" функциясы"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Жеке мейкиндик үчүн \"Жүзүнөн таанып ачуу\" функциясы"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Кулпуну ачуу жолдору"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Түзмөктүн экраны кулпулангандай"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Жеке чөйрө үчүн жаңы кулпуну тандайсызбы?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Автоматтык түрдө кулпулоо"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Жеке мейкиндикти автоматтык түрдө кулпулоо"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Эгер түзмөгүңүздү белгилүү бир убакыт бою колдонбосоңуз, жеке мейкиндигиңизди автоматтык түрдө кулпулай аласыз"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Түзмөк кулпуланган сайын"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 мүнөт ишсиз тургандан кийин"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Эч качан"</string>
+    <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_deleted" msgid="7825768516955610897">"Жеке чөйрө өчүрүлдү"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Жеке чөйрө өчкөн жок"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Жеке мейкиндиктин кулпусу ачылды"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Экран кулпусун коюп алыңыз"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Жеке чөйрөнү колдонуу үчүн бул түзмөктүн экранын кулпулаңыз"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Экран кулпусун коюу"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Жокко чыгаруу"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Жок"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Тууралоо"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Жеке чөйрөнү тууралоо"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Жеке колдонмолорду жашырып же кулпулай ала турган өзүнчө чөйрөдө сактаңыз"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Ал кантип иштейт"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Жеке чөйрөңүздү колдонмолор тизмесинин ылдый жагынан көрө аласыз"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Жеке чөйрөдөгү колдонмолор кулпу менен корголот"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Жеке чөйрөдөгү колдонмолордун билдирмелери ал кулпуланганда жашырылат"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Жеке чөйрөңүз кулпуланган учурда андагы колдонмолор уруксаттарды башкаргычта, купуялык тактасында жана башка параметрлерде көрүнбөйт.\n\nЖеке чөйрөңүздү жаңы түзмөккө жылдырууга болбойт. Эгер жеке чөйрөнү башка түзмөктө колдонгуңуз келсе, башка жеке чөйрөнү тууралашыңыз керек болот.\n\nТүзмөгүңүздү компьютерге туташтырган же ага зыяндуу колдонмолорду орноткон кишилер жеке чөйрөңүзгө кире алат."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Жеке чөйрө туураланууда…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Жеке чөйрөдөгү колдонмолордун билдирмелери ал кулпуланганда жашырылат"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Жеке мейкиндик колдонмолорунан сүрөттөрдү же файлдарды бөлүшүү үчүн мейкиндигиңиздин кулпусун ачыңыз"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Айрым колдонмолор жеке чөйрөңүзгө мурунтан эле орнотулган"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Жеке чөйрө туураланган жок"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Кайталоо"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Жеке чөйрөнүн кулпусун ачуу үчүн экран кулпусу колдонулсунбу?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Жеке чөйрө үчүн түзмөгүңүздүн кулпусун ачуу ыкмасын колдонуп же башка кулпуну тандай аласыз"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Экран кулпусун колдонуу"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Жаңы кулпуну тандоо"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Баары даяр!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Жеке чөйрөңүзгө кирүү үчүн колдонмолоруңуздун тизмесине өтүп, ылдый сыдырыңыз"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Бүттү"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Жеке чөйрөнү табуу үчүн ылдый сыдырыңыз"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Жеке чөйрөңүз үчүн кулпу тандаңыз"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Жеке чөйрөңүздү манжаңыздын изи менен ача аласыз. Коопсуздук максатында, кулпулоонун дагы бир ыкмасын тандап коюңуз."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Жеке мейкиндигиңиз үчүн PIN код коюңуз"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Жеке мейкиндигиңиз үчүн сырсөз коюңуз"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Жеке мейкиндик үчүн граф. ачкыч коюңуз"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Жеке чөйрөнү көрсөтүү үчүн (КТ өзгөрүшү мүмкүн)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Параметрлер колдонмосун ачыңыз"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Кулпуланып турганда Коопсуздук жана купуялык &gt; Жеке чөйрө &gt; Жеке чөйрөнү жашыруу дегенди таптаңыз"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Кулпуланган болсо, Жеке чөйрөнү жашыруу которгучун өчүрүңүз"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google\'чулар үчүн эскертме: Бул функцияны иштеп чыгуу процесси аяктай элек"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Сиз бул сырсөздү башка түзмөккө дагы киргизишиңиз керек болушу мүмкүн."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Координацияланган топтомго туташуу үчүн ырастаңыз"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Байланыштар менен чалууларды жеткиликтүү кылуу"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ошондой эле байланыштарга жана чалуу таржымалына кирүүгө уруксат берүү"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Маалымат чалуу тууралуу билдирмелер жана башкалар үчүн колдонулат"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен байланыша албай жатат."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Жеткиликтүү түзмөктөр"</string>
     <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\'ду күйгүзүңүз.\n\nЖерлерди тагыраак аныктап, түзмөктүн иштешин жакшыртуу үчүн Bluetooth өчүп турганда да колдонмолор менен кызматтар жакын жердеги түзмөктөрдү издей беришет. Издебесин десеңиз, Bluetooth түзмөктөрүн издөө параметрин өчүрүп коюңуз."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"Өзгөртүү"</string>
     <string name="device_details_title" msgid="1155622417516195481">"Түзмөктүн чоо-жайы"</string>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Учак тартибинде"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Жалпыга ачык тармактар жөнүндө кабарлоо"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Байланыш сигналы күчтүү жалпыга ачык тармактар жеткиликтүү болгондо эскертет"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP тармактарына туташууга уруксат берүү"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP — коопсуздук деңгээли төмөн болгон эски коопсуздук протоколу"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP тармактарынын коопсуздук деңгээли төмөн болгондуктан, байланыш операторуңуз аларга туташууга тыюу салат"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi автоматтык түрдө күйсүн"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Байланыш сигналы күчтүү сакталган тармактарга (мисалы, үйүңүздөгү) жакындаганда, Wi‑Fi автоматтык түрдө күйөт"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Жайгашкан жерди аныктоо мүмкүнчүлүгү өчүрүлгөндүктөн, жеткиликтүү эмес. "<annotation id="link">"Жайгашкан жерди"</annotation>" күйгүзүңүз."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Бул функция аркылуу Интернет жок болсо да, колдонмолор менен кызматтар Wi-Fi тармактарын издей алышат. Жайгашкан жерди аныктоо функциясын жана кызматтарды жакшырткыңыз келсе, аны иштетиңиз."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Күйгүзүү"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi тармактарын издөө күйгүзүлдү"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Бул тармак коопсуздук деңгээли төмөн болгон эски коопсуздук протоколун колдонот"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> бөгөттөлдү"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Бул тармак коопсуздук деңгээли төмөн болгон эски коопсуздук протоколун (WEP) колдонот. Баары бир туташуу үчүн WEP тармактарына уруксат берсеңиз болот."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Бул тармак коопсуздук деңгээли төмөн болгон эски коопсуздук протоколун колдонгондуктан, байланыш операторуңуз ага туташууга тыюу салат"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP тармагына уруксат берүү"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Жабуу"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Өркүндөтүлгөн параметрлер"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Өркүндөтүлгөн параметрлердин ылдый түшүүчү тизмеси"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"жайып көрсөтүү"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi тармагында калуу"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Кайра көрүнбөсүн"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Туташуу"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi күйгүзүлдү"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> менен туташты"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> менен туташууда"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Туташууда…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Түйүндгө байланышкан жок"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Тармак тейлөө аймагында эмес"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Унутулсун"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Өзгөртүү"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Түйүн унутулган жок"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Сактоо"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Түйүн сакталган жок"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Жок"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобилдик трафик"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Кубатталууда"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Кубатталууда"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Байланыш түйүнүнө туташуу"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Туташуунун күчү"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сакталган тармактар"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Бир да сырсөз коюлган жок"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Байланыш түйүнүнүн аталышы"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Байланыш түйүнүнүн сырсөзү"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Wi-Fi жыштыктарынын диапазону"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Байланыш түйүнү автоматтык түрдө өчөт"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Түзмөктөр туташпай турганда"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Кеңейтүүнүн шайкештиги"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Оюндар үчүн демейки кадрлардын жыштыгын өчүрүү"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Оюндар үчүн кадрлардын максималдуу жыштыгынын <xliff:g id="FRAME_RATE">%1$d</xliff:g> Герц менен чектелишин өчүрүңүз."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"Ыңгайлашуучу көшүү режими\" экранды кимдир-бирөө карап жатканын текшерүү үчүн маңдайкы камераны колдонот. Ал түзмөктө иштеп, сүрөттөрдү эч качан сактап калбайт жана Google\'га жөнөтпөйт."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ыңгайл. көшүү режимин күйгүзүү"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Экранды карап турганда, өчпөйт"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Экран өчө турган убакыт узак болсо, батарея көбүрөөк сарпталат."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера кулпуланган"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Жүздү аныктоо үчүн камеранын кулпусун ачуу керек"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ыңгайлашуучу көшүү режимин колдонуу үчүн камеранын кулпусун ачуу керек"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g> оюкчасы)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> оюкчасы) (негизги)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Көрүү үчүн сакталган тармакты тандаңыз"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL версиясы"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Батарея деңгээли"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Жалпы"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Жалпы параметрлер"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Сактоо"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Жок"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Аталыш сабы бош болбошу керек."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN бош болбошу керек."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC талаасы 3 орундуу болууга тийиш."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC талаасы 2 же 3 орундуу болууга тийиш."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Байланыш оператору %s түрүндөгү APN\'дерди кошууга уруксат бербейт."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC талаасы жарактуу болушу керек."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Демейки APN тууралоолорун кайтарууда."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Баштапкы абалга келтирүү"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Демейки APN параметрлери калыбына келди."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Баштапкы абалга келтирүү"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth жана Wi‑Fi баштапкы абалга келтирилди"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM-карталарын өчүрүү"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Тарифтик пландарыңыз өзгөрбөйт. Башка SIM-карталарды жүктөп алуу үчүн байланыш операторуна кайрылыңыз."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Параметрлерди кайра коюу"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Тармак параметрлерин баштапкы абалга келтирсеңиз, аларды артка кайтара албайсыз. Уланта бересизби?"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Тармактын параметрлерин баштапкы абалга келтирип, eSIM-карталарды өчүрөсүзбү? Бул аракетти артка кайтара албайсыз."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Кайра коесузбу?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Бул колдонуучу тармакты баштапкы абалына келтире албайт"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Тармак параметрлери баштапкы абалга келди"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM карталар тазаланбай жатат"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Катадан улам eSIM-карталарды өчүрүүгө болбойт.\n\nТүзмөгүңүздү өчүрүп күйгүзүп, кайталап көрүңүз."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Бардык нерселерди өчүрүү (баштапкы абалга кайтаруу)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Бардык нерселерди өчүрүү (баштапкы абалга кайтаруу)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Музыка"</li>\n<li>"Сүрөттөр"</li>\n<li>"Колдонуучунун башка нерселери"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-карталар"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Байланыш операторуңуздун кызматын пайдалана бересиз."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Бардык жеке маалыматыңыз жана жүктөлүп алынган колдонмолор өчүрүлөт. Бул аракетти артка кайтара албайсыз."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Бардык жеке маалыматыңыз, анын ичинде жүктөлүп алынган колдонмолор жана SIM карталар жок кылынат. Бул аракетти артка кайтара албайсыз."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Бардык нерселерди өчүрөсүзбү?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Бул колдонуучунун демейки параметрлерге кайтарууга уруксаты жок"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Өчүрүлүүдө"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Байланыш түйүнү, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Интернет башка түзмөктөр менен бөлүшүлгөн жок"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Өчүк"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Модем режими"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi байланыш түйүнү колдонулбасын"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Интернетти USB аркылуу гана бөлүшөсүз"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Интернетти Bluetooth аркылуу гана бөлүшөсүз"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Интернетти Ethernet аркылуу гана бөлүшүү"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Интернетти USB жана Bluetooth аркылуу гана бөлүшөсүз"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Интернетти USB жана Ethernet аркылуу гана бөлүшүү"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Интернетти Bluetooth жана Ethernet аркылуу гана бөлүшүү"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Интернетти USB, Bluetooth жана Ethernet аркылуу гана бөлүшүү"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB модем"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth модем"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet модем режими"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Башка түзмөктөрдү Wi‑Fi же мобилдик Интернетке туташтыруу үчүн байланыш түйүнүн же модем режимин колдонуңуз. Ошондой эле, колдонмолор жакын жердеги түзмөктөр менен кандайдыр бир нерселерди бөлүшүү үчүн байланыш түйүндөрүн түзө алышат."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Жардам"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобилдик тармак"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифтик план"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS колдонмосу"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS колдонмону алмаштырасызбы?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMS билдирүүлөрү менен жазышуу үчүн <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi жардамчысын өзгөртөсүзбү?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Тармактык туташууларыңызды башкаруу үчүн, <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Тармактык туташууларыңызды башкаруу үчүн <xliff:g id="NEW_APP">%s</xliff:g> колдоносузбу?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Белгисиз SIM оператору"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторунда белгилүү камсыздоочу вебсайт жок"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM картаны салып, кайра иштетиңиз"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Интернетке кошулуңуз"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Жакында изделген жерлер"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Жумуш профилинин жери"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Жайгашкан жерди көргөн колдонмолор"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Мүмкүнчүлүктү тазалоо"</string>
     <string name="controls_label" msgid="8671492254263626383">"Башкаруу элементтери"</string>
     <string name="force_stop" msgid="2681771622136916280">"Мажбурлап токтотуу"</string>
+    <string name="archive" msgid="9074663845068632127">"Архивдөө"</string>
+    <string name="restore" msgid="7622486640713967157">"Калыбына келтирүү"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Жалпы"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Колдонмонун көлөмү"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB сактагычтын колдонмосу"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Пакеттин өлчөмүн эсептей албай жатат."</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> версиясы"</string>
     <string name="move_app" msgid="5421158479447276791">"Жылдыруу"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Архивделген жок"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> архивделди"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Калыбына келтирилбей койду"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> калыбына келтирилүүдө"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Көчүү аракети аткарылып жатат."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Сактагычта орун жетишсиз."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Мындай колдонмо жок."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Экрандагы баскычтоп жеткиликтүү"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Экрандагы баскычтопторду башкаруу"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Параметрлер"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Жеткиликтүүлүк"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Аппараттык баскычтоп"</string>
     <string name="show_ime" msgid="4334255501724746849">"Экрандагы баскычтопту колдонуу"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Баскычтоп иштетилгенде экранда көрүнүп турат"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Кайтаруу баскычтары"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Аппараттык баскычтоп жеткиликтүү болушу үчүн, Кайтаруу баскычтарын иштетиңиз"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Жабышма баскычтар"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Физикалык баскычтоп жеткиликтүү болушу үчүн, жабышма баскычтарды иштетиңиз"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Ыкчам баскычтар"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ыкчам баскычтардын тизмесин көрсөтүү"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Жумуш профилинин баскычтоптору жана куралдары"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Колдонуу убакыты боюнча иргөө"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Акыркы колдонулушу боюнча иргөө"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Колдонмонун аталышы боюнча иргөө"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Акыркы жолу колдонулган"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Акыркы жолу колдонулган"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"эч качан"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Колдонулган убакыт"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Атайын мүмкүнчүлүктөр"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Атайын мүмкүнчүлүктөрдүн параметрлери"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Баары бир улантуу"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Жок"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Чоңойтуу параметрлери"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Үч жолу таптап чоңойтуу"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ыкчам баскыч менен чоңойтуу"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Ыкчам баскыч жана үч жолу таптоо менен чоңойтуу"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> жөнүндө"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Ачуу үчүн экранды эки манжаңыз менен эки жолу таптаңыз"</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="860548190334486449">"Чоңойтууну иштетүү же өчүрүү үчүн экраныңыздын каалаган жерин эки манжаңыз менен эки жолу таптаңыз."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Бул атайын мүмкүнчүлүктөр функциясын колдонуу үчүн экранды 3 манжаңыз менен ылдый жагынан өйдө сүрүңүз.\n\nБашка функцияга өтүү үчүн 3 манжаңыз менен өйдө сүрүп, кармап туруңуз."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Түшүндүм"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Атайын мүмкүнчүлүктөр баскычынын параметрлери"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Баскычтын параметрлери"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ыкчам баскычы"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Атайын мүмкүнчүлүктөр баскычы"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Атайын мүмкүнчүлүктөр жаңсоосу"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Экранды эки манжа менен эки жолу таптоо"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"экранды эки манжа менен эки жолу таптоо"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Экранды эки манжаңыз менен {0,number,integer} жолу тез таптаңыз"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Экранды үч жолу басуу"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"экранды үч жолу таптоо"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Экранды {0,number,integer} жолу тез басыңыз. Бул ыкчам баскыч түзмөгүңүздү жайлатышы мүмкүн"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Атайын мүмкүнчүлүктөр баскычы жана жаңсоосу тууралуу кеңири маалымат"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Атайын мүмкүнчүлүктөр баскычын колдонуңуз. Бул жаңсоо 3 баскычтуу чабыттоодо жеткиликсиз."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Атайын мүмкүнчүлүктөргө тез өтүү"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Баштоо үчүн"</b>\n"1. Атайын мүмкүнчүлүктөр параметрлерин ачыңыз\n2. Керектүү функцияны тандап, анын ыкчам баскычын басып коюңуз\n3. Функцияны баскыч же жаңсоо менен иштетүүнү тандаңыз"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Баштоо үчүн"</b>\n"1. Атайын мүмкүнчүлүктөрдү тууралоого өтүңүз\n2. Функцияны тандап, ыкчам баскычты таптап коюңуз\n3. Функцияны колдонуу үчүн баскычты тандаңыз"</string>
+    <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_size_title" msgid="5785110470538960881">"Өлчөмү"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Чалууну кубат баскычы бүтүрөт"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Чычкандын чоң көрсөткүчү"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Курсор даанараак көрүнөт"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Бардык колдонмолор үчүн караңгы тема"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Өз караңгы темасы болбогон колдонмолорго карата пайдаланылат. Айрым колдонмолордун инверттелген түстөр сыяктуу чагылдыруу көйгөйлөрү болушу мүмкүн."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Анимацияларды алып салуу"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Экрандагы кыймыл азаят"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Моно аудио"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Уруксат берүү"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Жок"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Токтотуу"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Жок"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> токтотулсунбу?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="SERVICE">%2$s</xliff:g> кызматын токтотуу үчүн <xliff:g id="STOP">%1$s</xliff:g> баскычын басыңыз."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Өчүрүү"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Күйгүзүү"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> өчүрүлсүнбү?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Эч кандай кызматтар орнотулган эмес"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Бир да кызмат тандалган жок"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Эч кандай сүрөттөө берилген эмес."</string>
     <string name="settings_button" msgid="2195468788019730377">"Параметрлер"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"жарыкты сезгичтик, фотофобия, караңгы тема, шакый, баш ооруу, окуу режими, түнкү режим, жарыктыгын азайтуу, ак чекит"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Оңой колдонуу, оңой кирүү, жардам, ыңгайлуу"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"көрүү, угуу, сокур, дүлөй, мотор, эптүүлүк, жардамчы, жардам берүү, колдонуу жеңилдиги, жеткиликтүүлүк, кол, жардам"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Терезени чоңойткуч, чоңойтуп/кичирейтүү, чоңойтуу, начар көрүү, жакындатуу, чоңураак кылуу"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Коштомо жазуулар, тике транскрипциялоо, начар угуу, угуу жөндөмүнүн жоголушу, CART, cөздөн текстке, коштомо жазуу"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"түс контрасты"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"кыймылдын бузулушу, чычкан"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"угуу аппараттары, начар угуу, укпай калуу, кохлеардык имплантаттар, үндү күчөтүүчү түзмөктөр, добуш иштеткичтер"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"мотор, чычкан, тышкы чычкан, баш менен көзөмөлдөнгөн чычкан, ыңгайлаштырылуучу чычкан, майыптар арабасы, жойстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"угуу аппараттары, начар угуу, укпай калуу, кохлеардык имплантаттар, үндү күчөтүүчү түзмөктөр, добуш иштеткичтер, жеке үн күчөткүч товарлары"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"начар угуу, угуу жөндөмүнүн жоголушу, коштомо жазуулар, телетайп, телетайп түзмөгү"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"үч баскыч"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"эптүүлүк, мотор, улуу, артрит, инсульт, тремор, склероз, церебралдык шал оорусу, титирөө, кайталанма кыймылдан келип чыккан травма, кол"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"кечиктирүү, эптүүлүк, улуу"</string>
     <string name="print_settings" msgid="8519810615863882491">"Басып чыгаруу"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Өчүк"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 басып чыгаруу кызматы күйүк}other{# басып чыгаруу кызматы күйүк}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Эң көп иштетилген колдонмолорду көрүү"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Батареяңызды коргоо үчүн ал этият кубатталат"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Кубаттоо процесси оптималдаштырылгандыктан, түзмөгүңүздүн батареясы көпкө жетет"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Батареяңызды коргоо үчүн ал этият кубатталат"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Батареяны көпкө колдонуу үчүн түзмөгүңүз док станцияга туташып, оптималдаштырылып кубатталат"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Батареяңызды коргоо үчүн ал этият кубатталат"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Батареяны көпкө колдонуу үчүн түзмөгүңүз док станцияга туташып, оптималдаштырылып кубатталат"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Толук кубаттоо"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Планшет кийинки жолу док станцияга туташканда, батареяны коргоо үчүн ал этият кубатталат."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Кубаттоонун тындырылышы жөнүндө кеңири маалымат алыңыз"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Кубаттоону улантуу"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Кубатты көп сарптаган фондогу аракеттер камтылган"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Өчүрүү"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Жок"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Толук кубаттоо"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Кубаттоочу шайманда көйгөй бар"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Шайкеш эмес кубаттоо параметри жөнүндө кеңири маалымат"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Колдонмолорду автоматтык түрдө башкаруу"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"азыр"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Батареянын колдонулушунун диаграммасы"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Батареяны күнүмдүк колдонуу диаграммасы"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Батареяны сааттык колдонуу диаграммасы"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Батареянын деңгээли: <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>—<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Акыркы жолу толук кубатталгандан бери батареянын колдонулушу"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Батарея канча убакыт колдонулду (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Акыркы жолу толук кубатталгандан бери түзмөктү колдонуу убакыты"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Шашылыш чалуу сигналы"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Шашылыш чалуу аткарылганда көрүлчү аракетти коюу"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Камдык көчүрмөнү сактоо"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Күйүк"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Өчүк"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Бэкаптоо жана калыбына келтирүү"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Жеке дайындар"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Дайындарымдын камдык көчүрмөсү сакталсын"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Аталышы"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Түрү"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Сервердин дареги"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP шифрлөө (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP сыры"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec аныктагыч"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Алдын ала бөлүшүлгөн IPSec ачкычы"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec колдонуучунун тастыктамасы"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA тастыктамасы"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec сервер сертификаты"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Кошумча"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS издөө домендери"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS серверлер (мис. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Багыттоо жолдору (мис. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Колдонуучунун аты"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Сырсөз"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Аккаунттун маалыматын сактоо"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(колдонулбайт)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(серверди ырастаба)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(серверден келген)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Мындай VPN түрү такай туташып турбайт"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Туруктуу VPN тармагында сан менен жазылган сервер даректери гана колдоого алынат"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Туруктуу VPN\'дин DNS сервери көрсөтүлүшү керек"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Туруктуу VPN\'дин DNS серверинин даректери сандардан турушу керек"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Киргизилген маалымат дайым иштеген VPN кызматына дал келбейт"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Жок"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Этибарга албоо"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN\'сиз туташууларга тыюу салуу"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN туташуусу талап кылынсынбы?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Коопсуз эмес. IKEv2 VPN\'ге жаңыртыңыз."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Колдоого алынбаган VPN\'ге туташкан жок."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Дайым туташып туруучу VPN профайл тандаңыз. Бул VPN\'ге кошулганда гана желе трафигине уруксат берилет."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Эч бир"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Туруктуу VPN тармагы жана DNS сервери үчүн IP даректи көрсөтүңүз."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER шашылыш билдирүүлөрү"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Балдардын уурдалышы жөнүндө бюллетендерди алуу"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Кайталоо"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Чалууларды башкаргычты иштетүү"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Бул кызматка чалууларды аткарууну башкаруу мүмкүнчүлүгүн берүү."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Чалууларды башкаргыч"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Зымсыз тармактардан келген шашылыш билдирүүлөр"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Тармактык операторлор"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Жетки түйүнүнүн аталыштары"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"капчык"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"төлөө, таптоо, төлөмдөр"</string>
     <string name="keywords_backup" msgid="707735920706667685">"камдык көчүрмөнү сактоо, камдык көчүрмөнү сактоо"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"жаңсоо"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"жүз, кулпуну ачуу, аутентификация, кирүү"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"жүз, кулпуну ачуу, аутентификация, кирүү, манжа изи, биометрика"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl версиясы, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Түзмөк күйгүзүлгөндөгү үндөр"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Ыкчам коштомо жазуулар"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Автоматтык коштомо жазуулар"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Телефондун динамиктери"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Планшеттин динамиктери"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Түзмөктүн динамиктери"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Зымдуу гарнитура"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Шайкеш түзмөктөрдөн чыккан үн таасирдүү угулат"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Өчүк"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Акыркы сүйлөшүүлөр өчүрүлдү"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Маек өчүрүлдү"</string>
     <string name="clear" msgid="5092178335409471100">"Тазалоо"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> өчүрүү"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Маанилүү жана өзгөрүлгөн сүйлөшүүлөр бул жерде көрүнөт"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Сүйлөшүү маанилүү деп белгилесеңиз же ага кандайдыр бир өзгөртүү киргизсеңиз, ал ушул жерде көрүнөт. \n\nСүйлөшүүнүн параметрлерин өзгөртүү үчүн: \nЭкрандын өйдө жагынан ылдый сүрүп, билдирмелер тактасын ачып, сүйлөшүүнү коё бербей басып туруңуз."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Кичирейтүү"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Өчүк"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Колдонмону кадап коюу"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Бул функция белгилүү бир колдонмонун экранын кадап, телефондогу калган программаларды жашырып коет. Мисалы, ал аркылуу ишенген досуңузга түзмөгүңүздөгү белгилүү бир оюнду ойногонго уруксат берсеңиз болот."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Кадалган колдонмо башка колдонмолорду ачып, жеке маалыматтарды көрө алышы мүмкүн. \n\nКолдонмону кадап коюу функциясын колдонуу үчүн: 	\n1. Колдонмону кадап коюуну күйгүзүңүз 	\n2. Назар бөлүмүн ачыңыз 	\n3. Экрандын жогору жагындагы колдонмонун сүрөтчөсүн басып, андан кийин Кадап коюну таптаңыз"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Кадалган колдонмо башка колдонмолорду ачып, жеке маалыматтарды көрө алышы мүмкүн. \n\nТүзмөгүңүздү башка бирөө менен коопсуз шартта бөлүшкүңүз келсе, конок катары колдонуп көрүңүз. \n\nКолдонмону кадап коюу функциясын пайдалануу үчүн: 	\n1. Колдонмону кадап коюуну күйгүзүңүз 	\n2. Назар бөлүмүн ачыңыз 	\n3. Экрандын жогору жагындагы колдонмонун сүрөтчөсүн басып, андан кийин Кадап коюну таптаңыз"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Колдонмо колдонулбаса, аны тескеңиз"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Уруксаттарды алып салып, убактылуу файлдарды жок кылып, билдирмелерди токтотуңуз жана колдонмону архивдеңиз"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Бардык колдонмолор"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Орнотулган колдонмолор"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Ыкчам ачылуучу колдонмолор"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Бош"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Колдонмолордун эс тутумду керектеши"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Акыркы {time} ичинде 1 колдонмо эстутумду пайдаланды}other{Акыркы {time} ичинде # колдонмо эстутумду пайдаланды}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Эстутумдун колдонулушун профилдөөнү иштетүү"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Эстутумдун колдонулушун профилдөө тутумдун кошумча булактарын талап кылат."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Эстутумду профилдөө өчүк"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Жыштык"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Эң көп керектелиши"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Колдонула элек"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Башка колдонмолордун үстүнөн көрсөтүү"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Башка колдонмолордун үстүнөн көрсөтүүгө уруксат"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Интерфейстин элементтери башка колдонмолордун үстүнөн көрүнөт. Бул колдонмо кайсы жерди басканыңызды көрүп же экрандагы нерселерди өзгөртө алат."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Медиа чыгарылышын өзгөртүү"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Колдонмого медиа чыгарылышын которууга уруксат берүү"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Бул колдонмого кайсы туташкан түзмөк башка колдонмолордон аудио же видеону кайс ойноторун тандоосуна уруксат бериңиз. Эгер уруксат берилсе, бул колдонмо гарнитура жана динамиктер сыяктуу жеткиликтүү түзмөктөрдүн тизмесине кире алат. Ошондой эле аудио же видеону алып ойнотуп же тышкы экранга чыгаруу үчүн кайсы чыгаруучу түзмөк колдонуларын тандай алат."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Бардык файлдарга мүмкүнчүлүк"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Үн менен иштетүүнү жакшыртуу"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Бул түзмөк үн менен иштетүү үлгүсүн жакшыртуу үчүн жеке интеллектти колдонот. Колдонмолор купуялуулукту сактап, ошол эле учурда үлгүнү жакшыруу максатында көптөгөн колдонуучулар үчүн бириктирилген жаңыртуулардын корутундусун ала алышат.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Качан эскертүү берилет: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Трафик чектелген: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Качан эскертүү берилет: <xliff:g id="ID_1">^1</xliff:g> / Трафик чектелген: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Байланыш операторунун статистикасы түзмөгүңүздүн статистикасынан айырмаланышы мүмкүн."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Байланыш операторунун тармактары колдонгон нерселерден тышкары"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> колдонулду"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Трафик тууралуу эскертүү"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> мурда жаңырды"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> тарабынан жаңы эле жаңырды"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Жаңы эле жаңырды"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Планды көрүү"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Кеңири маалымат"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Трафикти үнөмдөө"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Чексиз трафик"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Батарея адаттан тышкары колдонулуп жатат"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Иштеп чыгуучунун ыкчам жөндөөлөр такталары"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb авторизацияларынын мөөнөттөрүн өчүрүү"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Демейки шарт боюнча белгиленген мөөнөттүн (7 күн) же колдонуучу белгилеген убакыттын (кеминде 1 күн) ичинде кайра туташпаган системаларда adb авторизациясын автоматтык түрдө артка кайтаруу мүмкүнчүлүгү өчүрүлөт."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope көз салуусу"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Сенсорлорду өчүрүү"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Жумуш профилинин параметрлери"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Жумуш каталогундагы байланыштарды жеке колдонмолордо издөө"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Автотолтуруу кызматы"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Демейки автотолтуруу кызматы"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Сырсөздөр"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Кошумча провайдерлер"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# cырсөз}other{# сырсөз}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"авто, толтуруу, автоматтык түрдө толтуруу, сырсөз"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"маалымат, киргизүүчү ачкыч, сырсөз"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"авто, толтуруу, автотолтуруу, маалымат, киргизүүчү ачкыч, сырсөз"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Бардык кызматтар өчүрүлсүнбү?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Сырсөздөр, киргизүүчү ачкычтар жана башка сакталган маалымат сиз киргенде автотолтуруу үчүн жеткиликсиз болот"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Тандаган кызматты &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&amp;gt кылып өзгөртүңүз; Жаңы сырсөздөр, киргизүүчү ачкычтар жана башка маалымат эми ушул жерде сакталат. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; экрандагы нерселерди колдонуп, автотолтурула турган талааларды аныктай алат"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s колдонулсунбу?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"5 кызматты гана иштете аласыз"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Башка кызматты кошуу үчүн кеминде 1 кызматты өчүрүңүз"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s экрандагы мазмундун кайсы жерлери автоматтык түрдө толтурула тургандыгын аныктайт."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Сырсөздөргө, киргизүүчү ачкычтарга жана маалымат кызматтарына коюлган чек"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Бир эле убакта 5 сырсөзгө, киргизүүчү ачкычка жана маалымат кызматтарына чейин колдоно аласыз. Көбүрөөк кошуу үчүн кызматты өчүрүңүз."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Сырсөздөргө, киргизүүчү ачкычтарга жана маалымат кызматтарына коюлган чек"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Бир эле убакта 5 сырсөзгө, киргизүүчү ачкычка жана маалымат кызматтарына чейин колдоно аласыз. Көбүрөөк кошуу үчүн кызматты өчүрүңүз."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Өчүрүү"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Автотолтуруу"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Кирүү деңгээли"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Шайкештик параметрлерин мүчүлүштүктөрүн оңдоого мүмкүн болгон колдонмолор үчүн гана өзгөртүүгө болот. Ушундай колдонмо орнотуп туруп, кайталап көрүңүз."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Башка жөндөөгө көз каранды"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Аккаунт"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d аккаунт"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Түзмөктүн аталышы"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Негизги маалымат"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Юридикалык маселелер жана эрежелер"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC энбелгиси скандалып жатканда, бул колдонмону иштетүүгө уруксат бериңиз.\nЭгер бул уруксат күйгүзүлсө, NFC энбелгилерин иштетүү үчүн бул колдонмону тандоого болот."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Медиа файл төмөнкүдө ойнотулсун:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> аркылуу ойнотуу"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Аудио төмөнкүдө ойнотулат:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Ушул түзмөк"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Сүйлөшүп жаткан учурда жеткиликсиз"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Чалууну кабыл алуу"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Үнсүз"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Иштетүү үчүн алгач кубат баскычынын менюсунан \"кубат баскычын коё бербей басып туруу\" опциясын өзгөртүңүз."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Тармактын чоо-жайы"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Түзмөгүңүздүн аталышы телефонуңуздагы колдонмолорго көрүнүп турат. Bluetooth түзмөктөрүнө, Wi‑Fi тармагына туташканыңызда же Wi‑Fi байланыш түйүнүн жөндөгөнүңүздө, аны башка адамдар да көрүшү мүмкүн."</string>
     <string name="devices_title" msgid="649715719278562515">"Түзмөктөр"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Тармакты тандоо"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Ажыратылды"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Аталышы"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Түсү (шайкеш колдонмолор үчүн)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Сактоо"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM картаны колдонуу"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Бул SIM картаны колдонуу"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Өчүк"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Бул SIM картаны өчүрүү үчүн аны түзмөктөн чыгарып салыңыз"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> байланыш операторун иштетүү үчүн басыңыз"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM картаны тазалоо"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Тандалган тармактын түрү"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Тармактын иштөө режимин өзгөртүңүз"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Тармактын түрү"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Бааларын байланыш операторуңуздан сурашыңыз керек."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Колдонмолордун трафиги"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Тармактын режими жараксыз: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Баш тартыңыз."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Байланыш түйүнүнүн аталыштары"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> операторуна туташып турганда жеткиликсиз"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> операторуна которуласызбы?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM картага которуласызбы?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> колдонулсунбу?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Бир эле маалда бир нече SIM карта колдонууга болбойт.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> операторуна которулсаңыз, <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> байланыш операторундагы тарифтик планыңыз өзгөрбөйт."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Бир маалда 1 eSIM-карта гана колдонулушу керек.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> операторуна которулсаңыз, <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> байланыш операторундагы тарифтик планыңыз өзгөрбөйт."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Бир эле маалда бир нече SIM карта колдонууга болбойт.\n\nБашка SIM картага которулсаңыз, \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\" байланыш операторундагы тарифтик планыңыз өзгөрбөйт."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Бир эле убакта 2 SIM картаны колдоно аласыз. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> колдонуу үчүн башка SIM картаны өчүрүңүз."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> операторуна которулуу"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> түзмөгүн өчүрүү"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Жок, рахмат"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Жок"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Которулуу"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Өчүрүү"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-карта иштетилген жок"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM-картаны кайра күйгүзүп көрүңүз. Эгер маселе чечилбесе, түзмөктү өчүрүп күйгүзүңүз."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM картаңызды тууралаңыз"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Бул түзмөктө бир нече SIM картаны колдонуу үчүн мобилдик тармагыңыздын артыкчылыктарын тууралаңыз"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM карталарыңызды белгилеңиз"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Бул энбелгилерди чалууларда, текст билдирүүсүн жөнөтүүдө жана дайындарды колдонууда Жөндөөлөрдөн көрөсүз"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM карта энбелгиси"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Энбелги"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Колдонула турган SIM карталарды тандоо"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Бир эле маалда 2 SIM карта колдоно аласыз"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Негизги SIM карталарды тууралоо"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Чалуулар, тексттик билдирүүлөр жана дайындар үчүн демейки боюнча кайсы SIM-карталарды колдоноруңузду тандаңыз"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Негизги SIM карталарыңыз"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Чалуулар"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS жөнөтүү"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Дайындарды автоматтык түрдө которуу"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Иштөө аймагы жана жеткиликтүүлүгүнө жараша каалаган SIM картанын дайындарын колдонуңуз"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Дайындар гана"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Тууралоо"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Кийинки"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобилдик тармак"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Телефон номери"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM карта энбелгиси жана түсү"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Тармакты иштетүү"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Байланыш оператору которуштурулууда"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> иштеп жатат"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Мобилдик Интернетти, чалуу жана SMS функцияларын кийинчерээк колдонуу үчүн байланыш операторуңуздун параметрлерине өтүңүз"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM карта"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"eSIM картаны өчүрөсүзбү?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Бул SIM картадагы маалыматты тазаласаңыз, түзмөктү <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> байланыш оператору тейлебей калат.\n\nБирок <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> байланыш операторунун тарифтик планы мурунку бойдон эле калат."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Тазалоо"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM карта тазаланууда…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM карта тазаланбай жатат"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Ката кетти.\n\nТүзмөгүңүздү өчүрүп күйгүзүп, кайталап көрүңүз."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Түзмөккө туташуу"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> түзмөгүңүзгө убактылуу Wi‑Fi тармагы аркылуу туташканы жатат"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Түзмөктөр табылган жок. Түзмөктөр күйгүзүлүп, байланышууга даяр экенин текшериңиз."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Шашылыш чалуулар"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Операторуңузда кырсыктаганда Wi‑Fi аркылуу чалуу мүмкүнчүлүгү каралган эмес.\nКырсыктаганда жардамга келчү кызматтарга чалганыңызда, түзмөгүңүз автоматтык түрдө мобилдик тармакка которулат.\nМындай кырдаалдарда мобилдик тармак кармаган аймактарда гана чала аласыз."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Чалуунун сапатын жогорулатуу үчүн Wi‑Fi тармагына туташыңыз"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Кошумча чалуу ыкмасы"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Эгер <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> жеткиликсиз же роумингде болсо, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> чалуулары үчүн SIM-картанын мобилдик Интернетин колдонуңуз."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"кошумча чалуу ыкмасы"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Кирүүчү MMS билдирүү"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS билдирүү жөнөтүлгөн жок"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Мобилдик Интернет өчүп турса да, <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> операторунан MMS билдирүүлөрдү алып туруу үчүн басып коюңуз"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Уюмдун эрежелери тууралуу маалымат"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"IT администраторуңуз тууралаган параметрлер"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16К барак өлчөмү менен күйгүзүү"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16К барак өлчөмүн колдоого алган ядролуу кубаттоо түзмөгү"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16КБ барак өлчөмүнө шайкеш келген ядро менен өчүрүлүп-күйгүзүлсүнбү?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ЭСКЕРТҮҮ: Айрым колдонмолор бул режимге шайкеш келбеши мүмкүн. Ырастоодон кийин түзмөк өчүрүлүп-күйгүзүлөт."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 КБ барак өлчөмүнө шайкеш келген ядро менен өчүрүлүп-күйгүзүлсүнбү?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Ырастоодон кийин түзмөк өчүрүлүп-күйгүзүлөт."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ядро 16КБ баракка шайкеш келген ядрого жаңыртылган жок."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Өзгөртүү киргизилүүдө"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Мүчүлүштүк тууралуу кабар берүүнү иштеткич"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Түзмөгүңүздөгү Мүчүлүштүк тууралуу кабарлоо ыкчам баскычын кайсы колдонмо иштетерин аныктайт."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Жеке"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Угуп жаткан нерсени оңой улантып кетүү үчүн медиа ойноткуч Ыкчам жөндөөлөрдө ачылып турат"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Медианы кулпуланган экранда көрсөтүү"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Угуп жаткан нерсени оңой улантып кетүү үчүн медиа ойноткуч кулпуланган экранда ачылып турат"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Медиа сунуштарын көрсөтүү"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Жардамчынын медиа боюнча сунуштарын көрсөтүү"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Аракеттериңиздин негизинде"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ойноткучту жашыруу"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Ойноткучту көрсөтүү"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM-карта"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM-карта"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-карталар"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Иштеп жатат"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Өчүрүлгөн"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> үчүн демейки конфигурация"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"чалуулар"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Шайкеш түзмөктөрдөн чыккан үн таасирдүү угулат"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Баштын кыймылына көз салуу"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Үн табигый угулушу үчүн башыңызды кыймылдатканыңызда аудио өзгөрөт"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Уруксаттарды шайкештирүү"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> түзмөгүндө <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> түзмөгүндөгү колдонмонун уруксаттарын иштетиңиз"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Телефондогу уруксаттарды иштетиңиз"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Саатыңызда ушул телефондогу колдонмонун уруксаттарын иштетиңиз"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Аудио түзмөктүн түрү"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Белгисиз"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Динамик"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Орточо"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Жогору"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Бул колдонмону 1 терезеде гана ачууга болот"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Күйүк"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Өчүк"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Өчүк"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Өчүк"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Күйүк"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Өчүк"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Күйүк"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Өчүк"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Ачык түстөрдү күңүрт кылып, күңүрт түстөрдү ачык кылат"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Экранды чоңойтуу"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Өчүк"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Өчүк"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Күйүк"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Өчүк"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Күйүк"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Сырсөз коюлду"</string>
 </resources>
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index 7a4e1d5..6421e3e 100644
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -20,4 +20,14 @@
     <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_layout_padding_horizontal_min">64dp</dimen>
+    <dimen name="text_reading_preview_background_padding_horizontal_min">72dp</dimen>
+
+    <dimen name="text_reading_preview_layout_padding_horizontal_min_suw">24dp</dimen>
+    <dimen name="text_reading_preview_background_padding_horizontal_min_suw">24dp</dimen>
+
+    <!-- Keyboard -->
+    <dimen name="keyboard_picker_margin">106dp</dimen>
 </resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index a1b07b9..e0a9547 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"ຫຼັງຈາກ 1 ນາທີ"</item>
     <item msgid="1574040255478150028">"ຫຼັງຈາກ 5 ນາທີ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index b1dc9bc..2fe5996 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"ມີພຽງຜູ້ໃຊ້ຜູ້ເບິ່ງແຍງເທົ່ານັ້ນທີ່ສາມາດເຂົ້າເຖິງການຕັ້ງຄ່ານັກພັດທະນາໄດ້."</string>
     <string name="header_category_system" msgid="1665516346845259058">"ລະບົບ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"ກຳລັງໃຫ້ບໍລິການ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ນອກເຂດໃຫ້ບໍລິການ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ປັດຂຶ້ນເພື່ອສືບຕໍ່"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ພັບໂທລະສັບຂອງທ່ານ ແລ້ວປັດຂຶ້ນຢູ່ຈໍສະແດງຜົນທາງໜ້າເພື່ອສືບຕໍ່ໃຊ້ແອັບ ຫຼື ລໍຖ້າສອງສາມວິນາທີເພື່ອໃຫ້ໜ້າຈໍລັອກ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ກ່ຽວຂ້ອງກັນ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ສຽງຣິງໂທນ ແລະ ການປຸກ"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"ສຽງໃນລະຫວ່າງການໂທ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"ສື່"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"ສຽງການແຈ້ງເຕືອນ ແລະ ລະບົບອື່ນໆ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"ສຽງມີເດຍ ແລະ ລະບົບ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"ການແຈ້ງເຕືອນ"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ຕາມຄ່າເລີ່ມຕົ້ນ, ເອົ້າພຸດສຽງຈະກຳນົດຕາມແຕ່ລະແອັບ"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"ອຸປະກອນ Bluetooth ທີ່ບໍ່ມີຊື່"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"ກຳລັງຊອກຫາ..."</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ເປີດ Bluetooth ແລ້ວ"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ເບິ່ງທັງໝົດ"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ເບິ່ງທັງໝົດ"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ປາກກາ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ມີການກົດປຸ່ມຄ້າງ"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"ເຊື່ອມຕໍ່ກັບການສະຕຣີມສຽງ LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"ການສະຕຣີມສຽງທີ່ຢູ່ໃກ້ຄຽງ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ການສະຕຣີມສຽງ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"ເຊື່ອມຕໍ່ກັບການສະຕຣີມສຽງໂດຍໃຊ້ລະຫັດ QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"ບໍ່ພົບການສະຕຣີມສຽງທີ່ຢູ່ໃກ້ຄຽງ."</string>
     <string name="date_and_time" msgid="1788358029823431692">"ວັນ​ທີ ແລະ ເວ​ລາ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ພຣັອກຊີ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ລຶບ"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ເພື່ອເລືອກພາສາໃດໜຶ່ງສຳລັບແຕ່ລະແອັບ, ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າພາສາແອັບ."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບພາສາແອັບ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ປ່ຽນພາສາຂອງລະບົບໄປເປັນ %s ບໍ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"ເພີ່ມພາສາ %s ເປັນພາສາທີ່ທ່ານຕ້ອງການບໍ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ການດຳເນີນການນີ້ຈະຊ່ວຍໃຫ້ແອັບ ແລະ ເວັບໄຊຮູ້ວ່າທ່ານຕ້ອງການພາສານີ້ນຳ."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"ການຕັ້ງຄ່າອຸປະກອນຂອງທ່ານ ແລະ ການຕັ້ງຄ່າຕາມພາກພື້ນຈະປ່ຽນແປງ."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ປ່ຽນ"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ບໍ່ມີໃຫ້ໃຊ້"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ວັນເສົາ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ຫາກແອັບບໍ່ຮອງຮັບການຕັ້ງຄ່າຕາມພາກພື້ນ, ແອັບກໍຈະໃຊ້ການຕັ້ງຄ່າພາສາເລີ່ມຕົ້ນ."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການຕັ້ງຄ່າພາສາ."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ການຕັ້ງຄ່າເພີ່ມເຕີມ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ຂໍ້ກຳນົດໃນການເອີ້ນບຸກຄົນ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"ກຳນົດວ່າທ່ານຕ້ອງການໃຫ້ແອັບເອີ້ນທ່ານວ່າແນວໃດ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"ແອັບສາມາດໃຊ້ຂໍ້ກຳນົດໃນການເອີ້ນບຸກຄົນເພື່ອປັບແຕ່ງຄຳທີ່ໃຊ້ເອີ້ນທ່ານ."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"ບໍ່ລະບຸ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ເພດຍິງ"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ເພດຊາຍ"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ເສີຍໆ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ລຶບພາສາທີ່ເລືອກໄວ້ອອກບໍ?}other{ລຶບພາສາທີ່ເລືອກໄວ້ອອກບໍ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ຂໍ້ຄວາມຈະຖືກສະແດງໃນພາສາອື່ນ."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ບໍ່ສາມາດລຶບທຸກພາສາອອກໄດ້"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ສະຖານທີ່"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ໃຊ້ສະຖານທີ່"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ປິດ"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ເປີດ -  # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}other{ເປີດ -  # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ເປີດຢູ່ / # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}other{ເປີດຢູ່ / # ແອັບມີສິດເຂົ້າເຖິງສະຖານທີ່}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ກຳລັງໂຫລດ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ແອັບທີ່ມີການອະນຸຍາດອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງສາມາດລະບຸສະຖານທີ່ທີ່ກ່ຽວຂ້ອງກັນຂອງອຸປະກອນທີ່ເຊື່ອມຕໍ່ໄດ້."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ການເຂົ້າເຖິງສະຖານທີ່ຖືກປິດໄວ້ສຳລັບແອັບ ແລະ ບໍລິການຕ່າງໆ. ສະຖານທີ່ອຸປະກອນອາດຍັງຄົງຖືກສົ່ງໄປຫາທີມກູ້ໄພເມື່ອທ່ານໂທ ຫຼື ສົ່ງຂໍ້ຄວາມຫາເບີໂທສຸກເສີນ."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການຕັ້ງຄ່າສະຖານທີ່."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການຕັ້ງຄ່າສະຖານທີ່"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ເພື່ອປ່ຽນສິດເຂົ້າເຖິງສະຖານທີ່, ໃຫ້ເຂົ້າໄປການຕັ້ງຄ່າ &gt; ຄວາມປອດໄພ ແລະ ຄວາມເປັນສ່ວນຕົວ &gt; ການຄວບຄຸມຄວາມເປັນສ່ວນຕົວ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ເພື່ອໃຫ້ໄດ້ຜົນຮັບທີ່ດີທີ່ສຸດ, ໃຫ້ໃຊ້ຕົວປົກປ້ອງໜ້າຈໍທີ່ໄດ້ຮັບການຮັບຮອງ Made for Google. ດ້ວຍຕົວປົກປ້ອງໜ້າຈໍແບບອື່ນ, ລາຍນິ້ວມືຂອງລູກທ່ານອາດໃຊ້ບໍ່ໄດ້."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ປົດລັອກດ້ວຍໂມງ"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"ເມື່ອທ່ານຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື, ໂທລະສັບຂອງທ່ານຈະຂໍໃຫ້ສະແກນລາຍນິ້ວມືເມື່ອທ່ານໃສ່ໜ້າກາກອະນາໄມ ຫຼື ຢູ່ໃນພື້ນທີ່ມືດ.\n\nທ່ານສາມາດປົດລັອກດ້ວຍໂມງຂອງທ່ານເມື່ອລະບົບບໍ່ສາມາດຈຳແນກໃບໜ້າ ຫຼື ລາຍນິ້ວມືຂອງທ່ານໄດ້."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"ທ່ານສາມາດປົດລັອກດ້ວຍໂມງຂອງທ່ານເມື່ອລະບົບບໍ່ສາມາດຈຳແນກລາຍນິ້ວມືຂອງທ່ານໄດ້."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"ທ່ານສາມາດປົດລັອກດ້ວຍໂມງຂອງທ່ານເມື່ອລະບົບບໍ່ສາມາດຈຳແນກໃບໜ້າຂອງທ່ານໄດ້."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"ເມື່ອທ່ານຕັ້ງຄ່າການປົດລັອກດ້ວຍໜ້າ ແລະ ການປົດລັອກດ້ວຍລາຍນິ້ວມື, ໂທລະສັບຂອງທ່ານຈະຂໍໃຫ້ສະແກນລາຍນິ້ວມືຂອງທ່ານເມື່ອທ່ານໃສ່ໜ້າກາກອະນາໄມ ຫຼື ຢູ່ໃນບ່ອນມືດ.\n\nການປົດລັອກດ້ວຍໂມງເປັນອີກວິທີໜຶ່ງທີ່ສະດວກໃນການປົດລັອກໂທລະສັບຂອງທ່ານ ຕົວຢ່າງ: ເມື່ອນິ້ວຂອງທ່ານປຽກຢູ່ ຫຼື ລະບົບຈື່ໃບໜ້າຂອງທ່ານບໍ່ໄດ້."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ການປົດລັອກດ້ວຍໂມງເປັນອີກວິທີໜຶ່ງທີ່ສະດວກໃນການປົດລັອກໂທລະສັບຂອງທ່ານ ຕົວຢ່າງ: ເມື່ອລະບົບຈື່ລາຍນິ້ວມືຂອງທ່ານບໍ່ໄດ້."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ການປົດລັອກດ້ວຍໂມງເປັນອີກວິທີໜຶ່ງທີ່ສະດວກໃນການປົດລັອກໂທລະສັບຂອງທ່ານ ຕົວຢ່າງ: ເມື່ອລະບົບຈື່ໃບໜ້າຂອງທ່ານບໍ່ໄດ້."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ໃຊ້ລາຍນິ້ວມື ຫຼື ໂມງເພື່ອ"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ນຳໃຊ້ໃບໜ້າ ຫຼື ໂມງເພື່ອ"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ນຳໃຊ້ໃບໜ້າ, ລາຍນິ້ວມື ຫຼື ໂມງເພື່ອ"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ເພີ່ມໃບໜ້າ ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ການປົດລັອກ Authenticator ຈາກທາງໄກ"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ເພີ່ມໂມງແລ້ວ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ຕັ້ງຄ່າໂມງຂອງທ່ານ"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ມັນເຮັດວຽກແນວໃດ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ຕ້ອງປົດລັອກໂມງຂອງທ່ານໄວ້, ໃສ່ຢູ່ຂໍ້ມືຂອງທ່ານ ແລະ ຢູ່ໃນໄລຍະສັນຍານຂອງໂທລະສັບເຄື່ອງນີ້. ທ່ານບໍ່ຈຳເປັນຕ້ອງປົດລັອກໂມງຂອງທ່ານອີກເທື່ອໜຶ່ງໃນລະຫວ່າງທີ່ໃສ່ຢູ່ຂໍ້ມືຂອງທ່ານ."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ເມື່ອປົດລັອກໂທລະສັບນີ້ແລ້ວ, ທ່ານຈະໄດ້ຮັບການແຈ້ງເຕືອນຢູ່ໂມງຂອງທ່ານ. ຫາກເປັນການປົດລັອກເມື່ອທ່ານບໍ່ໄດ້ຕັ້ງໃຈ, ໃຫ້ແຕະການແຈ້ງເຕືອນເພື່ອລັອກໂທລະສັບອີກເທື່ອໜຶ່ງ."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ທ່ານຄວບຄຸມໄດ້"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ທ່ານສາມາດລຶບໂມງຂອງທ່ານອອກຈາກການປົດລັອກດ້ວຍໂມງຕອນໃດກໍໄດ້ໃນການຕັ້ງຄ່າ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ແຕະການແຈ້ງເຕືອນ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ປັດຂຶ້ນຢູ່ໜ້າຈໍລັອກ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ເລືອກໂມງຂອງທ່ານ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ໂມງທີ່ສາມາດໃຊ້ໄດ້"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ຍົກເລີກ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ຢືນຢັນ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ທ່ານພ້ອມແລ້ວ!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ຕອນນີ້ທ່ານສາມາດໃຊ້ໂມງຂອງທ່ານເພື່ອປົດລັອກໂທລະສັບເຄື່ອງນີ້ ເມື່ອທ່ານປັດຂຶ້ນຢູ່ໜ້າຈໍລັອກ ຫຼື ແຕະການແຈ້ງເຕືອນໄດ້ແລ້ວ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ແລ້ວໆ"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ປົດລັອກດ້ວຍໂມງ"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ທ່ານສາມາດໃຊ້ໂມງຂອງທ່ານເພື່ອປົດລັອກໂທລະສັບເຄື່ອງນີ້ ເມື່ອທ່ານປັດຂຶ້ນຢູ່ໜ້າຈໍລັອກ ຫຼື ແຕະການແຈ້ງເຕືອນ"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ເພື່ອໃຊ້ການປົດລັອກດ້ວຍໂມງ, ຕ້ອງປົດລັອກໂມງຂອງທ່ານໄວ້, ໃສ່ຢູ່ຂໍ້ມືຂອງທ່ານ, ຢູ່ໃນໄລຍະສັນຍານ ແລະ ເຊື່ອມຕໍ່ກັບໂທລະສັບເຄື່ອງນີ້. ຫາກການເຊື່ອມຕໍ່ຖືກຂັດຈັງຫວະ, ທ່ານຈະຕ້ອງປົດລັອກໂທລະສັບກ່ອນທີ່ທ່ານຈະສາມາດໃຊ້ການປົດລັອກດ້ວຍໂມງໄດ້.\n\nຈົງຈື່ໄວ້ວ່າ:\nທ່ານສາມາດຕັ້ງຄ່າໂມງໄດ້ເທື່ອລະໜ່ວຍເທົ່ານັ້ນ. ເພື່ອເພີ່ມໂມງອື່ນ, ໃຫ້ລຶບໂມງປັດຈຸບັນອອກກ່ອນ."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການປົດລັອກດ້ວຍໂມງ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ເພີ່ມໂມງ"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ລຶບໂມງອອກ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ໜ້າ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ການປົດລັອກດ້ວຍໜ້າ ແລະ ລາຍນິ້ວມືສຳລັບການເຮັດວຽກ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ຕ້ອງຕັ້ງຄ່າ"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ຄວາມປອດໄພ"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ຄວາມເປັນສ່ວນຕົວ"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ລັອກ ແລະ ເຊື່ອງແອັບສ່ວນຕົວໄວ້"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ຮັກສາແອັບສ່ວນຕົວໄວ້ໃນພື້ນທີ່ແຍກຕ່າງຫາກເຊິ່ງທ່ານສາມາດເຊື່ອງ ຫຼື ລັອກໄດ້"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ການລັອກພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"ທ່ານສາມາດປົດລັອກພື້ນທີ່ສ່ວນຕົວໄດ້ໂດຍໃຊ້ວິທີດຽວກັນກັບທີ່ທ່ານປົດລັອກອຸປະກອນຂອງທ່ານ ຫຼື ເລືອກການລັອກອື່ນ"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ໃຊ້ການລັອກໜ້າຈໍອຸປະກອນ"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ປົດລັອກດ້ວຍໃບໜ້າ ແລະ ລາຍນິ້ວມື"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ປົດລັອກດ້ວຍລາຍນິ້ວມື"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ປົດລັອກດ້ວຍໜ້າ"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ແຕະເພື່ອຕັ້ງຄ່າ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ການປົດລັອກດ້ວຍລາຍນິ້ວມືສຳລັບພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ການປົດລັອກດ້ວຍໜ້າສຳລັບພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"ວິທີປົດລັອກ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ຄືກັນກັບການລັອກໜ້າຈໍອຸປະກອນ"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ເລືອກການລັອກໃໝ່ສຳລັບພື້ນທີ່ສ່ວນຕົວບໍ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ລັອກໂດຍອັດຕະໂນມັດ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ລັອກພື້ນທີ່ສ່ວນບຸກຄົນໂດຍອັດຕະໂນມັດ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"ທ່ານສາມາດລັອກພື້ນທີ່ສ່ວນບຸກຄົນຂອງທ່ານໄດ້ໂດຍອັດຕະໂນມັດຫາກທ່ານບໍ່ໄດ້ໃຊ້ອຸປະກອນຂອງທ່ານເປັນໄລຍະເວລາໜຶ່ງ"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ທຸກເທື່ອທີ່ອຸປະກອນລັອກ"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"ຫຼັງຈາກບໍ່ມີການນຳໃຊ້ເປັນເວລາ 5 ນາທີ"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ບໍ່"</string>
+    <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_deleted" msgid="7825768516955610897">"ລຶບພື້ນທີ່ສ່ວນຕົວອອກສຳເລັດແລ້ວ"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ບໍ່ສາມາດລຶບພື້ນທີ່ສ່ວນຕົວອອກໄດ້"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ປົດລັອກພື້ນທີ່ສ່ວນບຸກຄົນແລ້ວ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ຕັ້ງການລັອກໜ້າຈໍ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ເພື່ອໃຊ້ພື້ນທີ່ສ່ວນຕົວ, ໃຫ້ຕັ້ງຄ່າການລັອກໜ້າຈໍຢູ່ອຸປະກອນນີ້"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ຕັ້ງການລັອກໜ້າຈໍ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ຍົກເລີກ"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ຍົກເລີກ"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ຕັ້ງຄ່າ"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ຮັກສາແອັບສ່ວນຕົວໄວ້ໃນພື້ນທີ່ແຍກຕ່າງຫາກເຊິ່ງທ່ານສາມາດເຊື່ອງ ຫຼື ລັອກໄດ້"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ມັນເຮັດວຽກແນວໃດ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ທ່ານສາມາດເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວຂອງທ່ານໄດ້ຈາກລຸ່ມສຸດຂອງລາຍຊື່ແອັບຂອງທ່ານ"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ແອັບໃນພື້ນທີ່ສ່ວນຕົວຂອງທ່ານໄດ້ຮັບການປົກປ້ອງໂດຍການລັອກ"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ການແຈ້ງເຕືອນຈາກແອັບໃນພື້ນທີ່ສ່ວນຕົວຂອງທ່ານຈະຖືກເຊື່ອງເມື່ອລັອກໄວ້"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"ແອັບໃນພື້ນທີ່ສ່ວນຕົວຂອງທ່ານຈະບໍ່ປາກົດໃນຕົວຈັດການສິດອະນຸຍາດ, ແຜງໜ້າປັດຄວາມເປັນສ່ວນຕົວ ແລະ ການຕັ້ງຄ່າອື່ນໆເມື່ອລັອກພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ.\n\nລະບົບບໍ່ສາມາດຍ້າຍພື້ນທີ່ສ່ວນຕົວຂອງທ່ານໄປຫາອຸປະກອນໃໝ່ໄດ້. ທ່ານຈະຕ້ອງຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວໃໝ່ຫາກທ່ານຕ້ອງການໃຊ້ຢູ່ອຸປະກອນອື່ນ.\n\nໃຜກໍຕາມທີ່ເຊື່ອມຕໍ່ອຸປະກອນຂອງທ່ານກັບຄອມພິວເຕີ ຫຼື ຕິດຕັ້ງແອັບທີ່ເປັນອັນຕະລາຍໃນອຸປະກອນຂອງທ່ານອາດສາມາດເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວຂອງທ່ານໄດ້."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ກຳລັງຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວ…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ການແຈ້ງເຕືອນຈາກແອັບໃນພື້ນທີ່ສ່ວນຕົວຈະຖືກເຊື່ອງເມື່ອລັອກໄວ້"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ປົດລັອກພື້ນທີ່ສ່ວນຕົວເພື່ອແບ່ງປັນຮູບພາບ ຫຼື ໄຟລ໌ຈາກແອັບພື້ນທີ່ສ່ວນຕົວ"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"ບາງແອັບໄດ້ຖືກຕິດຕັ້ງໃນພື້ນທີ່ສ່ວນຕົວຂອງທ່ານແລ້ວ"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ບໍ່ສາມາດຕັ້ງຄ່າພື້ນທີ່ສ່ວນຕົວໄດ້"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ລອງໃໝ່"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ໃຊ້ການລັອກໜ້າຈໍເພື່ອປົດລັອກພື້ນທີ່ສ່ວນຕົວບໍ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"ທ່ານສາມາດປົດລັອກພື້ນທີ່ສ່ວນຕົວຂອງທ່ານໄດ້ໂດຍໃຊ້ວິທີດຽວກັນກັບທີ່ທ່ານປົດລັອກອຸປະກອນຂອງທ່ານ ຫຼື ເລືອກການລັອກອື່ນ"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ໃຊ້ການລັອກໜ້າຈໍ"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"ເລືອກການລັອກໃໝ່"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"ຮຽບຮ້ອຍໝົດແລ້ວ!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"ເພື່ອເຂົ້າເຖິງພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ, ໃຫ້ເຂົ້າໄປລາຍຊື່ແອັບຂອງທ່ານ ແລ້ວເລື່ອນລົງລຸ່ມ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ແລ້ວໆ"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"ເລື່ອນລົງເພື່ອຊອກຫາພື້ນທີ່ສ່ວນຕົວ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ເລືອກການລັອກສຳລັບພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"ທ່ານສາມາດປົດລັອກພື້ນທີ່ສ່ວນຕົວຂອງທ່ານໄດ້ໂດຍການໃຊ້ລາຍນິ້ວມືຂອງທ່ານ. ເພື່ອຄວາມປອດໄພ, ຕົວເລືອກນີ້ຕ້ອງໃຊ້ການລັອກຂໍ້ມູນສຳຮອງ."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ຕັ້ງຄ່າ PIN ສຳລັບພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ຕັ້ງລະຫັດຜ່ານສຳລັບພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ຕັ້ງຄ່າຮູບແບບສຳລັບພື້ນທີ່ສ່ວນຕົວຂອງທ່ານ"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ເພື່ອສະແດງພື້ນທີ່ສ່ວນຕົວ (ບໍ່ແມ່ນ UX ສຸດທ້າຍ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"ເປີດແອັບການຕັ້ງຄ່າ"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ແຕະໃສ່ຄວາມປອດໄພ ແລະ ຄວາມເປັນສ່ວນຕົວ &gt; ພື້ນທີ່ສ່ວນຕົວ &gt; ເຊື່ອງພື້ນທີ່ສ່ວນຕົວເມື່ອລັອກໄວ້"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"ປິດປຸ່ມສະຫຼັບການເຊື່ອງພື້ນທີ່ສ່ວນຕົວເມື່ອລັອກໄວ້"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"ໝາຍເຫດເຖິງ Googlers: ຄຸນສົມບັດນີ້ຍັງຢູ່ລະຫວ່າງການພັດທະນາ"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ທ່ານອາດຕ້ອງພິມ passkey ນີ້ໃນອຸປະກອນອື່ນນຳ"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ຢືນຢັນເພື່ອຈັບຄູ່ກັບຊຸດທີ່ປະສານກັນ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ອະນຸຍາດໃຫ້ເຂົ້າເຖິງລາຍຊື່ຜູ້ຕິດຕໍ່ ແລະ ປະຫວັດການໂທຂອງທ່ານ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"ອະນຸຍາດໃຫ້ເຂົ້າເຖິງລາຍຊື່ຜູ້ຕິດຕໍ່ ແລະ ປະຫວັດການໂທນຳ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ຂໍ້ມູນຈະຖືກໃຊ້ສຳລັບປະກາດການໂທ ແລະ ອື່ນໆ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ໄດ້."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ອຸປະກອນທີ່ສາມາດໃຊ້ໄດ້"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ໃນໂໝດການໃຊ້ເທິງຍົນ"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ແຈ້ງເຕືອນສຳລັບເຄືອຂ່າຍສາທາລະນະ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ແຈ້ງເຕືອນເມື່ອມີເຄືອຂ່າຍສາທາລະນະຄຸນນະພາບສູງໃຫ້ໃຊ້"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"ອະນຸຍາດເຄືອຂ່າຍ WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ແມ່ນໂປຣໂຕຄໍຄວາມປອດໄພຮຸ່ນເກົ່າທີ່ປອດໄພໜ້ອຍກວ່າ"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"ຜູ້ໃຫ້ບໍລິການຂອງທ່ານບໍ່ອະນຸຍາດເຄືອຂ່າຍ WEP ເພາະວ່າພວກມັນປອດໄພໜ້ອຍກວ່າ"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"ເປີດໃຊ້ Wi‑Fi ອັດຕະໂນມັດ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi ຈະກັບມາເປີດໃຊ້ຫາກຢູ່ໃກ້ເຄືອຂ່າຍຄຸນນະພາບສູງທີ່ບັນທຶກໄວ້ ເຊັ່ນ: ເຄືອຂ່າຍເຮືອນ"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ບໍ່ສາມາດໃຊ້ໄດ້ເນື່ອງຈາກສະຖານທີ່ຖືກປິດໄວ້. ເປີດໃຊ້ "<annotation id="link">"ສະຖານທີ່"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ການສະແກນ Wi-Fi ຈະເຮັດໃຫ້ແອັບ ແລະ ບໍລິການຕ່າງໆສາມາດສະແກນຫາເຄືອຂ່າຍ Wi-Fi ໄດ້ທຸກເວລາ, ເຖິງແມ່ນວ່າຈະປິດ Wi-Fi ໄວ້ກໍຕາມ. ຄຸນສົມບັດນີ້ສາມາດໃຊ້ເພື່ອປັບປຸງຄຸນສົມບັດ ແລະ ບໍລິການທີ່ອ້າງອີງສະຖານທີ່ໄດ້."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ເປີດ"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"ເປີດການສະແກນ Wi‑Fi ແລ້ວ"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ເຄືອຂ່າຍນີ້ໃຊ້ໂປຣໂຕຄໍຄວາມປອດໄພແບບເກົ່າທີ່ປອດໄພໜ້ອຍກວ່າ"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ຖືກບລັອກໄວ້"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ເຄືອຂ່າຍນີ້ໃຊ້ໂປຣໂຕຄໍຄວາມປອດໄພແບບເກົ່າທີ່ເອີ້ນວ່າ WEP, ເຊິ່ງມີຄວາມປອດໄພໜ້ອຍກວ່າ. ເພື່ອເຊື່ອມຕໍ່ຕໍ່ໄປ, ທ່ານສາມາດອະນຸຍາດເຄືອຂ່າຍ WEP ໄດ້."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ຜູ້ໃຫ້ບໍລິການຂອງທ່ານບໍ່ອະນຸຍາດໃຫ້ທ່ານເຊື່ອມຕໍ່ກັບເຄືອຂ່າຍນີ້ ເພາະວ່າມັນໃຊ້ໂປຣໂຕຄໍຄວາມປອດໄພແບບເກົ່າທີ່ປອດໄພໜ້ອຍກວ່າ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"ອະນຸຍາດ WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ປິດ"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"​ໂຕ​ເລືອກ​ຂັ້ນ​ສູງ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ລາຍຊື່ແບບລົງລຸ່ມຕົວເລືອກຂັ້ນສູງ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ຂະ​ຫຍາຍ"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"ໃຊ້ Wi‑Fi ຕໍ່ໄປ"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ບໍ່ຕ້ອງສະແດງອີກ"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"ເຊື່ອມຕໍ່"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"ເປີດໃຊ້ Wi-Fi ແລ້ວ"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"ເຊື່ອມຕໍ່ຫາ <xliff:g id="NETWORK_NAME">%1$s</xliff:g> ແລ້ວ"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"ກຳລັງເຊື່ອມຕໍ່ຫາ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"ກຳລັງເຊື່ອມຕໍ່…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ລົ້ມເຫລວໃນການເຊື່ອມຕໍ່ເຄືອຂ່າຍ"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ເຄືອຂ່າຍບໍ່ຢູ່ໃນໄລຍະ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ລືມ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ແກ້ໄຂ"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ລົ້ມເຫລວໃນການລືມເຄືອຂ່າຍ"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ບັນທຶກ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ລົ້ມເຫລວໃນການບັນທຶກເຄືອຂ່າຍ"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ຍົກເລີກ"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ອິນເຕີເນັດມືຖື"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ອີເທີເນັດ"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ກຳລັງສາກໄຟ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ກຳລັງສາກໄຟ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ການເຊື່ອມຕໍ່ຮັອດສະປອດ"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"ຄວາມແຮງຂອງການເຊື່ອມຕໍ່"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ເຄືອຂ່າຍ​ທີ່​ບັນທຶກ​ໄວ້"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"ບໍ່ໄດ້ຕັ້ງລະຫັດຜ່ານ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ຊື່ຮັອດສະປອດ"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ລະຫັດຜ່ານຮັອດສະປອດ"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"ຄື້ນ AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ປິດຮັອດສະປອດອັດຕະໂນມັດ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"ເມື່ອບໍ່ມີອຸປະກອນເຊື່ອມຕໍ່"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"ຂະຫຍາຍຄວາມເຂົ້າກັນໄດ້"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ປິດໃຊ້ອັດຕາເຟຣມເລີ່ມຕົ້ນສຳລັບເກມ"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ປິດໃຊ້ການຈຳກັດອັດຕາເຟຣມສູງສຸດສຳລັບເກມທີ່ <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ການເອົາໃຈໃສ່ໜ້າຈໍຈະໃຊ້ກ້ອງໜ້າເພື່ອເບິ່ງວ່າມີຄົນກຳລັງເບິ່ງໜ້າຈໍຢູ່ບໍ່. ມັນເຮັດວຽກຢູ່ອຸປະກອນ ແລະ ຈະບໍ່ມີການບັນທຶກຮູບພາບ ຫຼື ສົ່ງຮູບໄປໃຫ້ Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ເປີດໃຊ້ການເອົາໃຈໃສ່ໜ້າຈໍ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ເປີດໜ້າຈໍໄວ້ໃນເວລາເບິ່ງມັນ"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ໄລຍະໝົດເວລາໜ້າຈໍທີ່ດົນຂຶ້ນຈະໃຊ້ແບັດເຕີຣີຫຼາຍຂຶ້ນ."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ກ້ອງຖ່າຍຮູບລັອກຢູ່"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ຕ້ອງປົດລັອກກ້ອງຖ່າຍຮູບເພື່ອໃຊ້ການກວດຫາໃບໜ້າ"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ຈະຕ້ອງປົດລັອກກ້ອງຖ່າຍຮູບເພື່ອໃຊ້ການເອົາໃຈໃສ່ໜ້າຈໍ"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ຊິມຊ່ອງ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ຊິມຊ່ອງ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ຫຼັກ)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"ກະລຸນາເລືອກເຄືອຂ່າຍທີ່ບັນທຶກໄວ້ເພື່ອເບິ່ງ"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"ເວີຊັນ PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ລະດັບແບັດເຕີຣີ"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"ສ່ວນກາງ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"ການຕັ້ງຄ່າສ່ວນກາງ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"ບັນທຶກ"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ຍົກເລີກ"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"ແຖບຂໍ້ມູນຊື່ບໍ່ສາມາດປ່ອຍຫວ່າງໄດ້."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ບໍ່ສາມາດປ່ອຍໃຫ້ຫວ່າງໄດ້."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"ຊ່ອງຂໍ້ມູນ MMC ຕ້ອງມີ 3 ໂຕເລກ."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"ແຖບຂໍ້ມູນ MNC ຕ້ອງມີໂຕເລກຢ່າງໜ້ອຍ 2 ຫຼື 3 ໂຕ."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"ຜູ້ໃຫ້ບໍລິການບໍ່ອະນຸຍາດໃຫ້ເພີ່ມ APN ປະເພດ %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"ຊ່ອງ MMSC ຕ້ອງຖືກຕ້ອງ."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ກຳລັງຄືນການຕັ້ງຄ່າ APN ເລີ່ມຕົ້ນ."</string>
     <string name="menu_restore" msgid="4310539620115151551">"ຣີເຊັດໄປໃຊ້ຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ການຕັ້ງຄ່າ APN ເລີ່ມຕົ້ນຄືນໃໝ່ສຳເລັດແລ້ວ."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ຣີເຊັດ"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ຣີເຊັດ Bluetooth ແລະ Wi-Fi ແລ້ວ"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ລຶບ eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ນີ້ຈະບໍ່ເປັນການຍົກເລີກແພັກເກດບໍລິການມືຖືໃດໆ. ເພື່ອດາວໂຫຼດຊິມທົດແທນ, ໃຫ້ຕິດຕໍ່ຫາຜູ້ໃຫ້ບໍລິການຂອງທ່ານ."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ຣີ​ເຊັດການຕັ້ງຄ່າ"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"ຣີເຊັດການຕັ້ງຄ່າເຄືອຂ່າຍທັງໝົດບໍ? ທ່ານຈະບໍ່ສາມາດຍົກເລີກຄຳສັ່ງນີ້ໄດ້."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"ຣີເຊັດການຕັ້ງຄ່າເຄືອຂ່າຍທັງໝົດ ແລະ ລຶບ eSIM ບໍ? ທ່ານບໍ່ສາມາດຍົກເລີກຄຳສັ່ງນີ້ໄດ້."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ຣີ​ເຊັດບໍ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ການ​ຕັ້ງ​ຄ່າ​ເຄືອ​ຂ່າຍ​ຄືນ​ໃໝ່​ແມ່ນ​ບໍ່​ມີ​ໃຫ້​ສຳ​ລັບ​ຜູ້​ໃຊ້​ຄົນ​ນີ້"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"​ການ​ຕັ້ງ​ຄ່າ​ເຄືອ​ຂ່າຍ​ຖືກຕັ້ງ​ຄ່າ​ຄືນ​ໃໝ່​ແລ້ວ."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"ບໍ່ສາມາດລຶບ SIM ອອກໄດ້"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ບໍ່ສາມາດລຶບ eSIMs ໄດ້ເນື່ອງຈາກເກີດຂໍ້ຜິດພາດຂຶ້ນ.\n\nໃຫ້ຣີສະຕາດອຸປະກອນຂອງທ່ານແລ້ວລອງໃໝ່."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ລຶບຂໍ້ມູນທັງໝົດ (ຣີເຊັດເປັນຄ່າຈາກໂຮງງານ)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ລຶບຂໍ້ມູນທັງໝົດ (ຣີເຊັດເປັນຄ່າຈາກໂຮງງານ)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"ເພງ"</li>\n<li>"ຮູບພາບ"</li>\n<li>"ຂໍ້ມູນຜູ້ໃຊ້ອື່ນໆ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ນີ້ຈະບໍ່ແມ່ນການຍົກເລີກແພັກເກດບໍລິການມືຖືຂອງທ່ານ."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ຂໍ້ມູນສ່ວນຕົວຂອງທ່ານ ແລະ ແອັບທີ່ດາວໂຫຼດມາທັງໝົດຈະຖືກລຶບອອກ. ທ່ານບໍ່ສາມາດຍົກເລີກຄຳສັ່ງນີ້ໄດ້."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ຂໍ້ມູນສ່ວນຕົວທັງໝົດຂອງທ່ານ, ຮວມທັງແອັບທີ່ດາວໂຫຼດມາແລ້ວ ແລະ SIM ຈະຖືກລຶບອອກ. ທ່ານບໍ່ສາມາດຍົກເລີກຄຳສັ່ງນີ້ໄດ້."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ລຶບຂໍ້ມູນທັງໝົດອອກບໍ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ຜູ້​ໃຊ້​ນີ້​ບໍ່​ສາ​ມາດ​ຣີ​ເຊັດ​ຄ່າ​ໂຮງ​ງານ​​ໄດ້"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"ກຳລັງລຶບ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ຮັອດສະປອດ, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"ບໍ່ໄດ້ແບ່ງປັນອິນເຕີເນັດກັບອຸປະກອນອື່ນ"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ປິດ"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ການປ່ອຍສັນຍານ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ຢ່າໃຊ້ Wi‑Fi ຮັອດສະປອດ"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ USB ເທົ່ານັ້ນ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ Bluetooth ເທົ່ານັ້ນ"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ Ethernet ເທົ່ານັ້ນ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ USB ແລະ Bluetooth ເທົ່ານັ້ນ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ USB ແລະ Ethernet ເທົ່ານັ້ນ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ Bluetooth ຫຼື Ethernet ເທົ່ານັ້ນ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"ແບ່ງປັນອິນເຕີເນັດຜ່ານ USB, Bluetooth ແລະ Ethernet ເທົ່ານັ້ນ"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"ການປ່ອຍສັນຍານດ້ວຍ USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ການປ່ອຍສັນຍານດ້ວຍ Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ການປ່ອຍສັນຍານອີເທີເນັດ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ໃຊ້ຮັອດສະປອດ ແລະ ການປ່ອຍສັນຍານເພື່ອສະໜອງອິນເຕີເນັດໃຫ້ກັບອຸປະກອນອື່ນຜ່ານການເຊື່ອມຕໍ່ Wi‑Fi ຫຼື ອິນເຕີເນັດມືຖືຂອງທ່ານ. ແອັບສາມາດສ້າງຮັອດສະປອດເພື່ອແບ່ງປັນເນື້ອຫາກັບອຸປະກອນທີ່ຢູ່ໃກ້ຄຽງໄດ້ນຳ."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ຊ່ວຍເຫຼືອ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"ເຄືອຂ່າຍໂທລະສັບ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ແພັກເກດມືຖື"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"ປ່ຽນແອັບສົ່ງ SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ເປັນແອັບສົ່ງ SMS ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ບໍ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ປ່ຽນ​ Wi‑Fi Assistant ບໍ່?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ໃຊ້ <xliff:g id="NEW_APP">%1$s</xliff:g> ແທນ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ເພື່ອ​ຈັດ​ການ​ການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ໃຊ້ <xliff:g id="NEW_APP">%s</xliff:g> ເພື່ອ​ຈັດ​ການ​ການ​ເຊື່ອມ​ຕໍ່​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ​ບໍ?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"​ຜູ່​ໃຫ້​ບໍ​ລິ​ການ SIM ທີ່ບໍ່​ຮູ້​ຈັກ"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> has no known provisioning website"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ກະ​ລຸ​ນາ​ໃສ່​ຊິມກາດ ​ແລະເປີດເຄື່ອງຄືນໃໝ່"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ກະ​ລຸ​ນາ​ເຊື່ອມ​ຕໍ່​ກັບ​ອິນ​ເຕີ​ເນັດ"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"ການຮ້ອງຂໍຂໍ້ມູນສະຖານທີ່ຫຼ້າສຸດ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ສະຖານທີ່ສຳລັບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ການອະນຸຍາດສະຖານທີ່ແອັບ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ລ້າງການເຂົ້າເຖິງ"</string>
     <string name="controls_label" msgid="8671492254263626383">"ການຄວບຄຸມ"</string>
     <string name="force_stop" msgid="2681771622136916280">"ບັງ​ຄັບ​ປິດ"</string>
+    <string name="archive" msgid="9074663845068632127">"ເກັບໄວ້ໃນແຟ້ມ"</string>
+    <string name="restore" msgid="7622486640713967157">"ກູ້ຄືນ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"ທັງໝົດ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ຂະໜາດແອັບ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"ແອັບຯບ່ອນຈັດເກັບຂໍ້ມູນ USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"ບໍ່ສາມາດຄຳນວນຂະໜາດແພັກເກດໄດ້."</string>
     <string name="version_text" msgid="7628938665256107608">"ເວີຊັນ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ຍ້າຍ"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ເກັບໄວ້ໃນແຟ້ມບໍ່ສຳເລັດ"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"ເກັບໄວ້ໃນແຟ້ມ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ກູ້ຄືນບໍ່ສຳເລັດ"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"ກຳລັງກູ້ຄືນ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ມີການໂອນຍ້າຍອື່ນກຳລັງດຳເນີນຢູ່."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ພື້ນທີ່ຈັດເກັບຂໍ້ມູນບໍ່ພຽງພໍ."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ບໍ່ມີແອັບຯ."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ແປ້ນພິມໃນໜ້າຈໍທີ່ສາມາດໃຊ້ໄດ້"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ຈັດການແປ້ນພິມໃນໜ້າຈໍ"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ຕົວເລືອກ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ແປ້ນພິມພາຍນອກ"</string>
     <string name="show_ime" msgid="4334255501724746849">"ໃຊ້ແປ້ນພິມຢູ່ໜ້າຈໍ"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"ປະມັນໄວ້ໃນໜ້າຈໍເມື່ອໃຊ້ແປ້ນພິມພາຍນອກ."</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"ປຸ່ມດີດກັບ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ເປີດການນຳໃຊ້ປຸ່ມດີດກັບສຳລັບການຊ່ວຍເຂົ້າເຖິງແປ້ນພິມພາຍນອກ"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ປຸ່ມກົດຄ້າງ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ເປີດການນຳໃຊ້ປຸ່ມກົດຄ້າງສຳລັບການຊ່ວຍເຂົ້າເຖິງແປ້ນພິມພາຍນອກ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ປຸ່ມລັດແປ້ນພິມ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ສະແດງລາຍຊື່ຂອງທາງລັດ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ແປ້ນພິມໂປຣໄຟລ໌ວຽກ ແລະ ເຄື່ອງມື"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ຈັດຮຽງຕາມເວລາໃຊ້"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"ຈັດຮຽງຕາມເວລາທີ່ໃຊ້ຫຼ້າສຸດ"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ຈັດຮຽງຕາມຊື່ແອັບ"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ໃຊ້​ເທື່ອ​ສຸດ​ທ້າຍ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ໃຊ້ຫຼ້າສຸດ"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ບໍ່ເຄີຍໃຊ້"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ເວລາການນຳໃຊ້"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ການຕັ້ງຄ່າກ່ຽວກັບການເຂົ້າເຖິງ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ຢືນຢັນດຳເນີນການຕໍ່"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ຍົກເລີກ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ການຕັ້ງຄ່າການຂະຫຍາຍ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ຂະຫຍາຍດ້ວຍການແຕະສາມເທື່ອ"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ຂະຫຍາຍດ້ວຍທາງລັດ"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ຂະຫຍາຍດ້ວຍທາງລັດ ແລະ ການແຕະສາມເທື່ອ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"ກ່ຽວກັບ <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍສອງເທື່ອເພື່ອເປີດ"</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="860548190334486449">"ເພື່ອເລີ່ມ ແລະ ຢຸດການຂະຫຍາຍ, ໃຫ້ໃຊ້ສອງນິ້ວແຕະສອງເທື່ອບ່ອນໃດກໍໄດ້ຢູ່ໜ້າຈໍຂອງທ່ານ."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ເພື່ອໃຊ້ຄຸນສົມບັດການຊ່ວຍເຂົ້າເຖິງ, ໃຫ້ປັດຂຶ້ນຈາກລຸ່ມສຸດຂອງໜ້າຈໍດ້ວຍ 3 ນິ້ວ.\n\nເພື່ອສະຫຼັບລະຫວ່າງຄຸນສົມບັດ, ໃຫ້ປັດຂຶ້ນດ້ວຍ 3 ນິ້ວຄ້າງໄວ້."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ເຂົ້າໃຈແລ້ວ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ການຕັ້ງຄ່າປຸ່ມການຊ່ວຍເຂົ້າເຖິງ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ການຕັ້ງຄ່າປຸ່ມ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"ທາງລັດ <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ປຸ່ມການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ທ່າທາງການຊ່ວຍເຂົ້າເຖິງ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍສອງເທື່ອ"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍສອງເທື່ອ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ໃຊ້ສອງນິ້ວແຕະໜ້າຈໍ {0,number,integer} ເທື່ອແບບໄວໆ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ແຕະໃສ່ໜ້າຈໍສາມເທື່ອ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ແຕະໃສ່ໜ້າຈໍສາມເທື່ອ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ແຕະໜ້າຈໍໄວໆ {0,number,integer} ເທື່ອ. ທາງລັດນີ້ອາດເຮັດໃຫ້ອຸປະກອນຂອງທ່ານຊ້າລົງ"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບປຸ່ມການຊ່ວຍເຂົ້າເຖິງ ແລະ ທ່າທາງ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ການໃຊ້ປຸ່ມການຊ່ວຍເຂົ້າເຖິງ. ບໍ່ສາມາດໃຊ້ທ່າທາງກັບການນຳທາງແບບ 3 ປຸ່ມໄດ້."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ເຂົ້າເຖິງຄຸນສົມບັດການຊ່ວຍເຂົ້າເຖິງແບບດ່ວນ"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ເພື່ອເລີ່ມຕົ້ນ"</b>\n"1. ເຂົ້າໄປການຕັ້ງຄ່າການຊ່ວຍເຂົ້າເຖິງ\n2. ເລືອກຄຸນສົມບັດໃດໜຶ່ງແລ້ວແຕະໃສ່ທາງລັດ\n3. ເລືອກວ່າທ່ານຕ້ອງການໃຊ້ປຸ່ມ ຫຼື ທ່າທາງເພື່ອເຂົ້າເຖິງຄຸນສົມບັດຫຼືບໍ່"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ເພື່ອເລີ່ມຕົ້ນ"</b>\n"1. ເຂົ້າໄປການຕັ້ງຄ່າການຊ່ວຍເຂົ້າເຖິງ\n2. ເລືອກຄຸນສົມບັດໃດໜຶ່ງແລ້ວແຕະໃສ່ທາງລັດ\n3. ເລືອກປຸ່ມເພື່ອເຂົ້າເຖິງຄຸນສົມບັດ"</string>
+    <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_size_title" msgid="5785110470538960881">"ຂະໜາດ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ກົດປຸ່ມ ປິດ/ເປີດ ເພື່ອວາງສາຍ"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ຕົວຊີ້ເມົ້າຂະໜາດໃຫຍ່"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ເຮັດໃຫ້ສັງເກດເຫັນຕົວຊີ້ເມົ້າໄດ້ຫຼາຍຂຶ້ນ"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"ຕັ້ງຄ່າໃຫ້ທຸກແອັບໃຊ້ຮູບແບບສີສັນມືດ"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ໃຊ້ກັບແອັບທີ່ບໍ່ມີຮູບແບບສີສັນມືດຂອງແອັບເອງ. ບາງແອັບອາດມີບັນຫາໃນການສະແດງຜົນ ເຊັ່ນ: ການປີ້ນສີ."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ລຶບການເຄື່ອນໄຫວອອກ"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ຫຼຸດການເຄື່ອນໄຫວຢູ່ໜ້າຈໍ"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ສຽງໂມໂນ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ມັນສາມາດຕິດຕາມການໂຕ້ຕອບຂອງທ່ານກັບແອັບ ຫຼື ເຊັນເຊີຮາດແວໃດໜຶ່ງ ແລະ ໂຕ້ຕອບກັບແອັບໃນນາມຂອງທ່ານໄດ້."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ອະນຸຍາດ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ປະຕິເສດ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"ຢຸດ"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ຍົກເລີກ"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"ຢຸດການເຮັດວຽກຂອງ <xliff:g id="SERVICE">%1$s</xliff:g> ບໍ່?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"ການແຕະ <xliff:g id="STOP">%1$s</xliff:g> ຈະຢຸດ <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ປິດ"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ເປີດໄວ້"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"ປິດ <xliff:g id="SERVICE">%1$s</xliff:g> ໄວ້ບໍ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"ບໍ່ມີບໍລິການຖືກຕິດຕັ້ງເທື່ອ"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ບໍ່ໄດ້ເລືອກບໍລິການເທືື່ອ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"ບໍ່ມີລາຍລະອຽດລະບຸໄວ້."</string>
     <string name="settings_button" msgid="2195468788019730377">"ການຕັ້ງຄ່າ"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ຄວາມໄວແສງ, ຄວາມຢ້ານແສງ, ຮູບແບບສີສັນມືດ, ໄມເກຣນ, ເຈັບຫົວ, ໂໝດການອ່ານ, ໂໝດກາງຄືນ, ຫຼຸດຄວາມສະຫວ່າງ, ຈຸດສີຂາວ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ງ່າຍໃນການໃຊ້, ງ່າຍໃນການເຂົ້າເຖິງ, ຄວາມຊ່ວຍເຫຼືອ, ອຳນວຍຄວາມສະດວກ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ວິໄສທັດ, ການໄດ້ຍິນ, ຕາບອດ, ຄົນຫູໜວກ, ມໍເຕີ, ຄວາມຊໍານິຊໍານານ, ການຊ່ວຍເຫຼືອ, ການຊ່ວຍເຫຼືອ, ຄວາມສະດວກໃນການນໍາໃຊ້, ຄວາມສະດວກຂອງສິດເຂົ້າເຖິງ, ມື, ການຊ່ວຍເຫຼືອ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ຕົວຂະຫຍາຍໜ້າຈໍ, ຊູມ, ການຂະຫຍາຍ, ເບິ່ງເຫັນຍາກ, ຂະຫຍາຍ, ເຮັດໃຫ້ໃຫຍ່ຂຶ້ນ"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"ຄຳບັນຍາຍ, CC, ການຖອດຂໍ້ຄວາມດ່ວນ, ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, CART, ການປ່ຽນສຽງເວົ້າເປັນຂໍ້ຄວາມ, ຄຳແປ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ຄອນທຣາສຂອງສີ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ມໍເຕີ, ເມົ້າ"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ເຄື່ອງຊ່ວຍຟັງ, ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, ປະສາດຫູທຽມ, ອຸປະກອນຂະຫຍາຍສຽງ, ຕົວປະມວນຜົນສຽງ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ມໍເຕີ, ເມົ້າ, ເມົ້າພາຍນອກ, ຫົວເມົ້າ, ເມົ້າແບບປັບໄດ້, ລໍ້ຍູ້ຄົນເຈັບ, ຈອຍສະຕິກ"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ເຄື່ອງຊ່ວຍຟັງ, ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, ປະສາດຫູທຽມ, ອຸປະກອນຂະຫຍາຍສຽງ, ຕົວປະມວນຜົນສຽງ, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, ຄຳບັນຍາຍ, Teletype, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ສາມປຸ່ມ"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ຄວາມຊໍານິຊໍານານ, ມໍເຕີ, ອາວຸໂສ, ໂລກຂໍ້ອັກເສບ, rsi, ຫຼອດເລືອດ, ອາການສັ່ນ, ຫຼາຍເສັ້ນເລືອດຕີບ, ສະໝອງພິການ, ການສັ່ນ, ການບາດເຈັບເປັນຊ້ຳໆ, ມື"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ຊັກຊ້າ, ຊໍານິຊໍານານ, ອາວຸໂສ"</string>
     <string name="print_settings" msgid="8519810615863882491">"ການ​ພິມ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ປິດ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ເປີດ 1 ບໍລິການພິມ}other{ເປີດ # ບໍລິການພິມ}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ເບິ່ງແອັບທີ່ມີການໃຊ້ສູງສຸດ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ການສາກໄດ້ຖືກປັບໃຫ້ເໝາະສົມເພື່ອປົກປ້ອງແບັດເຕີຣີຂອງທ່ານ"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"ເພື່ອຊ່ວຍຂະຫຍາຍອາຍຸການນຳໃຊ້ແບັດເຕີຣີຂອງທ່ານ, ການສາກແມ່ນໄດ້ຖືກປັບໃຫ້ເໝາະສົມ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ການສາກໄດ້ຖືກປັບໃຫ້ເໝາະສົມເພື່ອປົກປ້ອງແບັດເຕີຣີຂອງທ່ານ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ເພື່ອຊ່ວຍຂະຫຍາຍອາຍຸການນຳໃຊ້ແບັດເຕີຣີຂອງທ່ານ, ການສາກໄດ້ຖືກປັບໃຫ້ເໝາະສົມໃນຕອນທີ່ເຊື່ອມຕໍ່ກັບແທ່ນສາກ"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ການສາກໄດ້ຖືກປັບໃຫ້ເໝາະສົມເພື່ອປົກປ້ອງແບັດເຕີຣີຂອງທ່ານ"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ເພື່ອຊ່ວຍຂະຫຍາຍອາຍຸການນຳໃຊ້ແບັດເຕີຣີຂອງທ່ານ, ການສາກໄດ້ຖືກປັບໃຫ້ເໝາະສົມໃນຕອນທີ່ເຊື່ອມຕໍ່ກັບແທ່ນສາກ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"ການສາກຈົນເຕັມ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ເພື່ອປົກປ້ອງແບັດເຕີຣີຂອງທ່ານ, ການສາກຈະຖືກປັບໃຫ້ເໝາະສົມໃນເທື່ອຕໍ່ໄປທີ່ທ່ານວາງແທັບເລັດໄວ້ເທິງແທ່ນສາກ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການສາກຢຸດຊົ່ວຄາວ"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ສືບຕໍ່ການສາກໄຟ"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ຮວມການເຄື່ອນໄຫວໃນພື້ນຫຼັງທີ່ໃຊ້ພະລັງງານຫຼາຍ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ລຶບ"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ຍົກເລີກ"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"ສາກໄຟຈົນເຕັມ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ບັນຫາກັບອຸປະກອນເສີມໃນການສາກ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ຮຽນ​ຮູ້​ເພີ່ມ​ເຕີມ​ກ່ຽວ​ກັບ​ການ​ສາກ​ທີ່​ບໍ່​ເຂົ້າ​ກັນ​ໄດ້"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ຕົວຈັດການແບັດເຕີຣີ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ຈັດການແອັບໂດຍອັດຕະໂນມັດ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ຕອນນີ້"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ແຜນພາບການໃຊ້ແບັດເຕີຣີ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ແຜນພາບການໃຊ້ແບັດເຕີຣີລາຍວັນ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ແຜນພາບການໃຊ້ແບັດເຕີຣີລາຍຊົ່ວໂມງ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ເປີເຊັນລະດັບແບັດເຕີຣີຈາກ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ຫາ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ການໃຊ້ແບັດເຕີຣີຕັ້ງແຕ່ສາກເຕັມເທື່ອຫຼ້າສຸດ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"ການໃຊ້ແບັດເຕີຣີສຳລັບ <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"ເວລາໜ້າຈໍຕັ້ງແຕ່ສາກເຕັມເທື່ອຫຼ້າສຸດ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"ສັນຍານການໂທສຸກເສີນ"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ຕັ້ງຄ່າການເຮັດວຽກເມື່ອມີການໂທຫາໝາຍເລກສຸກເສີນ"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ສຳຮອງຂໍ້ມູນ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ເປີດ"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ປິດ"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ສຳຮອງຂໍ້ມູນ &amp; ດຶງຂໍ້ມູນຄືນ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ຂໍ້​ມູນ​ສ່ວນ​ໂຕ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ສຳຮອງຂໍ້ມູນຂອງຂ້ອຍ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ຊື່"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ປະເພດ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ທີ່ຢູ່ເຊີບເວີ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"ການເຂົ້າລະຫັດ PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"ຂໍ້ມູນລັບ L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"ໂຕລະ​ບຸ IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"ກະແຈ IPSec ທີ່ແບ່ງປັນລ່ວງໜ້າ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"ໃບຮັບຮອງຜູ່ໃຊ້ IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"ໃບຮັບຮອງ IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"ໃບຮັບຮອງເຊີບເວີ IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"ສະແດງຕົວເລືອກຂັ້ນສູງ"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"ໂດເມນຊອກຫາ DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"ເຊີບເວີ DNS (ເຊັ່ນ: 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ເສັ້ນທາງການສົ່ງຕໍ່ (ເຊັ່ນ: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ຊື່ຜູ້ໃຊ້"</string>
     <string name="vpn_password" msgid="1183746907642628127">"ລະຫັດຜ່ານ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ບັນທຶກຂໍ້ມູນບັນຊີ"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ບໍ່ໄດ້ໃຊ້)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ບໍ່ຕ້ອງພິສູດເຊີບເວີ)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ໄດ້ຮັບຈາກເຊີບເວີ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"VPN ປະເພດນີ້ບໍ່ສາມາດເຊື່ອມຕໍ່ຕະຫຼອດເວລາໄດ້"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN ແບບເປີດຕະຫຼອດຮອງຮັບສະເພາະທີ່ຢູ່ເຊີບເວີແບບຕົວເລກເທົ່ານັ້ນ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ຈະຕ້ອງລະບຸເຊີບເວີ DNS ສຳລັບ VPN ແບບເປີດຕະຫຼອດ"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ທີ່ຢູ່ເຊີບເວີ DNS ຈະຕ້ອງເປັນຕົວເລກສຳລັບ VPN ແບບເປີດຕະຫຼອດ"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ຂໍ້ມູນທີ່ລະບຸມານັ້ນບໍ່ຮອງຮັບ VPN ແບບເປີດຕະຫຼອດ"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ຍົກເລີກ"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ປິດໄວ້"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"ບລັອກການເຊື່ອມຕໍ່ໂດຍບໍ່ໃຊ້ VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"ຮ້ອງຂໍການເຊື່ອມຕໍ່ VPN ບໍ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ບໍ່ປອດໄພ. ອັບເດດເປັນ IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ເລີ່ມ VPN ທີ່ບໍ່ຮອງຮັບບໍ່ສຳເລັດ."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ເລືອກໂປຣໄຟລ໌ VPN ເພື່ອໃຫ້ເຊື່ອມຕໍ່ຕະຫຼອດເວລາ. ການຈະລາຈອນໃນເຄືອຂ່າຍ ຈະໄດ້ຮັບອະນຸຍາດສະເພາະເມື່ອເຊື່ອມຕໍ່ຜ່ານ VPN ນີ້ເທົ່ານັ້ນ."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ບໍ່ມີ"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN ທີ່ເປີດໃຊ້ຕະຫຼອດເວລາຕ້ອງມີທີ່ຢູ່ IP ສຳລັບທັງເຊີບເວີ ແລະ DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"ການ​ແຈ້ງ​ເຕືອນ AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"​ຮັບ​ຂໍ້​ມູນ​ຂ່າວ​ສານ​ກ່ຽວ​ກັບ​ການ​ລັກ​ພາ​ໂຕ​ເດັກ​ນ້ອຍ"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ເຮັດ​ຊ້ຳ"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"ເປີດ​ນຳ​ໃຊ້​ໂຕ​ຈັດ​ການ​ການ​ໂທ"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"​ອະ​ນຸ​ຍາດ​ໃຫ້​ບໍ​ລິ​ການ​ນີ້​ຈັດ​ການ​ວິ​ທີ​​ການ​ໂທ​ອອກ​ຂອງ​ທ່ານ."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"​ໂຕ​ຈັດ​ການ​ການ​ໂທ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ການເຕືອນສຸກເສີນໄຮ້ສາຍ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ຜູ່ໃຫ້ບໍລິການເຄືອຂ່າຍ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ຊື່ຂອງຈຸດການເຂົ້າເຖິງ (APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pay, tap, payments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ສຳຮອງຂໍ້ມູນ, ສຳຮອງ ຂໍ້ມູນ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ທ່າທາງ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ໃບໜ້າ, ປົດລັອກ, ການຢືນຢັນ, ເຂົ້າສູ່ລະບົບ"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ໜ້າ, ປົດລັອກ, ພິສູດຢືນຢັນ, ເຂົ້າສູ່ລະບົບ, ລາຍນິ້ວມື, ລະບົບຊີວະມິຕິ"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, ເວີຊັນ prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ສຽງຕອນເປີດເຄື່ອງ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"ຄຳບັນຍາຍສົດ"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ສ້າງຄຳບັນຍາຍມີເດຍໂດຍອັດຕະໂນມັດ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ລຳໂພງຂອງໂທລະສັບ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ລຳໂພງຂອງແທັບເລັດ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ລຳໂພງຂອງອຸປະກອນ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ຫູຟັງແບບມີສາຍ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"ສຽງຈາກມີເດຍທີ່ເຂົ້າກັນໄດ້ຈະມີຄວາມສົມຈິງຍິ່ງຂຶ້ນ"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ປິດ"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ລຶບການສົນທະນາຫຼ້າສຸດອອກແລ້ວ"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"ລຶບການສົນທະນາອອກແລ້ວ"</string>
     <string name="clear" msgid="5092178335409471100">"ລຶບລ້າງ"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"ລຶບລ້າງ <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ການສົນທະນາສຳຄັນ ແລະ ການສົນທະນາທີ່ມີການແກ້ໄຂຈະປາກົດຢູ່ບ່ອນນີ້"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"ເມື່ອທ່ານໝາຍການສົນທະນາວ່າສຳຄັນ ຫຼື ປ່ຽນແປງສິ່ງອື່ນໆໃນການສົນທະນາແລ້ວ, ພວກມັນຈະປາກົດຢູ່ບ່ອນນີ້. \n\nເພື່ອປ່ຽນການຕັ້ງຄ່າການສົນທະນາ: \nໃຫ້ປັດລົງຈາກໜ້າຈໍເພື່ອເປີດແຖບແບບເລື່ອນລົງ, ຈາກນັ້ນແຕະໃສ່ການສົນທະນາໃດໜຶ່ງຄ້າງໄວ້."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ຫຍໍ້ລົງ"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ປິດ"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ການປັກໝຸດແອັບ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ການປັກໝຸດແອັບຈະເຮັດໃຫ້ທ່ານສາມາດຈຶ້ງແອັບປັດຈຸບັນໄວ້ໃນມຸມມອງຈົນກວ່າທ່ານຈະຖອດປັກໝຸດມັນ. ຕົວຢ່າງ: ທ່ານສາມາດໃຊ້ຄຸນສົມບັດນີ້ເພື່ອອະນຸຍາດໃຫ້ໝູ່ທີ່ເຊື່ອຖືໄດ້ຫຼິ້ນເກມສະເພາະໃດໜຶ່ງໄດ້."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"ເມື່ອປັກໝຸດແອັບໃດໜຶ່ງໄວ້ແລ້ວ, ແອັບທີ່ປັກໝຸດໄວ້ອາດເປີດແອັບອື່ນ ຫຼື ອາດເຂົ້າເຖິງຂໍ້ມູນສ່ວນຕົວໄດ້. \n\nເພື່ອໃຊ້ການປັກໝຸດແອັບ: \n1. ເປີດການປັກໝຸດແອັບ \n2. ເປີດພາບຮວມ \n3. ແຕະໄອຄອນແອັບຢູ່ເທິງສຸດຂອງໜ້າຈໍ, ຈາກນັ້ນແຕະປັກໝຸດ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"ເມື່ອປັກໝຸດແອັບໃດໜຶ່ງໄວ້ແລ້ວ, ແອັບທີ່ປັກໝຸດໄວ້ອາດເປີດແອັບອື່ນ ຫຼື ອາດເຂົ້າເຖິງຂໍ້ມູນສ່ວນຕົວໄດ້. \n\nຫາກທ່ານຕ້ອງການແບ່ງປັນອຸປະກອນຂອງທ່ານໃຫ້ຄົນອື່ນໃຊ້ຢ່າງປອດໄພ, ໃຫ້ລອງໃຊ້ຜູ້ໃຊ້ແຂກແທນ. \n\nເພື່ອໃຊ້ການປັກໝຸດແອັບ: 	\n1. ເປີດໃຊ້ການປັກໝຸດແອັບ \n2. ເປີດພາບຮວມ \n3. ແຕະໄອຄອນແອັບຢູ່ເທິງສຸດຂອງໜ້າຈໍ, ຈາກນັ້ນແຕະປັກໝຸດ"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ຈັດການແອັບຫາກບໍ່ໄດ້ໃຊ້"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ລຶບການອະນຸຍາດອອກ, ລຶບໄຟລ໌ຊົ່ວຄາວ, ຢຸດການແຈ້ງເຕືອນ ແລະ ເກັບແອັບໄວ້ໃນແຟ້ມ"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"ແອັບທັງໝົດ"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ແອັບທີ່ຕິດຕັ້ງແລ້ວ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ອິນສະແຕນແອັບ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ຟຣີ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ຄວາມ​ຈຳ​ທີ່​ແອັບ​ໃຊ້​ໄປ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 ແອັບໄດ້ນຳໃຊ້ໜ່ວຍຄວາມຈຳໃນ {time} ທີ່ຜ່ານມາ}other{# ແອັບໄດ້ນຳໃຊ້ໜ່ວຍຄວາມຈຳໃນ {time} ທີ່ຜ່ານມາ}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"ເປີດໃຊ້ການສ້າງໂປຣໄຟລ໌ການໃຊ້ໜ່ວຍຄວາມຈຳ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"ການສ້າງໂປຣໄຟລ໌ການນຳໃຊ້ໜ່ວຍຄວາມຈຳຕ້ອງການຊັບພະຍາກອນລະບົບເພີ່ມເຕີມ."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"ປິດການນຳໃຊ້ການສ້າງໂປຣໄຟລ໌ໜ່ວຍຄວາມຈຳແລ້ວ"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ຄວາມຖີ່"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"ການ​ໃຊ້​ສູງ​ສຸດ"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"ບໍ່​ມີ​ຂໍ້​ມູນ​ທີ່​ໃຊ້​ແລ້ວ"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"ສະແດງແອັບບັງແອັບອື່ນ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"ອະນຸຍາດໃຫ້ສະແດງແອັບບັງແອັບອື່ນ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ອະນຸຍາດໃຫ້ແອັບນີ້ສະແດງບັງແອັບອື່ນທີ່ທ່ານກຳລັງໃຊ້ຢູ່. ແອັບນີ້ຈະສາມາດເບິ່ງເຫັນວ່າທ່ານແຕະຢູ່ໃສ ຫຼື ປ່ຽນສິ່ງທີ່ສະແດງຜົນຢູ່ໜ້າຈໍໄດ້."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"ປ່ຽນເອົ້າພຸດສື່"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ອະນຸຍາດໃຫ້ແອັບສະຫຼັບເອົ້າພຸດສື່"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"ອະນຸຍາດໃຫ້ແອັບນີ້ເລືອກອຸປະກອນທີ່ເຊື່ອມຕໍ່ແລ້ວທີ່ຈະຫຼິ້ນສຽງ ຫຼື ວິດີໂອຈາກແອັບອື່ນໆ. ຫາກອະນຸຍາດແລ້ວ, ແອັບນີ້ຈະສາມາດເຂົ້າເຖິງລາຍຊື່ຂອງອຸປະກອນທີ່ມີ ເຊັ່ນ: ຫູຟັງ ແລະ ລຳໂພງ ແລ້ວເລືອກອຸປະກອນສົ່ງຂໍ້ມູນອອກທີ່ຈະໃຊ້ໃນການສະຕຣີມ ຫຼື ສົ່ງສັນຍານສຽງ ຫຼື ວິດີໂອ."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ສິດການເຂົ້າເຖິງໄຟລ໌ທັງໝົດ"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ປັບປຸງການເປີດນຳໃຊ້ດ້ວຍສຽງ"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ອຸປະກອນນີ້ໃຊ້ຂໍ້ມູນດ້ານການວິເຄາະສ່ວນຕົວເພື່ອປັບປຸງໂມເດວການເປີດນຳໃຊ້ດ້ວຍສຽງ. ແອັບສາມາດຮັບຂໍ້ມູນອັບເດດແບບສະຫຼຸບທີ່ຮວບຮວມມາຈາກຜູ້ໃຊ້ຈຳນວນຫຼາຍເພື່ອຮັກສາຄວາມເປັນສ່ວນຕົວໃນຂະນະທີ່ປັບປຸງໂມເດວສຳລັບທຸກຄົນ.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"ຄຳເຕືອນຂໍ້ມູນ <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"ຈຳກັດຂໍ້ມູນ <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ຄຳເຕືອນຂໍ້ມູນ <xliff:g id="ID_1">^1</xliff:g> / ຈຳກັດຂໍ້ມູນ <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ການນັບຂໍ້ມູນຈາກຜູ້ໃຫ້ບໍລິການ ອາດມີຄວາມແຕກຕ່າງຈາກການນັບຂອງອຸປະກອນ"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ບໍ່ຮວມປະລິມານຂໍ້ມູນອິນເຕີເນັດທີ່ໃຊ້ໂດຍເຄືອຂ່າຍຜູ້ໃຫ້ບໍລິການ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"ໃຊ້ໄປແລ້ວ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ຕັ້ງການເຕືອນຂໍ້ມູນ"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"ອັບເດດ <xliff:g id="ID_1">^2</xliff:g> ກ່ອນ"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ອັບເດດໂດຍ <xliff:g id="ID_1">^1</xliff:g> ຕອນນີ້"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ຫາກໍອັບເດດດຽວນີ້"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ເບິ່ງແພັກເກດ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"ເບິ່ງລາຍລະອຽດ"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ຕົວປະຢັດອິນເຕີເນັດ"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ຂໍ້ມູນທີ່ບໍ່ຖືກຈຳກັດ"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ການໃຊ້ແບັດເຕີຣີຜິດປົກກະຕິ"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ຊິ້ນສ່ວນການຕັ້ງຄ່າດ່ວນສຳລັບນັກພັດທະນາຊອບແວ"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"ປິດການໝົດເວລາການອະນຸຍາດ adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ປິດການມອບສິດການຍົກເລີກ adb ອັດຕະໂນມັດສຳລັບລະບົບທີ່ບໍ່ໄດ້ເຊື່ອມຕໍ່ພາຍໃນເວລາຕາມຄ່າເລີ່ມຕົ້ນ (7 ມື້) ຫຼື ຕາມທີ່ຜູ້ໃຊ້ກຳນົດ (ຂັ້ນຕ່ຳ 1 ມື້)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"ກາຮຄຕິດຕາມ Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ປີດເຊັນເຊີ"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ການຕັ້ງຄ່າໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ຊອກຫາລາຍຊື່ຜູ້ຕິດຕໍ່ແຟ້ມວຽກໃນແອັບສ່ວນຕົວ"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ບໍລິການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ບໍລິການຕື່ມຂໍ້ມູນອັດຕະໂນມັດຕາມຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"ລະ​ຫັດ​ຜ່ານ"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການເຄືອຂ່າຍຂໍ້ມູນ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ຜູ້ໃຫ້ບໍລິການເພີ່ມເຕີມ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ລະຫັດຜ່ານ}other{# ລະຫັດຜ່ານ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ອັດຕະໂນມັດ, ຕື່ມຂໍ້ມູນ, ການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ, ລະຫັດຜ່ານ"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ຂໍ້ມູນ, ກະແຈຜ່ານ, ລະຫັດຜ່ານ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ອັດຕະໂນມັດ, ຕື່ມຂໍ້ມູນ, ການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ, ຂໍ້ມູນ, ກະແຈຜ່ານ, ລະຫັດຜ່ານ"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ປິດບໍລິການທັງໝົດບໍ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ລະບົບຈະບໍ່ຕື່ມຂໍ້ມູນລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ຂໍ້ມູນອື່ນໆທີ່ບັນທຶກໄວ້ໂດຍອັດຕະໂນມັດເມື່ອທ່ານເຂົ້າສູ່ລະບົບ"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;ປ່ຽນບໍລິການທີ່ທ່ານຕ້ອງການເປັນ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ລະຫັດຜ່ານໃໝ່, ກະແຈຜ່ານ ແລະ ຂໍ້ມູນອື່ນໆຈະຖືກບັນທຶກໄວ້ບ່ອນນີ້ນັບຈາກນີ້ເປັນຕົ້ນໄປ. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ອາດໃຊ້ສິ່ງທີ່ຢູ່ໜ້າຈໍຂອງທ່ານເພື່ອເບິ່ງວ່າຈະຕື່ມຂໍ້ມູນອັດຕະໂນມັດໃດໄດ້ແດ່"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ໃຊ້ %1$s ບໍ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"ທ່ານສາມາດເປີດໃຊ້ບໍລິການໄດ້ພຽງ 5 ລາຍການເທົ່ານັ້ນ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ປິດບໍລິການຢ່າງໜ້ອຍ 1 ລາຍການເພື່ອເພີ່ມບໍລິການອື່ນ"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ໃຊ້ສິ່ງທີ່ຢູ່ໜ້າຈໍຂອງທ່ານເພື່ອລະບຸສິ່ງທີ່ສາມາດຕື່ມຂໍ້ມູນອັດຕະໂນມັດໄດ້."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນຈຳກັດ"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ທ່ານສາມາດມີໄດ້ເຖິງ 5 ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ການບໍລິການຂໍ້ມູນທີ່ມີການເຄື່ອນໄຫວໃນເວລາດຽວກັນ. ປິດບໍລິການໃດໜຶ່ງເພື່ອເພີ່ມອີກ."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນຈຳກັດ"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ທ່ານສາມາດມີໄດ້ເຖິງ 5 ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນທີ່ມີການເຄື່ອນໄຫວໃນເວລາດຽວກັນ. ປິດບໍລິການໃດໜຶ່ງເພື່ອເພີ່ມອີກ."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ປິດ"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ຕື່ມຂໍ້ມູນອັດຕະໂນມັດ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ລະດັບການບັນທຶກ"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ສາມາດແກ້ໄຂການປ່ຽນແປງຄວາມເຂົ້າກັນໄດ້ຂອງແອັບສຳລັບແອັບທີ່ດີບັກໄດ້ເທົ່ານັ້ນ. ກະລຸນາຕິດຕັ້ງແອັບທີ່ສາມາດດີບັກໄດ້ແລ້ວລອງໃໝ່."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"ຂຶ້ນກັບການຕັ້ງຄ່າອື່ນ"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ບັນຊີ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ບັນຊີ"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ຊື່ອຸປະກອນ"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ຂໍ້ມູນພື້ນຖານ"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"ກົດໝາຍ ແລະ ກົດລະບຽບ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"ອະນຸຍາດໃຫ້ເປີດໃຊ້ແອັບນີ້ເມື່ອແທັກ NFC ຖືກສະແກນ.\nຫາກເປີດການອະນຸຍາດນີ້ໄວ້, ແອັບຈະພ້ອມໃຫ້ນຳໃຊ້ເປັນຕົວເລືອກເມື່ອໃດກໍຕາມທີ່ກວດພົບແທັກ."</string>
     <string name="media_output_title" msgid="8283629315159510680">"ຫຼິ້ນມີເດຍໄປທີ່"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"ຫຼິ້ນຢູ່ <xliff:g id="LABEL">%s</xliff:g>"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ສຽງຈະຫຼິ້ນຢູ່"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ອຸປະກອນນີ້"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ບໍ່ສາມາດໃຊ້ໄດ້ລະຫວ່າງການໂທ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ຮັບສາຍຢູ່"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ປິດສຽງ"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ເພື່ອເປີດການນຳໃຊ້, ທຳອິດໃຫ້ປ່ຽນ \"ກົດປຸ່ມເປີດປິດຄ້າງໄວ້\" ເປັນເມນູເປີດປິດ."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ລາຍລະອຽດເຄືອຂ່າຍ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ຊື່ອຸປະກອນຂອງທ່ານຈະສະແດງໃຫ້ແອັບຕ່າງໆຢູ່ໂທລະສັບເຫັນ. ມັນອາດຖືກສະແດງໃຫ້ຄົນອື່ນເຫັນໃນເວລາທີ່ທ່ານເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth, ເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍ Wi-Fi ຫຼື ຕັ້ງຄ່າຮັອດສະປອດ Wi-Fi ນຳ."</string>
     <string name="devices_title" msgid="649715719278562515">"ອຸປະກອນ"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ເລືອກເຄືອຂ່າຍ"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ຕັດການເຊື່ອມຕໍ່ແລ້ວ"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ຊື່"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ສີ (ໃຊ້ໂດຍແອັບທີ່ໃຊ້ຮ່ວມກັນໄດ້)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"ບັນທຶກ"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ໃຊ້ SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ໃຊ້ຊິມນີ້"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ປິດ"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ເພື່ອປິດການນຳໃຊ້ SIM ນີ້, ໃຫ້ຖອດ SIM ກາດອອກກ່ອນ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"ແຕະເພື່ອເປີດໃຊ້ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ລຶບ SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການ"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ປ່ຽນໂໝດປະຕິບັດການຂອງເຄືອຂ່າຍ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ປະເພດເຄືອຂ່າຍທີ່ຕ້ອງການ"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ກະລຸນາກວດສອບລາຄາກັບຜູ້ໃຫ້ບໍລິການເຄືອຂ່າຍຂອງທ່ານ."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ການໃຊ້ຂໍ້ມູນແອັບ"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ໂໝດເຄືອຂ່າຍ <xliff:g id="NETWORKMODEID">%1$d</xliff:g> ບໍ່ຖືກຕ້ອງ. ບໍ່ສົນໃຈ."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ຊື່ຈຸດເຂົ້າເຖິງ (APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"ບໍ່ສາມາດໃຊ້ໄດ້ເມື່ອເຊື່ອມຕໍ່ກັບ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"ສະຫຼັບໄປໃຊ້ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ບໍ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ສະຫຼັບໄປໃຊ້ຊິມກາດບໍ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"ໃຊ້ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ບໍ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ສາມາດເປີດໃຊ້ເທື່ອລະຊິມເທົ່ານັ້ນ.\n\nການສະຫຼັບໄປໃຊ້ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ຈະບໍ່ຍົກເລີກບໍລິການ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ຂອງທ່ານ."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ສາມາດເປີດໃຊ້ eSIM ໄດ້ເທື່ອລະ 1 ຊິມເທົ່ານັ້ນ.\n\nການປ່ຽນໄປໃຊ້ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ຈະບໍ່ຍົກເລີກບໍລິການ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ຂອງທ່ານ."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ສາມາດເປີດໃຊ້ໄດ້ເທື່ອລະຊິມເທົ່ານັ້ນ.\n\nການສະຫຼັບຈະບໍ່ຍົກເລີກບໍລິການ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ຂອງທ່ານ."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ທ່ານສາມາດໃຊ້ 2 ຊິມພ້ອມກັນໄດ້. ເພື່ອໃຊ້ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, ໃຫ້ປິດອີກຊິມໄວ້ກ່ອນ."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"ສະຫຼັບໄປ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"ປິດ <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ບໍ່, ຂອບໃຈ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ຍົກເລີກ"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ສະຫຼັບ"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ປິດ"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"ບໍ່ສາມາດເປີດນຳໃຊ້ຊິມໄດ້"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ໃຫ້ລອງເປີດຊິມຄືນໃໝ່. ຫາກຍັງຄົງພົບບັນຫາຢູ່, ໃຫ້ຣີສະຕາດອຸປະກອນຂອງທ່ານ."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ຕັ້ງຄ່າຊິມຂອງທ່ານ"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ຕັ້ງຄ່າເຄືອຂ່າຍມືຖືຂອງທ່ານເພື່ອໃຊ້ຫຼາຍຊິມຢູ່ອຸປະກອນນີ້"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ຕິດປ້າຍກຳກັບຊິມຂອງທ່ານ"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ທ່ານຈະເຫັນປ້າຍກຳກັບເຫຼົ່ານີ້ເມື່ອດຳເນີນການໂທ, ສົ່ງຂໍ້ຄວາມ ແລະ ເຊື່ອມຕໍ່ອິນເຕີເນັດ, ຮວມທັງໃນການຕັ້ງຄ່າ"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"ປ້າຍກຳກັບຊິມ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ປ້າຍກຳກັບ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"ເລືອກຊິມທີ່ຈະໃຊ້"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ທ່ານສາມາດໃຊ້ 2 ຊິມພ້ອມກັນໄດ້"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ຕັ້ງຊິມຫຼັກຂອງທ່ານ"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ເລືອກຊິມທີ່ຈະໃຊ້ເປັນຄ່າເລີ່ມຕົ້ນສຳລັບການໂທ, ສົ່ງຂໍ້ຄວາມ ແລະ ເຊື່ອມຕໍ່ອິນເຕີເນັດ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ຊິມຫຼັກຂອງທ່ານ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ການໂທ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ຂໍ້ຄວາມ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ການສະຫຼັບການເຊື່ອມຕໍ່ອິນເຕີເນັດອັດຕະໂນມັດ"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ໃຊ້ການເຊື່ອມຕໍ່ອິນເຕີເນັດຈາກຊິມໃດກໍໄດ້ໂດຍຂຶ້ນຢູ່ກັບພື້ນທີ່ຄອບຄຸມ ແລະ ຄວາມພ້ອມໃຫ້ນຳໃຊ້"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ໃຊ້ເຊື່ອມຕໍ່ອິນເຕີເນັດເທົ່ານັ້ນ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ຕັ້ງຄ່າ"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ຕໍ່ໄປ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"ເຄືອຂ່າຍມືຖື"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ເບີໂທລະສັບ"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"ປ້າຍກຳກັບ ແລະ ສີຊິມ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ການເປີດນຳໃຊ້ເຄືອຂ່າຍ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"ການສະຫຼັບຜູ້ໃຫ້ບໍລິການ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"ເປີດໃຊ້ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ຢູ່"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"ເພື່ອໃຊ້ອິນເຕີເນັດມືຖື, ຄຸນສົມບັດການໂທ ແລະ SMS ໃນພາຍຫຼັງ, ໃຫ້ໄປທີ່ການຕັ້ງຄ່າເຄືອຂ່າຍຂອງທ່ານ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ຊິມ"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ລຶບ eSIM ນີ້ບໍ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ການລຶບ SIM ນີ້ຈະລຶບບໍລິການ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ອອກຈາກອຸປະກອນນີ້.\n\nຈະບໍ່ຍົກເລີກບໍລິການສຳລັບ <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ລຶບ"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"ກຳລັງລຶບ SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ບໍ່ສາມາດລຶບ SIM ອອກໄດ້"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ບໍ່ສາມາດລຶບ SIM ອອກໄດ້ເນື່ອງຈາກມີຂໍ້ຜິດພາດ.\n\nກະລຸນາຣີສະຕາດອຸປະກອນຂອງທ່ານແລ້ວລອງໃໝ່."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ເຊື່ອມຕໍ່ຫາອຸປະກອນ"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"ແອັບ <xliff:g id="APPNAME">%1$s</xliff:g> ຕ້ອງການໃຊ້ເຄືອຂ່າຍ Wi‑Fi ຊົ່ວຄາວເພື່ອເຊື່ອມຕໍ່ຫາອຸປະກອນຂອງທ່ານ"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"ບໍ່ພົບອຸປະກອນ. ກະລຸນາກວດສອບວ່າເປີດອຸປະກອນແລ້ວ ແລະ ສາມາດເຊື່ອມຕໍ່ໄດ້."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"​ການ​ໂທ​ສຸກ​ເສີນ"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ຜູ້ໃຫ້ບໍລິການຂອງທ່ານບໍ່ຮອງຮັບການໂທສຸກເສີນຜ່ານ Wi‑Fi.\nອຸປະກອນຈະສະຫຼັບໄປໃຊ້ເຄືອຂ່າຍມືຖືໂດຍອັດຕະໂນມັດເພື່ອໂທສຸກເສີນ.\nທ່ານສາມາດໂທສຸກເສີນໄດ້ສະເພາະໃນເວລາທີ່ຢູ່ໃນພື້ນທີ່ທີ່ມີສັນຍານໂທລະສັບມືຖືເທົ່ານັ້ນ."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ໃຊ້ Wi‑Fi ສຳລັບການໂທເພື່ອປັບປຸງຄຸນນະພາບ"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ການໂທສຳຮອງ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"ຫາກ <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ບໍ່ສາມາດໃຊ້ໄດ້ ຫຼື ກຳລັງໂຣມມິງຢູ່, ໃຫ້ໃຊ້ຊິມອິນເຕີເນັດມືຖືຂອງທ່ານສຳລັບການໂທ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ການໂທສຳຮອງ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ຂໍ້ຄວາມ MMS ຂາເຂົ້າ"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"ບໍ່ສາມາດສົ່ງຂໍ້​ຄວາມ MMS ໄດ້"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ແຕະເພື່ອອະນຸຍາດໃຫ້ສົ່ງຂໍ້ຄວາມ MMS ຢູ່ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> ໄດ້ເມື່ອປິດການໃຊ້ອິນເຕີເນັດມືຖື"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ຂໍ້ມູນນະໂຍບາຍວຽກຂອງທ່ານ"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ການຕັ້ງຄ່າແມ່ນຈັດການໂດຍຜູ້ເບິ່ງແຍງໄອທີຂອງທ່ານ"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"ເປີດດ້ວຍໜ້າຂະໜາດ 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"ເປີດອຸປະກອນໂດຍໃຊ້ເຄີເນວທີ່ຮອງຮັບໜ້າຂະໜາດ 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"ປິດເປີດໃໝ່ດ້ວຍເຄີເນວທີ່ໃຊ້ໄດ້ກັບໜ້າຂະໜາດ 16KB ບໍ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ຄຳເຕືອນ: ບາງແອັບພລິເຄຊັນອາດໃຊ້ບໍ່ໄດ້ກັບໂໝດນີ້. ອຸປະກອນຈະປິດເປີດໃໝ່ຫຼັງຈາກການຢືນຢັນ."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"ປິດເປີດໃໝ່ດ້ວຍເຄີເນວທີ່ໃຊ້ໄດ້ກັບໜ້າຂະໜາດ 4KB ບໍ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"ອຸປະກອນຈະປິດເປີດໃໝ່ຫຼັງຈາກການຢືນຢັນ."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"ອັບເດດເປັນເຄີເນວທີ່ໃຊ້ໄດ້ກັບໜ້າຂະໜາດ 16KB ບໍ່ສຳເລັດ."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ກຳລັງນຳໃຊ້ການປ່ຽນແປງ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ເຄື່ອງຈັດການລາຍງານຂໍ້ຜິດພາດ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"ເລືອກແອັບທີ່ຈະໃຫ້ຈັດການທາງລັດລາຍງານຂໍ້ຜິດພາດຢູ່ອຸປະກອນຂອງທ່ານ."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ສ່ວນຕົວ"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"ເພື່ອສືບຕໍ່ການຫຼິ້ນແບບໄວໆ, ເຄື່ອງຫຼິ້ນມີເດຍຈະເປີດປະໄວ້ໃນການຕັ້ງຄ່າດ່ວນ"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ສະແດງມີເດຍຢູ່ໜ້າຈໍລັອກ"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"ເພື່ອສືບຕໍ່ການຫຼິ້ນໃນທັນທີ, ເຄື່ອງຫຼິ້ນມີເດຍຈະເປີດປະໄວ້ຢູ່ໜ້າຈໍລັອກ"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"ສະແດງການແນະນຳມີເດຍ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"ສະແດງການແນະນຳມີເດຍຈາກຜູ້ຊ່ວຍ"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"ອ້າງອີງຈາກການເຄື່ອນໄຫວຂອງທ່ານ"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ເຊື່ອງຕົວຫຼິ້ນ"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ສະແດງຕົວຫຼິ້ນ"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ຊິມ"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"ນຳໃຊ້ຢູ່"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ບໍ່ໄດ້ນຳໃຊ້"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / ຄ່າເລີ່ມຕົ້ນສຳລັບ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ການໂທ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ສຽງຈາກມີເດຍທີ່ເຂົ້າກັນໄດ້ຈະມີຄວາມສົມຈິງຍິ່ງຂຶ້ນ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ການຕິດຕາມຫົວ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ສຽງຈະປ່ຽນເມື່ອທ່ານຍັບຫົວຂອງທ່ານເພື່ອໃຫ້ສຽງເປັນທຳມະຊາດຍິ່ງຂຶ້ນ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ການອະນຸຍາດການຊິ້ງຂໍ້ມູນ"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"ໃຫ້ການອະນຸຍາດແອັບກັບ <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ຄືກັນກັບທີ່ທ່ານໄດ້ອະນຸຍາດຢູ່ <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ຊິ້ງການອະນຸຍາດຈາກໂທລະສັບ"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ໃຫ້ການອະນຸຍາດແອັບກັບໂມງຂອງທ່ານຄືກັນກັບທີ່ທ່ານໄດ້ອະນຸຍາດຢູ່ໂທລະສັບເຄື່ອງນີ້"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ປະເພດເຄື່ອງສຽງ"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ບໍ່ຮູ້ຈັກ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ລຳໂພງ"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"ປານກາງ"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ສູງ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ແອັບນີ້ສາມາດເປີດໄດ້ໃນ 1 ໜ້າຈໍເທົ່ານັ້ນ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ເປີດຢູ່"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ປິດຢູ່"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ປິດຢູ່"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ປິດ"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ເປີດ"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ປິດ"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ເປີດ"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ປິດ"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ປ່ຽນໜ້າຈໍທີ່ແຈ້ງໃຫ້ມືດ ແລະ ປັບໜ້າຈໍທີ່ມືດໃຫ້ແຈ້ງ"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ຊູມເຂົ້າຢູ່ໜ້າຈໍ"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ປິດ"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ປິດ"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ເປີດ"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ປິດ"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ເປີດ"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"ລະຫັດຜ່ານໄດ້ຮັບການຕັ້ງຄ່າແລ້ວ"</string>
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 9c66346..d6cbf04 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Po vienos minutės"</item>
     <item msgid="1574040255478150028">"Po penkių minučių"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 1414834..02357fc 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Dabar esate kūrėjas!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nereikia, jūs jau esate kūrėjas."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Pirmiausia įgalinkite kūrėjo parinktis."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Tik naudotojai administratoriai gali pasiekti kūrėjo nustatymus."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Aptarnaujama"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Paslaugos neteikiamos"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Priekinis rodinys įjungiamas sulenkus įrenginį"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Tik žaidimai, vaizdo įrašai ir kt."</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Priekinis rodinys įjungiamas programose, kurios išjungia neaktyvų ekraną"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Perbraukite aukštyn ir tęskite"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Sulenkite telefoną ir perbraukite aukštyn priekiniame rodinyje, jei norite toliau naudoti programą, arba palaukite kelias sekundes, kol ekranas bus užrakintas"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Niekada"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Priekinis rodinys užrakinamas sulenkus įrenginį"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Automatinio pasukimo naudojimas"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Susiję"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Skambėjimo tonas ir signalai"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Garsas vykstant skambučiams"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Medija"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Pranešimai ir sistemos garsai"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Medijos ir sistemos garsai"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Pranešimai"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Pagal numatytuosius nustatymus garso išvestis nustatoma atsižvelgiant į atskiras programas"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"„Bluetooth“ įrenginys be pavadinimo"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Ieškoma"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"„Bluetooth“ įjungtas"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Žr. viską"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Žiūrėti viską"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Rašiklis"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Rašiklio mygtuko paspaudimas"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (darbo profilis)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Prisijungimas prie „LE Audio“ srauto"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Garso srautai netoliese"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Garso srautai"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Prisijunkite prie garso srauto naudodami QR kodą"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Netoliese nerasta jokių garso srautų."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Norėdami pasirinkti kalbą kiekvienai programai, eikite į programų kalbų nustatymus."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Sužinokite daugiau apie programos kalbas"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Pakeisti sistemos kalbą į %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Pridėti %s prie pageidaujamų kalbų?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Tai nurodo programoms ir svetainėms, kad jūs taip pat teikiate pirmenybę šiai kalbai."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Pasikeis įrenginio nustatymai ir tinkamumo nustatymai pagal regioną."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Keisti"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nepasiekiama"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Šeštadienis"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Jei programa nepalaiko tinkamumo nustatymų pagal regioną, ji naudos savo numatytuosius lokalės nustatymus."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Sužinokite daugiau apie kalbos nuostatas."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Papildomos nuostatos"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Kreipimosi terminai"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Nustatykite, kaip į jus kreiptis"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Programose gali būti naudojami kreipimosi terminai, kad į jus būtų kreipiamasi suasmenintai."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nenurodyta"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Moteriškoji giminė"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Vyriškoji giminė"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutralu"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Pašalinti pasirinktą kalbą?}one{Pašalinti pasirinktas kalbas?}few{Pašalinti pasirinktas kalbas?}many{Pašalinti pasirinktas kalbas?}other{Pašalinti pasirinktas kalbas?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekstas bus rodomas kita kalba."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Negalima pašalinti visų kalbų"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Vietovė"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Naudoti vietovę"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Išjungti"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Įjungta – # programa gali pasiekti vietovę}one{Įjungta – # programa gali pasiekti vietovę}few{Įjungta – # programos gali pasiekti vietovę}many{Įjungta – # programos gali pasiekti vietovę}other{Įjungta – # programų gali pasiekti vietovę}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Įjungta / # programa gali pasiekti vietovę}one{Įjungta / # programa gali pasiekti vietovę}few{Įjungta / # programos gali pasiekti vietovę}many{Įjungta / # programos gali pasiekti vietovę}other{Įjungta / # programų gali pasiekti vietovę}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Įkeliama…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Programos, turinčios netoliese esančių įrenginių leidimą, gali nustatyti apytikslį atstumą iki prijungtų įrenginių."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Programų ir paslaugų prieiga prie vietovės išjungta. Įrenginio vietovės informacija vis tiek gali būti siunčiama pagalbos tarnyboms skambinant ar siunčiant teksto pranešimą pagalbos numeriu."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Sužinokite daugiau apie vietovės nustatymus."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Sužinokite daugiau apie vietovės nustatymus."</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Jei norite pakeisti prieigą prie vietovės, eikite į skiltį „Nustatymai“ &gt; „Sauga ir privatumas“ &gt; „Privatumo valdikliai“"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Kad pasiektumėte geriausių rezultatų, naudokite „Made for Google“ sertifikuotą apsauginį ekrano stiklą. Naudojant kitus apsauginius ekrano stiklus vaiko kontrolinis kodas gali neveikti."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Laikrodžio atrakinimas"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Jei nustatote atrakinimą pagal veidą ir atrakinimą piršto atspaudu, telefone prašoma piršto atspaudo, kai dėvite kaukę arba esate tamsioje vietoje.\n\nJei nepavyksta jūsų atpažinti pagal veidą ar piršto atspaudą, galite atrakinti naudodami laikrodį."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Jei nepavyksta jūsų atpažinti pagal piršto atspaudą, galite atrakinti naudodami laikrodį."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Jei nepavyksta jūsų atpažinti pagal veidą, galite atrakinti naudodami laikrodį."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Jei nustatote atrakinimą pagal veidą ir atrakinimą piršto atspaudu, telefone prašoma piršto atspaudo, kai dėvite kaukę arba esate tamsioje vietoje.\n\nLaikrodžio atrakinimo funkcija yra dar vienas patogus būdas atrakinti telefoną, pvz., kai jūsų pirštai šlapi arba kai nepavyksta atpažinti jūsų veido."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Laikrodžio atrakinimo funkcija yra dar vienas patogus būdas atrakinti telefoną, pvz., kai nepavyksta atpažinti jūsų piršto atspaudo."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Laikrodžio atrakinimo funkcija yra dar vienas patogus būdas atrakinti telefoną, pvz., kai nepavyksta atpažinti jūsų veido"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Naudokite piršto atspaudą arba laikrodį toliau nurodytiems veiksmams atlikti."</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Naudokite veidą arba laikrodį toliau nurodytiems veiksmams atlikti."</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Naudokite veidą, piršto atspaudą arba laikrodį toliau nurodytiems veiksmams atlikti."</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Pridėti veido ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Pridėti veido, piršto atspaudo ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Pridėti veido, piršto atspaudų ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Nuotolinės Autentifikavimo priemonės atrakinimas"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Laikrodis pridėtas"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nustatykite laikrodį"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Laikrodžio atrakinimo funkcija yra dar vienas patogus būdas atrakinti šį telefoną, pvz., kai jūsų pirštai šlapi arba kai nepavyksta atpažinti jūsų veido.\n\nGalite atrakinti šį telefoną naudodami laikrodį, atlikę toliau nurodytus veiksmus."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne dabar"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Tęsti"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Daugiau"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Kaip tai veikia"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Laikrodis turi būti atrakintas, uždėtas ant riešo ir netoli šio telefono. Kol laikrodis bus ant riešo, nereikės jo iš naujo atrakinti."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kai šis telefonas bus atrakintas, gausite pranešimą laikrodyje. Jei telefonas atrakinamas, nors nenorėjote to padaryti, palieskite pranešimą vėl užrakinti telefoną."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Viską valdote jūs"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Galite bet kada atšaukti laikrodžio funkciją „Laikrodžio atrakinimas“ skiltyje „Nustatymai“"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Palieskite pranešimą"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Perbraukite aukštyn užrakinimo ekrane"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Laikrodžio pasirinkimas"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Pasiekiami laikrodžiai"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Atšaukti"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Patvirtinti"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Viskas nustatyta!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Dabar galite atrakinti šį telefoną naudodami laikrodį, perbraukę aukštyn užrakinimo ekrane arba palietę pranešimą"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Atlikta"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Laikrodžio atrakinimas"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Galite atrakinti šį telefoną naudodami laikrodį, perbraukę aukštyn užrakinimo ekrane arba palietę pranešimą"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Kad galėtumėte naudoti Laikrodžio atrakinimo funkciją, laikrodis turi būti atrakintas, uždėtas ant riešo, netoli šio telefono ir prie jo prijungtas. Jei ryšys bus pertrauktas, turėsite atrakinti telefoną, kad galėtumėte naudoti Laikrodžio atrakinimo funkciją.\n\nAtminkite\nVienu metu galite turėti tik vieną susietą laikrodį. Jei norite pridėti kitą laikrodį, pirmiausia pašalinkite esamą."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Sužinokite daugiau apie funkciją „Laikrodžio atrakinimas“"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pridėti laikrodį"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Pašalinti laikrodį"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Piršto atspaudas ir atrakinimas pagal veidą"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Atrakinimas pagal veidą ir piršto atspaudu darbe"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Reikia nustatyti"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sauga"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privatumas"</string>
     <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="2274405892301976238">"Privačių programų užrakinimas ir slėpimas"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Laikykite privačias programas atskiroje erdvėje, kurią galite slėpti ar užrakinti"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Privačios erdvės užraktas"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Galite atrakinti privačią erdvę taip pat, kaip atrakinate įrenginį, arba pasirinkti kitą užraktą"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Įrenginio ekrano užrakto naudojimas"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Atrakinimas pagal veidą ir piršto atspaudu"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Atrakinimas piršto atspaudu"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Atrakinimas pagal veidą"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Palieskite, kad atliktumėte sąranką"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Privačios erdvės atrakinimas piršto atspaudu"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Privačios erdvės atrakinimas pagal veidą"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Atrakinimo metodai"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Toks pats kaip įrenginio ekrano užraktas"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Pasirinkti naują privačios erdvės užraktą?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Užrakinti automatiškai"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Užrakinti privačią erdvę automatiškai"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Galite automatiškai užrakinti privačią erdvę, jei tam tikrą laikotarpį nenaudojote įrenginio"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Kaskart, kai įrenginys užrakinamas"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Po penkių neaktyvumo minučių"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Niekada"</string>
+    <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_delete_title" msgid="3075645119800272800">"Privačios erdvės ištrynimas"</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="private_space_unlocked" msgid="9091600948712932046">"Privati erdvė atrakinta"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nustatykite ekrano užraktą"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Atšaukti"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Nustatyti"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Privačios erdvės nustatymas"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Laikykite privačias programas atskiroje erdvėje, kurią galite slėpti ar užrakinti"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Kaip tai veikia"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Privačią erdvę galite pasiekti iš programų sąrašo apačios"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Programos privačioje erdvėje saugomos jas užrakinant"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Pranešimai iš programų privačioje erdvėje slepiami, kai ji užrakinta"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Programos privačioje erdvėje nebus rodomos leidimų tvarkytuvėje, privatumo informacijos suvestinėje ir kituose nustatymuose, kai privati erdvė bus užrakinta.\n\nPrivačios erdvės negalima perkelti į naują įrenginį. Turėsite nustatyti kitą privačią erdvę, jei norėsite ją naudoti kitame įrenginyje.\n\nBet kuris naudotojas, prijungęs jūsų įrenginį prie kompiuterio ar įdiegęs žalingų programų įrenginyje, galės pasiekti jūsų privačią erdvę."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nustatoma privati erdvė…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Pranešimai iš programų privačioje erdvėje slepiami, kai ji užrakinta"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Nuotraukų arba failų iš privačios erdvės programų bendrinimas atrakinus privačią erdvę"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Kai kurios programos jau įdiegtos privačioje erdvėje"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Nepavyko nustatyti privačios erdvės"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Bandyti dar kartą"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Naudoti ekrano užraktą privačiai erdvei atrakinti?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Galite atrakinti privačią erdvę taip pat, kaip atrakinate įrenginį, arba pasirinkti kitą užraktą"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Naudoti ekrano užraktą"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Pasirinkti naują užraktą"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Viskas nustatyta!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Jei norite pasiekti privačią erdvę, eikite į programų sąrašą, tada slinkite žemyn"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Atlikta"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Slinkite žemyn, kad surastumėte privačią erdvę"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Privačios erdvės užrakto pasirinkimas"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Privačią erdvę galite atrakinti piršto atspaudu. Saugos sumetimais, įgalinus šią parinktį, reikia naudoti atsarginį užraktą."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Privačios erdvės PIN kodo nustatymas"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Privačios erdvės slaptažodžio nustatymas"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Privačios erdvės atrakinimo piešinio nustatymas"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Norint rodyti privačią erdvę (ne galutinė NP)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Atidarykite Nustatymų programą"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Palieskite „Sauga ir privatumas“ &gt; „Privati erdvė“ &gt; „Užrakintos privačios erdvės slėpimas“"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Išjunkite jungiklį „Užrakintos privačios erdvės slėpimas“"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Pastaba „Google“ darbuotojams: ši funkcija vis dar kuriama"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Galbūt reikės šį prieigos raktą įvesti kitame įrenginyje."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Patvirtinkite, kad susietumėte su suderintu rinkiniu"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Leisti pasiekti jūsų kontaktus ir skambučių istoriją"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Taip pat leiskite pasiekti kontaktus ir skambučių istoriją"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacija bus naudojama skambučių pranešimams ir kt."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nepavyko prisijungti prie „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Pasiekiami įrenginiai"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kai „Bluetooth“ įj., įreng. gali užm. ryšį su kitais netoliese esančiais „Bluetooth“ įreng."</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Veikia lėktuvo režimu"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Pranešti apie viešuosius tinklus"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Pranešti, kai pasiekiamas aukštos kokybės viešas tinklas"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Leisti WEP tinklus"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP yra senesnis ir mažiau saugus saugos protokolas"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Jūsų operatorius neleidžia WEP tinklų, nes jie mažiau saugūs"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Automatiškai įjungti „Wi‑Fi“"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"„Wi‑Fi“ bus vėl įjungtas esant šalia išsaugotų aukštos kokybės tinklų, pvz., jūsų namų tinklo"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nepasiekiama, nes vietovės parinktis išjungta. Įjunkite "<annotation id="link">"vietovę"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"„Wi-Fi“ nuskaitymo funkcija leidžia programoms ir paslaugoms bet kuriuo metu nuskaityti ieškant „Wi‑Fi“ tinklų, net kai „Wi‑Fi“ išjungtas. Tai galima naudoti norint, pvz., tobulinti pagal vietovę teikiamas funkcijas ir paslaugas."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Įjungti"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"„Wi‑Fi“ nuskaitymas įjungtas"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Šiame tinkle naudojamas senesnis ir mažiau saugus saugos protokolas"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Tinklas „<xliff:g id="NAME">%1$s</xliff:g>“ užblokuotas"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Šiame tinkle naudojamas senesnis ir mažiau saugus saugos protokolas, vadinamas WEP. Jei vis tiek norite prisijungti, galit leisti WEP tinklus."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Jūsų operatorius neleidžia prisijungti prie šio tinklo, nes jame naudojamas senesnis ir mažiau saugus saugos protokolas"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Leisti WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Uždaryti"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Išplėstinės parinktys"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Išskleidžiamojo sąrašo išplėstinės parinktys"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"išskleisti"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Toliau naudoti „Wi‑Fi“"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Daugiau niekada neberodyti"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Prijungti"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"„Wi-Fi“ įjungtas"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Prisijungta prie „<xliff:g id="NETWORK_NAME">%1$s</xliff:g>“"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Prisijungiama prie „<xliff:g id="NETWORK_NAME">%1$s</xliff:g>“"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Prijungiama…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Jungiantis prie tinklo įvyko klaida."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Tinklas ne diapazone"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Pamiršti"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Keisti"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ištrinant tinklą įvyko klaida."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Išsaugoti"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Išsaugant tinklą įvyko klaida."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Atšaukti"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobiliojo ryšio duomenys"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Eternetas"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – įkraunama"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – įkraunama"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Viešosios interneto prieigos taško ryšys"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Ryšio stiprumas"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Išsaugoti tinklai"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nenustatyta jokių slaptažodžių"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Viešosios interneto prieigos taško pavadinimas"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Viešosios interneto prieigos taško slaptažodis"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Prieigos taško juosta"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Išjungti viešosios interneto prieigos tašką automatiškai"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kai nėra susietų įrenginių"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Praplėsti suderinamumą"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Pateikti baltos spalv. balansą"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Išjungti numatytąjį žaidimų kadrų dažnį"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Išjungti maksimalaus <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz žaidimų kadrų dažnio ribojimą."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkcija „Žiūrėjimas į ekraną“ naudoja priekinį fotoaparatą, kad nustatytų, ar kas nors žiūri į ekraną. Ši funkcija veikia pačiame įrenginyje, jokie vaizdai neišsaugomi ir nesiunčiami „Google“."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Žiūrėjimo į ekraną funkcijos įjungimas"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekranas neišsijungs, kol į jį žiūrėsite"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Dėl ilgesnio ekrano skirtojo laiko bus eikvojama daugiau akumuliatoriaus energijos."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparatas užrakintas"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Fotoaparatas turi būti atrakintas, kad būtų galima naudoti veido aptikimo funkciją"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Fotoaparatas turi būti atrakintas, kad būtų galima naudoti žiūrėjimo į ekraną funkciją"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (<xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g> SIM lizdas)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (<xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> SIM lizdas) (pagrindinis)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Norėdami peržiūrėti pasirinkite išsaugotą tinklą"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN."</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL versija"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Akumuliatoriaus lygis"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Bendruomenės"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Bendruomenės nustatymai"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Išsaugoti"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Atšaukti"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Pavadinimo laukas negali būti tuščias."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN negali būti tuščias."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MKC lauke turi būti įvesti 3 skaitmenys."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC lauke turi būti įvesti 2 ar 3 skaitmenys."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operatorius neleidžia pridėti %s tipo APN."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC laukas turi būti galiojantis."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Atkuriami numatytieji APN nustatymai."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Nustatyti iš naujo į numatytuosius nust."</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Numatytųjų APN nustatymų nustatymas iš naujo baigtas."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Nustatyti iš naujo"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"„Bluetooth“ ir „Wi‑Fi“ ryšiai nustatyti iš naujo"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Ištrinti eSIM korteles"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Šiuo veiksmu neatšauksite jokio mobiliųjų paslaugų plano. Jei norite atsisiųsti pakaitinių SIM kortelių, susisiekite su operatoriumi."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Nustatyti iš naujo"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Iš naujo nustatyti visus tinklo nustatymus? Negalite anuliuoti šio veiksmo."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Iš naujo nustatyti visus tinklo nustatymus ir ištrinti „eSIM“ korteles? Šio veiksmo anuliuoti negalima."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Nustatyti iš naujo?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Šis naudotojas negali iš naujo nustatyti tinklo"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Tinklo nustatymai nustatyti iš naujo"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Nepavyko ištrinti SIM kortelių"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"„eSIM“ kortelių negalima ištrinti dėl klaidos.\n\nPaleiskite įrenginį iš naujo ir bandykite dar kartą."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Ištrinti visus duomenis (atkurti gamyklinius nustatymus)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Ištr. duom. (atk. gam. nust.)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Muzika"</li>\n<li>"Nuotraukos"</li>\n<li>"Kiti naudotojo duomenys"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"„eSIM“ kortelės"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Tai atlikus mobiliojo ryšio paslaugų planas nebus atšauktas."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Bus ištrinta visa asmens informacija ir atsisiųstos programos. Negalite anuliuoti šio veiksmo."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Bus ištrinta visa asmens informacija, įskaitant atsisiųstas programas ir SIM korteles. Negalite anuliuoti šio veiksmo."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Ištrinti visus duomenis?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Šis naudotojas negali atkurti gamyklinių nustatymų"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Ištrinama"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Viešosios interneto prieigos taškas, USB, „Bluetooth“, eternetas"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internetas nebendrinamas su kitais įrenginiais"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Išjungta"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Įrenginio kaip modemo naudojimas"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nenaudoti „Wi‑Fi“ viešosios interneto prieigos taško"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Bendrinti internetą tik naudojant USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Bendrinti internetą tik naudojant „Bluetooth“"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Bendrinti internetą tik naudojant eternetą"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Bendrinti internetą tik naudojant USB ir „Bluetooth“"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Bendrinti internetą tik naudojant USB ir eternetą"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Bendrinti internetą tik naudojant „Bluetooth“ ir eternetą"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Bendrinti internetą tik naudojant USB, „Bluetooth“ ir eternetą"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB susiejimas"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"„Bluetooth“ susiejimas"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Eterneto susiejimas"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Naudodami viešosios interneto prieigos tašką ir įrenginį kaip modemą galite teikti internetą kitiems įrenginiams „Wi-Fi“ arba mobiliųjų duomenų ryšiu. Be to, programos gali sukurti viešosios interneto prieigos tašką ir bendrinti turinį su netoliese esančiais įrenginiais."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pagalba"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobiliojo ryšio tinklas"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiliojo ryšio planas"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS programa"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Pakeisti SMS programą?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Naudoti „<xliff:g id="NEW_APP">%1$s</xliff:g>“ kaip SMS programą vietoj „<xliff:g id="CURRENT_APP">%2$s</xliff:g>“?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Pakeisti „Wi-Fi“ pagelbiklį?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Naudoti <xliff:g id="NEW_APP">%1$s</xliff:g> vietoje <xliff:g id="CURRENT_APP">%2$s</xliff:g> tinklo ryšiams tvarkyti?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Naudoti <xliff:g id="NEW_APP">%s</xliff:g> tinklo ryšiams tvarkyti?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nežinomas SIM operatorius"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"„<xliff:g id="OPERATOR">%1$s</xliff:g>“ neturi jokios žinomos aprūpinimo svetainės"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Įdėkite SIM kortelę ir paleiskite iš naujo"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Prisijunkite prie interneto"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Pastarosios vietovės užklausos"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Darbo profilio vieta"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Programų leidimai pasiekti vietovės duomenis"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Išvalyti prieigą"</string>
     <string name="controls_label" msgid="8671492254263626383">"Valdikliai"</string>
     <string name="force_stop" msgid="2681771622136916280">"Sustabdyti"</string>
+    <string name="archive" msgid="9074663845068632127">"Archyvuoti"</string>
+    <string name="restore" msgid="7622486640713967157">"Atkurti"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Iš viso"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Programos dydis"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB atminties programa"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nepavyko apskaičiuoti paketo dydžio."</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> versija"</string>
     <string name="move_app" msgid="5421158479447276791">"Perkelti"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Nepavyko archyvuoti"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Suarchyvuota <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Nepavyko atkurti"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Atkuriama „<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>“"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Jau vykdomas kitas perkėlimas."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nėra pakankamai vietos atmintinėje."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Programos nėra."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Pasiekiama ekrano klaviatūra"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Tvarkyti ekrano klaviatūras"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Parinktys"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pritaikomumas"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizinė klaviatūra"</string>
     <string name="show_ime" msgid="4334255501724746849">"Ekrano klaviatūros naudojimas"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Palikti ekrane, kol fizinė klaviatūra aktyvi"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Peradresavimo klavišai"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Įgalinkite peradresavimo klavišus, kad pritaikytumėte fizinę klaviatūrą"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Atmenieji klavišai"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Įgalinkite atmenuosius klavišus, kad pritaikytumėte fizinę klaviatūrą"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Spartieji klavišai"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Rodyti sparčiųjų klavišų sąrašą"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Darbo profilio klaviatūros ir įrankiai"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Rūšiuoti pagal naudojimo laiką"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Rūšiuoti pagal pastarąjį naudojimą"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Rūšiuoti pagal programos pavadinimą"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Paskutinį kartą naudota"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Paskutinį kartą naudota"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"niekada"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Naudojimo laikas"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Pritaikymas neįgal."</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Pasiekiamumo nustatymai"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vis tiek tęsti"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Atšaukti"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Didinimo nustatymai"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Didinti palietus tris kartus"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Didinimas naudojant spart. klavišą"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Didinti naud. spart. klav. ir palietus tris kartus"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Apie „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Atidarymas palietus ekraną du 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="860548190334486449">"Jei norite pradėti ar baigti didinti, dukart 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Norėdami naudoti pritaikymo neįgaliesiems 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_button" msgid="2031773187678948436">"Supratau"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Pritaikomumo mygt. nustatymai"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Mygtuko nustatymai"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Spartusis klavišas: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Pritaikomumo mygtukas"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Pritaikomumo gestas"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dukart palieskite ekraną dviem pirštais"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dukart palieskite ekraną dviem pirštais"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Greitai palieskite ekraną {0,number,integer} k. dviem pirštais"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrano palietimas tris kartus"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Sužinokite daugiau apie pritaikomumo mygtuką ir gestą"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Pritaikomumo mygtuko naudojimas. Gestas nepasiekiamas naudojant naršymą 3 mygtukais."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Greitai pasiekti pritaik. neįgaliesiems funkcijas"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Jei norite pradėti, atlikite toliau nurodytus veiksmus."</b>\n"1. Eikite į pritaikomumo nustatymus.\n2. Pasirinkite funkciją ir palieskite spartųjį klavišą.\n3. Pasirinkite, ar norite naudoti mygtuką ar gestą funkcijai pasiekti."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Jei norite pradėti, atlikite toliau nurodytus veiksmus."</b>\n"1. Eikite į pritaikomumo nustatymus.\n2. Pasirinkite funkciją ir palieskite spartųjį klavišą.\n3. Pasirinkite mygtuką, kuriuo norite pasiekti funkciją."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Kad pradėtumėte, atlikite toliau nurodytus veiksmus&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Eikite į pritaikomumo nustatymus&lt;br/&gt; {1,number,integer}. Pasirinkite funkciją ir palieskite spartųjį klavišą&lt;br/&gt; {2,number,integer}. Pasirinkite, norite naudoti mygtuką ar gestą, kad pasiektumėte funkciją.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Kad pradėtumėte, atlikite toliau nurodytus veiksmus&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Eikite į pritaikomumo nustatymus&lt;br/&gt; {1,number,integer}. Pasirinkite funkciją ir palieskite spartųjį klavišą&lt;br/&gt; {2,number,integer}. Pasirinkite mygtuką, kuriuo norite pasiekti funkciją.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Naudoti mygtuką arba gestą"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Vieta"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Dydis"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Maitinimo mygt. baig. skamb."</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Didelis pelės žymeklis"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Padarykite pelės žymeklį geriau matomą"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Padaryti visas programas tamsias"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Taikoma programoms be tamsiosios temos. Kai kuriose programose gali būti klaidų, pvz., pakeistos spalvos."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Pašalinti animacijas"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Sumažinkite judėjimą ekrane"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monofoninis garsas"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Naudojant šią funkciją galima stebėti jūsų sąveiką su programa ar aparatinės įrangos jutikliu ir sąveikauti su programomis jūsų vardu."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Leisti"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Atmesti"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Sustabdyti"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Atšaukti"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Sustabdyti „<xliff:g id="SERVICE">%1$s</xliff:g>“?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Palietus „<xliff:g id="STOP">%1$s</xliff:g>“ paslauga „<xliff:g id="SERVICE">%2$s</xliff:g>“ bus sustabdyta."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Išjungti"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Palikti įjungtą"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Išjungti „<xliff:g id="SERVICE">%1$s</xliff:g>“?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nėra įdiegta jokių paslaugų"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nepasirinkta jokia paslauga"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nepateikta jokių aprašų."</string>
     <string name="settings_button" msgid="2195468788019730377">"Nustatymai"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"jautrumas šviesai, fotofobija, tamsioji tema, migrena, galvos skausmas, skaitymo režimas, naktinis režimas, šviesumo mažinimas, baltas taškas"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Lengva naudoti, lengva prieiga, pagalba, pagalbinis"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"regėjimas, klausa, aklasis, kurčias asmuo, motorika, miklumas, pagalbinis, pagalba, paprasta naudoti, paprasta pasiekti, ranka, padėti"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"„Window Magnifier“, mastelio keitimas, didinimas, sutrikusio regėjimo asmuo, padidinti, padaryti didesnį"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Subtitrai, CC, transkripcija realiuoju laiku, neprigirdintis asmuo, klausos sutrikimai, CART, kalba į tekstą, titrai"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"spalvų kontrastas"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, pelė"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"klausos aparatai, neprigirdintis asmuo, klausos praradimas, vidinės ausies implantai, garso stiprinimo įrenginiai, garso apdorojimo priemonės"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, pelė, išorinė pelė, pelė ant galvos, prisitaikanti pelė, neįgaliųjų vežimėlis, vairasvirtė"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"klausos aparatai, neprigirdintis asmuo, klausos praradimas, vidinės ausies implantai, garso stiprinimo įrenginiai, garso apdorojimo priemonės, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"neprigirdintis asmuo, klausos sutrikimai, subtitrai, teletaipas, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"trys mygtukai"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"miklumas, motorika, vyresnis, artritas, RSI, priepuolis, tremoras, išsėtinė sklerozė, cerebrinis paralyžius, drebulys, pakartotinis patempimas, ranka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delsa, miklumas, vyresnis"</string>
     <string name="print_settings" msgid="8519810615863882491">"Spausdinimas"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Išjungta"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Įjungta 1 spausdinimo paslauga}one{Įjungta # spausdinimo paslauga}few{Įjungtos # spausdinimo paslaugos}many{Įjungta # spausdinimo paslaugos}other{Įjungta # spausdinimo paslaugų}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Žr. daugiausia energijos vartojančias programas"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Įkrovimas optimizuotas, siekiant apsaugoti akumuliatorių"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Kad akumuliatorius veiktų ilgiau, įkrovimas optimizuotas"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Įkrovimas optimizuotas, siekiant apsaugoti akumuliatorių"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Kad akumuliatorius veiktų ilgiau, įkrovimas optimizuotas, kai prijungta prie doko."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Įkrovimas optimizuotas, siekiant apsaugoti akumuliatorių"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Kad akumuliatorius veiktų ilgiau, įkrovimas optimizuotas, kai prijungta prie doko."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Visiškas įkrovimas"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Siekiant apsaugoti akumuliatorių, įkrovimas bus optimizuotas kitą kartą, kai planšetinis kompiuteris bus prijungtas prie doko"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Sužinokite daugiau apie pristabdyto įkrovimo būseną"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Tęsti įkrovimą"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Įtraukiama daug energijos eikvojanti veikla fone"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Pašalinti"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Atšaukti"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Įkrauti iki visiško įkrovimo"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Su įkrovimo priedu susijusi problema"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Sužinokite daugiau apie nesuderinamą įkrovimą"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Akumuliatoriaus tvarkytuvė"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Automatinis programų tvarkymas"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"dabar"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Akumuliatoriaus energijos vartojimo diagrama"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Akumuliatoriaus energijos vartojimo kas dieną diagrama"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Akumuliatoriaus energijos vartojimo kas valandą diagrama"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Akumuliatoriaus įkrovos lygis procentais nuo <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> iki <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Akumuliatoriaus naudojimo laikas nuo pastarojo visiško įkrovimo"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Akumuliatoriaus naudojimas su pasirinkta <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Įrenginio naudojimo laikas nuo paskutinio visiško įkrovimo"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Kritinės padėties numerio rinkimo signalas"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Nustatyti elgesį, kai skambinama pagalbos numeriu"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Atsarginė kopija"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Įjungta"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Išjungta"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Kurti atsarginę kopiją ir atkurti"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Asmeniniai duomenys"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Kurti atsarginę duomenų kopiją"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Pavadinimas"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipas"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Serverio adresas"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP šifruotė (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP paslaptis"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"„IPSec“ identifikatorius"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"„IPSec“ iš anksto bendrinamas raktas"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"„IPSec“ naudotojo sertifikatas"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"„IPSec“ CA sertifikatas"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"„IPSec“ serverio sertifikatas"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Rodyti išplėstines parinktis"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS paieškos domenai"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS serveriai (pvz., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Persiuntimo maršrutai (pvz., 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Naudotojo vardas"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Slaptažodis"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Išsaugoti paskyros informaciją"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nenaudojama)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(nepatvirtinti serverio)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(gauta iš serverio)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Šio tipo VPN negali būti visada įjungtas"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Visada įjungto VPN funkcija palaiko tik skaitinius serverio adresus"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Turi būti nurodytas visada įjungto VPN DNS serveris"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Visada įjungto VPN DNS serverio adresai turi būti sudaryti iš skaičių"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Pagal įvestą informaciją nepalaikomas visada įjungtas VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Atšaukti"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Atsisakyti"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokuoti ryšius be VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Būtinas VPN ryšys?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nesaugu. Atnaujinkite į IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepavyko paleisti nepalaikomo VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pasirinkite VPN profilį, kad visada būtumėte prisijungę. Tinklo srautas bus leidžiamas tik prisijungus prie šio VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Joks"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Norint, kad VPN būtų visada įjungtas, reikalingas serverio ir DNS IP adresas."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER įspėjimai"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Gaukite biuletenių apie vaikų grobimus"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Kartoti"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Įgalinti skambučių tvarkyklę"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Leisti šiai paslaugai tvarkyti skambučių atlikimą."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Skambučių tvarkyklė"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Belaidžiu ryšiu siunčiami kritinės pad. įspėjimai"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Tinklo operatoriai"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Prieigos taškų pavadinimai"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"mokėti, paliesti, mokėjimai"</string>
     <string name="keywords_backup" msgid="707735920706667685">"atsarginė kopija, kurti atsarginę kopiją"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gestas"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"veidas, atrakinti, autentifikavimas, prisijungti"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"veidas, atrakinti, autentifikavimas, prisijungti, kontrolinis kodas, biometrinė sistema"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI, MEID, MIN, PRL versija, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Įjungti garsus"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtitrai realiuoju laiku"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Taikyti automatinius medijos subtitrus"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefono garsiakalbiai"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Planšetinio kompiuterio garsiakalbiai"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Įrenginio garsiakalbiai"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Laidinės ausinės"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Kokybiškesnis suderinamos medijos garsas"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Išjungta"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Kas turėtų būti rodoma užrakinimo ekrane?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Pašalinti pastarieji pokalbiai"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Pokalbis pašalintas"</string>
     <string name="clear" msgid="5092178335409471100">"Išvalyti"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Išvalyti <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>."</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Svarbiausi ir pakeisti pokalbiai bus rodomi čia"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Kai pažymėsite pokalbį kaip svarbiausią ar atliksite kitų pokalbio keitimų, jie bus rodomi čia. \n\nJei norite pakeisti pokalbių nustatymus: \nslinkite ekranu iš viršaus žemyn, tada atidarę išskleidžiamąjį skydelį palieskite ir palaikykite pokalbį."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Sumažinti"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Išjungta"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Programos prisegimas"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Prisegta dabartinė programa liks rodinyje tol, kol ją atsegsite. Šią funkciją galima naudoti, pavyzdžiui, leidžiant patikimam draugui žaisti konkretų žaidimą."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Prisegta programa gali atidaryti kitas programas ir pasiekti asmens duomenis. \n\nNorėdami prisegti programą, atlikite toliau nurodytus veiksmus. 	\n1. Įjunkite programos prisegimo funkciją. 	\n2. Atidarykite „Apžvalga“. 	\n3. Palieskite programos piktogramą ekrano viršuje, tada palieskite „Prisegti“."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Prisegta programa gali atidaryti kitas programas ir pasiekti asmens duomenis. \n\nJei norite saugiai bendrinti įrenginį su kitais asmenimis, išbandykite naudotojo svečio profilį. \n\nNorėdami prisegti programą, atlikite toliau nurodytus veiksmus. 	\n1. Įjunkite programos prisegimo funkciją. 	\n2. Atidarykite „Apžvalga“. 	\n3. Palieskite programos piktogramą ekrano viršuje, tada palieskite „Prisegti“."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Prisegta programa gali atidaryti kitas programas ir pasiekti asmens duomenis. \n\nJei norite naudoti programos prisegimą, atlikite toliau nurodytus veiksmus. 	\n{0,number,integer}. Įjunkite programos prisegimą. 	\n{1,number,integer}. Atidarykite skiltį „Apžvalga“. 	\n{2,number,integer}. Palieskite programos piktogramą ekrano viršuje, tada palieskite „Prisegti“."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Prisegta programa gali atidaryti kitas programas ir pasiekti asmens duomenis. \n\nJei norite saugiai bendrinti įrenginį su kitais asmenimis, išbandykite naudotojo svečio profilį. \n\nJei norite naudoti programos prisegimą, atlikite toliau nurodytus veiksmus. 	\n{0,number,integer}. Įjunkite programos prisegimą. 	\n{1,number,integer}. Atidarykite skiltį „Apžvalga“. 	\n{2,number,integer}. Palieskite programos piktogramą ekrano viršuje, tada palieskite „Prisegti“."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kai programa prisegta \n\n•	 Gali būti pasiekiami asmens duomenys \n		(pvz., kontaktai ir el. pašto turinys) \n•		Prisegta programa gali atidaryti kitas programas \n\nProgramas prisekite tik su žmonėmis, kuriais pasitikite."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Prašyti atrakinimo piešinio prieš atsegant"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Prašyti PIN kodo prieš atsegant"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Nenaudojamos programos nustatymai"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pristabdyti nenaudojamų programų veiklą"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Pašalinkite leidimus, ištrinkite laikinus failus ir sustabdykite pranešimus"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Tvarkyti programą, jei nenaudojama"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Pašalinti leidimus, ištrinti laikinus failus, sustabdyti pranešimus ir archyvuoti programą"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Visos programos"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Įdiegtos programos"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Akimirksniu įkeliamos programos"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Laisva"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Programų naudojama atmintis"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Viena programa naudojo atmintį per tiek laiko: {time}}one{# programa naudojo atmintį per tiek laiko: {time}}few{# programos naudojo atmintį per tiek laiko: {time}}many{# programos naudojo atmintį per tiek laiko: {time}}other{# programų naudojo atmintį per tiek laiko: {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Įgalinti atminties sąnaudų profiliavimą"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Norint profiliuoti atminties sąnaudas reikia papildomų sistemos išteklių."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Atminties profiliavimas išjungtas"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Dažnis"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Daugiausia panaudota"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Duomenys nenaudojami"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Rodyti virš kitų programų"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Leisti rodyti virš kitų programų"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Leisti šią programą pateikti virš kitų naudojamų programų. Ši programa galės peržiūrėti, kur paliečiate, arba keisti, kas pateikiama ekrane."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Keisti medijos išvestį"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Leisti programai perjungti medijos išvestį"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Leisti šiai programai pasirinkti, kuris prijungtas įrenginys leidžia garso ar vaizdo įrašą iš kitų programų. Jei leidžiama, ši programa gali pasiekti pasiekiamų įrenginių, pvz., ausinių ir garsiakalbių, sąrašą ir pasirinkti, kuris išvesties įrenginys naudojamas garso ar vaizdo įrašo srautui leisti ar įrašui perduoti."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Visų failų prieiga"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Suaktyvinimo balsu tobulinimas"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Šiame įrenginyje naudojama privati informacija, siekiant tobulinti suaktyvinimo balsu modelį. Programos gali gauti apibendrintus atnaujinimus, sukauptus iš daugelio naudotojų, siekiant išsaugoti privatumą ir kartu tobulinti šį modelį visiems.\n\n"<a href="">"Daugiau apie privačią informaciją"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> duomenų įspėjimas"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> duomenų apribojimas"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> duomenų įspėjimas / <xliff:g id="ID_2">^2</xliff:g> duomenų apribojimas"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operatoriaus duomenų apskaita gali skirtis nuo įrenginio duomenų apskaitos"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Išskiriami duomenys, kuriuos naudoja operatorių tinklai"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Išnaudota <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Nustatyti duomenų įspėjimą"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Atnaujinta prieš <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Ką tik atnaujino „<xliff:g id="ID_1">^1</xliff:g>“"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Ką tik atnaujinta"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Peržiūrėti planą"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Žr. išsamią informaciją"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Duom. taupymo priem."</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neriboti duomenys"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Akumuliatoriaus energijos vartojimo nukrypimas"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Sparčiųjų nustatymų kūrėjo išklotinės elementai"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"ADB prieigos teisės skirtojo laiko išjungimas"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Išjungti automatinį ADB prieigos teisės anuliavimą sistemose, kurios nebuvo iš naujo prijungtos per numatytą (7 dienų) arba naudotojo sukonfigūruotą (mažiausiai 1 dienos) laikotarpį."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"„Winscope“ pėdsakas"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Jutikliai išjungti"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Darbo profilio nustatymai"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Ieškoti darbo katalogo kontaktų naudojant asmenines programas"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Perbraukite aukštyn iš apatinio kampo, kad iškviestumėte skaitmeninio pagelbiklio programą"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Aut. pildymo paslauga"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Numatytoji automatinio pildymo paslauga"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Slaptažodžiai"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Papildomi teikėjai"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# slaptažodis}one{# slaptažodis}few{# slaptažodžiai}many{# slaptažodžio}other{# slaptažodžių}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatinis, užpildyti, automatinis pildymas, slaptažodis"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Išjungti visas paslaugas?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Kai prisijungsite, slaptažodžių, prieigos raktų ir kitos informacijos nebus galima užpildyti automatiškai"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Pakeiskite pageidaujamą paslaugą į &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 dabar nauji slaptažodžiai, prieigos raktai ir kita informacija bus išsaugomi čia. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Naudoti „%1$s“?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Gali būti įjungtos tik penkios paslaugos"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Išjunkite bent vieną paslaugą, kad galėtumėte pridėti kitą"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"„%1$s“ naudoja ekrane esančią informaciją siekdama nustatyti, ką galima automatiškai užpildyti."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Slaptažodžių, prieigos raktų ir duomenų paslaugų apribojimas"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Vienu metu galite turėti daugiausia penkis aktyvius slaptažodžius, prieigos raktus ir duomenų paslaugas. Norėdami pridėti daugiau, išjunkite paslaugą."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Slaptažodžių, prieigos raktų ir duomenų paslaugų apribojimas"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Vienu metu galite turėti daugiausia penkis aktyvius slaptažodžius, prieigos raktus ir duomenų paslaugas. Norėdami pridėti daugiau, išjunkite paslaugą."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Išjungti"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatinis pildymas"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Registr. į žurnalą lygis"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Galima keisti tik derinamų programų suderinamumą. Įdiekite derinamą programą ir bandykite dar kartą."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Priklauso nuo kito nustatymo"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Paskyra"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Paskyrų: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Įrenginio pavadinimas"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Pagrindinė informacija"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Teisės aktai ir reglamentai"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Leisti paleisti šią programą, kai nuskaitoma NFC žyma.\nJei šis leidimas įjungtas, programa bus pasiekiama kaip parinktis, kai žyma bus aptikta."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Leisti mediją į"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Paleisti: <xliff:g id="LABEL">%s</xliff:g>"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Garsas bus leidžiamas"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Šis įrenginys"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Nepasiekiama skambučių metu"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Gauti skambučius"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Nutildyti"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Jei norite įgalinti, pirmiausia pakeiskite veiksmą „Paspausti ir palaikyti maitinimo mygtuką“ į įjungimo meniu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Išsami tinklo info."</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Įrenginio pavadinimas matomas jūsų telefone esančioms 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="devices_title" msgid="649715719278562515">"Įrenginiai"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Pasirinkti tinklą"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Atsijungta"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Pavadinimas"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Spalva (naudoja suderinamos programos)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Išsaugoti"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Naudoti SIM kortelę"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Naudoti šią SIM kortelę"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Išjungta"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Norėdami išjungti šią SIM kortelę, pašalinkite ją"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Palieskite, kad suaktyvintumėte „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Ištrinti SIM kortelę"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Pageidaujamas tinklo tipas"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Pakeisti tinklo veikimo režimą"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Pageidaujamas tinklo tipas"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Daugiau kainodaros informacijos galite gauti susisiekę su tinklo paslaugų teikėju."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Programos duomenų naudojimas"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Netinkamas tinklo režimas (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Nepaisyti."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Prieigos taškų pavadinimai"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"Prieigos taško pavadinimas"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nepasiekiama, kai prisijungta prie „<xliff:g id="CARRIER">%1$s</xliff:g>“"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Perjungti į „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Perjungti į SIM kortelę?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Naudoti „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Vienu metu gali būti aktyvi tik viena SIM kortelė.\n\nPerjungus į „<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>“ jums teikiamos „<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>“ paslaugos nebus atšauktos."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Vienu metu gali būti aktyvi tik viena „eSIM“ kortelė.\n\nPerjungus į „<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>“ jums teikiamos „<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>“ paslaugos nebus atšauktos."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Vienu metu gali būti aktyvi tik viena SIM kortelė.\n\nPerjungus jums teikiamos „<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>“ paslaugos nebus atšauktos."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Vienu metu galite naudoti dvi SIM korteles. Jei norite naudoti „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“, išjunkite vieną iš SIM kortelių."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Perjungti į „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Išjungti „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, ačiū"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Atšaukti"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Perjungti"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Išjungti"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nepavyko suaktyvinti SIM kortelės"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Pabandykite vėl įjungti SIM kortelę. Jei problema išlieka, iš naujo paleiskite įrenginį."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM kortelės nustatymas"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Nustatykite mobiliojo ryšio tinklo nuostatas, kad galėtumėte naudoti kelias SIM korteles šiame įrenginyje"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM kortelių etikečių pridėjimas"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Šios etiketės bus rodomos skambinant, siunčiant teksto pranešimus ir naudojant duomenis bei „Nustatymų“ skiltyje"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM kortelės etiketė"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiketė"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Naudotinų SIM kortelių pasirinkimas"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Vienu metu galite naudoti dvi SIM korteles"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Pagrindinių SIM kortelių nustatymas"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Pasirinkite, kurias SIM korteles naudoti pagal numatytuosius nustatymus skambučiams, teksto pranešimams ir duomenims"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Pagrindinės SIM kortelės"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Skambučiai"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Teksto pranešimai"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatinis duomenų perjungimas"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Naudoti duomenis iš bet kurios SIM kortelės, atsižvelgiant į aprėptį ir pasiekiamumą"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Tik duomenys"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Nustatyti"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Kitas"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobiliojo ryšio tinklas"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefono numeris"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM etiketė ir spalva"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Tinklo aktyvinimas"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operatoriaus keitimas"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operatorius „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“ aktyvus"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Kad vėliau galėtumėte naudoti mobiliojo ryšio duomenis, skambučių ir SMS funkcijas, eikite į tinklo nustatymus"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM kortelė"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Ištrinti šią „eSIM“ kortelę?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Ištrynus šią SIM kortelę bus pašalintos „<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>“ paslaugos iš šio įrenginio.\n\n„<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>“ paslaugos nebus atšauktos."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ištrinti"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Ištrinama SIM kortelė…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Nepavyko ištrinti SIM kortelės"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Šios SIM kortelės negalima ištrinti dėl klaidos.\n\nPaleiskite įrenginį iš naujo ir bandykite dar kartą."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Prijungimas prie įrenginio"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Programa „<xliff:g id="APPNAME">%1$s</xliff:g>“ nori naudoti laikiną „Wi‑Fi“ tinklą, kad galėtų prisijungti prie jūsų įrenginio"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nerasta jokių įrenginių. Įsitikinkite, kad įrenginiai įjungti ir prie jų galima prisijungti."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Skambučiai pagalbos numeriu"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Jūsų operatorius nepalaiko skambučių pagalbos numeriu naudojant „Wi‑Fi“ skambinimo funkciją.\nSkambinant pagalbos numeriu automatiškai perjungiama į įrenginio mobiliojo ryšio tinklą.\nSkambinti pagalbos numeriu galima, tik kur veikia mobilusis ryšys."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Naudokite „Wi‑Fi“ skambučiams atlikti, kad pagerintumėte kokybę"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Atsarginis skambinimas"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Jei „<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>“ pasl. nepasiek. ar naud. tarptinkl. ryšys, „<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>“ skamb. naudokite mob. ryšio duom. SIM kortelę."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"atsarginis skambinimas"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Gaunamas MMS pranešimas"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nepavyko išsiųsti MMS pranešimo"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Palieskite, kad leistumėte siųsti MMS pranešimus „<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>“ tinkle, kai mobiliojo ryšio duomenys išjungti"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Darbo politikos informacija"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Nustatymus tvarko jūsų IT administratorius"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Grafikos procesorius"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Paleisti su 16 K puslapio dydžiu"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Paleisti įrenginį su 16 K psl. palaik. branduoliu"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Paleisti iš naujo naudojant su 16 KB puslapiais suderinamą branduolį?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"PERSPĖJIMAS: kai kurios programos gali būti nesuderinamos su šiuo režimu. Patvirtinus įrenginys bus paleistas iš naujo."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Paleisti iš naujo naudojant su 4 KB puslapiais suderinamą branduolį?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Patvirtinus įrenginys bus paleistas iš naujo."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Nepavyko atnaujinti į su 16 KB puslapiais suderinamą branduolį"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Pritaikomas pakeitimas"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Pranešimų apie riktus doroklė"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Nustatoma, kuri programa apdoroja pranešimo apie riktą spartųjį klavišą įrenginyje."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Asmeninė"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Kad būtų galima sparčiai atnaujinti atkūrimą, medijos leistuvė lieka atidaryta „Sparčiųjų nustatymų“ skiltyje"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Rodyti mediją užrakinimo ekrane"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Kad būtų galima sparčiai atnaujinti atkūrimą, medijos leistuvė lieka atidaryta užrakinimo ekrane"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Medijos rekomendacijų rodymas"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Rodyti Padėjėjo medijos rekomendacijas"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Pagrįsta jūsų veikla"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Slėpti leistuvę"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Rodyti leistuvę"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM kortelė"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"„eSIM“ kortelė"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"„eSIM“ kortelės"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktyvi"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktyvi"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Numatytoji <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"skambučiams"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Kokybiškesnis suderinamos medijos garsas"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Galvos stebėjimas"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Garso pakeitimai, kad garsas skambėtų natūraliau judinant galvą"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Leidimų sinchronizavimas"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Suteikite „<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>“ tuos pačius programų leidimus, kuriuos suteikėte „<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>“"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Leidimų iš telefono sinchronizavimas"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Suteikite laikrodžiui tuos pačius programų leidimus, kuriuos suteikėte šiame telefone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Garso įrenginio tipas"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nežinoma"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Garsiakalbis"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Vidutinis"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Aukštas"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Šią programą galima atidaryti tik viename lange"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Įjungta"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Išjungta"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Išjungta"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Išjungta"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Įjungta"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Išjungta"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Įjungta"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Išjungta"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Šviesūs ekranai tampa tamsūs, o tamsūs – šviesūs"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Artinti ekrane"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Išjungta"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Išjungta"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Įjungta"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Išjungta"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Įjungta"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Slaptažodis dabar nustatytas"</string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index fdd5bf8..05c0cfe 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Pēc 1 minūtes"</item>
     <item msgid="1574040255478150028">"Pēc 5 minūtēm"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index aa70d52..e1ae1e1 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Tagad jūs esat izstrādātājs!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nav nepieciešams, ja jau esat izstrādātājs."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Lūdzu, vispirms iespējojiet izstrādātāju opcijas."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Tikai lietotāji ar administratora tiesībām var piekļūt izstrādātāja iestatījumiem."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistēma"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Darbojas"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Nedarbojas"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Priekšējais ekrāns tiek ieslēgts, kad ierīce tiek salocīta"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Tikai spēles, video u.c."</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Priekšējais displejs tiek ieslēgts lietotnēm, kas neļauj ekrānam pāriet miega režīmā"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Vilkt augšup, lai turpinātu"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Salokiet tālruni un velciet augšup priekšējā displejā, lai turpinātu izmantot lietotni, vai uzgaidiet dažas sekundes, lai ekrāns tiktu bloķēts."</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nekad"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Priekšējais displejs tiek bloķēts, kad ierīce tiek salocīta"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Automātiska pagriešana"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Saistīti rīki"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Zvana un pulksteņa signāli"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio zvanu laikā"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multivide"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Paziņojumi un sistēmas signāli"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Multivides un sistēmas skaņas"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Paziņojumi"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Pēc noklusējuma audio izvadi nosaka katra konkrētā lietotne"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Nenosaukta Bluetooth ierīce"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Notiek meklēšana"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth savienojums ir ieslēgts"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Skatīt visas"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Skatīt visas"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Skārienekrāna pildspalva"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Skārienekrāna pildspalvas pogas nospiešana"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (darba profils)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Pievienošanās LE audio straumei"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Audio straumes tuvumā"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audio straumes"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Pievienojieties audio straumei, izmantojot kvadrātkodu."</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Tuvumā netika atrastas audio straumes."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Lai atlasītu valodu katrai lietotnei, pārejiet uz lietotnes valodas iestatījumiem."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Plašāka informācija par lietotņu valodām"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vai mainīt sistēmas valodu uz šādu: %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Vai vēlamajām valodām pievienot šo valodu: %s?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Tādējādi lietotnes un vietnes tiek informētas, ka arī tā ir viena no jūsu vēlamajām valodām."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Tiks mainīti jūsu ierīces iestatījumi un reģionālās preferences."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Mainīt"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Šī valoda nav pieejama: %s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sestdiena"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ja kādā lietotnē netiek atbalstītas reģionālās preferences, tiks izmantoti tās noklusējuma lokalizācijas iestatījumi."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Uzziniet vairāk par valodas preferencēm."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Papildu preferences"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Uzruna"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Norādiet, kā jūs uzrunāt"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Lietotnes var izmantot jūsu izvēlēto uzrunu, lai personalizētu saziņu ar jums."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nav norādīts"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Sieviešu dzimte"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Vīriešu dzimte"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neitrāli"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vai noņemt atlasīto valodu?}zero{Vai noņemt atlasītās valodas?}one{Vai noņemt atlasītās valodas?}other{Vai noņemt atlasītās valodas?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teksts tiks rādīts citā valodā."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nevar noņemt visas valodas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Atrašanās vieta"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Izmantot atrašanās vietu"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Izslēgta"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Ieslēgta — # lietotnei ir piekļuve atrašanās vietai.}zero{Ieslēgta — # lietotnēm ir piekļuve atrašanās vietai.}one{Ieslēgta — # lietotnei ir piekļuve atrašanās vietai.}other{Ieslēgta — # lietotnēm ir piekļuve atrašanās vietai.}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ieslēgta/# lietotnei ir piekļuve atrašanās vietai.}zero{Ieslēgta/# lietotnēm ir piekļuve atrašanās vietai.}one{Ieslēgta/# lietotnei ir piekļuve atrašanās vietai.}other{Ieslēgta/# lietotnēm ir piekļuve atrašanās vietai.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Notiek ielāde…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Lietotnes, kurām ir atļauja noteikt tuvumā esošās ierīces, var noteikt pievienoto ierīču relatīvo pozīciju."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Lietotnēm un pakalpojumiem nav atļaujas piekļūt atrašanās vietai. Jūsu ierīces atrašanās vietas datus joprojām var nosūtīt ārkārtas dienestiem, ja zvanīsiet vai sūtīsiet īsziņu uz ārkārtas numuru."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Uzzināt vairāk par atrašanās vietas iestatījumiem."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Uzzināt vairāk par atrašanās vietas iestatījumiem"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Lai mainītu piekļuvi atrašanās vietai, pārejiet uz sadaļu Iestatījumi &gt; Drošība un konfidencialitāte &gt; Konfidencialitātes vadīklas."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Lai iegūtu vislabākos rezultātus, izmantojiet ekrāna aizsargplēvi, kam ir “Made for Google” sertifikāts. Ar citām ekrāna aizsargplēvēm jūsu bērna pirksta nospiedums, iespējams, nedarbosies."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Atbloķēšana ar pulksteni"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Ja iestatīsiet autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, tālrunī tiks pieprasīts pirksta nospiedums, kad valkāsiet masku vai atradīsieties tumšā vietā.\n\nJa seja vai pirksta nospiedums netiek atpazīts, atbloķēšanai varat izmantot pulksteni."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Ja pirksta nospiedums netiek atpazīts, atbloķēšanai varat izmantot pulksteni."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Ja seja netiek atpazīta, atbloķēšanai varat izmantot pulksteni."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Ja iestatīsiet autorizāciju pēc sejas un autorizāciju ar pirksta nospiedumu, tālrunī tiks pieprasīts pirksta nospiedums, kad valkāsiet masku vai atradīsieties tumšā vietā.\n\nAtbloķēšana ar pulksteni ir vēl viens ērts tālruņa atbloķēšanas veids, piemēram, kad pirksti ir mitri vai seja netiek atpazīta."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Atbloķēšana ar pulksteni ir vēl viens ērts tālruņa atbloķēšanas veids, piemēram, kad pirksta nospiedums netiek atpazīts."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Atbloķēšana ar pulksteni ir vēl viens ērts tālruņa atbloķēšanas veids, piemēram, kad seja netiek atpazīta."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Izmantojiet pirksta nospiedumu vai pulksteni, lai"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Izmantojiet seju vai pulksteni, lai"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Izmantojiet seju, pirksta nospiedumu vai pulksteni, lai"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Pievienota seja un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Pievienota seja, pirksta nospiedums un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Pievienota seja, pirkstu nospiedumi un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Atbloķēšana ar Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Pulkstenis pievienots"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Pulksteņa iestatīšana"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Atbloķēšana ar pulksteni ir vēl viens ērts tālruņa atbloķēšanas veids. Piemēram, kad ir pirksti ir mitri vai seja netiek atpazīta.\n\nVarat izmantot pulksteni, lai atbloķētu tālruni tālāk norādītajos veidos."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Vēlāk"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Turpināt"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Vairāk"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Darbības principi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Pulkstenim jābūt atbloķētam, apliktam ap plaukstas locītavu un jāatrodas tālruņa tuvumā. Kamēr pulkstenis būs aplikts ap plaukstas locītavu, to nevajadzēs atbloķēt."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kad tālrunis tiks atbloķēts, pulkstenī saņemsiet paziņojumu. Ja tālrunis tika atbloķēts nejauši, pieskarieties paziņojumam, lai bloķētu tālruni."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jūs visu kontrolējat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Jebkurā laikā iestatījumu sadaļā varat noņemt pulksteni no funkcijas Atbloķēšana ar pulksteni"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Pieskarieties paziņojumam"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Bloķēšanas ekrānā velciet uz augšu"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Pulksteņa izvēle"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Pieejamie pulksteņi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Atcelt"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Apstiprināt"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Gatavs!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Tagad varat izmantot pulksteni, lai atbloķētu šo tālruni, bloķēšanas ekrānā velkot augšup vai pieskaroties paziņojumam"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gatavs"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Atbloķēšana ar pulksteni"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Varat izmantot pulksteni, lai atbloķētu šo tālruni, bloķēšanas ekrānā velkot augšup vai pieskaroties paziņojumam."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Lai varētu izmantot atbloķēšanu ar pulksteni, pulkstenim jābūt atbloķētam, apliktam ap plaukstas locītavu, savienotam ar šo tālruni un jāatrodas tā tuvumā. Ja savienojums ir pārtraukts, tālrunis būs jāatbloķē, lai varētu izmantot funkciju “Atbloķēšana ar pulksteni”.\n\nŅemiet vērā:\nvienlaikus var būt iestatīts tikai viens pulkstenis. Lai pievienotu citu pulksteni, vispirms noņemiet jau iestatīto pulksteni."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Uzzināt vairāk par funkciju “Atbloķēšana ar pulksteni”"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pievienot pulksteni"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Noņemt pulksteni"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Autorizācija ar pirksta nospiedumu un pēc sejas"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Autorizācija pēc sejas un pirksta nospieduma darba profilam"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nepieciešama iestatīšana"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Drošība"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Konfidencialitāte"</string>
     <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="2274405892301976238">"Paslēpiet privātās lietotnes un bloķējiet piekļuvi tām."</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Glabājiet privātās lietotnes atsevišķā telpā, kuru varat paslēpt vai bloķēt."</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Privātās mapes bloķēšana"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Varat atbloķēt privāto mapi tāpat kā ierīci vai izvēlēties citu bloķēšanas metodi."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Izmantot ierīces ekrāna bloķēšanas metodi"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Autorizācija pēc sejas un pirksta nospieduma"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Autorizācija ar pirksta nospiedumu"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Autorizācija pēc sejas"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Pieskarieties, lai iestatītu."</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Autorizācija ar pirksta nospiedumu privātajai telpai"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Autorizācija pēc sejas privātajai telpai"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Atbloķēšanas iespējas"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Tāda pati bloķēšanas metode kā ierīces ekrāna bloķēšanai"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Vai šai mapei izvēlēties jaunu bloķēšanas metodi?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automātiski bloķēt"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Privātās telpas automātiska bloķēšana"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Varat automātiski bloķēt savu privāto telpu, ja noteiktu laika periodu neesat izmantojis savu ierīci."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Katru reizi, kad ierīce tiek bloķēta"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Pēc 5 minūšu neaktivitātes"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nekad"</string>
+    <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_delete_title" msgid="3075645119800272800">"Dzēst privāto mapi"</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="private_space_unlocked" msgid="9091600948712932046">"Atbloķēta privātā telpa"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekrāna bloķēšanas iestatīšana"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Lai izmantotu privāto telpu, 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="private_space_cancel_label" msgid="379259667396956886">"Atcelt"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Iestatīt"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Privātas telpas iestatīšana"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Glabājiet privātās lietotnes atsevišķā telpā, kuru varat paslēpt vai bloķēt."</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Darbības principi"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Varat piekļūt privātajai telpai lietotņu saraksta apakšdaļā."</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Bloķēšana aizsargā privātajā telpā ievietotās lietotnes."</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Kamēr privātā telpa ir bloķēta, paziņojumi no tajā ievietotajām lietotnēm tiek slēpti."</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Kamēr privātā telpa būs bloķēta, tajā ievietotās lietotnes netiks rādītas atļauju pārvaldniekā, konfidencialitātes informācijas panelī un citos iestatījumos.\n\nPrivāto telpu nevar pārvietot uz citu ierīci. Ja vēlēsieties to izmantot citā ierīcē, privātā telpa būs jāiestata vēlreiz.\n\nIkviena persona, kas pievienos jūsu ierīci datoram vai instalēs ierīcē kaitīgas lietotnes, iespējams, varēs piekļūt jūsu privātajai telpai."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Notiek privātās telpas iestatīšana…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Kamēr privātā telpa ir bloķēta, paziņojumi no tajā ievietotajām lietotnēm tiek slēpti."</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Atbloķējiet privāto telpu, lai kopīgotu fotoattēlus vai failus no privātās telpas lietotnēm"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Jūsu privātajā telpā jau ir instalētas dažas lietotnes"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Nevarēja iestatīt privāto telpu"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Mēģināt vēlreiz"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Vai lietot ekrāna bloķēšanu privātās telpas atbloķēšanai?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Varat atbloķēt privāto telpu tāpat kā ierīci vai izvēlēties citu bloķēšanas metodi."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Izmantot ekrāna bloķēšanu"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Izvēlēties jaunu bloķēšanas metodi"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Gatavs!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Lai piekļūtu privātajai telpai, dodieties uz lietotņu sarakstu un ritiniet lejup."</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Gatavs"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Ritiniet lejup, lai atrastu privāto telpu"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Privātās telpas bloķēšanas metodes izvēle"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Varat atbloķēt privāto telpu, izmantojot pirksta nospiedumu. Drošības apsvērumu dēļ šādā gadījumā ir nepieciešama arī rezerves bloķēšanas metode."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Iestatiet PIN privātajai telpai"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Iestatiet paroli privātajai telpai"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Iestatiet kombināciju privātajai telpai"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Privātās mapes rādīšanai (nav galīgā lietotāja pieredze)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Atveriet lietotni Iestatījumi."</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Pieskarieties vienumam Drošība un konfidencialitāte &gt; Privātā mape &gt; Paslēpt privāto mapi, kad tā ir bloķēta."</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Izslēdziet slēdzi “Paslēpt privāto mapi, kad tā ir bloķēta”."</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Piezīme Google darbiniekiem: šī funkcija joprojām tiek izstrādāta."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Iespējams, šī ieejas atslēga būs jāievada arī otrā ierīcē."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Apstipriniet, lai savienotu pārī ar koordinēto kopu."</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Atļaut piekļuvi jūsu kontaktpersonām un zvanu vēsturei"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Atļaujiet arī piekļuvi kontaktpersonām un zvanu vēsturei"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informācija tiks izmantota paziņojumiem par zvaniem un citām funkcijām"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nevarēja izveidot savienojumu ar ierīci <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Pieejamās ierīces"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kad tehnoloģija Bluetooth ir ieslēgta, ierīce var sazināties ar citām tuvumā esošām Bluetooth ierīcēm."</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Lidmašīnas režīmā"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Paziņojumi par publiskiem tīkliem"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Paziņot, kad ir pieejams augstas kvalitātes publiskais tīkls"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Atļaut WEP tīklus"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ir vecāks drošības protokols, kas ir mazāk drošs."</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Jūsu mobilo sakaru operators neatļauj WEP tīklus, jo tie ir mazāk droši."</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Automātiski ieslēgt Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi tiks automātiski atkārtoti ieslēgts netālu no saglabātiem augstas kvalitātes tīkliem, piemēram, netālu no mājas tīkla."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nav pieejama, jo ir izslēgta piekļuve atrašanās vietas datiem. Ieslēgt "<annotation id="link">"piekļuvi atrašanās vietas datiem"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Veicot Wi‑Fi meklēšanu, lietotnes un pakalpojumi var meklēt Wi-Fi tīklus vienmēr, pat ja Wi-Fi savienojums ir izslēgts. Šo iestatījumu var izmantot, piemēram, lai uzlabotu atrašanās vietas funkcijas un pakalpojumus."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Ieslēgt"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi meklēšana ir ieslēgta"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Šis tīkls izmanto vecāku drošības protokolu, kas ir mazāk drošs."</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Tīkls “<xliff:g id="NAME">%1$s</xliff:g>” ir bloķēts"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Šis tīkls izmanto vecāku drošības protokolu (WEP), kas ir mazāk drošs. Lai tomēr izveidotu savienojumu, varat atļaut WEP tīklus."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Jūsu mobilo sakaru operators neatļauj jums izveidot savienojumu ar šo tīklu, jo šis tīkls izmanto vecāku drošības protokolu, kas ir mazāk drošs."</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Atļaut WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Aizvērt"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Papildu opcijas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Nolaižamais saraksts “Papildu opcijas”"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"izvērst"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Turpināt izmantot Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Vairs nerādīt"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Izveidot savienojumu"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ir ieslēgts"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Izveidots savienojums ar tīklu “<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Notiek savienojuma izveide ar tīklu <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Veido savienojumu…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Neizdevās izveidot savienojumu ar tīklu."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Neesat tīkla sasniedzamības zonā"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Neiegaumēt"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Mainīt"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Neizdevās aizmirst tīklu."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Saglabāt"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Neizdevās saglabāt tīklu."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Atcelt"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobilie dati"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> — notiek uzlāde"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> — notiek uzlāde"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Savienojums ar tīklāju"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Savienojuma stiprums"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saglabātie tīkli"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nav iestatīta parole"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Tīklāja nosaukums"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Tīklāja parole"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Piekļuves punkta josla"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Automātiski izslēgt tīklāju"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kad nav pievienota neviena ierīce"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Paplašināt saderību"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Displeja baltās krāsas balanss"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Atspējot noklusējuma kadrus/s"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Atspējot <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz ierobežojumu spēļu maksimālajam kadru skaitam sekundē."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Atpazīšanai ekrānā tiek izmantota priekšējā kamera, lai noteiktu, vai kāds skatās uz ekrānu. Šī funkcija darbojas ierīcē, un attēli netiek ne saglabāti, ne nosūtīti uzņēmumam Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Atpazīšanas ekrānā ieslēgšana"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekrāns netiek izslēgts, ja uz to skatāties."</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Ilgākai ekrāna noildzei tiks patērēts vairāk akumulatora enerģijas."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera ir bloķēta"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Lai varētu izmanto sejas noteikšanu, kamerai jābūt atbloķētai"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Lai varētu izmantot atpazīšanu ekrānā, kamerai jābūt atbloķētai"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (<xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>. SIM kartes slots)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (<xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>. SIM kartes slots) (galvenais)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Skatīšanai izvēlieties saglabātu tīklu."</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL versija"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Akumulatora uzlādes līmenis"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Kopīgie"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Kopīgie iestatījumi"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Saglabāt"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Atcelt"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Lauks Nosaukums nedrīkst būt tukšs."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN nedrīkst būt tukšs."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC laukā jābūt 3 cipariem."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC laukā jābūt diviem vai trim cipariem."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Mobilo sakaru operators neatļauj pievienot šāda veida APN: %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC laukam jābūt derīgam."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Notiek APN noklusējuma iestatījumu atjaunošana."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Atiestatīt noklusējuma vērtības"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Noklusējuma APN iestatījumu atiestatīšana ir pabeigta."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Atiestatīt"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth un Wi‑Fi iestatījumi ir atiestatīti"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Dzēst eSIM kartes"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Ar šo darbību netiks anulēti mobilo sakaru pakalpojumu plāni. Lai lejupielādētu nomaiņas SIM kartes, sazinieties ar mobilo sakaru operatoru."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Atiestatīt iestatījumus"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Vai vēlaties atiestatīt visus tīkla iestatījumus? Šo darbību nevar atsaukt."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vai atiestatīt visus tīkla iestatījumus un dzēst eSIM kartes? Šo darbību nevar atsaukt."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Vai atiestatīt?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Šim lietotājam nav pieejama tīkla atiestatīšana."</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Tīklu iestatījumi ir atiestatīti."</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Nevar izdzēst SIM kartes"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Nevar izdzēst eSIM kartes, jo radās kļūda.\n\nRestartējiet ierīci un mēģiniet vēlreiz."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Dzēst visus datus (atiestatīt rūpnīcas datus)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Atiestatīt rūpnīcas datus"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"mūzika"</li>\n<li>"fotoattēli"</li>\n<li>"citi lietotāja dati"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM kartes"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Veicot šo darbību, netiks atcelts jūsu mobilo pakalpojumu plāns."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Tiks izdzēsta visa jūsu personas informācija un lejupielādētās lietotnes. Šo darbību nevar atsaukt."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Tiks izdzēsta visa jūsu personas informācija, tostarp lejupielādētās lietotnes un SIM kartes. Šo darbību nevar atsaukt."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vai dzēst visus datus?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Šim lietotājam nav pieejama rūpnīcas datu atiestatīšana."</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Notiek dzēšana"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Tīklājs, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internets netiek koplietots ar citām ierīcēm"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Izslēgts"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Piesaiste"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Neizmantot Wi‑Fi tīklāju"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Kopīgot interneta savienojumu, tikai izmantojot USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Kopīgot interneta savienojumu, tikai izmantojot Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Kopīgot interneta savienojumu, tikai izmantojot Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Kopīgot interneta savienojumu, tikai izmantojot USB un Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Kopīgot interneta savienojumu, tikai izmantojot USB un Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Kopīgot interneta savienojumu, tikai izmantojot Bluetooth un Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Kopīgot interneta savienojumu, tikai izmantojot USB, Bluetooth un Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB piesaiste"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth piesaiste"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet piesaiste"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Izmantojot tīklāju un piesaisti, jūsu ierīces Wi-Fi vai mobilo datu savienojums var nodrošināt interneta savienojumu citām ierīcēm. Lietotnes var arī izveidot tīklāju satura kopīgošanai ar tuvumā esošajām ierīcēm."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Palīdzība"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilais tīkls"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilo sakaru pakalpojumu plāns"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Īsziņu lietotne"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vai mainīt īsziņu lietotni?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vai īsziņām izmantot lietotni <xliff:g id="NEW_APP">%1$s</xliff:g>, nevis <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vai mainīt Wi-Fi palīgu?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Vai tīkla savienojumu pārvaldībai izmantot lietotni <xliff:g id="NEW_APP">%1$s</xliff:g>, nevis <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Vai tīkla savienojumu pārvaldībai izmantot lietotni <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nezināms SIM operators"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Operatoram <xliff:g id="OPERATOR">%1$s</xliff:g> nav zināmas nodrošināšanas vietnes."</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lūdzu, ievietojiet SIM karti un restartējiet."</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lūdzu, izveidojiet savienojumu ar internetu."</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Neseni vietu pieprasījumi"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Darba profila atrašanās vieta"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Lietotņu atraš. vietu atļaujas"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Atcelt piekļuvi"</string>
     <string name="controls_label" msgid="8671492254263626383">"Vadīklas"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forsēt apturēšanu"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhivēt"</string>
+    <string name="restore" msgid="7622486640713967157">"Atjaunot"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Kopā"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Lietotnes lielums"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB atmiņas lietotne"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nevar aprēķināt pakotnes izmēru."</string>
     <string name="version_text" msgid="7628938665256107608">"versija <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Pārvietot"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhivēšana neizdevās"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Lietotne <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> tika arhivēta"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Atjaunošana neizdevās"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Notiek lietotnes <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> atjaunošana"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Jau norisinās cita migrēšanas darbība."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Atmiņā nepietiek vietas."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Lietotne nepastāv."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Pieejamā ekrāna tastatūra"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Pārvaldīt ekrāna tastatūru"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcijas"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pieejamība"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziskā tastatūra"</string>
     <string name="show_ime" msgid="4334255501724746849">"Izmantot ekrāna tastatūru"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Paturēt ekrānā, kamēr ir aktīva fiziskā tastatūra"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Atlēcienu taustiņi"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Iespējojiet atlēcienu taustiņus fiziskās tastatūras pieejamībai."</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Taustiņu ķēde"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Iespējojiet taustiņu ķēdi fiziskās tastatūras pieejamībai."</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Īsinājumtaustiņi"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Rādīt īsinājumtaustiņu sarakstu"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatūras un rīki darba profilā"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Kārtot pēc lietojuma laika"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Kārtot pēc pēdējās lietošanas"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Kārtot pēc lietotnes nosaukuma"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Pēdējo reizi izmantots"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Pēdējoreiz lietota"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nekad"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Lietojuma laiks"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Pieejamība"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Pieejamības iestatījumi"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Tomēr turpināt"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Atcelt"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Palielināšanas iestatījumi"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Palielināt, trīsreiz pieskaroties"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Palielināšana ar saīsni"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Palieliniet, lietojot saīsni un trīskāršu skārienu"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Par pakalpojumu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Dubultskāriens ekrānam ar diviem pirkstiem, lai atvērtu"</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="860548190334486449">"Lai sāktu un apturētu palielināšanu, ar diviem pirkstiem divreiz 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Lai izmantotu pieejamības 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_button" msgid="2031773187678948436">"Labi"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Pieejamības pogas iestatījumi"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Pogas iestatījumi"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Pakalpojuma <xliff:g id="SERVICE">%1$s</xliff:g> saīsne"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Pieejamības poga"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Pieejamības žests"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dubultskāriens ekrānam ar diviem pirkstiem"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dubultskāriens ekrānam ar diviem pirkstiem"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ar diviem pirkstiem {0,number,integer} reizes ātri pieskarieties ekrānam."</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Pieskaršanās ekrānam 3 reizes"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Uzzināt vairāk par pieejamības pogu un žestu"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Tiek izmantota pieejamības poga. Žests nav pieejams, izmantojot 3 pogu navigāciju."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Ātri piekļūt pieejamības funkcijām"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Lai sāktu darbu, veiciet tālāk norādītās darbības."</b>\n"1. Pārejiet uz pieejamības iestatījumiem.\n2. Atlasiet funkciju un pieskarieties saīsnei.\n3. Izvēlieties, vai izmantot pogu vai žestu, lai piekļūtu funkcijai."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Lai sāktu darbu, veiciet tālāk norādītās darbības."</b>\n"1. Pārejiet uz pieejamības iestatījumiem.\n2. Atlasiet funkciju un pieskarieties saīsnei.\n3. Izvēlieties pogu, lai piekļūtu funkcijai."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Darba sākšana&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Atveriet pieejamības iestatījumus.&lt;br/&gt; {1,number,integer}. Atlasiet funkciju un pieskarieties saīsnei.&lt;br/&gt; {2,number,integer}. Izvēlieties, vai izmantot pogu vai žestu, lai piekļūtu funkcijai.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Darba sākšana&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Atveriet pieejamības iestatījumus.&lt;br/&gt; {1,number,integer}. Atlasiet funkciju un pieskarieties saīsnei.&lt;br/&gt; {2,number,integer}. Izvēlieties pogu, ko izmantot, lai piekļūtu funkcijai.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Izmantot pogu vai žestu"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Atrašanās vieta"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Lielums"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Barošanas poga beidz zvanu"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Liela rādītāja ikona"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Padariet peles rādītāju pamanāmāku"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Lietot tumšo motīvu visās lietotnēs"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Attiecas uz lietotnēm bez sava tumšā motīva. Var būt attēlojuma problēmas, piem., invertētas krāsas."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Noņemt animācijas"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Samazināt kustību ekrānā"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Tā var izsekot jūsu mijiedarbību ar lietotni vai aparatūras sensoru un mijiedarboties ar lietotnēm jūsu vārdā."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Atļaut"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neatļaut"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Apturēt"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Atcelt"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Vai apturēt <xliff:g id="SERVICE">%1$s</xliff:g> darbību?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Pieskaroties vienumam <xliff:g id="STOP">%1$s</xliff:g>, tiks apturēts pakalpojums <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izslēgt"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Turpināt"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vai izslēgt pakalpojumu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nav instalēts neviens pakalpojums."</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nav atlasīts neviens pakalpojums"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Apraksts nav sniegts."</string>
     <string name="settings_button" msgid="2195468788019730377">"Iestatījumi"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"jutīgums pret gaismu, fotofobija, tumšais motīvs, migrēna, galvassāpes, lasīšanas režīms, nakts režīms, samazināt spilgtumu, baltais punkts"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ērta lietošana, ērta piekļuve, atbalsts, papildu darbības"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"redze, dzirde, akls, nedzirdīgs, motorika, roku koordinācija, papildu darbības, atbalsts, ērta lietošana, ērta piekļuve, roka, palīdzība"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Loga palielināšana, tālummaiņa, palielinājums, vājredzība, palielināt, padarīt lielāku"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Titri, slēptie subtitri, subtitri, tieša transkripcija, vājdzirdība, nedzirdība, stenogrāfija reāllaikā, runas pārvēršana tekstā, runas teksts"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"krāsu kontrasts"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, pele"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"dzirdes aparāti, vājdzirdība, nedzirdība, kohleārie implanti, skaņas pastiprināšanas ierīces, skaņu apstrādātāji"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, pele, ārējā pele, galvas pele, adaptīvā pele, ratiņkrēsls, kursorsvira"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"dzirdes aparāti, vājdzirdība, nedzirdība, kohleārie implanti, skaņas pastiprināšanas ierīces, skaņu apstrādātāji, personīgie skaņas pastiprināšanas produkti"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"vājdzirdība, nedzirdība, subtitri, teletaips, teksta tālrunis"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"trīs pogas"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"roku koordinācija, motorika, seniors, artrīts, insults, roku trīce, multiplā skleroze, cerebrālā trieka, trīce, atkārtotas slodzes traumas, roka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"aizkave, roku koordinācija, seniors"</string>
     <string name="print_settings" msgid="8519810615863882491">"Drukāšana"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Izslēgts"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Ieslēgts 1 drukāšanas pakalpojums}zero{Ieslēgti # drukāšanas pakalpojumi}one{Ieslēgts # drukāšanas pakalpojums}other{Ieslēgti # drukāšanas pakalpojumi}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Skatiet lietotnes, kas patērē visvairāk akumulatora enerģijas"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Uzlāde optimizēta, lai saudzētu jūsu akumulatoru"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Lai paildzinātu jūsu akumulatora darbmūžu, uzlāde tiek optimizēta."</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Uzlāde optimizēta, lai saudzētu jūsu akumulatoru"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Lai paildzinātu jūsu akumulatora darbmūžu, dokošanas laikā uzlāde tiek optimizēta."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Uzlāde optimizēta, lai saudzētu jūsu akumulatoru"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Lai paildzinātu jūsu akumulatora darbmūžu, dokošanas laikā uzlāde tiek optimizēta."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Pilnīga uzlāde"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Lai saudzētu jūsu akumulatoru, uzlāde tiks optimizēta, kad jūsu planšetdators nākamreiz būs dokots."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Uzziniet vairāk par paziņojumu “Uzlāde ir apturēta”"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Atsākt uzlādi"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Iekļautas lieljaudas fona darbības"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Noņemt"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Atcelt"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Pilnībā uzlādēt"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problēma ar uzlādes ierīci"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Uzzināt vairāk par uzlādi ar nesaderīgu lādētāju"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Akumulatora pārvaldnieks"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Automātiska akumulatora enerģijas patēriņa pārvaldība"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"tagad"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> plkst. <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g>: <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Akumulatora lietojuma diagramma"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagramma ar datiem par akumulatora lietojumu dienā"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagramma ar datiem par akumulatora lietojumu stundā"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Akumulatora uzlādes līmenis procentos (<xliff:g id="START_PERCENTAGE">%1$s</xliff:g>—<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>)"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Akumulatora lietojums kopš pēdējās pilnās uzlādes"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Akumulatora lietojums: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Izmantošanas ilgums kopš pēdējās pilnās uzlādes"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Ārkārtas zvana signāls"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Iestatīt uzvedību, kad tiek veikts ārkārtas zvans"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Dublēšana"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Ieslēgts"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Izslēgts"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Dublēšana un atjaunošana"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personīgie dati"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Dublēt manus datus"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nosaukums"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Veids"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Servera adrese"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP šifrējums (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Slepenais L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Protokola IPsec identifikators"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Protokola IPsec iepriekš kopīgotā atsl."</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Protokola IPsec lietotāja sertifikāts"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Protokola IPsec CA sertifikāts"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec servera sertifikāts"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Rādīt papildopcijas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Sistēmas DNS meklēšanas domēni"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS serveri (piem., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Pārsūtīšanas ceļi (piem., 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Lietotājvārds"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Parole"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Saglabāt konta informāciju"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(netiek lietots)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(neverificēt serveri)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(saņemts no servera)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Šī veida VPN savienojums nevar būt nepārtraukts."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Vienmēr ieslēgts VPN atbalsta servera adreses, kurās ir tikai cipari."</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Lai būtu vienmēr ieslēgts VPN, ir jābūt norādītam DNS serverim."</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Lai būtu vienmēr ieslēgts VPN, DNS servera adresē ir jābūt tikai cipariem."</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Ievadītā informācija neatbalsta vienmēr ieslēgtu VPN."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Atcelt"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Nerādīt"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloķēt savienojumus bez VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vai nepieciešams VPN savienojums?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nav drošs. Atjauniniet uz IKEv2 VPN."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Neizdevās palaist neatbalstītu VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Izvēlieties VPN profilu, ar kuru izveidot pastāvīgu savienojumu. Tīkla datplūsma tiks atļauta, tikai esot izveidotam savienojumam ar šo VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nav"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Vienmēr ieslēgtam VPN ir nepieciešama servera un DNS IP adrese."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER brīdinājumi"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Saņemt biļetenus par bērnu nolaupīšanas gadījumiem"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Atkārtošana"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Zvanu pārvaldnieka iespējošana"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Atļaut šim pakalpojumam pārvaldīt, kā tiek veikti zvani."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Zvanu pārvaldnieks"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Bezvadu ārkārtas brīdinājumi"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Tīkla operatori"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Piekļuves punktu nosaukumi"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"maks"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"maksāt, pieskarties, maksājumi"</string>
     <string name="keywords_backup" msgid="707735920706667685">"dublēšana, dublēt"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"žests"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"sejas, autorizācija, atbloķēšana, pierakstīšanās"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"seja, autorizācija, autentifikācija, pierakstīšanās, pirksta nospiedums, biometrija"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl versija, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ieslēgšanas skaņas"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtitri reāllaikā"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automātiskie paraksti multividei"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Tālruņa skaļruņi"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Planšetdatora skaļruņi"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Ierīces skaļruņi"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Vadu austiņas"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio no saderīga multivides satura kļūst iekļaujošāks"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Izslēgts"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ko rādīt bloķēšanas ekrānā?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Jaunākās sarunas ir noņemtas"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Saruna noņemta"</string>
     <string name="clear" msgid="5092178335409471100">"Notīrīt"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Notīrīt sarunu <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Šeit būs redzamas prioritārās un mainītās sarunas"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Tiklīdz atzīmēsiet kādu sarunu kā prioritāru vai veiksiet citas izmaiņas sarunās, tās tiks rādītas šeit. \n\nSarunas iestatījumu mainīšana: \nvelciet lejup no ekrāna augšdaļas, lai atvērtu nolaižamo paneli, pēc tam pieskarieties konkrētai sarunai un turiet to."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizēt"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Izslēgta"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Lietotņu piespraušana"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Izmantojot lietotņu piespraušanas funkciju, varat iestatīt, lai pašreizējā lietotne tiktu rādīta, līdz to atspraudīsiet. Šo funkciju var izmantot, piemēram, lai ļautu uzticamam draugam spēlēt noteiktu spēli."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kamēr lietotne ir piesprausta, tā var atvērt citas lietotnes, turklāt var būt iespējams piekļūt personas datiem. \n\nLai izmantotu lietotņu piespraušanu, veiciet tālāk norādītās darbības. 	\n1. Ieslēdziet lietotņu piespraušanu. 	\n2. Atveriet sadaļu Pārskats. 	\n3. Ekrāna augšdaļā pieskarieties konkrētas lietotnes ikonai un pēc tam — vienumam Piespraust."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kamēr lietotne ir piesprausta, tā var atvērt citas lietotnes, turklāt var būt iespējams piekļūt personas datiem. \n\nJa vēlaties droši kopīgot savu ierīci ar citu personu, lietotņu piespraušanas vietā varat izmantot vieslietotāja profilu. \n\nLai izmantotu lietotņu piespraušanu, veiciet tālāk norādītās darbības. 	\n1. Ieslēdziet lietotņu piespraušanu. 	\n2. Atveriet sadaļu Pārskats. 	\n3. Ekrāna augšdaļā pieskarieties konkrētas lietotnes ikonai un pēc tam — vienumam Piespraust."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kamēr lietotne ir piesprausta, tā var atvērt citas lietotnes, turklāt var būt iespējams piekļūt personas datiem. \n\nLai izmantotu lietotņu piespraušanu, veiciet tālāk minētās darbības. 	\n{0,number,integer}. Ieslēdziet lietotņu piespraušanu. 	\n{1,number,integer}. Atveriet pārskatu. 	\n{2,number,integer}. Ekrāna augšdaļā pieskarieties konkrētas lietotnes ikonai un pēc tam — vienumam Piespraust."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kamēr lietotne ir piesprausta, tā var atvērt citas lietotnes, turklāt var būt iespējams piekļūt personas datiem. \n\nJa vēlaties droši kopīgot savu ierīci ar citu personu, lietotņu piespraušanas vietā varat izmantot viesa profilu. \n\nLai izmantotu lietotņu piespraušanu, veiciet tālāk minētās darbības. 	\n{0,number,integer}. Ieslēdziet lietotņu piespraušanu. 	\n{1,number,integer}. Atveriet pārskatu. 	\n{2,number,integer}. Ekrāna augšdaļā pieskarieties konkrētas lietotnes ikonai un pēc tam — vienumam Piespraust."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kamēr lietotne ir piesprausta, pastāv šādi riski. \n\n•	 Var būt iespējams piekļūt personas datiem \n		(piemēram, kontaktpersonu sarakstam un e-pasta ziņojumu saturam). \n•	 Piespraustā lietotne var atvērt citas lietotnes. \n\nIzmantojiet lietotņu piespraušanu tikai kopā ar uzticamām personām."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pirms atspraušanas pieprasīt atbloķēšanas kombināciju"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Prasīt PIN kodu pirms atspraušanas"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Neizmantotās lietotnes iestatījumi"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Apturēt lietotni, ja tā netiek izmantota"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Atsaukt atļaujas, dzēst pagaidu failus un izslēgt paziņojumus"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Pārvaldīt lietotni, ja tā netiek lietota"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Noņemt atļaujas, dzēst pagaidu failus, apturēt paziņojumus un arhivēt lietotni"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Visas lietotnes"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Instalētās lietotnes"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Tūlītējās lietotnes"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Brīvs"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Lietotņu izmantotais atmiņas apjoms"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 lietotne izmantoja atmiņu šādā laika periodā: pēdējā(-ais) {time}}zero{# lietotnes izmantoja atmiņu šādā laika periodā: pēdējā(-ais) {time}}one{# lietotne izmantoja atmiņu šādā laika periodā: pēdējā(-ais) {time}}other{# lietotnes izmantoja atmiņu šādā laika periodā: pēdējā(-ais) {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Iespējot atmiņas lietojuma profilēšanu"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Atmiņas lietojuma profilēšanai nepieciešami papildu sistēmas resursi."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Atmiņas lietojuma profilēšana ir atspējota."</string>
     <string name="running_frequency" msgid="7260225121706316639">"Biežums"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimālais lietojums"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Dati nav izmantoti"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Rādīt pāri citām lietotnēm"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Atļaut rādīt pāri citām lietotnēm"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Atļaut rādīt šo lietotni pāri citām jūsu izmantotajām lietotnēm. Šī lietotne varēs redzēt, kur pieskaraties, vai mainīt ekrānā redzamo saturu."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Mainīt multivides izvadi"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Atļaut lietotnei pārslēgt multivides ievadi"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Atļaujiet šai lietotnei izvēlēties, kura pievienotā ierīce atskaņo audio vai video no citām lietotnēm. Ja atļausiet, šī lietotne varēs piekļūt sarakstam ar pieejamajām ierīcēm, piemēram, austiņām un skaļruņiem, un izvēlēties, kura izvades ierīce tiks izmantota audio vai video straumēšanai vai apraidīšanai."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Piekļuve visiem failiem"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Uzlabot aktivizāciju ar balsi"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Lai uzlabotu modeli aktivizēšanai ar balsi, šī ierīce izmanto privātu informāciju. Lietotnes var saņemt vispārinātus atjauninājumus, kas ietver no daudziem lietotājiem apkopotus datus, vienlaikus nodrošinot konfidencialitāti un uzlabojot modeli visiem lietotājiem.\n\n"<a href="">"Plašāka informācija par privāto informāciju"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Datu brīdinājums: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Datu ierobežojums: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datu brīdinājums: <xliff:g id="ID_1">^1</xliff:g>, datu ierobežojums: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Mobilo sakaru operatora datu uzskaite var atšķirties no datu uzskaites ierīcē"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Neietver datu lietojumu mobilo sakaru operatoru tīklos."</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> izmantoti"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Ieslēgt brīdinājumu par datiem"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Atjaunināts pirms <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Tikko atjaunināja <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Tikko atjaunināts"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Skatīt plānu"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Skatīt detalizētu informāciju"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Datu lietojuma samazinātājs"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neierobežoti dati"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Akumulatora lietojuma novirzes"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Izstrādātāja ātro iestatījumu elementi"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Atspējot adb autorizāciju noildzi"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Atspējojiet adb autorizācijas automātisko atsaukšanu sistēmām, kas nav atkārtoti pievienotas noklusējuma laikā (7 dienas) vai lietotāja konfigurētā laikā (minimālais laiks: 1 diena)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope izsekošana"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensori izslēgti"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Darba profila iestatījumi"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Personīgajās lietotnēs meklēt kontaktpersonas, kas saglabātas darba katalogā"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Lai izsauktu digitālā asistenta lietotni, velciet augšup no viena no apakšējiem stūriem."</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Automātiskā aizpilde"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Noklusējuma automātiskās aizpildes pakalpojums"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Paroles"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Paroles, piekļuves atslēgas un datu pakalpojumi"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Papildu pakalpojumu sniedzēji"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parole}zero{# paroļu}one{# parole}other{# paroles}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automātiskā aizpilde, automātiski aizpildīt, parole"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Paroles, piekļuves atslēgas un datu pakalpojumi"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Izslēdziet visus pakalpojumus?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Paroles, piekļuves atslēgas un cita saglabātā informācija nebūs pieejama automātiskai aizpildei, kad pierakstīsieties"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Mainiet vēlamo pakalpojumu uz &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Jaunas paroles, piekļuves atslēgas un cita informācija turpmāk 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_enable_confirmation_message_title" msgid="1037501792652277829">"Vai izmantot %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Vienlaikus var būt ieslēgti pieci pakalpojumi"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Izslēdziet vismaz vienu pakalpojumu, lai varētu pievienot citu pakalpojumu"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s izmanto ekrānā pieejamos datus, lai noteiktu, kādu informāciju var aizpildīt automātiski."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Paroļu, piekļuves atslēgu un datu pakalpojumu ierobežojums"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Vienlaikus jums var būt aktīvas ne vairāk kā 5 paroles, piekļuves atslēgas un datu pakalpojumi. Lai pievienotu vēl kādu pakalpojumu, izslēdziet kādu no pašreizējiem."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Paroļu, piekļuves atslēgu un datu pakalpojumu ierobežojums"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Vienlaikus jums var būt aktīvas ne vairāk kā 5 paroles, piekļuves atslēgas un datu pakalpojumi. Lai pievienotu vēl kādu pakalpojumu, izslēdziet kādu no pašreizējiem."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Izslēgt"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automātiskā aizpilde"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Pieteikšanās līmenis"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Lietotņu saderības izmaiņas var pārveidot tikai atkļūdojamām lietotnēm. Instalējiet atkļūdojamu lietotni un mēģiniet vēlreiz."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Atkarīgs no cita iestatījuma"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konts"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d konti"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Ierīces nosaukums"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Pamatinformācija"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Juridiskā un regulējošā informācija"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Atļaujiet palaist šo lietotni ikreiz, kad tiek skenēta NFC atzīme.\nJa piešķirsiet šo atļauju, lietotne būs pieejama kā iespēja katru reizi, kad tiks noteikta atzīme."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Atskaņot multivides saturu šeit:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Atskaņot <xliff:g id="LABEL">%s</xliff:g> šeit:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio tiks atskaņots šeit:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Šī ierīce"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Ierīce nav pieejama zvanu laikā"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atbildēt uz zvanu, izmantojot:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Izslēgt skaņu"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Lai iespējotu, vispirms nomainiet iestatījumu “Nospiest un turēt barošanas pogu” uz barošanas izvēlni."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Dati par tīklu"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Jūsu ierīces nosaukums ir redzams tālrunī 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="devices_title" msgid="649715719278562515">"Ierīces"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Izvēlēties tīklu"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Nav savienojuma"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Vārds"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Krāsa (izmanto saderīgas lietotnes)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Saglabāt"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Izmantot SIM karti"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Izmantot šo SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Izslēgta"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Lai atspējotu šo SIM, izņemiet SIM karti."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Pieskarieties, lai aktivizētu <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Dzēst SIM karti"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Ieteicamais tīkla veids"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Mainiet tīkla darbības režīmu"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Ieteicamais tīkla veids"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Sazinieties ar savu tīkla pakalpojumu sniedzēju, lai uzzinātu par tarifiem."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Lietotnes datu lietojums"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Nederīgs tīkla režīms: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorēt."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Piekļuves punktu nosaukumi"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nav pieejams, ja izveidots savienojums ar operatoru <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vai pārslēgt uz operatoru <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vai pārslēgties uz SIM kartes izmantošanu?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Vai lietot operatoru <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Vienlaikus aktīva var būt tikai viena SIM karte.\n\nPārslēdzoties uz operatoru <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, netiks atcelti <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> pakalpojumi."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Vienlaikus var būt aktīva tikai viena eSIM karte.\n\nPārejot pie mobilo sakaru operatora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, netiks atcelti <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> pakalpojumi."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Vienlaikus var būt aktīva tikai viena SIM karte.\n\nPārslēdzoties netiks atcelti <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> pakalpojumi."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Jūs nevarat lietot divas SIM kartes vienlaikus. Lai lietotu operatoru <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, izslēdziet otru SIM karti."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Pārslēgties uz operatoru <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Izslēgt operatoru <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nē, paldies"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Atcelt"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Pārslēgt"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Izslēgt"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nevar aktivizēt SIM karti"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Mēģiniet atkal ieslēgt SIM karti. Ja problēma nav novērsta, restartējiet savu ierīci."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM iestatīšana"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Iestatiet mobilā tīkla preferences, lai izmantotu vairākas SIM kartes šajā ierīcē."</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM iezīmju pievienošana"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Šīs iezīmes būs redzamas, veicot zvanus, sūtot īsziņas un izmantojot datus, kā arī iestatījumos."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM iezīme"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Iezīme"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Izmantojamo SIM karšu atlase"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Jūs nevarat izmantot divas SIM kartes vienlaikus."</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Galveno SIM karšu iestatīšana"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Izvēlieties, kuras SIM kartes pēc noklusējuma izmantot zvaniem, īsziņām un datiem."</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Jūsu galvenās SIM kartes"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Zvani"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Īsziņas"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automātiska datu pārslēgšana"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Izmantojiet jebkuras SIM kartes nodrošinātos datus — atkarībā no pārklājuma un pieejamības."</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Tikai dati"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Iestatīt"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Tālāk"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilais tīkls"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Tālruņa numurs"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM iezīme un krāsa"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Tīkla aktivizācija"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Mobilo sakaru operatora pārslēgšana"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ir aktīvs"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Lai vēlāk izmantotu mobilos datus, zvanīšanas funkcijas un īsziņas, pārejiet uz tīkla iestatījumiem."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM karte"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vai dzēst šo eSIM karti?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Izdzēšot šo SIM karti, operatora “<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>” pakalpojumi tiek noņemti no šīs ierīces.\n\nOperatora “<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>” pakalpojumi netiks atcelti."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Dzēst"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Notiek SIM kartes dzēšana…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Nevar izdzēst SIM karti"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Šo SIM karti nevar izdzēst, jo radās kļūda.\n\nRestartējiet ierīci un mēģiniet vēlreiz."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Savienojuma izveide ar ierīci"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Lietotne <xliff:g id="APPNAME">%1$s</xliff:g> vēlas izmantot pagaidu Wi‑Fi tīklu, lai izveidotu savienojumu ar jūsu ierīci."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nav atrasta neviena ierīce. Ierīcēm ir jābūt ieslēgtām un pieejamām savienojuma izveidei."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Ārkārtas zvani"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Jūsu mobilo sakaru operators neatbalsta ārkārtas zvanus kā Wi‑Fi zvanus.\nIerīcē tiek automātiski pārslēgts mobilais tīkls, lai veiktu ārkārtas zvanu.\nĀrkārtas zvanus iespējams veikt tikai apgabalos ar mobilā tīkla pārklājumu."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Zvaniem izmantot Wi‑Fi, lai uzlabotu kvalitāti"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Zvanu rezerves iespēja"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ja <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nav pieejams vai ir ieslēgta viesabonēšana, izmantojiet SIM kartes mobilos datus <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> zvaniem."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"zvanu rezerves iespēja"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Ienākoša multiziņa"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nevar nosūtīt multiziņu"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Pieskarieties, lai atļautu multiziņu sūtīšanu, izmantojot operatoru <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>, kad mobilie dati ir izslēgti."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Jūsu darba politikas informācija"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Iestatījumus pārvalda jūsu IT administrators"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Grafiskais procesors"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Palaist ar 16 KB lielām lapām"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Palaist, izmantojot kodolu, kas atbalsta 16 KB lapas"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Vai atkārtoti palaist, izmantojot kodolu, kas saderīgs ar 16 KB lapām?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"BRĪDINĀJUMS! Dažas lietojumprogrammas var nebūt saderīgas ar šo režīmu. Pēc apstiprināšanas ierīce tiks atkārtoti palaista."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Vai atkārtoti palaist, izmantojot kodolu, kas saderīgs ar 4 KB lapām?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Pēc apstiprināšanas ierīce tiks atkārtoti palaista."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Neizdevās atjaunināt kodolu uz tādu kodolu, kas saderīgs ar 16 KB lapām."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Izmaiņu piemērošana"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Kļūdu pārskatu apstrādātājs"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Šeit varat noteikt, kurai lietotnei jūsu ierīcē jāapstrādā kļūdu pārskatu saīsne."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personiskais profils"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Multivides atskaņotājs paliek atvērts sadaļā Ātrie iestatījumi, lai varētu ātri atsākt atskaņošanu"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Rādīt multividi bloķēšanas ekrānā"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Multivides atskaņotājs paliek atvērts bloķēšanas ekrānā, lai varētu ātri atsākt atskaņošanu"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Rādīt multivides satura ieteikumus"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Rādīt Asistenta multivides satura ieteikumus"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Ieteikumu pamatā ir jūsu darbības"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Paslēpt atskaņotāju"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Rādīt atskaņotāju"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM karte"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM karte"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM kartes"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktīva"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktīva"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Noklusējuma iestatījums kategorijai “<xliff:g id="ID_1">%1$s</xliff:g>”"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"zvani"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"īsziņas"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio no saderīga multivides satura kļūst iekļaujošāks"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Galvas izsekošana"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Kustinot galvu, audio mainīsies, lai izklausītos dabiskāk"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Atļauju sinhronizēšana"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Ierīcē <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> piešķiriet tās pašas lietotņu atļaujas, ko esat piešķīris ierīcē <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinhronizējiet tālrunī piešķirtās atļaujas"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Piešķiriet pulkstenim tās pašas lietotņu atļaujas, kuras esat piešķīris šajā tālrunī"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio ierīces veids"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nezināma ierīce"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Skaļrunis"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Vidējs"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Augsts"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Šo lietotni var atvērt tikai vienā logā"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ieslēgta"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Izslēgta"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Izslēgts"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Izslēgta"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Ieslēgts"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Izslēgts"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Ieslēgta"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Izslēgta"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Tā padara gaišus ekrānus tumšus, bet tumšus ekrānus — gaišus."</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Tuvināt ekrānā"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Izslēgta"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Izslēgta"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Ieslēgta"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Izslēgti"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Ieslēgti"</string>
+    <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Jūsu ierīces nosaukums ir redzams jūsu instalētajām lietotnēm. Tas var būt redzams arī citām personām, ja izveidosiet savienojumu ar Bluetooth ierīcēm, Wi-Fi tīklu vai iestatīsiet Wi-Fi tīklāju."</string>
+    <string name="grammatical_gender_title" msgid="8584242850477270828">"Gramatiskā dzimte"</string>
+    <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Atlasiet gramatisko dzimti"</string>
+    <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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Parole tagad ir iestatīta"</string>
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 25a86b2..5db8d03 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 14ca55c..fb5e54c 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Само администраторските корисници може да пристапат до програмерските поставки."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Систем"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Во употреба"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Надвор од употреба"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Повлечете нагоре за да продолжите"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Затворете го телефонот и повлечете нагоре на предниот екран за да продолжите да ја користите апликацијата или почекајте неколку секунди да се заклучи екранот"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Поврзани"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Мелодија и аларми"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Аудио за време на повици"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Аудиовизуелни содржини"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Известувања и други системски звуци"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Аудио, видео и системски звуци"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Известувања"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Стандардно, аудиоизлезот се одредува од поединечни апликации"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Неименуван уред со Bluetooth"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Пребарување"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth е вклучен"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Прикажи ги сите"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Прикажи ги сите"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Пенкало"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Притискање на копчето со пенкало"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (работен профил)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Поврзете се со стрим на LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Аудиостримови во близина"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудиостримови"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Поврзете се со аудиострим со QR-код"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Не се најдени аудиостримови во близина."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Датум и време"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Избриши"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"За да изберете јазик за секоја апликација, одете во поставките за јазик на апликацијата."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Дознајте повеќе за јазиците за апликации"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Да се промени системскиот јазик во %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Да се додаде %s во претпочитаните јазици?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Ова ги известува апликациите и веб-сајтовите дека го претпочитате и овој јазик."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Поставките на вашиот уред и регионалните поставки ќе се променат."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Промени"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s не е достапен"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Сабота"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ако апликацијата не поддржува регионални поставки, ќе ги користи поставките за својот локален стандард."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Дознајте повеќе за поставките за јазик."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Дополнителни поставки"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Услови за обраќање"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Поставете како сакате да ви се обраќаат"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Апликациите може да ги користат вашите услови за обраќање за да го персонализираат начинот на кој ви се обраќаат."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не е наведено"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Женски род"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Машки род"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Неутрално"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Да се отстрани избраниот јазик?}one{Да се отстранат избраните јазици?}other{Да се отстранат избраните јазици?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текстот ќе се прикажува на друг јазик."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не може да се отстранат сите јазици"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Локација"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Користи ја локацијата"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Исклучено"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Вклучено – # апликација има пристап до локацијата}one{Вклучено – # апликација имаат пристап до локацијата}other{Вклучено – # апликации имаат пристап до локацијата}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Вклучено / # апликација има пристап до локацијата}one{Вклучено / # апликација имаат пристап до локацијата}other{Вклучено / # апликации имаат пристап до локацијата}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Се вчитува…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликациите со дозвола за пристап до уредите во близина може да ја утврдуваат релативната положба на поврзаните уреди."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Пристапот до локацијата е исклучен за апликации и услуги. Сепак, можно е локацијата на уредот да се испрати до службите за спасување во итни случаи кога ќе ги повикате или кога ќе испратите порака на број за итни случаи."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Дознајте повеќе за „Поставките за локација“."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Дознајте повеќе за „Поставките за локација“"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Променете го пристапот до локацијата во „Поставки &lt; Безбед. и прив. &lt; Контроли на прив.“"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"За најдобри резултати, користете заштитник на екранот што е сертифициран со „Создадено за Google“. Со другите заштитници на екрани, отпечатоците на вашето дете може да не функционираат."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Отклучување со часовник"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Кога ќе поставите „Отклучување со лик“ и „Отклучување со отпечаток“, телефонот ќе го побара вашиот отпечаток кога носите маска или сте на темно место.\n\nМоже да отклучите со часовникот кога нема да се препознае вашиот лик или отпечатокот."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Може да отклучите со часовникот кога нема да се препознае вашиот отпечаток."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Може да отклучите со часовникот кога нема да се препознае вашиот лик."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Кога ќе поставите „Отклучување со лик“ и „Отклучување со отпечаток“, телефонот ќе го побара вашиот отпечаток кога носите маска или сте на темно место.\n\n„Отклучување со часовник“ е уште еден практичен начин на отклучување на вашиот телефон, на пример, кога прстите ви се влажни или не може да ви се препознае ликот."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"„Отклучување со часовник“ е уште еден практичен начин на отклучување на вашиот телефон, на пример, кога не може да ви се препознае отпечатокот."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"„Отклучување со часовник“ е уште еден практичен начин на отклучување на вашиот телефон, на пример, кога не може да ви се препознае ликот."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Користете го отпечатокот или часовникот"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Користете го ликот или часовникот"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Користете го ликот, отпечатокот или часовникот"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додадени се лик и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додадени се лик, отпечаток и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додадени се лик, отпечатоци и <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Отклучување со далечински автентикатор"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Часовникот е додаден"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Поставете го часовникот"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Како функционира"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Часовникот мора да биде отклучен, на вашиот зглоб и во близина на телефонов. Нема да треба да го отклучувате часовникот повторно додека е на вашиот зглоб."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Кога ќе се отклучи телефонов, ќе добиете известување на часовникот. Ако го отклучите ненамерно, допрете го известувањето за да го заклучите телефонот повторно."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Вие сте главни"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Може да го отстраните часовникот од „Отклучување со часовник“ во „Поставки“ во секое време"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Допрете известување"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Повлечете нагоре на заклучениот екран"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Изберете го вашиот часовник"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Достапни часовници"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Откажи"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Потврди"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Подготвени сте!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Сега може да го користите часовникот за да го отклучите телефонов кога ќе повлечете нагоре на заклучениот екран или ќе допрете известување"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Отклучување со часовник"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Може да го користите часовникот за да го отклучите телефонов кога ќе повлечете нагоре на заклучениот екран или ќе допрете известување"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"За да ја користите функцијата „Отклучување со часовник“, вашиот часовник мора да биде отклучен, на вашиот зглоб, во близина и поврзан со телефонов. Ако се прекине врската, ќе треба да го отклучите телефонот за да може да ја користите функцијата „Отклучување со часовник“.\n\nЗабелешка:\nможе да поставите само еден часовник истовремено. За да додадете друг часовник, прво отстранете го тековниот."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Дознајте повеќе за „Отклучување со часовник“"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додај часовник"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Отстрани часовник"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отклучување со отпечаток и лик"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Отклучување со лик и отпечаток за работа"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Потребно е поставување"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Безбедност"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Приватност"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Работен профил"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Приватен простор"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Чувајте ги приватните апликации заклучени и скриени"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Чувајте ги приватните апликации во засебен простор што може да го скриете или заклучите"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Заклучување за „Приватен простор“"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Може да го отклучите „Приватен простор“ исто како што го отклучувате уредот или да изберете друг начин на заклучување"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Користете го заклучувањето екран на уредот"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Отклучување со лик и отпечаток"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Отклучување со отпечаток"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Отклучување со лик"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Допрете за да поставите"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"„Отклучување со отпечаток“ за „Приватен простор“"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"„Отклучување со лик“ за „Приватен простор“"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Начини на отклучување"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Исто како заклучувањето екран на уредот"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Да се избере ново заклучув. за „Приватен простор“?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Заклучување автоматски"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Заклучување на „Приватен простор“ автоматски"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Може да го заклучите вашиот „Приватен простор“ автоматски ако не сте го користеле уредот одреден временски период"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"При секое заклучување на уредот"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"По неактивност од 5 минути"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Никогаш"</string>
+    <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_deleted" msgid="7825768516955610897">"„Приватниот простор“ е успешно избришан"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"„Приватниот простор“ не можеше да се избрише"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"„Приватниот простор“ е отклучен"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Поставете заклучување екран"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"За да користите „Приватен простор“, поставете заклучување екран на уредов"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Поставете заклучување екран"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Откажи"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Откажи"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Постави"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Поставете „Приватен простор“"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Чувајте ги приватните апликации во посебен простор што може да го скриете или заклучите"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Дознајте како функционира"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Може да пристапите до „Приватен простор“ од дното на списокот со апликации"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Аплик. во „Приватен простор“ се заштитени со заклучување"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Известувањата од апликациите во „Приватниот простор“ се скриени кога е заклучен"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Апликациите во вашиот „Приватен простор“ нема да се појават во „Управување со дозволи“, „Контролна табла за приватност“ и други поставки кога „Приватниот простор“ е заклучен.\n\nВашиот „Приватен простор“ не може да се премести на нов уред. Треба да поставите друг „Приватен простор“ ако сакате да го користите на друг уред.\n\nСекој што го поврзува вашиот уред со компјутер или инсталира штетни апликации можеби може да пристапи до вашиот „Приватен простор“."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Се поставува „Приватен простор“…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Известувањата од апликациите во „Приватниот простор“ се скриени кога е заклучен"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Отклучете го „Приватниот простор“ за да споделувате фотографии или датотеки од апликациите во „Приватниот простор“"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Некои апликации се веќе инсталирани во вашиот „Приватен простор“"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Не можеше да се постави „Приватен простор“"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Обиди се пак"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Да се користи закл. екран за откл. „Прив. прост.“?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Може да го отклучите „Приватен простор“ исто како што го отклучувате уредот или да изберете друг начин на заклучување"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Користете заклучување екран"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Изберете нов начин на заклучување"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Готово!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"За да пристапите до „Приватен простор“, одете во списокот со апликации и лизгајте надолу"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Готово"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Лизгајте надолу за да најдете „Приватен простор“"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Изберете начин на заклучување за „Приватен простор“"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Може да го отклучувате „Приватниот простор“ со отпечаток. Од безбедносни причини, за опцијава е потребно резервно заклучување."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Поставете PIN за „Приватен простор“"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Поставете лозинка за „Приватен простор“"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Поставете шема за „Приватен простор“"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"За да се прикаже „Приватен простор“ (не e конечен КИ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Отворете ја апликацијата „Поставки“"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Допрете „Безбедност и приватност &gt; Приватен простор &gt; Скриј „Приватен простор“ кога уредот е заклучен“"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Исклучете „Скриј „Приватен простор“ кога уредот е заклучен“"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Забелешка за вработените во Google: функцијава сè уште се развива"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Може ќе треба да ја внесете лозинката и на другиот уред."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Потврдете за спарување со координираниот комплет"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дозволете пристап до вашите контакти и историјата на повици"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Дозволете и пристап до контактите и историјата на повици"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Податоците ќе се користат за известувања за повици и друго"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не може да се поврзе со <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Достапни уреди"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Во режим на работа во авион"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Известувај за јавни мрежи"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Извести ме кога ќе биде достапна јавна мрежа со висок квалитет"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Дозволете WEP-мрежи"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP е постар безбедносен протокол што не е толку безбеден"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Вашиот оператор не дозволува WEP-мрежи бидејќи не се толку безбедни"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Автоматски вклучувај Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi ќе се вклучува автоматски во близина на зачувани мрежи со висок квалитет, како на пр., вашата домашна мрежа"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Недостапно бидејќи локацијата е исклучена. Вклучете ја "<annotation id="link">"локацијата"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Скенирањето на Wi-Fi дозволува апликациите и услугите да скенираат Wi-Fi мрежи во секое време, дури и кога Wi-Fi е исклучено. Ова може да се користи, на пример, за да се подобрат функциите и услугите според локација."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Вклучи"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Скенирањето на Wi‑Fi е вклучено"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Мрежава користи постар безбедносен протокол што не е толку безбеден"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> е блокиран"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Мрежава користи постар безбедносен протокол наречен WEP, којшто не е толку безбеден. Ако сепак сакате да се поврзете, може да дозволите WEP мрежи."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Вашиот оператор не ви дозволува да се поврзете на мрежава затоа што користи постар безбедносен протокол што не е толку безбеден"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Дозволете WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Затвори"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Напредни опции"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Паѓачки список „Напредни опции“"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"прошири"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Остани на Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Никогаш не прикажувај повторно"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Поврзи се"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi мрежата е вклучена"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Поврзано со <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Поврзување со <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Се поврзува…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Не успеа да се поврзе со мрежата"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежата не е во опсег"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Заборави"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Измени"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Не успеа да се заборави мрежата"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Зачувај"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Не успеа да се зачува мрежата"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Откажи"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобилен интернет"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Етернет"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ се полни"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ се полни"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Поврзување на точка на пристап"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Јачина на врската"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Зачувани мрежи"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Не е поставена лозинка"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Име на точката на пристап"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Лозинка за точката на пристап"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Опсег на точката на пристап"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Автоматско исклучување на точката на пристап"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Кога не е поврзан ниеден уред"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Прошири компатибилност"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Оневозможете стандардна стапка на слики за игри"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Оневозможете ограничување на максималната стапка на слики за игри на <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Течно движење"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"„Вклучен екран“ ја користи предната камера за да види дали некој гледа во екранот. Функционира на самиот уред, а сликите никогаш не се складираат или испраќаат до Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Вклучете ја „Вклучен екран“"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Екранот нека биде вклучен кога гледам во него"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Подолгото време за автоматско исклучување на екранот ќе троши повеќе батерија."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камерата е заклучена"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Камерата мора да биде отклучена за откривање лица"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Камерата мора да е отклучена за „Вклучен екран“"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (отвор за SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (отвор за SIM-картичка <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (примарна)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"За преглед, изберете зачувана мрежа"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL верзија"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Ниво на батерија"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Заедница"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Заеднички поставки"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Зачувај"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Откажи"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Полето за име не може да биде празно."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN не може да биде празна."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Полето MNC мора да биде 3 цифри."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Полето MNC мора да биде 2 или 3 бројни места."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Операторот не дозволува додавање APN од типот %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Полето за MMSC мора да биде важечко."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Враќање стандардни поставки за APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Ресетирај на стандардни вредности"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Ресетирањето на стандардни поставки за APN е завршено."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Ресетирај"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth и Wi‑Fi се ресетирани"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Избриши ги eSIM-картичките"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Ова нема да ги откаже пакетите за мобилни услуги. За да преземете SIM-картички за замена, контактирајте со операторот."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Ресетирај поставки"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Да се ресетираат сите мрежни поставки? Ова дејство не може да се врати."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Да се ресетираат сите мрежни поставки и да се избришат eSIM-картичките? Ова дејство не може да се врати."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Ресетирај?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Мрежното ресетирање не е достапно за овој корисник"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Мрежните поставки се ресетирани"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Не може да се избришат SIM-картичките"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-картичките не може да се избришат поради грешка.\n\nРестартирајте го уредот и обидете се повторно."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Избриши ги сите податоци (фабричко ресетирање)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Избриши ги сите податоци"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музиката"</li>\n<li>"фотографиите"</li>\n<li>"другите кориснички податоци"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-картичките"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Со ова нема да се откаже вашиот пакет за мобилни услуги."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Сите ваши лични податоци и преземени апликации ќе се избришат. Ова дејство не може да се врати."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Ќе се избришат сите ваши лични информации, заедно со преземените апликации и SIM-картички. Ова дејство не може да се врати."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Да се избришат сите податоци?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Фабричкото ресетирање не е достапно за овој корисник"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Се брише"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Точка на пристап, USB, Bluetooth, етернет"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Не се споделува интернет со други уреди"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Исклучено"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Врзување"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Не користете точка на пристап за Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Споделувајте интернет само преку USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Споделувајте интернет само преку Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Споделувајте интернет само преку етернет"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Споделувајте интернет само преку USB и Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Споделувајте интернет само преку USB и етернет"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Споделувајте интернет само преку Bluetooth и етернет"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Споделувајте интернет само преку USB, Bluetooth и етернет"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Интернет преку USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Интернет преку Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Интернет преку етернет"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Користете точка на пристап и врзување за да им обезбедите пристап до интернет на други уреди преку Wi‑Fi врската или врската за мобилен интернет. Апликациите исто така може да создаваат точки на пристап за да споделуваат содржини со уредите во близина."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Помош"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобилна мрежа"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Пакет за мобилен интернет"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Апликација за SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Избери апликација за SMS"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> како SMS-апликација?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Да се промени помошникот за Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управување со мрежните врски?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Да се користи <xliff:g id="NEW_APP">%s</xliff:g> за управување на вашите мрежни врски?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Непознат SIM-оператор"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познато обезбедување веб-сајт"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Вметнете SIM картичката и рестартирајте"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Поврзете се на интернет"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Последни барања за локација"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Локација за работен профил"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Дозволи за локација за апликации"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Избриши пристап"</string>
     <string name="controls_label" msgid="8671492254263626383">"Контроли"</string>
     <string name="force_stop" msgid="2681771622136916280">"Исклучи присилно"</string>
+    <string name="archive" msgid="9074663845068632127">"Архивирај"</string>
+    <string name="restore" msgid="7622486640713967157">"Врати"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Вкупно"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Големина на апликацијата"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Апликација за USB меморија"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Не може да се пресмета големината на пакетот."</string>
     <string name="version_text" msgid="7628938665256107608">"верзија <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Премести"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Архивирањето не успеа"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Архивирано: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Враќањето не успеа"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Се враќа <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Друга миграција е веќе во тек."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Нема доволно меморија."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Апликацијата не постои."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Достапна тастатура на екран"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Управувајте со тастатури на екран"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опции"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Пристапност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
     <string name="show_ime" msgid="4334255501724746849">"Користете тастатура на екран"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Прикажувај ја на екранот додека е активна физичката тастатура"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Еластични копчиња"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Овозможете „Еластични клучеви“ за пристапност до физичка тастатурата"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Лепливи копчиња"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Овозможете „Лепливи копчиња“ за пристапност до физичка тастатурата"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Кратенки на тастатурата"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Прикажи список со кратенки"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Тастатури и алатки за работниот профил"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Подредете според време на користење"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Подредете според последно користење"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Подредете според име на аплик."</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Користено последен пат"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Последно користење"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"никогаш"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Време на употреба"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Пристапност"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Поставки на пристапност"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Сепак продолжи"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Откажи"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Поставки за зголемување"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Зголеми со троен допир"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Зголемување со кратенка"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Зголемете со кратенка и троен допир"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"За <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Допрете го екранот двапати со два прста за да отворите"</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="860548190334486449">"За да го започнете и сопрете зголемувањето, допрете каде било на екранот двапати со два прста."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"За да користите функција за пристапност, повлечете нагоре од дното на екранот со три прста.\n\nЗа префрлање помеѓу функциите, повлечете нагоре со три прста и задржете."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Сфатив"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Поставки за копчето за пристапност"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Поставки за копчиња"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Кратенка за: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Копче за пристапност"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Движење за пристапност"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Допрете го екранот двапати со два прста"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"допрете го екранот двапати со два прста"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Брзо допрете го екранот {0,number,integer} пати со два прста"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Троен допир на екранот"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"допрете трипати на екранот"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо допрете го екранот {0,number,integer} пати Оваа кратенка може да го забави уредот"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Дознајте повеќе за копчето за пристапност и движење"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Користење на копчето за пристапност. Движењето не е достапно со навигација со 3 копчиња."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Брзо пристапувајте до функциите за пристапност"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"За да започнете"</b>\n"1. Одете на поставките за пристапност\n2. Изберете функција и допрете ја кратенката\n3. Изберете дали сакате да користите копче или движење за пристап до функцијата"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"За да започнете"</b>\n"1. Одете на поставките за пристапност\n2. Изберете функција и допрете ја кратенката\n3. Изберете го копчето за пристап до функцијата"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;За да започнете&lt;/b&gt;&lt;br/&gt; {0,number,integer}. oдете во поставките за пристапност&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}. oдете во поставките за пристапност&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_size_title" msgid="5785110470538960881">"Големина"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Прекини повик со копче за вклучување"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Голем покажувач на глувчето"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Истакни го покажувачот на глувчето"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Направете ги сите апликации темни"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Важи за апликации без темна тема. Некои аплик. може да имаат проблеми со екранот, како инверзни бои."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Отстрани анимации"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Намали го движењето на екранот"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Моно аудио"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да ја следи вашата интеракција со апликациите или со хардверските сензори и да врши интеракција со апликациите во ваше име."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Сопри"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Откажи"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Да се сопре <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ако допрете „<xliff:g id="STOP">%1$s</xliff:g>“, <xliff:g id="SERVICE">%2$s</xliff:g> ќе сопре."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Исклучи"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Остави вклучено"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Да се исклучи <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Нема инсталирано услуги"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Нема избрана услуга"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Не е обезбеден опис."</string>
     <string name="settings_button" msgid="2195468788019730377">"Поставки"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"чувствителност на светлина, фотофобија, темна тема, мигрена, главоболка, режим за читање, ноќен режим, намалување осветленост, бела точка"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Едноставно користење, лесен пристап, помош, помошен"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"вид, слух, слеп, глув, подвижност, умешност, помошен, помош, едноставно користење, лесен пристап, дланка, помош"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Лупа за прозорци, зумирање, лупа, слаб вид, зголеми, направи поголемо"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Титлови, затворени титлови, CC, Транскрипција во живо, нарушување на слух, загуба на слух, CART, од говор во текст"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"контраст на бојата"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"моторна, глувче"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"слушни помагала, оштетен слух, губење на слухот, кохлеарни импланти, уреди за засилување, процесори на звук"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"подвижност, глувче, надворешно глувче, специјално глувче, адаптивно глувче, инвалидска количка, џојстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"слушни помагала, оштетен слух, губење на слухот, кохлеарни импланти, уреди за засилување, процесори на звук, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"нарушување на слух, загуба на слух, титлови, Teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"три копчиња"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"попреченост, подвижност, пензионер, артритис, rsi, мозочен удар, тремор, мултиплекс склероза, церебрална парализа, тресење, повторлива повреда од истегнување, дланка"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"одложување, умешност, пензионер"</string>
     <string name="print_settings" msgid="8519810615863882491">"Печатење"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Исклучено"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Вклучена е 1 услуга за печатење}one{Вклучени се # услуга за печатење}other{Вклучени се # услуги за печатење}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Прегледајте ги апликациите со најголемо користење"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Полнењето е оптимизирано за да се заштити батеријата"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"За да помогне да се продолжи работниот век на батеријата, полнењето е оптимизирано"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Полнењето е оптимизирано за да се заштити батеријата"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"За да се продолжи работниот век на батеријата, полнењето е оптимизирано додека уредот е приклучен на док"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Полнењето е оптимизирано за да се заштити батеријата"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"За да се продолжи работниот век на батеријата, полнењето е оптимизирано додека уредот е приклучен на док"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Целосно полнење"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"За да се заштити батеријата, полнењето ќе биде оптимизирано следниот пат кога таблетот ќе биде приклучен на док"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Дознајте повеќе за паузираното полнење"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Продолжи со полнење"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Вклучува активност во заднина со голема потрошувачка на енергија"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Да"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Откажи"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Наполни до полна"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Проблем со додатокот за полнење"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Дознајте повеќе за некомпатибилното полнење"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Управник со батерија"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Автоматско управување со апликациите"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"сега"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Графикон за користење на батеријата"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Графикон за користење на батеријата по денови"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Графикон за користење на батеријата по часови"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Процент на нивото на батеријата од <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> до <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Користење на батеријата од последното целосно полнење"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Користење на батеријата за <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Време на користење од последното целосно полнење"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал за итно бирање"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Постави однесување кога се прави итен повик"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Бекап"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Вклучено"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Исклучено"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Бекап и обнова"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Лични податоци"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Направи резервна копија на моите податоци"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Име"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Тип"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Адреса на сервер"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Шифрирање PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP тајна"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-идентификатор"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec претходно споделен клуч"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Кориснички сертификат на IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-сертификат"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Сертификат за IPSec-сервер"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Прикажи напредни опции"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Домени на пребарување на DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-сервери (на пр., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Маршрути за проследување (на пр., 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Корисничко име"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Лозинка"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Зачувај информации за сметка"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(не се користи)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(не проверувај сервер)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(примен од сервер)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"VPN од овој тип не може да остане поврзана цело време"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Постојано вклучената VPN поддржува само нумерички адреси на сервер"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Мора да се назначи DNS-сервер за секогаш вклучената VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Адресите на DNS-серверот мора да се нумерички за секогаш вклучената VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Внесените податоци не поддржуваат секогаш вклучена VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Откажи"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Отфрли"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Блокирај ги врските без VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Задолжително поврзување преку VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Небезбедна. Ажурирајте на IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не можеше да се вклучи неподдржана VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Изберете VPN-профил со којшто секогаш ќе бидете поврзани. Мрежниот сообраќај ќе биде дозволен само кога сте поврзани на оваа VPN-мрежа."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ниедна"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN секогаш вклучена бара ИП адреса за серверот и за DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Предупредувања AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Добивајте објави за киднапирање деца"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Повтори"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Овозможи Управник со повици"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Дозволете услугата да управува како вршите повикувања."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Управник со повици"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Безжични предупредувања за итни случаи"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Мрежни оператори"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Имиња на пристапни точки"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"плати, допри, плаќања"</string>
     <string name="keywords_backup" msgid="707735920706667685">"бекап, прави бекап"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"движење"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"лице, отклучи, проверка, најави се"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"лик, отклучување, проверка, најавување, отпечаток, биометрика"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, верзија на prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Вклучете ги звуците"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Автоматски титлови"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Автоматски титлува аудиовизуелни содржини"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Звучници на телефонот"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Звучници на таблетот"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Звучници на уредот"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Жичени слушалки"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Звукот од компатибилните аудиовизуелни содржини е пореалистичен"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Исклучено"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Неодамнешните разговори се отстранети"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Разговорот е отстранет"</string>
     <string name="clear" msgid="5092178335409471100">"Избриши"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Избриши <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Приоритетните и изменетите разговори ќе се појавуваат тука"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Откако ќе означите разговор како приоритетен или ќе направите какви било измени во разговорите, тие ќе се појават тука. \n\nЗа промена на поставките за разговор: \nПовлечете надолу од горниот дел на екранот за да се отвори списокот со известувања, а потоа допрете и задржете разговор."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Минимизирај"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Исклучено"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Закачување апликации"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Закачувањето апликации ви овозможува да ја гледате тековната апликација додека не ја откачите. Меѓу другото, со функцијава може да му се дозволи на доверлив пријател да игра конкретна игра."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Кога ќе се прикачи апликација, таа може да отвора други апликации и може да се овозможи пристап до личните податоци. \n\nЗа да користите прикачување апликации: 	\n1. Вклучете прикачување апликации 	\n2. Отворете „Преглед“ 	\n3. Допрете ја иконата на апликацијата на врвот од екранот, а потоа допрете „Прикачи“"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Кога ќе се прикачи апликација, таа може да отвора други апликации и може да се овозможи пристап до личните податоци. \n\nАко сакате безбедно да го споделувате уредот со некого, споделете го со корисник гостин. \n\nЗа да користите прикачување апликации: 	\n1. Вклучете прикачување апликации 	\n2. Отворете „Преглед“ 	\n3. Допрете ја иконата на апликацијата на врвот од екранот, а потоа допрете „Прикачи“"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Управува со апликацијата при некористење"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Отстранување дозволи, бришење привремени датотеки, сопирање известувања и архивирање на апликацијата"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Сите апликации"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Инсталирани апликации"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Инстант апликации"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Слободна"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Меморија искористена од апликации"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 апликација ја користеше меморијата во минатиот {time}}one{# апликација ја користеа меморијата во минатиот {time}}other{# апликации ја користеа меморијата во минатиот {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Овозможи профил. на употр. на меморијата"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Потребни се дополнителни системски ресурси за профилирање на употребата на меморијата."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Профилирањето на меморијата е оневозможено"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Зачестеност"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Максимално користење"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Не е користен мобилен интернет"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Приказ врз други апликации"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Дозволи приказ врз други апликации"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Дозволете ѝ на апликацијава да се прикажува врз другите апликации што ги користите. Апликацијава ќе може да види каде допирате или да го менува прикажаното на екранот."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Промена на излезот за аудио"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Дозволете аплик. да префрла излез за аудиовиз. содржини"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Дозволете апликацијава да избере кој поврзан уред да репродуцира аудио или видео од други апликации. Ако е дозволено, апликацијава може да пристапи до список со достапни уреди, како слушалки и звучници и да избере кој излезен уред да се користи за стримување или емитување аудио или видео."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Пристап до сите датотеки"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Подобрување на активирање со глас"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Уредов користи приватна интелигенција за подобрување на моделот на активирање со глас. Апликациите може да добиваат резимирани ажурирања што се собираат кај многу корисници за да се одржува приватноста и истовремено да се подобрува моделот за сите.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Предупредување за потрошен интернет: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Ограничување за интернет: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Предупредување за потрошен интернет: <xliff:g id="ID_1">^1</xliff:g>/Ограничување за интернет: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Пресметаниот сообраќај на операторот може да се разликува од пресметаниот сообраќај на вашиот уред"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Не го опфаќа интернетот што го користат мрежите на мобилните оператори"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Потрошено: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Предупр. за потрошен интернет"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Ажурирано пред <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Ажурирано од <xliff:g id="ID_1">^1</xliff:g> пред малку"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Се ажурираше пред малку."</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Прикажи план"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Прикажи ги деталите"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Штедач на интернет"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Неограничен мобилен интернет"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Дефект на користењето на батеријата"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Програмерски плочки за брзи поставки"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Оневозможи истекување на авторизацијата за ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Оневозможи автоматско повлекување на авторизацијата за ADB за системите што не се поврзале повторно во стандардниот рок (7 дена) или во рокот конфигуриран од корисникот (најмалку 1 ден)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Трага од Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Сензорите се исклучени"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Поставки за работен профил"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Пребарувајте контакти од работниот адресар во лични апликации"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Автоматско пополнување"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Стандардна услуга за автоматско пополнување"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Лозинки"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Услуги за лозинки, криптографски клучеви и податоци"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Дополнителни даватели"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# лозинка}one{# лозинка}other{# лозинки}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"автоматско, пополнување, автоматско пополнување, лозинка"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"мобилен интернет, криптографски клуч, лозинка"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автоматски, пополнување, автоматско пополнување, податоци, криптографски клуч, лозинка"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Услуги за лозинки, криптографски клучеви и податоци"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Да се исклучат сите услуги?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Лозинките, криптографските клучеви и другите податоци нема да бидат достапни за автоматско пополнување при најавување"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Да се промени претпочитаната услуга на &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Отсега, новите лозинки, криптографски клучеви и другите податоци ќе се зачувуваат тука. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; може да го користи она што е на екранот за да утврди што може да се пополни автоматски"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Да се користи %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Може да имате само 5 вклучени услуги"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Исклучете барем 1 услуга за да додадете друга"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s го користи она што е на вашиот екран за да одреди што може автоматски да се пополни."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Ограничување за услуги за лозинки, криптографски клучеви и податоци"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Истовремено може да имате најмногу 5 активни услуги за лозинки, криптографски клучеви и податоци. Исклучете услуга за да додадете повеќе."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Ограничување за услуги за лозинки, криптографски клучеви и податоци"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Истовремено може да имате најмногу 5 активни услуги за лозинки, криптографски клучеви и податоци. Исклучете некоја од услугите за да додадете повеќе."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Исклучи"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Автоматско пополнување"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Степен на евиденција"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Промени во компатибилноста на апликациите може да се вршат само за апликации во кои може да се отстрануваат грешки. Инсталирајте апликација во која може да се отстрануваат грешки и обидете се повторно."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Зависи од друга поставка"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Сметка"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d сметки"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Име на уредот"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Основни информации"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Правни и регулаторни"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Дозволете ѝ на апликацијава да се стартува кога ќе се скенира NFC-ознака.\nАко оваа дозвола е вклучена, апликацијата ќе биде достапна како опција секогаш кога ќе се открие ознака."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Пуштај содржини на"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Пуштај <xliff:g id="LABEL">%s</xliff:g> на"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Аудиото ќе се репродуцира на"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Овој уред"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Недостапно за време на повици"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Прифатете повик на"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Исклучи звук"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"За да се овозможи, прво променете ја опцијата „Притиснете и задржете го копчето за вклучување“ во менито на копчето за вклучување."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Детали за мрежата"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Името на уредот е видливо за апликациите на телефонот. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth, ќе се поврзете на Wi-Fi мрежа или кога ќе поставите точка на пристап за Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Уреди"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Изберете мрежа"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Не е поврзано"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Име"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Боја (за компатибилни апликации)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Зачувај"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Користи SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Користење на оваа SIM-картичка"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Исклучено"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"За да се оневозможи оваа SIM, отстранете ја SIM-картичката"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Допрете за активирање на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Избришете ја SIM-картичката"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Претпочитан тип мрежа"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Променете го режимот на работа на мрежата"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Претпочитан тип мрежа"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"За цени, проверете кај вашиот мрежен оператор."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Потрошен интернет од апликации"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Неважечки режим на мрежа <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игнорирајте."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Имиња на пристапни точки"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Недостапно кога сте поврзани на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Дали сакате да се префрлите на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Дали сакате да се префрлите на SIM-картичката?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Да се користи <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Само една SIM-картичка може да биде активна.\n\nАко се префрлите на <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, нема да се откаже услугата на <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Само една eSIM-картичка може да биде активна.\n\nАко се префрлите на <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, нема да се откаже услугата на <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Само една SIM-картичка може да биде активна.\n\nАко се префрлите, нема да се откаже услугата на <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Може да користите 2 SIM-картички истовремено. За да користите <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, исклучете друга SIM-картичка."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Префрли на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Исклучи: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Не, фала"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Откажи"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Префрли"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Исклучи"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не може да се активира SIM-картичката"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Обидете се повторно да ја вклучите SIM-картичката. Ако и понатаму се соочувате со проблемот, рестартирајте го уредот."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Поставете ја SIM-картичката"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Поставете поставките за мобилната мрежа да користат повеќе SIM-картички на уредов"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Етикетирајте ги SIM-картичките"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Ќе ги гледате етикетиве кога упатувате повици, испраќате пораки и користите интернет, како и во „Поставки“"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Етикета на SIM-картичка"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Етикета"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Изберете SIM за користење"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Може да користите 2 SIM-картички истовремено"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Поставете главни SIM-картички"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Изберете кои SIM-картички да се користат стандардно за повици, пораки и интернет"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Вашите примарни SIM-картички"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Повици"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Пораки"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Автоматско префрлање интернет"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Користете интернет од која било SIM-картичка зависно од покриеноста и достапноста"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Само за интернет"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Поставете"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Следно"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобилна мрежа"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Телефонски број"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Боја и етикета на SIM-картичка"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активирање на мрежата"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Префрлање оператор"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> е активен"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"За да може подоцна да користите мобилен интернет и функции за повици и SMS, одете во мрежните поставки"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-картичка"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Да се избрише eSIM-картичкава?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Ако ја избришете SIM-картичкава, услугата на <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ќе се отстрани од уредов.\n\nУслугата на <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> нема да се откаже."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Избриши"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Се брише SIM-картичката…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Не може да се избрише SIM-картичката"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Оваа SIM-картичка не може да се избрише поради грешка.\n\nРестартирајте го уредот и обидете се повторно."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Поврзување со уредот"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Апликацијата <xliff:g id="APPNAME">%1$s</xliff:g> сака да користи привремена Wi‑Fi мрежа за да се поврзе со уредот"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Не се најдени уреди. Уверете се дека уредите се вклучени и достапни за поврзување."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Итни повици"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Вашиот оператор не поддржува итни повици преку услугата „Повици преку Wi-Fi“.\nУредот се префрла автоматски на мобилна мрежа за да се оствари итен повик.\nИтните повици се можни само во области покриени со мобилна мрежа."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Користете Wi-Fi за повици за да го подобрите квалитетот"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Резервен начин на повикување"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ако <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> е недостапен или во роаминг, користи ја SIM-картичката за мобилен интернет за повици на <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"резервен начин на повикување"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Дојдовна MMS-порака"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Не може да се испрати MMS-порака"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Допрете за да дозволите размена на MMS-пораки на <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> кога е исклучен мобилниот интернет"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Информации за работните правила"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Вашиот администратор за ИТ управува со поставките"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Рестартирај со страница од 16 K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Рестартирај со поддржан кернел со страници од 16 K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Да се рестартира со компатибилен кернел со страници од 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ПРЕДУПРЕДУВАЊЕ: некои апликации можеби не се компатибилни со режимов. Уредот ќе се рестартира по потврдата."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Да се рестартира со компатибилен кернел со страници од 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Уредот ќе се рестартира по потврдата."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Не можеше да се ажурира кернелот на компатибилен кернел со страници од 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Се применува промената"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Ракувач со извештајот за грешки"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Одредува која апликација ќе ракува со кратенката за извештајот за грешки на уредот."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Лични"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"За брзо продолжување на репродукцијата, плеерот останува отворен во „Брзи поставки“"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Прикажувај аудиовизуелни содржини на заклучен екран"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"За брзо продолжување на репродукцијата, плеерот останува отворен на заклучен екран"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Прикажувај препораки за аудиовизуелни содржини"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Прикажувај препораки за аудиовизуелни содржини од „Помошникот“"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Според вашата активност"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Скриј го плеерот"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Прикажи го плеерот"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM-картичка"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-картички"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Активна"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Неактивна"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /Стандардно за <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"повици"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звукот од компатибилните аудиовизуелни содржини е пореалистичен"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Следење на главата"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звукот се менува како што ја движите главата за да звучи поприродно"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синхронизација на дозволи"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Дајте му ги на уредот <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> истите дозволи за апликацијата што сте му ги дале на уредот <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Синхронизирајте ги дозволите од телефонот"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Дајте му ги на вашиот часовник истите дозволи за апликацијата што сте ги дале на телефонов"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоуред"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Непознато"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Звучник"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Среден"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Висок"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Апликацијава може да се отвори само во еден прозорец"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Вклучено"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Исклучено"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Исклучено"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Исклучено"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Вклучено"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Исклучено"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Вклучено"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Исклучено"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Ги претвора светлите прикази во темни, а темните во светли"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Зумирање на екранот"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Исклучено"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Исклучено"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Вклучено"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Исклучено"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Вклучено"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Сега е поставена лозинката"</string>
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index b233808..26df0b6 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"ഒരു മിനിറ്റിന് ശേഷം"</item>
     <item msgid="1574040255478150028">"5 മിനിറ്റിന് ശേഷം"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 489a284..881b5a2 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"അഡ്‌മിൻ ഉപയോക്താക്കൾക്ക് മാത്രമേ ഡെവലപ്പർ ക്രമീകരണം ആക്‌സസ് ചെയ്യാനാകൂ."</string>
     <string name="header_category_system" msgid="1665516346845259058">"സിസ്റ്റം"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"അറ്റകുറ്റപ്പണിയിൽ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"സേവനം ലഭ്യമല്ല"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"തുടരാൻ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ആപ്പ് ഉപയോഗിക്കുന്നത് തുടരാൻ നിങ്ങളുടെ ഫോൺ ഫോൾഡ് ചെയ്ത് ഫ്രണ്ട് ഡിസ്പ്ലേയിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക അല്ലെങ്കിൽ സ്‌ക്രീൻ ലോക്ക് ആകാൻ അൽപ്പസമയം കാത്തിരിക്കുക"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ബന്ധപ്പെട്ടവ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"റിംഗ്‌ടോണുകളും അലാറങ്ങളും"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"കോളുകൾ ചെയ്യുന്ന സമയത്തെ ഓഡിയോ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"മീഡിയ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"അറിയിപ്പും സിസ്റ്റം ശബ്ദങ്ങളും"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"മീഡിയ, സിസ്റ്റം ശബ്ദങ്ങൾ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"അറിയിപ്പുകൾ"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ഡിഫോൾട്ടായി, ഓഡിയോ ഔട്ട്പുട്ട് തീരുമാനിക്കുന്നത് ഓരോ ആപ്പുകളുമാണ്"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"പേരുനൽകാത്ത ബ്ലൂടൂത്ത് ഉപകരണം"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"തിരയുന്നു"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth ഓണാക്കി"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"എല്ലാം കാണുക"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"എല്ലാം കാണുക"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"സ്‌റ്റൈലസ്"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ടെയിൽ ബട്ടൺ അമർത്തുക"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (ഔദ്യോഗിക പ്രൊഫൈൽ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ഓഡിയോ സ്ട്രീമിലേക്ക് കണക്റ്റ് ചെയ്യുക"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"സമീപത്തെ ഓഡിയോ സ്ട്രീമുകൾ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ഓഡിയോ സ്ട്രീമുകൾ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR കോഡ് ഉപയോഗിച്ച് ഓഡിയോ സ്ട്രീമിലേക്ക് കണക്റ്റ് ചെയ്യുക"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"സമീപത്തെ ഓഡിയോ സ്ട്രീം കണ്ടെത്തിയില്ല."</string>
     <string name="date_and_time" msgid="1788358029823431692">"തീയതിയും സമയവും"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"പ്രോക്‌സി"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"മായ്‌ക്കുക"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ഓരോ ആപ്പിനുമുള്ള ഭാഷ തിരഞ്ഞെടുക്കാൻ, ആപ്പ് ഭാഷാ ക്രമീകരണത്തിലേക്ക് പോകുക."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ആപ്പ് ഭാഷകളെ കുറിച്ച് കൂടുതലറിയൂ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"സിസ്റ്റം ഭാഷ %s എന്നതിലേക്ക് മാറ്റണോ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s മുൻഗണന നൽകുന്ന ഭാഷകളിലേക്ക് ചേർക്കണോ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"നിങ്ങൾ ഈ ഭാഷയ്ക്ക് മുൻഗണന നൽകുന്നുവെന്ന് മനസ്സിലാക്കാൻ ഇത് ആപ്പുകളെയും വെബ്‌സൈറ്റുകളെയും അനുവദിക്കുന്നു."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"നിങ്ങളുടെ ഉപകരണ ക്രമീകരണവും പ്രാദേശിക മുൻഗണനകളും മാറും."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"മാറ്റുക"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ലഭ്യമല്ല"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ശനി"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ഒരു ആപ്പിൽ പ്രാദേശിക മുൻഗണനകൾക്ക് പിന്തുണയില്ലെങ്കിൽ ആ ആപ്പ് അതിന്റെ ഡിഫോൾട്ടായ ഭാഷാ ക്രമീകരണം ഉപയോഗിക്കും."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ഭാഷാ മുൻഗണനകളെക്കുറിച്ച് കൂടുതലറിയുക."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"അധിക മുൻഗണനകൾ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"അഭിസംബോധന ചെയ്യാനുള്ള പദങ്ങൾ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"നിങ്ങളെ എങ്ങനെ അഭിസംബോധന ചെയ്യണമെന്നത് സജ്ജീകരിക്കുക"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"നിങ്ങളെ എങ്ങനെ അഭിസംബോധന ചെയ്യുന്നുവെന്ന് വ്യക്തിപരമാക്കാൻ ആപ്പുകൾക്ക് നിങ്ങളുടെ \'അഭിസംബോധന ചെയ്യാനുള്ള പദങ്ങൾ\' ഉപയോഗിക്കാനാകും."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"വ്യക്തമാക്കിയിട്ടില്ലാത്തവ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"സ്ത്രീകൾക്കുള്ളത്"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"പുരുഷന്മാർക്കുള്ളത്"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ന്യൂട്രൽ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{തിരഞ്ഞെടുത്ത ഭാഷ നീക്കം ചെയ്യണോ?}other{തിരഞ്ഞെടുത്ത ഭാഷകൾ നീക്കം ചെയ്യണോ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"മറ്റൊരു ഭാഷയിൽ ടെക്‌സ്റ്റ് കാണിക്കും."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"എല്ലാ ഭാഷകളും നീക്കം ചെയ്യാനാവില്ല"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ലൊക്കേഷൻ"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ലൊക്കേഷൻ ഉപയോഗിക്കുക"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ഓഫാക്കുക"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ഓണാണ് - # ആപ്പിന് ലൊക്കേഷനിലേക്ക് ആക്‌സസ് ഉണ്ട്}other{ഓണാണ് - # ആപ്പുകൾക്ക് ലൊക്കേഷനിലേക്ക് ആക്‌സസ് ഉണ്ട്}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ഓണാണ് / # ആപ്പിന് ലൊക്കേഷനിലേക്ക് ആക്‌സസ് ഉണ്ട്}other{ഓണാണ് / # ആപ്പുകൾക്ക് ലൊക്കേഷനിലേക്ക് ആക്‌സസ് ഉണ്ട്}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ലോഡ് ചെയ്യുന്നു…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"സമീപമുള്ള ഉപകരണങ്ങളുടെ അനുമതിയുള്ള ആപ്പുകൾക്ക്, കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഉപകരണങ്ങളുടെ ആപേക്ഷിക സ്ഥാനം നിർണ്ണയിക്കാനാകും."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ആപ്പുകൾക്കും സേവനങ്ങൾക്കും ലൊക്കേഷൻ ആക്‌സസ് ഓഫാണ്. നിങ്ങൾ അടിയന്തര നമ്പറിലേക്ക് കോൾ ചെയ്യുമ്പോഴോ ടെക്‌സ്‌റ്റ് ചെയ്യുമ്പോഴോ നിങ്ങളുടെ ഉപകരണ ലൊക്കേഷൻ, അടിയന്തര സാഹചര്യത്തിൽ പ്രതികരിക്കുന്നവർക്ക് തുടർന്നും അയച്ചേക്കാം."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ലൊക്കേഷൻ ക്രമീകരണത്തെക്കുറിച്ച് കൂടുതലറിയുക."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ലൊക്കേഷൻ ക്രമീകരണത്തെക്കുറിച്ച് കൂടുതലറിയുക"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ലൊക്കേഷൻ ആക്സസ് മാറ്റാൻ, ക്രമീകരണം &gt; സുരക്ഷയും സ്വകാര്യതയും &gt; സ്വകാര്യതാ നിയന്ത്രണങ്ങൾ എന്നിവ സന്ദർശിക്കുക"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"മികച്ച ഫലങ്ങൾക്കായി, Google-നായി നിർമ്മിച്ചതെന്ന് സാക്ഷ്യപ്പെടുത്തിയ സ്‌ക്രീൻ പ്രൊട്ടക്‌ടർ ഉപയോഗിക്കുക. മറ്റ് സ്‌ക്രീൻ പ്രൊട്ടക്‌ടറുകളിൽ നിങ്ങളുടെ കുട്ടിയുടെ വിരലടയാളം പ്രവർത്തിക്കണമെന്നില്ല."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"വാച്ച് അൺലോക്ക്"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കുന്ന സമയത്ത്, നിങ്ങൾ മാസ്‌ക് ധരിച്ചിട്ടുണ്ടെങ്കിലോ വെളിച്ചമില്ലാത്തിടത്താണ് നിങ്ങൾ ഉള്ളതെങ്കിലോ ഫോൺ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ആവശ്യപ്പെടും.\n\nനിങ്ങളുടെ മുഖമോ ഫിംഗർപ്രിന്റോ തിരിച്ചറിയാത്തപ്പോൾ വാച്ച് ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്യാം."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് തിരിച്ചറിയാത്തപ്പോൾ വാച്ച് ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്യാം."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"നിങ്ങളുടെ മുഖം തിരിച്ചറിയാത്തപ്പോൾ വാച്ച് ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്യാം."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"ഫെയ്‌സ് അൺലോക്കും ഫിംഗർപ്രിന്റ് അൺലോക്കും സജ്ജീകരിക്കുന്ന സമയത്ത്, നിങ്ങൾ മാസ്‌ക് ധരിച്ചിട്ടുണ്ടെങ്കിലോ വെളിച്ചമില്ലാത്തിടത്താണ് നിങ്ങൾ ഉള്ളതെങ്കിലോ ഫോൺ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ആവശ്യപ്പെടും.\n\nനിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിന് മറ്റൊരു സൗകര്യപ്രദമായ വഴി, വാച്ച് അൺലോക്ക് ചെയ്യൽ ആണ്, ഉദാഹരണത്തിന്, നിങ്ങളുടെ വിരലുകൾ നനഞ്ഞിരിക്കുമ്പോഴോ മുഖം തിരിച്ചറിയാതിരിക്കുമ്പോഴോ."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിന് മറ്റൊരു സൗകര്യപ്രദമായ വഴി, വാച്ച് അൺലോക്ക് ചെയ്യൽ ആണ്, ഉദാഹരണത്തിന്, നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് തിരിച്ചറിയാതിരിക്കുമ്പോൾ."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"നിങ്ങളുടെ ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിന് മറ്റൊരു സൗകര്യപ്രദമായ വഴി, വാച്ച് അൺലോക്ക് ചെയ്യൽ ആണ്, ഉദാഹരണത്തിന്, നിങ്ങളുടെ മുഖം തിരിച്ചറിയാതിരിക്കുമ്പോൾ."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ഇനിപ്പറയുന്നതിന് ഫിംഗർപ്രിന്റോ വാച്ചോ ഉപയോഗിക്കുക"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ഇനിപ്പറയുന്നതിന് മുഖമോ വാച്ചോ ഉപയോഗിക്കുക"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ഇനിപ്പറയുന്നതിന് മുഖമോ ഫിംഗർപ്രിന്റോ വാച്ചോ ഉപയോഗിക്കുക"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"മുഖവും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"മുഖവും ഫിംഗർപ്രിന്റും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"മുഖവും ഫിംഗർപ്രിന്റുകളും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"വിദൂര Authenticator അൺലോക്ക്"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"വാച്ച് ചേർത്തു"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"നിങ്ങളുടെ വാച്ച് സജ്ജീകരിക്കൂ"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ഇതെങ്ങനെ പ്രവർത്തിക്കുന്നു"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"നിങ്ങളുടെ വാച്ച്, കൈത്തണ്ടയിൽ ഉള്ളപ്പോഴും ഈ ഫോൺ കൈയ്യെത്തും ദൂരത്ത് ഉള്ളപ്പോഴും അൺലോക്ക് ചെയ്തിരിക്കണം. നിങ്ങളുടെ വാച്ച്, കൈത്തണ്ടയിൽ ഉള്ളപ്പോൾ അത് വീണ്ടും അൺലോക്ക് ചെയ്യേണ്ടതില്ല."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ഈ ഫോൺ അൺലോക്ക് ചെയ്താൽ നിങ്ങളുടെ വാച്ചിൽ അറിയിപ്പ് ലഭിക്കും. നിങ്ങൾ ഉദ്ദേശിക്കാത്തപ്പോൾ ഇത് അൺലോക്ക് ചെയ്തെങ്കിൽ, ഫോൺ വീണ്ടും ലോക്ക് ചെയ്യുന്നതിനായി അറിയിപ്പ് ടാപ്പ് ചെയ്യുക."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"നിയന്ത്രണം നിങ്ങൾക്കാണ്"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് ഏതുസമയത്തും വാച്ച് അൺലോക്ക് ഫീച്ചറിൽ നിന്ന് വാച്ച് നീക്കം ചെയ്യാം"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"അറിയിപ്പ് ടാപ്പ് ചെയ്യുക"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ലോക്ക് സ്‌ക്രീനിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"നിങ്ങളുടെ വാച്ച് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ലഭ്യമായ വാച്ചുകൾ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"റദ്ദാക്കുക"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"സ്ഥിരീകരിക്കുക"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"നിങ്ങൾ തയ്യാറായിക്കഴിഞ്ഞു!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ലോക്ക് സ്ക്രീനിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്തോ അറിയിപ്പിൽ ടാപ്പ് ചെയ്തോ, നിങ്ങൾക്ക് ഇപ്പോൾ വാച്ച് ഉപയോഗിച്ച് ഈ ഫോൺ അൺലോക്ക് ചെയ്യാം"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"പൂർത്തിയായി"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"വാച്ച് അൺലോക്ക്"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ലോക്ക് സ്ക്രീനിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുമ്പോഴോ അറിയിപ്പിൽ ടാപ്പ് ചെയ്യുമ്പോഴോ ഈ ഫോൺ അൺലോക്ക് ചെയ്യാൻ നിങ്ങൾക്ക് വാച്ച് ഉപയോഗിക്കാം"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"വാച്ച് അൺലോക്ക് ഉപയോഗിക്കുന്നതിന്, വാച്ച് അൺലോക്ക് ചെയ്തിരിക്കണം, അത് നിങ്ങളുടെ കൈത്തണ്ടയിൽ ആയിരിക്കണം, കൈയ്യെത്തും ദൂരത്തായിരിക്കണം, ഈ ഫോണുമായി കണക്റ്റ് ചെയ്തിരിക്കുകയും വേണം. കണക്ഷൻ തടസ്സപ്പെടുകയാണെങ്കിൽ, വാച്ച് അൺലോക്ക് ഉപയോഗിക്കുന്നതിന് മുമ്പ് നിങ്ങൾ ഫോൺ അൺലോക്ക് ചെയ്യേണ്ടതുണ്ട്.\n\nഓർമ്മിക്കുക:\nഒരു സമയം ഒരൊറ്റ വാച്ച് മാത്രമേ നിങ്ങൾക്ക് സജ്ജീകരിക്കാനാകൂ. മറ്റൊരു വാച്ച് ചേർക്കാൻ ആദ്യം നിലവിലെ വാച്ച് നീക്കം ചെയ്യുക."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"വാച്ച് അൺലോക്കിനെ കുറിച്ച് കൂടുതലറിയുക"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"വാച്ച് ചേർക്കുക"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"വാച്ച് നീക്കം ചെയ്യുക"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ഫിംഗർപ്രിന്റ് &amp; ഫേസ് അൺലോക്ക്"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ഔദ്യോഗികാവശ്യത്തിനുള്ള ഫെയ്‌സ്, ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"സജ്ജീകരിക്കേണ്ടതുണ്ട്"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"സുരക്ഷ"</string>
     <string name="privacy_header" msgid="5526002421324257007">"സ്വകാര്യത"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"സ്വകാര്യ Space"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"സ്വകാര്യ ആപ്പുകൾ ലോക്ക് ചെയ്ത് മറയ്‌ക്കുക"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"നിങ്ങൾക്ക് മറയ്ക്കാനോ ലോക്ക് ചെയ്യാനോ കഴിയുന്ന പ്രത്യേക സ്പേസിൽ സ്വകാര്യ ആപ്പുകൾ സൂക്ഷിക്കുക"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"സ്വകാര്യ സ്‌പേസ് ലോക്ക്"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"ഉപകരണം അൺലോക്ക് ചെയ്യുന്ന അതേ രീതിയിൽ നിങ്ങൾക്ക് സ്വകാര്യ സ്‌പേസ് അൺലോക്ക് ചെയ്യാം അല്ലെങ്കിൽ മറ്റൊരു ലോക്ക് തിരഞ്ഞെടുക്കാം"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ഉപകരണത്തിന്റെ സ്‌ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ഫെയ്‌സ്, ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ഫെയ്‌സ് അൺലോക്ക്"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"സജ്ജീകരിക്കാൻ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"സ്വകാര്യ സ്പേസിനായുള്ള ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"സ്വകാര്യ സ്പേസിനായുള്ള ഫെയ്‌സ് അൺലോക്ക്"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"അൺലോക്ക് ചെയ്യാനുള്ള മാർഗ്ഗങ്ങൾ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ഉപകരണത്തിന്റെ അതേ സ്‌ക്രീൻ ലോക്ക്"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"സ്വകാര്യ സ്‌പേസിന് പുതിയ ലോക്ക് തിരഞ്ഞെടുക്കണോ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"സ്വയമേവ ലോക്ക് ചെയ്യുക"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"സ്വകാര്യ സ്പേസ് സ്വയമേവ ലോക്ക് ചെയ്യുക"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"ഉപകരണം ഒരു നിശ്ചിത കാലയളവിൽ ഉപയോഗിച്ചിട്ടില്ലെങ്കിൽ, നിങ്ങളുടെ സ്വകാര്യ സ്പേസ് സ്വയമേവ ലോക്ക് ചെയ്യാം"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ഉപകരണം ലോക്ക് ചെയ്യുമ്പോഴെല്ലാം"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 മിനിറ്റ് നിഷ്‌ക്രിയമായതിന് ശേഷം"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ഒരിക്കലുമില്ല"</string>
+    <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">"സ്വകാര്യ Space ഇല്ലാതാക്കുക"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"സ്വകാര്യ Space ഇല്ലാതാക്കി"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"സ്വകാര്യ Space ഇല്ലാതാക്കാനായില്ല"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"സ്വകാര്യ സ്പേസ് അൺലോക്ക് ചെയ്തു"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"സ്‌ക്രീൻ ലോക്ക് സജ്ജീകരിക്കൂ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"നിങ്ങളുടെ സ്വകാര്യ സ്പേസ് ഉപയോഗിക്കാൻ, ഈ ഉപകരണത്തിൽ സ്ക്രീൻ ലോക്ക് സജ്ജീകരിക്കുക"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"സ്‌ക്രീൻ ലോക്ക് സജ്ജീകരിക്കൂ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"റദ്ദാക്കൂ"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"റദ്ദാക്കുക"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"സജ്ജീകരിക്കുക"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കുക"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"നിങ്ങൾക്ക് മറയ്ക്കാനോ ലോക്ക് ചെയ്യാനോ കഴിയുന്ന പ്രത്യേക സ്പേസിൽ സ്വകാര്യ ആപ്പുകൾ സൂക്ഷിക്കുക"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ഇത് പ്രവർത്തിക്കുന്നത് എങ്ങനെയാണ്"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"നിങ്ങളുടെ ആപ്പ് ലിസ്‌റ്റിന്റെ താഴെ നിന്ന് സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാം"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"സ്വകാര്യ സ്പേസ് ആപ്പുകൾ ലോക്ക് കൊണ്ട് പരിരക്ഷിച്ചിരിക്കുന്നു"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"നിങ്ങളുടെ സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ, അതിലെ ആപ്പുകളിൽ നിന്നുള്ള അറിയിപ്പുകൾ മറയ്ക്കും"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"നിങ്ങളുടെ സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ അനുമതി മാനേജർ, സ്വകാര്യതാ ഡാഷ്ബോർഡ്, മറ്റ് ക്രമീകരണം എന്നിവയിൽ സ്വകാര്യ സ്പേസിലെ ആപ്പുകൾ ദൃശ്യമാകില്ല.\n\nസ്വകാര്യ സ്പേസ് പുതിയ ഉപകരണത്തിലേക്ക് നീക്കാനാകില്ല. നിങ്ങൾക്ക് ഇത് മറ്റൊരു ഉപകരണത്തിൽ ഉപയോഗിക്കണമെങ്കിൽ മറ്റൊരു സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കേണ്ടതുണ്ട്.\n\nനിങ്ങളുടെ ഉപകരണം ഒരു കമ്പ്യൂട്ടറിലേക്ക് കണക്റ്റ് ചെയ്യുന്ന അല്ലെങ്കിൽ ഉപകരണത്തിൽ ദോഷകരമായ ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്ന ഏതൊരാൾക്കും നിങ്ങളുടെ സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാൻ കഴിഞ്ഞേക്കാം."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കുന്നു…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"സ്വകാര്യ സ്പേസ് ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ, അതിലെ ആപ്പുകളിൽ നിന്നുള്ള അറിയിപ്പുകൾ മറയ്ക്കും"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"സ്വകാര്യ സ്പേസ് ആപ്പുകളിൽ നിന്ന് ഫോട്ടോകളോ ഫയലുകളോ പങ്കിടാൻ സ്വകാര്യ സ്പേസ് അൺലോക്ക് ചെയ്യുക"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"ചില ആപ്പുകൾ ഇതിനകം തന്നെ നിങ്ങളുടെ സ്വകാര്യ സ്പേസിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"സ്വകാര്യ സ്പേസ് സജ്ജീകരിക്കാനായില്ല"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"വീണ്ടും ശ്രമിക്കുക"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"സ്വകാര്യ സ്പേസ് അൺലോക്ക് ചെയ്യാൻ സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കണോ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"ഉപകരണം അൺലോക്ക് ചെയ്യുന്ന അതേ രീതിയിൽ നിങ്ങൾക്ക് സ്വകാര്യ സ്‌പേസ് അൺലോക്ക് ചെയ്യാം അല്ലെങ്കിൽ മറ്റൊരു ലോക്ക് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"സ്ക്രീൻ ലോക്ക് ഉപയോഗിക്കുക"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"പുതിയ ലോക്ക് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"എല്ലാം സജ്ജീകരിച്ചു!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"സ്വകാര്യ സ്പേസ് ആക്സസ് ചെയ്യാൻ, നിങ്ങളുടെ ആപ്പ് ലിസ്റ്റിലേക്ക് പോയി താഴേക്ക് സ്ക്രോൾ ചെയ്യുക"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"പൂർത്തിയായി"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"സ്വകാര്യ സ്പേസ് കണ്ടെത്താൻ താഴേക്ക് സ്ക്രോൾ ചെയ്യുക"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"നിങ്ങളുടെ സ്വകാര്യ സ്പേസിന് ഒരു ലോക്ക് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിച്ച് സ്വകാര്യ സ്പേസ് അൺലോക്ക് ചെയ്യാനാകും. സുരക്ഷയ്ക്കായി, ഈ ഓപ്ഷന് ഒരു ബാക്കപ്പ് ലോക്ക് ആവശ്യമാണ്."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"സ്വകാര്യ സ്പേസിന് പിൻ സജ്ജീകരിക്കൂ"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"സ്വകാര്യ സ്പേസിന് പാസ്‍വേഡ് സജ്ജീകരിക്കൂ"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"സ്വകാര്യ സ്പേസിന് പാറ്റേൺ സജ്ജീകരിക്കൂ"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"സ്വകാര്യ സ്പേസ് കാണിക്കാൻ (അന്തിമ UX അല്ല)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"ക്രമീകരണ ആപ്പ് തുറക്കുക"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"സുരക്ഷയും സ്വകാര്യതയും &gt; സ്വകാര്യ സ്‌പേസ് &gt; ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ സ്വകാര്യ സ്‌പേസ് മറയ്‌ക്കുക എന്നിങ്ങനെ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"\'ലോക്ക് ആണെങ്കിൽ സ്വകാര്യ സ്‌പേസ് മറയ്ക്കുക\' ടോഗിൾ ഓഫാക്കുക"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googlers-നുള്ള കുറിപ്പ്: ഈ ഫീച്ചർ ഇപ്പോഴും വികസനഘട്ടത്തിലാണ്"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"മറ്റൊരു ഉപകരണത്തിൽ നിങ്ങൾ ഈ പാസ്‌കീ നൽകേണ്ടതായും വരാം."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"കോർഡിനേറ്റഡ് സെറ്റുമായി ജോടിയാക്കാൻ സ്ഥിരീകരിക്കുക"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"കോൺടാക്‌റ്റുകളിലേക്കും കോൾ ചരിത്രത്തിലേക്കും ആക്‌സസ് അനുവദിക്കുക"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"കോൺടാക്‌റ്റുകളിലേക്കും കോൾ ചരിത്രത്തിലേക്കും ആക്സസ് അനുവദിക്കുകയും ചെയ്യുക"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"വിവരങ്ങൾ, കോൾ അറിയിപ്പുകൾക്കും മറ്റും ഉപയോഗിക്കും"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ലഭ്യമായ ഉപകരണങ്ങൾ"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"വിമാന മോഡിലാണ്"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"പൊതു നെറ്റ്‌വർക്കിനെക്കുറിച്ച് അറിയിപ്പ് നൽകുക"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ഉയർന്ന നിലവാരമുള്ള പബ്ലിക് നെറ്റ്‌വർക്ക് ലഭ്യമാകുമ്പോൾ അറിയിക്കുക"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP നെറ്റ്‌വർക്കുകൾ അനുവദിക്കുക"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP എന്നത്, കുറവ് സുരക്ഷയുള്ള ഒരു പഴയ സുരക്ഷാ പ്രോട്ടോക്കോൾ ആണ്"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP നെറ്റ്‌വർക്കുകൾ സുരക്ഷിതമല്ലാത്തതിനാൽ നിങ്ങളുടെ സേവനദാതാവ് അവ അനുവദിക്കുന്നില്ല"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"വൈഫൈ സ്വയമേവ ഓണാക്കുക"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"നിങ്ങളുടെ വീട്ടിലെ നെറ്റ്‌വർക്ക് പോലെയുള്ള, സംരക്ഷിച്ചതും ഉയർന്ന നിലവാരമുള്ളതുമായ നെറ്റ്‍വർക്കുകൾക്ക് അരികിലായിരിക്കുമ്പോൾ വൈഫൈ തിരികെ സ്വയമേവ ഓണാകും"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ലൊക്കേഷൻ ഓഫായതുകൊണ്ടാണ് ലഭ്യമല്ലാത്തത്. "<annotation id="link">"ലൊക്കേഷൻ"</annotation>" ഓണാക്കുക."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"വൈഫൈ ഓഫ് ആണെങ്കിൽ പോലും ഏത് സമയത്തും ആപ്പുകളെയും സേവനങ്ങളെയും വൈഫൈ നെറ്റ്‌വർക്കുകൾ സ്‌കാൻ ചെയ്യാൻ വൈഫൈ സ്‌കാനിംഗ് അനുവദിക്കുന്നു. ഉദാഹരണമായി ലൊക്കേഷൻ അടിസ്ഥാനമാക്കിയുള്ള ഫീച്ചറുകളും സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ ഇത് ഉപയോഗിക്കാം."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ഓണാക്കുക"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"വൈഫൈ സ്‍കാനിംഗ് ഓണാക്കി"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ഈ നെറ്റ്‌വർക്ക്, സുരക്ഷ കുറവുള്ള ഒരു പഴയ സുരക്ഷാ പ്രോട്ടോക്കോളാണ് ഉപയോഗിക്കുന്നത്"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ബ്ലോക്ക് ചെയ്‌തു"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ഈ നെറ്റ്‌വർക്ക്, സുരക്ഷ കുറവുള്ള WEP എന്ന പഴയ സുരക്ഷാ പ്രോട്ടോക്കോളാണ് ഉപയോഗിക്കുന്നത്. ഏതുവിധേനയും കണക്റ്റ് ചെയ്യാൻ, നിങ്ങൾക്ക് WEP നെറ്റ്‌വർക്കുകൾ അനുവദിക്കാം."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"സുരക്ഷിതമല്ലാത്ത പഴയ സുരക്ഷാ പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നതിനാൽ ഈ നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യാൻ നിങ്ങളുടെ സേവനദാതാവ് നിങ്ങളെ അനുവദിക്കുന്നില്ല"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP അനുവദിക്കുക"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"അടയ്ക്കുക"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"വിപുലമായ ഓപ്ഷനുകൾ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ഡ്രോപ്പ് ഡൗൺ പട്ടികയുടെ വിപുലമായ ഓപ്‌ഷനുകൾ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"വികസിപ്പിക്കുക"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"വൈഫൈയിൽ തുടരുക"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ഒരിക്കലും വീണ്ടും കാണിക്കരുത്"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"കണക്റ്റ് ചെയ്യുക"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"വൈഫൈ ഓണാക്കി"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റ് ചെയ്‌തു"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്യുന്നു"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"കണക്റ്റ് ചെയ്യുന്നു…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"നെറ്റ്‌വർക്കിൽ കണക്റ്റുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"നെറ്റ്‌വർക്ക് പരിധിയിലില്ല"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"മറക്കുക"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"പരിഷ്‌ക്കരിക്കുക"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"നെറ്റ്‌വർക്ക് നിരസിക്കുന്നതിൽ പരാജയപ്പെട്ടു"</string>
     <string name="wifi_save" msgid="2312643132472226807">"സംരക്ഷിക്കുക"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"നെറ്റ്‌വർക്ക് സംരക്ഷിക്കുന്നതിൽ പരാജയപ്പെട്ടു"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"റദ്ദാക്കുക"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"വൈഫൈ"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"മൊബൈൽ ഡാറ്റ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ഇതർനെറ്റ്"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ചാർജ് ചെയ്യുന്നു"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ചാർജ് ചെയ്യുന്നു"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ഹോട്ട്‌സ്‌പോട്ട് കണക്ഷൻ"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"കണക്ഷൻ ശക്തി"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"സംരക്ഷിച്ച നെറ്റ്‌വർക്ക്"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"പാസ്‍വേഡ് സജ്ജീകരിച്ചിട്ടില്ല"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ഹോട്ട്‌സ്‌പോട്ടിന്റെ പേര്"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ഹോട്ട്‌സ്‌പോട്ടിന്റെ പാസ്‌വേഡ്"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP ബാൻഡ്"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ഹോട്ട്‌സ്‌പോട്ട് സ്വയമേവ ഓഫാക്കുക"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"ഒരു ഉപകരണവും കണക്റ്റ് ചെയ്യാതിരിക്കുമ്പോൾ"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"അനുയോജ്യത ദീർഘിപ്പിക്കുക"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ഗെയിമിന്റെ ഡിഫോൾട്ട് ഫ്രെയിം എണ്ണം പ്രവർത്തനരഹിതമാക്കുക"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ഗെയിമുകൾക്കുള്ള പരമാവധി ഫ്രെയിം റേറ്റ് <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz ആയി പരിമിതപ്പെടുത്തുന്നത് പ്രവർത്തനരഹിതമാക്കുക."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"സ്‌മൂത്ത് ഡിസ്പ്ലേ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ആരെങ്കിലും സ്ക്രീനിൽ നോക്കുന്നുണ്ടോ എന്ന് കാണാൻ സ്‌ക്രീൻ ശ്രദ്ധ മുൻക്യാമറ ഉപയോഗിക്കുന്നു. ഇത് ഉപകരണത്തിലാണ് പ്രവർത്തിക്കുന്നത്, ചിത്രങ്ങൾ ഒരിക്കലും സംഭരിക്കുകയോ Google-ലേക്ക് അയയ്ക്കുകയോ ചെയ്യില്ല."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"സ്ക്രീൻ ശ്രദ്ധ ഓണാക്കുക"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"നിങ്ങൾ സ്ക്രീനിൽ നോക്കുമ്പോൾ അത് ഓണാക്കി നിലനിർത്തുക"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"സ്‌ക്രീൻ തെളിഞ്ഞിരിക്കുന്ന സമയപരിധി കൂടുന്നതനുസരിച്ച് കൂടുതൽ ബാറ്ററി ഉപയോഗിക്കും."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ക്യാമറ ലോക്ക് ആണ്"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"മുഖം തിരിച്ചറിയലിന് ക്യാമറ അൺലോക്ക് ചെയ്തിരിക്കണം"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"സ്ക്രീൻ ശ്രദ്ധയ്‌ക്ക് ക്യാമറ അൺലോക്ക് ചെയ്‌തിരിക്കണം"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (സിം സ്ലോട്ട് <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (സിം സ്ലോട്ട് <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (പ്രാഥമികം)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"കാണുന്നതിന്, സംരക്ഷിച്ച നെറ്റ്‌വർക്ക് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL പതിപ്പ്"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ബാറ്ററി നില"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"കമ്മ്യൂണൽ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"കമ്മ്യൂണൽ ക്രമീകരണങ്ങൾ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"സംരക്ഷിക്കുക"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"റദ്ദാക്കുക"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"പേരിന്റെ ഫീൽഡ് ശൂന്യമായിരിക്കരുത്."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ശൂന്യമായിരിക്കരുത്."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ഫീൽഡിൽ 3 സംഖ്യകൾ ഉണ്ടായിരിക്കണം."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ഫീൽഡിൽ 2 അല്ലെങ്കിൽ 3 സംഖ്യകൾ ഉണ്ടായിരിക്കണം."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"%s തരത്തിലുള്ള APN-കൾ ചേർക്കുന്നത് കാരിയർ അനുവദിക്കുന്നില്ല."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ഫീൽഡ് സാധുത ഉള്ളതായിരിക്കണം."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"സ്ഥിര APN ക്രമീകരണങ്ങൾ പുനഃസ്ഥാപിക്കുന്നു"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ഡിഫോൾട്ടിലേക്ക് റീസെറ്റ് ചെയ്യൂ"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ഡിഫോൾട്ട് APN ക്രമീകരണം റീസെറ്റ് ചെയ്യൽ പൂർത്തിയായി."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"റീസെറ്റ് ചെയ്യുക"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth-ഉം വൈഫൈയും റീസെറ്റ് ചെയ്തു"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ഇ-സിമ്മുകൾ മായ്‌ക്കുക"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ഇത്, ഒരു മൊബെെൽ സേവന പ്ലാനുകളും റദ്ദാക്കില്ല. പകരം ഉപയോഗിക്കാനുള്ള സിമ്മുകൾ ഡൗൺലോഡ് ചെയ്യാൻ നിങ്ങളുടെ സേവനദാതാവിനെ ബന്ധപ്പെടുക."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ക്രമീകരണം റീസെറ്റ് ചെയ്യുക"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"എല്ലാ നെറ്റ്‌വർക്കിംഗ് ക്രമീകരണവും പുനഃസജ്ജീകരിക്കണോ? നിങ്ങൾക്ക് ഈ പ്രവർത്തനം പഴയപടിയാക്കാനാവില്ല."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"എല്ലാ നെറ്റ്‌വർക്ക് ക്രമീകരണവും റീസെറ്റ് ചെയ്ത് ഇ-സിമ്മുകൾ മായ്ക്കണോ? ഈ പ്രവർത്തനം നിങ്ങൾക്ക് പഴയപടിയാക്കാനാകില്ല."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"റീസെറ്റ് ചെയ്യണോ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ഈ ഉപയോക്താവിന് നെറ്റ്‌വർക്ക് റീസെറ്റ് ലഭ്യമല്ല"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"നെറ്റ്‌വർക്ക് ക്രമീകരണം റീസെറ്റുചെയ്‌തു"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM-കൾ മായ്ക്കാനാവില്ല"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ഒരു പിശക് കാരണം ഇ-സിമ്മുകൾ മായ്ക്കാനാകുന്നില്ല.\n\nനിങ്ങളുടെ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"എല്ലാ ഡാറ്റയും മായ്‌ക്കുക (ഫാക്‌ടറി റീസെറ്റ്)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"എല്ലാ ഡാറ്റയും മായ്‌ക്കുക (ഫാക്‌ടറി റീസെറ്റ്)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"സംഗീതം"</li>\n<li>"ഫോട്ടോകൾ"</li>\n<li>"മറ്റ് ഉപയോക്തൃ ഡാറ്റ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-കൾ"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"നിങ്ങളുടെ മൊബൈൽ സർവീസ് പ്ലാൻ ഇത് റദ്ദാക്കില്ല."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"നിങ്ങളുടെ എല്ലാ വ്യക്തിപരമായ വിവരങ്ങളും ഡൗൺലോഡ് ചെയ്‌ത ആപ്പുകളും ഇല്ലാതാക്കപ്പെടും. ഈ പ്രവർത്തനം പഴയപടിയാക്കാനാകില്ല."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ഡൗൺലോഡ് ചെയ്‌ത ആപ്പുകളും SIM-കളും ഉൾപ്പെടെ നിങ്ങളുടെ എല്ലാ വ്യക്തിപരമായ വിവരങ്ങളും ഇല്ലാതാക്കപ്പെടും. ഈ പ്രവർത്തനം പഴയപടിയാക്കാനാകില്ല."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"എല്ലാ ഡാറ്റയും മായ്‌ക്കണോ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ഈ ഉപയോക്താവിനായി ഫാക്‌ടറി റീസെറ്റ് ലഭ്യമല്ല"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"മായ്‌ക്കുന്നു"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ഹോട്ട്‌സ്‌പോട്ട്, USB, Bluetooth, ഇതർനെറ്റ്"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"മറ്റ് ഉപകരണങ്ങളുമായി ഇന്‍റർനെറ്റ് പങ്കിടുന്നില്ല"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ഓഫാണ്"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ടെതറിംഗ്"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"വൈഫൈ ഹോട്ട്‌സ്‌പോട്ട് ഉപയോഗിക്കരുത്"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB വഴി മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Bluetooth വഴി മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ഇതർനെറ്റിലൂടെ മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB, Bluetooth എന്നിവ വഴി മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB, ഇതർനെറ്റ് എന്നിവയിലൂടെ മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Bluetooth, ഇതർനെറ്റ് എന്നിവയിലൂടെ മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, Bluetooth, ഇതർനെറ്റ് എന്നിവയിലൂടെ മാത്രം ഇന്റർനെറ്റ് പങ്കിടുക"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ടെതറിംഗ്"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth ടെതറിംഗ്"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ഇതർനെറ്റ് ടെതറിംഗ്"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"നിങ്ങളുടെ വൈഫൈ വഴിയോ മൊബൈൽ ഡാറ്റാ കണക്ഷൻ വഴിയോ മറ്റ് ഉപകരണങ്ങളിലേക്ക് ഇന്റർനെറ്റ് നൽകാൻ ഹോട്ട്‌സ്പോട്ടും ടെതറിംഗും ഉപയോഗിക്കുക. സമീപമുള്ള ഉപകരണങ്ങളുമായി ഉള്ളടക്കം പങ്കിടാൻ ആപ്പുകൾക്ക് ഹോട്ട്‌സ്പോട്ട് സൃഷ്‌ടിക്കാനുമാവും."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"സഹായം"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"മൊബൈൽ നെറ്റ്‌വർക്ക്"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"മൊബൈൽ പ്ലാൻ"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS ആപ്പ്"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS അപ്ലിക്കേഷൻ മാറ്റണോ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"നിങ്ങളുടെ SMS അപ്ലിക്കേഷനായി <xliff:g id="CURRENT_APP">%2$s</xliff:g> എന്നതിനുപകരം <xliff:g id="NEW_APP">%1$s</xliff:g> ഉപയോഗിക്കണോ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"വൈഫൈ അസിസ്‌റ്റന്റ് മാറ്റണോ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="CURRENT_APP">%2$s</xliff:g> എന്നതിന് പകരം <xliff:g id="NEW_APP">%1$s</xliff:g> എന്നതാണോ ഉപയോഗിക്കുന്നത്?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"നിങ്ങളുടെ നെറ്റ്‌വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കാൻ <xliff:g id="NEW_APP">%s</xliff:g> ആണോ ഉപയോഗിക്കുന്നത്?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"അജ്ഞാത സിം ഓപ്പറേറ്റർ"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> എന്ന ഓപ്പറേറ്റർക്ക് അറിയപ്പെടുന്ന പ്രൊവിഷനിംഗ് വെബ്‌സൈറ്റ് ഒന്നുമില്ല"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"സിം കാർഡ് ചേർത്തതിനുശേഷം പുനരാരംഭിക്കുക"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്യുക"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"പുതിയ ലൊക്കേഷൻ അഭ്യർത്ഥനകൾ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ഔദ്യോഗിക പ്രൊഫൈലിനായുള്ള ലൊക്കേഷൻ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ആപ്പ് ലൊക്കേഷൻ അനുമതികൾ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ആക്സസ് മായ്ക്കുക"</string>
     <string name="controls_label" msgid="8671492254263626383">"നിയന്ത്രണങ്ങൾ"</string>
     <string name="force_stop" msgid="2681771622136916280">"നിർബന്ധിതമായി നിർത്തുക"</string>
+    <string name="archive" msgid="9074663845068632127">"ആർക്കൈവ് ചെയ്യുക"</string>
+    <string name="restore" msgid="7622486640713967157">"പുനഃസ്ഥാപിക്കുക"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"മൊത്തം"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ആപ്പ് വലുപ്പം"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB സംഭരണ അപ്ലിക്കേഷൻ"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"പാക്കേജ് വലുപ്പം കണക്കാക്കാനായില്ല."</string>
     <string name="version_text" msgid="7628938665256107608">"പതിപ്പ് <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"നീക്കുക"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ആർക്കൈവ് ചെയ്യാനായില്ല"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ആർക്കൈവ് ചെയ്തു"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"പുനഃസ്ഥാപിക്കാനായില്ല"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> പുനഃസ്ഥാപിക്കുന്നു"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"മറ്റൊരു മൈഗ്രേഷൻ ഇതിനകം തന്നെ പുരോഗതിയിലാണ്."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ആവശ്യമായ സംഭരണ ഇടമില്ല."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"അപ്ലിക്കേഷൻ നിലവിലില്ല."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ഓൺ-സ്‌ക്രീൻ കീബോർഡ് ലഭ്യമാണ്"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ഓൺ-സ്‌ക്രീൻ കീബോർഡ് മാനേജ് ചെയ്യുക"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ഓപ്‌ഷനുകൾ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ഉപയോഗസഹായി"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ഫിസിക്കൽ കീബോർഡ്"</string>
     <string name="show_ime" msgid="4334255501724746849">"ഓൺ-സ്‌ക്രീൻ കീബോർഡ് ഉപയോഗിക്കുക"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"ഫിസിക്കൽ കീബോർഡ് സജീവമായിരിക്കുമ്പോൾ സ്ക്രീനിൽ നിലനിർത്തുക"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"ബൗൺസ് കീകൾ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ഫിസിക്കൽ കീബോർഡ് ആക്‌സസ് ചെയ്യാൻ, ബൗൺസ് കീകൾ പ്രവർത്തനക്ഷമമാക്കുക"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"സ്‌റ്റിക്കി കീകൾ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ഫിസിക്കൽ കീബോർഡ് ആക്‌സസ് ചെയ്യാൻ, സ്‌റ്റിക്കി കീകൾ പ്രവർത്തനക്ഷമമാക്കുക"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"കീബോഡ് കുറുക്കുവഴികൾ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"കുറുക്കുവഴികളുടെ ലിസ്റ്റ് കാണിക്കുക"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ഔദ്യോഗിക പ്രൊഫൈൽ കീബോർഡുകളും ടൂളുകളും"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ഉപയോഗിച്ച സമയ പ്രകാരം അടുക്കുക"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"അവസാനം ഉപയോഗിച്ച സമയം പ്രകാരം അടുക്കൂ"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ആപ്പിന്റെ പേര് പ്രകാരം അടുക്കൂ"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"അവസാനം ഉപയോഗിച്ചത്"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"അവസാനമായി ഉപയോഗിച്ചത്"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ഉപയോഗിച്ചിട്ടേയില്ല"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ഉപയോഗ സമയം"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ഉപയോഗസഹായി"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ഉപയോഗസഹായി ക്രമീകരണങ്ങൾ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"എന്തായാലും തുടരുക"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"റദ്ദാക്കുക"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"മാഗ്നിഫിക്കേഷൻ ക്രമീകരണം"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"3 തവണ ടാപ്പ് ചെയ്‌ത് മാഗ്നിഫൈചെയ്യൂ"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"കുറുക്കുവഴിയിലൂടെ മാഗ്നിഫൈ ചെയ്യൂ"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"കുറുക്കുവഴി, മൂന്ന് തവണ ടാപ്പ് എന്നിവയിലൂടെ മാഗ്നിഫൈ ചെയ്യൂ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിനെ കുറിച്ച്"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"തുറക്കാൻ രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്‌ക്രീനിൽ ഡബിൾ ടാപ്പ് ചെയ്യുക"</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="860548190334486449">"മാഗ്നിഫിക്കേഷൻ ആരംഭിക്കാനും നിർത്താനും, രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്‌ക്രീനിൽ ഡബിൾ ടാപ്പ് ചെയ്യുക."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ഉപയോഗസഹായി ഫീച്ചർ ഉപയോഗിക്കാൻ, സ്ക്രീനിന്റെ ചുവടെ നിന്ന് മൂന്ന് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക.\n\nഫീച്ചറുകൾക്കിടയിൽ മാറാൻ, മൂന്ന് വിരലുകൾ ഉപയോഗിച്ച് മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്‌ത് പിടിക്കുക."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"മനസിലായി"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ഉപയോഗസഹായി ബട്ടൺ ക്രമീകരണം"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ബട്ടൺ ക്രമീകരണം"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> കുറുക്കുവഴി"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ഉപയോഗസഹായി ബട്ടൺ"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ഉപയോഗസഹായി ജെസ്ച്ചർ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്‌ക്രീനിൽ ഡബിൾ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്‌ക്രീനിൽ ഡബിൾ ടാപ്പ് ചെയ്യുക"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"രണ്ട് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"സ്ക്രീൻ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"സ്ക്രീനിൽ മൂന്ന് തവണ ടാപ്പ് ചെയ്യുക"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"സ്ക്രീനിൽ {0,number,integer} തവണ വേഗത്തിൽ ടാപ്പ് ചെയ്യുക. ഈ കുറുക്കുവഴി നിങ്ങളുടെ ഉപകരണത്തിന്റെ വേഗത കുറച്ചേക്കാം"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ഉപയോഗസഹായി ബട്ടൺ, ജെസ്ച്ചർ എന്നിവയെ കുറിച്ച് കൂടുതലറിയുക"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ഉപയോഗസഹായി ബട്ടൺ ഉപയോഗിക്കുന്നു. 3-ബട്ടൺ നാവിഗേഷനൊപ്പം ഈ ജെസ്ച്ചർ ലഭ്യമല്ല."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ഉപയോഗസഹായി ഫീച്ചറുകൾ അതിവേഗം ആക്‌സസ് ചെയ്യുക"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ആരംഭിക്കുന്നതിന്"</b>\n"1. ഉപയോഗസഹായി ക്രമീകരണത്തിലേക്ക് പോകുക\n2. ഫീച്ചർ തിരഞ്ഞെടുത്ത് കുറുക്കുവഴിയിൽ ടാപ്പ് ചെയ്യുക\n3. ഫീച്ചർ ആക്‌സസ് ചെയ്യാൻ ഒരു ബട്ടൺ ഉപയോഗിക്കണോ ജെസ്ച്ചർ ഉപയോഗിക്കണോ എന്ന് തിരഞ്ഞെടുക്കുക"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ആരംഭിക്കുന്നതിന്"</b>\n"1. ഉപയോഗസഹായി ക്രമീകരണത്തിലേക്ക് പോകുക\n2. ഫീച്ചർ തിരഞ്ഞെടുത്ത് കുറുക്കുവഴിയിൽ ടാപ്പ് ചെയ്യുക\n3. ഫീച്ചർ ആക്‌സസ് ചെയ്യാനുള്ള ബട്ടൺ തിരഞ്ഞെടുക്കുക"</string>
+    <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_size_title" msgid="5785110470538960881">"വലുപ്പം"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"പവർബട്ടൺ കോൾ നിർത്തുന്നു"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"വലിയ മൗസ് പോയിന്റർ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"മൗസ് പോയിന്റർ വ്യക്തമായി കാണുന്നതാക്കുക"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"എല്ലാ ആപ്പുകളും ഡാർക്ക് ആക്കുക"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ഡാർക്ക് തീമില്ലാത്ത ആപ്പിൽ പ്രയോഗിക്കും. ചില ആപ്പിൽ നെഗറ്റീവ് ലുക്ക് പോലെ ഡിസ്പ്ലേ പ്രശ്നമുണ്ടാകാം."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ആനിമേഷനുകൾ നീക്കം ചെയ്യുക"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"സ്‌ക്രീനിലെ ചലനം കുറയ്‌ക്കുക"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"മോണോ ഓഡിയോ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ഇതിന് ഒരു ആപ്പുമായോ ഹാർഡ്‌വെയർ സെൻസറുമായോ ഉള്ള നിങ്ങളുടെ ആശയവിനിമയങ്ങൾ ട്രാക്ക് ചെയ്യാനും നിങ്ങളുടെ പേരിൽ ആശയവിനിമയം നടത്താനും കഴിയും."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"അനുവദിക്കൂ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"നിരസിക്കുക"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"നിർത്തുക"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"റദ്ദാക്കൂ"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> നിർത്തണോ?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> ടാപ്പ് ചെയ്യുന്നത് <xliff:g id="SERVICE">%2$s</xliff:g> എന്നതിനെ നിർത്തും."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ഓഫാക്കുക"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ഓണാക്കിയിടൂ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ഓഫാക്കണോ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"സേവനങ്ങളൊന്നും ഇൻസ്റ്റാളുചെയ്‌തിട്ടില്ല"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ഒരു സേവനവും തിരഞ്ഞെടുത്തിട്ടില്ല"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"വിവരണമൊന്നും നൽകിയിട്ടില്ല."</string>
     <string name="settings_button" msgid="2195468788019730377">"ക്രമീകരണം"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"പ്രകാശ സെൻസിറ്റിവിറ്റി, ഫോട്ടോഫോബിയ, ഡാർക്ക് തീം, ചെന്നിക്കുത്ത്, തലവേദന, വായനാ മോഡ്, നൈറ്റ് മോഡ്, തെളിച്ചം കുറയ്‌ക്കുക, വൈറ്റ് പോയിന്റ്"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ലളിതമായ ഉപയോഗം, എളുപ്പത്തിലുള്ള ആക്‌സസ്, സഹായം, സഹായകരം"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"കാഴ്‌ച, കേൾവി, കാഴ്‌ചാ വൈകല്യം, കേൾവിക്കുറവ്, ചലനശേഷി, കഴിവ്, സഹായകരമായത്, സഹായം, ഉപയോഗിക്കാനുള്ള എളുപ്പം, ആക്‌സസ് ചെയ്യാനുള്ള എളുപ്പം, കൈ, സഹായം"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"വിൻഡോ മാഗ്നിഫയർ, സൂം, മാഗ്നിഫിക്കേഷൻ, കുറഞ്ഞ കാഴ്ച, വലുതാക്കുക, വലുപ്പം കൂട്ടുക"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"അടിക്കുറിപ്പുകൾ, സബ്‌ടൈറ്റിലുകൾ, CC, Live Transcribe, കേൾവിക്ക് പ്രശ്നം, കേൾവിക്കുറവ്, CART, സ്‌പീച്ച് ടു ടെക്‌സ്റ്റ്, സബ്‌ടൈറ്റിൽ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"കളർ കോൺട്രാസ്റ്റ്"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ചലനക്ഷമത, മൗസ്"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ശ്രവണ സഹായികൾ, കേൾവിക്കുറവ്, കേൾവി നഷ്‌ടമാകൽ, കോക്ലിയർ ഇംപ്ലാന്റുകൾ, ആംപ്ലിഫിക്കേഷൻ ഉപകരണങ്ങൾ, സൗണ്ട് പ്രോസസറുകൾ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ചലനശേഷി, മൗസ്, എക്‌സ്‌റ്റേണൽ മൗസ്, ഹെഡ് മൗസ്, അഡാപ്‌റ്റീവ് മൗസ്, വീൽചെയർ, ജോയ്‌സ്റ്റിക്ക്"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ശ്രവണ സഹായികൾ, കേൾവിക്ക് തകരാർ, കേൾവി നഷ്‌ടമാകൽ, കോക്ലിയർ ഇംപ്ലാന്റുകൾ, ആംപ്ലിഫിക്കേഷൻ ഉപകരണങ്ങൾ, ശബ്‌ദ പ്രോസസറുകൾ, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"കേൾവിക്ക് തകരാർ, കേൾവിക്കുറവ്, അടിക്കുറിപ്പുകൾ ടെലിടൈപ്പ്, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"മൂന്ന് ബട്ടണുകൾ"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"കഴിവ്, ചലനശേഷി, മുതിർന്നവർ, സന്ധിവാതം, rsi, പക്ഷാഘാതം, തുടിപ്പ്, മൾട്ടിപ്പിൾ സ്‌ക്ലീറോസിസ്, സെറിബ്രൽ പാൾസി, വിറയൽ, ആവർത്തിച്ചുള്ള സ്‌ട്രെയിൻ പരുക്ക്, കൈ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"കാലതാമസം, കഴിവ്, മുതിർന്നവർ"</string>
     <string name="print_settings" msgid="8519810615863882491">"പ്രിന്റിംഗ്"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ഓഫ്"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ഒരു പ്രിന്റ് സേവനം ഓണാണ്}other{# പ്രിന്റ് സേവനങ്ങൾ ഓണാണ്}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ഉയർന്ന ഉപയോഗമുള്ള ആപ്പുകൾ കാണുക"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"നിങ്ങളുടെ ബാറ്ററി പരിരക്ഷിക്കാൻ ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്തു"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"നിങ്ങളുടെ ബാറ്ററിയുടെ ആയുസ്സ് വർദ്ധിപ്പിക്കാൻ സഹായിക്കുന്നതിന്, ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്യുന്നു"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"നിങ്ങളുടെ ബാറ്ററി പരിരക്ഷിക്കാൻ ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്തു"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"നിങ്ങളുടെ ബാറ്ററിയുടെ ആയുസ്സ് വർദ്ധിപ്പിക്കാൻ സഹായിക്കുന്നതിന്, ഡോക്ക് ചെയ്യുമ്പോൾ ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്യുന്നു"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"നിങ്ങളുടെ ബാറ്ററി പരിരക്ഷിക്കാൻ ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്തു"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"നിങ്ങളുടെ ബാറ്ററിയുടെ ആയുസ്സ് വർദ്ധിപ്പിക്കാൻ സഹായിക്കുന്നതിന്, ഡോക്ക് ചെയ്യുമ്പോൾ ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്യുന്നു"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"പൂർണ്ണമായും ചാർജ് ചെയ്യുന്നു"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"നിങ്ങളുടെ ബാറ്ററി പരിരക്ഷിക്കാൻ, അടുത്ത തവണ ടാബ്‌ലെറ്റ് ഡോക്ക് ചെയ്യുമ്പോൾ ചാർജിംഗ് ഒപ്റ്റിമൈസ് ചെയ്യും"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ചാർജിംഗ് താൽക്കാലികമായി നിർത്തിയതിനെ കുറിച്ച് കൂടുതലറിയുക"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ചാർജിംഗ് പുനനരാരംഭിക്കുക"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ഉയർന്ന പവർ പശ്ചാത്തല ആക്‌റ്റിവിറ്റി ഉൾപ്പെടെ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"നീക്കം ചെയ്യുക"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"റദ്ദാക്കുക"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"പൂർണ്ണമായി ചാർജ് ചെയ്യുക"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ചാർജിംഗ് ആക്സസറിയുമായി ബന്ധപ്പെട്ട പ്രശ്നം"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"അനുയോജ്യമല്ലാത്ത ചാർജിംഗിനെ കുറിച്ച് കൂടുതലറിയുക"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ബാറ്ററി മാനേജർ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ആപ്പുകൾ സ്വയമേവ മാനേജ് ചെയ്യുക"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ഇപ്പോൾ"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ബാറ്ററി ഉപയോഗത്തിന്റെ ചാർട്ട്"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ബാറ്ററിയുടെ ദിവസേനയുള്ള ഉപയോഗത്തിന്റെ ചാർട്ട്"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ബാറ്ററിയുടെ ഓരോ മണിക്കൂറിലുമുള്ള ഉപയോഗത്തിന്റെ ചാർട്ട്"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> മുതൽ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> വരെയുള്ള ബാറ്ററി ലെവൽ ശതമാനം"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"അവസാനമായി മുഴുവൻ ചാർജ് ചെയ്ത ശേഷമുള്ള ബാറ്ററി ഉപയോഗം"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> വരെയുള്ള ബാറ്ററി ഉപയോഗം"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"അവസാനം പൂർണ്ണമായി ചാർജ് ചെയ്തതിന് ശേഷമുള്ള സ്‌ക്രീൻ സമയം"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"അടിയന്തര ഡയലിംഗ് സിഗ്നൽ"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ഒരു അടിയന്തര കോൾ ലഭിക്കുന്ന സമയത്തെ പ്രവർത്തരീതി സജ്ജീകരിക്കുക"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ബാക്കപ്പ്"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ഓണാണ്"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ഓഫാണ്"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ബാക്കപ്പുചെയ്യലും പുനഃസ്ഥാപിക്കലും"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"വ്യക്തിഗത ഡാറ്റ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ഡാറ്റ ബാക്കപ്പുചെയ്യൂ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"പേര്"</string>
     <string name="vpn_type" msgid="5533202873260826663">"തരം"</string>
     <string name="vpn_server" msgid="2908816134941973935">"സെർവർ വിലാസം"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP എൻക്രിപ്‌ഷൻ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP രഹസ്യം"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ഐഡന്റിഫയർ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec മുമ്പ് പങ്കിട്ട കീ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec ഉപയോക്തൃ സർട്ടിഫിക്കറ്റ്"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA സർട്ടിഫിക്കറ്റ്"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec സെർവർ സർട്ടിഫിക്കറ്റ്"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"വിപുലമായ ഓപ്ഷനുകൾ കാണിക്കുക"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS തിരയൽ ഡൊമയ്നുകൾ"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS സെർവറുകൾ (ഉദാ. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"റൂട്ടുകൾ കൈമാറൽ (ഉദാ. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ഉപയോക്താവിന്റെ പേര്"</string>
     <string name="vpn_password" msgid="1183746907642628127">"പാസ്‌വേഡ്"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"അക്കൗണ്ട് വിവരം സംരക്ഷിക്കുക"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ഉപയോഗിച്ചിട്ടില്ല)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(സെർവർ പരിശോധിക്കേണ്ട)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(സെർവറിൽ നിന്നും ലഭിച്ചത്)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ഈ VPN തരത്തിന് എപ്പോഴും കണക്റ്റ് ചെയ്തതായിരിക്കാനാവില്ല"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"\'എല്ലായ്‌പ്പോഴും ഓണായിരിക്കുന്ന VPN\' സംഖ്യാ സെർവർ വിലാസങ്ങൾക്ക് മാത്രമേ അനുയോജ്യമാകൂ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"\'എല്ലായ്‌പ്പോഴും ഓണായിരിക്കുന്ന VPN\'-നായി ഒരു DNS സെർവർ നൽകിയിരിക്കണം"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"\'എല്ലായ്‌പ്പോഴും ഓണായിരിക്കുന്ന VPN\'-നായുള്ള DNS സെർവർ വിലാസങ്ങൾ സംഖ്യകളാലുള്ളതായിരിക്കണം"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"നൽകിയിരിക്കുന്ന വിവരങ്ങൾ \'എല്ലായ്‌പ്പോഴും ഓണായിരിക്കുന്ന VPN\'-ന് അനുയോജ്യമല്ല"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"റദ്ദാക്കുക"</string>
     <string name="vpn_done" msgid="5137858784289564985">"നിരസിക്കുക"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN ഇല്ലാത്ത കണക്ഷനുകൾ ബ്ലോക്കുചെയ്യുക"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN കണക്ഷൻ ആവശ്യമാണോ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"സുരക്ഷിതമല്ല. ഒരു IKEv2 VPN-ലേക്ക് അപ്ഡേറ്റ് ചെയ്യുക"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"പിന്തുണയില്ലാത്ത VPN ആരംഭിക്കാനായില്ല."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"എല്ലായ്‌പ്പോഴും കണക്റ്റുചെയ്‌തതായി തുടരുന്ന ഒരു VPN പ്രൊഫൈൽ തിരഞ്ഞെടുക്കുക. ഈ VPN-ലേക്ക് കണക്റ്റുചെയ്‌തിരിക്കുമ്പോൾ മാത്രമേ നെറ്റ്‌വർക്ക് ട്രാഫിക്ക് അനുവദിക്കുകയുള്ളൂ."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ഒന്നുമില്ല"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"എല്ലായ്പ്പോഴും ഓണായിരിക്കുന്ന VPN-ന് രണ്ട് സെർവറുകൾക്കും DNS-നുമായി ഒരു IP വിലാസം ആവശ്യമാണ്."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER അലേർട്ടുകൾ"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"കുട്ടികളെ അപഹരിക്കുന്നതിനെ സംബന്ധിച്ച ബുള്ളറ്റിനുകൾ നേടുക"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ആവർത്തിക്കുക"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"കോൾ മാനേജർ പ്രവർത്തനക്ഷമമാക്കുക"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"നിങ്ങളുടെ കോളുകൾ നടത്തുന്നതെങ്ങനെ എന്നത് നിയന്ത്രിക്കാൻ ഈ സേവനത്തെ അനുവദിക്കുക."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"കോൾ മാനേജർ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"വയർലെസ് അടിയന്തര മുന്നറിയിപ്പുകൾ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"നെറ്റ്‌വർക്ക് ഓപ്പറേറ്റർമാർ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ആക്‌സസ്സ് പോയിന്റ് പേരുകൾ"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"പണമടയ്ക്കുക. ടാപ്പുചെയ്യുക, പേയ്‌മെന്റുകൾ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ബാക്കപ്പ് ചെയ്യൂ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"വിരൽചലനം"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ഫേസ്, അൺലോക്ക് ചെയ്യുക, പരിശോധിച്ചുറപ്പിക്കുക, സൈൻ ഇൻ ചെയ്യുക"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ഫെയ്‌സ്, അൺലോക്ക്, പരിശോധിച്ചുറപ്പിക്കൽ, സൈൻ ഇൻ, ഫിംഗർപ്രിന്റ്, ബയോമെട്രിക്"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl പതിപ്പ്, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ശബ്ദങ്ങൾ ഓണാക്കുക"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"തത്സമയ ക്യാപ്‌ഷനുകൾ"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"മീഡിയയ്ക്ക് സ്വയമേവ അടിക്കുറിപ്പ് നൽകുക"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ഫോൺ സ്‌പീക്കറുകൾ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ടാബ്‌ലെറ്റ് സ്‌പീക്കറുകൾ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ഉപകരണ സ്‌പീക്കറുകൾ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"വയേർഡ് ഹെഡ്ഫോണുകൾ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"അനുയോജ്യമായ മീഡിയയിൽ നിന്നുള്ള ഓഡിയോ കൂടുതൽ മുഴുകിപ്പിക്കുന്നതാക്കുന്നു"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ഓഫാണ്"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"അടുത്തകാലത്തെ സംഭാഷണങ്ങൾ നീക്കം ചെയ്തു"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"സംഭാഷണം നീക്കംചെയ്‌തു."</string>
     <string name="clear" msgid="5092178335409471100">"മായ്ക്കുക"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> എന്നത് മായ്‌ക്കുക"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"മുൻഗണനയുള്ളതും പരിഷ്‌കരിച്ചതുമായ സംഭാഷണങ്ങൾ ഇവിടെ ദൃശ്യമാവും"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"സംഭാഷണം മുൻഗണനയുള്ളതായി അടയാളപ്പെടുത്തിയാലോ സംഭാഷണങ്ങളിൽ മറ്റെന്തെങ്കിലും മാറ്റങ്ങൾ വരുത്തിയാലോ അവ ഇവിടെ ദൃശ്യമാവും. \n\nസംഭാഷണ ക്രമീകരണം മാറ്റാൻ: \nപുൾ-ഡൗൺ ഷെയ്‌ഡ് തുറക്കുന്നതിന് സ്ക്രീനിന്റെ മുകളിൽ നിന്ന് താഴേക്ക് സ്വൈപ്പ് ചെയ്യുക, തുടർന്ന് സംഭാഷണം സ്‌പർശിച്ച് പിടിക്കുക."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ചെറുതാക്കുക"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ഓഫാണ്"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ആപ്പ് പിൻ ചെയ്യൽ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"അൺപിൻ ചെയ്യുന്നത് വരെ നിലവിലെ ആപ്പ് കാണുന്ന വിധത്തിൽ നിലനിർത്താൻ ആപ്പ് പിൻ ചെയ്യൽ നിങ്ങളെ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു നിർദ്ദിഷ്‌ട ഗെയിം കളിക്കാൻ വിശ്വസ്‌ത സുഹൃത്തിനെ അനുവദിക്കുന്നതിന് ഈ ഫീച്ചർ ഉപയോഗിക്കാം."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"ആപ്പ് പിൻ ചെയ്തിരിക്കുമ്പോൾ, പിൻ ചെയ്‌ത ആപ്പിന് മറ്റ് ആപ്പുകൾ തുറക്കാനും വ്യക്തിപരമായ ഡാറ്റ ആക്‌സസ് ചെയ്യാനുമായേക്കാം. \n\nആപ്പ് പിൻ ചെയ്യൽ ഉപയോഗിക്കാൻ: 	\n1. ആപ്പ് പിൻ ചെയ്യൽ ഓണാക്കുക 	\n2. അവലോകനം തുറക്കുക 	\n3. സ്ക്രീനിന്റെ മുകളിലുള്ള ആപ്പ് ഐക്കണിൽ ടാപ്പ് ചെയ്യുക, തുടർന്ന് \'പിൻ\' ടാപ്പ് ചെയ്യുക"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"ആപ്പ് പിൻ ചെയ്തിരിക്കുമ്പോൾ, പിൻ ചെയ്‌ത ആപ്പിന് മറ്റ് ആപ്പുകൾ തുറക്കാനും വ്യക്തിപരമായ ഡാറ്റ ആക്‌സസ് ചെയ്യാനുമായേക്കാം. \n\nനിങ്ങളുടെ ഉപകരണം മറ്റൊരാളുമായി സുരക്ഷിതമായി പങ്കിടണമെന്നുണ്ടെങ്കിൽ, പകരം ഒരു അതിഥി ഉപയോക്താവ് ഓപ്ഷൻ ഉപയോഗിക്കാൻ ശ്രമിക്കുക. \n\nആപ്പ് പിൻ ചെയ്യൽ ഉപയോഗിക്കാൻ: 	\n1. ആപ്പ് പിൻ ചെയ്യൽ ഓണാക്കുക 	\n2. അവലോകനം തുറക്കുക 	\n3. സ്ക്രീനിന്റെ മുകളിലുള്ള ആപ്പ് ഐക്കണിൽ ടാപ്പ് ചെയ്യുക, തുടർന്ന് \'പിൻ\' ടാപ്പ് ചെയ്യുക"</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_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">"അൺപിൻ ചെയ്യുംമുമ്പ് പിൻ ചോദിക്കുക"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ഉപയോഗിക്കുന്നില്ലെങ്കിൽ ആപ്പ് മാനേജ് ചെയ്യൂ"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"അനുമതികൾ നീക്കം ചെയ്യുക, താൽക്കാലിക ഫയലുകൾ ഇല്ലാതാക്കുക, അറിയിപ്പുകൾ നിർത്തുക, ആപ്പ് ആർക്കൈവ് ചെയ്യുക"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"എല്ലാ ആപ്പുകളും"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ഇൻസ്‌റ്റാൾ ചെയ്‌ത ആപ്പുകൾ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ഇൻസ്‌റ്റ‌ന്റ് ആപ്പ്"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ശേഷിക്കുന്നത്"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ആപ്പുകൾ ഉപയോഗിച്ച മെമ്മറി"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{കഴിഞ്ഞ {time} ഒരു ആപ്പ്, മെമ്മറി ഉപയോഗിച്ചു}other{കഴിഞ്ഞ {time} # ആപ്പുകൾ, മെമ്മറി ഉപയോഗിച്ചു}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"മെമ്മറി പ്രൊഫൈലിംഗ് പ്രവർത്തനക്ഷമമാക്കൂ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"മെമ്മറി ഉപയോഗ പ്രൊഫൈലിംഗിന് അധിക സിസ്റ്റം ഉറവിടങ്ങൾ ആവശ്യമാണ്."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"മെമ്മറി പ്രൊഫൈലിംഗ് പ്രവർത്തനരഹിതമാക്കി"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ഫ്രീക്വൻസി"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"പരമാവധി ഉപയോഗം"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"ഡാറ്റയൊന്നും ഉപയോഗിച്ചില്ല"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുക"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിക്കുന്നത് അനുവദിക്കുക"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"നിങ്ങൾ ഉപയോഗിക്കുന്ന മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ ഈ ആപ്പിനെ ദൃശ്യമാക്കാൻ അനുവദിക്കുക. നിങ്ങൾ എവിടെ ടാപ്പ് ചെയ്യുന്നു എന്നത് കാണാനോ സ്‌ക്രീനിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നത് മാറ്റാനോ ഈ ആപ്പിന് കഴിയും."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"മീഡിയ ഔട്ട്പുട്ട് മാറ്റുക"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"മീഡിയ ഔട്ട്പുട്ട് മാറാൻ ആപ്പിനെ അനുവദിക്കുക"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"കണക്റ്റ് ചെയ്ത ഏത് ഉപകരണമാണ്, മറ്റ് ആപ്പുകളിൽ നിന്നുള്ള ഓഡിയോ അല്ലെങ്കിൽ വീഡിയോ പ്ലേ ചെയ്യേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ ഈ ആപ്പിനെ അനുവദിക്കുക. അനുവദിച്ചാൽ, ഈ ആപ്പിന് ഹെഡ്‌ഫോണുകൾ, സ്‌പീക്കറുകൾ എന്നിവ പോലുള്ള ലഭ്യമായ ഉപകരണങ്ങളുടെ ലിസ്റ്റ് ആക്സസ് ചെയ്യാനും ഓഡിയോ അല്ലെങ്കിൽ വീഡിയോ സ്ട്രീം ചെയ്യാനോ കാസ്റ്റ് ചെയ്യാനോ ഏത് ഔട്ട്പുട്ട് ഉപകരണമാണ് ഉപയോഗിക്കേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാനും കഴിയും."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"എല്ലാ ഫയലുകളിലേക്കും ആക്സസ്"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"വോയ്‌സ് ആക്റ്റിവേഷൻ മെച്ചപ്പെടുത്തുക"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"വോയ്‌സ് ആക്‌റ്റിവേഷൻ മോഡൽ മെച്ചപ്പെടുത്താൻ ഈ ഉപകരണം സ്വകാര്യ ഇന്റലിജൻസ് ഉപയോഗിക്കുന്നു. എല്ലാവർക്കുമായി മോഡൽ മെച്ചപ്പെടുത്തുന്നതിനോടൊപ്പം സ്വകാര്യത നിലനിർത്തുന്നതിനായി നിരവധി ഉപയോക്താക്കളിൽ നിന്ന് സമാഹരിച്ച അപ്‌ഡേറ്റുകളുടെ സംഗ്രഹം ആപ്പുകൾക്ക് ലഭിക്കും.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ഡാറ്റാ മുന്നറിയിപ്പ്"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ഡാറ്റാ പരിധി"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ഡാറ്റാ മുന്നറിയിപ്പ് / <xliff:g id="ID_2">^2</xliff:g> ഡാറ്റാ പരിധി"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ഉപകരണം കണക്കാക്കുന്നതിൽ നിന്നും വ്യത്യസ്തമായിട്ടായിരിക്കാം സേവനദാതാക്കള്‍ കണക്കാക്കുന്നത്"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"കാരിയർ നെറ്റ്‌വർക്കുകൾ ഉപയോഗിക്കുന്ന ഡാറ്റ ഒഴികെയുള്ളവ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ഉപയോഗിച്ചു"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ഡാറ്റാ മുന്നറിയിപ്പ് സജ്ജീകരിക്കുക"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> മുമ്പ് അപ്‌ഡേറ്റ് ചെയ്‌തു"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ഇപ്പോൾ <xliff:g id="ID_1">^1</xliff:g> അപ്‌ഡേറ്റ് ചെയ്‌തു"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ഇപ്പോൾ അപ്‌ഡേറ്റ് ചെയ്‌തു"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"പ്ലാൻ കാണുക"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"വിശദാംശങ്ങൾ കാണുക"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ഡാറ്റാ സേവർ"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"നിയന്ത്രണമില്ലാത്ത ഡാറ്റ"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ബാറ്ററി ഉപയോഗത്തിൽ അസ്വാഭാവികത"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ദ്രുത ‌ക്രമീകരണ ഡെവലപ്പർ ടൈലുകൾ"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb അംഗീകരിക്കൽ ടൈംഔട്ട് പ്രവർത്തനരഹിതമാക്കുക"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ഡിഫോൾട്ട് കാലയളവിലോ (7 ദിവസം) ഉപയോക്താവ് കോൺഫിഗർ ചെയ്ത സമയത്തിനുള്ളിലോ (കുറഞ്ഞത് 1 ദിവസം) വീണ്ടും കണക്റ്റ് ചെയ്യാത്ത സിസ്റ്റങ്ങൾക്കായുള്ള adb അംഗീകാരങ്ങൾ സ്വയമേവ പിൻവലിക്കുന്നത് പ്രവർത്തനരഹിതമാക്കുക."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"വിൻസ്‌കോപ്പ് അടയാളം"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"സെൻസറുകൾ ഓഫാണ്"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ഔദ്യോഗിക പ്രൊഫൈൽ ക്രമീകരണം"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"വ്യക്തിപര ആപ്പുകളിലെ ഔദ്യോഗിക ഡയറക്റ്ററി കോൺടാക്‌റ്റുകൾ തിരയുക"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"സ്വയം പൂരിപ്പിക്കൽ സേവനം"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ഡിഫോൾട്ട് സ്വയമേവ പൂരിപ്പിക്കൽ സേവനം"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"പാസ്‌വേഡുകൾ"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"പാസ്‌വേഡുകൾ, പാസ്‌കീകൾ, ഡാറ്റാ സേവനങ്ങൾ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"കൂടുതൽ ക്രെഡൻഷ്യൽ ദാതാക്കൾ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# പാസ്‌വേഡ്}other{# പാസ്‌വേഡുകൾ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"സ്വയമേവ, പൂരിപ്പിക്കൽ, സ്വയമേവ പൂരിപ്പിക്കൽ, പാസ്‌വേഡ്"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ഡാറ്റ, പാസ്‌കീ, പാസ്‌വേഡ്"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"സ്വയമേവ, പൂരിപ്പിക്കുക, സ്വയമേവ പൂരിപ്പിക്കൽ, ഡാറ്റ, പാസ്‌കീ, പാസ്‌വേഡ്"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"പാസ്‌വേഡുകൾ, പാസ്‌കീകൾ, ഡാറ്റാ സേവനങ്ങൾ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;എല്ലാ സേവനങ്ങളും ഓഫാക്കണോ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; നിങ്ങൾ സൈൻ ഇൻ ചെയ്യുമ്പോൾ പാസ്‌വേഡുകളും പാസ്‌കീകളും സംരക്ഷിച്ച മറ്റ് വിവരങ്ങളും സ്വയമേവ പൂരിപ്പിക്കാൻ ലഭ്യമാകില്ല"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;നിങ്ങൾ മുൻഗണന നൽകുന്ന സേവനം &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; എന്നതിലേക്ക് മാറ്റുക, പുതിയ പാസ്‌വേഡുകളും പാസ്‌കീകളും മറ്റ് വിവരങ്ങളും ഇനി മുതൽ ഇവിടെ സംരക്ഷിക്കും. എന്താണ് സ്വയമേവ പൂരിപ്പിക്കേണ്ടതെന്ന് നിർണ്ണയിക്കാൻ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; നിങ്ങളുടെ സ്ക്രീനിലുള്ളത് ഉപയോഗിക്കുന്നു"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ഉപയോഗിക്കണോ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"നിങ്ങൾക്ക് 5 സേവനങ്ങൾ മാത്രമേ ഓണാക്കാനാകൂ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"മറ്റൊന്ന് ചേർക്കാൻ കുറഞ്ഞത് ഒരു സേവനമെങ്കിലും ഓഫാക്കുക"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"എന്താണ് സ്വയമേവ പൂരിപ്പിക്കേണ്ടത് എന്ന് നിർണ്ണയിക്കാൻ നിങ്ങളുടെ സ്ക്രീനിലുള്ളത് %1$s ഉപയോഗിക്കുന്നു."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"പാസ്‌വേഡുകൾ, പാസ്‌കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവയുടെ പരിധി"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"നിങ്ങൾക്ക് ഒരേ സമയം 5 പാസ്‌വേഡുകളും പാസ്‌കീകളും ഡാറ്റാ സേവനങ്ങളും വരെ സജീവമായി നിലനിർത്താം. കൂടുതൽ ചേർക്കണമെങ്കിൽ, ഒരു സേവനം ഓഫാക്കുക."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"പാസ്‌വേഡുകൾ, പാസ്‌കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവയുടെ പരിധി"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"നിങ്ങൾക്ക് ഒരേ സമയം 5 പാസ്‌വേഡുകളും പാസ്‌കീകളും ഡാറ്റ സേവനങ്ങളും വരെ സജീവമായി നിലനിർത്താം. കൂടുതൽ ചേർക്കണമെങ്കിൽ, ഒരു സേവനം ഓഫാക്കുക."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ഓഫാക്കുക"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"സ്വയമേവ പൂരിപ്പിക്കൽ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ലോഗിംഗ് ലെവൽ‌"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ഡീബഗ് ചെയ്യാവുന്ന ആപ്പുകൾക്ക് വേണ്ടി മാത്രമേ ആപ്പ് അനുയോജ്യതാ മാറ്റങ്ങൾ പരിഷ്‌കരിക്കാൻ കഴിയൂ. ഡീബഗ് ചെയ്യാവുന്ന ആപ്പ് ഇന്‍സ്റ്റാള്‍ ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"മറ്റൊരു ക്രമീകരണത്തെ ആശ്രയിച്ചിരിക്കുന്നു"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"അക്കൗണ്ട്"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d അക്കൗണ്ടുകൾ"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ഉപകരണത്തിന്‍റെ പേര്"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"അടിസ്ഥാന വിവരങ്ങൾ"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"നിയമങ്ങളും നിയന്ത്രണങ്ങളും"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ടാഗ് സ്കാൻ ചെയ്യുമ്പോൾ ഈ ആപ്പ് ലോഞ്ച് ചെയ്യാൻ അനുവദിക്കുക.\nഈ അനുമതി ഓണാണെങ്കിൽ, ടാഗ് തിരിച്ചറിയുമ്പോഴെല്ലാം ആപ്പ് ഒരു ഓപ്ഷൻ ആയി ലഭ്യമാകും."</string>
     <string name="media_output_title" msgid="8283629315159510680">"മീഡിയ പ്ലേ ചെയ്യുക:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> ഇനിപ്പറയുന്നതിൽ പ്ലേ ചെയ്യുക"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ഓഡിയോ പ്ലേ ചെയ്യും"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ഈ ഉപകരണത്തിൽ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"കോളുകൾ ചെയ്യുമ്പോൾ ലഭ്യമല്ല"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"കോളെടുക്കൽ ഓണാണ്"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"മ്യൂട്ട് ചെയ്യുക"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"പ്രവർത്തനക്ഷമമാക്കാൻ, ആദ്യം \"പവർ ബട്ടൺ അമർത്തിപ്പിടിക്കുക\" പവർ മെനുവിലേക്ക് മാറ്റുക."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"നെറ്റ്‌വർക്ക് വിശദാംശങ്ങൾ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ഫോണിലെ ആപ്പുകൾക്ക് നിങ്ങളുടെ ഉപകരണത്തിന്റെ പേര് ദൃശ്യമാണ്. Bluetooth ഉപകരണങ്ങളിലേക്കോ വൈഫൈ നെറ്റ്‌വർക്കിലേക്കോ കണക്റ്റ് ചെയ്യുമ്പോഴോ ഒരു വൈഫൈ ഹോട്ട്സ്പോട്ട് സജ്ജീകരിക്കുമ്പോഴോ ഇത് മറ്റ് ആളുകൾക്കും കാണാനായേക്കും."</string>
     <string name="devices_title" msgid="649715719278562515">"ഉപകരണങ്ങൾ"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"നെറ്റ്‍വര്‍ക്ക് തിരഞ്ഞെടുക്കുക"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"വിച്ഛേദിച്ചു"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"പേര്"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"വർണ്ണം (അനുയോജ്യമായ ആപ്പുകൾ ഉപയോഗിക്കുന്നത്)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"സംരക്ഷിക്കുക"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM ഉപയോഗിക്കുക"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ഈ സിം ഉപയോഗിക്കുക"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ഓഫാണ്"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ഈ SIM പ്രവർത്തനരഹിതമാക്കാൻ സിം കാർഡ് നീക്കം ചെയ്യുക"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> എന്നതിനെ സജീവമാക്കാൻ ടാപ്പ് ചെയ്യുക"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM മായ്‌ക്കുക"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് തരം"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"നെറ്റ്‌വർക്ക് പ്രവർത്തിക്കുന്ന മോഡ് മാറ്റുക"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"മുൻഗണന നൽകുന്ന നെറ്റ്‌വർക്ക് തരം"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"നിരക്കിനായി, നെറ്റ്‌വർക്ക് ദാതാവിനെ ബന്ധപ്പെടുക."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ആപ്പിന്‍റെ ഡാറ്റാ ഉപയോഗം"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"നെറ്റ്‍വര്‍ക്ക് മോഡ് <xliff:g id="NETWORKMODEID">%1$d</xliff:g> അസാധുവാണ്. അവഗണിക്കുക."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ആക്‌സസ് പോയിന്റ് പേരുകൾ"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്‌തിരിക്കുമ്പോൾ ലഭ്യമല്ല"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> എന്നതിലേക്ക് മാറണോ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM കാർഡ് ഉപയോഗിക്കുക എന്നതിലേക്ക് മാറണോ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ഉപയോഗിക്കണോ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ഒരു സമയത്ത് ഒരു SIM മാത്രമേ സജീവമായിരിക്കൂ.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> എന്നതിലേക്ക് മാറുന്നത് നിങ്ങളുടെ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> സേവനം റദ്ദാക്കില്ല."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ഒരു സമയത്ത് 1 ഇ-സിം മാത്രമേ സജീവമായിരിക്കൂ.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> എന്നതിലേക്ക് മാറുന്നത് നിങ്ങളുടെ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> സേവനം റദ്ദാക്കില്ല."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ഒരു സമയത്ത് ഒരു SIM മാത്രമേ സജീവമായിരിക്കൂ.\n\nമാറുന്നത് നിങ്ങളുടെ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> സേവനം റദ്ദാക്കില്ല."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ഒരേസമയം 2 സിമ്മുകൾ നിങ്ങൾക്ക് ഉപയോഗിക്കാനാകും. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ഉപയോഗിക്കാൻ, മറ്റൊരു സിം ഓഫാക്കുക."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> എന്നതിലേക്ക് മാറുക"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ഓഫാക്കുക"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"വേണ്ട"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"റദ്ദാക്കുക"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"മാറുക"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ഓഫാക്കുക"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM സജീവമാക്കാനാകില്ല"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM വീണ്ടും ഓണാക്കാൻ ശ്രമിക്കുക. പ്രശ്‌നം തുടരുകയാണെങ്കിൽ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്യുക."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"നിങ്ങളുടെ സിം സജ്ജീകരിക്കുക"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ഈ ഉപകരണത്തിൽ ഒന്നിലധികം സിമ്മുകൾ ഉപയോഗിക്കാൻ നിങ്ങളുടെ മൊബൈൽ നെറ്റ്‌വർക്ക് മുൻഗണനകൾ സജ്ജീകരിക്കുക"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"സിമ്മുകൾ ലേബൽ ചെയ്യുക"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"കോളുകൾ ചെയ്യുമ്പോഴും ടെക്‌സ്റ്റുകൾ അയയ്‌ക്കുമ്പോഴും ഡാറ്റ ഉപയോഗിക്കുമ്പോഴും ക്രമീകരണത്തിലും നിങ്ങൾക്ക് ഈ ലേബലുകൾ കാണാം"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"സിം ലേബൽ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ലേബൽ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"ആവശ്യമുള്ള സിം തിരഞ്ഞെടുക്കൂ"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"നിങ്ങൾക്ക് ഒരേസമയം 2 സിമ്മുകൾ ഉപയോഗിക്കാം"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"പ്രാഥമിക സിമ്മുകൾ സജ്ജീകരിക്കൂ"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"കോളുകൾക്കും ടെക്‌സ്റ്റുകൾക്കും ഡാറ്റയ്‌ക്കും ഡിഫോൾട്ടായി ഏത് സിം ആണ് ഉപയോഗിക്കേണ്ടതെന്ന് തിരഞ്ഞെടുക്കുക"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"നിങ്ങളുടെ പ്രാഥമിക സിമ്മുകൾ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"കോളുകൾ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ടെക്‌സ്റ്റുകൾ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"സ്വയമേവയുള്ള ഡാറ്റാ മാറ്റം"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"കവറേജും ലഭ്യതയും അനുസരിച്ച് ഏതെങ്കിലും സിമ്മിൽ നിന്നുള്ള ഡാറ്റ ഉപയോഗിക്കുക"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ഡാറ്റ മാത്രം"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"സജ്ജീകരിക്കുക"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"അടുത്തത്"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"മൊബൈൽ നെറ്റ്‌വർക്ക്"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ഫോൺ നമ്പർ"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"സിം ലേബലും നിറവും"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"നെറ്റ്‌വർക്ക് സജീവമാക്കൽ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"കാരിയർ മാറുന്നു"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> സജീവമാണ്"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"മൊബൈൽ ഡാറ്റ, കോൾ ഫീച്ചറുകൾ, SMS എന്നിവ പിന്നീട് ഉപയോഗിക്കാൻ നിങ്ങളുടെ നെറ്റ്‌വർക്ക് ക്രമീകരണത്തിലേക്ക് പോകുക"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"സിം"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ഈ ഇ-സിം മായ്ക്കണോ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ഈ സിം മായ്ക്കുന്നതിലൂടെ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> സേവനം ഈ ഉപകരണത്തിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും.\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> എന്നതിനുള്ള സേവനം റദ്ദാക്കില്ല."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"മായ്ക്കുക"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"സിം മായ്ക്കുന്നു…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"സിം മായ്ക്കാനാകില്ല"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ഒരു പിശക് കാരണം ഈ സിം മായ്ക്കാനാവില്ല.\n\nനിങ്ങളുടെ ഉപകരണം റീസ്‌റ്റാർട്ട് ചെയ്‌ത് വീണ്ടും ശ്രമിക്കുക."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ഉപകരണത്തിലേക്ക് കണക്റ്റ് ചെയ്യുക"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"നിങ്ങളുടെ ഉപകരണത്തിലേക്ക് കണക്‌റ്റ് ചെയ്യുന്നതിന് താൽക്കാലിക വെെഫെെ നെറ്റ്‌വർക്ക് ഉപയോഗിക്കാൻ <xliff:g id="APPNAME">%1$s</xliff:g> ആപ്പ് താൽപ്പര്യപ്പെടുന്നു"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"ഉപകരണങ്ങളൊന്നും കണ്ടെത്തിയില്ല. ഉപകരണം ഓണാണെന്നും കണക്റ്റ് ചെയ്യാൻ ലഭ്യമാണെന്നും ഉറപ്പാക്കുക."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"എമർജൻസി കോളുകൾ"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"വൈഫൈ കോളിംഗ് വഴി എമർജൻസി കോളുകൾ നിങ്ങളുടെ സേവനദാതാവ് പിന്തുണയ്ക്കുന്നില്ല.\nഎമർജൻസി കോൾ വിളിക്കാൻ ഉപകരണം ഒരു സെല്ലുലാർ നെറ്റ്‍വര്‍ക്കിലേക്ക് സ്വയമേവ സ്വിച്ചുചെയ്യുന്നു.\nസെല്ലുലാർ കവറേജ് ഉപയോഗിച്ച് മാത്രമേ എമർജൻസി കോളുകൾ സാധ്യമാകൂ."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"നിലവാരം മെച്ചപ്പെടുത്താൻ കോളുകൾക്കായി വൈഫൈ ഉപയോഗിക്കുക"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ബാക്കപ്പ് കോളിംഗ്"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ലഭ്യമല്ലെങ്കിലോ റോമിംഗ് ആണെങ്കിലോ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> കോളുകൾക്ക് നിങ്ങളുടെ മൊബൈൽ ഡാറ്റ സിം ഉപയോഗിക്കുക."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ബാക്കപ്പ് കോളിംഗ്"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ഇൻകമിംഗ് MMS സന്ദേശം"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS സന്ദേശം അയയ്ക്കാനാവില്ല"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"മൊബൈൽ ഡാറ്റ ഓഫായിരിക്കുമ്പോൾ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>-ൽ നിന്ന് MMS സന്ദേശം അയയ്ക്കുന്നത് അനുവദിക്കാൻ ടാപ്പ് ചെയ്യുക"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"നിങ്ങളുടെ ഔദ്യോഗിക നയ വിവരം"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"നിങ്ങളുടെ ഐടി അഡ്‌മിൻ ‌മാനേജ് ചെയ്യുന്ന ക്രമീകരണം"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K പേജ് വലുപ്പത്തിൽ ബൂട്ട് ചെയ്യുക"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16K പിന്തുണയുള്ള കേർണലുപയോഗിച്ച് ഉപകരണം ബൂട്ടുചെയ്യൂ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB പേജുകൾക്ക് അനുയോജ്യമായ കേർണൽ ഉപയോഗിച്ച് റീബൂട്ട് ചെയ്യണോ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"മുന്നറിയിപ്പ്: ചില ആപ്പുകളിൽ ഈ മോഡ് അനുയോജ്യമല്ലായിരിക്കാം. സ്ഥിരീകരിച്ച ശേഷം, ഉപകരണം റീബൂട്ട് ചെയ്യും."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB പേജുകൾക്ക് അനുയോജ്യമായ കേർണൽ ഉപയോഗിച്ച് റീബൂട്ട് ചെയ്യണോ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"സ്ഥിരീകരിച്ച ശേഷം, ഉപകരണം റീബൂട്ട് ചെയ്യും."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"കേർണൽ, 16KB പേജുകൾക്ക് അനുയോജ്യമായ കേർണലിലേക്ക് അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"മാറ്റം ബാധകമാക്കുന്നു"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ബഗ് റിപ്പോർട്ട് ഹാൻഡ്‍ലർ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"നിങ്ങളുടെ ഉപകരണത്തിലെ ബഗ് റിപ്പോർട്ട് കുറുക്കുവഴി കൈകാര്യം ചെയ്യുന്നത് ഏത് ആപ്പാണെന്ന് നിർണ്ണയിക്കുന്നു."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"വ്യക്തിപരം"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"പ്ലേബാക്ക് വേഗത്തിൽ പുനരാരംഭിക്കാൻ, ദ്രുത ക്രമീകരണത്തിൽ മീഡിയ പ്ലേയർ തുറന്ന നിലയിൽ തുടരും"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ലോക്ക് സ്ക്രീനിൽ മീഡിയ കാണിക്കുക"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"പ്ലേബാക്ക് വേഗത്തിൽ പുനരാരംഭിക്കാൻ ലോക്ക് സ്ക്രീനിൽ മീഡിയാ പ്ലേയർ തുറന്ന നിലയിൽ തുടരും"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"മീഡിയ നിർദ്ദേശങ്ങൾ കാണിക്കുക"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant മീഡിയാ നിർദ്ദേശങ്ങൾ കാണിക്കുക"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"നിങ്ങളുടെ ആക്റ്റിവിറ്റി അടിസ്ഥാനമാക്കിയുള്ളവ"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"പ്ലേയർ മറയ്‌ക്കുക"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"പ്ലേയർ കാണിക്കുക"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"സിം"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ഇ-സിം"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ഇ-സിമ്മുകൾ"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"സജീവം"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"നിഷ്ക്രിയം"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> എന്നിവയ്ക്കുള്ള ഡിഫോൾട്ട്"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"കോളുകൾ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"അനുയോജ്യമായ മീഡിയയിൽ നിന്നുള്ള ഓഡിയോ കൂടുതൽ മുഴുകിപ്പിക്കുന്നതാക്കുന്നു"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ഹെഡ് ട്രാക്കിംഗ്"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"കൂടുതൽ സ്വാഭാവികമായി തോന്നാൻ, നിങ്ങൾ തല ചലിപ്പിക്കുന്നതിനോടൊപ്പം ഓഡിയോ മാറുന്നു"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"അനുമതികൾ സമന്വയിപ്പിക്കുക"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"നിങ്ങൾ <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> എന്നതിൽ അനുവദിച്ച അതേ ആപ്പ് അനുമതികൾ <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> എന്നതിനും നൽകുക"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ഫോണിൽ നിന്ന് അനുമതികൾ സമന്വയിപ്പിക്കുക"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ഈ ഫോണിൽ നിങ്ങൾ അനുവദിച്ച അതേ ആപ്പ് അനുമതികൾ നിങ്ങളുടെ വാച്ചിനും നൽകുക"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ഓഡിയോ ഉപകരണ തരം"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"അജ്ഞാതം"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"സ്പീക്കർ"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"ഇടത്തരം"</string>
     <string name="contrast_high" msgid="3988567609694797696">"കൂടുതൽ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ഈ ആപ്പ് ഒരു വിൻഡോയിൽ മാത്രമേ തുറക്കാനാകൂ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ഓണാണ്"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ഓഫാണ്"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ഓഫാണ്"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ഓഫാണ്"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ഓണാണ്"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ഓഫാണ്"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ഓണാണ്"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ഓഫാണ്"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ലൈറ്റ് സ്ക്രീനുകൾ ഡാർക്കും, ഡാർക്ക് സ്ക്രീനുകൾ ലൈറ്റും ആക്കുന്നു"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"സ്ക്രീനിൽ സൂം ഇൻ ചെയ്യുക"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ഓഫാണ്"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ഓഫാണ്"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ഓണാണ്"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ഓഫാണ്"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ഓണാണ്"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"പാസ്‌വേഡ് ഇപ്പോൾ സജ്ജീകരിച്ചിരിക്കുന്നു"</string>
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 77912e9..34855bc 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index e397731..09c986b 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Зөвхөн админ хэрэглэгчид хөгжүүлэгчийн тохиргоонд хандах боломжтой."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Систем"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Үйлчилгээнд байгаа"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Үйлчилгээнээс гарсан"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Үргэлжлүүлэхийн тулд дээш шудрах"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Аппыг үргэлжлүүлэн ашиглахын тулд утсаа эвхээд, урд талын дэлгэц дээр дээш шудрах эсвэл дэлгэцийг түгжигдэх хүртэл хэдэн секунд хүлээнэ үү"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Холбоотой"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Хонхны ая болон сэрүүлэг"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Дуудлагын үеэрх аудио"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Медиа"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Мэдэгдэл, системийн бусад дуу"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Медиа, системийн дуу чимээнүүд"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Мэдэгдлүүд"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Өгөгдмөлөөр аудио гаралтыг бие даасан аппуудаар тодорхойлно"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Нэргүй блютүүт төхөөрөмж"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Хайж байна..."</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth-г асаасан"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Бүгдийг харах"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Бүгдийг харах"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Мэдрэгч үзэг"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Арын товчийг дарах"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Ажлын профайл)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE аудио дамжуулалтад холбогдох"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Ойролцоох аудио дамжуулалтууд"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудио дамжуулалтууд"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR код ашиглан аудио дамжуулалтад холбогдоно уу"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Ойролцоох аудио дамжуулалт олдсонгүй."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Огноо, цаг"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Цэвэрлэх"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Апп тус бүрд хэл сонгохын тулд аппын хэлний тохиргоо руу очно уу."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Аппын хэлний талаар нэмэлт мэдээлэл авах"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Системийн хэлийг %s болгож өөрчлөх үү?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s-г сонгосон хэлнүүдэд нэмэх үү?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Энэ нь апп болон вебсайтуудад таныг энэ хэлийг мөн сонгосныг мэдэгдэнэ."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Таны төхөөрөмжийн тохиргоо болон бүс нутгийн тохиргоог өөрчилнө."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Өөрчлөх"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s боломжгүй"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Бямба"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Хэрэв апп бүс нутгийн тохиргоог дэмждэггүй бол тухайн апп өгөгдмөл хэл болон улсын кодын тохиргоогоо ашиглана."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Хэлний сонголтын талаар нэмэлт мэдээлэл авна уу."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Нэмэлт сонголт"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Дуудуулах нөхцөл"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Та хэрхэн дуудуулахыг хүсэж байгаагаа тохируулна уу"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Аппууд таны дуудах нөхцөлийг ашиглан таныг хэрхэн дуудахаа хувийн болгох боломжтой."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Заагаагүй"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Эм үг"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Эр үг"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Дундаж"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Сонгосон хэлийг хасах уу?}other{Сонгосон хэлнүүдийг хасах уу?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текстийг өөр хэлээр харуулах болно."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Бүх хэлийг устгах боломжгүй"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Байршил"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Байршлыг ашиглах"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Унтраалттай"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Асаалттай үед - # апп байршилд хандах боломжтой}other{Асаалттай үед - # апп байршилд хандах боломжтой}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Асаалттай үед / # апп байршилд хандах эрхтэй}other{Асаалттай үед / # апп байршилд хандах эрхтэй}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Ачаалж байна…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Ойролцоох төхөөрөмжүүдийн зөвшөөрөлтэй аппууд холбогдсон төхөөрөмжүүдийн харгалзах байрлалыг тодорхойлох боломжтой."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Аппууд болон үйлчилгээнүүдэд байршлын хандалт унтраалттай байна. Таныг яаралтай тусламжийн утасны дугаар луу залгах эсвэл мессеж бичих үед таны төхөөрөмжийн байршлыг яаралтай тусламжийн үйлчилгээ үзүүлэгчид рүү илгээсэн хэвээр байж магадгүй."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Байршлын тохиргооны талаар нэмэлт мэдээлэл авна уу."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Байршлын тохиргооны талаар нэмэлт мэдээлэл авах"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Байршлын хандалт өөрчлөхөд Тохиргоо &gt; Хамгаалалт, нууцлал &gt; Нууцлалын тохиргоонд оч"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Хамгийн сайн үр дүнд хүрэхийн тулд Made for Google-р баталгаажсан дэлгэц хамгаалагчийг ашиглана уу. Бусад дэлгэц хамгаалагчийг ашиглах үед таны хүүхдийн хурууны хээг танихгүй байж болзошгүй."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Утасны түгжээг цагаараа тайлах"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Таныг Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулсан үед утас тань таныг амны хаалт зүүсэн эсвэл харанхуй газар байгаа тохиолдолд танаас хурууны хээгээ оруулахыг хүснэ.\n\nТаны царай эсвэл хурууны хээг таниагүй үед та цагаараа түгжээг тайлах боломжтой."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Таны хурууны хээг таниагүй үед та цагаараа түгжээг тайлах боломжтой."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Таны царайг таниагүй үед та цагаараа түгжээг тайлах боломжтой."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Таныг Царайгаар түгжээ тайлах болон Хурууны хээгээр түгжээ тайлахыг тохируулсан үед утас тань таныг амны хаалт зүүсэн эсвэл харанхуй газар байгаа тохиолдолд танаас хурууны хээгээ оруулахыг хүснэ.\n\nУтасны түгжээг цагаараа тайлах нь таны хуруу нойтон эсвэл царайг тань таниагүй үед утасныхаа түгжээг тайлах өөр нэг хялбар арга юм."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Утасны түгжээг цагаараа тайлах нь таны хурууг таниагүй зэрэг үед утасныхаа түгжээг тайлах өөр нэг хялбар арга юм."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Утасны түгжээг цагаараа тайлах нь таны царайг таниагүй зэрэг үед утасныхаа түгжээг тайлах өөр нэг хялбар арга юм."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Дараахыг хийхийн тулд хурууны хээ эсвэл цагаа ашиглана уу"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Дараахыг хийхийн тулд царай эсвэл цагаа ашиглана уу"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Дараахыг хийхийн тулд царай, хурууны хээ эсвэл цагаа ашиглана уу"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Царай болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Энэ хэрхэн ажилладаг вэ?"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Та цагныхаа түгжээг тайлсан, бугуйндаа зүүсэн бөгөөд энэ утастай ойр байлгах ёстой. Та цагаа бугуйндаа зүүсэн үед түгжээг нь дахин тайлах шаардлагагүй болно."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Энэ утасны түгжээ тайлагдсан үед та цаган дээрээ мэдэгдэл авна. Хэрэв таныг хүсээгүй үед үүний түгжээг тайлсан бол утсыг дахин түгжихийн тулд мэдэгдлийг товшино уу."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Хяналт таны гарт"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Та цагаа Тохиргоо хэсэгт Утасны түгжээг цагаараа тайлах онцлогоос хүссэн үедээ хасах боломжтой"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Мэдэгдлийг товшоорой"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Түгжээтэй дэлгэцэд дээш шудрах"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Цагаа сонгоно уу"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Боломжтой цагнууд"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Цуцлах"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Баталгаажуулах"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Тохируулж дууслаа!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Та одоо түгжээтэй дэлгэцэд дээш шудрах эсвэл мэдэгдлийг товших үед энэ утасны түгжээг тайлахад цагаа ашиглах боломжтой"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Болсон"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Утасны түгжээг цагаараа тайлах"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Та түгжээтэй дэлгэцэд дээш шудрах эсвэл мэдэгдлийг товших үед энэ утасны түгжээг тайлахад цагаа ашиглах боломжтой"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Утасны түгжээг цагаараа тайлахыг ашиглахын тулд та цагныхаа түгжээг тайлсан, цагаа бугуйндаа зүүсэн, ойр байлгаж байгаа бөгөөд энэ утастай холбосон байх ёстой. Хэрэв холболт тасалдсан бол та Утасны түгжээг цагаараа тайлахыг ашиглах боломжтой болохоосоо өмнө утасны түгжээг тайлсан байх шаардлагатай.\n\nСанамж:\nТа нэг удаад зөвхөн нэг цаг тохируулсан байх боломжтой. Өөр цаг нэмэхийн тулд эхлээд одоо байгаа цагийг хасна уу."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Утасны түгжээг цагаараа тайлах онцлогийн талаар нэмэлт мэдээлэл авах"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Цаг нэмэх"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Цагийг хасах"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Хурууны хээ болон Царайгаар түгжээ тайлах"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ажилд зориулсан Царай, хурууны хээгээр түгжээ тайлах"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Тохируулга шаардлагатай"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Аюулгүй байдал"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Нууцлал"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Ажлын профайл"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Хувийн орон зай"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Хувийн аппуудыг түгжээтэй бөгөөд нуугдсан байлгана уу"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Хувийн аппуудыг та нуух эсвэл түгжих боломжтой тусдаа орон зайд байлгаарай"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Private Space-н түгжээ"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Та Private Space-н түгжээг төхөөрөмжийнхөө түгжээг тайлдагтайгаа ижил аргаар тайлах эсвэл өөр түгжээ сонгох боломжтой"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Төхөөрөмжийн дэлгэцийн түгжээг ашиглах"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Царай, хурууны хээгээр түгжээ тайлах"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Хурууны хээгээр түгжээ тайлах"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Царайгаар түгжээ тайлах"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Тохируулахын тулд товшино уу"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Хувийн орон зайн Хурууны хээгээр түгжээ тайлах"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Хувийн орон зайн Царайгаар түгжээ тайлах"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Түгжээг тайлах аргууд"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Төхөөрөмжийн дэлгэцийн түгжээтэй ижил"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Private Space-т шинэ түгжээ сонгох уу?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Автоматаар түгжих"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Хувийн орон зайг автоматаар түгжих"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Хэрэв та төхөөрөмжөө хэсэг хугацааны туршид ашиглаагүй бол хувийн орон зайгаа автоматаар түгжих боломжтой"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Төхөөрөмж түгжигдэх бүрд"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 минут идэвхгүй байсны дараа"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Хэзээ ч үгүй"</string>
+    <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_delete_title" msgid="3075645119800272800">"Хувийн орон зайг устгах"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"Хувийн орон зайг амжилттай устгасан"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Хувийн орон зайг устгаж чадсангүй"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Хувийн орон зайн түгжээг тайлсан"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Дэлгэцийн түгжээг тохируулах"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Хувийн орон зайгаа ашиглах бол уг төхөөрөмжид дэлгэцийн түгжээ тохируулна уу"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Дэлгэцийн түгжээ тохируулах"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Цуцлах"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Цуцлах"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Тохируулах"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Хувийн орон зай тохируулах"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Хувийн аппуудыг та нуух эсвэл түгжих боломжтой тусдаа орон зайд байлгаарай"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Энэ хэрхэн ажилладаг вэ?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Та аппуудын жагсаалтынхаа доод талаас хувийн орон зайдаа хандах боломжтой"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Таны хувийн орон зайн аппуудыг түгжээгээр хамгаалдаг"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Хувийн орон зай түгжээтэй үед түүний аппуудын мэдэгдлийг нуудаг"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Таны хувийн орон зай түгжээтэй үед таны хувийн орон зайн аппууд зөвшөөрлийн менежер, нууцлалын хяналтын самбар болон бусад тохиргоонд харагдахгүй.\n\nТаны хувийн орон зайг шинэ төхөөрөмж рүү зөөх боломжгүй. Хэрэв та үүнийг өөр төхөөрөмжид ашиглахыг хүсвэл өөр хувийн орон зай тохируулах шаардлагатай.\n\nТаны төхөөрөмжийг компьютерт холбодог эсвэл таны төхөөрөмжид аюултай аппууд суулгадаг аливаа хүн таны хувийн орон зайд хандах боломжтой байж магадгүй."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Хувийн орон зайг тохируулж байна…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Хувийн орон зайг түгжээтэй үед түүний аппуудын мэдэгдлийг нуудаг"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Хувийн орон зайн аппуудаас зураг эсвэл файлууд хуваалцахын тулд хувийн орон зайн түгжээг тайлна уу"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Зарим аппыг таны хувийн орон зайд аль хэдийн суулгасан"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Хувийн орон зайг тохируулж чадсангүй"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Дахин оролдох"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Хувийн орон зайн түгжээг тайлахад дэлгэцийн түгжээг ашиглах уу?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Та хувийн орон зайн түгжээг төхөөрөмжийнхөө түгжээг тайлдагтайгаа ижил аргаар тайлах эсвэл өөр түгжээ сонгох боломжтой"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Дэлгэцийн түгжээг ашиглах"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Шинэ түгжээ сонгох"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Тохируулж дууслаа!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Хувийн орон зайдаа хандахын тулд аппуудынхаа жагсаалт руу очоод, дараа нь доош гүйлгэнэ үү"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Болсон"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Хувийн орон зайг олохын тулд доош гүйлгэнэ үү"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Хувийн орон зайдаа зориулж түгжээ сонгоно уу"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Та хурууны хээгээ ашиглан хувийн орон зайныхаа түгжээг тайлах боломжтой. Аюулгүй байдлын үүднээс энэ сонголт нөөц түгжээ шаарддаг."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Хувийн орон зайдаа ПИН тохируулна уу"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Хувийн орон зайдаа нууц үг тохируулна уу"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Хувийн орон зайдаа хээ тохируулна уу"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Хувийн орон зайг харуулахын тулд (Эцсийн UX биш)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Тохиргоо аппыг нээнэ үү"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Аюулгүй байдал, нууцлал &gt; Хувийн орон зай&gt; Түгжээтэй үед хувийн орон зайг нуухыг товшино уу"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Түгжээтэй үед хувийн орон зайг нуухыг унтраах сэлгүүр"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google-н ажилчдын санамж: Энэ онцлогийн хөгжүүлэлт үргэлжилсээр байна"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Та мөн энэ түлхүүрийг нөгөө төхөөрөмж дээр оруулах хэрэгтэй болж магадгүй."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Зохицсон багцтай хослуулахыг баталгаажуулна уу"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Харилцагч болон дуудлагын түүхийн хандалтыг зөвшөөрөх"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Мөн харилцагчид болон дуудлагын түүхэд хандахыг зөвшөөрнө үү"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Мэдээллийг дуудлагын мэдэгдэл болон бусад зүйлд ашиглана"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д холбогдож чадсангүй."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Боломжтой төхөөрөмжүүд"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Нислэгийн горим"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Олон нийтийн Wi-Fi сүлжээг мэдэгдэх"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Өндөр чанарын нийтийн сүлжээ боломжтой үед мэдэгдэх"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP сүлжээнүүдийг зөвшөөрөх"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP нь хамгаалалт багатай аюулгүй байдлын хуучин протокол юм"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP сүлжээнүүд нь хамгаалалт багатай тул таны оператор компани тэдгээрийг зөвшөөрдөггүй"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi-г автоматаар асаах"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi таны гэрийн сүлжээ зэрэг ойролцоох хадгалсан өндөр чанартай сүлжээнд буцаж асах болно."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Байршил унтраалттай байгаа тул боломжгүй байна. "<annotation id="link">"Байршлыг"</annotation>" асаана уу."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi скан нь апп болон үйлчилгээнд Wi‑Fi унтраалттай үед ч Wi‑Fi сүлжээг хүссэн үедээ хайхыг зөвшөөрдөг. Үүнийг байршилд суурилсан онцлог, үйлчилгээ зэргийг сайжруулахад ашиглах боломжтой."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Асаах"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi сканыг асаасан"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Энэ сүлжээ хамгаалалт багатай аюулгүй байдлын хуучин протоколыг ашигладаг"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g>-г блоклосон"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Энэ сүлжээ WEP гэдэг нэртэй аюулгүй байдлын хуучин протоколыг ашигладаг бөгөөд энэ нь хамгаалалт багатай байдаг. Ямартай ч холбогдохын тулд та WEP сүлжээнүүдийг зөвшөөрөх боломжтой."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Энэ сүлжээ хамгаалалт багатай аюулгүй байдлын хуучин протокол ашигладаг тул таны оператор компани танд үүнтэй холбогдохыг зөвшөөрдөггүй"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP-г зөвшөөрөх"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Хаах"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Дэлгэрэнгүй сонголтууд"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Дэлгэрэнгүй сонголтын эвхмэл жагсаалт"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"дэлгэх"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi-д хэвээр байх"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Дахиад үзүүлэхгүй байх"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Холбогдох"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi-г асаасан"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-д холбогдсон"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-д холбогдож байна"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Холбогдож байна…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Сүлжээнд холбогдож чадсангүй"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Сүлжээ хүрээнд алга"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Мартах"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Өөрчлөх"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Сүлжээг мартаж чадсангүй"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Хадгалах"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Сүлжээг хадгалж чадсангүй"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Цуцлах"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобайл дата"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Этернэт"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Цэнэглэж байна"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Цэнэглэж байна"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Сүлжээний цэгийн холболт"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Холболтын хүч"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Хадгалсан сүлжээ"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Тохируулсан нууц үг алга"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Сүлжээний цэгийн нэр"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Сүлжээний цэгийн нууц үг"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP Мессеж"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Сүлжээний цэгийг автоматаар унтраана"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Холбогдсон төхөөрөмжүүд байхгүй үед"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Тохиромжтой байдлыг нэмэгдүүлэх"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Тоглоомын өгөгдмөл фрэймийн хурдыг идэвхгүй болгох"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Тоглоомуудад фреймийн дээд хурдыг <xliff:g id="FRAME_RATE">%1$d</xliff:g> Гц дээр хязгаарлахыг идэвхгүй болгоно уу."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Соргог дэлгэц нь хэн нэгнийг дэлгэц рүү харж байгаа эсэхийг харахын тулд урд талын камерыг ашигладаг. Энэ нь төхөөрөмж дээр ажилладаг бөгөөд зургийг хэзээ ч хадгалдаггүйгээс гадна Google-д илгээдэггүй."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Соргог дэлгэцийг асаах"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Дэлгэц рүү харж байгаа үед түүнийг асаалттай байлгах"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Дэлгэц автоматаар амрах хүртэлх хугацаа урт байвал илүү их батарей ашиглана."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камер түгжээтэй байна"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Царай илрүүлэхийн тулд камерын түгжээг тайлах ёстой"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Соргог дэлгэцийг ашиглахын тулд камерын түгжээг тайлсан байх ёстой"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (sim-н слот <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (sim-н слот <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (үндсэн)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Үзэхийн тулд хадгалсан сүлжээг сонгоно уу"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL хувилбар"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Зайны түвшин"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Нийтийн"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Нийтийн тохиргоо"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Хадгалах"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Цуцлах"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Нэр оруулах талбар хоосон байж болохгүй."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN хоосон байж болохгүй."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC талбар 3 цифртэй байх ёстой."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC талбар 2 буюу 3 цифртэй байх ёстой."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Оператор компани нь %s төрлийн APN нэмэхийг зөвшөөрдөггүй."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC талбар хүчинтэй байх ёстой."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Үндсэн APN тохиргоог сэргээж байна"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Үндсэн рүү сэргээх"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Үндсэн APN тохиргоог дахин шинэчилж дууслаа."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Шинэчлэх"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth ба Wi‑Fi-г шинэчилсэн"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM-үүдийг устгах"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Энэ нь мобайл үйлчилгээний ямар ч багцыг цуцлахгүй. Орлуулах SIM татахын тулд оператор компанитайгаа холбогдоно уу."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Дахин тохируулах"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Сүлжээний бүх тохиргоог шинэчлэх үү? Та энэ үйлдлийг буцаах боломжгүй."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Сүлжээний бүх тохиргоог шинэчилж, eSIM-үүдийг устгах уу? Та энэ үйлдлийг буцаах боломжгүй."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Дахин тохируулах уу?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Энэ хэрэглэгчид сүлжээний тохиргоо хийх боломжгүй байна"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Сүлжээний тохиргоог дахин тохируулсан байна"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM-үүдийг устгаж чадсангүй"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Алдааны улмаас eSIM-үүдийг устгах боломжгүй байна.\n\nТөхөөрөмжөө дахин эхлүүлж, дахин оролдоно уу."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Бүх өгөгдлийг устгах (үйлдвэрийн тохиргоонд шинэчлэх)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Бүх өгөгдлийг устгах (үйлдвэрийн тохиргоонд шинэчлэх)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Хөгжим"</li>\n<li>"Зураг"</li>\n<li>"Бусад хэрэглэгчийн өгөгдөл"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-үүд"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Энэ нь таны мобайл үйлчилгээний багцыг цуцлахгүй."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Таны бүх хувийн мэдээлэл болон татсан аппыг устгана. Та энэ үйлдлийг болих боломжгүй."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Таны татаж авсан аппууд болон SIM-үүд зэрэг бүх хувийн мэдээллийг устгана. Та энэ үйлдлийг болих боломжгүй."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Бүх өгөгдлийг устгах уу?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Энэ хэрэглэгчийн хувьд үйлдвэрийн тохиргоонд шинэчлэх боломжгүй"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Устгаж байна"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Сүлжээний цэг, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Бусад төхөөрөмжтэй интернэт хуваалцахгүй"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Унтраах"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Модем болгох"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi-Fi сүлжээний цэгийг бүү ашигла"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Интернэтийг зөвхөн USB-р хуваалцана"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Интернэтийг зөвхөн Bluetooth-р хуваалцана"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Интернэтийг зөвхөн Ethernet-р хуваалцана"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Интернэтийг зөвхөн USB болон Bluetooth-р хуваалцана"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Интернэтийг зөвхөн USB болон Ethernet-р хуваалцана"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Интернэтийг зөвхөн Bluetooth болон Ethernet-р хуваалцана"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Интернэтийг зөвхөн USB, Bluetooth болон Ethernet-р хуваалцана"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB модем болгох"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth модем болгох"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet модем болгох"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Wi-Fi эсвэл мобайл дата холболтоороо бусад төхөөрөмжид интернэт цацахын тулд сүлжээний цэг болон модем болгохыг ашиглана уу. Түүнчлэн, аппууд ойролцоох төхөөрөмжүүдтэй контент хуваалцахын тулд сүлжээний цэг үүсгэх боломжтой."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Тусламж"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобайл сүлжээ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Мобайл төлбөрийн багц"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS апп"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS апп-г өөрчлөх үү?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Таны үндсэн SMS аппликейшнээр <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд <xliff:g id="NEW_APP">%1$s</xliff:g>-г ашиглах уу?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi-Fi туслагчийг өөрчлөх үү?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Өөрийн сүлжээнии холболтуудыг удирдахад <xliff:g id="NEW_APP">%1$s</xliff:g>-г <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд ашиглах уу?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Сүлжээний холболтуудыг удирдахад <xliff:g id="NEW_APP">%s</xliff:g>-г ашиглах уу?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Тодорхойгүй SIM оператор"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>-д мэдэгдэж буй хангалтын вебсайт алга"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM карт оруулаад дахин эхлүүлнэ үү"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Интернэтэд холбогдоно уу"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Саяхны байршлын хүсэлтүүд"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ажлын профайлын байршил"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Аппын байршлын зөвшөөрлүүд"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Хандалтыг устгах"</string>
     <string name="controls_label" msgid="8671492254263626383">"Контрол"</string>
     <string name="force_stop" msgid="2681771622136916280">"Хүчээр зогсоох"</string>
+    <string name="archive" msgid="9074663845068632127">"Архивлах"</string>
+    <string name="restore" msgid="7622486640713967157">"Сэргээх"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Нийт"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Аппын хэмжээ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB сангийн апп"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Багцын хэмжээг тооцоолж чадсангүй."</string>
     <string name="version_text" msgid="7628938665256107608">"хувилбар <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Зөөх"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Архивлаж чадсангүй"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-г архивласан"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Сэргээж чадсангүй"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>-г сэргээж байна"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Өөр шилжүүлэлтийг аль хэдийн боловсруулж байна."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Хангалттай хадгалалтын сан байхгүй."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Апп байхгүй байна."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Боломжтой дэлгэц дээрх гар"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Дэлгэц дээрх гарыг удирдах"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Сонголт"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Хандалт"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Биет гар"</string>
     <string name="show_ime" msgid="4334255501724746849">"Дэлгэц дээрх гарыг ашиглах"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Биет гар идэвхтэй үед үүнийг дэлгэцэд харуулна уу"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Ойх түлхүүрүүд"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Биет гарын хандалтад Ойх түлхүүрүүдийг идэвхжүүлнэ үү"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Бэхэлсэн түлхүүрүүд"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Биет гарын хандалтад Бэхэлсэн түлхүүрүүдийг идэвхжүүлнэ үү"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Гарын товчлол"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Товчлолын жагсаалтыг харуулах"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Ажлын профайлын гар &amp; хэрэгсэл"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ашиглалтын цагаар эрэмбэлэх"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Сүүлд ашигласан цагаар эрэмбэл"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Аппын нэрээр эрэмбэлэх"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Ашигласан сүүлийн цаг"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Сүүлд ашигласан"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"хэзээ ч үгүй"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Ашиглалтын цаг"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Хандалт"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Хандалтын тохиргоо"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ямартай ч үргэлжлүүлэх"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Цуцлах"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Томруулах тохиргоо"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Гурван удаа товшиж томруулах"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Товчлолоор томруулах"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Товчлол болон гурав товшилтоор томруулах"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>-н тухай"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Нээхийн тулд хоёр хуруугаараа дэлгэцийг хоёр товшино уу"</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="860548190334486449">"Томруулахыг эхлүүлэх болон зогсоохын тулд хоёр хуруугаараа дэлгэцийнхээ аль нэг хэсэгт хоёр товш."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Хандалтын онцлогийг ашиглахын тулд дэлгэцийн доод хэсгээс 3 хуруугаараа дээш шударна уу.\n\nОнцлогуудын хооронд сэлгэхийн тулд 3 хуруугаараа дээш шударч, удаан дарна уу."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Ойлголоо"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Хандалтын товчлуурын тохиргоо"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Товчлуурын тохиргоо"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> товчлол"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Хандалтын товчлуур"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Хандалтын зангаа"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Дэлгэцийг хоёр хуруугаараа хоёр товшино уу"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"дэлгэцийг хоёр хуруугаараа хоёр товшино уу"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Дэлгэцийг хоёр хуруугаараа {0,number,integer} удаа шуурхай товшино уу"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Дэлгэцийг гурав товших"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"дэлгэцийг гурав товших"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Дэлгэцийг {0,number,integer} удаа хурдан товшино уу. Энэ товчлол таны төхөөрөмжийг удаашруулж магадгүй."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Хандалтын товчлуур болон зангааны тухай нэмэлт мэдээлэл авах"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Хандалтын товчлуурыг ашиглаж байна. 3 товчлуурт навигацаар зангаа боломжгүй байна."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Хандалтын онцлогуудад шуурхай хандана уу"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Эхлүүлэхийн тулд"</b>\n"1. Хандалтын тохиргоо руу очно уу\n2. Онцлогийг сонгож, товчлол дээр товшино уу\n3. Онцлогт хандахын тулд та товчлуур эсвэл зангааны алийг нь ашиглахыг хүсэж байгаагаа сонгоно уу"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Эхлүүлэхийн тулд"</b>\n"1. Хандалтын тохиргоо руу очно уу\n2. Онцлогийг сонгож, товчлол дээр товшино уу\n3. Онцлогт хандах товчлуурыг сонгоно уу"</string>
+    <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_size_title" msgid="5785110470538960881">"Хэмжээ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Асаах товч дуудлагыг тасална"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Хулганын том заагч"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Хулганын заагчийг илүү мэдэгдэхүйц болгох"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Бүх аппыг бараан болгох"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Өөрийн бараан загваргүй аппуудад хамаарна. Зарим апп урвуу өнгө зэрэг дэлгэцийн асуудалтай байж болно."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Анимацийг устгах"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Дэлгэц дээрх хөдөлгөөнийг багасгах"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Моно аудио"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Энэ нь таны апп болон техник хангамжийн мэдрэгчтэй хийх харилцан үйлдлийг хянах болон таны өмнөөс апптай харилцан үйлдэл хийх боломжтой."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Зөвшөөрөх"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Татгалзах"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Зогсоох"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Цуцлах"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g>-г зогсоох уу?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g>-г товшсоноор <xliff:g id="SERVICE">%2$s</xliff:g>-г зогсооно."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Унтраах"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Асаалттай үлдээх"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>-г унтраах уу?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Үйлчилгээ суулгагдаагүй байна"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Үйлчилгээ сонгоогүй байна"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Тайлбар байхгүй."</string>
     <string name="settings_button" msgid="2195468788019730377">"Тохиргоо"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"гэрэлд мэдрэмтгий байдал, фотофрофи, бараан загвар, мигрень, толгой өвдөх, унших горим, шөнийн горим, гэрэлтүүлгийг багасгах, цагаан цэг"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ашиглахад хялбар, хандахад хялбар, тусламж, туслах"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"хараа, сонсгол, хараагүй, сонсголгүй, хөдөлгөөн, эв дүй, туслах, тусламж, ашиглахад хялбар, хандахад хялбар, гар, тусламж"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Цонх томруулагч, Томруулалт, Томруулах, Сул хараа, Томруулах, том болгох"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Тайлбарууд, хаалттай тайлбарууд, Хаалттай тайлбар, Шууд бичвэр болгон сийрүүлэх, сонсголын бэрхшээл, сонсголын алдагдал, CART, яриаг бичвэрт буулгах, хадмал"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"өнгөний ялгарал"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"мотор, хулгана"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"сонсголын төхөөрөмж, сонсголын бэрхшээл, сонсголын алдагдал, дунгийн суулгац, өсгөх төхөөрөмжүүд, дуу чимээ боловсруулагч"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"хөдөлгөөн, хулгана, гадны хулгана, толгойд зүүдэг хулгана, дасан зохицох хулгана, тэргэнцэр, залуур"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"сонсголын төхөөрөмж, сонсголын бэрхшээл, сонсголын алдагдал, дунгийн суулгац, өсгөх төхөөрөмжүүд, дуу чимээ боловсруулагч, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"сонсголын бэрхшээл, сонсголын алдагдал, тайлбарууд, Tелетайп, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"гурван товчлуур"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"эв дүй, хөдөлгөөн, ахмад, үе мөчний үрэвсэл, rsi, цус харвалт, салгалах, түгээмэл хатуурал, тархины саажилт, чичрэх, олон дахих шөрмөсний гэмтэл, гар"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"саатал, эв дүй, ахмад"</string>
     <string name="print_settings" msgid="8519810615863882491">"Хэвлэлт"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Идэвхгүй"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 хэвлэх үйлчилгээ асаалттай}other{# хэвлэх үйлчилгээ асаалттай}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Хамгийн өндөр ашиглалттай аппуудыг харна уу"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Таны батарейг хамгаалахын тулд цэнэглэх явцыг оновчилсон"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Таны батарейн эдэлгээг уртасгахад туслахын тулд цэнэглэх явцыг оновчилсон"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Таны батарейг хамгаалахын тулд цэнэглэх явцыг оновчилсон"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Суурилуулсан үед цэнэглэх явцыг оновчилсон нь таны батарейн эдэлгээг уртасгахад тустай."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Таны батарейг хамгаалахын тулд цэнэглэх явцыг оновчилсон"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Суурилуулсан үед цэнэглэх явцыг оновчилсон нь таны батарейн эдэлгээг уртасгахад тустай."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Бүрэн цэнэглэж байна"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Таны батарейг хамгаалахын тулд дараагийн удаа таны таблетыг суурилуулсан үед цэнэглэх явцыг оновчлох болно"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Цэнэглэхийг түр зогсоосон талаар нэмэлт мэдээлэл авах"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Цэнэглэхийг үргэлжлүүлэх"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Өндөр эрчим хүч зарцуулдаг арын үйл ажиллагааг оруулдаг"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Устгах"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Цуцлах"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Бүрэн цэнэглэх"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Цэнэглэх хэрэгсэлд асуудал гарлаа"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Тохиромжгүй адаптераар цэнэглэх талаар нэмэлт мэдээлэл авах"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Батерейны менежер"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Аппыг автоматаар удирдах"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"одоо"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Батарей ашиглалтын график"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Батарей ашиглалтын өдөр тутмын график"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Батарей ашиглалтын цаг тутмын график"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Батарейн түвшин <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>-с <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> хувь"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Сүүлд бүрэн цэнэглэснээс хойших батарей ашиглалт"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g>-н батарей ашиглалт"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Сүүлд бүрэн цэнэглэснээс хойших дэлгэцийн цаг"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Яаралтай тусламжийн дуудлагын дохио"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Яаралтай дуудлага хийх үеийн үйлдлийг тохируулах"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Нөөцлөх"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Асаалттай"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Унтраалттай"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Нөөцлөх &amp; сэргээх"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Хувийн өгөгдөл"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Миний өгөгдлийг нөөшлөх"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Нэр"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Төрөл"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Серверийн хаяг"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP шифрлэлт (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP нууцлал"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec таниулагч"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Урьдчилан хуваалцсан IPSec түлхүүр"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec хэрэглэгчийн сертификат"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA сертификат"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec серверийн сертификат"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Дэлгэрэнгүй тохируулгыг харуулах"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS хайлтын домэйнүүд"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS серверүүд (жнь. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Чиглүүлэгчийг дамжуулж байна (жнь. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Хэрэглэгчийн нэр"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Нууц үг"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Акаунтын мэдээллийг хадгалах"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ашиглагдаагүй)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(серверийг тулгах хэрэггүй)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(серверээс хүлээн авсан)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Энэ VPN төрөл байнга холбоотой байх боломжгүй"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Тогтмол асаалттай VPN зөвхөн тоон серверийн хаягийг дэмждэг"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"DNS серверийг тогтмол асаалттай VPN-д тогтоох шаардлагатай"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS сервер хаяг тогтмол асаалттай VPN-д тоон утгатай байх шаардлагатай"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Оруулсан мэдээлэл тогтмол асаалттай VPN-г дэмждэггүй"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Цуцлах"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Хаах"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Холболтыг VPN-г ашиглахгүйгээр блоклох"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN холболт шаардлагатай юу?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Аюултай. IKEv2 VPN руу шинэчилнэ үү"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Дэмжигдээгүй VPN-г эхлүүлж чадсангүй."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Байнга холболттой байхын тулд VPN профайл сонгоно уу. Сүлжээний трафик зөвхөн энэ VPN-д холбогдсон үед зөвшөөрөгдөх болно."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Байхгүй"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Байнга асаалттай байх VPN нь сервер болон DNS-т хоёуланд нь IP хаяг шаардана."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"УЛБАР ШАР сэрэмжлүүлэг"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Хүүхэд хулгайлалтын талаарх мэдээлэл хүлээн авах"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Давтах"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Дуудлагын менежерийг идэвхжүүлэх"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Энэ үйлчилгээнд таны дуудлага хийхийг удирдахыг зөвшөөрөх."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Дуудлагын менежер"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Утасгүй сүлжээний онцгой байдлын сэрэмжлүүлэг"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Сүлжээний операторууд"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Хандалтын цэгийн нэрс"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"төлөх, товших, төлбөр"</string>
     <string name="keywords_backup" msgid="707735920706667685">"нөөцлөлт, нөөцлөх"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"зангаа"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"царай, түгжээг тайлах, нотлох, нэвтрэх"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"царай, түгжээг тайлах, баталгаажуулах, нэвтрэх, хурууны хээ, биометр"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl хувилбар, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Дууны чадал"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Шууд тайлбар"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Медиад автоматаар тайлбар нэмэх"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Утасны чанга яригч"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Таблетын чанга яригч"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Төхөөрөмжийн чанга яригч"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Утастай чихэвч"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Тохиромжтой медианы аудио илүү таатай сонсогдоно"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Унтраалттай"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Саяхны харилцан яриаг хассан"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Харилцан яриаг хассан"</string>
     <string name="clear" msgid="5092178335409471100">"Арилгах"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>-г арилгах"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Чухал болон өөрчилсөн харилцан яриа энд харагдана"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Та харилцан яриаг чухал гэж тэмдэглэхэд эсвэл харилцан ярианд аливаа бусад өөрчлөлт хийх тохиолдолд энд харагдана. \n\nХарилцан ярианы тохиргоог өөрчлөхийн тулд: \nДэлгэцийн дээрээс доош шудран доош татдаг хураангуй самбарыг нээгээд, дараа нь харилцан ярианд хүрээд, удаан дарна."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Багасгах"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Унтраалттай"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Апп бэхлэлт"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Та апп бэхлэх онцлогийг ашигласнаар одоогийн аппыг бэхэлснийг болиулах хүртлээ харагдах байдалд байлгах боломжтой. Энэ онцлогийг итгэдэг найздаа тодорхой тоглоом тоглохыг нь зөвшөөрөх гэх мэтээр ашиглах боломжтой."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Аппыг бэхэлсэн үед бэхэлсэн апп бусад аппыг нээж, хувийн өгөгдөлд хандах боломжтой болж болзошгүй. \n\nАпп бэхлэхийг ашиглахын тулд: 	\n1. Апп бэхлэхийг асаана уу 	\n2. Тоймыг нээнэ үү 	\n3. Дэлгэцийн дээд хэсгийн аппын дүрс тэмдгийг товшиж, дараа нь бэхлэх дээр товшино уу"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Аппыг бэхэлсэн үед бэхэлсэн апп бусад аппыг нээж, хувийн өгөгдөлд хандах боломжтой болж болзошгүй. \n\nХэрэв та хэн нэгэнтэй төхөөрөмжөө аюулгүйгээр хуваалцахыг хүсвэл оронд нь зочин хэрэглэгчийг ашиглаж үзнэ үү. \n\nАпп бэхлэхийг ашиглахын тулд: 	\n1. Апп бэхлэхийг асаана уу 	\n2. Тоймыг нээнэ үү 	\n3. Дэлгэцийн дээд хэсгийн аппын дүрс тэмдгийг товшиж, дараа нь бэхлэх дээр товшино уу"</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_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">"Бэхэлснийг болиулахаасаа өмнө ПИН асуух"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Хэрэв ашиглаагүй бол аппыг удирдах"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Зөвшөөрлийг хасаж, түр зуурын файлыг устгаж, мэдэгдлийг зогсоож мөн аппыг архивлана"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Бүх апп"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Суулгасан апп"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Шуурхай апп"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Чөлөөтэй"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Апп-ны хэрэглэсэн санах ой"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Сүүлийн {time}-д 1 апп санах ой ашигласан}other{Сүүлийн {time}-д # апп санах ой ашигласан}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Санах ойн ашиглалтын үнэлгээг идэвхжүүл"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Санах ойн ашиглалтын үнэлгээнд системийн нэмэлт нөөцүүд шаардлагатай."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Санах ойн үнэлгээг идэвхгүй болгосон"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Давтамж"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Хамгийн их хэрэглээ"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Дата ашиглаагүй"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Бусад апп дээр харуулах"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Бусад апп дээр харуулахыг зөвшөөрөх"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Энэ аппыг таны ашиглаж буй бусад апп дээр үзүүлэхийг зөвшөөрнө үү. Энэ апп нь таны хаана товшсоныг харах эсвэл дэлгэц дээр үзүүлсэн зүйлийг өөрчлөх боломжтой болно."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Медиа гаралтыг өөрчлөх"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Аппад медиа гаралтыг сэлгэхийг зөвшөөрөх"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Бусад аппаас аль холбогдсон төхөөрөмж аудио эсвэл видео тоглуулахыг сонгохыг энэ аппад зөвшөөрнө үү. Хэрэв үүнийг зөвшөөрсөн бол энэ апп чихэвч, чанга яригч зэрэг боломжтой төхөөрөмжүүдийн жагсаалтад хандаж, аль гаралтын төхөөрөмжийг аудио эсвэл видео дамжуулах эсвэл нэвтрүүлэхэд ашиглахыг сонгох боломжтой."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Бүх файлд хандах хандалт"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Дуу хоолойн идэвхжүүлэлтийг сайжруулах"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Энэ төхөөрөмж дуу хоолойн идэвхжүүлэлтийн загварыг сайжруулахын тулд хувийн мэдээллийг ашигладаг. Аппууд нь загварыг хүн бүрд сайжруулахын зэрэгцээ нууцлалыг хадгалахын тулд олон хэрэглэгчээс хуримтлуулсан хураангуй шинэчлэлтүүдийг хүлээн авах боломжтой.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> дата хэрэглээний сануулга"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> дата хэрэглээний хязгаар"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> дата хэрэглээний сануулга / <xliff:g id="ID_2">^2</xliff:g> дата хэрэглээний хязгаар"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Оператор компанийн дата тооцоололт нь төхөөрөмжийн тооцоололтоос өөр байж болно"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Оператор компанийн сүлжээгээр ашигласан датаг оруулдаггүй"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ашигласан"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Датаны сануулгыг тохируулах"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g>-н өмнө шинэчилсэн"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> дөнгөж сая шинэчилсэн"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Дөнгөж сая шинэчилсэн"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Төлөвлөгөөг харах"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Дэлгэрэнгүй үзэх"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Дата хэмнэгч"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Хязгаарлалтгүй дата"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Батарей ашиглалтын согог"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Шуурхай тохиргоо хөгжүүлэгчийн хавтан"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"ADB-н зөвшөөрлийн хугацааг идэвхгүй болгох"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Өгөгдмөлөөр (7 хоног) эсвэл хэрэглэгчийн тохируулсан (хамгийн багадаа 1 хоног) хугацаанд дахин холбогдоогүй системийн хувьд ADB-н зөвшөөрлийг автоматаар цуцлахыг идэвхгүй болгох."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Мэдрэгчийг унтраах"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Ажлын профайлын тохиргоо"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Хувийн аппуудаас ажлын харилцагчдын лавлах хайх"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Автоматаар бөглөх үйлчилгээ"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Автоматаар бөглөх хэсгийн өгөгдмөл үйлчилгээ"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Нууц үг"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Нэмэлт үйлчилгээ үзүүлэгчид"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# нууц үг}other{# нууц үг}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"автомат, бөглөх, автоматаар бөглөх хэсэг, нууц үг"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"өгөгдөл, passkey, нууц үг"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автомат, бөглөх, автоматаар бөглөх хэсэг, өгөгдөл, нэвтрэх түлхүүр, нууц үг"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Бүх үйлчилгээг унтраах уу?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Нууц үг, нэвтрэх түлхүүр болон бусад хадгалсан мэдээлэл таныг нэвтрэх үед автоматаар бөглөх хэсэгт боломжгүй байх болно"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Илүүд үзсэн үйлчилгээгээ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; болгож өөрчилнө үү&lt;br/&gt; &lt;br/&gt; Шинэ нууц үг, нэвтрэх түлхүүр болон бусад мэдээллийг одооноос энд хадгална. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; юуг автоматаар бөглөж болохыг тодорхойлохын тулд таны дэлгэц дээр байгаа зүйлсийг ашиглаж магадгүй"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s-г ашиглах уу?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Та зөвхөн 5 үйлчилгээг асаасан байх боломжтой"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Өөр үйлчилгээ нэмэхийн тулд дор хаяж 1 үйлчилгээг унтраана уу"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s таны дэлгэцэд байгаа зүйлийг ашиглан юуг автоматаар бөглөж болохыг тодорхойлдог."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Нууц үг, нэвтрэх түлхүүр, өгөгдлийн үйлчилгээний хязгаарлалт"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Та 5 хүртэлх нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээг нэгэн зэрэг идэвхжүүлж болно. Илүү ихийг нэмэхийн тулд аль нэг үйлчилгээг унтраана уу."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Нууц үг, нэвтрэх түлхүүр, өгөгдлийн үйлчилгээнүүдийн хязгаарлалт"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Та 5 хүртэлх нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээг зэрэг идэвхжүүлж болно. Илүү ихийг нэмэхийн тулд аль нэг үйлчилгээг унтраана уу."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Унтраах"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Автоматаар бөглөх хэсэг"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Нэвтрэх түвшин"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Аппын тохирох өөрчлөлтийг зөвхөн дебаг хийх боломжтой аппуудад хийх боломжтой. Дебаг хийх боломжтой аппыг суулгаад, дахин оролдож үзнэ үү."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Өөр тохиргооноос шалтгаална"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Бүртгэл"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d бүртгэл"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Төхөөрөмжийн нэр"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Үндсэн мэдээлэл"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Хууль, журам"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC шошгыг скан хийх үед энэ аппад эхлүүлэхийг зөвшөөрнө үү.\nХэрэв энэ зөвшөөрөл асаалттай бол апп нь шошгыг илрүүлэх бүрд сонголт байдлаар боломжтой байх болно."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Медиаг дараахад тоглуулна уу"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> дээр тоглуулах"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Аудиог дараахад тоглуулна"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Энэ төхөөрөмж"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Дуудлагын үед боломжгүй"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Дуудлага авах"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Дууг хаах"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Идэвхжүүлэхийн тулд эхлээд \"Асаах/унтраах товчийг удаан дарах\"-ыг асаах/унтраах цэс болгож өөрчлөөрэй."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Сүлжээний мэдээлэл"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Таны төхөөрөмжийн нэр таны утсан дээрх аппуудад харагдана. Үүнийг мөн таныг Bluetooth төхөөрөмжүүд болон Wi-Fi сүлжээнд холбогдох эсвэл Wi-Fi сүлжээний цэг тохируулах үед бусад хүн харж болзошгүй."</string>
     <string name="devices_title" msgid="649715719278562515">"Төхөөрөмжүүд"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Сүлжээ сонгох"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Салсан"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Нэр"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Өнгө (тохирох аппуудын ашигладаг)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Хадгалах"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM ашиглах"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Энэ SIM-г ашиглах"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Унтраах"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Энэ SIM-г идэвхгүй болгохын тулд SIM картыг салгана уу"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g>-г идэвхжүүлэхийн тулд товшино уу"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM-г устгах"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Давуу эрхтэй сүлжээний төрөл"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Сүлжээний ажиллах горимыг өөрчлөх"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Давуу эрхтэй сүлжээний төрөл"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Үнийг нь сүлжээний үйлчилгээ үзүүлэгчээсээ тодруулна уу."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Аппын дата ашиглалт"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Буруу сүлжээний горим <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Үл хэрэгсэнэ үү."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Хандах цэгийн нэрс (APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>-д холбогдсон үед боломжгүй"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> руу сэлгэх үү?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM картыг ашиглахад сэлгэх үү?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>-г ашиглах уу?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Нэг удаад зөвхөн нэг SIM-г идэвхжүүлэх боломжтой.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> руу сэлгэснээр таны <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Нэг удаад зөвхөн 1 eSIM идэвхтэй байх боломжтой.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> руу сэлгэх нь таны <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Нэг удаад зөвхөн нэг SIM идэвхжүүлэх боломжтой.\n\nСэлгэснээр таны <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Та нэг дор 2 SIM ашиглах боломжтой. <xliff:g id="CARRIER_NAME">%1$s</xliff:g>-г ашиглахын тулд нөгөө SIM-г унтраана уу."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> руу сэлгэх"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>-г унтраана"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Үгүй, баярлалаа"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Цуцлах"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Сэлгэх"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Унтраах"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-г идэвхжүүлэх боломжгүй"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM-г дахин асааж үзнэ үү. Хэрэв асуудал үргэлжилсээр байвал төхөөрөмжөө дахин эхлүүлнэ үү."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM-ээ тохируулна уу"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Энэ төхөөрөмжид олон SIM ашиглахын тулд мобайл сүлжээний сонголтуудаа тохируулна уу"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM-үүдээ шошголох"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Та дуудлага хийх, мессеж илгээх болон дата ашиглах үедээ болон Тохиргоонд эдгээр шошгыг харна"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-н шошго"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Шошго"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Ашиглах SIM-үүдээ сонгох"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Та нэг дор 2 SIM ашиглах боломжтой"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Үндсэн SIM-үүдээ тохируулах"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Дуудлага, мессеж болон датад аль SIM-үүдийг өгөгдмөлөөр ашиглахыг сонгоно уу"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Таны үндсэн SIM-үүд"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Дуудлагууд"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Мессежүүд"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Автоматаар дата сэлгэх"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Хамрах хүрээ болон боломжтой байдлаас хамааран аль нэг SIM-н датаг ашиглана уу"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Зөвхөн дата"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Тохируулах"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Дараах"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобайл сүлжээ"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Утасны дугаар"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-н шошго болон өнгө"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Сүлжээг идэвхжүүлэх"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Оператор компанийг сэлгэх"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> идэвхтэй байна"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Мобайл дата, дуудлагын онцлогууд болон SMS-г дараа ашиглахын тулд сүлжээнийхээ тохиргоонд очно уу"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Энэ eSIM-г устгах уу?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Энэ SIM-г устгаснаар <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-н үйлчилгээг энэ төхөөрөмжөөс хасна.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Устгах"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM-г устгаж байна…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM-г устгаж чадсангүй"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Энэ SIM-г алдааны улмаас устгаж чадсангүй.\n\nТөхөөрөмжөө дахин эхлүүлээд, дахин оролдоно уу."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Төхөөрөмжид холбох"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> апп таны төхөөрөмжид холбогдохын тулд түр зуурын Wi-Fi сүлжээ ашиглах хүсэлтэй байна"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Төхөөрөмж олдсонгүй. Төхөөрөмжүүдийг асаалттай бөгөөд холбогдох боломжтой эсэхийг нь шалгана уу."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Яаралтай дуудлага"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Таны оператор компани Wi‑Fi Дуудлагаар яаралтай дуудлага хийхийг дэмждэггүй.\nЭнэ төхөөрөмж яаралтай дуудлага хийхийн тулд үүрэн сүлжээ рүү автоматаар сэлгэнэ.\nЯаралтай дуудлагыг зөвхөн үүрэн сүлжээтэй газар хийх боломжтой."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Чанарыг сайжруулахын тулд Wi-Fi-г дуудлагад ашиглах"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Дуудлагыг нөөцлөх"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Хэрэв <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> боломжгүй эсвэл роуминг хийж байвал <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-н дуудлагад мобайл датаны SIM-ээ ашиглана уу."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"дуудлагыг нөөцлөх"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Ирж буй мультимедиа мессеж"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Мультимедиа мессеж илгээх боломжгүй"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Мобайл дата унтраалттай үед <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> дээр мультимедиа мессежийг зөвшөөрөхийн тулд товшино уу"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Таны ажлын удирдамжийн мэдээлэл"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Танай IT админы удирддаг тохиргоо"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16К хуудасны хэмжээтэйгээр ачаалах"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Төхөөрөмжийг 16K хуудасны хэмжээтэй дэмжигдсэн кернелээр ачаал"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16КБ хуудсанд тохирох кернелээр дахин асаах уу?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"САНУУЛГА: Зарим аппликэйшн энэ горимтой тохиромжгүй байж магадгүй. Баталгаажуулалтын дараа төхөөрөмжийг дахин асаана."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4КБ хуудсанд тохирох кернелээр дахин асаах уу?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Баталгаажуулалтын дараа төхөөрөмжийг дахин асаана."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Кернелийг 16КБ хуудсанд тохирох кернел рүү шинэчилж чадсангүй."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Өөрчлөлтүүдийг оруулж байна"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Алдааны мэдээний удирдагч"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Алдааны мэдээний товчлолыг таны төхөөрөмж дээр ямар апп удирддаг болохыг тодорхойлдог."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Хувийн"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Дахин тоглуулахыг шуурхай үргэлжлүүлэхийн тулд медиа тоглуулагч Шуурхай тохиргоонд нээлттэй хэвээр байдаг"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Түгжигдсэн дэлгэц дээр медиа харуулах"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Дахин тоглуулахаар шуурхай үргэлжлүүлэхийн тулд медиа тоглуулагч түгжигдсэн дэлгэц дээр нээлттэй хэвээр байна"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Медиагийн зөвлөмжийг харуулах"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Туслахын медиагийн зөвлөмжүүдийг харуулах"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Таны үйл ажиллагаанд тулгуурласан"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Тоглуулагчийг нуух"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Тоглуулагчийг харуулах"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-үүд"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Идэвхтэй"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Идэвхгүй"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g>-н өгөгдмөл"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"дуудлага"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Тохиромжтой медианы аудио илүү гайхалтай болно"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Толгой хянах"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Таныг толгойгоо хөдөлгөх үед илүү бодит мэт сонсогдохын тулд аудио өөрчлөгдөнө"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синк хийх зөвшөөрөл"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Та <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>-д <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>-д зөвшөөрсөнтэйгээ ижил аппын зөвшөөрлийг өгнө үү"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Утаснаас зөвшөөрлийг синк хийх"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Та энэ утсанд зөвшөөрсөнтэйгээ ижил аппын зөвшөөрлийг цагандаа өгнө үү"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Аудио төхөөрөмжийн төрөл"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Тодорхойгүй"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Чанга яригч"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Дунд зэрэг"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Өндөр"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Энэ аппыг зөвхөн 1 цонхонд нээх боломжтой"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Асаалттай"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Унтраалттай"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Унтраалттай"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Унтраалттай"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Асаалттай"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Унтраалттай"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Асаалттай"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Унтраалттай"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Цайвар дэлгэцийг бараан, бараан дэлгэцийг цайвар болгоно"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Дэлгэцэд томруулах"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Унтраалттай"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Унтраалттай"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Асаалттай"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Унтраалттай"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Асаалттай"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Одоо нууц үг тохируулсан"</string>
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index b83f493..4adab31 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"एका मिनिटानंतर"</item>
     <item msgid="1574040255478150028">"पाच मिनिटांनंतर"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 4c18362..738b776 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"फक्त ॲडमिन वापरकर्ते डेव्हलपर सेटिंग्ज अ‍ॅक्सेस करू शकतात."</string>
     <string name="header_category_system" msgid="1665516346845259058">"सिस्टीम"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"सेवेत"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"सेवाबाह्य"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"पुढे सुरू ठेवण्यासाठी वर स्‍वाइप करा"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ॲप वापरणे पुढे सुरू ठेवण्यासाठी तुमचा फोन फोल्ड करा आणि पुढील डिस्प्लेवर स्वाइप करा किंवा स्क्रीन लॉक होण्यासाठी काही सेकंद प्रतीक्षा करा"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"संबंधित"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"रिंगटोन आणि अलार्म"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"कॉलदरम्यान ऑडिओ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"मीडिया"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"सूचना आणि इतर सिस्टीम आवाज"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"मीडिया आणि सिस्टीमचे आवाज"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"सूचना"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"बाय डीफॉल्ट, ऑडिओ आउटपुट हे स्वतंत्र अ‍ॅप्सद्वारे निर्धारित केले जाते"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"नाव नसलेले ब्लूटूथ डिव्हाइस"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"शोधत आहे"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ब्लूटूथ सुरू केले"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"सर्व पहा"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"सर्व पहा"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"स्टायलस"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"टेल बटण प्रेस करा"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (कार्य प्रोफाइल)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ऑडिओ स्ट्रीमशी कनेक्ट करा"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"जवळपासची ऑडिओ स्ट्रीम"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ऑडिओ स्ट्रीम"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR कोड वापरून ऑडिओ स्ट्रीमशी कनेक्ट करा"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"जवळपासची ऑडिओ स्ट्रीम आढळली नाहीत."</string>
     <string name="date_and_time" msgid="1788358029823431692">"तारीख आणि वेळ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"प्रॉक्सी"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"साफ करा"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"प्रत्येक अ‍ॅपसाठी भाषा निवडण्यासाठी, अ‍ॅप भाषा सेटिंग्जवर जा."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ॲपच्या भाषांविषयी अधिक जाणून घ्या"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"सिस्टीमची भाषा %s वर बदलायची आहे का ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"प्राधान्य दिलेल्या भाषांवर %s जोडायचे आहे का?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"तुम्ही या भाषेलादेखील प्राधान्य देता हे अ‍ॅप्स आणि वेबसाइटना यामुळे समजते."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"तुमच्या डिव्हाइसची सेटिंग्ज आणि प्रादेशिक प्राधान्ये बदलतील."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"बदला"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s उपलब्ध नाही"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"शनिवार"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"अ‍ॅप हे प्रादेशिक प्राधान्यांना सपोर्ट करत नसल्यास, अ‍ॅप त्यांची डीफॉल्ट लोकॅल सेटिंग्ज वापरेल."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"भाषा प्राधान्यांबद्दल अधिक जाणून घ्या."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"अतिरिक्त प्राधान्ये"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"संबोधण्यासाठीच्या संज्ञा"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"तुम्हाला कसे संबोधित करायला हवे आहे ते सेट करा"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"अ‍ॅप्स तुम्हाला कशी संबोधीत करतात ते पर्सनलाइझ करण्यासाठी, ती तुमच्या संबोधण्यासाठीच्या संज्ञा वापरू शकतात."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"नमूद केलेले नाही"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"स्त्रीलिंगी"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"पुल्लिंगी"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"तटस्थ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{निवडलेली भाषा काढून टाकायची का?}other{निवडलेल्या भाषा काढून टाकायच्या का?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"मजकूर दुसऱ्या भाषेत डिस्प्ले केला जाईल."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"सर्व भाषा काढू शकत नाही"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"स्थान"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"स्थान वापरा"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"बंद"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{सुरू - # अ‍ॅपला स्थानाचा अ‍ॅक्सेस आहे}other{सुरू - # अ‍ॅप्सना स्थानाचा अ‍ॅक्सेस आहे}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{सुरू आहे / # अ‍ॅपला स्थानाचा अ‍ॅक्सेस आहे}other{सुरू आहे / # अ‍ॅप्सना स्थानाचा अ‍ॅक्सेस आहे}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड करत आहे…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"जवळपासच्या डिव्हाइसची परवानगी असणारी ॲप्स कनेक्ट केलेल्या डिव्हाइसचे संबंधित स्थान निर्धारित करू शकतात."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ॲप्स आणि सेवांसाठी स्थान अ‍ॅक्सेस बंद आहे. तुम्ही आणीबाणी नंबरवर कॉल केल्यास किंवा एसएमएस पाठवल्यास तुमच्या डिव्हाइसचे स्थान आणीबाणी प्रतिसादकर्त्यांना अद्याप पाठवले जाऊ शकते."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"स्थान सेटिंग्ज याविषयी अधिक जाणून घ्या."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"स्थान सेटिंग्जबद्दल अधिक जाणून घ्या"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"स्थान अ‍ॅक्सेस बदलण्यासाठी, सेटिंग्ज &gt; सुरक्षा व गोपनीयता &gt; गोपनीयता नियंत्रणेवर जा"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"सर्वोत्तम परिणामांसाठी, Google साठी बनवलेले प्रमाणित असलेले स्क्रीन प्रोटेक्टर वापरा. इतर स्क्रीन प्रोटेक्‍टरसह, तुमच्या लहान मुलाचे फिंगरप्रिंट कदाचित काम करणार नाही."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"वॉच अनलॉक"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"तुम्ही फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट केल्यास, तुम्ही मास्क वापरता किंवा गडद भागात असता, तेव्हा तुमचा फोन तुमचे फिंगरप्रिंट वापरण्यास सांगेल.\n\nतुमचा चेहरा किंवा फिंगरप्रिंट ओळखली जात नाही, तेव्हा तुम्ही तुमचे वॉच वापरून अनलॉक करू शकता."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"तुमची फिंगरप्रिंट ओळखली जात नाही, तेव्हा तुम्ही तुमचे वॉच वापरून अनलॉक करू शकता."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"तुमचा चेहरा ओळखला जात नाही, तेव्हा तुम्ही तुमचे वॉच वापरून अनलॉक करू शकता."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"तुम्ही फेस अनलॉक आणि फिंगरप्रिंट अनलॉक सेट करता, तेव्हा तुम्ही मास्क घातलेला असेल किंवा अंधार असलेल्या भागामध्ये असाल, तेव्हा तुमचा फोन तुमचे फिंगरप्रिंट वापरण्यास सांगेल.\n\nतुमचा फोन अनलॉक करण्यासाठी वॉच अनलॉक हा दुसरा सुलभ मार्ग आहे, उदाहरणार्थ, तुमची बोटे ओली असल्यास किंवा तुमचा चेहरा ओळखला जात नसल्यास."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"तुमचा फोन अनलॉक करण्यासाठी वॉच अनलॉक हा दुसरा सुलभ मार्ग आहे, उदाहरणार्थ, तुमचे फिंगरप्रिंट ओळखले जात नसल्यास."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"तुमचा फोन अनलॉक करण्यासाठी वॉच अनलॉक हा दुसरा सुलभ मार्ग आहे, उदाहरणार्थ, तुमचा चेहरा ओळखला जात नसल्यास."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"हे करण्यासाठी फिंगरप्रिंट किंवा वॉच वापरा"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"हे करण्यासाठी चेहरा किंवा वॉच वापरा"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"हे करण्यासाठी चेहरा, फिंगरप्रिंट किंवा वॉच वापरा"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"हे कसे काम करते"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"तुमचे वॉच हे अनलॉक केलेले असणे, तुमच्या मनगटावर असणे आणि या फोनच्या जवळ असणे आवश्यक आहे. वॉच तुमच्या मनगटावर असताना तुम्हाला ते पुन्हा अनलॉक करावे लागणार नाही."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"हा फोन अनलॉक केल्यावर, तुम्हाला तुमच्या वॉचवर सूचित केले जाईल. तुम्हाला अनलॉक करायचा नसतानाही फोन अनलॉक झाल्यास, फोन पुन्हा लॉक करण्यासाठी सूचनेवर टॅप करा."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"तुम्ही नियंत्रक आहात"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"तुम्ही सेटिंग्ज मध्ये कधीही वॉच अनलॉक मधून तुमचे वॉच काढून टाकू शकता"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"सूचनेवर टॅप करा"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लॉक स्क्रीनवर वरती स्वाइप करा"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"तुमचे वॉच निवडा"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"उपलब्ध असलेली वॉच"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"रद्द करा"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"कंफर्म करा"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"तुम्ही पूर्णपणे तयार आहात!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"तुम्ही आता तुमच्या लॉक स्क्रीनवर वरती स्वाइप करून किंवा सूचनेवर टॅप करून हा फोन अनलॉक करण्यासाठी तुमचे वॉच वापरू शकता"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"पूर्ण झाले"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"वॉच अनलॉक"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"तुम्ही तुमच्या लॉक स्‍क्रीनवर वरती स्‍वाइप करता किंवा सूचनेवर टॅप करता, तेव्हा हा फोन अनलॉक करण्यासाठी तुम्ही तुमचे वॉच वापरू शकता"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"वॉच अनलॉक वापरण्यासाठी, तुमचे वॉच हे अनलॉक केलेले असणे, तुमच्या मनगटावर असणे, जवळ असणे आणि या फोनशी कनेक्ट केलेले असणे आवश्यक आहे. कनेक्शनमध्ये व्यत्यय आल्यास, तुम्ही वॉच अनलॉक वापरण्यापूर्वी, तुम्हाला तुमचा फोन अनलॉक करणे आवश्यक असेल.\n\nलक्षात ठेवा:\nतुमच्याकडे एका वेळी फक्त एक वॉच सेट केलेले असू शकते. दुसरे वॉच जोडण्यासाठी, आधी सध्याचे वॉच काढून टाका."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"वॉच अनलॉक बद्दल अधिक जाणून घ्या"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"वॉच जोडा"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"वॉच काढून टाका"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फिंगरप्रिंट आणि फेस अनलॉक"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"कार्य प्रोफाइलसाठी फेस आणि फिंगरप्रिंट अनलॉक"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप आवश्यक आहे"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"सुरक्षा"</string>
     <string name="privacy_header" msgid="5526002421324257007">"गोपनीयता"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"कार्य प्रोफाइल"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"खाजगी स्पेस"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"खाजगी अ‍ॅप्स लॉक करून आणि लपवून ठेवा"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"तुम्ही खाजगी अ‍ॅप्स लपवू किंवा लॉक करू शकता अशा वेगळ्या स्पेसमध्ये ठेवा"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"खाजगी स्पेस चे लॉक"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"तुम्ही तुमचे डिव्हाइस अनलॉक करता त्याच प्रकारे तुमची खाजगी स्पेस अनलॉक करू शकता किंवा वेगळे लॉक निवडू शकता"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"डिव्हाइसचे स्क्रीन लॉक वापरा"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"फेस आणि फिंगरप्रिंट अनलॉक"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"फिंगरप्रिंट अनलॉक"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"फेस अनलॉक"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"सेट करण्यासाठी टॅप करा"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"खाजगी स्पेससाठी फिंगरप्रिंट अनलॉक"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"खाजगी स्पेससाठी फेस अनलॉक"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"अनलॉक करण्याच्या पद्धती"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"डिव्हाइसच्या स्क्रीन लॉकसारखेच"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"खाजगी स्पेस साठी नवीन लॉक निवडायचे आहे का?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"आपोआप लॉक करा"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"खाजगी स्पेस आपोआप लॉक करा"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"तुम्ही काही कालावधीसाठी तुमचे डिव्हाइस वापरले नसल्यास, तुमची खाजगी स्पेस आपोआप लॉक करू शकता"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"प्रत्येक वेळी डिव्हाइस लॉक होते"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"५ मिनिटांच्या इनॅक्टिव्हिटीनंतर"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"कधीही नाही"</string>
+    <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_deleted" msgid="7825768516955610897">"खाजगी स्पेस यशस्वीरीत्या हटवली आहे"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"खाजगी स्पेस हटवली जाऊ शकत नाही"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"खाजगी स्पेस अनलॉक केली आहे"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"स्क्रीन लॉक सेट करा"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"तुमची खाजगी स्पेस वापरण्यासाठी, या डिव्हाइसवर स्क्रीन लॉक सेट करा"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"स्क्रीन लॉक सेट करा"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"रद्द करा"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"रद्द करा"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"सेट करा"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"खाजगी स्पेस सेट करा"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"तुम्ही खाजगी अ‍ॅप्स लपवू किंवा लॉक करू शकता अशा वेगळ्या स्पेसमध्ये ठेवा"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ते कसे काम करते"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"तुम्ही तुमच्या अ‍ॅप्स सूचीच्या तळाशी तुमची खाजगी स्पेस अ‍ॅक्सेस करू शकता"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"तुमची खाजगी स्पेसमधील ॲप्स लॉकद्वारे संरक्षित केलेली असतात"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"तुमची खाजगी स्पेस लॉक केलेली असताना त्यामधील ॲप्सच्या सूचना लपवल्या जातात"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"तुमची खाजगी स्पेस लॉक केलेली असताना तुमच्या खाजगी स्पेसमधील अ‍ॅप्स परवानगी व्यवस्थापक, गोपनीयता डॅशबोर्ड आणि इतर सेटिंग्जमध्ये दिसणार नाहीत.\n\nतुमची खाजगी स्पेस नवीन डिव्हाइसवर हलवली जाऊ शकत नाही. तुम्हाला दुसर्‍या डिव्हाइसवर वापरायची असल्यास, दुसरी खाजगी स्पेस सेट करावी लागेल.\n\nतुमच्‍या डिव्‍हाइसला कॉंप्युटरशी कनेक्ट करणारे किंवा तुमच्या डिव्‍हाइसवर हानिकारक अ‍ॅप्‍स इंस्टॉल करणारे कोणीही तुमची खाजगी स्पेस अ‍ॅक्सेस करू शकते."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"खाजगी स्पेस सेट करत आहे…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"खाजगी स्पेस लॉक केलेली असताना त्यामधील ॲप्सच्या सूचना लपवल्या जातात"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"खाजगी स्पेस अ‍ॅप्समधून फोटो किंवा फाइल शेअर करण्यासाठी स्पेस अनलॉक करा"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"तुमच्या खाजगी स्पेसमध्ये काही अ‍ॅप्स आधीपासून इंस्टॉल केलेली आहेत"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"खाजगी स्पेस सेट करता आली नाही"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"पुन्हा प्रयत्न करा"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"खाजगी स्पेस अनलॉक करण्यासाठी स्क्रीन लॉक वापरायचे?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"तुम्ही तुमचे डिव्हाइस अनलॉक करता त्याच प्रकारे तुमची खाजगी स्पेस अनलॉक करू शकता किंवा दुसरे लॉक निवडू शकता"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"स्क्रीन लॉक वापरा"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"नवीन लॉक निवडा"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"सर्व तयार आहे!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"तुमची खाजगी स्पेस अ‍ॅक्सेस करण्‍यासाठी, तुमच्‍या अ‍ॅप्स सूचीवर जा आणि नंतर खाली स्क्रोल करा"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"पूर्ण झाले"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"खाजगी स्पेस शोधण्यासाठी खाली स्क्रोल करा"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"खाजगी स्पेससाठी लॉक निवडा"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"तुम्ही तुमची फिंगरप्रिंट वापरून तुमची खाजगी स्पेस अनलॉक करू शकता. सुरक्षेसाठी, या पर्यायाकरिता बॅकअप लॉक आवश्यक आहे."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"तुमच्या खाजगी स्पेससाठी पिन सेट करा"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"तुमच्या खाजगी स्पेससाठी पासवर्ड सेट करा"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"तुमच्या खाजगी स्पेससाठी पॅटर्न सेट करा"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"खाजगी स्पेस दाखवण्यासाठी (अंतिम UX नाही)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Settings अ‍ॅप उघडा"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"सुरक्षा आणि गोपनीयता &gt; खाजगी स्पेस &gt; वर टॅप करा लॉक केलेले असताना खाजगी स्पेस लपवा"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"लॉक केलेले असताना खाजगी स्पेस लपवा टॉगल करा"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googlers साठी टीप: या वैशिष्ट्याचा विकास अद्याप प्रगतीपथावर आहे"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"तुम्हाला इतर डिव्हाइसवर देखील ही पासकी टाईप करण्याची आवश्यकता असू शकते."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"समन्वित सेटशी पेअर करण्याचे कंफर्म करा"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"तुमच्या संपर्क आणि कॉल इतिहासातील अ‍ॅक्सेसची अनुमती द्या"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"संपर्क आणि कॉल इतिहासाच्या अ‍ॅक्सेसचीदेखील अनुमती द्या"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"कॉल घोषणा आणि आणखी बऱ्याच गोष्टींसाठी माहिती वापरली जाईल"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सह कनेक्ट करणे शक्य झाले नाही."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"उपलब्ध डिव्हाइस"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"विमान मोड मध्ये"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"सार्वजनिक नेटवर्क संबंधित सूचना द्या"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"उच्च गुणवत्तेचे सार्वजनिक नेटवर्क उपलब्ध असताना सूचित करा"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP नेटवर्कना अनुमती द्या"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP हा आणखी जुना कमी सुरक्षित असलेला सुरक्षा प्रोटोकॉल आहे"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP नेटवर्क कमी सुरक्षित असल्यामुळे तुमचा वाहक त्यांना अनुमती देत नाही"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"वाय-फाय आपोआप सुरू करा"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"तुमच्या होम नेटवर्कसारख्या सेव्ह केलेल्या उच्च दर्जाच्या नेटवर्कजवळ असताना वाय-फाय आपोआप परत सुरू होईल"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"स्थान बंद केल्यामुळे अनुपलब्ध आहे. "<annotation id="link">"स्थान"</annotation>" सुरू करा."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"वाय-फाय स्कॅनिंग हे अ‍ॅप्स आणि सेवांना वाय-फाय बंद असतानाही कोणत्याही वेळी वाय-फाय नेटवर्कसाठी स्कॅन करण्याची अनुमती देते. उदाहरणार्थ, स्थान आधारित वैशिष्ट्ये आणि सेवांमध्ये सुधारणा करण्यासाठी हे वापरले जाऊ शकते."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"सुरू करा"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"वाय-फाय स्कॅनिंग सुरू केले आहे"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"हे नेटवर्क कमी सुरक्षित असलेले आणखी जुने सुरक्षा प्रोटोकॉल वापरते"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ला ब्लॉक केले आहे"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"हे नेटवर्ट कमी सुरक्षित असलेला WEP हा आणखी जुना सुरक्षा प्रोटोकॉल वापरते. तरीही कनेक्ट करण्यासाठी, तुम्ही WEP नेटवर्कला अनुमती देऊ शकता."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"नेटवर्क कमी सुरक्षित असलेला जुना सुरक्षा प्रोटोकॉल वापरते, त्यामुळे तुमचा वाहक तुम्हाला या नेटवर्कशी कनेक्ट करण्याची अनुमती देत नाही"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP ला अनुमती द्या"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"बंद करा"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"प्रगत पर्याय"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ड्रॉप-डाउन सूचीचे प्रगत पर्याय"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"विस्तार करा"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"वाय‑फाय वर सुरू ठेवा"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"पुन्हा कधीही दर्शवू नका"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"कनेक्ट करा"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"वाय-फाय सुरू केले आहे"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> शी कनेक्ट केले आहे"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> शी कनेक्ट करत आहे"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"कनेक्ट करत आहे…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"नेटवर्कशी कनेक्‍ट करण्‍यात अयशस्वी"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क रेंजमध्ये नाही"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"विसरा"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"बदल करा"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"नेटवर्क विसरण्यात अयशस्वी"</string>
     <string name="wifi_save" msgid="2312643132472226807">"सेव्ह करा"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"नेटवर्क सेव्ह करण्यात अयशस्वी"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"रद्द करा"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"वाय-फाय"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"मोबाइल डेटा"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"इथरनेट"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ चार्ज होत आहे"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ चार्ज होत आहे"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"हॉटस्पॉट कनेक्शन"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"कनेक्शनची क्षमता"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"सेव्ह केलेली नेटवर्क"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"पासवर्ड सेट केलेला नाही"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"हॉटस्पॉट नाव"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"हॉटस्पॉट पासवर्ड"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP बॅंड"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"हॉटस्पॉट आपोआप बंद करा"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"कोणतीही डिव्हाइस कनेक्ट केलेली नसताना"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"कंपॅटिबिलिटी वाढवा"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"गेमसाठी डीफॉल्ट फ्रेम दर बंद करा"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"गेमसाठी कमाल फ्रेम दर <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz पर्यंत मर्यादित करण्यासाठी बंद करा."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"स्मूथ डिस्प्ले"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"कोणी स्क्रीनकडे पाहत असल्यास स्क्रीन अटेंशन पुढील कॅमेरा वापरते. ते डिव्हाइसवर काम करते आणि इमेज कधीही स्टोअर केल्या जात नाहीत किंवा Google ला पाठवल्या जात नाहीत."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"स्क्रीन अटेंशन सुरू करा"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"स्क्रीनकडे पाहत ती सुरू ठेवा"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"दीर्घ स्क्रीन टाइमआउट अधिक बॅटरी वापरेल."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"कॅमेरा लॉक केलेला आहे"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"फेस डिटेक्शन साठी कॅमेरा अनलॉक करणे आवश्यक आहे"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"स्क्रीन अटेंशन साठी कॅमेरा अनलॉक केलेला असणे आवश्यक आहे"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (सिम स्लॉट <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (सिम स्लॉट <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (प्राथमिक)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"पाहण्यासाठी, सेव्ह केलेले नेटवर्क निवडा"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL आवृत्ती"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"बॅटरी पातळी"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"सामुदायिक"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"सामुदायिक सेटिंग्ज"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"सेव्ह करा"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"रद्द करा"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"नाव फील्ड रिक्त असू शकत नाही."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN रिक्त असू शकत नाही."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC फील्ड 3 अंकी असणे आवश्यक आहे."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC फील्ड 2 किंवा 3 अंकी असणे आवश्यक आहे."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"%s प्रकारचे APN जोडण्‍याची अनुमती वाहक देत नाही."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC फील्ड योग्य असणे आवश्यक आहे."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"डीफॉल्ट APN सेटिंग्ज पुनर्संचयित करत आहे."</string>
     <string name="menu_restore" msgid="4310539620115151551">"डीफॉल्टवर रीसेट करा"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"डीफॉल्ट APN सेटिंग्ज रीसेट करणे पूर्ण झाले."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"रीसेट करा"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ब्लूटूथ आणि वाय-फाय रीसेट केले गेले आहे"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMs मिटवा"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"यामुळे कोणतेही मोबाइल सेवा प्लॅन रद्द होणार नाहीत. बदललेले SIM डाउनलोड करण्यासाठी तुमच्या वाहकाशी संपर्क साधा."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"सेटिंग्ज रीसेट करा"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"सर्व नेटवर्क सेटिंग्ज रीसेट करायची? तुम्ही ही कृती पहिल्यासारखी करू शकत नाही."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"सर्व नेटवर्क सेटिंग्ज रीसेट करायची आणि eSIMs मिटवायची आहेत का? तुम्ही ही कृती पहिल्यासारखी करू शकत नाही."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"रीसेट करायचे?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"या वापरकर्त्यासाठी नेटवर्क रीसेट उपलब्ध नाही"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"नेटवर्क सेटिंग्ज रीसेट केल्या गेल्या आहेत"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"सिम मिटवू शकत नाही"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIMs एका एररमुळे मिटवता आली नाहीत.\n\nतुमचे डिव्हाइस रीस्टार्ट करा आणि पुन्हा प्रयत्न करा."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"सर्व डेटा मिटवा (फॅक्टरी रीसेट)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"सर्व डेटा मिटवा (फॅक्टरी रीसेट)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"संगीत"</li>\n<li>"फोटो"</li>\n<li>"इतर वापरकर्ता डेटा"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"यामुळे तुमचा मोबाइल सेवा प्‍लॅन रद्द होणार नाही."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"तुमची सर्व वैयक्तिक माहिती आणि डाउनलोड केलेली अ‍ॅप्स हटवली जातील. तुम्ही ही कृती पहिल्यासारखी करू शकत नाही."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"डाउनलोड केलेली अ‍ॅप्स आणि सिमसह, तुमची सर्व वैयक्तिक माहिती हटवली जाईल. तुम्ही ही कृती पहिल्यासारखी करू शकत नाही."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"सर्व डेटा मिटवायचा का?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"या वापरकर्त्यासाठी फॅक्‍टरी रीसेट उपलब्‍ध नाही"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"मिटवत आहे"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"हॉटस्पॉट, USB, ब्लूटूथ, इथरनेट"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"इतर डिव्हाइससह इंटरनेट शेअर करत नाही"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"बंद आहे"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"टेदरिंग"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"वाय-फाय हॉटस्पॉट वापरू नका"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"फक्त USB द्वारे इंटरनेट शेअर करा"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"फक्त ब्लूटूथद्वारे इंटरनेट शेअर करा"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"फक्त इथरनेट द्वारे इंटरनेट शेअर करा"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"फक्त USB आणि ब्लूटूथद्वारे इंटरनेट शेअर करा"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"फक्त USB आणि इथरनेट द्वारे इंटरनेट शेअर करा"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"फक्त ब्लूटूथ आणि इथरनेट द्वारे इंटरनेट शेअर करा"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"फक्त USB, ब्लूटूथ आणि इथरनेट द्वारे इंटरनेट शेअर करा"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB टेदरिंग"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ब्लूटूथ टेदरिंग"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"इथरनेट टेदरिंग"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"तुमच्या मोबाइल डेटा कनेक्शन किंवा वाय-फाय द्वारे इतर डिव्हाइसना इंटरनेट पुरवण्यासाठी हॉटस्पॉट आणि टेदरिंगचा वापर करा. जवळपासच्या डिव्हाइससह आशय शेअर करण्यासाठी अ‍ॅप्स हॉटस्पॉटदेखील तयार करू शकतात."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"मदत"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"मोबाइल नेटवर्क"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"मोबाइल प्लॅन"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS अ‍ॅप"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS अ‍ॅप बदलायचा?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> च्याऐवजी <xliff:g id="NEW_APP">%1$s</xliff:g> ला तुमचा SMS अ‍ॅप म्हणून वापराय?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"वाय-फाय साहाय्यक बदलायचा?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"तुमची नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="CURRENT_APP">%2$s</xliff:g> ऐवजी <xliff:g id="NEW_APP">%1$s</xliff:g> वापरायचा?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"तुमची नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी <xliff:g id="NEW_APP">%s</xliff:g> वापरायचा?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"अज्ञात सिम ऑपरेटर"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> मध्ये कोणतीही ज्ञात तरतूद वेबसाइट नाही"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"कृपया सिम कार्ड घाला आणि रीस्टार्ट करा"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"कृपया इंटरनेटशी कनेक्ट करा"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"अलीकडील स्थान विनंत्या"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"कार्य प्रोफाइलसाठी स्थान"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ॲपसाठी स्थानाच्या परवानग्या"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"प्रवेश साफ करा"</string>
     <string name="controls_label" msgid="8671492254263626383">"नियंत्रणे"</string>
     <string name="force_stop" msgid="2681771622136916280">"सक्तीने थांबवा"</string>
+    <string name="archive" msgid="9074663845068632127">"संग्रहित करा"</string>
+    <string name="restore" msgid="7622486640713967157">"रिस्टोअर करा"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"एकूण"</string>
     <string name="application_size_label" msgid="6407051020651716729">"अ‍ॅप आकार"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB स्टोरेज अ‍ॅप"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"पॅकेजच्या आकाराची गणना करणे शक्य नाही"</string>
     <string name="version_text" msgid="7628938665256107608">"आवृत्ती <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"हलवा"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"संग्रहित करता आले नाही"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"संग्रहित केलेले <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"रिस्टोअर करता आले नाही"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> रिस्टोअर करत आहे"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"दुसरे स्थलांतर आधीपासून प्रगतीपथावर आहे."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"पुरेसे संचयन स्थान नाही."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"अ‍ॅप अस्तित्वात नाही."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"उपलब्ध ऑन-स्क्रीन कीबोर्ड"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ऑन-स्क्रीन कीबोर्ड व्यवस्थापित करा"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"पर्याय"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"अ‍ॅक्सेसिबिलिटी"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"वास्तविक कीबोर्ड"</string>
     <string name="show_ime" msgid="4334255501724746849">"ऑन-स्क्रीन कीबोर्ड वापरा"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"वास्तविक कीबोर्ड अ‍ॅक्टिव्ह असताना त्यास स्क्रीनवर ठेवा"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"वास्तविक कीबोर्ड अ‍ॅक्सेसिबिलिटीसाठी बाउन्स की सुरू करा"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"स्टिकी की"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"वास्तविक कीबोर्ड अ‍ॅक्सेसिबिलिटीसाठी स्टिकी की सुरू करा"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"कीबोर्ड शॉर्टकट"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"शॉर्टकटची सूची दाखवा"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"कार्य प्रोफाइल कीबोर्ड आणि टूल"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"वापराच्या वेळेनुसार क्रमाने लावा"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"शेवटच्या वापरानुसार क्रमाने लावा"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"अ‍ॅप हे नावानुसार क्रमाने लावा"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"अंतिम वेळी वापरलेले"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"शेवटचे वापरलेले"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"कधीही नाही"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"वापर वेळ"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"अ‍ॅक्सेसिबिलिटी"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"प्रवेशयोग्यता सेटिंग्ज"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"तरीही पुढे सुरू ठेवा"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"रद्द करा"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"मॅग्निफिकेशन सेटिंग्ज"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"तीन वेळा टॅप करून मोठे करा"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"शॉर्टकटद्वारे मॅग्निफाय करा"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"शॉर्टकट वापरून आणि तीन वेळा टॅप करून मॅग्निफाय करा"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> बद्दल"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"उघडण्यासाठी दोन बोटांनी स्क्रीनवर दोनदा टॅप करा"</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="860548190334486449">"मॅग्निफिकेशन सुरू करण्यासाठी आणि थांबवण्यासाठी, दोन बोटांनी तुमच्या स्क्रीनवर कुठेही दोनदा टॅप करा."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ॲक्सेसिबिलिटी वैशिष्ट्य वापरण्यासाठी, तीन बोटांनी स्क्रीनच्या तळापासून वर स्वाइप करा.\n\nवैशिष्ट्यांदरम्यान स्विच करण्यासाठी तीन बोटांनी वर स्वाइप करा आणि धरून ठेवा."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"समजले"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"अ‍ॅक्सेसिबिलिटी बटण सेटिंग्ज"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"बटण सेटिंग्ज"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> शॉर्टकट"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"अ‍ॅक्सेसिबिलिटी बटण"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ॲक्सेसिबिलिटी जेश्चर"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"दोन बोटांनी स्क्रीनवर दोनदा टॅप करा"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"दोन बोटांनी स्क्रीनवर दोनदा टॅप करा"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"दोन बोटांनी स्क्रीनवर {0,number,integer} वेळा झटपट टॅप करा"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रीनवर तीन वेळा टॅप करा"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"स्क्रीनवर तीन वेळा टॅप करा"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रीनवर झटपट {0,number,integer} वेळा टॅप करा. हा शॉर्टकट तुमच्या डिव्हाइसचा वेग कमी करू शकताे"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"अ‍ॅक्सेसिबिलिटी बटण आणि जेश्चरबद्दल अधिक जाणून घ्या"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ॲक्सेसिबिलिटी बटण वापरणे. तीन बटण नेव्हिगेशनसह जेश्चर उपलब्ध नाही."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"अ‍ॅक्सेसिबिलिटी वैशिष्ट्ये झटपट अ‍ॅक्सेस करा"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"सुरुवात करण्यासाठी"</b>\n"1. अ‍ॅक्सेसिबिलिटी सेटिंग्जवर जा\n2. वैशिष्‍ट्य निवडा आणि शॉर्टकटवर टॅप करा\n3. तुम्हाला वैशिष्‍ट्य अ‍ॅक्सेस करण्यासाठी बटण वापरायचे आहे, की जेश्चर ते निवडा"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"सुरुवात करण्यासाठी"</b>\n"१. अ‍ॅक्सेसिबिलिटी सेटिंग्जवर जा\n२. वैशिष्‍ट्य निवडा आणि शॉर्टकटवर टॅप करा\n३. वैशिष्‍ट्य अ‍ॅक्सेस करण्यासाठी बटण निवडा"</string>
+    <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_size_title" msgid="5785110470538960881">"आकार"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"पॉवर बटण कॉल समाप्त करते"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"मोठा माउस पॉइंटर"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"माउस पॉइंटर अधिक लक्षवेधी बनवा"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"सर्व अ‍ॅप्सना गडद थीम लागू करा"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"त्यांच्या स्वतःच्या गडद थीमशिवाय अ‍ॅप्सना लागू होते. काही अ‍ॅप्समध्ये डिस्प्लेसंबंधित समस्या असू शकतात, जसे की उलटे केलेले रंग."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"अ‍ॅनिमेशन काढा"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"स्क्रीनवरील हालचाल कमी करा"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"मोनो ऑडिओ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"हे तुमचा ॲप किंवा हार्डवेअर सेन्सरसोबतचा परस्‍परसंवाद ट्रॅक करू शकते आणि इतर ॲप्ससोबत तुमच्या वतीने संवाद साधू शकते."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमती द्या"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नकार द्या"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"थांबा"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"रद्द करा"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> थांबवायचे?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> वर टॅप केल्याने <xliff:g id="SERVICE">%2$s</xliff:g> थांबेल."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"बंद करा"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"सुरू ठेवा"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> बंद करायचा आहे का?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"सेवा इंस्टॉल केल्या नाहीत"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"कोणतीही सेवा निवडलेली नाही"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"वर्णन प्रदान केले नाही."</string>
     <string name="settings_button" msgid="2195468788019730377">"सेटिंग्ज"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"प्रकाशाची संवेदनशीलता, फोटोफोबिया, गडद थीम, मायग्रेन, डोकेदुखी, रिडींग मोड, नाइट मोड, ब्राइटनेस कमी करा, व्हाइट पॉइंट"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"वापरण्यातील सुलभता, अ‍ॅक्सेस, साहाय्य, साहाय्यकारी यांसाठी सुलभ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"दृष्टी, श्रवण, दृष्टी-भिन्नक्षम, श्रवणदृष्ट्या भिन्नक्षम, मोटर, कौशल्य, साहाय्यकारी, साहाय्य, वापरण्यामधील सहजता, अ‍ॅक्सेसमधील सहजता, हात, मदत"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, Zoom, मॅग्निफिकेशन, कमी दृश्यमानता, मोठे करा, आणखी मोठे करा"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"कॅप्शन, सबटायटल, सबटायटल, Live Transcribe, कमी ऐकू येणे, ऐकू न येणे, CART, स्‍पीच टू टेक्‍स्‍ट, सबटायटल"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"रंग कॉंट्रास्ट"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"मोटर, माउस"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"श्रवणयंत्रे, श्रवणदोष, ऐकू न येणे, कॉक्लियर इंप्लांट, अँप्लिफिकेशन डिव्हाइस, आवाज प्रोसेसर"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"मोटर, माउस, वायर्ड माउस, डोक्याला लावायचा माउस, अडॅप्टिव्ह माउस, व्हिलचेअर, जॉयस्टिक"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"श्रवणयंत्रे, श्रवणदोष, ऐकू येण्याची क्षमता गमवणे, कॉक्लियर इंप्लांट, अँप्लिफिकेशन डिव्हाइस, आवाज प्रोसेसर, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"कमी ऐकू येणे, ऐकू न येणे, कॅप्शन, टेलीटाइप, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"तीन बटण"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"कौशल्य, मोटर, सिनियर, संधिवात, rsi, स्ट्रोक, कंपन, मल्टीपल स्क्लेरोसिस, सेरेब्रल पाल्सी, थरथर, रिपेटेटिव्ह स्ट्रेन इंज्युरी, हात"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"डिले, डेक्सेरिटी, सिनियर"</string>
     <string name="print_settings" msgid="8519810615863882491">"प्रिंट"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"बंद"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{एक प्रिंट सेवा सुरू}other{# प्रिंट सेवा सुरू}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"सर्वात जास्त वापरली जाणारी ॲप्स पहा"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"तुमच्या बॅटरीचे संरक्षण करण्यासाठी चार्जिंग ऑप्टिमाइझ केले आहे"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"तुमच्या बॅटरीचा कालावधी वाढवण्यात मदत करण्यासाठी, चार्जिंग ऑप्टिमाइझ केले आहे"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"तुमच्या बॅटरीचे संरक्षण करण्यासाठी चार्जिंग ऑप्टिमाइझ केले आहे"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"तुमच्या बॅटरीचा कालावधी वाढवण्यात मदत करण्यासाठी, डॉक केलेले असताना चार्जिंग ऑप्टिमाइझ केले आहे"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"तुमच्या बॅटरीचे संरक्षण करण्यासाठी चार्जिंग ऑप्टिमाइझ केले आहे"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"तुमच्या बॅटरीचा कालावधी वाढवण्यात मदत करण्यासाठी, डॉक केलेले असताना चार्जिंग ऑप्टिमाइझ केले आहे"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"पूर्ण चार्ज करत आहे"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"तुमच्या बॅटरीचे संरक्षण करण्यासाठी, पुढील वेळी तुमचा टॅबलेट डॉक केलेला असेल, तेव्हा चार्जिंग ऑप्टिमाइझ केले जाईल"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"चार्जिंगबद्दल अधिक जाणून घ्या हे थांबवले आहे"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"चार्जिंग पुन्हा सुरू करा"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"जास्त बॅटरी वापरणारी बॅकग्राउंड अ‍ॅक्टिव्हिटी समाविष्ट आहे"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"काढा"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"रद्द करा"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"पूर्ण चार्ज करा"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"चार्जिंगच्या ॲक्सेसरीसंबंधित समस्या"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"कंपॅटिबल नसलेल्या चार्जिंगबद्दल अधिक जाणून घ्या"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"बॅटरी व्यवस्थापक"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"अ‍ॅप्स आपोआप व्यवस्थापित करा"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"आता"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> ते <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"बॅटरी वापर चार्ट"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"दैनिक बॅटरी वापर चार्ट"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"तासानुसार बॅटरी वापर चार्ट"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"बॅटरीच्या पातळीची टक्केवारी <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ते <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"शेवटची पूर्ण चार्ज केल्यानंतरचा बॅटरी वापर"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> साठी बॅटरी वापर"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"शेवटची पूर्ण चार्ज केल्यानंतरची स्क्रीन वेळ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"आणीबाणी डायलिंग सिग्नल"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"आणीबाणी कॉल केला जातो तेव्हा वर्तन सेट करा"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"बॅकअप"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"सुरू"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"बंद"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"बॅकअप घ्या आणि पुनर्संचयित करा"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"वैयक्तिक डेटा"</string>
     <string name="backup_data_title" msgid="507663517227498525">"माझ्या डेटाचा बॅकअप घ्या"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"नाव"</string>
     <string name="vpn_type" msgid="5533202873260826663">"प्रकार"</string>
     <string name="vpn_server" msgid="2908816134941973935">"सर्व्हर अ‍ॅड्रेस"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP एंक्रिप्शन (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP गुपीत"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ओळखकर्ता"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec आधीच शेअर केलेली की"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec वापरकर्ता प्रमाणपत्र"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA प्रमाणपत्र"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec सर्व्हर प्रमाणपत्र"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"प्रगत पर्याय दाखवा"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS शोध डोमेन"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS सर्व्हर (उदा. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"फॉरवर्ड करण्याचा मार्ग (उदा. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"वापरकर्ता नाव"</string>
     <string name="vpn_password" msgid="1183746907642628127">"पासवर्ड"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"खाते माहिती सेव्ह करा"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(वापरले नाही)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(सर्व्हरची पडताळणी करू नका)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(सर्व्हरवरुन प्राप्त झालेले)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"हा VPN प्रकार सर्व वेळी कनेक्ट केलेला राहू शकत नाही"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"नेहमी सुरू VPN केवळ अंक असलेल्या सर्व्हर अ‍ॅड्रेसना सपोर्ट करतात"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"नेहमी-सुरू VPN साठी DNS सर्व्हर नमूद करणे आवश्यक आहे"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"नेहमी-सुरू VPN साठी DNS सर्व्हर पत्ते अंकीय असणे आवश्यक आहे"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"एंटर केलेली माहिती नेहमी सुरू VPN ला सपोर्ट करत नाही"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"रद्द करा"</string>
     <string name="vpn_done" msgid="5137858784289564985">"डिसमिस करा"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN शिवायची कनेक्शन ब्लॉक करा"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN कनेक्शन आवश्यक आहे?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"सुरक्षित नाही. IKEv2 VPN वर अपडेट करा"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"सपोर्ट नसलेले VPN सुरू करता आले नाही."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"नेहमी कनेक्ट केलेले राहण्यासाठी एक VPN प्रोफाईल निवडा. केवळ या VPN शी कनेक्ट केलेले असताना नेटवर्क रहदारीला अनुमती दिली जाईल."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"काहीही नाही"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"नेहमी सुरू असलेल्या VPN ला सर्व्हर आणि DNS दोन्हीसाठी एका IP पत्त्याची आवश्यकता आहे."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"अँबर सूचना"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"बाल अपहरणाविषयी बुलेटिन मिळवा"</string>
     <string name="repeat_title" msgid="8676570486899483606">"पुनरावृत्ती"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"कॉल व्यवस्थापक सुरू करा"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"तुमचे कॉल कसे केले जातात हे व्यवस्थापित करण्यासाठी या सेवेस अनुमती द्या."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"कॉल व्यवस्थापक"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"आणीबाणीच्या वायरलेस सूचना"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"नेटवर्क ऑपरेटर"</string>
     <string name="access_point_names" msgid="5768430498022188057">"प्रवेश बिंदू नावे"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"वॉलेट"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"पेमेंट करा, टॅप करा, पेमेंट"</string>
     <string name="keywords_backup" msgid="707735920706667685">"बॅकअप, बॅक अप"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"जेश्चर"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"चेहरा, अनलॉक, प्रमाणीकरण, साइन इन"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"फेस, अनलॉक करा, ऑथेंटिकेशन, साइन इन करा, फिंगरप्रिंट, बायोमेट्रिक"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl आवृत्ती, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ध्वनी सुरू करा"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"लाइव्ह कॅप्शन"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"मीडियाला आपोआप सबटायटल द्या"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"फोनचे स्पीकर"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"टॅबलेटचे स्पीकर"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"डिव्हाइसचे स्पीकर"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"वायर असलेले हेडफोन"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"कंपॅटिबल मीडियामधील ऑडिओ हा आणखी इमर्सिव्ह होतो"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"बंद आहे"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"अलीकडील संभाषणे काढून टाकली"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"संभाषण काढून टाकले आहे"</string>
     <string name="clear" msgid="5092178335409471100">"साफ करा"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> साफ करा"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"प्राधान्य असलेली आणि बदल केलेली संभाषणे येथे दिसतील"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"तुम्ही संभाषणावर प्राधान्य असलेले म्हणून खूण केल्यास किंवा संभाषणांमध्ये इतर कोणतेही बदल केल्यास, ते येथे दिसतील. \n\nसंभाषण सेटिंग्ज बदलण्यासाठी: \nपुल-डाउन शेड उघडण्यासाठी स्क्रीनच्या सर्वात वरच्या भागातून खाली स्वाइप करा त्यानंतर स्पर्श करा आणि संभाषण धरून ठेवा."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"लहान करा"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"बंद आहे"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ॲप पिनिंग"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"अ‍ॅप पिनिंग हे तुम्ही पिन केलेले ॲप अनपिन करत नाही तोपर्यंत ते पाहू देते. उदाहरणार्थ, हे वैशिष्ट्य एखाद्या विश्वासू मित्राला विशिष्ट गेम खेळू देण्यासाठी वापरले जाऊ शकते."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"एखादे ॲप पिन केलेले असते, तेव्हा त्या पिन केलेल्या ॲपद्वारे कदाचित इतर अ‍ॅप्स उघडता येतील आणि वैयक्तिक डेटा अ‍ॅक्सेस करता येईल. \n\nॲप पिनिंग वापरण्यासाठी: 	\n१. ॲप पिनिंग सुरू करा 	\n२. अवलोकन उघडा 	\n३. स्क्रीनच्या सर्वात वर असलेल्या ॲप आयकनवर टॅप करा त्यानंतर पिन करा वर टॅप करा"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"एखादे ॲप पिन केलेले असते, तेव्हा त्या पिन केलेल्या ॲपद्वारे कदाचित इतर अ‍ॅप्स उघडता येतील आणि वैयक्तिक डेटा अ‍ॅक्सेस करता येईल. \n\nतुम्हाला एखाद्या व्यक्तीसोबत तुमचे डिव्हाइस सुरक्षितपणे शेअर करायचे असल्यास, तुमच्याऐवजी अतिथी वापरकर्ता वापरून पहा. \n\nॲप पिनिंग वापरण्यासाठी: 	\n१. ॲप पिनिंग सुरू करा 	\n२. अवलोकन उघडा 	\n३. स्क्रीनच्या सर्वात वर असलेल्या ॲप आयकनवर टॅप करा त्यानंतर पिन करा वर टॅप करा"</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_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">"अनपिन करण्‍यापूर्वी पिन साठी विचारा"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"न वापरल्यास, ॲप व्यवस्थापित करा"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"परवानग्या काढून टाका, तात्पुरत्या फाइल हटवा, सूचना थांबवा आणि ॲप संग्रहित करा"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"सर्व अ‍ॅप्स"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"इंस्टॉल केलेली अ‍ॅप्स"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"इन्स्टंट अ‍ॅप्स"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"उपलब्ध"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"अ‍ॅप्सद्वारे वापरलेली मेमरी"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{एका अ‍ॅपने मागील {time} मध्ये मेमरी वापरली}other{# अ‍ॅप्सनी मागील {time} मध्ये मेमरी वापरली}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"मेमरी वापर प्रोफायलिंग सुरू करा"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"मेमरी वापर प्रोफायलिंगला अतिरिक्त सिस्टीम स्रोतांची आवश्यकता आहे."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"मेमरी प्रोफायलिंग बंद केले आहे"</string>
     <string name="running_frequency" msgid="7260225121706316639">"फ्रीक्वेन्सी"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"कमाल वापर"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"डेटा वापरला गेलेला नाही"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"इतर अ‍ॅप्सच्या वर प्रदर्शित करा"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"इतर अ‍ॅप्सच्या वर प्रदर्शित करू द्या"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"हे अ‍ॅप तुम्ही वापरत असलेल्या इतर अ‍ॅप्सच्या वर दिसू द्या. तुम्ही स्क्रीनवर कुठे टॅप करता किंवा डिस्प्ले केलेले बदलता ते या अ‍ॅपला पाहता येईल."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"मीडिया आउटपुट बदला"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"अ‍ॅपला मीडिया आउटपुट स्विच करण्याची अनुमती द्या"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"या अ‍ॅपला इतर अ‍ॅप्सवरून कनेक्ट केलेले कोणते डिव्हाइस ऑडिओ किंवा व्हिडिओ प्ले करेल ते निवडण्याची अनुमती द्या. अनुमती दिल्यास, हे अ‍ॅप हेडफोन आणि स्पीकर सारख्या उपलब्ध डिव्हाइसची सूची अ‍ॅक्सेस करू शकते व ऑडिओ किंवा व्हिडिओ स्ट्रीम अथवा कास्ट करण्यासाठी कोणते आउटपुट डिव्हाइस वापरायचे ते निवडू शकते."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"सर्व फाइलचा अ‍ॅक्सेस"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"व्हॉइस अ‍ॅक्टिव्हेशनमध्ये सुधारणा करा"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"व्हॉइस ॲक्टिव्हेशन मॉडेलमध्ये सुधारणा करण्यासाठी हे डिव्हाइस खाजगी इंटेलिजन्स वापरते. सर्वांसाठी मॉडेलमध्ये सुधारणा करत असताना गोपनीयता कायम ठेवण्यासाठी ॲप्स ही बऱ्याच वापरकर्त्यांकरिता एकत्रित करून सारांश दिलेली अपडेट मिळवू शकतात.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> डेटा चेतावणी"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> डेटा मर्यादा"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> डेटा चेतावणी / <xliff:g id="ID_2">^2</xliff:g> डेटा मर्यादा"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"वाहक डेटा गणना तुमच्या डिव्हाइसपेक्षा भिन्न असू शकते"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"वाहक नेटवर्कनी वापरलेला डेटा वगळते"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> वापरला"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"डेटा चेतावणी सेट करा"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> पूर्वी अपडेट केले"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> ने आत्ताच अपडेट केले"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"आत्ताच अपडेट केले"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"योजना पहा"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"तपशील पहा"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"डेटा सेव्हर"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"अनिर्बंध डेटा"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"बॅटरी वापर विसंगती"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"क्विक सेटिंग्ज डेव्हलपर टाइल"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb ऑथोरायझेशन टाइमआउट बंद करा"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"डीफॉल्ट (सात दिवस) किंवा वापरकर्ता-कॉंफिगर केलेल्या (किमान एक दिवस) वेळेमध्ये पुन्हा कनेक्ट न केलेल्या सिस्टीमसाठी adb ऑथोरायझेशन ऑटोमॅटिक मागे घेणे बंद करा."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"विनस्कोप ट्रेस"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"सेन्सर बंद आहेत"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"कार्य प्रोफाइल सेटिंग्ज"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"वैयक्तिक ॲप्समध्ये कामासंबंधित डिरेक्टरीतील संपर्क शोधा"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ऑटोफिल सेवा"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"डीफॉल्ट ऑटोफिल सेवा"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"पासवर्ड"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"पासवर्ड, पासकी आणि डेटा सेवा"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"अतिरिक्त पुरवठादार"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# पासवर्ड}other{# पासवर्ड}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ऑटो, फिल, ऑटोफिल, पासवर्ड"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"डेटा, पासकी, पासवर्ड"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ऑटो, भरा, ऑटोफिल, डेटा, पासकी, पासवर्ड"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"पासवर्ड, पासकी आणि डेटा सेवा"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;सर्व सेवा बंद करायच्या आहेत का?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; तुम्ही साइन इन करा, तेव्हा पासवर्ड, पासकी आणि सेव्ह केलेली इतर माहिती ऑटोफिलसाठी उपलब्ध नसेल"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;तुमची प्राधान्य दिलेली सेवा &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; वर बदलायची आहे का?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; नवीन पासवर्ड, पासकी आणि इतर माहिती आतापासून येथे सेव्ह केली जाईल. काय ऑटोफिल केले जाऊ शकते हे निर्धारित करण्यासाठी &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; हे तुमच्या स्क्रीनवर असलेल्या गोष्टी वापरू शकते"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s वापरायचे आहे का?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"तुमच्याकडे फक्त ५ सेवा सुरू असू शकतात"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"दुसरी सेवा जोडण्यासाठी किमान १ सेवा बंद करा"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"कोणत्या गोष्टी ऑटोफिल करता येतील हे निश्चित करण्यासाठी %1$s हे तुमच्या स्क्रीनवर काय आहे ते वापरते."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"पासवर्ड, पासकी आणि डेटा सेवा मर्यादा"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"तुम्ही एकाचवेळी कमाल पाच पासवर्ड, पासकी आणि डेटा सेवा ठेवू शकता. आणखी जोडण्यासाठी एखादी सेवा बंद करा."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"पासवर्ड, पासकी आणि डेटा सेवा मर्यादा"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"तुमच्याकडे एकाचवेळी कमाल ५ पासवर्ड, पासकी आणि डेटा सेवा अ‍ॅक्टिव्ह असू शकतात. आणखी जोडण्यासाठी एखादी सेवा बंद करा."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"बंद करा"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ऑटोफिल"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"लॉगिंग पातळी"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ॲप कंपॅटिबिलिटी संबंधित बदलांमध्ये फक्‍त डीबग करण्यायोग्य ॲप्‍सवरून बदल केले जाऊ शकतात. डीबग करण्यायोग्य ॲप इंस्टॉल करा आणि पुन्‍हा प्रयत्न करा."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"दुसऱ्या सेटिंगवर अवलंबून आहे"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"खाते"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d खाती"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"डिव्हाइसचे नाव"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"मूलभूत माहिती"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"कायदे आणि नियम"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC टॅग स्कॅन केल्यानंतर हे अ‍ॅप लाँच करण्याची अनुमती द्या.\nही परवानगी सुरू असल्यास, टॅग डिटेक्ट झाल्यास अ‍ॅप हे पर्याय म्हणून उपलब्ध होईल."</string>
     <string name="media_output_title" msgid="8283629315159510680">"मीडिया यावर प्‍ले करा"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> यावर प्ले करा"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ऑडिओ यावर प्ले होईल"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"हे डिव्हाइस"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"कॉल दरम्‍यान अनुपलब्‍ध"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"कॉल यावर घ्या"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"म्यूट करा"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"सुरू करण्यासाठी, सर्वप्रथम \"पॉवर बटण प्रेस करून धरून ठेवा\" हे पॉवर मेनूवर बदला."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"नेटवर्क तपशील"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"तुमच्या डिव्हाइसचे नाव तुमच्या फोनवरील ॲप्सना दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी कनेक्ट करता, वाय-फाय नेटवर्कशी कनेक्ट करता किंवा वाय-फाय हॉटस्पॉट सेट करता तेव्हा हे कदाचित इतर लोकदेखील पाहू शकतात."</string>
     <string name="devices_title" msgid="649715719278562515">"डिव्हाइस"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"नेटवर्क निवडा"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"डिस्कनेक्ट केलेले"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"नाव"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"रंग (कंपॅटिबल ॲप्सद्वारे वापरलेले)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"सेव्ह करा"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"सिम वापरा"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"हे सिम वापरा"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"बंद आहे"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"हे सिम बंद करण्यासाठी, सिम कार्ड काढा"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> ॲक्टिव्हेट करण्यासाठी टॅप करा"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"सिम मिटवा"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"प्राधान्‍यकृत नेटवर्क प्रकार"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"नेटवर्क कार्य करण्‍याचा मोड बदला"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"प्राधान्‍यकृत नेटवर्क प्रकार"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"किमतींबद्दल तुमच्या नेटवर्क पुरवठादाराला विचारा."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"अ‍ॅप डेटा वापर"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"चुकीचा नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. दुर्लक्ष करा."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"अ‍ॅक्सेस पॉइंट"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>शी कनेक्ट केले असल्यास उपलब्ध नाही"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> वर स्विच करायचे आहे का?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"सिम कार्ड वापरण्यावर स्विच करायचे आहे का?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> वापरायचे आहे का?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"एका वेळी एक सिम अ‍ॅक्टिव्ह असू शकते.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> वर स्विच केल्याने तुमची <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> सेवा रद्द होणार नाही."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"एका वेळी फक्त एक eSIM अ‍ॅक्टिव्ह असू शकते.\n\n <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> वर स्विच केल्याने तुमची <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> सेवा रद्द होणार नाही."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"एकावेळी एकच सिम अ‍ॅक्टिव्ह असू शकते.\n\nस्विच केल्याने तुमची <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> सेवा रद्द होणार नाही."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"तुम्ही एका वेळी दोन सिम वापरू शकता. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> वापरण्यासाठी, दुसरे सिम बंद करा."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> वर स्विच करा"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> बंद करा"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"नाही, नको"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"रद्द करा"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"स्विच करा"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"बंद करा"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"सिम ॲक्टिव्हेट करू शकत नाही"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"सिम पुन्हा सुरू करून पहा. समस्या सुरू राहिल्यास, तुमचे डिव्हाइस रीस्टार्ट करा."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"तुमचे सिम सेट करा"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"या डिव्हाइसवर एकाहून अधिक सिम वापरण्यासाठी तुमची मोबाइल नेटवर्क प्राधान्ये सेट करा"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"तुमची सिम लेबल करणे"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"कॉल करताना, एसएमएस पाठवताना आणि डेटा वापरताना तसेच सेटिंग्ज मध्ये तुम्हाला ही लेबल दिसतील"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"सिमचे लेबल"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"लेबल"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"कोणती सिम वापरायची आहेत हे निवडा"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"तुम्ही एका वेळी २ सिम वापरू शकता"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"तुमची प्राथमिक सिम सेट करणे"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"कॉल, एसएमएस आणि डेटासाठी बाय डीफॉल्ट कोणती सिम वापरायची हे निवडा"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"तुमची प्राथमिक सिम"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"कॉल"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"एसएमएस"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"डेटा आपोआप स्विच करणे"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"कव्हरेज आणि उपलब्धतेनुसार कोणत्याही एका सिममधील डेटा वापरा"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"फक्त डेटा"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"सेट करा"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"पुढील"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"मोबाइल नेटवर्क"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"फोन नंबर"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"सिमचे लेबल आणि रंग"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"नेटवर्क अ‍ॅक्टिव्हेशन"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"वाहक स्विच करणे"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> अ‍ॅक्टिव्ह आहे"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"पुढील वेळेस मोबाइल डेटा, कॉल वैशिष्ट्ये आणि एसएमएस वापरण्यासाठी तुमच्या नेटवर्क सेटिंग्ज वर जा"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"सिम"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"हे eSIM मिटवायचे का?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"हे सिम मिटवल्याने या डिव्हाइसवरून <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> सेवा काढली जाते.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ची सेवा रद्द केली जाणार नाही."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"मिटवा"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"सिम मिटवत आहे…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"सिम मिटवू शकत नाही"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"हे सिम एका एररमुळे मिटवता येत नाही.\n\nतुमचे डिव्हाइस रीस्टार्ट करा आणि पुन्हा प्रयत्न करा."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"डिव्हाइसशी कनेक्ट करा"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"तुमच्या डिव्हाइसशी कनेक्ट करण्यासाठी <xliff:g id="APPNAME">%1$s</xliff:g> ॲपला तात्पुरते वाय-फाय नेटवर्क वापरायचे आहे"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"डिव्हाइस सापडले नाही. डिव्हाइस सुरू केली आहेत आणि ती कनेक्ट करण्यासाठी उपलब्ध आहेत याची खात्री करा."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"आणीबाणी कॉल"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"तुमचा वाहक वाय-फाय कॉलिंगवर आणीबाणी कॉल करण्यासाठी सपोर्ट करत नाही.\nतुमचे डिव्हाइस आणीबाणी कॉल करण्यासाठी सेल्युलर नेटवर्कवर आपोआप स्विच होते.\n फक्त सेल्युलर नेटवर्कच्या परिसरात आणीबाणी कॉल करता येतात."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"कॉलची गुणवत्ता वाढवण्यासाठी वाय-फाय वापरा"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"बॅकअप कॉलिंग"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> उपलब्ध नसल्यास किंवा रोमिंगमध्ये असल्यास, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> कॉलसाठी तुमचे मोबाइल डेटा सिम वापरा."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"बॅकअप कॉलिंग"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"येणारा MMS मेसेज"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS मेसेज पाठवू शकत नाही"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"मोबाइल डेटा बंद असताना MMS मेसेजिंगला अनुमती देण्यासाठी <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> वर टॅप करा"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"तुमच्या कार्य धोरणाची माहिती"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"तुमच्या आयटी ॲडमिनद्वारे व्यवस्थापित केलेली सेटिंग्ज"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K पेज आकार वापरून बूट करा"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16K पेज सपोर्ट असलेल्या कर्नेलने डिव्हाइस बूट करा"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB पेज कंपॅटिबल कर्नेलसह रीबूट करायचे आहे का?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"चेतावणी: काही अ‍ॅप्लिकेशन या मोडशी कंपॅटिबल नसू शकतात. कंफर्मेशननंतर डिव्हाइस रीबूट केले जाईल."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB पेज कंपॅटिबल कर्नेलसह रीबूट करायचे आहे का?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"कंफर्मेशननंतर डिव्हाइस रीबूट केले जाईल."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"कर्नेल हे 16KB पेज कंपॅटिबल असलेल्या कर्नेलवर अपडेट करता आले नाही."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"बदल लागू करत आहे"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"बग रिपोर्ट हँडलर"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"कोणते ॲप तुमच्या डिव्हाइसवरील बग रिपोर्ट शॉर्टकट हाताळेल हे निर्धारित करते."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"वैयक्तिक"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"प्लेबॅक करणे पुन्‍हा झटपट सुरू करण्यासाठी, क्विक सेटिंग्जमध्ये मीडिया प्लेअर उघडा राहतो"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"लॉक स्क्रीनवर मीडिया दाखवा"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"प्लेबॅक पुन्हा झटपट सुरू करण्यासाठी, मीडिया प्लेअर लॉक स्क्रीनवर उघडा राहतो"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"मीडियासंबंधित शिफारशी दाखवा"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant मीडियासंबंधित शिफारशी दाखवा"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"तुमच्या अ‍ॅक्टिव्हिटीवर आधारित"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"प्‍लेअर लपवा"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"प्‍लेअर दाखवा"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"सिम"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"सुरू आहे"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"बंद आहे"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> साठी डीफॉल्ट आहे"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"कॉल"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"एसएमएस"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"कंपॅटिबल मीडियामधील ऑडिओ हा आणखी वेधक होतो"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"हेड ट्रॅकिंग"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"अधिक नैसर्गिक वाटावे यासाठी, तुम्ही डोके हलवता तसा आवाज बदलतो"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"परवानग्या सिंक करा"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"तुम्ही <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> वर अनुमती दिलेल्या अ‍ॅप परवानग्या <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> लादेखील द्या"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"फोनवरून परवानग्या सिंक करा"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"तुम्ही या फोनला अनुमती दिलेल्या अ‍ॅप परवानग्या तुमच्या वॉचलाही द्या"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ऑडिओ डिव्हाइस प्रकार"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"अज्ञात"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"स्पीकर"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"मध्यम"</string>
     <string name="contrast_high" msgid="3988567609694797696">"उच्च"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"हे अ‍ॅप फक्त एका विंडोमध्ये उघडले जाऊ शकते"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"सुरू आहे"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"बंद आहे"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"बंद आहे"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"बंद आहे"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"सुरू आहे"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"बंद आहे"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"सुरू आहे"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"बंद आहे"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"फिकट रंगाच्या स्क्रीन गडद आणि गडद रंगाच्या स्क्रीन फिकट करते"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"स्क्रीनवर झूम इन करा"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"बंद आहे"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"बंद आहे"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"सुरू आहे"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"बंद आहे"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"सुरू आहे"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"पासवर्ड आता सेट केला आहे"</string>
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index eff1ab3..962bb41 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 95bafe5..0c32aae 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Anda telah menjadi pembangun!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Tidak perlu, anda sudah pun menjadi pembangun."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Sila dayakan pilihan pembangun terlebih dahulu."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Hanya pengguna pentadbir yang boleh mengakses tetapan pembangun."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Berfungsi"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Rosak"</string>
@@ -46,6 +47,8 @@
     <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 depan dihidupkan untuk apl yang menghentikan skrin anda daripada melahu"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Leret ke atas untuk meneruskan tindakan"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Lipatkan telefon anda dan leret ke atas pada paparan depan untuk terus menggunakan apl atau tunggu selama beberapa saat untuk skrin dikunci"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Berkaitan"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Nada dering dan penggera"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio semasa panggilan"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Pemberitahuan &amp; bunyi sistem lain"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Bunyi media dan sistem"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Pemberitahuan"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Secara lalai, output audio ditentukan oleh apl individu"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Peranti Bluetooth tanpa nama"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Mencari"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth dihidupkan"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Lihat semua"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Lihat semua"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stilus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Tekan butang hujung"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Profil kerja)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Sambung kepada strim LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Strim audio berdekatan"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Strim audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Sambung kepada strim audio menggunakan kod QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Tiada strim audio berdekatan ditemukan."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Untuk memilih bahasa bagi setiap apl, pergi ke tetapan bahasa apl."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Ketahui lebih lanjut tentang bahasa apl"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Tukar bahasa sistem kepada %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Tambahkan %s pada bahasa pilihan?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Tindakan ini membolehkan apl dan laman web mengetahui bahawa anda juga memilih bahasa ini."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Tetapan peranti dan tetapan wilayah akan berubah."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Tukar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s tidak tersedia"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sabtu"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Jika apl tidak menyokong pilihan serantau, tetapan penempatan lalai akan digunakan."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Ketahui lebih lanjut tentang pilihan bahasa."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Pilihan tambahan"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Panggilan hormat"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Tetapkan gelaran anda"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apl boleh menggunakan panggilan hormat anda untuk memeribadikan cara apl memanggil anda."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Tidak dinyatakan"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulin"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Alih keluar bahasa yang dipilih?}other{Alih keluar bahasa yang dipilih?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teks akan dipaparkan dalam bahasa lain."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Tidak boleh mengalih keluar semua bahasa"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokasi"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Gunakan lokasi"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Mati"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Hidup - # apl mempunyai akses kepada lokasi}other{Hidup - # apl mempunyai akses kepada lokasi}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Hidup / # apl memiliki akses kepada lokasi}other{Hidup / # apl memiliki akses kepada lokasi}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Memuatkan…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apl dengan kebenaran peranti Berdekatan boleh menentukan kedudukan relatif peranti tersambung."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Akses lokasi dimatikan untuk apl dan perkhidmatan. Lokasi peranti anda mungkin tetap dihantar kepada pasukan bantuan kecemasan apabila anda menghubungi atau menghantar teks kepada nombor kecemasan."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Ketahui lebih lanjut tentang Tetapan Lokasi."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ketahui lebih lanjut tentang tetapan Lokasi"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Tukar akses lokasi melalui Tetapan &gt; Keselamatan dan Privasi &gt; Kawalan privasi"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Untuk mendapatkan hasil yang terbaik, gunakan pelindung skrin yang diperakui Made For Google. Dengan pelindung skrin yang lain, cap jari anak anda mungkin tidak berfungsi."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Buka Kunci Jam Tangan"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Semasa anda menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari, telefon anda akan meminta cap jari anda apabila anda memakai pelitup muka atau berada di kawasan gelap.\n\nAnda boleh membuka kunci dengan jam tangan anda apabila wajah atau cap jari anda tidak dapat dicam."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Anda boleh membuka kunci dengan jam tangan anda apabila cap jari anda tidak dapat dicam."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Anda boleh membuka kunci dengan jam tangan anda apabila wajah anda tidak dapat dicam."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Semasa anda menyediakan Buka Kunci Wajah dan Buka Kunci Cap Jari, telefon anda akan meminta cap jari anda apabila anda memakai pelitup muka atau berada di kawasan gelap.\n\nBuka Kunci Jam Tangan merupakan cara mudah yang lain untuk membuka kunci telefon anda, sebagai contoh, apabila jari anda basah atau wajah tidak dapat dicam."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Buka Kunci Jam Tangan merupakan cara mudah yang lain untuk membuka kunci telefon anda, sebagai contoh, apabila cap jari anda tidak dapat dicam."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Buka Kunci Jam Tangan merupakan cara mudah yang lain untuk membuka kunci telefon anda, sebagai contoh, apabila wajah anda tidak dapat dicam."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Gunakan cap jari atau jam tangan untuk"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Gunakan wajah atau jam tangan untuk"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Gunakan wajah, cap jari atau jam tangan untuk"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Wajah dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Wajah, cap jari dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Wajah, cap jari dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Buka Kunci Authenticator Jauh"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Jam tangan ditambahkan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Sediakan jam tangan anda"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Buka Kunci Jam Tangan merupakan satu cara mudah yang lain untuk membuka kunci telefon ini, sebagai contoh, apabila jari anda basah atau wajah anda tidak dapat dicam.\n\nAnda boleh menggunakan jam tangan anda untuk membuka kunci telefon ini apabila anda:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Bukan sekarang"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Teruskan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Lagi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cara ciri ini berfungsi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Jam tangan anda mestilah tidak berkunci, berada pada pergelangan tangan anda dan berada berdekatan telefon ini. Anda tidak perlu membuka kunci jam tangan anda lagi ketika jam tangan berada pada pergelangan tangan anda."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Apabila telefon ini tidak berkunci, anda akan mendapat pemberitahuan pada jam tangan anda. Jika telefon tidak berkunci apabila anda tidak bermaksud untuk berbuat demikian, ketik pemberitahuan untuk mengunci telefon sekali lagi."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kawalan di tangan anda"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Anda boleh mengalih keluar jam tangan anda daripada Buka Kunci Jam Tangan pada bila-bila masa dalam Tetapan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Ketik pemberitahuan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Leret ke atas pada skrin kunci"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Pilih jam tangan anda"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Jam tangan yang tersedia"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Batal"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Sahkan"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Anda sudah sedia!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Kini anda boleh menggunakan jam tangan anda untuk membuka kunci telefon ini apabila anda meleret ke atas pada skrin kunci atau mengetik pemberitahuan"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Selesai"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Buka Kunci Jam Tangan"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Anda boleh menggunakan jam tangan anda untuk membuka kunci telefon ini apabila anda meleret ke atas pada skrin kunci atau mengetik pemberitahuan"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Untuk menggunakan Buka Kunci Jam Tangan, jam tangan anda mestilah tidak berkunci, berada pada pergelangan tangan anda, berada berdekatan dan disambungkan kepada telefon ini. Jika sambungan terganggu, anda perlu membuka kunci telefon sebelum anda boleh menggunakan Buka Kunci Jam Tangan.\n\nSentiasa ingat:\nAnda hanya boleh menyediakan satu jam tangan pada satu-satu masa. Untuk menambahkan jam tangan yang lain, alih keluar jam tangan semasa dahulu."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Ketahui lebih lanjut tentang Buka Kunci Jam Tangan"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tambahkan jam tangan"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Alih keluar jam tangan"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Buka kunci cap jari &amp; wajah"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Buka Kunci Wajah &amp; Cap Jari untuk kerja"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Persediaan diperlukan"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Keselamatan"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privasi"</string>
     <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="2274405892301976238">"Pastikan apl peribadi kekal dikunci dan disembunyikan"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Menyimpan apl peribadi dalam ruang berasingan yang boleh anda sembunyikan atau kunci"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Kunci Ruang Peribadi"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Anda boleh membuka kunci Ruang Peribadi menggunakan cara yang sama seperti anda membuka kunci peranti anda atau memilih kunci yang lain"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Gunakan kunci skrin peranti"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Buka Kunci Wajah &amp; Cap Jari"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Buka Kunci Cap Jari"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Buka Kunci Wajah"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Ketik untuk membuat persediaan"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Buka Kunci Cap Jari untuk Ruang Peribadi"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Buka Kunci Wajah untuk Ruang Peribadi"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Cara membuka kunci"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Sama seperti kunci skrin peranti"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Pilih kunci baharu untuk Ruang Peribadi?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Kunci secara automatik"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Kunci ruang privasi secara automatik"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Anda boleh mengunci ruang privasi anda secara automatik jika anda tidak menggunakan peranti anda untuk suatu tempoh masa"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Setiap kali peranti dikunci"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Selepas 5 minit tanpa aktiviti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Jangan sekali-kali"</string>
+    <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_delete_title" msgid="3075645119800272800">"Padamkan Ruang Peribadi"</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="private_space_unlocked" msgid="9091600948712932046">"Ruang privasi tidak berkunci"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Tetapkan kunci skrin"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Untuk menggunakan ruang peribadi anda, 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="private_space_cancel_label" msgid="379259667396956886">"Batal"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Buat persediaan"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Sediakan ruang peribadi"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Menyimpan apl peribadi dalam ruang berasingan yang boleh anda sembunyikan atau kunci"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Cara ciri ini berfungsi"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Anda boleh mengakses ruang peribadi anda daripada bahagian bawah senarai apl anda"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apl dalam ruang peribadi dilindungi dengan kunci"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Pemberitahuan daripada apl dalam ruang peribadi anda disembunyikan apabila ruang peribadi dikunci"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apl dalam ruang peribadi anda tidak akan dipaparkan dalam pengurus kebenaran, papan pemuka privasi dan tetapan lain apabila ruang peribadi anda dikunci.\n\nRuang peribadi anda tidak boleh dialihkan kepada peranti baharu. Anda perlu menyediakan ruang peribadi lain jika anda mahu menggunakan ruang peribadi pada peranti lain.\n\nSesiapa sahaja yang menyambungkan peranti anda kepada komputer atau memasang apl berbahaya pada peranti anda mungkin dapat mengakses ruang peribadi anda."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Menyediakan ruang peribadi…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Pemberitahuan daripada apl dalam ruang peribadi disembunyikan apabila ruang peribadi dikunci"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Buka kunci ruang peribadi untuk berkongsi foto atau fail daripada apl ruang peribadi"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Sesetengah apl telah dipasang dalam ruang peribadi anda"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Tidak dapat menyediakan ruang peribadi"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Cuba Lagi"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Gunakan kunci skrin untuk membuka kunci ruang peribadi?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Anda boleh membuka kunci ruang peribadi anda menggunakan cara yang sama seperti anda membuka kunci peranti anda atau memilih kunci yang lain"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gunakan kunci skrin"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Pilih kunci baharu"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Siap!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Untuk mengakses ruang peribadi anda, akses senarai apl anda, kemudian tatal ke bawah"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Selesai"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Tatal ke bawah untuk menemukan ruang peribadi"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Pilih kunci untuk skrin untuk ruang peribadi anda"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Anda boleh membuka kunci ruang peribadi anda menggunakan cap jari. Untuk keselamatan, pilihan ini memerlukan kunci sandaran."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Tetapkan PIN untuk ruang peribadi anda"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Tetapkan kata laluan ruang peribadi anda"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Tetapkan corak untuk ruang peribadi anda"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Untuk memaparkan Ruang Peribadi (Bukan UX akhir)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Buka Apl Tetapan"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Ketik Keselamatan &amp; privasi &gt; Ruang Peribadi &gt; Sembunyikan Ruang Peribadi apabila dikunci"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Togol Matikan Sembunyikan Ruang Peribadi apabila dikunci"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota kepada Googler: Pembangunan ciri ini belum selesai"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Anda juga mungkin perlu memasukkan kunci laluan ini pada peranti satu lagi."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Sahkan untuk bergandingan dengan set yang diselaraskan"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Benarkan akses kepada kenalan dan sejarah panggilan anda"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Benarkan juga akses kepada kenalan dan sejarah panggilan"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Maklumat akan digunakan untuk pengumuman panggilan dan pelbagai lagi"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Tidak dapat menyambung ke <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Peranti yang tersedia"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Dalam mod Pesawat"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Beritahu untuk rangkaian awam"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Beritahu apabila rangkaian awam berkualiti tinggi tersedia"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Benarkan rangkaian WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ialah protokol keselamatan lebih lama yang kurang selamat"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Pembawa anda tidak membenarkan rangkaian WEP kerana rangkaian ini kurang selamat"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Hidupkan Wi-Fi secara automatik"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi akan dihidupkan kembali apabila berdekatan dengan rangkaian disimpan yang berkualiti tinggi, seperti rangkaian rumah"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Tidak tersedia kerana lokasi dimatikan. Hidupkan "<annotation id="link">"lokasi"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Pengimbasan Wi-Fi membenarkan apl dan perkhidmatan mengimbas untuk mengesan rangkaian Wi-Fi pada bila-bila masa, meskipun apabila Wi-Fi dimatikan. Ini dapat digunakan, contohnya, untuk meningkatkan ciri dan perkhidmatan berasaskan lokasi."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Hidupkan"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Pengimbasan Wi‑Fi dihidupkan"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Rangkaian ini menggunakan protokol keselamatan lebih lama yang kurang selamat"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> disekat"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Rangkaian ini menggunakan protokol keselamatan lebih lama yang dipanggil WEP, rangkaian yang kurang selamat. Untuk menyambung juga, anda boleh membenarkan rangkaian WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Pembawa anda tidak membenarkan anda menyambung kepada rangkaian ini kerana rangkaian ini menggunakan protokol keselamatan lebih lama yang kurang selamat"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Benarkan WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Tutup"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Pilihan terperinci"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Pilihan Terperinci senarai lungsur"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"kembangkan"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Gunakan Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Jangan tunjukkan lagi"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Sambung"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi dihidupkan"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Disambungkan kepada <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Menyambung ke <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Menyambung…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Gagal menyambung ke rangkaian."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rangkaian di luar liputan"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Lupakan"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Ubah suai"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Gagal melupakan rangkaian"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Simpan"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Gagal menyimpan rangkaian"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Batal"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Data mudah alih"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Mengecas"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Mengecas"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Sambungan tempat liputan"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Kekuatan sambungan"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Rangkaian disimpan"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Tiada kata laluan yang ditetapkan"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nama tempat liputan"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Kata laluan tempat liputan"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Jalur AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Matikan tempat liputan secara automatik"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Apabila tiada peranti disambungkan"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Lanjutkan keserasian"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Paparkan imbangan putih"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Lumpuhkan kadar bingkai lalai utk permainan"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Lumpuhkan pengehadan kadar bingkai maksimum untuk permainan pada <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Perhatian skrin menggunakan kamera depan untuk melihat sama ada seseorang sedang memandang skrin. Ciri ini berfungsi pada peranti dan imej tidak sekali-kali disimpan atau dihantar kepada Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Hidupkan perhatian skrin"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Pastikan skrin hidup semasa anda melihat skrin itu"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Tamat masa skrin yang lebih lama akan menggunakan lebih banyak kuasa bateri."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera dikunci"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera mesti dibuka kunci untuk Pengesanan Wajah"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera mesti dibuka kunci untuk Fokus Skrin"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot sim <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot sim <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (utama)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Untuk melihat, pilih rangkaian yang disimpan"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versi PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Aras bateri"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Umum"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Tetapan umum"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Simpan"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Batal"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Medan Nama tidak boleh kosong."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN tidak boleh kosong."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Medan MCC mestilah 3 digit."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Medan MNC mestilah 2 atau 3 digit."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Pembawa tidak membenarkan penambahan APN jenis %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Medan MMSC perlu sah."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Memulihkan tetapan lalai APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Tetapkan semula kepada lalai"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Penetapan semula tetapan lalai APN selesai."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Tetapkan semula"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth &amp; Wi-Fi telah ditetapkan semula"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Padam eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Tindakan ini tidak akan membatalkan mana-mana pelan perkhidmatan mudah alih. Untuk memuat turun SIM gantian, hubungi pembawa anda."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Tetapkan semula tetapan"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Tetapkan semula semua tetapan rangkaian? Tindakan ini tidak boleh dibuat asal."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Tetapkan semula semua tetapan rangkaian dan padamkan eSIM? Tindakan ini tidak boleh dibuat asal."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Tetapkan semula?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Tetapan semula rangkaian tidak tersedia untuk pengguna ini"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Tetapan rangkaian telah ditetapkan semula"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Tidak dapat memadamkan SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM tidak boleh dipadamkan kerana ralat.\n\nMulakan semula peranti anda dan cuba lagi."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Padamkan semua data (tetapan semula kilang)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Padamkan semua data (tetapan semula kilang)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Muzik"</li>\n<li>"Foto"</li>\n<li>"Data pengguna yang lain"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Ini tidak akan membatalkan pelan perkhidmatan mudah alih anda."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Semua maklumat peribadi anda dan apl yang dimuat turun akan dipadamkan. Tindakan ini tidak boleh dibuat asal."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Semua maklumat peribadi anda, termasuk apl &amp; SIM yang dimuat turun akan dipadamkan. Tindakan ini tidak boleh dibuat asal."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Padamkan semua data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Tetapan semula kilang tidak tersedia untuk pengguna ini"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Memadam"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Tempat liputan, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Tidak berkongsi Internet dengan peranti lain"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Mati"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Penambatan"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Jangan gunakan tempat liputan Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Kongsi Internet melalui USB sahaja"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Kongsi Internet melalui Bluetooth sahaja"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Kongsi Internet melalui Ethernet sahaja"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Kongsi Internet melalui USB dan Bluetooth sahaja"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Kongsi Internet melalui USB dan Ethernet sahaja"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Kongsi Internet melalui Bluetooth dan Ethernet sahaja"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Kongsi Internet melalui USB, Bluetooth dan Ethernet sahaja"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Penambatan USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Penambatan Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Penambatan Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gunakan tempat liputan dan penambatan untuk menyediakan Internet kepada peranti lain melalui Wi-Fi atau sambungan data mudah alih anda. Apl juga boleh membuat tempat liputan untuk berkongsi kandungan dengan peranti berdekatan."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Bantuan"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rangkaian mudah alih"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Pelan mudah alih"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Apl SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Tukar apl SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> bukannya <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai apl SMS anda?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Tukar pembantu Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> bukannya <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengurus sambungan rangkaian anda?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Pengendali SIM yang tidak diketahui"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> tiada laman web peruntukan yang dikenali"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sila masukkan kad SIM dan mulakan semula"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Sila sambung ke internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Permintaan lokasi terbaharu"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokasi untuk profil kerja"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Kebenaran lokasi apl"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Padam bersih akses"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kawalan"</string>
     <string name="force_stop" msgid="2681771622136916280">"Henti paksa"</string>
+    <string name="archive" msgid="9074663845068632127">"Arkib"</string>
+    <string name="restore" msgid="7622486640713967157">"Pulihkan"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Jumlah"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Saiz apl"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Apl storan USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Tidak dapat mengira saiz pakej."</string>
     <string name="version_text" msgid="7628938665256107608">"versi <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Alih"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Pengarkiban gagal"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> diarkibkan"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Pemulihan gagal"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Memulihkan <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Penghijrahan lain sedang berjalan."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Tiada ruang storan mencukupi."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikasi tidak wujud."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Papan kekunci pada skrin tersedia"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Urus papan kekunci pada skrin"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Pilihan"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Kebolehaksesan"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Papan kekunci fizikal"</string>
     <string name="show_ime" msgid="4334255501724746849">"Gunakan papan kekunci pada skrin"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Pastikan papan kekunci itu pada skrin semasa papan kekunci fizikal aktif"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Kekunci Lantun"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Dayakan kekunci Lantun untuk kebolehaksesan papan kekunci fizikal"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Kekunci Lekit"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Dayakan kekunci Lekit untuk kebolehaksesan papan kekunci fizikal"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pintasan papan kekunci"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tunjukkan senarai pintasan"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Papan kekunci &amp; alatan profil kerja"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Isih mengikut masa penggunaan"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Isih mengikut kali terakhir digunakan"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Isih mengikut nama apl"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Kali terakhir digunakan"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Terakhir digunakan"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"tidak sekali-kali"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Masa penggunaan"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Kebolehaksesan"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Tetapan kebolehaksesan"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Teruskan juga"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Batal"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Tetapan pembesaran"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Besarkan dengan tiga ketikan"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Besarkan menggunakan pintasan"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Besarkan menggunakan pintasan &amp; tiga ketikan"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Perihal <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Ketik skrin dua 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="860548190334486449">"Untuk memulakan dan menghentikan pembesaran, ketik dua 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Untuk menggunakan ciri kebolehcapaian, leret ke atas dari bahagian bawah skrin dengan menggunakan 3 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 3 hari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Tetapan butang kebolehaksesan"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Tetapan butang"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Pintasan <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Butang kebolehaksesan"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gerak isyarat kebolehaksesan"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Ketik skrin dua kali menggunakan dua jari"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ketik skrin dua kali menggunakan dua jari"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ketik skrin {0,number,integer} kali dengan cepat menggunakan dua jari"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ketik tiga kali pada skrin"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Ketahui lebih lanjut tentang butang kebolehaksesan &amp; gerak isyarat"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Menggunakan butang kebolehaksesan. Gerak isyarat tidak tersedia dengan navigasi 3 butang."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Akses ciri kebolehaksesan dengan cepat"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Untuk bermula"</b>\n"1. Pergi ke tetapan kebolehaksesan\n2. Pilih satu ciri dan ketik pintasan\n3. Pilih sama ada anda ingin menggunakan butang atau gerak isyarat untuk mengakses ciri"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Untuk bermula"</b>\n"1. Pergi ke tetapan kebolehaksesan\n2. Pilih satu ciri dan ketik pintasan\n3. Pilih butang untuk mengakses ciri"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Untuk bermula:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Akses tetapan kebolehaksesan&lt;br/&gt; {1,number,integer}. Pilih satu ciri dan ketik pintasan&lt;br/&gt; {2,number,integer}. Pilih sama ada anda mahu menggunakan butang atau gerak isyarat untuk mengakses ciri&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Untuk bermula:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Akses tetapan kebolehaksesan&lt;br/&gt; {1,number,integer}. Pilih satu ciri dan ketik pintasan&lt;br/&gt; {2,number,integer}. Pilih butang untuk mengakses ciri&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Gunakan butang atau gerak isyarat"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokasi"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Saiz"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Butang kuasa menamatkan panggilan"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Penuding tetikus besar"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Jadikan penuding tetikus lebih mudah dilihat"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Jadikan semua apl gelap"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Digunakan pada apl tanpa tema gelap tersendiri. Sesetengah apl mungkin mengalami masalah paparan."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Alih keluar animasi"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Kurangkan pergerakan pada skrin"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ciri ini boleh menjejaki interaksi anda dengan apl atau penderia perkakasan dan berinteraksi dengan apl bagi pihak anda."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Benarkan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tolak"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Berhenti"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Batal"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Hentikan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Mengetik <xliff:g id="STOP">%1$s</xliff:g> akan menghentikan <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Matikan"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Biar hidup"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Matikan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Tiada perkhidmatan dipasang"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Tiada perkhidmatan yang dipilih"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Tiada keterangan disediakan."</string>
     <string name="settings_button" msgid="2195468788019730377">"Tetapan"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"kepekaan cahaya, fotofobia, tema gelap, migrain, sakit kepala, mod membaca, mod malam, kurangkan kecerahan, titik putih"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Kemudahan penggunaan, kemudahan akses, bantuan, bantu"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"penglihatan, pendengaran, buta, pekak, motor, kecekatan, bantu, bantuan, kemudahan penggunaan, kemudahan pengaksesan, tangan, tolong"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Pembesar Tetingkap, Zum, Pembesaran, Rabun, Besarkan, jadikan lebih besar"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Sari kata, SK, Transkripsi Segera, pekak labang, kehilangan pendengaran, CART, pertuturan kepada teks, sari kata"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontras warna"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, tetikus"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"alat bantu pendengaran, pekak labang, kehilangan pendengaran, implan koklea, peranti penguatan, pemproses bunyi"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, tetikus, tetikus luaran, kepala tetikus, tetikus boleh suai, kerusi roda, kayu bedik"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"alat bantu pendengaran, pekak labang, kehilangan pendengaran, implan koklea, peranti penguatan, pemproses bunyi, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"pekak labang, kehilangan pendengaran, sari kata, Teletaip, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tiga butang"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"kecekatan, motor, warga emas, artritis, rsi, strok, geletar, berbilang sklerosis, palsi serebrum, gigil, kecederaan tegang berulang, tangan"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"kelewatan, kecekatan, warga emas"</string>
     <string name="print_settings" msgid="8519810615863882491">"Pencetakan"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Mati"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 perkhidmatan cetak dihidupkan}other{# perkhidmatan cetak dihidupkan}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Lihat apl dengan penggunaan tertinggi"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Pengecasan dioptimumkan untuk melindungi bateri anda"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Untuk membantu dalam memanjangkan jangka hayat bateri anda, pengecasan telah dioptimumkan"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Pengecasan dioptimumkan untuk melindungi bateri anda"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Untuk membantu dalam memanjangkan jangka hayat bateri anda, pengecasan dioptimumkan ketika didok"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Pengecasan dioptimumkan untuk melindungi bateri anda"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Bagi membantu jangka hayat bateri anda dilanjutkan, pengecasan dioptimumkan ketika didok"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Mengecas hingga penuh"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Untuk melindungi bateri anda, pengecasan akan dioptimumkan pada kali seterusnya tablet anda didok"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Ketahui lebih lanjut tentang pengecasan dijeda"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Sambung semula pengecasan"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Termasuk aktiviti latar belakang kuasa tinggi"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Alih keluar"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Batal"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Cas hingga penuh"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Isu berkaitan aksesori pengecasan"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Ketahui lebih lanjut tentang pengecasan tidak serasi"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Pengurus Bateri"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Urus apl secara automatik"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"sekarang"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Carta penggunaan bateri"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Carta penggunaan bateri harian"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Carta penggunaan bateri setiap jam"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Peratusan paras kuasa bateri daripada <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> kepada <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Penggunaan bateri sejak cas penuh terakhir"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Penggunaan bateri untuk <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Masa skrin sejak cas penuh terakhir"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Isyarat dail kecemasan"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Tetapkan tingkah laku semasa membuat panggilan kecemasan"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sandaran"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Hidup"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Mati"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sandarkan &amp; pulihkan"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Data peribadi"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sandarkan data saya"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nama"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Jenis"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Alamat pelayan"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Penyulitan PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Rahsia L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Pengecam IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Kunci prakongsi IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Sijil pengguna IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Sijil CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Sijil pelayan IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Tunjukkan pilihan terperinci"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domain carian DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Pelayan DNS (mis. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Laluan pemajuan (mis. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nama pengguna"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Kata laluan"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Simpan maklumat akaun"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(tidak digunakan)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(jangan sahkan pelayan)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(diterima daripada pelayan)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Jenis VPN ini tidak dapat kekal tersambung pada sepanjang masa"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN sentiasa hidup hanya menyokong alamat pelayan dalam format angka"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Pelayan DNS mesti ditetapkan untuk VPN sentiasa hidup"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Alamat pelayan DNS mestilah dalam format angka untuk VPN sentiasa hidup"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Maklumat yang dimasukkan tidak menyokong VPN sentiasa hidup"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Batal"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ketepikan"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Sekat sambungan tanpa VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Perlukan sambungan VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Tidak selamat. Kemas kini kepada IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Gagal memulakan VPN yang tidak disokong."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pilih profil VPN untuk sentiasa kekal tersambung. Trafik rangkaian hanya akan dibenarkan apabila bersambung ke VPN ini."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Tiada"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN yang sentiasa dihidupkan memerlukan alamat IP untuk kedua-dua pelayan dan DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Amaran AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Terima buletin mengenai penculikan kanak-kanak"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ulang"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Dayakan Pengurus Panggilan"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Benarkan perkhidmatan ini mengurus cara panggilan anda dibuat."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Panggil Pengurus"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Makluman kecemasan wayarles"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Pengendali rangkaian"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nama titik capaian"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"bayar, ketik, bayaran"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sandaran, sandarkan"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gerak isyarat"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"wajah, buka kunci, sahkan, daftar masuk"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"wajah, buka kunci, pengesahan, log masuk, cap jari, biometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versi prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Bunyi semasa kuasa dihidupkan"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Sari Kata Langsung"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Sari kata media automatik"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Pembesar suara telefon"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Pembesar suara tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Pembesar suara peranti"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Fon kepala berwayar"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audio daripada media yang serasi kedengaran lebih mengasyikkan"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Mati"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Apakah yang mahu dipaparkan pada skrin kunci anda?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Perbualan terbaharu dialih keluar"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Perbualan dialih keluar"</string>
     <string name="clear" msgid="5092178335409471100">"Kosongkan"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Alih keluar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Perbualan keutamaan dan perbualan yang diubah suai akan dipaparkan di sini"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Setelah anda menandai perbualan sebagai keutamaan atau membuat perubahan lain pada perbualan, perubahan itu akan dipaparkan di sini. \n\nUntuk mengubah tetapan perbualan: \nLeret ke bawah dari bahagian atas skrin untuk membuka bidai tarik turun, kemudian sentuh &amp; tahan perbualan."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimumkan"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Mati"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Penyematan apl"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Penyematan apl membenarkan anda mengekalkan paparan apl semasa sehingga anda menyahsemat apl itu. Ciri ini boleh digunakan, contohnya, untuk membenarkan rakan yang dipercayai bermain permainan tertentu."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Apabila apl disemat, apl yang disemat itu boleh membuka apl lain dan data peribadi mungkin boleh diakses. \n\nUntuk menggunakan penyematan apl: 	\n1. Hidupkan penyematan apl 	\n2. Buka Ikhtisar 	\n3. Ketik ikon apl di bahagian atas skrin, kemudian ketik Semat"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Apabila apl disemat, apl yang disemat itu boleh membuka apl lain dan data peribadi mungkin boleh diakses. \n\nJika anda mahu berkongsi peranti anda dengan orang lain secara selamat, cuba gunakan pengguna tetamu. \n\nUntuk menggunakan penyematan apl: 	\n1. Hidupkan penyematan apl 	\n2. Buka Ikhtisar 	\n3. Ketik ikon apl di bahagian atas skrin, kemudian ketik Semat"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Apabila apl disemat, apl yang disemat itu boleh membuka apl lain dan data peribadi mungkin boleh diakses. \n\nUntuk menggunakan penyematan apl: 	\n{0,number,integer}. Hidupkan penyematan apl 	\n{1,number,integer}. Buka Ikhtisar 	\n{2,number,integer}. Ketik ikon apl di bahagian atas skrin, kemudian ketik Semat"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Apabila apl disemat, apl yang disemat itu boleh membuka apl lain dan data peribadi mungkin boleh diakses. \n\nJika anda mahu berkongsi peranti anda dengan orang lain secara selamat, cuba gunakan pengguna tetamu. \n\nUntuk menggunakan penyematan apl: 	\n{0,number,integer}. Hidupkan penyematan apl 	\n{1,number,integer}. Buka Ikhtisar 	\n{2,number,integer}. Ketik ikon apl di bahagian atas skrin, kemudian ketik Semat"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Apabila apl disemat: \n\n•		Data peribadi mungkin boleh diakses \n		(seperti kenalan dan kandungan e-mel) \n•		Apl yang disemat boleh membuka apl lain \n\nHanya gunakan penyematan apl dengan orang yang anda percayai."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Minta corak buka kunci sebelum menyahsemat"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Minta PIN sebelum nyahsemat"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Tetapan apl yang tidak digunakan"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Jeda aktiviti apl jika tidak digunakan"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Alih keluar kebenaran, padamkan fail sementara dan hentikan pemberitahuan"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Urus apl jika tidak digunakan"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Alih keluar kebenaran, padamkan fail sementara, hentikan pemberitahuan dan arkibkan apl tersebut"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Semua apl"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Apl yang dipasang"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Apl segera"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Kosong"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memori yang digunakan oleh apl"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 apl menggunakan memori dalam tempoh {time} yang lalu}other{# apl menggunakan memori dalam tempoh {time} yang lalu}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Dayakan pemprofilan penggunaan memori"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Pemprofilan penggunaan memori memerlukan sumber sistem tambahan."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Pemprofilan memori dilumpuhkan"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekuensi"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Penggunaan maksimum"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Tiada data yang digunakan"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Paparkan di atas apl lain"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Benarkan pemaparan di atas apl lain"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Benarkan apl ini dipaparkan di atas apl lain yang sedang digunakan. Apl ini akan dapat melihat tempat anda mengetik atau menukar item yang dipaparkan pada skrin."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Tukar output media"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Benarkan apl untuk menukar output media"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Benarkan apl ini memilih peranti tersambung untuk memainkan audio atau video daripada apl lain. Jika dibenarkan, apl ini boleh mengakses senarai peranti tersedia, seperti fon kepala dan pembesar suara dan memilih peranti output untuk menstrim atau menghantar audio atau video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Akses semua fail"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Tingkatkan pengaktifan suara"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Peranti ini menggunakan kepintaran peribadi untuk meningkatkan model pengaktifan suara. Apl boleh menerima kemaskinian diringkaskan yang dikumpulkan daripada ramai pengguna untuk mengekalkan privasi sambil meningkatkan model tersebut untuk semua orang.\n\n"<a href="">"Maklumat lanjut tentang kepintaran peribadi"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Amaran data <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Had data <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Amaran data <xliff:g id="ID_1">^1</xliff:g>/Had data <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Cara pengiraan data pembawa mungkin berbeza daripada pengiraan peranti"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Kecualikan data yang digunakan oleh rangkaian pembawa"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> digunakan"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Tetapkan amaran data"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Dikemas kini <xliff:g id="ID_1">^2</xliff:g> yang lalu"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Dikemas kini oleh <xliff:g id="ID_1">^1</xliff:g> sebentar td"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Dikemas kini sebentar tadi"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Lihat pelan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Lihat butiran"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Penjimat Data"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Data tanpa had"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomali penggunaan bateri"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Jubin pembangun tetapan pantas"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Lumpuhkan tamat masa keizinan adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Lumpuhkan pembatalan automatik keizinan adb untuk sistem yang tidak disambung semula dalam tempoh masa lalai (7 hari) atau yang dikonfigurasi pengguna (minimum 1 hari)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Surih Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Penderia Dimatikan"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Tetapan profil kerja"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Cari kenalan direktori kerja dalam apl peribadi"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Perkhidmatan autolengkap"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Perkhidmatan autolengkap lalai"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Kata laluan"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Kata laluan, kunci laluan dan perkhidmatan data"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Penyedia tambahan"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# kata laluan}other{# kata laluan}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, isi, autolengkap, kata laluan"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Kata laluan, kunci laluan dan perkhidmatan data"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Matikan semua perkhidmatan?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Kata laluan, kunci laluan dan maklumat lain yang disimpan tidak akan tersedia untuk autolengkap apabila anda log masuk"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Tukarkan perkhidmatan pilihan anda kepada &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_enable_confirmation_message_title" msgid="1037501792652277829">"Gunakan %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Anda hanya boleh menghidupkan 5 perkhidmatan"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Matikan sekurang-kurangnya 1 perkhidmatan untuk menambahkan perkhidmatan lain"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s menggunakan maklumat pada skrin anda untuk menentukan pengisian data automatik."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Had kata laluan, kunci laluan dan perkhidmatan data"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Anda boleh mempunyai hingga 5 kata laluan, kunci laluan dan perkhidmatan data yang aktif pada masa yang sama. Matikan perkhidmatan untuk menambahkan lagi."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Had kata laluan, kunci laluan dan perkhidmatan data"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Anda boleh mempunyai hingga 5 kata laluan, kunci laluan dan perkhidmatan data yang aktif pada masa yang sama. Matikan perkhidmatan untuk menambahkan lagi."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Matikan"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autolengkap"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Tahap pengelogan"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Perubahan keserasian aplikasi hanya boleh diubah suai untuk apl boleh dinyahpepijat. Pasang apl boleh dinyahpepijat dan cuba lagi."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Bergantung pada tetapan lain"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Akaun"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d akaun"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nama peranti"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Maklumat asas"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Undang-undang &amp; kawal selia"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Benarkan apl ini dilancarkan apabila tag NFC diimbas.\nJika kebenaran ini dihidupkan, apl akan tersedia sebagai pilihan apabila tag dikesan."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Mainkan media ke"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Mainkan <xliff:g id="LABEL">%s</xliff:g> pada"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio akan dimainkan"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Peranti ini"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Tidak tersedia semasa panggilan"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Jawab panggilan pada"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Redam"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Untuk mendayakan tetapan ini, tukar \"Tekan &amp; tahan butang kuasa\" kepada menu kuasa terlebih dahulu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Butiran rangkaian"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nama peranti anda boleh dilihat oleh apl pada telefon anda. 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="devices_title" msgid="649715719278562515">"Peranti"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Pilih rangkaian"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Diputuskan sambungan"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nama"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Warna (digunakan oleh apl yang serasi)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Simpan"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Gunakan SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Gunakan SIM ini"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Mati"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Untuk melumpuhkan SIM ini, keluarkan kad SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Ketik untuk mengaktifkan <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Padamkan SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Jenis rangkaian pilihan"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Tukar mod pengendalian rangkaian"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Jenis rangkaian pilihan"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Semak dengan penyedia rangkaian untuk mendapatkan harga."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Penggunaan data apl"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mod Rangkaian <xliff:g id="NETWORKMODEID">%1$d</xliff:g> Tidak Sah. Abaikan."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nama Titik Capaian (APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Tidak tersedia apabila disambungkan ke <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Tukar kepada <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Tukar kepada penggunaan kad SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Gunakan <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Hanya satu SIM yang boleh aktif pada satu-satu masa.\n\nBertukar kepada <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> tidak akan membatalkan perkhidmatan <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> anda."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Hanya 1 eSIM boleh aktif pada satu masa.\n\nTindakan menukar kepada <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> tidak akan membatalkan perkhidmatan <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> anda."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Hanya satu SIM yang boleh aktif pada satu-satu masa.\n\nPenukaran tidak akan membatalkan perkhidmatan <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> anda."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Anda tidak boleh menggunakan 2 SIM serentak. Untuk menggunakan <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, matikan SIM lain."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Tukar kepada <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Matikan <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Tidak perlu"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Batal"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Tukar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Matikan"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Tidak dapat mengaktifkan SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Cuba hidupkan SIM sekali lagi. Jika masalah berlanjutan, mulakan semula peranti anda."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Sediakan SIM anda"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Tetapkan pilihan rangkaian mudah alih anda untuk menggunakan berbilang SIM pada peranti ini"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Labelkan SIM anda"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Anda akan melihat label ini semasa membuat panggilan, menghantar teks dan menggunakan data serta dalam Tetapan"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Label SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Pilih SIM untuk digunakan"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Anda boleh menggunakan 2 SIM serentak"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Tetapkan SIM utama anda"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Pilih SIM yang akan digunakan secara lalai untuk panggilan, teks dan data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"SIM utama anda"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Panggilan"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Teks"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Penukaran data automatik"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Penggunaan data daripada mana-mana SIM bergantung pada liputan dan ketersediaan"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data sahaja"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Sediakan"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Seterusnya"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rangkaian mudah alih"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Nombor telefon"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Label dan warna SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Pengaktifan rangkaian"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Pertukaran pembawa"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> aktif"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Untuk menggunakan data mudah alih, ciri panggilan dan SMS pada masa akan datang, pergi ke tetapan rangkaian anda"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Padam eSIM ini?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Pemadaman SIM ini akan mengalih keluar perkhidmatan <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> daripada peranti ini.\n\nPerkhidmatan <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> tidak akan dibatalkan."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Padam"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Memadamkan SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Tidak dapat memadamkan SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"SIM ini tidak dapat dipadamkan disebabkan ralat.\n\nMulakan semula peranti anda, kemudian cuba lagi."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Sambung ke peranti"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Apl <xliff:g id="APPNAME">%1$s</xliff:g> mahu menggunakan rangkaian Wi-Fi sementara untuk menyambung ke peranti anda"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Tiada peranti ditemui. Pastikan peranti dihidupkan dan tersedia untuk menyambung."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Panggilan kecemasan"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Panggilan kecemasan melalui Panggilan Wi‑Fi tidak disokong oleh pembawa anda.\nPeranti akan bertukar kepada rangkaian selular secara automatik untuk membuat panggilan kecemasan.\nPanggilan kecemasan hanya boleh dibuat di kawasan yang terdapat liputan selular."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Gunakan Wi-Fi untuk panggilan untuk meningkatkan kualiti"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Panggilan sandaran"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Jika <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> tidak tersedia atau sedang dalam perayauan, gunakan SIM data mudah alih anda untuk panggilan <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"panggilan sandaran"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mesej MMS masuk"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Tidak dapat menghantar mesej MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Ketik untuk membenarkan pemesejan MMS pada <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> apabila data mudah alih dimatikan"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Maklumat dasar kerja anda"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Tetapan diurus oleh pentadbir IT anda"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"But dengan saiz halaman 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"But peranti dengan kernel disokong saiz halaman 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"But semula dengan kernel serasi halaman 16KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AMARAN: Sesetengah aplikasi mungkin tidak serasi dengan mod ini. Peranti akan but semula selepas pengesahan."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"But semula dengan kernel serasi halaman 4KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Peranti akan but semula selepas pengesahan."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Gagal mengemaskinikan kernel kepada kernel serasi halaman 16KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Menggunakan perubahan"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Pengendali laporan pepijat"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Menentukan apl yang mengendalikan pintasan Laporan Pepijat pada peranti anda."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Peribadi"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Untuk menyambung semula main balik dengan pantas, biarkan pemain media kekal terbuka dalam Tetapan Pantas"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Tunjukkan media pada skrin kunci"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Untuk menyambung semula main balik dengan pantas, biarkan pemain media kekal terbuka pada skrin kunci"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Tunjukkan pengesyoran media"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Tunjukkan syor media Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Berdasarkan aktiviti anda"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Sembunyikan pemain"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Tunjukkan pemain"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktif"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Tidak aktif"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Lalai untuk <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"panggilan"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio daripada media yang serasi kedengaran lebih mengasyikkan"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Penjejakan kepala"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio berubah apabila anda menggerakkan kepala anda untuk kedengaran lebih semula jadi"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Segerakkan kebenaran"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Beri <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> kebenaran apl yang sama yang telah anda benarkan pada <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Segerakkan kebenaran daripada telefon"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Beri jam tangan anda kebenaran apl yang sama yang telah anda benarkan pada telefon ini"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Jenis Peranti Audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tidak diketahui"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Pembesar suara"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Sederhana"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Tinggi"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Apl ini hanya boleh dibuka dalam 1 tetingkap"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Hidup"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Mati"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Mati"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Mati"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Hidup"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Mati"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Hidup"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Mati"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Menukarkan skrin cerah kepada gelap dan skrin gelap kepada cerah"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zum masuk pada skrin"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Mati"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Mati"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Hidup"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Mati"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Hidup"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Kini kata laluan telah disediakan"</string>
 </resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index f400fc3..aa98436 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"၁ မိနစ်နောက်ပိုင်း"</item>
     <item msgid="1574040255478150028">"၅ မိနစ်နောက်ပိုင်း"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 9ea25be..50f2b45 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"စီမံခန့်ခွဲသူများသာ ဆော့ဖ်ဝဲရေးသူဆက်တင်များကို ဝင်ကြည့်နိုင်သည်။"</string>
     <string name="header_category_system" msgid="1665516346845259058">"စနစ်"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"ဝန်ဆောင်မှုရှိပါသည်"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ဆက်သွယ်မှုဧရိယာပြင်ပ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ရှေ့ဆက်ရန် အပေါ်သို့ ပွတ်ဆွဲပါ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"အက်ပ်ဆက်သုံးရန် ဖုန်းကိုခေါက်ပြီး ရှေ့မျက်နှာပြင်ပြကွက်တွင် အပေါ်သို့ ပွတ်ဆွဲနိုင်သည်။ သို့မဟုတ် ဖန်သားပြင်လော့ခ်ချရန် စက္ကန့်အနည်းငယ် စောင့်နိုင်သည်"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ဆက်စပ်သည်များ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ဖုန်းမြည်သံနှင့် နှိုးစက်"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"ဖုန်းခေါ်မှုအတွင်း အသံ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"မီဒီယာ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"အကြောင်းကြားချက်၊ အခြားစနစ်အသံ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"မီဒီယာ၊ စနစ်အသံများ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"အကြောင်းကြားချက်များ"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"အသံထွက်မည့် ကိရိယာကို မူရင်းအားဖြင့် အက်ပ်တစ်ခုချင်းစီက ဆုံးဖြတ်သည်"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"အမည်မသိသောဘလူးတုသ်စက်"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"ရှာဖွေနေသည်…"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ဘလူးတုသ် ဖွင့်ထားသည်"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"အားလုံး ကြည့်ရန်"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"အားလုံးကြည့်ရန်"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"စတိုင်လပ်စ်"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"စွတ်ကြောင်းခလုတ်ကို နှိပ်လျှင်"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (အလုပ်ပရိုဖိုင်)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE အသံထုတ်လွှင့်မှုနှင့် ချိတ်ဆက်ခြင်း"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"အနီးအနားရှိ အသံထုတ်လွှင့်ခြင်းများ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"အသံထုတ်လွှင့်ခြင်းများ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR ကုဒ်သုံး၍ အသံထုတ်လွှင့်ခြင်းနှင့် ချိတ်ဆက်ပါ"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"အနီးအနား၌ အသံထုတ်လွှင့်ခြင်း မတွေ့ပါ။"</string>
     <string name="date_and_time" msgid="1788358029823431692">"ရက်စွဲနှင့် အချိန်"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ပရောက်စီ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ရှင်းရန်"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"အက်ပ်တစ်ခုချင်းစီအတွက် ဘာသာစကားရွေးရန် အက်ပ်ဘာသာစကား ဆက်တင်များသို့ သွားပါ။"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"အက်ပ်ဘာသာစကားများအကြောင်း ပိုမိုလေ့လာခြင်း"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"စနစ်ဘာသာစကားကို %s သို့ပြောင်းမလား။"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"ဦးစားပေး ဘာသာစကားများတွင် %s ထည့်မလား။"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ဤဘာသာစကားကိုလည်း သင်နှစ်သက်ကြောင်း အက်ပ်နှင့် ဝဘ်ဆိုက်များကို အသိပေးပါမည်။"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"သင့်စက်ဆက်တင်များနှင့် ဒေသဆိုင်ရာ သတ်မှတ်ချက်များ ပြောင်းသွားမည်။"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ပြောင်းရန်"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ကိုမရနိုင်ပါ"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"စနေ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"အက်ပ်သည် ဒေသဆိုင်ရာ သတ်မှတ်ချက်များကို မပံ့ပိုးပါက ၎င်း၏ မူလဘာသာစကားဆက်တင်များကို သုံးပါမည်။"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ဦးစားပေး ဘာသာစကားများအကြောင်း ပိုမိုလေ့လာပါ။"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"နောက်ထပ် သတ်မှတ်ချက်များ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ခေါ်ဆိုမှု စည်းမျဉ်းများ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"သင်အခေါ်ခံလိုသည့်ပုံစံကို သတ်မှတ်ပါ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"အက်ပ်များသည် သင့်အား မည်သို့ခေါ်ရမည်ကို သီးသန့်ပြုလုပ်ရန် သင်၏ ခေါ်ဆိုမှု စည်းမျဉ်းများကို သုံးနိုင်သည်။"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"သတ်မှတ်မထားပါ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ဣတ္ထိလိင်"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ပုလ္လိင်"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"သာမန်"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ရွေးထားသည့် ဘာသာစကားကို ဖယ်ရှားမလား။}other{ရွေးထားသည့် ဘာသာစကားများကို ဖယ်ရှားမလား။}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"စာသားများကို အခြားဘာသာစကားဖြင့်ပြပါလိမ့်မည်။"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ဘာသာစကားများ အားလုံးကိုဖယ်ရှား၍မရပါ"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"တည်နေရာ"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"တည်နေရာကို သုံးရန်"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ပိတ်"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ဖွင့် - အက်ပ် # ခုသည် တည်နေရာ ဝင်ကြည့်ခွင့်ရှိသည်}other{ဖွင့် - အက်ပ် # ခုသည် တည်နေရာ ဝင်ကြည့်ခွင့်ရှိသည်}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ဖွင့်ထားသည် / အက်ပ် # ခုတွင် တည်နေရာသုံးခွင့် ရှိသည်}other{ဖွင့်ထားသည် / အက်ပ် # ခုတွင် တည်နေရာသုံးခွင့် ရှိသည်}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ဖွင့်နေသည်…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"အနီးတစ်ဝိုက်ရှိ စက်များ၏ ခွင့်ပြုချက်ကိုရထားသော အက်ပ်များက ချိတ်ဆက်ထားသောစက်များ၏ ဆက်စပ်နေရာကို သတ်မှတ်နိုင်သည်။"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"အက်ပ်နှင့် ဝန်ဆောင်မှုများအတွက် တည်နေရာသုံးခွင့်ကို ပိတ်ထားသည်။ သင် အရေးပေါ် နံပါတ်ကို ဖုန်းဆက်သောအခါ (သို့) စာတိုပို့သောအခါ သင့်စက်၏တည်နေရာကို အရေးပေါ်ဆောင်ရွက်ပေးသူများထံ ပို့နိုင်ပါသည်။"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"တည်နေရာပြ ဆက်တင်များအကြောင်း ပိုမိုလေ့လာပါ။"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"တည်နေရာပြ ဆက်တင်များအကြောင်း ပိုမိုလေ့လာရန်"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"တည်နေရာသုံးခွင့် ပြောင်းရန် ဆက်တင်များ &gt; လုံခြုံရေးနှင့် အချက်အလက်လုံခြုံမှု &gt; ကန့်သတ်ရန်ဆက်တင်များသို့ သွားပါ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"အကောင်းဆုံးရလဒ်များအတွက် Google အတွက် ပြုလုပ်ထားသည့် လက်မှတ်ရ ဖန်သားပြင် အကာအကွယ်သုံးပါ။ အခြားဖန်သားပြင် အကာအကွယ်များသုံးပါက သင့်ကလေး၏လက်ဗွေ အလုပ် လုပ်ချင်မှ လုပ်ပါမည်။"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"နာရီဖြင့်ဖွင့်ခြင်း"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို စနစ်ထည့်သွင်းသောအခါ သင်နှာခေါင်းစည်း တပ်ဆင်ထားလျှင် (သို့) မှောင်သောနေရာသို့ ရောက်နေလျှင် သင်၏ဖုန်းသည် လက်ဗွေကို တောင်းပါမည်။\n\nသင်၏ မျက်နှာ (သို့) လက်ဗွေကို အသိအမှတ်မပြုသောအခါ လက်ပတ်နာရီဖြင့် ဖွင့်နိုင်သည်။"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"သင်၏ လက်ဗွေကို အသိအမှတ်မပြုသောအခါ လက်ပတ်နာရီဖြင့် ဖွင့်နိုင်သည်။"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"သင်၏ မျက်နှာကို အသိအမှတ်မပြုသောအခါ လက်ပတ်နာရီဖြင့် ဖွင့်နိုင်သည်။"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"‘မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း’ နှင့် ‘လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’ ကို စနစ်ထည့်သွင်းသောအခါ နှာခေါင်းစည်းတပ်ထားလျှင် (သို့) မှောင်သောနေရာသို့ ရောက်နေလျှင် သင်၏ဖုန်းသည် လက်ဗွေတောင်းပါမည်။\n\n‘နာရီဖြင့်ဖွင့်ခြင်း’ သည် သင့်ဖုန်းဖွင့်ရန် အဆင်ပြေသည့် နည်းလမ်းနောက်တစ်ခုဖြစ်သည်။ ဥပမာ သင့်လက်ချောင်းများ ရေစိုနေချိန် (သို့) မျက်နှာကို မမှတ်မိသောအချိန်။"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"‘နာရီဖြင့်ဖွင့်ခြင်း’ သည် သင့်ဖုန်းဖွင့်ရန် အဆင်ပြေသည့် နည်းလမ်းနောက်တစ်ခုဖြစ်သည်။ ဥပမာ သင့်လက်ဗွေကို မမှတ်မိသောအချိန်။"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"‘နာရီဖြင့်ဖွင့်ခြင်း’ သည် သင့်ဖုန်းဖွင့်ရန် အဆင်ပြေသည့် နည်းလမ်းနောက်တစ်ခုဖြစ်သည်။ ဥပမာ သင့်မျက်နှာကို မမှတ်မိသောအချိန်။"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"အောက်ပါကိုလုပ်ရန် လက်ဗွေ (သို့) နာရီ သုံးပါ-"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"အောက်ပါကိုလုပ်ရန် မျက်နှာ (သို့) နာရီ သုံးပါ-"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"အောက်ပါကိုလုပ်ရန် မျက်နှာ၊ လက်ဗွေ (သို့) နာရီ သုံးပါ-"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"မျက်နှာနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"မျက်နှာ၊ လက်ဗွေနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"မျက်နှာ၊ လက်ဗွေများနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"အဝေးထိန်း Authenticator ဖွင့်ခြင်း"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"နာရီထည့်လိုက်ပြီ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"လက်ပတ်နာရီ စနစ်ထည့်သွင်းခြင်း"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"အလုပ်လုပ်ပုံ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"နာရီပွင့်နေကာ လက်တွင်ပတ်ထားပြီး ဤဖုန်း၏ လက်လှမ်းမီသည့် နေရာတွင်ရှိရမည်။ လက်တွင်ပတ်ထားစဉ် သင့်နာရီကို ထပ်ဖွင့်စရာ မလိုပါ။"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ဤဖုန်းပွင့်သွားသည့်အခါ သင့်ကို နာရီတွင် အကြောင်းကြားမည်။ သင်မရည်ရွယ်သည့်အချိန်တွင် ဖုန်းပွင့်နေပါက ၎င်းအားလော့ခ်ထပ်ချရန် အကြောင်းကြားချက်ကို တို့နိုင်သည်။"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"သင့်ထိန်းချုပ်မှုအောက်တွင် ရှိပါသည်"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ဆက်တင်များတွင် ‘နာရီဖြင့်ဖွင့်ခြင်း’ မှ သင့်နာရီကို အချိန်မရွေး ဖယ်ရှားနိုင်သည်"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"အကြောင်းကြားချက်ကို တို့ပါ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"လော့ခ်မျက်နှာပြင်တွင် အပေါ်သို့ပွတ်ဆွဲပါ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"သင့်လက်ပတ်နာရီ ရွေးရန်"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ရနိုင်သော လက်ပတ်နာရီများ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"မလုပ်တော့"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"အတည်ပြုရန်"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"အားလုံးအဆင်သင့်ပါ။"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"လော့ခ်မျက်နှာပြင်ပေါ်တွင် ပွတ်ဆွဲသောအခါ (သို့) အကြောင်းကြားချက်ကို တို့သောအခါ ဤဖုန်းအားဖွင့်ရန် သင့်နာရီကို ယခု သုံးနိုင်သည်"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ပြီးပြီ"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"နာရီဖြင့်ဖွင့်ခြင်း"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"လော့ခ်မျက်နှာပြင်ပေါ်တွင် ပွတ်ဆွဲသောအခါ (သို့) အကြောင်းကြားချက်ကို တို့သောအခါ ဤဖုန်းအားဖွင့်ရန် သင့်နာရီကို သုံးနိုင်သည်"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"‘နာရီဖြင့်ဖွင့်ခြင်း’ သုံးရန် နာရီပွင့်နေကာ လက်တွင်ပတ်ထားပြီး ဤဖုန်း၏ လက်လှမ်းမီသည့် နေရာတွင်ရှိ၍ ၎င်းကို ချိတ်ဆက်ထားရမည်။ ချိတ်ဆက်မှု ပြတ်တောက်သွားပါက ‘နာရီဖြင့်ဖွင့်ခြင်း’ မသုံးမီ ဖုန်းကိုဖွင့်ရပါမည်။\n\nသတိပြုရန်-\nတစ်ကြိမ်လျှင် နာရီတစ်လုံးသာ စနစ်ထည့်သွင်းနိုင်သည်။ နာရီနောက်တစ်လုံးထည့်ရန် လက်ရှိတစ်လုံးကို ဦးစွာဖယ်ရှားရမည်။"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"‘နာရီဖြင့်ဖွင့်ခြင်း’ အကြောင်း ပိုမိုလေ့လာရန်"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"နာရီထည့်ရန်"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"နာရီ ဖယ်ရှားရန်"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"လက်ဗွေနှင့် မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"အလုပ်အတွက် ‘မျက်နှာပြနှင့် လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"စနစ်ထည့်သွင်းရန် လိုအပ်သည်"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"လုံခြုံရေး"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ကိုယ်ရေးဒေတာ"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"အလုပ်ပရိုဖိုင်"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"သီးသန့်ချတ်ခန်း"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"သီးသန့်အက်ပ်များကို လော့ခ်ချပြီး ဖျောက်ထားပါ"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ဖျောက်ထားနိုင် (သို့) လော့ခ်ချနိုင်သော သီးခြားနေရာတွင် သီးသန့်အက်ပ်များကို ထားပါ"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"သီးသန့်ချတ်ခန်းလော့ခ်"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"သင့်စက်ကို ဖွင့်သည့်နည်းတူ ‘သီးသန့်ချတ်ခန်း’ ကို ဖွင့်နိုင်သည် (သို့) အခြားလော့ခ်တစ်ခု ရွေးနိုင်သည်"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"စက်ဖန်သားပြင်လော့ခ် သုံးရန်"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"မျက်နှာနှင့် လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"စနစ်ထည့်သွင်းရန် တို့ပါ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"သီးသန့်နေရာအတွက် လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"သီးသန့်နေရာအတွက် မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"လော့ခ်ဖွင့်ရန် နည်းလမ်းများ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"စက်ဖန်သားပြင်လော့ခ်နှင့် အတူတူပင်ဖြစ်သည်"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"‘သီးသန့်ချတ်ခန်း’ အတွက် လော့ခ်အသစ် ရွေးမလား။"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"အလိုအလျောက် လော့ခ်ချရန်"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"သီးသန့်နေရာကို အလိုအလျောက် လော့ခ်ချခြင်း"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"သင့်စက်ပစ္စည်းကို အချိန်ကြာမြင့်စွာ အသုံးမပြုပါက သီးသန့်နေရာကို အလိုအလျောက် လော့ခ်ချနိုင်သည်"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"စက်ပစ္စည်းလော့ခ်ချချိန်တိုင်း"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"အသုံးမပြုချိန် ၅ မိနစ်ကြာပြီးနောက်"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ဘယ်တော့မှ"</string>
+    <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_deleted" msgid="7825768516955610897">"‘သီးသန့်ချတ်ခန်း’ ကိုဖျက်ပြီးပါပြီ"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"‘သီးသန့်ချတ်ခန်း’ ကိုဖျက်၍မရပါ"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"သီးသန့်နေရာ လော့ခ်ဖွင့်လိုက်သည်"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ဖန်သားပြင်လော့ခ် သတ်မှတ်ပါ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"သင်၏သီးသန့်နေရာကို သုံးရန် ဤစက်ပစ္စည်းတွင် ဖန်သားပြင်လော့ခ် သတ်မှတ်ပါ"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ဖန်သားပြင်လော့ခ် သတ်မှတ်ရန်"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"မလုပ်တော့"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"မလုပ်တော့"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"စနစ်ထည့်သွင်းရန်"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"သီးသန့်နေရာကို စနစ်ထည့်သွင်းခြင်း"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ဖျောက်ထားနိုင် (သို့) လော့ခ်ချနိုင်သော သီးခြားနေရာတွင် သီးသန့်အက်ပ်များကို ထားပါ"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"အလုပ်လုပ်ပုံ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"သင်၏သီးသန့်နေရာကို အက်ပ်စာရင်းအောက်ခြေမှ ဝင်နိုင်သည်"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"သင်၏သီးသန့်နေရာထဲရှိ အက်ပ်များကို လော့ခ်ဖြင့် ကာကွယ်ထားသည်"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"သင်၏သီးသန့်နေရာကို လော့ခ်ချထားချိန်တွင် ၎င်းထဲရှိ အက်ပ်များမှ အကြောင်းကြားချက်များကို ဖျောက်ထားသည်"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"သင်၏သီးသန့်နေရာကို လော့ခ်ချထားချိန်တွင် ၎င်းထဲရှိ အက်ပ်များကို ခွင့်ပြုချက်စီမံစနစ်၊ ကိုယ်ရေးအချက်အလက် လုံခြုံမှု ဒက်ရှ်ဘုတ်နှင့် အခြားဆက်တင်များတွင် မြင်ရမည်မဟုတ်ပါ။\n\nသင်၏သီးသန့်နေရာကို စက်ပစ္စည်းအသစ်သို့ ရွှေ့၍မရပါ။ ၎င်းကို အခြားစက်ပစ္စည်းတွင် သုံးလိုပါက နောက်ထပ်သီးသန့်နေရာကို စနစ်ထည့်သွင်းရပါမည်။\n\nသင့်စက်ပစ္စည်းကို ကွန်ပျူတာနှင့် ချိတ်ဆက်သော (သို့) သင့်စက်ပစ္စည်းတွင် အန္တရာယ်ရှိသည့်အက်ပ်များ ထည့်သွင်းသော မည်သူမဆို သင်၏သီးသန့်နေရာကို ဝင်နိုင်ပါမည်။"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"သီးသန့်နေရာကို စနစ်ထည့်သွင်းနေသည်…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"သီးသန့်နေရာကို လော့ခ်ချထားချိန်တွင် ၎င်းထဲရှိ အက်ပ်များမှ အကြောင်းကြားချက်များကို ဖျောက်ထားသည်"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"သီးသန့်နေရာရှိ အက်ပ်များမှ ဓာတ်ပုံ (သို့) ဖိုင်များ မျှဝေရန် သီးသန့်နေရာကို လော့ခ်ဖွင့်ပါ"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"အက်ပ်အချို့ကို သင်၏သီးသန့်နေရာတွင် ထည့်သွင်းပြီးဖြစ်သည်"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"သီးသန့်နေရာကို စနစ်ထည့်သွင်း၍မရပါ"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ထပ်စမ်းရန်"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"သီးသန့်နေရာကို ဖွင့်ရန် ဖန်သားပြင်လော့ခ် သုံးမလား။"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"သင့်စက်ကို ဖွင့်သည့်နည်းတူ သင်၏သီးသန့်နေရာကို ဖွင့်နိုင်သည် (သို့) အခြားလော့ခ်တစ်ခု ရွေးနိုင်သည်"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ဖန်သားပြင်လော့ခ် သုံးရန်"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"လော့ခ်အသစ် ရွေးရန်"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"အားလုံး အသင့်ပါ။"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"သင်၏သီးသန့်နေရာကို ဝင်ရန် အက်ပ်စာရင်းသို့ သွားပြီး အောက်သို့လှိမ့်ပါ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ပြီးပြီ"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"သီးသန့်နေရာရှာရန် အောက်သို့လှိမ့်ပါ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"သင်၏သီးသန့်နေရာအတွက် လော့ခ်ရွေးပါ"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"သင့်လက်ဗွေသုံး၍ သီးသန့်နေရာကို လော့ခ်ဖွင့်နိုင်သည်။ လုံခြုံရေးအရ ဤနည်းလမ်းအတွက် အရန်လော့ခ်စနစ်တစ်ခု လိုအပ်သည်။"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"သင့်သီးသန့်နေရာအတွက် ပင်နံပါတ်သတ်မှတ်ပါ"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"သင့်သီးသန့်နေရာအတွက် စကားဝှက်သတ်မှတ်ပါ"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"သင့်သီးသန့်နေရာအတွက် ပုံဖော်ခြင်းသတ်မှတ်ပါ"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"သီးသန့်ချတ်ခန်းပြရန် (အပြီးသတ် UX မဟုတ်ပါ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"ဆက်တင်များအက်ပ်ကို ဖွင့်ပါ"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"လုံခြုံရေး၊ ကိုယ်ရေးအချက်အလက်လုံခြုံမှု &gt; သီးသန့်ချတ်ခန်း &gt; လော့ခ်ချထားသည့်အခါ သီးသန့်ချတ်ခန်းဖျောက်ရန် ကိုတို့ပါ"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"လော့ခ်ချထားသည့်အခါ သီးသန့်ချတ်ခန်းဖျောက်ရန်ခလုတ်ကို ပိတ်ပါ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google ဝန်ထမ်းများသို့ မှတ်ချက်- ဤအင်္ဂါရပ်ကို ရေးသားဆဲဖြစ်သည်"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ဤ ဖြတ်သန်းခွင့်ကုဒ်ကို အခြား စက်ပစ္စည်းတွင်လည်း ရိုက်ထည့်ရန် လိုအပ်နိုင်သည်။"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ချိတ်ဆက်ထားသည့်အစီအစဉ်အတိုင်း တွဲချိတ်ရန်အတည်ပြုပါ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"သင်၏ အဆက်အသွယ်များနှင့် ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ခွင့်ပြုသည်"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"အဆက်အသွယ်များနှင့် ခေါ်ဆိုမှုမှတ်တမ်းကိုလည်း သုံးခွင့်ပေးသည်"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"အချက်အလက်ကို ဖုန်းခေါ်ဆိုမှု ကြေညာချက်နှင့် အခြားအရာများအတွက် သုံးမည်"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ကို ချိတ်ဆက်မရပါ။"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ရနိုင်သည့် စက်များ"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"လေယာဉ်ပျံပေါ်သုံးစနစ်"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"အများသုံးကွန်ရက်များအတွက် အသိပေးခြင်း"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"အရည်အသွေးမြင့် အများသုံးကွန်ရက်ရှိလျှင် အကြောင်းကြားပေးရန်"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ကွန်ရက်များကို ခွင့်ပြုရန်"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP သည် သိပ်မလုံခြုံသော လုံခြုံရေးပရိုတိုကောအဟောင်း ဖြစ်သည်"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP ကွန်ရက်များသည် သိပ်မလုံခြုံသဖြင့် သင့်ဖုန်းကုမ္ပဏီက ယင်းကွန်ရက်များကို ခွင့်မပြုပါ"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi-Fi ကို အလိုအလျောက် ဖွင့်ရန်"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"သင်၏နေအိမ်ကွန်ရက်ကဲ့သို့သော သိမ်းဆည်းထားသည့် အရည်အသွေးမြင့် ကွန်ရက်များအနီးသို့ ရောက်သည့်အခါ Wi-Fi ကို ဖွင့်လိုက်ပါမည်"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"တည်နေရာကို ပိတ်ထားသောကြောင့် မရနိုင်ပါ။ "<annotation id="link">"တည်နေရာ"</annotation>" ကို ဖွင့်ပါ။"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi ကို ပိတ်ထားစေကာမူ Wi-Fi ကွန်ရက်များကို အချိန်မရွေး ရှာဖွေရန် အက်ပ်နှင့် ဝန်ဆောင်မှုများအား Wi‑Fi ရှာဖွေခြင်းက ခွင့်ပြုသည်။ ဥပမာအားဖြင့် ၎င်းကို တည်နေရာအခြေပြု လုပ်ဆောင်ချက်နှင့် ဝန်ဆောင်မှုများ ကောင်းမွန်လာစေရန် အသုံးပြုနိုင်သည်။"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ဖွင့်ရန်"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi ရှာဖွေခြင်း ဖွင့်ထားသည်"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ဤကွန်ရက်သည် သိပ်မလုံခြုံသော လုံခြုံရေးပရိုတိုကောအဟောင်းကို အသုံးပြုသည်"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ကို ပိတ်ထားသည်"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ဤကွန်ရက်သည် WEP ဟုခေါ်သည့် သိပ်မလုံခြုံသော လုံခြုံရေးပရိုတိုကောအဟောင်းကို အသုံးပြုသည်။ မည်သို့ပင်ဖြစ်စေ ချိတ်ဆက်ရန် သင်က WEP ကွန်ရက်များကို ခွင့်ပြုပေးနိုင်သည်။"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ဤကွန်ရက်သည် သိပ်မလုံခြုံသော လုံခြုံရေးပရိုတိုကောအဟောင်းကို အသုံးပြုထားသဖြင့် သင့်ဖုန်းကုမ္ပဏီသည် သင့်အား ဤကွန်ရက်နှင့် ချိတ်ဆက်ခွင့်မပြုပါ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP ခွင့်ပြုရန်"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ပိတ်ရန်"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"အဆင့်မြင့် ရွေးစရာများ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ဆွဲချစာရင်း အဆင့်မြင့် ရွေးစရာများ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ချဲ့ထွင်ရန်"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi ဆက်ချိတ်ထားရန်"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"လုံးဝ ထပ်မပြပါနှင့်"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"ချိတ်ဆက်ရန်"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ဖွင့်ထားသည်"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> သို့ ချိတ်ဆက်ထားသည်"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> သို့ ချိတ်ဆက်နေပါသည်"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"ချိတ်ဆက်နေသည်…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ကွန်ရက်ကို ချိတ်ဆက်ရန် မအောင်မြင်ခဲ့ပါ"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ကွန်ရက်သည် ရနိုင်သောအကွာအဝေးတွင် မရှိပါ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"မေ့ပစ်ရန်"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ပြင်ဆင်ရန်"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ကွန်ရက် မေ့ပစ်ရန် မအောင်မြင်ခဲ့ပါ"</string>
     <string name="wifi_save" msgid="2312643132472226807">"သိမ်းရန်"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ကွန်ရက်ကို မှတ်သားရန် မအောင်မြင်ခဲ့ပါ"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"မလုပ်တော့"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"မိုဘိုင်းဒေတာ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"အီသာနက်"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> - အားသွင်းနေသည်"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> - အားသွင်းနေသည်"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ဟော့စပေါ့ ချိတ်ဆက်မှု"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"လိုင်းဆွဲအား"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"သိမ်းထား ကွန်ရက်များ"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"မည်သည့် စကားဝှက်မျှ သတ်မှတ်မထားပါ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ဟော့စပေါ့အမည်"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ဟော့စပေါ့စကားဝှက်"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP လိုင်း"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ဟော့စပေါ့ အလိုအလျောက် ပိတ်ရန်"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"စက်ပစ္စည်းကို ချိတ်ဆက်မထားသောအခါ"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"တွဲဖက်သုံးနိုင်မှုကို တိုးရန်"</string>
@@ -1007,9 +1148,11 @@
     <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="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="fold_lock_behavior_title" msgid="786228803694268449">"ခေါက်ထားချိန် အက်ပ်များကို ဆက်သုံးရန်"</string>
+    <string name="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ဂိမ်းများအတွက် မူလဖရိမ်ပြနှုန်း ပိတ်ခြင်း"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ဂိမ်းများအတွက် အမြင့်ဆုံးဖရိမ်ပြနှုန်းကို <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz ဖြင့် ကန့်သတ်ခြင်းကို ပိတ်နိုင်သည်။"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\'ဖန်သားပြင်ကို အာရုံစိုက်ခြင်း\' က တစ်ယောက်ယောက် ဖန်သားပြင်ကို ကြည့်နေခြင်းရှိမရှိ ရှေ့ကင်မရာ အသုံးပြု၍ စစ်ဆေးသည်။ ၎င်းသည် စက်ပစ္စည်းပေါ်တွင် လုပ်ဆောင်ခြင်းဖြစ်ပြီး ပုံများကို သိမ်းခြင်း သို့မဟုတ် Google သို့ပို့ခြင်းတို့ မပြုလုပ်ပါ။"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\'ဖန်သားပြင်အာရုံစိုက်မှု\' ဖွင့်ခြင်း"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ကြည့်နေချိန်တွင် ဖန်သားပြင်ကို ဆက်ဖွင့်ထားသည်"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"စကရင်ပိတ်သွားမည့်အချိန် ပိုကြာပါက ဘက်ထရီ ပိုသုံးပါမည်။"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ကင်မရာကို လော့ခ်ချထားသည်"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"‘မျက်နှာကို မှတ်မိခြင်း’ အတွက် ကင်မရာကို လော့ခ်ဖွင့်ထားရမည်"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"‘ဖန်သားပြင်ကို အာရုံစိုက်ခြင်း’ အတွက် ကင်မရာကို လော့ခ်ဖွင့်ထားရမည်"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ဆင်းမ်ကတ် အထိုင် <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ဆင်းမ်ကတ် အထိုင် <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ပင်မ)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"သိမ်းထားသည့် ကွန်ရက်ကို ရွေးပြီး ကြည့်နိုင်သည်"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MINနံပါတ်"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSIDနံပါတ်"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRLဗားရှင်း"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ဘက်ထရီ အားအဆင့်"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"အများသုံး"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"အများသုံး ဆက်တင်များ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"သိမ်းရန်"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"မလုပ်တော့"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"အမည်အကွက်မှာ ကွက်လပ်ဖြစ်မနေစေရပါ"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APNမှာ ကွက်လပ်ဖြစ်မနေစေရပါ"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MNC အကွက်မှာ ဂဏန်း (၃)လုံးဖြစ်ရမည်"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC အကွက်မှာ ဂဏန်း (၂)လုံး သို့မဟုတ် (၃)လုံးဖြစ်ရမည်"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"ဝန်ဆောင်မှုပေးသူသည် %s အမျိုးအစား APNs များကို ထည့်သွင်းခွင့်မပြုပါ။"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC အကွက်သည် မှန်ကန်ရမည်။"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"မူရင်း APNဆက်တင်များကိုပြန်လည်ရယူစေမည်"</string>
     <string name="menu_restore" msgid="4310539620115151551">"မူရင်းသို့ ပြန်လည်သတ်မှတ်ရန်"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"APN မူရင်းဆက်တင်သို့ ပြန်လည်သတ်မှတ်ပြီးပါပြီ။"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ပြင်ဆင်သတ်မှတ်ရန်"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ဘလူးတုသ်နှင့် Wi‑Fi ပြင်ဆင်သတ်မှတ်လိုက်ပြီ"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM များဖျက်ရန်"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"၎င်းက မိုဘိုင်းဝန်ဆောင်မှု အစီအစဉ်များကို ပယ်ဖျက်မည်မဟုတ်ပါ။ အစားထိုး ဆင်းမ်ကတ်များ ဒေါင်းလုဒ်လုပ်ရန် သင့်ဝန်ဆောင်မှုပေးသူကို ဆက်သွယ်ပါ။"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ဆက်တင်များ ပြင်ဆင်သတ်မှတ်ရန်"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"ကွန်ရက်ဆက်တင်များ အားလုံးကို ပြင်ဆင်သတ်မှတ်လိုပါသလား။ ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"ကွန်ရက်ဆက်တင်အားလုံး ပြင်ဆင်သတ်မှတ်ပြီး eSIM များဖျက်မလား။ ဤလုပ်ဆောင်ချက်ကို နောက်ပြန်ဆုတ်၍ မရပါ။"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ပြင်ဆင်သတ်မှတ်မလား။"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ဤအသုံးပြုသူအတွက် ကွန်ရက်ပြန်လည်သတ်မှတ်မှု မရရှိနိုင်ပါ"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ကွန်ရက်ချိန်ညှိချက်များ ပြန်လည်သတ်မှတ်ပြီးပါပြီ"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"ဆင်းမ်ကတ်များ ဖျက်၍မရပါ"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"အမှားတစ်ခုကြောင့် eSIM များကို ဖျက်၍မရပါ။\n\nသင့်စက်ကို ပြန်စပြီး ထပ်စမ်းကြည့်ပါ။"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ဒေတာအားလုံးဖျက်ရန် (စက်ရုံထုတ်ဆက်တင် သတ်မှတ်ရန်)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ဒေတာအားလုံးဖျက်ခြင်း (စက်ရုံထုတ်ဆက်တင် သတ်မှတ်ရန်)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"သီချင်း"</li>\n<li>"ဓာတ်ပုံများ"</li>\n<li>"အသုံးပြုသူ၏အခြားဒေတာ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM များ"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"၎င်းက သင်၏ မိုဘိုင်းဝန်ဆောင်မှုအစီအစဉ်ကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"သင့်ကိုယ်ရေးအချက်အလက်များနှင့် ဒေါင်းလုဒ်လုပ်ထားသော အက်ပ်အားလုံးကို ဖျက်ပါမည်။ ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ဒေါင်းလုဒ်လုပ်ထားသော အက်ပ်နှင့် ဆင်းမ်ကဒ်များ အပါအဝင် သင်၏ ကိုယ်ရေးအချက်အလက်အားလုံးကို ဖျက်ပါမည်။ ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ဒေတာအားလုံးကို ဖျက်မလား။"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ဤအသုံးပြုသူအတွက် စက်ရုံထုတ်အတိုင်း ပြန်လည်သတ်မှတ်မှု မရပါ"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"ဖျက်နေသည်"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ဟော့စပေါ့၊ USB၊ ဘလူးတုသ်၊ အီတာနက်"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"အခြားစက်ပစ္စည်းများနှင့် အင်တာနက် မျှဝေထားခြင်းမရှိပါ"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ပိတ်"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"မိုဘိုင်းသုံး၍ ချိတ်ဆက်ခြင်း"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi ဟော့စပေါ့ မသုံးပါနှင့်"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"အင်တာနက်ကို USB မှတစ်ဆင့်သာ မျှဝေရန်"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"အင်တာနက်ကို ဘလူးတုသ်မှတစ်ဆင့်သာ မျှဝေရန်"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"အင်တာနက်ကို အီတာနက်မှတစ်ဆင့်သာ မျှဝေရန်"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"အင်တာနက်ကို USB နှင့် ဘလူးတုသ်မှတစ်ဆင့်သာ မျှဝေရန်"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"အင်တာနက်ကို USB နှင့် ဘလူးတုသ်မှတစ်ဆင့်သာ မျှဝေရန်"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"အင်တာနက်ကို ဘလူးတုသ်နှင့် အီတာနက်ဖြင့်သာ မျှဝေရန်"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"အင်တာနက်ကို USB၊ ဘလူးတုသ်နှင့် အီတာနက်မှတစ်ဆင့် မျှဝေရန်"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB သုံး၍ချိတ်ဆက်ခြင်း"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ဘလူးတုသ်သုံးချိတ်ဆက်ခြင်း"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"အီသာနက်သုံး၍ ချိတ်ဆက်ခြင်း"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"သင်၏ Wi-Fi သို့မဟုတ် မိုဘိုင်းဒေတာ ချိတ်ဆက်မှုမှတစ်ဆင့် အခြားစက်ပစ္စည်းများသို့ အင်တာနက်လွှင့်ရန် ဟော့စပေါ့နှင့် မိုဘိုင်းမိုဒမ်ကို သုံးပါ။ အနီးရှိစက်ပစ္စည်းများသို့ အကြောင်းအရာ မျှဝေရန်အတွက် အက်ပ်များသည်လည်း ဟော့စပေါ့ပြုလုပ်နိုင်သည်။"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"အကူအညီ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"မိုဘိုင်းကွန်ရက်"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"မိုဘိုင်းလ်အစီအစဉ်"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS အက်ပ်"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"စာတိုပို့ရန် အက်ပ်ပြောင်းမလား။"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"သင့်စာတိုပို့ရန် အပလီကေးရှင်းအတွက် <xliff:g id="NEW_APP">%1$s</xliff:g> ကို <xliff:g id="CURRENT_APP">%2$s</xliff:g> အစား သုံးမည်လား?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ကြိုးမဲ့ ကူညီပေးသူကို ပြောင်းမလား?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%1$s</xliff:g>ကို <xliff:g id="CURRENT_APP">%2$s</xliff:g>၏အစား သုံးရမလား?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"သင်၏ ကွန်ရက် ချိတ်ဆက်မှုများကို စီမံကွပ်ကဲရန် <xliff:g id="NEW_APP">%s</xliff:g>ကို သုံးရမလား?{"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"မသိရ ဆင်းမ်ကတ် အော်ပရေတာ"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> တွင် မည်သည့်ဝဘ်ဆိုက်မျှ​ ပေးထားခြင်းမရှိပါ"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ကျေးဇူးပြု၍ ဆင်းမ်ကတ်ထည့်၍ အစမှ ပြန်စပါ။"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ကျေးဇူးပြု၍ အင်တာနက်ဖြင့် ချိတ်ဆက်ပါ။"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"လတ်တလောတည်နေရာ တောင်းခံမှုများ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"အလုပ်ပရိုဖိုင်အတွက် တည်နေရာ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"အက်ပ်တည်နေရာ ခွင့်ပြုချက်များ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"အသုံးပြုခွင့် ရှင်းလင်းပါ"</string>
     <string name="controls_label" msgid="8671492254263626383">"ထိန်းချုပ်မှုများ"</string>
     <string name="force_stop" msgid="2681771622136916280">"မဖြစ်မနေ ရပ်ခိုင်းရန်"</string>
+    <string name="archive" msgid="9074663845068632127">"သိမ်းရန်"</string>
+    <string name="restore" msgid="7622486640713967157">"ပြန်ယူရန်"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"စုစုပေါင်း"</string>
     <string name="application_size_label" msgid="6407051020651716729">"အက်ပ်အရွယ်အစား"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USBသိုလှောင်မှု အက်ပ်"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"အချက်အလက်အစု ပမာဏကို တွက်ချက်မရပါ။"</string>
     <string name="version_text" msgid="7628938665256107608">"ဗားရှင်း <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ရွေ့မည်"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"သိမ်း၍မရပါ"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ကို သိမ်းလိုက်ပြီ"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ပြန်ယူ၍မရပါ"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ကို ပြန်ယူနေသည်"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"အခြားရွှေ့ပြောင်းမှု တစ်ခုလုပ်ဆောင်နေပါသည်။"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"သိမ်းဆည်းရန်နေရာအလုံအလောက်မရှိပါ"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"အပလီကေးရှင်းမှာ မရှိပါ"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ရနိုင်သော မျက်နှာပြင်လက်ကွက်"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"မျက်နှာပြင် လက်ကွက်များ စီမံခြင်း"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ရွေးစရာများ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"အများသုံးနိုင်မှု"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"စက်၏ ကီးဘုတ်"</string>
     <string name="show_ime" msgid="4334255501724746849">"မျက်နှာပြင်လက်ကွက်ကို သုံးခြင်း"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"စက်၏ကီးဘုတ် ဖွင့်ထားစဉ်တွင် ၎င်းကို ဖန်သားပြင်ပေါ်တွင် ဆက်ထားပါ"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"စာလုံးပို မထပ်စေသည့် ခလုတ်များ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ပကတိကီးဘုတ် အများသုံးနိုင်မှုအတွက် ‘စာလုံးပို မထပ်စေသည့် ခလုတ်များ’ ကို ဖွင့်ပေးသည်"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ကပ်ခွာ ခလုတ်များ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ပကတိကီးဘုတ် အများသုံးနိုင်မှုအတွက် ‘ကပ်ခွာ ခလုတ်များ’ ကို ဖွင့်ပေးသည်"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"လက်ကွက်ဖြတ်လမ်းများ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ဖြတ်လမ်းလင့်ခ်များစာရင်း ပြပါ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"အလုပ်ပရိုဖိုင် လက်ကွက်နှင့် တူးလ်များ"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"အသုံးပြုချိန်ဖြင့် စီရန်"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"နောက်ဆုံးသုံးချိန်ဖြင့် စီရန်"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"အက်ပ်အမည်ဖြင့် စီရန်"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"နောက်ဆုံး အကြိမ် အသုံးပြုခဲ့"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"နောက်ဆုံးသုံးခဲ့ချိန်"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"မည်သည့်အခါမှ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"အသုံးပြုအချိန်"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"အများသုံးနိုင်မှု"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"အများသုံးနိုင်မှု ဆက်တင်များ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"မည်သို့ပင်ဖြစ်စေ ရှေ့ဆက်ရန်"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"မလုပ်တော့"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ပုံကြီးချဲ့ခြင်း ဆက်တင်များ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"သုံးချက်တို့၍ အကြီးချဲ့ခြင်း"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ဖြတ်လမ်းလင့်ခ်ဖြင့် ချဲ့ခြင်း"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ဖြတ်လမ်းလင့်ခ်ဖြင့် သုံးချက်တို့ပြီး ချဲ့ပါ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> အကြောင်း"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ဖွင့်ရန် စခရင်ကို လက်နှစ်ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</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="860548190334486449">"ချဲ့ခြင်း စတင်ရန်၊ ရပ်ရန် သင့်စခရင်ပေါ် တစ်နေရာရာတွင် လက်နှစ်ချောင်းဖြင့် နှစ်ချက်တို့ပါ။"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"အများသုံးနိုင်သည့် ဝန်ဆောင်မှုတစ်ခု အသုံးပြုရန် လက် ၃ ချောင်းဖြင့် ဖန်သားပြင်အောက်ခြေမှ အပေါ်သို့ပွတ်ဆွဲပါ။\n\nဝန်ဆောင်မှုများအကြား ပြောင်းရန် လက် ၃ ချောင်းဖြင့် အပေါ်သို့ပွတ်ဆွဲပြီး ဖိထားပါ။"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ရပါပြီ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"သုံးနိုင်မှုခလုတ် ဆက်တင်များ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ခလုတ်ဆက်တင်များ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ဖြတ်လမ်းလင့်ခ်"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"အများသုံးနိုင်မှု ခလုတ်"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"အများသုံးနိုင်မှု လက်ဟန်"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"စခရင်ကို လက်နှစ်ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"စခရင်ကို လက်နှစ်ချောင်းဖြင့် နှစ်ချက်တို့ခြင်း"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"စခရင်ကို {0,number,integer} ကြိမ် လက်နှစ်ချောင်းဖြင့် အမြန်တို့ပါ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"မျက်နှာပြင်ကို သုံးချက်တို့ပါ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ဖန်သားပြင်ကို သုံးချက်တို့ရန်"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ဖန်သားပြင်ကို {0,number,integer} ကြိမ် အမြန်တို့ပါ။ ဤဖြတ်လမ်းလင့်ခ်သည် သင့်စက်ကို နှေးသွားစေနိုင်သည်"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"အများသုံးနိုင်မှု ခလုတ်နှင့် လက်ဟန် အကြောင်း ပိုမိုလေ့လာရန်"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"အများသုံးနိုင်မှု ခလုတ်ကို သုံးနေသည်။ ခလုတ် ၃ ခုဖြင့် လမ်းညွှန်ခြင်းဖြင့် ဤလက်ဟန်ကို မရနိုင်ပါ။"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"အများသုံးစွဲနိုင်မှုဆိုင်ရာ ဝန်ဆောင်မှုများကို အမြန်သုံးသည်"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"စတင်ရန်"</b>\n"၁။ သုံးနိုင်မှု ဆက်တင်များသို့ သွားပါ\n၂။ ဝန်ဆောင်မှုတစ်ခုရွေးပြီး ဖြတ်လမ်းလင့်ခ်ကို တို့ပါ\n၃။ ဝန်ဆောင်မှုသုံးရန် အသုံးပြုလိုသည့် ခလုတ် (သို့) လက်ဟန်ကို ရွေးပါ"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"စတင်ရန်"</b>\n"၁။ သုံးနိုင်မှု ဆက်တင်များသို့ သွားပါ\n၂။ ဝန်ဆောင်မှုတစ်ခုရွေးပြီး ဖြတ်လမ်းလင့်ခ်ကို တို့ပါ\n၃။ ဝန်ဆောင်မှုသုံးမည့် ခလုတ်ကို ရွေးပါ"</string>
+    <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_size_title" msgid="5785110470538960881">"အရွယ်အစား"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ဖွင့်ပိတ်ခလုတ်ဖြင့် ဖုန်းချရန်"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"မောက်စ်သင်္ကေတမြား အကြီးစား"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"မြားတည်နေရာကို မြင်သာအောင်ပြုလုပ်သည်"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"အက်ပ်အားလုံးကို မှောင်စေခြင်း"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ကိုယ်ပိုင်အမှောင်နောက်ခံမရှိသည့် အက်ပ်၌ သုံးပါ။ အက်ပ်အချို့၌ အရောင်ပြောင်းပြန်လှန်ထားခြင်းကဲ့သို့ ဖန်သားပြင်ပြဿနာ ရှိနိုင်သည်။"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"လှုပ်ရှားသက်ဝင်ပုံ ဖယ်ရှားရန်"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ဖန်သားပြင်တွင် လှုပ်ရှားမှုလျှော့ချသည်"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"မိုနိုအသံ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"၎င်းသည် သင်နှင့် အက်ပ်တစ်ခု (သို့) အာရုံခံကိရိယာအကြား ပြန်လှန်တုံ့ပြန်မှုများကို မှတ်သားနိုင်ပြီး သင့်ကိုယ်စား အက်ပ်များနှင့် ပြန်လှန်တုံ့ပြန်နိုင်သည်။"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ခွင့်ပြု"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ပယ်ရန်"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"ရပ်ရန်"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"မလုပ်တော့"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> ကို ရပ်မလား။"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> ကို တို့ခြင်းဖြင့် <xliff:g id="SERVICE">%2$s</xliff:g> ရပ်သွားပါမည်။"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ပိတ်ရန်"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ဖွင့်ထားပါ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ပိတ်မလား။"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"မည်သည့်ဆားဗစ်မှမရှိပါ"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"မည်သည့် ဝန်ဆောင်မှုကိုမျှ ရွေးမထားပါ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"မည်သည့်အကြောင်းအရာမှမရှိပါ"</string>
     <string name="settings_button" msgid="2195468788019730377">"ဆက်တင်များ"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"အလင်းသိမ်မွေ့မှု၊ အလင်းကြောက်ခြင်း၊ အမှောင်နောက်ခံ၊ ခေါင်းတစ်ခြမ်းကိုက်ခြင်း၊ ခေါင်းကိုက်ခြင်း၊ စာဖတ်မုဒ်၊ ညသုံးမုဒ်၊ တောက်ပမှုကို လျှော့ခြင်း၊ အဖြူရောင်အမှတ်"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"အသုံးပြုရလွယ်ခြင်း၊ သုံးလွယ်ခြင်း၊ အကူအညီ၊ ကူညီပေးသော"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"အမြင်၊ အကြား၊ မျက်မမြင်၊ နားမကြား၊ မော်တာ၊ ကျွမ်းကျင်မှု၊ ထောက်ပံ့မှု၊ အကူအညီ၊ သုံးရလွယ်၊ ဝင်ရလွယ်၊ လက်၊ အကူအညီ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ဝင်းဒိုးမှန်ဘီလူး၊ ဇူးမ်၊ ချဲ့ခြင်း၊ အမြင်အာရုံချို့တဲ့ခြင်း၊ ပုံကြီးချဲ့ခြင်း၊ ပိုကြီးအောင်လုပ်ခြင်း"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"စာတန်းများ၊ စာတန်းများ၊ CC၊ Live Transcribe၊ နားလေးခြင်း၊ အကြားအာရုံဆုံးရှုံးခြင်း၊ CART၊ စကားမှ စာသို့၊ စာတန်းထိုးများ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"အရောင် အလင်းအမှောင်"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"မော်တာ၊ မောက်စ်"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"နားကြားကိရိယာ၊ အကြားအာရုံ ချို့တဲ့ခြင်း၊ နားမကြားခြင်း၊ cochlear ထည့်သွင်းမှုများ၊ အသံချဲ့သည့်စက်ပစ္စည်းများ၊ အသံစက်များ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"မော်တာ၊ မောက်စ်၊ ပြင်ပမောက်စ်၊ ခေါင်းတပ်မောက်စ်၊ ပြောင်းပြင်လွယ်မောက်စ်၊ ဘီးတပ်ကုလားထိုင်၊ ဂိမ်းခလုတ်"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"နားကြားကိရိယာ၊ နားလေးခြင်း၊ နားမကြားခြင်း၊ cochlear ထည့်သွင်းမှုများ၊ အသံချဲ့သည့်စက်ပစ္စည်းများ၊ အသံစက်များ၊ PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"နားလေးခြင်း၊ အကြားအာရုံဆုံးရှုံးခြင်း၊ စာတန်းများ၊ ကြေးနန်းရိုက်ခြင်း၊ tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ခလုတ်သုံးခု"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ကျွမ်းကျင်မှု၊ မော်တာ၊ စီနီယာ၊ အဆစ်ရောင်နာ၊ rsi, လေဖြတ်၊ ရင်တုန်ခြင်း၊ မာလ်တီပယ် စကယ်လရိုးဆစ်၊ ဦးနှောက်အကြောသေရောဂါ၊ တုန်ခြင်း၊ ကြွက်သားနာကျင်ရောင်ရမ်းခြင်း၊ လက်"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"နှောင့်နှေး၊ ကျွမ်းကျင်မှု၊ စီနီယာ"</string>
     <string name="print_settings" msgid="8519810615863882491">"ပုံနှိပ်ခြင်း"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ပိတ်"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ပရင့် ဝန်ဆောင်မှု ၁ ခုဖွင့်ထားသည်}other{ပရင့် ဝန်ဆောင်မှု # ခုဖွင့်ထားသည်}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"အများဆုံးသုံးသည့် အက်ပ်များ ကြည့်ပါ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ဘက်ထရီကာကွယ်ရန် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်ထားသည်"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"သင့်ဘက်ထရီသက်တမ်း ပိုရှည်စေရန် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်သည်"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ဘက်ထရီကာကွယ်ရန် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်ထားသည်"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ဘက်ထရီသက်တမ်း ပိုရှည်စေရန် တပ်ဆင်ထားစဉ် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်သည်"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ဘက်ထရီကာကွယ်ရန် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်ထားသည်"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ဘက်ထရီသက်တမ်း ပိုရှည်စေရန် တပ်ဆင်ထားစဉ် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်သည်"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"အားအပြည့်သွင်းပါ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"နောက်တစ်ကြိမ် တက်ဘလက် တပ်ဆင်သည့်အခါ ဘက်ထရီကာကွယ်ရန် အားသွင်းခြင်းကို အကောင်းဆုံးပြင်ဆင်ပါမည်"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"အားသွင်းမှု ခဏရပ်သည့်အကြောင်း ပိုမိုလေ့လာရန်"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ဆက်အားသွင်းရန်"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"စွမ်းအားမြင့် နောက်ခံလုပ်ဆောင်ချက် ပါဝင်သည်"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ဖယ်ရှားရန်"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"မလုပ်တော့"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"အားအပြည့်သွင်းရန်"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"အားသွင်းပစ္စည်းတွင် ပြဿနာရှိသည်"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"တွဲမသုံးနိုင်သော ကြားခံကိရိယာဖြင့် အားသွင်းခြင်းအကြောင်း ပိုမိုလေ့လာရန်"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ဘက်ထရီ စီမံခန့်ခွဲမှုစနစ်"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"အက်ပ်များကို အလိုအလျောက် စီမံခြင်း"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ယခု"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ဘက်ထရီ အသုံးပြုမှု ပုံစံကားချပ်"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"နေ့စဉ် ဘက်ထရီ အသုံးပြုမှု ဇယားကွက်"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"နာရီအလိုက် ဘက်ထရီ အသုံးပြုမှု ဇယားကွက်"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ဘက်ထရီအဆင့် ရာခိုင်နှုန်း <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> မှ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> အထိ"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"နောက်ဆုံးအားအပြည့်သွင်းပြီးနောက် ဘက်ထရီ အသုံးပြုမှု"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> အကြား ဘက်ထရီ အသုံးပြုမှု"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"နောက်ဆုံးအားအပြည့်သွင်းပြီးနောက် အသုံးပြုချိန်"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"အရေးပေါ် ဖုန်းခေါ်ခြင်း လိုင်းအား"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"အရေးပေါ်ခေါ်ဆိုမှုအတွက် လုပ်ဆောင်ပုံကို သတ်မှတ်ရန်"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"အရန်သိမ်းရန်"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ဖွင့်"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ပိတ်"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"အရန်ပြုလုပ်ခြင်းနှင့် ပြန်လည်ရယူခြင်း"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ကိုယ်ရေးအချက်အလက်"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ကျွန်ုပ်ဒေတာများကို အရန်ထားခြင်း"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"အမည်"</string>
     <string name="vpn_type" msgid="5533202873260826663">"အမျိုးအစား"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ဆာဗာလိပ်စာ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP အသွင်ဝှက်ခြင်း (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP လျှို့ဝှက်အမှတ်"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec အသိအမှတ်ပြုသောအရာများ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec ကြိုတင်မျှဝေးထားသောသော့"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSecအသုံးပြုသူလက်မှတ်"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA အသိအမှတ်ပြုလက်မှတ်"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec ဆာဗာအသိအမှတ်ပြုလက်မှတ်"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"အဆင့်မြင့်ရွေးစရာများ ပြရန်"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS ရှာဖွေမှု ဒိုမိန်းများ"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS ဆာဗာများ (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"တစ်ဆင့်ပို့လမ်းကြောင်း (ဥပမာ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"သုံးသူအမည်"</string>
     <string name="vpn_password" msgid="1183746907642628127">"စကားဝှက်"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"အကောင့်အချက်အလက်များကို သိမ်းပါ"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(မသုံးမပြု)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ဆာဗာကိုအတည်မပြုပါနှင့်)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ဆာဗာမှ ရရှိထားသည်)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ဤ VPN အမျိုးအစားသို့ အမြဲချိတ်ဆက်ထား၍ မရပါ"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"အမြဲပွင့်နေသော VPN စနစ်သည် ကိန်းဂဏန်းဆာဗာလိပ်စာများကိုသာ ပံ့ပိုးပါသည်"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"အမြဲပွင့်နေသော VPN စနစ်အတွက် DNS ဆာဗာလိပ်စာတစ်ခုကို သတ်မှတ်ထားရပါမည်"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"အမြဲပွင့်နေသော VPN စနစ်အတွက် DNS ဆာဗာလိပ်စာများသည် ကိန်းဂဏန်းများ ဖြစ်ရပါမည်"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ထည့်သွင်းလိုက်သည့် အချက်အလက်သည် အမြဲပွင့်နေသော VPN စနစ်အတွက် ပံ့ပိုးမထားပါ"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"မလုပ်တော့"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ပယ်ရန်"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN မပါသည့် ချိတ်ဆက်မှုများကို ပိတ်ဆို့ရန်"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN ချိတ်ဆက်မှု လိုအပ်ပါသလား။"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"လုံခြုံမှုမရှိပါ။ IKEv2 VPN သို့ အပ်ဒိတ်လုပ်ပါ"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ပံ့ပိုးမထားသော VPN စတင်၍မရပါ။"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"VPN ကိုယ်ရေးအချက်အလက်ကို အမြဲတမ်းချိတ်ဆက်ထားလျက် ရှိနေရန် ရွေးပါ။ ၎င်းသည် VPN ကို ချိတ်ဆက်ထားသောအခါမှသာ ကွန်ရက်အသွားအလာကို ခွင့်ပြုလိမ့်မည်။"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"မရှိ"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"အမြဲပွင့်နေသော VPN အတွက် ဆာဗာနှင့်DNS.နှစ်ခုလုံးအတွက် IP လိပ်စာတစ်ခုလိုအပ်သည်။"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER သတိပေးချက်"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ကလေး လူခိုးမှုများ ဆိုင်ရာ သတင်းလွှာကို ရယူရန်"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ထပ်လုပ်ရန်"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"ခေါ်ဆိုမှု မန်နေဂျာကို ဖွင့်ပေးရန်"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"ဒီကိရိယာအား သင်က ခေါ်ဆိုမှုများ လုပ်ကိုင်ပုံကို စီမံကွပ်ကဲခွင့် ပြုပါ။"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"ခေါ်ဆိုမှု မန်နေဂျာ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ကြိုးမဲ့ အရေးပေါ်သတိပေးချက်များ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ကွန်ရက် အော်ပရေတာများ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ချိတ်ဆက် နေရာ အမည်များ"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ပေးချေမှု၊ တို့ခြင်း၊ ငွေပေးချေခြင်းများ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"မိတ္တူ၊ မိတ္တူကူးပါ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ဟန်"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"မျက်နှာ၊ လော့ခ်ဖွင့်ခြင်း၊ အထောက်အထား စိစစ်ခြင်း၊ လက်မှတ်ထိုးဝင်ခြင်း"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"မျက်နှာ၊ လော့ခ်ဖွင့်ခြင်း၊ အထောက်အထားစိစစ်ခြင်း၊ လက်မှတ်ထိုးဝင်ခြင်း၊ လက်ဗွေ၊ ဇီဝမက်ထရစ် အချက်အလက်"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl ဗားရှင်း၊ imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"အသံများ ဖွင့်ထားပါ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"တိုက်ရိုက်စာတန်း"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"အလိုအလျောက် စာတန်းထိုးရန်"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ဖုန်းစပီကာများ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"တက်ဘလက် စပီကာများ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"စက်ပစ္စည်း စပီကာများ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ကြိုးတပ် နားကြပ်"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"တွဲသုံးနိုင်သောမီဒီယာမှ အသံသည် ပို၍နှစ်သက်ဖွယ်ကောင်းသည်"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ပိတ်"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"မကြာသေးမီက စကားဝိုင်းများကို ဖယ်ရှားထားသည်"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"စကားဝိုင်းကို ဖယ်ရှားလိုက်သည်"</string>
     <string name="clear" msgid="5092178335409471100">"ရှင်းရန်"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> ကို ဖယ်ရှားရန်"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ဦးစားပေးနှင့် ပြုပြင်ထားသော စကားဝိုင်းများကို ဤနေရာတွင် ပြပါမည်"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"စကားဝိုင်းကို ဦးစားပေးအဖြစ် မှတ်သားပြီးသောအခါ (သို့) စကားဝိုင်းတွင် အပြောင်းအလဲတစ်ခုခု ပြုလုပ်ပြီးသောအခါ ၎င်းတို့ကို ဤနေရာတွင် ပြပါမည်။ \n\nစကားဝိုင်းဆက်တင်များ ပြောင်းလဲရန်- \nဆွဲချစာရင်းဖွင့်ရန် ဖန်သားပြင်ထိပ်မှ အောက်သို့ဆွဲပါ၊ ထို့နောက် စကားဝိုင်းကို ဖိထားပါ။"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ချုံ့ရန်"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ပိတ်"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"အက်ပ်ပင်ထိုးခြင်း"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"အက်ပ်ပင်ထိုးခြင်းသည် လက်ရှိအက်ပ်ကို ပင်မဖြုတ်မချင်း မြင်ကွင်းထဲတွင် ဆက်ထားခွင့်ပြုသည်။ ဥပမာ ယုံကြည်စိတ်ချရသည့် မိတ်ဆွေတစ်ဦးအား ဂိမ်းတစ်ခုခုကစားခွင့်ပြုရန် ဤဝန်ဆောင်မှုကို သုံးနိုင်သည်။"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"အက်ပ်တစ်ခုကို ပင်ထိုးသည့်အခါ ၎င်းက အခြားအက်ပ်များကို ဖွင့်နိုင်ပြီး ကိုယ်ရေးအချက်အလက်များကို အသုံးပြုနိုင်သည်။ \n\nအက်ပ်ပင်ထိုးခြင်းကို အသုံးပြုရန်- 	\n၁။ အက်ပ်ပင်ထိုးခြင်းကို ဖွင့်ပါ 	\n၂။ အနှစ်ချုပ်ကို ဖွင့်ပါ 	\n၃။ ဖန်သားပြင်ထိပ်ရှိ အက်ပ်သင်္ကေတကို တို့ပြီး ‘ပင်ထိုးရန်’ ကို နှိပ်ပါ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"အက်ပ်တစ်ခုကို ပင်ထိုးသည့်အခါ ၎င်းက အခြားအက်ပ်များကို ဖွင့်နိုင်ပြီး ကိုယ်ရေးအချက်အလက်များကို အသုံးပြုနိုင်သည်။ \n\nသင့်စက်ကို တစ်စုံတစ်ယောက်နှင့် လုံခြုံစွာမျှဝေလိုပါက ဧည့်သည်အသုံးပြုသူကို စမ်းသုံးကြည့်ပါ။ \n\nအက်ပ်ပင်ထိုးခြင်းကို အသုံးပြုရန်- 	\n၁။ အက်ပ်ပင်ထိုးခြင်းကို ဖွင့်ပါ 	\n၂။ အနှစ်ချုပ်ကို ဖွင့်ပါ 	\n၃။ ဖန်သားပြင်ထိပ်ရှိ အက်ပ်သင်္ကေတကို တို့ပြီး ‘ပင်ထိုးရန်’ ကို နှိပ်ပါ"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"အသုံးမပြုပါက အက်ပ်ကို စီမံရန်"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ခွင့်ပြုချက်များ ဖယ်ရှားခြင်း၊ ယာယီဖိုင်များ ဖျက်ခြင်း၊ အကြောင်းကြားချက်များ ရပ်ခြင်းနှင့် အက်ပ်သိမ်းခြင်းတို့ ပြုလုပ်နိုင်သည်"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"အက်ပ်များ အားလုံး"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ထည့်ထားသည့် အက်ပ်များ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"အသင့်သုံးအက်ပ်များ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"လက်ကျန်"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"အက်ပ်များမှ အသုံးပြုသော မှတ်ဉာဏ်"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{ပြီးခဲ့သော {time} တွင် အက်ပ် ၁ ခုက မှတ်ဉာဏ်သုံးထားသည်}other{ပြီးခဲ့သော {time} တွင် အက်ပ် # ခုက မှတ်ဉာဏ်သုံးထားသည်}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"မှတ်ဉာဏ်အသုံးပြုမှုပုံဖော်ခြင်း ဖွင့်ရန်"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"မှတ်ဉာဏ်အသုံးပြုမှု ပုံဖော်ခြင်းသည် ထပ်ဆောင်းစနစ်ရင်းမြစ်များ လိုအပ်သည်။"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"မှတ်ဉာဏ်အသုံးပြုမှုပုံဖော်ခြင်း ပိတ်ထားသည်"</string>
     <string name="running_frequency" msgid="7260225121706316639">"လှိုင်းနှုန်း"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"အများဆုံး အသုံးပြုမှု"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"မည်သည့်ဒေတာမျှ အသုံးမပြုပါ"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"အခြားအက်ပ်များ အပေါ်တွင် ပြသခြင်း"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"အခြားအက်ပ်များ အပေါ်မှ ပြသခွင့်ပြုရန်"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ဤအက်ပ်အား သင်သုံးနေသော အခြားအက်ပ်များအပေါ်တွင် ပြသခွင့်ပြုပါ။ ဤအက်ပ်က သင်တို့လိုက်သည့်နေရာကို ကြည့်နိုင် (သို့) ဖန်သားပြင်ပေါ်တွင် ပြသသည့် အရာကို ပြောင်းနိုင်ပါမည်။"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"မီဒီယာအထွက် ပြောင်းခြင်း"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"အက်ပ်ကို မီဒီယာအထွက် ပြောင်းခွင့်ပြုရန်"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"အခြားအက်ပ်များတွင် အသံ (သို့) ဗီဒီယိုဖွင့်မည့် ချိတ်ဆက်ကိရိယာကို ဤအက်ပ်အား ရွေးခွင့်ပြုပါ။ ခွင့်ပြုပြီးလျှင် ဤအက်ပ်သည် နားကြပ်နှင့် စပီကာများကဲ့သို့ ရနိုင်သော စက်ပစ္စည်းစာရင်းကို ဝင်ကြည့်ပြီး အသံ (သို့) ဗီဒီယို တိုက်ရိုက်ဖွင့်မည့် (သို့) ကာစ်လုပ်မည့် ထုတ်ယူသည့် ကိရိယာကို ရွေးနိုင်သည်။"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ဖိုင်အားလုံး သုံးခွင့်"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"အသံဖြင့်ဖွင့်ခြင်းကို မွမ်းမံရန်"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ဤစက်သည် အသံဖြင့်ဖွင့်ခြင်းပုံစံကို မွမ်းမံရန် သီးသန့်အသိဉာဏ် သုံးသည်။ ကိုယ်ရေးအချက်အလက်လုံခြုံမှုကို ထိန်းသိမ်းပြီး လူတိုင်းအတွက် ပုံစံကို မွမ်းမံရန် အသုံးပြုသူအများအပြားကြား ပေါင်းစည်းထားသည့် အနှစ်ချုပ်အပ်ဒိတ်များကို အက်ပ်များက လက်ခံရရှိနိုင်သည်။\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"ဒေတာသတိပေးချက် <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"ဒေတာကန့်သတ်ချက် <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ဒေတာသတိပေးချက် <xliff:g id="ID_1">^1</xliff:g> / ဒေတာကန့်သတ်ချက် <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ဝန်ဆောင်မှုပေးသူ၏ ဒေတာအသုံးပြုမှု တွက်ချက်ခြင်းသည် စက်ပစ္စည်း၏ တွက်ချက်ခြင်းနှင့် ကွဲပြားနိုင်သည်"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ဝန်ဆောင်မှုပေးသူ၏ကွန်ရက်များက အသုံးပြုသော ဒေတာများ မပါဝင်ပါ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> အသုံးပြုထားသည်"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ဒေတာသတိပေးချက် သတ်မှတ်ရန်"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"ပြီးခဲ့သည့် <xliff:g id="ID_1">^2</xliff:g> က အပ်ဒိတ်လုပ်သည်"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ယခုလေးတင် <xliff:g id="ID_1">^1</xliff:g> က အပ်ဒိတ်လုပ်ထားသည်"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ယခုလေးတင် အပ်ဒိတ်လုပ်ထားသည်"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"အစီအစဉ် ကြည့်ရန်"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"အသေးစိတ် ကြည့်ရန်"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ဒေတာချွေတာမှု"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ကန့်သတ်မဲ့ ဒေတာ"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ဘက်ထရီ အသုံးပြုမှု မူမမှန်ခြင်း"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ဆော့ဖ်ဝဲရေးသူ အကွက်များ အမြန်သတ်မှတ်ခြင်း"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Adb ခွင့်ပြုချက် အချိန်ကုန်သွားခြင်းကို ပိတ်ရန်"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"မူလ (၇ ရက်) သို့မဟုတ် အသုံးပြုသူ စီစဉ်သတ်မှတ်ထားသော (အနည်းဆုံး ၁ ရက်) အချိန်အတွင်း ချိတ်ဆက်မထားသော စနစ်များအတွက် adb ခွင့်ပြုချက်များ အလိုအလျောက်ရုပ်သိမ်းခြင်းကို ပိတ်သည်။"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope မှတ်တမ်းပြုခြင်း"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"အာရုံခံစနစ်များ ပိတ်ပါ"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"အလုပ်ပရိုဖိုင်ဆက်တင်များ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"အလုပ် ဖိုင်လမ်းညွှန်ရှိ အဆက်အသွယ်များကို ကိုယ်ပိုင်အက်ပ်များထဲတွင် ရှာပါ"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <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">"ဒစ်ဂျစ်တယ် Assistant အက်ပ်ကို ညွှန်ကြားရန် ပင်မခလုတ် နှိပ်ထားပါ။"</string>
     <string name="low_label" msgid="6525629096999711220">"နိမ့်"</string>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"အော်တိုဖြည့် ဝန်ဆောင်မှု"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"မူရင်း အော်တိုဖြည့်ဝန်ဆောင်မှု"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"စကားဝှက်များ"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"နောက်ထပ် ဝန်ဆောင်မှုပေးသူများ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{စကားဝှက် # ခု}other{စကားဝှက် # ခု}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"အော်တို၊ ဖြည့်၊ အော်တိုဖြည့်၊ စကားဝှက်"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ဒေတာ၊ လျှို့ဝှက်ကီး၊ စကားဝှက်"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"အလိုအလျောက်၊ ဖြည့်ခြင်း၊ အလိုအလျောက်ဖြည့်ခြင်း၊ ဒေတာ၊ လျှို့ဝှက်ကီး၊ စကားဝှက်"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ဝန်ဆောင်မှုအားလုံးကို ပိတ်သည်?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; စကားဝှက်များ၊ လျှို့ဝှက်ကီးများ၊ သိမ်းထားသော အခြားအချက်အလက်များကို သင်လက်မှတ်ထိုးဝင်သည့်အခါ အလိုအလျောက်ဖြည့်ရန် ရနိုင်မည်မဟုတ်ပါ"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;သင်၏ ဦးစားပေးဝန်ဆောင်မှုကို &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; သို့ပြောင်းသည် &lt;br/&gt; &lt;br/&gt; စကားဝှက်အသစ်များ၊ လျှို့ဝှက်ကီးများနှင့် အခြားအချက်အလက်များကို ယခုမှစ၍ ဤနေရာတွင် သိမ်းမည်။ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; က အော်တိုဖြည့်နိုင်သည်များအား ဆုံးဖြတ်ရန် သင့်ဖန်သားပြင်ပေါ်တွင် ရှိသည်များကို သုံးနိုင်သည်"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s သုံးမလား။"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"ဝန်ဆောင်မှု ၅ ခုသာ ဖွင့်နိုင်သည်"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"အခြားဝန်ဆောင်မှုထည့်ရန် ဝန်ဆောင်မှုအနည်းဆုံး ၁ ခုကို ပိတ်ပါ"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s သည် အော်တိုဖြည့်နိုင်သည်များကို သိရှိရန် သင့်စခရင်ပေါ်ရှိ အရာများကို အသုံးပြုသည်။"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ ကန့်သတ်ချက်"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"တစ်ချိန်တည်းတွင် စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှု ၅ ခုအထိ ထားရှိနိုင်သည်။ ထပ်ထည့်ရန် ဝန်ဆောင်မှုတစ်ခုကို ပိတ်ပါ။"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ ကန့်သတ်ချက်"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"တစ်ချိန်တည်းတွင် စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှု ၅ ခုအထိ ထားရှိနိုင်သည်။ ထပ်ထည့်ရန် ဝန်ဆောင်မှုတစ်ခုကို ပိတ်ပါ။"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ပိတ်ရန်"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"အလိုအလျောက်ဖြည့်ရန်"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"မှတ်တမ်းတင်မှု အဆင့်"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"အမှားရှာပြင်ကိရိယာအက်ပ်များ အတွက်သာလျှင် တွဲဖက်သုံးနိုင်သော အက်ပ် အပြောင်းအလဲများကို ပြုပြင်နိုင်သည်။ အမှားရှာပြင်ကိရိယာအက်ပ်တစ်ခု ထည့်သွင်းပြီး ထပ်စမ်းကြည့်ပါ။"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"အခြားဆက်တင်တစ်ခုအပေါ် မူတည်ပါသည်"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"အကောင့်"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"အကောင့် %d ခု"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"စက်ပစ္စည်း အမည်"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"အခြေခံ အချက်အလက်"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"ဥပဒေရေးရာနှင့် စည်းမျဉ်း"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC tag ကို စကင်ဖတ်ပြီးသောအခါ ဤအက်ပ်ကို စတင်ခွင့်ပြုပါ။\nဤခွင့်ပြုချက် ဖွင့်ထားပါက တဂ်တွေ့သည့်အခါတိုင်း အက်ပ်ကို ရွေးစရာအဖြစ် ရနိုင်ပါမည်။"</string>
     <string name="media_output_title" msgid="8283629315159510680">"မီဒီယာကို အောက်ပါစက်တွင် ဖွင့်ရန်"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"အောက်ပါတွင် <xliff:g id="LABEL">%s</xliff:g> ကို ဖွင့်ခြင်း-"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"အောက်ပါတွင် အသံဖွင့်ပါမည်"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ဤစက်"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ဖုန်းခေါ်ဆိုနေချိန် မရနိုင်ပါ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"အောက်ပါတွင် ခေါ်ဆိုမှု လက်ခံရန်"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"အသံတိတ်သည်"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ဖွင့်ရန် \"ဖွင့်ပိတ်ခလုတ်ကို နှိပ်ထားခြင်း\" ကို ပါဝါမီနူးသို့ အရင်ပြောင်းပါ။"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ကွန်ရက် အသေးစိတ်များ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"သင့်စက်ပစ္စည်းအမည်ကို သင့်ဖုန်းပေါ်ရှိ အက်ပ်များက မြင်ရပါသည်။ သင် ဘလူးတုသ်သုံးစက်များသို့ ချိတ်ဆက်သည့်အခါ၊ Wi-Fi ကွန်ရက်သို့ ချိတ်ဆက်သည့်အခါ သို့မဟုတ် Wi-Fi ဟော့စပေါ့ ထုတ်လွှင့်သည့်အခါ တို့တွင်လည်း ၎င်းကို အခြားသူများက မြင်နိုင်ပါသည်။"</string>
     <string name="devices_title" msgid="649715719278562515">"စက်များ"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ကွန်ရက် ရွေးရန်"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ချိတ်ဆက်မထားပါ"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"အမည်"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"အရောင် (တွဲသုံးနိုင်သော အက်ပ်က သုံးထား)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"သိမ်းရန်"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ဆင်းမ်ကတ်သုံးရန်"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ဤဆင်းမ်ကတ် သုံးရန်"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ပိတ်"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ဤဆင်းမ်ကတ်ကို ပိတ်ရန် ဆင်းမ်ကတ်ကို ထုတ်လိုက်ပါ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> ကိုဖွင့်ရန် တို့ပါ"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ဆင်းမ်ကတ် ဖျက်ရန်"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ဦးစားပေး ကွန်ရက်အမျိုးအစား"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ကွန်ရက် လုပ်ဆောင်မှုစနစ်ကို ပြောင်းပါ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ဦးစားပေး ကွန်ရက်အမျိုးအစား"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ဈေးနှုန်းသိရှိရန် သင်၏ ကွန်ရက်ဝန်ဆောင်မှုပေးသူကို မေးပါ။"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"အက်ပ်ဒေတာ သုံးစွဲမှု"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"မမှန်ကန်သည့် ကွန်ရက်မုဒ် <xliff:g id="NETWORKMODEID">%1$d</xliff:g>။ လျစ်လျူရှုပါ။"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ချိတ်ဆက်ပွိုင့် အမည်များ"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> တွင် ချိတ်ဆက်ထားသည့်အခါ မရနိုင်ပါ"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> သို့ ပြောင်းမလား။"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ဆင်းမ်ကတ်အသုံးပြုခြင်းသို့ ပြောင်းမလား။"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ကိုသုံးမလား။"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"တစ်ကြိမ်တွင် ဆင်းမ်တစ်ကတ်သာ အသုံးပြုနိုင်ပါသည်။\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> သို့ပြောင်းခြင်းက သင့် <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"၁ ကြိမ်တွင် eSIM တစ်ခုသာ အသုံးပြုနိုင်သည်။\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> သို့ပြောင်းခြင်းက သင့် <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"တစ်ကြိမ်တွင် ဆင်းမ်တစ်ကတ်သာ အသုံးပြုနိုင်ပါသည်။\n\nပြောင်းခြင်းက သင့် <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ဆင်းမ်ကတ် ၂ ခုကို တစ်ပြိုင်နက် အသုံးပြုနိုင်သည်။ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ကိုသုံးရန် အခြားဆင်းမ်ကတ်ကို ပိတ်ပါ။"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> သို့ ပြောင်းရန်"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ကိုပိတ်ပါ"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"မလိုပါ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"မလုပ်တော့"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ပြောင်းရန်"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ပိတ်ရန်"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"ဆင်းမ်ကတ်ကို ဖွင့်၍မရပါ"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ဆင်းမ်ကတ်ကို ပြန်ဖွင့်ကြည့်ပါ။ ပြဿနာရှိနေသေးပါက သင့်စက်ကို ပြန်လည်စတင်ပါ။"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ဆင်းမ်ကတ် စနစ်ထည့်သွင်းခြင်း"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ဤစက်ပစ္စည်းတွင် ဆင်းမ်ကတ်အမျိုးမျိုးသုံးရန် မိုဘိုင်းကွန်ရက် သတ်မှတ်ချက်များကို သတ်မှတ်ပါ"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ဆင်းမ်ကတ်များ အညွှန်းတပ်ခြင်း"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ဤအညွှန်းများကို ဖုန်းခေါ်ဆိုခြင်း၊ စာတိုပို့ခြင်း၊ ဒေတာသုံးခြင်း ပြုလုပ်ရာ၌အပြင် ‘ဆက်တင်များ’ တွင် တွေ့ရပါမည်"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"ဆင်းမ်ကတ်အညွှန်း"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"အညွှန်း"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"သုံးမည့်ဆင်းမ်ကတ် ရွေးခြင်း"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ဆင်းမ်ကတ် ၂ ခုကို တစ်ပြိုင်နက် အသုံးပြုနိုင်သည်"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ပင်မဆင်းမ်ကတ်များ သတ်မှတ်ခြင်း"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ဖုန်းခေါ်ဆိုမှု၊ စာတိုနှင့် ဒေတာများအတွက် မူရင်းသတ်မှတ်ချက်အဖြစ်သုံးမည့် ဆင်းမ်ကတ်များကို ရွေးပါ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"သင်၏ပင်မဆင်းမ်ကတ်များ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ခေါ်ဆိုမှုများ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"စာတိုများ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"အလိုအလျောက် ဒေတာပြောင်းခြင်း"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"လိုင်းဆွဲအားနှင့် ရနိုင်မှုပေါ်မူတည်၍ ဆင်းမ်ကတ်တစ်ခုခုမှ ဒေတာကို သုံးပါ"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ဒေတာသီးသန့်"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"စနစ်ထည့်သွင်းရန်"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ရှေ့သို့"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"မိုဘိုင်းကွန်ရက်"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ဖုန်းနံပါတ်"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"ဆင်းမ်ကတ်အညွှန်းနှင့် အရောင်"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ကွန်ရက် စတင်အသုံးပြုခြင်း"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"ဝန်ဆောင်မှုပေးသူ ပြောင်းခြင်း"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ကို အသုံးပြုနေသည်"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"မိုဘိုင်းဒေတာ၊ ခေါ်ဆိုမှုဆိုင်ရာ ဝန်ဆောင်မှုများနှင့် SMS စာတိုစနစ်တို့ကို နောင်တွင် အသုံးပြုရန် သင့်ကွန်ရက်ဆက်တင်များသို့ သွားပါ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ဆင်းမ်ကတ်"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ဤ eSIM ကိုဖျက်မလား။"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ဤဆင်းမ်ကို ဖျက်ခြင်းဖြင့် ဤစက်ပစ္စည်းမှ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ဝန်ဆောင်မှုကို ဖယ်ရှားပါမည်။\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> အတွက် ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ဖျက်ရန်"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"ဆင်းမ်ကတ်ကို ဖျက်နေသည်…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ဆင်းမ်ကတ်ကို ဖျက်၍မရပါ"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"အမှားအယွင်းရှိနေသောကြောင့် ဤဆင်းမ်ကို ဖျက်၍မရပါ။\n\nသင့်စက်ပစ္စည်းကို ပြန်စပြီး ထပ်စမ်းကြည့်ပါ။"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"စက်နှင့် ချိတ်ဆက်ခြင်း"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"သင့်စက်နှင့် ချိတ်ဆက်ရန် <xliff:g id="APPNAME">%1$s</xliff:g> အက်ပ်က ယာယီ Wi‑Fi ကွန်ရက်ကို အသုံးပြုလိုသည်"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"မည်သည့်စက်မျှ မတွေ့ပါ။ စက်များဖွင့်ထားပြီး ချိတ်ဆက်နိုင်ခြင်း ရှိမရှိ စစ်ဆေးပါ။"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"အရေးပေါ်ခေါ်ဆိုမှုများ"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"\'Wi‑Fi ခေါ်ဆိုခြင်း\' မှတစ်ဆင့် အရေးပေါ်ဖုန်းခေါ်ခြင်းများကို သင့်ဝန်ဆောင်မှုပေးသူက ပံ့ပိုးမထားပါ။\nအရေးပေါ်ဖုန်းခေါ်ခြင်း ပြုလုပ်ရန် စက်ပစ္စည်းသည် ဆယ်လူလာကွန်ရက်သို့ အလိုအလျောက် ပြောင်းသွားပါမည်။\nဆယ်လူလာကွန်ရက် ရရှိနိုင်သည့် နယ်မြေများတွင်သာ အရေးပေါ်ဖုန်းခေါ်ခြင်းများ ပြုလုပ်နိုင်ပါသည်။"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ဖုန်းခေါ်ဆိုမှုများ အရည်အသွေး ပိုမိုကောင်းမွန်စေရန် Wi‑Fi အသုံးပြုသည်"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"အရန် ခေါ်ဆိုမှု"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ကို မရနိုင်လျှင် သို့မဟုတ် ပြင်ပကွန်ရက်နှင့် ချိတ်ဆက်ထားလျှင် <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ခေါ်ဆိုမှုများအတွက် သင်၏ မိုဘိုင်းဒေတာဆင်းမ်ကတ်ကို အသုံးပြုပါ။"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"အရန် ခေါ်ဆိုမှု"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS မက်ဆေ့ဂျ် အဝင်"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS မက်ဆေ့ဂျ်များ ပို့၍မရပါ"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"မိုဘိုင်းဒေတာ ပိတ်ထားချိန် <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> တွင် MMS မက်ဆေ့ဂျ်ပို့ခွင့်ပြုရန် တို့ပါ"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"သင့်အလုပ် မူဝါဒ အချက်အလက်"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"သင့် IT စီမံခန့်ခွဲသူက သတ်မှတ်ထားသည့် ဆက်တင်များ"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"စာမျက်နှာအရွယ်အစား ၁၆K နှင့်စတင်ရန်"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"စာမျက်နှာအရွယ် ၁၆K ရသော Kernel သုံးသည့်စက် စတင်ရန်"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"စာမျက်နှာ ၁၆KB တွဲသုံးနိုင်သော Kernel နှင့် ပြန်လည်စတင်မလား။"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"သတိပေးချက်- အပလီကေးရှင်းအချို့ကို ဤမုဒ်နှင့် တွဲသုံး၍မရနိုင်ပါ။ အတည်ပြုပြီးနောက် စက်ပစ္စည်းကို ပြန်လည်စတင်ပါမည်။"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"စာမျက်နှာ ၄KB တွဲသုံးနိုင်သော Kernel နှင့် ပြန်လည်စတင်မလား။"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"အတည်ပြုပြီးနောက် စက်ပစ္စည်းကို ပြန်လည်စတင်ပါမည်။"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Kernel ကို စာမျက်နှာ ၁၆KB တွဲသုံးနိုင်သော Kernel အဖြစ် အပ်ဒိတ်လုပ်၍မရပါ။"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ပြောင်းလဲမှု ထည့်သွင်းခြင်း"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ချွတ်ယွင်းချက်အစီရင်ခံစာ စီမံသူ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"သင့်စက်တွင် မည်သည့်အက်ပ်က ချွတ်ယွင်းမှုအစီရင်ခံစာ ဖြတ်လမ်းလင့်ခ်အား ကိုင်တွယ်မည်ဆိုသည်ကို ဆုံးဖြတ်သည်။"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ကိုယ်ပိုင်"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"‘အမြန် ဆက်တင်များ’ တွင် အမြန်ပြန်ဖွင့်ရန်အတွက် မီဒီယာ ပလေယာကို ဆက်ဖွင့်ထားရန်"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"လော့ခ်မျက်နှာပြင်တွင် မီဒီယာပြရန်"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"လော့ခ်မျက်နှာပြင်တွင် အမြန်ပြန်ဖွင့်ရန်အတွက် မီဒီယာ ပလေယာကို ဆက်ဖွင့်ထားရန်"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"မီဒီယာ အကြံပြုချက်များ ပြရန်"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant မီဒီယာအကြံပြုချက်များ ပြပါ"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"သင်၏လုပ်ဆောင်ချက်ပေါ် အခြေခံထားသည်"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ပလေယာကို ဖျောက်ထားမည်"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ပလေယာကို ပြရန်"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ဆင်းမ်ကတ်"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"အသုံးပြုနေသည်"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"အသုံးမပြုပါ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> အတွက် မူရင်း"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ခေါ်ဆိုမှုများ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS စာတိုစနစ်"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"တွဲသုံးနိုင်သောမီဒီယာမှ အသံသည် ပို၍နှစ်သက်ဖွယ်ကောင်းသည်"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ဦးခေါင်းလှုပ်ရှားမှု စောင့်ကြည့်ခြင်း"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ပိုမိုသဘာဝဆန်စေရန် ဦးခေါင်းလှုပ်ရှားမှုအလိုက် အသံပြောင်းလဲသည်"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"စင့်ခ်လုပ်ခြင်း ခွင့်ပြုချက်များ"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> တွင် သင်ခွင့်ပြုထားသည့် တူညီသော အက်ပ်ခွင့်ပြုချက်များကို <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> အား ပေးနိုင်သည်"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ဖုန်းမှ ခွင့်ပြုချက်များ စင့်ခ်လုပ်ရန်"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"သင့်နာရီကို ဤဖုန်းတွင် သင်ခွင့်ပြုထားသည့် တူညီသောအက်ပ်ခွင့်ပြုချက်များ ပေးရန်"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"အသံစက်ပစ္စည်း အမျိုးအစား"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"မသိ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"စပီကာ"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"အသင့်အတင့်"</string>
     <string name="contrast_high" msgid="3988567609694797696">"များ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ဤအက်ပ်ကို ဝင်းဒိုး ၁ ခုတွင်သာ ဖွင့်နိုင်သည်"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ဖွင့်"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ပိတ်"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ပိတ်"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ပိတ်"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ဖွင့်"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ပိတ်"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ဖွင့်"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ပိတ်"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ဖန်သားပြင်ကို အလင်းမှ အမှောင်နှင့် အမှောင်မှ အလင်း ပြောင်းနိုင်သည်"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"စခရင်ပေါ်တွင် ဇူးမ်ဆွဲရန်"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ပိတ်"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ပိတ်"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ဖွင့်"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ပိတ်"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ဖွင့်"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"စကားဝှက်ကို ယခု သတ်မှတ်ပြီးပြီ"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 8e35bb7..a034cce 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 74c6483..7aaa808 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Du er nå utvikler!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Det trengs ikke, du er allerede utvikler."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Slå på utvikleralternativer først."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Bare administratorbrukerne kan bruke utviklerinnstillinger."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Fungerer som normalt"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ute av drift"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Den ytre skjermen slås på når du legger sammen enheten"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Bare spill, videoer med mer"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Den ytre skjermen slås på for apper som hindrer skjermen fra å bli inaktiv"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Sveip opp for å fortsette"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Legg sammen telefonen, og sveip opp på den ytre skjermen for å fortsette å bruke appen – eller vent i noen sekunder til skjermen låses"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Aldri"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Den ytre skjermen låses når du legger sammen enheten"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Bruk automatisk rotasjon"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relaterte"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringelyd og alarmer"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Lyd i samtaler"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Medier"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Varsler og andre systemlyder"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Medie- og systemlyder"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Varsler"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Som standard blir lydutgangen valgt av enkeltapper"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Bluetooth-enhet uten navn"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Søker"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth er på"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Se alle"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Se alle"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pekepenn"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Trykk på bakre knapp"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (jobbprofil)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i tekstfelt"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle knappetrykk 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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Koble til en LE-lydstrøm"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Lydstrømmer i nærheten"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Lydstrømmer"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Koble til en lydstrøm med en QR-kode"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Ingen lydstrømmer ble funnet i nærheten."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"For å velge et språk for hver app, gå til innstillingene for appspråk."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Finn ut mer om appspråk"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vil du bytte systemspråk til %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Vil du legge til %s i foretrukne språk?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Dette forteller apper og nettsteder at du også foretrekker dette språket."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Enhets- og regionsinnstillingene endres."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Endre"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s er ikke tilgjengelig"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"lørdag"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Apper som ikke støtter regionsinnstillinger, bruker sine egne standardinnstillinger for lokalitet."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Finn ut mer om språkinnstillinger."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Flere innstillinger"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Omtalebegrep"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Angi hvordan du vil bli omtalt"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apper kan bruke omtalebegrepene til å tilpasse hvordan de omtaler deg."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ikke angitt"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulin"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Nøytral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vil du fjerne det valgte språket?}other{Vil du fjerne de valgte språkene?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Da vises tekst på et annet språk."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Du kan ikke fjerne alle språkene"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Posisjon"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Bruk posisjon"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Av"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{På – # app har tilgang til posisjon}other{På – # apper har tilgang til posisjon}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{På / # app har tilgang til posisjon}other{På / # apper har tilgang til posisjon}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laster inn …"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apper med tillatelsen for enheter i nærheten kan fastslå den relative posisjonen til tilkoblede enheter."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Posisjonstilgang er av for apper og tjenester. Enhetsposisjonen kan fremdeles sendes til utrykningspersonell når du ringer eller sender tekstmelding til et nødnummer."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Finn ut mer om posisjonsinnstillinger"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Finn ut mer om posisjonsinnstillinger"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Endre posisjonstilgang i Innstillinger &gt; Sikkerhet og personvern &gt; Personverninnstillinger"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Du får best resultater ved å bruke en skjermbeskytter som er Made For Google-sertifisert. Fingeravtrykket til barnet ditt fungerer muligens ikke med andre skjermbeskyttere."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Klokkelås"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Når du konfigurerer ansiktslås og opplåsing med fingeravtrykk, blir du bedt om å bruke fingeravtrykk når du har på deg munnbind eller er i områder med lite lys.\n\nDu kan låse opp enheten med klokken når ansiktet eller fingeravtrykket ditt ikke gjenkjennes."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Du kan låse opp enheten med klokken når fingeravtrykket ditt ikke gjenkjennes."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Du kan låse opp enheten med klokken når ansiktet ditt ikke gjenkjennes."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Når du konfigurerer ansiktslås og opplåsing med fingeravtrykk, blir du bedt om å bruke fingeravtrykk på telefonen når du har på deg munnbind eller er i områder med lite lys.\n\nKlokkelåsen er en annen praktisk løsning for å låse opp telefonen – for eksempel når du har våte fingre eller ansiktet ditt ikke gjenkjennes"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Klokkelåsen er en annen praktisk løsning for å låse opp telefonen – for eksempel når fingeravtrykket ditt ikke gjenkjennes."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Klokkelåsen er en annen praktisk løsning for å låse opp telefonen – for eksempel når ansiktet ditt ikke gjenkjennes."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Bruk fingeravtrykk eller klokke til å"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Bruk ansikt eller klokke til å"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Bruk ansikt, fingeravtrykk eller klokke til å"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansiktet og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansiktet, fingeravtrykket og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansiktet, fingeravtrykkene og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Opplåsing med Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Klokken er lagt til"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurer klokken"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Klokkelåsen er en annen praktisk løsning for å låse opp denne telefonen – for eksempel når du har våte fingre eller ansiktet ditt ikke gjenkjennes.\n\nDu kan låse opp telefonen med klokken når du"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ikke nå"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Fortsett"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mer"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Slik fungerer det"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Klokken må være låst opp, på håndleddet ditt og innenfor rekkevidde for denne telefonen. Du trenger ikke å låse opp klokken igjen så lenge du har den på håndleddet."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Når denne telefonen låses opp, varsles du på klokken. Hvis telefonen låses opp ved et uhell, kan du trykke på varselet for å låse den igjen."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du har kontrollen"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kan fjerne klokken fra klokkelåsen når som helst i innstillingene"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"trykker på et varsel"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"sveiper opp på låseskjermen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Velg klokken din"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tilgjengelige klokker"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Avbryt"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bekreft"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Det var det!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Nå kan du låse opp denne telefonen med klokken når du sveiper opp på låseskjermen eller trykker på et varsel"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Ferdig"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Klokkelås"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kan låse opp denne telefonen med klokken når du sveiper opp på låseskjermen eller trykker på et varsel"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"For å bruke klokkelåsen må klokken være låst opp, på håndleddet ditt, innenfor rekkevidde og koblet til denne telefonen. Hvis tilkoblingen blir brutt, må du låse opp telefonen før du kan bruke klokkelåsen.\n\nHusk:\nDu kan bare ha én klokke konfigurert om gangen. Du må fjerne den aktive klokken før du kan legge til en ny."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Finn ut mer om klokkelåsen"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Legg til en klokke"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjern klokken"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Opplåsing med fingeravtrykk og ansiktslås"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansiktslås og opplåsing med fingeravtrykk for jobb"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfigurering kreves"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Sikkerhet"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Personvern"</string>
     <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="2274405892301976238">"Hold private apper låst og skjult"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Hold private apper i et eget område du kan skjule eller låse"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Private Space-lås"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Bruk skjermlåsen for enheten"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Opplåsing med ansikt og fingeravtrykk"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Opplåsing med fingeravtrykk"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Ansiktslås"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Trykk for å konfigurere"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Opplåsing med fingeravtrykk for det private området"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Ansiktslås for det private området"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Måter å låse opp på"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Den samme som skjermlåsen for enheten"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Vil du velge en ny lås for Private Space?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lås automatisk"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lås privat område automatisk"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Du kan låse det private området ditt automatisk hvis du ikke har brukt enheten i et tidsrom."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Hver gang enheten låses"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Etter 5 minutter uten aktivitet"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Aldri"</string>
+    <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_delete_title" msgid="3075645119800272800">"Slett 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="private_space_unlocked" msgid="9091600948712932046">"Det private området er låst opp"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Konfigurer en skjermlås"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"For å bruke det private området, 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="private_space_cancel_label" msgid="379259667396956886">"Avbryt"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Konfigurer"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Konfigurer et privat område"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Hold private apper i et eget område du kan skjule eller låse"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Slik fungerer det"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Du kan gå til det private området fra bunnen av applisten"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apper i det private området er beskyttet med en lås"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Varsler fra apper i det private området er skjult når det er låst"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apper i det private området vises ikke i tillatelseskontrollen, personvernoversikten eller i andre innstillinger når det private området er låst.\n\nDet private området kan ikke flyttes til andre enheter. Hvis du vil bruke det private området på en annen enhet, må du konfigurere et nytt.\n\nHvis noen kobler enheten din til en datamaskin eller installerer skadelige apper på enheten, kan de kanskje åpne det private området ditt."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Konfigurerer det private området …"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Varsler fra apper i det private området er skjult når det er låst"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Lås opp det private området for å dele bilder eller filer fra apper i det private området"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Noen apper er installert i det private området allerede"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Kunne ikke konfigurere det private området"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Prøv på nytt"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Vil du låse opp det private området med skjermlås?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Du kan låse opp det private området på samme måte som enheten, eller du kan velge en annen lås"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Bruk skjermlåsen"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Velg en ny lås"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Alt er klart!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"For å åpne det private området, gå til applisten og rull nedover"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Ferdig"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Rull ned for å finne det private området"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Velg en lås for det private området"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Du kan låse opp det private området med fingeravtrykket. Av sikkerhetsgrunner krever dette alternativet en reservelås."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Angi en PIN-kode for det private området"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Angi et passord for det private området"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Angi et mønster for det private området"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Slik viser du Private Space (ikke endelig brukeropplevelse)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Åpne Innstillinger-appen"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Trykk på Sikkerhet og personvern &gt; Private Space &gt; Skjul Private Space når låst"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Slå av bryteren for Skjul Private Space når låst"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Merknad til Googlere: Utviklingen av denne funksjonen pågår fortsatt"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Det er mulig at du må oppgi dette passordet også på den andre enheten."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bekreft for å koble til det koordinerte settet"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Gi tilgang til kontakter og anropslogg"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Gi også tilgang til kontakter og anropsloggen"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informasjonen brukes for anropskunngjøringer med mer"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Kunne ikke koble til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tilgjengelige enheter"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"I flymodus"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Varsle om offentlige nettverk"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Varsle når et offentlig nettverk av høy kvalitet er tilgjengelig"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Tillat WEP-nettverk"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP er en eldre sikkerhetsprotokoll som er mindre sikker"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operatøren din tillater ikke WEP-nettverk fordi de er mindre sikre"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Slå på wifi automatisk"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wifi slås på igjen i nærheten av lagrede nettverk av høy kvalitet, for eksempel hjemmenettverket ditt"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Utilgjengelig fordi Posisjon er slått av. Slå på "<annotation id="link">"Posisjon"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Med wifi-skanning kan apper og tjenester søke etter enheter i nærheten når som helst, selv når Wifi er slått av. Dette kan for eksempel brukes til å forbedre posisjonsbaserte funksjoner og tjenester."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Slå på"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wifi-skanning er slått på"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Dette nettverket bruker en eldre sikkerhetsprotokoll som er mindre sikker"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> er blokkert"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Dette nettverket bruker en eldre sikkerhetsprotokoll som heter WEP, og som er mindre sikker. Hvis du vil koble til likevel, kan du tillate WEP-nettverk."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operatøren din tillater ikke at du kobler til dette nettverket, fordi det bruker en eldre sikkerhetsprotokoll som er mindre sikker"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Tillat WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Lukk"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Avanserte alternativer"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Rullegardinliste med avanserte alternativer"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"vis"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Bli værende på Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ikke vis igjen"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Koble til"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi er slått på"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Koblet til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Kobler til <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Kobler til …"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Kan ikke koble til nettverket"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Nettverket er ikke innen rekkevidde"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Glem"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Endre"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Kunne ikke slette nettverket"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Lagre"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Kunne ikke lagre nettverket"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Avbryt"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wifi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobildata"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – lader"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – lader"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Tilkobling til wifi-sone"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Tilkoblingsstyrke"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Lagrede nettverk"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Ingen passord er angitt"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Navn på wifi-sone"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Passord for wifi-sone"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-bånd"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Slå av wifi-sone automatisk"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Når ingen enheter er tilkoblet"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Utvid kompatibilitet"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Vis hvitbalanse"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Slå av standard bildefrekvens"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Slå av begrensningen for den maksimale bildefrekvensen for spill på <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Skjermoppmerksomhet bruker frontkameraet til å se om noen ser på skjermen. Funksjonen utføres på enheten, og bilder blir aldri lagret eller sendt til Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Slå på skjermoppmerksomhet"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Hold skjermen på når du ser på den"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Lengre tid før automatisk skjermlås fører til høyere batteriforbruk."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera er låst"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera må låses opp for ansiktsgjenkjenning"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameraet må låses opp for skjermoppmerksomhet"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM-kortspor <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM-kortspor <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primær)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"For å se, velg lagret nettverk"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-versjon"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Batterinivå"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Felles"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Fellesinnstillinger"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Lagre"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Avbryt"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Navnefeltet kan ikke være tomt."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN kan ikke være tomt."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-feltet må bestå av tre siffer."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-feltet må bestå av to eller tre siffer."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operatøren tillater ikke å legge til APN-er av typen %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-feltet må være gyldig."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Gjenoppretter standard APN-innstillinger."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Tilbakestill til standardvalg"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Tilbakestilling av standard APN-innstillinger er fullført."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Tilbakestill"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth og wifi er tilbakestilt"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Slett eSIM-kort"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Dette fører ikke til at du sier opp noen mobilabonnementer. Kontakt operatøren din for å laste ned erstatnings-SIM-kort."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Tilbakestill innstillingene"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Vil du tilbakestille alle nettverksinnstillingene? Denne handlingen kan ikke angres."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vil du tilbakestille alle nettverksinnstillinger og slette eSIM-kortene? Denne handlingen kan ikke angres."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Vil du tilbakestille?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Tilbakestilling av nettverket er ikke tilgjengelig for denne brukeren"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Nettverksinnstillingene er tilbakestilt"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Kan ikke slette SIM-kort"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-kort kan ikke slettes, på grunn av en feil.\n\nStart enheten på nytt og prøv igjen."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Slett alle data (tilbakestill til fabrikkstandard)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Slett alle data (tilbakestill)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"musikk"</li>\n<li>"bilder"</li>\n<li>"andre brukerdata"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-kort"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Dette sier ikke opp mobilabonnementet ditt."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Alle personopplysningene dine og appene du har lastet ned, blir slettet. Denne handlingen kan ikke angres."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Alle personopplysningene dine, inkludert nedlastede apper og SIM-kort, blir slettet. Denne handlingen kan ikke angres."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vil du slette alle dataene?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Tilbakestilling til fabrikkstandard er ikke tilgjengelig for denne brukeren"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Tømmer"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Wifi-sone, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Deler ikke internett med andre enheter"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Av"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Internettdeling"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ikke bruk wifi-sone"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Bare del internett via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Bare del internett via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Bare del internett via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Bare del internett via USB og Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Bare del internett via USB og Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Bare del internett via Bluetooth og Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Bare del internett via USB, Bluetooth og Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-internettdeling"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-internettdeling"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-internettdeling"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Bruk wifi-sone og internettdeling for å gi andre enheter tilgang til internett via mobildataforbindelsen din. Apper kan også opprette en wifi-sone for å dele innhold med enheter i nærheten."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hjelp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilnettverk"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilabonnement"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS-app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vil du bytte SMS-app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vil du bruke <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> for SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vil du endre wifi-assistent?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Vil du bruke <xliff:g id="NEW_APP">%1$s</xliff:g> i stedet for <xliff:g id="CURRENT_APP">%2$s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Vil du bruke <xliff:g id="NEW_APP">%s</xliff:g> til å administrere nettverkstilkoblingene?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Ukjent SIM-operatør"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> mangler kjent nettsted for identitetshåndtering"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sett inn SIM-kortet og start enheten på nytt"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Koble deg til Internett"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nylige posisjonsforespørsler"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Sted for jobbprofil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Apper med posisjonstillatelse"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Fjern tilgang"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontroller"</string>
     <string name="force_stop" msgid="2681771622136916280">"Tving avslutning"</string>
+    <string name="archive" msgid="9074663845068632127">"Arkivér"</string>
+    <string name="restore" msgid="7622486640713967157">"Gjenopprett"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Totalt"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Appstørrelse"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB-lagring for app"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Kunne ikke beregne pakkestørrelsen."</string>
     <string name="version_text" msgid="7628938665256107608">"versjon <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Flytt"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Kunne ikke arkivere"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arkiverte <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Gjenopprettingen mislyktes"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Gjenoppretter <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"En annen overføring pågår allerede."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ikke nok lagringsplass."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Appen eksisterer ikke."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tilgjengelig skjermtastatur"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Administrer skjermtastaturer"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Alternativer"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Tilgjengelighet"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
     <string name="show_ime" msgid="4334255501724746849">"Bruk skjermtastaturet"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Ha det på skjermen når det fysiske tastaturet er aktivt"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Filtertaster"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Slå på filtertaster for tilgjengelighet med fysisk tastatur"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Trege taster"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Slå på trege taster for tilgjengelighet med fysisk tastatur"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Hurtigtaster"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Vis listen over hurtigtaster"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatur og verktøy i jobbprofilen"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sorter etter brukstid"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sorter etter sist brukt"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sorter etter appnavn"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Sist brukt"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Sist brukt"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"aldri"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Brukstid"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Tilgjengelighet"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Tilgjengelighetsinnstillinger"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsett likevel"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Avbryt"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Innstillinger for forstørring"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Forstørr med trippeltrykk"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Forstørr med snarvei"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Forstørr med snarvei og trippeltrykk"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Dobbelttrykk 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="860548190334486449">"For å starte og stoppe forstørring, dobbelttrykk 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"For å bruke en tilgjengelighetsfunksjon, 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_button" msgid="2031773187678948436">"Greit"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Innstillinger for knappen"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Knappeinnstillinger"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g>-snarvei"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Tilgjengelighet-knapp"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Tilgjengelighetsbevegelse"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dobbelttrykk på skjermen med to fingre"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dobbelttrykk på skjermen med to fingre"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Trykk raskt på skjermen {0,number,integer} ganger med to fingre"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trippeltrykk på skjermen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Finn ut mer om Tilgjengelighet-knappen og -bevegelsen"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Bruk av Tilgjengelighet-knappen. Bevegelsen er ikke tilgjengelig med navigasjon med tre knapper."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Rask tilgang til tilgjengelighetsfunksjoner"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Slik kommer du i gang"</b>\n"1. Gå til tilgjengelighetsinnstillingene.\n2. Velg en funksjon og trykk på snarveien.\n3. Velg om du vil bruke en knapp eller bevegelse for å åpne funksjonen."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Slik kommer du i gang"</b>\n"1. Gå til tilgjengelighetsinnstillingene.\n2. Velg en funksjon og trykk på snarveien.\n3. Velg knappen du vil bruke for å åpne funksjonen."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Slik kommer du i gang&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gå til tilgjengelighetsinnstillinger.&lt;br/&gt; {1,number,integer}. Velg en funksjon og trykk på snarveien.&lt;br/&gt; {2,number,integer}. Velg om du vil bruke en knapp eller bevegelse for å bruke funksjonen.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Slik kommer du i gang&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Gå til tilgjengelighetsinnstillinger.&lt;br/&gt; {1,number,integer}. Velg en funksjon og trykk på snarveien.&lt;br/&gt; {2,number,integer}. Velg knappen du vil bruke for funksjonen.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Bruk knapp eller bevegelse"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Posisjon"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Størrelse"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Legg på med av/på-knappen"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Stor musepeker"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Gjør musepekeren mer synlig"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Gjør alle apper mørke"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Gjelder for apper uten eget mørkt tema. Noen apper kan ha visningsproblemer – som inverterte farger."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Fjern animasjoner"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduser bevegelse på skjermen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monolyd"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan spore kommunikasjonen din med en app eller maskinvaresensor og kommunisere med apper på dine vegne."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillat"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Avvis"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stopp"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Avbryt"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Vil du stoppe <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Hvis du trykker på <xliff:g id="STOP">%1$s</xliff:g>, stoppes <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Slå av"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"La være på"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vil du slå av <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ingen tjenester er installert"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ingen tjeneste er valgt"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Beskrivelse ble ikke oppgitt."</string>
     <string name="settings_button" msgid="2195468788019730377">"Innstillinger"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"lyssensitivitet, fotofobi, mørkt tema, migrene, hodepine, lesemodus, nattmodus, reduser lysstyrke, hvitpunkt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Brukervennlighet, enkel tilgang, assistanse, assisterende"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"syn, hørsel, blind, døv, motorikk, førlighet, assisterende, assistanse, brukervennlighet, tilgjengelighet, hånd, hjelp"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Vindusforstørrer, zoom, forstørring, nedsatt synsevne, forstørr, gjør større"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Teksting, teksting for hørselshemmede, CC, Transkribering, hørselshemmet, hørselstap, CART, tale til tekst, undertekst"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"fargekontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mus"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"høreapparater, hørselshemmet, hørselstap, cochlea-implantater, enheter for lydforsterkning, lydbehandlere"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorikk, mus, ekstern mus, hodemus, adaptiv mus, rullestol, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"høreapparater, hørselshemmet, hørselstap, cochlea-implantater, enheter for lydforsterkning, lydbehandlere, nødsentral"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hørselshemmet, hørselstap, teksting, fjernskriver, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre knapper"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"førlighet, motorikk, eldre, artritt, musesyke, slag, risting, multippel sklerose, cerebral parese, skjelving, hånd"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"forsinkelse, førlighet, eldre"</string>
     <string name="print_settings" msgid="8519810615863882491">"Utskrift"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Av"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 utskriftstjeneste er på}other{# utskriftstjenester er på}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Se appene med høyest batteribruk"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Ladingen er optimalisert for å beskytte batteriet"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"For å forlenge batteriets levetid er ladingen optimalisert"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Ladingen er optimalisert for å beskytte batteriet"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"For å forlenge brukstiden for batteriet er ladingen optimalisert i dokken"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Ladingen er optimalisert for å beskytte batteriet"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"For å forlenge batteriets brukstid optimaliseres ladingen i dokken"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Lader batteriet helt opp"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"For å beskytte batteriet optimaliseres ladingen neste gang nettbrettet er i dokken"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Finn ut mer om lading satt på pause"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Gjenoppta ladingen"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inkluderer bakgrunnsaktivitet med høyt strømforbruk"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Fjern"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Avbryt"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Lad til batteriet er fullt"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem med ladetilbehøret"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Finn ut mer om inkompatibel lading"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Batteristyring"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Administrer apper automatisk"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"nå"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Diagram over batteribruk"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagram over batteribruk per dag"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagram over batteribruk per time"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Batterinivåprosent fra <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> til <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Batteribruk siden sist batteriet var fulladet"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Batteribruk for <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Skjermtid siden sist batteriet var fulladet"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Ringesignal for nødssituasjoner"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Velg oppførsel når en nødsamtale opprettes"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sikkerhetskopiering"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"På"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Av"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sikkerhetskopier og gjenopprett"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personlige data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sikkerhetskopiér data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Navn"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Tjeneradresse"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-kryptering (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-passord"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-identifikator"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Forhåndsdelt nøkkel for IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Brukersertifikat for IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-sertifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Tjenersertifikat for IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Vis avanserte alternativer"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-søkedomener"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-tjenere (f.eks. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Ruter for videresending (f.eks. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Brukernavn"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Passord"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Lagre kontoinformasjon"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ikke brukt)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ikke bekreft tjener)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(mottatt fra tjeneren)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Denne VPN-typen kan ikke være tilkoblet hele tiden"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Alltid på-VPN støtter bare numeriske tjeneradresser"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"En DNS-tjener må spesifiseres for alltid på-VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS-tjeneradressen må være numerisk for alltid på-VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Informasjonen som er angitt, støtter ikke alltid-på-VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Avbryt"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Fjern"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokkér tilkoblinger uten VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vil du kreve VPN-tilkobling?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ikke sikker. Oppdater til IKEv2-VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Kunne ikke starte et VPN som ikke støttes."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Velg en VPN-profil du vil forbli tilkoblet til. Nettverkstrafikk blir bare tillatt når du er tilkoblet denne VPN-en."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ingen"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Alltid på-VPN krever en IP-adresse for både tjener og DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER Alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Motta nyhetsbrev om barnebortføringer"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Gjenta"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktiver anropsbehandling"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Tillat denne tjenesten å styre hvilken anropsmåte som brukes."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Anropsbehandling"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Trådløse nødvarsler"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Nettverksoperatører"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Navn på tilgangspunkt"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"betal, trykk på, betalinger"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sikkerhetskopi, sikkerhetskopiér"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"bevegelse"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ansikt, lås opp, autentisering, pålogging"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ansikt, lås opp, autentisering, pålogging, fingeravtrykk, biometri"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-versjon, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Lyder ved oppstart"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Direkteteksting"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatisk medieteksting"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefonhøyttalere"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Nettbretthøyttalere"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Enhetshøyttalere"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Hodetelefoner med ledning"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Lyd fra kompatible medier blir mer omsluttende"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Av"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Hva vil du vise på låseskjermen?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nylige samtaler er fjernet"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Samtalen er fjernet"</string>
     <string name="clear" msgid="5092178335409471100">"Fjern"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Fjern <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioriterte og endrede samtaler vises her"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Når du merker samtaler som prioritert eller endrer samtaler på andre måter, vises de her. \n\nSlik endrer du samtaleinnstillinger: \nSveip ned fra toppen av skjermen for å åpne nedtrekkspanelet, og trykk og hold på en samtale."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimer"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Av"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Festing av apper"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Med festing av apper kan du holde den aktive appen synlig til du løsner den. Denne funksjonen kan for eksempel brukes til å la en venn du stoler på, spille et bestemt spill."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Når en app er festet, kan den åpne andre apper, og personlige data kan være tilgjengelige. \n\nSlik bruker du festing av apper: 	\n1. Slå på festing av apper. 	\n2. Åpne Oversikt. 	\n3. Trykk på appikonet øverst på skjermen, og trykk på Fest."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Når en app er festet, kan den åpne andre apper, og personlige data kan være tilgjengelige. \n\nBruk en gjestebruker i stedet hvis du vil dele enheten med noen på en sikker måte. \n\nSlik bruker du festing av apper: 	\n1. Slå på festing av apper. 	\n2. Åpne Oversikt. 	\n3. Trykk på appikonet øverst på skjermen, og trykk på Fest."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Når en app er festet, kan den åpne andre apper, og personlige data kan være tilgjengelige. \n\nSlik bruker du festing av apper: 	\n{0,number,integer}. Slå på festing av apper. 	\n{1,number,integer}. Åpne Oversikt. 	\n{2,number,integer}. Trykk på appikonet øverst på skjermen, og trykk på Fest."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Når en app er festet, kan den åpne andre apper, og personlige data kan være tilgjengelige. \n\nBruk en gjestebruker i stedet hvis du vil dele enheten med noen på en sikker måte. \n\nSlik bruker du festing av apper: 	\n{0,number,integer}. Slå på festing av apper. 	\n{1,number,integer}. Åpne Oversikt. 	\n{2,number,integer}. Trykk på appikonet øverst på skjermen, og trykk på Fest."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Når en app er festet \n\n•		kan personlige data være tilgjengelige \n		(f.eks. kontakter og e-postinnhold) \n•		kan den åpne andre apper \n\nBare bruk festing av apper med personer du stoler på."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Krev opplåsingsmønster for å løsne apper"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Krev PIN-kode for å løsne app"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Innstillinger for ubrukte apper"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Sett appaktivitet på pause hvis ubrukt"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Fjern tillatelser, slett midlertidige filer, og stopp varsler"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Administrer appen hvis den ikke brukes"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Fjern tillatelser, slett midlertidige filer, stopp varsler, og arkiver appen"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Alle apper"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installerte apper"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant-apper"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Ledig"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Minne brukt av apper"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app har brukt minne i løpet av siste {time}}other{# apper har brukt minne i løpet av siste {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Aktiver profilering av minnebruk"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilering av minnebruk krever flere systemressurser."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Minneprofilering er deaktivert"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekvens"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maks. bruk"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Ingen data er brukt"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Vis over andre apper"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Kan vises over andre apper"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Tillat at denne appen vises over andre apper du bruker. Denne appen kan se hvor du trykker, eller endre det som vises på skjermen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Bytt medieutgang"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"La apper bytte medieutgang"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"La denne appen velge hvilken tilkoblet enhet som skal spille lyd eller video fra andre apper. Hvis dette er tillatt, kan appen åpne en liste over tilgjengelige enheter, for eksempel hodetelefoner og høyttalere og velge hvilken utdataenhet som brukes til å strømme eller caste lyd eller video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Tilgang til alle filer"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Forbedre stemmeaktiveringen"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Denne enheten bruker privat intelligens til å forbedre modellen for stemmeaktivering. Apper kan motta oppsummerte oppdateringer som er aggregert fra flere brukere. Dette gjøres for å forbedre modellen for alle samtidig som personvernet ivaretas.\n\n"<a href="">"Mer om privat intelligens"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Advarsel for databruk: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> datagrense"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advarsel for databruk: <xliff:g id="ID_1">^1</xliff:g> brukt, <xliff:g id="ID_2">^2</xliff:g> datagrense"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operatørens måling av databruk samsvarer ikke nødvendigvis med enhetens måling."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Inkluderer ikke data brukt av operatørnettverk"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> er brukt"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Angi varsel om databruk"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Oppdatert for <xliff:g id="ID_1">^2</xliff:g> siden"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Oppdatert av <xliff:g id="ID_1">^1</xliff:g> nå nettopp"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Oppdatert nå nettopp"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Se abonnement"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Se detaljer"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Datasparing"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Ubegrenset datatilgang"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Unormal batteribruk"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Hurtiginnstillingsruter for utviklere"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Slå av tidsavbrudd for adb-autorisasjon"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Slå av automatisk opphevelse av adb-autorisasjoner for systemer som ikke har koblet til igjen innen standardtiden (7 dager) eller den brukerkonfigurerte tiden (minimum 1 dag)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-spor"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensorene er av"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Innstillinger for jobbprofilen"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Søk etter kontakter i jobbkatalogen i personlige apper"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Autofylltjeneste"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Standard autofylltjeneste"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Passord"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passord, passnøkler og datatjenester"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <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, passnøkkel, passord"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fyll, autofyll, data, passnøkkel, passord"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Passord, passnøkler og datatjenester"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Vil du slå av alle tjenester?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Passord, passnøkler og annen lagret informasjon kommer ikke til å være tilgjengelig for autofyll når du logger på"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Bytt foretrukket tjeneste til &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 lagres nye passord, passnøkler og annen informasjon 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_enable_confirmation_message_title" msgid="1037501792652277829">"Vil du bruke %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Du kan bare ha 5 tjenester på"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Du må slå av minst 1 tjeneste for å legge til en annen"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s bruker det som er på skjermen din, for å avgjøre hva som kan autofylles."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Grense for passord, passnøkler og datatjenester"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Du kan ha opptil 5 passord, passnøkler og datatjenester aktive samtidig. Slå av en tjeneste for å legge til flere."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Grense for passord, passnøkler og datatjenester"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Du kan ha opptil 5 passord, passnøkler og datatjenester aktive samtidig. Slå av en tjeneste for å legge til flere."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Slå av"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autofyll"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Loggføringsnivå"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Endringer av appkompatibilitet kan bare modifiseres for feilsøkbare apper. Installer en feilsøkbar app og prøv igjen."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Er avhengig av en annen innstilling"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konto"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d kontoer"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Enhetsnavn"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Grunnleggende info"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Juridisk og regelverk"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Tillat at denne appen åpnes når det skannes NFC-brikker.\nHvis denne tillatelsen er på, er appen tilgjengelig som et alternativ hver gang det registreres en brikke."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Spill av på"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Spill av <xliff:g id="LABEL">%s</xliff:g> på"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Lyden spilles av på"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Denne enheten"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Utilgjengelig under samtaler"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Svar på anropet med"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Ignorer"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"For å slå på dette, endre først «Trykk og hold på av/på-knappen» til av/på-menyen."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Nettverksdetaljer"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Enhetsnavnet ditt er synlig for apper på telefonen. 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="devices_title" msgid="649715719278562515">"Enheter"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Velg nettverk"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Frakoblet"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Navn"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Farge (brukes av kompatible apper)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Lagre"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Bruk SIM-kort"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Bruk dette SIM-kortet"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Av"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Fjern dette SIM-kortet for å deaktivere det"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Trykk for å aktivere <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Slett SIM-kort"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Foretrukket nettverkstype"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Bytt nettverksmodus"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Foretrukket nettverkstype"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Sjekk med nettverksleverandøren din for priser."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Databruk av apper"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ugyldig nettverksmodus (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Ignorer."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Navn på tilgangspunkt"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Utilgjengelig når du er koblet til <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vil du bytte til <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vil du bytte til å bruke SIM-kort?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Vil du bruke <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Bare ett SIM-kort kan være aktivt om gangen.\n\nSelv om du bytter til <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, blir ikke <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-abonnementet ditt sagt opp."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Bare 1 eSIM-kort kan være aktivt om gangen.\n\nSelv om du bytter til <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, blir ikke <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>-abonnementet ditt sagt opp."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Bare ett SIM-kort kan være aktivt om gangen.\n\nSelv om du bytter, blir ikke <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>-abonnementet ditt sagt opp."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Du kan bruke to SIM-kort samtidig. For å bruke <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, slå av et annet SIM-kort."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Bytt til <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Slå av <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nei takk"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Avbryt"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Bytt"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Slå av"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kan ikke aktivere SIM-kortet"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prøv å slå på SIM-kortet igjen. Start enheten på nytt hvis problemet vedvarer."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Konfigurer SIM-kortet"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Angi innstillingene for mobilnettverk for å bruke flere SIM-kort på denne enheten"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Sett etikett på SIM-kortene"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Du ser disse etikettene når du ringer, sender tekstmeldinger og bruker data, samt i innstillingene"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-kortetikett"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etikett"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Velg SIM-kortene du vil bruke"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Du kan bruke to SIM-kort samtidig"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Angi de primære SIM-kortene"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Velg hvilke SIM-kort som skal brukes som standard for anrop, tekstmeldinger og data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"De primære SIM-kortene"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Anrop"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Tekstmeldinger"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatisk databytte"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Bruk data fra hvilket som helst SIM-kort, avhengig av dekning og tilgjengelighet"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Bare data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Konfigurer"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Neste"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilnettverk"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonnummer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-kortetikett og -farge"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivering av nettverk"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operatørbytte"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> er aktiv"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"For å bruke mobildata, ringefunksjoner og SMS senere, gå til nettverksinnstillingene"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-kort"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vil du slette dette eSIM-kortet?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Hvis du sletter dette SIM-kortet, fjernes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-tjenesten fra denne enheten.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-tjenesten blir ikke sagt opp."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Slett"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Sletter SIM-kortet …"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Kan ikke slette SIM-kortet"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Dette SIM-kortet kan ikke slettes, på grunn av en feil.\n\nStart enheten på nytt og prøv igjen."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Koble til enheten"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Appen <xliff:g id="APPNAME">%1$s</xliff:g> vil bruke et midlertidig wifi-nettverk for å koble til enheten din"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Fant ingen enheter. Sørg for at enhetene er slått på og tilgjengelige for tilkobling."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Nødanrop"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Nødanrop via wifi-anrop støttes ikke av operatøren din.\nEnheten bytter automatisk til et mobilnettverk for å foreta et nødanrop.\nNødanrop er bare mulige i områder med mobildekning."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Bruk Wi‑Fi for anrop for å forbedre kvaliteten"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Reserve for anrop"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Hvis <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> er utilgjengelig eller roamer, bruker du SIM-kortet for mobildata for <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>-anrop."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"reserve for anrop"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Innkommende MMS-melding"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Kan ikke sende MMS-meldinger"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Trykk for å tillate MMS-meldinger på <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> når mobildata er av"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informasjon om jobbretningslinjene dine"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Innstillingene administreres av IT-administratoren din"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Start på nytt med 16k-sidestørrelse"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Start enheten på nytt med 16k-sidestørrelse-kjerne"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Vil du starte på nytt med kjerne som er kompatibel med 16 kB-sider?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"VARSEL: Noen apper er muligens ikke kompatible med denne modusen. Enheten starter på nytt etter bekreftelse."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Vil du starte på nytt med kjerne som er kompatibel med 4 kB-sider?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Enheten starter på nytt etter bekreftelse."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Kunne ikke oppdatere kjernen til en kjerne som er kompatibel med 16 kB-sider."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Tar i bruk endringen"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Feilrapporthåndtering"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Fastslår hvilken app som håndterer Feilrapport-snarveien på enheten din."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personlig"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"For å gjenoppta avspilling raskt holdes medieavspilleren åpen i hurtiginnstillingene"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Vis medier på låseskjermen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Medieavspilleren vises fortsatt på låseskjermen, slik at du kan gjenoppta avspillingen raskt"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Vis medieanbefalinger"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Vis medieanbefalinger fra assistenten"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Basert på aktiviteten din"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Skjul spilleren"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Vis spilleren"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM-kort"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-kort"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiv"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inaktiv"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Standard for <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"anrop"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Lyd fra kompatible enheter blir mer omsluttende"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Hodesporing"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Lyden endres når du beveger hodet, slik at den høres mer naturlig ut"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synkroniser tillatelser"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Gi <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> de samme apptillatelsene som du har gitt på <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synkroniser tillatelsene fra telefonen"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Gi de samme apptillatelsene til klokken som til telefonen"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type lydenhet"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ukjent"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Høyttaler"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Middels"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Høy"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Denne appen kan bare åpnes i ett vindu"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"På"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Av"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Av"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Av"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"På"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Av"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"På"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Av"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Gjør lyse skjermer mørke og mørke skjermer lyse"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom inn på skjermen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Av"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Av"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"På"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Av"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"På"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Nå er passordet konfigurert"</string>
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index c37cd09..9152bf5 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"१ मिनेटपछि"</item>
     <item msgid="1574040255478150028">"५ मिनेटपछि"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index a460a56..1527125 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"एड्मिन प्रयोगकर्ताहरू मात्र विकासकर्तासम्बन्धी सेटिङ एक्सेस गर्न सक्छन्।"</string>
     <string name="header_category_system" msgid="1665516346845259058">"सिस्टम"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"सेवामा"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"सेवा उपलब्ध छैन"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"जारी राख्न माथितिर स्वाइप गर्नुहोस्"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"एप चलाइराख्न आफ्नो फोनलाई फोल्ड गरी अगाडिको डिस्प्लेमा स्वाइप गर्नुहोस् वा स्क्रिन लक भइन्जेल केही बेर पर्खनुहोस्"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"सम्बन्धित"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"रिङटोन र अलार्महरू"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"कलमा सुनिने अडियो"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"मिडिया"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"सूचना र सिस्टमका अन्य साउन्ड"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"मिडिया र सिस्टमका आवाजहरू"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"सूचनाहरू"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"अडियो आउटपुट छुट्टाछुट्टै एपअनुसार स्वतः निर्धारण गरिन्छ"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"बेनामी ब्लुटुथ उपकरण"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"खोजी गर्दै"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ब्लुटुथ अन गरियो"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"सबै हेर्नुहोस्"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"तत्काल पेयर गर्न सकिने सबै डिभाइस हेर्नुहोस्"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"स्टाइलस"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"पुछारको बटन थिच्नुहोस्"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (कार्य प्रोफाइल)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE अडियो स्ट्रिममा कनेक्ट गर्नुहोस्"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"नजिकैका अडियो स्ट्रिमहरू"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"अडियो स्ट्रिमहरू"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR कोड प्रयोग गरी कुनै अडियो स्ट्रिममा कनेक्ट गर्नुहोस्"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"नजिकै कुनै पनि अडियो स्ट्रिम भेटिएन।"</string>
     <string name="date_and_time" msgid="1788358029823431692">"मिति र समय"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"प्रोक्सी"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"मेटाउनुहोस्"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"हरेक एपका हकमा बेग्लाबेग्लै भाषा चयन गर्न एपको भाषासम्बन्धी सेटिङमा जानुहोस्।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"एपका भाषाहरूका बारेमा थप जान्नुहोस्"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"सिस्टमको भाषा परिवर्तन गरी %s बनाउने हो?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s लाई रुचाइएको भाषामा राख्ने हो?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"यसो गर्नाले तपाईं यो भाषा रुचाउनुहुन्छ भन्ने कुरा एप र वेबसाइटहरूले थाहा पाउन सक्छन्।"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"तपाईंको डिभाइसका सेटिङ र क्षेत्रीय प्राथमिकताहरू परिवर्तन हुने छन्।"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"परिवर्तन गर्नुहोस्"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s उपलब्ध छैन"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"शनिवार"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"कुनै एपमा क्षेत्रीय प्राथमिकताहरू प्रयोग गर्न नमिलेका खण्डमा सो एपले आफ्ना स्थानिक भाषासम्बन्धी डिफल्ट सेटिङ प्रयोग गर्ने छ।"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"भाषासम्बन्धी प्राथमिकताका बारेमा थप जान्नुहोस्।"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"थप प्राथमिकताहरू"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"लैङ्गिक पहिचान"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"तपाईं आफूलाई कसरी सम्बोधन गरियोस् भन्ने चाहनुहुन्छ छनौट गर्नुहोस्"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"तपाईंलाई कसरी सम्बोधन गर्ने भन्ने कुरा थाहा पाउन एपहरूले तपाईंको लैङ्गिक पहिचानसम्बन्धी जानकारी प्रयोग गर्न सक्छन्।"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"नतोकिएको"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"स्त्रीलिङ्ग"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"पुलिङ्ग"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"तटस्थ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{चयन गरिएको भाषा हटाउने हो?}other{चयन गरिएका भाषा हटाउने हो?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"पाठ अर्को भाषामा प्रदर्शन हुनेछ।"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"सबै भाषाहरूलाई हटाउन सक्दैन"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"लोकेसन"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"लोकेसन प्रयोग गरियोस्"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"निष्क्रिय"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{अन छ - # वटा एपलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}other{अन छ - # वटा एपलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{अन छ / # वटा एपलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}other{अन छ / # वटा एपहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छ}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"लोड गर्दै…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"वरपर रहेका ब्लुटुथ चल्ने डिभाइसहरू खोज्ने अनुमति दिइएका एपहरूले कनेक्ट गरिएका डिभाइसहरूको सापेक्ष लोकेसन पत्ता लगाउन सक्छन्।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"एप तथा सेवाहरूलाई लोकेसन प्रयोग गर्ने अनुमति दिइएको छैन। तपाईंले कुनै आपत्‌कालीन नम्बरमा कल गर्दा वा टेक्स्ट म्यासेज पठाउँदा भने आपत्‌कालीन सेवा प्रदान गर्ने निकायलाई तपाईंको डिभाइसको लोकेसन पठाइन सक्छ।"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"लोकेसन सेटिङका बारेमा थप जान्नुहोस्।"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"लोकेसन सेटिङका बारेमा थप जान्नुहोस्"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"लोकेसन एक्सेस गर्ने सुविधा परिवर्तन गर्न \"सेटिङ\", \"सुरक्षा तथा गोपनीयता\" तथा \"गोपनीयतासम्बन्धी सेटिङ\" मा जानुहोस्"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"उत्कृष्ट परिणाम प्राप्त गर्न \"Google का लागि बनाइएको\" प्रमाणपत्र प्राप्त स्क्रिन प्रोटेक्टर प्रयोग गर्नुहोस्। तपाईंले अन्य स्क्रिन प्रोटेक्टरहरू हाल्नुभयो भने तपाईंको बच्चाको फिंगरप्रिन्टले काम नगर्न सक्छ।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"स्मार्ट वाच प्रयोग गरी अनलक गर्ने सुविधा"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"तपाईंले फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्नुभयो भने तपाईंले मास्क लगाएका बेला वा तपाईं कुनै अँध्यारो ठाउँमा हुँदा तपाईंको फोनले तपाईंलाई फिंगरप्रिन्ट प्रयोग गर्न लगाउने छ।\n\nफोनले तपाईंको अनुहार वा फिंगरप्रिन्ट पहिचान गर्न नसकेका खण्डमा तपाईं आफ्नो स्मार्ट वाच प्रयोग गरी अनलक गर्न सक्नुहुन्छ।"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"फोनले तपाईंको फिंगरप्रिन्ट पहिचान गर्न नसकेका खण्डमा तपाईं आफ्नो स्मार्ट वाच प्रयोग गरी अनलक गर्न सक्नुहुन्छ।"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"फोनले तपाईंको अनुहार पहिचान गर्न नसकेका खण्डमा तपाईं आफ्नो स्मार्ट वाच प्रयोग गरी अनलक गर्न सक्नुहुन्छ।"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"तपाईंले फेस अनलक र फिंगरप्रिन्ट अनलक सेटअप गर्नुभयो भने तपाईंले मास्क लगाएका बेला वा तपाईं कुनै अँध्यारो ठाउँमा हुँदा तपाईंको फोनले तपाईंलाई फिंगरप्रिन्ट प्रयोग गर्न लगाउने छ।\n\nतपाईंका औँलाहरू ओसिला भएका बेला वा तपाईंको अनुहार पहिचान गर्न नसकिएका खण्डमा तपाईं स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गरेर आफ्नो फोन अनलक गर्न सक्नुहुन्छ।"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"तपाईंको फिंगरप्रिन्ट पहिचान गर्न नसकिएका खण्डमा तपाईं स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गरेर आफ्नो फोन अनलक गर्न सक्नुहुन्छ।"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"तपाईंको अनुहार पहिचान गर्न नसकिएका खण्डमा तपाईं स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गरेर आफ्नो फोन अनलक गर्न सक्नुहुन्छ।"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"यसका लागि फिंगरप्रिन्ट वा स्मार्ट वाच प्रयोग गर्नुहोस्"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"यसका लागि अनुहार वा स्मार्ट वाच प्रयोग गर्नुहोस्"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"यसका लागि अनुहार, फिंगरप्रिन्ट वा स्मार्ट वाच प्रयोग गर्नुहोस्"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"अनुहार र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"अनुहार, फिंगरप्रिन्ट र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"अनुहार, फिंगरप्रिन्टहरू र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरिए"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"स्मार्ट वाच हालिएको छ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"आफ्नो स्मार्ट वाच सेटअप गर्नुहोस्"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"यसले काम गर्ने तरिका"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"तपाईंको स्मार्ट वाच अनिवार्य रूपमा अनलक गरिएको हुनु पर्छ, तपाईंको नाडीमा बाँधिएको हुनु पर्छ र यो फोनको नजिकै हुनु पर्छ। तपाईंको स्मार्ट वाच तपाईंको नाडीमा हुँदा तपाईंले उक्त स्मार्ट वाच फेरि अनलक गर्नु पर्दैन।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"यो फोन अनलक हुँदा तपाईंको स्मार्ट वाचमा सूचना पठाइने छ। तपाईंले नचाहेका बेला यो फोन अनलक भएका खण्डमा सूचनामा ट्याप गरेर यो फोन फेरि लक गर्नुहोस्।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"यो कुरा तपाईंको नियन्त्रणमा हुन्छ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"तपाईं जुनसुकै बेला सेटिङमा गई \"स्मार्ट वाच अनलक गर्ने सुविधा\" बाट आफ्नो स्मार्ट वाच हटाउन सक्नुहुन्छ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"कुनै एक सूचनामा ट्याप गर्नुहोस्"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लक स्क्रिनमा माथितिर स्वाइप गर्नुहोस्"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"आफ्नो स्मार्ट वाच छनौट गर्नुहोस्"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"उपलब्ध स्मार्ट वाचहरू"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"रद्द गर्नुहोस्"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"पुष्टि गर्नुहोस्"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"तपाईं अब पूर्ण रूपमा तयार हुनुहुन्छ!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"तपाईं अब आफ्नो स्मार्ट वाच प्रयोग गरी लक स्क्रिनदेखि माथितिर स्वाइप गरेर वा सूचनामा ट्याप गरेर यो फोन अनलक गर्न सक्नुहुन्छ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"पूरा भयो"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"स्मार्ट वाच अनलक गर्ने सुविधा"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"तपाईं आफ्नो स्मार्ट वाच प्रयोग गरी लक स्क्रिनदेखि माथितिर स्वाइप गरेर वा सूचनामा ट्याप गरेर यो फोन अनलक गर्न सक्नुहुन्छ"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गर्न तपाईंको स्मार्ट वाच अनिवार्य रूपमा अनलक गरिएको हुनु पर्छ, तपाईंको नाडीमा बाँधिएको हुनु पर्छ र यो फोनमा कनेक्ट हुनु पर्छ। कनेक्सन अवरुद्ध भयो भने तपाईं फोन अनलक गरेपछि मात्र स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गर्न सक्नुहुन्छ।\n\nयाद राख्नुहोस्:\nतपाईं एक पटकमा एउटा मात्र स्मार्ट वाच सेटअप गर्न सक्नुहुन्छ। अर्को स्मार्ट वाच कनेक्ट गर्न सर्वप्रथम अहिले कनेक्ट भइरहेको स्मार्ट वाच डिस्कनेक्ट गर्नुहोस्।"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"स्मार्ट वाच अनलक गर्ने सुविधाका बारेमा थप जान्नुहोस्"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"स्मार्ट वाच कनेक्ट गर्नुहोस्"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"स्मार्ट वाच डिस्कनेक्ट गर्नुहोस्"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फिंगरप्रिन्ट तथा फेस अनलक"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"कार्य प्रोफाइलका लागि फेस र फिंगरप्रिन्ट अनलक"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप गर्नु पर्ने हुन्छ"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"सुरक्षा"</string>
     <string name="privacy_header" msgid="5526002421324257007">"गोपनीयता"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"कार्य प्रोफाइल"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"निजी स्पेस"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"निजी एपहरू लक गरिराख्नुहोस् र लुकाइराख्नुहोस्"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"निजी एपहरू तपाईंले लुकाउन वा लक गर्न सक्ने खालको छुट्टै स्पेसमा राख्नुहोस्"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"निजी स्पेसको लक"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"तपाईं आफूले आफ्नो डिभाइस अनलक गरे जसरी नै निजी स्पेस अनलक गर्न वा अर्कै लक छनौट गर्न सक्नुहुन्छ"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"डिभाइसको स्क्रिन लक प्रयोग गरियोस्"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"फेस र फिंगरप्रिन्ट अनलक"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"फिंगरप्रिन्ट अनलक"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"फेस अनलक"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"सेटअप गर्न ट्याप गर्नुहोस्"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"निजी स्पेसका लागि फिंगरप्रिन्ट अनलक सुविधा"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"निजी स्पेसका लागि फेस अनलक सुविधा"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"अनलक गर्ने तरिकाहरू"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"डिभाइसको स्क्रिन लक जसरी नै"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"निजी स्पेसमा नयाँ लक प्रयोग गर्ने हो?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"स्वतः लक गरियोस्"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"निजी स्पेस स्वतः लक गरियोस्"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"तपाईंले केही समयसम्म आफ्नो डिभाइस प्रयोग नगर्दा उक्त डिभाइसमा भएको निजी स्पेस स्वतः लक हुने बनाउन सक्नुहुन्छ"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"डिभाइस लक हुँदैपिच्छे"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"५ मिनेटसम्म निष्क्रिय भएपछि"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"कहिल्यै पनि होइन"</string>
+    <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_deleted" msgid="7825768516955610897">"निजी स्पेस मेटाइएको छ"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"निजी स्पेस मेटाउन सकिएन"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"निजी स्पेस अनलक गरिएको छ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"स्क्रिन लक सेट गर्नुहोस्"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"निजी स्पेस प्रयोग गर्न यो डिभाइसमा स्क्रिन लक सेट गर्नुहोस्"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"स्क्रिन लक सेट गर्नुहोस्"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"रद्द गर्नुहोस्"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"रद्द गर्नुहोस्"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"सेटअप गर्नुहोस्"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"निजी स्पेस सेटअप गर्नुहोस्"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"तपाईंले लुकाउन वा लक गर्न सक्ने खालका निजी एपहरू छुट्टै स्पेसमा राख्नुहोस्"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"यसले काम गर्ने तरिका"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"तपाईं आफ्नो एपको सूचीको पुछारबाट निजी स्पेस एक्सेस गर्न सक्नुहुन्छ"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"निजी स्पेसमा एपहरू लक प्रयोग गरी सुरक्षित रूपमा राखिएका हुन्छन्"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"निजी स्पेस लक गरिएका बेला निजी स्पेसका एपबाट प्राप्त सूचनाहरू लुकाइन्छन्"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"तपाईंको निजी स्पेस लक गरिएका बेला यसमा भएका एपहरू अनुमति व्यवस्थापन, गोपनीयतासम्बन्धी ड्यासबोर्ड र अन्य सेटिङमा देखिने छैनन्।\n\nतपाईंको निजी स्पेस सारेर अर्को डिभाइसमा लैजान सकिँदैन। तपाईं अर्को डिभाइसमा निजी स्पेस प्रयोग गर्न चाहनुहुन्छ भने तपाईंले अर्को डिभाइसमा निजी स्पेस सेटअप गर्नु पर्ने हुन्छ।\n\nतपाईंको डिभाइस कम्प्युटरमा कनेक्ट गर्ने वा तपाईंको डिभाइसमा हानिकारक एपहरू इन्स्टल गर्ने सबै जना तपाईंको निजी स्पेस एक्सेस गर्न सक्ने छन्।"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"निजी स्पेस सेटअप गरिँदै छ…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"निजी स्पेस लक गरिएका बेला निजी स्पेसका एपबाट प्राप्त सूचनाहरू लुकाइन्छन्"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"निजी स्पेसका एपहरूबाट फोटो वा फाइलहरू सेयर गर्न आफ्नो निजी स्पेस अनलक गर्नुहोस्"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"केही एपहरू तपाईंको निजी स्पेसमा इन्स्टल गरिसकिएका छन्"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"निजी स्पेस सेटअप गर्न सकिएन"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"फेरि प्रयास गर्नुहोस्"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"निजी स्पेस अनलक गर्न स्क्रिन लक प्रयोग गर्ने हो?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"तपाईं आफूले आफ्नो डिभाइस अनलक गरे जसरी नै निजी स्पेस अनलक गर्न वा अर्कै लक छनौट गर्न सक्नुहुन्छ"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"स्क्रिन लक प्रयोग गर्नुहोस्"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"नयाँ लक छनौट गर्नुहोस्"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"सेटअप भयो!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"निजी स्पेस एक्सेस गर्न आफ्नो एपको सूचीमा जानुहोस् अनि तलतिर स्क्रोल गर्नुहोस्"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"पूरा भयो"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"निजी स्पेस भेट्टाउन तलतिर स्क्रोल गर्नुहोस्"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"निजी स्पेसका लागि एउटा लक छनौट गर्नुहोस्"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"तपाईं आफ्नो फिंगरप्रिन्ट प्रयोग गरी निजी स्पेस अनलक गर्न सक्नुहुन्छ। सुरक्षासम्बन्धी कारणहरूले गर्दा यो विकल्प प्रयोग गर्न ब्याकअप लक सेटअप गर्नु पर्ने हुन्छ।"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"आफ्नो निजी स्पेसका लागि PIN सेट गर्नुहोस्"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"आफ्नो निजी स्पेसका लागि पासवर्ड सेट गर्नुहोस्"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"आफ्नो निजी स्पेसका लागि प्याटर्न सेट गर्नुहोस्"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"निजी स्पेस (अन्तिम UX संस्करण होइन) देखिने बनाउन"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"सेटिङ एप खोल्नुहोस्"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"सुरक्षा तथा गोपनीयता &gt; निजी स्पेस &gt; लक गरिएको बेला निजी स्पेस लुकाइयोस् मा ट्याप गर्नुहोस्"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"लक गरिएका बेला निजी स्पेस लुकाउने सुविधा बन्द गर्ने टगल"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google कर्मचारीले ख्याल गर्नु पर्ने कुरा: यो सुविधा अझै विकास हुँदै छ"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"तपाईँले सायद यो पासकि अन्य उपकरणमा पनि टाइप गर्नुपर्छ।"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"समायोजित सेटमा कनेक्ट गर्न पुष्टि गर्नुहोस्"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"आफ्ना कन्ट्याक्ट र कल हिष्ट्री हेर्ने अनुमति दिनुहोस्"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"कन्ट्याक्ट र कल हिस्ट्री हेर्ने र प्रयोग गर्ने अनुमति पनि दिइयोस्"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"यो जानकारीको प्रयोग कल आएको जानकारी दिने लगायतका कुराका लागि प्रयोग गरिने छ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> उपकरणसँग जडान गर्न सकेन।"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"उपलब्ध डिभाइस"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"हवाइजहाज मोडमा"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"सार्वजनिक नेटवर्क उपलब्ध हुँदा सूचित गरियोस्"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"उच्च गुणस्तरको सार्वजनिक नेटवर्क उपलब्ध हुँदा सूचित गराउनुहोस्"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP नेटवर्क कनेक्ट गर्ने अनुमति दिनुहोस्"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP भनेको कम सुरक्षित पुराना सुरक्षा प्रोटोकल हो"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP नेटवर्क कम सुरक्षित हुने भएकाले तपाईंको सेवा प्रदायकले तपाईंले यो नेटवर्क कनेक्ट गर्न नमिल्ने बनाएको छ"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi स्वत: अन गर्नुहोस्"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"घरको नेटवर्क जस्ता सेभ गरिएका उच्च गुणस्तरका नेटवर्कहरू नजिक हुँदा Wi‑Fi आफैँ अन होस्"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"स्थान निष्क्रिय पारिएको हुनाले उपलब्ध छैन। "<annotation id="link">"स्थान"</annotation>" अन गर्नुहोस्।"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi खोज्ने सुविधाले एप र सेवाहरूलाई जुनसुकै बेला वरपरका Wi-Fi नेटवर्क खोज्ने अनुमति दिन्छ। Wi‑Fi अफ भएको बेला पनि यसरी खोज्न सकिन्छ। उदाहरणका लागि यसलाई स्थानमा आधारित सुविधा तथा सेवाहरूको सुधार गर्नका लागि प्रयोग गर्न सकिन्छ।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"अन गर्नुहोस्"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi स्क्यान गर्ने सेवा सक्रिय छ"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"यो नेटवर्कले कम सुरक्षित अझ पुरानो सुरक्षा प्रोटोकल प्रयोग गर्छ"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ब्लक गरिएको छ"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"यो नेटवर्कले WEP भनिने कम सुरक्षित अझ पुराना सुरक्षा प्रोटोकल प्रयोग गर्छ। जसरी भए पनि कनेक्ट गर्न चाहनुहुन्छ भने तपाईं WEP नेटवर्कहरूलाई अनुमति दिन सक्नुहुन्छ।"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"यो नेटवर्कले अझ कम सुरक्षित पुरानो सुरक्षा प्रोटोकल प्रयोग गर्ने भएकाले तपाईंको सेवा प्रदायकले तपाईंले यो नेटवर्क कनेक्ट गर्न नमिल्ने बनाएको छ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP कनेक्ट गर्ने अनुमति दिनुहोस्"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"बन्द गर्नुहोस्"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"उन्नत विकल्पहरू"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ड्रप-डाउन सूचीका उन्नत विकल्पहरू"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"विस्तृत गर्नुहोस्"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi‑Fi मा कायम रहनुहोस्"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"फेरि कहिल्यै नदेखाउनुहोस्"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"कनेक्ट गर्नुहोस्"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi सक्रिय गरियो"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> मा कनेक्ट गरियो"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> मा कनेक्ट गरिँदै"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"जडान गर्दै…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"सञ्जालमा जडान गर्न विफल"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क दायरामा छैन"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"बिर्सनुहोस्"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"परिमार्जन गर्नुहोस्"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"सञ्जाल बिर्सन विफल"</string>
     <string name="wifi_save" msgid="2312643132472226807">"सेभ गर्नुहोस्"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"सञ्जाल बचत गर्न विफल"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"रद्द गर्नुहोस्"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"मोबाइल डेटा"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"इथरनेट"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ चार्ज गरिँदै छ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ चार्ज गरिँदै छ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"हटस्पट कनेक्सन"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"कनेक्सनको क्षमता"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"सेभ गरिएका नेटवर्कहरू"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"पासवर्ड सेट गरिएको छैन"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"हटस्पटको नाम"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"हटस्पटको पासवर्ड"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP ब्यान्ड"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"हटस्पट स्वतः अफ गरियोस्"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"कुनै पनि डिभाइस कनेक्ट नभएका बेला"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"कम्प्याटिबिलिटी बढाइयोस्"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"गेमको फ्रेम रेटसम्बन्धी डिफल्ट सेटिङ अफ गर्नुहोस्"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"गेमको अधिकतम फ्रेम रेट <xliff:g id="FRAME_RATE">%1$d</xliff:g> हर्ज सीमित गर्ने सेटिङ अफ गर्नुहोस्।"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"कुनै व्यक्तिले स्क्रिनमा हेरिरहेको छ या छैन भन्ने कुरा पत्ता लगाउन \"स्क्रिनमा हेरिरहँदा\" नामक सेटिङले अगाडिको क्यामेरा प्रयोग गर्दछ। यसले यो डिभाइसभित्रै मात्र काम गर्छ र कहिल्यै पनि फोटो भण्डारण गर्ने वा Google मा पठाउने काम गर्दैन।"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"स्क्रिनमा हेरिरहँदा स्क्रिन सक्रिय राख्ने सुविधा अन गर्नुहोस्"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"स्क्रिनमा हेरिरहेका बेला स्क्रिन सक्रिय राखियोस्"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"लामो समयसम्म स्क्रिन टाइमआउट रह्यो भने बढी ब्याट्री खपत हुने छ।"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"क्यामेरा लक गरिएको छ"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"अनुहार पत्ता लगाउने सुविधा प्रयोग गर्न क्यामेरा अनिवार्य रूपमा अनलक गर्नु पर्छ"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"स्क्रिनमा हेरिरहेको पहिचान गर्ने सुविधा प्रयोग गर्न क्यामेरा अनलक गरिएको हुनु पर्छ"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM स्लट <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM स्लट <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (प्राथमिक)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"हेर्नका लागि, सेभ गरिएको नेटवर्क छनौट गर्नुहोस्"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"मिनेट"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL संस्करण"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ब्याट्री स्तर"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"सामुदायिक"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"समुदायसम्बन्धी सेटिङ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"सेभ गर्नुहोस्"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"रद्द गर्नु…"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"नाम फिल्ड खाली हुन सक्तैन।"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN खाली हुन सक्तैन।"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC क्षेत्र कम से कम ३ अङ्कको हुनु पर्छ।"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC क्षेत्रमा २ वा ३ अंकहरू हुनुपर्दछ"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"सेवा प्रदायकले %s प्रकारका APN हरू थप्ने अनुमति दिँदैन।"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC फिल्ड अनिवार्य रूपमा वैध हुनु पर्छ।"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"डिफल्ट APN सेटिङहरू पुनःप्राप्त गर्दै।"</string>
     <string name="menu_restore" msgid="4310539620115151551">"रिसेट गरी डिफल्ट बनाउनुहोस्"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"डिफल्ट APN सेटिङहरू रिसेट पुरा भयो।"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"रिसेट गर्नुहोस्"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ब्लुटुथ र Wi-Fi रिसेट गरिएका छन्"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM हरू मेटाउनुहोस्"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"यसो गर्दा मोबाइल सेवाका कुनै पनि योजना रद्द हुने छैनन्। अर्को सिम डाउनलोड गर्न आफ्नो मोबाइल सेवा प्रदायकलाई सम्पर्क गर्नुहोस्।"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"सेटिङहरू रिसेट गर्नुहोस्"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"नेटवर्कसम्बन्धी सबै सेटिङहरू रिसेट गर्ने हो? तपाईं यो कार्य उल्टाउन सक्नुहुन्न।"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"नेटवर्कसम्बन्धी सबै सेटिङ रिसेट गर्ने अनि eSIM हरू मेटाउने हो? तपाईं यो कार्य अन्डू गर्न सक्नुहुन्न।"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"रिसेट गर्ने हो?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"नेटवर्क रिसेट यो प्रयोगकर्ताको लागि उपलब्ध छैन"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"सञ्जाल सेटिङहरू रिसेट गरियो"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM हरू मेट्न सकिँदैन"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"कुनै त्रुटि भएका कारण eSIM हरू मेटाउन सकिएन।\n\nआफ्नो डिभाइस रिस्टार्ट गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"सबै डेटा मेटाउनुहोस् (फ्याक्ट्री रिसेट गर्नुहोस्)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"सबै डेटा मेटाउनुहोस् (फ्याक्ट्री रिसेट गर्नुहोस्)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"सङ्गीत"</li>\n<li>"फोटोहरू"</li>\n<li>"प्रयोगकर्ताको अन्य डेटा"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM हरू"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"यसो गर्नुभयो भने तपाईंको मोबाइल सेवा योजना रद्द गरिने छ।"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"तपाईंका सबै व्यक्तिगत जानकारी र डाउनलोड गरिएका एपहरू मेटाइने छन्। तपाईं यो कार्य अन्डू गर्न सक्नुहुन्न।"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"तपाईंका डाउनलोड गरिएका एप तथा SIM लगायत सबै व्यक्तिगत जानकारी मेटाइने छन्। तपाईं यो कार्य अन्डू गर्न सक्नुहुन्न।"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"सबै डेटा मेट्ने हो?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"यी प्रयोगकर्ताले फ्याक्ट्री रिसेट गर्न पाउँदैनन्"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"मेटाइँदै छ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"हटस्पट, USB, ब्लुटुथ, इथरनेट"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"अन्य डिभाइससँग इन्टरनेट बाँडिएको छैन"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"अफ छ"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"टेदरिङ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi हटस्पट प्रयोग नगर्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB बाट मात्रै इन्टरनेट बाँड्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ब्लुटुथबाट मात्रै इन्टरनेट बाँड्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"इथरनेटबाट मात्रै इन्टरनेट सेयर गर्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB र ब्लुटुथबाट मात्रै इन्टरनेट बाँड्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB र इथरनेटबाट मात्रै इन्टरनेट सेयर गर्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ब्लुटुथ र इथरनेटबाट मात्रै इन्टरनेट सेयर गर्नुहोस्"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"UBS, ब्लुटुथ र इथरनेटबाट मात्रै इन्टरनेट सेयर गर्नुहोस्"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB टेदरिङ"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ब्लुटुथ टेदर गर्दै"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"इथरनेट टेदरिङ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"आफ्नो Wi‑Fi वा मोबाइल डेटा इन्टरनेटमार्फत अन्य डिभाइसमा इन्टरनेट उपलब्ध गराउन हटस्पट र टेदरिङ प्रयोग गर्नुहोस्। एपहरूले पनि वरपरका डिभाइसहरूसँग सामग्री सेयर गर्न हटस्पट सिर्जना गर्न सक्छन्।"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"मद्दत"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"मोबाइल नेटवर्क"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"मोबाईल योजना"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS एप"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS एप परिवर्तन गर्ने हो?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"तपाईँको <xliff:g id="CURRENT_APP">%2$s</xliff:g> SMS एपको सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g> प्रयोग गर्नुहुन्छ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi-Fi सहायक परिवर्तन गर्नुहुन्छ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="CURRENT_APP">%2$s</xliff:g> सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g> प्रयोग गर्ने?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"तपाईँको सञ्जाल जडानहरू व्यवस्थापन गर्न <xliff:g id="NEW_APP">%s</xliff:g> प्रयोग गर्ने?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"अज्ञात SIM सञ्चालक"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> को प्रावधानीकरणको कुनै ज्ञात वेबसाइट छैन"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"कृपया SIM कार्ड भित्र राखेर पुनः स्टार्ट गर्नुहोस्"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"कृपया इन्टरनेटसँग जोड्नुहोस्"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"हालका स्थान अनुरोधहरू"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"काम प्रोफाइलका लागि स्थान"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"एपलाई दिइएको लोकेसन प्रयोग गर्ने अनुमति"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"पहुँच खाली गर्नुहोस्"</string>
     <string name="controls_label" msgid="8671492254263626383">"नियन्त्रणहरू"</string>
     <string name="force_stop" msgid="2681771622136916280">"जबरजस्ती रोक्नुहोस्"</string>
+    <string name="archive" msgid="9074663845068632127">"अभिलेखमा राख्नुहोस्"</string>
+    <string name="restore" msgid="7622486640713967157">"रिस्टोर गर्नुहोस्"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"कूल"</string>
     <string name="application_size_label" msgid="6407051020651716729">"एपको आकार"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB भण्डारण एप"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"प्याकेज आकार गणना गर्न सकिएन।"</string>
     <string name="version_text" msgid="7628938665256107608">"संस्करण <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"सार्नुहोस्"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"अभिलेखमा राख्न सकिएन"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"अभिलेखमा राखिएको <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"रिस्टोर गर्न सकिएन"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> रिस्टोर गरिँदै छ"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"अर्को माइग्रेसन पहिलेदेखि नै जारी छ।"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"पर्याप्त भण्डारण ठाउँ छैन।"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"एप छैन"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"उपलब्ध अनस्क्रिन किबोर्ड"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"अनस्क्रिन किबोर्डहरूको व्यवस्थापन गर्नुहोस्"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"विकल्पहरू"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"एक्सेसिबिलिटी सुविधा"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"फिजिकल किबोर्ड"</string>
     <string name="show_ime" msgid="4334255501724746849">"अनस्क्रिन किबोर्ड प्रयोग गरियोस्"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"फिजिकल किबोर्ड सक्रिय हुँदा यसलाई स्क्रिनमा राखियोस्"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"भौतिक किबोर्डमा एक्सेसिबिलिटी सुविधा प्रयोग गर्न बाउन्स की अन गर्नुहोस्"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"स्टिकी की"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"भौतिक किबोर्डमा एक्सेसिबिलिटी सुविधा प्रयोग गर्न स्टिकी की अन गर्नुहोस्"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"किबोर्डका सर्टकटहरू"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"सर्टकटहरूको सूची देखाइयोस्"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"कार्य प्रोफाइल किबोर्ड र उपकरणहरू"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"प्रयोग गरिएको समयअनुसार क्रमबद्ध गर्नुहोस्"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"पछिल्लो पटक प्रयोग गरिएको समयअनुसार क्रमबद्ध गर्नुहोस्"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"एपको नामअनुसार क्रमबद्ध गर्नुहोस्"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"पछिल्लो समय प्रयोग गरिएको"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"पछिल्लो पटक प्रयोग गरिएको"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"कहिल्यै नखोलिएका एपहरू"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"उपयोग समय"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"एक्सेसिबिलिटी"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"उपलब्धता सेटिङहरू"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"जे भए पनि जारी राख्नुहोस्"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"रद्द गर्नु…"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"म्याग्निफिकेसनसम्बन्धी सेटिङ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"तीन ट्यापमा म्याग्निफाइ गर्नुहोस्"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"सर्टकट प्रयोग गरी म्याग्निफाइ गर्नुहोस्"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"सर्टकट र तीन पटक ट्याप गरेर म्याग्निफाइ गर्नुहोस्"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>का बारेमा"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"खोल्न स्क्रिनमा दुई वटा औँलाले डबल ट्याप गर्नुहोस्"</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="860548190334486449">"जुम इन गर्ने सुविधा अन तथा अफ गर्न स्क्रिनको जुनसुकै ठाउँमा दुई वटा औँलाले डबल ट्याप गर्नुहोस्।"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"पहुँचसम्बन्धी कुनै सुविधा प्रयोग गर्न ३ वटा औँलाले स्क्रिनको पुछारबाट माथितिर स्वाइप गर्नुहोस्।\n\nएउटा सुविधाबाट अर्को सुविधामा जान ३ वटा औँलाले माथितिर स्वाइप गरी स्क्रिनमा थिचिराख्नुहोस्।"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"बुझेँ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"एक्सेसिबिलिटी बटनसम्बन्धी सेटिङ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"बटनसम्बन्धी सेटिङ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g>को सर्टकट"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"एक्सेसिबिलिटी बटन"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"एक्सेसिबिलिटी जेस्चर"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"स्क्रिनमा दुई वटा औँलाले डबल ट्याप गर्नुहोस्"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"स्क्रिनमा दुई वटा औँलाले डबल ट्याप गर्नुहोस्"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"स्क्रिनमा दुई वटा औँलाले {0,number,integer} पटक छिटो छिटो ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"स्क्रिनमा तीन पटक ट्याप गर्नुहोस्"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"स्क्रिनमा द्रुत रूपमा {0,number,integer} पटक ट्याप गर्नुहोस्। यो सर्टकट प्रयोग गर्दा तपाईंको डिभाइस ढिलो चल्न सक्छ"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"एक्सेसिबिलिटी बटन र जेस्चरका बारेमा थप जान्नुहोस्"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"एक्सेसिबिलिटी बटन प्रयोग गरिँदै छ। यो जेस्चर ३ बटनमार्फत गरिने नेभिगेसनका सहायताले प्रयोग गर्न मिल्दैन।"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"एक्सेसिबिलिटी सुविधा तुरुन्तै प्रयोग गर्नुहोस्"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"सुरुवात गर्नका लागि"</b>\n"१. एस्सेसिबिलिटी सेटिङमा जानुहोस्\n२. कुनै सुविधा चयन गर्नुहोस् र सर्टकटमा ट्याप गर्नुहोस्\n३. यो सुविधा प्रयोग गर्ने प्रयोजनका लागि तपाईं बटन प्रयोग गर्न चाहनुहुन्छ कि जेस्चर प्रयोग गर्न चाहनुहुन्छ छनौट गर्नुहोस्"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"सुरुवात गर्नका लागि"</b>\n"१. एस्सेसिबिलिटी सेटिङमा जानुहोस्\n२. कुनै सुविधा चयन गर्नुहोस् र सर्टकटमा ट्याप गर्नुहोस्\n३. कुन बटन थिचेर यो सुविधा चलाउन सकिन्छ भन्ने कुरा छनौट गर्नुहोस्"</string>
+    <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_size_title" msgid="5785110470538960881">"आकार"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"पावर बटन थोच्दा फोन काटियोस्"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ठुलो माउस पोइन्टर"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"माउस पोइन्टर अझ राम्रोसँग देखिने बनाउनुहोस्"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"सबै एपमा अँध्यारो थिम लागू गर्नुहोस्"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"डिफल्ट रूपमा अँध्यारो थिम लागू नगरिएका एपहरूमा लागू हुन्छ। केही एपहरूमा उल्ट्याइएका रङ जस्ता डिस्प्लेसम्बन्धी समस्याहरू हुन सक्छन्।"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"एनिमेसन हटाइयोस्"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"स्क्रिनमा मोसन कम गर्नुहोस्"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"मोनो अडियो"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"यसले कुनै एप वा हार्डवेयर सेन्सरसँग तपाईंले गर्ने अन्तर्क्रिया ट्र्याक गर्न सक्छ र तपाईंका तर्फबाट एपहरूसँग अन्तर्क्रिया गर्न सक्छ।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"अनुमति दिनुहोस्"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"नदिनुहोस्"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"रोक्नुहोस्"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"रद्द गर्नु⋯"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> बन्द गर्ने हो?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"तपाईंले <xliff:g id="STOP">%1$s</xliff:g> मा ट्याप गर्नुभयो भने <xliff:g id="SERVICE">%2$s</xliff:g> बन्द हुन्छ।"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"अफ गर्नुहोस्"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"अन नै छाड्नुहोस्"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> अफ गर्ने हो?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"कुनै पनि सेवाहरू स्थापित छैनन्"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"कुनै पनि सेवा चयन गरिएको छैन"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"वर्णन प्रदान गरिएको छैन।"</string>
     <string name="settings_button" msgid="2195468788019730377">"सेटिङहरू"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"प्रकाशको संवेदनशीलता, फोटोफोबिया, अँध्यारो थिम, माइग्रेन, टाउको दुख्नु, रिडिङ मोड, रात्रि मोड, चमक घटाउनुहोस्, ह्वाइट पोइन्ट"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"प्रयोग गर्न सजिलो, पहुँच राख्न सजिलो, सहायता, सहायक"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"दृश्य, श्रवण शक्ति, दृष्टिविहीन, मोटर, निपुणता, सहायक, सहायता, प्रयोग गर्न सजिलो, एक्सेस गर्न सजिलो, हात, मद्दत"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"विन्डो म्याग्निफायर, जुम, जुम इन, कमजोर दृष्टि, ठुलो पार्नुहोस्, अझ ठुलो पार्नुहोस्"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"क्याप्सन, क्लोज्ड क्याप्सन, CC, लाइभ ट्रान्स्क्राइब, कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, CART, स्पिच-टू-टेक्स्ट, सबटाइटल"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"कलर कन्ट्रास्ट"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"मांसपेशीको चाल, माउस"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"श्रवण यन्त्र, कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, कक्लियर इम्प्लान्ट, एम्प्लिफिकेसन डिभाइस, साउन्ड प्रोसेसर"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"मोटर, माउस, बाह्य माउस, हेड माउस, एड्याप्टिभ माउस, ह्विलचेयर, जोयस्टिक"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"श्रवण यन्त्र, कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, कक्लियर इम्प्लान्ट, एम्प्लिफिकेसन डिभाइस, साउन्ड प्रोसेसर, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, क्याप्सन, टेलिटाइप, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"तीन बटन"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"निपुणता, मोटर, ज्येष्ठ नागरिक, अर्थोटिक्स, rsi, स्टरोक, ट्रेमर, मल्टीपल स्क्लेरोसिस, सेरेब्रल पाल्सी, काम्ने रोग, शरिरका अङ्ग बारम्बार गल्ने रोग, हात"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ढिलाइ, निपुणता, ज्येष्ठ नागरिक"</string>
     <string name="print_settings" msgid="8519810615863882491">"प्रिन्टिङ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"निष्क्रिय छ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{प्रिन्टसम्बन्धी एउटा सेवा अन छ}other{प्रिन्टसम्बन्धी # वटा सेवा अन छन्}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ब्याट्री सबैभन्दा धेरै खपत गर्ने एपहरू हेर्नुहोस्"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"तपाईंको डिभाइसको ब्याट्री जोगाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिन्छ"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"तपाईंको डिभाइसको ब्याट्रीको आयु बढाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिन्छ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"तपाईंको डिभाइसको ब्याट्री जोगाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिएको छ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"तपाईंको डिभाइस डक गरिएका बेला उक्त डिभाइसको ब्याट्रीको आयु बढाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिन्छ"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"तपाईंको डिभाइसको ब्याट्री जोगाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिन्छ"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"तपाईंको डिभाइस डक गरिएका बेला उक्त डिभाइसको ब्याट्रीको आयु बढाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिन्छ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"फुल चार्ज गरिँदै छ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"अर्को पटक तपाईंको ट्याब्लेट डक गरिएका बेला उक्त ट्याब्लेटको ब्याट्री जोगाउने प्रयोजनका लागि चार्ज गर्ने प्रक्रिया अप्टिमाइज गरिने छ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"\"चार्ज गर्ने कार्य रोकिएको छ\" का बारेमा थप जान्नुहोस्"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"चार्जिङ सुचारु गर्नुहोस्"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"यसले उच्च क्षमतायुक्त पृष्ठभूमिको गतिविधि समावेश गर्दछ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"हटाउनुहोस्"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"रद्द गर्नुहोस्"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"फुल चार्ज गर्नुहोस्"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"चार्ज गर्ने एक्सेसरीमा कुनै समस्या आयो"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"नमिल्दो चार्जिङका बारेमा थप जान्नुहोस्"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ब्याट्री प्रबन्धक"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"एपहरूलाई स्वतः व्यवस्थित गर्नुहोस्"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"अहिले"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ब्याट्रीको खपत देखाइएको चार्ट"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"दैनिक ब्याट्रीको खपतसम्बन्धी चार्ट"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"प्रति घण्टा ब्याट्रीको खपतसम्बन्धी चार्ट"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ब्याट्रीको स्तरको प्रतिशत <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> देखि <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> सम्म छ"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"पछिल्लो पटक पूरा चार्ज गरेदेखि अहिलेसम्म भएको ब्याट्रीको खपत"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> का बीचमा खपत भएको ब्याट्री"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"पछिल्लो पटक पूरा चार्ज गरेदेखि अहिलेसम्मको स्क्रिन टाइम"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"इमर्जेन्सी डाइलिङसम्बन्धी सङ्केत"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"आपातकालीन कल राखिएको बेलाको व्यवहार सेट गर्नुहोस्"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ब्याकअप"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"सक्रिय छ"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"निष्क्रिय छ"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ब्याकअप र पुनःस्थापना गर्नुहोस्"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"व्यक्तिगत डेटा"</string>
     <string name="backup_data_title" msgid="507663517227498525">"मेरो डेटा ब्याकअप गर्नुहोस्।"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"नाम"</string>
     <string name="vpn_type" msgid="5533202873260826663">"प्रकार"</string>
     <string name="vpn_server" msgid="2908816134941973935">"सर्भर एड्रेस"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP इन्क्रिप्सन (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP गोप्य"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec पहिचानकर्ता"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec को अग्रिम रूपमा सेयर गरिएको कि"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec प्रयोगकर्ता सर्टिफिकेट"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA सर्टिफिकेट"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec सर्भर सर्टिफिकेट"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"उन्नत विकल्पहरू देखाइयोस्"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS सर्च डोमेन"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS सर्भर (उदाहरण ८.८.८.८)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"फर्वार्डिङ रुट (जस्तै 10.0.0.0 / 8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"एक-पटके टेक्स्ट म्यासेज"</string>
     <string name="vpn_password" msgid="1183746907642628127">"पासवर्ड:"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"खाता सम्बन्धी जानकारी सेभ गर्नुहोस्"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(प्रयोग गरिएको छैन)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(सर्भरको पुष्टि नगर्नुहोस्)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(सर्भरबाट प्राप्त)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"यस प्रकारको VPN सधैँ कनेक्ट गरिरहन मिल्दैन"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"सधैँ सक्रिय रहने VPN ले संख्यात्मक सर्भर ठेगानाहरूलाई मात्र समर्थन गर्छ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"सधैँ सक्रिय रहने VPN का लागि DNS सर्भर निर्दिष्ट गरिएको हुनु पर्छ"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"सधैँ सक्रिय रहने VPN का लागि DNS ठेगानाहरू संख्यात्मक नै हुनु पर्छ"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"हालिएको जानकारीको आधारमा \"VPN सधैँ खुला राख्नुहोस्\" प्रयोग गर्न मिल्दैन"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"रद्द गर्नुहोस्"</string>
     <string name="vpn_done" msgid="5137858784289564985">"खारेज गर्नुहोस्"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN रहित जडानहरूमाथि रोक लगाउनुहोस्"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN जडान आवश्यक छ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"सुरक्षित छैन। अपडेट गरी IKEv2 VPN बनाउनुहोस्"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"प्रयोग गर्न नमिल्ने VPN अन गर्न सकिएन।"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"सधैँ जडान भइरहन VPN प्रोफाइल चयन गर्नुहोस्। यस VPN जडान भएको बेला नेटवर्क ट्राफिकलाई मात्र अनुमति हुने छ।"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"कुनै पनि होइन"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"सधैँ चल्ने VPN लाई IP एड्रेस दुबै सर्भर र DNS का लागि चाहिन्छ।"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER चेतावनीहरू"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"बच्चा अपहरण बारेमा बुलेटिनहरू प्राप्त"</string>
     <string name="repeat_title" msgid="8676570486899483606">"दोहोर्‍याउनुहोस्"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"कल प्रबन्धक सक्षम गर्नुहोस्"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"तपाईँका कलहरू कसरी गरिन्छ व्यवस्थित गर्न यो सेवालाई अनुमति दिनुहोस्।"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"प्रबन्धक कल"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"आपत्‌कालीन वायरलेस अलर्टहरू"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"सञ्जाल संचालकहरू"</string>
     <string name="access_point_names" msgid="5768430498022188057">"बिन्दु नामहरूमा पहुँच"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"भुक्तानी गर्नुहोस्, ट्याप गर्नुहोस्, भुक्तानी"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ब्याकअप, ब्याकअप गर्नुहोस्"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"इसारा"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"फेस, अनलक, अधिकार दिने कार्य, साइन इन"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"फेस, अनलक, प्रमाणीकरण, साइन इन गर्नुहोस्, फिंगरप्रिन्ट, बायोमेट्रिक"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl संस्करण, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"यन्त्र सक्रिय हुँदाका ध्वनिहरू"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"लाइभ क्याप्सन"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"मिडियाको स्वत: क्याप्सन बनाउनुहोस्"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"फोनका स्पिकरहरू"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ट्याब्लेटका स्पिकरहरू"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"डिभाइसका स्पिकरहरू"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"तारयुक्त हेडफोन"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"कम्प्याटिबल मिडियाको अडियो अझै इमर्सिभ हुन्छ"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"अफ छ"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"हालसालैका वार्तालापहरू हटाइए"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"वार्तालाप हटाइएको छ"</string>
     <string name="clear" msgid="5092178335409471100">"हटाउनुहोस्"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> सँगको कुराकानी मेटाउनुहोस्"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"महत्त्वपूर्ण तथा संशोधित वार्तालापहरू यहाँ देखिने छन्"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"तपाईंले महत्त्वपूर्ण वार्तालापका रूपमा चिन्ह लगाएका वार्तालाप वा ती वार्तालापहरूमा गरिएका परिवर्तनहरू यहाँ देखिने छन्। \n\nवार्तालापसम्बन्धी सेटिङ परिवर्तन गर्न: \nस्क्रिनको सिरानबाट तलतिर स्वाइप गरेर पुल डाउन सेड खोल्नुहोस्, त्यसपछि कुनै वार्तालापमा टच एण्ड होल्ड गर्नुहोस्।"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"सानो बनाउनुहोस्"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"अफ छ"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"एप पिनिङ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"एप पिनिङ प्रयोग गरेर तपाईं हाल प्रयोगमा रहेको कुनै एपलाई अनपिन नगर्दासम्म स्क्रिनमा उक्त एप मात्र देखिने गरी पिन गर्न सक्नुहुन्छ। उदाहरणका लागि, तपाईं आफूले विश्वास गर्ने कुनै साथीलाई कुनै निश्चित गेम खेल्न दिँदा यो सुविधा प्रयोग गर्न सक्नुहुन्छ।"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"कुनै एप पिन गरिएका खण्डमा उक्त एपले अन्य एपहरू खोल्न सक्छ र तपाईंको डिभाइस चलाइरहेका व्यक्तिले तपाईंको व्यक्तिगत जानकारी हेर्न तथा प्रयोग गर्न सक्छन्। \n\nएप पिन गर्ने सुविधा प्रयोग गर्न: 	\n१. एप पिन गर्ने सुविधा अन गर्नुहोस् 	\n२. स्क्रिनसम्बन्धी विवरण खोल्नुहोस् 	\n३. स्क्रिनको सिरानमा रहेको एप जनाउने आइकनमा ट्याप गर्नुहोस्, त्यसपछि \"पिन गर्नुहोस्\" मा ट्याप गर्नुहोस्"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"कुनै एप पिन गरिएका खण्डमा उक्त एपले अन्य एपहरू खोल्न सक्छ र तपाईंको डिभाइस चलाइरहेका व्यक्तिले तपाईंको व्यक्तिगत जानकारी हेर्न तथा प्रयोग गर्न सक्छन्। \n\nतपाईं आफ्नो डिभाइस सुरक्षित रहने गरी अरू कसैलाई प्रयोग गर्न दिन चाहनुहुन्छ भने यो सुविधाको साटो अतिथि प्रयोगकर्ता नामक प्रयोग गरी हेर्नुहोस्। \n\nएप पिन गर्ने सुविधा प्रयोग गर्न: 	\n१. एप पिन गर्ने सुविधा अन गर्नुहोस् 	\n२. स्क्रिनसम्बन्धी विवरण खोल्नुहोस् 	\n३. स्क्रिनको सिरानमा रहेको एप जनाउने आइकनमा ट्याप गर्नुहोस्, त्यसपछि \"पिन गर्नुहोस्\" मा ट्याप गर्नुहोस्"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"एप प्रयोग गरिएको छैन भने व्यवस्थापन गरियोस्"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"अनुमति रद्द गरियोस्, अस्थायी फाइलहरू मेटाइयोस्, सूचना नपठाइयोस् र एप अभिलेखमा राखियोस्"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"सबै एपहरू"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"इन्स्टल गरिएका एपहरू"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"तात्कालिक एपहरू"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"उपलब्ध"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"अनुप्रयोगहरूद्वारा प्रयोग गरिएको मेमोरी"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{पछिल्लो {time} मा एउटा एपले मेमोरी प्रयोग गरेको छ}other{पछिल्लो {time} मा # वटा एपले मेमोरी प्रयोग गरेका छन्}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"मेमोरीको प्रयोग प्रोफाइलिङ गर्ने सुविधा अन गर्नुहोस्"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"मेमोरीको प्रयोग प्रोफाइलिङ गर्न सिस्टमसम्बन्धी थप स्रोतहरू चाहिन्छ।"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"मेमोरीको प्रयोग प्रोफाइलिङ गर्ने सुविधा अफ गरिएको छ"</string>
     <string name="running_frequency" msgid="7260225121706316639">"आवृत्ति"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"अधिकतम प्रयोग"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"डेटा प्रयोग गरिएको छैन"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"अरू एपमाथि देखाइयोस्"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"अन्य एपहरूमाथि देखिने अनुमति दिइयोस्"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"यो एपलाई तपाईंले प्रयोग गरिरहनुभएका अन्य एपमाथि देखिने अनुमति दिनुहोस्। यो एपले तपाईंले स्क्रिनमा कहाँ ट्याप गर्नुहुन्छ भन्ने कुराको जानकारी राख्न वा स्क्रिनमा देखाइएका कुराहरू परिवर्तन गर्न सक्छ।"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"मिडिया आउटपुट बदल्नुहोस्"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"मिडिया आउटपुट स्विच गर्न एपलाई अनुमति दिनुहोस्"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"यो एपलाई अन्य एपका अडियो वा भिडियो कनेक्ट गरिएको कुन डिभाइसबाट प्ले गर्ने भन्ने कुरा छनौट गर्न दिनुहोस्। तपाईंले अनुमति दिनुभयो भने यो एपले हेडफोन तथा स्पिकरहरू जस्ता उपलब्ध डिभाइसहरूको सूची एक्सेस गर्न र अडियो वा भिडियो कास्ट गर्न कुन चाहिँ आउटपुट डिभाइस प्रयोग गरिन्छ भन्ने कुरा छनौट गर्न सक्छ।"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"सबै फाइल हेर्ने तथा प्रयोग गर्ने अनुमति"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"बोलेर एक्टिभेट गर्ने सुविधामा सुधार गर्नुहोस्"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"यो डिभाइसले बोलेर एक्टिभेट गर्ने सुविधाको मोडेल सुधार गर्न प्राइभेट इन्टेलिजेन्स प्रयोग गर्छ। सबैका लागि यो मोडेल सुधार गर्ने क्रममा गोपनीयता कायम राख्न एपहरूले धेरै जना प्रयोगकर्ताहरूबाट सङ्कलन गरिएका समग्र जानकारीका आधारमा तयार पारिने संक्षेपीकृत जानकारी प्राप्त गर्न सक्छन्।\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"डेटाको खपतसम्बन्धी चेतावनी: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"डेटाको सीमा: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"डेटाको खपतसम्बन्धी चेतावनी: <xliff:g id="ID_1">^1</xliff:g> / डेटाको सीमा: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"तपाईंको वाहकले तपाईंको डिभाइसभन्दा फरक तरिकाले डेटाको गणना गर्न सक्छ"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"मोबाइल सेवा प्रदायकको नेटवर्कले प्रयोग गरेको डेटा समावेश गरिएको छैन"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> प्रयोग गरियो"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"डेटाको खपतसम्बन्धी चेतावनी दिइयोस्"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> अघि अद्यावधिक गरिएको"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> ले अहिले भर्खरै अद्यावधिक गरेको"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"अहिले भर्खरै अद्यावधिक गरिएको"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"योजना हेर्नुहोस्"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"विवरणहरू हेर्नुहोस्"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"डेटा सेभर"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"असीमित डेटा"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ब्याट्रीको खपतमा भएको असामान्य गतिविधि"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"द्रुत सेटिङसम्बन्धी विकासकर्ताका टाइलहरू"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb अनुमतिको टाइमआउट अफ गरियोस्"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"डिफल्ट अवधि (७ दिन) वा प्रयोगकर्ताले तोकेको समय (कम्तीमा १ दिन) भित्र पुनः कनेक्ट नगरिएका सिस्टमका adb अनुमति स्वतः खारेज गर्ने सेटिङ अफ गरियोस्।"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope को ट्रेस"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"सेन्सरहरू निष्क्रिय पार्नु…"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"कार्यसम्बन्धी प्रोफाइलको सेटिङ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"व्यक्तिगत एपहरूमा गई कामका डिरेक्टरीमा भएका कन्ट्याक्ट खोज्नुहोस्"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"अटोफिल सेवा"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"डिफल्ट अटोफिल सेवा"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"पासवर्डहरू"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"थप प्रदायकहरू"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# पासवर्ड}other{# वटा पासवर्ड}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"स्वतः, भर्नुहोस्, अटोफिल, पासवर्ड"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"डेटा, पासकी, पासवर्ड"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"अटो, फिल, अटोफिल, डेटा, पासकी, पासवर्ड"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;सबै सेवाहरू अफ गर्ने हो?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; तपाईंले साइन इन गर्दा नयाँ पासवर्ड, पासकी तथा सेभ गरिएका अन्य जानकारी अटोफिल सुविधामा प्रयोग गर्न मिल्ने छैन"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;आफूलाई मन पर्ने सेवा परिवर्तन गरेर &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&amp;gt बनाउनुहोस्; अबदेखि नयाँ पासवर्ड, पासकी तथा अन्य जानकारी यहाँ सेभ गरिने छन्। &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ले के-कस्ता जानकारी अटोफिल गर्न सकिन्छ भन्ने कुरा निर्धारण गर्न तपाईंको स्क्रिनमा भएका कुराहरू प्रयोग गर्न सक्छ"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s प्रयोग गर्ने हो?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"तपाईं ५ वटा सेवाहरू मात्र अन गर्न सक्नुहुन्छ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"अर्को सेवा अन गर्न कम्तीमा एउटा सेवा अफ गर्नुहोस्"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ले के-कस्ता जानकारी स्वतः भर्न सकिन्छ भन्ने कुरा निर्धारण गर्न तपाईंको स्क्रिनमा भएका कुराहरू प्रयोग गर्छ।"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"पासवर्ड, पासकी र डेटासम्बन्धी सेवाहरूको सीमा"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"तपाईं उही समयमा बढीमा ५ वटा पासवर्ड, पासकी तथा डेटासम्बन्धी सेवा प्रयोग गर्न सक्नुहुन्छ। थप सेवा हाल्न हाल प्रयोगमा रहेको कुनै सेवा अफ गर्नुहोस्।"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"पासवर्ड, पासकी र डेटासम्बन्धी सेवाहरूको सीमा"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"तपाईं एक पटकमा बढीमा ५ वटा पासवर्ड, पासकी र डेटासम्बन्धी सेवा चयन गर्न सक्नुहुन्छ। थप सेवा चयन गर्न हाल प्रयोगमा रहेको कुनै सेवा अफ गर्नुहोस्।"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"अफ गर्नुहोस्"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"स्वतः भरण"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"लगिङ लेभल"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"डिबग गर्न मिल्ने एपहरूमा मात्र एपको कम्प्याटिबिलिटीसँग सम्बन्धित परिवर्तनहरू गर्न सकिन्छ। कुनै डिबग गर्न मिल्ने एप इन्स्टल गरी फेरि प्रयास गर्नुहोस्।"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"अर्को सेटिङमा भर पर्छ"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"खाता"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d वटा खाता"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"डिभाइसको नाम"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"आधारभूत जानकारी"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"कानुनी तथा नियामक"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"कुनै NFC ट्याग स्क्यान गरिँदा यो एपलाई सुरु हुने अनुमति दिनुहोस्।\nतपाईंले यो अनुमति दिनुभयो भने कुनै ट्याग पत्ता लाग्दा कारबाही गर्नका लागि देखाइने विकल्पमध्ये एउटा विकल्पका रूपमा यो एप उपलब्ध हुने छ।"</string>
     <string name="media_output_title" msgid="8283629315159510680">"मिडिया यसमा प्ले गर्नुहोस्"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"यसमा <xliff:g id="LABEL">%s</xliff:g> प्ले गर्नुहोस्"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"अडियो प्ले भइरहने छ"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"यो डिभाइस"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"कलहरूको बेला अनुपलब्ध"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"यसमार्फत फोन उठाउनुहोस्"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"म्युट गर्नुहोस्"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"तपाईंले पावर मेनुमा गएर \"पावर बटन थिचिराख्नुहोस्\" परिवर्तन गरेपछि मात्र यो सेटिङ अन गर्न मिल्छ।"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"नेटवर्कको विवरण"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"तपाईंको फोनमा रहेका एपको प्रयोग गरी तपाईंको डिभाइसको नाम हेर्न सकिन्छ। तपाईंले ब्लुटुथ चल्ने डिभाइसमा कनेक्ट गर्दा, कुनै Wi-Fi नेटवर्कमा कनेक्ट गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरू पनि यसलाई देख्न सक्छन्।"</string>
     <string name="devices_title" msgid="649715719278562515">"यन्त्रहरू"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"नेटवर्क छनौट गर्नुहोस्‌"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"विच्छेद गरियो"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"नाम"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"रङ्ग (मिल्दा एपहरूले प्रयोग गरेका)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"सेभ गर्नुहोस्"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM प्रयोग गरियोस्"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"यो SIM प्रयोग गरियोस्"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"निष्क्रिय"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"यो SIM असक्षम पार्न SIM कार्ड हटाउनुहोस्"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> सक्रिय गर्न ट्याप गर्नुहोस्"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM मेट्नुहोस्"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"रुचाइएको नेटवर्कको प्रकार"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"नेटवर्क अपरेटिङ मोड परिवर्तन गर्नुहोस्"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"रुचाइएको नेटवर्कको प्रकार"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"मूल्यसम्बन्धी जानकारीका लागि आफ्नो नेटवर्क प्रदायकलाई सोध्नुहोस्।"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"एपले खपत गरेको डेटा"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"अमान्य नेटवर्क मोड <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। बेवास्ता गर्नुहोस्।"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"एक्सेस पोइन्ट नेम"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> मा जडान हुँदा उपलब्ध छैन"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> प्रयोग गर्न थाल्ने हो?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"यो SIM बदलेर प्रयोग भइरहेको SIM प्रयोग गर्ने हो?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> प्रयोग गर्ने हो?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"एक पटकमा एउटा SIM मात्र अन गर्न मिल्छ।\n\nयसलाई बदलेर <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> बनाउँदा पनि तपाईंको <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> को सेवा रद्द हुँदैन।"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"एक पटकमा एउटा eSIM मात्र एक्टिभेट गर्न सकिन्छ।\n\nतपाईंले <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> प्रयोग गर्न थाल्नुभयो भने पनि तपाईंको <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> सेवा रद्द हुने छैन।"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"एक पटकमा एउटा SIM मात्र अन गर्न मिल्छ।\n\nSIM बदल्दा तपाईंको <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> को सेवा रद्द हुने छैन।"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"तपाईं एकै पटकमा २ वटा SIM चलाउन सक्नुहुन्छ। तपाईं <xliff:g id="CARRIER_NAME">%1$s</xliff:g> प्रयोग गर्न चाहनुहुन्छ भने अर्को SIM अफ गर्नुहोस्।"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> प्रयोग गर्न थाल्नुहोस्"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> अफ गर्नुहोस्"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"पर्दैन, धन्यवाद"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"रद्द गर्नुहोस्"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"बदल्नुहोस्"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"अफ गर्नुहोस्"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM सक्रिय गर्न सकिएन"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"फेरि SIM सक्रिय गरी हेर्नुहोस्। अझै समस्या रहिरह्यो भने आफ्नो डिभाइस रिस्टार्ट गर्नुहोस्।"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"आफ्नो SIM सेटअप गर्नुहोस्"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"यो डिभाइसमा एकभन्दा बढी SIM प्रयोग गर्न आफ्नो मोबाइल नेटवर्कका प्राथमिकताहरू तय गर्नुहोस्"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"आफ्ना SIM मा लेबल राख्नुहोस्"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"तपाईं कल गर्दा, टेक्स्ट म्यासेज पठाउँदा, मोबाइल डेटा प्रयोग गर्दा र सेटिङमा यी लेबलहरू देख्नु हुने छ"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM को लेबल"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"लेबल"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"प्रयोग गर्ने SIM चयन गर्नुहोस्"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"तपाईं एकै पटकमा २ वटा SIM प्रयोग गर्न सक्नुहुन्छ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"आफ्ना प्राथमिक SIM सेटअप गर्नुहोस्"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"कल गर्न, टेक्स्ट म्यासेज पठाउन र मोबाइल डेटा प्रयोग गर्न डिफल्ट रूपमा कुन चाहिँ SIM प्रयोग गर्ने भन्ने कुरा छनौट गर्नुहोस्"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"तपाईंका प्राथमिक SIM हरू"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"कलहरू"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"टेक्स्टहरू"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"मोबाइल डेटा स्वतः स्विच हुने सुविधा"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"कभरेज तथा उपलब्धताका आधारमा कुनै एउटा SIM मार्फत मोबाइल डेटा प्रयोग गर्नुहोस्"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"मोबाइल डेटा मात्र"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"सेटअप गर्नुहोस्"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"अर्को"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"मोबाइल नेटवर्क"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"फोन नम्बर"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM को लेबल तथा रङ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"नेटवर्क सक्रिय गर्ने प्रक्रिया"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"मोबाइल सेवा प्रदायक परिवर्तन गरिँदै छ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> सक्रिय छ"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"पछि मोबाइल डेटा, कल गर्ने सुविधा र SMS सेवा प्रयोग गर्नु परेमा आफ्नो नेटवर्कका सेटिङमा जानुहोस्"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"यो eSIM मेटाउने हो?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"तपाईंले यो SIM मेटाउनुभयो भने यस डिभाइसबाट <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> सेवा हटाइने छ।\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> को सेवा भने रद्द गरिने छैन।"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"मेट्नुहोस्"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM मेटाइँदै छ…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM मेटाउन सकिएन"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"कुनै त्रुटि भएका कारण यो SIM मेटाउन सकिएन।\n\nआफ्नो डिभाइस रिस्टार्ट गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"डिभाइसमा कनेक्ट गरियोस्"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> एप तपाईंको डिभाइसमा कनेक्ट हुन कुनै अस्थायी Wi‑Fi नेटवर्क प्रयोग गर्न चाहन्छ"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"कुनै पनि यन्त्र फेला परेन। यन्त्रहरू सक्रिय हुनुका साथै जडान गर्नका लागि उपलब्ध भएको कुरा सुनिश्चित गर्नुहोस्।"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"आपताकालीन कल"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"तपाईंको सेवा प्रदायकले Wi‑Fi मार्फत आपत्‌कालीन कल गर्ने सुविधा समर्थन गदैन। \nअपतकालीन कल गर्नका लागि उक्त यन्त्रले स्वतः सेलुलर नेटवर्क प्रयोग गर्छ।\n सेलुलर नेटवर्कको कभरेज राम्रो भएका क्षेत्रमा मात्र अपतकालीन कल गर्न सम्भव हुन्छ।"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"कलको गुणस्तर सुधार्न Wi‑Fi प्रयोग गरी कल गर्नुहोस्"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ब्याकअप कलिङ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> प्रयोग गरी रोमिङ सुविधा चलाउन नमिल्ने भएमा कल गर्न <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> को मोबाइल डेटा SIM प्रयोग गर्नुहोस्।"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ब्याकअप कलिङ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"आगमन MMS म्यासेज"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS म्यासेज पठाउन सकिएन"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"मोबाइल डेटा निष्क्रिय हुँदा <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> लाई MMS म्यासेज पठाउने अनुमति दिन ट्याप गर्नुहोस्"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"तपाईंको कार्यको नीतिसम्बन्धी जानकारी"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"तपाईंका IT एडमिनले व्यवस्थापन गरेका सेटिङहरू"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"१६ के.बि. आकारको पेज चल्ने गरी बुट गर्नुहोस्"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"१६ के.बि. आकारको पेज चल्ने कर्नेल प्रयोग गरी डिभाइस बुट गर्नुहोस्"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"१६ के.बि. का पेजसँग कम्प्याटिबल कर्नेल प्रयोग गर्न रिबुट गर्ने हो?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"चेतावनी: केही एपहरू यो मोडसँग कम्प्याटिबल नहुन सक्छन्। पुष्टि गरेपछि डिभाइस रिबुट हुने छ।"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"४ के.बि. का पेजसँग कम्प्याटिबल कर्नेल प्रयोग गर्न रिबुट गर्ने हो?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"पुष्टि गरेपछि डिभाइस रिबुट हुने छ।"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"कर्नेल अपडेट गरी १६ के.बि. का पेजसँग कम्प्याटिबल कर्नेल बनाउन सकिएन।"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"परिवर्तन लागू गरिँदै छ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"बग रिपोर्ट ह्यान्ड्लर"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"तपाईंको डिभाइसमा कुन एपले बग रिपोर्टसम्बन्धी सर्टकट ह्यान्डल गर्दछ भन्ने कुरा निर्धारण गर्दछ।"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"व्यक्तिगत"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"प्लेब्याक तुरुन्तै सुचारु गर्न सकियोस् भन्नाका लागि द्रुत सेटिङमा मिडिया प्लेयर खुला रहन्छ"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"लक स्क्रिनमा मिडिया देखाइयोस्"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"प्लेब्याक तुरुन्तै सुचारु गर्न सकियोस् भन्नाका लागि लक स्क्रिनमा मिडिया प्लेयर खुला रहन्छ"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"मिडियासम्बन्धी सिफारिसहरू देखाइयोस्"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"सहायकले गर्ने मिडियासम्बन्धी सिफारिसहरू देखाइयोस्"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"तपाईंका क्रियाकलापमा आधारमा"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"प्लेयर लुकाउनुहोस्"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"प्लेयर देखाइयोस्"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM हरू"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"सक्रिय छ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"निष्क्रिय छ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> को डिफल्ट कन्फिगुरेसन"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"कलहरू"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"कम्प्याटिबल मिडियाको अडियो अझै इमर्सिभ हुन्छ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"हेड ट्र्याकिङ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"तपाईंले थप स्वाभाविक देखिनका लागि टाउको हल्लाउँदा अडियो बदलिन्छ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"अनुमतिहरू सिंक गर्नुहोस्"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"तपाईंले <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> लाई जुन जुन एप प्रयोग गर्ने अनुमति दिनुभएको छ <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> लाई पनि सोही अनुमति दिनुहोस्"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"फोनमा दिइएका अनुमतिहरू सिंक गर्नुहोस्"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"तपाईंले यो एपलाई यो फोनमा जुन जुन अनुमति दिनुभएको छ आफ्नो स्मार्ट वाचमा पनि सोही अनुमति दिनुहोस्"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"अडियो डिभाइसको प्रकार"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"अज्ञात"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"स्पिकर"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"मध्यम"</string>
     <string name="contrast_high" msgid="3988567609694797696">"उच्च"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"यो एप एउटा विन्डोमा मात्र खोल्न मिल्छ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"अन छ"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"अफ छ"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"अफ छ"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"अफ छ"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"अन छ"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"अफ छ"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"अन छ"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"अफ छ"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"उज्यालो स्क्रिनलाई अँध्यारो र अँध्यारो स्क्रिनलाई उज्यालो बनाउँछ"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"स्क्रिनमा जुम इन गर्नुहोस्"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"अफ छ"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"अफ छ"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"अन छ"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"अफ छ"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"अन छ"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"पासवर्ड अब सेटअप गरिएको छ"</string>
 </resources>
diff --git a/res/values-night/colors.xml b/res/values-night/colors.xml
index 7888191..a572841 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>
@@ -68,6 +69,8 @@
     <color name="udfps_enroll_progress_help">#607DA7F1</color>
     <color name="udfps_enroll_progress_help_with_talkback">#FFEE675C</color>
 
+    <!-- Accessibility colors -->
+    <color name="accessibility_text_reading_background">@android:color/black</color>
     <!-- Flash notifications colors -->
     <!-- Screen flash notification color selected stroke in color selection dialog -->
     <color name="screen_flash_color_button_outer_circle_stroke_color">#FFFFFF</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..d1c7669 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index b0b2499..f8e26c0 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Je bent nu ontwikkelaar!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Niet nodig, je bent al ontwikkelaar."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Zet eerst de opties voor ontwikkelaars aan."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Alleen beheerders hebben toegang tot ontwikkelaarsinstellingen."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Systeem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"In gebruik"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Niet in gebruik"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Het scherm aan de voorkant gaat aan als je het apparaat vouwt"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Alleen games, video\'s en meer"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Het scherm aan de voorkant gaat aan voor apps die voorkomen dat je scherm inactief wordt"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swipe omhoog om door te gaan"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Vouw je telefoon op en swipe omhoog op het scherm aan de voorkant om de app te blijven gebruiken, of wacht een paar seconden totdat het scherm is vergrendeld"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nooit"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Het scherm aan de voorkant wordt vergrendeld als je het apparaat vouwt"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Automatisch draaien gebruiken"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Gerelateerd"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringtone en wekkers"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio tijdens gesprekken"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Meldingen en andere systeemgeluiden"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media- en systeemgeluiden"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Meldingen"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Audio-uitvoer wordt standaard bepaald door afzonderlijke apps"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Naamloos Bluetooth-apparaat"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Zoeken"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth staat aan"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Alles tonen"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Alles tonen"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Knop bovenop indrukken"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (werkprofiel)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Schrijven in tekstvelden"</string>
     <string name="stylus_ignore_button" msgid="7734540973145241391">"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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Verbinden met een LE-audiostream"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Audiostreams in de buurt"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audiostreams"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Maak verbinding met een audiostream via een QR-code"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Geen audiostreams in de buurt gevonden"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ga naar de taalinstellingen van een app als je een taal voor elke app wilt selecteren."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Meer informatie over app-talen"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Systeemtaal wijzigen in %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s toevoegen aan voorkeurstalen?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Zo laat je apps en websites ook weten dat je de voorkeur geeft aan deze taal."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Je apparaatinstellingen en regionale voorkeuren worden gewijzigd."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Wijzigen"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s niet beschikbaar"</string>
@@ -196,6 +212,14 @@
     <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>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Aanspreekvorm"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Geef aan hoe je wilt worden aangesproken"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Apps kunnen worden gepersonaliseerd op basis van je gewenste aanspreekvorm."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Niet opgegeven"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Vrouw"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Man"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutraal"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Geselecteerde taal verwijderen?}other{Geselecteerde talen verwijderen?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst wordt getoond in een andere taal."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kan niet alle talen verwijderen"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Locatie"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Locatie gebruiken"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Uit"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Aan: # app heeft toegang tot de locatie}other{Aan: # apps hebben toegang tot de locatie}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aan: # app heeft toegang tot de locatie}other{Aan: # apps hebben toegang tot de locatie}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Laden…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps met rechten voor apparaten in de buurt kunnen ongeveer inschatten waar verbonden apparaten zijn."</string>
     <string name="location_settings_footer_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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Meer informatie over locatie-instellingen"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Meer informatie over locatie-instellingen"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Wijzig de locatietoegang via Instellingen &gt; Beveiliging en privacy &gt; Privacyopties"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Voor de beste resultaten gebruik je een gecertificeerde Made for Google-screenprotector. Bij andere screenprotectors werkt de vingerafdruk van je kind misschien niet."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Ontgrendelen via smartwatch"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Als je Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk instelt, vraagt je telefoon naar je vingerafdruk als je een mondkapje draagt of in een donkere omgeving bent.\n\nJe kunt ontgrendelen met je smartwatch als je gezicht of vingerafdruk niet wordt herkend."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Je kunt ontgrendelen met je smartwatch als je vingerafdruk niet wordt herkend."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Je kunt ontgrendelen met je smartwatch als je gezicht niet wordt herkend."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Als je Ontgrendelen via gezichtsherkenning en Ontgrendelen met vingerafdruk instelt, vraagt je telefoon naar je vingerafdruk als je een mondkapje draagt of in een donkere omgeving bent.\n\nOntgrendelen via smartwatch is een andere handige manier om je telefoon te ontgrendelen, bijvoorbeeld als je vingers nat zijn of je gezicht niet wordt herkend."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Ontgrendelen via smartwatch is een andere handige manier om je telefoon te ontgrendelen, bijvoorbeeld als je vingerafdruk niet wordt herkend."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Ontgrendelen via smartwatch is een andere handige manier om je telefoon te ontgrendelen, bijvoorbeeld als je gezicht niet wordt herkend."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Vingerafdruk of smartwatch gebruiken voor"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Gezicht of smartwatch gebruiken voor"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Gezicht, vingerafdruk of smartwatch gebruiken voor"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gezicht en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gezicht, vingerafdruk en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gezicht, vingerafdrukken en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Ontgrendelen via Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Smartwatch toegevoegd"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Je smartwatch instellen"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ontgrendelen via smartwatch is een handige manier om deze telefoon te ontgrendelen, bijvoorbeeld als je handen nat zijn of je gezicht niet wordt herkend.\n\nZo ontgrendel je deze telefoon met je smartwatch:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Niet nu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Doorgaan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Meer"</string>
+    <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 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>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Je smartwatch kiezen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Beschikbare smartwatches"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuleren"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bevestigen"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Dat is alles."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Je kunt je smartwatch nu gebruiken om deze telefoon te ontgrendelen als je op het vergrendelscherm omhoog swipet of op een melding tikt"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Klaar"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Ontgrendelen via smartwatch"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Je kunt je smartwatch gebruiken om deze telefoon te ontgrendelen als je op het vergrendelscherm omhoog swipet of op een melding tikt"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Voor gebruik van Ontgrendelen via smartwatch moet je smartwatch zijn ontgrendeld, om je pols zitten, binnen bereik zijn en zijn gekoppeld aan deze telefoon. Als de verbinding wordt verstoord, moet je de telefoon ontgrendelen voordat je Ontgrendelen via smartwatch kunt gebruiken.\n\nOnthoud het volgende:\nEr kan maar één smartwatch tegelijk zijn ingesteld. Als je nog een smartwatch wilt toevoegen, verwijder je de huidige."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Meer informatie over Ontgrendelen via smartwatch"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Smartwatch toevoegen"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Smartwatch verwijderen"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Ontgrendelen via vingerafdruk en gezicht"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ontgrendelen via gezichtsherkenning en vingerafdruk voor werk"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Instellen nodig"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Beveiliging"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Privé-apps vergrendeld en verborgen houden"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Houd privé-apps in een aparte ruimte die je kunt verbergen of vergrendelen"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Vergrendeling van privéruimte"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Je kunt Privéruimte op dezelfde manier ontgrendelen als je apparaat of een andere vergrendeling kiezen"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Schermvergrendeling van apparaat gebruiken"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Ontgrendelen via gezichtsherkenning en met vingerafdruk"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Ontgrendelen met vingerafdruk"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Ontgrendelen via gezichtsherkenning"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tik om in te stellen"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Ontgrendelen met vingerafdruk voor privégedeelte"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Ontgrendelen via gezichtsherkenning voor privégedeelte"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Manieren om te ontgrendelen"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Hetzelfde als de apparaatschermvergrendeling"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Nieuwe vergrendeling voor privéruimte kiezen?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automatisch vergrendelen"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Privégedeelte automatisch vergrendelen"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Je kunt je privégedeelte automatisch laten vergrendelen als je je apparaat een tijdje niet hebt gebruikt"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Elke keer dat apparaat wordt vergrendeld"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Na 5 minuten inactiviteit"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nooit"</string>
+    <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_delete_title" msgid="3075645119800272800">"Privéruimte verwijderen"</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="private_space_unlocked" msgid="9091600948712932046">"Privégedeelte ontgrendeld"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Schermvergrendeling instellen"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Als je 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="private_space_cancel_label" msgid="379259667396956886">"Annuleren"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Instellen"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Een privéruimte instellen"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Houd privé-apps in een aparte ruimte die je kunt verbergen of vergrendelen"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Hoe het werkt"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Je kunt toegang tot je privéruimte krijgen vanaf de onderkant van de lijst met apps"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps in je privéruimte hebben een vergrendeling"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Meldingen van apps in je privéruimte worden verborgen als deze is vergrendeld"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Apps in je privéruimte verschijnen niet in Rechtenbeheer, het privacydashboard en in andere instellingen als je privéruimte is vergrendeld.\n\nJe privéruimte kan niet worden overgezet naar een nieuw apparaat. Je moet een nieuwe privéruimte instellen als je deze wilt gebruiken op een ander apparaat.\n\nIedereen die je apparaat aan een computer koppelt of schadelijke apps op je apparaat installeert, heeft mogelijk toegang tot je privéruimte."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Privéruimte instellen…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Meldingen van apps in een privéruimte worden verborgen als deze is vergrendeld"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Privégedeelte ontgrendelen om foto\'s of bestanden van apps in je privégedeelte te delen"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Sommige apps zijn al geïnstalleerd in je privéruimte"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Kan privéruimte niet instellen"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Opnieuw proberen"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Schermvergrendeling gebruiken voor ontgrendeling van privéruimte?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Je kunt je privéruimte op dezelfde manier ontgrendelen als je apparaat of een andere vergrendeling kiezen"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Schermvergrendeling gebruiken"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Nieuwe vergrendeling kiezen"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Je bent klaar."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Ga voor toegang tot je privéruimte naar je lijst met apps en scroll omlaag"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Klaar"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scroll omlaag voor privéruimte"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Kies een vergrendeling voor je privéruimte"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Je kunt je privéruimte ontgrendelen met je vingerafdruk. Uit beveiligingsoverwegingen is voor deze optie een extra vergrendeling vereist."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Pincode instellen voor privégedeelte"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Wachtwoord instellen voor privégedeelte"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Patroon instellen voor privégedeelte"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Om Privéruimte te tonen (niet de definitieve gebruikerservaring)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Open de app Instellingen"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tik op Beveiliging en privacy &gt; Privéruimte &gt; Privéruimte verbergen indien vergrendeld"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Schakelaar Privéruimte verbergen indien vergrendeld"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Opmerking voor Googlers: Deze functie wordt nog ontwikkeld"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Je moet deze toegangscode wellicht ook opgeven op het andere apparaat."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bevestigen om te koppelen met de gecoördineerde set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Toegang geven tot je contacten en gespreksgeschiedenis"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ook toegang geven tot contacten en gespreksgeschiedenis"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"De informatie wordt onder andere gebruikt voor gespreksaankondigingen"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Kan geen verbinding maken met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Beschikbare apparaten"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"In vliegtuigmodus"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Melding voor openbare netwerken tonen"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Laat weten als er een netwerk van hoge kwaliteit beschikbaar is"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP-netwerk toestaan"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP is een ouder beveiligingsprotocol dat minder goed beveiligd is"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Je provider staat WEP-netwerken niet toe omdat deze minder goed beveiligd zijn"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wifi automatisch aanzetten"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wifi wordt opnieuw aangezet in de buurt van opgeslagen netwerken van hoge kwaliteit, zoals je thuisnetwerk"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Niet beschikbaar omdat locatietoegang uitstaat. Zet de "<annotation id="link">"locatietoegang"</annotation>" aan."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Met wifi-scannen sta je apps en services toe altijd te scannen naar wifi-netwerken in de buurt, zelfs als wifi uitstaat. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aanzetten"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wifi-scannen aangezet"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Dit netwerk gebruikt een ouder beveiligingsprotocol dat minder goed beveiligd is"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> is geblokkeerd"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Dit netwerk gebruikt een ouder beveiligingsprotocol dat WEP wordt genoemd. Dit protocol is minder goed beveiligd. Als je toch verbinding wilt maken, kun je WEP-netwerken toestaan."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Je provider staat je niet toe om verbinding te maken met dit netwerk omdat het een ouder beveiligingsprotocol gebruikt dat minder goed beveiligd is"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP toestaan"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Sluiten"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Geavanceerde opties"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Dropdownmenu \'Geavanceerde opties\'"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"uitvouwen"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wifi blijven gebruiken"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Nooit meer tonen"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Verbinden"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi staat aan"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Verbonden met <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Verbinding maken met <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Verbinden…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Kan geen verbinding maken met het netwerk"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netwerk is niet binnen bereik"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Vergeten"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Aanpassen"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Vergeten van netwerk is mislukt"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Opslaan"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Opslaan van netwerk is mislukt"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Annuleren"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wifi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobiele data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Opladen"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Opladen"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot-verbinding"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Verbindingssterkte"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Opgeslagen netwerken"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Geen wachtwoord ingesteld"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Naam hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Wachtwoord hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Frequentieband voor toegangspunt"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspot automatisch uitzetten"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Als er geen apparaten zijn verbonden"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Compatibiliteit uitbreiden"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Witbalans van scherm"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Standaard framesnelheid voor games uitzetten"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Zet beperking van de maximale framesnelheid voor games tot <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz uit."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Schermaandacht gebruikt de camera aan de voorzijde om te zien of er iemand naar het scherm kijkt. Deze functie werkt op het apparaat zelf: de afbeeldingen worden nooit opgeslagen of naar Google verzonden."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Schermaandacht aanzetten"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Houd het scherm aan als je ernaar kijkt"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Een langere time-out voor het scherm verbruikt meer batterijlading."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera is vergrendeld"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"De camera moet zijn ontgrendeld voor gezichtsherkenning"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera moet zijn ontgrendeld voor schermaandacht"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (simkaartsleuf <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (simkaartsleuf <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primair)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Kies opgeslagen netwerk om te bekijken"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-versie"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Accuniveau"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Gemeenschappelijk"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Gemeenschappelijke instellingen"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Opslaan"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Annuleren"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Het veld \'Naam\' mag niet leeg zijn."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"De APN mag niet leeg zijn."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-veld moet 3 cijfers bevatten."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-veld moet 2 of 3 cijfers bevatten."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"De provider staat het toevoegen van APN\'s van het type %s niet toe."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-veld moet geldig zijn."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Standaard-APN-instellingen herstellen."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Standaardinstellingen herstellen"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Herstellen van standaard-APN-instellingen voltooid."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Resetten"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth en wifi zijn gereset"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"E-simkaarten wissen"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Hiermee zeg je geen mobiele abonnementen op. Neem contact op met je provider als je vervangende simkaarten wilt downloaden."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Instellingen resetten"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Alle netwerkinstellingen resetten? Je kunt deze actie niet ongedaan maken."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Alle netwerkinstellingen resetten en e-simkaarten wissen? Je kunt deze actie niet ongedaan maken."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Resetten?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Netwerk herstellen is niet beschikbaar voor deze gebruiker"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Netwerkinstellingen zijn gereset"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Kan simkaarten niet wissen"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Door een fout kunnen e-simkaarten niet worden gewist.\n\nStart je apparaat opnieuw op en probeer het nogmaals."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Alle gegevens wissen (fabrieksinstellingen terugzetten)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Alle gegevens wissen (fabrieksinstellingen terugzetten)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Muziek"</li>\n<li>"Foto\'s"</li>\n<li>"Andere gebruikersgegevens"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"E-simkaarten"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Je mobiele abonnement wordt niet opgezegd."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Al je persoonlijke informatie en gedownloade apps worden verwijderd. Je kunt deze actie niet ongedaan maken."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Al je persoonlijke informatie wordt verwijderd, waaronder gedownloade apps en simkaarten. Je kunt deze actie niet ongedaan maken."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Alle gegevens wissen?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Fabrieksinstellingen terugzetten is niet beschikbaar voor deze gebruiker"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Wissen"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, bluetooth, ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet wordt niet gedeeld met andere apparaten"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Uit"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wifi-hotspot niet gebruiken"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Internet alleen delen via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Internet alleen delen via bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Internet alleen delen via ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Internet alleen delen via USB en bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Internet alleen delen via USB en ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Internet alleen delen via bluetooth en ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Internet alleen delen via USB, bluetooth en ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-tethering"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gebruik hotspot en tethering om internet aan andere apparaten te leveren via je wifi- of mobiele dataverbinding. Apps kunnen ook hotspots maken om content te delen met apparaten in de buurt."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hulp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobiel netwerk"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobiel abonnement"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Sms-app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Sms-app wijzigen?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Wil je <xliff:g id="NEW_APP">%1$s</xliff:g> als je sms-app gebruiken in plaats van <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wifi-assistent wijzigen?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"<xliff:g id="NEW_APP">%1$s</xliff:g> gebruiken in plaats van <xliff:g id="CURRENT_APP">%2$s</xliff:g> om je netwerkverbindingen te beheren?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"<xliff:g id="NEW_APP">%s</xliff:g> gebruiken om je netwerkverbindingen te beheren?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Onbekende simkaartprovider"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> heeft geen bekende registratiewebsite"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Plaats een simkaart en start het apparaat opnieuw"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Maak verbinding met internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Recente locatieverzoeken"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Locatie voor werkprofiel"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Locatierechten voor apps"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Toegang intrekken"</string>
     <string name="controls_label" msgid="8671492254263626383">"Bedieningselementen"</string>
     <string name="force_stop" msgid="2681771622136916280">"Ge­dwong­en stop­pen"</string>
+    <string name="archive" msgid="9074663845068632127">"Archiveren"</string>
+    <string name="restore" msgid="7622486640713967157">"Herstellen"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Totaal"</string>
     <string name="application_size_label" msgid="6407051020651716729">"App-grootte"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB-opslagapp"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Kan pakketgrootte niet berekenen."</string>
     <string name="version_text" msgid="7628938665256107608">"versie <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Verplaatsen"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Archiveren is mislukt"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> gearchiveerd"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Herstel is mislukt"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> wordt hersteld"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Er wordt al een andere migratie uitgevoerd."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Niet voldoende opslagruimte."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"App bestaat niet."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Beschikbaar schermtoetsenbord"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Schermtoetsen­borden beheren"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opties"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Toegankelijkheid"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysiek toetsenbord"</string>
     <string name="show_ime" msgid="4334255501724746849">"Schermtoetsenbord gebruiken"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Toon op het scherm terwijl het fysieke toetsenbord actief is"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Bouncetoetsen"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Zet Bouncetoetsen aan voor toegankelijkheid voor het fysieke toetsenbord"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Plaktoetsen"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Zet Plaktoetsen aan voor toegankelijkheid voor het fysieke toetsenbord"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Sneltoetsen"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Toon lijst met sneltoetsen"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Toetsenborden en tools van werkprofiel"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sorteren op gebruikstijd"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sorteren op laatst gebruikt"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sorteren op app-naam"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Laatst gebruikt"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Laatst gebruikt"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nooit"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Gebruikstijd"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Toegankelijkheid"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Instellingen voor toegankelijkheid"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Toch doorgaan"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Annuleren"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Instellingen voor vergroting"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Vergroten door 3 keer te tikken"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Vergroten met sneltoets"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Vergroten met sneltoets en drie keer tikken"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Over <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Dubbeltik met 2 vingers op het scherm 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="860548190334486449">"Dubbeltik met 2 vingers ergens op het scherm 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Als je een toegankelijkheidsfunctie 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Instellingen voor knop Toegankelijkheid"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Knopinstellingen"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Snelkoppeling voor <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Knop Toegankelijkheid"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Toegankelijkheidsgebaar"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dubbeltik met 2 vingers op het scherm"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dubbeltik met 2 vingers op het scherm"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tik snel {0,number,integer} keer op het scherm met 2 vingers"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"3 keer op het scherm tikken"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Meer informatie over de knop Toegankelijkheid en het toegankelijkheidsgebaar"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"De toegankelijkheidsknop gebruiken. Het gebaar is niet beschikbaar bij navigatie met 3 knoppen."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Krijg snel toegang tot toegankelijkheidsfuncties"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Aan de slag"</b>\n"1. Ga naar de toegankelijkheidsinstellingen.\n2. Selecteer een functie en tik op de snelkoppeling.\n3. Kies of je een knop of gebaar wilt gebruiken om de functie te openen."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Aan de slag"</b>\n"1. Ga naar de toegankelijkheidsinstellingen.\n2. Selecteer een functie en tik op de snelkoppeling.\n3. Kies de knop waarmee je de functie wilt openen."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Aan de slag&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ga naar de toegankelijkheidsinstellingen&lt;br/&gt; {1,number,integer}. Kies een functie en tik op de sneltoets&lt;br/&gt; {2,number,integer}. Geef aan of je een knop of gebaar wilt gebruiken voor toegang tot de functie&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Aan de slag&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Ga naar de toegankelijkheidsinstellingen&lt;br/&gt; {1,number,integer}. Kies een functie en tik op de sneltoets&lt;br/&gt; {2,number,integer}. Kies de knop waarmee je de functie wilt openen&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Knop of gebaar gebruiken"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Locatie"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Formaat"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Aan/uit-knop beëindigt gesprek"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Grote cursor"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Maak de cursor duidelijker"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Alle apps donker maken"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Van toepassing op apps zonder eigen donker thema. Er kunnen problemen zoals omgekeerde kleuren zijn."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animaties verwijderen"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Minder beweging op het scherm"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monogeluid"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"De functie kan je interacties met een app of een hardwaresensor bijhouden en namens jou met apps communiceren."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Toestaan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Weigeren"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stoppen"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Annuleren"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> beëindigen?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Als je op <xliff:g id="STOP">%1$s</xliff:g> tikt, wordt <xliff:g id="SERVICE">%2$s</xliff:g> gestopt."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Uitzetten"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Aan laten"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> uitzetten?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Geen services geïnstalleerd"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Geen service geselecteerd"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Geen beschrijving opgegeven."</string>
     <string name="settings_button" msgid="2195468788019730377">"Instellingen"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"lichtgevoeligheid, fotofobie, donker thema, migraine, hoofdpijn, leesstand, nachtstand, helderheid verlagen, witpunt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"gebruiksgemak, makkelijke toegang, ondersteuning, ondersteunend"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"zicht, gehoor, blind, doof, motoriek, mobiliteit, ondersteunend, ondersteuning, gebruiksgemak, toegankelijkheid, hand, hulp"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"venstervergroting, zoom, vergroting, slechtziend, vergroten, groter maken"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"ondertiteling, ondertiteling voor doven en slechthorenden, CC, Live transcriptie, slechthorend, gehoorverlies, CART, spraak naar tekst, ondertitels"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kleurcontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorisch, muis"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hoortoestellen, slechthorend, gehoorverlies, cochleaire implantaten, versterkingsapparaten, geluidsprocessors"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motoriek, muis, externe muis, hoofdmuis, aanpasbare muis, rolstoel, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hoortoestellen, slechthorend, gehoorverlies, cochleaire implantaten, versterkingsapparaten, geluidsprocessors, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"slechthorend, gehoorverlies, ondertiteling, teletype, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"3 knoppen"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"mobiliteit, motoriek, senior, artritis, rsi, beroerte, tremor, multiple sclerosis, hersenverlamming, trillen, repetitive strain injury, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"vertraging, mobiliteit, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Afdrukken"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Uit"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 afdrukservice aan}other{# afdrukservices aan}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Apps met het hoogste verbruik bekijken"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Opladen geoptimaliseerd om de batterij te beschermen"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Opladen is geoptimaliseerd om de levensduur van de batterij te verlengen"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Opladen geoptimaliseerd om de batterij te beschermen"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Opladen is geoptimaliseerd als het apparaat is gedockt om de levensduur van de batterij te verlengen"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Opladen geoptimaliseerd om de batterij te beschermen"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Opladen is geoptimaliseerd als het apparaat is gedockt om de levensduur van de batterij te verlengen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Volledig opladen"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"De volgende keer dat je tablet is gedockt, wordt het opladen geoptimaliseerd om de batterij te beschermen"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Meer informatie over pauze tijdens opladen"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Opladen hervatten"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Omvat achtergrondactiviteit met hoog energieverbruik"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Verwijderen"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Annuleren"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Opladen tot vol"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Probleem met oplaadaccessoire"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Meer informatie over opladen met een incompatibele oplader"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Batterijbeheer"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Apps automatisch beheren"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"nu"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Diagram voor batterijgebruik"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagram van batterijgebruik per dag"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagram van batterijgebruik per uur"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Percentage batterijniveau van <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> tot <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Batterijgebruik sinds de laatste keer dat de batterij volledig werd opgeladen"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Batterijgebruik voor <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Schermtijd sinds laatste keer dat de batterij volledig werd opgeladen"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Noodoproepsignaal"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Gedrag bij noodoproepen instellen"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Back-up"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Aan"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Uit"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Back-up en herstel"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Persoonsgegevens"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Back-up maken van mijn gegevens"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Naam"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Type"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Serveradres"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-versleuteling (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-geheim"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-ID"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Van tevoren gedeelde IPSec-sleutel"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-gebruikerscertificaat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"CA-certificaat voor IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-servercertificaat"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Geavanceerde opties tonen"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-zoekdomeinen"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-servers (bijv. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Doorstuurroutes (bijv. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Gebruikersnaam"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Wachtwoord"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Accountgegevens opslaan"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(niet gebruikt)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(server niet verifiëren)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ontvangen van server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Dit type VPN kan niet continu verbonden blijven"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Always-on VPN ondersteunt alleen numerieke serveradressen"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Er moet een DNS-server worden ingesteld voor Always-on VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adressen van DNS-servers moeten numeriek zijn voor Always-on VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"De opgegeven informatie is niet geschikt voor Always-on VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Annuleren"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Sluiten"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Verbindingen zonder VPN blokkeren"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN-verbinding vereisen?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Niet beveiligd. Update naar een IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Kan niet-ondersteund VPN niet starten."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecteer een VPN-profiel waarmee je altijd verbonden wilt blijven. Netwerkverkeer wordt alleen toegestaan bij verbinding met dit VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Geen"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Voor Always-on VPN is een IP-adres voor zowel de server als DNS vereist."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER Alerts"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Berichten ontvangen over ontvoerde kinderen"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Herhalen"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Oproepbeheer aanzetten"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Deze service toestaan te beheren hoe je gesprekken worden uitgevoerd."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Oproepbeheer"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Mobiele noodmeldingen"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Netwerkproviders"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Namen van toegangspunten"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"portemonnee"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"betalen, tikken, betalingen"</string>
     <string name="keywords_backup" msgid="707735920706667685">"back-up, back-up maken, back-uppen"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gebaar"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"gezicht, ontgrendelen, auth, inloggen"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"gezicht, ontgrendelen, verificatie, inloggen, vingerafdruk, biometrisch"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl-versie, imei-softwareversie"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Opstartgeluiden"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live ondertiteling"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Ondertitel media automatisch"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefoonspeakers"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tabletspeakers"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Apparaatspeakers"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Bedrade koptelefoon"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Compatibele media leveren een royaler geluid"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Uit"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Wat wil je tonen op het vergrendelscherm?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Recente gesprekken verwijderd"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Gesprek verwijderd"</string>
     <string name="clear" msgid="5092178335409471100">"Wissen"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> wissen"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioriteitsgesprekken en gewijzigde gesprekken zie je hier"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Zodra je een gesprek als prioriteitsgesprek markeert of wijzigingen in gesprekken aanbrengt, zie je ze hier. \n\nZo wijzig je gespreksinstellingen: \nswipe omlaag vanaf de bovenkant van het scherm om het pull-downvenster te openen, tik op een gesprek en houd het vast."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimaliseren"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Uit"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"App vastzetten"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Als je een app vastzet, kun je de huidige app in beeld houden totdat je deze losmaakt. Je kunt deze functie bijvoorbeeld gebruiken om een vriend die je vertrouwt, een specifieke game te laten spelen."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Als je een app hebt vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonsgegevens toegankelijk. \n\nZo zet je een app vast: 	\n1. Zet App vastzetten aan. 	\n2. Open Overzicht. 	\n3. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Als je een app hebt vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonsgegevens toegankelijk. \n\nAls je je apparaat beveiligd met iemand wilt delen, probeer je een gastgebruiker. \n\nZo zet je een app vast: 	\n1. Zet App vastzetten aan. 	\n2. Open Overzicht. 	\n3. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Als je een app hebt vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonsgegevens toegankelijk. \n\nZo gebruik je de functie voor app vastzetten: 	\n{0,number,integer}. Zet App vastzetten aan 	\n{1,number,integer}. Open het overzicht 	\n{2,number,integer}. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Als je een app hebt vastgezet, kan de vastgezette app mogelijk andere apps openen en zijn er misschien persoonsgegevens toegankelijk. \n\nAls je je apparaat beveiligd met iemand wilt delen, probeer je een gastgebruiker. \n\nZo gebruik je de functie voor app vastzetten: 	\n{0,number,integer}. Zet App vastzetten aan 	\n{1,number,integer}. Open het overzicht 	\n{2,number,integer}. Tik bovenaan het scherm op het app-icoon en daarna op Vastzetten"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Als een app is vastgezet: \n\n•	 Persoonsgegevens kunnen toegankelijk zijn (zoals contacten en e-mails).\n \n•	 De vastgezette app kan mogelijk andere apps openen. \n\nGebruik deze functie alleen met mensen die je vertrouwt."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Vraag om ontgrendelingspatroon voor losmaken"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Vraag pin voor losmaken"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Niet-gebruikte app-instellingen"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Onderbreken indien niet gebruikt"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Verwijder rechten en tijdelijke bestanden, en stop meldingen"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"App beheren indien ongebruikt"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Verwijder rechten en tijdelijke bestanden, stop meldingen en archiveer de app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Alle apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Geïnstalleerde apps"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant-apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Vrij"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Geheugen gebruikt door apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app heeft geheugen gebruikt in de afgelopen {time}}other{# apps hebben geheugen gebruikt in de afgelopen {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Profilering geheugengebruik aanzetten"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Voor profilering van geheugengebruik zijn aanvullende systeembronnen nodig."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilering van geheugen uitgezet"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequentie"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximaal gebruik"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Geen data gebruikt"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Weergeven vóór andere apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Weergeven vóór andere apps toestaan"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Sta toe dat deze app op de voorgrond wordt weergegeven vóór andere apps die je gebruikt. Deze app kan zien waar je tikt of wijzigen wat op het scherm wordt weergegeven."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Media-uitvoer wijzigen"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"App toestaan media-uitvoer te wijzigen"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Sta deze app toe om te kiezen welk verbonden apparaat audio of video van andere apps afspeelt. Als dit is toegestaan, heeft deze app toegang tot een lijst met beschikbare apparaten, zoals koptelefoons en speakers, en kan deze kiezen welk uitvoerapparaat wordt gebruikt om audio of video te streamen of te casten."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Toegang tot alle bestanden"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Spraakactivering verbeteren"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Dit apparaat maakt gebruik van privé-informatie om het spraakactiveringsmodel te verbeteren. Apps kunnen samengevatte updates ontvangen die van veel verschillende gebruikers worden verzameld om de privacy te behouden en tegelijkertijd het model voor iedereen te verbeteren.\n\n"<a href="">"Meer informatie over privé-informatie"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> datawaarschuwing"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> datalimiet"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> datawaarschuwing/<xliff:g id="ID_2">^2</xliff:g> datalimiet"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Het door de provider berekende dataverbruik kan afwijken van de berekening van het apparaat"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Toont geen data die door providernetwerken worden gebruikt"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> gebruikt"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Datawaarschuwing instellen"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> geleden geüpdatet"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Zojuist geüpdatet door <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Zojuist geüpdatet"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Abonnement bekijken"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Details bekijken"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Databesparing"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Onbeperkte data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Afwijking in batterijgebruik"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Ontwikkelaarstegels voor Snelle instellingen"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Time-out voor uitzetten ADB-machtiging"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Zet het automatisch intrekken van ADB-rechten uit voor systemen die niet binnen de standaardperiode (7 dagen) of de door de gebruiker ingestelde periode (minimaal 1 dag) opnieuw verbinding hebben gemaakt"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope-tracering"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensoren uit"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Instellingen voor werkprofiel"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Zoeken naar contacten in zakelijke telefoongids in persoonlijke apps"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Service voor automatisch invullen"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Standaardservice voor automatisch invullen"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Wachtwoorden"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Wachtwoorden, toegangssleutels en gegevensservices"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Aanvullende providers"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# wachtwoord}other{# wachtwoorden}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatisch, invullen, automatisch invullen, wachtwoord"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Wachtwoorden, toegangssleutels en gegevensservices"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Alle services uitzetten?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Wachtwoorden, toegangssleutels en andere opgeslagen informatie worden niet automatisch worden ingevuld als je inlogt."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&amp;gtWijzig je voorkeursservice in &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&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_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s gebruiken?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Er kunnen maar 5 services aanstaan"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Zet minsten 1 service uit om een andere toe te voegen"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s gebruikt wat er op je scherm staat om te bepalen wat automatisch kan worden ingevuld."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limiet voor wachtwoorden, toegangssleutels en gegevensservices"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Je kunt maximaal 5 wachtwoorden, toegangssleutels en gegevensservices tegelijk hebben. Zet een service uit om meer toe te voegen."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limiet voor wachtwoorden, toegangssleutels en gegevensservices"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Je kunt maximaal 5 wachtwoorden, toegangssleutels en gegevensservices tegelijk actief hebben. Zet een service uit om meer toe te voegen."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Uitzetten"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatisch invullen"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logniveau"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Wijzigingen in app-compatibiliteit kunnen alleen worden aangepast voor apps waarin fouten kunnen worden opgespoord. Installeer een app waarin fouten kunnen worden opgespoord en probeer het opnieuw."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Is afhankelijk van een andere instelling"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d accounts"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Apparaatnaam"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basisinformatie"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Juridisch en regelgeving"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Sta toe dat deze app wordt gelanceerd als een NFC-tag wordt gescand.\nAls dit recht aanstaat, is de app beschikbaar als optie wanneer er een tag wordt waargenomen."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Media afspelen naar"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> afspelen op"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio wordt afgespeeld op"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Dit apparaat"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Niet beschikbaar tijdens gesprekken"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Opnemen op"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Geluid uit"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Als je dit wilt aanzetten, wijzig je eerst \'Aan/uit-knop ingedrukt houden\' in het aan/uit-menu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Netwerk­gegevens"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Je apparaatnaam is zichtbaar voor apps op je telefoon. 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="devices_title" msgid="649715719278562515">"Apparaten"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Netwerk kiezen"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Verbinding verbroken"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Naam"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Kleur (gebruikt door geschikte apps)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Opslaan"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Simkaart gebruiken"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Deze sim gebruiken"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Uit"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Verwijder de simkaart om deze simkaart uit te zetten"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Tik om <xliff:g id="CARRIER">%1$s</xliff:g> te activeren"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Simkaart wissen"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Voorkeursnetwerktype"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"De netwerkgebruiksmodus wijzigen"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Voorkeursnetwerktype"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Neem contact op met je netwerkprovider over de prijzen."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Datagebruik van app"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ongeldige netwerkmodus <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Negeren."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Toegangspuntnamen"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Niet beschikbaar wanneer verbonden met <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Overschakelen naar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Overschakelen naar simkaart?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> gebruiken?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Er kan maar 1 simkaart tegelijk actief zijn.\n\nAls je overschakelt naar <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, wordt de service van <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> niet geannuleerd."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Er kan maar 1 e-simkaart tegelijk actief zijn.\n\nAls je overschakelt naar <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, wordt de service van <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> niet opgezegd."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Er kan maar 1 simkaart tegelijk actief zijn.\n\nAls je overschakelt, wordt de service van <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> niet geannuleerd."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Je kunt 2 simkaarten tegelijk gebruiken. Als je <xliff:g id="CARRIER_NAME">%1$s</xliff:g> wilt gebruiken, zet je de andere simkaart uit."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Overschakelen naar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> uitzetten"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nee, bedankt"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Annuleren"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Overschakelen"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Uitzetten"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kan simkaart niet activeren"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Probeer de simkaart weer aan te zetten. Als het probleem blijft optreden, start je het apparaat opnieuw op."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Je sim instellen"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Stel je voorkeuren voor mobiele netwerken in om meerdere sims te gebruiken op dit apparaat"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Je sims labelen"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Je ziet deze labels als je belt, tekstberichten stuurt of data gebruikt, en in Instellingen"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Simlabel"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Sims selecteren voor gebruik"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Je kunt 2 sims tegelijk gebruiken"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Je primaire sims instellen"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Kies welke sims je standaard wilt gebruiken voor gesprekken, tekstberichten en data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Je primaire sims"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Gesprekken"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Tekstberichten"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatische dataschakeling"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Gebruik data van beide sims, afhankelijk van dekking en beschikbaarheid"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Alleen data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Instellen"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Volgende"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobiel netwerk"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefoonnummer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Simlabel en kleur"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netwerkactivering"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Wijziging van provider"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is actief"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Als je mobiele data, gespreksfuncties en sms later wilt gebruiken, ga je naar de netwerkinstellingen"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"Simkaart"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Deze e-simkaart wissen?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Als je deze simkaart wist, wordt de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-service van dit apparaat verwijderd.\n\nDe service voor <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> wordt niet geannuleerd."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Wissen"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Simkaart wissen…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Kan simkaart niet wissen"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Door een fout kan deze simkaart niet worden gewist.\n\nStart je apparaat opnieuw op en probeer het nogmaals."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Verbinding maken met apparaat"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"De <xliff:g id="APPNAME">%1$s</xliff:g>-app wil een tijdelijk wifi-netwerk gebruiken om verbinding te maken met je apparaat."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Geen apparaten gevonden. Zorg dat de apparaten aanstaan en verbinding kunnen maken."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Noodoproepen"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Noodoproepen via wifi worden niet ondersteund door je provider.\nHet apparaat schakelt automatisch over naar een mobiel netwerk om een noodoproep te plaatsen.\nNoodoproepen zijn alleen mogelijk in gebieden met mobiele dekking."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Wifi gebruiken voor gesprekken om de kwaliteit te verbeteren"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Reserveoptie voor bellen"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Als <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> niet beschikbaar is of roaming actief is, kun je bellen via <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> met je simkaart voor mobiele data."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"reserveoptie voor bellen"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Inkomende mms"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Kan mms niet verzenden"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tik om mms-berichten via <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> toe te staan als mobiele data uitstaan"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informatie over je werkbeleid"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Instellingen beheerd door je IT-beheerder"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Opstarten met paginagrootte 16 K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Opstarten met kernel voor paginagrootte van 16 K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Opnieuw opstarten met kernel voor pagina\'s van 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"WAARSCHUWING: Sommige apps werken misschien niet met deze modus. Het apparaat wordt na bevestiging opnieuw opgestart."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Opnieuw opstarten met kernel voor pagina\'s van 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Het apparaat wordt na bevestiging opnieuw opgestart."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Kan kernel niet updaten naar kernel voor pagina\'s van 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Wijziging toepassen"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"App voor verwerking bugrapport"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Hierdoor wordt bepaald welke app de snelkoppeling voor het bugrapport verwerkt op je apparaat."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Privé"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"De mediaspeler blijft open staan in Snelle instellingen, zodat je snel kunt verdergaan met afspelen"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Media tonen op vergrendelscherm"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"De mediaspeler blijft open staan op het vergrendelscherm, zodat je snel kunt doorgaan met afspelen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Media-aanbevelingen laten zien"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Media-aanbevelingen van de Assistent tonen"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Op basis van je activiteit"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Speler verbergen"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Toon speler"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"Simkaart"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"E-simkaart"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"E-simkaarten"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Actief"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactief"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Standaard voor <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"gesprekken"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"sms"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Compatibele media leveren een royaler geluid"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Bewegingen van het hoofd volgen"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"De audio wordt aangepast als je je hoofd beweegt, voor een natuurlijker geluid"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Rechten synchroniseren"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Geef <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> dezelfde app-rechten die je op <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> hebt toegestaan"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Rechten synchroniseren vanaf de telefoon"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Geef je smartwatch dezelfde app-rechten die je op deze telefoon hebt toegestaan"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type audioapparaat"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Onbekend"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Gemiddeld"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Hoog"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Deze app kan maar in 1 venster worden geopend"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aan"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Uit"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Uit"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Uit"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Aan"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Uit"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Aan"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Uit"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Maakt lichte schermen donker en donkere schermen licht"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zoom in op het scherm"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Uit"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Uit"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Aan"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Uit"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Aan"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Wachtwoord is nu ingesteld"</string>
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 563d018..133d09f 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 ମିନିଟ ପରେ"</item>
     <item msgid="1574040255478150028">"5 ମିନିଟ ପରେ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 4a9c632..87479b8 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"ଡେଭେଲପର ସେଟିଂସକୁ କେବଳ ଆଡମିନ ୟୁଜରମାନେ ଆକ୍ସେସ କରିପାରିବେ।"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ସିଷ୍ଟମ୍‌"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"ସେବାରେ ଅଛି"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ଏବେ କାମ କରୁନାହିଁ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ଜାରି ରଖିବା ପାଇଁ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ଆପ ବ୍ୟବହାର କରିବା ଜାରି ରଖିବା ପାଇଁ ଆପଣଙ୍କ ଫୋନକୁ ଫୋଲ୍ଡ କରି ଫ୍ରଣ୍ଟ ଡିସପ୍ଲେରେ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ କିମ୍ବା ସ୍କ୍ରିନ ଲକ ହେବା ପାଇଁ କିଛି ସମୟ ଅପେକ୍ଷା କରନ୍ତୁ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ସମ୍ବନ୍ଧିତ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ରିଂଟୋନ ଏବଂ ଆଲାରାମ"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"କଲ ସମୟରେ ଅଡିଓ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"ମିଡିଆ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"ବିଜ୍ଞପ୍ତି ଓ ଅନ୍ୟ ସିଷ୍ଟମ ସାଉଣ୍ଡ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"ମିଡିଆ ଓ ସିଷ୍ଟମ ସାଉଣ୍ଡଗୁଡ଼ିକ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ଡିଫଲ୍ଟ ଭାବେ ଅଡିଓ ଆଉଟପୁଟ ଅଲଗା ଆପ୍ସ ଦ୍ୱାରା ସ୍ଥିର କରାଯାଏ"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"ନାମହୀନ ବ୍ଲୁଟୂଥ୍‍‌ ଡିଭାଇସ୍‌"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"ଖୋଜୁଛି..."</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ବ୍ଲୁ-ଟୁଥ୍‍ ଅନ୍‌ କରାଗଲା"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ସବୁ ଦେଖନ୍ତୁ"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ସବୁ ଦେଖନ୍ତୁ"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ଷ୍ଟାଇଲସ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ଟେଲ ବଟନ ଦବାଯାଇଛି"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (ୱାର୍କ ପ୍ରୋଫାଇଲ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"ଏକ LE ଅଡିଓ ଷ୍ଟ୍ରିମ ସହ କନେକ୍ଟ କରନ୍ତୁ"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"ଆଖପାଖର ଅଡିଓ ଷ୍ଟ୍ରିମଗୁଡ଼ିକ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ଅଡିଓ ଷ୍ଟ୍ରିମଗୁଡ଼ିକ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR କୋଡ ବ୍ୟବହାର କରି ଏକ ଅଡିଓ ଷ୍ଟ୍ରିମ ସହ କନେକ୍ଟ କରନ୍ତୁ"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"ଆଖପାଖର କୌଣସି ଅଡିଓ ଷ୍ଟ୍ରିମ ମିଳିଲା ନାହିଁ।"</string>
     <string name="date_and_time" msgid="1788358029823431692">"ତାରିଖ ଓ ସମୟ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ପ୍ରକ୍ସି"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ଖାଲି କରନ୍ତୁ"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ପ୍ରତ୍ୟେକ ଆପ ପାଇଁ ଏକ ଭାଷା ଚୟନ କରିବାକୁ, ଆପ ଭାଷା ସେଟିଂସକୁ ଯାଆନ୍ତୁ।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ଆପ ଭାଷାଗୁଡ଼ିକ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ସିଷ୍ଟମ ଭାଷା %sକୁ ପରିବର୍ତ୍ତନ କରିବେ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"ପସନ୍ଦର ଭାଷାଗୁଡ଼ିକରେ %sକୁ ଯୋଗ କରିବେ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ଏହା ଆପ୍ସ ଏବଂ ୱେବସାଇଟଗୁଡ଼ିକୁ ଆପଣ ମଧ୍ୟ ଏହି ଭାଷାକୁ ପସନ୍ଦ କରୁଛନ୍ତି ବୋଲି ଜାଣିବାକୁ ଦିଏ।"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"ଆପଣଙ୍କ ଡିଭାଇସ ସେଟିଂସ ଏବଂ ଆଞ୍ଚଳିକ ପସନ୍ଦଗୁଡ଼ିକ ପରିବର୍ତ୍ତନ ହେବ।"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ଉପଲବ୍ଧ ନାହିଁ"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ଶନିବାର"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ଯଦି ଏକ ଆପ ଆଞ୍ଚଳିକ ପସନ୍ଦଗୁଡ଼ିକୁ ସମର୍ଥନ କରେ ନାହିଁ, ତେବେ ଏହି ଆପଟି ଏହାର ଡିଫଲ୍ଟ ଲୋକେଲ ସେଟିଂସକୁ ବ୍ୟବହାର କରିବ।"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ଭାଷା ପସନ୍ଦଗୁଡ଼ିକ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ।"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ଅତିରିକ୍ତ ପସନ୍ଦ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ସମ୍ବୋନ୍ଧନର ଶବ୍ଦଗୁଡ଼ିକ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"ଆପଣଙ୍କୁ କିପରି ସମ୍ବୋନ୍ଧିତ କରାଯିବ ବୋଲି ଆପଣ ଚାହାଁନ୍ତି ତାହା ସେଟ କରନ୍ତୁ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"ଆପଣଙ୍କୁ କିପରି ସମ୍ବୋନ୍ଧିତ କରାଯିବ ତାହା ପର୍ସନାଲାଇଜ କରିବା ପାଇଁ ଆପ୍ସ ଆପଣଙ୍କ ସମ୍ବୋନ୍ଧନର ଶବ୍ଦଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିପାରିବ।"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"ନିର୍ଦ୍ଦିଷ୍ଟ କରାଯାଇନାହିଁ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ସ୍ତ୍ରୀଲିଙ୍ଗ"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ପୁଲିଙ୍ଗ"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ନ୍ୟୁଟ୍ରାଲ୍"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ଚୟନିତ ଭାଷାକୁ କାଢ଼ି ଦେବେ?}other{ଚୟନିତ ଭାଷାଗୁଡ଼ିକୁ କାଢ଼ି ଦେବେ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ଅନ୍ୟ ଭାଷାରେ ଲେଖା ଦେଖାଦେବ।"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ସମସ୍ତ ଭାଷାଗୁଡ଼ିକୁ ଅପସାରଣ କରିପାରିବେ ନାହିଁ"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ଲୋକେସନ୍‌"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ଲୋକେସନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ବନ୍ଦ"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ଚାଲୁ ଅଛି - #ଟି ଆପର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}other{ଚାଲୁ ଅଛି - #ଟି ଆପ୍ସର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ଚାଲୁ ଅଛି / #ଟି ଆପର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}other{ଚାଲୁ ଅଛି / #ଟି ଆପ୍ସର ଲୋକେସନକୁ ଆକ୍ସେସ ଅଛି}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ଲୋଡ୍ ହେଉଛି…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ପାଇଁ ଅନୁମତି ଥିବା ଆପ୍ସ କନେକ୍ଟ ହୋଇଥିବା ଡିଭାଇସଗୁଡ଼ିକର ଆପେକ୍ଷିକ ଅବସ୍ଥିତିକୁ ନିର୍ଦ୍ଧାରଣ କରିପାରିବ।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ଆପ୍ସ ଓ ସେବାଗୁଡ଼ିକ ପାଇଁ ଲୋକେସନ ଆକ୍ସେସ ବନ୍ଦ ଅଛି। ଆପଣ ଏକ ଜରୁରୀକାଳୀନ ନମ୍ବରକୁ କଲ କରିବା କିମ୍ବା ଟେକ୍ସଟ ମେସେଜ ପଠାଇବା ସମୟରେ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନ ଏବେ ବି ଜରୁରୀକାଳୀନ ଉତ୍ତରଦାତାମାନଙ୍କୁ ପଠାଯାଇପାରେ।"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ଲୋକେସନ ସେଟିଂସ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ।"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ଲୋକେସନ ସେଟିଂସ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ଲୋକେସନ ଆକ୍ସେସ ପରିବର୍ତ୍ତନ ପାଇଁ ସେଟିଂସ &gt; ସୁରକ୍ଷା ଓ ଗୋପନୀୟତା &gt; ଗୋପନୀୟତା ନିୟନ୍ତ୍ରଣକୁ ଯାଅ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ସର୍ବୋତ୍ତମ ଫଳାଫଳ ପାଇଁ, Made for Google ସ୍ୱୀକୃତିପ୍ରାପ୍ତ ଏକ ସ୍କ୍ରିନ ପ୍ରୋଟେକ୍ଟର ବ୍ୟବହାର କରନ୍ତୁ। ଅନ୍ୟ ସ୍କ୍ରିନ ପ୍ରୋଟେକ୍ଟରଗୁଡ଼ିକ ସହିତ, ଆପଣଙ୍କ ପିଲାର ଟିପଚିହ୍ନ କାମ କରିନପାରେ।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ୱାଚ ଅନଲକ"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"ଯେତେବେଳେ ଆପଣ ଫେସ ଅନଲକ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ସେଟ ଅପ କରନ୍ତି, ସେତେବେଳେ ଆପଣ ଏକ ମାସ୍କ ପିନ୍ଧିଥିଲେ ବା ଏକ ଅନ୍ଧାରୁଆ ସ୍ଥାନରେ ଥିଲେ ଆପଣଙ୍କ ଫୋନ ଆପଣଙ୍କ ଟିପଚିହ୍ନ ପାଇଁ ପଚାରିବ।\n\nଆପଣଙ୍କ ଫେସ କିମ୍ବା ଟିପଚିହ୍ନ ଚିହ୍ନଟ ନହେଲେ ଆପଣ ଆପଣଙ୍କ ୱାଚ ମାଧ୍ୟମରେ ଅନଲକ କରିପାରିବେ।"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"ଆପଣଙ୍କ ଟିପଚିହ୍ନ ଚିହ୍ନଟ ନହେଲେ ଆପଣ ଆପଣଙ୍କ ୱାଚ ମାଧ୍ୟମରେ ଅନଲକ କରିପାରିବେ।"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"ଆପଣଙ୍କ ଫେସ ଚିହ୍ନଟ ନହେଲେ ଆପଣ ଆପଣଙ୍କ ୱାଚ ମାଧ୍ୟମରେ ଅନଲକ କରିପାରିବେ।"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"ଯେତେବେଳେ ଆପଣ ଫେସ ଅନଲକ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ ସେଟ ଅପ କରନ୍ତି, ସେତେବେଳେ ଆପଣ ଏକ ମାସ୍କ ପିନ୍ଧିଥିଲେ ବା ଏକ ଅନ୍ଧାରୁଆ ସ୍ଥାନରେ ଥିଲେ ଆପଣଙ୍କ ଫୋନ ଆପଣଙ୍କ ଟିପଚିହ୍ନ ପାଇଁ ପଚାରିବ।\n\nଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ୱାଚ ଅନଲକ ଅନ୍ୟ ଏକ ସୁବିଧାଜନକ ଉପାୟ ଅଟେ, ଉଦାହରଣ ସ୍ୱରୂପ, ଯେତେବେଳେ ଆପଣଙ୍କ ଆଙ୍ଗୁଠି ଓଦା ଥାଏ କିମ୍ବା ଆପଣଙ୍କ ଫେସ ଚିହ୍ନଟ ହୋଇନଥାଏ।"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ୱାଚ ଅନଲକ ଅନ୍ୟ ଏକ ସୁବିଧାଜନକ ଉପାୟ ଅଟେ, ଉଦାହରଣ ସ୍ୱରୂପ, ଯେତେବେଳେ ଆପଣଙ୍କ ଟିପଚିହ୍ନ ଚିହ୍ନଟ ହୋଇନଥାଏ।"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ଆପଣଙ୍କ ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ୱାଚ ଅନଲକ ଅନ୍ୟ ଏକ ସୁବିଧାଜନକ ଉପାୟ ଅଟେ, ଉଦାହରଣ ସ୍ୱରୂପ, ଯେତେବେଳେ ଆପଣଙ୍କ ଫେସ ଚିହ୍ନଟ ହୋଇନଥାଏ।"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ଏହା କରିବାକୁ ଟିପଚିହ୍ନ କିମ୍ବା ୱାଚ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ଏହା କରିବାକୁ ଫେସ କିମ୍ବା ୱାଚ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ଏହା କରିବାକୁ ଫେସ, ଟିପଚିହ୍ନ କିମ୍ବା ୱାଚ ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ଫେସ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"ରିମୋଟ ଅଥେଣ୍ଟିକେଟର ଅନଲକ"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ୱାଚ ଯୋଗ କରାଯାଇଛି"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ଆପଣଙ୍କ ୱାଚ ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ଏହା କିପରି କାମ କରେ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ଆପଣଙ୍କ ରିଷ୍ଟରେ ଆପଣଙ୍କର ୱାଚକୁ ଅନଲକ କରାଯିବା ଆବଶ୍ୟକ ଏବଂ ଏହା ଏହି ଫୋନର ଆଖପାଖରେ ଥିବା ଆବଶ୍ୟକ। ଆପଣଙ୍କ ୱାଚ ରିଷ୍ଟରେ ଥିବା ସମୟରେ ଆପଣ ଏହାକୁ ଅନଲକ କରିବାର ଆବଶ୍ୟକତା ନାହିଁ।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ଯେତେବେଳେ ଏହି ଫୋନକୁ ଅନଲକ କରାଯାଏ, ଆପଣଙ୍କ ୱାଚରେ ଆପଣଙ୍କୁ ସୂଚିତ କରାଯିବ। ଯଦି ଆପଣ ଚାହୁଁ ନଥିବା ସମୟରେ ଏହାକୁ ଅନଲକ କରାଯାଇଥାଏ, ତେବେ ଫୋନକୁ ପୁଣି ଲକ କରିବା ପାଇଁ ବିଜ୍ଞପ୍ତିରେ ଟାପ କରନ୍ତୁ।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ଆପଣଙ୍କ ନିୟନ୍ତ୍ରଣରେ ଅଛି"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ଆପଣ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ୱାଚ ଅନଲକରୁ ଆପଣଙ୍କ ୱାଚକୁ କାଢ଼ି ଦେଇପାରିବେ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ଏକ ବିଜ୍ଞପ୍ତିରେ ଟାପ କରନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ଲକ ସ୍କ୍ରିନରେ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ଆପଣଙ୍କ ୱାଚ ବାଛନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ଉପଲବ୍ଧ ୱାଚଗୁଡ଼ିକ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ବାତିଲ କରନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ଆପଣ ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରସ୍ତୁତ!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ଆପଣ ଲକ ସ୍କ୍ରିନରେ ଉପରକୁ ସ୍ୱାଇପ କଲେ କିମ୍ବା ଏକ ବିଜ୍ଞପ୍ତିରେ ଟାପ କଲେ ଏହି ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କ ୱାଚକୁ ବ୍ୟବହାର କରିପାରିବେ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ହୋଇଗଲା"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ୱାଚ ଅନଲକ"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ଆପଣ ଲକ ସ୍କ୍ରିନରେ ଉପରକୁ ସ୍ୱାଇପ କଲେ କିମ୍ବା ଏକ ବିଜ୍ଞପ୍ତିରେ ଟାପ କଲେ ଏହି ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ଆପଣ ଆପଣଙ୍କ ୱାଚକୁ ବ୍ୟବହାର କରିପାରିବେ"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ୱାଚ ଅନଲକକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, ଆଖପାଖରେ ଆପଣଙ୍କର ରିଷ୍ଟରେ ଆପଣଙ୍କ ୱାଚକୁ ଅନଲକ କରାଯିବା ଦରକାର ଏବଂ ଏହା ଏହି ଫୋନ ସହ କନେକ୍ଟ ହେବା ଆବଶ୍ୟକ। ଯଦି କନେକ୍ସନ ବାଧାପ୍ରାପ୍ତ ହୁଏ, ତେବେ ଆପଣ ୱାଚ ଅନଲକ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଆପଣଙ୍କୁ ଫୋନ ଅନଲକ କରିବାକୁ ହେବ।\n\nମନେ ରଖନ୍ତୁ:\nଥରକେ ଆପଣ କେବଳ ଗୋଟିଏ ୱାଚ ସେଟ ଅପ କରିପାରିବେ। ଅନ୍ୟ ଏକ ୱାଚ ଯୋଗ କରିବା ପାଇଁ ପ୍ରଥମେ ବର୍ତ୍ତମାନର ୱାଚକୁ କାଢ଼ି ଦିଅନ୍ତୁ।"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ୱାଚ ଅନଲକ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ୱାଚ ଯୋଗ କରନ୍ତୁ"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ୱାଚକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ଟିପଚିହ୍ନ ଏବଂ ଫେସ ଅନଲକ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ୱାର୍କ ପାଇଁ ଫେସ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ସେଟଅପ ଆବଶ୍ୟକ"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ସୁରକ୍ଷା"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ଗୋପନୀୟତା"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"ୱାର୍କ ପ୍ରୋଫାଇଲ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ପ୍ରାଇଭେଟ ସ୍ପେସ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ପ୍ରାଇଭେଟ ଆପ୍ସକୁ ଲକ ଏବଂ ଲୁକ୍କାୟିତ ରଖନ୍ତୁ"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ଆପଣ ଲୁଚାଇ ପାରୁଥିବା କିମ୍ବା ଲକ କରିପାରୁଥିବା ଏକ ଅଲଗା ସ୍ପେସରେ ପ୍ରାଇଭେଟ ଆପ୍ସକୁ ରଖନ୍ତୁ"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"ଆପଣଙ୍କ ଡିଭାଇସକୁ ଆପଣ ଅନଲକ କରିବା ପରି Private Spaceକୁ ଅନଲକ କରିପାରିବେ କିମ୍ୱା ଏକ ଭିନ୍ନ ଲକ ବାଛିପାରିବେ"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ଡିଭାଇସ ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ଫେସ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ଫେସ୍ ଅନଲକ୍"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ସେଟ ଅପ କରିବାକୁ ଟାପ କରନ୍ତୁ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଫେସ ଅନଲକ"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"ଅନଲକ କରିବାର ଉପାୟ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ଡିଭାଇସ ସ୍କ୍ରିନ ଲକ ପରି ସମାନ"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଏକ ନୂଆ ଲକ ବାଛିବେ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ସ୍ୱତଃ ଲକ କରନ୍ତୁ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ସ୍ୱତଃ ଲକ କରନ୍ତୁ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"ଯଦି ଆପଣ ଆପଣଙ୍କ ଡିଭାଇସକୁ ଏକ ସମୟ ଅବଧି ପାଇଁ ବ୍ୟବହାର କରିନାହାଁନ୍ତି ତେବେ ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଆପଣ ସ୍ୱତଃ ଲକ କରିପାରିବେ"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ପ୍ରତି ଥର ଡିଭାଇସ ଲକ ହେଲେ"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 ମିନିଟ ନିଷ୍କ୍ରିୟ ରହିବା ପରେ"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"କେବେ ବି ନୁହେଁ"</string>
+    <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_deleted" msgid="7825768516955610897">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସଫଳତାର ସହ ଡିଲିଟ କରାଯାଇଛି"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଡିଲିଟ କରାଯାଇପାରିଲା ନାହିଁ"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଅନଲକ କରାଯାଇଛି"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ଏକ ସ୍କ୍ରିନ ଲକ ସେଟ କରନ୍ତୁ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସ ବ୍ୟବହାର କରିବାକୁ ଏହି ଡିଭାଇସରେ ଏକ ସ୍କ୍ରିନ ଲକ ସେଟ କରନ୍ତୁ"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ସ୍କ୍ରିନ ଲକ ସେଟ କରନ୍ତୁ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ବାତିଲ କରନ୍ତୁ"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ବାତିଲ କରନ୍ତୁ"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ଏକ ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ଆପଣ ଲୁଚାଇ ପାରୁଥିବା କିମ୍ବା ଲକ କରିପାରୁଥିବା ଏକ ଅଲଗା ସ୍ପେସରେ ପ୍ରାଇଭେଟ ଆପ୍ସକୁ ରଖନ୍ତୁ"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ଏହା କିପରି କାମ କରେ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ଆପଣ ଆପଣଙ୍କ ଆପ୍ସ ତାଲିକାର ନିମ୍ନରୁ ଆପଣଙ୍କର ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଆକ୍ସେସ କରିପାରିବେ"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସରେ ଥିବା ଆପ୍ସ ଏକ ଲକ ଦ୍ୱାରା ସୁରକ୍ଷିତ ଅଟେ"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ ଥିବା ସମୟରେ ଏଥିରେ ଥିବା ଆପ୍ସରୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଲୁଚାଯାଇଥାଏ"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ ଥିବା ସମୟରେ ଆପଣଙ୍କର ପ୍ରାଇଭେଟ ସ୍ପେସରେ ଥିବା ଆପ୍ସ ଅନୁମତି ପରିଚାଳକ, ଗୋପନୀୟତା ଡେସବୋର୍ଡ ଏବଂ ଅନ୍ୟ ସେଟିଂସରେ ଦେଖାଯିବ ନାହିଁ।\n\nଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଏକ ନୂଆ ଡିଭାଇସକୁ ମୁଭ କରାଯାଇପାରିବ ନାହିଁ। ଯଦି ଆପଣ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଅନ୍ୟ ଏକ ଡିଭାଇସରେ ବ୍ୟବହାର କରିବାକୁ ଚାହାଁନ୍ତି ତେବେ ଆପଣଙ୍କୁ ଅନ୍ୟ ଏକ ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରିବାକୁ ହେବ।\n\nଆପଣଙ୍କ ଡିଭାଇସକୁ ଏକ କମ୍ପ୍ୟୁଟର ସହ କନେକ୍ଟ କରୁଥିବା କିମ୍ବା ଆପଣଙ୍କ ଡିଭାଇସରେ କ୍ଷତିକାରକ ଆପ୍ସ ଇନଷ୍ଟଲ କରୁଥିବା ଯେ କୌଣସି ବ୍ୟକ୍ତି ଆପଣଙ୍କର ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ସକ୍ଷମ ହୋଇପାରନ୍ତି।"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରାଯାଉଛି…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ ଥିବା ସମୟରେ ଏଥିରେ ଥିବା ଆପ୍ସରୁ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଲୁଚାଯାଇଥାଏ"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଆପ୍ସରୁ ଫଟୋ କିମ୍ୱା ଫାଇଲଗୁଡ଼ିକ ସେୟାର କରିବା ପାଇଁ ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଅନଲକ କରନ୍ତୁ"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"କିଛି ଆପ୍ସକୁ ପୂର୍ବରୁ ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସରେ ଇନଷ୍ଟଲ କରାଯାଇଛି"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ପ୍ରାଇଭେଟ ସ୍ପେସ ସେଟ ଅପ କରାଯାଇପାରିଲା ନାହିଁ"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଅନଲକ ପାଇଁ ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରିବେ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"ଆପଣଙ୍କ ଡିଭାଇସକୁ ଆପଣ ଅନଲକ କରିବା ପରି ଆପଣଙ୍କର ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଅନଲକ କରିପାରିବେ କିମ୍ୱା ଏକ ଭିନ୍ନ ଲକ ବାଛିପାରିବେ"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ସ୍କ୍ରିନ ଲକ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"ନୂଆ ଲକ ବାଛନ୍ତୁ"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ପ୍ରସ୍ତୁତ!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"ଆପଣଙ୍କର ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣଙ୍କ ଆପ୍ସ ତାଲିକାକୁ ଯାଇ ତଳକୁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ହୋଇଗଲା"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଖୋଜିବା ପାଇଁ ତଳକୁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ଆପଣଙ୍କ ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଏକ ଲକ ବାଛନ୍ତୁ"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"ଆପଣ ଆପଣଙ୍କ ଟିପଚିହ୍ନ ବ୍ୟବହାର କରି ଆପଣଙ୍କର ପ୍ରାଇଭେଟ ସ୍ପେସକୁ ଅନଲକ କରିପାରିବେ। ସୁରକ୍ଷା ପାଇଁ, ଏହି ବିକଳ୍ପ ନିମନ୍ତେ ଏକ ବେକଅପ ଲକ ଆବଶ୍ୟକ।"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ନିଜ ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଏକ PIN ସେଟ କର"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ନିଜ ପ୍ରାଇଭେଟ ସ୍ପେସର ଏକ ପାସୱାର୍ଡ ସେଟ କର"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ନିଜ ପ୍ରାଇଭେଟ ସ୍ପେସ ପାଇଁ ଏକ ପାଟର୍ନ ସେଟ କର"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଦେଖାଇବା ପାଇଁ (ଫାଇନାଲ UX ନୁହେଁ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Settings ଆପ ଖୋଲନ୍ତୁ"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ସୁରକ୍ଷା &amp; ଗୋପନୀୟତା &gt; ପ୍ରାଇଭେଟ ସ୍ପେସ &gt; ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ ଥିବା ସମୟରେ ଏହାକୁ ଲୁଚାନ୍ତୁରେ ଟାପ କରନ୍ତୁ"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"ପ୍ରାଇଭେଟ ସ୍ପେସ ଲକ ଥିବା ସମୟରେ ଏହାକୁ ଲୁଚାନ୍ତୁ ଟୋଗଲ ବନ୍ଦ କରନ୍ତୁ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googlerମାନଙ୍କ ପାଇଁ ନୋଟ: ଏହି ଫିଚରର ଡେଭଲପମେଣ୍ଟ ଏବେ ବି ଚାଲିଛି"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ଏହି ପାସ୍‌-କୀକୁ ଅନ୍ୟ ଡିଭାଇସ୍‌ରେ ମଧ୍ୟ ଟାଇପ୍‌ କରିବା ଆବଶ୍ୟକ ହୋଇପରେ।"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"କୋର୍ଡିନେଟ କରାଯାଇଥିବା ସେଟ ସହ ପେୟାର କରିବାକୁ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ଆପଣଙ୍କ କଣ୍ଟାକ୍ଟ ଓ କଲ ହିଷ୍ଟୋରୀକୁ ଆକ୍ସେସ କରିବାର ଅନୁମତି‌ ଦିଅନ୍ତୁ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"କଣ୍ଟାକ୍ଟ ଏବଂ କଲ ଇତିହାସକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ମଧ୍ୟ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ସୂଚନାକୁ କଲ ଘୋଷଣା ଏବଂ ଆହୁରି ଅଧିକ ପାଇଁ ବ୍ୟବହାର କରାଯିବ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ସଂଯୋଗ ସ୍ଥାପନା କରିପାରୁନାହିଁ।"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ଉପଲବ୍ଧ ଡିଭାଇସ୍"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ଏୟାରପ୍ଲେନ୍‌ ମୋଡ୍‌ରେ"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ସାର୍ବଜନୀନ ନେଟୱାର୍କ ପାଇଁ ସୂଚିତ କରନ୍ତୁ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ଏକ ଉଚ୍ଚ-ଗୁଣବତ୍ତା ସାର୍ବଜନୀନ ନେଟୱାର୍କ ଉପଲବ୍ଧ ଥିବାବେଳେ ସୂଚିତ କରନ୍ତୁ"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ନେଟୱାର୍କଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ହେଉଛି କମ ସୁରକ୍ଷିତ ଥିବା ଏକ ପୁରୁଣା ସୁରକ୍ଷା ପ୍ରୋଟୋକଲ"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP ନେଟୱାର୍କଗୁଡ଼ିକ କମ ସୁରକ୍ଷିତ ହୋଇଥିବା ଯୋଗୁଁ ଆପଣଙ୍କ କେରିଅର ସେଗୁଡ଼ିକୁ ଅନୁମତି ଦିଏ ନାହିଁ"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"ୱାଇ-ଫାଇ ସ୍ୱଚାଳିତ ଭାବେ ଚାଲୁ କରନ୍ତୁ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"ଆପଣଙ୍କର ହୋମ ନେଟୱାର୍କ ଭଳି ସେଭ ହୋଇଥିବା ଉଚ୍ଚ ଗୁଣବତ୍ତାର ନେଟୱାର୍କଗୁଡ଼ିକ ନିକଟରେ ୱାଇ-ଫାଇ ପୁଣି ଚାଲୁ ହେବ"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ଉପଲବ୍ଧ ନାହିଁ, କାରଣ ଲୋକେସନ୍ ବନ୍ଦ ଅଛି। "<annotation id="link">"ଲୋକେସନ୍"</annotation>"କୁ ଚାଲୁ କରନ୍ତୁ।"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ଯେ କୌଣସି ସମୟରେ, ଏପରିକି ୱାଇ-ଫାଇ ବନ୍ଦ ଥିବାବେଳେ ମଧ୍ୟ ୱାଇ-ଫାଇ ସ୍କାନିଂ, ୱାଇ-ଫାଇ ନେଟ୍‌ୱାର୍କକୁ ଖୋଜିବା ପାଇଁ ଆପ୍ ଓ ସେବାଗୁଡ଼ିକୁ ଅନୁମତି ଦେଇଥାଏ। ଉଦାହରଣସ୍ଵରୂପ, ଲୋକେସନ୍ ଆଧାରିତ ଫିଚର୍ ଓ ସେବା ପାଇଁ ଏହାକୁ ବ୍ୟବହାର କରାଯାଇପାରିବ।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ଚାଲୁ କରନ୍ତୁ"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"ୱାଇ-ଫାଇ ସ୍କାନିଂ ଚାଲୁ ଅଛି"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ଏହି ନେଟୱାର୍କ କମ ସୁରକ୍ଷିତ ଥିବା ଏକ ପୁରୁଣା ସୁରକ୍ଷା ପ୍ରୋଟୋକଲ ବ୍ୟବହାର କରେ"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g>କୁ ବ୍ଲକ କରାଯାଇଛି"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ଏହି ନେଟୱାର୍କ କମ ସୁରକ୍ଷିତ ଥିବା WEP ନାମକ ଏକ ପୁରୁଣା ସୁରକ୍ଷା ପ୍ରୋଟୋକଲ ବ୍ୟବହାର କରେ। ଯେ କୌଣସି ମତେ କନେକ୍ଟ କରିବାକୁ ଆପଣ WEP ନେଟୱାର୍କଗୁଡ଼ିକୁ ଅନୁମତି ଦେଇପାରିବେ।"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ଏହି ନେଟୱାର୍କ କମ ସୁରକ୍ଷିତ ଥିବା ଏକ ପୁରୁଣା ସୁରକ୍ଷା ପ୍ରୋଟୋକଲ ବ୍ୟବହାର କରୁଥିବା ଯୋଗୁଁ ଆପଣଙ୍କ କେରିଅର ଆପଣଙ୍କୁ ଏହା ସହ କନେକ୍ଟ କରିବାକୁ ଅନୁମତି ଦିଏ ନାହିଁ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEPକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"ଉନ୍ନତ ବିକଳ୍ପ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ଡ୍ରପ୍-ଡାଉନ୍ ତାଲିକାରେ ଉନ୍ନତ ବିକଳ୍ପଗୁଡ଼ିକ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ବିସ୍ତାର କରନ୍ତୁ"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"ୱାଇ-ଫାଇରେ ରୁହନ୍ତୁ"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ଆଉ ଆଦୌ ଦେଖାଅ ନାହିଁ"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"କନେକ୍ଟ କରନ୍ତୁ"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"ୱାଇ-ଫାଇ ଅନ୍‍ ଅଛି"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ସଂଯୁକ୍ତ ହୋଇଛି"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ସଂଯୋଗ ହେଉଛି"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"ସଂଯୋଗ ହେଉଛି…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ନେଟ୍‌ୱର୍କକୁ ସଂଯୋଗ କରିପାରିଲା ନାହିଁ।"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ନେଟ୍‌ୱର୍କ ପରିସୀମା ମଧ୍ୟରେ ନାହିଁ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ଭୁଲିଯାଆନ୍ତୁ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ସଂଶୋଧନ"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ନେଟ୍‌ୱର୍କ ଭୁଲିଯିବାରେ ବିଫଳ ହେଲା"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ସେଭ୍‍ କରନ୍ତୁ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ନେଟୱାର୍କ୍‌ ସେଭ୍‌ କରି ପାରିଲା ନାହିଁ"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ବାତିଲ"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"ୱାଇ-ଫାଇ"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ମୋବାଇଲ ଡାଟା"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ଇଥରନେଟ"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ଚାର୍ଜ ହେଉଛି"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ଚାର୍ଜ ହେଉଛି"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ହଟସ୍ପଟ କନେକ୍ସନ"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"କନେକ୍ସନ କ୍ଷମତା"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ସେଭ ହୋଇଥିବା ନେଟୱାର୍କ"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"କୌଣସି ପାସ୍‌ୱାର୍ଡ୍‌ ସେଭ୍‌ ହୋଇନାହିଁ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ହଟସ୍ପଟ ନାମ"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ହଟସ୍ପଟ ପାସୱାର୍ଡ"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP ବ୍ୟାଣ୍ଡ"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ସ୍ୱତଃ ହଟସ୍ପଟ ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"ଯେତେବେଳେ କୌଣସି ଡିଭାଇସ କନେକ୍ଟ ହୋଇନଥାଏ"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"କମ୍ପାଟିବିଲିଟୀ ବଢ଼ାନ୍ତୁ"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ଗେମ୍ସ ପାଇଁ ଡିଫଲ୍ଟ ଫ୍ରେମ ରେଟ ଅକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hzରେ ଗେମ୍ସ ପାଇଁ ସର୍ବାଧିକ ଫ୍ରେମ ରେଟକୁ ସୀମିତ କରିବା ଅକ୍ଷମ କରନ୍ତୁ।"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"ସ୍ମୁଥ ଡିସପ୍ଲେ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"ସ୍କ୍ରିନ୍‌କୁ କେହି ଦେଖୁଛନ୍ତି ନା ନାହିଁ ତାହା ଦେଖିବା ପାଇଁ \'ସ୍କ୍ରିନ୍ ଆଟେନ୍‌ସନ୍\' ସାମ୍ନା କ୍ୟାମେରା ବ୍ୟବହାର କରେ। ଏହା ଡିଭାଇସ୍‌ରେ କାର୍ଯ୍ୟ କରିଥାଏ ଏବଂ ଛବିଗୁଡ଼ିକୁ କେବେ ବି ଷ୍ଟୋର୍ କରାଯାଇ ନଥାଏ କିମ୍ବା Googleକୁ ପଠାଯାଇ ନଥାଏ।"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ସ୍କ୍ରିନ୍ ଆଟେନସନ୍ ଚାଲୁ କରନ୍ତୁ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ସ୍କ୍ରିନକୁ ଦେଖିବା ସମୟରେ ଏହାକୁ ଚାଲୁ ରଖନ୍ତୁ"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ଅଧିକ ଲମ୍ବା ସ୍କ୍ରିନ ଟାଇମଆଉଟ ଅଧିକ ବେଟେରୀ ବ୍ୟବହାର କରିବ।"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"କ୍ୟାମେରା ଲକ୍ କରାଯାଇଛି"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"\'ଫେସ୍ ଚିହ୍ନଟକରଣ\' ପାଇଁ କ୍ୟାମେରାକୁ ଅନଲକ୍ କରାଯିବା ଆବଶ୍ୟକ"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ସ୍କ୍ରିନ୍ ଆଟେନସନ୍ ପାଇଁ କ୍ୟାମେରାକୁ ଅନଲକ୍ କରାଯିବା ଆବଶ୍ୟକ"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM ସ୍ଲଟ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM ସ୍ଲଟ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ପ୍ରାଥମିକ)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"ଦେଖିବା ପାଇଁ ସେଭ କରାଯାଇଥିବା ନେଟୱାର୍କ ବାଛନ୍ତୁ"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"ସର୍ବନିମ୍ନ"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL ଭର୍ସନ୍‌"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ବ୍ୟାଟେରୀ ସ୍ତର"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"କମ୍ୟୁନାଲ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"କମ୍ୟୁନାଲ ସେଟିଂସ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"ସେଭ୍‌ କରନ୍ତୁ"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ବାତିଲ କରନ୍ତୁ"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"ନାମ ସ୍ଥାନ ଶୂନ୍ୟ ରହିପାରିବ ନାହିଁ।"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APNକୁ ଖାଲି ରଖାଯାଇପାରିବ ନାହିଁ।"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ଫିଲ୍ଡ 3 ଅଙ୍କ ବିଶିଷ୍ଟ ହେବା ଦରକାର"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ଫିଲ୍ଡ ୨ କିମ୍ବା ୩ ସଂଖ୍ୟା ବିଶିଷ୍ଟ ହେବା ଆବଶ୍ୟକ।"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"%s ପ୍ରକାରର APNଗୁଡ଼ିକୁ ମୋବାଇଲ୍‌ ବାହକ ଯୋଡ଼େନାହିଁ।"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ଫିଲ୍ଡ ବୈଧ ହେବା ଆବଶ୍ୟକ।"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ଡିଫଲ୍ଟ APN ସେଟିଂସ ରିଷ୍ଟୋର ହେଉଛି"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ଡିଫଲ୍ଟରେ ରିସେଟ୍‌ କରନ୍ତୁ"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ଡିଫଲ୍ଟ APN ସେଟିଂସ ରିସେଟ ସରିଯାଇଛି।"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ରିସେଟ କରନ୍ତୁ"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ବ୍ଲୁଟୁଥ ଓ ୱାଇ-ଫାଇକୁ ରିସେଟ କରାଯାଇଛି"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMଗୁଡ଼ିକୁ ଇରେଜ କରନ୍ତୁ"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ଏହା କୌଣସି ମୋବାଇଲ ସେବା ପ୍ଲାନକୁ ବାତିଲ କରିବ ନାହିଁ। ରିପ୍ଲେସମେଣ୍ଟ SIMଗୁଡ଼ିକୁ ଡାଉନଲୋଡ କରିବା ପାଇଁ ଆପଣଙ୍କ କ୍ୟାରିଅର ସହ କଣ୍ଟାକ୍ଟ କରନ୍ତୁ।"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ସେଟିଂସ ରିସେଟ କରନ୍ତୁ"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"ସମସ୍ତ ନେଟୱାର୍କ ସେଟିଂସ ରିସେଟ କରିବେ? ଏହାକୁ ଆପଣ ଆଉ ପୂର୍ବବତ୍ କରିପାରିବେ ନାହିଁ।"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"ସମସ୍ତ ନେଟୱାର୍କ ସେଟିଂସକୁ ରିସେଟ କରି eSIMଗୁଡ଼ିକୁ ଇରେଜ କରିବେ? ଆପଣ ଏହି କାର୍ଯ୍ୟକୁ ପୂର୍ବବତ କରିପାରିବେ ନାହିଁ।"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ରିସେଟ୍‌ କରିବେ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ପାଇଁ ନେଟ୍‌ୱର୍କ ରିସେଟ୍‌ ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ନେଟୱାର୍କ ସେଟିଂସକୁ ରିସେଟ କରି ଦିଆଯାଇଛି"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIMକୁ ଖାଲି କରିହେବ ନାହିଁ"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ଏକ ତ୍ରୁଟି ଯୋଗୁଁ eSIMକୁ ଇରେଜ କରାଯାଇପାରିବ ନାହିଁ।\n\nଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ସମସ୍ତ ଡାଟା ଖାଲି କରନ୍ତୁ (ଫ୍ୟାକ୍ଟୋରୀ ରିସେଟ୍)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ସମସ୍ତ ଡାଟା ଖାଲି କରନ୍ତୁ (ଫ୍ୟାକ୍ଟୋରୀ ରିସେଟ୍)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"ସଙ୍ଗୀତ"</li>\n<li>"ଫଟୋ"</li>\n<li>"ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତା ଡାଟା"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ଏହା ଆପଣଙ୍କ ମୋବାଇଲ ସେବା ପ୍ଲାନକୁ ବାତିଲ କରିବ ନାହିଁ।"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ଆପଣଙ୍କର ସମସ୍ତ ବ୍ୟକ୍ତିଗତ ସୂଚନା ଏବଂ ଡାଉନଲୋଡ୍ କରାଯାଇଥିବା ଆପ୍ ଡିଲିଟ୍ ହୋଇଯିବ। ଆପଣ ଏହି କାର୍ଯ୍ୟକୁ ପୂର୍ବବତ୍ କରିପାରିବେ ନାହିଁ।"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ଡାଉନଲୋଡ୍ କରାଯାଇଥିବା ଆପ୍ ଓ SIM ସମେତ ଆପଣଙ୍କର ସମସ୍ତ ବ୍ୟକ୍ତିଗତ ସୂଚନା ଡିଲିଟ୍ ହୋଇଯିବ। ଆପଣ ଏହି କାର୍ଯ୍ୟକୁ ପୂର୍ବବତ୍ କରିପାରିବେ ନାହିଁ।"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ସମସ୍ତ ଡାଟା ଖାଲି କରିବେ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ପାଇଁ ଫ୍ୟାକ୍ଟୋରୀ ରିସେଟ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"ଖାଲି କରାଯାଉଛି"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ହଟସ୍ପଟ୍, USB, ବ୍ଲୁଟୁଥ୍, ଇଥରନେଟ୍"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକ ସହ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରୁନାହିଁ"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ବନ୍ଦ ଅଛି"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ଟିଥରିଂ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ୱାଇ‑ଫାଇ ହଟସ୍ପଟ୍ ବ୍ୟବହାର କରନ୍ତୁ ନାହିଁ"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"କେବଳ USB ମାଧ୍ୟମରେ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"କେବଳ ବ୍ଲୁଟୁଥ୍ ମାଧ୍ୟମରେ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ଇଥରନେଟ୍ ମାଧ୍ୟମରେ କେବଳ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"କେବଳ USB ଏବଂ ବ୍ଲୁଟୁଥ୍ ମାଧ୍ୟମରେ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB ଏବଂ ବ୍ଲୁଟୁଥ୍ ମାଧ୍ୟମରେ କେବଳ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ବ୍ଲୁଟୁଥ୍ ଏବଂ ଇଥରନେଟ୍ ମାଧ୍ୟମରେ କେବଳ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, ବ୍ଲୁଟୁଥ୍ ଏବଂ ଇଥରନେଟ୍ ମାଧ୍ୟମରେ କେବଳ ଇଣ୍ଟର୍ନେଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ଟିଥରିଂ"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ବ୍ଲୁଟୁଥ ଟିଥରିଂ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ଇଥରନେଟ୍ ଟିଥରିଂ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ଆପଣଙ୍କ ୱାଇ-ଫାଇ ବା ମୋବାଇଲ ଡାଟା କନେକ୍ସନ ମାଧ୍ୟମରେ ଅନ୍ୟ ଡିଭାଇସଗୁଡ଼ିକୁ ଇଣ୍ଟରନେଟ ପ୍ରଦାନ କରିବାକୁ ହଟସ୍ପଟ ଏବଂ ଟିଥରିଂ ବ୍ୟବହାର କରନ୍ତୁ। ଆଖପାଖର ଡିଭାଇସଗୁଡ଼ିକ ସହ ବିଷୟବସ୍ତୁ ସେୟାର କରିବାକୁ ଆପ୍ସ ଏକ ହଟସ୍ପଟ ମଧ୍ୟ ତିଆରି କରିପାରିବ।"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ସାହାଯ୍ୟ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"ମୋବାଇଲ୍‌ ନେଟ୍‌ୱାର୍କ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ମୋବାଇଲ୍‌ ପ୍ଲାନ୍‌"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS ଆପ୍‌"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ଆପ୍‌ ବଦଳାଇବେ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g> ବଦଳରେ <xliff:g id="NEW_APP">%1$s</xliff:g> କୁ ଆପଣଙ୍କ SMS ଆପ୍‌ ପରି ବ୍ୟବହାର କରିବେ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi ସହାଯକ ପରିବର୍ତ୍ତନ କରିବେ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ନିଜ ନେଟ୍‌ୱର୍କ ସଂଯୋଗ ପରିଚାଳନା କରିବା ପାଇଁ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ବଦଳରେ <xliff:g id="NEW_APP">%1$s</xliff:g> ବ୍ୟବହାର କରିବେ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ନିଜର ନେଟ୍‌ୱର୍କ ସଂଯୋଗ ପରିଚାଳନା କରିବା ପାଇଁ <xliff:g id="NEW_APP">%s</xliff:g>ର ବ୍ୟବହାର କରିବେ?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ଅଜଣା ସିମ୍‌ ଅପରେଟର୍‌"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ଙ୍କର କୌଣସି ଜ୍ଞାତ ପ୍ରାବଧାନୀକରଣ ୱେବସାଇଟ୍‌ ନାହିଁ"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ଦୟାକରି SIM କାର୍ଡ ଭର୍ତ୍ତି କରି ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ଇଣ୍ଟର୍‌ନେଟ୍‌ ସହ ସଂଯୋଗ କରନ୍ତୁ"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"ବର୍ତ୍ତମାନର ଲୋକେସନ୍ ଅନୁରୋଧ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ୱାର୍କ ପ୍ରୋଫାଇଲ୍‌ ପାଇଁ ଲୋକେସନ୍‌"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ଆପର ଲୋକେସନ ଅନୁମତିଗୁଡ଼ିକ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ସ୍ପଷ୍ଟ ଆକ୍ସେସ୍‌"</string>
     <string name="controls_label" msgid="8671492254263626383">"ନିୟନ୍ତ୍ରଣ"</string>
     <string name="force_stop" msgid="2681771622136916280">"ବାଧ୍ୟତାର ସହ ବନ୍ଦ କରନ୍ତୁ"</string>
+    <string name="archive" msgid="9074663845068632127">"ଆର୍କାଇଭ କରନ୍ତୁ"</string>
+    <string name="restore" msgid="7622486640713967157">"ରିଷ୍ଟୋର କରନ୍ତୁ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"ସର୍ବମୋଟ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ଆପ୍‌ର ଆକାର"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB ଷ୍ଟୋରେଜ୍‌ ଆପ୍‌"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"ପ୍ୟାକେଜ୍‌ ଆକାର ଗଣଣା କରିପାରିଲା ନାହିଁ"</string>
     <string name="version_text" msgid="7628938665256107608">"ସଂସ୍କରଣ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ନିଅନ୍ତୁ"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ଆର୍କାଇଭ କରିବା ବିଫଳ ହୋଇଛି"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>କୁ ଆର୍କାଇଭ କରାଯାଇଛି"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ରିଷ୍ଟୋର କରିବା ବିଫଳ ହୋଇଛି"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>କୁ ରିଷ୍ଟୋର କରାଯାଉଛି"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ଅନ୍ୟ ମାଇଗ୍ରେସନ୍‌ ପୂର୍ବରୁ ଚାଲୁ ଅଛି"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ଷ୍ଟୋରେଜ୍‌ରେ ପର୍ଯ୍ୟାପ୍ତ ସ୍ଥାନ ନାହିଁ।"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ଆପ୍‌ ନାହିଁ"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ଉପଲବ୍ଧ ଥିବା ଅନ୍-ସ୍କ୍ରିନ୍ କୀବୋର୍ଡ"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ଅନ-ସ୍କ୍ରିନ୍ କୀବୋର୍ଡ ପରିଚାଳନା କରନ୍ତୁ"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ବିକଳ୍ପଗୁଡ଼ିକ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ଫିଜିକାଲ୍ କୀବୋର୍ଡ"</string>
     <string name="show_ime" msgid="4334255501724746849">"ଅନ୍-ସ୍କ୍ରିନ୍ କୀବୋର୍ଡ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"ଫିଜିକାଲ୍‌ କୀବୋର୍ଡ ସକ୍ରିୟ ଥିବାବେଳେ ଏହାକୁ ସ୍କ୍ରିନ୍‌ ଉପରେ ରଖନ୍ତୁ"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"ବାଉନ୍ସ କୀଗୁଡ଼ିକ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ଫିଜିକାଲ କୀବୋର୍ଡ ଆକ୍ସେସିବିଲିଟୀ ପାଇଁ ବାଉନ୍ସ କୀଗୁଡ଼ିକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ଷ୍ଟିକି କୀଗୁଡ଼ିକ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ଫିଜିକାଲ କୀବୋର୍ଡ ଆକ୍ସେସିବିଲିଟୀ ପାଇଁ ଷ୍ଟିକି କୀଗୁଡ଼ିକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"କୀବୋର୍ଡ଼ ସର୍ଟକଟଗୁଡ଼ିକ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ସର୍ଟକଟଗୁଡ଼ିକର ତାଲିକା ଦେଖାନ୍ତୁ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ୱର୍କ ପ୍ରୋଫାଇଲ୍ କୀବୋର୍ଡ &amp; ଟୁଲ୍‌ଗୁଡ଼ିକ"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ବ୍ୟବହାରର ସମୟ ଅନୁସାରେ ସର୍ଟ କର"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"ଗତଥରର ବ୍ୟବହାର ଅନୁସାରେ ସର୍ଟ କର"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ଆପର ନାମ ଅନୁସାରେ ସର୍ଟ କରନ୍ତୁ"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ଶେଷ ଥର ବ୍ୟବହୃତ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ଗତ ଥର ବ୍ୟବହାର କରାଯାଇଛି"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"କେବେ ବି ନୁହେଁ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ବ୍ୟବହାର ସମୟ"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ଯେ କୌଣସି ମତେ ଜାରି ରଖନ୍ତୁ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ବାତିଲ କର"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ମାଗ୍ନିଫିକେସନ ସେଟିଂସ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ଟ୍ରିପଲ୍‌-ଟାପ୍‌ ଦ୍ୱାରା ମାଗ୍ନିଫାଏ କରନ୍ତୁ"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ସର୍ଟକଟ୍ ସାହାଯ୍ୟରେ ମାଗ୍ନିଫାଏ କରନ୍ତୁ"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ତିନି ଥର ଟାପ୍ ଓ ସର୍ଟକଟ୍ ସାହାଯ୍ୟରେ ମାଗ୍ନିଫାଏ କରନ୍ତୁ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> ବିଷୟରେ"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ଖୋଲିବା ପାଇଁ ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ଦୁଇଥର ଟାପ କରନ୍ତୁ"</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="860548190334486449">"ମେଗ୍ନିଫିକେସନ ଆରମ୍ଭ ଓ ବନ୍ଦ କରିବାକୁ ନିଜ ସ୍କ୍ରିନର ଯେ କୌଣସି ସ୍ଥାନରେ ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ।"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ଏକ ଆକ୍ସେସବିଲିଟୀ ଫିଚର୍ ବ୍ୟବହାର କରିବାକୁ 3ଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନର ତଳୁ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।\n\nଫିଚରଗୁଡ଼ିକ ମଧ୍ୟରେ ସ୍ୱିଚ୍ କରିବାକୁ, 3ଟି ଆଙ୍ଗୁଠିରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରି ଧରି ରଖନ୍ତୁ।"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ବୁଝିଗଲି"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ ସେଟିଂସ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ବଟନ ସେଟିଂସ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ସର୍ଟକଟ୍"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ଆକ୍ସେସିବିଲିଟୀ ଜେଶ୍ଚର୍"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ସ୍କ୍ରିନକୁ ଦୁଇଟି-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ସ୍କ୍ରିନକୁ ଦୁଇଟି-ଆଙ୍ଗୁଠିରେ ଦୁଇଥର-ଟାପ କରନ୍ତୁ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ଦୁଇଟି ଆଙ୍ଗୁଠିରେ ସ୍କ୍ରିନକୁ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ କରନ୍ତୁ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ଟ୍ରିପଲ୍ ଟାପ୍ ସ୍କ୍ରିନ୍"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ଟ୍ରିପଲ୍-ଟାପ୍ ସ୍କ୍ରିନ୍"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ସ୍କ୍ରିନରେ ଶୀଘ୍ର {0,number,integer} ଥର ଟାପ୍ କରନ୍ତୁ। ଏହି ସର୍ଟକଟ୍ ଆପଣଙ୍କ ଡିଭାଇସକୁ ଧୀର କରିପାରେ"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ଏବଂ ଜେଶ୍ଚର୍ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ୍ ବ୍ୟବହାର କରାଯାଉଛି। 3-ବଟନ୍ ନାଭିଗେସନ୍ ମାଧ୍ୟମରେ ଜେଶ୍ଚର୍ ଉପଲବ୍ଧ ନାହିଁ।"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ଆକ୍ସେସିବିଲିଟୀ ଫିଚରକୁ ଶୀଘ୍ର ଆକ୍ସେସ୍ କରନ୍ତୁ"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ଆରମ୍ଭ କରିବାକୁ"</b>\n"1. ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସକୁ ଯାଆନ୍ତୁ\n2. ଏକ ଫିଚର ଚୟନ କରି ସର୍ଟକଟରେ ଟାପ କରନ୍ତୁ\n3. ଫିଚରକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ଆପଣ ଏକ ବଟନ କିମ୍ବା ଜେଶ୍ଚର ବ୍ୟବହାର କରିବାକୁ ଚାହାଁନ୍ତି ନା ନାହିଁ ତାହା ବାଛନ୍ତୁ"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ଆରମ୍ଭ କରିବାକୁ"</b>\n"1. ଆକ୍ସେସିବିଲିଟୀ ସେଟିଂସକୁ ଯାଆନ୍ତୁ\n2. ଏକ ଫିଚର ଚୟନ କରି ସର୍ଟକଟରେ ଟାପ କରନ୍ତୁ\n3. ଫିଚରକୁ ଆକ୍ସେସ କରିବା ପାଇଁ କେଉଁ ବଟନ ବ୍ୟବହାର କରିବେ ତାହା ବାଛନ୍ତୁ"</string>
+    <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_size_title" msgid="5785110470538960881">"ଆକାର"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ପାୱର୍‌ ବଟନ୍‌ କଲ୍‌ ସମାପ୍ତ କରେ"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ବହୁତ ବଡ଼ ମାଉସ୍‌ ପଏଣ୍ଟର୍"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ମାଉସ ପଏଣ୍ଟରକୁ ଅଧିକ ଆଖିଦୃଶିଆ କରନ୍ତୁ"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"ସମସ୍ତ ଆପ୍ସକୁ ଡାର୍କ କରନ୍ତୁ"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ନିଜର ଡାର୍କ ଥିମ ନଥିବା ଆପ୍ସ ପାଇଁ ଲାଗୁ ହୁଏ। କିଛି ଆପ୍ସରେ ଇନଭର୍ଟ ହୋଇଥିବା ରଙ୍ଗ ପରି ଡିସପ୍ଲେ ସମସ୍ୟା ଥାଇପାରେ।"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ଆନିମେସନ୍‌ଗୁଡ଼ିକୁ କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ସ୍କ୍ରିନରେ ମୁଭମେଣ୍ଟକୁ କମ୍ କରନ୍ତୁ"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ମୋନୋ ଅଡିଓ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ଏହା କୌଣସି ଆପ କିମ୍ବା ହାର୍ଡୱେର ସେନ୍ସର ସହ ଆପଣଙ୍କର ଇଣ୍ଟେରାକ୍ସନକୁ ଟ୍ରାକ କରିପାରେ ଏବଂ ଆପଣଙ୍କ ତରଫରୁ ଆପ୍ସ ସହ ଇଣ୍ଟରାକ୍ଟ କରିପାରେ।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ଅନୁମତି"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ଅଗ୍ରାହ୍ୟ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"ବନ୍ଦ କରନ୍ତୁ"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ବାତିଲ"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g>କୁ ବନ୍ଦ କରିବେ?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g>କୁ ଟାପ୍‍ କରିବା ଦ୍ୱାରା <xliff:g id="SERVICE">%2$s</xliff:g> ବନ୍ଦ ହୋଇଯିବ।"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ବନ୍ଦ କରନ୍ତୁ"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ଚାଲୁ ରଖ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ବନ୍ଦ କରିବେ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"କୌଣସି ସେବା ସଂସ୍ଥାପିତ ହୋଇନାହିଁ"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"କୌଣସି ସେବାର ଚୟନ କରାଯାଇନାହିଁ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"କୌଣସି ବ୍ୟାଖ୍ୟା ଦିଆଯାଇ ନାହିଁ।"</string>
     <string name="settings_button" msgid="2195468788019730377">"ସେଟିଂସ"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ଆଲୋକ ସମ୍ବେଦନଶୀଳତା, ଫଟୋଫୋବିଆ, ଗାଢ଼ା ଥିମ୍, ଅଧକପାଳି, ମୁଣ୍ଡବ୍ୟଥା, ରିଡିଂ ମୋଡ୍, ନାଇଟ୍ ମୋଡ୍, ଉଜ୍ଜ୍ୱଳତା କମାନ୍ତୁ, ହ୍ୱାଇଟ୍ ପଏଣ୍ଟ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ବ୍ୟବହାର କରିବା ପାଇଁ ସହଜ, ଆକ୍ସେସ୍ କରିବାକୁ ସହଜ, ସହାୟତା, ସହାୟକ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ଦୃଷ୍ଟିଶକ୍ତି, ଶୁଣିବା, ଦୃଷ୍ଟିହୀନ, ମୋଟର, ଦକ୍ଷତା, ଆସିଷ୍ଟିଭ, ସହାୟତା, ବ୍ୟବହାର କରିବା ପାଇଁ ସହଜ, ଆକ୍ସେସ କରିବାକୁ ସହଜ, ହାତ, ସାହାଯ୍ୟ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ୱିଣ୍ଡୋ ମ୍ୟାଗ୍ନିଫାୟର୍, ଜୁମ୍, ମ୍ୟାଗ୍ନିଫିକେସନ୍, କମ୍ ଦେଖାଯାଉଥିବା, ବଡ଼ କରନ୍ତୁ, ଆହୁରି ବଡ଼ କରନ୍ତୁ"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"କ୍ୟାପସନ୍, ବନ୍ଦ ଥିବା କ୍ୟାପସନ୍, CC, ଲାଇଭ୍ ଟ୍ରାନ୍ସସ୍କ୍ରାଇବ୍, କମ୍ ଶୁଣୁଥିବା, ଶ୍ରବଣଶକ୍ତିରେ ହ୍ରାସ, CART, ସ୍ପିଚ୍ ଟୁ ଟେକ୍ସଟ୍, ସବଟାଇଟେଲ୍"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ରଙ୍ଗ କଣ୍ଟ୍ରାଷ୍ଟ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ମୋଟର, ମାଉସ୍"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ଶ୍ରବଣ ଯନ୍ତ୍ର, କମ ଶୁଣା ଯାଉଥିବା ଲୋକ, ଶ୍ରବଣ ଶକ୍ତିରେ ହ୍ରାସ, କକଲିୟର ଇମ୍ପ୍ଲାଣ୍ଟ, ଆମ୍ପ୍ଲିଫିକେସନ ଡିଭାଇସ, ସାଉଣ୍ଡ ପ୍ରୋସେସରଗୁଡ଼ିକ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ମୋଟର, ମାଉସ, ଏକ୍ସଟର୍ନଲ ମାଉସ, ହେଡ ମାଉସ, ଆଡେପ୍ଟିଭ ମାଉସ, ହୁଇଲଚେୟାର, ଜଏଷ୍ଟିକ"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ଶ୍ରବଣ ଯନ୍ତ୍ର, କମ ଶୁଣା ଯାଉଥିବା ଲୋକ, ଶ୍ରବଣ ଶକ୍ତିରେ ହ୍ରାସ, କକଲିୟର ଇମ୍ପ୍ଲାଣ୍ଟ, ଆମ୍ପ୍ଲିଫିକେସନ ଡିଭାଇସ, ସାଉଣ୍ଡ ପ୍ରୋସେସରଗୁଡ଼ିକ, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"କମ୍ ଶୁଣୁଥିବା, ଶ୍ରବଣଶକ୍ତିରେ ହ୍ରାସ, କ୍ୟାପସନ୍, ଟେଲିଟାଇପ୍, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ତିନୋଟି ବଟନ"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ଦକ୍ଷତା, ମୋଟର, ସିନିଅର, ଆର୍ଥରାଇଟିସ, rsi, ଷ୍ଟ୍ରୋକ, ଟ୍ରେମର, ମଲ୍ଟିପୁଲ ସ୍କ୍ଲେରୋସିସ, ସେରେବ୍ରାଲ ପାଲସି, ଥରିବା, ବାରମ୍ବାର ଚାପ ଜନିତ ଆଘାତ, ହାତ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ବିଳମ୍ବ, ଦକ୍ଷତା, ସିନିଅର"</string>
     <string name="print_settings" msgid="8519810615863882491">"ପ୍ରିଣ୍ଟିଂ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ବନ୍ଦ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1ଟି ପ୍ରିଣ୍ଟ ସେବା ଚାଲୁ ଅଛି}other{#ଟି ପ୍ରିଣ୍ଟ ସେବା ଚାଲୁ ଅଛି}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ସର୍ବାଧିକ ବ୍ୟାଟେରୀ ବ୍ୟବହାର ଥିବା ଆପଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ଆପଣଙ୍କ ବେଟେରୀକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"ଆପଣଙ୍କ ବେଟେରୀର ଲାଇଫସ୍ପାନକୁ ବଢ଼ାଇବାରେ ସହାୟତା କରିବା ପାଇଁ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ଆପଣଙ୍କ ବେଟେରୀକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ଆପଣଙ୍କ ବେଟେରୀର ଲାଇଫସ୍ପାନକୁ ବଢ଼ାଇବାରେ ସହାୟତା କରିବା ପାଇଁ, ଟାବଲେଟ ଡକ ଥିବା ସମୟରେ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ଆପଣଙ୍କ ବେଟେରୀକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ଆପଣଙ୍କ ବେଟେରୀର ଲାଇଫସ୍ପାନକୁ ବଢ଼ାଇବାରେ ସହାୟତା କରିବା ପାଇଁ, ଟାବଲେଟ ଡକ ଥିବା ସମୟରେ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯାଇଛି"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ କରାଯାଉଛି"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ପରବର୍ତ୍ତୀ ଥର ଆପଣଙ୍କ ଟାବଲେଟକୁ ଡକ କରାଯାଇଥିବା ସମୟରେ ଆପଣଙ୍କର ବେଟେରୀକୁ ସୁରକ୍ଷିତ ରଖିବା ପାଇଁ ଚାର୍ଜିଂକୁ ଅପ୍ଟିମାଇଜ କରାଯିବ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ଚାର୍ଜିଂକୁ ବିରତ କରାଯାଇଥିବା ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ଚାର୍ଜିଂ ପୁଣି ଆରମ୍ଭ କରନ୍ତୁ"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ଉଚ୍ଚ-ଶକ୍ତି ପୃଷ୍ଟଭୂମୀ କାର୍ଯ୍ୟ ଅନ୍ତର୍ଭୁକ୍ତ କରେ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ବାତିଲ"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"ସମ୍ପୂର୍ଣ୍ଣ ଭାବେ ଚାର୍ଜ କରନ୍ତୁ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ଚାର୍ଜିଂ ଆକସେସୋରୀ ସହ ସମସ୍ୟା"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ଇନକମ୍ପାଟିବଲ ଚାର୍ଜିଂ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ବ୍ୟାଟେରୀ ମ୍ୟାନେଜର୍‌"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ସ୍ଵଚାଳିତଭାବେ ଆପ୍‌ ପରିଚାଳନା କରନ୍ତୁ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ବର୍ତ୍ତମାନ"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ବ୍ୟାଟେରୀ ବ୍ୟବହାରର ଚାର୍ଟ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ଦୈନିକ ବେଟେରୀ ବ୍ୟବହାର ଚାର୍ଟ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ପ୍ରତି ଘଣ୍ଟାରେ ବେଟେରୀ ବ୍ୟବହାର ଚାର୍ଟ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ବେଟେରୀର ଲେଭେଲ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g>ରୁ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> ଶତକଡ଼ା ଅଟେ"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପରଠାରୁ ବେଟେରୀ ବ୍ୟବହାର"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> ପାଇଁ ବେଟେରୀ ବ୍ୟବହାର"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"ସମ୍ପୂର୍ଣ୍ଣ ଚାର୍ଜ ହେବା ପରଠାରୁ ସ୍କ୍ରିନ ସମୟ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"ଆପାତକାଳୀନ ଡାଏଲିଙ୍ଗ ସିଗ୍ନାଲ୍"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ଏକ ଜରୁରୀକାଳୀନ କଲ୍ କରୁଥିବାବେଳେ ଗତିବିଧି ସେଟ୍‌ କରନ୍ତୁ"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ବେକଅପ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ଚାଲୁ"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ବନ୍ଦ ଅଛି"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ବ୍ୟାକ୍‌ଅପ୍‌ ଓ ରିଷ୍ଟୋର୍‌"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ବ୍ୟକ୍ତିଗତ ଡାଟା"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ମୋ ଡାଟାର ବ୍ୟାକ୍‌ଅପ୍‌ ନିଅ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ନାମ"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ପ୍ରକାର"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ସର୍ଭର୍‌ ଠିକଣା"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP ଏନକ୍ରିପ୍ସନ୍‌ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP ରହସ୍ୟ"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ଚିହ୍ନଟକର୍ତ୍ତା"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec ଶେୟାର କରାଯାଇସାରିଥିବା କୀ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec ଉପଯୋଗକର୍ତ୍ତା ପ୍ରମାଣପତ୍ର"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA ସାର୍ଟିଫିକେଟ୍‌"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec ସର୍ଭର୍‌ ସର୍ଟିଫିକେଟ୍‌"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"ଉନ୍ନତ ବିକଳ୍ପ ଦେଖାନ୍ତୁ"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS ସନ୍ଧାନ ଡୁମେନ୍"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS ସର୍ଭର୍‌ (ଯେପରିକି 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ଫରୱାର୍ଡିଂ ରୁଟ୍‌ଗୁଡ଼ିକ (ଯେପରିକି 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ନାମ"</string>
     <string name="vpn_password" msgid="1183746907642628127">"ପାସୱାର୍ଡ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ଆକାଉଣ୍ଟ ସୂଚନାକୁ ସେଭ୍‌ କରନ୍ତୁ"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ବ୍ୟବହାର କରାଯାଇ ନାହିଁ)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ସର୍ଭର୍‌କୁ ଯାଞ୍ଚ କରନ୍ତୁନାହିଁ)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ସର୍ଭରରୁ ଗ୍ରହଣ କରାଯାଇଛି)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ଏହି VPN ପ୍ରକାର ସବୁବେଳେ ସଂଯୋଗ ରହିପାରିବ ନାହିଁ"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"ସର୍ବଦା-ଅନ୍‌ VPN କେବଳ ସଂଖ୍ୟା ବିଶିଷ୍ଟ ସର୍ଭର୍ ଠିକଣାକୁ ସପୋର୍ଟ କରେ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ସର୍ବଦା-ଅନ୍‌ VPN ପାଇଁ ଏକ DNS ସର୍ଭର ଉଲ୍ଲେଖ କରିବା ଜରୁରୀ"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ସର୍ବଦା ଚାଲୁଥିବା VPN ପାଇଁ DNS ସର୍ଭର୍ ଠିକଣା ସଂଖ୍ୟା ବିଶିଷ୍ଟ ହୋଇଥିବା ଦରକାର"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ଏଣ୍ଟର୍‌ କରାଯାଇଥିବା ସୂଚନା ସର୍ବଦା-ଅନ୍‌ VPNକୁ ସପୋର୍ଟ କରେ ନାହିଁ"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ବାତିଲ କରନ୍ତୁ"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ଖାରଜ"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"ବିନା VPNରେ ସଂଯୋଗଗୁଡ଼ିକୁ ବ୍ଲକ୍ କରନ୍ତୁ"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN ସଂଯୋଗ ଦରକାର?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ସୁରକ୍ଷିତ ନୁହେଁ। କୌଣସି IKEv2 VPNକୁ ଅପଡେଟ୍ କରନ୍ତୁ"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ଅସମର୍ଥିତ VPNକୁ ଆରମ୍ଭ କରିବାରେ ବିଫଳ ହୋଇଛି।"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ସର୍ବଦା ସଂଯୁକ୍ତ ରହିବାକୁ ଏକ VPN ପ୍ରୋଫାଇଲ୍‌ ଚୟନ କରନ୍ତୁ। ନେଟ୍‌ୱର୍କ ଟ୍ରାଫିକ୍‌ ଏହି VPN ସହ ସଂଯୁକ୍ତ ଥିବବେଳେ ହିଁ ଅନୁମତି ମିଳିବ।"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"କିଛି ନାହିଁ"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ଉଭୟ ସର୍ଭର୍‌ ଓ DNS ପାଇଁ ସର୍ବଦା-ଅନ୍‌ ଥିବା VPN ଗୋଟିଏ IP ଠିକଣା ଆବଶ୍ୟକ କରେ।"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER ଆଲର୍ଟ"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ଶିଶୁ ଅପହରଣ ବିଷୟରେ ଖବର ପାଆନ୍ତୁ"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ରିପିଟ୍‌"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"କଲ୍‌ ମ୍ୟାନେଜର୍‌କୁ ସକ୍ରିୟ କର"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"ଆପଣଙ୍କ କଲ୍‌ଗୁଡିକ କିପରି କରାଯିବ, ତାହାର ପରିଚାଳନା କରିବାକୁ ଏହି ସେବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ।"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"କଲ୍‌ ମ୍ୟାନେଜର୍‌"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ୱେୟାରଲେସ୍ ଜରୁରୀକାଳୀନ ଆଲର୍ଟଗୁଡ଼ିକ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ନେଟ୍‌ୱର୍କ ଅପରେଟର୍‌ମାନେ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ଆକ୍‌ସେସ୍‌ ପଏଣ୍ଟର ନାମଗୁଡ଼ିକ"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"ୱାଲେଟ୍"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ପୈଠ, ଟାପ୍‌, ପେମେଣ୍ଟ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ବ୍ୟାକ୍‌ଅପ୍, ବ୍ୟାକ୍‌ ଅପ୍ ନିଅନ୍ତୁ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ଇଙ୍ଗିତ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ଫେସ୍, ଅନଲକ୍, ପ୍ରମାଣୀକରଣ, ସାଇନ୍ ଇନ୍"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ଫେସ୍, ଅନଲକ୍, ପ୍ରମାଣୀକରଣ, ସାଇନ୍ ଇନ୍, ଟିପଚିହ୍ନ, ବାୟୋମେଟ୍ରିକ୍"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl ଭର୍ସନ୍‌, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ଚାଲୁ ହେବାର ଶବ୍ଦ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"ଲାଇଭ କ୍ୟାପ୍ସନ"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ସ୍ୱତଃ କେପସନ ମିଡିଆ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ଫୋନ ସ୍ପିକରଗୁଡ଼ିକ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ଟାବଲେଟ ସ୍ପିକରଗୁଡ଼ିକ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ଡିଭାଇସ ସ୍ପିକରଗୁଡ଼ିକ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ତାରଯୁକ୍ତ ହେଡଫୋନଗୁଡ଼ିକ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"କମ୍ପାଟିବଲ ମିଡିଆରୁ ଆସିଥିବା ଅଡିଓ ଅଧିକ ଇମର୍ସିଭ ହୋଇଥାଏ"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ବନ୍ଦ ଅଛି"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ବର୍ତ୍ତମାନର ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକୁ କାଢ଼ି ଦିଆଯାଇଛି"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"ବାର୍ତ୍ତାଳାପ କାଢ଼ି ଦିଆଯାଇଛି"</string>
     <string name="clear" msgid="5092178335409471100">"ଖାଲି କରନ୍ତୁ"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> ଖାଲି କରନ୍ତୁ"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ପ୍ରାଥମିକତା ଦିଆଯାଇଥିବା ଏବଂ ପରିବର୍ତ୍ତିତ ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯିବ"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"ଆପଣ କୌଣସି ବାର୍ତ୍ତାଳାପକୁ ପ୍ରାଥମିକତା ଭାବେ ଚିହ୍ନଟ କଲେ କିମ୍ବା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକରେ ଅନ୍ୟ କୌଣସି ପରିବର୍ତ୍ତନ କଲେ, ସେଗୁଡ଼ିକ ଏଠାରେ ଦେଖାଯିବ। \n\nବାର୍ତ୍ତାଳାପ ସେଟିଂସ ପରିବର୍ତ୍ତନ କରିବାକୁ: \n ପୁଲ୍-ଡାଉନ୍ ସେଡ୍ ଖୋଲିବାକୁ ସ୍କ୍ରିନର ଶୀର୍ଷରୁ ତଳକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ, ତା’ପରେ ଏକ ବାର୍ତ୍ତାଳାପକୁ ଦବେଇ ଧରନ୍ତୁ।"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ଛୋଟ କରନ୍ତୁ"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ବନ୍ଦ ଅଛି"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ଆପ ପିନିଂ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ବର୍ତ୍ତମାନର ଆପକୁ ଆପଣ ଅନପିନ୍ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଏହାକୁ ସ୍କ୍ରିନରେ ଦେଖାଇବା ପାଇଁ ଆପ୍ ପିନିଂ ଆପଣଙ୍କୁ ଅନୁମତି ଦିଏ। ଏହି ଫିଚର୍ ଏହି କ୍ଷେତ୍ରରେ ବ୍ୟବହୃତ ହୋଇପାରେ, ଉଦାହରଣ ସ୍ଵରୂପ, ଜଣେ ବିଶ୍ୱସ୍ତ ସାଙ୍ଗକୁ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଗେମ୍ ଖେଳିବାକୁ ଦେବା।"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"କୌଣସି ଆପ ପିନ କରାଗଲେ, ପିନ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପଗୁଡ଼ିକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟାକୁ ଆକ୍ସେସ କରାଯାଇପାରେ। \n\nଆପ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ: 	\n1. ଆପ ପିନିଂ ଚାଲୁ କରନ୍ତୁ 	\n2. ଓଭରଭିଉ ଖୋଲନ୍ତୁ 	\n3. ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ ଆଇକନରେ ଟାପ କରି ତା\'ପରେ ପିନରେ ଟାପ କରନ୍ତୁ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"କୌଣସି ଆପ ପିନ କରାଗଲେ, ପିନ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପଗୁଡ଼ିକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟାକୁ ଆକ୍ସେସ କରାଯାଇପାରେ। \n\nଯଦି ଆପଣ କୌଣସି ବ୍ୟକ୍ତିଙ୍କ ସହ ଆପଣଙ୍କ ଡିଭାଇସ ସୁରକ୍ଷିତ ଭାବେ ସେୟାର କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଏହା ପରିବର୍ତ୍ତେ ଜଣେ ଅତିଥି ୟୁଜର ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ। \n\nଆପ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ:\n1. ଆପ ପିନିଂ ଚାଲୁ କରନ୍ତୁ 	\n2. ଓଭରଭ୍ୟୁ ଖୋଲନ୍ତୁ 	\n3. ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ ଆଇକନରେ ଟାପ କରି ତା\'ପରେ ପିନରେ ଟାପ କରନ୍ତୁ"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ଆପକୁ ବ୍ୟବହାର କରାଯାଉନଥିଲେ ପରିଚାଳନା କରନ୍ତୁ"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ଅନୁମତିଗୁଡ଼ିକୁ କାଢ଼ି ଦିଅନ୍ତୁ, ଅସ୍ଥାୟୀ ଫାଇଲଗୁଡ଼ିକୁ ଡିଲିଟ କରନ୍ତୁ, ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବନ୍ଦ କରନ୍ତୁ ଏବଂ ଆପକୁ ଆର୍କାଇଭ କରନ୍ତୁ"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"ସମସ୍ତ ଆପ୍ସ"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ଇନ୍‌ଷ୍ଟଲ୍‌ ହୋଇଥିବା ଆପ୍‌ଗୁଡ଼ିକ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ଇନଷ୍ଟାଣ୍ଟ୍ ଆପ୍ସ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ଖାଲି"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ଆପ୍‌ଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ମେମୋରୀ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{ଗତ {time}ରେ 1ଟି ଆପ ମେମୋରୀ ବ୍ୟବହାର କରିଛି}other{ଗତ {time}ରେ #ଟି ଆପ ମେମୋରୀ ବ୍ୟବହାର କରିଛି}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"ମେମୋରୀ ବ୍ୟବହାର ପ୍ରୋଫାଇଲିଂକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"ମେମୋରୀ ବ୍ୟବହାର ପ୍ରୋଫାଇଲିଂ ପାଇଁ ଅତିରିକ୍ତ ସିଷ୍ଟମ ରିସୋର୍ସ ଆବଶ୍ୟକ।"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"ମେମୋରୀ ପ୍ରୋଫାଇଲିଂକୁ ଅକ୍ଷମ କରାଯାଇଛି"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ଫ୍ରିକ୍ୱେନ୍ସି"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"ସର୍ବାଧିକ ବ୍ୟବହାର"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"କୌଣସି ଡାଟା ବ୍ୟବହୃତ ହୋଇନାହିଁ"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"ଅନ୍ୟ ଆପ୍‌ଗୁଡ଼ିକ ଉପରେ ଦେଖାନ୍ତୁ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"ଅନ୍ୟ ଆପ୍‌ଗୁଡ଼ିକ ଉପରେ ଦେଖାଇବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ଆପଣ ବ୍ୟବହାର କରୁଥିବା ଅନ୍ୟ ଆପଗୁଡ଼ିକ ଉପରେ ଏହି ଆପକୁ ଡିସପ୍ଲେ ହେବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ଆପଣ କେଊଁଠି ଟାପ୍ କରନ୍ତି କିମ୍ବା ସ୍କ୍ରିନରେ ଯାହା ଡିସପ୍ଲେ ହୋଇଛି ସେଥିରେ ପରିବର୍ତ୍ତନ କରନ୍ତି ତାହା ଏହି ଆପ୍ ଦେଖିବାକୁ ସକ୍ଷମ ହେବ।"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"ମିଡିଆ ଆଉଟପୁଟ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ମିଡିଆ ଆଉଟପୁଟ ସୁଇଚ କରିବାକୁ ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"କନେକ୍ଟ କରାଯାଇଥିବା କେଉଁ ଡିଭାଇସ ଅନ୍ୟ ଆପ୍ସରୁ ଅଡିଓ କିମ୍ୱା ଭିଡିଓ ପ୍ଲେ କରିବ ତାହା ବାଛିବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ଯଦି ଅନୁମତି ଦିଆଯାଏ, ତେବେ ଏହି ଆପ ହେଡଫୋନ ଓ ସ୍ପିକର ପରି ଉପଲବ୍ଧ ଡିଭାଇସଗୁଡ଼ିକର ଏକ ତାଲିକାକୁ ଆକ୍ସେସ କରିପାରିବ ଏବଂ ଅଡିଓ କିମ୍ୱା ଭିଡିଓ ଷ୍ଟ୍ରିମ ବା କାଷ୍ଟ କରିବାକୁ କେଉଁ ଆଉଟପୁଟ ଡିଭାଇସକୁ ବ୍ୟବହାର କରାଯିବ ତାହା ବାଛିପାରିବ।"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ସମସ୍ତ ଫାଇଲକୁ ଆକ୍ସେସ୍"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ଭଏସ ସକ୍ରିୟକରଣକୁ ଉନ୍ନତ କରନ୍ତୁ"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ଭଏସ ସକ୍ରିୟକରଣ ମଡେଲକୁ ଉନ୍ନତ କରିବା ପାଇଁ ଏହି ଡିଭାଇସ ପ୍ରାଇଭେଟ ଇଣ୍ଟେଲିଜେନ୍ସ ବ୍ୟବହାର କରେ। ସମସ୍ତଙ୍କ ପାଇଁ ମଡେଲରେ ଉନ୍ନତି ଆଣିବା ସହିତ ଗୋପନୀୟତା ବଜାୟ ରଖିବା ପାଇଁ ଅନେକ ୟୁଜରଙ୍କଠାରୁ ଏକତ୍ରିତ କରାଯାଇଥିବା ସଂକ୍ଷିପ୍ତ ଅପଡେଟଗୁଡ଼ିକ ଆପ୍ସ ପାଇପାରିବ।\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g>ର ଡାଟା ସମ୍ପର୍କିତ ଚେତାବନୀ"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g>ର ଡାଟା ସୀମା"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g>ର ଡାଟା ସମ୍ପର୍କିତ ଚେତାବନୀ / <xliff:g id="ID_2">^2</xliff:g>ର ଡାଟା ସୀମା"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ଡିଭାଇସ୍‌ର ଗଣନାଠାରୁ କେରିଅର୍‌ର ଡାଟା ଗଣନା ଭିନ୍ନ ହୋଇପାରେ।"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"କ୍ୟାରିଅର୍ ନେଟୱାର୍କଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ଡାଟାକୁ ବାଦ୍ ଦିଆଯାଇଛି"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ବ୍ୟବହୃତ"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ଡାଟା ଚେତାବନୀ ସେଟ୍‌ କରନ୍ତୁ"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> ପୂର୍ବରୁ ଅପଡେଟ୍‌ ହୋଇଛି"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> ଦ୍ଵାରା ଏହିକ୍ଷଣି ଅପଡେଟ୍‌ ହୋଇଛି"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ଏହିକ୍ଷଣି ଅପଡେଟ୍‌ ହୋଇଛି"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ପ୍ଲାନ୍ ଦେଖନ୍ତୁ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"ବିବରଣୀ ଦେଖନ୍ତୁ"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ଡାଟା ସେଭର"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ଅପ୍ରତିବନ୍ଧିତ ଡାଟା"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ବେଟେରୀ ବ୍ୟବହାରରେ ବ୍ୟତିକ୍ରମ"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"କ୍ୱିକ୍ ସେଟିଂସ ଡେଭେଲପର ଟାଇଲ୍ସ"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb ଅଧିକାର ସମାପ୍ତ ହେବା ଅକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ଡିଫଲ୍ଟ (7 ଦିନ) କିମ୍ବା ୟୁଜରଙ୍କ ଦ୍ୱାରା କନଫିଗର କରାଯାଇଥିବା (ସର୍ବନିମ୍ନ 1 ଦିନ) ସମୟ ଭିତରେ ପୁଣି କନେକ୍ଟ କରାଯାଇନଥିବା ସିଷ୍ଟମଗୁଡ଼ିକ ପାଇଁ adb ଅଧିକାରଗୁଡ଼ିକର ସ୍ୱତଃ ବାତିଲକରଣକୁ ଅକ୍ଷମ କରନ୍ତୁ।"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope ଟ୍ରେସ୍"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ସେନ୍ସର୍‍ଗୁଡ଼ିକ ବନ୍ଦ ଅଛି"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ୱାର୍କ ପ୍ରୋଫାଇଲ ସେଟିଂସ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ବ୍ୟକ୍ତିଗତ ଆପ୍ସର ୱାର୍କ ଡିରେକ୍ଟୋରୀରେ କଣ୍ଟାକ୍ଟଗୁଡ଼ିକୁ ସର୍ଚ୍ଚ କରନ୍ତୁ"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ସ୍ୱତଃପୂରଣ ସେବା"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ଡିଫଲ୍ଟ ଅଟୋଫିଲ ସେବା"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"ପାସୱାର୍ଡଗୁଡ଼ିକ"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ଅତିରିକ୍ତ ପ୍ରଦାନକାରୀ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{#ଟି ପାସୱାର୍ଡ}other{#ଟି ପାସୱାର୍ଡ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ସ୍ୱତଃ, ପୂରଣ, ସ୍ୱତଃପୂରଣ, ପାସୱାର୍ଡ"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ଡାଟା, ପାସକୀ, ପାସୱାର୍ଡ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ସ୍ୱତଃ, ପୂରଣ, ଅଟୋଫିଲ, ଡାଟା, ପାସକୀ, ପାସୱାର୍ଡ"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ସମସ୍ତ ସେବାକୁ ବନ୍ଦ କରିବେ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ଆପଣ ସାଇନ ଇନ କଲେ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଅନ୍ୟ ସେଭ କରାଯାଇଥିବା ସୂଚନା ଅଟୋଫିଲ ପାଇଁ ଉପଲବ୍ଧ ହେବ ନାହିଁ"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;ଆପଣଙ୍କ ପସନ୍ଦର ସେବାକୁ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt;ରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ &lt;br/&gt; ବର୍ତ୍ତମାନଠାରୁ ନୂଆ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଅନ୍ୟ ସୂଚନାକୁ ଏଠାରେ ସେଭ କରାଯିବ। କଣ ଅଟୋଫିଲ କରାଯାଇପାରିବ ତାହା ସ୍ଥିର କରିବାକୁ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଯାହା ଥାଏ ତାକୁ ବ୍ୟବହାର କରିପାରେ"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$sକୁ ବ୍ୟବହାର କରିବେ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"ଏଥିରେ ଆପଣ କେବଳ 5 ସେବା ରଖିପାରିବେ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ଅନ୍ୟ ଏକ ସେବା ଯୋଗ କରିବାକୁ ଅତି କମରେ 1 ସେବାକୁ ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"କଣ ଅଟୋଫିଲ କରାଯାଇପାରିବ ତାହା ସ୍ଥିର କରିବାକୁ %1$s ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଯାହା ଥାଏ ତାକୁ ବ୍ୟବହାର କରେ।"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକର ସୀମା"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ସମାନ ସମୟରେ ଆପଣ 5ଟି ପର୍ଯ୍ୟନ୍ତ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାକୁ ସକ୍ରିୟ ରଖିପାରିବେ। ଅଧିକ ଯୋଗ କରିବା ପାଇଁ ଏକ ସେବାକୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକର ସୀମା"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ସମାନ ସମୟରେ ଆପଣ 5 ପର୍ଯ୍ୟନ୍ତ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାକୁ ସକ୍ରିୟ ରଖିପାରିବେ। ଅଧିକ ଯୋଗ କରିବା ପାଇଁ ଏକ ସେବାକୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ଅଟୋଫିଲ୍‌"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ଲଗିଂ ସ୍ତର"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ଆପ୍ କମ୍ପାଟିବିଲିଟୀ ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ କେବଳ ଡିବଗ୍ କରାଯାଇପାରୁଥିବା ଆପଗୁଡ଼ିକ ପାଇଁ ସଂଶୋଧନ କରାଯାଇପାରିବ। ଏକ ଡିବଗ୍ କରାଯାଇପାରୁଥିବା ଆପ୍ ଇନଷ୍ଟଲ୍ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"ଅନ୍ୟଏକ ସେଟିଙ୍ଗ ଉପରେ ନିର୍ଭର କରିଥାଏ"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ଆକାଉଣ୍ଟ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ଆକାଉଣ୍ଟ"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ଡିଭାଇସ୍‌ର ନାମ"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ମୌଳିକ ସୂଚନା"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"ଆଇନଗତ ଓ ନିୟାମକ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"ଏକ NFC ଟାଗ ସ୍କାନ ହେଲେ ଲଞ୍ଚ କରିବା ପାଇଁ ଏହି ଆପକୁ ଅନୁମତି ଦିଅନ୍ତୁ।\nଯଦି ଏହି ଅନୁମତି ଚାଲୁ ଥାଏ, ତେବେ ଏକ ଟାଗ ଚିହ୍ନଟ ହେଲେ ଏହି ଆପଟି ଏକ ବିକଳ୍ପ ଭାବେ ଉପଲବ୍ଧ ହେବ।"</string>
     <string name="media_output_title" msgid="8283629315159510680">"ମିଡିଆ ଚଲାନ୍ତୁ"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"ଏଥିରେ <xliff:g id="LABEL">%s</xliff:g> ଚଲାନ୍ତୁ"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ଅଡିଓ ପ୍ଲେ ହେବ"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ଏହି ଡିଭାଇସ୍‍"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"କଲ୍ କରିବାବେଳେ ଉପଲବ୍ଧ ନଥାଏ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ଏହା ଦ୍ଵାରା କଲ୍‌ର ଉତ୍ତର ଦିଅନ୍ତୁ"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ମ୍ୟୁଟ୍ କରନ୍ତୁ"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ସକ୍ଷମ କରିବା ପାଇଁ, ପାୱାର ମେନୁରେ ପ୍ରଥମେ \"ପାୱାର ବଟନକୁ ଦବାଇ ଧରି ରଖନ୍ତୁ\"କୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ।"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ନେଟୱାର୍କ ବିବରଣୀ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ଆପଣଙ୍କ ଫୋନରେ ଥିବା ଆପ୍ସକୁ ଆପଣଙ୍କ ଡିଭାଇସର ନାମ ଦେଖାଯାଇଥାଏ। ଯେତେବେଳେ ଆପଣ ବ୍ଲୁଟୁଥ ଡିଭାଇସଗୁଡ଼ିକ ସହ, ଏକ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ସହ କନେକ୍ଟ କରନ୍ତି କିମ୍ବା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ ସେଟ ଅପ କରନ୍ତି, ସେତେବେଳେ ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଯାଇପାରେ।"</string>
     <string name="devices_title" msgid="649715719278562515">"ଡିଭାଇସ୍‌"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ନେଟୱାର୍କ ବାଛନ୍ତୁ"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ବିଛିନ୍ନ ହୋ‍ଇଗଲା"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ନାମ"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ରଙ୍ଗ (ସୁସଙ୍ଗତ ଆପ୍ସ ଦ୍ୱାରା ବ୍ୟବହୃତ ହେଉଛି)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"ସେଭ୍ କରନ୍ତୁ"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ଏହି SIM ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ବନ୍ଦ ଅଛି"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ଏହି SIMକୁ ଅକ୍ଷମ କରିବା ପାଇଁ SIM କାର୍ଡକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g>କୁ ସକ୍ରିୟ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM ଖାଲି କରନ୍ତୁ"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ପସନ୍ଦର ନେଟୱାର୍କ ପ୍ରକାର"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ନେଟ୍‌ୱର୍କ ଅପରେଟିଙ୍ଗ ମୋଡ୍‌କୁ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ପସନ୍ଦର ନେଟୱାର୍କ ପ୍ରକାର"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ମୂଲ୍ୟ ଜାଣିବା ପାଇଁ ନିଜର ନେଟ୍‌ୱର୍କ ପ୍ରଦାତାଙ୍କ ସହ ସମ୍ପର୍କ କରନ୍ତୁ।"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ଆପର ଡାଟା ବ୍ୟବହାର"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ଅବୈଧ ନେଟ୍‍ୱର୍କ ମୋଡ୍‍ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>। ଅବଜ୍ଞା କରନ୍ତୁ।"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ଆକ୍ସେସ ପଏଣ୍ଟ ନାମ"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>କୁ ସଂଯୁକ୍ତ ହୋଇଥିବା ସମୟରେ ଉପଲବ୍ଧ ନଥାଏ"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>କୁ ସ୍ୱିଚ୍ କରିବେ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM କାର୍ଡ ବ୍ୟବହାର କରିବାକୁ ସ୍ୱିଚ୍ କରିବେ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ବ୍ୟବହାର କରିବେ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ଥରକେ କେବଳ ଗୋଟିଏ SIMକୁ ସକ୍ରିୟ କରାଯାଇପାରିବ।\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>କୁ ସ୍ୱିଚ୍ କରିବା ଦ୍ୱାରା ଆପଣଙ୍କର <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ସେବା ବାତିଲ ହେବ ନାହିଁ।"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ଏକ ସମୟରେ କେବଳ 1ଟି eSIM ସକ୍ରିୟ ହୋଇପାରିବ।\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>କୁ ସ୍ୱିଚ କରିବା ଫଳରେ ଏହା ଆପଣଙ୍କ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ସେବାକୁ ବାତିଲ କରିବ ନାହିଁ।"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ଥରକେ କେବଳ ଗୋଟିଏ SIMକୁ ସକ୍ରିୟ କରାଯାଇପାରିବ।\n\nସ୍ୱିଚ୍ କରିବା ଦ୍ୱାରା ଆପଣଙ୍କର <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ସେବା ବାତିଲ ହେବ ନାହିଁ।"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ଆପଣ ଥରକେ 2ଟି SIM ବ୍ୟବହାର କରିପାରିବେ। <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ବ୍ୟବହାର କରିବା ପାଇଁ, ଅନ୍ୟ ଏକ SIM ବନ୍ଦ କରନ୍ତୁ।"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>କୁ ସ୍ୱିଚ୍ କରନ୍ତୁ"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ବନ୍ଦ କରନ୍ତୁ"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ନା, ଧନ୍ୟବାଦ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ବାତିଲ କରନ୍ତୁ"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ସ୍ୱିଚ୍ କରନ୍ତୁ"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIMକୁ ସକ୍ରିୟ କରାଯାଇପାରିବ ନାହିଁ"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIMକୁ ପୁଣି ଚାଲୁ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରହେ, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ଆପଣଙ୍କ SIMକୁ ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ଏହି ଡିଭାଇସରେ ଏକାଧିକ SIM ବ୍ୟବହାର କରିବା ପାଇଁ ଆପଣଙ୍କ ମୋବାଇଲ ନେଟୱାର୍କ ପସନ୍ଦଗୁଡ଼ିକୁ ସେଟ କରନ୍ତୁ"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ଆପଣଙ୍କ SIMଗୁଡ଼ିକୁ ଲେବଲ କରନ୍ତୁ"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"କଲ କରିବା, ଟେକ୍ସଟ ପଠାଇବା ଓ ଡାଟା ବ୍ୟବହାର କରିବା ସମୟରେ ଏବଂ ସେଟିଂସରେ ଆପଣ ଏହି ଲେବଲଗୁଡ଼ିକୁ ଦେଖିବେ"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM ଲେବଲ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ଲେବଲ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"କେଉଁ SIM ବ୍ୟବହାର କରିବ ଚୟନ କର"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ଆପଣ ଏକ ସମୟରେ 2 SIM ବ୍ୟବହାର କରିପାରିବେ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ଆପଣଙ୍କ ପ୍ରାଥମିକ SIM ସେଟ କରନ୍ତୁ"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"କଲ, ଟେକ୍ସଟ ଏବଂ ଡାଟା ପାଇଁ ଡିଫଲ୍ଟ ଭାବରେ କେଉଁ SIMଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିବେ ତାହା ବାଛନ୍ତୁ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ଆପଣଙ୍କ ପ୍ରାଥମିକ SIMଗୁଡ଼ିକ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"କଲଗୁଡ଼ିକ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ଟେକ୍ସଟଗୁଡ଼ିକ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ସ୍ୱତଃ ଡାଟା ସୁଇଚିଂ"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"କଭରେଜ ଏବଂ ଉପଲବ୍ଧତା ଉପରେ ନିର୍ଭର କରି ଯେ କୌଣସି SIMରୁ ଡାଟା ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"କେବଳ ଡାଟା"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ସେଟ ଅପ କରନ୍ତୁ"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ପରବର୍ତ୍ତୀ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"ମୋବାଇଲ ନେଟୱାର୍କ"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ଫୋନ ନମ୍ବର"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM ଲେବଲ ଓ ରଙ୍ଗ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ନେଟୱାର୍କ ସକ୍ରିୟକରଣ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"କ୍ୟାରିଅର୍ ସ୍ୱିଚ୍ କରାଯାଉଛି"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ସକ୍ରିୟ ଅଛି"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"ପରବର୍ତ୍ତୀ ସମୟରେ ମୋବାଇଲ ଡାଟା, କଲ ଫିଚର ଓ SMS ବ୍ୟବହାର କରିବା ପାଇଁ ଆପଣଙ୍କ ନେଟୱାର୍କ ସେଟିଂସକୁ ଯାଆନ୍ତୁ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ଏହି eSIMକୁ ଇରେଜ କରିବେ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ଏହି SIMକୁ ଖାଲି କରିବା ଦ୍ୱାରା, ଏହି ଡିଭାଇସରୁ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ସେବାକୁ କାଢ଼ି ଦିଆଯିବ।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ପାଇଁ ସେବା ବାତିଲ୍ ହେବ ନାହିଁ।"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ଖାଲି କରନ୍ତୁ"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIMକୁ ଖାଲି କରାଯାଉଛି…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIMକୁ ଖାଲି କରାଯାଇପାରିବ ନାହିଁ"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ଏକ ତ୍ରୁଟି କାରଣରୁ ଏହି SIMକୁ ଖାଲି କରାଯାଇପାରିଲା ନାହିଁ।\n\nଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରି ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ଡିଭାଇସକୁୁ ସଂଯୋଗ କରନ୍ତୁ"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"ଆପଣଙ୍କ ଡିଭାଇସକୁ ସଂଯୋଗ କରିବା ପାଇଁ <xliff:g id="APPNAME">%1$s</xliff:g> ଆପ୍ ଏକ ଅସ୍ଥାୟୀ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ବ୍ୟବହାର କରିବାକୁ ଚାହୁଁଛି"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"କୌଣସି ଡିଭାଇସ୍ ମିଳିଲା ନାହିଁ। ସୁନିଶ୍ଚିତ ହୁଅନ୍ତୁ ଯେ ଡିଭାଇସ୍‍ ଚାଲୁ ହୋଇଛି ଏବଂ ସଂଯୋଗ କରିବା ପାଇଁ ଉପଲବ୍ଧ ଅଛି।"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ଜରୁରୀକାଳୀନ କଲ୍"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ଆପଣଙ୍କ ବାହକ ଦ୍ୱାରା ୱାଇ-ଫାଇ କଲିଂରେ ଜରୁରୀକାଳୀନ କଲ୍ ଉପଲବ୍ଧ ନାହିଁ।\nଏକ ଜରୁରୀକାଳୀନ କଲ୍ କରିବାକୁ ଡିଭାଇସ୍ ସ୍ୱଚାଳିତ ଭାବେ ମୋବାଇଲ୍ ନେଟ୍‌ୱାର୍କକୁ ପରିବର୍ତ୍ତନ ହୋଇଥାଏ।\nଜରୁରୀକାଳୀନ କଲ୍ କେବଳ ମୋବାଇଲ୍ ନେଟ୍‌ୱାର୍କ ଥିବା ସ୍ଥାନଗୁଡ଼ିକରେ ସମ୍ଭବ।"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"କଲ୍‌ର ମାନରେ ଉନ୍ନତି ପାଇଁ ପାଇଁ ୱାଇ-ଫାଇର ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ବ୍ୟାକଅପ୍ କଲିଂ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"ଯଦି <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ଉପଲବ୍ଧ ନାହିଁ କିମ୍ବା ରୋମିଂରେ ଅଛି, ତେବେ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> କଲ୍ ପାଇଁ ଆପଣଙ୍କ ମୋବାଇଲ ଡାଟା SIM ବ୍ୟବହାର କରନ୍ତୁ।"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ବ୍ୟାକଅପ୍ କଲିଂ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ଇନକମିଂ MMS ମେସେଜ୍"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS ମେସେଜ୍ ପଠାଯାଇ ପାରିଲାନାହିଁ"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ମୋବାଇଲ୍ ଡାଟା ବନ୍ଦ ଥିବା ବେଳେ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>ରେ MMS ମେସେଜିଂ ଅନୁମତି ଦେବାକୁ ଟାପ୍ କରନ୍ତୁ"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ଆପଣଙ୍କ କାର୍ଯ୍ୟ ନୀତି ସୂଚନା"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ଆପଣଙ୍କ IT ଆଡମିନଙ୍କ ଦ୍ୱାରା ସେଟିଂସ ପରିଚାଳିତ କରାଯାଇଛି।"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K ପେଜ ସାଇଜ ସହ ବୁଟ କରନ୍ତୁ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16K ପେଜ ସାଇଜ ସମର୍ଥିତ କର୍ନେଲ ବ୍ୟବହାର କରି ଡିଭାଇସ ବୁଟ କର"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB ପେଜ କମ୍ପାଟିବଲ କର୍ନେଲ ସହ ରିବୁଟ କରିବେ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ଚେତାବନୀ: କିଛି ଆପ୍ଲିକେସନ ଏହି ମୋଡ ସହ କମ୍ପାଟିବଲ ହୋଇନପାରେ। ସୁନିଶ୍ଚିତକରଣ ପରେ ଡିଭାଇସ ରିବୁଟ ହେବ।"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB ପେଜ କମ୍ପାଟିବଲ କର୍ନେଲ ସହ ରିବୁଟ କରିବେ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"ସୁନିଶ୍ଚିତକରଣ ପରେ ଡିଭାଇସ ରିବୁଟ ହେବ।"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"କର୍ନେଲକୁ 16KB ପେଜ କମ୍ପାଟିବଲ କର୍ନେଲରେ ଅପଡେଟ କରିବାରେ ବିଫଳ ହୋଇଛି।"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ପରିବର୍ତ୍ତନକୁ ଲାଗୁ କରାଯାଉଛି"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ବଗ ରିପୋର୍ଟ ହେଣ୍ଡଲର"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"ଆପଣଙ୍କ ଡିଭାଇସ୍‌ରେ କେଉଁ ଆପ୍ ବଗ୍ ରିପୋର୍ଟ ସର୍ଟକର୍ଟ ପରିଚାଳନା କରେ, ତାହା ନିର୍ଦ୍ଧାରଣ କରେ।"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ବ୍ୟକ୍ତିଗତ"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"ଶୀଘ୍ର ପ୍ଲେବ୍ୟାକ ପୁଣି ଆରମ୍ଭ କରିବାକୁ କ୍ୱିକ୍ ସେଟିଂସରେ ମିଡିଆ ପ୍ଲେୟାର ଖୋଲା ରହିଥାଏ"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ଲକ ସ୍କ୍ରିନରେ ମିଡିଆ ଦେଖାନ୍ତୁ"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"ଶୀଘ୍ର ପ୍ଲେବ୍ୟାକକୁ ପୁଣି ଆରମ୍ଭ କରିବା ପାଇଁ ଲକ ସ୍କ୍ରିନରେ ମିଡିଆ ପ୍ଲେୟାର ଖୋଲା ରହିଥାଏ"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"ମିଡିଆ ସୁପାରିଶଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant ମିଡିଆ ସୁପାରିଶଗୁଡ଼ିକ ଦେଖାନ୍ତୁ"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"ଆପଣଙ୍କ କାର୍ଯ୍ୟକଳାପ ଆଧାରରେ"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ପ୍ଲେୟାରକୁ ଲୁଚାନ୍ତୁ"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ପ୍ଲେୟାର୍ ଦେଖାନ୍ତୁ"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMଗୁଡ଼ିକ"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"ସକ୍ରିୟ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ନିଷ୍କ୍ରିୟ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> ପାଇଁ ଡିଫଲ୍ଟ"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"କଲଗୁଡ଼ିକ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"କମ୍ପାଟିବଲ ମିଡିଆରୁ ଆସିଥିବା ଅଡିଓ ଅଧିକ ଇମର୍ସିଭ ହୋଇଥାଏ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ହେଡ ଟ୍ରାକିଂ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ସାଉଣ୍ଡକୁ ଅଧିକ ସ୍ୱାଭାବିକ କରିବା ପାଇଁ ଆପଣ ଆପଣଙ୍କ ମୁଣ୍ଡକୁ ମୁଭ କରିବା ସମୟରେ ଅଡିଓ ପରିବର୍ତ୍ତନ ହୁଏ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ଅନୁମତିଗୁଡ଼ିକୁ ସିଙ୍କ କରନ୍ତୁ"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>ରେ ଆପଣ ଅନୁମତି ଦେଇଥିବା ସମାନ ଆପ ଅନୁମତି <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>କୁ ଦିଅନ୍ତୁ"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ଫୋନରୁ ଅନୁମତିଗୁଡ଼ିକୁ ସିଙ୍କ କରନ୍ତୁ"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ଏହି ଫୋନରେ ଆପଣ ଅନୁମତି ଦେଇଥିବା ସମାନ ଆପ ଅନୁମତି ଆପଣଙ୍କ ୱାଚକୁ ଦିଅନ୍ତୁ"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ଅଡିଓ ଡିଭାଇସ ପ୍ରକାର"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ଅଜଣା"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ସ୍ପିକର"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"ମଧ୍ୟମ"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ଅଧିକ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ଏହି ଆପକୁ କେବଳ 1ଟି ୱିଣ୍ଡୋରେ ଖୋଲାଯାଇପାରିବ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ଚାଲୁ ଅଛି"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ବନ୍ଦ ଅଛି"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ବନ୍ଦ ଅଛି"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ବନ୍ଦ ଅଛି"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ଚାଲୁ ଅଛି"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ବନ୍ଦ ଅଛି"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ଚାଲୁ ଅଛି"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ବନ୍ଦ ଅଛି"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ଲାଇଟ ସ୍କ୍ରିନକୁ ଡାର୍କରେ ପରଣତ କରେ ଏବଂ ଡାର୍କ ସ୍କ୍ରିନକୁ ଲାଇଟରେ ପରିଣତ କରେ"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ସ୍କ୍ରିନରେ ଜୁମ ଇନ କରନ୍ତୁ"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ବନ୍ଦ ଅଛି"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ବନ୍ଦ ଅଛି"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ଚାଲୁ ଅଛି"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ବନ୍ଦ ଅଛି"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ଚାଲୁ ଅଛି"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"ପାସୱାର୍ଡ ବର୍ତ୍ତମାନ ସେଟ ଅପ ହୋଇଛି"</string>
 </resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 13330f5..47bb15c 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 ਮਿੰਟ ਬਾਅਦ"</item>
     <item msgid="1574040255478150028">"5 ਮਿੰਟਾਂ ਬਾਅਦ"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 0c7261e..79b7faf 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"ਸਿਰਫ਼ ਪ੍ਰਸ਼ਾਸਕ ਵਰਤੋਂਕਾਰ ਹੀ ਵਿਕਾਸਕਾਰ ਸੈਟਿੰਗਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹਨ।"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ਸਿਸਟਮ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"ਸੇਵਾ ਵਿੱਚ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ਸੇਵਾ ਵਿੱਚ ਨਹੀਂ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਫੋਲਡ ਕਰੋ ਅਤੇ ਐਪ ਦੀ ਵਰਤੋਂ ਜਾਰੀ ਰੱਖਣ ਲਈ ਅਗਲੀ ਡਿਸਪਲੇ \'ਤੇ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ ਜਾਂ ਸਕ੍ਰੀਨ ਲਾਕ ਹੋਣ ਲਈ ਕੁਝ ਸਕਿੰਟਾਂ ਦੀ ਉਡੀਕ ਕਰੋ"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ਸੰਬੰਧਿਤ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ਰਿੰਗਟੋਨ ਅਤੇ ਅਲਾਰਮ"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"ਕਾਲਾਂ ਦੌਰਾਨ ਆਡੀਓ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"ਮੀਡੀਆ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਸਿਸਟਮ ਧੁਨੀਆਂ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"ਮੀਡੀਆ ਅਤੇ ਸਿਸਟਮ ਦੀਆਂ ਧੁਨੀਆਂ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"ਸੂਚਨਾਵਾਂ"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਤੌਰ \'ਤੇ, ਆਡੀਓ ਆਊਟਪੁੱਟ ਨੂੰ ਵਿਅਕਤੀਗਤ ਐਪਾਂ ਮੁਤਾਬਕ ਨਿਰਧਾਰਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"ਬਿਨਾਂ ਨਾਮ ਦਾ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"ਖੋਜ ਰਿਹਾ ਹੈ"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"ਬਲੂਟੁੱਥ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ਸਭ ਦੇਖੋ"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ਸਭ ਦੇਖੋ"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ਸਟਾਈਲਸ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"ਟੇਲ ਬਟਨ ਦਬਾਓ"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ਆਡੀਓ ਸਟ੍ਰੀਮ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"ਨਜ਼ਦੀਕੀ ਆਡੀਓ ਸਟ੍ਰੀਮ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ਆਡੀਓ ਸਟ੍ਰੀਮ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਆਡੀਓ ਸਟ੍ਰੀਮ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"ਕੋਈ ਨਜ਼ਦੀਕੀ ਆਡੀਓ ਸਟ੍ਰੀਮ ਨਹੀਂ ਮਿਲੀ।"</string>
     <string name="date_and_time" msgid="1788358029823431692">"ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"ਪ੍ਰੌਕਸੀ"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ਕਲੀਅਰ ਕਰੋ"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ਹਰੇਕ ਐਪ ਲਈ ਕੋਈ ਭਾਸ਼ਾ ਚੁਣਨ ਵਾਸਤੇ, ਐਪ ਦੀਆਂ ਭਾਸ਼ਾ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ।"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ਐਪ ਭਾਸ਼ਾਵਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"ਕੀ ਸਿਸਟਮ ਭਾਸ਼ਾ ਨੂੰ %s ਵਿੱਚ ਬਦਲਣਾ ਹੈ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"ਕੀ %s ਨੂੰ ਤਰਜੀਹੀ ਭਾਸ਼ਾਵਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਕਰਨਾ ਹੈ?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"ਇਸ ਨਾਲ ਐਪਾਂ ਅਤੇ ਵੈੱਬਸਾਈਟਾਂ ਨੂੰ ਪਤਾ ਲੱਗਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਇਸ ਭਾਸ਼ਾ ਨੂੰ ਵੀ ਤਰਜੀਹ ਦਿੰਦੇ ਹੋ।"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀਆਂ ਸੈਟਿੰਗਾਂ ਅਤੇ ਖੇਤਰੀ ਤਰਜੀਹਾਂ ਬਦਲ ਜਾਣਗੀਆਂ।"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"ਬਦਲੋ"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ਸ਼ਨੀਵਾਰ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ਜੇ ਕੋਈ ਐਪ ਖੇਤਰੀ ਤਰਜੀਹਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ, ਤਾਂ ਐਪ ਆਪਣੀਆਂ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਲੋਕੇਲ ਸੈਟਿੰਗਾਂ ਵਰਤੇਗੀ।"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ਭਾਸ਼ਾਈ ਤਰਜੀਹਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ।"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ਵਧੀਕ ਤਰਜੀਹਾਂ"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ਪਤੇ ਦੇ ਨਿਯਮ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"ਸੈੱਟ ਕਰੋ ਕਿ ਤੁਸੀਂ ਕਿਵੇਂ ਸੰਬੋਧਿਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"ਐਪਾਂ ਤੁਹਾਡੇ ਪਤੇ ਦੇ ਨਿਯਮਾਂ ਨੂੰ ਵਿਅਕਤੀਗਤ ਬਣਾਉਣ ਲਈ ਵਰਤ ਸਕਦੀਆਂ ਹਨ ਕਿ ਉਹ ਤੁਹਾਨੂੰ ਕਿਵੇਂ ਸੰਬੋਧਨ ਕਰਦੇ ਹਨ।"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"ਨਿਰਧਾਰਿਤ ਨਹੀਂ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ਇਸਤਰੀ-ਲਿੰਗ"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ਪੁਲਿੰਗ"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"ਨਿਰਪੱਖ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ਕੀ ਚੁਣੀ ਗਈ ਭਾਸ਼ਾ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?}one{ਕੀ ਚੁਣੀ ਗਈ ਭਾਸ਼ਾ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?}other{ਕੀ ਚੁਣੀਆਂ ਗਈਆਂ ਭਾਸ਼ਾਵਾਂ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ਲਿਖਤ ਨੂੰ ਕਿਸੇ ਹੋਰ ਭਾਸ਼ਾ ਵਿੱਚ ਦਿਖਾਇਆ ਜਾਵੇਗਾ"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ਟਿਕਾਣਾ"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ਟਿਕਾਣਾ ਵਰਤੋ"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ਬੰਦ"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ਚਾਲੂ - # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}one{ਚਾਲੂ - # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}other{ਚਾਲੂ - # ਐਪਾਂ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ਚਾਲੂ / # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}one{ਚਾਲੂ / # ਐਪ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}other{ਚਾਲੂ / # ਐਪਾਂ ਕੋਲ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਹੈ}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਦੀਆਂ ਇਜਾਜ਼ਤਾਂ ਵਾਲੀਆਂ ਐਪਾਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸਾਂ ਦੀ ਸੰਬੰਧਿਤ ਸਥਿਤੀ ਨਿਰਧਾਰਿਤ ਕਰ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਲਈ ਟਿਕਾਣਾ ਪਹੁੰਚ ਬੰਦ ਹੈ। ਤੁਹਾਡੇ ਵੱਲੋਂ ਕਿਸੇ ਐਮਰਜੈਂਸੀ ਨੰਬਰ \'ਤੇ ਕਾਲ ਕਰਨ ਜਾਂ ਲਿਖਤ ਸੁਨੇਹਾ ਭੇਜਣ \'ਤੇ ਹਾਲੇ ਵੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਐਮਰਜੈਂਸੀ ਮਦਦਗਾਰਾਂ ਨੂੰ ਭੇਜੀ ਜਾ ਸਕਦੀ ਹੈ।"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ।"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ਟਿਕਾਣਾ ਸੈਟਿੰਗਾਂ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ਟਿਕਾਣਾ ਪਹੁੰਚ ਨੂੰ ਬਦਲਣ ਲਈ, ਸੈਟਿੰਗਾਂ &gt; ਸੁਰੱਖਿਆ ਅਤੇ ਪਰਦੇਦਾਰੀ &gt; ਪਰਦੇਦਾਰੀ ਕੰਟਰੋਲ \'ਤੇ ਜਾਓ"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ਬਿਹਤਰੀਨ ਨਤੀਜਿਆਂ ਲਈ, Made for Google ਵੱਲੋਂ ਪ੍ਰਮਾਣਿਤ ਸਕ੍ਰੀਨ ਗਾਰਡ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਦੂਜੇ ਸਕ੍ਰੀਨ ਗਾਰਡਾਂ ਨਾਲ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡੇ ਬੱਚੇ ਦਾ ਫਿੰਗਰਪ੍ਰਿੰਟ ਕੰਮ ਨਾ ਕਰੇ।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ਵਾਚ ਅਣਲਾਕ"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"ਜਦੋਂ ਤੁਸੀਂ ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਦੇ ਹੋ, ਤਾਂ ਮਾਸਕ ਪਾਇਆ ਹੋਣ \'ਤੇ ਜਾਂ ਕਿਸੇ ਹਨੇਰੇ ਵਾਲੀ ਜਗ੍ਹਾ ਵਿੱਚ ਹੋਣ \'ਤੇ ਤੁਹਾਡਾ ਫ਼ੋਨ ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਾਸਤੇ ਪੁੱਛੇਗਾ।\n\nਚਿਹਰੇ ਜਾਂ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪਛਾਣ ਨਾ ਹੋਣ \'ਤੇ ਤੁਸੀਂ ਆਪਣੀ ਘੜੀ ਨਾਲ ਵੀ ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ।"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਪਛਾਣ ਨਾ ਹੋਣ \'ਤੇ ਤੁਸੀਂ ਆਪਣੀ ਘੜੀ ਨਾਲ ਵੀ ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ।"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"ਚਿਹਰੇ ਦੀ ਪਛਾਣ ਨਾ ਹੋਣ \'ਤੇ ਤੁਸੀਂ ਆਪਣੀ ਘੜੀ ਨਾਲ ਵੀ ਖੋਲ੍ਹ ਸਕਦੇ ਹੋ।"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"ਜਦੋਂ ਤੁਸੀਂ ਫ਼ੇਸ ਅਣਲਾਕ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਦਾ ਸੈੱਟਅੱਪ ਕਰਦੇ ਹੋ, ਤਾਂ ਮਾਸਕ ਪਾਇਆ ਹੋਣ \'ਤੇ ਜਾਂ ਕਿਸੇ ਹਨੇਰੇ ਵਾਲੀ ਜਗ੍ਹਾ ਵਿੱਚ ਹੋਣ \'ਤੇ ਤੁਹਾਡਾ ਫ਼ੋਨ ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਾਸਤੇ ਪੁੱਛੇਗਾ।\n\nਵਾਚ ਅਣਲਾਕ ਤੁਹਾਡੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਸੁਵਿਧਾਜਨਕ ਤਰੀਕਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਤੁਹਾਡੀਆਂ ਉਂਗਲਾਂ ਗਿੱਲੀਆਂ ਹੁੰਦੀਆਂ ਹਨ ਜਾਂ ਚਿਹਰਾ ਪਛਾਣਿਆ ਨਾ ਗਿਆ ਹੋਵੇ।"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ਵਾਚ ਅਣਲਾਕ ਵਿਸ਼ੇਸ਼ਤਾ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਸੁਵਿਧਾਜਨਕ ਤਰੀਕਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਤੁਹਾਡੀਆਂ ਉਂਗਲਾਂ ਦੀ ਪਛਾਣ ਨਹੀਂ ਹੁੰਦੀ ਹੈ।"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ਵਾਚ ਅਣਲਾਕ ਵਿਸ਼ੇਸ਼ਤਾ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਸੁਵਿਧਾਜਨਕ ਤਰੀਕਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਤੁਹਾਡਾ ਚਿਹਰਾ ਪਛਾਣਿਆ ਨਾ ਗਿਆ ਹੋਵੇ।"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ਇਸ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਜਾਂ ਘੜੀ ਦੀ ਵਰਤੋ"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ਇਸ ਲਈ ਚਿਹਰਾ ਜਾਂ ਘੜੀ ਵਰਤੋ"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ਇਸ ਲਈ ਚਿਹਰਾ, ਫਿੰਗਰਪ੍ਰਿੰਟ ਜਾਂ ਘੜੀ ਵਰਤੋ"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ਚਿਹਰੇ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ਇਸਦੇ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ਤੁਹਾਡੀ ਘੜੀ ਦਾ ਅਣਲਾਕ ਹੋਣਾ, ਤੁਹਾਡੇ ਗੁੱਟ \'ਤੇ ਹੋਣਾ ਅਤੇ ਇਸ ਫ਼ੋਨ ਦੀ ਪਹੁੰਚ ਵਿੱਚ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਤੁਹਾਡੀ ਘੜੀ ਦੇ ਤੁਹਾਡੇ ਗੁੱਟ \'ਤੇ ਹੋਣ ਦੌਰਾਨ ਤੁਹਾਨੂੰ ਘੜੀ ਨੂੰ ਦੁਬਾਰਾ ਅਣਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਵੇਗੀ।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ਇਸ ਫ਼ੋਨ ਦੇ ਅਣਲਾਕ ਹੋਣ \'ਤੇ, ਤੁਹਾਨੂੰ ਤੁਹਾਡੀ ਘੜੀ \'ਤੇ ਸੂਚਿਤ ਕੀਤਾ ਜਾਵੇਗਾ। ਜੇ ਇਹ ਤੁਹਾਡੀ ਮਰਜ਼ੀ ਦੇ ਬਿਨਾਂ ਅਣਲਾਕ ਹੋ ਗਿਆ ਸੀ, ਤਾਂ ਫ਼ੋਨ ਨੂੰ ਦੁਬਾਰਾ ਲਾਕ ਕਰਨ ਲਈ ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ਕੰਟਰੋਲ ਤੁਹਾਡੇ ਹੱਥ ਵਿੱਚ ਹੈ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ਤੁਸੀਂ ਕਦੇ ਵੀ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਵਾਚ ਅਣਲਾਕ ਤੋਂ ਆਪਣੀ ਘੜੀ ਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ਆਪਣੀ ਘੜੀ ਚੁਣੋ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ਉਪਲਬਧ ਘੜੀਆਂ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ਰੱਦ ਕਰੋ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ਤਸਦੀਕ ਕਰੋ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ਤੁਸੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤਿਆਰ ਹੋ!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ਜਦੋਂ ਤੁਸੀਂ ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸਵਾਈਪ ਕਰਦੇ ਹੋ ਜਾਂ ਕਿਸੇ ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਆਪਣੀ ਘੜੀ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ਹੋ ਗਿਆ"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ਵਾਚ ਅਣਲਾਕ"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰ ਕੇ ਜਾਂ ਕਿਸੇ ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰ ਕੇ, ਤੁਸੀਂ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਆਪਣੀ ਘੜੀ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ਵਾਚ ਅਣਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਡੀ ਘੜੀ ਦਾ ਅਣਲਾਕ ਹੋਣਾ, ਤੁਹਾਡੇ ਗੁੱਟ \'ਤੇ ਹੋਣਾ, ਪਹੁੰਚ ਦੇ ਅੰਦਰ ਹੋਣਾ ਅਤੇ ਇਸ ਫ਼ੋਨ ਨਾਲ ਕਨੈਕਟ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਜੇ ਕਨੈਕਸ਼ਨ ਵਿੱਚ ਰੁਕਾਵਟ ਆਉਂਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਵਾਚ ਅਣਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ।\n\nਧਿਆਨ ਵਿੱਚ ਰੱਖੋ:\nਤੁਸੀਂ ਇੱਕ ਸਮੇਂ \'ਤੇ ਇੱਕੋ ਹੀ ਘੜੀ ਦਾ ਸੈੱਟਅੱਪ ਕਰ ਸਕਦੇ ਹੋ। ਇੱਕ ਹੋਰ ਘੜੀ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਘੜੀ ਨੂੰ ਹਟਾਓ।"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ਵਾਚ ਅਣਲਾਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ਘੜੀ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ਘੜੀ ਨੂੰ ਹਟਾਓ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਲਈ ਫ਼ੇਸ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ਸੈੱਟਅੱਪ ਦੀ ਲੋੜ ਹੈ"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ਸੁਰੱਖਿਆ"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ਪਰਦੇਦਾਰੀ"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ਨਿੱਜੀ ਸਪੇਸ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ਨਿੱਜੀ ਐਪਾਂ ਨੂੰ ਲਾਕ ਕਰ ਕੇ ਅਦਿੱਖ ਰੱਖੋ"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"ਨਿੱਜੀ ਐਪਾਂ ਨੂੰ ਵੱਖਰੀ ਸਪੇਸ ਵਿੱਚ ਰੱਖੋ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਲੁਕਾ ਜਾਂ ਲਾਕ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ਨਿੱਜੀ ਸਪੇਸ ਲਾਕ"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"ਤੁਸੀਂ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਅਣਲਾਕ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ ਤਰ੍ਹਾਂ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਹੋ ਜਾਂ ਕੋਈ ਵੱਖਰਾ ਲਾਕ ਚੁਣੋ"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ਡੀਵਾਈਸ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ਚਿਹਰਾ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ਫ਼ੇਸ ਅਣਲਾਕ"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"ਸੈੱਟਅੱਪ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਫ਼ੇਸ ਅਣਲਾਕ"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"ਅਣਲਾਕ ਕਰਨ ਦੇ ਤਰੀਕੇ"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"ਡੀਵਾਈਸ ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਗਾ"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ਕੀ ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਨਵਾਂ ਲਾਕ ਚੁਣਨਾ ਹੈ?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ਆਪਣੇ ਆਪ ਲਾਕ ਹੋਣ ਦੀ ਸੁਵਿਧਾ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ਨਿੱਜੀ ਸਪੇਸ ਆਪਣੇ ਆਪ ਲਾਕ ਹੋਣ ਦੀ ਸੁਵਿਧਾ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"ਜੇ ਤੁਸੀਂ ਕੁਝ ਸਮੇਂ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਹੈ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਇਹ ਵਿਕਲਪ ਹੈ ਕਿ ਤੁਹਾਡੀ ਨਿੱਜੀ ਸਪੇਸ ਆਪਣੇ ਆਪ ਲਾਕ ਹੋ ਜਾਵੇਗੀ"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ਹਰ ਵਾਰ ਡੀਵਾਈਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"ਅਕਿਰਿਆਸ਼ੀਲਤਾ ਦੇ 5 ਮਿੰਟ ਬਾਅਦ"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
+    <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_deleted" msgid="7825768516955610897">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਮਿਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਿਆ"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ਪ੍ਰਾਈਵੇਟ ਸਪੇਸ ਅਣਲਾਕ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਵਰਤਣ ਲਈ, ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ਸਕ੍ਰੀਨ ਲਾਕ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ਰੱਦ ਕਰੋ"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ਰੱਦ ਕਰੋ"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"ਨਿੱਜੀ ਐਪਾਂ ਨੂੰ ਵੱਖਰੀ ਸਪੇਸ ਵਿੱਚ ਰੱਖੋ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਲੁਕਾ ਜਾਂ ਲਾਕ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ਇਸਦੇ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ਤੁਸੀਂ ਆਪਣੀ ਐਪਾਂ ਦੀ ਸੂਚੀ ਦੇ ਹੇਠਾਂ ਦਿੱਤੀ ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੇ ਹੋ"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ਨਿੱਜੀ ਸਪੇਸ ਵਿਚਲੀਆਂ ਐਪਾਂ ਨੂੰ ਲਾਕ ਨਾਲ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ਨਿੱਜੀ ਸਪੇਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ, ਨਿੱਜੀ ਸਪੇਸ ਵਿੱਚ ਮੌਜੂਦ ਐਪਾਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਲੁਕੀਆਂ ਹੁੰਦੀਆਂ ਹਨ"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"ਤੁਹਾਡੀ ਨਿੱਜੀ ਸਪੇਸ ਲਾਕ ਹੋਣ \'ਤੇ ਇਜਾਜ਼ਤ ਪ੍ਰਬੰਧਕ, ਪਰਦੇਦਾਰੀ ਸੰਬੰਧੀ ਡੈਸ਼ਬੋਰਡ, ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਨਿੱਜੀ ਸਪੇਸ ਵਿਚਲੀਆਂ ਐਪਾਂ ਦਿਖਾਈ ਨਹੀਂ ਦੇਣਗੀਆਂ।\n\nਤੁਹਾਡੀ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਨਵੇਂ ਡੀਵਾਈਸ \'ਤੇ ਨਹੀਂ ਲਿਜਾਇਆ ਜਾ ਸਕਦਾ। ਜੇ ਤੁਸੀਂ ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਕਿਸੇ ਹੋਰ ਡੀਵਾਈਸ \'ਤੇ ਵਰਤਣਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਹੋਰ ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ।\n\nਜਦੋਂ ਕੋਈ ਵਿਅਕਤੀ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਕਿਸੇ ਕੰਪਿਊਟਰ ਨਾਲ ਕਨੈਕਟ ਕਰਦਾ ਹੈ ਜਾਂ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਨੁਕਸਾਨਦੇਹ ਐਪਾਂ ਸਥਾਪਤ ਕਰਦਾ ਹੈ, ਤਾਂ ਉਹ ਤੁਹਾਡੀ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹੈ।"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ਨਿੱਜੀ ਸਪੇਸ ਦੇ ਲਾਕ ਹੋਣ \'ਤੇ, ਨਿੱਜੀ ਸਪੇਸ ਵਿੱਚ ਮੌਜੂਦ ਐਪਾਂ ਦੀਆਂ ਸੂਚਨਾਵਾਂ ਲੁਕੀਆਂ ਹੁੰਦੀਆਂ ਹਨ"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ਨਿੱਜੀ ਸਪੇਸ ਵਾਲੀਆਂ ਐਪਾਂ ਤੋਂ ਫ਼ੋਟੋਆਂ ਜਾਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਸਾਂਝਾ ਕਰਨ ਲਈ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਅਣਲਾਕ ਕਰੋ"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"ਤੁਹਾਡੀ ਨਿੱਜੀ ਸਪੇਸ ਵਿੱਚ ਕੁਝ ਐਪਾਂ ਪਹਿਲਾਂ ਹੀ ਸਥਾਪਤ ਕੀਤੀਆਂ ਹੋਈਆਂ ਹਨ"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ਨਿੱਜੀ ਸਪੇਸ ਦਾ ਸੈੱਟਅੱਪ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ਕੀ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਸਕ੍ਰੀਨ ਲਾਕ ਨਾਲ ਅਣਲਾਕ ਕਰਨਾ ਹੈ?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"ਤੁਸੀਂ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਉਸੇ ਤਰੀਕੇ ਨਾਲ ਅਣਲਾਕ ਕਰ ਸਕਦੇ ਹੋ ਜਿਸ ਤਰ੍ਹਾਂ ਤੁਸੀਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਕਰਦੇ ਹੋ ਜਾਂ ਕੋਈ ਵੱਖਰਾ ਲਾਕ ਚੁਣੋ"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ਸਕ੍ਰੀਨ ਲਾਕ ਵਰਤੋ"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"ਨਵਾਂ ਲਾਕ ਚੁਣੋ"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"ਸਭ ਹੋ ਗਿਆ!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ, ਆਪਣੀ ਐਪ ਸੂਚੀ \'ਤੇ ਜਾ ਕੇ ਹੇਠਾਂ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ਹੋ ਗਿਆ"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਲੱਭਣ ਲਈ ਹੇਠਾਂ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਲਾਕ ਚੁਣੋ"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"ਤੁਸੀਂ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਅਣਲਾਕ ਕਰ ਸਕਦੇ ਹੋ। ਸੁਰੱਖਿਆ ਲਈ, ਇਸ ਵਿਕਲਪ ਨੂੰ ਬੈਕਅੱਪ ਲਾਕ ਦੀ ਲੋੜ ਹੈ।"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਪਿੰਨ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਪਾਸਵਰਡ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ਆਪਣੀ ਨਿੱਜੀ ਸਪੇਸ ਲਈ ਪੈਟਰਨ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ਨਿੱਜੀ ਸਪੇਸ ਦਿਖਾਉਣ ਲਈ (ਅੰਤਿਮ UX ਨਹੀਂ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"ਸੈਟਿੰਗਾਂ ਐਪ ਖੋਲ੍ਹੋ"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ਸੁਰੱਖਿਆ ਅਤੇ ਪਰਦੇਦਾਰੀ &gt; ਨਿੱਜੀ ਸਪੇਸ &gt; \'ਲਾਕ ਹੋਣ \'ਤੇ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਲੁਕਾਓ\' \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"\'ਲਾਕ ਹੋਣ \'ਤੇ ਨਿੱਜੀ ਸਪੇਸ ਨੂੰ ਲੁਕਾਓ\' ਟੌਗਲ ਨੂੰ ਬੰਦ ਕਰੋ"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"ਗੂਗਲਰਾਂ ਲਈ ਨੋਟ: ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਦਾ ਵਿਕਾਸ ਹਾਲੇ ਵੀ ਪ੍ਰਕਿਰਿਆ-ਅਧੀਨ ਹੈ"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ਤੁਹਾਨੂੰ ਹੋਰ ਡੀਵਾਈਸ ਤੇ ਵੀ ਇਹ ਪਾਸਕੁੰਜੀ ਟਾਈਪ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ਤਾਲ-ਮੇਲ ਵਾਲੇ ਸੈੱਟ ਨਾਲ ਜੋੜਾਬੱਧ ਕਰਨ ਲਈ ਤਸਦੀਕ ਕਰੋ"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ ਤੱਕ ਵੀ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਾਲ ਘੋਸ਼ਣਾਵਾਂ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਲਈ ਕੀਤੀ ਜਾਵੇਗੀ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ਉਪਲਬਧ ਡੀਵਾਈਸ"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ਏਅਰਪਲੇਨ ਮੋਡ ਵਿੱਚ"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"ਜਨਤਕ ਨੈੱਟਵਰਕਾਂ ਲਈ ਸੂਚਿਤ ਕਰੋ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ਬਿਹਤਰੀਨ ਕੁਆਲਿਟੀ ਵਾਲਾ ਕੋਈ ਜਨਤਕ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਹੋਣ \'ਤੇ ਸੂਚਿਤ ਕਰੋ"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ਨੈੱਟਵਰਕਾਂ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ਇੱਕ ਪੁਰਾਣਾ ਸੁਰੱਖਿਆ ਪ੍ਰੋਟੋਕੋਲ ਹੈ, ਜੋ ਘੱਟ ਸੁਰੱਖਿਅਤ ਹੈ"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"ਤੁਹਾਡਾ ਕੈਰੀਅਰ WEP ਨੈੱਟਵਰਕਾਂ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦਾ, ਕਿਉਂਕਿ ਉਹ ਘੱਟ ਸੁਰੱਖਿਅਤ ਹਨ"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਵਾਈ‑ਫਾਈ ਚਾਲੂ ਕਰੋ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"ਤੁਹਾਡੇ ਘਰੇਲੂ ਨੈੱਟਵਰਕ ਵਰਗੇ ਬਿਹਤਰੀਨ ਕੁਆਲਿਟੀ ਵਾਲੇ ਰੱਖਿਅਤ ਕੀਤੇ ਨੈੱਟਵਰਕਾਂ ਦੇ ਨੇੜੇ ਹੋਣ \'ਤੇ ਵਾਈ-ਫਾਈ ਦੁਬਾਰਾ ਚਾਲੂ ਹੋ ਜਾਵੇਗਾ"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ਅਣਉਪਲਬਧ ਕਿਉਂਕਿ ਟਿਕਾਣਾ ਬੰਦ ਹੈ। "<annotation id="link">"ਟਿਕਾਣਾ"</annotation>" ਚਾਲੂ ਕਰੋ।"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"ਵਾਈ-ਫਾਈ ਸਕੈਨਿੰਗ ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਨੂੰ ਕਿਸੇ ਵੇਲੇ ਵੀ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਲਈ ਸਕੈਨ ਕਰਨ ਦਿੰਦੀ ਹੈ, ਭਾਵੇਂ ਵਾਈ-ਫਾਈ ਬੰਦ ਹੋਵੇ। ਉਦਾਹਰਨ ਲਈ, ਇਸਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ਚਾਲੂ ਕਰੋ"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"ਵਾਈ-ਫਾਈ ਸਕੈਨਿੰਗ ਚਾਲੂ ਕੀਤੀ ਗਈ ਹੈ"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ਇਹ ਨੈੱਟਵਰਕ ਇੱਕ ਪੁਰਾਣੇ ਸੁਰੱਖਿਆ ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਜੋ ਘੱਟ ਸੁਰੱਖਿਅਤ ਹੈ"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ਨੂੰ ਬਲਾਕ ਕੀਤਾ ਗਿਆ ਹੈ"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ਇਹ ਨੈੱਟਵਰਕ WEP ਨਾਮ ਦੇ ਕਿਸੇ ਪੁਰਾਣੇ ਸੁਰੱਖਿਆ ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਜੋ ਘੱਟ ਸੁਰੱਖਿਅਤ ਹੈ। ਫਿਰ ਵੀ ਕਨੈਕਟ ਕਰਨ ਲਈ, ਤੁਸੀਂ WEP ਨੈੱਟਵਰਕਾਂ ਦੀ ਆਗਿਆ ਦੇ ਸਕਦੇ ਹੋ।"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਤੁਹਾਨੂੰ ਇਸ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਦੀ ਆਗਿਆ ਨਹੀਂ ਦਿੰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਕਿਸੇ ਪੁਰਾਣੇ ਸੁਰੱਖਿਆ ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ, ਜੋ ਘੱਟ ਸੁਰੱਖਿਅਤ ਹੈ"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ਬੰਦ ਕਰੋ"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"ਅਡਵਾਂਸ ਵਿਕਲਪ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ਡ੍ਰੌਪ-ਡਾਊਨ ਸੂਚੀ ਦੇ ਉੱਨਤ ਵਿਕਲਪ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ਵਿਸਤਾਰ ਕਰੋ"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"ਵਾਈ‑ਫਾਈ \'ਤੇ ਬਣੇ ਰਹੋ"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ਕਦੇ ਦੁਬਾਰਾ ਨਾ  ਦਿਖਾਓ"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"ਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"ਵਾਈ‑ਫਾਈ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੈ"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"ਕਨੈਕਟ ਹੋ ਰਿਹਾ ਹੈ…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ਨੈੱਟਵਰਕ ਕਨੈਕਟ ਕਰਨ ਵਿੱਚ ਅਸਫਲ"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ਨੈੱਟਵਰਕ ਰੇਂਜ ਵਿੱਚ ਨਹੀਂ ਹੈ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ਭੁੱਲ ਜਾਓ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ਸੋਧੋ"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ਨੈੱਟਵਰਕ ਛੱਡਣ ਵਿੱਚ ਅਸਫਲ"</string>
     <string name="wifi_save" msgid="2312643132472226807">"ਰੱਖਿਅਤ ਕਰੋ"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ਨੈੱਟਵਰਕ ਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ਰੱਦ ਕਰੋ"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"ਵਾਈ‑ਫਾਈ"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ਮੋਬਾਈਲ ਡਾਟਾ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ਈਥਰਨੈੱਟ"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ਚਾਰਜ ਹੋ ਰਹੀ ਹੈ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ਚਾਰਜ ਹੋ ਰਹੀ ਹੈ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ਹੌਟਸਪੌਟ ਕਨੈਕਸ਼ਨ"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"ਕਨੈਕਸ਼ਨ ਦੀ ਤੀਬਰਤਾ"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ਰੱਖਿਅਤ ਕੀਤੇ ਨੈੱਟਵਰਕ"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"ਕੋਈ ਪਾਸਵਰਡ ਸੈੱਟ ਨਹੀਂ ਹੈ"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ਹੌਟਸਪੌਟ ਦਾ ਨਾਮ"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ਹੌਟਸਪੌਟ ਪਾਸਵਰਡ"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP ਬੈਂਡ"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ਹੌਟਸਪੌਟ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਬੰਦ ਕਰੋ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"ਜਦੋਂ ਕੋਈ ਡੀਵਾਈਸ ਕਨੈਕਟ ਨਾ ਹੋਵੇ"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"ਅਨੁਰੂਪਤਾ ਵਧਾਓ"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ਗੇਮਾਂ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਫ੍ਰੇਮ ਰੇਟ ਨੂੰ ਬੰਦ ਕਰੋ"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz \'ਤੇ ਗੇਮਾਂ ਲਈ ਵੱਧ ਤੋਂ ਵੱਧ ਫ੍ਰੇਮ ਰੇਟ ਨੂੰ ਸੀਮਤ ਕਰਨ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"ਸਮੂਥ ਡਿਸਪਲੇ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\'ਸਕ੍ਰੀਨ ਦਾ ਚੌਕੰਨਾਪਣ\' ਵਿਸ਼ੇਸ਼ਤਾ ਅਗਲੇ ਕੈਮਰੇ ਦੀ ਵਰਤੋਂ ਨਾਲ ਪਤਾ ਲਗਾਉਂਦੀ ਹੈ ਕਿ ਕੋਈ ਸਕ੍ਰੀਨ ਵੱਲ ਦੇਖ ਰਿਹਾ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਹ ਡੀਵਾਈਸ \'ਤੇ ਕੰਮ ਕਰਦੀ ਹੈ ਅਤੇ ਚਿੱਤਰ ਕਦੇ ਸਟੋਰ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ ਜਾਂ Google ਨੂੰ ਭੇਜੇ ਨਹੀਂ ਜਾਂਦੇ।"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"ਸਕ੍ਰੀਨ ਦਾ ਚੌਕੰਨਾਪਣ ਚਾਲੂ ਕਰੋ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"ਸਕ੍ਰੀਨ ਵੱਲ ਦੇਖਦੇ ਸਮੇਂ ਇਸਨੂੰ ਚਾਲੂ ਰੱਖੋ"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ਸਕ੍ਰੀਨ ਸਮਾਂ ਸਮਾਪਤੀ ਦੀ ਜ਼ਿਆਦਾ ਮਿਆਦ ਹੋਣ ਨਾਲ ਜ਼ਿਆਦਾ ਬੈਟਰੀ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"ਕੈਮਰਾ ਲਾਕ ਹੈ"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ਚਿਹਰਾ ਪਛਾਣ ਲਈ ਕੈਮਰੇ ਨੂੰ ਅਣਲਾਕ ਕੀਤਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ਸਕ੍ਰੀਨ ਦੇ ਚੌਕੰਨੇਪਣ ਦੇ ਲਈ ਕੈਮਰੇ ਨੂੰ ਲਾਜ਼ਮੀ ਤੌਰ \'ਤੇ ਅਣਲਾਕ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ਸਿਮ ਸਲੌਟ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ਸਿਮ ਸਲੌਟ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ਮੁੱਖ)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"ਦੇਖਣ ਲਈ, ਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL ਵਰਜਨ"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ਬੈਟਰੀ ਪੱਧਰ"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"ਭਾਈਚਾਰਕ"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"ਭਾਈਚਾਰਕ ਸੈਟਿੰਗਾਂ"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"ਰੱਖਿਅਤ ਕਰੋ"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ਰੱਦ ਕਰੋ"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"ਨਾਮ ਖੇਤਰ ਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ਖੇਤਰ 3 ਅੰਕਾਂ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ਖੇਤਰ 2 ਜਾਂ 3 ਅੰਕਾਂ ਦਾ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"ਕੈਰੀਅਰ %s ਕਿਸਮ ਦੇ APNs ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦਾ।"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ਖੇਤਰ ਦਾ ਵੈਧ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ।"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ਪੂਰਵ-ਨਿਰਧਾਰਤ APN ਸੈਟਿੰਗਾਂ ਰੀਸਟੋਰ ਕਰ ਰਿਹਾ ਹੈ।"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ \'ਤੇ ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ਪੂਰਵ-ਨਿਰਧਾਰਤ APN ਸੈਟਿੰਗਾਂ ਰੀਸੈੱਟ ਕਰਨਾ ਪੂਰਾ ਹੋਇਆ।"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"ਬਲੂਟੁੱਥ ਅਤੇ ਵਾਈ-ਫਾਈ ਨੂੰ ਰੀਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMs ਨੂੰ ਮਿਟਾਓ"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ਇੰਝ ਕਰਨ ਨਾਲ ਕੋਈ ਮੋਬਾਈਲ ਸੇਵਾ ਪਲਾਨ ਰੱਦ ਨਹੀਂ ਹੋਵੇਗਾ। ਬਦਲਵੇਂ ਸਿਮ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ, ਆਪਣੇ ਕੈਰੀਅਰ ਨਾਲ ਸੰਪਰਕ ਕਰੋ।"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ਸੈਟਿੰਗਾਂ ਰੀਸੈੱਟ ਕਰੋ"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"ਕੀ ਸਾਰੀਆਂ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਰੀਸੈੱਟ ਕਰਨੀਆਂ ਹਨ? ਤੁਸੀਂ ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕਰ ਸਕਦੇ।"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"ਕੀ ਸਾਰੀਆਂ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰ ਕੇ ਈ-ਸਿਮ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ? ਤੁਸੀਂ ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕਰ ਸਕਦੇ।"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ਕੀ ਰੀਸੈੱਟ ਕਰਨਾ ਹੈ?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ਇਸ ਉਪਭੋਗਤਾ ਲਈ ਨੈੱਟਵਰਕ ਰੀਸੈੱਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਰੀਸੈੱਟ ਕੀਤੀਆਂ ਗਈਆਂ ਹਨ"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"ਸਿਮ ਮਿਟਾਏ ਨਹੀਂ ਜਾ ਸਕਦੇ"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ਈ-ਸਿਮ ਕਿਸੇ ਗੜਬੜ ਕਰ ਕੇ ਮਿਟਾਏ ਨਹੀਂ ਜਾ ਸਕਦੇ।\n\nਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰ ਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ (ਫੈਕਟਰੀ ਰੀਸੈੱਟ)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਓ (ਫੈਕਟਰੀ ਰੀਸੈੱਟ)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"ਸੰਗੀਤ"</li>\n<li>"ਫ਼ੋਟੋਆਂ"</li>\n<li>"ਹੋਰ ਵਰਤੋਂਕਾਰ ਡਾਟਾ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"ਈ-ਸਿਮ"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ਇਸ ਨਾਲ ਤੁਹਾਡਾ ਮੋਬਾਈਲ ਸੇਵਾ ਪਲਾਨ ਰੱਦ ਨਹੀਂ ਹੋਵੇਗਾ।"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ਤੁਹਾਡੀ ਸਾਰੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਅਤੇ ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਐਪਾਂ ਨੂੰ ਮਿਟਾ ਦਿੱਤਾ ਜਾਵੇਗਾ। ਤੁਸੀਂ ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕਰ ਸਕਦੇ।"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਐਪਾਂ ਅਤੇ ਸਿਮਾਂ ਸਮੇਤ ਤੁਹਾਡੀ ਸਾਰੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਮਿਟਾ ਦਿੱਤੀ ਜਾਵੇਗੀ। ਤੁਸੀਂ ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਅਣਕੀਤਾ ਨਹੀਂ ਕਰ ਸਕਦੇ।"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ਕੀ ਸਾਰਾ ਡਾਟਾ ਮਿਟਾਉਣਾ ਹੈ?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਫੈਕਟਰੀ ਰੀਸੈੱਟ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"ਮਿਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ਹੌਟਸਪੌਟ, USB, ਬਲੂਟੁੱਥ, ਈਥਰਨੈੱਟ"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"ਦੂਜੇ ਡੀਵਾਈਸਾਂ ਨਾਲ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਨਹੀਂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ਬੰਦ"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ਟੈਦਰਿੰਗ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਨਾ ਵਰਤੋ"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"ਸਿਰਫ਼ USB ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"ਸਿਰਫ਼ ਬਲੂਟੁੱਥ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ਸਿਰਫ਼ ਈਥਰਨੈੱਟ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"ਸਿਰਫ਼ USB ਅਤੇ ਬਲੂਟੁੱਥ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"ਸਿਰਫ਼ USB ਅਤੇ ਈਥਰਨੈੱਟ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"ਸਿਰਫ਼ ਬਲੂਟੁੱਥ ਅਤੇ ਈਥਰਨੈੱਟ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"ਸਿਰਫ਼ USB, ਬਲੂਟੁੱਥ ਅਤੇ ਈਥਰਨੈੱਟ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ਟੈਦਰਿੰਗ"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ਬਲੂਟੁੱਥ ਟੈਦਰਿੰਗ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ਈਥਰਨੈੱਟ ਟੈਦਰਿੰਗ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ਹੋਰਾਂ ਡੀਵਾਈਸਾਂ ਨੂੰ ਆਪਣੇ ਵਾਈ-ਫਾਈ ਜਾਂ ਮੋਬਾਈਲ ਡਾਟਾ ਕਨੈਕਸ਼ਨ ਰਾਹੀਂ ਇੰਟਰਨੈੱਟ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਲਈ ਹੌਟਸਪੌਟ ਅਤੇ ਟੈਦਰਿੰਗ ਵਰਤੋ। ਐਪਾਂ ਨਜ਼ਦੀਕੀ ਡੀਵਾਈਸਾਂ ਨਾਲ ਸਮੱਗਰੀ ਸਾਂਝੀ ਕਰਨ ਲਈ ਇੱਕ ਹੌਟਸਪੌਟ ਵੀ ਬਣਾ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ਮਦਦ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ਮੋਬਾਈਲ ਪਲਾਨ"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS ਐਪ"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"ਕੀ SMS ਐਪ ਬਦਲਣੀ ਹੈ?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ਕੀ ਆਪਣੇ SMS ਐਪ ਦੇ ਤੌਰ ਤੇ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ਦੀ ਬਜਾਏ <xliff:g id="NEW_APP">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"ਕੀ ਵਾਈ‑ਫਾਈ ਸਹਾਇਕ ਬਦਲਣਾ ਹੈ?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="CURRENT_APP">%2$s</xliff:g> ਦੀ ਬਜਾਇ  <xliff:g id="NEW_APP">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ਕੀ ਆਪਣੇ ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਨ ਲਈ <xliff:g id="NEW_APP">%s</xliff:g> ਵਰਤਣਾ ਹੈ?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ਅਗਿਆਤ ਸਿਮ ਓਪਰੇਟਰ"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ਦੀ ਕੋਈ ਗਿਆਤ ਵਿਵਸਥਾਕਰਨ ਵੈੱਬਸਾਈਟ ਨਹੀਂ ਹੈ"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"ਕਿਰਪਾ ਕਰਕੇ SIM ਕਾਰਡ ਪਾਓ ਅਤੇ ਰੀਸਟਾਰਟ ਕਰੋ"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"ਕਿਰਪਾ ਕਰਕੇ ਇੰਟਰਨੈੱਟ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"ਹਾਲੀਆ ਟਿਕਾਣਾ ਬੇਨਤੀਆਂ"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਲਈ ਟਿਕਾਣਾ"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ਐਪ ਦੀਆਂ ਟਿਕਾਣੇ ਸੰਬੰਧੀ ਇਜਾਜ਼ਤਾਂ"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ਪਹੁੰਚ ਸਾਫ਼ ਕਰੋ"</string>
     <string name="controls_label" msgid="8671492254263626383">"ਨਿਯੰਤਰਣ"</string>
     <string name="force_stop" msgid="2681771622136916280">"ਜ਼ਬਰਦਸਤੀ ਬੰਦ ਕਰੋ"</string>
+    <string name="archive" msgid="9074663845068632127">"ਪੁਰਾਲੇਖਬੱਧ ਕਰੋ"</string>
+    <string name="restore" msgid="7622486640713967157">"ਮੁੜ-ਬਹਾਲ ਕਰੋ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"ਕੁੱਲ"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ਐਪ ਦਾ ਆਕਾਰ"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB ਸਟੋਰੇਜ ਐਪ"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"ਪੈਕੇਜ ਅਕਾਰ ਨੂੰ ਕੰਪਿਊਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
     <string name="version_text" msgid="7628938665256107608">"ਵਰਜਨ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ਮੂਵ ਕਰੋ"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ਪੁਰਾਲੇਖਬੱਧ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ਨੂੰ ਪੁਰਾਲੇਖਬੱਧ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ਮੁੜ-ਬਹਾਲ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ਨੂੰ ਮੁੜ-ਬਹਾਲ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ਕੋਈ ਹੋਰ ਮਾਈਗ੍ਰੇਸ਼ਨ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਪ੍ਰਕਿਰਿਆ ਵਿੱਚ ਹੈ।"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"ਸਟੋਰੇਜ ਲਈ ਲੋੜੀਂਦੀ ਜਗ੍ਹਾ ਨਹੀਂ ਹੈ।"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ਐਪ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਉਪਲਬਧ ਹੈ"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ਵਿਕਲਪ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ"</string>
     <string name="show_ime" msgid="4334255501724746849">"ਆਨ-ਸਕ੍ਰੀਨ ਕੀ-ਬੋਰਡ ਨੂੰ ਵਰਤੋ"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਕਿਰਿਆਸ਼ੀਲ ਹੋਣ ਦੌਰਾਨ ਇਸ ਨੂੰ ਸਕ੍ਰੀਨ \'ਤੇ ਬਣਾਈ ਰੱਖੋ"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"ਬਾਊਂਸ ਕੁੰਜੀਆਂ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਪਹੁੰਚਯੋਗਤਾ ਲਈ ਬਾਊਂਸ ਕੁੰਜੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ਸਥਿਰ ਕੁੰਜੀਆਂ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਪਹੁੰਚਯੋਗਤਾ ਲਈ ਸਥਿਰ ਕੁੰਜੀਆਂ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ਸ਼ਾਰਟਕੱਟਾਂ ਦੀ ਸੂਚੀ ਦਿਖਾਓ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਕੀ-ਬੋਰਡ ਅਤੇ ਟੂਲ"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"ਵਰਤੋਂ ਸਮੇਂ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"ਪਿਛਲੀ ਵਰਤੋਂ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ਐਪ ਦੇ ਨਾਮ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ਆਖਰੀ ਵਾਰ ਵਰਤਿਆ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ਪਿਛਲੀ ਵਾਰ ਵਰਤਿਆ ਗਿਆ"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ਕਦੇ ਵੀ ਨਹੀਂ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"ਵਰਤੋਂ ਸਮਾਂ"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ਪਹੁੰਚਯੋਗਤਾ ਸੈਟਿੰਗਾਂ"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ਫਿਰ ਵੀ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ਰੱਦ ਕਰੋ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਸੈਟਿੰਗਾਂ"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ਤਿੰਨ-ਟੈਪਾਂ ਨਾਲ ਵੱਡਾ ਕਰੋ"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ਸ਼ਾਰਟਕੱਟ ਨਾਲ ਵੱਡਾ ਕਰੋ"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ਸ਼ਾਰਟਕੱਟ ਅਤੇ ਤਿੰਨ-ਟੈਪ ਨਾਲ ਵੱਡਾ ਕਰੋ"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> ਬਾਰੇ"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ਖੋਲ੍ਹਣ ਲਈ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</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="860548190334486449">"ਵੱਡਦਰਸ਼ੀਕਰਨ ਨੂੰ ਸ਼ੁਰੂ ਅਤੇ ਬੰਦ ਕਰਨ ਲਈ, ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਉਂਗਲਾਂ ਨਾਲ ਕਿਤੇ ਵੀ ਡਬਲ ਟੈਪ ਕਰੋ।"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ਕਿਸੇ ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਵਰਤਣ ਲਈ, 3 ਉਂਗਲਾਂ ਨਾਲ ਸਕ੍ਰੀਨ ਦੇ ਹੇਠਾਂ ਤੋਂ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ।\n\nਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਵਿਚਾਲੇ ਅਦਲਾ-ਬਦਲੀ ਕਰਨ ਲਈ, 3 ਉਂਗਲਾਂ ਨਾਲ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਦਬਾਈ ਰੱਖੋ।"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ਸਮਝ ਲਿਆ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਸੰਬੰਧੀ ਸੈਟਿੰਗਾਂ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"ਬਟਨ ਸੈਟਿੰਗਾਂ"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ਪਹੁੰਚਯੋਗਤਾ ਇਸ਼ਾਰਾ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ-ਉਂਗਲਾਂ ਨਾਲ ਡਬਲ ਟੈਪ ਕਰੋ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ਤੇਜ਼ੀ ਨਾਲ ਸਕ੍ਰੀਨ \'ਤੇ ਦੋ ਉਂਗਲਾਂ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"ਸਕ੍ਰੀਨ \'ਤੇ ਟ੍ਰਿਪਲ ਟੈਪ ਕਰੋ"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"ਸਕ੍ਰੀਨ \'ਤੇ ਤੇਜ਼ੀ ਨਾਲ {0,number,integer} ਵਾਰ ਟੈਪ ਕਰੋ। ਇਹ ਸ਼ਾਰਟਕੱਟ ਸ਼ਾਇਦ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਹੌਲੀ ਕਰ ਦੇਵੇ"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਅਤੇ ਇਸ਼ਾਰੇ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ਪਹੁੰਚਯੋਗਤਾ ਬਟਨ ਦੀ ਵਰਤੋਂ ਕਰਨਾ। ਇਸ਼ਾਰਾ 3-ਬਟਨ ਨੈਵੀਗੇਸ਼ਨ ਦੇ ਨਾਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ।"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ਪਹੁੰਚਯੋਗਤਾ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਤੱਕ ਤੁਰੰਤ ਪਹੁੰਚ ਕਰੋ"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ"</b>\n"1. ਪਹੁੰਚਯੋਗਤਾ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ\n2. ਕੋਈ ਵਿਸ਼ੇਸ਼ਤਾ ਚੁਣੋ ਅਤੇ ਸ਼ਾਰਟਕੱਟ \'ਤੇ ਟੈਪ ਕਰੋ\n3. ਚੁਣੋ ਕਿ ਤੁਸੀਂ ਵਿਸ਼ੇਸ਼ਤਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਬਟਨ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ ਜਾਂ ਫਿਰ ਇਸ਼ਾਰਿਆਂ ਦੀ"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ"</b>\n"1. ਪਹੁੰਚਯੋਗਤਾ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ\n2. ਕੋਈ ਵਿਸ਼ੇਸ਼ਤਾ ਚੁਣੋ ਅਤੇ ਸ਼ਾਰਟਕੱਟ \'ਤੇ ਟੈਪ ਕਰੋ\n3. ਵਿਸ਼ੇਸ਼ਤਾ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਬਟਨ ਨੂੰ ਚੁਣੋ"</string>
+    <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_size_title" msgid="5785110470538960881">"ਆਕਾਰ"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"ਪਾਵਰ ਬਟਨ ਨਾਲ ਕਾਲ ਕੱਟਣਾ"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"ਵੱਡਾ ਮਾਊਸ ਪੁਆਇੰਟਰ"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ਮਾਊਸ ਪੁਆਇੰਟਰ ਨੂੰ ਹੋਰ ਆਕਰਸ਼ਕ ਬਣਾਓ"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"ਸਾਰੀਆਂ ਐਪਾਂ \'ਤੇ ਗੂੜ੍ਹਾ ਥੀਮ ਲਾਗੂ ਕਰੋ"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ਐਪਾਂ ਦੇ ਗੂੜ੍ਹੇ ਥੀਮ ਤੋਂ ਬਿਨਾਂ ਉਨ੍ਹਾਂ \'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ। ਕੁਝ ਐਪਾਂ ਵਿੱਚ ਰੰਗ ਪਲਟਣ ਵਰਗੀਆਂ ਡਿਸਪਲੇ ਸਮੱਸਿਆਵਾਂ ਆ ਸਕਦੀਆਂ ਹਨ।"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"ਐਨੀਮੇਸ਼ਨਾਂ ਹਟਾਓ"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ਸਕ੍ਰੀਨ \'ਤੇ ਹਿਲਜੁਲ ਨੂੰ ਘਟਾਓ"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ਮੋਨੋ ਆਡੀਓ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ਇਹ ਕਿਸੇ ਐਪ ਜਾਂ ਹਾਰਡਵੇਅਰ ਸੈਂਸਰ ਦੇ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰ ਸਕਦੀ ਹੈ, ਅਤੇ ਤੁਹਾਡੀ ਤਰਫ਼ੋਂ ਐਪਾਂ ਦੇ ਨਾਲ ਅੰਤਰਕਿਰਿਆ ਕਰ ਸਕਦੀ ਹੈ।"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ਕਰਨ ਦਿਓ"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ਨਾ ਕਰਨ ਦਿਓ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"ਬੰਦ ਕਰੋ"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ਰੱਦ ਕਰੋ"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> \'ਤੇ ਟੈਪ ਕਰਨ ਨਾਲ <xliff:g id="SERVICE">%2$s</xliff:g> ਸੇਵਾ ਬੰਦ ਹੋ ਜਾਵੇਗੀ।"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ਬੰਦ ਕਰੋ"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ਚਾਲੂ ਰੱਖੋ"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"ਕੋਈ ਸੇਵਾਵਾਂ ਇੰਸਟੌਲ ਨਹੀਂ ਕੀਤੀਆਂ"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ਕਿਸੇ ਸੇਵਾ ਨੂੰ ਨਹੀਂ ਚੁਣਿਆ ਗਿਆ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"ਕੋਈ ਵਰਣਨ ਮੁਹੱਈਆ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।"</string>
     <string name="settings_button" msgid="2195468788019730377">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ਰੋਸ਼ਨੀ ਤੋਂ ਸੰਵੇਦਨਸ਼ੀਲਤਾ, ਫ਼ੋਟੋਫ਼ੋਬੀਆ, ਗੂੜ੍ਹਾ ਥੀਮ, ਸਿਰਦਰਦ, ਪੜ੍ਹਨ ਦਾ ਮੋਡ, ਰਾਤ ਵਾਲਾ ਮੋਡ, ਚਮਕ ਘਟਾਓ, ਸਫ਼ੈਦ ਪੁਆਇੰਟ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ਆਸਾਨ ਵਰਤੋਂ, ਆਸਾਨ ਪਹੁੰਚ, ਸਹਾਇਤਾ, ਸਹਿਯੋਗਮਈ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ਸਮਝ, ਸੁਣਨਾ, ਨੇਤਰਹੀਣ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ ਲੋਕ, ਮੋਟਰ, ਨਿਪੁੰਨਤਾ, ਸਹਿਯੋਗਮਈ, ਸਹਾਇਤਾ, ਵਰਤੋਂ ਵਿੱਚ ਅਸਾਨ, ਪਹੁੰਚ ਵਿੱਚ ਅਸਾਨ, ਹੱਥ, ਮਦਦ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ਵਿੰਡੋ ਵੱਡਦਰਸ਼ੀ, ਜ਼ੂਮ, ਵੱਡਦਰਸ਼ੀਕਰਨ, ਘੱਟ ਨਜ਼ਰ, ਫ਼ੌਂਟ ਵੱਡਾ ਕਰੋ, ਲਿਖਤ ਵੱਡੀ ਕਰੋ"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"ਸੁਰਖੀਆਂ, ਬੰਦ ਸੁਰਖੀਆਂ, ਬੰਦ ਸੁੁਰਖੀਆਂ, Live Transcribe, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਘੱਟ ਸੁਣਨਾ, CART, ਬੋਲੀ ਤੋਂ ਲਿਖਤ, ਉਪਸਿਰਲੇਖ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ਰੰਗ ਕੰਟ੍ਰਾਸਟ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ਮੋਟਰ, ਮਾਊਸ"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ਸੁਣਨ ਦੇ ਸਾਧਨ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਸੁਨਣ ਸ਼ਕਤੀ ਤੋਂ ਬਿਨਾਂ ਵਾਲੇ, ਕੋਕਲੀਅਰ ਇਮਪਲਾਂਟ, ਐਂਪਲੀਫ਼ੀਕੇਸ਼ਨ ਡੀਵਾਈਸ, ਧੁਨੀ ਪ੍ਰੋਸੈੱਸਰ"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ਮੋਟਰ, ਮਾਊਸ, ਬਾਹਰੀ ਮਾਊਸ, ਹੈੱਡ ਮਾਊਸ, ਅਨੁਕੂਲ ਮਾਊਸ, ਵ੍ਹੀਲਚੇਅਰ, ਜਾਏਸਟਿੱਕ"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ਸੁਣਨ ਦੇ ਸਾਧਨ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਸੁਨਣ ਸ਼ਕਤੀ ਤੋਂ ਬਿਨਾਂ ਵਾਲੇ, ਕੋਕਲੀਅਰ ਇਮਪਲਾਂਟ, ਐਂਪਲੀਫ਼ੀਕੇਸ਼ਨ ਡੀਵਾਈਸ, ਧੁਨੀ ਪ੍ਰੋਸੈੱਸਰ, PASAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਘੱਟ ਸੁਣਨਾ, ਸੁਰਖੀਆਂ, ਟੈਲੀਟਾਈਪ, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ਤਿੰਨ ਬਟਨ"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ਨਿਪੁੰਨਤਾ, ਮੋਟਰ, ਸੀਨੀਅਰ, ਗਠੀਆ, rsi, ਸਟ੍ਰੋਕ, ਕੰਬਣੀ, ਮਲਟੀਪਲ ਸਕਲੇਰੋਸਿਸ, ਸੇਰੇਬ੍ਰਲ ਪਾਲਸੀ, ਕੰਬਣੀ, ਦੁਹਰਾਉਣ ਵਾਲੀ ਤਣਾਅ ਦੀ ਸੱਟ, ਹੱਥ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ਦੇਰੀ, ਨਿਪੁੰਨਤਾ, ਸੀਨੀਅਰ"</string>
     <string name="print_settings" msgid="8519810615863882491">"ਪ੍ਰਿੰਟਿੰਗ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ਬੰਦ"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ਪ੍ਰਿੰਟ ਸੇਵਾ ਚਾਲੂ ਹੈ}one{# ਪ੍ਰਿੰਟ ਸੇਵਾ ਚਾਲੂ ਹੈ}other{# ਪ੍ਰਿੰਟ ਸੇਵਾ ਚਾਲੂ ਹਨ}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ਸਭ ਤੋਂ ਵੱਧ ਬੈਟਰੀ ਵਰਤੋਂ ਵਾਲੀਆਂ ਐਪਾਂ ਦੇਖੋ"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਸੁਰੱਖਿਆ ਲਈ ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਮਿਆਦ ਨੂੰ ਵਧਾਉਣ ਵਿੱਚ ਮਦਦ ਲਈ, ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਸੁਰੱਖਿਆ ਲਈ ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਮਿਆਦ ਨੂੰ ਵਧਾਉਣ ਵਿੱਚ ਮਦਦ ਲਈ, ਡੌਕ ਹੋਣ ਦੌਰਾਨ ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਸੁਰੱਖਿਆ ਲਈ ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਗਿਆ"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਮਿਆਦ ਨੂੰ ਵਧਾਉਣ ਵਿੱਚ ਮਦਦ ਲਈ, ਡੌਕ ਹੋਣ ਦੌਰਾਨ ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"ਪੂਰਾ ਚਾਰਜ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ਤੁਹਾਡੀ ਬੈਟਰੀ ਦੀ ਸੁਰੱਖਿਆ ਲਈ, ਅਗਲੀ ਵਾਰ ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਡੌਕ ਹੋਣ \'ਤੇ ਚਾਰਜਿੰਗ ਨੂੰ ਸੁਯੋਗ ਬਣਾਇਆ ਜਾਵੇਗਾ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ਚਾਰਜਿੰਗ ਰੋਕੇ ਜਾਣ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ਚਾਰਜਿੰਗ ਮੁੜ-ਚਾਲੂ ਕਰੋ"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ਉੱਚ-ਪਾਵਰ ਬੈਕਗ੍ਰਾਊਂਡ ਸਰਗਰਮੀ ਸਮੇਤ"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ਹਟਾਓ"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ਰੱਦ ਕਰੋ"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"ਪੂਰਾ ਚਾਰਜ ਕਰੋ"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ਚਾਰਜ ਕਰਨ ਵਾਲੀ ਐਕਸੈਸਰੀ ਸੰਬੰਧੀ ਸਮੱਸਿਆ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ਗੈਰ-ਅਨੁਰੂਪ ਚਾਰਜਿੰਗ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ਬੈਟਰੀ ਪ੍ਰਬੰਧਕ"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"ਐਪਾਂ ਦਾ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ਹੁਣ"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g> ਤੱਕ"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"ਬੈਟਰੀ ਵਰਤੋਂ ਦਾ ਚਾਰਟ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"ਰੋਜ਼ਾਨਾ ਬੈਟਰੀ ਵਰਤੋਂ ਚਾਰਟ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"ਪ੍ਰਤੀ ਘੰਟਾ ਬੈਟਰੀ ਵਰਤੋਂ ਚਾਰਟ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"ਬੈਟਰੀ ਪੱਧਰ ਫ਼ੀਸਦ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ਤੋਂ <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> ਹੈ"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> ਲਈ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ ਸਕ੍ਰੀਨ ਸਮਾਂ"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"ਸੰਕਟਕਾਲੀਨ ਡਾਇਲਿੰਗ ਸਿਗਨਲ"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ਜਦੋਂ ਇੱਕ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਵਿਵਹਾਰ ਸੈੱਟ ਕਰੋ"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"ਬੈਕਅੱਪ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ਚਾਲੂ"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ਬੰਦ"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"ਬੈਕਅੱਪ &amp; ਰੀਸਟੋਰ ਕਰੋ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ਨਿੱਜੀ  ਡਾਟਾ"</string>
     <string name="backup_data_title" msgid="507663517227498525">"ਮੇਰਾ ਡਾਟਾ ਬੈਕ ਅੱਪ ਲਓ"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ਨਾਮ"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ਕਿਸਮ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ਸਰਵਰ ਦਾ ਪਤਾ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP ਇਨਕ੍ਰਿਪਸ਼ਨ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP ਗੁਪਤ"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ਪਛਾਣਕਰਤਾ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec ਪਹਿਲਾਂ ਤੋਂ ਸਾਂਝੀ ਕੀਤੀ ਕੁੰਜੀ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec ਵਰਤੋਂਕਾਰ ਪ੍ਰਮਾਣ-ਪੱਤਰ"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA ਪ੍ਰਮਾਣ-ਪੱਤਰ"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec ਸਰਵਰ ਪ੍ਰਮਾਣ-ਪੱਤਰ"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"ਵਿਕਸਿਤ ਵਿਕਲਪ ਦਿਖਾਓ"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS ਖੋਜ ਡੋਮੇਨ"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS ਸਰਵਰ (ਉਦਾਹਰਨ ਵਜੋਂ 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ਫਾਰਵਰਡਿੰਗ ਰੂਟ (ਉਦਾਹਰਨ ਵਜੋਂ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
     <string name="vpn_password" msgid="1183746907642628127">"ਪਾਸਵਰਡ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ਖਾਤਾ ਜਾਣਕਾਰੀ ਰੱਖਿਅਤ ਕਰੋ"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ਵਰਤਿਆ ਨਹੀਂ)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ਸਰਵਰ ਦੀ ਪੁਸ਼ਟੀ ਨਾ ਕਰੋ)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ਸਰਵਰ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤਾ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ਇਹ VPN ਕਿਸਮ ਹਰ ਵੇਲੇ ਕਨੈਕਟ ਹੋਈ ਨਹੀਂ ਰਹਿ ਸਕਦੀ"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"\'ਹਮੇਸ਼ਾ-ਚਾਲੂ VPN\' ਸਿਰਫ਼ ਸੰਖਿਆਤਮਿਕ ਸਰਵਰ ਪਤਿਆਂ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"\'ਹਮੇਸ਼ਾ-ਚਾਲੂ VPN\' ਦੇ ਲਈ ਕੋਈ DNS ਸਰਵਰ ਨਿਯਤ ਕਰਨਾ ਲਾਜ਼ਮੀ ਹੈ"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"\'ਹਮੇਸ਼ਾ-ਚਾਲੂ VPN\' ਦੇ ਲਈ DNS ਸਰਵਰ ਪਤੇ ਸੰਖਿਆਤਮਿਕ ਹੋਣੇ ਲਾਜ਼ਮੀ ਹਨ"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ਦਾਖਲ ਕੀਤੀ ਜਾਣਕਾਰੀ \'ਹਮੇਸ਼ਾ-ਚਾਲੂ VPN\' ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦੀ"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ਰੱਦ ਕਰੋ"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ਖਾਰਜ ਕਰੋ"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"ਬਿਨਾਂ VPN ਤੋਂ ਕਨੈਕਸ਼ਨਾਂ ਨੂੰ ਬਲਾਕ ਕਰੋ"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"ਕੀ VPN ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਹੈ?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ਸੁਰੱਖਿਅਤ ਨਹੀਂ। IKEv2 VPN \'ਤੇ ਅੱਪਡੇਟ ਕਰੋ"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ਅਸਮਰਥਿਤ VPN ਨੂੰ ਸ਼ੁਰੂ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ਹਮੇਸ਼ਾਂ ਉਸ ਨਾਲ ਕਨੈਕਟ ਰਹਿਣ ਲਈ ਇੱਕ VPN ਪ੍ਰੋਫਾਈਲ ਚੁਣੋ। ਨੈੱਟਵਰਕ ਟ੍ਰੈਫਿਕ ਦੀ ਆਗਿਆ ਕੇਵਲ ਇਸ VPN ਨਾਲ ਕਨੈਕਟ ਕੀਤੇ ਜਾਣ ਤੇ ਹੀ ਦਿੱਤੀ ਜਾਏਗੀ।"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ਸਰਵਰ ਅਤੇ DNS ਦੋਵਾਂ ਲਈ ਹਮੇਸ਼ਾਂ-ਚਾਲੂ VPN ਲਈ ਇੱਕ IP ਪਤਾ ਲੋੜੀਂਦਾ ਹੈ।"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER ਚਿਤਾਵਨੀਆਂ"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ਬਾਲ ਅਗਵਾ ਬਾਰੇ ਬੁਲੇਟਿਨ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
     <string name="repeat_title" msgid="8676570486899483606">"ਦੁਹਰਾਓ"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"ਕਾਲ ਮੈਨੇਜਰ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"ਇਸ ਸੇਵਾ ਨੂੰ ਇਹ ਵਿਵਸਥਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ ਕਿ ਤੁਹਾਡੀਆਂ ਕਾਲਾਂ ਕਿਵੇਂ ਕੀਤੀਆਂ ਜਾਣ।"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"ਕਾਲ ਮੈਨੇਜਰ"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"ਵਾਇਰਲੈੱਸ ਐਮਰਜੈਂਸੀ ਅਲਰਟ"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ਨੈੱਟਵਰਕ ਓਪਰੇਟਰ"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ਐਕਸੈੱਸ ਪੁਆਇੰਟ ਨਾਮ"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ਭੁਗਤਾਨ ਕਰੋ, ਟੈਪ ਕਰੋ, ਭੁਗਤਾਨ"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ਬੈਕਅੱਪ, ਬੈਕ ਅੱਪ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ਸੰਕੇਤ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ਫ਼ੇਸ, ਅਣਲਾਕ, ਪ੍ਰਮਾਣੀਕਰਨ, ਸਾਈਨ-ਇਨ"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ਫ਼ੇਸ, ਅਣਲਾਕ, ਪ੍ਰਮਾਣੀਕਰਨ, ਸਾਈਨ-ਇਨ ਕਰੋ, ਫਿੰਗਰਪ੍ਰਿੰਟ, ਬਾਇਓਮੈਟ੍ਰਿਕ"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl ਵਰਜਨ, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ਚਾਲੂ ਹੋਣ \'ਤੇ ਵੱਜਣ ਵਾਲੀਆਂ ਧੁਨੀਆਂ"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"ਲਾਈਵ ਸੁਰਖੀਆਂ"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"ਸਵੈਚਲਿਤ ਸੁਰਖੀ ਮੀਡੀਆ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ਫ਼ੋਨ ਸਪੀਕਰ"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ਟੈਬਲੈੱਟ ਸਪੀਕਰ"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ਡੀਵਾਈਸ ਸਪੀਕਰ"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"ਤਾਰ ਵਾਲੇ ਹੈੱਡਫ਼ੋਨ"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"ਅਨੁਰੂਪ ਮੀਡੀਆ ਤੋਂ ਆਡੀਓ ਵਧੇਰੇ ਇਮਰਸਿਵ ਬਣ ਜਾਂਦੀ ਹੈ"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ਬੰਦ"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ਹਾਲੀਆ ਗੱਲਾਂਬਾਤਾਂ ਹਟਾਈਆਂ ਗਈਆਂ"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"ਗੱਲਬਾਤ ਹਟਾਈ ਗਈ"</string>
     <string name="clear" msgid="5092178335409471100">"ਕਲੀਅਰ ਕਰੋ"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> ਨੂੰ ਕਲੀਅਰ ਕਰੋ"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ਤਰਜੀਹੀ ਅਤੇ ਸੋਧੀਆਂ ਗਈਆਂ ਗੱਲਾਂਬਾਤਾਂ ਇੱਥੇ ਦਿਸਣਗੀਆਂ"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"ਗੱਲਬਾਤ ਨੂੰ ਤਰਜੀਹੀ ਵਜੋਂ ਨਿਸ਼ਾਸਬੱਧ ਕਰਨ ਜਾਂ ਗੱਲਾਂਬਾਤਾਂ ਵਿੱਚ ਕੋਈ ਹੋਰ ਤਬਦੀਲੀ ਕਰਨ ਤੋਂ ਬਾਅਦ, ਉਹ ਇੱਥੇ ਦਿਸਣਗੀਆਂ। \n\nਗੱਲਬਾਤ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਣ ਲਈ: \nਹੇਠਾਂ ਖਿੱਚੀ ਜਾਣ ਵਾਲੀ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹਣ ਲਈ ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ ਤੋਂ ਹੇਠਾਂ ਵੱਲ ਸਵਾਈਪ ਕਰਕੇ ਗੱਲਬਾਤ ਨੂੰ ਸਪਰਸ਼ ਕਰਕੇ ਰੱਖੋ।"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ਛੋਟਾ ਕਰੋ"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ਬੰਦ"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ਐਪ ਪਿਨਿੰਗ"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ਐਪ ਪਿਨਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾ ਤੁਹਾਨੂੰ ਮੌਜੂਦਾ ਐਪ ਉਦੋਂ ਤੱਕ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਰੱਖਣ ਦਿੰਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਇਸਨੂੰ ਅਣਪਿੰਨ ਨਹੀਂ ਕਰਦੇ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਇੰਝ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, ਕਿਸੇ ਭਰੋਸੇਮੰਦ ਦੋਸਤ ਨੂੰ ਕੋਈ ਖਾਸ ਗੇਮ ਖੇਡਣ ਦੇਣ ਵਾਸਤੇ।"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"ਜਦੋਂ ਕੋਈ ਐਪ ਪਿੰਨ ਕੀਤੀ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਪਿੰਨ ਕੀਤੀ ਐਪ ਹੋਰ ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਨਿੱਜੀ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। \n\nਐਪ ਪਿਨਿੰਗ ਨੂੰ ਵਰਤਣ ਲਈ: 	\n1. ਐਪ ਪਿਨਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ 	\n2. ਰੂਪ-ਰੇਖਾ ਨੂੰ ਖੋਲ੍ਹੋ 	\n3. ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ \'ਤੇ ਐਪ ਪ੍ਰਤੀਕ ਉੱਤੇ ਟੈਪ ਕਰ ਕੇ ਪਿੰਨ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"ਜਦੋਂ ਕੋਈ ਐਪ ਪਿੰਨ ਕੀਤੀ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਪਿੰਨ ਕੀਤੀ ਐਪ ਹੋਰ ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਨਿੱਜੀ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। \n\nਜੇ ਤੁਸੀਂ ਕਿਸੇ ਵਿਅਕਤੀ ਨਾਲ ਆਪਣਾ ਡੀਵਾਈਸ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਸ ਦੀ ਬਜਾਏ ਮਹਿਮਾਨ ਵਰਤੋਂਕਾਰ ਨੂੰ ਵਰਤ ਕੇ ਦੇਖੋ। \n\nਐਪ ਪਿਨਿੰਗ ਨੂੰ ਵਰਤਣ ਲਈ: \n1. ਐਪ ਪਿਨਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ \n2. ਰੂਪ-ਰੇਖਾ ਨੂੰ ਖੋਲ੍ਹੋ \n3. ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ \'ਤੇ ਐਪ ਪ੍ਰਤੀਕ ਉੱਤੇ ਟੈਪ ਕਰ ਕੇ ਪਿੰਨ \'ਤੇ ਟੈਪ ਕਰੋ"</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_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">"ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਿੰਨ ਮੰਗੋ"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ਵਰਤੋਂ ਵਿੱਚ ਨਾ ਹੋਣ \'ਤੇ, ਐਪ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰੋ"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"ਇਜਾਜ਼ਤਾਂ ਹਟਾਓ, ਅਸਥਾਈ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ, ਸੂਚਨਾਵਾਂ ਬੰਦ ਕਰੋ ਅਤੇ ਐਪ ਨੂੰ ਪੁਰਾਲੇਖਬੱਧ ਕਰੋ"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"ਸਾਰੀਆਂ ਐਪਾਂ"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ਸਥਾਪਤ ਐਪਾਂ"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ਤਤਕਾਲ ਐਪਾਂ"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ਫ੍ਰੀ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ਐਪਾਂ ਵੱਲੋਂ ਵਰਤੀ ਗਈ ਮੈਮਰੀ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{ਪਿਛਲੇ {time} ਵਿੱਚ 1 ਐਪ ਨੇ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ}one{ਪਿਛਲੇ {time} ਵਿੱਚ # ਐਪ ਨੇ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ}other{ਪਿਛਲੇ {time} ਵਿੱਚ # ਐਪਾਂ ਨੇ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"ਮੈਮੋਰੀ ਵਰਤੋਂ ਪ੍ਰੋਫਾਈਲਿੰਗ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"ਮੈਮੋਰੀ ਵਰਤੋਂ ਪ੍ਰੋਫਾਈਲਿੰਗ ਲਈ ਵਧੀਕ ਸਿਸਟਮ ਸਰੋਤਾਂ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"ਮੈਮੋਰੀ ਪ੍ਰੋਫਾਈਲਿੰਗ ਬੰਦ ਹੈ"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ਵਾਰਵਾਰਤਾ"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"ਅਧਿਕਤਮ ਵਰਤੋਂ"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"ਕੋਈ ਡਾਟਾ ਨਹੀਂ ਵਰਤਿਆ"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਤੇ ਦਿਖਾਉਣਾ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਤੇ ਦਿਖਾਉਣ ਨੂੰ ਆਗਿਆ ਦਿਓ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ਇਸ ਐਪ ਨੂੰ ਤੁਹਾਡੇ ਵੱਲੋਂ ਵਰਤੀਆਂ ਜਾ ਰਹੀਆਂ ਹੋਰ ਐਪਾਂ ਦੇ ਉੱਤੇ ਦਿਸਣ ਦਿਓ। ਇਹ ਐਪ ਦੇਖ ਸਕੇਗੀ ਕਿ ਤੁਸੀਂ ਕਿੱਥੇ ਟੈਪ ਕਰਦੇ ਹੋ ਜਾਂ ਸਕ੍ਰੀਨ \'ਤੇ ਜੋ ਪ੍ਰਦਰਸ਼ਿਤ ਹੈ ਉਸ ਨੂੰ ਬਦਲ ਸਕੇਗੀ।"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"ਮੀਡੀਆ ਆਊਟਪੁੱਟ ਬਦਲੋ"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ਐਪ ਨੂੰ ਮੀਡੀਆ ਆਊਟਪੁੱਟ ਬਦਲਣ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"ਇਸ ਐਪ ਨੂੰ ਇਹ ਚੁਣਨ ਦੀ ਆਗਿਆ ਦਿਓ ਕਿ ਕਿਹੜਾ ਕਨੈਕਟ ਕੀਤਾ ਡੀਵਾਈਸ ਹੋਰ ਐਪਾਂ ਤੋਂ ਆਡੀਓ ਜਾਂ ਵੀਡੀਓ ਚਲਾ ਸਕਦਾ ਹੈ। ਜੇ ਆਗਿਆ ਮਿਲਦੀ ਹੈ, ਤਾਂ ਇਹ ਐਪ ਹੈੱਡਫ਼ੋਨਾਂ ਅਤੇ ਸਪੀਕਰਾਂ ਵਰਗੇ ਉਪਲਬਧ ਡੀਵਾਈਸਾਂ ਦੀ ਸੂਚੀ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ ਅਤੇ ਇਹ ਚੁਣ ਸਕਦੀ ਹੈ ਕਿਹੜੇ ਆਊਟਪੁੱਟ ਡੀਵਾਈਸ ਨੂੰ ਆਡੀਓ ਜਾਂ ਵੀਡੀਓ ਨੂੰ ਸਟ੍ਰੀਮ ਜਾਂ ਕਾਸਟ ਕਰਨ ਲਈ ਵਰਤਣਾ ਹੈ।"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ਸਾਰੀਆਂ ਫ਼ਾਈਲਾਂ ਤੱਕ ਪਹੁੰਚ"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ਅਵਾਜ਼ੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਮਾਡਲ ਨੂੰ ਬਿਹਤਰ ਬਣਾਓ"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"ਇਹ ਡੀਵਾਈਸ ਅਵਾਜ਼ੀ ਕਿਰਿਆਸ਼ੀਲਤਾ ਮਾਡਲ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਲਈ ਪ੍ਰਾਈਵੇਟ ਇੰਟੈਲੀਜੈਂਸ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਹਰੇਕ ਲਈ ਮਾਡਲ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਦੌਰਾਨ ਪਰਦੇਦਾਰੀ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਲਈ ਐਪਾਂ ਨੂੰ ਸਾਰਾਂਸ਼ ਕੀਤੇ ਅਜਿਹੇ ਅੱਪਡੇਟ ਪ੍ਰਾਪਤ ਹੋ ਸਕਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਕਈ ਵਰਤੋਂਕਾਰਾਂ ਤੋਂ ਇਕੱਤਰ ਕੀਤਾ ਗਿਆ ਹੁੰਦਾ ਹੈ।\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ਡਾਟਾ ਚਿਤਾਵਨੀ"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ਡਾਟਾ ਸੀਮਾ"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ਡਾਟਾ ਚਿਤਾਵਨੀ / <xliff:g id="ID_2">^2</xliff:g> ਡਾਟਾ ਸੀਮਾ"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"ਕੈਰੀਅਰ ਵੱਲੋਂ ਡਾਟੇ ਦਾ ਹਿਸਾਬ ਡੀਵਾਈਸ ਦੇ ਹਿਸਾਬ ਨਾਲੋਂ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ਕੈਰੀਅਰ ਨੈੱਟਵਰਕਾਂ ਵੱਲੋਂ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਡਾਟਾ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ਵਰਤਿਆ"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ਡਾਟਾ ਚਿਤਾਵਨੀ ਸੈੱਟ ਕਰੋ"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> ਪਹਿਲਾਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ਹੁਣੇ ਹੀ <xliff:g id="ID_1">^1</xliff:g> ਵੱਲੋਂ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ਹੁਣੇ ਹੀ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ਯੋਜਨਾ ਦੇਖੋ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"ਵੇਰਵੇ ਦੇਖੋ"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ਡਾਟਾ ਸੇਵਰ"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ਅਣ-ਪ੍ਰਤਿਬੰਧਿਤ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"ਬੈਟਰੀ ਵਰਤੋਂ ਬੇਤਰਤੀਬ ਹੈ"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ ਦੀਆਂ ਵਿਕਾਸਕਾਰ ਟਾਇਲਾਂ"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"ADB ਇਖਤਿਆਰੀਕਰਨ ਸਮਾਂ ਸਮਾਪਤੀ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬੰਦ ਕਰੋ"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ADB ਇਖਤਿਆਰੀਕਰਨਾਂ ਦਾ ਉਨ੍ਹਾਂ ਸਿਸਟਮਾਂ ਲਈ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਰੱਦੀਕਰਨ ਕਰਨਾ ਬੰਦ ਕਰੋ ਜਿਨ੍ਹਾਂ ਨੇ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ (7 ਦਿਨ) ਜਾਂ ਵਰਤੋਂਕਾਰ ਵੱਲੋਂ ਸੰਰੂਪਣ ਕੀਤੀ (ਘੱਟੋ-ਘੱਟ 1 ਦਿਨ) ਸਮਾਂ ਮਿਆਦ ਦੇ ਅੰਦਰ ਮੁੜ-ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ।"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope ਟ੍ਰੇਸ"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ਸੈਂਸਰ ਬੰਦ ਕਰੋ"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਸੈਟਿੰਗਾਂ"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ਨਿੱਜੀ ਐਪਾਂ ਵਿੱਚ ਕੰਮ ਸੰਬੰਧੀ ਡਾਇਰੈਕਟਰੀ ਵਿਚਲੇ ਸੰਪਰਕਾਂ ਨੂੰ ਖੋਜੋ"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ਆਟੋਫਿਲ ਸੇਵਾ"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਆਟੋਫਿਲ ਸੇਵਾ"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"ਪਾਸਵਰਡ"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ਵਧੀਕ ਪ੍ਰਦਾਨਕ"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ਪਾਸਵਰਡ}one{# ਪਾਸਵਰਡ}other{# ਪਾਸਵਰਡ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ਆਟੋ, ਫਿਲ, ਆਟੋਫਿਲ, ਪਾਸਵਰਡ"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ਡਾਟਾ, ਪਾਸਕੀ, ਪਾਸਵਰਡ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ਆਟੋ, ਫਿਲ, ਆਟੋਫਿਲ, ਡਾਟਾ, ਪਾਸਕੀ, ਪਾਸਵਰਡ"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ਕੀ ਸਾਰੀਆਂ ਸੇਵਾਵਾਂ ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਹੈ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਰੱਖਿਅਤ ਕੀਤੀ ਹੋਰ ਜਾਣਕਾਰੀ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਾਈਨ-ਇਨ ਕਰਨ \'ਤੇ ਆਟੋਫਿਲ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਰਹਿਣਗੀਆਂ"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;ਆਪਣੀ ਤਰਜੀਹੀ ਸੇਵਾ ਨੂੰ ਬਦਲ ਕੇ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; \'ਤੇ ਕਰੋ। ਨਵੇਂ ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਨੂੰ ਹੁਣ ਤੋਂ ਇੱਥੇ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ। &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ਵੱਲੋਂ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਦਿਖ ਰਹੀ ਸਮੱਗਰੀ ਦੇ ਆਧਾਰ \'ਤੇ ਇਹ ਨਿਰਧਾਰਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਜਾਣਕਾਰੀ ਆਟੋਫਿਲ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ਕੀ %1$s ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"ਤੁਸੀਂ ਸਿਰਫ਼ 5 ਸੇਵਾਵਾਂ ਨੂੰ ਹੀ ਚਾਲੂ ਰੱਖ ਸਕਦੇ ਹੋ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ਕੋਈ ਹੋਰ ਸੇਵਾ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਘੱਟੋ-ਘੱਟ 1 ਸੇਵਾ ਨੂੰ ਬੰਦ ਕਰੋ"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ਇਹ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਮੌਜੂਦ ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਜਾਣਕਾਰੀ ਨੂੰ ਆਟੋਫਿਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਸੀਮਾ"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ਤੁਸੀਂ ਇੱਕੋ ਸਮੇਂ \'ਤੇ 5 ਤੱਕ ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਹੋਰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਸੇਵਾ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਸੀਮਾ"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ਤੁਸੀਂ ਇੱਕੋ ਸਮੇਂ \'ਤੇ 5 ਤੱਕ ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਹੋਰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਕਿਸੇ ਸੇਵਾ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ਬੰਦ ਕਰੋ"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ਆਟੋਫਿਲ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ਲੌਗਿੰਗ ਪੱਧਰ"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ਐਪ ਅਨੁਰੂਪਤਾ ਸੰਬੰਧੀ ਤਬਦੀਲੀਆਂ ਸਿਰਫ਼ ਡੀਬੱਗਯੋਗ ਐਪਾਂ ਲਈ ਸੋਧੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਡੀਬੱਗਯੋਗ ਐਪ ਨੂੰ ਸਥਾਪਤ ਕਰੋ ਅਤੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"ਹੋਰ ਸੈਟਿੰਗ \'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ਖਾਤਾ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ਖਾਤੇ"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ਡੀਵਾਈਸ ਦਾ ਨਾਮ"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ਮੂਲ ਜਾਣਕਾਰੀ"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"ਕਨੂੰਨੀ ਅਤੇ ਰੈਗੂਲੇਟਰੀ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ਟੈਗ ਦੇ ਸਕੈਨ ਹੋਣ \'ਤੇ ਇਸ ਐਪ ਨੂੰ ਲਾਂਚ ਹੋਣ ਦੀ ਆਗਿਆ ਦਿਓ।\nਜੇ ਇਹ ਇਜਾਜ਼ਤ ਚਾਲੂ ਹੈ, ਤਾਂ ਟੈਗ ਦੇ ਪਤਾ ਲੱਗਣ \'ਤੇ ਇਹ ਐਪ ਇੱਕ ਵਿਕਲਪ ਦੇ ਤੌਰ \'ਤੇ ਉਪਲਬਧ ਹੋਵੇਗੀ।"</string>
     <string name="media_output_title" msgid="8283629315159510680">"ਇਸ \'ਤੇ ਮੀਡੀਆ ਚਲਾਓ"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> ਨੂੰ ਇਸ \'ਤੇ ਚਲਾਓ"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ਆਡੀਓ ਇਨ੍ਹਾਂ \'ਤੇ ਚੱਲੇਗੀ"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ਇਹ ਡੀਵਾਈਸ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ਕਾਲਾਂ ਵੇਲੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ਇਸ \'ਤੇ ਕਾਲ ਪ੍ਰਾਪਤ ਕਰੋ"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ਮਿਊਟ ਕਰੋ"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ਚਾਲੂ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਪਾਵਰ ਮੀਨੂ ਲਈ \"ਪਾਵਰ ਬਟਨ ਨੂੰ ਦਬਾਈ ਰੱਖੋ\" ਵਿਕਲਪ ਨੂੰ ਬਦਲੋ।"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ਨੈੱਟਵਰਕ ਵੇਰਵੇ"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਐਪਾਂ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਇਸਨੂੰ ਤੁਹਾਡੇ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰਨ, ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਜਾਂ ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਸੈੱਟਅੱਪ ਕਰਨ \'ਤੇ ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਵੀ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
     <string name="devices_title" msgid="649715719278562515">"ਡੀਵਾਈਸਾਂ"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"ਡਿਸਕਨੈਕਟ ਹੋਇਆ"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ਨਾਮ"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"ਰੰਗ (ਅਨੁਰੂਪ ਐਪਾਂ ਵੱਲੋਂ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"ਰੱਖਿਅਤ ਕਰੋ"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ਸਿਮ ਵਰਤੋ"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ਇਸ ਸਿਮ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ਬੰਦ"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ਇਸ ਸਿਮ ਨੂੰ ਬੰਦ ਕਰਨ ਲਈ, ਸਿਮ ਕਾਰਡ ਨੂੰ ਹਟਾਓ"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ਸਿਮ ਮਿਟਾਓ"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ਨੈੱਟਵਰਕ ਓਪਰੇਟਿੰਗ ਮੋਡ ਬਦਲੋ"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ਤਰਜੀਹੀ ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ਕੀਮਤਾਂ ਜਾਣਨ ਲਈ ਆਪਣੇ ਨੈੱਟਵਰਕ ਪ੍ਰਦਾਨਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ।"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ਐਪ ਡਾਟਾ ਵਰਤੋਂ"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"ਅਵੈਧ ਨੈੱਟਵਰਕ ਮੋਡ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. ਅਣਡਿੱਠ ਕਰੋ।"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ਐਕਸੈੱਸ ਪੁਆਇੰਟ ਨਾਮ"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਹੋਣ \'ਤੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"ਕੀ ਤੁਸੀਂ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> \'ਤੇ ਸਵਿੱਚ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"ਕੀ ਸਿਮ ਕਾਰਡ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"ਕੀ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ਨੂੰ ਵਰਤਣਾ ਹੈ?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ਇੱਕ ਸਮੇਂ \'ਤੇ ਸਿਰਫ਼ ਇੱਕ ਸਿਮ ਕਿਰਿਆਸ਼ੀਲ ਹੋ ਸਕਦਾ ਹੈ।\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> \'ਤੇ ਸਵਿੱਚ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਹੋਵੇਗੀ।"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ਇੱਕ ਸਮੇਂ \'ਤੇ ਸਿਰਫ਼ 1 ਈ-ਸਿਮ ਕਿਰਿਆਸ਼ੀਲ ਹੋ ਸਕਦਾ ਹੈ।\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ਵਰਤਣ ਨਾਲ ਤੁਹਾਡੀ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਹੋਵੇਗੀ।"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ਇੱਕ ਸਮੇਂ \'ਤੇ ਸਿਰਫ਼ ਇੱਕ ਸਿਮ ਕਿਰਿਆਸ਼ੀਲ ਹੋ ਸਕਦਾ ਹੈ।\n\nਸਵਿੱਚ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਹੋਵੇਗੀ।"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ਤੁਸੀਂ ਇੱਕੋ ਵੇਲੇ 2 ਸਿਮ ਵਰਤ ਸਕਦੇ ਹੋ। <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ਨੂੰ ਵਰਤਣ ਲਈ, ਹੋਰ ਸਿਮ ਬੰਦ ਕਰੋ।"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> \'ਤੇ ਸਵਿੱਚ ਕਰੋ"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ਨੂੰ ਬੰਦ ਕਰੋ"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ਨਹੀਂ ਧੰਨਵਾਦ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ਰੱਦ ਕਰੋ"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"ਸਵਿੱਚ ਕਰੋ"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ਬੰਦ ਕਰੋ"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"ਸਿਮ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ਸਿਮ ਨੂੰ ਦੁਬਾਰਾ ਚਾਲੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਜੇ ਸਮੱਸਿਆ ਜਾਰੀ ਰਹਿੰਦੀ ਹੈ, ਤਾਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ।"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ਆਪਣੇ ਸਿਮ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਇੱਕ ਤੋਂ ਵੱਧ ਸਿਮ ਵਰਤਣ ਲਈ ਆਪਣੀਆਂ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਤਰਜੀਹਾਂ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ਆਪਣੇ ਸਿਮਾਂ ਨੂੰ ਲੇਬਲਬੱਧ ਕਰੋ"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ਤੁਹਾਨੂੰ ਇਹ ਲੇਬਲ ਕਾਲ ਕਰਨ, ਲਿਖਤ ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਡਾਟਾ ਦੀ ਵਰਤੋਂ ਕਰਨ ਵੇਲੇ ਅਤੇ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਦਿਸਣਗੇ"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"ਸਿਮ ਦਾ ਲੇਬਲ"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ਲੇਬਲ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"ਵਰਤਣ ਲਈ ਸਿਮ ਚੁਣੋ"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ਤੁਸੀਂ ਇੱਕੋ ਵੇਲੇ 2 ਸਿਮ ਵਰਤ ਸਕਦੇ ਹੋ"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ਆਪਣੇ ਮੁੱਖ ਸਿਮ ਸੈੱਟ ਕਰੋ"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ਉਹ ਸਿਮ ਚੁਣੋ ਜਿਸਦੀ ਵਰਤੋਂ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਤੌਰ \'ਤੇ ਕਾਲਾਂ, ਲਿਖਤ ਸੁਨੇਹਿਆਂ ਅਤੇ ਡਾਟੇ ਲਈ ਕੀਤੀ ਜਾਵੇਗੀ"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ਤੁਹਾਡੇ ਮੁੱਖ ਸਿਮ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ਕਾਲਾਂ"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ਲਿਖਤ ਸੁਨੇਹੇ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ਆਪਣੇ ਆਪ ਡਾਟਾ ਸਵਿੱਚ ਹੋਣਾ"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ਕਵਰੇਜ ਅਤੇ ਉਪਲਬਧਤਾ ਦੇ ਆਧਾਰ \'ਤੇ ਕਿਸੇ ਵੀ ਸਿਮ ਤੋਂ ਡਾਟੇ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ਸਿਰਫ਼ ਡਾਟਾ"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ਅੱਗੇ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ਫ਼ੋਨ ਨੰਬਰ"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"ਸਿਮ ਦਾ ਲੇਬਲ ਅਤੇ ਰੰਗ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ਨੈੱਟਵਰਕ ਕਿਰਿਆਸ਼ੀਲਤਾ"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"ਕੈਰੀਅਰ ਨੂੰ ਬਦਲਿਆ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ਕਿਰਿਆਸ਼ੀਲ ਹੈ"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"ਮੋਬਾਈਲ ਡਾਟਾ, ਕਾਲ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ SMS ਬਾਅਦ ਵਿੱਚ ਵਰਤਣ ਲਈ, ਆਪਣੀਆਂ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ਸਿਮ"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ਕੀ ਇਸ ਈ-ਸਿਮ ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ਇਹ ਸਿਮ ਮਿਟਾਉਣ ਨਾਲ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ਸੇਵਾ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਹਟ ਜਾਂਦੀ ਹੈ।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ਲਈ ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ।"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ਮਿਟਾਓ"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"ਸਿਮ ਮਿਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ਸਿਮ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ਕਿਸੇ ਗੜਬੜ ਕਰਕੇ ਇਹ ਸਿਮ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।\n\nਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> ਐਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਹੋਣ ਲਈ ਕਿਸੇ ਅਸਥਾਈ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨੂੰ ਵਰਤਣਾ ਚਾਹੁੰਦੀ ਹੈ"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"ਕੋਈ ਡੀਵਾਈਸ ਨਹੀਂ ਮਿਲੇ। ਪੱਕਾ ਕਰੋ ਕਿ ਡੀਵਾਈਸ ਚਾਲੂ ਹਨ ਅਤੇ ਕਨੈਕਟ ਹੋਣ ਲਈ ਉਪਲਬਧ ਹਨ।"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਰਾਹੀਂ ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਸੁਵਿਧਾ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵਿੱਚ ਨਹੀਂ ਹੈ।\nਸੰਕਟਕਾਲੀਨ ਕਾਲ ਕਰਨ ਲਈ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ \'ਤੇ ਬਦਲ ਜਾਂਦਾ ਹੈ।\nਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ ਸਿਰਫ਼ ਸੈਲਿਊਲਰ ਕਵਰੇਜ ਵਾਲੇ ਖੇਤਰਾਂ ਵਿੱਚ ਸੰਭਵ ਹਨ।"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ਕੁਆਲਿਟੀ ਬਿਹਤਰ ਬਣਾਉਣ ਵਾਸਤੇ ਕਾਲਾਂ ਲਈ ਵਾਈ-ਫਾਈ ਵਰਤੋ"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"ਬੈਕਅੱਪ ਕਾਲਿੰਗ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"ਜੇ <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ਉਪਲਬਧ ਨਹੀਂ ਜਾਂ ਰੋਮਿੰਗ ਹੈ, ਤਾਂ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ਕਾਲਾਂ ਲਈ ਆਪਣੇ ਮੋਬਾਈਲ ਡਾਟਾ ਸਿਮ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"ਬੈਕਅੱਪ ਕਾਲਿੰਗ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ਆਉਣ ਵਾਲਾ MMS ਸੁਨੇਹਾ"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS ਸੁਨੇਹਾ ਭੇਜਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ਮੋਬਾਈਲ ਡਾਟਾ ਬੰਦ ਹੋਣ \'ਤੇ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> \'ਤੇ MMS ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਦੇਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ਤੁਹਾਡੀ ਕਾਰਜ ਨੀਤੀ ਸੰਬੰਧੀ ਜਾਣਕਾਰੀ"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ਤੁਹਾਡੇ ਆਈ.ਟੀ. ਪ੍ਰਸ਼ਾਸਕ ਵੱਲੋਂ ਸੈਟਿੰਗਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K ਦੇ ਪੰਨੇ ਦੇ ਆਕਾਰ ਨਾਲ ਬੂਟ ਕਰੋ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"ਡੀਵਾਈਸ ਨੂੰ 16K ਦੇ ਪੰਨੇ ਦੇ ਆਕਾਰ ਨਾਲ ਸਮਰਥਿਤ ਕਰਨਲ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਬੂਟ ਕਰੋ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"ਕੀ 16KB ਪੰਨਿਆਂ ਦੇ ਅਨੁਰੂਪ ਕਰਨਲ ਨਾਲ ਰੀਬੂਟ ਕਰਨਾ ਹੈ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ਚਿਤਾਵਨੀ: ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਕੁਝ ਐਪਲੀਕੇਸ਼ਨਾਂ ਇਸ ਮੋਡ ਦੇ ਅਨੁਰੂਪ ਨਾ ਹੋਣ। ਤਸਦੀਕੀਕਰਨ ਤੋਂ ਬਾਅਦ ਡੀਵਾਈਸ ਰੀਬੂਟ ਹੋ ਜਾਵੇਗਾ।"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"ਕੀ 4KB ਪੰਨਿਆਂ ਦੇ ਅਨੁਰੂਪ ਕਰਨਲ ਨਾਲ ਰੀਬੂਟ ਕਰਨਾ ਹੈ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"ਤਸਦੀਕੀਕਰਨ ਤੋਂ ਬਾਅਦ ਡੀਵਾਈਸ ਰੀਬੂਟ ਹੋ ਜਾਵੇਗਾ।"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"ਕਰਨਲ ਨੂੰ 16KB ਪੰਨਿਆਂ ਦੇ ਅਨੁਰੂਪ ਕਰਨਲ ਨਾਲ ਅੱਪਡੇਟ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"ਤਬਦੀਲੀ ਨੂੰ ਲਾਗੂ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"ਬੱਗ ਰਿਪੋਰਟ ਹੈਂਡਲਰ"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"ਨਿਰਧਾਰਤ ਕਰੋ ਕਿ ਕਿਹੜੀ ਐਪ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਬੱਗ ਰਿਪੋਰਟ ਸ਼ਾਰਟਕੱਟ ਦੀ ਸਾਂਭ-ਸੰਭਾਲ ਕਰੇਗੀ।"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ਨਿੱਜੀ"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"ਪਲੇਬੈਕ ਨੂੰ ਤੁਰੰਤ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਲਈ, ਤਤਕਾਲ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਮੀਡੀਆ ਪਲੇਅਰ ਖੁੱਲ੍ਹਾ ਰਹਿੰਦਾ ਹੈ"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਮੀਡੀਆ ਦਿਖਾਓ"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"ਪਲੇਬੈਕ ਨੂੰ ਤੁਰੰਤ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਲਈ, ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਮੀਡੀਆ ਪਲੇਅਰ ਖੁੱਲ੍ਹਾ ਰਹਿੰਦਾ ਹੈ"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"ਮੀਡੀਆ ਸਿਫ਼ਾਰਸ਼ਾਂ ਦਿਖਾਓ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant ਮੀਡੀਆ ਸੰਬੰਧੀ ਸਿਫ਼ਾਰਸ਼ਾਂ ਦਿਖਾਓ"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"ਤੁਹਾਡੀ ਸਰਗਰਮੀ ਦੇ ਆਧਾਰ \'ਤੇ"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ਪਲੇਅਰ ਲੁਕਾਓ"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ਪਲੇਅਰ ਦਿਖਾਓ"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ਸਿਮ"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"ਈ-ਸਿਮ"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"ਈ-ਸਿਮ"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"ਕਿਰਿਆਸ਼ੀਲ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ਅਕਿਰਿਆਸ਼ੀਲ"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ਕਾਲਾਂ"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ਅਨੁਰੂਪ ਮੀਡੀਆ ਤੋਂ ਆਡੀਓ ਵਧੇਰੇ ਇਮਰਸਿਵ ਬਣ ਜਾਂਦੀ ਹੈ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ਹੈੱਡ ਟਰੈਕਿੰਗ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣਾ ਸਿਰ ਉਸ ਦਿਸ਼ਾ ਵੱਲ ਹਿਲਾਉਂਦੇ ਹੋ ਜਿੱਥੋਂ ਧੁਨੀ ਆ ਰਹੀ ਹੈ ਤਾਂ ਆਡੀਓ ਹੋਰ ਕੁਦਰਤੀ ਸੁਣਾਈ ਦਿੰਦੀ ਹੈ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ਸਿੰਕ ਕਰਨ ਸੰਬੰਧੀ ਇਜਾਜ਼ਤਾਂ"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ਨੂੰ ਉਹੀ ਐਪ ਇਜਾਜ਼ਤਾਂ ਦਿਓ, ਜਿਨ੍ਹਾਂ ਦੀ ਤੁਸੀਂ <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> \'ਤੇ ਆਗਿਆ ਦਿੱਤੀ ਹੈ"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ਫ਼ੋਨ ਤੋਂ ਇਜਾਜ਼ਤਾਂ ਸਿੰਕ ਕਰੋ"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ਆਪਣੀ ਘੜੀ ਨੂੰ ਉਹੀ ਐਪ ਇਜਾਜ਼ਤਾਂ ਦਿਓ, ਜਿਨ੍ਹਾਂ ਦੀ ਤੁਸੀਂ ਇਸ ਫ਼ੋਨ \'ਤੇ ਆਗਿਆ ਦਿੱਤੀ ਹੈ"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ਆਡੀਓ ਡੀਵਾਈਸ ਦੀ ਕਿਸਮ"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ਅਗਿਆਤ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ਸਪੀਕਰ"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"ਦਰਮਿਆਨਾ"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ਜ਼ਿਆਦਾ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ਇਹ ਐਪ ਸਿਰਫ਼ 1 ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੀ ਜਾ ਸਕਦੀ ਹੈ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ਚਾਲੂ ਹੈ"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ਬੰਦ ਹੈ"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ਬੰਦ ਹੈ"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ਬੰਦ"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ਚਾਲੂ"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ਬੰਦ"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ਚਾਲੂ"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ਬੰਦ"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ਹਲਕੇ ਰੰਗ ਦੀ ਸਕ੍ਰੀਨ ਗੂੜ੍ਹੇ ਰੰਗ ਵਿੱਚ ਅਤੇ ਗੂੜ੍ਹੇ ਰੰਗ ਦੀ ਸਕ੍ਰੀਨ ਹਲਕੇ ਰੰਗ ਵਿੱਚ ਬਦਲ ਜਾਂਦੀ ਹੈ"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ਸਕ੍ਰੀਨ \'ਤੇ ਜ਼ੂਮ ਵਧਾਓ"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ਬੰਦ"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ਬੰਦ"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ਚਾਲੂ"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ਬੰਦ"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ਚਾਲੂ"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"ਹੁਣ ਪਾਸਵਰਡ ਸੈੱਟ ਹੋ ਗਿਆ ਹੈ"</string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index a51b5c4..01b10b4 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9f13466..1942a98 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Jesteś teraz programistą!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"W porządku, już jesteś programistą."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Najpierw włącz opcje dla programistów."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Tylko administratorzy mają dostęp do ustawień dewelopera."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Działa"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Nie działa"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Przedni ekran włącza się, gdy składasz urządzenie"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Tylko gry, filmy i inne treści"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Przedni ekran włącza się w przypadku aplikacji, które blokują przechodzenie ekranu w tryb bezczynności"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Przesuń w górę, aby kontynuować"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Złóż telefon i przesuń palcem w górę na przednim ekranie, aby kontynuować korzystanie z aplikacji, lub poczekaj kilka sekund na zablokowanie ekranu."</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nigdy"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Przedni ekran blokuje się, gdy składasz urządzenie"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Używaj autoobracania"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Podobne"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Dzwonek i alarmy"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Dźwięk podczas połączeń"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimedia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Powiadomienia i inne dźwięki systemowe"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Dźwięki multimediów i systemu"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Powiadomienia"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Domyślnie wyjście audio określają poszczególne aplikacje"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Urządzenie Bluetooth bez nazwy"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Wyszukiwanie"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth włączony"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Pokaż wszystkie"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Pokaż wszystkie"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Rysik"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Długie naciśnięcie przycisku"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (profil służbowy)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Połącz się ze strumieniem LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Strumienie audio w pobliżu"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Strumienie audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Połącz się ze strumieniem audio za pomocą kodu QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nie znaleziono strumieni audio w pobliżu."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Aby wybrać języki poszczególnych aplikacji, otwórz ustawienia języków w aplikacjach."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Więcej informacji o językach aplikacji"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Zmienić język systemu na %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Dodać %s do preferowanych języków?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Informuje to aplikacje i strony, że preferujesz również ten język."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Zmienią się ustawienia urządzenia i preferencje regionalne."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Zmień"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Język %s nie jest dostępny"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sobota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Jeśli aplikacja nie obsługuje preferencji regionalnych, użyje swoich domyślnych ustawień regionu."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Dowiedz się więcej o ustawieniach języka"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Dodatkowe ustawienia"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Preferowany rodzaj gramatyczny"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Określ, jak się do Ciebie zwracać"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikacje mogą używać Twojego preferowanego rodzaju gramatycznego, aby zwracać się do Ciebie w spersonalizowany sposób."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nie określono"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Żeński"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Męski"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Nie mam zdania"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Usunąć wybrany język?}few{Usunąć wybrane języki?}many{Usunąć wybrane języki?}other{Usunąć wybrane języki?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst będzie wyświetlany w innym języku."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nie można usunąć wszystkich języków"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokalizacja"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Włącz lokalizację"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Wyłączono"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Włączona – # aplikacja ma dostęp do lokalizacji}few{Włączona – # aplikacje mają dostęp do lokalizacji}many{Włączona – # aplikacji ma dostęp do lokalizacji}other{Włączona – # aplikacji ma dostęp do lokalizacji}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Włączono / # aplikacja ma dostęp do lokalizacji}few{Włączono / # aplikacje mają dostęp do lokalizacji}many{Włączono / # aplikacji ma dostęp do lokalizacji}other{Włączono / # aplikacji ma dostęp do lokalizacji}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Wczytuję…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacje z uprawnieniami dostępu do urządzeń w pobliżu mogą określać położenie połączonych urządzeń względem siebie."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Dostęp aplikacji i usług do lokalizacji jest wyłączony. Informacje o lokalizacji urządzenia mogą jednak zostać przesłane do ratowników, gdy zadzwonisz lub wyślesz SMS-a na numer alarmowy."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Dowiedz się więcej o ustawieniach lokalizacji"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Więcej informacji o ustawieniach lokalizacji"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Aby zmienić dostęp do lokalizacji, kliknij Ustawienia &gt; Prywatność i bezpieczeństwo &gt; Ustawienia prywatności"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Najlepsze efekty daje osłona ekranu z oznaczeniem „Made for Google”. W przypadku innych osłon ekranu odcisk palca Twojego dziecka może nie zadziałać."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Odblokowywanie za pomocą zegarka"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Jeśli ustawisz rozpoznawanie twarzy i odblokowywanie odciskiem palca, w ciemnym otoczeniu oraz w sytuacji, gdy będziesz mieć maskę, pojawi się prośba o użycie odcisku palca.\n\nJeśli odcisk palca lub twarz nie zostaną rozpoznane, możesz odblokować urządzenie zegarkiem."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Jeśli odcisk palca nie zostanie rozpoznany, możesz odblokować telefon zegarkiem."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Jeśli twarz nie zostanie rozpoznana, możesz odblokować urządzenie zegarkiem."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Jeśli ustawisz rozpoznawanie twarzy i odblokowywanie odciskiem palca, w ciemnym otoczeniu oraz gdy będziesz mieć maskę, na telefonie pojawi się prośba o użycie odcisku palca.\n\nOdblokowywanie za pomocą zegarka to wygodny sposób na odblokowanie telefonu, gdy masz mokre palce lub nie udaje się rozpoznać Twojej twarzy."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Odblokowywanie za pomocą zegarka to inny wygodny sposób na odblokowanie telefonu, gdy nie udaje się rozpoznać odcisku palca."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Odblokowywanie za pomocą zegarka to wygodny sposób na odblokowanie telefonu, gdy nie udaje się rozpoznać Twojej twarzy."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Używaj zegarka lub odcisku palca do:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Użyj zegarka lub rozpoznawania twarzy do:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Przy użyciu rozpoznawania twarzy, odcisku palca lub zegarka:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano skan twarzy i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodano skan twarzy, odcisk palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodano skan twarzy, odciski palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odblokowanie Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Dodano zegarek"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Skonfiguruj zegarek"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odblokowywanie za pomocą zegarka to wygodny sposób na odblokowywanie telefonu, gdy masz mokre palce lub nie udaje się rozpoznać Twojej twarzy.\n\nMożesz korzystać z zegarka, aby odblokować telefon, w tych sytuacjach:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nie teraz"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Dalej"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Więcej"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Jak to działa"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Zegarek musi być odblokowany oraz znajdować się na nadgarstku i w zasięgu telefonu. Jeśli masz zegarek na nadgarstku, ponowne odblokowanie nie będzie konieczne."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Gdy telefon zostanie odblokowany, dostaniesz powiadomienie na zegarku. W przypadku niezamierzonego odblokowania kliknij powiadomienie, aby ponownie zablokować telefon."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Masz wszystko pod kontrolą"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Możesz usunąć zegarek z funkcji odblokowywania za pomocą zegarka w dowolnym momencie w Ustawieniach."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Kliknij powiadomienie"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Przesuń palcem w górę na ekranie blokady"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Wybierz zegarek"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostępne zegarki"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Anuluj"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potwierdź"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Wszystko gotowe"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Możesz teraz używać zegarka do odblokowywania tego telefonu przez przeciąganie palcem w górę po powiadomieniu"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotowe"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"odblokowywanie za pomocą zegarka"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Możesz używać zegarka do odblokowywania tego telefonu przez przeciągnięcie palcem w górę na ekranie blokady lub kliknięcie powiadomienia"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Aby można było skorzystać z odblokowywania za pomocą zegarka, zegarek musi być odblokowany oraz znajdować się na nadgarstku i w pobliżu odblokowywanego telefonu. Jeśli połączenie zostanie przerwane, trzeba będzie najpierw odblokować telefon, aby móc korzystać z funkcji odblokowywania za pomocą zegarka.\n\nPamiętaj:\nNie można mieć kilku skonfigurowanych zegarków jednocześnie. Aby dodać kolejny zegarek, najpierw usuń dotychczasowy."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Więcej informacji o odblokowywaniu za pomocą zegarka"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj zegarek"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Usuń zegarek"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odblokowywanie za pomocą odcisku palca i rozpoznawania twarzy"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Rozpoznawanie twarzy i odcisku palca w profilu służbowym"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Wymagana konfiguracja"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Bezpieczeństwo"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Prywatność"</string>
     <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="2274405892301976238">"Pozostaw aplikacje prywatne zablokowane i ukryte"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Przechowuj aplikacje prywatne w oddzielnym obszarze, który możesz ukryć lub zablokować"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Blokada obszaru prywatnego"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Obszar prywatny można odblokowywać tak samo jak urządzenie lub wybrać inną blokadę"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Używaj blokady ekranu urządzenia"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Rozpoznawanie twarzy i odblokowywanie odciskiem palca"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Odblokowywanie odciskiem palca"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Rozpoznawanie twarzy"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Kliknij, aby skonfigurować"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Odblokowywanie odciskiem palca na potrzeby przestrzeni prywatnej"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Rozpoznawanie twarzy na potrzeby przestrzeni prywatnej"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Sposoby odblokowywania"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Taka sama jak blokada ekranu urządzenia"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Wybrać nową blokadę dla obszaru prywatnego?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Blokowanie automatyczne"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Automatyczne blokowanie przestrzeni prywatnej"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Możesz automatycznie zablokować swoją przestrzeń prywatną przy braku aktywności urządzenia przez określony czas"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Przy każdym zablokowaniu urządzenia"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Po 5 minutach braku aktywności"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nigdy"</string>
+    <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_delete_title" msgid="3075645119800272800">"Usuń obszar prywatny"</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="private_space_unlocked" msgid="9091600948712932046">"Przestrzeń prywatna odblokowana"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ustaw blokadę ekranu"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Anuluj"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Skonfiguruj"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Skonfiguruj obszar prywatny"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Przechowuj aplikacje prywatne w oddzielnym obszarze, który możesz ukryć lub zablokować"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Jak to działa"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Dostęp do obszaru prywatnego można uzyskać z dołu listy aplikacji"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikacje w obszarze prywatnym są chronione blokadą"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Powiadomienia z aplikacji w obszarze prywatnym są ukryte, gdy jest on zablokowany"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Aplikacje w obszarze prywatnym nie będą wyświetlane w menedżerze uprawnień, panelu prywatności ani innych ustawieniach, gdy obszar prywatny jest zablokowany.\n\nObszaru prywatnego nie można przenieść na nowe urządzenie. Jeśli chcesz korzystać z niego na innym urządzeniu, musisz skonfigurować kolejny obszar prywatny.\n\nKażdy, kto połączy Twoje urządzenie z komputerem lub zainstaluje na urządzeniu szkodliwe aplikacje, będzie mieć możliwość uzyskania dostępu do Twojego obszaru prywatnego."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Konfiguruję obszar prywatny…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Powiadomienia z aplikacji w obszarze prywatnym są ukryte, gdy jest on zablokowany"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Odblokuj przestrzeń prywatną, aby udostępniać zdjęcia i pliki z aplikacji z przestrzeni prywatnej"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Niektóre aplikacje są już zainstalowane w obszarze prywatnym"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Nie udało się skonfigurować obszaru prywatnego"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Spróbuj ponownie"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Używać blokady ekranu do odblokowywania obszaru prywatnego?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Obszar prywatny można odblokowywać tak samo jak urządzenie lub wybrać inną blokadę"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Używaj blokady ekranu"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Wybierz nową blokadę"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Wszystko gotowe."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Aby uzyskać dostęp do obszaru prywatnego, przejdź do listy aplikacji, a następnie przewiń w dół"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Gotowe"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Przewiń w dół, aby znaleźć obszar prywatny"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Wybierz blokadę dla swojego obszaru prywatnego"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Obszar prywatny można odblokować za pomocą odcisku palca. Ze względów bezpieczeństwa ta opcja wymaga blokady kopii zapasowej."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Ustaw kod PIN do przestrzeni prywatnej"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Ustaw hasło do przestrzeni prywatnej"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Ustaw wzór do przestrzeni prywatnej"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Aby wyświetlić obszar prywatny (niefinalna wersja UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Otwórz aplikację Ustawienia"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Kliknij Bezpieczeństwo i prywatność &gt; Obszar prywatny &gt; Ukryj obszar prywatny po jego zablokowaniu"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Wyłącz przełącznikiem Ukryj obszar prywatny po jego zablokowaniu"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Uwaga dla pracowników Google: prace nad tą funkcją wciąż trwają"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Może być również konieczne wpisanie tego klucza na drugim urządzeniu."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potwierdź, aby sparować ze skoordynowanym zestawem"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Zezwól na dostęp do kontaktów i historii połączeń"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Zezwól również na dostęp do kontaktów i historii połączeń"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacje zostaną wykorzystane do powiadomień o połączeniach i innych funkcji"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nie udało się nawiązać połączenia z <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostępne urządzenia"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Po włączeniu Bluetootha urządzenie może komunikować się z innymi urządzeniami Bluetooth w pobliżu"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"W trybie samolotowym"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Powiadamiaj o sieciach publicznych"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Powiadamiaj o dostępnej publicznej sieci wysokiej jakości"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Zezwalaj na sieci z protokołem WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP to starszy protokół zabezpieczeń, który jest mniej bezpieczny"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Twój operator nie zezwala na sieci z protokołem WEP, ponieważ są one mniej bezpieczne"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Włączaj Wi-Fi automatycznie"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi włączy się w pobliżu zapisanych sieci wysokiej jakości, takich jak Twoja sieć domowa"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Niedostępne, bo lokalizacja jest wyłączona. Włącz "<annotation id="link">"lokalizację"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Skanowanie Wi-Fi umożliwia wyszukiwanie urządzeń w pobliżu przez aplikacje i usługi w dowolnym momencie, nawet gdy Wi-Fi jest wyłączone. Może to np. pomóc usprawnić działanie funkcji i usług opartych na lokalizacji."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Włącz"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Skanowanie Wi-Fi włączone"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ta sieć wykorzystuje starszy protokół zabezpieczeń, który jest mniej bezpieczny"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Aplikacja <xliff:g id="NAME">%1$s</xliff:g> została zablokowana"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ta sieć wykorzystuje starszy protokół zabezpieczeń WEP, który jest mniej bezpieczny. Aby połączyć się mimo to, można zezwolić na sieci z protokołem WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Twój operator nie zezwala na łączenie się z tą siecią, ponieważ korzysta ona ze starszego protokołu zabezpieczeń, który jest mniej bezpieczny"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Zezwalaj na sieci z protokołem WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zamknij"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opcje zaawansowane"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista Opcje zaawansowane"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"rozwiń"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Pozostań przy Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Nie pokazuj już nigdy"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Połącz"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi włączone"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Połączono z siecią <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Łączę z: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Łączę…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nie można nawiązać połączenia z siecią"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Poza zasięgiem sieci"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Zapomnij"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Zmień"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nie udało się zapomnieć sieci"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Zapisz"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Nie udało się zapisać sieci"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Anuluj"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobilna transmisja danych"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – ładowanie"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – ładowanie"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Połączenia hotspotu"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Siła połączenia"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Zapisane sieci"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nie ustawiono hasła"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nazwa hotspota"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hasło do hotspota"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Pasmo punktu dostępu"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Automatycznie wyłączaj hotspot"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Gdy nie jest połączone żadne urządzenie"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Zwiększ zgodność"</string>
@@ -1008,8 +1149,10 @@
     <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">"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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Wyłączenie domyślnej liczby klatek w grach"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Wyłącz ograniczenie maksymalnej liczby klatek na sekundę w grach do <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Płynne wyświetlanie"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Aktywność ekranu sprawdza za pomocą przedniego aparatu, czy ktoś patrzy na ekran. Działa na urządzeniu, a obrazy nie są zapisywane ani wysyłane do Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Włącz aktywność ekranu"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Utrzymuj ekran włączony, gdy na niego patrzysz"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Dłuższe automatyczne wygaszanie spowoduje większe wykorzystanie baterii"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Aparat jest zablokowany"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Wykrywanie twarzy wymaga odblokowania aparatu"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Aktywność ekranu wymaga odblokowania aparatu"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (gniazdo SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (gniazdo SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) – pierwotne"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Aby wyświetlić, wybierz zapisaną sieć"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"Numer MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Wersja PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Poziom naładowania baterii"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Wspólne"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Wspólne ustawienia"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Zapisz"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Anuluj"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Nazwa nie może być pusta."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Nazwa APN nie może być pusta."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Pole MCC musi zawierać 3 cyfry."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Pole MNC musi zawierać 2 lub 3 cyfry."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operator nie zezwala na dodawanie nazw APN typu %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Pole MMSC musi być prawidłowe."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Przywracanie domyślnych ustawień APN"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Resetuj ustawienia"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Przywrócono domyślne ustawienia APN."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Resetuj"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth i Wi‑Fi zostały zresetowane"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Wykasuj karty eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Nie spowoduje to anulowania Twoich abonamentów. Aby pobrać zastępcze karty SIM, skontaktuj się z operatorem."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Zresetuj ustawienia"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Zresetować wszystkie ustawienia sieci? Tej czynności nie można cofnąć."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Zresetować wszystkie ustawienia sieci i wykasować karty eSIM? Tej czynności nie można cofnąć."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Zresetować?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Resetowanie sieci nie jest dostępne dla tego użytkownika"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Ustawienia sieciowe zostały zresetowane"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Nie można usunąć danych z kart SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Nie można wykasować tej karty eSIM z powodu błędu.\n\nUruchom urządzenie ponownie i spróbuj jeszcze raz."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Wykasuj wszystkie dane (przywróć dane fabryczne)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Wykasuj wszystkie dane (przywróć dane fabryczne)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"muzyka"</li>\n<li>"zdjęcia"</li>\n<li>"inne dane użytkownika"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"karty eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Nie spowoduje to anulowania Twojego abonamentu w sieci komórkowej."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Wszystkie Twoje dane osobowe oraz pobrane aplikacje zostaną usunięte. Tej czynności nie można cofnąć."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Wszystkie Twoje dane osobowe, w tym pobrane aplikacje i karty SIM, zostaną usunięte. Nie można cofnąć tej czynności."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Usunąć wszystkie dane?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Przywracanie ustawień fabrycznych nie jest dostępne dla tego użytkownika"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Kasuję"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Nie udostępniam internetu innym urządzeniom"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Wyłączone"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nie używaj hotspota Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Udostępniaj internet tylko przez USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Udostępniaj internet tylko przez Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Udostępniaj internet tylko przez Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Udostępniaj internet tylko przez USB i Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Udostępniaj internet tylko przez USB i Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Udostępniaj internet tylko przez Bluetooth i Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Udostępniaj internet tylko przez Bluetooth, USB i Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering przez USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering przez Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering przez Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Funkcje hotspotu i tetheringu pozwalają zapewnić połączenie z internetem innym urządzeniom za pomocą Wi-Fi lub komórkowego połączenia transmisji danych. Aplikacje mogą też utworzyć hotspot, by udostępniać treści urządzeniom w pobliżu."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoc"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Sieć komórkowa"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Taryfa komórkowa"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikacja do SMS-ów"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Zmienić aplikację do SMS-ów?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Chcesz używać aplikacji <xliff:g id="NEW_APP">%1$s</xliff:g> zamiast <xliff:g id="CURRENT_APP">%2$s</xliff:g> do wysyłania i otrzymywania SMS-ów?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Zmienić asystenta Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Używać <xliff:g id="NEW_APP">%1$s</xliff:g> zamiast <xliff:g id="CURRENT_APP">%2$s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Używać <xliff:g id="NEW_APP">%s</xliff:g> do zarządzania połączeniami sieciowymi?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nieznany operator karty SIM"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nie ma znanej witryny obsługi administracyjnej"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Włóż kartę SIM i zrestartuj urządzenie"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Połącz się z internetem"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Ostatnie prośby o lokalizację"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokalizacja dla profilu służbowego"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Dostęp do lokalizacji"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Anuluj dostęp"</string>
     <string name="controls_label" msgid="8671492254263626383">"Elementy sterujące"</string>
     <string name="force_stop" msgid="2681771622136916280">"Wymuś zatrzymanie"</string>
+    <string name="archive" msgid="9074663845068632127">"Archiwizuj"</string>
+    <string name="restore" msgid="7622486640713967157">"Przywróć"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Razem"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Rozmiar aplikacji"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikacja w pamięci USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nie udało się obliczyć rozmiaru pakietu."</string>
     <string name="version_text" msgid="7628938665256107608">"wersja <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Przenieś"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Nie udało się zarchiwizować"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Zarchiwizowano: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Nie udało się przywrócić"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Przywracam aplikację <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Inna migracja jest już w toku."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Za mało miejsca w pamięci."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikacja nie istnieje."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Dostępna klawiatura ekranowa"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Zarządzaj klawiaturami ekranowymi"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opcje"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ułatwienia dostępu"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Klawiatura fizyczna"</string>
     <string name="show_ime" msgid="4334255501724746849">"Używaj klawiatury ekranowej"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Pozostaw na ekranie, gdy aktywna jest klawiatura fizyczna"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Klawisze zwrócone"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Włącz Klawisze zwrócone w ułatwieniach dostępu klawiatury fizycznej"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Klawisze trwałe"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Włącz Klawisze trwałe w ułatwieniach dostępu klawiatury fizycznej"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Skróty klawiszowe"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Lista skrótów"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klawiatura i narzędzia w profilu służbowym"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sortuj według czasu użycia"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sortuj według ostatniego użycia"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sortuj według nazwy aplikacji"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Ostatnie użycie"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Ostatnie użycie"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nigdy"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Czas użycia"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Ułatwienia dostępu"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Ustawienia ułatwień dostępu"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Kontynuuj mimo to"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anuluj"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Ustawienia powiększenia"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Powiększ 3-krotnym kliknięciem"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Powiększanie skrótem"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Powiększanie skrótem i trzykrotnym kliknięciem"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> – informacje"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Kliknij dwukrotnie ekran dwoma palcami, aby otworzyć"</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="860548190334486449">"Aby włączyć lub wyłączyć powiększenie, kliknij dwukrotnie dwoma palcami dowolne miejsce 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Aby użyć ułatwień dostępu, 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Ustawienia przycisku ułatwień dostępu"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Ustawienia przycisku"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Skrót do funkcji <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Przycisk ułatwień dostępu"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gest ułatwień dostępu"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Kliknij dwukrotnie ekran dwoma palcami"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"kliknij dwukrotnie ekran dwoma palcami"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Szybko kliknij ekran {0,number,integer} razy dwoma palcami"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Kliknij ekran trzykrotnie"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Więcej informacji o przycisku i geście ułatwień dostępu"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Używam przycisku ułatwień dostępu. Ten gest nie jest dostępny w przypadku nawigacji przy użyciu 3 przycisków."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Szybki dostęp do ułatwień dostępu"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Aby rozpocząć"</b>\n"1. Otwórz ustawienia ułatwień dostępu\n2. Wybierz funkcję i kliknij skrót\n3. Wybierz przycisk lub gest, którego będziesz używać, aby skorzystać z funkcji"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Aby rozpocząć"</b>\n"1. Otwórz ustawienia ułatwień dostępu\n2. Wybierz funkcję i kliknij skrót\n3. Wybierz przycisk, aby skorzystać z funkcji"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Aby zacząć&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Przejdź do ustawień ułatwień dostępu&lt;br/&gt; {1,number,integer}. Wybierz funkcję i kliknij skrót&lt;br/&gt; {2,number,integer}. Zdecyduj, czy chcesz uzyskiwać dostęp do funkcji przy użyciu przycisku czy gestult;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Aby zacząć&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Przejdź do ustawień ułatwień dostępu&lt;br/&gt; {1,number,integer}. Wybierz funkcję i kliknij skrót&lt;br/&gt; {2,number,integer}. Wybierz przycisk, którego będziesz używać, aby skorzystać z funkcji&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Używaj przycisku lub gestu"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokalizacja"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Rozmiar"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Przycisk zasilania kończy rozmowę"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Duży wskaźnik myszy"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Bardziej widoczny kursor myszy"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Ustaw ciemny motyw we wszystkich aplikacjach"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Dotyczy aplikacji bez własnego ciemnego motywu. Niektóre aplikacje mogą mieć problemy z wyświetlaniem typu odwrócenie kolorów."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Usuń animacje"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Ogranicz ruch na ekranie"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Dźwięk mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Może śledzić Twoje interakcje z aplikacjami lub czujnikiem sprzętowym, a także obsługiwać aplikacje za Ciebie."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Zezwól"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Odmów"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Zatrzymaj"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Anuluj"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Zatrzymać <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Kliknięcie opcji <xliff:g id="STOP">%1$s</xliff:g> zatrzyma działanie usługi <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Wyłącz"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nie wyłączaj"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Wyłączyć usługę <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Brak zainstalowanych usług"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nie wybrano usługi"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Brak opisu"</string>
     <string name="settings_button" msgid="2195468788019730377">"Ustawienia"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"światłowstręt, fotofobia, ciemny motyw, migrena, ból głowy, tryb czytania, tryb nocny, zmniejszona jasność, punkt bieli"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"łatwa obsługa, łatwy dostęp, pomoc, wsparcie"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"widzenie, słyszenie, osoba niewidoma, osoba z wadą słuchu, motoryka, wygoda, wspomaganie, łatwe używanie, łatwy dostęp, dłoń, pomoc"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"powiększenie okna, zoom, powiększenie, niedowidzenie, powiększanie, powiększyć"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"napisy, Transkrypcja na żywo, niedosłuch, utrata słuchu, CART, zamiana mowy na tekst"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontrast kolorów"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"ruchowy, mysz"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparaty słuchowe, niedosłyszący, utrata słuchu, implanty ślimakowe, urządzenia wzmacniające dźwięk, procesory dźwięku"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motoryka, mysz, mysz zewnętrzna, mysz obsługiwana głową, mysz adaptacyjna, wózek inwalidzki, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparaty słuchowe, niedosłuch, utrata słuchu, implanty ślimakowe, urządzenia wzmacniające dźwięk, procesory dźwięku, CPR"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"niedosłuch, utrata słuchu, napisy, dalekopis, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"3 przyciski"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"wygoda, motoryka, senior, choroby reumatyczne, RSI, udar mózgu, drżenie, stwardnienie rozsiane, porażenie mózgowe, chroniczne przeciążenie mięśni i ścięgien, dłoń"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"opóźnienie, wygoda, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Drukowanie"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Wył."</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Włączono 1 usługę drukowania}few{Włączono # usługi drukowania}many{Włączono # usług drukowania}other{Włączono # usługi drukowania}}"</string>
@@ -2190,11 +2362,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">"Zezwalaj 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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Zobacz aplikacje, które najbardziej wykorzystują baterię"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Ładowanie zoptymalizowane w celu ochrony baterii"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Ze względu na żywotność baterii ładowanie jest zoptymalizowane"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Ładowanie zoptymalizowane w celu ochrony baterii"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Ładowanie po zadokowaniu jest zoptymalizowane w celu zwiększenia żywotności baterii"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Ładowanie zoptymalizowane w celu ochrony baterii"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Ładowanie po zadokowaniu jest zoptymalizowane w celu zwiększenia żywotności baterii"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Ładuję do pełnego naładowania"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Ze względu na ochronę baterii ładowanie zostanie zoptymalizowane, gdy następnym razem postawisz tablet na stacji dokującej"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Więcej informacji o ładowaniu zostało zatrzymane"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Wznów ładowanie"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Występuje aktywność w tle zużywająca dużo energii"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Usuń"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Anuluj"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Ładuj do pełna"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem z akcesoriami do ładowania"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Więcej informacji o ładowaniu niezgodną ładowarką"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Menedżer baterii"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Automatycznie zarządzaj aplikacjami"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"teraz"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Wykres zużycia baterii"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Wykres dziennego wykorzystania baterii"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Wykres godzinowego wykorzystania baterii"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Poziom baterii od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Wykorzystanie baterii od ostatniego naładowania"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Wykorzystanie baterii – <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Czas korzystania z urządzenia od ostatniego naładowania"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sygnał wybierania numeru alarmowego"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Skonfiguruj sposób działania w przypadku połączenia alarmowego"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Kopia zapasowa"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Wł."</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Wył."</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Tworzenie i przywracanie kopii zapasowej"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dane osobiste"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Utwórz kopię zapasową"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nazwa"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Typ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adres serwera"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Szyfrowanie PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Element tajny L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identyfikator IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Klucz wspólny IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certyfikat użytkownika IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certyfikat CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certyfikat serwera IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Opcje zaawansowane"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domeny wyszukiwania DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Serwery DNS (np. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Trasy przekazywania (np. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nazwa użytkownika"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Hasło"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Zapisz informacje o koncie"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nieużywane)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(nie weryfikuj serwera)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(odebrany z serwera)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ten typ sieci VPN nie może być stale połączony"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Stała sieć VPN obsługuje tylko liczbowe adresy serwerów"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Należy podać serwer DNS dla stałej sieci VPN."</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adresy serwerów DNS muszą mieć postać liczbową w przypadku stałych sieci VPN."</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Podane informacje nie umożliwiają obsługi stałej sieci VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Anuluj"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Zamknij"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokuj połączenia bez VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Wymagać połączenia VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Niezabezpieczona. Zaktualizuj do VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nie udało się uruchomić nieobsługiwanej konfiguracji VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Wybierz stały profil VPN. Ruch w sieci będzie możliwy tylko po połączeniu z tą siecią VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Brak"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"W przypadku stałej sieci VPN wymagany jest adres IP zarówno dla serwera, jak i dla DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alerty AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Otrzymuj komunikaty o porwaniach dzieci"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Powtórz"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Włącz menedżera połączeń"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Zezwalaj tej usłudze na zarządzanie sposobem wykonywania połączeń."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Menedżer połączeń"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alerty o zagrożeniu"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operatorzy sieci"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nazwy punktów dostępu"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"portfel"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"płacenie, klikanie, płatności"</string>
     <string name="keywords_backup" msgid="707735920706667685">"kopia zapasowa, tworzenie kopii zapasowej"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gest"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"twarz, odblokowanie, uwierzytelnienie, logowanie"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"twarz, odblokowywanie, Uwierzytelnianie, logowanie, odcisk palca, biometryczny"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, wersja prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Włącz dźwięki"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Napisy na żywo"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatycznie wyświetlaj napisy do multimediów"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Głośniki telefonu"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Głośniki tabletu"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Głośniki urządzenia"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Słuchawki przewodowe"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Dźwięk z kompatybilnych multimediów ma jeszcze lepszą jakość"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Wyłączono"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Co ma być wyświetlane na ekranie blokady?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Ostatnie rozmowy zostały usunięte"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Rozmowa została usunięta"</string>
     <string name="clear" msgid="5092178335409471100">"Wyczyść"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Wyczyść <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Tu będą pojawiały się rozmowy priorytetowe i zmodyfikowane"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Tutaj będą pojawiać się rozmowy, które oznaczysz jako priorytetowe lub zmienisz w dowolny inny sposób. \n\nAby zmienić ustawienia rozmowy: \nprzesuń palcem w dół od góry ekranu, by otworzyć obszar powiadomień, a potem naciśnij i przytrzymaj rozmowę."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimalizuj"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Wyłączone"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Przypinanie aplikacji"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Przypinanie aplikacji pozwala wyświetlać bieżącą aplikację nad innymi, by była widoczna, dopóki jej nie odepniesz. Możesz użyć tej funkcji, np. by pozwolić zaufanemu znajomemu zagrać w wybraną grę."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Przypięta aplikacja może otwierać inne aplikacje, a dane osobowe mogą być dostępne. \n\nAby używać przypinania aplikacji: 	\n1. Włącz przypinanie aplikacji. 	\n2. Otwórz Przegląd. 	\n3. Kliknij ikonę aplikacji u góry ekranu, a następnie kliknij Przypnij"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Przypięta aplikacja może otwierać inne aplikacje, a dane osobowe mogą być dostępne. \n\nJeśli chcesz przekazać komuś swoje urządzenie w bezpieczny sposób, skorzystaj raczej z profilu gościa. \n\nAby używać przypinania aplikacji: 	\n1. Włącz przypinanie aplikacji. 	\n2. Otwórz Przegląd. 	\n3. Kliknij ikonę aplikacji u góry ekranu, a następnie kliknij Przypnij"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Przypięta aplikacja może otwierać inne aplikacje, a dane osobowe mogą być dostępne. \n\nAby przypiąć aplikację: 	\n{0,number,integer}. Włącz przypinanie aplikacji 	\n{1,number,integer}. Otwórz Przegląd 	\n{2,number,integer}. Kliknij ikonę aplikacji u góry ekranu, a następnie kliknij Przypnij"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Przypięta aplikacja może otwierać inne aplikacje, a dane osobowe mogą być dostępne. \n\nJeśli chcesz przekazać komuś swoje urządzenie w bezpieczny sposób, skorzystaj raczej z profilu gościa. \n\nAby przypiąć aplikację: 	\n{0,number,integer}. Włącz przypinanie aplikacji 	\n{1,number,integer}. Otwórz Przegląd 	\n{2,number,integer}. Kliknij ikonę aplikacji u góry ekranu, a następnie kliknij Przypnij"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Przypięta aplikacja: \n\n•	 ma dostęp do danych osobowych \n		(takich jak kontakty i treść e-maili); \n•	 może otwierać inne aplikacje. \n\nUżywaj przypinania aplikacji tylko z zaufanymi osobami."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Aby odpiąć, poproś o wzór odblokowania"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Podaj PIN, aby odpiąć"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Ustawienia nieużywanych aplikacji"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Wstrzymuj aktywność w aplikacji, jeśli jest nieużywana"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Usuń uprawnienia i pliki tymczasowe oraz zatrzymaj powiadomienia"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Zarządzaj nieużywanymi aplikacjami"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Usuń uprawnienia i pliki tymczasowe, zatrzymaj powiadomienia i zarchiwizuj aplikację"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Wszystkie aplikacje"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Zainstalowane aplikacje"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplikacje błyskawiczne"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Wolna"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Pamięć używana przez aplikacje"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikacja korzystała z pamięci w ciągu ostatnich {time}}few{# aplikacje korzystały z pamięci w ciągu ostatnich {time}}many{# aplikacji korzystało z pamięci w ciągu ostatnich {time}}other{# aplikacji korzystało z pamięci w ciągu ostatnich {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Włącz profilowanie wykorzystania pamięci"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilowanie wykorzystania pamięci wymaga dodatkowych zasobów systemowych."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilowanie pamięci wyłączone"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Częstotliwość"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksymalne użycie"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Brak użycia danych"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Wyświetlanie nad innymi aplikacjami"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Zezwalaj na wyświetlanie nad innymi aplikacjami"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Pozwól tej aplikacji wyświetlać się nad innymi aplikacjami, których używasz. Ta aplikacja będzie widzieć, gdzie klikasz, lub przełączać to, co widzisz na ekranie."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Zmień wyjście multimediów"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Zezwalaj aplikacji na przełączanie wyjścia multimediów"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Zezwalaj tej aplikacji na wybór, które podłączone urządzenie ma odtwarzać ścieżkę audio lub wideo z innych aplikacji. W przypadku zezwolenia aplikacja ta może uzyskać dostęp do listy dostępnych urządzeń, takich jak słuchawki i głośniki, oraz wybrać urządzenie wyjściowe używane do strumieniowania lub przesyłania ścieżki audio bądź wideo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Dostęp do wszystkich plików"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Ulepszaj aktywację głosową"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"To urządzenie wykorzystuje inteligencję prywatną do ulepszania modelu aktywacji głosowej. Aplikacje mogą otrzymywać podsumowane dane od wielu użytkowników, które są łączone, aby zachować prywatność, jednocześnie ulepszając model dla wszystkich.\n\n"<a href="">"Więcej informacji o inteligencji prywatnej"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Ostrzeżenie dotyczące danych: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limit danych: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Ostrzeżenie dotyczące danych: <xliff:g id="ID_1">^1</xliff:g> / limit danych: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operator komórkowy może obliczać ilość przesłanych danych inaczej niż urządzenie"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Użycie danych w sieciach operatorów nie jest uwzględniane"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Wykorzystano <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Ustaw ostrzeżenie dotyczące danych"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Zaktualizowano <xliff:g id="ID_1">^2</xliff:g> temu"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Właśnie zaktualizowano (<xliff:g id="ID_1">^1</xliff:g>)"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Właśnie zaktualizowano"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Wyświetl abonament"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Wyświetl szczegóły"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Oszczędzanie danych"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dane bez limitu"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia wykorzystania baterii"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Kafelki szybkich ustawień dla programisty"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Wyłącz czas oczekiwania autoryzacji adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Wyłącz automatyczne anulowanie autoryzacji adb w przypadku systemów, które nie połączyły się ponownie w czasie domyślnym (7 dni) lub skonfigurowanym przez użytkownika (co najmniej 1 dzień)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Śledzenie Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Wyłącz czujniki"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Ustawienia profilu służbowego"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Wyszukuj kontakty z katalogu służbowego w aplikacjach osobistych"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Przesuń palcem z dolnego rogu ekranu w górę, aby wywołać aplikację asystenta cyfrowego"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Usługa autouzupełniania"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Domyślna usługa autouzupełniania"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Hasła"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usługi haseł, kluczy dostępu i danych"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Dostawcy dodatkowi"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# hasło}few{# hasła}many{# haseł}other{# hasła}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatycznie, uzupełnianie, autouzupełnianie, hasło"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Usługi haseł, kluczy dostępu i danych"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Wyłączyć wszystkie usługi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Hasła, klucze dostępu i inne zapisane informacje nie będą mogły być automatycznie uzupełniane podczas logowania"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Zmienić preferowaną aplikację na &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Nowe hasła, klucze dostępu i inne informacje będą od teraz zapisywane tutaj. 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_enable_confirmation_message_title" msgid="1037501792652277829">"Użyć usługi %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Możesz mieć włączonych jednocześnie tylko 5 usług"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Wyłącz co najmniej 1 usługę, aby dodać kolejną"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"Usługa %1$s używa treści wyświetlanych na ekranie do określania, co można uzupełnić automatycznie."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limit usług haseł, kluczy dostępu i danych"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Możesz mieć aktywnych maksymalnie 5 usług haseł, kluczy dostępu i danych jednocześnie. Wyłącz usługę, aby dodać kolejne."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limit usług haseł, kluczy i danych"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Możesz mieć aktywnych maksymalnie 5 usług haseł, kluczy i danych jednocześnie. Wyłącz jedną z usług, aby dodać kolejną."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Wyłącz"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autouzupełnianie"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Poziom rejestrowania"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Kompatybilność aplikacji można zmieniać tylko w aplikacjach z możliwością debugowania. Zainstaluj aplikację z możliwością debugowania i spróbuj ponownie."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Zależy od innego ustawienia"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konto"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Konta: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nazwa urządzenia"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Podstawowe informacje"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Prawo i przepisy"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Zezwól na uruchamianie tej aplikacji w przypadku skanowania tagów NFC.\nJeśli te uprawnienia będą włączone, aplikacja będzie dostępna jako opcja za każdym razem, gdy zostanie wykryty tag."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Odtwarzaj multimedia na"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Odtwarzaj <xliff:g id="LABEL">%s</xliff:g> na:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Dźwięk będzie nadal odtwarzany"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"To urządzenie"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Brak dostępu w trakcie połączeń"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Odbierz połączenie przez:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Wyciszenie"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Aby włączyć, najpierw zmień „Naciśnij i przytrzymaj przycisk zasilania” na menu zasilania."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Szczegóły sieci"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nazwa urządzenia jest widoczna dla aplikacji na telefonie. 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="devices_title" msgid="649715719278562515">"Urządzenia"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Wybierz sieć"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Odłączono"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nazwa"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Kolor (używany przez zgodne aplikacje)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Zapisz"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Używaj karty SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Użyj tej karty SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Wyłącz"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Aby wyłączyć tę kartę SIM, wyjmij ją"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Kliknij, by włączyć usługę <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Usuń dane z karty SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferowany typ sieci"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Zmień tryb działania sieci"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferowany typ sieci"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Aby poznać ceny, skontaktuj się z operatorem."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Użycie danych przez aplikację"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Nieprawidłowy tryb sieci <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoruj."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nazwy punktów dostępu"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Niedostępne po połączeniu z siecią <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Przełączyć na sieć <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Przełączyć na korzystanie z karty SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Użyć sieci <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"W danym momencie aktywna może być tylko 1 karta SIM.\n\nPrzełączenie na sieć <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nie spowoduje rezygnacji z usługi <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"W danym momencie aktywna może być tylko 1 karta eSIM.\n\nPrzełączenie na sieć <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nie spowoduje rezygnacji z usługi <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"W danym momencie aktywna może być tylko 1 karta SIM.\n\nPrzełączenie sieci nie spowoduje rezygnacji z usługi <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Możesz używać 2 kart SIM jednocześnie. Aby użyć sieci <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, wyłącz drugą kartę SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Przełącz na sieć <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Wyłącz sieć <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nie"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Anuluj"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Przełącz"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Wyłącz"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nie można aktywować karty SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Spróbuj ponownie włączyć kartę SIM. Jeśli problem nie ustąpi, uruchom urządzenie ponownie."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Skonfiguruj kartę SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Skonfiguruj preferencje sieci komórkowej, aby korzystać z kilku kart SIM na tym urządzeniu"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Oznacz karty SIM etykietami"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Etykiety wyświetlą się podczas wykonywania połączeń, wysyłania wiadomości i korzystania z transmisji danych, a także w Ustawieniach"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etykieta karty SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etykieta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Wybierz, której karty SIM użyć"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Możesz używać 2 kart SIM jednocześnie"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Skonfiguruj podstawowe karty SIM"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Wybierz, z których kart SIM chcesz domyślnie korzystać w przypadku połączeń, wiadomości i transmisji danych"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Twoje podstawowe karty SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Połączenia"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS-y"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatyczne przełączanie danych"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Użyj mobilnej transmisji danych z dowolnej karty SIM w zależności od zasięgu i dostępności"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Tylko dane"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Skonfiguruj"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Dalej"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Sieć komórkowa"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Numer telefonu"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Etykieta i kolor karty SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktywacja sieci"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Przełączanie operatora"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Sieć <xliff:g id="CARRIER_NAME">%1$s</xliff:g> jest aktywna"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Aby później korzystać z mobilnej transmisji danych, połączeń i SMS-ów, przejdź do ustawień sieci"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"Karta SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Wykasować tę kartę eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Wykasowanie danych z tej karty SIM spowoduje usunięcie sieci <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> z tego urządzenia.\n\nNie oznacza to jednak rezygnacji z usług operatora <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Wykasuj"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Usuwam dane z karty SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Nie można wykasować danych z karty SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Nie można wykasować danych z tej karty SIM z powodu błędu.\n\nUruchom urządzenie ponownie i spróbuj jeszcze raz."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Połącz z urządzeniem"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikacja <xliff:g id="APPNAME">%1$s</xliff:g> chce użyć tymczasowej sieci Wi‑Fi, by połączyć się z Twoim urządzeniem"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nie znaleziono urządzeń. Upewnij się, że urządzenia są włączone i mogą się połączyć."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Połączenia alarmowe"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Twój operator nie obsługuje połączeń alarmowych w Połączeniach przez Wi‑Fi.\nUrządzenie automatycznie przełącza się na sieć komórkową, by nawiązać połączenie alarmowe.\nPołączenia alarmowe są możliwe tylko na terenie objętym zasięgiem sieci komórkowej."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Dzwoń przez Wi‑Fi, by poprawić jakość połączeń"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Zapasowa metoda wykonywania połączeń"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Jeśli usługa <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> jest niedostępna, użyj karty SIM z mobilną transmisją danych do połączeń w sieci <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"zapasowa metoda wykonywania połączeń"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Przychodzący MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nie można wysłać MMS-a"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Kliknij, by zezwolić na komunikację MMS przez operatora <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> przy wyłączonej mobilnej transmisji danych."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informacje o zasadach służbowych"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Ustawienia, którymi zarządza administrator"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Uruchom z rozmiarem stron 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Uruchom z jądrem systemu obsługującym strony o rozmiarze 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Zrestartować z jądrem systemu obsługującym strony o rozmiarze 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"OSTRZEŻENIE: niektóre aplikacje mogą nie być zgodne z tym trybem. Po potwierdzeniu urządzenie uruchomi się ponownie."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Zrestartować z jądrem systemu obsługującym strony o rozmiarze 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Po potwierdzeniu urządzenie uruchomi się ponownie."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Nie udało się zaktualizować jądra systemu, aby obsługiwał strony o rozmiarze 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Wprowadzam zmianę"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Obsługiwanie zgłaszania błędów"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Określa, która aplikacja ma obsługiwać skrót do zgłaszania błędów na urządzeniu."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Osobista"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Aby można było szybko wznowić odtwarzanie, odtwarzacz pozostaje otwarty w Szybkich ustawieniach"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Pokazuj multimedia na ekranie blokady"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Aby można było szybko wznowić odtwarzanie, odtwarzacz pozostaje otwarty na ekranie blokady"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Pokazuj rekomendacje multimediów"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Pokazuj rekomendacje Asystenta dotyczące multimediów"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Na podstawie Twojej aktywności"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ukryj odtwarzacz"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Pokazuj odtwarzacz"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Karty eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktywna"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Nieaktywna"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Domyślna dla: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"połączenia"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS-y"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Jeszcze lepsza jakość dźwięku z kompatybilnych multimediów"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Monitorowanie ruchów głowy"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Dźwięk zmienia się, kiedy poruszasz głową, aby brzmieć bardziej naturalnie"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synchronizuj uprawnienia"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Przyznaj urządzeniu <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>te same uprawnienia aplikacji, które masz na urządzeniu <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synchronizuj uprawnienia z telefonu"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Przyznaj na zegarku te same uprawnienia aplikacji, które masz na tym telefonie"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ urządzenia audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Brak informacji"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Głośnik"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Średni"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Wysoki"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ta aplikacja może być otwarta tylko w 1 oknie."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Włączono"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Wyłączono"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Wyłączono"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Wyłączono"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Włączono"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Wyłączono"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Włączono"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Wyłączono"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Zmienia jasne fragmenty ekranu na ciemne, a ciemne na jasne"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Powiększ zawartość na ekranie"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Wyłączono"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Wyłączono"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Włączono"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Wyłączono"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Włączono"</string>
+    <string name="about_phone_device_name_warning" msgid="3243226572404472381">"Nazwa urządzenia jest widoczna dla zainstalowanych przez Ciebie aplikacji. Mogą ją też zobaczyć inne osoby, gdy łączysz się z urządzeniami przez Bluetooth, łączysz się z siecią Wi-Fi lub konfigurujesz hotspot Wi-Fi."</string>
+    <string name="grammatical_gender_title" msgid="8584242850477270828">"Rodzaj gramatyczny"</string>
+    <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Wybierz rodzaj gramatyczny"</string>
+    <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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Ustawiono hasło"</string>
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index b11e99e..2e9649b 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Depois de um minuto"</item>
     <item msgid="1574040255478150028">"Depois de cinco minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 662ceb9..05970b2 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Você agora é um desenvolvedor!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Não é necessário. Você já é um desenvolvedor."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Primeiro, ative as opções do desenvolvedor."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Apenas os usuários administradores podem acessar as configurações do desenvolvedor."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Em serviço"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fora de serviço"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"O display frontal é ligado ao dobrar o dispositivo"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Apenas jogos, vídeos e mais"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"O display frontal é ativado para apps que impedem a tela de ficar inativa"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Deslize para cima para continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Dobre o smartphone e deslize para cima no display frontal para continuar usando o app ou aguarde alguns segundos para que a tela seja bloqueada"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nunca"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"O display frontal é bloqueado ao dobrar o dispositivo"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Usar o giro automático"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionadas"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Toque e alarmes"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Áudio durante ligações"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Mídia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificações e outros sons do sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons de mídia e do sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificações"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Por padrão, a saída de áudio é determinada por apps individuais"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositivo Bluetooth sem nome"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Pesquisar"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth ativado"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todos"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Mostrar tudo"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pressionar o botão da stylus"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de trabalho)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Conectar a um stream de LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Streams de áudio por perto"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Streams de áudio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Conectar a um stream de áudio usando um QR code"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nenhum stream de áudio por perto foi encontrado."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para selecionar um idioma para cada app, acesse as configurações de idioma deles."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saiba mais sobre idiomas de apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Mudar o idioma do sistema para %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Adicionar o %s aos idiomas favoritos?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Isso permite que os apps e sites saibam que você prefere esse idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"As configurações e as preferências regionais do seu dispositivo vão mudar."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Mudar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s indisponível"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sábado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Se um app não oferecer suporte a preferências regionais, ele usará as configurações padrão de localidade."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Saiba mais sobre as preferências de idioma."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferências adicionais"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Termos de tratamento"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Definir como quer que o app se dirija a você"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Os apps podem usar termos de tratamento para personalizar a forma como se dirigem a você."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Não especificado"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminino"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutro"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remover idioma selecionado?}one{Remover idioma selecionado?}other{Remover idiomas selecionados?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto será exibido em outro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Não é possível remover todos os idiomas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Localização"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar localização"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Configuração desativada"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Ativada: # app tem acesso à localização}one{Ativada: # app tem acesso à localização}other{Ativada: # apps têm acesso à localização}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}one{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregando…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps com permissão para encontrar dispositivos por perto podem determinar a posição relativa dos dispositivos conectados."</string>
     <string name="location_settings_footer_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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Saiba mais sobre as configurações de localização."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Mude o acesso à localização em \"Configurações &gt; Segurança e privacidade &gt; Controles de privacidade\""</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para conseguir melhores resultados, use uma película com certificação Made For Google. A impressão digital da criança pode não funcionar com outras películas."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueio do relógio"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Quando o Desbloqueio facial e por impressão digital são configurados, a impressão é solicitada para desbloquear o smartphone quando você está em uma área escura ou usando uma máscara.\n\nVocê pode usar o relógio quando seu rosto ou sua impressão digital não forem reconhecidos."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Você pode desbloquear o smartphone com o relógio quando sua impressão digital não é reconhecida."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Você pode desbloquear o smartphone com o relógio quando seu rosto não é reconhecido."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Quando o Desbloqueio facial e por impressão digital forem configurados, a impressão será solicitada para desbloquear o smartphone sempre que você estiver em uma área escura ou usando uma máscara.\n\nO Desbloqueio do relógio é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando seus dedos estiverem molhados ou seu rosto não for reconhecido."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"O Desbloqueio do relógio é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando sua impressão digital não for reconhecida."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"O Desbloqueio do relógio é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando seu rosto não for reconhecido."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use a impressão digital ou o relógio para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use o rosto ou o relógio para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use o rosto, a impressão digital ou o relógio para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio do Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o relógio"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"O \"Desbloqueio do relógio\" é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando os dedos estiverem molhados ou o rosto não for reconhecido.\n\nVocê pode usar o relógio para desbloquear o smartphone quando:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora não"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+    <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 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>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Deslize para cima na tela de bloqueio"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Escolha seu relógio"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relógios disponíveis"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está tudo pronto!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Agora, você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Concluído"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueio do relógio"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar o \"Desbloqueio do relógio\", é necessário que o relógio esteja desbloqueado, no pulso, perto de você e conectado a este smartphone. Se a conexão for interrompida, você precisará desbloquear o smartphone antes de usar o recurso.\n\nNão se esqueça:\nSó é possível configurar um relógio por vez. Para adicionar outro, remova o atual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o \"Desbloqueio do relógio\""</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Segurança"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacidade"</string>
     <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="2274405892301976238">"Mantenha apps particulares bloqueados e ocultos"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantenha a privacidade de apps em um espaço separado que você pode ocultar ou bloquear"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueio do Espaço particular"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Você pode desbloquear o Espaço particular da mesma maneira que desbloqueia seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usar o bloqueio de tela do dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueio facial e por impressão digital"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueio por impressão digital"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueio facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toque para configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueio por impressão digital para o espaço privado"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueio facial para o espaço privado"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Formas de desbloquear a tela"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Igual ao bloqueio de tela do dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Escolher outro bloqueio para o Espaço particular?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloquear automaticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloquear o espaço privado automaticamente"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Você poderá bloquear seu espaço privado automaticamente se não usar o dispositivo por um período de tempo"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Sempre que o dispositivo for bloqueado"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Depois de cinco minutos de inatividade"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nunca"</string>
+    <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_delete_title" msgid="3075645119800272800">"Excluir o 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="private_space_unlocked" msgid="9091600948712932046">"Espaço privado desbloqueado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defina um bloqueio de tela"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Cancelar"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurar"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configurar um Espaço particular"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantenha a privacidade de apps em um espaço separado que você pode ocultar ou bloquear"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Como funciona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Você pode acessar o Espaço particular na parte de baixo da sua lista de apps"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps no Espaço particular ficam protegidos por um bloqueio"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"As notificações de apps no seu Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Os apps do seu 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.\n\nSeu Espaço particular não pode ser movido para um novo dispositivo. Você precisará configurar outro Espaço particular se quiser usá-lo em outro dispositivo.\n\nQualquer usuário que conectar seu dispositivo a um computador ou instalar apps perigosos no dispositivo conseguirá acessar seu Espaço particular."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando o espaço particular…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notificações de apps no Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloqueie o espaço privado para compartilhar fotos ou arquivos de apps dele"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Alguns apps já estão instalados no seu Espaço particular"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Não foi possível configurar o Espaço particular"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar de novo"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Usar o bloq. de tela p/ abrir o Espaço particular?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Você pode desbloquear seu Espaço particular da mesma maneira que desbloqueia seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar o bloqueio de tela"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Escolher novo bloqueio"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tudo pronto!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para acessar o Espaço particular, abra sua lista de apps e role até a parte de baixo dela"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Concluído"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Role a tela para baixo para encontrar o Espaço particular"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Escolher um bloqueio para seu Espaço particular"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"É possível desbloquear seu espaço particular com sua impressão digital. Por motivos de segurança, essa opção exige um bloqueio de backup."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Defina um PIN para seu espaço privado"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Defina uma senha para seu espaço privado"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Defina um padrão para seu espaço privado"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Para mostrar o Espaço particular (UX não final)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Abra o app Configurações"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Toque em \"Segurança e privacidade &gt; Espaço particular &gt; Ocultar o Espaço particular quando bloqueado\""</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Botão \"Ocultar o Espaço particular quando bloqueado\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Observação para Googlers: esse recurso ainda está em desenvolvimento"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Talvez seja necessário digitar esta senha no outro dispositivo."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirme para parear com o conjunto coordenado"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acesso aos seus contatos e seu histórico de ligações"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Também permite o acesso a contatos e ao histórico de ligações"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"As informações serão usadas para fazer o anúncio de ligações e muito mais"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Não foi possível conectar ao <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos encontrados"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"No modo avião"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notificar quando houver redes públicas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notificar quando uma rede pública de alta qualidade estiver disponível."</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permitir redes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP é um protocolo de segurança mais antigo que oferece menos proteção"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Sua operadora não permite redes WEP porque elas são menos seguras"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Ativar o Wi‑Fi automaticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Reativar o Wi‑Fi automaticamente perto de redes salvas de alta qualidade, como sua rede doméstica."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Indisponível porque a localização está desativada. Ative a "<annotation id="link">"localização"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"A busca por Wi-Fi permite que apps e serviços procurem redes Wi‑Fi a qualquer momento, mesmo quando o Wi‑Fi está desativado. Essa configuração pode ser usada, por exemplo, para melhorar recursos e serviços baseados na localização."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Ativar"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Busca por Wi‑Fi ativada"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Esta rede usa um protocolo de segurança mais antigo e menos seguro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"A rede <xliff:g id="NAME">%1$s</xliff:g> foi bloqueada"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Esta rede usa um protocolo de segurança mais antigo chamado WEP, que é menos seguro. Para se conectar mesmo assim, permita a conexão em redes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Sua operadora não permite que você se conecte a esta rede porque ela usa um protocolo de segurança mais antigo e menos seguro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permitir WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Fechar"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opções avançadas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista suspensa \"Opções avançadas\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"abrir"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Continuar no Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Não mostrar de novo"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ativado"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Falha ao conectar à rede"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rede fora do alcance"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Falha ao esquecer a rede"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Salvar"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Falha ao salvar a rede"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Dados móveis"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Carregando"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Carregando"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Conexão de ponto de acesso"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Potência da conexão"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes salvas"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nenhuma senha definida"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nome do ponto de acesso"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Senha do ponto de acesso"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda do ponto de acesso"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desativar ponto de acesso automaticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Quando nenhum dispositivo estiver conectado"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Aumentar compatibilidade"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balanço de branco da tela"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Desativar o frame rate padrão para jogos"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Desativar o limite máximo de frame rate para jogos em <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Usando a câmera frontal, o \"Reconhecimento de tela em uso\" detecta se alguém está olhando para a tela. Ele funciona no dispositivo, e as imagens nunca são armazenadas nem enviadas ao Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ativar o \"reconhecimento de tela em uso\""</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantenha a tela ligada enquanto estiver olhando para ela"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Um tempo limite da tela mais longo vai consumir a bateria mais rapidamente."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A câmera está bloqueada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Desbloqueie a câmera para usar a detecção facial"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A câmera precisa ser desbloqueada para usar o reconhecimento de tela em uso"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot para chip <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot para chip <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>, principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Selecione uma rede salva para ver"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versão do PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nível da bateria"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Compartilhadas"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configurações compartilhadas"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Salvar"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"O campo Nome não pode ficar vazio."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"O APN não pode estar vazio."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"O campo MCC deve ter 3 dígitos."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"O campo MNC deve ter 2 ou 3 dígitos."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"A operadora não permite adicionar APNs do tipo %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"O campo MMSC não é válido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restaurando as configurações APN padrão."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Redefinir para o padrão"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Redefinição das configurações padrão do APN concluída."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reiniciar"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"O Bluetooth e o Wi-Fi foram redefinidos"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Limpar eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Isso não cancelará nenhum plano de serviços móveis. Para fazer o download de chips substitutos, entre em contato com a operadora."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Redefinir configurações"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Redefinir todas as configurações de rede? Não é possível desfazer essa ação."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Você quer mesmo redefinir todas as configurações de rede e apagar os eSIMs salvos? Não é possível desfazer essa ação."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Redefinir?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"A redefinição da rede não está disponível para esse usuário"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"As configurações de rede foram redefinidas"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Não é possível limpar chips"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Ocorreu um erro ao apagar o eSIM.\n\nReinicie o dispositivo e tente de novo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Limpar todos os dados (redefinir para a configuração original)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Limpar todos os dados"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Músicas"</li>\n<li>"Fotos"</li>\n<li>"Outros dados do usuário"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Essa ação não cancelará seu plano de serviços móveis."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Todas as informações pessoais e os apps transferidos por download serão excluídos. Não é possível desfazer essa ação."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Todas as suas informações pessoais, inclusive apps e chips transferidos por download, serão excluídas. Não é possível desfazer essa ação."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Limpar todos os dados?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"A redefinição para a configuração original não está disponível para este usuário"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Limpando"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Ponto de acesso, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Não está compartilhando a Internet com outros dispositivos"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desativados"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Não usar ponto de acesso Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Compartilhar Internet apenas por USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Compartilhar Internet apenas por Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Compartilhar Internet apenas por Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Compartilhar Internet apenas por USB e Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Compartilhar Internet apenas por USB e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Compartilhar Internet apenas por Bluetooth e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Compartilhar Internet apenas por USB, Bluetooth e Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use o ponto de acesso e tethering para que outros dispositivos possam usar a Internet pela sua conexão de dados móveis. Os apps também podem criar um ponto de acesso para compartilhar conteúdo com dispositivos por perto."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rede móvel"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plano de serviço móvel"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"App de SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Alterar app de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Usar o <xliff:g id="NEW_APP">%1$s</xliff:g> em vez do <xliff:g id="CURRENT_APP">%2$s</xliff:g> como app de SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Alterar o Assistente de Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerenciar suas conexões de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operadora do chip desconhecida"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de provisionamento conhecido"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insira o chip e reinicie"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conecte-se à Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitações recentes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Local do perfil de trabalho"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permissões de acesso ao local"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Limpar acesso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controles"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forçar fechamento"</string>
+    <string name="archive" msgid="9074663845068632127">"Arquivar"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurar"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tamanho do app"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"App de armazenamento USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Não foi possível calcular o tamanho do pacote."</string>
     <string name="version_text" msgid="7628938665256107608">"versão <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mover"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Falha ao arquivar"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> arquivado"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Falha na restauração"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restaurando <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Outra migração já está em andamento."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Não há espaço de armazenamento suficiente."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"O app não existe."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado na tela disponível"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gerenciar teclados na tela"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="show_ime" msgid="4334255501724746849">"Usar teclado na tela"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Manter na tela enquanto o teclado físico estiver ativo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtro"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Permitir teclas de filtro para acessibilidade do teclado físico"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Teclas de aderência"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Permitir teclas de aderência para acessibilidade do teclado físico"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos do teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de atalhos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas de perfil de trabalho"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenar por tempo de uso"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenar pelo último uso"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenar por nome do app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Última utilização"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Último uso"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nunca"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Tempo de uso"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Acessibilidade"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Configurações de acessibilidade"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar mesmo assim"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configurações de ampliação"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ampliar com toque triplo"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ampliar com atalho"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Ampliar com atalho e toque triplo"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Tocar duas 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="860548190334486449">"Para iniciar ou interromper a ampliação, toque duas 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Para usar um recurso de acessibilidade, deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre recursos, deslize de baixo para cima com três dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Ok"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Configurações do botão"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Configurações do botão"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Atalho para <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Botão de acessibilidade"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto de acessibilidade"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Tocar duas vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tocar duas vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque na tela {0,number,integer} vezes rapidamente com dois dedos"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocar na tela três vezes"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Saiba mais sobre o botão e o gesto de acessibilidade"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Como usar o botão de acessibilidade. O gesto não está disponível na navegação com três botões."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Acessar rapidamente os recursos de acessibilidade"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para começar, siga estas instruções:"</b>\n"1. Vá para as configurações de acessibilidade.\n2. Selecione um recurso e toque no atalho.\n3. Escolha se você quer usar um botão ou gesto para acessar esse recurso."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para começar, siga estas instruções:"</b>\n"1. Vá para as configurações de acessibilidade.\n2. Selecione um recurso e toque no atalho.\n3. Escolha o botão para acessar o recurso."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para começar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Abra as configurações de acessibilidade&lt;br/&gt; {1,number,integer}. Selecione um recurso e toque no atalho&lt;br/&gt; {2,number,integer}. Escolha se quer usar um botão ou um gesto para acessar o recurso&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para começar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Abra as configurações de acessibilidade&lt;br/&gt; {1,number,integer}. Selecione um recurso e toque no atalho&lt;br/&gt; {2,number,integer}. Escolha o botão para acessar o recurso&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Usar botão ou gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Localização"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamanho"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Botão liga/desliga encerra chamadas"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Cursor do mouse grande"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Deixar o ponteiro do mouse perceptível"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Forçar apps a usar o tema escuro"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Para apps que não tem um tema escuro. Alguns apps podem ter problemas, como cores invertidas."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remover animações"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduzir o movimento na tela"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Áudio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Parar"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancelar"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Desativar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Se você tocar em <xliff:g id="STOP">%1$s</xliff:g>, o <xliff:g id="SERVICE">%2$s</xliff:g> será interrompido."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Manter ativado"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Desativar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nenhum serviço foi instalado"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nenhum serviço selecionado"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição foi fornecida."</string>
     <string name="settings_button" msgid="2195468788019730377">"Configurações"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade à luz, fotofobia, tema escuro, enxaqueca, dor de cabeça, modo de leitura, modo noturno, reduzir brilho, ponto branco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de uso, facilidade de acesso, assistência, assistivo"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visão, audição, cego, surdo, motor, destreza, assistivo, assistência, facilidade de uso, facilidade de acesso, mão, ajuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Lupa de janela, zoom, ampliação, baixa visão, ampliar, aumentar"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Legendas, closed captions, CC, Transcrição instantânea, deficiência auditiva, perda auditiva, legenda ao vivo, voz em texto"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"coordenação motora, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, mouse externo, mouse controlado por movimentos da cabeça, mouse adaptável, cadeira de rodas, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som, CAE"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"deficiência auditiva, perda auditiva, legendas, teletipo, TTD"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"três botões"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motor, idoso, artrite, LER, derrame, tremor, esclerose múltipla, paralisia cerebral, tremendo, lesão por esforço repetitivo, mão"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, idoso"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impressão"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desativada"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 serviço de impressão ativado}one{# serviço de impressão ativado}other{# serviços de impressão ativados}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ver apps com maior uso"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Carregamento otimizado para proteger a bateria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Para ajudar a prolongar a vida útil da bateria, o carregamento foi otimizado"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Carregamento otimizado para proteger a bateria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para ajudar a prolongar a vida útil da bateria, o carregamento vai ser otimizado quando o dispositivo estiver na base"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Carregamento otimizado para proteger a bateria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para ajudar a prolongar a vida útil da bateria, o carregamento vai ser otimizado quando o dispositivo estiver na base"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Carregamento total"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para proteger a bateria, o carregamento vai ser otimizado na próxima vez que o tablet estiver na base"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Saiba mais sobre a pausa no carregamento"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Retomar o carregamento"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclui atividade em segundo plano com alto consumo de energia"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remover"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancelar"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Carregar totalmente"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema com o acessório de carregamento"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Saiba mais sobre a incompatibilidade de carregamento"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gerenciador de bateria"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gerenciar apps automaticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"agora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> — <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g>. <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gráfico de uso da bateria"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gráfico de uso diário da bateria"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gráfico de uso da bateria por hora"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Mudança na porcentagem do nível de bateria de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> para <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Uso da bateria desde a última carga completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Uso da bateria no período: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tempo de uso desde a última carga completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sinal de discagem de emergência"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Definir comportamento durante uma chamada de emergência"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Ativado"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desativado"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup e restauração"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dados pessoais"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Fazer backup"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nome"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Endereço do servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Criptografia PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Segredo L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Chave pré-compartilhada IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificado de usuário IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificado de CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificado de servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostrar opções avançadas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domínios de pesquisa de DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidores de DNS (por exemplo, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rotas de encaminhamento (ex: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nome de usuário"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Senha"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Salvar informações sobre a conta"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"Não utilizado"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(não verificar servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(recebido de um servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Não é possível manter este tipo de VPN sempre conectado."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN sempre ativa só é compatível com endereços numéricos"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Um servidor DNS precisa ser especificado para VPN sempre ativa"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Os endereços de servidor DNS precisam ser numéricos para VPN sempre ativa"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"As informações inseridas não são compatíveis com VPN sempre ativa"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancelar"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Dispensar"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexões sem VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Conexão VPN necessária?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Não seguro. Atualize para uma VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Falha ao iniciar a VPN sem suporte."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre conectado. O tráfego de rede somente será permitido quando conectado a esta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP para o servidor e o DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertas AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receber boletins sobre crianças sequestradas"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetir"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Ativar Gerenciador de chamadas"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permitir que este serviço gerencie como as chamadas são feitas."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gerenciador de chamadas"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertas de emergência sem fio"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operadores de rede"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nomes dos pontos de acesso"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"carteira"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pagar, tocar, pagamentos"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"desbloqueio, facial, autenticação, login"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"rosto, desbloqueio, autenticação, login, impressão digital, biometria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versão prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ativar sons"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Legenda Instantânea"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Legendar mídias automaticamente"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Alto-falantes do smartphone"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Alto-falantes do tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Alto-falantes do dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Fones de ouvido com fio"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"O áudio de dispositivos de mídia compatíveis fica mais imersivo"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Desativado"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"O que você quer que apareça na sua tela de bloqueio?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Conversas recentes removidas"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversa removida"</string>
     <string name="clear" msgid="5092178335409471100">"Limpar"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Limpar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"As conversas prioritárias e modificadas aparecem aqui"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Depois de marcar como prioritária ou fazer qualquer mudança nas conversas, elas aparecem aqui. \n\nPara mudar as configurações: \ndeslize o dedo de cima para baixo na tela para abrir a aba suspensa. Em seguida, toque na conversa e mantenha pressionada."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizar"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desativada"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fixação de apps"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"A fixação de apps faz com que o app atual fique aberto na tela até que você libere. Esse recurso pode ser usado, por exemplo, para deixar alguém acessar um jogo específico no seu smartphone."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nPara usar a fixação de apps, faça o seguinte: 	\n1. Ative a fixação de apps. 	\n2. Abra a opção \"Visão geral\". 	\n3. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nSe você quiser compartilhar seu dispositivo com alguém de forma segura, tente fazer isso com um usuário convidado. \n\nPara usar a fixação de apps, faça o seguinte: 	\n1. Ative a fixação de apps. 	\n2. Abra a opção \"Visão geral\". 	\n3. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nPara usar a fixação de apps: 	\n{0,number,integer}. Ativar a fixação de apps 	\n{1,number,integer}. Abrir a Visão geral 	\n{2,number,integer}. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nSe você quiser compartilhar seu dispositivo com alguém de forma segura, tente fazer isso com um usuário convidado. \n\nPara usar a fixação de apps: 	\n{0,number,integer}. Ativar a fixação de apps 	\n{1,number,integer}. Abrir a Visão geral 	\n{2,number,integer}. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Quando o app está fixado, ele pode: \n\n•		acessar dados pessoais \n		(como contatos e conteúdo de e-mail); \n•		abrir outros apps. \n\nUse a fixação de apps apenas com pessoas em quem você confia."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pedir padrão de desbloqueio antes de liberar a tela"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Pedir PIN antes de liberar a tela"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Configurações de apps não usados"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausar atividade no app quando não usado"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remove permissões, exclui arquivos temporários e para notificações"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gerenciar o app quando não usado"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remover permissões, excluir arquivos temporários, parar notificações e arquivar o app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Todos os apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Apps instalados"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Apps instantâneos"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Disponível"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memória usada por apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app usou a memória nos últimos {time}}one{# app usou a memória nos últimos {time}}other{# apps usaram a memória nos últimos {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Ativar a criação de perfil de uso da memória"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"O perfil de uso de memória requer outros recursos do sistema."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Criação de perfil de memória"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequência"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Uso máximo"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nenhum dado usado"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Sobrepor a outros apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permitir sobreposição a outros apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permite que este app apareça sobreposto a outros apps que você esteja usando. Este app poderá ver onde você toca ou mudar o que está sendo mostrado na tela."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Mudar saída de mídia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permitir que um app mude a saída de mídia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permite que este app escolha qual dispositivo conectado vai reproduzir áudio ou vídeo de outros apps. Se a permissão for concedida, o app poderá acessar uma lista de dispositivos disponíveis, por exemplo, fones de ouvido e alto-falantes, e escolher qual dispositivo de saída será usado para transmitir ou reproduzir áudio ou vídeo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acesso a todos os arquivos"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Melhorar a ativação por voz"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Este dispositivo usa informações particulares para melhorar o modelo de ativação por voz. Os apps podem receber atualizações resumidas que são agregadas entre vários usuários para manter a privacidade e, ao mesmo tempo, melhorar o modelo para todos.\n\n"<a href="">"Saiba mais sobre a inteligência particular"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limite de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g> / Limite de dados em <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"O cálculo de dados da operadora pode ser diferente daquele realizado pelo seu dispostivo"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclui dados usados por redes de operadoras"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> usado(s)"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Definir alerta de uso de dados"</string>
@@ -3833,7 +4016,6 @@
     <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_mdp_app_text" msgid="8791816789749304897">"Ver plano"</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>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia no uso da bateria"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Blocos de desenvolvedor para configurações rápidas"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Desativar o tempo limite da autorização adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Desativar a revogação automática de autorizações adb para sistemas que não foram reconectados no período padrão (7 dias) ou configurado pelo usuário (mínimo de 1 dia)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Rastreamento do Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensores desativados"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Configurações do perfil de trabalho"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Pesquisar contatos do diretório de trabalho nos apps pessoais"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Preenchimento automático"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Preenchimento automático padrão"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Senhas"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Senhas, chaves de acesso e serviços de dados"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Outros provedores"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# senha}one{# senha}other{# senhas}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"preencher, automático, preenchimento automático, senha"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Senhas, chaves de acesso e serviços de dados"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Desativar todos os serviços?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Mude seu serviço favorito para &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora. O &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_enable_confirmation_message_title" msgid="1037501792652277829">"Usar %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Só é possível ter 5 serviços ativados"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desative pelo menos 1 serviço para adicionar outro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa o que aparece na tela para determinar o que pode ser preenchido automaticamente."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de senhas, chaves de acesso e serviços de dados"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ao mesmo tempo. Desative um para adicionar outro."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de senhas, chaves de acesso e serviços de dados"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ativos ao mesmo tempo. Desative um para adicionar outro."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desativar"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Preenchimento automático"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nível de registro"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"As mudanças na compatibilidade de apps só podem ser modificadas para apps depuráveis. Instale um app depurável e tente novamente."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depende de outra configuração"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Conta"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d contas"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nome do dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informações básicas"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Informações legais e regulatórias"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permitir que este app seja aberto quando a tag NFC for lida.\nSe esta permissão estiver ativada, o app vai ficar disponível como opção sempre que uma tag for detectada."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Tocar mídia"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Abrir <xliff:g id="LABEL">%s</xliff:g> no dispositivo abaixo:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"O áudio vai tocar"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Neste dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Indisponível durante chamadas"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender chamada"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Desativar som"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Para ativar, mude a opção \"Aperte o botão liga/desliga e o pressione\" para o menu liga/desliga."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalhes da rede"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"O nome do seu dispositivo está visível para os apps no smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou a uma rede Wi-Fi ou quando configura um ponto de acesso Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Escolher rede"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Desconectado"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nome"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Cor (usada por apps compatíveis)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Salvar"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Usar chip"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usar este chip"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desativado"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para desativar este chip ele deve ser removido."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Toque para ativar a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Limpar chip"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferencial"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Alterar o modo de operação de rede"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo de rede preferencial"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Consulte os preços com seu provedor de rede."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Uso de dados do app"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Modo de rede <xliff:g id="NETWORKMODEID">%1$d</xliff:g> inválido. Ignorar."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nomes dos pontos de acesso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Indisponível quando conectado à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Mudar para a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Começar a usar o chip?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Usar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Somente um chip pode estar ativo por vez.\n\nMudar para a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> não cancelará o serviço da <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Apenas um eSIM pode ficar ativo por vez.\n\nMudar para a operadora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> não cancela o serviço da <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Somente um chip pode estar ativo por vez.\n\nMudar de operadora não cancelará o serviço da <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Você pode usar dois chips ao mesmo tempo. Para usar a operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desative o outro chip."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Mudar para <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desativar chip da operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Agora não"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancelar"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Mudar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desativar"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Não foi possível ativar o chip"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Tente ativar o chip novamente. Se o problema continuar, reinicie o dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configure seu chip"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Defina suas preferências de rede móvel para usar vários chips neste dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Rotule seus chips"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Esses rótulos vão aparecer ao fazer ligações, enviar mensagens de texto e usar dados, além de aparecerem nas Configurações"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Rótulo do chip"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Rótulo"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Selecione quais chips usar"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Você pode usar dois chips ao mesmo tempo"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Defina seus chips principais"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Escolha quais chips usar por padrão para fazer ligações, enviar mensagens de texto e usar dados"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Seus principais chips"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Ligações"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mensagens de texto"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Troca de dados automática"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Usar dados de qualquer chip dependendo da cobertura e disponibilidade"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Somente dados"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configurar"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Próxima"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rede móvel"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de telefone"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Rótulo e cor do chip"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ativação de rede"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Mudança de operadora"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"A operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g> está ativa"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para usar dados móveis, recursos de chamada e SMS mais tarde, acesse as configurações de rede"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"Chip"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Você quer mesmo apagar este eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"A limpeza do chip remove o serviço da <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> deste dispositivo.\n\nO serviço da <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> não será cancelado."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Limpar"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Limpando chip…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Não é possível limpar o chip"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Não é possível limpar este chip devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Conectar ao dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"O app <xliff:g id="APPNAME">%1$s</xliff:g> quer usar uma rede Wi-Fi temporária para se conectar ao seu dispositivo"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nenhum dispositivo foi encontrado. Os dispositivos precisam estar ligados e disponíveis para conexão."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Chamadas de emergência"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"As chamadas de emergência feitas com o recurso \"Chamada no Wi-Fi\" não são compatíveis com sua operadora.\nO dispositivo alterna automaticamente para uma rede celular para fazer uma chamada de emergência.\nAs chamadas de emergência são possíveis apenas em áreas com cobertura de celular."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Usar Wi-Fi nas chamadas para melhorar a qualidade"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Chamadas alternativas"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Se <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> estiver indisponível ou em roaming, use o chip de dados móveis para chamadas da operadora <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"chamadas alternativas"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mensagem MMS recebida"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Não é possível enviar mensagens MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Toque para permitir mensagens MMS pela <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> quando os dados móveis estiverem desativados"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informações sobre sua política de trabalho"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Configurações gerenciadas pelo administrador de TI"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Inicializar com páginas de 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Inicializar dispositivo usando o kernel com suporte a páginas de 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reiniciar com kernel compatível com páginas de 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVISO: alguns aplicativos podem não ser compatíveis com esse modo. O dispositivo será reiniciado após a confirmação."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reiniciar com kernel compatível com páginas de 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"O dispositivo será reiniciado após a confirmação."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Falha ao atualizar para um kernel compatível com páginas de 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Aplicando mudança"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Gerenciador de relatórios de bugs"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina qual app gerencia o atalho para o Relatório de bug no dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Pessoais"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Para retomar a reprodução rapidamente, o player de mídia fica aberto nas Configurações rápidas"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostrar mídia na tela de bloqueio"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Para retomar a reprodução rapidamente, o player de mídia fica aberto na tela de bloqueio"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostrar recomendações de mídia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostrar recomendações de mídia do Google Assistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Com base na sua atividade"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ocultar player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostrar player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"Chip"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Ativo"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inativo"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Padrão para <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"chamadas"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos de mídia compatíveis se torna mais imersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme você move a cabeça para soar mais natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sincronizar permissões"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Conceda ao dispositivo <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> as mesmas permissões de app que você deu ao <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizar permissões do smartphone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Conceda ao relógio as mesmas permissões do app que você concedeu a este smartphone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Alto-falante"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esse app só pode ser aberto em uma única janela"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ativado"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desativado"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desativado"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desativado"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Ativado"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desativado"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Ativada"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desativada"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Transforma as telas claras em escuras e vice-versa"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Aumentar o zoom na tela"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desativado"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desativada"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Ativada"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desativada"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Ativada"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"A senha foi configurada"</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 521acfc..ede92a2 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Após 1 minuto"</item>
     <item msgid="1574040255478150028">"Após 5 minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 1ca5d60..4bc0984 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Agora é um programador!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Não é necessário, já é um programador."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Ative primeiro as Opções de programador."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Apenas os utilizadores administradores podem aceder às definições do programador."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Em serviço"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fora de serviço"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"O ecrã frontal liga-se quando dobra o dispositivo"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Apenas jogos, vídeos e muito mais"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"O ecrã frontal liga-se para apps que impedem o ecrã de ficar inativo"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Deslizar rapidamente para continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Dobre o telemóvel e deslize rapidamente para cima no ecrã frontal para continuar a usar a app ou aguarde alguns segundos até o ecrã ficar bloqueado"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nunca"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"O ecrã frontal é bloqueado quando dobra o dispositivo"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Usar rotação automática"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionados"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Toque e alarmes"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Áudio durante chamadas"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Multimédia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificações e outros sons"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons de multimédia/do sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificações"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Por predefinição, a saída de áudio é determinada por apps individuais"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Aparelho Bluetooth sem nome"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"A pesquisar"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth ativado"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todos"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Veja tudo"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Caneta stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Botão da caneta stylus premido"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de trabalho)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Ligue-se a uma stream de LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Streams de áudio próximas"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Streams de áudio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Ligue-se a uma stream de áudio através do código QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nenhuma stream de áudio próxima."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para selecionar um idioma para cada app, aceda às definições de idioma da app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saiba mais sobre idiomas de apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Alterar o idioma do sistema para %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Adicionar %s aos idiomas preferidos?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Esta ação permite que as apps e os Websites saibam que também prefere este idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"As preferências regionais e as definições do dispositivo vão ser alteradas."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Alterar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s não está disponível"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sábado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Se uma app não suportar preferências regionais, usa as predefinições de local."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Saiba mais acerca das preferências de idioma."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferências adicionais"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Termos de tratamento"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Defina a forma como quer que se dirijam a si"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"As apps podem usar os seus termos de tratamento para personalizarem a forma como se dirigem a si."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Não especificado"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminino"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutro"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remover o idioma selecionado?}other{Remover os idiomas selecionados?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto será apresentado noutro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Não é possível remover todos os idiomas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Localização"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar localização"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Desativada"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Ativada – # app tem acesso à localização}other{Ativada – # apps têm acesso à localização}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada/# app tem acesso à localização}other{Ativada/# apps têm acesso à localização}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"A carregar…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"As apps com a autorização Dispositivos próximos podem determinar a posição relativa dos dispositivos ligados."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"O acesso à localização está desativado para apps e serviços. A localização do dispositivo ainda pode ser enviada para os contactos de resposta a emergências quando liga ou envia uma mensagem de texto para um número de emergência."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Saiba mais acerca das definições de localização."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais acerca das definições de localização"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Alterar acesso localização: Definições &gt; Segurança e privacidade &gt; Controlos privac."</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para obter os melhores resultados, use um protetor de ecrã com a certificação Made for Google. Com outros protetores de ecrã, a impressão digital da criança pode não funcionar."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueio com o relógio"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Ao configurar o Desbloqueio facial e o Desbloqueio por impressão digital, o telemóvel pede a sua impressão digital quando usar uma máscara ou estiver numa área escura.\n\nPode desbloquear com o relógio quando o seu rosto ou impressão digital não forem reconhecidos."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Pode desbloquear com o relógio quando a sua impressão digital não for reconhecida."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Pode desbloquear com o relógio quando o seu rosto não for reconhecido."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Ao configurar o Desbloqueio facial e o Desbloqueio por impressão digital, o telemóvel pede a sua impressão digital quando usar uma máscara ou estiver numa área escura.\n\nO Desbloqueio com o relógio é outra forma fácil de desbloquear este telemóvel, por exemplo, quando tiver os dedos molhados ou o seu rosto não for reconhecido."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"O Desbloqueio com o relógio é outra forma fácil de desbloquear o telemóvel, por exemplo, quando a sua impressão digital não for reconhecida."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"O Desbloqueio com o relógio é outra forma fácil de desbloquear o telemóvel, por exemplo, quando o seu rosto não for reconhecido."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use a impressão digital ou o relógio para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use o rosto ou o relógio para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use o rosto, a impressão digital ou o relógio para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio remoto do Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configure o seu relógio"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"O Desbloqueio com o relógio é outra forma fácil de desbloquear este telemóvel, por exemplo, quando tiver os dedos molhados ou o seu rosto não for reconhecido.\n\nPode usar o relógio para desbloquear este telemóvel quando:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora não"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+    <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 seu relógio tem de estar desbloqueado, no pulso e dentro do alcance deste telemóvel. Não precisa de desbloquear o relógio novamente enquanto estiver no seu pulso."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este telemóvel for desbloqueado, recebe uma notificação no relógio. Se tiver sido desbloqueado acidentalmente, toque na notificação para bloquear novamente o telemóvel."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"O controlo é seu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Pode remover o relógio do Desbloqueio com o relógio em qualquer altura nas Definições"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toque numa notificação"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Deslize rapidamente para cima no ecrã de bloqueio"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Escolha o seu relógio"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relógios disponíveis"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está tudo pronto!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Já pode usar o relógio para desbloquear este telemóvel quando deslizar rapidamente para cima no ecrã de bloqueio ou tocar numa notificação"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Concluir"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueio com o relógio"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Pode usar o relógio para desbloquear este telemóvel quando deslizar rapidamente para cima no ecrã de bloqueio ou tocar numa notificação"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar o Desbloqueio com o relógio, o relógio tem de estar desbloqueado, no pulso, dentro do alcance e ligado a este telemóvel. Se a ligação for interrompida, vai precisar de desbloquear o telemóvel antes de poder usar o Desbloqueio com o relógio.\n\nTenha em atenção:\nSó pode ter um relógio configurado de cada vez. Para adicionar outro relógio, remova primeiro o atual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o Desbloqueio com o relógio"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Segurança"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacidade"</string>
     <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="2274405892301976238">"Mantenha as apps privadas bloqueadas e ocultas"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantenha as apps privadas num espaço separado que pode ocultar ou bloquear"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueio do espaço privado"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Pode desbloquear o espaço privado da mesma forma que desbloqueia o seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usar bloqueio de ecrã do dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueio facial e por impressão digital"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueio por impressão digital"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueio facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toque para configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueio por impressão digital para o espaço privado"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueio facial para o espaço privado"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Formas de desbloquear"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"O mesmo que o bloqueio de ecrã do dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Escolher um novo bloqueio para o espaço privado?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloquear automaticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloqueie automaticamente o espaço privado"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Pode bloquear automaticamente o seu espaço privado se não tiver usado o dispositivo durante um determinado período"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Sempre que o dispositivo é bloqueado"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Após 5 minutos de inatividade"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nunca"</string>
+    <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_delete_title" msgid="3075645119800272800">"Eliminar 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="private_space_unlocked" msgid="9091600948712932046">"Espaço privado desbloqueado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defina um bloqueio de ecrã"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Para usar o seu espaço privado, defina um bloqueio de ecrã no dispositivo"</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="private_space_cancel_label" msgid="379259667396956886">"Cancelar"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurar"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configure um espaço privado"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantenha as apps privadas num espaço separado que pode ocultar ou bloquear"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Como funciona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Pode aceder ao seu espaço privado a partir da parte inferior da sua lista de apps"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"As apps no seu espaço privado são protegidas por um bloqueio"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Quando o espaço privado estiver bloqueado, as notificações das respetivas apps são ocultadas"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"As apps no seu espaço privado não vão aparecer no Gestor de autorizações, no painel de privacidade e noutras definições quando o seu espaço privado estiver bloqueado.\n\nNão é possível mover o seu espaço privado para um novo dispositivo. Tem de configurar outro espaço privado se quiser usá-lo noutro dispositivo.\n\nQualquer pessoa que ligue o seu dispositivo a um computador ou instale apps prejudiciais no seu dispositivo pode conseguir aceder ao seu espaço privado."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"A configurar o espaço privado…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Quando o espaço privado estiver bloqueado, as notificações das respetivas apps são ocultadas"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloqueie o espaço privado para partilhar fotos ou ficheiros de apps do espaço privado"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Algumas apps já estão instaladas no seu espaço privado"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Não foi possível configurar o espaço privado"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar novamente"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Usar o bloq. ecrã para desbloquear espaço privado?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Pode desbloquear o espaço privado da mesma forma que desbloqueia o seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar bloqueio de ecrã"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Escolher novo bloqueio"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tudo pronto!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para aceder ao seu espaço privado, aceda à sua lista de apps e desloque o ecrã para baixo"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Concluir"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Desloque o ecrã para baixo para encontrar o espaço privado"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Escolha um bloqueio para o seu espaço privado"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Pode desbloquear o espaço privado com a sua impressão digital. Por motivos de segurança, esta opção requer um bloqueio de segurança."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Defina um PIN para o espaço privado"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Defina palavra-passe para espaço privado"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Defina um padrão para o espaço privado"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"P/ mostrar espaço privado (não é a exp. do utilizador final)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Abra a app Definições"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Toque em Segurança e privacidade &gt; Espaço privado &gt; Ocultar espaço privado quando bloqueado"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Botão para desativar Ocultar espaço privado quando bloqueado"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Nota para os funcionários da Google: o desenvolvimento desta funcionalidade ainda está em curso"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Poderá também ter de introduzir o token de acesso no outro aparelho."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirme para sincronizar com o conjunto coordenado"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acesso aos contactos e ao histórico de chamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Permitir também o acesso aos contactos e ao histórico de chamadas"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"As informações vão ser usadas para anúncios de chamadas e outros"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Não foi possível ligar a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos disponíveis"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"No Modo de avião"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notificar se existirem redes públicas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notificar quando uma rede pública de alta qualidade estiver disponível"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permitir redes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"O WEP é um protocolo de segurança mais antigo que é menos seguro"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"A sua operadora não permite redes WEP porque são menos seguras"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Ativar o Wi‑Fi automaticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"O Wi‑Fi é reativado quando estiver perto de redes de alta qualidade guardadas, como a sua rede doméstica"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Indisponível porque a localização está desativada. Ative a "<annotation id="link">"localização"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"A procura de Wi-Fi permite que as aplicações e os serviços procurem redes Wi‑Fi em qualquer altura, mesmo quando o Wi-Fi estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Ativar"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Procura de Wi-Fi ativada"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Esta rede usa um protocolo de segurança mais antigo que é menos seguro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"A rede <xliff:g id="NAME">%1$s</xliff:g> foi bloqueada"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Esta rede usa um protocolo de segurança mais antigo chamado WEP, que é menos seguro. Para se ligar mesmo assim, pode permitir redes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"A sua operadora não lhe permite ligar-se a esta rede porque usa um protocolo de segurança mais antigo que é menos seguro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permitir WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Fechar"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opções avançadas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista pendente: Opções avançadas"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"expandir"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Permanecer em Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Não mostrar novamente"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Ligar"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ativado"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Ligado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"A ligar a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"A ligar…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Não foi possível estabelecer ligação à rede"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"A rede não está ao alcance"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Não foi possível esquecer a rede"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Guardar"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Não foi possível guardar a rede"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Dados móveis"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – A carregar"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – A carregar"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Ligação à zona Wi-Fi"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Intensidade da ligação"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nenhuma palavra-passe definida."</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nome da zona Wi-Fi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Palavra-passe da zona Wi-Fi"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda do PA"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desativar a zona Wi-Fi automaticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Quando não existem dispositivos ligados"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Expandir compatibilidade"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Apresentar equilíb. de brancos"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Des. veloc. frames predef. p/ jogos"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Desative a limitação da velocidade de frames máxima para jogos a <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"A Atenção ao ecrã utiliza a câmara frontal para ver se alguém está a olhar para o ecrã. Funciona no dispositivo e as imagens nunca são armazenadas nem enviadas para a Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ative a atenção ao ecrã"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantenha o ecrã ligado enquanto estiver a olhar para ele."</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Um limite de tempo do ecrã mais longo vai aumentar a utilização da bateria."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A câmara está bloqueada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"A câmara tem de ser desbloqueada para a deteção facial"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A câmara tem de estar desbloqueada para utilizar a atenção ao ecrã"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ranhura para SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ranhura para SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Para ver, escolha a rede guardada"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MINUTOS"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versão de PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nível da bateria"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Coletivas"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Definições coletivas"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Guardar"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"O campo Nome não pode estar vazio."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"O APN não pode estar vazio."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"O campo MCC tem de ter 3 dígitos."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"O campo MNC tem de ter 2 ou 3 dígitos."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"O operador não permite a adição de APNs do tipo %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"O campo MMSC tem de ser válido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"A restaurar predefinições de APN"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Repor predefinição"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Reposição de predefinições de APN concluída."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Repor"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"O Bluetooth e o Wi-Fi foram repostos"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Apagar eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Esta ação não cancela qualquer plano de serviços móveis. Para transferir SIMs de substituição, contacte o seu operador."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Repor definições"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Quer repor todas as definições de rede? Não é possível anular esta ação."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Repor todas as definições de rede e apagar os eSIMs? Não é possível anular esta ação."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Quer repor?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"A reposição de rede não está disponível para este utilizador"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"As definições de rede foram repostas"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Não é possível apagar os SIMs"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Não é possível apagar os eSIMs devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Apagar todos os dados (repor)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Apagar todos os dados (repor)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Outros dados do utilizador"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Esta ação não cancela o seu plano de serviços móveis."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Serão eliminadas todas as informações pessoais e apps transferidas. Não é possível anular esta ação."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Todas as suas informações pessoais, incluindo apps e SIMs transferidos, serão eliminadas. Não é possível anular esta ação."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Apagar todos os dados?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"A reposição de fábrica não está disponível para este utilizador."</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"A apagar…"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Zona Wi-Fi, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Não está a partilhar Internet com outros dispositivos."</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desativado"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Ligação (à Internet) via telemóvel"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Não utilizar a zona Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Partilhar a Internet apenas através de USB e Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Apenas partilhe a Internet através de Bluetooth."</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Partilhar a Internet apenas através de Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Partilhar a Internet apenas através de USB e Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Partilhar a Internet apenas através de USB e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Partilhar a Internet apenas através de Bluetooth e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Partilhar a Internet apenas através de USB, Bluetooth e Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Ligação USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Ligação Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ligação Ethernet via telemóvel"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use uma zona Wi-Fi e uma ligação (à Internet) via telemóvel para disponibilizar Internet a outros dispositivos através de Wi-Fi ou da sua ligação móvel de dados. As apps também podem criar uma zona Wi-Fi para partilhar conteúdo com dispositivos próximos."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rede móvel"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plano de telemóvel"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"App de SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Alterar aplicação de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> como a aplicação de SMS predefinida?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Alterar assistente Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerir as ligações de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerir as ligações de rede?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operador SIM desconhecido"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"A <xliff:g id="OPERATOR">%1$s</xliff:g> não possui um Website de gestão conhecido"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insira o cartão SIM e reinicie"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Ligue-se à Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Pedidos de localização recentes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Local. para perfil de trabalho"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Autorizações de localização das apps"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Limpar acesso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controlos"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forçar paragem"</string>
+    <string name="archive" msgid="9074663845068632127">"Arquivar"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurar"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tamanho da app"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Apps de armazenamento USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Não foi possível calcular o tamanho do pacote."</string>
     <string name="version_text" msgid="7628938665256107608">"versão <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mover"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Falha ao arquivar"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"App <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> arquivada"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Falha no restauro"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"A restaurar a app <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Já existe outra migração em curso."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Não existe espaço de armazenamento suficiente."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"A aplicação não existe."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado no ecrã disponível"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gerir teclados no ecrã"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="show_ime" msgid="4334255501724746849">"Usar o teclado no ecrã"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Manter no ecrã enquanto o teclado físico estiver ativo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rejeição"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Ative as Teclas de rejeição para a acessibilidade do teclado físico"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Teclas aderentes"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Ative as teclas aderentes para a acessibilidade do teclado físico"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos de teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostre a lista de atalhos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas do perfil de trabalho"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenar por tempo de utiliz."</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenar por h da últ. utiliz."</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenar por nome da app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Última utilização"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Última utilização"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nunca"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Tempo de utilização"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Acessibilidade"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Definições de acessibilidade"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar mesmo assim"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Definições de ampliação"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ampliar com três toques"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Amplie com um atalho"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Amplie com um atalho e três toques"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Acerca de <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Toque duas vezes com dois dedos no ecrã 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="860548190334486449">"Para iniciar e parar a ampliação, toque duas 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Para utilizar uma funcionalidade de acessibilidade, 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Definições do botão"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Definições do botão"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Atalho para <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Botão Acessibilidade"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto de acessibilidade"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Toque duas vezes com dois dedos no ecrã"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"toque duas vezes com dois dedos no ecrã"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque rapidamente {0,number,integer} vezes no ecrã com dois dedos"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Toque três vezes no ecrã"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Saiba mais acerca do gesto e botão Acessibilidade"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Usar o botão Acessibilidade. O gesto não está disponível com a navegação com 3 botões."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Aceda rapidamente às funcionalidades de acessibilidade"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para começar"</b>\n"1. Aceda às definições de acessibilidade\n2. Selecione uma funcionalidade e toque no atalho\n3. Escolha se quer usar um botão ou um gesto para aceder à funcionalidade"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para começar"</b>\n"1. Aceda às definições de acessibilidade\n2. Selecione uma funcionalidade e toque no atalho\n3. Escolha o botão para aceder à funcionalidade"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para começar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Aceda às definições de acessibilidade&lt;br/&gt; {1,number,integer}. Selecione uma funcionalidade e toque no atalho&lt;br/&gt; {2,number,integer}. Escolha se quer usar um botão ou um gesto para aceder à funcionalidade&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para começar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Aceda às definições de acessibilidade&lt;br/&gt; {1,number,integer}. Selecione uma funcionalidade e toque no atalho&lt;br/&gt; {2,number,integer}. Escolha o botão para aceder à funcionalidade&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Utilize o botão ou o gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Localização"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamanho"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Botão de ligar termina chamada"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Ponteiro do rato grande"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Torne o ponteiro do rato mais visível"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Tornar todas as apps escuras"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Aplica-se a apps sem o tema escuro. Algumas apps podem ter problemas, como cores invertidas."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remover animações"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduza o movimento no ecrã"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Áudio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorizar as suas interações com uma app ou um sensor de hardware e interagir com apps em seu nome."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Recusar"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Parar"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancelar"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Parar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Toque em <xliff:g id="STOP">%1$s</xliff:g> para parar o serviço <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Manter"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Desativar o serviço <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nenhum serviço instalado"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nenhum serviço selecionado"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição fornecida."</string>
     <string name="settings_button" msgid="2195468788019730377">"Definições"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade à luz, fotofobia, tema escuro, enxaqueca, dor de cabeça, modo de leitura, modo noturno, reduzir o brilho, ponto branco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de utilização, facilidade de acesso, ajuda, assistência"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visão, audição, cegueira, surdez, limitação motora, destreza, de assistência, assistência, facilidade de utilização, facilidade de acesso, mão, ajuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Ampliador da janela, zoom, ampliação, visão reduzida, ampliar, aumentar"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Legendas, Transcrição instantânea, dificuldade de audição, perda de audição, CART, conversão de voz para texto"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"incapacidade motora, rato"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparelhos auditivos, dificuldade de audição, perda de audição, implantes cocleares, dispositivos de amplificação, processadores de som"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"limitação motora, rato, rato externo, rato controlado pela cabeça, rato adaptativo, cadeira de rodas, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparelhos auditivos, dificuldade de audição, perda de audição, implantes cocleares, dispositivos de amplificação, processadores de som, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"dificuldade de audição, perda de audição, legendas, teletipo"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"três botões"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, limitação motora, idoso, artrite, LER, derrame, tremor, esclerose múltipla, paralisia cerebral, paralisia, tremores, lesão por esforço repetitivo, mão"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, idoso"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impressão"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desativado"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 serviço de impressão ativado}other{# serviços de impressão ativados}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Veja as apps com maior utilização"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Carregamento otimizado para proteger a sua bateria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Para ajudar a aumentar a vida útil da bateria, o carregamento é otimizado"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Carregamento otimizado para proteger a sua bateria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para ajudar a aumentar a vida útil da bateria, o carregamento é otimizado enquanto está na estação de carregamento"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Carregamento otimizado para proteger a sua bateria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para ajudar a aumentar a vida útil da bateria, o carregamento é otimizado enquanto está na estação de carregamento"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"A carregar até à capacidade máxima"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para proteger a sua bateria, o carregamento vai ser otimizado da próxima vez que o tablet estiver na estação de carregamento"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Saiba mais sobre o carregamento pausado"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Retomar carregamento"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclui atividade em segundo plano de potência elevada"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remover"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancelar"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Carregar até carga completa"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema com o acessório de carregamento"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Saiba mais sobre o carregamento com um carregador incompatível"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gerir apps automaticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"agora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gráfico de utilização da bateria"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gráfico de utilização da bateria por dia"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gráfico de utilização da bateria por hora"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Percentagem do nível da bateria de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> a <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Utilização da bateria desde o último carregamento completo"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Utilização da bateria: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tempo ao ecrã desde o último carregamento completo"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sinal para marcação de emergência"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Definir o comportamento quando é efetuada uma chamada de emergência"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Cópia de segurança"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Ativada"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desativada"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Fazer cópia de segurança e restaurar"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dados pessoais"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Fazer cópia de segurança dos dados"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nome"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Endereço do servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Encriptação PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"segredo L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Chave IPSec pré-partilhada"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificado do utilizador IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificado da AC IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificado do servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostrar opções avançadas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domínios de pesquisa DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidores DNS (por exemplo, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rotas de encaminhamento (por exemplo, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nome de utilizador"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Palavra-passe"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Guardar informações sobre a conta"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(não utilizado)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(não verificar servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(recebido do servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Este tipo de VPN não pode estar sempre ligado"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"A opção VPN sempre ativa só é compatível com endereços de servidor numéricos"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"É necessário especificar um servidor DNS para a opção VPN sempre ativa"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Os endereços do servidor DNS têm de ser numéricos para a opção VPN sempre ativa"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"As informações introduzidas não são compatíveis com a opção VPN sempre ativa"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancelar"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ignorar"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear ligações sem VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Quer exigir uma ligação VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Insegura. Atualize para uma VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Falha ao iniciar a VPN não suportada."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre ligado. O tráfego de rede só será permitido quando ligado a esta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP de servidor e DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertas AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receber boletins acerca do rapto de crianças"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetir"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Ativar gestor de chamadas"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permitir que este serviço gira a forma como as suas chamadas são efetuadas."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gestor de chamadas"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertas de emergência sem fios"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operadores de rede"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nomes dos pontos de acesso (APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"carteira"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pagar, tocar, pagamentos"</string>
     <string name="keywords_backup" msgid="707735920706667685">"cópia de segurança, fazer uma cópia de segurança"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"rosto, desbloquear, autenticação, iniciar sessão"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"rosto, desbloquear, autenticar, iniciar sessão, impressão digital, biometria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versão de prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ativar sons"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Legendas instantâneas"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Multimédia com legendas automáticas"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altifalantes do telemóvel"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Altifalantes do tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Altifalantes do dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Auscultadores com fios"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"O áudio de conteúdos multimédia compatíveis torna-se mais envolvente"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Desativado"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"O que quer que o ecrã de bloqueio mostre?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Conversas recentes removidas"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversa removida"</string>
     <string name="clear" msgid="5092178335409471100">"Limpar"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Limpar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"As conversas com prioridade e modificadas são apresentadas aqui"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Quando marcar uma conversa como tendo prioridade ou efetuar qualquer outra alteração às conversas, as mesmas aparecem aqui. \n\nPara alterar as definições de conversa, \ndeslize rapidamente para baixo a partir da parte superior do ecrã para abrir o painel pendente e, em seguida, toque sem soltar numa conversa."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizar"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desativada"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fixação de apps"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"A fixação de apps permite-lhe manter a app atual visível até a soltar. Esta funcionalidade pode ser utilizada, por exemplo, para permitir que um amigo fidedigno jogue um jogo específico."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Quando uma app está fixada, a mesma pode abrir outras apps e os dados pessoais podem ficar acessíveis. \n\nPara usar a fixação de apps: 	\n1. Ative a fixação de apps 	\n2. Abra a Vista geral 	\n3. Toque no ícone da app na parte superior do ecrã e, em seguida, toque em Fixar"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Quando uma app está fixada, a mesma pode abrir outras apps e os dados pessoais podem ficar acessíveis. \n\nSe quiser partilhar o seu dispositivo com alguém de forma segura, opte por um utilizador convidado como alternativa. \n\nPara usar a fixação de apps: 	\n1. Ative a fixação de apps 	\n2. Abra a Vista geral 	\n3. Toque no ícone da app na parte superior do ecrã e, em seguida, toque em Fixar"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Quando uma app está fixada, esta pode abrir outras apps e os dados pessoais podem ficar acessíveis. \n\nPara usar a fixação de apps: 	\n{0,number,integer}. Ative a fixação de apps 	\n{1,number,integer}. Abra a Vista geral 	\n{2,number,integer}. Toque no ícone da app na parte superior do ecrã e, de seguida, toque em Fixar"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Quando uma app está fixada, esta pode abrir outras apps e os dados pessoais podem ficar acessíveis. \n\nSe quiser partilhar o seu dispositivo com alguém de forma segura, opte por um utilizador convidado como alternativa. \n\nPara usar a fixação de apps: 	\n{0,number,integer}. Ative a fixação de apps 	\n{1,number,integer}. Abra a Vista geral 	\n{2,number,integer}. Toque no ícone da app na parte superior do ecrã e, de seguida, toque em Fixar"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Quando uma app está afixada: \n\n•		Os dados pessoais poderão ficar acessíveis \n		(como contactos e conteúdo do email) \n•		A app afixada poderá abrir outras apps \n\nUtilize a afixação de apps apenas com pessoas em quem confia."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pedir padrão de desbloqueio antes de soltar"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Pedir PIN antes de soltar"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Definições de apps não usadas"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausar atividade de apps, se não usadas"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remova autorizações, elimine ficheiros temporários e pare notificações"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gerir app, se não for usada"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remova autorizações, elimine ficheiros temporários, pare notificações e arquive a app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Todas as apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Apps instaladas"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Apps instantâneas"</string>
@@ -3598,7 +3771,7 @@
     <string name="apps_storage" msgid="643866814746927111">"Armazenamento de apps"</string>
     <string name="usage_access" msgid="5487993885373893282">"Acesso de utilização"</string>
     <string name="permit_usage_access" msgid="179630895262172674">"Permitir acesso de utilização"</string>
-    <string name="time_spent_in_app_pref_title" msgid="25327097913383330">"Tempo ao ecrã"</string>
+    <string name="time_spent_in_app_pref_title" msgid="25327097913383330">"Tempo de utilização"</string>
     <string name="usage_access_description" msgid="8547716253713890707">"O acesso de utilização permite a uma aplicação monitorizar que outras aplicações está a utilizar e com que frequência, bem como o operador e as definições de idioma, entre outros detalhes."</string>
     <string name="memory_settings_title" msgid="6582588646363308430">"Memória"</string>
     <string name="always_running" msgid="9012705720688200252">"Sempre em execução (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Disponível"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memória utilizada pelas aplicações"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app usou a memória nos(as) últimos(as) {time}}other{# apps usaram a memória nos(as) últimos(as) {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Ativar perfis de utilização de memória"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"A criação de perfis de utilização de memória exige recursos de sistema adicionais."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Criação de perfis de memória desativada"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequência"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Utilização máxima"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Sem dados usados"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Sobrepor a outras apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permitir sobreposição a outras apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permita que esta app se sobreponha a outras apps que esteja a utilizar. Esta app poderá ver onde toca ou alterar o que é apresentado no ecrã."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Altere a saída de multimédia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permitir à app alterar a saída de multimédia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permita que esta app escolha qual o dispositivo ligado que transmite áudio ou vídeo de outras apps. Se permitir, esta app pode aceder a uma lista de dispositivos disponíveis, como auscultadores e altifalantes, e escolher o dispositivo de saída a usar para fazer stream ou transmitir áudio ou vídeo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acesso a todos os ficheiros"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Melhorar ativação por voz"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Este dispositivo usa informações privadas para melhorar o modelo de ativação por voz. As apps podem receber atualizações resumidas que são agregadas a partir de muitos utilizadores para manter a privacidade e melhorar o modelo para todos.\n\n"<a href="">"Saiba mais sobre as informações privadas"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Aviso de dados de <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limite de dados de <xliff:g id="ID_1">^1</xliff:g>."</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Aviso de dados de <xliff:g id="ID_1">^1</xliff:g>/limite de dados de <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"A contagem de dados do operador pode ser diferente da contagem do dispositivo"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclui dados utilizados por redes de operadores"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> utilizado(s)"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Definir aviso de dados"</string>
@@ -3833,7 +4016,6 @@
     <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 por <xliff:g id="ID_1">^1</xliff:g> agora."</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Atualizado agora."</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Ver plano"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ver detalhes"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Poupança de dados"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dados sem restrições"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia na utilização da bateria"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Mosaicos de definições rápidas do programador"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Desative o limite de tempo da autorização adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Desative a revogação automática de autorizações adb para os sistemas que não tenham voltado a ligar-se dentro do período predefinido (7 dias) ou configurado pelo utilizador (1 dia, no mínimo)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensores desativados"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Definições do perfil de trabalho"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Pesquisar contactos do diretório de trabalho em apps pessoais"</string>
@@ -3952,7 +4134,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 2 botões"</string>
-    <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize rapidamente para cima no botão do ecrã principal. Para ver todas as apps, volte a deslizar rapidamente para cima. Para retroceder, toque no botão Anterior."</string>
+    <string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize rapidamente para cima no botão página inicial. Para ver todas as apps, volte a deslizar rapidamente para cima. Para retroceder, toque no botão Anterior."</string>
     <string name="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança e emergência"</string>
     <string name="emergency_dashboard_summary" msgid="401033951074039302">"Urgência SOS, informações médicas, alertas"</string>
     <string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navegação por gestos"</string>
@@ -3962,9 +4144,9 @@
     <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 do ecrã principal para invocar a app de assistente digital."</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>
     <string name="high_label" msgid="357503396626018487">"Elevada"</string>
     <string name="left_edge" msgid="1513576842959071849">"Extremidade esquerda"</string>
@@ -3974,7 +4156,7 @@
     <string name="gesture_settings_activity_title" msgid="2025828425762595733">"Sensibilidade da navegação por gestos"</string>
     <string name="button_navigation_settings_activity_title" msgid="7335636045504461813">"Navegação com botões"</string>
     <string name="keywords_gesture_navigation_settings" msgid="667561222717238931">"navegação por gestos, sensibilidade do botão anterior, gesto para voltar"</string>
-    <string name="keywords_button_navigation_settings" msgid="7888812253110553920">"navegação, botão do ecrã principal"</string>
+    <string name="keywords_button_navigation_settings" msgid="7888812253110553920">"navegação, botão página inicial"</string>
     <string name="one_handed_title" msgid="2584414010282746195">"Modo para uma mão"</string>
     <string name="one_handed_mode_enabled" msgid="3396864848786359651">"Usar o modo para uma mão"</string>
     <string name="one_handed_mode_shortcut_title" msgid="1847871530184067369">"Atalho do modo para uma mão"</string>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Preenchimento automático"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Serviço de preenchimento automático predefinido"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Palavras-passe"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Palavras-passe, chaves de acesso e serviços de dados"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Fornecedores adicionais"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# palavra-passe}other{# palavras-passe}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automático, preenchimento, preenchimento automático, palavra-passe"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Palavras-passe, chaves de acesso e serviços de dados"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Desativar todos os serviços?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; As palavras-passe, as chaves de acesso e outras informações guardadas não vão estar disponíveis para preenchimento automático quando iniciar sessão"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Altere o seu serviço preferido para 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_enable_confirmation_message_title" msgid="1037501792652277829">"Usar o %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Só pode ter 5 serviços ativados"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desative pelo menos 1 serviço para adicionar outro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"O %1$s usa o que está no ecrã para determinar o que pode ser preenchido automaticamente."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de palavras-passe, chaves de acesso e serviços de dados"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Pode ter até 5 palavras-passe, chaves de acesso e serviços de dados ativos em simultâneo. Desative um serviço para adicionar mais."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de palavras-passe, chaves de acesso e serviços de dados"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Pode ter até 5 palavras-passe, chaves de acesso e serviços de dados ativos em simultâneo. Desative um serviço para adicionar mais."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desativar"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Preenchimento automático"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nível de registo"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"As alterações de compatibilidade das apps apenas podem ser modificadas para apps depuráveis. Instale uma app depurável e tente novamente."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Esta definição depende de outra."</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Conta"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d contas"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nome do dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informações básicas"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legal e regulamentar"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permita que esta app seja iniciada quando for lida uma etiqueta NFC.\nSe esta autorização for ativada, a app vai ficar disponível como opção sempre que for detetada uma etiqueta."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Reproduzir multimédia:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Reproduzir <xliff:g id="LABEL">%s</xliff:g> em"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"O áudio vai ser ouvido em"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Este dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Indisponível durante as chamadas."</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender chamada em"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Desativar som"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Para ativar, comece por alterar \"Premir sem soltar o botão ligar/desligar\" para o menu ligar/desligar."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalhes da rede"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"O nome do seu dispositivo é visível para as apps do telemóvel. 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="devices_title" msgid="649715719278562515">"Dispositivos"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Escolher rede"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Desligada"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nome"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Cor (usada por apps compatíveis)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Guardar"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Usar SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usar este SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desativado"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para desativar este SIM, remova o cartão SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Toque para ativar o operador <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Apagar SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferido"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Alterar o modo de funcionamento em rede"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo de rede preferido"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Consulte o seu fornecedor de serviços de rede para obter preços."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Utilização de dados da aplicação"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Modo de rede inválido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nomes dos Pontos de Acesso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Indisponível quando ligado a <xliff:g id="CARRIER">%1$s</xliff:g>."</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Mudar para <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Mudar para a utilização do cartão SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Usar o operador <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Só pode ter um SIM ativo de cada vez.\n\nMudar para o operador <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> não cancela o seu serviço no operador <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Só pode ter 1 eSIM ativo de cada vez.\n\nMudar para o operador <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> não cancela o seu serviço do operador <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Só pode ter um SIM ativo de cada vez.\n\nMudar não cancela o seu serviço no operador <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Pode usar 2 SIMs em simultâneo. Para utilizar o operador <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desative outro SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Mudar para <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desativar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Não, obrigado"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancelar"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Mudar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desativar"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Não é possível ativar o SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Experimente ativar o SIM novamente. Se o problema continuar, reinicie o dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configure o seu SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Defina as preferências da sua rede móvel para usar vários SIMs neste dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etiquete os seus SIMs"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Vão ser apresentadas estas etiquetas quando fizer chamadas, enviar mensagens de texto e usar dados, bem como nas Definições"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etiqueta do SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiqueta"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Selecione os SIM a usar"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Pode usar 2 SIMs em simultâneo"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Defina os seus SIMs principais"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Escolha quais os SIMs a usar por predefinição para chamadas, mensagens de texto e dados"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Os seus SIMs principais"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Chamadas"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mensagens de texto"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Comutação automática de dados"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Use dados de qualquer um dos SIMs, consoante a cobertura e a disponibilidade"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Apenas de dados"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configurar"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Seguinte"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rede móvel"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de telefone"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Etiqueta e cor do SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ativação da rede"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Mudança de operador"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"O operador <xliff:g id="CARRIER_NAME">%1$s</xliff:g> está ativo"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para utilizar dados móveis, funcionalidades de chamadas e SMS posteriormente, aceda às definições de rede."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Apagar este eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Se apagar este SIM, o serviço do operador <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> será removido deste dispositivo.\n\nO serviço do operador <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> não é cancelado."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Apagar"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"A apagar SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Não é possível apagar o SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Não é possível apagar este SIM devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Estabeleça ligação ao dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"A app <xliff:g id="APPNAME">%1$s</xliff:g> quer utilizar uma rede Wi-Fi temporária para estabelecer ligação ao seu dispositivo."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nenhum dispositivo encontrado. Certifique-se de que os dispositivos estão ativados e disponíveis para ligação."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Chamadas de emergência"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"As chamadas de emergência através da funcionalidade Chamadas Wi-Fi não são suportadas pelo seu operador.\nO dispositivo muda automaticamente para uma rede móvel para efetuar uma chamada de emergência.\nApenas é possível efetuar chamadas de emergência em áreas com cobertura de rede."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Utilize o Wi‑Fi nas chamadas para melhorar a qualidade."</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Fazer uma cópia de segurança das chamadas"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Se o <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> estiver indisponível ou em roaming, utilize o SIM dos dados móveis para chamadas do <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"fazer uma cópia de segurança das chamadas"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mensagem MMS recebida"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Não é possível enviar a mensagem MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Toque para permitir mensagens MMS no operador <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> quando os dados móveis estão desativados."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"As suas informações da política de trabalho"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Definições geridas pelo seu administrador de TI."</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Reiniciar com páginas de 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Reinicie com o kernel compatível com pág. de 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reiniciar com kernel compatível com páginas de 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVISO: algumas aplicações podem não ser compatíveis com este modo. O dispositivo vai ser reiniciado após a confirmação."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reiniciar com kernel compatível com páginas de 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"O dispositivo vai ser reiniciado após a confirmação."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Falha ao fazer a atualização para o kernel compatível com páginas de 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"A aplicar a alteração"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Controlador do Relatório de erro"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina que aplicação processa o atalho para Relatório de erro no seu dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Pessoal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Para retomar rapidamente a reprodução, o leitor de multimédia mantém-se aberto nas Definições rápidas"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostrar multimédia no ecrã de bloqueio"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Para retomar rapidamente a reprodução, o leitor de multimédia mantém-se aberto no ecrã de bloqueio"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostrar recomendações de multimédia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostrar recomendações de multimédia do Assistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Com base na sua atividade"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ocultar leitor"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostrar leitor"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Ativo"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inativo"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /Predefinição para <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"chamadas"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos multimédia compatíveis torna-se mais envolvente"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme move a cabeça para soar mais natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Autorizações de sincronização"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Conceda ao dispositivo <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> as mesmas autorizações da app que permitiu no dispositivo <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizar autorizações do telemóvel"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Conceda ao seu relógio as mesmas autorizações da app que concedeu a este telemóvel"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altifalante"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta app só pode ser aberta em 1 janela"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Funcionalidade ativada"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Funcionalidade desativada"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Atalho desativado"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desativado"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Ativado"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desativado"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Ativado"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desativado"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Torna escuros os ecrãs claros e torna claros os ecrãs escuros"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Aumente o zoom no ecrã"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desativado"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desativado"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Ativado"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desativado"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Ativado"</string>
+    <string name="about_phone_device_name_warning" msgid="3243226572404472381">"O nome do seu dispositivo é visível para as apps instaladas por si. Também pode ser visto por outras pessoas quando se liga a dispositivos Bluetooth ou a uma rede Wi-Fi, assim como quando configura uma zona Wi-Fi."</string>
+    <string name="grammatical_gender_title" msgid="8584242850477270828">"Género gramatical"</string>
+    <string name="grammatical_gender_dialog_title" msgid="8754048592099871587">"Selecione o género gramatical"</string>
+    <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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"A palavra-passe já está configurada"</string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index b11e99e..2e9649b 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Depois de um minuto"</item>
     <item msgid="1574040255478150028">"Depois de cinco minutos"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 662ceb9..05970b2 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Você agora é um desenvolvedor!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Não é necessário. Você já é um desenvolvedor."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Primeiro, ative as opções do desenvolvedor."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Apenas os usuários administradores podem acessar as configurações do desenvolvedor."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistema"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Em serviço"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Fora de serviço"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"O display frontal é ligado ao dobrar o dispositivo"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Apenas jogos, vídeos e mais"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"O display frontal é ativado para apps que impedem a tela de ficar inativa"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Deslize para cima para continuar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Dobre o smartphone e deslize para cima no display frontal para continuar usando o app ou aguarde alguns segundos para que a tela seja bloqueada"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nunca"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"O display frontal é bloqueado ao dobrar o dispositivo"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Usar o giro automático"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relacionadas"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Toque e alarmes"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Áudio durante ligações"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Mídia"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificações e outros sons do sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sons de mídia e do sistema"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificações"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Por padrão, a saída de áudio é determinada por apps individuais"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispositivo Bluetooth sem nome"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Pesquisar"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth ativado"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todos"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Mostrar tudo"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pressionar o botão da stylus"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (perfil de trabalho)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Conectar a um stream de LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Streams de áudio por perto"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Streams de áudio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Conectar a um stream de áudio usando um QR code"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nenhum stream de áudio por perto foi encontrado."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para selecionar um idioma para cada app, acesse as configurações de idioma deles."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Saiba mais sobre idiomas de apps"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Mudar o idioma do sistema para %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Adicionar o %s aos idiomas favoritos?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Isso permite que os apps e sites saibam que você prefere esse idioma."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"As configurações e as preferências regionais do seu dispositivo vão mudar."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Mudar"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s indisponível"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sábado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Se um app não oferecer suporte a preferências regionais, ele usará as configurações padrão de localidade."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Saiba mais sobre as preferências de idioma."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferências adicionais"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Termos de tratamento"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Definir como quer que o app se dirija a você"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Os apps podem usar termos de tratamento para personalizar a forma como se dirigem a você."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Não especificado"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminino"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutro"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remover idioma selecionado?}one{Remover idioma selecionado?}other{Remover idiomas selecionados?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto será exibido em outro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Não é possível remover todos os idiomas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Localização"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Usar localização"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Configuração desativada"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Ativada: # app tem acesso à localização}one{Ativada: # app tem acesso à localização}other{Ativada: # apps têm acesso à localização}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ativada / # app tem acesso à localização}one{Ativada / # app tem acesso à localização}other{Ativada / # apps têm acesso à localização}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Carregando…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Apps com permissão para encontrar dispositivos por perto podem determinar a posição relativa dos dispositivos conectados."</string>
     <string name="location_settings_footer_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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Saiba mais sobre as configurações de localização."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Saiba mais sobre as configurações de localização"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Mude o acesso à localização em \"Configurações &gt; Segurança e privacidade &gt; Controles de privacidade\""</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para conseguir melhores resultados, use uma película com certificação Made For Google. A impressão digital da criança pode não funcionar com outras películas."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Desbloqueio do relógio"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Quando o Desbloqueio facial e por impressão digital são configurados, a impressão é solicitada para desbloquear o smartphone quando você está em uma área escura ou usando uma máscara.\n\nVocê pode usar o relógio quando seu rosto ou sua impressão digital não forem reconhecidos."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Você pode desbloquear o smartphone com o relógio quando sua impressão digital não é reconhecida."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Você pode desbloquear o smartphone com o relógio quando seu rosto não é reconhecido."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Quando o Desbloqueio facial e por impressão digital forem configurados, a impressão será solicitada para desbloquear o smartphone sempre que você estiver em uma área escura ou usando uma máscara.\n\nO Desbloqueio do relógio é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando seus dedos estiverem molhados ou seu rosto não for reconhecido."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"O Desbloqueio do relógio é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando sua impressão digital não for reconhecida."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"O Desbloqueio do relógio é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando seu rosto não for reconhecido."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Use a impressão digital ou o relógio para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Use o rosto ou o relógio para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Use o rosto, a impressão digital ou o relógio para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Desbloqueio do Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Relógio adicionado"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o relógio"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"O \"Desbloqueio do relógio\" é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando os dedos estiverem molhados ou o rosto não for reconhecido.\n\nVocê pode usar o relógio para desbloquear o smartphone quando:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora não"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+    <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 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>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Deslize para cima na tela de bloqueio"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Escolha seu relógio"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relógios disponíveis"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está tudo pronto!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Agora, você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Concluído"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueio do relógio"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar o \"Desbloqueio do relógio\", é necessário que o relógio esteja desbloqueado, no pulso, perto de você e conectado a este smartphone. Se a conexão for interrompida, você precisará desbloquear o smartphone antes de usar o recurso.\n\nNão se esqueça:\nSó é possível configurar um relógio por vez. Para adicionar outro, remova o atual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o \"Desbloqueio do relógio\""</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Segurança"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacidade"</string>
     <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="2274405892301976238">"Mantenha apps particulares bloqueados e ocultos"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mantenha a privacidade de apps em um espaço separado que você pode ocultar ou bloquear"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Bloqueio do Espaço particular"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Você pode desbloquear o Espaço particular da mesma maneira que desbloqueia seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Usar o bloqueio de tela do dispositivo"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Desbloqueio facial e por impressão digital"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Desbloqueio por impressão digital"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Desbloqueio facial"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Toque para configurar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Desbloqueio por impressão digital para o espaço privado"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Desbloqueio facial para o espaço privado"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Formas de desbloquear a tela"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Igual ao bloqueio de tela do dispositivo"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Escolher outro bloqueio para o Espaço particular?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Bloquear automaticamente"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Bloquear o espaço privado automaticamente"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Você poderá bloquear seu espaço privado automaticamente se não usar o dispositivo por um período de tempo"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Sempre que o dispositivo for bloqueado"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Depois de cinco minutos de inatividade"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nunca"</string>
+    <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_delete_title" msgid="3075645119800272800">"Excluir o 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="private_space_unlocked" msgid="9091600948712932046">"Espaço privado desbloqueado"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Defina um bloqueio de tela"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Cancelar"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurar"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configurar um Espaço particular"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mantenha a privacidade de apps em um espaço separado que você pode ocultar ou bloquear"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Como funciona"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Você pode acessar o Espaço particular na parte de baixo da sua lista de apps"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Apps no Espaço particular ficam protegidos por um bloqueio"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"As notificações de apps no seu Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Os apps do seu 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.\n\nSeu Espaço particular não pode ser movido para um novo dispositivo. Você precisará configurar outro Espaço particular se quiser usá-lo em outro dispositivo.\n\nQualquer usuário que conectar seu dispositivo a um computador ou instalar apps perigosos no dispositivo conseguirá acessar seu Espaço particular."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Configurando o espaço particular…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notificações de apps no Espaço particular ficam ocultas quando ele está bloqueado"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Desbloqueie o espaço privado para compartilhar fotos ou arquivos de apps dele"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Alguns apps já estão instalados no seu Espaço particular"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Não foi possível configurar o Espaço particular"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tentar de novo"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Usar o bloq. de tela p/ abrir o Espaço particular?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Você pode desbloquear seu Espaço particular da mesma maneira que desbloqueia seu dispositivo ou escolher um bloqueio diferente"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Usar o bloqueio de tela"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Escolher novo bloqueio"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tudo pronto!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para acessar o Espaço particular, abra sua lista de apps e role até a parte de baixo dela"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Concluído"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Role a tela para baixo para encontrar o Espaço particular"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Escolher um bloqueio para seu Espaço particular"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"É possível desbloquear seu espaço particular com sua impressão digital. Por motivos de segurança, essa opção exige um bloqueio de backup."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Defina um PIN para seu espaço privado"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Defina uma senha para seu espaço privado"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Defina um padrão para seu espaço privado"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Para mostrar o Espaço particular (UX não final)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Abra o app Configurações"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Toque em \"Segurança e privacidade &gt; Espaço particular &gt; Ocultar o Espaço particular quando bloqueado\""</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Botão \"Ocultar o Espaço particular quando bloqueado\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Observação para Googlers: esse recurso ainda está em desenvolvimento"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Talvez seja necessário digitar esta senha no outro dispositivo."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirme para parear com o conjunto coordenado"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acesso aos seus contatos e seu histórico de ligações"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Também permite o acesso a contatos e ao histórico de ligações"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"As informações serão usadas para fazer o anúncio de ligações e muito mais"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Não foi possível conectar ao <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos encontrados"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"No modo avião"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notificar quando houver redes públicas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notificar quando uma rede pública de alta qualidade estiver disponível."</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permitir redes WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP é um protocolo de segurança mais antigo que oferece menos proteção"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Sua operadora não permite redes WEP porque elas são menos seguras"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Ativar o Wi‑Fi automaticamente"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Reativar o Wi‑Fi automaticamente perto de redes salvas de alta qualidade, como sua rede doméstica."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Indisponível porque a localização está desativada. Ative a "<annotation id="link">"localização"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"A busca por Wi-Fi permite que apps e serviços procurem redes Wi‑Fi a qualquer momento, mesmo quando o Wi‑Fi está desativado. Essa configuração pode ser usada, por exemplo, para melhorar recursos e serviços baseados na localização."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Ativar"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Busca por Wi‑Fi ativada"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Esta rede usa um protocolo de segurança mais antigo e menos seguro"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"A rede <xliff:g id="NAME">%1$s</xliff:g> foi bloqueada"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Esta rede usa um protocolo de segurança mais antigo chamado WEP, que é menos seguro. Para se conectar mesmo assim, permita a conexão em redes WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Sua operadora não permite que você se conecte a esta rede porque ela usa um protocolo de segurança mais antigo e menos seguro"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permitir WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Fechar"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opções avançadas"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista suspensa \"Opções avançadas\""</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"abrir"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Continuar no Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Não mostrar de novo"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Conectar"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi ativado"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Conectando a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Conectando…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Falha ao conectar à rede"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rede fora do alcance"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Falha ao esquecer a rede"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Salvar"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Falha ao salvar a rede"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Dados móveis"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Carregando"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Carregando"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Conexão de ponto de acesso"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Potência da conexão"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes salvas"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nenhuma senha definida"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nome do ponto de acesso"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Senha do ponto de acesso"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda do ponto de acesso"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Desativar ponto de acesso automaticamente"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Quando nenhum dispositivo estiver conectado"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Aumentar compatibilidade"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balanço de branco da tela"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Desativar o frame rate padrão para jogos"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Desativar o limite máximo de frame rate para jogos em <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Usando a câmera frontal, o \"Reconhecimento de tela em uso\" detecta se alguém está olhando para a tela. Ele funciona no dispositivo, e as imagens nunca são armazenadas nem enviadas ao Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ativar o \"reconhecimento de tela em uso\""</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mantenha a tela ligada enquanto estiver olhando para ela"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Um tempo limite da tela mais longo vai consumir a bateria mais rapidamente."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"A câmera está bloqueada"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Desbloqueie a câmera para usar a detecção facial"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"A câmera precisa ser desbloqueada para usar o reconhecimento de tela em uso"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot para chip <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot para chip <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>, principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Selecione uma rede salva para ver"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versão do PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nível da bateria"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Compartilhadas"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Configurações compartilhadas"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Salvar"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"O campo Nome não pode ficar vazio."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"O APN não pode estar vazio."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"O campo MCC deve ter 3 dígitos."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"O campo MNC deve ter 2 ou 3 dígitos."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"A operadora não permite adicionar APNs do tipo %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"O campo MMSC não é válido."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Restaurando as configurações APN padrão."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Redefinir para o padrão"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Redefinição das configurações padrão do APN concluída."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Reiniciar"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"O Bluetooth e o Wi-Fi foram redefinidos"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Limpar eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Isso não cancelará nenhum plano de serviços móveis. Para fazer o download de chips substitutos, entre em contato com a operadora."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Redefinir configurações"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Redefinir todas as configurações de rede? Não é possível desfazer essa ação."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Você quer mesmo redefinir todas as configurações de rede e apagar os eSIMs salvos? Não é possível desfazer essa ação."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Redefinir?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"A redefinição da rede não está disponível para esse usuário"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"As configurações de rede foram redefinidas"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Não é possível limpar chips"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Ocorreu um erro ao apagar o eSIM.\n\nReinicie o dispositivo e tente de novo."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Limpar todos os dados (redefinir para a configuração original)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Limpar todos os dados"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Músicas"</li>\n<li>"Fotos"</li>\n<li>"Outros dados do usuário"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Essa ação não cancelará seu plano de serviços móveis."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Todas as informações pessoais e os apps transferidos por download serão excluídos. Não é possível desfazer essa ação."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Todas as suas informações pessoais, inclusive apps e chips transferidos por download, serão excluídas. Não é possível desfazer essa ação."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Limpar todos os dados?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"A redefinição para a configuração original não está disponível para este usuário"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Limpando"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Ponto de acesso, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Não está compartilhando a Internet com outros dispositivos"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Desativados"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Não usar ponto de acesso Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Compartilhar Internet apenas por USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Compartilhar Internet apenas por Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Compartilhar Internet apenas por Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Compartilhar Internet apenas por USB e Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Compartilhar Internet apenas por USB e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Compartilhar Internet apenas por Bluetooth e Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Compartilhar Internet apenas por USB, Bluetooth e Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Use o ponto de acesso e tethering para que outros dispositivos possam usar a Internet pela sua conexão de dados móveis. Os apps também podem criar um ponto de acesso para compartilhar conteúdo com dispositivos por perto."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ajuda"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rede móvel"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plano de serviço móvel"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"App de SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Alterar app de SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Usar o <xliff:g id="NEW_APP">%1$s</xliff:g> em vez do <xliff:g id="CURRENT_APP">%2$s</xliff:g> como app de SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Alterar o Assistente de Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Usar <xliff:g id="NEW_APP">%1$s</xliff:g> em vez de <xliff:g id="CURRENT_APP">%2$s</xliff:g> para gerenciar suas conexões de rede?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Usar <xliff:g id="NEW_APP">%s</xliff:g> para gerenciar suas conexões de rede?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operadora do chip desconhecida"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> não tem um website de provisionamento conhecido"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Insira o chip e reinicie"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conecte-se à Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitações recentes"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Local do perfil de trabalho"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permissões de acesso ao local"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Limpar acesso"</string>
     <string name="controls_label" msgid="8671492254263626383">"Controles"</string>
     <string name="force_stop" msgid="2681771622136916280">"Forçar fechamento"</string>
+    <string name="archive" msgid="9074663845068632127">"Arquivar"</string>
+    <string name="restore" msgid="7622486640713967157">"Restaurar"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tamanho do app"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"App de armazenamento USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Não foi possível calcular o tamanho do pacote."</string>
     <string name="version_text" msgid="7628938665256107608">"versão <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mover"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Falha ao arquivar"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> arquivado"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Falha na restauração"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Restaurando <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Outra migração já está em andamento."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Não há espaço de armazenamento suficiente."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"O app não existe."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado na tela disponível"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gerenciar teclados na tela"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opções"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="show_ime" msgid="4334255501724746849">"Usar teclado na tela"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Manter na tela enquanto o teclado físico estiver ativo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtro"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Permitir teclas de filtro para acessibilidade do teclado físico"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Teclas de aderência"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Permitir teclas de aderência para acessibilidade do teclado físico"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos do teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de atalhos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas de perfil de trabalho"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ordenar por tempo de uso"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ordenar pelo último uso"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ordenar por nome do app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Última utilização"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Último uso"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nunca"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Tempo de uso"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Acessibilidade"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Configurações de acessibilidade"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuar mesmo assim"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Cancelar"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Configurações de ampliação"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Ampliar com toque triplo"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Ampliar com atalho"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Ampliar com atalho e toque triplo"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Tocar duas 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="860548190334486449">"Para iniciar ou interromper a ampliação, toque duas 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Para usar um recurso de acessibilidade, deslize de baixo para cima na tela com três dedos.\n\nPara alternar entre recursos, deslize de baixo para cima com três dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Ok"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Configurações do botão"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Configurações do botão"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Atalho para <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Botão de acessibilidade"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto de acessibilidade"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Tocar duas vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tocar duas vezes na tela com dois dedos"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Toque na tela {0,number,integer} vezes rapidamente com dois dedos"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tocar na tela três vezes"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Saiba mais sobre o botão e o gesto de acessibilidade"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Como usar o botão de acessibilidade. O gesto não está disponível na navegação com três botões."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Acessar rapidamente os recursos de acessibilidade"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para começar, siga estas instruções:"</b>\n"1. Vá para as configurações de acessibilidade.\n2. Selecione um recurso e toque no atalho.\n3. Escolha se você quer usar um botão ou gesto para acessar esse recurso."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para começar, siga estas instruções:"</b>\n"1. Vá para as configurações de acessibilidade.\n2. Selecione um recurso e toque no atalho.\n3. Escolha o botão para acessar o recurso."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para começar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Abra as configurações de acessibilidade&lt;br/&gt; {1,number,integer}. Selecione um recurso e toque no atalho&lt;br/&gt; {2,number,integer}. Escolha se quer usar um botão ou um gesto para acessar o recurso&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para começar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Abra as configurações de acessibilidade&lt;br/&gt; {1,number,integer}. Selecione um recurso e toque no atalho&lt;br/&gt; {2,number,integer}. Escolha o botão para acessar o recurso&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Usar botão ou gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Localização"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Tamanho"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Botão liga/desliga encerra chamadas"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Cursor do mouse grande"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Deixar o ponteiro do mouse perceptível"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Forçar apps a usar o tema escuro"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Para apps que não tem um tema escuro. Alguns apps podem ter problemas, como cores invertidas."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Remover animações"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Reduzir o movimento na tela"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Áudio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Pode monitorar suas interações com um app ou um sensor de hardware e interagir com apps em seu nome."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permitir"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Negar"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Parar"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Cancelar"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Desativar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Se você tocar em <xliff:g id="STOP">%1$s</xliff:g>, o <xliff:g id="SERVICE">%2$s</xliff:g> será interrompido."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Desativar"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Manter ativado"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Desativar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nenhum serviço foi instalado"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nenhum serviço selecionado"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição foi fornecida."</string>
     <string name="settings_button" msgid="2195468788019730377">"Configurações"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade à luz, fotofobia, tema escuro, enxaqueca, dor de cabeça, modo de leitura, modo noturno, reduzir brilho, ponto branco"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de uso, facilidade de acesso, assistência, assistivo"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"visão, audição, cego, surdo, motor, destreza, assistivo, assistência, facilidade de uso, facilidade de acesso, mão, ajuda"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Lupa de janela, zoom, ampliação, baixa visão, ampliar, aumentar"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Legendas, closed captions, CC, Transcrição instantânea, deficiência auditiva, perda auditiva, legenda ao vivo, voz em texto"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"coordenação motora, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, mouse externo, mouse controlado por movimentos da cabeça, mouse adaptável, cadeira de rodas, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som, CAE"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"deficiência auditiva, perda auditiva, legendas, teletipo, TTD"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"três botões"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motor, idoso, artrite, LER, derrame, tremor, esclerose múltipla, paralisia cerebral, tremendo, lesão por esforço repetitivo, mão"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, idoso"</string>
     <string name="print_settings" msgid="8519810615863882491">"Impressão"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desativada"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 serviço de impressão ativado}one{# serviço de impressão ativado}other{# serviços de impressão ativados}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ver apps com maior uso"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Carregamento otimizado para proteger a bateria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Para ajudar a prolongar a vida útil da bateria, o carregamento foi otimizado"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Carregamento otimizado para proteger a bateria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para ajudar a prolongar a vida útil da bateria, o carregamento vai ser otimizado quando o dispositivo estiver na base"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Carregamento otimizado para proteger a bateria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para ajudar a prolongar a vida útil da bateria, o carregamento vai ser otimizado quando o dispositivo estiver na base"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Carregamento total"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para proteger a bateria, o carregamento vai ser otimizado na próxima vez que o tablet estiver na base"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Saiba mais sobre a pausa no carregamento"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Retomar o carregamento"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclui atividade em segundo plano com alto consumo de energia"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Remover"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Cancelar"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Carregar totalmente"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problema com o acessório de carregamento"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Saiba mais sobre a incompatibilidade de carregamento"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Gerenciador de bateria"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gerenciar apps automaticamente"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"agora"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> — <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g>. <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Gráfico de uso da bateria"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Gráfico de uso diário da bateria"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Gráfico de uso da bateria por hora"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Mudança na porcentagem do nível de bateria de <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> para <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Uso da bateria desde a última carga completa"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Uso da bateria no período: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tempo de uso desde a última carga completa"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sinal de discagem de emergência"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Definir comportamento durante uma chamada de emergência"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Ativado"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Desativado"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup e restauração"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dados pessoais"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Fazer backup"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nome"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tipo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Endereço do servidor"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Criptografia PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Segredo L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificador IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Chave pré-compartilhada IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificado de usuário IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificado de CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificado de servidor IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Mostrar opções avançadas"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domínios de pesquisa de DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servidores de DNS (por exemplo, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rotas de encaminhamento (ex: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nome de usuário"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Senha"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Salvar informações sobre a conta"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"Não utilizado"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(não verificar servidor)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(recebido de um servidor)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Não é possível manter este tipo de VPN sempre conectado."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN sempre ativa só é compatível com endereços numéricos"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Um servidor DNS precisa ser especificado para VPN sempre ativa"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Os endereços de servidor DNS precisam ser numéricos para VPN sempre ativa"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"As informações inseridas não são compatíveis com VPN sempre ativa"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Cancelar"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Dispensar"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Bloquear conexões sem VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Conexão VPN necessária?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Não seguro. Atualize para uma VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Falha ao iniciar a VPN sem suporte."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selecione um perfil de VPN para permanecer sempre conectado. O tráfego de rede somente será permitido quando conectado a esta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Nenhuma"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"A VPN sempre ativa requer um endereço IP para o servidor e o DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alertas AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Receber boletins sobre crianças sequestradas"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetir"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Ativar Gerenciador de chamadas"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permitir que este serviço gerencie como as chamadas são feitas."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Gerenciador de chamadas"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alertas de emergência sem fio"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operadores de rede"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Nomes dos pontos de acesso"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"carteira"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"pagar, tocar, pagamentos"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"desbloqueio, facial, autenticação, login"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"rosto, desbloqueio, autenticação, login, impressão digital, biometria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versão prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ativar sons"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Legenda Instantânea"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Legendar mídias automaticamente"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Alto-falantes do smartphone"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Alto-falantes do tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Alto-falantes do dispositivo"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Fones de ouvido com fio"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"O áudio de dispositivos de mídia compatíveis fica mais imersivo"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Desativado"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"O que você quer que apareça na sua tela de bloqueio?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Conversas recentes removidas"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversa removida"</string>
     <string name="clear" msgid="5092178335409471100">"Limpar"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Limpar <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"As conversas prioritárias e modificadas aparecem aqui"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Depois de marcar como prioritária ou fazer qualquer mudança nas conversas, elas aparecem aqui. \n\nPara mudar as configurações: \ndeslize o dedo de cima para baixo na tela para abrir a aba suspensa. Em seguida, toque na conversa e mantenha pressionada."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizar"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Desativada"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fixação de apps"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"A fixação de apps faz com que o app atual fique aberto na tela até que você libere. Esse recurso pode ser usado, por exemplo, para deixar alguém acessar um jogo específico no seu smartphone."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nPara usar a fixação de apps, faça o seguinte: 	\n1. Ative a fixação de apps. 	\n2. Abra a opção \"Visão geral\". 	\n3. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nSe você quiser compartilhar seu dispositivo com alguém de forma segura, tente fazer isso com um usuário convidado. \n\nPara usar a fixação de apps, faça o seguinte: 	\n1. Ative a fixação de apps. 	\n2. Abra a opção \"Visão geral\". 	\n3. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nPara usar a fixação de apps: 	\n{0,number,integer}. Ativar a fixação de apps 	\n{1,number,integer}. Abrir a Visão geral 	\n{2,number,integer}. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Quando um app está fixado, ele pode abrir outros apps e os dados pessoais podem ficar acessíveis. \n\nSe você quiser compartilhar seu dispositivo com alguém de forma segura, tente fazer isso com um usuário convidado. \n\nPara usar a fixação de apps: 	\n{0,number,integer}. Ativar a fixação de apps 	\n{1,number,integer}. Abrir a Visão geral 	\n{2,number,integer}. Na parte de cima da tela, toque no ícone do app e depois em \"Fixar\"."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Quando o app está fixado, ele pode: \n\n•		acessar dados pessoais \n		(como contatos e conteúdo de e-mail); \n•		abrir outros apps. \n\nUse a fixação de apps apenas com pessoas em quem você confia."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pedir padrão de desbloqueio antes de liberar a tela"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Pedir PIN antes de liberar a tela"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Configurações de apps não usados"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausar atividade no app quando não usado"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Remove permissões, exclui arquivos temporários e para notificações"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gerenciar o app quando não usado"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Remover permissões, excluir arquivos temporários, parar notificações e arquivar o app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Todos os apps"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Apps instalados"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Apps instantâneos"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Disponível"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memória usada por apps"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app usou a memória nos últimos {time}}one{# app usou a memória nos últimos {time}}other{# apps usaram a memória nos últimos {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Ativar a criação de perfil de uso da memória"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"O perfil de uso de memória requer outros recursos do sistema."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Criação de perfil de memória"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequência"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Uso máximo"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nenhum dado usado"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Sobrepor a outros apps"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permitir sobreposição a outros apps"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permite que este app apareça sobreposto a outros apps que você esteja usando. Este app poderá ver onde você toca ou mudar o que está sendo mostrado na tela."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Mudar saída de mídia"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permitir que um app mude a saída de mídia"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permite que este app escolha qual dispositivo conectado vai reproduzir áudio ou vídeo de outros apps. Se a permissão for concedida, o app poderá acessar uma lista de dispositivos disponíveis, por exemplo, fones de ouvido e alto-falantes, e escolher qual dispositivo de saída será usado para transmitir ou reproduzir áudio ou vídeo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acesso a todos os arquivos"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Melhorar a ativação por voz"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Este dispositivo usa informações particulares para melhorar o modelo de ativação por voz. Os apps podem receber atualizações resumidas que são agregadas entre vários usuários para manter a privacidade e, ao mesmo tempo, melhorar o modelo para todos.\n\n"<a href="">"Saiba mais sobre a inteligência particular"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limite de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g> / Limite de dados em <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"O cálculo de dados da operadora pode ser diferente daquele realizado pelo seu dispostivo"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclui dados usados por redes de operadoras"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> usado(s)"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Definir alerta de uso de dados"</string>
@@ -3833,7 +4016,6 @@
     <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_mdp_app_text" msgid="8791816789749304897">"Ver plano"</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>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalia no uso da bateria"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Blocos de desenvolvedor para configurações rápidas"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Desativar o tempo limite da autorização adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Desativar a revogação automática de autorizações adb para sistemas que não foram reconectados no período padrão (7 dias) ou configurado pelo usuário (mínimo de 1 dia)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Rastreamento do Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensores desativados"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Configurações do perfil de trabalho"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Pesquisar contatos do diretório de trabalho nos apps pessoais"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Preenchimento automático"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Preenchimento automático padrão"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Senhas"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Senhas, chaves de acesso e serviços de dados"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Outros provedores"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# senha}one{# senha}other{# senhas}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"preencher, automático, preenchimento automático, senha"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Senhas, chaves de acesso e serviços de dados"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Desativar todos os serviços?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Mude seu serviço favorito para &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora. O &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_enable_confirmation_message_title" msgid="1037501792652277829">"Usar %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Só é possível ter 5 serviços ativados"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Desative pelo menos 1 serviço para adicionar outro"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa o que aparece na tela para determinar o que pode ser preenchido automaticamente."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de senhas, chaves de acesso e serviços de dados"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ao mesmo tempo. Desative um para adicionar outro."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de senhas, chaves de acesso e serviços de dados"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ativos ao mesmo tempo. Desative um para adicionar outro."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desativar"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Preenchimento automático"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nível de registro"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"As mudanças na compatibilidade de apps só podem ser modificadas para apps depuráveis. Instale um app depurável e tente novamente."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depende de outra configuração"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Conta"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d contas"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Nome do dispositivo"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informações básicas"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Informações legais e regulatórias"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permitir que este app seja aberto quando a tag NFC for lida.\nSe esta permissão estiver ativada, o app vai ficar disponível como opção sempre que uma tag for detectada."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Tocar mídia"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Abrir <xliff:g id="LABEL">%s</xliff:g> no dispositivo abaixo:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"O áudio vai tocar"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Neste dispositivo"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Indisponível durante chamadas"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Atender chamada"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Desativar som"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Para ativar, mude a opção \"Aperte o botão liga/desliga e o pressione\" para o menu liga/desliga."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalhes da rede"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"O nome do seu dispositivo está visível para os apps no smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou a uma rede Wi-Fi ou quando configura um ponto de acesso Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Escolher rede"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Desconectado"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nome"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Cor (usada por apps compatíveis)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Salvar"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Usar chip"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Usar este chip"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Desativado"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para desativar este chip ele deve ser removido."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Toque para ativar a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Limpar chip"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipo de rede preferencial"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Alterar o modo de operação de rede"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipo de rede preferencial"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Consulte os preços com seu provedor de rede."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Uso de dados do app"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Modo de rede <xliff:g id="NETWORKMODEID">%1$d</xliff:g> inválido. Ignorar."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Nomes dos pontos de acesso"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Indisponível quando conectado à <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Mudar para a <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Começar a usar o chip?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Usar <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Somente um chip pode estar ativo por vez.\n\nMudar para a <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> não cancelará o serviço da <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Apenas um eSIM pode ficar ativo por vez.\n\nMudar para a operadora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> não cancela o serviço da <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Somente um chip pode estar ativo por vez.\n\nMudar de operadora não cancelará o serviço da <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Você pode usar dois chips ao mesmo tempo. Para usar a operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, desative o outro chip."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Mudar para <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Desativar chip da operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Agora não"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Cancelar"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Mudar"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Desativar"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Não foi possível ativar o chip"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Tente ativar o chip novamente. Se o problema continuar, reinicie o dispositivo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configure seu chip"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Defina suas preferências de rede móvel para usar vários chips neste dispositivo"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Rotule seus chips"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Esses rótulos vão aparecer ao fazer ligações, enviar mensagens de texto e usar dados, além de aparecerem nas Configurações"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Rótulo do chip"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Rótulo"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Selecione quais chips usar"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Você pode usar dois chips ao mesmo tempo"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Defina seus chips principais"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Escolha quais chips usar por padrão para fazer ligações, enviar mensagens de texto e usar dados"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Seus principais chips"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Ligações"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mensagens de texto"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Troca de dados automática"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Usar dados de qualquer chip dependendo da cobertura e disponibilidade"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Somente dados"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configurar"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Próxima"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rede móvel"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Número de telefone"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Rótulo e cor do chip"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ativação de rede"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Mudança de operadora"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"A operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g> está ativa"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para usar dados móveis, recursos de chamada e SMS mais tarde, acesse as configurações de rede"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"Chip"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Você quer mesmo apagar este eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"A limpeza do chip remove o serviço da <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> deste dispositivo.\n\nO serviço da <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> não será cancelado."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Limpar"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Limpando chip…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Não é possível limpar o chip"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Não é possível limpar este chip devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Conectar ao dispositivo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"O app <xliff:g id="APPNAME">%1$s</xliff:g> quer usar uma rede Wi-Fi temporária para se conectar ao seu dispositivo"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nenhum dispositivo foi encontrado. Os dispositivos precisam estar ligados e disponíveis para conexão."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Chamadas de emergência"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"As chamadas de emergência feitas com o recurso \"Chamada no Wi-Fi\" não são compatíveis com sua operadora.\nO dispositivo alterna automaticamente para uma rede celular para fazer uma chamada de emergência.\nAs chamadas de emergência são possíveis apenas em áreas com cobertura de celular."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Usar Wi-Fi nas chamadas para melhorar a qualidade"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Chamadas alternativas"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Se <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> estiver indisponível ou em roaming, use o chip de dados móveis para chamadas da operadora <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"chamadas alternativas"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mensagem MMS recebida"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Não é possível enviar mensagens MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Toque para permitir mensagens MMS pela <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> quando os dados móveis estiverem desativados"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informações sobre sua política de trabalho"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Configurações gerenciadas pelo administrador de TI"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Inicializar com páginas de 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Inicializar dispositivo usando o kernel com suporte a páginas de 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Reiniciar com kernel compatível com páginas de 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVISO: alguns aplicativos podem não ser compatíveis com esse modo. O dispositivo será reiniciado após a confirmação."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Reiniciar com kernel compatível com páginas de 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"O dispositivo será reiniciado após a confirmação."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Falha ao atualizar para um kernel compatível com páginas de 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Aplicando mudança"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Gerenciador de relatórios de bugs"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Determina qual app gerencia o atalho para o Relatório de bug no dispositivo."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Pessoais"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Para retomar a reprodução rapidamente, o player de mídia fica aberto nas Configurações rápidas"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Mostrar mídia na tela de bloqueio"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Para retomar a reprodução rapidamente, o player de mídia fica aberto na tela de bloqueio"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Mostrar recomendações de mídia"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Mostrar recomendações de mídia do Google Assistente"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Com base na sua atividade"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ocultar player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Mostrar player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"Chip"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Ativo"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inativo"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Padrão para <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"chamadas"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos de mídia compatíveis se torna mais imersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme você move a cabeça para soar mais natural"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sincronizar permissões"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Conceda ao dispositivo <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> as mesmas permissões de app que você deu ao <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizar permissões do smartphone"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Conceda ao relógio as mesmas permissões do app que você concedeu a este smartphone"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Alto-falante"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esse app só pode ser aberto em uma única janela"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ativado"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desativado"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desativado"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desativado"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Ativado"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Desativado"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Ativada"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Desativada"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Transforma as telas claras em escuras e vice-versa"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Aumentar o zoom na tela"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Desativado"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Desativada"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Ativada"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Desativada"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Ativada"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"A senha foi configurada"</string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 02b5f3d..f8ace1d 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"După un minut"</item>
     <item msgid="1574040255478150028">"După cinci minute"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 62e0883..9e2b7ea 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Ai devenit dezvoltator!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nu mai este nevoie, ești deja dezvoltator."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Mai întâi activează opțiunile pentru dezvoltatori."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Doar administratorii pot accesa setările pentru dezvoltatori."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"În aria de acoperire"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"În afara ariei de acoperire"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Ecranul frontal se activează când pliezi dispozitivul"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Numai jocuri, videoclipuri și altele"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Ecranul frontal se activează pentru aplicațiile care împiedică intrarea ecranului în modul inactiv"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Glisează în sus pentru a continua"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Pliază telefonul și glisează în sus pe ecranul frontal pentru a folosi în continuare aplicația sau așteaptă câteva secunde pentru ca ecranul să se blocheze"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Niciodată"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Ecranul frontal se blochează când pliezi dispozitivul"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Folosește rotirea automată"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Similare"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Tonul de sonerie și alarmele"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Sonorul în timpul apelurilor"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notificări și sunete de sistem"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sunete media și de sistem"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Notificări"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"În mod prestabilit, ieșirea audio este stabilită de fiecare aplicație"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Dispozitiv Bluetooth nedenumit"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Se caută dispozitive"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Funcția Bluetooth activată"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Afișează-le pe toate"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Afișează tot"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Creion"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Apăsarea butonului creionului"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (profil de serviciu)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Conectează-te la un stream LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Streamuri audio în apropiere"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Streamuri audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Conectează-te la un stream audio folosind un cod QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nu s-au găsit streamuri audio aproape."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ca să selectezi o limbă pentru fiecare aplicație, accesează setările de limbă ale aplicației"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Află mai multe despre limbile aplicațiilor"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Schimbi limba sistemului la %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Adaugi %s la limbile preferate?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Astfel, aplicațiile și site-urile sunt informate că preferi și această limbă."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Setările dispozitivului și preferințele regionale se vor modifica."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Schimbă"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nu este disponibilă"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sâmbătă"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Dacă o aplicație nu acceptă preferințele regionale, aceasta va folosi setările prestabilite pentru codul local."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Află mai multe despre preferințele de limbă"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferințe suplimentare"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Formule de adresare"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Setează modul în care dorești ca aplicațiile să ți se adreseze"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplicațiile pot folosi formulele de adresare pe care le alegi pentru a personaliza modul în care ți se adresează."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nespecificat"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Masculin"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutru"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Elimini limba selectată?}few{Elimini limbile selectate?}other{Elimini limbile selectate?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Textul va fi afișat în altă limbă."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nu pot fi eliminate toate limbile"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Locație"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Folosește locația"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Dezactivat"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Activată – # aplicație are acces la locație}few{Activată – # aplicații au acces la locație}other{Activată – # de aplicații au acces la locație}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Activată / # aplicație are acces la locație}few{Activată / # aplicații au acces la locație}other{Activată / # de aplicații au acces la locație}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Se încarcă…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplicațiile cu permisiunea pentru Dispozitive din apropiere pot stabili poziția relativă a dispozitivelor conectate."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Accesul la locație este dezactivat pentru aplicații și servicii. Locația dispozitivului poate fi trimisă serviciilor de urgență atunci când suni sau trimiți un mesaj la un număr de urgență."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Află mai multe despre Setările privind locația."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Află mai multe despre Setările privind locația"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Pentru a schimba accesul în locație, accesează Setări &gt; Securitate și confidențialitate &gt; Opțiuni de confidențialitate"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Pentru rezultate optime, folosește o protecție pentru ecran care este certificată Made for Google. Este posibil ca amprenta copilului să nu funcționeze cu alte protecții pentru ecran."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Deblocare cu ceasul"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Când configurezi Deblocarea facială și Deblocarea cu amprenta, telefonul îți va solicita amprenta atunci când porți mască sau te afli într-o zonă întunecoasă.\n\nPoți folosi ceasul pentru deblocare când nu ți se recunoaște fața sau amprenta."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Poți folosi ceasul pentru deblocare când nu ți se recunoaște amprenta."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Poți folosi ceasul pentru deblocare când nu ți se recunoaște fața."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Când configurezi Deblocarea facială și Deblocarea cu amprenta, telefonul îți va solicita amprenta atunci când porți mască sau te afli într-o zonă întunecoasă.\n\nDeblocarea cu ceasul este o altă modalitate convenabilă de a debloca telefonul, de exemplu, când ai degetele ude sau nu îți recunoaște chipul."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Deblocarea cu ceasul este o altă modalitate convenabilă de a debloca telefonul, de exemplu, când nu îți recunoaște amprenta."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Deblocarea cu ceasul este o altă modalitate convenabilă de a debloca telefonul, de exemplu, când nu îți recunoaște chipul."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Folosește amprenta sau ceasul pentru a"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Folosește fața sau ceasul pentru a"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Folosește fața, amprenta sau ceasul pentru a"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Au fost adăugate fața și <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Au fost adăugate fața, amprenta și <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Au fost adăugate fața, amprentele și <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Deblocarea cu Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ceasul a fost adăugat"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurează ceasul"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Deblocarea cu ceasul este o altă modalitate convenabilă de a debloca acest telefon, de exemplu, când ai degetele ude sau nu îți recunoaște chipul.\n\nPoți să deblochezi telefonul cu ceasul atunci când:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nu acum"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuă"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mai mult"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cum funcționează"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ceasul trebuie să fie deblocat, la încheietura mâinii și aproape de telefon. Nu va trebui să deblochezi ceasul din nou cât timp se află la încheietură."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Când telefonul este deblocat, vei primi o notificare pe ceas. Dacă telefonul s-a deblocat din greșeală, atinge notificarea pentru a-l bloca din nou."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Tu deții controlul"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Poți elimina oricând ceasul din Deblocarea cu ceasul din Setări"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Atinge o notificare"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Glisează în sus pe ecranul de blocare"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Alege ceasul"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Ceasuri disponibile"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Anulează"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmă"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Gata!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Acum poți folosi ceasul pentru a debloca telefonul când glisezi în sus pe ecranul de blocare sau când atingi o notificare"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gata"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Deblocare cu ceasul"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Poți folosi ceasul pentru a debloca telefonul când glisezi în sus pe ecranul de blocare sau când atingi o notificare"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Pentru a folosi Deblocarea cu ceasul, ceasul trebuie să fie deblocat, la încheietura mâinii, aproape și conectat la telefon. În cazul în care conexiunea este întreruptă, va trebui să deblochezi telefonul ca să poți folosi Deblocarea cu ceasul.\n\nReține:\npoți avea un singur ceas configurat la un moment dat. Ca să adaugi altul, elimină-l pe cel actual."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Află mai multe despre Deblocarea cu ceasul"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adaugă un ceas"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Elimină ceasul"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Deblocare cu amprenta și Deblocare facială"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Deblocarea facială și cu amprenta pentru serviciu"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Este necesară configurarea"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Securitate"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Confidențialitate"</string>
     <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="2274405892301976238">"Păstrează aplicațiile private blocate și ascunse"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Păstrează aplicațiile private într-un spațiu separat pe care îl poți ascunde sau bloca"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Blocarea spațiului privat"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Poți să deblochezi Spațiul privat la fel cum deblochezi dispozitivul sau să alegi altă blocare"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Folosește blocarea ecranului dispozitivului"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Deblocare facială și cu amprentă"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Deblocarea cu amprenta"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Deblocarea facială"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Atinge pentru a configura"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Deblocare cu amprenta pentru spațiul privat"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Deblocare facială pentru spațiul privat"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Moduri de deblocare"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Aceeași ca blocarea ecranului dispozitivului"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Alegi un aspect nou pentru Spațiul privat?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Blochează automat"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Blochează automat spațiul privat"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Poți bloca automat spațiul privat dacă nu ai folosit dispozitivul o perioadă de timp"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"La fiecare blocare a dispozitivului"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"După 5 minute de inactivitate"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Niciodată"</string>
+    <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_delete_title" msgid="3075645119800272800">"Șterge Spațiul privat"</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="private_space_unlocked" msgid="9091600948712932046">"Spațiu privat deblocat"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setează o blocare a ecranului"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Ca să folosești spațiul privat, setează blocarea ecranului pe acest dispozitiv"</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="private_space_cancel_label" msgid="379259667396956886">"Anulează"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Configurează"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Configurează un spațiu privat"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Păstrează aplicațiile private într-un spațiu separat pe care îl poți ascunde sau bloca"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Cum funcționează"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Poți accesa spațiul privat din partea de jos a listei de aplicații"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplicațiile din spațiul privat sunt protejate de o blocare"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Notificările de la aplicațiile din spațiul privat sunt ascunse atunci când acesta este blocat"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"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.\n\nSpațiul privat nu poate fi mutat pe un dispozitiv nou. Va trebui să configurezi alt spațiu privat dacă vrei să-l folosești pe alt dispozitiv.\n\nOricine îți conectează dispozitivul la un computer sau instalează aplicații dăunătoare pe dispozitiv poate să îți acceseze spațiul privat."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Se configurează spațiul privat…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Notificările de la aplicațiile din spațiul privat sunt ascunse atunci când acesta este blocat"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Deblochează spațiul privat pentru a trimite fotografii sau fișiere din aplicații din spațiul privat"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Unele aplicații au fost deja instalate în spațiul privat"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Nu s-a putut configura spațiul privat"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Încearcă din nou"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Folosești blocarea ecranului pentru a debloca spațiul privat?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Poți să deblochezi spațiul privat la fel cum deblochezi dispozitivul sau să alegi altă blocare"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Folosește blocarea ecranului"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Alege o nouă blocare"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Gata!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Pentru a accesa spațiul privat, accesează lista de aplicații, apoi derulează în jos"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Gata"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Derulează în jos pentru a găsi spațiul privat"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Alege o blocare pentru spațiul privat"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Poți debloca spațiul privat folosind amprenta. Pentru securitate, această opțiune necesită o blocare de rezervă."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Setează un PIN pentru spațiul privat"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Setează o parolă pentru spațiul privat"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Setează un model pentru spațiul privat"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Pentru a afișa Spațiul privat (UX temporară)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Deschide aplicația Setări"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Atinge Securitate și confidențialitate &gt; Spațiul privat &gt; Ascunde Spațiul privat când este blocat"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Dezactivează comutatorul Ascunde Spațiul privat când este blocat"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Notă pentru angajații Google: funcția este încă în dezvoltare"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Ar putea fi necesar, de asemenea, să introduci această parolă pe celălalt dispozitiv."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirmă pentru a asocia cu setul coordonat"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permite accesul la agendă și la istoricul apelurilor"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"În plus, permit accesul la agendă și la istoricul apelurilor"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informațiile vor fi folosite pentru notificări privind apelurile și altele"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nu s-a putut conecta la <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispozitive disponibile"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Activarea Bluetooth facilitează comunicarea cu alte dispozitive Bluetooth din apropiere."</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"În modul Avion"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Notificare pentru rețelele publice"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Notifică-mă atunci când este disponibilă o rețea publică de înaltă calitate"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Permite rețelele WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP este un protocol de securitate mai vechi și mai puțin sigur"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operatorul tău nu permite rețelele WEP, deoarece sunt mai puțin sigure"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Activează automat Wi-Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi se va reactiva automat lângă rețelele de înaltă calitate salvate, cum ar fi rețeaua ta de domiciliu"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Indisponibil pentru că este dezactivată locația. Activează "<annotation id="link">"Locația"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Căutarea de rețele Wi-Fi permite aplicațiilor și serviciilor să caute oricând rețele Wi-Fi, chiar și atunci când conexiunea Wi-Fi este dezactivată. Această opțiune poate fi folosită, de exemplu, pentru a îmbunătăți funcțiile și serviciile bazate pe locație."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Activează"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Căutare de rețele Wi-Fi activată"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Rețeaua folosește un protocol de securitate mai vechi și mai puțin sigur"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Rețeaua <xliff:g id="NAME">%1$s</xliff:g> este blocată"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Rețeaua folosește un protocol de securitate mai vechi, numit WEP, care este mai puțin sigur. Ca să te conectezi oricum, poți permite rețelele WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operatorul nu îți dă voie să te conectezi la această rețea, deoarece ea folosește un protocol de securitate mai vechi și mai puțin sigur"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Permite rețelele WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Închide"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opțiuni avansate"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Lista drop-down Opțiuni avansate"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"extindeți"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Rămâi pe Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Nu afișa din nou"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Conectează-te"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Conexiunea prin Wi-Fi este activată"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Te-ai conectat la <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Se conectează la <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Se conectează…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nu s-a putut stabili conexiunea la rețea"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rețeaua este în afara ariei de acoperire"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Elimină"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modifică"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nu s-a putut elimina rețeaua"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Salvează"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Nu s-a putut salva rețeaua"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Anulează"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Date mobile"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Se încarcă"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Se încarcă"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Conexiune hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Puterea conexiunii"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Rețele salvate"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nu s-a setat nicio parolă"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Nume hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Parolă hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Dezactivează automat hotspotul"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Când nu este conectat niciun dispozitiv"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Extinde compatibilitatea"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Balansul de alb al ecranului"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Dezactivează rata prestabilită de cadre pentru jocuri"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Dezactivează limitarea ratei maxime de cadre pentru jocuri la <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funcția Atenție la ecran folosește camera frontală pentru a detecta dacă se uită cineva la ecran. Funcționează pe dispozitiv, iar imaginile nu sunt niciodată stocate sau trimise la Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Activați „Atenție la ecran”"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Menține activat ecranul când îl privești"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Durata mai lungă până la dezactivarea ecranului va folosi mai multă baterie."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Camera foto este blocată"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Camera foto trebuie deblocată pentru detectarea facială"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Camera trebuie să fie deblocată pentru funcția Atenție la ecran"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot pentru SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot pentru SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (principal)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Alege rețeaua salvată pentru afișare"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versiune PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nivelul bateriei"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Comune"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Setări comune"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Salvează"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Anulează"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Câmpul Nume nu poate fi necompletat."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Numele APN nu poate fi necompletat."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Câmpul MCC trebuie să conțină 3 cifre."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Câmpul MNC trebuie să conțină 2 sau 3 cifre."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operatorul nu permite adăugarea numelor APN de tipul %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Câmpul MMSC trebuie să fie valid."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Se restabilesc setările APN prestabilite."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Resetează la valorile prestabilite"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Resetarea setărilor APN prestabilite a fost finalizată."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Resetează"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth și Wi‑Fi au fost resetate"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Șterge cartelele eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Acest lucru nu va anula niciun abonament de servicii mobile. Pentru a descărca SIM-uri de înlocuire, contactează operatorul."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Resetează opțiunile"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Restabilește toate setările pentru rețea? Nu poți anula această acțiune."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Resetezi toate setările de rețea și ștergi cartelele eSIM? Nu poți anula această acțiune."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Resetezi?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Resetarea rețelei nu este disponibilă pentru acest utilizator"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Setările pentru rețea au fost reinițializate"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Nu se pot șterge SIM-urile"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Cartelele eSIM nu se pot șterge din cauza unei erori.\n\nRepornește dispozitivul și încearcă din nou."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Șterge datele (revino la setările din fabrică)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Șterge datele (revino la setările din fabrică)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"muzică;"</li>\n<li>"fotografii;"</li>\n<li>"alte date ale utilizatorului."</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"carduri eSIM,"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Planul tău de servicii mobile nu va fi anulat astfel."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Toate informațiile cu caracter personal și aplicațiile descărcate vor fi șterse. Nu puteți anula această acțiune."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Toate informațiile cu caracter personal, inclusiv aplicațiile și SIM-urile descărcate, vor fi șterse. Nu poți anula această acțiune."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Ștergi toate datele?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Revenirea la setările din fabrică nu este disponibilă pentru acest utilizator"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Se șterge"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Nu se permite altor dispozitive accesul la conexiunea de internet"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Dezactivat"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nu se folosesc hotspoturi Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Permite accesul la internet doar prin USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Permite accesul la internet doar prin Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Permiteți accesul la internet doar prin Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Permite accesul la internet prin USB și Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Permite accesul la internet doar prin USB și Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Permite accesul la internet doar prin Bluetooth și Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Permite accesul la internet doar prin USB, Bluetooth și Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering prin USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering prin Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Folosește hotspotul și tetheringul pentru a oferi o conexiune de internet altor dispozitive prin conexiunea ta Wi-Fi sau de date mobile. Aplicațiile pot crea și un hotspot pentru a trimite conținut dispozitivelor din apropiere."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ajutor"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rețea mobilă"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plan de date mobile"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplicația SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Schimbi aplicația SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Folosești <xliff:g id="NEW_APP">%1$s</xliff:g> în loc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> ca aplicație SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Schimbi asistentul Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Folosești <xliff:g id="NEW_APP">%1$s</xliff:g> în loc de <xliff:g id="CURRENT_APP">%2$s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Folosești <xliff:g id="NEW_APP">%s</xliff:g> pentru a gestiona conexiunile la rețea?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operator SIM necunoscut"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nu are niciun site de provizionare cunoscut"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Introdu cardul SIM și repornește"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Conectează-te la internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Solicitări recente ale locației"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Locație pt. profil de serviciu"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Permisiuni pentru locație"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Anulează accesul"</string>
     <string name="controls_label" msgid="8671492254263626383">"Comenzi"</string>
     <string name="force_stop" msgid="2681771622136916280">"Oprește forțat"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhivează"</string>
+    <string name="restore" msgid="7622486640713967157">"Restabilește"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Total"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Dimensiunea aplicației"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Stocare aplicație pe USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nu s-a putut calcula mărimea pachetului."</string>
     <string name="version_text" msgid="7628938665256107608">"versiunea <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Mută"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhivarea nu a reușit"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"S-a arhivat <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restabilirea nu a reușit"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Se restabilește <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Altă migrare este deja în desfășurare."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nu există suficient spațiu de stocare."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplicația nu există."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tastatura pe ecran disponibilă"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gestionează tastaturile pe ecran"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opțiuni"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilitate"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastatură fizică"</string>
     <string name="show_ime" msgid="4334255501724746849">"Folosește tastatura pe ecran"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Se păstrează pe ecran cât timp este activată tastatura fizică"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Taste de ieșire imediată"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Activează Tastele de ieșire imediată pentru accesibilitatea tastaturii fizice"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Taste adezive"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Activează Tastele adezive pentru accesibilitatea tastaturii fizice"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Comenzi rapide de la tastatură"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afișează lista de comenzi rapide"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastaturi și instrumente pt. profilul de serviciu"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sortează după durata folosirii"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sortează după data ultimei folosiri"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sortează după numele aplicației"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Ultima utilizare"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Ultima utilizare"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"niciodată"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Durată de utilizare"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accesibilitate"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Setări de accesibilitate"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Continuă oricum"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anulează"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Setări pentru mărire"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Mărește atingând de trei ori"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Mărește folosind scurtătura"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Mărește folosind scurtătura și atingând de trei ori"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Despre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Atinge de două 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="860548190334486449">"Pentru a porni și a opri mărirea, atinge de două 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Ca să folosești o funcție de accesibilitate, 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 menține apăsat."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Setările butonului de accesibilitate"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Setări pentru buton"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Comanda rapidă pentru <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Buton de accesibilitate"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gest de accesibilitate"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Atinge de două ori ecranul cu două degete"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"atinge de două ori ecranul cu două degete"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Atinge rapid ecranul de {0,number,integer} ori cu două degete"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Atinge ecranul de trei ori"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Află mai multe despre butonul de accesibilitate și gest"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Folosirea butonului de accesibilitate. Gestul nu este disponibil în cazul navigării cu 3 butoane."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Accesează rapid funcțiile de accesibilitate"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Pentru a începe"</b>\n"1. Accesează setările de accesibilitate\n2. Selectează o funcție și atinge comanda rapidă\n3. Alege dacă vrei să folosești un buton sau un gest pentru a accesa funcția"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Pentru a începe"</b>\n"1. Accesează setările de accesibilitate\n2. Selectează o funcție și atinge comanda rapidă\n3. Alege butonul pentru a accesa funcția"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&amp;gtPentru a începe&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Accesează setările de accesibilitate&lt;br/&gt; {1,number,integer}. Selectează o funcție și atinge comanda rapidă&lt;br/&gt; {2,number,integer}. Alege dacă dorești să folosești un buton sau un gest pentru a accesa funcția&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&amp;gtPentru a începe&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Accesează setările de accesibilitate&lt;br/&gt; {1,number,integer}. Selectează o funcție și atinge comanda rapidă&lt;br/&gt; {2,number,integer}. Alege butonul pentru a accesa funcția&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Folosește butonul sau gestul"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Locație"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Dimensiune"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Butonul de pornire închide"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Cursor mare pentru mouse"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Fă cursorul mouse-ului mai ușor de observat"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Fă toate aplicațiile întunecate"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Se aplică aplicațiilor fără propria temă întunecată. Unele aplicații pot avea probleme de afișare, de exemplu, culori inversate."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Elimină animațiile"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Redu mișcarea de pe ecran"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audio mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Poate urmări interacțiunile tale cu o aplicație sau cu un senzor hardware și poate interacționa cu aplicații în numele tău."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Permite"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuză"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Oprește"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Anulează"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Oprești <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Dacă atingi <xliff:g id="STOP">%1$s</xliff:g> vei opri <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Dezactivează"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Menține activată"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Dezactivezi <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nu există servicii instalate"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Niciun serviciu selectat"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nu a fost furnizată o descriere."</string>
     <string name="settings_button" msgid="2195468788019730377">"Setări"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilitate la lumină, fotofobie, tema întunecată, migrenă, durere de cap, mod de citire, modul noapte, reduceți luminozitatea, punct alb"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ușurință de utilizare, acces simplu, asistență, care asigură asistență"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vedere, auz, orb, surd, abilități motorii, dexteritate, care asigură asistență, asistență, ușurință de utilizare, acces simplu, mână, ajutor"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"lupă fereastră, zoom, mărire, vedere slabă, mărește, mai mare"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"subtitrări, transcriere live, deficiențe de auz, pierderea auzului, CART, redare în scris a vorbirii, subtitrare"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contrastul culorilor"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"abilități motorii, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparate auditive, persoane cu deficiențe de auz, pierderea auzului, implanturi cohleare, dispozitive de amplificare, procesoare de sunet"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"abilități motorii, mouse, mouse extern, mouse pentru cap, mouse adaptiv, scaun cu rotile, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparate auditive, persoane cu deficiențe de auz, pierderea auzului, implanturi cohleare, dispozitive de amplificare, procesoare de sunet, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"deficiențe de auz, pierderea auzului, subtitrări, TeleTypewriter, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"trei butoane"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexteritate, abilități motorii, persoană în vârstă, artrită, leziuni de stres repetitiv, atac cerebral, tremor, scleroză multiplă, paralizie cerebrală, tremurat, mână"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"întârziere, dexteritate, persoană în vârstă"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printare"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Dezactivat"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Un serviciu de printare activat}few{# servicii de printare activate}other{# de servicii de printare activate}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Vezi aplicațiile cu cea mai mare utilizare"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Încărcarea este optimizată pentru a proteja bateria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Pentru a mări autonomia bateriei, încărcarea este optimizată"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Încărcarea este optimizată pentru a proteja bateria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Pentru a mări autonomia bateriei, încărcarea este optimizată cât timp dispozitivul este andocat"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Încărcarea este optimizată pentru a proteja bateria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Pentru a mări durata de viață a bateriei, încărcarea este optimizată cât timp dispozitivul este andocat"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Se încarcă la capacitate maximă"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Pentru a proteja bateria, încărcarea va fi optimizată data viitoare când tableta va fi andocată"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Află mai multe despre întreruperea încărcării"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Reia încărcarea"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Include activitatea din fundal cu un consum ridicat de energie"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Elimină"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Anulează"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Încarcă până la 100 %%"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problemă legată de accesoriul de încărcare"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Află mai multe despre încărcarea cu un adaptor incompatibil"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Gestionează automat aplicațiile"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"acum"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g>, <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Graficul de utilizare a bateriei"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafic cu utilizarea zilnică a bateriei"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafic cu utilizarea bateriei în fiecare oră"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Procentul privind nivelul bateriei, de la <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> la <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Utilizarea bateriei de la ultima încărcare completă"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Utilizarea bateriei pentru <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Durata de folosire a dispozitivului de la ultima încărcare completă"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Semnal pentru apel de urgență"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Setează comportamentul la efectuarea unui apel de urgență"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Activat"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Dezactivat"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup și restabilire"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Date personale"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Backup pentru date"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Nume"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tip"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresă server"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Criptare PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Secret L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identificator IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Cheie IPSec predistribuită"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificat de utilizator IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certificat CA IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certificat de server IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Afișează opțiunile avansate"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domenii de căutare DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Serverele DNS (de ex., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rute de redirecționare (ex.: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Nume de utilizator"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Parolă"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Salvează informațiile contului"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(neutilizat)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(nu verifica serverul)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(primit de la server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Acest tip de VPN nu poate fi conectat permanent"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Rețelele VPN activate permanent acceptă doar adrese de server numerice"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Trebuie specificat un server DNS pentru rețelele VPN activate permanent"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adresele serverului DNS trebuie să fie numerice pentru rețelele VPN activate permanent"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Informațiile introduse nu acceptă rețelele VPN activate permanent"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Anulează"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Închide"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blochează conexiunile fără VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Este necesară conexiunea VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nesecurizată. Treci la o rețea VPN IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nu s-a putut activa rețeaua VPN neacceptată."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Selectează un profil VPN pentru a rămâne conectat întotdeauna la rețea. Traficul de rețea va fi permis numai atunci când ești conectat(ă) la această rețea VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Niciuna"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Activarea permanentă a rețelei VPN necesită o adresă IP, atât pentru server, cât și pentru DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Alerte AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Primește buletine despre răpirile de copii"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Repetă"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Activează Managerul de apeluri"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Permite acestui serviciu să gestioneze modul de efectuare a apelurilor."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Manager de apeluri"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Alerte de urgență wireless"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operatori de rețea"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Numele punctelor de acces"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"portofel"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"plată, atingere, plăți"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gest"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"facială, deblocare, autorizare, conectare"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"chip, față, facială, deblocare, autentificare, conectare, amprentă, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versiune PRL, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Sunete la pornire"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Subtitrări live"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Adaugă subtitrări automate la fișierele media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Difuzoarele telefonului"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Difuzoarele tabletei"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Difuzoarele dispozitivului"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Căști cu fir"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Sunetul de la dispozitivele media compatibile devine mai captivant"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Dezactivat"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ce vrei să se afișeze pe ecranul de blocare?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"S-au eliminat conversațiile recente"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Conversația a fost eliminată"</string>
     <string name="clear" msgid="5092178335409471100">"Șterge"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Șterge <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Conversațiile cu prioritate și cele modificate vor apărea aici"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"După ce marchezi o conversație ca având prioritate sau modifici conversațiile în orice alt mod, acestea vor apărea aici. \n\nPentru a modifica setările conversațiilor: \nglisează în jos din partea de sus a ecranului pentru a deschide panoul de notificări tras în jos, apoi atinge lung o conversație."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizează"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Dezactivată"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fixarea aplicației"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Cu ajutorul fixării aplicației, poți fixa aplicația actuală pentru a rămâne vizibilă până la anularea fixării. Această funcție poate fi folosită, de exemplu, pentru a-i permite unui prieten de încredere să joace un anumit joc."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Atunci când o aplicație este fixată, aceasta poate deschide alte aplicații și pot fi accesate date cu caracter personal. \n\nPentru a folosi fixarea aplicației: 	\n1. activează fixarea aplicației; 	\n2. deschide Recente; 	\n3. atinge pictograma aplicației din partea de sus a ecranului, apoi atinge Fixează."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Atunci când o aplicație este fixată, aceasta poate deschide alte aplicații și pot fi accesate date cu caracter personal. \n\nDacă vrei să permiți în siguranță accesul cuiva la dispozitivul tău, folosește un utilizator invitat. \n\nPentru a folosi fixarea aplicației: 	\n1. activează fixarea aplicației; 	\n2. deschide Recente; 	\n3. atinge pictograma aplicației din partea de sus a ecranului, apoi atinge Fixează."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Atunci când o aplicație este fixată, aceasta poate deschide alte aplicații și pot fi accesate date cu caracter personal. \n\nPentru a folosi fixarea aplicației: 	\n{0,number,integer}. activează fixarea aplicației; 	\n{1,number,integer}. deschide Prezentare generală; 	\n{2,number,integer}. atinge pictograma aplicației din partea de sus a ecranului, apoi atinge Fixează."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Atunci când o aplicație este fixată, aceasta poate deschide alte aplicații și pot fi accesate date cu caracter personal. \n\nDacă dorești să permiți în siguranță accesul cuiva la dispozitivul tău, folosește un utilizator invitat. \n\nPentru a folosi fixarea aplicației: 	\n{0,number,integer}. activează fixarea aplicației; 	\n{1,number,integer}. deschide Prezentare generală; 	\n{2,number,integer}. atinge pictograma aplicației din partea de sus a ecranului, apoi atinge Fixează."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Atunci când o aplicație este fixată: \n\n•		pot fi accesate date cu caracter personal \n		(cum ar fi agenda și conținutul e-mailurilor); \n•		aplicația fixată poate deschide alte aplicații. \n\nFolosește fixarea aplicației numai cu persoane în care ai încredere."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Solicită mai întâi modelul pentru deblocare"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Solicită codul PIN înainte de a anula fixarea"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Setările aplicațiilor nefolosite"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Întrerupe activitatea în aplicațiile nefolosite"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Elimină permisiunile, șterge fișierele temporare și oprește notificările"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Gestionează aplicația dacă nu e folosită"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Elimină permisiunile, șterge fișierele temporare, oprește notificările și arhivează aplicația"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Toate aplicațiile"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Aplicații instalate"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplicații instantanee"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Disponibilă"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memorie utilizată de aplicații"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplicație a folosit memorie în ultima {time}}few{# aplicații au folosit memorie în ultima {time}}other{# de aplicații au folosit memorie în ultima {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Permite profilurile de utilizare a memoriei"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilurile de utilizare a memoriei necesită resurse de sistem suplimentare."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"S-au dezactivat profilurile de memorie"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frecvență"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Utilizare maximă"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nu s-au folosit date"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Afișare peste alte aplicații"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Permite afișarea peste alte aplicații"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Permite acestei aplicații să se afișeze peste alte aplicații pe care le folosești. Aceasta poate vedea unde atingi sau poate schimba ceea ce apare pe ecran."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Schimbă ieșirea media"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Permite aplicației să schimbe ieșirea media"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Permite aplicației să aleagă dispozitivul conectat care redă conținut audio sau video din alte aplicații. Dacă acorzi această permisiune, aplicația poate să acceseze lista dispozitivelor disponibile, cum ar fi căștile și difuzoarele, și să aleagă dispozitivul de ieșire folosit pentru a reda în stream sau a proiecta conținut audio sau video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Acces la toate fișierele"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Îmbunătățește activarea vocală"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Dispozitivul folosește informații private pentru a îmbunătăți modelul de activare vocală. Aplicațiile pot primi actualizări rezumate, agregate de la mai mulți utilizatori, pentru a păstra confidențialitatea și a îmbunătăți modelul pentru toată lumea.\n\n"<a href="">"Mai multe despre informațiile private"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Avertisment pentru date: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Limită de date: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Avertisment pentru date: <xliff:g id="ID_1">^1</xliff:g> / Limită de date: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Cuantificarea datelor de către operator poate fi diferită de cea de pe dispozitiv"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Sunt excluse datele folosite în rețele de operator"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Date utilizate: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Setează avertisment pentru date"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Actualizat acum <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Actualizat de <xliff:g id="ID_1">^1</xliff:g> chiar acum"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Actualizat chiar acum"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Afișează planul"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Vezi detaliile"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Economizor de date"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Date nerestricționate"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomalie în utilizarea bateriei"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Casete dezvoltator pentru setări rapide"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Dezactivează expirarea autorizării adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Dezactivează revocarea automată a autorizărilor adb pentru sistemele care nu s-au reconectat în timpul prestabilit (șapte zile) sau configurat de utilizator (minimum o zi)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Urmă Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzori dezactivați"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Setările profilului de serviciu"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Caută persoane de contact din directorul de serviciu în aplicațiile personale"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Glisează în sus dintr-un colț de jos pentru a invoca aplicația asistent digital"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Serviciu de completare automată"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Serviciu de completare automată prestabilit"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Parole"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Parole, chei de acces și servicii de date"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Furnizori suplimentari"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parolă}few{# parole}other{# de parole}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automată, completare, completare automată, parolă"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Parole, chei de acces și servicii de date"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Dezactivezi toate serviciile?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Parolele, cheile de acces și alte informații salvate nu vor fi disponibile pentru completare automată când te conectezi"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Schimbă serviciul preferat la &lt;xliff:g id=app_name example=Furnizor&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 încolo. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Folosești %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Poți avea doar cinci servicii activate"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Dezactivează cel puțin un serviciu ca să adaugi altul"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s folosește elementele de pe ecran ca să afle ce se poate completa automat."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limita pentru parole, chei de acces și servicii de date"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Poți avea până la cinci parole, chei de acces și servicii de date active simultan. Dezactivează un serviciu pentru a adăuga mai multe."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limita pentru parole, chei de acces și servicii de date"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Poți avea până la cinci parole, chei de acces și servicii de date active simultan. Dezactivează un serviciu pentru a adăuga mai multe."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Dezactivează"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Completare automată"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de înregistrare"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Compatibilitatea aplicațiilor poate fi modificată numai pentru aplicațiile care pot fi remediate. Instalează o aplicație care poate fi remediată și încearcă din nou."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Depinde de altă setare"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Cont"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d conturi"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Numele dispozitivului"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informații de bază"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legislație și reglementări"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Permite lansarea aplicației la scanarea unei etichete NFC.\nDacă permisiunea este activată, aplicația va fi disponibilă ca opțiune oricând este detectată o etichetă."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Redă media către"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Redă <xliff:g id="LABEL">%s</xliff:g> pe"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio se va reda pe"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Acest dispozitiv"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Indisponibil în timpul apelurilor"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Preia apelul pe"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Dezactivezi sunetul"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Pentru activare, mai întâi modifică opțiunea Apasă lung butonul de pornire din meniul de pornire."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detalii despre rețea"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Numele dispozitivului este vizibil pentru aplicațiile de pe telefon. 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="devices_title" msgid="649715719278562515">"Dispozitive"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Alege o rețea"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Deconectată"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nume"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Culoare (folosită de aplicațiile compatibile)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Salvează"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Folosește cardul SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Folosește acest card SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Dezactivat"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Pentru a dezactiva acest SIM, îndepărtează cardul SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Atinge pentru a activa <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Șterge SIM-ul"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tipul de rețea preferat"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Schimbă modul de operare a rețelei"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tipul de rețea preferat"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Consultă furnizorul de rețea în privința prețurilor."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Utilizarea datelor în aplicație"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Mod nevalid de rețea <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignoră."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Numele punctelor de acces"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Indisponibil când este conectat la <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Treci la <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Folosești cardul SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Folosești <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Doar un SIM poate fi activ odată.\n\nCând treci la <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, nu se anulează serviciul <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Doar un eSIM poate fi activ la un moment dat.\n\nTrecerea la <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nu va anula serviciul <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Doar un SIM poate fi activ odată.\n\nDacă faci această schimbare, nu se anulează serviciul <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Poți folosi două carduri SIM în același timp. Ca să folosești <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, dezactivează un alt SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Treci la <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Dezactivează <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nu, mulțumesc"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Anulează"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Schimbă"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Dezactivează"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nu se poate activa SIM-ul"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Încearcă din nou să activezi SIM-ul. Dacă problema persistă, repornește dispozitivul."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Configurează cardul SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Setează preferințele privind rețeaua mobilă pentru a folosi mai multe carduri SIM pe acest dispozitiv"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etichetează-ți cardurile SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Vei vedea aceste etichete când apelezi, trimiți mesaje și folosești date, precum și în Setări"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etichetă SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etichetă"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Selectează cardurile SIM"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Poți folosi două carduri SIM în același timp"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Setează cardurile SIM principale"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Alege ce carduri SIM folosești în mod prestabilit pentru apeluri, mesaje și date"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Cardurile SIM principale"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Apeluri"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mesaje text"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Comutarea automată a datelor"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Folosește date de pe orice card SIM, în funcție de acoperire și de disponibilitate"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Numai pentru date"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Configurează"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Înainte"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rețea mobilă"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Număr de telefon"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Culoarea și eticheta SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activarea rețelei"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Schimbarea operatorului"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> este activ"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Pentru a folosi datele mobile, funcțiile de apel și SMS-urile mai târziu, accesează setările pentru rețea"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Ștergi acest eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Dacă ștergi acest SIM, vei elimina serviciul <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> de pe acest dispozitiv.\n\nServiciile <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> nu vor fi anulate."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Șterge"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Se șterge SIM-ul…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Nu se poate șterge SIM-ul"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Acest SIM nu poate fi șters din cauza unei erori.\n\nRepornește dispozitivul și încearcă din nou."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Conectează la dispozitiv"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplicația <xliff:g id="APPNAME">%1$s</xliff:g> vrea să folosească o rețea Wi-Fi temporară pentru a se conecta la dispozitiv"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nu s-au găsit dispozitive. Asigură-te că dispozitivele sunt pornite și gata de conectare."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Apeluri de urgență"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Apelurile de urgență prin Apelare prin Wi-Fi nu sunt acceptate de operator.\nDispozitivul comută automat la o rețea mobilă pentru a face un apel de urgență.\nApelurile de urgență sunt posibile numai în zonele cu acoperire a rețelelor de telefonie mobilă."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Folosește Wi-Fi pentru apeluri ca să îmbunătățești calitatea"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Metodă de apelare de rezervă"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Dacă <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> sau roamingul nu este disponibil, folosește SIM-ul de date mobile pentru apeluri prin <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"metodă de apelare de rezervă"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mesaj MMS primit"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Nu se poate trimite mesajul MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Atinge pentru a permite mesageria MMS pentru <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> când datele mobile sunt dezactivate"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informații despre politica de serviciu"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Setări gestionate de administratorul IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Repornește cu pagini pe 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Repornește cu nucleu compatibil cu pagini pe 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Repornești cu un nucleu compatibil cu pagini pe 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"AVERTISMENT: e posibil ca unele aplicații să nu fie compatibile cu acest mod. Dispozitivul va reporni după confirmare."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Repornești cu un nucleu compatibil cu pagini pe 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Dispozitivul va reporni după confirmare."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Nu s-a putut actualiza nucleul la unul compatibil cu pagini pe 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Se aplică modificarea"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Handler pentru rapoartele de eroare"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Stabilește ce aplicație gestionează comanda rapidă pentru Raportul de eroare pe dispozitivul tău."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Pentru a relua rapid redarea, playerul media rămâne deschis în Setări rapide"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Afișează conținutul media pe ecranul de blocare"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Pentru a relua rapid redarea, playerul media rămâne deschis pe ecranul de blocare"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Afișează recomandările de conținut media"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Afișează recomandările Asistentului privind conținutul media"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Pe baza activității tale"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ascunde playerul"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Afișează playerul"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Cartele eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Activ"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inactiv"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Prestabilit pentru <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"apeluri"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Sunetul de la dispozitivele media compatibile devine mai captivant"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Urmărirea mișcărilor capului"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Sunetul se modifică pe măsură ce miști capul, pentru o experiență mai naturală"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Permisiunile de sincronizare"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Acordă pentru <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> aceleași permisiuni pentru aplicație pe care le ai pe <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sincronizează permisiunile de pe telefon"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Oferă-i ceasului aceleași permisiuni pentru aplicație pe care le-ai oferit pe telefon"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipul de dispozitiv audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Necunoscut"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Difuzor"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Mediu"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Ridicat"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aplicația se poate deschide într-o singură fereastră"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Funcție activată"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Funcție dezactivată"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Comandă rapidă dezactivată"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Dezactivată"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Activată"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Dezactivată"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Activată"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Dezactivată"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Întunecă ecranele luminoase și deschide ecranele întunecate"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Mărește ecranul"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Dezactivată"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Dezactivată"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Activată"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Dezactivate"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Activate"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Parola a fost configurată"</string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index b4b05f1..8954f52 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Через 1 минуту"</item>
     <item msgid="1574040255478150028">"Через 5 минут"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 5d9a093..0fce793 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Доступ к настройкам для разработчиков есть только у администраторов."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Система"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"В зоне обслуживания"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Вне зоны обслуживания"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Провести вверх, чтобы продолжить"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Если вы сложите телефон, то сможете продолжить использовать приложение, проведя вверх по переднему экрану. Если ничего не делать, экран заблокируется через несколько секунд."</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Похожие"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Рингтон и будильники"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Звук во время звонков"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Мультимедиа"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Уведомления и системные звуки"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Медиа и системные звуки"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Уведомления"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"По умолчанию параметры вывода звука определяются отдельными приложениями."</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Bluetooth-устройство без названия"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Поиск"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Модуль Bluetooth включен"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Показать все"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Показать все"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Стилус"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Нажатие кнопки на конце стилуса"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (рабочий профиль)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Подключение к потоку LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Аудиопотоки рядом"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудиопотоки"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Подключиться к аудиопотоку, используя QR-код"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Аудиопотоки поблизости не найдены."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Дата и время"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси-сервер"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Очистить"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Выбрать язык для отдельных приложений можно в их настройках."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Подробнее о языках приложений…"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Сменить язык системы на %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Добавить %s в предпочтительные языки?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Приложения и сайты смогут узнавать, что этот язык есть в вашем списке предпочитаемых."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Региональные настройки и другие параметры устройства будут изменены."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Изменить"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s недоступен"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Суббота"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Если в приложении нельзя выбрать регион, будут использоваться настройки по умолчанию."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Узнайте больше о языковых настройках"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Дополнительные настройки"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Форма обращения"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Укажите предпочтительную форму обращения."</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Информация о том, какую форму обращения вы предпочитаете, может использоваться для персонализации приложений."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не указано"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"В женском роде"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"В мужском роде"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Нейтральные"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Удалить выбранный язык?}one{Удалить выбранные языки?}few{Удалить выбранные языки?}many{Удалить выбранные языки?}other{Удалить выбранные языки?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст будет показан на другом языке."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Невозможно удалить все языки"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Местоположение"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Определять местоположение"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Откл."</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Включено. Доступ к данным о местоположении есть у # приложения.}one{Включено. Доступ к данным о местоположении есть у # приложения.}few{Включено. Доступ к данным о местоположении есть у # приложений.}many{Включено. Доступ к данным о местоположении есть у # приложений.}other{Включено. Доступ к данным о местоположении есть у # приложения.}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Включено. Доступ к данным о местоположении есть у # приложения.}one{Включено. Доступ к данным о местоположении есть у # приложения.}few{Включено. Доступ к данным о местоположении есть у # приложений.}many{Включено. Доступ к данным о местоположении есть у # приложений.}other{Включено. Доступ к данным о местоположении есть у # приложения.}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Загрузка…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Приложения с доступом к устройствам поблизости могут определять относительное местоположение подключенных устройств."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ к данным о местоположении для приложений и сервисов отключен. Если вы позвоните по номеру экстренной службы или отправите на него сообщение, данные о местоположении вашего устройства могут быть переданы спасателям."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Подробнее о настройках местоположения…"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Подробнее о настройках местоположения…"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Настроить доступ к геоданным можно в разделе \"Настройки &gt; Безопасность и конфиденциальность &gt; Настройки конфиденциальности\""</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Рекомендуем использовать защитное стекло или пленку из серии \"Сделано для Google\". Устройства с другими стеклами или пленками могут не распознавать отпечаток пальца ребенка."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Разблокировка с помощью часов"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Если вы настроили фейсконтроль и разблокировку по отпечатку пальца, телефон будет предлагать использовать отпечаток, когда вы в маске или вокруг вас темно.\n\nВы можете снимать блокировку с помощью часов, когда у системы не получается распознать ваше лицо или отпечаток пальца."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Вы можете снимать блокировку с помощью часов, когда системе не удается распознать ваш отпечаток пальца."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Вы можете снимать блокировку с помощью часов, когда системе не удается распознать ваше лицо."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Если вы настроили фейсконтроль и разблокировку по отпечатку пальца, то отпечаток будет запрашиваться, когда вы в маске или вокруг вас темно.\n\nС помощью часов удобно разблокировать телефон в различных ситуациях, например когда у вас мокрые пальцы или не распознается лицо."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"С помощью часов удобно разблокировать телефон в различных ситуациях, например когда не распознается отпечаток пальца."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"С помощью часов удобно разблокировать телефон в различных ситуациях, например когда не распознается лицо."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Используйте отпечаток пальца или часы, чтобы"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Используйте фейсконтроль или часы, чтобы"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Способы использования"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Модель лица и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Модель лица, отпечаток пальца и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Модель лица, отпечатки пальцев и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Описание функции"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Часы должны быть разблокированы, а также находиться на вашем запястье и рядом с телефоном. Пока часы на запястье, они не блокируются заново."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Если телефон разблокирован с помощью часов, на них появляется уведомление. Вы можете нажать на него, чтобы снова заблокировать телефон."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Управление функцией"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Если вы больше не хотите снимать блокировку с помощью часов, удалите их в настройках."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Нажмите на уведомление"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Проведите вверх по заблокированному экрану"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Выберите часы"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Доступные часы"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Отмена"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Подтвердить"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Готово!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Теперь вы можете использовать часы для разблокировки телефона, когда проводите вверх по его заблокированному экрану или нажимаете на уведомление."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Разблокировка с помощью часов"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Вы можете использовать часы для разблокировки телефона, когда проводите вверх по заблокированному экрану или нажимаете на уведомление."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Чтобы вы могли использовать разблокировку с помощью часов, они должны быть разблокированы, а также находиться на вашем запястье и рядом с подключенным к ним телефоном. Если соединение прервется, вам потребуется разблокировать телефон, прежде чем использовать разблокировку с помощью часов.\n\nВажно!\nТелефон нельзя связать с несколькими часами одновременно. Чтобы добавить часы, удалите уже подключенные."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Подробнее о разблокировке с помощью часов…"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Добавить часы"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Удалить часы"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отпечаток пальца и фейсконтроль"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Фейсконтроль и отпечаток пальца для работы"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Требуется настройка"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Безопасность"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Конфиденциальность"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Рабочий профиль"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Личное пространство"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Спрячьте приложения в личное пространство и закройте доступ к нему"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Создайте отдельное пространство для личных приложений, которое можно скрыть или защитить с помощью блокировки."</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Блокировка личного пространства"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Вы можете использовать тот же способ разблокировки, который используется для экрана, или выбрать другой."</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Использовать способ блокировки, как на устройстве"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Фейсконтроль и разблокировка по отпечатку пальца"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Разблокировка по отпечатку пальца"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Фейсконтроль"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Нажмите, чтобы настроить"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Разблокировка по отпечатку пальца для личного пространства"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Фейсконтроль для личного пространства"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Способы разблокировки"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Тот же способ блокировки, что и для экрана устройства"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Изменить способ блокировки личного пространства?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Блокировать автоматически"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Автоматическая блокировка личного пространства"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Можно сделать так, чтобы личное пространство автоматически блокировалось, если вы не используете устройство какое-то время."</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Каждый раз при блокировке устройства"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Через 5 минут бездействия"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Никогда"</string>
+    <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_deleted" msgid="7825768516955610897">"Личное пространство удалено."</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Не получилось удалить личное пространство."</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Личное пространство разблокировано."</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Настройте блокировку экрана"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Чтобы использовать личное пространство, настройте блокировку экрана на этом устройстве."</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Настроить"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Отмена"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Отмена"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Создать"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Создайте личное пространство"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Создайте отдельное пространство для личных приложений, которое можно скрыть или защитить с помощью блокировки."</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Как это работает"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Личное пространство находится в нижней части списка приложений"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Доступ к личному пространству защищен с помощью блокировки"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Когда доступ к личному пространству заблокирован, уведомления из добавленных в него приложений скрываются"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Приложения, добавленные в личное пространство, не показываются в разделе \"Управление разрешениями\", на панели управления разрешениями и в других настройках, когда доступ к личному пространству заблокирован.\n\nЛичное пространство нельзя перенести на другое устройство. Для этого потребуется создать новое личное пространство.\n\nДоступ к вашему личному пространству может получить человек, который установит на вашем устройстве вредоносные приложения или подключит его к компьютеру."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Создание личного пространства…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Когда доступ к личному пространству заблокирован, уведомления из добавленных в него приложений скрываются"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Чтобы делиться фото и файлами из приложений, добавленных в личное пространство, разблокируйте доступ к нему"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"В вашем личном пространстве уже установлены некоторые приложения"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Не удалось создать личное пространство"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Повторить попытку"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Использовать способ, настроенный для экрана?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Для личного пространства можно установить тот же способ, который используется для блокировки экрана, или выбрать другой."</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Использовать способ, настроенный для экрана"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Выбрать другой способ"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Готово"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Чтобы найти личное пространство, перейдите в список приложений и прокрутите экран вниз."</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Готово"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Чтобы найти личное пространство, прокрутите экран вниз."</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Выберите способ разблокировки доступа к личному пространству"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Вы можете разблокировать личное пространство с помощью отпечатка пальца. В целях безопасности потребуется установить дополнительный способ разблокировки."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Задайте PIN-код для личного пространства"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Задайте пароль для личного пространства"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Создайте ключ для личного пространства"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Чтобы показать личное пространство (интерфейс в разработке)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Откройте приложение \"Настройки\"."</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Выберите \"Безопасность и конфиденциальность &gt; Личное пространство &gt; Скрыть личное пространство, если доступ к нему заблокирован\"."</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Отключите переключатель \"Скрыть личное пространство, если доступ к нему заблокирован\"."</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Примечание для сотрудников Google. Разработка этой функции ещё не завершена."</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Возможно, потребуется ввести ключ доступа на другом устройстве."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Подтвердите, чтобы подключиться к координированному набору."</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Разрешить доступ к контактам и журналу звонков"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Разрешить доступ к контактам и журналу звонков"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Эта информация будет использоваться для оповещений о звонках и других функций"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не удалось подключиться к <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Доступные устройства"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Режим полета"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Сообщать о наличии общедоступных сетей"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Сообщать о наличии общедоступных сетей с хорошим сигналом"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Разрешить сети с шифрованием WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP – это устаревший протокол безопасности с низким уровнем защиты"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Ваш оператор запрещает использовать сети с шифрованием WEP из-за их низкого уровня защиты"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Включать Wi‑Fi автоматически"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Включать Wi‑Fi в зоне действия сохраненных сетей (например, домашней) с хорошим сигналом"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Недоступно, поскольку доступ к данным о местоположении запрещен. "<annotation id="link">"Включите его"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Эта функция позволяет приложениям и сервисам искать беспроводные сети, даже когда Wi-Fi отключен. Это может использоваться, например, для улучшения работы функций и сервисов, которым нужны данные о местоположении."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Включить"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Поиск сетей Wi‑Fi включен."</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Эта сеть использует устаревший протокол безопасности с низким уровнем защиты."</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Сеть \"<xliff:g id="NAME">%1$s</xliff:g>\" заблокирована"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Для этой сети применяется устаревший протокол безопасности (WEP) с низким уровнем защиты. Если вы по-прежнему хотите подключиться, разрешите использовать сети с шифрованием WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Ваш оператор запрещает подключаться к этой сети, поскольку она использует устаревший протокол безопасности с низким уровнем защиты."</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Разрешить сети с WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Закрыть"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Расширенные настройки"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Раскрывающийся список расширенных настроек"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"развернуть"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Не отключаться от сети Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Больше не показывать"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Подключить"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi включен"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Устройство подключено к сети <xliff:g id="NETWORK_NAME">%1$s</xliff:g>."</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Подключение к сети \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\"…"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Подключение…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Не удалось подключиться к сети."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Вы не находитесь в зоне действия сети."</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Удалить"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Изменить"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Не удалось удалить сеть."</string>
     <string name="wifi_save" msgid="2312643132472226807">"Сохранить"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Не удалось сохранить сеть."</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Отмена"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобильный интернет"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – заряжается"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – заряжается"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Подключение к точке доступа"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Качество подключения"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сохраненные сети"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Пароль не задан"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Название точки доступа"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Пароль точки доступа"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Диапазон частот Wi-Fi"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Автоматически выключать точку доступа"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Если нет подключенных устройств"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Расширенная совместимость"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Высокая частота кадров в играх"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Не ограничивать максимальную частоту кадров в играх на уровне <xliff:g id="FRAME_RATE">%1$d</xliff:g> Гц"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Плавный экран"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Когда адаптивный спящий режим включен, устройство определяет через фронтальную камеру, смотрит ли кто-то на экран. Эта функция работает на уровне устройства – изображения не сохраняются и не отправляются в Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Включить адаптивный спящий режим"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Не отключать экран, пока вы смотрите на него"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Чем дольше экран остается включенным, тем быстрее разряжается батарея."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера заблокирована"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Для работы функции \"Распознавание лиц\" нужно разблокировать камеру."</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Чтобы адаптивный спящий режим работал, камера должна быть разблокирована"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI-код (слот SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI-код (слот SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (основной)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Для просмотра выберите сохраненную сеть"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI-код"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEISV-код"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Версия PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Уровень заряда батареи"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Совместные"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Совместные настройки"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Сохранить"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Отмена"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Необходимо указать имя."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Необходимо указать APN."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Поле MCC должно содержать 3 цифры."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Поле MNC должно содержать 2 или 3 цифры."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Оператор запретил добавлять точки доступа этого типа (%s)."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Значение в поле MMSC недействительно."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Восстановление настроек APN по умолчанию..."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Сбросить настройки"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Настройки по умолчанию восстановлены."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Сбросить"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Настройки Bluetooth и Wi‑Fi сброшены."</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Удалить все данные eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Это действие не отменит ваши тарифные планы. Чтобы скачать новые SIM-карты, обратитесь к оператору связи."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Сбросить настройки"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Сбросить все настройки сети? Это действие нельзя отменить."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Сбросить все настройки сети и удалить карты eSIM? Это действие нельзя отменить."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Сбросить настройки?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Этот пользователь не может сбрасывать настройки сети"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Сетевые настройки сброшены"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Не удалось стереть данные SIM-карт"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Не удалось удалить карты eSIM из-за ошибки.\n\nПерезапустите устройство и повторите попытку."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Удалить все данные"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Удалить все данные"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музыка;"</li>\n<li>"фото;"</li>\n<li>"другие данные."</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Вы не потеряете доступ к услугам оператора связи."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Вся личная информация и скачанные приложения будут удалены. Это действие нельзя отменить."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Вся личная информация, в том числе данные SIM-карт и скачанные приложения, будут удалены. Это действие нельзя отменить."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Удалить все данные?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Этот пользователь не может выполнять сброс настроек"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Удаление…"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Точка доступа, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Доступ к Интернету закрыт для других устройств"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Отключено"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Режим модема"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Не использовать точку доступа Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Предоставлять доступ к Интернету только через USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Предоставлять доступ к Интернету только через Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Предоставлять доступ к Интернету только через Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Предоставлять доступ к Интернету только через USB и Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Предоставлять доступ к Интернету только через USB и Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Предоставлять доступ к Интернету только через Bluetooth и Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Предоставлять доступ к Интернету только через USB, Bluetooth и Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-модем"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-модем"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-модем"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Точка доступа и режим модема позволяют подключать другие устройства к интернету через Wi-Fi или мобильную сеть. Приложения также могут создавать точки доступа, чтобы вы могли делиться контентом с устройствами поблизости."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Справка"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобильная сеть"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифный план"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Приложение для SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Приложение для обмена SMS"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Использовать <xliff:g id="NEW_APP">%1$s</xliff:g> вместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> для обмена SMS-сообщениями?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Сменить ассистента Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Использовать приложение \"<xliff:g id="NEW_APP">%1$s</xliff:g>\" вместо приложения \"<xliff:g id="CURRENT_APP">%2$s</xliff:g>\" для управления сетевыми подключениями?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Использовать приложение \"<xliff:g id="NEW_APP">%s</xliff:g>\" для управления сетевыми подключениями?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Неизвестный оператор связи"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"У оператора \"<xliff:g id="OPERATOR">%1$s</xliff:g>\" нет веб-сайта для синхронизации"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Вставьте SIM-карту и перезагрузите устройство"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Подключитесь к Интернету"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Последние запросы местоположения"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Геоданные для рабочего профиля"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Доступ приложений к геоданным"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Закрыть доступ"</string>
     <string name="controls_label" msgid="8671492254263626383">"Элементы управления"</string>
     <string name="force_stop" msgid="2681771622136916280">"Остановить"</string>
+    <string name="archive" msgid="9074663845068632127">"Отправить в архив"</string>
+    <string name="restore" msgid="7622486640713967157">"Восстановить"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Всего"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Размер приложения"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"На USB-накопителе"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Не удалось определить размер пакета."</string>
     <string name="version_text" msgid="7628938665256107608">"Версия <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Переместить"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Не удалось отправить в архив."</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Отправлено в архив: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>."</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Не удалось восстановить приложение."</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Восстановление приложения \"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\"…"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Другая операция переноса уже выполняется."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Недостаточно места."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Приложение не установлено."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Доступная экранная клавиатура"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Управление экранными клавиатурами"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Параметры"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Специальные возможности"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физическая клавиатура"</string>
     <string name="show_ime" msgid="4334255501724746849">"Использовать экранную клавиатуру"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Не скрывать экранную клавиатуру, когда включена физическая"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Контроль повторного нажатия"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Включите функцию специальных возможностей \"Контроль повторного нажатия\" для физической клавиатуры"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Залипание клавиш"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Включите функцию специальных возможностей \"Залипание клавиш\" для физической клавиатуры"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Быстрые клавиши"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показывать список сочетаний клавиш"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавиатуры и инструменты рабочего профиля"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Сортировать по времени исп."</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Сортировать по посл. использ."</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Сортировать по названию"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Последнее использование"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Последнее использование"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"никогда"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Время использования"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Спец. возможности"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Настройки специальных возможностей"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Продолжить"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Отмена"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Настройки увеличения"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Увеличение по тройному нажатию"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Увеличение с помощью кнопки"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Увеличение с помощью кнопки и по тройному нажатию"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"О функции \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Чтобы открыть, дважды нажмите на экран двумя пальцами"</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="860548190334486449">"Чтобы включить или отключить увеличение, дважды нажмите на любую область экрана двумя пальцами."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Чтобы воспользоваться специальной возможностью, проведите вверх от нижнего края экрана тремя пальцами.\n\nДля переключения между функциями проведите по экрану снизу вверх тремя пальцами и задержите их."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ОК"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Настройки кнопки"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Настройки кнопки"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Быстрый запуск функции \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Кнопка специальных возможностей"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Жест специальных возможностей"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Двойное нажатие двумя пальцами"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"двойное нажатие двумя пальцами"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Быстро нажмите на экран двумя пальцами {0,number,integer} раза"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тройное нажатие на экран"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"тройное нажатие на экран"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Быстро коснитесь экрана {0,number,integer} раза (этот жест может замедлить работу устройства)."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Подробнее о кнопке специальных возможностей и жесте…"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Используется кнопка специальных возможностей. При навигации с помощью трех кнопок жест недоступен."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Быстрый доступ к специальным возможностям"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Инструкция"</b>\n"1. Откройте настройки специальных возможностей.\n2. Выберите нужную функцию и нажмите на ее значок.\n3. Укажите, что использовать для вызова функции: кнопку или жест."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Инструкция"</b>\n"1. Откройте настройки специальных возможностей.\n2. Выберите нужную функцию и нажмите на ее значок.\n3. Назначьте кнопку для функции."</string>
+    <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_size_title" msgid="5785110470538960881">"Размер"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Кнопка питания завершает вызов"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Крупный указатель мыши"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Сделать указатель мыши более заметным"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Включить тёмную тему в приложениях"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Действует в приложениях без тёмной темы. Возможны проблемы с экраном, например инвертирование цвета."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Убрать анимации"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Уменьшить количество анимаций на экране"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Монофо­нический звук"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Сервис может отслеживать ваше взаимодействие с приложениями и датчиками устройства и давать приложениям команды от вашего имени"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Разрешить"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Отклонить"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Остановить"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Отмена"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Остановить сервис \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Чтобы отключить сервис \"<xliff:g id="SERVICE">%2$s</xliff:g>\", нажмите \"<xliff:g id="STOP">%1$s</xliff:g>\"."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Отключить"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Оставить"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Отключить <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Службы не установлены"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Сервис не выбран"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Нет описания"</string>
     <string name="settings_button" msgid="2195468788019730377">"Настройки"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"чувствительность к свету, светобоязнь, тёмная тема, мигрень, головная боль, режим для чтения, ночной режим, снижение яркости, белая точка"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Простой доступ, удобство использования, помощь, вспомогательный"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"зрение, слух, слепой, глухой, моторика, двигательные возможности, вспомогательный, содействие, простота использования, простой доступ, рука, помощь"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Увеличение, лупа, масштаб, слабое зрение, увеличить, приблизить, сделать больше"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Субтитры, расшифровка, слабый слух, потеря слуха, Прямая расшифровка, расшифровка речи, преобразование речи в текст, распознавание речи"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"цветовая контрастность"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"мышь, двигательные нарушения"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"слуховые аппараты, слабослышащий, потеря слуха, кохлеарные импланты, устройства усиления звука, звуковые процессоры"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"моторика, мышь, внешняя мышь, управление курсором с помощью движений головы, адаптивная мышь, инвалидная коляска, джойстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"слуховые аппараты, слабослышащий, потеря слуха, кохлеарные импланты, устройства усиления звука, звуковые процессоры, ЕДДС"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"слабый слух, потеря слуха, субтитры, телетайп"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"с помощью трех кнопок"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"двигательные возможности, моторика, пожилой человек, артрит, инсульт, тремор, рассеянный склероз, ДЦП, дрожание, травма от повторяющихся нагрузок, рука"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"задержка, двигательные возможности, пожилой человек"</string>
     <string name="print_settings" msgid="8519810615863882491">"Печать"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Отключено"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Включена 1 служба печати}one{Включена # служба печати}few{Включено # службы печати}many{Включено # служб печати}other{Включено # службы печати}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Посмотрите, какие приложения расходуют больше всего заряда."</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Оптимизация зарядки для защиты батареи"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Зарядка оптимизируется, чтобы продлить срок службы батареи."</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Оптимизация зарядки для защиты батареи"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Чтобы продлить срок службы батареи, зарядка оптимизируется при подключении к док-станции."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Оптимизация зарядки для защиты батареи"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Чтобы продлить срок службы батареи, зарядка оптимизируется при подключении к док-станции."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Полная зарядка"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"При следующем подключении планшета к док-станции зарядка будет оптимизирована для защиты батареи."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Подробнее о приостановке зарядки"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Продолжить зарядку"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Идут фоновые процессы с высоким потреблением энергии."</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Удалить"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Отмена"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Зарядить полностью"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Проблема с зарядным устройством"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Подробнее об использовании несовместимых зарядных устройств"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Автоматическое управление приложениями"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"Cейчас"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g>, <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Диаграмма расхода заряда батареи"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Диаграмма расхода заряда батареи по дням"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Диаграмма расхода заряда батареи по часам"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Уровень заряда батареи в процентах от <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> до <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Расход заряда батареи с момента последней полной зарядки"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Расход заряда батареи (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Время использования устройства с момента последней полной зарядки"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал набора номера при экстренных вызовах"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Настроить режим работы при экстренном вызове"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Резервное копирование"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Включено"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Отключено"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Резервное копирование и восстановление"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Возврат к заводским настройкам"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Резервирование данных"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Название"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Тип"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Адрес сервера"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Шифрование PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Ключ L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Идентификатор IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Общий ключ IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Сертификат пользователя IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Сертификат ЦС IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Сертификат сервера IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Дополнительные параметры"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Домены для поиска DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-серверы (например, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Маршруты пересылки (например, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Имя пользователя"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Пароль"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Сохранить учетные данные"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(не используется)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(не проверять сервер)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(получено с сервера)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Такая сеть VPN не может быть постоянной"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Постоянная VPN поддерживает только числовые адреса серверов"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Для постоянной VPN-сети должен быть задан DNS-сервер"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Для постоянной VPN-сети адрес DNS-сервера должен быть числовым"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Исходя из введенной информации, эта VPN не может использоваться как постоянная"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Отмена"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Закрыть"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Блокировать соединения без VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Использовать сеть VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Эта сеть VPN не защищена. Перейдите на IKEv2 VPN."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не удалось включить неподдерживаемую сеть VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Выберите постоянную сеть VPN: трафик будет разрешен только при подключении к этой сети."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Не использовать"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Укажите IP-адрес для сервера и DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Оповещения AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Получать уведомления о пропавших детях"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Повторить"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Включить менеджер звонков"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Управление звонками."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Менеджер звонков"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Экстренные оповещения по беспроводным сетям"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Операторы связи"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Названия точек доступа"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"кошелек"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"Бесконтактная оплата"</string>
     <string name="keywords_backup" msgid="707735920706667685">"создать резервную копию"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"жест"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"фейсконтроль, аутентификация, вход"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"фейсконтроль, разблокировка, разблокировать, аутентификация, вход, войти, отпечаток пальца, биометрия"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, версия prl, imeisv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Звуки при включении устройства"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Автоматические субтитры"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Автоматически добавлять субтитры"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Динамики телефона"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Динамики планшета"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Динамики устройства"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Проводные наушники"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Звук из поддерживаемых источников становится более выразительным"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Отключено"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Недавние разговоры удалены"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Разговор удален"</string>
     <string name="clear" msgid="5092178335409471100">"Очистить"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Удалить разговор \"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>\""</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Здесь будут появляться важные и измененные разговоры"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Если вы измените настройки разговора, например отметите его как важный, он появится в этом разделе. \n\nЧтобы изменить настройки разговора, откройте панель уведомлений, проведя пальцем вниз от верхней части экрана, а затем нажмите на разговор и удерживайте.\n"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Свернуть"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Отключено"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Закрепление приложений"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Эта функция позволяет закрепить экран определенного приложения, закрыв доступ к другим программам на телефоне. Ее можно использовать, например, если вы хотите дать другу поиграть в игру на вашем устройстве."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Закрепленное приложение может открывать другие приложения и получать доступ к персональным данным. \n\nЧтобы закрепить приложение: 	\n1. Включите функцию в настройках. 	\n2. Нажмите \"Обзор\". 	\n3. Коснитесь значка приложения вверху экрана и выберите \"Закрепить\"."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Закрепленное приложение может открывать другие приложения и получать доступ к персональным данным. \n\nПоэтому, если вы хотите дать устройство другому человеку и не беспокоиться о безопасности данных, рекомендуем включить гостевой режим. \n\nЧтобы закрепить приложение: 	\n1. Включите функцию в настройках. 	\n2. Нажмите \"Обзор\". 	\n3. Коснитесь значка приложения вверху экрана и выберите \"Закрепить\"."</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Остановить работу приложения при простое"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Удалить разрешения и временные файлы, прекратить отправку уведомлений и перенести приложение в архив"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Все приложения"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Установленные приложения"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Приложения с мгновенным запуском"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Свободно"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Использование памяти приложениями"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 приложение использовало память за предшествующий период ({time})}one{# приложение использовало память за предшествующий период ({time})}few{# приложения использовали память за предшествующий период ({time})}many{# приложений использовали память за предшествующий период ({time})}other{# приложения использовали память за предшествующий период ({time})}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Вкл. профилирование использования памяти"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Профилирование использования памяти потребляет дополнительные системные ресурсы"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Профилирование памяти отключено"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Как часто используется"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Макс. памяти использовано"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Трафик не расходовался"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Поверх других приложений"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Показывать поверх других приложений"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Элементы интерфейса будут показываться поверх других окон. Это приложение сможет получать данные о ваших нажатиях, а также менять то, что показано на экране."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Смена источника вывода медиа"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Разрешить управление источником вывода медиа"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Разрешить этому приложению управление тем, на каком из подключенных устройств будет воспроизводиться аудио и видео из других приложений. Приложение получит доступ к списку подключенных устройств, таких как наушники и колонки, и сможет устанавливать устройство вывода, на котором будет транслироваться аудио и видео."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Доступ ко всем файлам"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Улучшать активацию голосом"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Чтобы улучшать модель активации голосом, это устройство использует личные данные. Приложения могут получать объединенную информацию большого числа пользователей. Это позволяет обеспечивать конфиденциальность и совершенствовать модель для всех.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Предупреждение о расходе трафика: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Лимит трафика: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Предупреждение о расходе трафика: <xliff:g id="ID_1">^1</xliff:g>. Лимит трафика: <xliff:g id="ID_2">^2</xliff:g>."</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Данные оператора связи могут отличаться от данных на устройстве."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Без учета трафика, переданного через сети оператора связи."</string>
     <string name="data_used_template" msgid="8229342096562327646">"Расход: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Установить предупреждение"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Обновлено <xliff:g id="ID_1">^2</xliff:g> назад"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Обновлено только что оператором <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Обновлено только что"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Посмотреть тарифный план"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Подробнее"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Экономия трафика"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Неограниченный мобильный интернет"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Ненормальный расход заряда батареи"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Элементы в быстрых настройках"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Отключить автоматический отзыв авторизации adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Отключить автоматический отзыв авторизации adb для систем, которые не переподключались в течение срока, заданного по умолчанию (7 дней) или указанного пользователем (минимум 1 день)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Трассировка Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Датчики отключены"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Настройки рабочего профиля"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Поиск контактов из рабочего профиля в личных приложениях"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Автозаполнение"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Сервис автозаполнения по умолчанию"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Пароли"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сервисы для паролей, ключей доступа и данных"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Дополнительные поставщики"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# пароль}one{# пароль}few{# пароля}many{# паролей}other{# пароля}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"автозаполнение, автоматически, заполнение, пароль"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"данные, ключ доступа, пароль"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"авто, заполнение, автозаполнение, данные, ключ доступа, пароль"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Сервисы для паролей, ключей доступа и данных"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Отключить все сервисы?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;Пароли, ключи доступа и другая сохраненная информация не будут подставляться при входе."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Сделать сервис \"&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;\" предпочтительным?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;Новые пароли, ключи доступа и другие данные будут сохраняться в нем. Приложение \"&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;\" может анализировать содержимое экрана, чтобы находить поля, для которых доступно автозаполнение."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Использовать %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Можно указать не более пяти сервисов"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Чтобы добавить сервис, отключите хотя бы один из уже выбранных."</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s анализирует содержимое экрана и находит поля, которые можно заполнить автоматически."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Количество сервисов для паролей, ключей доступа и данных ограничено"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Активными одновременно могут быть не более пяти сервисов для паролей, ключей доступа и данных. Чтобы добавить новый сервис, отключите уже используемый."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Выбрано слишком много сервисов"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Одновременно можно использовать не более пяти сервисов для хранения паролей, ключей доступа и данных. Чтобы добавить сервис, отключите один из уже выбранных."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Отключить"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Автозаполнение"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Журнал"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Настраивать изменение параметров совместимости можно только для приложений, доступных для отладки. Установите такое приложение и повторите попытку."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Эту настройку нельзя изменить, так как она зависит от других параметров."</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Аккаунт"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Аккаунтов: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Название устройства"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Основная информация"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Юридические и нормативные требования"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Разрешить этому приложению запускаться при сканировании NFC-метки.\nЕсли разрешение предоставлено, это приложение можно выбирать для обработки NFC-меток."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Где воспроизводить"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>: где воспроизводить"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Где будет воспроизводиться аудио:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Это устройство"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Недоступно во время вызовов"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Ответить с помощью"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Отключение звука"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Чтобы включить эту функцию, сначала установите для параметра \"Долгое нажатие кнопки питания\" значение \"Меню кнопки питания\"."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Сведения о сети"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"У приложений на телефоне есть доступ к названию устройства. Его могут видеть другие пользователи, когда вы подключаетесь к устройствам по Bluetooth или настраиваете точку доступа Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Устройства"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Выбрать сеть"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Не подключено"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Название"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Цвет (для совместимых приложений)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Сохранить"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Использовать эту SIM-карту"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Использовать эту SIM-карту"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Отключено"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Чтобы отключить эту SIM-карту, извлеките ее из устройства."</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Нажмите, чтобы включить SIM-карту оператора \"<xliff:g id="CARRIER">%1$s</xliff:g>\""</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Стереть SIM-карту"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Предпочтительный тип сети"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Изменение режима работы сети"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Предпочтительный тип сети"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Информацию о тарифах вы можете получить у интернет-провайдера."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Трафик приложений"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Недопустимый режим сети (<xliff:g id="NETWORKMODEID">%1$d</xliff:g>). Не используется."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Точки доступа"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"точка доступа"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Недоступны при подключении к <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Переключиться на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Переключиться на SIM-карту?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Использовать <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Нельзя использовать несколько SIM-карт одновременно.\n\nВы можете переключиться на оператора \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\". Ваш тарифный план у оператора \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\" останется активным."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Нельзя использовать несколько карт eSIM одновременно.\n\nВы можете переключиться на eSIM \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\". Это действие не отменит ваш тарифный план оператора \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\"."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Нельзя использовать несколько SIM-карт одновременно.\n\nВаш тарифный план у оператора \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\" останется активным."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Вы можете использовать две SIM-карты одновременно. Чтобы выбрать <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, отключите другую SIM-карту."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Переключиться на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Отключить <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Нет, спасибо"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Отмена"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Переключиться"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Отключить"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не удалось активировать SIM-карту"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Попробуйте включить SIM-карту ещё раз. Если проблема не исчезнет, перезапустите устройство."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Настройте SIM-карту"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Настройте параметры мобильной сети для использования нескольких SIM-карт на этом устройстве."</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Назначьте ярлыки для SIM-карт"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Эти ярлыки будут показываться при совершении звонков, отправке текстовых сообщений, использовании мобильного трафика, а также в настройках."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Ярлык SIM-карты"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Ярлык"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Выберите нужные SIM-карты"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Вы можете использовать две SIM-карты одновременно."</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Назначьте основные SIM-карты"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Выберите, какие SIM-карты будут использоваться по умолчанию для звонков, текстовых сообщений и доступа к интернету."</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Основные SIM-карты"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Звонки"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Текстовые сообщения"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Автопереключение моб. трафика"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Используйте мобильный трафик любой SIM-карты в зависимости от покрытия и доступности."</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Только доступ к интернету"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Настроить"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Далее"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобильная сеть"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Номер телефона"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Ярлык и цвет SIM-карты"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активация сети"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Переключение между операторами связи"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Сеть \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\" активна"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Чтобы использовать мобильный интернет, звонки и SMS, измените настройки сети."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-карта"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Удалить эту eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Если вы сотрете эту SIM-карту, оператор \"<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>\" перестанет обслуживать устройство.\n\nТарифный план оператора \"<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>\" останется активным."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Стереть"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Удаление данных SIM-карты…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Не удалось стереть данные SIM-карты"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Не удалось стереть данные этой SIM-карты из-за ошибки.\n\nПерезагрузите устройство и повторите попытку."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Подключение к устройству"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Приложение \"<xliff:g id="APPNAME">%1$s</xliff:g>\" хочет использовать временную сеть Wi‑Fi для подключения к устройству."</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Устройства не найдены. Убедитесь, что они включены и доступны для подключения."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Экстренные вызовы"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Ваш оператор не поддерживает экстренные вызовы по Wi-Fi.\nПри звонках в экстренные службы устройство автоматически переключается на мобильную сеть.\nЭкстренные вызовы можно совершать только в радиусе действия сотовой связи."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Используйте Wi‑Fi для звонков, чтобы повысить качество связи."</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Резервный способ связи"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Если вы в роуминге или сеть <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> недоступна, для звонков через <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> используйте SIM-карту с мобильным Интернетом"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"резервный способ связи"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Входящее MMS-сообщение"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Не удалось отправить MMS-сообщение"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Нажмите, чтобы разрешить MMS-сообщения в сети оператора \"<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>\", когда мобильный Интернет отключен"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Сведения о правилах организации"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Настройки, доступные системному администратору"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Графический процессор"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Запустить с размером страницы 16 КБ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Устройство загрузится с размером страницы 16 КБ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Перезапустить с ядром, совместимым с размером страницы 16 КБ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"Внимание! Некоторые приложения могут не работать в этом режиме. После подтверждения устройство перезагрузится."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Перезапустить с ядром, совместимым с размером страницы 4 КБ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"После подтверждения устройство перезагрузится."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Не удалось обеспечить совместимость ядра с размером страницы 16 КБ."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Применение изменения…"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Обработчик отчетов об ошибках"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Выбранное приложение будет запускаться при нажатии быстрой клавиши для отправки отчета об ошибке."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Личный профиль"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Медиапроигрыватель остается открытым в Быстрых настройках, чтобы вы могли легко продолжить воспроизведение"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Показывать медиапроигрыватель на заблокированном экране"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Медиапроигрыватель остается открытым на заблокированном экране, чтобы вы могли легко продолжить воспроизведение"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Показывать рекомендации медиаконтента"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Показывать рекомендации контента от Ассистента"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"С учетом ваших действий"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Скрывать проигрыватель"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Показывать проигрыватель"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM-карта"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Карты eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Активна"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Неактивна"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /По умолчанию для категорий: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"Звонки"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук из поддерживаемых источников становится более выразительным"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Отслеживание движения головы"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звук меняется, когда вы двигаете головой, и становится более естественным."</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синхронизация разрешений"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Предоставить устройству <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> такие же разрешения для приложений, которые есть у устройства <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>."</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Синхронизировать разрешения с телефона"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Предоставить на часах такие же разрешения для приложений, как и на телефоне"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоустройства"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Неизвестно"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Колонка"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Средняя"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Высокая"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Это приложение можно открыть только в одном окне."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Включено"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Отключено"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Отключено"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Отключено"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Включено"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Отключено"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Включено"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Отключено"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Сделать светлые цвета темными, а темные – светлыми"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Включить функцию увеличения масштаба на экране"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Отключено"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Отключено"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Включено"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Отключено"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Включено"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Пароль установлен"</string>
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index c1e87a2..cffd8d8 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"මිනිත්තු 1කට පසුව"</item>
     <item msgid="1574040255478150028">"මිනිත්තු 5කට පසුව"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 52120da..92dfda7 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"පරිපාලක පරිශීලකයින්ට පමණක් සංවර්ධක සැකසීම් වෙත ප්‍රවේශ විය හැක."</string>
     <string name="header_category_system" msgid="1665516346845259058">"පද්ධතිය"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"සේවයේ පවතියි"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"සේවය රහිතයි"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ඉදිරියට යාමට ඉහළට ස්වයිප් කරන්න"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"යෙදුම දිගටම භාවිතා කිරීම සඳහා ඔබේ දුරකථනය නමා ඉදිරිපස සංදර්ශකය මත ස්වයිප් කරන්න, නැතහොත් තිරය අගුළු දැමීම සඳහා තත්පර කිහිපයක් රැඳී සිටින්න"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"අදාළ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"රිගින් ටෝන සහ එලාම්"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"ඇමතුම් අතරතුර ශ්‍රව්‍ය"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"මාධ්‍ය"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"දැනුම්දීම් සහ අනෙක් පද්ධති හඬ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"මාධ්‍ය සහ පද්ධති ශබ්ද"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"දැනුම්දීම්"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"පෙරනිමියෙන්, ශ්‍රව්‍ය ප්‍රතිදානය තනි යෙදුම් මගින් තීරණය වේ"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"නමක් නොමැති බ්ලූටූත් උපාංගය"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"සොයමින්"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"බ්ලූටූත් ක්‍රියාත්මක කරන ලදී"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"සියල්ල බලන්න"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"සියල්ල බලන්න"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"පන්හිඳ"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"කෙළවර බොත්තම එබීම"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (කාර්යාල පැතිකඩ)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ශ්‍රව්‍ය ප්‍රවාහයකට සම්බන්ධ වන්න"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"අවට ශ්‍රව්‍ය ප්‍රවාහ"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ශ්‍රව්‍ය ප්‍රවාහ"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR කේතය භාවිතයෙන් ශ්‍රව්‍ය ප්‍රවාහයකට සම්බන්ධ වන්න"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"අවට ශ්‍රව්‍ය ප්‍රවාහ කිසිවක් හමු නොවිණි."</string>
     <string name="date_and_time" msgid="1788358029823431692">"දිනය සහ වේලාව"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"නියුතු"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"හිස් කරන්න"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"එක් එක් යෙදුම සඳහා භාෂාවක් තේරීමට, යෙදුම් භාෂා සැකසීම් වෙත යන්න."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"යෙදුම් භාෂා ගැන තව දැන ගන්න"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"පද්ධති භාෂාව %s ලෙස වෙනස් කරන්න ද?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s කැමති භාෂාවලට එක් කරන්න ද?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"මෙය ඔබ මෙම භාෂාවට ද කැමති බව යෙදුම්වලට සහ වෙබ් අඩවිවලට දන්වයි."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"ඔබේ උපාංග සැකසීම් සහ කලාපීය මනාප වෙනස් වේ."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"වෙනස් කරන්න"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s නොමැත"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"සෙනසුරාදා"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"යෙදුමක් කලාපීය මනාප වෙත සහාය නොදක්වන්නේ නම්, යෙදුම එහි පෙරනිමි පෙදෙසි සැකසීම් භාවිතා කරනු ඇත."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"භාෂා මනාප පිළිබඳව තව දැන ගන්න."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"අතිරේක මනාපයන්"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"ලිපිනයේ නියමයන්"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"ඔබට ඇමතීමට අවශ්‍ය ආකාරය සකසන්න"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"යෙදුම්වලට ඔවුන් ඔබව ආමන්ත්‍රණය කරන ආකාරය පෞද්ගලීකරණය කිරීමට ඔබේ ලිපින නියම භාවිත කළ හැක."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"විශේෂයෙන් සඳහන් නොකළ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"ස්ත්‍රී"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"පුරුෂ"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"මධ්‍යස්ථ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{තෝරන ලද භාෂාව ඉවත් කරන්න ද?}one{තෝරන ලද භාෂා ඉවත් කරන්න ද?}other{තෝරන ලද භාෂා ඉවත් කරන්න ද?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"පෙළ වෙනත් භාෂාවකින් සංදර්ශනය කරනු ඇත."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"සියලු භාෂා ඉවත් කළ නොහැකිය"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ස්ථානය"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ස්ථානය භාවිත කරන්න"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ක්‍රියාවිරහිතයි"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ක්‍රියාත්මකයි - # යෙදුමකට ස්ථානයට ප්‍රවේශය ඇත}one{ක්‍රියාත්මකයි - යෙදුම් #කට ස්ථානයට ප්‍රවේශය ඇත}other{ක්‍රියාත්මකයි - යෙදුම් #කට ස්ථානයට ප්‍රවේශය ඇත}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ක්‍රියාත්මකයි / # යෙදුමකට ස්ථානයට ප්‍රවේශය ඇත}one{ක්‍රියාත්මකයි / යෙදුම් #කට ස්ථානයට ප්‍රවේශය ඇත}other{ක්‍රියාත්මකයි / යෙදුම් #කට ස්ථානයට ප්‍රවේශය ඇත}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"පූරණය වේ…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"අවට උපාංගවල සාපේක්ෂ පිහිටීම තීරණය කිරීමට අවට උපාංග අවසරය ඇති යෙදුම්වලට හැකිය."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"යෙදුම් සහ සේවා සඳහා ස්ථාන ප්‍රවේශය ක්‍රියාවිරහිතයි. ඔබ හදිසි අවස්ථා අංකයක් අමතන විට හෝ කෙටි පණිවිඩයක් යැවීමේදී ඔබගේ උපාංගයේ ස්ථානය හදිසි අවස්ථා ප්‍රතිචාර දක්වන්නන්ට තවම යැවිය හැකිය."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ස්ථාන සැකසීම් ගැන තව දැන ගන්න"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ස්ථාන සැකසීම් පිළිබඳව තව දැන ගන්න"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"ස්ථාන ප්‍රවේශය වෙනස් කිරීමට, සැකසීම් &gt; ආරක්ෂාව සහ පෞද්ගලිකත්වය &gt; පෞද්ගලිකත්ව පාලන වෙත යන්න"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"හොඳම ප්‍රතිඵල සඳහා, සහතික කළ Google සඳහා තනන ලද තිර ආරක්ෂකයක් භාවිත කරන්න. වෙනත් තිර ආරක්ෂක සමඟ, ඔබ‍ගේ දරුවාගේ ඇඟිලි සලකුණ ක්‍රියා නොකළ හැකිය."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"ඔරලෝසුව අගුළු හැරීම"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"ඔබ මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුළු හැරීම පිහිටුවන විට, ඔබ මුහුණු ආවරණයක් පැළඳ සිටින විට හෝ අඳුරු ප්‍රදේශයක සිටින විට ඔබේ දුරකථනය ඔබේ ඇඟිලි සලකුණ සඳහා විමසනු ඇත.\n\nඔබේ මුහුණ හෝ ඇඟිලි සලකුණ හඳුනා නොගත් විට ඔබට ඔබේ ඔරලෝසුව සමග අගුළු හැරිය හැක."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"ඔබේ ඇඟිලි සලකුණ හඳුනා නොගත් විට ඔබට ඔබේ ඔරලෝසුව සමග අගුළු හැරිය හැක."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"ඔබේ මුහුණ හඳුනා නොගත් විට ඔබට ඔබේ ඔරලෝසුව සමග අගුළු හැරිය හැක."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"ඔබ මුහුණෙන් අගුළු හැරීම සහ ඇඟිලි සලකුණු අගුළු හැරීම පිහිටුවන විට, ඔබ මුහුණු ආවරණයක් පැළඳ සිටින විට හෝ අඳුරු ප්‍රදේශයක සිටින විට ඔබේ දුරකථනය ඔබේ ඇඟිලි සලකුණ සඳහා විමසනු ඇත.\n\nඔරලෝසුව අගුළු හැරීම යනු ඔබේ දුරකථනය අගුළු ඇරීමට තවත් පහසු ක්‍රමයකි, උදාහරණයක් ලෙස, ඔබේ ඇඟිලි තෙත් වූ විට හෝ මුහුණ හඳුනා නොගත් විට."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"ඔරලෝසුව අගුළු හැරීම යනු ඔබේ දුරකථනය අගුළු ඇරීමට තවත් පහසු ක්‍රමයකි, උදාහරණයක් ලෙස, ඔබේ ඇඟිලි සලකුණ හඳුනා නොගත් විට."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"ඔරලෝසුව අගුළු හැරීම යනු ඔබේ දුරකථනය අගුළු ඇරීමට තවත් පහසු ක්‍රමයකි, උදාහරණයක් ලෙස, ඔබේ මුහුණ හඳුනා නොගත් විට."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ඇඟිලි සලකුණ හෝ ඔරලෝසුව භාවිතා කරන්න"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"මුහුණ හෝ ඔරලෝසුව භාවිතා කරන්න"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"මුහුණ, ඇඟිලි සලකුණ, හෝ ඔරලෝසුව භාවිතා කරන්න"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"මුහුණ සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"මුහුණ, ඇඟිලි සලකුණ, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"මුහුණ, ඇඟිලි සලකුණු, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"දුරස්ථ සත්‍යාපක අගුලු හරින්න"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"ඔරලෝසුව එක් කර ඇත"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ඔබේ ඔරලෝසුව පිහිටුවන්න"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"එය ක්‍රියා කරන ආකාරය"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ඔබේ ඔරලෝසුව ඔබේ මැණික් කටුවෙහි සහ මෙම දුරකථනයට ළඟා විය හැකි දුරින් අගුළු හැර තිබිය යුතු යි. ඔබේ ඔරලෝසුව ඔබේ මැණික් කටුවෙහි තිබෙන අතරේ ඔබට එය නැවත අගුළු හැරීමට අවශ්‍ය නොවනු ඇත."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"මෙම දුරකථනය අගුළු හැර ඇති විට, ඔබට ඔබේ ඔරලෝසුවෙහි දැනුම් දෙනු ලැබේ. ඔබ අදහස් නොකළ විට එය අගුළු හරිනු ලැබුවේ නම්, දුරකථනය නැවත අගුළු දැමීමට දැනුම්දීම තට්ටු කරන්න."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ඔබට පාලනය බාරයි"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ඔබට සැකසීම් තුළ ඕනෑම වේලාවක දී ඔරලෝසුව අගුළු හැරීම වෙතින් ඔබේ ඔරලෝසුව ඉවත් කළ හැක"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"දැනුම්දීමක් තට්ටු කරන්න"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"අගුළු තිරය මත ඉහළට ස්වයිප් කරන්න"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ඔබේ ඔරලෝසුව තෝරා ගන්න"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ලබා ගත හැකි ඔරලෝසු"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"අවලංගු කරන්න"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"තහවුරු කරන්න"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ඔබ සියල්ල සකසා ඇත!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"දැන් ඔබට ඔබ අගුලු තිරය මත ස්වයිප් කරන විට හෝ දැනුම්දීමක් මත තට්ටු කරන විට මෙම දුරකථනය අගුලු හැරීමට ඔබේ ඔරලෝසුව භාවිත කළ හැක"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"නිමයි"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ඔරලෝසුව අගුලු හැරීම"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ඔබ අගුලු තිරය මත ස්වයිප් කරන විට හෝ දැනුම්දීමක් තට්ටු කරන විට ඔබට මෙම දුරකථනය අගුලු හැරීමට ඔබේ ඔරලෝසුව භාවිත කළ හැක"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ඔරලෝසුව අගුලු හැරීම භාවිත කිරීමට, ඔබේ ඔරලෝසුව ඔබේ මැණික් කටුවෙහි, ළඟා විය හැකිව අගුලු හැර, මෙම දුරකථනයට සම්බන්ධ කළ යුතු යි. සම්බන්ධතාව බාධා වුවහොත්, ඔරලෝසුව අගුලු හැරීම භාවිත කිරීමට පෙර ඔබට දුරකථනය අගුලු හැරීමට සිදු වෙයි.\n\nමතක තබා ගන්න:\nඔබට වරකට ලබා ගත හැක්කේ එක ඔරලෝසු සැකසුමක් පමණි. තව ඔරලෝසුවක් එක් කිරීමට පළමුව වත්මන් එක ඉවත් කරන්න."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ඔරලෝසුව අගුලු හැරීම ගැන තව දැන ගන්න"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ඔරලෝසුව එක් කරන්න"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ඔරලෝසුව ඉවත් කරන්න"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ඇඟිලි සලකුණ සහ මුහුණෙන් අගුළු හැරීම"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"වැඩ සඳහා මුහුණු සහ ඇඟිලි සලකුණු අගුළු හැරීම"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"පිහිටුවීම අවශ්‍යයි"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ආරක්ෂාව"</string>
     <string name="privacy_header" msgid="5526002421324257007">"පෞද්ගලිකත්වය"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"කාර්යාල පැතිකඩ"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"පෞද්ගලික ඉඩ"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"පෞද්ගලික යෙදුම් අගුළු දමා සඟවා තබා ගන්න"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"පෞද්ගලික යෙදුම් ඔබට සැඟවීමට හෝ අගුළු දැමීමට හැකි වෙනම අවකාශයක තබා ගන්න"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"පෞද්ගලික අවකාශ අගුල"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"ඔබට ඔබේ උපාංගය අගුළු හරින ආකාරයටම පෞද්ගලික අවකාශය අගුළු ඇරීමට හෝ වෙනත් අගුලක් තෝරා ගැනීමට හැක"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"උපාංග තිර අගුල භාවිතා කරන්න"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"මුහුණ සහ ඇඟිලි සලකුණු අගුළු හැරීම"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ඇඟිලි සලකුණු අගුළු හැරීම"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"මුහුණෙන් අගුළු හැරීම"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"පිහිටුවීමට තට්ටු කරන්න"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"පෞද්ගලික අවකාශය සඳහා ඇඟිලි සලකුණු අගුළු හැරීම"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"පෞද්ගලික අවකාශය සඳහා මුහුණෙන් අගුළු හැරීම"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"අගුළු හැරීමට ක්‍රම"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"උපාංග තිර අගුලට සමාන"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"පෞද්ගලික අවකාශය සඳහා නව අගුලක් තෝරා ගන්න ද?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ස්වයංක්‍රීයව අගුළු දමන්න"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"පෞද්ගලික ඉඩ ස්වයංක්‍රීයව අගුළු දමන්න"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"ඔබ යම් කාලයක් සඳහා ඔබේ උපාංගය භාවිතා කර නොමැති නම් ඔබට ඔබේ පෞද්ගලික ඉඩ ස්වයංක්‍රීයව අගුළු දැමිය හැක"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"උපාංගය අගුළු දමන සෑම අවස්ථාවකම"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"මිනිත්තු 5ක් අක්‍රිය වීමෙන් පසුව"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"කිසිදා නැත"</string>
+    <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_deleted" msgid="7825768516955610897">"පෞද්ගලික ඉඩ සාර්ථකව මකා ඇත"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"පෞද්ගලික ඉඩ මැකීමට නොහැකි විය"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"පෞද්ගලික ඉඩ අගුළු හැර ඇත"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"තිර අගුලක් සකසන්න"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"ඔබේ පෞද්ගලික අවකාශය භාවිතය සඳහා, මෙම උපාංගයෙහි තිර අගුලක් සකසන්න"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"තිර අගුල සකසන්න"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"අවලංගු කරන්න"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"අවලංගු කරන්න"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"පිහිටුවන්න"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"පෞද්ගලික අවකාශයක් පිහිටුවන්න"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"පෞද්ගලික යෙදුම් ඔබට සැඟවීමට හෝ අගුළු දැමීමට හැකි වෙනම අවකාශයක තබා ගන්න"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"එය ක්‍රියා කරන ආකාරය"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ඔබට ඔබේ යෙදුම් ලැයිස්තුවෙහි පහළින් ඔබේ පෞද්ගලික අවකාශය වෙත ප්‍රවේශ විය හැක"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ඔබේ පෞද්ගලික අවකාශයේ යෙදුම් අගුලකින් ආරක්ෂා කර ඇත"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"ඔබේ පෞද්ගලික අවකාශය තුළ යෙදුම්වලින් ලැබෙන දැනුම්දීම් එය අගුළු දමා ඇති විට සඟවනු ලැබේ"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"ඔබේ පෞද්ගලික අවකාශය අගුළු දමා ඇති විට ඔබේ පෞද්ගලික අවකාශයේ යෙදුම් අවසර කළමනාකරු, පෞද්ගලිකත්ව උපකරණ පුවරුව, සහ වෙනත් සැකසීම්වල දිස් නොවනු ඇත.\n\nඔබේ පෞද්ගලික අවකාශය නව උපාංගයකට ගෙන යා නොහැක. ඔබට එය වෙනත් උපාංගයක භාවිතා කිරීමට අවශ්‍ය නම් ඔබට වෙනත් පෞද්ගලික අවකාශයක් පිහිටුවීමට අවශ්‍ය වනු ඇත.\n\nඔබේ උපාංගය පරිගණකයකට සම්බන්ධ කරන හෝ ඔබේ උපාංගයෙහි හානිකර යෙදුම් ස්ථාපනය කරන ඕනෑම අයෙකුට ඔබේ පෞද්ගලික අවකාශයට ප්‍රවේශ විය හැක."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"පෞද්ගලික අවකාශය පිහිටුවමින්…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"පෞද්ගලික අවකාශය තුළ යෙදුම්වලින් ලැබෙන දැනුම්දීම් එය අගුළු දමා ඇති විට සඟවනු ලැබේ"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"පෞද්ගලික අවකාශ යෙදුම් වෙටීම් ඡායාරූප හෝ ගොනු බෙදා ගැනීමට පෞද්ගලික අවකාශය අගුළු හරින්න"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"සමහර යෙදුම් දැනටමත් ඔබේ පෞද්ගලික අවකාශයේ ස්ථාපනය කර ඇත"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"පෞද්ගලික අවකාශය පිහිටුවීමට නොහැකි විය"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"නැවත උත්සාහ කරන්න"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"පෞද්ගලික අවකාශය අගුළු හැරීමට තිර අගුල භාවිතා කරන්න ද?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"ඔබට ඔබේ උපාංගය අගුළු හරින ආකාරයටම ඔබේ පෞද්ගලික අවකාශය අගුළු ඇරීමට හෝ වෙනත් අගුලක් තෝරා ගැනීමට හැක"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"තිර අගුල භාවිතා කරන්න"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"නව අගුලක් තෝරා ගන්න"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"සියල්ල සූදානම්!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"ඔබේ පෞද්ගලික අවකාශය වෙත ප්‍රවේශ වීම සඳහා, ඔබේ යෙදුම් ලැයිස්තුවට ගොස් පහළට අනුචලනය කරන්න"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"නිමයි"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"පෞද්ගලික අවකාශය සොයා ගැනීමට පහළට අනුචලනය කරන්න"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"ඔබේ පෞද්ගලික අවකාශය සඳහා අගුලක් තෝරා ගන්න"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"ඔබට ඔබේ ඇඟිලි සලකුණ භාවිතයෙන් ඔබේ පෞද්ගලික අවකාශය අගුළු ඇරීමට හැක. ආරක්ෂාව සඳහා, මෙම විකල්පයට උපස්ථ අගුලක් අවශ්‍ය වේ."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ඔබේ පෞද්ගලික අවකාශය සඳහා PIN එකක් සකසන්න"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ඔබේ පෞද්ගලික අවකාශය සඳහා මුරපදයක් සකසන්න"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ඔබේ පෞද්ගලික අවකාශය සඳහා රටාවක් සකසන්න"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"පෞද්ගලික අවකාශය පෙන්වීමට (අවසාන UX නොවේ)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"සැකසීම් යෙදුම විවෘත කරන්න"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"ආරක්ෂාව සහ පෞද්ගලිකත්වය &gt; පෞද්ගලික අවකාශය &gt; අගුළු දමා ඇති විට පෞද්ගලික අවකාශය සඟවන්න මත තට්ටු කරන්න"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"ටොගල් අගුළු දැමූ විට පෞද්ගලික අවකාශය සැඟවීම ක්‍රියා විරහිත කරන්න"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"ගූගල්කරුවන් වෙත සටහන: මෙම විශේෂාංගයේ සංවර්ධනය තවමත් සිදු වෙමින් පවතී"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ඔබට මෙම මුරයතුර අනෙක් උපාංගයේ ටයිප් කිරීමට සිදුවනු ඇත."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"සම්බන්ධීකරණය කළ කට්ටලය සමඟ යුගල කිරීම තහවුරු කරන්න"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ඔබගේ සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්‍රවේශ විමට ඉඩ දෙන්න"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්‍රවේශ වීමට ද ඉඩ දෙන්න"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ඇමතුම් නිවේදන සහ තවත් දේ සඳහා තතු භාවිත කෙරේ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙත සම්බන්ධ වීමට නොහැකි විය."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"තිබෙන උපාංග"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"අහස්යානා ආකාරය තුළ"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"පොදු ජාල සඳහා දැනුම් දෙන්න"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"ඉහළ ගුණත්වයේ විවෘත ජාලයක් ලබා ගත හැකි විට දැනුම් දෙන්න"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ජාල වලට ඉඩ දෙන්න"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP යනු අඩුවෙන් සුරක්ෂිත පැරණි ආරක්ෂක ප්‍රොටෝකෝලයකි"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"ඔබේ වාහකය WEP ජාල වලට සුරක්ෂිත බවින් අඩු නිසා ඉඩ නොදෙයි"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi ස්වයංක්‍රියව නැවත සබල කරන්න"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"ඔබගේ නිවෙස් ජාලය වැනි සුරැකි ඉහළ ගුණත්ව ජාල අවට ස්වයංක්‍රියව නැවත Wi-Fi සබල කරන්න"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ස්ථානය ක්‍රියාවිරහිත කර ඇති නිසා ලබා ගත නොහැකිය. "<annotation id="link">"ස්ථානය"</annotation>" ක්‍රියාත්මක කරන්න."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi ක්‍රියාවිරහිත විට පවා, ඕනෑම අවස්ථාවක Wi‑Fi ජාල සඳහා ස්කෑන් කිරීමට Wi011Fi ස්කෑන් කිරීම යෙදුම් සහ සේවාවලට ඉඩ දෙයි. උදාහරණයක් ලෙස, ස්ථානය-පදනම් වූ විශේෂාංග සහ සේවා වැඩි දියුණු කිරීම සඳහා මෙය භාවිත කළ හැකිය."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ක්‍රියාත්මක කරන්න"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi ස්කෑන් කිරීම ක්‍රියාත්මකයි"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"මෙම ජාලය අඩුවෙන් සුරක්ෂිත පැරණි ආරක්ෂක ප්‍රොටෝකෝලයක් භාවිතා කරයි"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> අවහිර කර ඇත"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"මෙම ජාලය WEP නම් පැරණි ආරක්ෂක ප්‍රොටෝකෝලය භාවිතා කරන අතර, එය අඩුවෙන් සුරක්ෂිත වේ. කෙසේ හෝ සම්බන්ධ වීමට, ඔබට WEP ජාලවලට ඉඩ දිය හැක."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ඔබේ වාහකයා ඔබට මෙම ජාලයට සම්බන්ධ වීමට ඉඩ නොදෙන්නේ එය අඩුවෙන් සුරක්ෂිත පැරණි ආරක්ෂක ප්‍රොටෝකෝලයක් භාවිතා කරන බැවිනි"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP ඉඩ දෙන්න"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"වසන්න"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"උසස් විකල්ප"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"පතන ලැයිස්තු උසස් විකල්ප"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"දිග හරින්න"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi හි සිටින්න"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"කවදාවත් නැවත වරක් නොපෙන්වන්න"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"සම්බන්ධ කරන්න"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi සක්‍රීයයි"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> වෙත සබැඳිණි"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> වෙත සබැඳෙමින්"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"සබැඳෙමින්…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ජාලය වෙත සම්බන්ධ වීම අසාර්ථක විය"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"ජාලය පරාසය තුළ නැත"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"අමතක කරන්න"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"වෙනස් කරන්න"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ජාලය අමතක කිරීම අසාර්ථක වුණි"</string>
     <string name="wifi_save" msgid="2312643132472226807">"සුරකින්න"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ජාලය සුරැකීම අසාර්ථක වුණි"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"අවලංගු කරන්න"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"ජංගම දත්ත"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ඊතර්නෙට්"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ආරෝපණය වේ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ආරෝපණය වේ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"හොට්ස්පොට් සම්බන්ධතාවය"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"සබැඳුමේ ප්‍රබලතාව"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"සුරකින ලද ජාල"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"මුරපදයක් සකසා නැත"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"හොට්ස්පොට් නම"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"හොට්ස්පොට් මුරපදය"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP කලාපය"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ස්වයංක්‍රියව හොට්ස්පොට් ක්‍රියාවිරහිත කරන්න"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"කිසිදු උපාංගයක් සබැඳී නැති විට"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"අනුකූලතාව දීර්ඝ කරන්න"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ක්‍රීඩා සඳහා පෙරනිමි රාමු අනුපාතය අබල කරන්න"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ක්‍රීඩා සඳහා උපරිම රාමු අනුපාතය <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz හි දී සීමා කිරීම අබල කරන්න."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"සුමට සංදර්ශකය"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"යමෙක් තිරය දිහා බලන්නේ ද යන්න බැලීමට තිර අවධානය ඉදිරිපස කැමරාව භාවිතා කරයි. එය උපාංගයෙහි ක්‍රියා කරන අතර, රූප කිසි විටෙක ගබඩා කිරීම හෝ Google වෙත යැවීම සිදු නොවේ."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"තිර අවධානය ක්‍රියාත්මක කරන්න"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"එය දෙස බලන විට තිරය ක්‍රියාත්මකව තබා ගන්න"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"දිගු තිර කල් ඉකුත්වීම වැඩිපුර බැටරියක් භාවිතා කරනු ඇත."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"කැමරාව අගුලු දමා ඇත"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"මුහුණ හඳුනා ගැනීම සඳහා කැමරාව අගුලු හැරිය යුතුය"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"තිර අවධානය සඳහා කැමරාව අගුලු හැරිය යුතුය"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (sim විවරය <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (sim විවරය <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (මූලික)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"බැලීමට, සුරකින ලද ජාලය තෝරන්න"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL අනුවාදය"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"බැටරි මට්ටම"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"වාර්ගික"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"වාර්ගික සැකසීම්"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"සුරකින්න"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"අවලංගු කරන්න"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"නම ක්ෂේත්‍රය හිස් විය නොහැක."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN හිස් විය නොහැක."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ක්ෂේත්‍රය සංඛ්‍යා 3 ක් විය යුතුය."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ක්ෂේත්‍රය ඉලක්කම් 2 ක් හෝ 3 ක් විය යුතුය."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"වාහකය %s වර්ගයේ APN එක් කිරීම සඳහා සහාය නොදක්වයි."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ක්ෂේත්‍රය වලංගු විය යුතු යි."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"සුපුරුදු APN සැකසුම් යළි පිහිටුවමින්."</string>
     <string name="menu_restore" msgid="4310539620115151551">"සුපුරුදු වෙත යළි සකසන්න"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"සුපුරුදු APN සැකසීම නැවත සැකසීම සම්පූර්ණ කරන ලදි."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"යළි සකසන්න"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"බ්ලූටූත් සහ Wi‑Fi යළි සකසා ඇත"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMs මකන්න"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"මෙය ජංගම සේවා සැලසුම් කිසිවක් අවලංගු නොකරනු ඇත. ප්‍රතිස්ථාපන SIM බාගැනීමට, ඔබගේ වාහකය අමතන්න."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"සැකසීම් යළි පිහිටුවන ලදි"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"සියලු ජාල සැකසීම් යළි සකසන්නේද? ඔබට මෙම ක්‍රියාව අස් කළ නොහැක."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"සියලු ජාල සැකසීම් යළි සකසන්න සහ eSIMs මකන්න ද? ඔබට මෙම ක්‍රියාව පසුගමනය කළ නොහැක."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"යළි පිහිටුවන්නද?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"මෙම පරිශීලකයා වෙත ජාලය යළි පිහිටුවීමේ හැකියාව නැත"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"ජාල සැකසීම් යළි පිහිටුවන ලදි"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM මැකිය නොහැක"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"දෝෂයක් හේතුවෙන් eSIMs මැකිය නොහැක.\n\nඔබේ උපාංගය යළි අරඹා නැවත උත්සාහ කරන්න."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"සියලු දත්ත මකන්න (කර්මාන්තශාලා යළි සැකසීම)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"සියලු දත්ත මකන්න (කර්මාන්තශාලා යළි සැකසීම)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"සංගීතය"</li>\n<li>"ඡායාරූප"</li>\n<li>"වෙනත් පරිශීලක දත්ත"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"මෙය ඔබගේ ජංගම සේවා සැලසුම අවලංගු නොකරනු ඇත."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ඔබේ පුද්ගලික තොරතුරු සහ බාගත් යෙදුම් සියල්ල මකනු ලැබේ. ඔබට මෙම ක්‍රියාව පසුගමනය කළ නොහැකිය."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"බාගත් යෙදුම් &amp; SIM ඇතුළුව ඔබේ සියලු පුද්ගලික තොරතුරු මකනු ලැබේ. ඔබට මෙම ක්‍රියාව පසුගමනය කළ නොහැකිය."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"සියලු දත්ත මකන්නද?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"මෙම පරිශීලකයා සඳහා කර්මාන්තශාලා යළි සැකසීම ලබා ගත නොහැකිය"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"මකමින්"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"හොට්ස්පොට්, USB, බ්ලූටූත්, ඊතර්නෙට්"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"අන්තර්ජාලය වෙනත් උපාංග සමග බෙදා නොගනී"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ක්‍රියාවිරහිතයි"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ටෙදරින්"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi හොට්ස්පොට් භාවිත නොකරන්න"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"බ්ලූටූත් හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ඊතර්නෙට් හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB සහ බ්ලූටූත් හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB සහ ඊතර්නෙට් හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"බ්ලූටූත් සහ ඊතර්නෙට් හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, බ්ලූටූත් සහ ඊතර්නෙට් හරහා පමණක් අන්තර්ජාලය බෙදා ගන්න"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB ටෙදරින්"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"බ්ලූටූත් ටෙදරින්"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ඊතර්නෙට් ටෙදරින්"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ඔබේ Wi-Fi හෝ ජංගම දත්ත සම්බන්ධතාව හරහා අනෙක් උපාංගවලට අන්තර්ජාලය ලබා දීමට හොට්ස්පොට් සහ ටෙදරින් භාවිත කරන්න. අවට උපාංග සමඟ අන්තර්ගත බෙදා ගැනීමට හොට්ස්පොට් එකක් තැනීමට ද යෙදුම්වලට හැකිය."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"උදවු"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"ජංගම ජාලය"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"ජංගම සැලසුම"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"කෙටි පණිවුඩ යෙදුම"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS යෙදුම වෙනස් කරන්නද?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ඔබගේ SMS යෙදුම ලෙස <xliff:g id="CURRENT_APP">%2$s</xliff:g> වෙනුවට <xliff:g id="NEW_APP">%1$s</xliff:g> භාවිතා කරන්නද?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi සහායක වෙනස් කරන්නද?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="CURRENT_APP">%2$s</xliff:g> වෙනුවට <xliff:g id="NEW_APP">%1$s</xliff:g> භාවිතා කරන්නද?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ඔබගේ ජාල සම්බන්ධතා කළමනාකරණය කිරීමට <xliff:g id="NEW_APP">%s</xliff:g> භාවිතා කරන්නද?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"නොදන්නා SIM වාහකයෙක්"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> සතුව දන්නා ප්‍රතිපාදන වෙබ් අඩවි නොමැත"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"කරුණාකර SIM කාඩ් පතක් ඇතුල් කරන්න සහ නැවත අරඹන්න"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"කරුණාකර අන්තර්ජාලය වෙත සම්බන්ධ වන්න"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"මෑත කාලීන ස්ථාන ඉල්ලීම්"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"කාර්යාල පැතිකඩ සඳහා ස්ථානය"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"යෙදුම් ස්ථාන අවසර"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ප්‍රවේශය හිස් කරන්න"</string>
     <string name="controls_label" msgid="8671492254263626383">"පාලක"</string>
     <string name="force_stop" msgid="2681771622136916280">"බලෙන් නවත්වන්න"</string>
+    <string name="archive" msgid="9074663845068632127">"ලේඛනාරක්ෂණය"</string>
+    <string name="restore" msgid="7622486640713967157">"ප්‍රතිසාධනය කරන්න"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"එකතුව"</string>
     <string name="application_size_label" msgid="6407051020651716729">"යෙදුම් විශාලත්වය"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB ආචයන යෙදුම"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"පැකේජ විශාලත්වය ගණනය කිරීමට නොහැකි විය."</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> අනුවාදය"</string>
     <string name="move_app" msgid="5421158479447276791">"මාරු කරන්න"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ලේඛනාරක්ෂණය අසමත් විය"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"ලේඛනාරක්ෂිත <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"ප්‍රතිසාධනය අසමත් විය"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ප්‍රතිසාධනය කරමින්"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"තවත් සංක්‍රමණයක් දැනටමත් සිදු කරමින් පවතී."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"අවශ්‍යතරම් ආචයන ඉඩ නොමැත."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"යෙදුම නොපවතී."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"තිරය මත යතුරු පුවරුව ලබා ගත හැකිය"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"තිර යතුරු පුවරුවල කළමනාකරණය කරන්න"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"විකල්ප"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ප්‍රවේශ්‍යතාව"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"භෞතික යතුරු පුවරුව"</string>
     <string name="show_ime" msgid="4334255501724746849">"තිරය මත යතුරු පුවරුව භාවිත කරන්න"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"භෞතික යතුරු පුවරුව සක්‍රිය අතරතුර එය තිරය මත තබා ගන්න"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"පනින යතුරු"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"භෞතික යතුරුපුවරු ප්‍රවේශ්‍යතාව සඳහා පනින යතුරු සබල කරන්න"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ඇලෙන යතුරු"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"භෞතික යතුරුපුවරු ප්‍රවේශ්‍යතාව සඳහා ඇලෙන යතුරු සබල කරන්න"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"යතුරු පුවරු කෙටිමං"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"කෙටිමං ලැයිස්තුව පෙන්වන්න"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"කාර්යාල පැතිකඩ යතුරු පුවරු සහ මෙවලම්"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"භාවිත කාලය අනුව වර්ග කරන්න"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"අවසන් භාවිත කාලය අනුව සුබෙදන්න"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"යෙදුමේ නම අනුව වර්ග කරන්න"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"අවසන් වරට භාවිත කළේ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"අවසන් වරට භාවිත කළේ"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"කවදාවත් නැහැ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"භාවිත කාලය"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ප්‍රවේශ්‍යතාව"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ළඟාවීමේ සැකසීම්"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"කෙසේ වෙතත් ඉදිරියට යන්න"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"අවලංගු කරන්න"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"විශාලන සැකසීම්"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"තට්ටු-තුනක් සමඟ විශාලනය කරන්න"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"කෙටිමඟ සමඟ විශාලන කරන්න"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"කෙටිමඟ සහ තට්ටු කිරීම් තුනක් සමඟ විශාලන කරන්න"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> පිළිබඳ"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"විවෘත කිරීමට ඇඟිලි දෙකකින් තිරය ද්විත්ව තට්ටු කරන්න"</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="860548190334486449">"විශාලනය ආරම්භ කිරීමට සහ නැවැත්වීමට, ඇඟිලි දෙකකින් ඔබේ තිරයේ ඕනෑම තැනක ද්විත්ව තට්ටු කරන්න."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ප්‍රවේශ්‍යතා විශේෂාංගයක් භාවිත කිරීමට, ඇඟිලි 3කින් තිරයේ පහළ සිට ඉහළට ස්වයිප් කරන්න.\n\nවිශේෂාංග අතර මාරු වීමට, ඇඟිලි 3කින් ඉහළට ස්වයිප් කර අල්ලාගෙන සිටින්න."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"තේරුණා"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ප්‍රවේශ්‍යතා බොත්තමේ සැකසීම්"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"බොත්තම් සැකසීම්"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> කෙටිමඟ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ප්‍රවේශ්‍යතා බොත්තම"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ප්‍රවේශ්‍යතා ඉංගිතය"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ඇඟිලි දෙකේ ද්විත්ව තට්ටු තිරය"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ඇඟිලි දෙකේ ද්විත්ව තට්ටු තිරය"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ඇඟිලි දෙකකින් තිරය {0,number,integer} වාරයක් ඉක්මනින් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"තිරය තෙවරක් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"තිරය තෙවරක් තට්ටු කරන්න"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"තිරය ඉක්මනින් වාර {0,number,integer}ක් තට්ටු කරන්න. මෙම කෙටි මග ඔබගේ උපාංගය මන්දගාමී කළ හැකිය"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ප්‍රවේශ්‍යතා බොත්තම &amp; ඉංගිතය ගැන තව දැන ගන්න"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ප්‍රවේශ්‍යතා බොත්තම භාවිත කිරීම. ඉංගිතය 3-බොත්තම් සංචාලනය සමඟ ලබා ගත නොහැකිය."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"ප්‍රවේශ්‍යතා විශේෂාංගවලට ඉක්මනින් ප්‍රවේශ වන්න"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ආරම්භ කිරීමට"</b>\n"1. ප්‍රවේශ්‍යතා සැකසීම් වෙත යන්න\n2. විශේෂාංගයක් තෝරන්න සහ කෙටිමඟ තට්ටු කරන්න\n3. ඔබට විශේෂාංගයට ප්‍රවේශ වීමට බොත්තමක් හෝ ඉංගිතය යන දෙකින් භාවිත කිරීමට අවශ්‍යද යන්න තෝරන්න"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ආරම්භ කිරීමට"</b>\n"1. ප්‍රවේශ්‍යතා සැකසීම් වෙත යන්න\n2. විශේෂාංගයක් තෝරන්න සහ කෙටිමඟ තට්ටු කරන්න\n3. විශේෂාංගයට ප්‍රවේශ වීමට බොත්තම තෝරන්න"</string>
+    <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_size_title" msgid="5785110470538960881">"තරම"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"බල බොත්තම ඇමතුම අවසන් කරයි"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"විශාල මූසික දර්ශකය"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"මූසික දර්ශකය වඩාත් කැපී පෙනෙන ලෙස සකස් කරන්න"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"සියලු යෙදුම් අඳුරු කරන්න"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"තමන්ගේම අඳුරු තේමාවක් නොමැති යෙදුම් වෙත අදාළ වේ. සමහර යෙදුම්වලට ප්‍රතිලෝම වර්ණ වැනි, සංදර්ශක ගැටලු තිබිය හැක."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"සජීවීකරණ ඉවත් කරන්න"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"තිරය මත චලනය අඩු කරන්න"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"ඒකල ශ්‍රව්‍යය"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"මෙයට යෙදුමක් හෝ දෘඪාංග සංවේදකයක් සමඟ ඔබේ අන්තර්ක්‍රියා හඹා යෑමට, සහ ඔබ වෙනුවෙන් යෙදුම් සමඟ අන්තර්ක්‍රියාවේ යෙදීමට හැකි ය."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"ඉඩ දෙන්න"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ප්‍රතික්‍ෂේප කරන්න"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"නවත්වන්න"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"අවලංගු කරන්න"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> නවත්වන්නද?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> ට තට්ටු කිරීම <xliff:g id="SERVICE">%2$s</xliff:g> නවත්වයි."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ක්‍රියාවිරහිත කරන්න"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ක්‍රියාත්මකව තබන්න"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ක්‍රියාවිරහිත කරන්න ද?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"සේවා ස්ථාපනය කර නැත"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"සේවාවක් තෝරාගෙන නැත"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"කිසිඳු විස්තරයක් සපයා නොමැත."</string>
     <string name="settings_button" msgid="2195468788019730377">"සැකසීම්"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ආලෝක සංවේදීතාව, ඡායා භීතිකාව, අඳුරු තේමාව, ඉරුවාරදය, හිසරදය, කියවීමේ ප්‍රකාරය, රාත්‍රී ප්‍රකාරය, දීප්තිය අඩු කිරීම, සුදු ලක්ෂ්‍යය"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"භාවිතයේ පහසුව, ප්‍රවේශ වීමේ පහසුව, සහාය, සහායක"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"දර්ශනය, ශ්‍රවණය, අන්ධ, බිහිරි, චාලක, හුරුකම, සහායක, සහාය, භාවිතයේ පහසුව, ප්‍රවේශයේ පහසුව, අත, උදවු"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"කවුළු විශාලනය, විශාලනය, විශාලනය කිරීම, අඩු දෘශ්‍යතාව, විශාල කරන්න, වඩා ලොකු කරන්න"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"සිරස්තල, සංවෘත සිරස්තල, CC, සජීවී පිටපත් කිරීම, ඇසීමට අපහසු, ශ්‍රවණය අහිමි, CART, කථනයෙන් පෙළට, උපසිරැසි"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"වර්ණ අසමානතාව"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"මෝටරය, මූසිකය"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"ශ්‍රවණාධාර, ඇසීමට අපහසු, ශ්‍රවණාබාධය, දර්වාකාර රෝපණ, විස්තාරණ උපාංග, හඬ සකසනයන්"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"චාලක, මූසිකය, බාහිර මූසිකය, හිස මූසිකය, අනුවර්තන මූසිකය, රෝද පුටුව, ජොයිස්ටික්"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"ශ්‍රවණාධාර, ඇසීමට අපහසු, ශ්‍රවණාබාධය, දර්වාකාර රෝපණ, විස්තාරණ උපාංග, හඬ සකසනයන්, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"ඇසීමට අපහසු, ශ්‍රවණය අහිමි, සිරස්තල, ටෙලිටයිප්, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"බොත්තම් තුනක්"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"හුරුකම, චාලක, ජ්‍යෙෂ්ඨ, ආතරයිටිස්, rsi, ආඝාතය, වෙව්ලීම, බහු දෘඩවීම, මස්තිෂ්ක අංශභාගය, සෙලවීම, පුනරාවර්තන වික්‍රියා තුවාල, අත"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"පමාව, හුරුකම, වෘද්ධ"</string>
     <string name="print_settings" msgid="8519810615863882491">"මුද්‍රණය කිරීම්"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ක්‍රියාවිරහිතයි"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 මුද්‍රණ සේවාවක් ක්‍රියාත්මකයි}one{මුද්‍රණ සේවා #ක් ක්‍රියාත්මකයි}other{මුද්‍රණ සේවා #ක් ක්‍රියාත්මකයි}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ඉහළම භාවිතය සහිත යෙදුම් බලන්න"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ඔබේ බැටරිය ආරක්ෂා කිරීම සඳහා ආරෝපණය ප්‍රශස්ත කර ඇත"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"ඔබේ බැටරියේ ආයු කාලය දීර්ඝ කිරීමට උදවු කිරීම සඳහා, ආරෝපණය ප්‍රශස්ත කර ඇත"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ඔබේ බැටරිය ආරක්ෂා කිරීම සඳහා ආරෝපණය ප්‍රශස්ත කර ඇත"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"ඔබේ බැටරියේ ආයු කාලය දීර්ඝ කිරීමට උදවු කිරීම සඳහා, ඈඳා ඇති අතරේ ආරෝපණය ප්‍රශස්ත කර ඇත"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ඔබේ බැටරිය ආරක්ෂා කිරීම සඳහා ආරෝපණය ප්‍රශස්ත කර ඇත"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"ඔබේ බැටරියේ ආයු කාලය දීර්ඝ කිරීමට උදවු කිරීම සඳහා, ඈඳා ඇති අතරේ ආරෝපණය ප්‍රශස්ත කර ඇත"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"සම්පූර්ණයෙන්ම ආරෝපණය වේ"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"ඔබේ බැටරිය ආරක්ෂා කිරීම සඳහා, ඔබේ ටැබ්ලටය ඈඳන විට ආරෝපණය ප්‍රශස්ත කරනු ලැබේ"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ආරෝපණය විරාම කර ඇත තිබීම ගැන තව දැන ගන්න"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ආරෝපණය යළි ආරම්භ කරන්න"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"ඉහළ බල පසුබිම් ක්‍රියාකාරකම ඇතුළු ය"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ඉවත් කරන්න"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"අවලංගු කරන්න"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"පූර්ණ වීමට ආරෝපණය කරන්න"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ආරෝපණ උපාංගයේ ගැටලුව"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"නොගැළපෙන ආරෝපණය පිළිබඳව තව දැන ගන්න"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"බැටරි කළමනාකරු"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"යෙදුම් ස්වයංක්‍රියව කළමනාකරණය කරන්න"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"දැන්"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"බැටරි භාවිතය පිළිබඳ ප්‍රස්තාරය"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"දිනපතා බැටරි භාවිතයේ ප්‍රස්තාරය"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"පැයක් පාසා බැටරි භාවිතයේ ප්‍රස්තාරය"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"බැටරි මට්ටමේ ප්‍රතිශතය <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> සිට <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> දක්වා"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"අවසන් පූර්ණ ආරෝපණයේ සිට බැටරි භාවිතය"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> සඳහා බැටරි භාවිතය"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"අවසන් පූර්ණ ආරෝපණයේ සිට තිර කාලය"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"හදිසි අවස්ථා ඩයල් කිරීමේ සංඥාව"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"හදිසි ඇමතුමක් ලැබුණ විට හැසිරීම සකසන්න"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"උපස්ථය"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ක්‍රියාත්මකයි"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ක්‍රියාවිරහිතයි"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"උපස්ථය සහ පිළිනැගුම"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"පුද්ගලික දත්ත"</string>
     <string name="backup_data_title" msgid="507663517227498525">"මගේ දත්ත උපස්ථ කරන්න"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"නම‍"</string>
     <string name="vpn_type" msgid="5533202873260826663">"වර්ගය"</string>
     <string name="vpn_server" msgid="2908816134941973935">"සේවාදායක ලිපිනය"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP සංකේතනය (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP රහස"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec හඳුනා ගැනීම"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec පෙර හුවමාරු යතුර"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec පරිශීලක සහතිකය"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA සහතිකය"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec සේවාදායක සහතිකය"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"උසස් විකල්ප පෙන්වන්න"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS සෙවීම් වසම්"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS සේවාදායකයන් (උදා. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ඉදිරියට යැවීමේ මාර්ග (උදා. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"පරිශීලක නාමය"</string>
     <string name="vpn_password" msgid="1183746907642628127">"මුරපදය"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ගිණුම් තොරතුරු සුරකින්න"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(භාවිතා කර නොමැති)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(සේවාදායකය සත්‍යාපනය නොකරන්න)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(සේවාදායකයෙන් ලැබුණ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"මෙම VPN වර්ගය වෙත සැම විටම සම්බන්ධ වී සිටීමට නොහැක"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"සැම විට ක්‍රියාත්මක VPN සහය දක්වන්නේ සංඛ්‍යාත්මක සේවාදායක ලිපින පමණි"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"සැම විට ක්‍රියාත්මක VPN එකක් සඳහා DNS සේවාදායකයක් සඳහන් කළ යුතුයි"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"සැම විට ක්‍රියාත්මක VPN සඳහා DNS සේවාදායක ලිපින සැමවිටම සංඛ්‍යාත්මක විය යුතුය"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ඇතුලත් කළ තොරතුරු වෙත සැම විට ක්‍රියාත්මක VPN සඳහා සහාය නොදක්වයි"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"අවලංගු කරන්න"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ඉවත ලන්න"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN නොමැතිව සම්බන්ධතා අවහිර කිරීම"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN සම්බන්ධතාව අවශ්‍යද?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"සුරක්ෂිත නැත. IKEv2 VPN කට යාවත්කාලීන කරන්න"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"සහාය නොදක්වන VPN ආරම්භ කිරීමට අසමත් විය."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"සෑම විටම සම්බන්ධ වී පැවතීමට VPN පැතිකඩක් තෝරන්න. මෙම VPN හා සම්බන්ධවී ඇතිවිට පමණක් ජාල ගමනාගමනයට අවසර ඇත."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"කිසිවක් නැත"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"සේවාදායක සහ DNS සඳහා සෑම විටම සක්‍රිය VPN සඳහා IP ලිපිනයක් අවශ්‍ය වේ."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"සීනුවේ ඇඟවීම්"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"ළමයි පැහැර ගෙන යෑම පිළිබඳ ලුහුඩු ප්‍රකාශ ලබාගැනීම"</string>
     <string name="repeat_title" msgid="8676570486899483606">"නැවත කරන්න"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"ඇමතුම් කළමනාකරු සබල කරන්න"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"ඔබගේ ඇමතුම් සිදුකරන්නේ කෙසේදැයි කියා කළමනාකරණය කිරීමට මෙම සේවාවට ඉඩ දෙන්න."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"ඇමතුම් කළමනාකරු"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"නොරැහැන් හදිසි අවස්ථා ඇඟවීම්"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ජාල ක්‍රියාකරුවන්"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ප්‍රවේශ ලක්ෂ්‍ය වල නම්"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ගෙවීම, තට්ටු කිරීම, ගෙවීම්"</string>
     <string name="keywords_backup" msgid="707735920706667685">"උපස්ථ, උපස්ථ"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ඉංගිතය"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"මුහුණ, අගුලු හැරීම, සත්‍යාපනය, පිරීම"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"මුහුණ, අගුලු හැරීම, සත්‍යාපනය, පිරීම, ඇඟිලි සලකුණ, ජෛවමිතික"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl version, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ශබ්ද බල ගන්වන්න"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"සජීවී සිරස්තලය"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"මාධ්‍ය ස්වයංක්‍රීයව සිරස්තල"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"දුරකථන ස්පීකර්"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ටැබ්ලට් ස්පීකර්"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"උපාංග ස්පීකර්"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"රැහැන්ගත හෙඩ්ෆෝන්"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"ගැළපෙන මාධ්‍යවලින් ශ්‍රව්‍ය වඩාත් ගිලී යයි"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ක්‍රියාවිරහිතයි"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"මෑත සංවාද ඉවත් කරන ලදි"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"සංවාදය ඉවත් කරන ලදි"</string>
     <string name="clear" msgid="5092178335409471100">"හිස් කරන්න"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> හිස් කරන්න"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ප්‍රමුඛතා සහ වෙනස් කළ සංවාද මෙහි දිස් වනු ඇත"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"ඔබ සංවාදයක් ප්‍රමුඛතාවයක් ලෙස ලකුණු කළ පසු හෝ සංවාදවලට වෙනත් වෙනස්කම් කළ විට ඒවා මෙහි දිස්වනු ඇත. \n\nසංවාද සැකසීම් වෙනස් කිරීමට: \nපහළට ඇදීමේ වැස්ම විවෘත කිරීමට තිරයේ ඉහළ සිට පහළට ස්වයිප් කර, අනතුරුව සංවාදයක් ස්පර්ශ කර අල්ලාගෙන සිටින්න."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"අවම කරන්න"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ක්‍රියාවිරහිතයි"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"යෙදුම ඇමිණීම"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"යෙදුම ඇමිණීම ඔබ එය ඇමිණීමෙන් ඉවත් කරන තෙක් වත්මන් යෙදුම තබා ගැනීමට ඉඩ දේ. උදාහරණයක් වශයෙන් විශ්වාසි මිතුරෙකුට විශේෂිත ගේම් එකක් ක්‍රීඩා කිරීමට ඉඩ දීමට මෙම විශේෂාංගය භාවිත කළ හැකිය."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"යෙදුමක් ඇමිණූ විට, ඇමිණූ යෙදුම වෙනත් යෙදුම් විවෘත කළ හැකි අතර පුද්ගලික දත්තවලට ප්‍රවේශ විය හැකිය. \n\nයෙදුම ඇමිණීම භාවිත කිරීමට: 	\n1. යෙදුම ඇමිණීම ක්‍රියාත්මක කරන්න 	\n2. දළ විශ්ලේෂණය විවෘත කරන්න 	\n3. තිරයේ ඉහළින් ඇති යෙදුම් නිරූපකය තට්ටු කර, අනතුරුව අමුණන්න තට්ටු කරන්න"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"යෙදුමක් ඇමිණූ විට, ඇමිණූ යෙදුම වෙනත් යෙදුම් විවෘත කළ හැකි අතර පුද්ගලික දත්තවලට ප්‍රවේශ විය හැකිය. \n\nඔබට ඔබගේ උපාංගය යම් කෙනෙකු සමග ආරක්ෂිතව බෙදා ගැනීමට අවශ්‍ය නම්, ඒ වෙනුවට ආගන්තුක පරිශීලකයකු භාවිත කිරීමට උත්සාහ කරන්න. \n\nයෙදුම ඇමිණීම භාවිත කිරීමට: 	\n1. යෙදුම ඇමිණීම ක්‍රියාත්මක කරන්න 	\n2. දළ විශ්ලේෂණය විවෘත කරන්න 	\n3. තිරයේ ඉහළින් ඇති යෙදුම් නිරූපකය තට්ටු කර, අනතුරුව අමුණන්න තට්ටු කරන්න"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"යෙදුම භාවිතා නොකළේ නම් කළමනාකරණය කරන්න"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"අවසර ඉවත් කරන්න, තාවකාලික ගොනු මකා දමන්න, දැනුම්දීම් නවත්වන්න, සහ යෙදුම ලේඛනාරක්ෂණය කරන්න"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"සියලු යෙදුම්"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ස්ථාපිත යෙදුම්"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ක්ෂණික යෙදුම්"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"භාවිතා නොකළ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"යෙදුම් මඟින් භාවිතා කළ මතකය"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 යෙදුමක් අවසන් {time} හි මතකය භාවිතා කර ඇත}one{යෙදුම් #ක් අවසන් {time} හි මතකය භාවිතා කර ඇත}other{යෙදුම් #ක් අවසන් {time} හි මතකය භාවිතා කර ඇත}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"මතක භාවිත පැතිකඩ සබල කරන්න"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"මතක භාවිත පැතිකඩ සඳහා අතිරේක පද්ධති සම්පත් අවශ්‍ය වේ."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"මතක පැතිකඩ අබල කර ඇත"</string>
     <string name="running_frequency" msgid="7260225121706316639">"සංඛ්‍යාතය"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"උපරිම භාවිතය"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"දත්ත භාවිතා කර නැත"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"වෙනත් යෙදුම් උඩින් පෙන්වන්න"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"වෙනත් යෙදුම් උඩින් පෙන්වීමට අවසර දෙන්න"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"මෙම යෙදුමට ඔබ භාවිත කරන අනෙක් යෙදුම්වලට ඉහළින් සංදර්ශනය වීමට ඉඩ දෙන්න. මෙම යෙදුමට තිරයේ සංදර්ශනය වන දේවල් බැලීමට හෝ වෙනස් කිරීමට හැකියාව ලැබෙනු ඇත."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"මාධ්‍ය ප්‍රතිදානය වෙනස් කරන්න"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"මාධ්‍ය ප්‍රතිදානය මාරු කිරීමට යෙදුමට ඉඩ දෙන්න"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"වෙනත් යෙදුම්වලින් ශ්‍රව්‍ය හෝ වීඩියෝ වාදනය කරන්නේ කුමන සම්බන්ධිත උපාංගය ද යන්න තේරීමට මෙම යෙදුමට ඉඩ දෙන්න. ඉඩ දී ඇත්නම්, මෙම යෙදුමට හෙඩ්ෆෝන් සහ ස්පීකර් වැනි පවතින උපාංග ලැයිස්තුවක් වෙත ප්‍රවේශ විය හැකි අතර ශ්‍රව්‍ය හෝ වීඩියෝ ප්‍රවාහ කිරීමට හෝ විකාශය කිරීමට භාවිතා කරන ප්‍රතිදාන උපාංගය තෝරා ගැනීමට හැක."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"සියලු ගොනු ප්‍රවේශය"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"හඬ සක්‍රිය කිරීම වැඩි දියුණු කරන්න"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"මෙම උපාංගය හඬ සක්‍රිය කිරීමේ ආකෘතිය වැඩි දියුණු කිරීමට පෞද්ගලික බුද්ධිය භාවිතා කරයි. සියලු දෙනා සඳහා ආකෘතිය වැඩි දියුණු කරන අතරේ පෞද්ගලිකත්වය පවත්වා ගැනීම සඳහා බොහෝ පරිශීලකයින් හරහා එකතු කරන ලද සාරාංශගත යාවත්කාලීන කිරීම් යෙදුම්වලට ලැබිය හැක.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> දත්ත අනතුරු ඇඟවීම"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> දත්ත සීමාව"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> දත්ත අනතුරු ඇඟවීම / <xliff:g id="ID_2">^2</xliff:g> දත්ත සීමාව"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"උපාංග ගිණුම්ගත කිරීමෙන් වාහක දත්ත ගිණුම්ගත කිරීම වෙනස් විය හැකිය"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"වාහක ජාල මගින් භාවිත කරන දත්ත බැහැර කරයි"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> භාවිත විය"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"දත්ත අනතුරු ඇඟවීම සකසන්න"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g>කට පෙර යාවත්කාලීන කරන ලදී"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> විසින් දැන් යාවත්කා. කරන ලදී"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"දැන් යාවත්කාලීන කරන ලදී"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"සැලසුම බලන්න"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"විස්තර බලන්න"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"දත්ත සුරැකුම"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"සීමා නොකළ දත්ත"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"බැටරි භාවිතයේ අක්‍රමිකතාව"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"ඉක්මන් සැකසීම් සංවර්ධක ටයිල්"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb අනුමැති කාල විරාමය අබල කරන්න"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"පෙරනිමි (දින 7) හෝ පරිශීලක වින්‍යාස කළ (අවම දින 1) කාලය ඇතුළත යළි සම්බන්ධ වී නැති පද්ධති සඳහා adb අනුමැතීන්වල ස්වයංක්‍රිය අහෝසි කිරීම අබල කරන්න."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope හෝඩුවාව"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"සංවේදක අක්‍රියයි"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"කාර්යාල පැතිකඩ සැකසීම්"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"පුද්ගලික යෙදුම්වල කාර්යාල නාමාවලි සම්බන්ධතා සොයන්න"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ස්වයං පිරවුම් සේවාව"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"පෙරනිමි ස්වයං පිරවුම් සේවාව"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"මුරපද"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"අතිරේක සපයන්නන්"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# මුරපදයක්}one{මුරපද #ක්}other{මුරපද #ක්}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ස්වයං, පිරවුම, ස්වයං පිරවුම, මුරපදය"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"දත්ත, මුරයතුර, මුරපදය"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ස්වයංක්‍රීය, පුරවන්න, ස්වයං පිරවුම, දත්ත, මුරයතුර, මුරපදය"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;සියලු සේවා ක්‍රියා විරහිත කරන්න ද?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ඔබ පුරන විට මුරපද, මුරයතුරු, සහ සුරකින ලද අනෙකුත් තතු ස්වයංව පිරවීම සඳහා ලබා ගත නොහැක"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;ඔබ කැමති සේවාව &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; වෙත වෙනස් කරන්න ද?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; නව මුරපද, මුරයතුරු, සහ අනෙකුත් තතු මෙතැන් සිට මෙහි සුරකිනු ඇත. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; ස්වයංව පිරවිය හැකි දේ තීරණය කිරීමට ඔබේ තිරයෙහි ඇති දේ භාවිතා කළ හැක"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s භාවිතා කරන්න ද?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"ඔබට ක්‍රියාත්මක කළ හැක්කේ සේවා 5ක් පමණි"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"තවත් එක් කිරීමට අවම වශයෙන් 1 සේවාවක් ක්‍රියාවිරහිත කරන්න"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ස්වයං පිරවිය හැකි දේවල් නිර්ණය කිරීමට Google ඔබේ තිරයෙහි ඇති දේවල් භාවිතා කරයි."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"මුරපද, මුරයතුරු සහ දත්ත සේවා සීමාව"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ඔබට එකවර මුරපද, මුරයතුරු සහ දත්ත සේවා 5ක් දක්වා සක්‍රියව තබා ගත හැක. තවත් එක් කිරීමට සේවාවක් ක්‍රියා විරහිත කරන්න."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"මුරපද, මුරයතුරු සහ දත්ත සේවා සීමාව"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ඔබට එකවර මුරපද, මුරයතුරු සහ දත්ත සේවා 5 ක් දක්වා ක්‍රියාකාරීව තබා ගත හැක. තව එක් කිරීමට සේවයක් අක්‍රිය කරන්න."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ක්‍රියාවිරහිත කරන්න"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ස්වයං පිරවුම"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ඇතුළු වීමේ මට්ටම"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"යෙදුම් ගැළපෙන බවේ වෙනස් කිරීම් නිදොස් කළ හැකි යෙදුම් සඳහා පමණක් වෙනස් කළ හැකිය. නිදොස් කළ හැකි යෙදුමක් ස්ථාපනය කර නැවත උත්සාහ කරන්න."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"වෙනත් සැකසීමක් මත රඳා පවතී"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ගිණුම"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"ගිණුම් %dක්"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"උපාංගයේ නම"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"මූලික තතු"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"නීතිමය සහ නියාමන"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ටැගයක් ස්කෑන් කළ විට මෙම යෙදුම දියත් කිරීමට ඉඩ දෙන්න.\nමෙම අවසරය ක්‍රියාත්මක නම්, ටැගයක් අනාවරණය කරගත් විට යෙදුම විකල්පයක් ලෙස ලබා ගත හැකි වනු ඇත."</string>
     <string name="media_output_title" msgid="8283629315159510680">"මාධ්‍ය වාදනය කරන්න"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> මත වාදනය කරන්න"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ශ්‍රව්‍ය වාදනය වනු ඇත්තේ"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"මෙම උපාංගය"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ඇමතුම් අතරතුර නොපවතී"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"ඇමතුම ගැනීම ක්‍රියාත්මකයි"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"නිහඬ කරන්න"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"සබල කිරීම සඳහා, පළමුව බල මෙනුවට \"බල බොත්තම ඔබා සිටින්න\" යන්න වෙනස් කරන්න."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"ජාල විස්තර"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ඔබගේ උපාංගයේ නම ඔබගේ දුරකථනයේ යෙදුම්වලට දෘශ්‍යමානය. ඔබ බ්ලූටූත්වලට සම්බන්ධ වූ විට හෝ Wi-Fi හොට්ස්පොට් එකක් පිහිටු වූ විට වෙනත් පුද්ගලයන්ද එය දැකිය හැකිය."</string>
     <string name="devices_title" msgid="649715719278562515">"උපාංග"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"ජාලය තෝරන්න"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"විසන්ධි විය"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"නම"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"වර්ණය (ගැළපෙන යෙදුම් විසින් භාවිත කෙරේ)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"සුරකින්න"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM භාවිත කරන්න"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"මෙම SIM භාවිතා කරන්න"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"අක්‍රියයි"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"මෙම SIM පත අබල කිරීමට, SIM පත ඉවත් කරන්න"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> ක්‍රියාත්මක කිරීමට තට්ටු කරන්න"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM පත මකන්න"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ප්‍රියකරන ජාල වර්ගය"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"ජාල මෙහෙයුම් ආකාරය වෙනස් කරන්න"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ප්‍රියකරන ජාල වර්ගය"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"මිල ගණන් සඳහා ඔබගේ ජාල සැපයුම්කරු සමඟ පරීක්ෂා කරන්න."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"යෙදුම් දත්ත භාවිතය"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"වලංගු නොවන ජාල ප්‍රකාරය <xliff:g id="NETWORKMODEID">%1$d</xliff:g> . නොසලකා හරින්න."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ප්‍රවේශ ලක්ෂ්‍ය නම්"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> වෙත සම්බන්ධ වූ විට නොමැත"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> වෙත මාරු වන්නද?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM කාඩ්පත භාවිතයට මාරු වන්නද?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> භාවිත කරන්නද?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"වරකට SIM එකක් පමණක් සක්‍රිය කළ හැකිය.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> වෙත මාරු වීම ඔබේ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> සේවය අවලංගු නොකරනු ඇත."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"වරකට සක්‍රිය විය හැක්කේ eSIM 1ක් පමණි.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> වෙත මාරු වීම ඔබේ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> සේවය අවලංගු නොකරනු ඇත."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"වරකට SIM එකක් පමණක් සක්‍රිය කළ හැකිය.\n\nමාරු වීම ඔබේ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> සේවය අවලංගු නොකරනු ඇත."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"ඔබට වරකට SIM 2ක් භාවිත කළ හැකිය. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> භාවිත කිරීමට, තවත් SIM එකක් ක්‍රියාවිරහිත කරන්න"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> වෙත මාරු වන්න"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ක්‍රියාවිරහිත කරන්න"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"එපා, ස්තුතියි"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"අවලංගු කරන්න"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"මාරු වන්න"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"අක්‍රීය කරන්න"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM එක සක්‍රිය කිරීමට නොහැකිය"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"නැවත SIM එක ක්‍රියාත්මක කිරීමට උත්සාහ කරන්න. ප්‍රශ්නය දිගටම පැවතුණහොත්, ඔබේ උපාංගය යළි ආරම්භ කරන්න."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ඔබේ SIM පිහිටුවන්න"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"මෙම උපාංගයෙහි බහු SIM භාවිතා කිරීමට ඔබේ ජංගම ජාල මනාප සකසන්න"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ඔබේ SIMs ලේබල් කරන්න"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"ඇමතුම් ගන්න විට, පෙළ යවන විට, සහ දත්ත භාවිතා කරන විට, සහ සැකසීම් තුළ ඔබට මෙම ලේබල පෙනෙනු ඇත"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM ලේබලය"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ලේබලය"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"භාවිතා කළ යුතු SIMs තෝරන්න"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"ඔබට වරකට SIM 2ක් භාවිත කළ හැක"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ඔබේ මූලික SIMs සකසන්න"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"ඇමතුම්, පෙළ සහ දත්ත සඳහා පෙරනිමියෙන් භාවිතා කළ යුතු SIMs තෝරා ගන්න"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ඔබේ මූලික SIMs"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"ඇමතුම්"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"පෙළ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ස්වයංක්‍රීය දත්ත මාරු කිරීම"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ආවරණය සහ ලබා ගැනීමේ හැකියාව මත පදනම්ව කිනම් හෝ SIM එකකින් දත්ත භාවිතා කරන්න"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"දත්ත පමණි"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"පිහිටුවන්න"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"මීළඟ"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"ජංගම ජාලය"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"දුරකථන අංකය"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM ලේබලය සහ වර්ණය"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"ජාල සක්‍රිය කිරීම"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"වාහක මාරු වීම"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> සක්‍රියයි"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"පසු වේලාවක ජංගම දත්ත, ඇමතුම් විශේෂාංග, සහ SMS භාවිත කිරීමට, ඔබගේ ජාල සැකසීම් වෙත යන්න"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"මෙම eSIM එක මකන්න ද?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"මෙම SIM මැකීමෙන් මෙම උපාංගයෙන් <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> සේවාව ඉවත් කරයි.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> සඳහා වන සේවාව අවලංගු නොකෙරේ."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"මකන්න"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM මකමින්…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM මැකිය නොහැක"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"දෝෂයක් හේතුවෙන් මෙම SIM මැකිය නොහැක.\n\nඔබේ උපාංගය යළි අරඹා නැවත උත්සාහ කරන්න."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"උපාංගයට සම්බන්ධ වන්න"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> යෙදුමට ඔබේ උපාංගයට සම්බන්ධ වීමට තාවකාලික Wi‑Fi ජාලයක් භාවිත කිරීමට අවශ්‍යය"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"උපාංග කිසිවක් හමු නොවිය. උපාංග සක්‍රීය කර තිබෙන අතර සම්බන්ධ කිරීමට ලද හැකි බව තහවුරු කර ගන්න."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"හදිසි ඇමතූම්"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Wi‑Fi ඇමතුම ඔස්සේ හදිසි ඇමතුම්වලට ඔබේ වාහකයා සහය නොදක්වයි.\nඋපාංගය හදිසි ඇමතුමක් කිරීමට ස්වයංක්‍රීයව සෙලියුලර් ජාලයකට මාරු වෙයි.\nහදිසි ඇමතුම් හැකි වන්නේ සෙලියුලර් ආවරණය සහිත ප්‍රදේශවල පමණයි."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"තත්ත්‍වය වැඩිදියුණු කිරීමට ඇමතුම් සඳහා Wi‑Fi භාවිත කරන්න"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"උපස්ථ ඇමතුම"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ලබා ගත නොහැකි නම් හෝ රෝමිං නම්, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> ඇමතුම් සඳහා ඔබගේ ජංගම දත්ත SIM භාවිත කරන්න."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"උපස්ථ ඇමතුම"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"එන MMS පණිවුඩය"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS පණිවුඩය යැවිය නොහැක"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"ජංගම දත්ත අක්‍රියව තිබෙන විට <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> මත MMS පණිවුඩයට අවසර දීමට තට්ටු කරන්න"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ඔබේ කාර්යාල ප්‍රතිපත්ති තතු"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"ඔබගේ IT පරිපාලක විසින් කළමනාකරණය කරන සැකසීම්"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K පිටු ප්‍රමාණයෙන් ආරම්භ කරන්න"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16K පිටු ප්‍රමාණයේ සහාය දක්වන කර්නලය භාවිතයෙන් උපාංගය ආරම්භ කරන්න"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB පිටු ගැළපෙන කර්නලයක් සමග නැවත පණ ගන්වන්න ද?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"අවවාදයයි: සමහර යෙදුම් මෙම ප්‍රකාරය සමග නොගැළපෙයි. තහවුරු කිරීමෙන් පසු උපාංගය නැවත පණ ගැන්වෙනු ඇත."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB පිටු ගැළපෙන කර්නලයක් සමග නැවත පණ ගන්වන්න ද?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"තහවුරු කිරීමෙන් පසු උපාංගය නැවත පණ ගැන්වෙනු ඇත."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"කර්නලය 16KB පිටු ගැළපෙන කර්නලයට යාවත්කාලීන කිරීමට අසමත් විය."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"වෙනස යෙදීම"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"දෝෂ වාර්තා හසුරුවනය"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"ඔබේ උපාංගයේ දෝෂ වර්තා කෙටිමග හසුරුවන්නේ කුමන යෙදුමදැයි තීරණය කරයි."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"පුද්ගලික"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"පසුධාවනය ඉක්මනින් නැවත ධාවනය ආරම්භ කිරීමට, ඉක්මන් සැකසීම් තුළ මාධ්‍ය වාදකය විවෘතව පවතී"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"අගුලු තිරය මත මාධ්‍ය පෙන්වන්න"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"පසුධාවනය ඉක්මණින් නැවත පටන් ගැනීමට, මාධ්‍ය වාදකය අගුලු තිරය මත විවෘතව පවතී"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"මාධ්‍ය නිර්දේශ පෙන්වන්න"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"සහායක මාධ්‍ය නිර්දේශ පෙන්වන්න"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"ඔබගේ ක්‍රියාකාරකම මත පදනම්ව"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"වාදකය සඟවන්න"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"වාදකය පෙන්වන්න"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"සක්‍රිය"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"අක්‍රිය"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> සඳහා පෙරනිමි"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"ඇමතුම්"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ගැළපෙන මාධ්‍යවලින් ශ්‍රව්‍ය වඩාත් ගිලී යයි"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"හිස සටහන් තබා ගැනීම"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ඔබ ඔබගේ හිස වඩාත් ස්වභාවික ශබ්ද වීමට ගෙන යන විට ශ්‍රව්‍ය වෙනස් වේ"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"අවසර සමමුහුර්ත කරන්න"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> මත ඔබ ඉඩ දී ඇති යෙදුම් අවසරම <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> හට දෙන්න"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"දුරකථනයෙන් අවසර සමමුහුර්ත කරන්න"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ඔබ මෙම දුරකථනයෙහි ඉඩ දී ඇති යෙදුම් අවසරම ඔබේ ඔරලෝසුවට ලබා දෙන්න"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ශ්‍රව්‍ය උපාංග වර්ගය"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"නොදනී"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ස්පීකරය"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"මධ්‍යම"</string>
     <string name="contrast_high" msgid="3988567609694797696">"ඉහළ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"මෙම යෙදුම විවෘත කළ හැක්කේ 1 කවුළුවක පමණයි"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ක්‍රියාත්මකයි"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ක්‍රියාවිරහිතයි"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ක්‍රියාවිරහිතයි"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ක්‍රියාවිරහිතයි"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ක්‍රියාත්මකයි"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ක්‍රියාවිරහිතයි"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ක්‍රියාත්මකයි"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ක්‍රියාවිරහිතයි"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ආලෝකමත් තිර අඳුරු සහ අඳුරු තිර ආලෝකමත් බවට පත් කරයි"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"තිරය මත විශාලනය කරන්න"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ක්‍රියාවිරහිතයි"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ක්‍රියාවිරහිතයි"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ක්‍රියාත්මකයි"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ක්‍රියාවිරහිතයි"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ක්‍රියාත්මකයි"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"මුරපදය දැන් පිහිටුවා ඇත"</string>
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index 4f0b91f..578c756 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Po 1 minúte"</item>
     <item msgid="1574040255478150028">"Po 5 minútach"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index b36b71e..1c0d341 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Teraz ste vývojár!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nie je to potrebné, už ste vývojár."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Najprv povoľte možnosti pre vývojárov"</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"K nastaveniam vývojára majú prístup iba správcovia."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Systém"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"V prevádzke"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Mimo prevádzky"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Predná obrazovka sa pri zložení zariadenia zapne"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Iba hry, videá a ďalší obsah"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Predná obrazovka sa zapne v prípade aplikácií, ktoré bránia spusteniu režimu obrazovky pri nečinnosti"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Pokračujte potiahnutím nahor"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Ak chcete pokračovať v používaní aplikácie, zložte telefón a potiahnite prstom nahor po prednej obrazovke alebo počkajte niekoľko sekúnd, kým sa obrazovka uzamkne"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nikdy"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Predná obrazovka sa pri zložení zariadenia uzamkne"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Používať automatické otáčanie"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Podobné"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Tóny zvonenia a budíky"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zvuk počas hovorov"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Médiá"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Upozornenia a ďalšie zvuky systému"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Médiá a zvuky systému"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Upozornenia"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Zvukový výstup predvolene určujú jednotlivé aplikácie"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Nepomenované zariadenie s rozhraním Bluetooth"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Vyhľadávanie"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Rozhranie Bluetooth je zapnuté"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Zobraziť všetky"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Zobraziť všetko"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Dotykové pero"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Stlačenie tlačidla na tele pera"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (pracovný profil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Pripojenie k zvukovému streamu LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Zvukové streamy v okolí"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Zvukové streamy"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Pripojte sa k zvukovému streamu pomocou QR kódu"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"V okolí sa nenašli zvukové streamy."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ak chcete vybrať jazyk pre konkrétnu aplikáciu, prejdite do nastavení jazyka tejto aplikácie."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Ďalšie informácie o jazykoch aplikácií"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Chcete zmeniť jazyk systému na možnosť %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Pridať jazyk %s medzi preferované?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Aplikácie aj weby tým informujete, že preferujete aj tento jazyk."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Nastavenia zariadenia a regionálne nastavenia sa zmenia."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Zmeniť"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nie je k dispozícii"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sobota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ak aplikácia regionálne nastavenia nepodporuje, bude v nej použité predvolené miestne nastavenie."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Ďalšie informácie o jazykových nastaveniach"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Ďalšie predvoľby"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Oslovenia"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Nastavte si oslovenie"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikácie môžu pomocou vašich oslovení prispôsobiť, ako vás majú oslovovať."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nezadané"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženský rod"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Mužský rod"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutrálne"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Chcete vybraný jazyk odstrániť?}few{Chcete vybrané jazyky odstrániť?}many{Remove selected languages?}other{Chcete vybrané jazyky odstrániť?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text sa zobrazí v inom jazyku."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nie je možné odstrániť všetky jazyky"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Poloha"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Používať polohu"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Vypnuté"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Zapnuté – # aplikácia má prístup k polohe}few{Zapnuté – # aplikácie majú prístup k polohe}many{On - # apps have access to location}other{Zapnuté – # aplikácií má prístup k polohe}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Zapnuté – # aplikácia má prístup k polohe}few{Zapnuté – # aplikácie majú prístup k polohe}many{On / # apps have access to location}other{Zapnuté – # aplikácií má prístup k polohe}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Načítava sa…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikácie s povolením pre zariadenia v okolí môžu rozpoznať relatívnu pozíciu pripojených zariadení."</string>
     <string name="location_settings_footer_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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Ďalšie informácie o nastaveniach polohy"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Ďalšie informácie o nastaveniach polohy"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Zmena prístupu k polohe: Nastavenia &gt; Zabezp. a ochr. súkromia &gt; Nast. och. súkromia"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Najlepšie výsledky dosiahnete, keď použijete ochranu obrazovky s certifikátom Made for Google. S inými ochranami obrazovky nemusí odtlačok prsta vášho dieťa fungovať."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Odomknutie hodinkami"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Keď si nastavíte odomknutie tvárou aj odtlačkom prsta a budete sa nachádzať v tmavom prostredí alebo mať rúško, telefón vás požiada o odtlačok prsta.\n\nHodinkami môžete odomknúť, keď nebude rozpoznaná vaša tvár alebo odtlačok prsta."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Hodinkami môžete odomknúť, keď nebude rozpoznaný váš odtlačok prsta."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Hodinkami môžete odomknúť, keď nebude rozpoznaná vaša tvár."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Keď si nastavíte odomknutie tvárou aj odtlačkom prsta a budete sa nachádzať v tmavom prostredí alebo mať rúško, telefón vás požiada o odtlačok prsta.\n\nOdomknutie hodinkami je ďalší praktický spôsob, ako odomknúť telefón, keď máte napríklad vlhké prsty alebo zariadenie nedokáže rozpoznať vašu tvár."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Odomknutie hodinkami je ďalší praktický spôsob, ako odomknúť telefón, keď napríklad zariadenie nedokáže rozpoznať váš odtlačok prsta."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Odomknutie hodinkami je ďalší praktický spôsob, ako odomknúť telefón, keď napríklad zariadenie nedokáže rozpoznať vašu tvár."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Odtlačkom prsta alebo hodinkami môžete"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Tvárou alebo hodinkami môžete"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Tvárou, odtlačkom prsta alebo hodinkami môžete"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Tvár a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Tvár, odtlačok prsta a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Tvár, odtlačky prstov a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odomknutie Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Hodinky boli pridané"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavte si hodinky"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odomknutie hodinkami je ďalší praktický spôsob, ako odomknúť tento telefón, napríklad keď máte vlhké prsty alebo keď zariadenie nedokáže rozpoznať vašu tvár.\n\nHodinkami môžete odomykať tento telefón, keď:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Teraz nie"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Pokračovať"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Viac"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ako to funguje"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Hodinky musíte mať odomknuté na zápästí a v dosahu tohto telefónu. Keď ich budete mať na zápästí, nebudete ich musieť znova odomykať."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Keď sa tento telefón odomkne, dostanete v hodinkách upozornenie. Ak sa odomkol a vy ste to nechceli, klepnutím na upozornenie ho znova uzamknete."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Všetko máte pod kontrolou"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Hodinky môžete z funkcie odomknutia hodinkami kedykoľvek odstrániť v Nastaveniach"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Klepnite na upozornenie"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Potiahnite po uzamknutej obrazovke nahor"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Vyberte svoje hodinky"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupné hodinky"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Zrušiť"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdiť"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hotovo!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Hodinkami môžete teraz odomykať tento telefón potiahnutím po uzamknutej obrazovke nahor alebo klepnutím na upozornenie"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hotovo"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Odomknutie hodinkami"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Hodinkami môžete odomykať tento telefón potiahnutím po uzamknutej obrazovke nahor alebo klepnutím na upozornenie"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ak chcete používať odomknutie hodinkami, musíte mať hodinky odomknuté na zápästí, pričom musia byť pripojené k tomuto telefónu a v jeho dosahu. Ak sa pripojenie preruší, budete musieť pred použitím odomknutia hodinkami telefón odomknúť.\n\nPamätajte:\nSúčasne môžete mať nastavené iba jedny hodinky. Ak chcete pridať ďalšie, musíte najprv odstrániť aktuálne."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Ďalšie informácie o odomknutí hodinkami"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pridať hodinky"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstrániť hodinky"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odomknutie odtlačkom prsta a tvárou"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odomknutie tvárou a odtlačkom prsta pre prácu"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Vyžaduje sa nastavenie"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Zabezpečenie"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Ochrana súkromia"</string>
     <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="2274405892301976238">"Ponechajte súkromné aplikácie uzamknuté a skryté"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Uchovávajte súkromné aplikácie v samostatnom priestore, ktorý môžete skryť alebo uzamknúť"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Zámka súkromného priestoru"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Súkromný priestor môžete uzamknúť rovnakým spôsobom ako svoje zariadenie, prípadne môžete vybrať inú zámku"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Používať zámku obrazovky zariadenia"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Odomknutie tvárou a odtlačkom prsta"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Odomknutie odtlačkom prsta"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Odomknutie tvárou"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Nastavíte klepnutím"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Odomknutie odtlačkom prsta pre súkromný priestor"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Nastavte odomknutie tvárou pre súkromný priestor"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Spôsoby odomknutia"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Rovnaká ako zámka obrazovky zariadenia"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Chcete pre súkromný priestor vybrať novú zámku?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Automatické uzamykanie"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Automatické uzamykanie súkromného priestoru"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Ak ste zariadenie istý čas nepoužili, môžete si automaticky uzamknúť súkromný priestor"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Vždy, keď sa zariadenie uzamkne"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Po piatich minútach nečinnosti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nikdy"</string>
+    <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_delete_title" msgid="3075645119800272800">"Odstránenie súkromného priestoru"</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="private_space_unlocked" msgid="9091600948712932046">"Súkromný priestor je odomknutý"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nastavte zámku obrazovky"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Zrušiť"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Nastaviť"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Nastavenie súkromného priestoru"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Uchovávajte súkromné aplikácie v samostatnom priestore, ktorý môžete skryť alebo uzamknúť"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Ako to funguje"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Prístup do súkromného priestoru získate dole v zozname aplikácií"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikácie v súkromnom priestore sú chránené zámkou"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Keď je súkromný priestor uzamknutý, upozornenia z aplikácií v ňom sú skryté"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Aplikácie vo vašom súkromnom priestore sa nebudú zobrazovať v sekcii Správca povolení, paneli ochrany súkromia ani iných nastaveniach, keď je tento priestor uzamknutý.\n\nNemôžete si ho preniesť do iného zariadenia. Ak ho chcete používať v inom zariadení, musíte si nastaviť iný súkromný priestor.\n\nK vášmu súkromnému priestoru môže získať prístup ktokoľvek, kto pripojí vaše zariadenie k počítaču alebo v ňom nainštaluje škodlivé aplikácie."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nastavuje sa súkromný priestor…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Keď je súkromný priestor uzamknutý, upozornenia z aplikácií v ňom sú skryté"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Odomknite súkromný priestor a zdieľajte fotky či súbory z aplikácií v ňom"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Niektoré aplikácie sú už nainštalovaná vo vašom súkromnom priestore"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Súkromný priestor sa nepodarilo nastaviť"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Skúsiť znova"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Odomykať súkromný priestor zámkou obrazovky?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Súkromný priestor môžete odomknúť rovnakým spôsobom ako svoje zariadenie, prípadne môžete vybrať inú zámku"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Používať zámku obrazovky"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Vybrať novú zámku"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Hotovo!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Prístup do súkromného priestoru získate tak, že prejdete na zoznam aplikácií a potom posuniete nadol"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Hotovo"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Ak chcete nájsť súkromný priestor, posuňte sa nadol"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Vyberte zámku pre súkromný priestor"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Súkromný priestor môžete odomknúť odtlačkom prsta. Táto možnosť vyžaduje z bezpečnostných dôvodov záložnú zámku."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Nastavte PIN pre súkromný priestor"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Nastavte heslo pre súkromný priestor"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Nastavte vzor pre súkromný priestor"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Na zobr. súkr. priestoru (nejde o finálne použ. prostredie)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Otvorte aplikáciu Nastavenia"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Klepnite na položky Zabezpečenie a ochrana súkromia &gt; Súkromný priestor &gt; Skrytie súkromného priestoru pri uzamknutí"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Vypnite prepínač Skrytie súkromného priestoru pri uzamknutí"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Poznámka pre googlerov: túto funkciu stále vyvíjame"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Tento prístupový kľúč možno bude potrebné zadať aj v druhom zariadení."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrďte párovanie s koordinovanou skupinou"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Povoliť prístup ku kontaktom a histórii hovorov"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Povoliť aj prístup ku kontaktom a histórii hovorov"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informácie budú použité na účely oznámení hovorov a ďalších funkcií"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nepodarilo sa pripojiť k zariadeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupné zariadenia"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Keď je zapnuté rozhranie Bluetooth, zariadenie môže komunikovať s ostatnými zariadeniami s rozhraním Bluetooth v okolí"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Režim v lietadle"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Upozorňovať na verejné siete"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Upozorniť na dostupnosť kvalitnej verejnej siete"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Povoliť siete WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP je starší bezpečnostný protokol s nižšou úrovňou zabezpečenia"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Váš operátor nepovoľuje siete WEP, pretože sú menej zabezpečené"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Zapínať Wi‑Fi automaticky"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Zapnúť Wi-Fi v dosahu kvalitných uložených sietí, napríklad vašej domácej siete"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nedostupné, pretože funkcia polohy je vypnutá. Zapnúť funkciu "<annotation id="link">"polohy"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Vyhľadávanie sietí Wi-Fi umožňuje aplikáciám a službám kedykoľvek vyhľadávať siete Wi‑Fi, a to aj vtedy, keď je funkcia Wi-Fi vypnutá. Dajú sa tak napríklad zlepšiť funkcie a služby závislé od polohy."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Zapnúť"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Vyhľadávanie sietí Wi‑Fi je zapnuté"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Táto sieť používa starší bezpečnostný protokol s nižšou úrovňou zabezpečenia"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Sieť <xliff:g id="NAME">%1$s</xliff:g> je blokovaná"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Táto sieť používa starší bezpečnostný protokol WEP s nižšou úrovňou zabezpečenia. Ak sa chcete aj napriek tomu pripojiť, môžete povoliť siete WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Váš operátor vám nepovoľuje pripojiť sa k tejto sieti, pretože používa starší bezpečnostný protokol s nižšou úrovňou zabezpečenia"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Povoliť WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zavrieť"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Rozšírené možnosti"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Rozbaľovací zoznam Pokročilé možnosti"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"rozbaliť"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ďalej používať Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Viac už nezobrazovať"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Pripojiť"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Pripojenie Wi‑Fi je zapnuté"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Pripojené k sieti <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Pripája sa k sieti <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Pripája sa…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nepodarilo sa pripojiť k sieti"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Sieť nie je v dosahu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Odstrániť"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Upraviť"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Sieť sa nepodarilo odstrániť"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Uložiť"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Nepodarilo sa uložiť sieť"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Zrušiť"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobilné dáta"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – nabíja sa"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – nabíja sa"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Pripojenie cez hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Sila pripojenia"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Uložené siete"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nie je nastavené žiadne heslo"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Názov hotspotu"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Heslo hotspotu"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Pásmo prístup. bodu"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspot automaticky vypínať"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Keď nie sú pripojené žiadne zariadenia"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Rozšíriť kompatibilitu"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Zobrazenie vyváženia bielej"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Zakázať predvolenú snímkovú frekvenciu hier"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Zakážte obmedzenie maximálnej snímkovej frekvencie hier na úrovni <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Plynulý obraz"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Vnímavá obrazovka pomocou prednej kamery zistí, či sa používateľ pozerá na obrazovku. Spúšťa sa v zariadení a snímky sa nikdy neukladajú ani neodosielajú Googlu."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Zapnúť vnímavú obrazovku"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Nechať obrazovku zapnutú, keď ju pozeráte"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Dlhší časový limit obrazovky viac spotrebúva batériu."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera je uzamknutá"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Ak chcete používať rozpoznávanie tváre, kamera musí byť odomknutá"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Vnímavá obrazovka vyžaduje odomknutý fotoaparát"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (slot na SIM kartu <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (slot na SIM kartu <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (hlavný)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Zobrazte výberom uloženej siete"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Verzia PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Nabitie batérie"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Spoločné"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Spoločné nastavenia"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Uložiť"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Zrušiť"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Pole Meno nemôže byť prázdne."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Názov prístupového bodu (APN) nemôže byť prázdny."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Pole MCC musí obsahovať 3 číslice."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Pole MNC musí obsahovať 2 alebo 3 číslice."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operátor zakázal pridávanie názvov prístupového bodu typu %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Pole MMSC musí byť platné."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Prebieha obnovovanie predvolených nastavení názvu prístupového bodu (APN)."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Resetovať na predvolené"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Predvolené nastavenia APN boli obnovené."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Resetovať"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth a Wi‑Fi boli resetované"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Vymazať eSIM karty"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Nezrušíte tým žiadne tarify mobilných služieb. Ak si chcete stiahnuť náhradné SIM karty, kontaktujte operátora."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Resetovať nastavenia"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Chcete resetovať všetky nastavenia sietí? Túto akciu nie je možné vrátiť späť."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Chcete resetovať všetky nastavenia sietí a vymazať eSIM karty? Túto akciu nemôžete vrátiť späť."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Resetovať?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Tento používateľ nemôže resetovať nastavenia siete"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Sieťové nastavenia boli obnovené"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM karty sa nedajú vymazať"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM karty sa nedajú vymazať, pretože došlo k chybe.\n\nReštartujte zariadenie a skúste to znova."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Vymazať dáta (obn. výr. nast.)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Vymazať údaje (obnoviť výrobné nastavenia)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Hudba"</li>\n<li>"Fotky"</li>\n<li>"Iné údaje používateľa"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM karty"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Nezruší sa tým vaša tarifa mobilných služieb."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Všetky vaše osobné údaje a stiahnuté aplikácie budú odstránené. Túto akciu nie je možné vrátiť späť."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Všetky vaše osobné údaje vrátane stiahnutých aplikácií a SIM kariet budú odstránené. Túto akciu nie je možné vrátiť späť."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Chcete vymazať všetky údaje?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Obnovenie výrobných nastavení nie je pre tohto používateľa k dispozícii"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Maže sa"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet sa nezdieľa s inými zariadeniami"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Vypnuté"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Zdieľanie dátového pripojenia"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Nepoužívať hotspot Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Zdieľať internet len cez USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Zdieľať internet len cez Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Zdieľať internet len cez Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Zdieľať internet len cez USB a Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Zdieľať internet len cez USB a Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Zdieľať internet len cez Bluetooth a Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Zdieľať internet len cez USB, Bluetooth a Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Tethering cez USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Tethering cez Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Tethering cez ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Hotspot a tethering umožňujú poskytovať internet iným zariadeniam prostredníctvom vášho pripojenia Wi‑Fi alebo mobilného dátového pripojenia. Aplikácie tiež môžu vytvárať hostpot na zdieľanie obsahu so zariadeniami v okolí."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pomocník"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilná sieť"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilný plán"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikácia na SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Zmeniť aplikáciu na SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Použiť aplikáciu <xliff:g id="NEW_APP">%1$s</xliff:g> namiesto <xliff:g id="CURRENT_APP">%2$s</xliff:g> ako aplikáciu na SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Zmeniť aplikáciu asistent pripojenia Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%1$s</xliff:g> namiesto aplikácie <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Chcete spravovať sieťové pripojenia pomocou aplikácie <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Neznámy operátor SIM karty"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nemá žiadne provízne webové stránky"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vložte SIM kartu a reštartujte"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Pripojte sa k internetu"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedávne žiadosti o polohu"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Poloha pre pracovný profil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Prístup aplikácií k polohe"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Zrušiť prístup"</string>
     <string name="controls_label" msgid="8671492254263626383">"Ovládacie prvky"</string>
     <string name="force_stop" msgid="2681771622136916280">"Vynútiť zastavenie"</string>
+    <string name="archive" msgid="9074663845068632127">"Archivovať"</string>
+    <string name="restore" msgid="7622486640713967157">"Obnoviť"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Celkove"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Veľkosť aplikácie"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikácia, úložisko USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Nepodarilo sa vypočítať veľkosť balíčka."</string>
     <string name="version_text" msgid="7628938665256107608">"verzia <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Presunúť"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Nepodarilo sa archivovať"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Aplikácia <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> bola archivovaná"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Nepodarilo sa obnoviť"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Obnovuje sa aplikácia <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Už prebieha iná migrácia."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"V úložisku nie je dostatok miesta."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikácia neexistuje."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Dostupná klávesnica na obrazovke"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Spravovať klávesnice na obrazovke"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostupnosť"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnica"</string>
     <string name="show_ime" msgid="4334255501724746849">"Používať klávesnicu na obrazovke"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Ponechať na obrazovke, keď je aktívna fyzická klávesnica"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Klávesy jedného stlačenia"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Povoľte klávesy jedného stlačenia pre dostupnosť na fyzickej klávesnici"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Režim uzamknutia klávesa"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Povoľte režim uzamknutia klávesa pre dostupnosť na fyzickej klávesnici"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klávesové skratky"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Zobrazenie zoznamu skratiek"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klávesnice a nástroje pracovného profilu"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Zoradiť podľa času používania"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Zoradiť podľa posledného použitia"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Zoradiť podľa názvu aplikácie"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Naposledy použité"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Naposledy použité"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nikdy"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Doba použitia"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Dostupnosť"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Nastavenia dostupnosti"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Aj tak pokračovať"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Zrušiť"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavenia priblíženia"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Priblíženie trojitým klepnutím"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Priblíženie skratkou"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Priblíženie skratkou a trojitým klepnutím"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Otvorte dvojitý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="860548190334486449">"Ak chcete spustiť či zastaviť zväčšenie, klepnite dvakrá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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Ak chcete použiť funkciu dostupnosti, 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_button" msgid="2031773187678948436">"Dobre"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Nastavenia tlačidla dostupnosti"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Nastavenia tlačidla"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> – skratka"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Tlačidlo dostupnosti"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Gesto dostupnosti"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dvojité klepnutie dvoma prstami na obrazovku"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dvojité klepnutie dvoma prstami na obrazovku"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Rýchlo {0,number,integer}-krát klepnite dvoma prstami na obrazovku"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tri klepnutia na obrazovku"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Ďalšie informácie o tlačidle dostupnosti a geste"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Používa sa tlačidlo dostupnosti. Pri trojtlačidlovej navigácii nie je gesto k dispozícii."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Rýchly prístup k funkciám dostupnosti"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Začíname"</b>\n"1. Prejdite do nastavení dostupnosti.\n2. Vyberte funkciu a klepnite na odkaz.\n3. Vyberte, či chcete k funkcii získavať prístup tlačidlom alebo gestom."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Začíname"</b>\n"1. Prejdite do nastavení dostupnosti.\n2. Vyberte funkciu a klepnite na odkaz.\n3. Vyberte tlačidlo na prístup k danej funkcii."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Ak chcete začať:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Prejdite do nastavení dostupnosti.&lt;br/&gt; {1,number,integer}. Vyberte funkciu a klepnite na odkaz.&lt;br/&gt; {2,number,integer}. Vyberte, či chcete na prístup k funkcii použiť tlačidlo alebo gesto.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Ak chcete začať:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Prejdite do nastavení dostupnosti.&lt;br/&gt; {1,number,integer}. Vyberte funkciu a klepnite na odkaz.&lt;br/&gt; {2,number,integer}. Vyberte tlačidlo na prístup k danej funkcii.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Používať tlačidlo alebo gesto"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Poloha"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Veľkosť"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Ukončiť hovor vypínačom"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Veľký kurzor myši"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Zlepšiť viditeľnosť kurzora myši"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Nastavenie aplikácií ako tmavých"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Vzťahuje sa iba na aplikácie bez vlastného tmavého motívu. Niektoré aplikácie majú problémy so zobrazením, napríklad invertované farby."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Odstrániť animácie"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Zredukovať pohyb na obrazovke"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Zvuk mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Môže sledovať vaše interakcie s aplikáciou alebo hardvérovým senzorom a interagovať s aplikáciami za vás."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Povoliť"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zamietnuť"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Zastaviť"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Zrušiť"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Zastaviť službu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Klepnutím na <xliff:g id="STOP">%1$s</xliff:g> zastavíte službu <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vypnúť"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Nevypínať"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Chcete službu <xliff:g id="SERVICE">%1$s</xliff:g> vypnúť?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nie sú nainštalované žiadne služby"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nie je vybratá žiadna služba"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"K dispozícii nie je žiadny popis."</string>
     <string name="settings_button" msgid="2195468788019730377">"Nastavenia"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"svetloplachosť, fotofóbia, tmavý motív, migréna, bolesť hlavy, režim čítania, nočný režim, znížiť jas, biely bod"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ľahké použitie, ľahký prístup, asistencia, asistenčné"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"zrak, sluch, nevidiaci, nepočujúci, motorický, zručnosť, pomocný, asistencia, jednoduchosť používania, jednoduchý prístup, ruka, pomoc"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Lupa okna, lupa, zväčšenie, slabozrakosť, zväčšiť"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Titulky, skryté titulky, Okamžitý prepis, slabo počujúci, hluchota, CART, prevod reči na text, titulok"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontrast farieb"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorické, myš"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"načúvadlá, slabo počujúci, strata sluchu, kochleárne implantáty, zosilňovacie zariadenia, procesory zvuku"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorický, myš, externá myš, myš ovládaná hlavou, adaptívna myš, invalidný vozík, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"načúvadlá, slabo počujúci, strata sluchu, kochleárne implantáty, zosilňovacie zariadenia, zvukové procesory, tiesňová linka"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"slabo počujúci, hluchota, titulky, ďalekopisný stroj, textový telefón"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri tlačidlá"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"zručnosť, motorický, senior, artritída, rsi, porážka, chvenie, roztrúsená skleróza, mozgová obrna, trasenie, zranenie z opakovaného namáhania, ruka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"oneskorenie, zručnosť, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Tlač"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Vypnutá"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Je zapnutá 1 tlačová služba}few{Sú zapnuté # tlačové služby}many{# print services on}other{Je zapnutých # tlačových služieb}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Prezrite si aplikácie s najvyššou spotrebou"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Nabíjanie je optimalizované, aby sa chránila batéria"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Nabíjanie je optimalizované, aby sa predĺžila životnosť batérie"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Nabíjanie je optimalizované, aby sa chránila batéria"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Keď je zariadenie v doku, nabíjanie je optimalizovné, aby sa predĺžila životnosť batérie"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Nabíjanie je optimalizované, aby sa chránila batéria"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Keď je zariadenie v doku, nabíjanie je optimalizovné, aby sa predĺžila životnosť batérie"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Nabíja sa úplne"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Keď nabudúce vložíte tablet do doku, bude nabíjanie optimalizované, aby sa chránila batéria"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Ďalšie informácie o pozastavenom nabíjaní"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Pokračovať v nabíjaní"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Zahrnuje energeticky náročnú aktivitu na pozadí"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Odstrániť"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Zrušiť"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Nabiť úplne"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problém s nabíjacím príslušenstvom"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Ďalšie informácie o nekompatibilnom nabíjaní"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Správca batérie"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Spravovať aplikácie automaticky"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"teraz"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Graf spotreby batérie"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Graf spotreby batérie za deň"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Graf spotreby batérie za hodinu"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Percento stavu batérie: od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Spotreba batérie od posledného úplného nabitia"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Spotreba batérie: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Čas používania od posledného úplného nabitia"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signál núdzového vytáčania"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Nastaviť správanie pri tiesňovom volaní"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Zálohovanie"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Zapnuté"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Vypnuté"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Zálohovať a obnoviť"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Osobné údaje"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Zálohovať moje dáta"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Názov"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Typ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresa servera"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Šifrovanie PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Tajný kľúč L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identifikátor protokolu IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Predzdieľaný kľúč protokolu IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Používateľský certifikát protokolu IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certifikát CA protokolu IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certifikát servera IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Zobraziť rozšírené možnosti"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Vyhľadávacie domény DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Servery DNS (napr. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Presmerovávacie trasy (napr. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Používateľské meno"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Heslo"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Uložiť informácie o účte"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nepoužité)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(neoverovať server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(prijatý zo servera)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Tento typ siete VPN nemôže zostať neustále pripojený"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Vždy zapnuté siete VPN podporujú iba numerické adresy serverov"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Vždy zapnuté siete VPN musia mať uvedený server DNS"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Vždy zapnuté siete VPN musia mať numerické adresy serverov DNS"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Zadané informácie nepodporujú vždy zapnuté siete VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Zrušiť"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Zavrieť"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokovať pripojenia bez siete VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Vyžadovať pripojenie VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Nezabezpečené. Aktualizujte na IKEv2 VPN."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepodporovanú sieť VPN sa nepodarilo spustiť."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vyberte profil VPN, ku ktorému chcete mať vždy pripojenie. Sieťová premávka bude povolená len v prípade pripojenia k tejto sieti VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Žiadna"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Vždy zapnutá sieť VPN vyžaduje adresu IP pre server aj DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Upozornenia Amber"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Prijímať bulletiny o únosoch detí"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Opakovať"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Povoliť nástroj Správca hovorov"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Povoliť tejto službe spravovať spôsob uskutočňovania hovorov."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Správca hovorov"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Bezdrôtové núdzové upozornenia"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Sieťoví operátori"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Názvy prístupových bodov"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"peňaženka"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"platiť, klepnutie, platby"</string>
     <string name="keywords_backup" msgid="707735920706667685">"záloha, zálohovanie"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gesto"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"tvár, odomknutie, overenie totožnosti, prihlásenie"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"tvár, odomknúť, overiť, prihlásiť sa, odtlačok prsta, biometria"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, verzia prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Zvuky pri spustení"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Živý prepis"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Automatické titulkovanie médií"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Reproduktory telefónu"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Reproduktory tabletu"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Reproduktory zariadenia"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Slúchadlá s káblom"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Zvuk z kompatibilných médií bude strhujúcejší"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Vypnuté"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Čo chcete zobrazovať na uzamknutej obrazovke?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nedávne konverzácie boli odstránené"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Konverzácia bola odstránená"</string>
     <string name="clear" msgid="5092178335409471100">"Vymazať"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Vymazať konverzáciu <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Tu sa budú zobrazovať prioritné a zmenené konverzácie"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Keď označíte konverzáciu ako prioritnú alebo vykonáte v konverzáciách akékoľvek iné zmeny, zobrazia sa tu. \n\nAko zmeniť nastavenia konverzácie: \nPotiahnutím z hornej časti obrazovky smerom nadol otvorte panel upozornení a potom pridržte požadovanú konverzáciu."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimalizovať"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Vypnuté"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Pripnutie aplikácie"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Pripnutie aplikácie umožňuje ponechať aktuálnu aplikáciu zobrazenú, než ju odopnete. Pomocou tejto funkcie môžete napríklad dôveryhodnému priateľovi umožniť hrať konkrétnu hru."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Pripnutá aplikácia môže otvárať ďalšie aplikácie a sprístupniť osobné údaje. \n\nAk chcete pripnúť aplikáciu: 	\n1. Zapnite pripnutie aplikácie. 	\n2. Otvorte Prehľad. 	\n3. Klepnite na ikonu aplikácie v hornej časti obrazovky a potom na Pripnúť."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Pripnutá aplikácia môže otvárať ďalšie aplikácie a sprístupniť osobné údaje. \n\nAk chcete zariadenie s niekým bezpečne zdieľať, skúste namiesto toho použiť hosťa. \n\nAk chcete pripnúť aplikáciu: 	\n1. Zapnite pripnutie aplikácie. 	\n2. Otvorte Prehľad. 	\n3. Klepnite na ikonu aplikácie v hornej časti obrazovky a potom na Pripnúť."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Pripnutá aplikácia môže otvárať ďalšie aplikácie a sprístupniť osobné údaje. \n\nAk chcete použiť pripnutie aplikácie: 	\n{0,number,integer}. Zapnite pripnutie aplikácie. 	\n{1,number,integer}. Otvorte Prehľad. 	\n{2,number,integer}. Klepnite na ikonu aplikácie v hornej časti obrazovky a potom na Pripnúť."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Pripnutá aplikácia môže otvárať ďalšie aplikácie a sprístupniť osobné údaje. \n\nAk chcete zariadenie s niekým bezpečne zdieľať, skúste namiesto toho použiť hosťa. \n\nAk chcete použiť pripnutie aplikácie: 	\n{0,number,integer}. Zapnite pripnutie aplikácie. 	\n{1,number,integer}. Otvorte Prehľad. 	\n{2,number,integer}. Klepnite na ikonu aplikácie v hornej časti obrazovky a potom na Pripnúť."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Keď je aplikácia pripnutá: \n\n•		Môžu byť sprístupnené osobné údaje \n		(napríklad kontakty a obsah správ) \n•		Pripnutá aplikácia môže otvárať ďalšie aplikácie \n\nPripnutie aplikácie používajte iba s ľuďmi, ktorým dôverujete."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pred odopnutím vyžiadať bezpečnostný vzor"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Pred odopnutím požiadať o PIN"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Nastavenia nepoužívanej aplikácie"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pozastaviť aktivitu nepoužívanej aplik."</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Odstrániť povolenia, vymazať dočasné súbory a zastaviť upozornenia"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Spravovať aplikáciu, ak sa nepoužíva"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Odstráňte povolenia, vymažte dočasné súbory, zastavte upozornenia a archivujte aplikáciu"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Všetky aplikácie"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Nainštalované aplikácie"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Okamžité aplikácie"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Voľná pamäť"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Pamäť používaná aplikáciami"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikácia použila pamäť v priebehu tohto uplynulého času: {time}}few{# aplikácie použili pamäť v priebehu tohto uplynulého času: {time}}many{# apps used memory in the last {time}}other{# aplikácií použilo pamäť v priebehu tohto uplynulého času: {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Zapnúť profilovanie využitia pamäte"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilovanie využitia pamäte vyžaduje ďalšie zdroje systému."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilovanie využitia pamäte je vypnuté"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekvencia"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximálne využitie"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Neboli spotrebované žiadne dáta"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Zobrazenie cez iné aplikácie"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Povoliť zobrazenie cez iné aplikácie"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Umožní tejto aplikácii zobrazovať sa nad inými aplikáciami, ktoré používate. Táto aplikácia bude vidieť, kde klepnete, a môcť zmeniť obsah na obrazovke."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Zmena výstupu médií"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Povolenie aplikácií prepínať výstup médií"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Povoľte tejto aplikácii vyberať, ktoré pripojené zariadenie bude prehrávať zvuk či video z iných aplikácií. Ak tejto aplikácii udelíte povolenie, bude mať prístup k zoznamu dostupných zariadení (ako sú slúchadlá a reproduktory) a bude môcť vybrať, pomocou ktorého výstupného zariadenia sa bude streamovať či prenášať zvuk alebo video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Prístup k všetkým súborom"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Zlepšite aktiváciu hlasom"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Toto zariadenie zlepšuje model aktivácie hlasom pomocou súkromných údajov. Aplikácie môžu dostávať súhrnné aktuality, ktoré sú agregované od mnohých používateľov, aby chránili súkromie a zároveň zlepšovali daný model pre každého.\n\n"<a href="">"Ďalšie informácie o súkromných údajoch"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Dátové upozornenie: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Dátový limit: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Dátové upozornenie: <xliff:g id="ID_1">^1</xliff:g> / dátový limit: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Účtovanie dát operátorom sa môže líšiť od účtovania na zariadení"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Vylúči dáta využité sieťami operátora"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Spotreba <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Nastaviť dátové upozornenie"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Aktualizované pred <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Práve aktualizované – <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Práve aktualizované"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Zobraziť tarifu"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Zobraziť podrobnosti"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Šetrič dát"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neobmedzené dáta"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomália spotreby batérie"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Dlaždice rýchlych nastavení pre vývojárov"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Vypnúť časový limit autorizácií adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Vypnúť automatické odvolanie autorizácií adb systémov, ktoré neboli pripojené počas predvoleného (7 dní) alebo používateľom nastaveného (minimálne 1 deň) časového obdobia"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Trasovanie Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzory sú vypnuté"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Nastavenia pracovného profilu"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Vyhľadávať v osobných aplikáciách kontakty pracovného adresára"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Aktivujte aplikáciu digitálneho asistenta potiahnutím nahor z dolného rohu"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Služba automatického dopĺňania"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Predvolená služba automatického dopĺňania"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Heslá"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Heslá, prístupové kľúče a služby poskytujúce údaje"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Ďalší poskytovatelia"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# heslo}few{# heslá}many{# passwords}other{# hesiel}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automaticky, vypĺňanie, automatické dopĺňanie, heslo"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Heslá, prístupové kľúče a služby poskytujúce údaje"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Chcete vypnúť všetky služby?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Keď sa prihlásite, heslá, prístupové kľúče a ďalšie uložené informácie nebudú pre automatické dopĺňanie k dispozícii."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Zmeňte si preferovanú službu na &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é heslá, prístupové kľúče a ďalšie informácie sa budú odteraz ukladať tu. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Chcete používať %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Môžete mať zapnutých maximálne päť služieb"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Vypnite aspoň jednu službu, ak chcete pridať ďalšiu"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s určuje na základe obsahu na obrazovke, čo je možné automaticky doplniť."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limit hesiel, prístupových kľúčov a služieb údajov"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Naraz môžete mať aktívnych až päť hesiel, prístupových kľúčov a služieb poskytujúcich údaje. Ak chcete pridať ďalšiu službu, jednu vypnite."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limit hesiel, prístupových kľúčov a služieb poskytujúcich údaje"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Naraz môžete mať aktívnych až päť hesiel, prístupových kľúčov a služieb poskytujúcich údaje. Ak chcete pridať ďalšiu službu, jednu vypnite."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Vypnúť"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Automatické dopĺňanie"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Úroveň zaznamenávania"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Zmeny kompatibility môžete upraviť iba v prípade laditeľných aplikácií. Nainštalujte si laditeľnú aplikáciu a skúste to znova."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Závisí od iného nastavenia"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Účet"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Počet účtov: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Názov zariadenia"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Základné informácie"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Právne a regulačné informácie"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Povoľte spúšťanie tejto aplikácie po naskenovaní štítka NFC.\nKeď je toto povolenie zapnuté, aplikácia bude k dispozícii ako možnosť pri každom rozpoznaní štítka."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Prehrať média v zariadení"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Pustiť <xliff:g id="LABEL">%s</xliff:g> cez"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Zvuk sa bude ďalej prehrávať"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Toto zariadenie"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Počas hovorov nie je k dispozícii"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Prijať hovor v zariadení"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Vypnúť zvuk"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Ak chcete túto funkciu zapnúť, najprv zmeňte možnosť Pridržanie vypínača na ponuku vypínača."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Podrobnosti siete"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Názov zariadenia uvidia aplikácie v telefóne. Keď sa pripojíte k zariadeniam s rozhraním Bluetooth alebo sieti Wi‑Fi, prípadne ak nastavíte hotspot Wi‑Fi, môžu ho uvidieť aj ostatní ľudia."</string>
     <string name="devices_title" msgid="649715719278562515">"Zariadenia"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Vybrať sieť"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Odpojené"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Názov"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Farba (používajú kompatibilné aplikácie)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Uložiť"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Používať SIM kartu"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Použiť túto SIM kartu"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Vypnuté"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Ak chcete túto SIM kartu deaktivovať, odstráňte ju"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Klepnutím aktivujete operátora <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Vymazať SIM kartu"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Preferovaný typ siete"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Zmeniť prevádzkový režim siete"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Preferovaný typ siete"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Informácie o cenách získate od svojho poskytovateľa siete."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Spotreba dát aplikáciami"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Neplatný režim siete <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorovať."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Názvy prístupových bodov"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nie je k dispozícii pri pripojení k operátorovi <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Chcete prepnúť na operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Chcete prepnúť na SIM kartu?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Chcete používať operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"V jednej chvíli môže byť aktívna iba jedna SIM karta.\n\nPrepnutím na operátora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nezrušíte službu operátora <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Naraz môže byť aktívna iba jedna eSIM karta.\n\nPrechodom k operátorovi<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> službu <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> nezrušíte."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"V jednej chvíli môže byť aktívna iba jedna SIM karta.\n\nPrepnutím nezrušíte službu operátora <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Naraz môžete používať dve SIM karty. Ak chcete používať operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, vypnite druhú SIM kartu."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Prepnúť na operátora <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Vypnúť <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nie, vďaka"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Zrušiť"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Prepnúť"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Vypnúť"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM kartu sa nepodarilo aktivovať"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Skúste SIM kartu znova zapnúť. Ak bude problém pretrvávať, reštartujte zariadenie."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Nastavte si SIM kartu"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Nastavte si predvoľby mobilnej siete, aby ste mohli v tomto zariadení používať viac SIM kariet"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Označte si SIM karty štítkami"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Tieto štítky sa budú zobrazovať v Nastaveniach a pri uskutočňovaní hovorov, odosielaní textových správ a používaní dát."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Štítok SIM karty"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Štítok"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Vyberte, ktoré SIM používať"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Nemôžete súčasne používať dve SIM karty"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Nastavte si primárne SIM karty"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Vyberte, ktoré SIM karty sa majú predvolene využívať na hovory, textové správy a dáta"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Vaše primárne SIM karty"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Hovory"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Textové správy"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatické prepínanie dát"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"V závislosti od pokrytia a dostupnosti môžete používať dáta oboch SIM kariet"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Iba dáta"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Nastaviť"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Ďalej"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilná sieť"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefónne číslo"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Štítok a farba SIM karty"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivácia siete"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Prepnutie operátora"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operátor <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktívny"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Ak budete chcieť neskôr použiť mobilné dáta, funkcie hovorov a SMS, prejdite do nastavení siete"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM karta"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Chcete vymazať túto eSIM kartu?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Vymazaním tejto SIM karty odstránite službu operátora <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> z tohto zariadenia.\n\nSlužba operátora <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> sa nezruší."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Vymazať"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Odstraňuje sa SIM karta…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM karta sa nedá vymazať"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"SIM karta sa nedá vymazať, pretože došlo k chybe.\n\nReštartujte zariadenie a skúste to znova."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Pripojenie k zariadeniu"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> chce použiť dočasnú sieť Wi‑Fi na pripojenie k vášmu zariadeniu"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nenašli sa žiadne zariadenia. Skontrolujte, či sú zariadenia zapnuté a dostupné na pripojenie."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Tiesňové volania"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Váš operátor nepodporuje tiesňové volania pomocou volania cez Wi‑Fi.\nZariadenie sa na tiesňové volanie automaticky prepne na mobilnú sieť.\nTiesňové volania sú možné iba v oblastiach s mobilným signálom."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Volajte cez Wi‑Fi a zlepšite tak kvalitu"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Záložné volanie"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ak <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nie je k dispozícii alebo používate roaming, uskutočňujte hovory <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> pomocou mobilnej dátovej SIM karty."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"záložné volanie"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Prichádzajúca správa MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Správu MMS sa nepodarilo odoslať"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Klepnutím povolíte správy MMS cez operátora <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> pri vypnutých mobilných dátach"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informácie o pracovných pravidlách"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Nastavenia spravované vaším správcom IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Grafický procesor"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Zapínať s veľkosťou stránky 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Zap. zar. pomocou podpor. jadra so 16 kB stránkou"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Chcete reštartovať s kompatibilným jadrom so 16 kB stránkami?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"UPOZORNENIE: Niektoré aplikácie nemusia byť s týmto režimom kompatibilné. Po potvrdení sa zariadenie reštartuje."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Chcete reštartovať s kompatibilným jadrom so 4 kB stránkami?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Po potvrdení sa zariadenie reštartuje."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Jadro sa nepodarilo aktualizovať na kompatibilné jadro so 16 KB stránkami"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Zmena sa uplatňuje"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Obsluha hlásení chýb"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Určuje, ktorá aplikácia vo vašom zariadení obsluhuje odkaz na hlásenie chýb."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Osobné"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Prehrávač médií zostane otvorený v rýchlych nastaveniach, aby bolo možné rýchlo obnoviť prehrávanie"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Zobrazovať médiá na uzamknutej obrazovke"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Prehrávač médií zostane na uzamknutej obrazovke otvorený, aby bolo možné prehrávanie rýchlo obnoviť"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Zobrazovať odporúčania médií"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Zobraziť odporúčania médií od Asistenta"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Na základe vašej aktivity"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Skryť prehrávač"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Zobraziť prehrávač"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM karty"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktívna"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktívna"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Predvolené pre <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"hovory"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk z kompatibilných médií bude strhujúcejší"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Sledovanie pohybov hlavy"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zmeny zvuku pri pohybe hlavou budú prirodzenejšie"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synchronizácia povolení"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Udeľte zariadeniu <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> rovnaké povolenia aplikácie, aké ste povolili v zariadení <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synchronizácia povolení z telefónu"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Udeľte hodinkám rovnaké povolenia aplikácie, ktoré ste poskytli v tomto telefóne"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ audio zariadenia"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznáme"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Reproduktor"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Stredný"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Vysoký"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Táto aplikácia môže byť otvorená iba v jednom okne"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Zapnuté"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Vypnuté"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Vypnuté"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Vypnuté"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Zapnuté"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Vypnuté"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Zapnuté"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Vypnuté"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Prepne svetlú obrazovku na tmavú a naopak"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Priblíženie obrazovky"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Vypnuté"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Vypnuté"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Zapnuté"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Vypnuté"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Zapnuté"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Heslo je nastavené"</string>
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 7291e8e..7fa6e79 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Po 1 minuti"</item>
     <item msgid="1574040255478150028">"Po 5 minutah"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 788c55b..785f6a7 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Zdaj ste razvijalec"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Ni treba, ker ste že razvijalec."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Najprej omogočite možnosti za razvijalce."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Samo skrbniški uporabniki imajo dostop do nastavitev za razvijalce."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"V uporabi"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ne deluje"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Sprednji zaslon se vklopi, ko zložite napravo."</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Samo igre, videoposnetki in drugo"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Sprednji zaslon se vklopi pri aplikacijah, ki preprečujejo, da bi zaslon preklopil v stanje pripravljenosti."</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Povlecite navzgor za nadaljevanje"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Zložite telefon in povlecite navzgor po sprednjem zaslonu za nadaljnjo uporabo aplikacije ali počakajte nekaj sekund, da se zaslon zaklene."</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Nikoli"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Sprednji zaslon se zaklene, ko zložite napravo."</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Uporabi samodejni zasuk"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Sorodno"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Zvonjenje in alarmi"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Zvok med klici"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Predstavnost"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Obvestila in drugi zvoki sistema"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Predstavnost in sistemski zvoki"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Obvestila"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Zvočni izhod privzeto določajo posamezne aplikacije."</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Neimenovana naprava Bluetooth"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Iskanje"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth je vklopljen"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Pokaži vse"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Pokaži vse"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pisalo"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pritisk gumba pisala"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (delovni profil)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Vzpostavitev povezave s pretočnim predvajanjem LE zvoka"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Zvočni tokovi v bližini"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Zvočni tokovi"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Vzpostavite povezavo z zvočnim tokom prek kode QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Noben zvočni tok ni bil najden v bližini."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Če želite izbrati jezik za posamezno aplikacijo, odprite nastavitve jezika aplikacije."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Več o jezikih aplikacij"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Želite sistemski jezik spremeniti v jezik »%s«?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Želite jezik »%s« dodati med prednostne jezike?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"S tem boste aplikacijam in spletnim mestom sporočili, da je tudi ta eden od vaših prednostnih jezikov."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Nastavitve naprave in regijske nastavitve se bodo spremenile."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Spremeni"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Jezik »%s« ni na voljo"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"sobota"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Če aplikacija ne podpira regijskih nastavitev, bo uporabila svoje privzete jezikovne nastavitve."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Preberite več o jezikovnih nastavitvah."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Dodatne nastavitve"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Način naslavljanja"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Nastavite želeni način naslavljanja"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikacije lahko na podlagi izbranega način naslavljanja prilagodijo, kako vas naslavljajo."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ni določeno"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski spol"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Moški spol"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Nevtralno"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Želite odstraniti izbrani jezik?}one{Želite odstraniti izbrane jezike?}two{Želite odstraniti izbrane jezike?}few{Želite odstraniti izbrane jezike?}other{Želite odstraniti izbrane jezike?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Besedilo bo prikazano v drugem jeziku."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Vseh jezikov ni mogoče odstraniti"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokacija"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Uporabi lokacijo"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Izklopljeno"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Vklopljeno – dostop do lokacije ima # aplikacija}one{Vklopljeno – dostop do lokacije ima # aplikacija}two{Vklopljeno – dostop do lokacije imata # aplikaciji}few{Vklopljeno – dostop do lokacije imajo # aplikacije}other{Vklopljeno – dostop do lokacije ima # aplikacij}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Vklopljeno/dostop do lokacije ima # aplikacija}one{Vklopljeno/dostop do lokacije ima # aplikacija}two{Vklopljeno/dostop do lokacije imata # aplikaciji}few{Vklopljeno/dostop do lokacije imajo # aplikacije}other{Vklopljeno/dostop do lokacije ima # aplikacij}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Nalaganje …"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacije z dovoljenjem za naprave v bližini lahko določijo relativno lokacijo povezanih naprav."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Dostop do lokacije je izklopljen za aplikacije in storitve. Lokacija naprave bo morda kljub temu poslana službam za nujne primere, ko pokličete številko za klic v sili ali nanjo pošljete sporočilo SMS."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Preberite več o nastavitvah lokacije."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Preberite več o nastavitvah lokacije"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Za spremembo dostopa do lokacije odprite »Nastavitve« &gt; »Varnost in zasebnost« &gt; »Nastavitve zasebnosti«"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Za najboljše rezultate uporabljajte zaščito zaslona, ki ima potrdilo »Narejeno za Google«. Če uporabljate druge zaščite zaslona, otrokov prstni odtis morda ne bo deloval."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Odklepanje z uro"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Če nastavite odklepanje z obrazom in prstnim odtisom, telefon zahteva prstni odtis, ko nosite masko ali ko ste nekje, kjer je temno.\n\nČe obraz ali prstni odtis ni prepoznan, lahko telefon odklenete z uro."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Če prstni odtis ni prepoznan, lahko odklenete z uro."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Če obraz ni prepoznan, lahko odklenete z uro."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Če nastavite odklepanje z obrazom in prstnim odtisom, telefon zahteva prstni odtis, ko nosite masko ali ko ste nekje, kjer je temno.\n\nOdklepanje z uro je dodaten priročen način odklepanja telefona, na primer ko imate mokre prste ali ko telefon ne prepozna vašega obraza."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Odklepanje z uro je dodaten priročen način odklepanja telefona, na primer ko telefon ne prepozna vašega prstnega odtisa."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Odklepanje z uro je dodaten priročen način odklepanja telefona, na primer ko telefon ne prepozna vašega obraza."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Uporaba prstnega odtisa ali ure za"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Uporaba obraza ali ure za"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Uporaba obraza, prstnega odtisa ali ure za"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obraz in <xliff:g id="WATCH">%s</xliff:g> sta dodana"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obraz, prstni odtis in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obraz, prstni odtisi in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Odklepanje storitve Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ura je dodana"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavitev ure"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odklepanje z uro je dodaten priročen način odklepanja tega telefona, na primer ko imate mokre prste ali ko telefon ne prepozna vašega obraza.\n\nTa telefon lahko odklenete z uro v teh primerih:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne zdaj"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nadaljuj"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Več"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Kako deluje"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ura mora biti odklenjena, na vašem zapestju in v bližini tega telefona. Dokler jo boste imeli na zapestju, vam ure ne bo treba znova odklepati."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Ko bo ta telefon odklenjen, boste v uri prejeli obvestilo. Če ste telefon odklenili nenamerno, se dotaknite obvestila, da ga znova zaklenete."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vse imate pod nadzorom"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Uro lahko v nastavitvah kadar koli odstranite iz odklepanja z uro."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dotaknite se obvestila"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Povlecite navzgor po zaklenjenem zaslonu"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Izbira ure"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Razpoložljive ure"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Prekliči"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potrdi"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Vse je pripravljeno"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Zdaj lahko z uro odklenete ta telefon, ko povlečete navzgor po zaklenjenem zaslonu ali se dotaknete obvestila."</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Končano"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Odklepanje z uro"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Z uro lahko odklenete ta telefon, ko povlečete navzgor po zaklenjenem zaslonu ali se dotaknete obvestila."</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Če želite uporabiti odklepanje z uro, mora biti ura odklenjena, na vašem zapestju, v bližini tega telefona in povezana z njim. Če se bo povezava prekinila, boste morali odkleniti telefon, preden boste lahko uporabili odklepanje z uro.\n\nUpoštevajte:\nHkrati imate lahko nastavljeno samo eno uro. Če želite dodati drugo uro, morate najprej odstraniti trenutno uro."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Preberite več o odklepanju z uro."</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj uro"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstranitev ure"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odklepanje s prstnim odtisom in obrazom"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odklepanje z obrazom in prstnim odtisom za delo"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebna je nastavitev"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Varnost"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Zasebnost"</string>
     <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="2274405892301976238">"Naj vaše zasebne aplikacije ostanejo zaklenjene in skrite"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Zasebne aplikacije ohranite v ločenem prostoru, ki ga lahko skrijete ali zaklenete"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Zaklepanje zasebnega prostora"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Zasebni prostor lahko odklepate na enak način kot napravo, lahko pa izberete drug način zaklepanja"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Uporabi zaklepanje zaslona naprave"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Odklepanje z obrazom in prstnim odtisom"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Odklepanje s prstnim odtisom"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Odklepanje z obrazom"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Dotaknite se za nastavitev"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Odklepanje s prstnim odtisom za zasebni prostor"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Odklepanje z obrazom za zasebni prostor"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Načini odklepanja"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Enako kot zaklepanje zaslona naprave"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Želite izbrati novo zaklepanje za zasebni prostor?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Samodejno zakleni"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Samodejno zaklepanje zasebnega prostora"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Zasebni prostor lahko samodejno zaklenete, če nekaj časa ne uporabljate naprave"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Vsakič, ko se naprava zaklene"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"po 5 minutah nedejavnosti"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Nikoli"</string>
+    <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_delete_title" msgid="3075645119800272800">"Brisanje zasebnega prostora"</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="private_space_unlocked" msgid="9091600948712932046">"Zasebni prostor je odklenjen"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Nastavite zaklepanje zaslona"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Če želite uporabljati zasebni prostor, v tej 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="private_space_cancel_label" msgid="379259667396956886">"Prekliči"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Nastavi"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Nastavitev zasebnega prostora"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Zasebne aplikacije ohranite v ločenem prostoru, ki ga lahko skrijete ali zaklenete"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Kako deluje"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Do zasebnega prostora lahko dostopate z dna seznama aplikacij"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikacije v zasebnem prostoru so zaščitene z zaklepanjem"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Obvestila aplikacij v zasebnem prostoru so skrita, kadar je zasebni prostor zaklenjen"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"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.\n\nZasebnega prostora ni mogoče premakniti v novo napravo. Če želite zasebni prostor uporabljati v drugi napravi, morate nastaviti novega.\n\nVsakdo, ki vašo napravo poveže z računalnikom ali v napravo namesti škodljive aplikacije, bo morda lahko dostopal do vašega zasebnega prostora."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Nastavljanje zasebnega prostora …"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Obvestila aplikacij v zasebnem prostoru so skrita, kadar je zasebni prostor zaklenjen"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Odklenite zasebni prostor, če želite deliti fotografije ali datoteke iz aplikacij v zasebnem prostoru"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Nekatere aplikacije so že nameščene v zasebnem prostoru"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Zasebnega prostora ni bilo mogoče nastaviti"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Poskusi znova"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Želite uporabiti zaklepanje zaslona za odklepanje zasebnega prostora?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Zasebni prostor lahko odklepate na enak način kot napravo, lahko pa izberete drug način zaklepanja"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Uporabi zaklepanje zaslona"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Izberite nov način zaklepanja"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Končano"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Za dostop do zasebnega prostora odprite seznam aplikacij in se nato pomaknite navzdol"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Končano"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Pomaknite se navzdol, če želite poiskati zasebni prostor"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Izbira zaklepanja za zasebni prostor"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Zasebni prostor lahko odklenete s prstnim odtisom. Zaradi varnosti ta možnost zahteva uporabo nadomestnega načina zaklepanja."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Nastavite kodo PIN za svoj zasebni prostor"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Nastavite geslo za svoj zasebni prostor"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Nastavite vzorec za svoj zasebni prostor"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Za prikaz zasebnega prostora (ni končna uporabniška izkušnja)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Odprite aplikacijo Nastavitve"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Dotaknite se »Varnost in zasebnost« &gt; »Zasebni prostor« &gt; »Skrivanje zasebnega prostora, kadar je zaklenjen«"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Izklopite preklopnik »Skrivanje zasebnega prostora, kadar je zaklenjen«"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Obvestilo za zaposlene pri Googlu: Razvoj te funkcije še vedno poteka"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Geslo boste morda morali vnesti tudi v drugi napravi."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potrdite seznanjanje s kompletom naprav"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dovoli dostop do stikov in zgodovine klicev"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Dovoli tudi dostop do stikov in zgodovine klicev"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Podatki bodo uporabljeni za najave klicev in drugo"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Povezave z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ni bilo mogoče vzpostaviti."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Razpoložljive naprave"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kadar je Bluetooth vklopljen, lahko vaša naprava komunicira z drugimi napravami Bluetooth v bližini"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"V načinu za letalo"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Obvesti, če so na voljo javna omrežja"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Obvesti me, ko je na voljo zanesljivo javno omrežje."</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Dovoli omrežja WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"Algoritem WEP je starejši varnostni protokol z nižjo stopnjo varnosti"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Vaš operater ne dovoli omrežij WEP, ker imajo nižjo stopnjo varnosti"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Samodejno vklopi Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi se bo samodejno znova vklopil v bližini zanesljivih shranjenih omrežij, na primer vašega domačega omrežja."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Ni na voljo, ker je lokacija izklopljena. Vklopite "<annotation id="link">"lokacijo"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Iskanje omrežij Wi-Fi aplikacijam in storitvam omogoči, da kadar koli iščejo omrežja Wi-Fi, tudi ko je Wi-Fi izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Vklopi"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Iskanje omrežij Wi‑Fi je vklopljeno"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"To omrežje uporablja starejši varnostni protokol z nižjo stopnjo varnosti"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Omrežje <xliff:g id="NAME">%1$s</xliff:g> je blokirano"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"To omrežje uporablja starejši varnostni protokol WEP, ki ima nižjo stopnjo varnosti. Če se želite kljub temu povezati, lahko dovolite omrežja WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Vaš operater ne dovoli povezovanja s tem omrežjem, ker uporablja starejši varnostni protokol z nižjo stopnjo varnosti"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Dovoli omrežja WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Zapri"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Dodatne možnosti"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Dodatne možnosti spustnega seznama"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"razširi"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Ostani v omrežju Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Tega ne prikaži nikoli več"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Vzpostavi povezavo"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi je vklopljen"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Povezano z omrežjem <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Vzpostavljanje povezave z omrežjem <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Povezovanje …"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Vzpostavljanje povezave z omrežjem ni uspelo"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Omrežje ni v dosegu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Pozabi"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Spremeni"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Pozabljanje omrežja ni uspelo"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Shrani"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Shranjevanje omrežja ni uspelo"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Prekliči"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Prenos podatkov v mobilnem omrežju"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – polnjenje"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – polnjenje"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Povezava dostopne točke"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Moč povezave"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Shranjena omrežja"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Geslo ni nastavljeno"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Ime dostopne točke"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Geslo za dostopno točko"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Pas dostopne točke"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Samodejni izklop dostopne točke"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kadar ni povezana nobena naprava"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Razširjena združljivost"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Prikaz ravnovesja beline"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Onemogoči privzeto število sličic v sekundi za igre"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Onemogoči omejevanje največjega števila sličic v sekundi za igre pri <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Tekoč prikaz"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Funkcija zaznavanja pogleda na zaslon uporablja sprednji fotoaparat, da zazna, ali kdo gleda zaslon. Funkcija se izvaja v napravi, slike pa se v nobenem primeru ne shranijo in ne pošiljajo Googlu."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Vklop zaznavanja pogleda na zaslon"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ko gledate zaslon, naj ostane vklopljen"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Daljša časovna omejitev za zaslon poveča porabo energije baterije."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Fotoaparat je zaklenjen."</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Za zaznavanje obraza mora biti fotoaparat odklenjen."</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Za zaznavanje pogleda na zaslon mora biti fotoaparat odklenjen."</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (reža za kartico SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (reža za kartico SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (glavna)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Za ogled izberite shranjeno omrežje"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Različica seznama prednostnih omrežij za gostovanje"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Raven napolnjenosti baterije"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Skupno"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Skupne nastavitve"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Shrani"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Prekliči"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Polje z imenom ne sme biti prazno."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ne sme biti prazen."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Polje z mobilno kodo države mora vsebovati 3 števke."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Polje s kodo mobilnega omrežja mora vsebovati 2 ali 3 števke."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operater ne podpira dodajanja APN-jev vrste %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Polje MMSC mora biti veljavno."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Obnavljanje privzetih nastavitev APN-jev"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Ponastavi na privzeto"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Ponastavitev privzetih nastavitev APN-jev končana"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Ponastavi"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth in Wi‑Fi sta bila ponastavljena."</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Izbris kartic e-SIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"S tem ne boste prekinili nobenega naročniškega paketa za mobilno telefonijo. Če želite prenesti nadomestne kartice SIM, se obrnite na operaterja."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Ponastavi nastavitve"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Želite ponastaviti vse omrežne nastavitve? Tega dejanja ni mogoče razveljaviti."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Želite ponastaviti vse omrežne nastavitve in izbrisati kartice e-SIM? Tega dejanja ni mogoče razveljaviti."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Želite ponastaviti?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Ponastavitev omrežnih nastavitev ni na voljo za tega uporabnika"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Omrežne nastavitve so ponastavljene"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Kartic SIM ni mogoče izbrisati"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Kartic e-SIM ni mogoče izbrisati zaradi napake.\n\nZnova zaženite napravo in poskusite znova."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Izbris vseh podatkov (tovarniška ponastavitev)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Izbriši vse podatke (tov. po.)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"glasbo"</li>\n<li>"fotografije"</li>\n<li>"druge uporabniške podatke"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"Digitalne kartice e-SIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"S tem ne boste prekinili naročniškega paketa za mobilno telefonijo."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Vsi osebni podatki in prenesene aplikacije bodo izbrisani. Tega dejanja ni mogoče razveljaviti."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Izbrisani bodo vsi osebni podatki, vključno s prenesenimi aplikacijami in karticami SIM. Tega dejanja ni mogoče razveljaviti."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Želite izbrisati vse podatke?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Ponastavitev na tovarniške nastavitve ni na voljo za tega uporabnika"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Brisanje"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Dostopna točka, USB, Bluetooth, ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internetna povezava ni deljena z drugimi napravami"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Izklopljeno"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Internetna povezava prek mobilnega telefona"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Brez uporabe dostopne točke Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Deljenje internetne povezave samo prek USB-ja"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Deljenje internetne povezave samo prek Bluetootha"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Deljenje internetne povezave samo prek etherneta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Deljenje internetne povezave samo prek USB-ja in Bluetootha"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Deljenje internetne povezave samo prek USB-ja in etherneta"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Deljenje internetne povezave samo prek Bluetootha in etherneta"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Deljenje internetne povezave samo prek USB-ja, Bluetootha in etherneta"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Internet prek USB-ja"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Internet prek Bluetootha"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Internet prek etherneta"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Uporabite dostopno točko in povezavo z internetom prek mobilnega telefona, da zagotovite internet drugim napravam prek Wi-Fi-ja ali mobilne podatkovne povezave. Tudi aplikacije lahko ustvarijo dostopno točko za deljenje vsebin z napravami v bližini."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Pomoč"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilno omrežje"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Naročniški paket za mobilno napravo"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikacija za SMS-je"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Ali želite zamenjati aplikacijo za sporočila SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Ali želite za SMS-e namesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> uporabljati aplikacijo <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Želite zamenjati Pomočnika za Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Želite za upravljanje omrežnih povezav namesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> uporabljati aplikacijo <xliff:g id="NEW_APP">%1$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Želite za upravljanje omrežnih povezav uporabljati aplikacijo <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Neznan ponudnik kartice SIM"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nima znanega splet. mesta za omogočanje uporabe"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vstavite SIM in znova zaženite"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Vzpostavite internetno povezavo"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nedavne zahteve za lokacijo"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokacija za delovni profil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Dovoljenja aplikacij za lokacijo"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Počisti dostop"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrolniki"</string>
     <string name="force_stop" msgid="2681771622136916280">"Prisilno ustavi"</string>
+    <string name="archive" msgid="9074663845068632127">"Arhiviraj"</string>
+    <string name="restore" msgid="7622486640713967157">"Obnovi"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Skupaj"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Velikost aplikacije"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikacija na pogonu USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Velikosti paketa ni bilo mogoče izračunati."</string>
     <string name="version_text" msgid="7628938665256107608">"različica <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Premakni"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arhiviranje ni uspelo"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Uspešno arhivirano: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Obnavljanje ni uspelo"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Obnavljanje: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Poteka že druga selitev."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ni dovolj prostora za shranjevanje."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikacija ne obstaja."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Razpoložljiva zaslonska tipkovnica"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Upravljaj zaslonske tipkovnice"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Možnosti"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostopnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizična tipkovnica"</string>
     <string name="show_ime" msgid="4334255501724746849">"Uporabi zaslonsko tipkovnico"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Obdrži na zaslonu, tudi ko je fizična tipkovnica aktivna."</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Zaznava večkratnih pritiskov tipk"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Omogočanje zaznave večkratnih pritiskov tipk za zagotavljanje dostopnosti na fizični tipkovnici"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Zaklepanje tipk"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Omogočanje zaklepanja tipk za zagotavljanje dostopnosti na fizični tipkovnici"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Bližnjične tipke"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaz seznama bližnjic"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tipkovnice in orodja delovnega profila"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Razvrsti po času uporabe"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Razvrsti po datumu zadnje uporabe"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Razvrsti po imenu aplikacije"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Zadnjič uporabljeno"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Nazadnje uporabljeno"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"nikoli"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Čas uporabe"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Dostopnost"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Nastavitve dostopnosti"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vseeno nadaljuj"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Prekliči"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Nastavitve povečave"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Povečevanje s trikratnim dotikom"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Povečanje z bližnjico"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Povečanje z bližnjico in trikratnim dotikom"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"O funkciji »<xliff:g id="SERVICE">%1$s</xliff:g>«"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Dvakratni 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="860548190334486449">"Za vklop ali izklop povečave se z dvema prstoma dvakrat 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Če želite uporabljati funkcijo za dostopnost, 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_button" msgid="2031773187678948436">"Razumem"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Nastavitve gumba za dostopnost"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Nastavitve gumba"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Bližnjica do funkcije »<xliff:g id="SERVICE">%1$s</xliff:g>«"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Gumb za dostopnost"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Poteza za dostopnost"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Dvakratni dotik zaslona z dvema prstoma"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"dvakratni dotik zaslona z dvema prstoma"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Z dvema prstoma se {0,number,integer}-krat hitro dotaknite zaslona"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trikratni dotik zaslona"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Preberite več o gumbu in potezi za dostopnost."</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Uporaba gumba za dostopnost. Poteza ni na voljo pri krmarjenju s tremi gumbi."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Hiter dostop do funkcij za ljudi s posebnimi potrebami."</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Začnete tako:"</b>\n"1. Odprite nastavitve dostopnosti.\n2. Izberite funkcijo in se dotaknite bližnjice.\n3. Izberite, ali želite do funkcije dostopati z gumbom ali potezo."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Začnete tako:"</b>\n"1. Odprite nastavitve dostopnosti.\n2. Izberite funkcijo in se dotaknite bližnjice.\n3. Izberite gumb za dostop do funkcije."</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Začnete tako:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Odprite nastavitve funkcij za ljudi s posebnimi potrebami.&lt;br/&gt; {1,number,integer}. Izberite funkcijo in se dotaknite bližnjice.&lt;br/&gt; {2,number,integer}. Izberite, ali želite do funkcije dostopati z gumbom ali potezo.&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Začnete tako:&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Odprite nastavitve funkcij za ljudi s posebnimi potrebami.&lt;br/&gt; {1,number,integer}. Izberite funkcijo in se dotaknite bližnjice.&lt;br/&gt; {2,number,integer}. Izberite gumb za dostop do funkcije.&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Uporaba gumba ali poteze"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokacija"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Velikost"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Gumb za vklop konča klic"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Velik kazalec miške"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Povečanje ikone za kazalec miške"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Temna tema pri vseh aplikacijah"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Velja za aplikacije, ki so brez svoje temne teme. Nekatere aplikacije bodo morda imele težave s prikazom, kot so obrnjene barve."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Odstranjevanje animacij"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Zmanjšanje gibanja na zaslonu"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono zvok"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Spremlja lahko vaše interakcije z aplikacijo ali tipalom strojne opreme ter komunicira z aplikacijami v vašem imenu."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Dovoli"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Zavrni"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Ustavi"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Prekliči"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Želite izklopiti »<xliff:g id="SERVICE">%1$s</xliff:g>«?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Če se dotaknete možnosti »<xliff:g id="STOP">%1$s</xliff:g>«, se bo funkcija »<xliff:g id="SERVICE">%2$s</xliff:g>« ustavila."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Izklopi"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Pusti vklopljeno"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Želite izklopiti storitev za dostopnost »<xliff:g id="SERVICE">%1$s</xliff:g>«?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nameščena ni nobena storitev"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nobena storitev ni izbrana"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Ni opisa."</string>
     <string name="settings_button" msgid="2195468788019730377">"Nastavitve"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"občutljivost na svetlobo, fotofobija, temna tema, migrena, glavobol, način branja, nočni način, zmanjšanje svetlosti, točka beline"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"preprosta uporaba, preprost dostop, pomoč, podporno"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slepi, gluhi, gibalno, spretnostno, podporno, podpora, preprosta uporaba, preprost dostop, roka, pomoč"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"lupa v oknu, povečava/pomanjšava, povečava, slabovidnost, povečaj, naredi večje"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"podnapisi, sproten prepis, naglušnost, izguba sluha, CART, pretvorba govora v besedilo, podnapis"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"barvni kontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorično, gibalno, miška"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, naglušna oseba, izguba sluha, polževi vsadki, ojačevalniki, obdelovalniki zvoka"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"gibalno, miška, zunanja miška, naglavna miška, prilagodljiva miška, invalidski voziček, krmilna palica"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušni aparati, naglušna oseba, izguba sluha, polževi vsadki, ojačevalniki, obdelovalniki zvoka, telefonska centrala za javno varnost, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"naglušnost, izguba sluha, podnapisi, teleprinter, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"trije gumbi, s tremi gumbi"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"spretnostno, gibalno, starejši, artritis, RSI, kap, tremor, multipla skleroza, cerebralna paraliza, tresenje, poškodba zaradi ponavljajočih se gibov, roka"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"zakasnitev, spretnostno, starejši"</string>
     <string name="print_settings" msgid="8519810615863882491">"Tiskanje"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Izklopljeno"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 storitev tiskanja je vklopljena}one{# storitev tiskanja je vklopljena}two{# storitvi tiskanja sta vklopljeni}few{# storitve tiskanja so vklopljene}other{# storitev tiskanja je vklopljenih}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Ogled aplikacij z najvišjo porabo energije"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Polnjenje je optimizirano zaradi zaščite baterije"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Polnjenje je optimizirano zaradi podaljšanja življenjske dobe baterije."</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Polnjenje je optimizirano zaradi zaščite baterije"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Zaradi podaljšanja življenjske dobe baterije je polnjenje optimizirano, ko je naprava priklopljena na nosilec."</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Polnjenje je optimizirano zaradi zaščite baterije"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Zaradi podaljšanja življenjske dobe baterije je polnjenje optimizirano, ko je naprava priklopljena na nosilec."</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Polnjenje do konca"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Zaradi zaščite baterije bo polnjenje optimizirano ob naslednjem priklopu tabličnega računalnika na nosilec."</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Več o začasno zaustavljenem polnjenju"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Nadaljuj polnjenje"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Vključuje dejavnost z visoko porabo energije v ozadju"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Odstrani"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Prekliči"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Napolni do konca"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Težava s pripomočkom za polnjenje"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Več o nezdružljivem polnjenju"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Varčevanje z energijo baterije"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Samodejno upravljanje aplikacij"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"zdaj"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Grafikon porabe energije baterije"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafikon porabe energije baterije po dnevih"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafikon porabe energije baterije po urah"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Odstotek napolnjenosti baterije od <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> do <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Poraba energije baterije od zadnje polne napolnjenosti"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Poraba energije baterije za <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Čas uporabe od zadnje polne napolnjenosti"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal za klice v sili"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Nastavi način delovanja ob klicanju v sili"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Varnostno kopiranje"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Vklopljeno"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Izklopljeno"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Varnostno kopiranje in obnovitev"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Osebni podatki"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Varn. kopiraj podatke"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Ime"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Vrsta"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Naslov strežnika"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Šifriranje PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Skrivnost L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identifikator IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Vnaprej deljeni ključ IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Uporabniško potrdilo IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Overjeno potrdilo IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Potrdilo strežnika IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Prikaži dodatne možnosti"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domene za iskanje DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Strežniki DNS (npr. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Poti za posredovanje (npr. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Uporabniško ime"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Geslo"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Shrani podatke o računu"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ni uporabljeno)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ne preveri strežnika)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(prejeto iz strežnika)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ta vrsta omrežja VPN ne more biti stalno vklopljena."</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Stalno vklopljeno omrežje VPN podpira samo številske naslove strežnikov."</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Za stalno vklopljeno omrežje VPN mora biti naveden strežnik DNS."</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Za stalno vklopljeno omrežje VPN morajo biti naslovi strežnikov DNS številski."</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Vneseni podatki ne podpirajo stalno vklopljenega omrežja VPN."</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Prekliči"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Opusti"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blokiraj povezave brez omrežja VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Ali zahtevate povezavo VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ni varno. Posodobite na VPN različice IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nepodprtega omrežja VPN ni bilo mogoče zagnati."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Izberite profil za navidezno zasebno omrežje (VPN), s katerim boste vedno povezani. Omrežni promet bo dovoljen samo prek tega omrežja VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Brez"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Za stalno vklopljeno navidezno zasebno omrežje je potreben naslov IP tako za strežnik kot za DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Opozorila AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Prejemanje objav o ugrabitvah otrok"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ponovitev"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Omogočanje Upravitelja klicev"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Omogoči tej storitvi upravljanje načina izvajanja klicev."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Upravitelj klicev"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Brezžična nujna opozorila"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Omrežni operaterji"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Imena dostopnih točk (APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"denarnica"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"plačaj, dotakni se, plačevanje z dotikom, plačila"</string>
     <string name="keywords_backup" msgid="707735920706667685">"varnostna kopija, varnostno kopiranje, varnostno kopirati"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"poteza"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"obraz, odklepanje, preverjanje pristnosti, prijava"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"obraz, odklepanje, preverjanje pristnosti, prijava, prstni odtis, biometrični podatki"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, različica seznama prednostnih omrežij za gostovanje, različica programske opreme za imei"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Zvoki ob zagonu"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Samodejni podnapisi"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Samodejni podnapisi predstavnosti"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Zvočniki telefona"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Zvočniki tabličnega računalnika"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Zvočniki naprave"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Žične slušalke"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Zvok iz združljivih predstavnosti dobi prostornejšo razsežnost."</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Izklopljeno"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Kaj naj bo prikazano na zaklenjenem zaslonu?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Nedavni pogovori odstranjeni"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Pogovor je odstranjen."</string>
     <string name="clear" msgid="5092178335409471100">"Počisti"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Počisti pogovor <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prednostni in spremenjeni pogovori bodo prikazani tukaj"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Pogovori, ki jih označite kot prednostne ali jih kakor koli drugače spremenite, bodo prikazani tukaj. \n\nČe želite spremeniti nastavitve pogovorov: \nS prstom povlecite z vrha zaslona navzdol, da odprete potezni zaslon z obvestili, in nato pridržite pogovor."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimiraj"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Izklopljeno"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Pripenjanje aplikacije"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Pripenjanje aplikacije omogoča, da trenutna aplikacija ostane vidna, dokler je ne odpnete. To funkcijo lahko na primer uporabite, če želite prijatelju, ki mu zaupate, dovoliti igranje določene igre."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Ko je aplikacija pripeta, lahko ta odpre druge aplikacije, prav tako pa so lahko dostopni osebni podatki. \n\nČe želite uporabiti pripenjanje aplikacije, storite to: 	\n1. Vklopite pripenjanje aplikacije. 	\n2. Odprite »Pregled«. 	\n3. Dotaknite se ikone aplikacije na vrhu zaslona, nato pa se dotaknite »Pripni«."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Ko je aplikacija pripeta, lahko ta odpre druge aplikacije, prav tako pa so lahko dostopni osebni podatki. \n\nČe želite varno deliti svojo napravo z drugimi, namesto tega uporabite gosta. \n\nČe želite uporabiti pripenjanje aplikacije, storite to: 	\n1. Vklopite pripenjanje aplikacije. 	\n2. Odprite »Pregled«. 	\n3. Dotaknite se ikone aplikacije na vrhu zaslona, nato pa se dotaknite »Pripni«."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Ko je aplikacija pripeta, lahko ta odpre druge aplikacije, prav tako pa so lahko dostopni osebni podatki. \n\nČe želite uporabiti pripenjanje aplikacije, storite to: 	\n{0,number,integer}. Vklopite pripenjanje aplikacije. 	\n{1,number,integer}. Odprite »Pregled«. 	\n{2,number,integer}. Dotaknite se ikone aplikacije na vrhu zaslona, nato pa se dotaknite »Pripni«."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Ko je aplikacija pripeta, lahko ta odpre druge aplikacije, prav tako pa so lahko dostopni osebni podatki. \n\nČe želite varno deliti svojo napravo z drugimi, namesto tega uporabite gosta. \n\nČe želite uporabiti pripenjanje aplikacije, storite to: 	\n{0,number,integer}. Vklopite pripenjanje aplikacije. 	\n{1,number,integer}. Odprite »Pregled«. 	\n{2,number,integer}. Dotaknite se ikone aplikacije na vrhu zaslona, nato pa se dotaknite »Pripni«."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Ko je aplikacija pripeta: \n\n• Dostopni so lahko osebni podatki \n (na primer stiki in vsebina e-poštnih sporočil). \n• Pripeta aplikacija lahko odpre druge aplikacije. \n\nPripenjanje aplikacij uporabite le za osebe, ki jim zaupate."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Pred odpenjanjem vprašaj za vzorec za odklepanje"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Zahtevaj PIN pred odpenjanjem"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Nastavitve neuporabljenih aplikacij"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Zaustavi dejavnost aplikacije ob neuporabi"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Dovoljenja se odstranijo, začasne datoteke se izbrišejo in prikazovanje obvestil se ustavi."</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Upravljanje aplikacije ob neuporabi"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Odstranitev dovoljenj, izbris začasnih datotek, ustavitev prikazovanja obvestil in arhiviranje aplikacije"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Vse aplikacije"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Nameščene aplikacije"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Nenamestljive aplikacije"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Prosto"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Pomnilnik, ki ga uporabljajo aplikacije"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikacija je uporabljala pomnilnik v zadnjega toliko časa: {time}.}one{# aplikacija je uporabljala pomnilnik v zadnjega toliko časa: {time}.}two{# aplikaciji sta uporabljali pomnilnik v zadnjega toliko časa: {time}.}few{# aplikacije so uporabljale pomnilnik v zadnjega toliko časa: {time}.}other{# aplikacij je uporabljalo pomnilnik v zadnjega toliko časa: {time}.}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Omogoči profiliranje uporabe pomnilnika"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Za profiliranje uporabe pomnilnika so potrebna dodatna sistemska sredstva."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profiliranje pomnilnika je onemogočeno"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekvenca"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Največja uporaba"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Ni bilo prenosa podatkov."</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Prekrivanje drugih aplikacij"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Dovoli prekrivanje drugih aplikacij"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Omogočite tej aplikaciji, da na zaslonu prekrije druge aplikacije, ki jih uporabljate. Ta aplikacija bo lahko spremljala dotike zaslona ali spreminjala prikaz na zaslonu."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Spreminjanje izhoda za predstavnost"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Aplikaciji dovoli preklop izhoda za predstavnost"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Tej aplikaciji dovolite, da izbere, katera povezana naprava predvaja zvok ali videoposnetek iz drugih aplikacij. Če ji omogočite dovoljenje, lahko ta aplikacija dostopa do seznama razpoložljivih naprav, kot so slušalke in zvočniki, ter upravlja, katera izhodna naprava se uporablja za pretočno ali daljinsko predvajanje zvoka ali videoposnetka."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Dostop do vseh datotek"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Izboljšanje glasovnega aktiviranja"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Ta naprava uporablja zasebne podatke za izboljšanje modela glasovnega aktiviranja. Aplikacije lahko prejemajo povzetke posodobitev, zbranih od številnih uporabnikov, za varovanje zasebnosti pri izboljšanju modela za vse uporabnike.\n\n"<a href="">"Več o zasebnih podatkih"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Opozorilo pri <xliff:g id="ID_1">^1</xliff:g> prenesenih podatkov"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Omejitev prenosa podatkov pri <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Opozorilo ob preneseni količini podatkov <xliff:g id="ID_1">^1</xliff:g>/omejitev prenosa podatkov pri <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operaterjeve meritve prenosa podatkov so morda drugačne kot v napravi."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne vključuje podatkov, ki jih uporabljajo omrežja operaterjev."</string>
     <string name="data_used_template" msgid="8229342096562327646">"Preneseno: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Nastavi opozorilo za prenos podatkov"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Posodobljeno pred <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Pravkar posodobil <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Pravkar posodobljeno"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Prikaži paket"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ogled podrobnosti"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Varčevanje s podatki"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Neomejen prenos podatkov"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Odstopanje pri porabi energije baterije"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Ploščice razvijalcev za hitre nastavitve"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Onemogoči časovno omejitev pooblastila ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Onemogoči samodejni preklic pooblastil ADB za sisteme, ki niso znova vzpostavili povezave v privzetem času (7 dni) ali v uporabniško konfiguriranem času (najmanj 1 dan)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Sledenje z apl. Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Izklop tipal"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Nastavitve delovnega profila"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Iskanje stikov v delovnem imeniku prek osebnih aplikacij"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Če želite sprožiti aplikacijo digitalnega pomočnika, s prstom povlecite navzgor iz spodnjega kota"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Storitev samodejnega izpolnjevanja"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Privzeta storitev samodejnega izpolnjevanja"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Gesla"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Gesla, ključi za dostop in podatkovne storitve"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Dodatni ponudniki"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# geslo}one{# geslo}two{# gesli}few{# gesla}other{# gesel}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"samodejno, izpolnjevanje, samodejno izpolnjevanje, geslo"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Gesla, ključi za dostop in podatkovne storitve"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Želite izklopiti vse storitve?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Gesla, ključi za dostop in drugi shranjeni podatki ne bodo na voljo za samodejno izpolnjevanje ob prijavi."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Želite spremeniti želeno storitev na &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_enable_confirmation_message_title" msgid="1037501792652277829">"Želite uporabiti ponudnika %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Vklopljenih je lahko največ pet storitev"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Če želite dodati novo storitev, izklopite vsaj eno obstoječo"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s na podlagi prikaza na zaslonu ugotovi, kaj se lahko samodejno izpolni."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Omejitev števila gesel, ključev za dostop in podatkovnih storitev"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Naenkrat je lahko aktivnih največ 5 gesel, ključev za dostop in podatkovnih storitev. Če želite dodati novo storitev, najprej izklopite eno od obstoječih."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Omejitev števila gesel, ključev za dostop in podatkovnih storitev"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Hkrati je lahko aktivnih največ 5 gesel, ključev za dostop in podatkovnih storitev. Če želite dodati novo storitev, najprej izklopite eno od obstoječih."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Izklopi"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Samodejno izpolnjevanje"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Raven pisanja dnevnika"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Spremembe združljivosti aplikacij je mogoče spreminjati samo za aplikacije z možnostjo odpravljanja napak. Namestite aplikacijo z možnostjo odpravljanja napak in poskusite znova."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Ta nastavitev je odvisna od druge nastavitve"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Račun"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Št. računov: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Ime naprave"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Osnovni podatki"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Pravna obvestila in informacije o skladnosti s predpisi"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Tej aplikaciji dovolite, da se zažene pri optičnem branju oznake NFC.\nČe je to dovoljenje vklopljeno, bo aplikacija na voljo kot ena od možnosti ob vsaki zaznani oznaki."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Predvajaj predstavnost v"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Predvaj <xliff:g id="LABEL">%s</xliff:g> v napravi:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Zvok bo predvajan v"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Ta naprava"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Ni na voljo med klici"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Sprejemanje klicev je vklopljeno"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Izklop zvoka"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Če želite omogočiti, najprej spremenite »Pridržanje gumba za vklop« na meni za vklop/izklop."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Podatki o omrežju"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Ime naprave je vidno aplikacijam v telefonu. 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="devices_title" msgid="649715719278562515">"Naprave"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Izbira omrežja"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Brez povezave"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Ime"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Barva (uporabljajo jo združljive aplik.)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Shrani"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Uporabi kartico SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Uporabi to kartico SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Izklopljeno"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Če želite onemogočiti to kartico SIM, jo odstranite"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Dotaknite se za aktiviranje operaterja <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Izbriši kartico SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Prednostna vrsta omrežja"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Sprememba načina delovanja omrežja"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Prednostna vrsta omrežja"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Preverite cene pri operaterju omrežja."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Prenos podatkov aplikacij"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Neveljaven način omrežja: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Prezri."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Imena dostopnih točk"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Ni na voljo ob vzpostavljeni povezavi z operaterjem <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Želite preklopiti na operaterja <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Želite preklopiti na uporabo kartice SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Želite preklopiti na operaterja <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Hkrati je lahko aktivna samo ena kartica SIM.\n\nČe preklopite na operaterja <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, ne boste preklicali storitve operaterja <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Aktivna je lahko samo ena kartica e-SIM hkrati.\n\nČe preklopite na operaterja <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, s tem še ne boste preklicali storitve operaterja <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Hkrati je lahko aktivna samo ena kartica SIM.\n\nČe preklopite, ne boste preklicali storitve operaterja <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Hkrati lahko uporabljate dve kartici SIM. Če želite preklopiti na operaterja <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, izklopite drugo kartico SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Preklopi na operaterja <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Izklop operaterja <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, hvala"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Prekliči"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Preklopi"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Izklopi"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kartice SIM ni mogoče aktivirati"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Poskusite znova vklopiti kartico SIM. Če s tem ne odpravite težave, znova zaženite napravo."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Nastavitev kartice SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Izberite nastavitev mobilnega omrežja, ki omogoča uporabo več kartic SIM v tej napravi."</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Dodajanje oznak karticam SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Te oznake bodo prikazane med klici, pošiljanjem sporočil SMS in prenosom podatkov ter v nastavitvah."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Oznaka kartice SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Oznaka"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Izbira kartic SIM za uporabo"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Uporabljate lahko dve kartici SIM hkrati."</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Nastavitev glavnih kartic SIM"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Izberite, katere kartice SIM naj bodo privzeto uporabljene za klice, sporočila in prenos podatkov."</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Vaše glavne kartice SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Klici"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Sporočila SMS"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Samodejni preklop prenosa podatkov"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Uporaba prenosa podatkov prek ene ali druge kartice SIM, odvisno od pokritosti in razpoložljivosti"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Samo prenos podatkov"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Nastavi"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Naprej"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilno omrežje"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonska številka"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Oznaka in barva kartice SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivacija omrežja"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Preklop operaterja"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operater <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktiven"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Prenos podatkov v mobilnem omrežju, funkcije klicanja in sporočila lahko nastavite tudi pozneje v omrežnih nastavitvah."</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Želite izbrisati to kartico e-SIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Če izbrišete to kartico SIM, boste iz te naprave odstranili storitev operaterja <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nStoritev operaterja <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ne bo preklicana."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Izbriši"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Brisanje kartice SIM …"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Kartice SIM ni mogoče izbrisati"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Te kartice SIM ni mogoče izbrisati zaradi napake.\n\nZnova zaženite napravo in poskusite znova."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Vzpostavitev povezave z napravo"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikacija <xliff:g id="APPNAME">%1$s</xliff:g> želi uporabiti začasno omrežje Wi-Fi za vzpostavitev povezave z napravo"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Ni naprav. Preverite, ali so naprave vklopljene in na voljo za vzpostavitev povezave."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Klici v sili"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Vaš operater ne podpira klicev v sili, opravljenih s funkcijo Klicanje prek Wi-Fi-ja.\nNaprava samodejno preklopi na mobilno omrežje, da opravi klic v sili.\nKlici v sili so mogoči samo na območjih, ki so pokrita z mobilnim signalom."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Uporabljajte omrežje Wi‑Fi za izboljšanje kakovosti klicev"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Pomožno klicanje"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Če <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ni na voljo ali gostujete, za klice prek operaterja <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> uporabite SIM za prenos pod. v mob. omrež."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"pomožno klicanje, nadomestni način klicanja"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Dohodno sporočilo MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Sporočila MMS ni mogoče poslati"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Dotaknite se za uporabo sporočil MMS v omrežju <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>, ko je prenos podatkov v mobilnem omrežju izklopljen"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Podatki o službenem pravilniku"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Nastavitve upravlja skrbnik za IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPE"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Zaženi s stranmi velikosti 16 K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Zagon naprave z jedrom, ki podpira strani velikosti 16 K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Želite znova zagnati z jedrom, združljivim s stranmi velikosti 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"OPOZORILO: Nekatere aplikacije morda niso združljive s tem načinom. Naprava se bo znova zagnala po potrditvi."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Želite znova zagnati z jedrom, združljivim s stranmi velikosti 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Naprava se bo znova zagnala po potrditvi."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Jedra ni bilo mogoče posodobiti na jedro, ki je združljivo s stranmi velikosti 16 KB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Uveljavljanje spremembe"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Rutina za obravnavo poročila o napakah"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Določa, katera aplikacija obravnava bližnjico za poročilo o napakah v napravi."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Osebno"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Predvajalnik predstavnosti ostane odprt v hitrih nastavitvah, da je omogočeno hitro nadaljevanje predvajanja."</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Prikaži predstavnost na zaklenjenem zaslonu"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Predvajalnik predstavnosti ostane odprt na zaklenjenem zaslonu, da je omogočeno hitro nadaljevanje predvajanja."</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Prikaži priporočila glede predstavnosti"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Prikaz priporočil Pomočnika za predstavnost"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Priporočila temeljijo glede na vašo dejavnost."</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Skrij predvajalnik"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Prikaži predvajalnik"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"Kartica e-SIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Kartice e-SIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktivna"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Neaktivna"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Privzeto za: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"klici"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvok iz združljivih predstavnosti dobi prostornejšo razsežnost."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Spremljanje položaja glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvok se med premikanjem glave spreminja za naravnejšo izkušnjo."</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinhronizacija dovoljenj"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Napravi <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> dodelite enaka dovoljenja za aplikacije, kot ste jih dodelili v napravi <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>."</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinhroniziranje dovoljenj iz telefona"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Uri dodelite enaka dovoljenja za aplikacije, kot ste jih dodelili v tem telefonu"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta naprave za zvok"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznano"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvočnik"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Srednji"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Visok"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"To aplikacijo je mogoče odpreti samo v enem oknu"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Vklopljeno"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Izklopljeno"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Izklopljeno"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Izklopljeno"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Vklopljeno"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Izklopljeno"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Vklopljeno"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Izklopljeno"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Svetle zaslone spremeni v temne in temne v svetle."</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Povečava zaslona"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Izklopljeno"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Izklopljeno"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Vklopljeno"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Izklopljeno"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Vklopljeno"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Geslo je zdaj nastavljeno"</string>
 </resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 5111be2..4649573 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Pas 1 minute"</item>
     <item msgid="1574040255478150028">"Pas 5 minutash"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index c539fb4..cffb4c9 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Tani je zhvillues!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Nuk ka nevojë, ti je programues tashmë!"</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Aktivizo opsionet e zhvilluesit në fillim."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Vetëm përdoruesit administratorë mund të qasen te cilësimet e zhvilluesit."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistemi"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Në shërbim"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Jashtë shërbimit"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Ekrani i përparmë ndizet kur palos pajisjen"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Vetëm lojëra, video etj."</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Ekrani i përparmë ndizet për aplikacionet që e ndalojë ekranin që të kalojë në gjendje joaktive"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Rrëshqit shpejt lart për të vazhduar"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Palos telefonin dhe rrëshqit shpejt lart në ekranin e parmë për të vazhduar të përdorësh aplikacionin ose prit disa sekonda që të kyçet ekrani"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Asnjëherë"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Ekrani i përparmë kyçet kur palos pajisjen"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Përdor rrotullimin automatik"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Të ngjashme"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Toni i ziles dhe alarmet"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audioja gjatë telefonatave"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Njoftimet dhe tingujt e tjerë"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Tingujt e medias dhe sistemit"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Njoftimet"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Si parazgjedhje, dalja e audios caktohet nga aplikacionet individuale"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Pajisje me \"Bluetooth\" e paemërtuar"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Po kërkon"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth-i është i aktivizuar"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Shiko të gjitha"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Shiko të gjitha"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stilolapsi"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Shtypja e butonit të bishtit"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Profili i punës)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Lidh me një transmetim audio LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Transmetimet audio në afërsi"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Transmetimet audio"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Lidh me një transmetim audio duke përdorur kodin QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Nuk u gjet transmetim audio në afërsi."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Për të zgjedhur një gjuhë për çdo aplikacion, shko te cilësimet e gjuhës së aplikacionit."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Mëso më shumë për gjuhët e aplikacionit"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Të ndryshohet gjuha e sistemit në %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Të shtohet %s në gjuhët e preferuara?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Kjo i lejon aplikacionet dhe uebsajtet të dinë se ti preferon edhe këtë gjuhë."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Cilësimet e pajisjes dhe preferencat rajonale do të ndryshojnë."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Ndrysho"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s nuk ofrohet"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"E shtunë"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Nëse një aplikacion nuk i mbështet preferencat rajonale, aplikacioni do të përdorë cilësimet e tij të parazgjedhura lokale."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Mëso më shumë rreth preferencave gjuhësore."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Preferenca të tjera"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Termat e adresimit"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Cakto se si dëshiron të të adresohen"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikacionet mund të përdorin termat e tu të adresimit për të personalizuar mënyrën se si të adresohen."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"E papërcaktuar"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femërore"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Mashkullore"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Asnjanës"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Të hiqet gjuha e zgjedhur?}other{Të hiqen gjuhët e zgjedhura?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teksti do të shfaqet në një gjuhë tjetër."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nuk mund të hiqen të gjitha gjuhët"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Vendndodhja"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Përdor vendndodhjen"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Joaktiv"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Aktive - # aplikacion ka qasje te vendndodhja}other{Aktive - # aplikacione kanë qasje te vendndodhja}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Aktive / # aplikacion ka qasje te vendndodhja}other{Aktive / # aplikacione kanë qasje te vendndodhja}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Po ngarkohet…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Aplikacionet me lejen \"Pajisjet në afërsi\" mund të përcaktojnë pozicionin e përafërt të pajisjeve të lidhura."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Qasja te vendndodhja është joaktive për aplikacionet dhe shërbimet. Vendndodhja e pajisjes sate mund t\'u dërgohet përsëri personave që përgjigjen në rast urgjence kur telefonon ose dërgon mesazh te një numër urgjence."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Mëso më shumë për \"Cilësimet e vendndodhjes\"."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Mëso më shumë për \"Cilësimet e vendndodhjes\""</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Për të ndryshuar qasjen te vendndodhja, shko te Cilësimet &gt; Siguria dhe privatësia &gt; Kontrollet e privatësisë"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Për rezultate më të mira, përdor një mbrojtës ekrani që është i certifikuar nga \"Prodhuar për Google\". Me mbrojtës të tjerë ekrani, gjurma e gishtit e fëmijës tënd mund të mos funksionojë."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Shkyçja me orë"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Kur konfiguron \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\", telefoni yt do të kërkojë gjurmën tënde të gishtit kur mban maskë apo kur je në një zonë të errët.\n\nMund ta shkyçësh nëpërmjet orës kur fytyra ose gjurma e gishtit nuk njihet."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Mund ta shkyçësh nëpërmjet orës kur gjurma e gishtit ose fytyra nuk njihet."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Mund ta shkyçësh nëpërmjet orës kur fytyra ose gjurma e gishtit nuk njihet."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Kur konfiguron \"Shkyçjen me fytyrë\" dhe \"Shkyçjen me gjurmën e gishtit\", telefoni do të kërkojë gjurmën tënde të gishtit kur mban maskë apo kur je në një zonë të errët.\n\n\"Shkyçja me orë\" është një mënyrë tjetër praktike për të shkyçur telefonin, p.sh. kur i ke gishtat të lagur ose kur fytyra nuk njihet."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"\"Shkyçja me orë\" është një mënyrë tjetër praktike për të shkyçur telefonin, p.sh. kur gjurma jote e gishtit nuk njihet."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"\"Shkyçja me orë\" është një mënyrë tjetër praktike për të shkyçur telefonin, p.sh. kur fytyra jote nuk njihet."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Përdor gjurmën e gishtit ose orën"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Përdor fytyrën ose gjurmën e gishtit"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Përdor fytyrën, gjurmën e gishtit ose orën"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Fytyra dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Fytyra, gjurma e gishtit dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Fytyra, gjurmët e gishtave dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Shkyçja me vërtetuesin në distancë"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Ora u shtua"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguro orën tënde"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"\"Shkyçja me orë\" është një mënyrë tjetër praktike për të shkyçur këtë telefon, p.sh. kur i ke gishtat të lagur ose kur fytyra nuk njihet.\n\nMund të përdorësh orën tënde për ta shkyçur këtë telefon kur:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Jo tani"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Vazhdo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Më shumë"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Si funksionon"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ora jote duhet të jetë e shkyçur në kyçin e dorës dhe të jetë në afërsi me këtë telefon. Nuk do të jetë e nevojshme ta shkyçësh përsëri orën tënde kur është në kyçin e dorës."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kur ky telefon është i shkyçur, do të njoftohesh në orën tënde. Nëse është shkyçur aksidentalisht, trokit njoftimin për ta kyçur sërish telefonin."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontrolli është në duart e tua"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Mund ta heqësh orën tënde nga \"Shkyçja me orë\" në çdo kohë te \"Cilësimet\""</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Trokit një njoftim"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Rrëshqit shpejt lart në ekranin e kyçjes"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Zgjidh orën tënde"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Orët që ofrohen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Anulo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Konfirmo"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Je plotësisht gati!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Tani mund ta përdorësh orën për të shkyçur këtë telefon kur rrëshqet shpejt lart në ekranin e kyçjes ose kur troket një njoftim"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"U krye"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Shkyçja me orë"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Mund ta përdorësh orën për të shkyçur këtë telefon kur rrëshqet shpejt lart në ekranin e kyçjes ose kur troket një njoftim"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Për të përdorur \"Shkyçjen me orë\", ora jote duhet të jetë e shkyçur në kyçin e dorës, në afërsi dhe të jetë e lidhur me këtë telefon. Nëse lidhja ndërpritet, do të të duhet të shkyçësh telefonin para se të mund të përdorësh \"Shkyçjen me orë\".\n\nKi parasysh:\nMund të konfigurosh vetëm një orë njëkohësisht. Për të shtuar një orë tjetër, fillimisht hiq orën aktuale."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Mëso më shumë rreth \"Shkyçjes me orë\""</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Shto orën"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Hiq orën"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Shkyçja me gjurmë gishti dhe me fytyrë"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Shkyçja me fytyrë dhe gjurmë gishti për profilin e punës"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nevojitet konfigurimi"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Siguria"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privatësia"</string>
     <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="2274405892301976238">"Mbaji të kyçura dhe të fshehura aplikacionet e tua private"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Mbaji aplikacionet private në një hapësirë të veçuar që mund ta fshehësh ose kyçësh"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Kyçja e \"Hapësirës private\""</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"\"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="private_space_screen_lock_title" msgid="8679383894967823163">"Përdor kyçjen e ekranit të pajisjes"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Shkyçja me fytyrë dhe me gjurmën e gishtit"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Shkyçja me gjurmën e gishtit"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Shkyçja me fytyrë"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Trokit për ta konfiguruar"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"\"Shkyçja me gjurmën e gishtit\" për hapësirën private"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"\"Shkyçja me fytyrë\" për hapësirën private"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Mënyrat për ta shkyçur"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Njëlloj me kyçjen e ekranit të pajisjes"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Të zgjidhet +kyçje e re për \"Hapësirën private\"?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Kyç automatikisht"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Kyç automatikisht hapësirën private"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Mund ta kyçësh automatikisht hapësirën tënde private nëse nuk e ke përdorur pajisjen tënde për një periudhë kohore"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Sa herë që kyçet pajisja"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Pas 5 minutash pa aktivitet"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Asnjëherë"</string>
+    <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_delete_title" msgid="3075645119800272800">"Fshi \"Hapësirën private\""</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="private_space_unlocked" msgid="9091600948712932046">"Hapësira private u shkyç"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Cakto një kyçje ekrani"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Anulo"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Konfiguro"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Konfiguro një hapësirë private"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Mbaji aplikacionet private në një hapësirë të veçuar që mund ta fshehësh ose kyçësh"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Si funksionon"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Mund të qasesh te hapësira private nga fundi i listës së aplikacioneve"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Aplikacionet në hapësirën private janë të mbrojtura me një kyçje"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Njoftimet nga aplikacionet në hapësirën private janë të fshehura kur ajo është e kyçur"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Aplikacionet në hapësirën tënde private nuk do të shfaqen në menaxherin e lejeve, panelin e privatësisë dhe cilësimet e tjera kur hapësira jote private është e kyçur.\n\nHapësira jote private nuk mund të zhvendoset te një pajisje e re. Do të duhet të konfigurosh një hapësirë tjetër private nëse dëshiron ta përdorësh atë në një pajisje tjetër.\n\nÇdo person që e lidh pajisjen tënde me një kompjuter ose instalon aplikacione të dëmshme në pajisjen tënde mund të jetë në gjendje të qaset te hapësira jote private."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Hapësira private po konfigurohet…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Njoftimet nga aplikacionet në hapësirën private janë të fshehura kur ajo është e kyçur"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Shkyç hapësirën private për të ndarë fotografitë ose skedarët nga aplikacionet e hapësirës private"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Disa aplikacione janë instaluar tashmë në hapësirën tënde private"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Hapësira private nuk mund të konfigurohej"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Provo përsëri"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Të përdoret kyçja e ekranit për të shkyçur hapësirën private?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"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="private_space_use_screenlock_label" msgid="9182153443192032782">"Përdor kyçjen e ekranit"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Zgjidh një kyçje të re"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Plotësisht gati!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Për t\'u qasur te hapësira private, shko te lista e aplikacioneve dhe më pas lëviz poshtë"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"U krye"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Lëviz poshtë për të gjetur hapësirën private"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Zgjidh një kyçje për hapësirën tënde private"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Mund ta shkyçësh hapësirën private duke përdorur gjurmën e gishtit. Për siguri, ky opsion kërkon një kyçje rezervë."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Cakto një PIN për hapësirën private"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Cakto fjalëkalim për hapësirën private"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Cakto motiv për hapësirën private"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Për të shfaqur \"Hapësirën private\" (UX jo përfundimtare)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Hap aplikacionin \"Cilësimet\""</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Trokit te \"Siguria dhe privatësia &gt; Hapësira private &gt; Fshih \"Hapësirën private\" kur ajo kyçet\""</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Çaktivizo butonin \"Fshih \'Hapësirën private\' kur ajo kyçet\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Shënim për punonjësit e Google: Zhvillimi i kësaj veçorie është ende në progres"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Mund të shtosh deri në <xliff:g id="COUNT">%d</xliff:g> gjurmë gishtash"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Ke shtuar numrin maksimal të gjurmëve të gishtave"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nuk mund të shtohen gjurmë të tjera të gishtave"</string>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Mund të duhet gjithashtu ta shkruash këtë çelës kalimi në pajisjen tjetër."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Konfirmo për të çiftuar me grupin e koordinuar"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Lejo qasjen te kontaktet dhe historiku i telefonatave"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Lejo gjithashtu qasjen te kontaktet dhe historiku i telefonatave"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacionet do të përdoren për njoftimet për telefonatat etj."</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nuk mundi të lidhej me <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Pajisjet që ofrohen"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Kur Bluetooth-i është i aktivizuar, pajisja jote mund të komunikojë me pajisjet e tjera me Bluetooth në afërsi"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Në modalitetin e aeroplanit"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Njofto për rrjetet publike"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Njofto kur ofrohet një rrjet publik me cilësi të lartë"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Lejo rrjetet WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP është një protokoll më i vjetër i sigurisë që është më pak i sigurt"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operatori celular nuk i lejon rrjetet WEP sepse ata janë më pak të sigurt"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Aktivizo automatikisht Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi do të aktivizohet përsëri në afërsi të rrjeteve të ruajtura me cilësi të lartë, si p.sh. rrjeti i shtëpisë"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Nuk ofrohet sepse vendndodhja është e çaktivizuar. Aktivizo "<annotation id="link">"vendndodhjen"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Skanimi i Wi-Fi lejon që aplikacionet dhe shërbimet të skanojnë për rrjete Wi-Fi në çdo kohë, edhe kur Wi-Fi është joaktiv. Kjo mund të përdoret, për shembull, për të përmirësuar veçoritë dhe shërbimet e bazuara te vendndodhja."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktivizo"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Skanimi i Wi‑Fi është aktivizuar"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ky rrjet përdor një protokoll më të vjetër të sigurisë që është më pak i sigurt"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> është bllokuar"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ky rrjet përdor një protokoll më të vjetër të sigurisë të quajtur WEP, i cili është më pak i sigurt. Për t\'u lidhur gjithsesi, mund të lejosh rrjetet WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operatori celular nuk të lejon që të lidhesh me këtë rrjet sepse ai përdor një protokoll më të vjetër të sigurisë që është më pak i sigurt"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Lejo WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Mbyll"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Opsionet e përparuara"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Opsionet e përparuara të listës me lëshim poshtë"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"zgjero"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Qëndro në Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Kurrë mos e trego përsëri"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Lidh"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi është i aktivizuar"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Lidhur me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Po lidhet me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Po lidhet…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Lidhja me rrjetin dështoi"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rrjeti nuk është brenda rrezes"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Harro"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Modifiko"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Dështoi në harrimin e rrjetit"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Ruaj"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Dështoi në ruajtjen e rrjetit"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Anulo"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Të dhënat celulare"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Po karikohet"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Po karikohet"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Lidhja me zonën e qasjes për internet"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Fuqia e lidhjes"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Rrjetet e ruajtura"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Nuk është caktuar fjalëkalim"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Emri i zonës së qasjes për internet"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Fjalëkalimi i zonës së qasjes për internet"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Banda AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Çaktivizo automatikisht zonën e qasjes për internet"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kur nuk është lidhur asnjë pajisje"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Zgjero përputhshmërinë"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Shfaq balancimin e të bardhës"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Çaktivizo shpejtësinë e parazgjedhur të kuadrove për lojërat"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Çaktivizo kufizimin e shpejtësisë maksimale të kuadrove për lojërat në <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"\"Vëmendja ndaj ekranit\" përdor kamerën e përparme për të parë nëse dikush po shikon tek ekrani. Funksionon në pajisje dhe imazhet nuk ruhen apo dërgohen asnjëherë te Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktivizo vëmendjen ndaj ekranit"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Mbaje ekranin aktiv kur e shikon"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Koha më e gjatë e pritjes së ekranit do të përdorë më shumë bateri."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera është e kyçur"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kamera duhet të jetë e shkyçur për \"Zbulimin e fytyrës\""</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kamera duhet të jetë e shkyçur për \"Vëmendjen ndaj ekranit\""</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (foleja e kartës <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (foleja e kartës <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (kryesore)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Për ta shfaqur, zgjidh rrjetin e ruajtur"</string>
+    <string name="status_imei" msgid="5719752369250485007">"Numri IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"Numri IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MINUTA"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Versioni PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Niveli i baterisë"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Të përbashkëta"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Cilësimet e përbashkëta"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Ruaj"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Anulo"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Fusha Emri nuk mund të jetë bosh."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Rrjeti APN nuk mund të jetë bosh."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Fusha e MCC-së duhet të ketë 3 shifra."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Fusha e MNC-së duhet të ketë 2 ose 3 shifra."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operatori nuk lejon shtimin e APN-ve të llojit %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Fusha MMSC duhet të jetë e vlefshme."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Po restauron cilësimet e APN-së me parazgjedhje."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Rivendos të parazgjedhurën"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Rivendosja e cilësimeve të APN-së me parazgjedhje përfundoi."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Rivendos"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth dhe Wi‑Fi janë rivendosur"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Spastro eSIM-et"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Kjo nuk do të anulojë planet e shërbimit celular. Për të shkarkuar karta zëvendësuese SIM, kontakto me operatorin celular."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Rivendos cilësimet"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Të rivendosen të gjitha cilësimet e rrjetit? Ky veprim nuk mund të zhbëhet."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Të rivendosen të gjitha cilësimet e rrjetit dhe të spastrohen kartat eSIM? Nuk mund ta zhbësh këtë veprim."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Të rivendosen?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Rivendosja e rrjetit nuk është e disponueshme për këtë përdorues"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Cilësimet e rrjetit janë rivendosur"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Kartat SIM nuk mund të spastrohen"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Kartat eSIM nuk mund të spastrohen për shkak të një gabimi.\n\nRinise pajisjen dhe provo përsëri."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Spastro të gjitha të dhënat (rivendosja e fabrikës)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Spastro të gjitha të dhënat (rivendosja e fabrikës)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Muzika"</li>\n<li>"Fotografitë"</li>\n<li>"Të dhëna të tjera të përdoruesit"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"Kartat eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Kjo nuk do ta anulojë planin tënd të shërbimit celular."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Të gjitha informacionet e tua personale dhe aplikacionet e shkarkuara do të fshihen. Nuk mund ta zhbësh këtë veprim."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Të gjitha informacionet e tua personale, duke përfshirë aplikacionet e shkarkuara dhe kartat SIM, do të fshihen. Nuk mund ta zhbësh këtë veprim."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Të spastrohen të gjitha të dhënat?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Rivendosja në gjendjen e fabrikës nuk ofrohet për këtë përdorues"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Po spastron"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Zona e qasjes së internetit, USB, Bluetooth, eternet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Interneti nuk ndahet me pajisje të tjera"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Joaktive"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Ndarja e internetit"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Mos përdor zonën e qasjes për Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Ndaje internetin vetëm me USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Ndaje internetin vetëm me Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Ndaje internetin vetëm me eternet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Ndaje internetin vetëm me USB dhe Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Ndaje internetin vetëm me USB dhe eternet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Ndaje internetin vetëm me Bluetooth dhe eternet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Ndaje internetin vetëm me USB, Bluetooth dhe eternet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Ndarje interneti përmes USB-së"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Ndarje interneti përmes Bluetooth-it"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ndarja e Ethernet-it"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Përdor zonën e qasjes dhe ndarjen e internetit për t\'u ofruar internet pajisjeve të tjera nëpërmjet lidhjes sate Wi-Fi ose të të dhënave celulare. Aplikacionet mund të krijojnë po ashtu një zonë qasjeje të internetit për të ndarë përmbajtje me pajisjet në afërsi."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Ndihma"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Rrjeti celular"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Plani celular"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Aplikacioni për SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Të ndryshohet aplikacioni i SMS-ve?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Të përdoret <xliff:g id="NEW_APP">%1$s</xliff:g> në vend të <xliff:g id="CURRENT_APP">%2$s</xliff:g> si aplikacioni për SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Të ndryshohet ndihmësi i Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Të përdoret <xliff:g id="NEW_APP">%1$s</xliff:g> në vend të <xliff:g id="CURRENT_APP">%2$s</xliff:g> për të menaxhuar lidhjet e rrjetit?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Të përdoret <xliff:g id="NEW_APP">%s</xliff:g> për të menaxhuar lidhjet e rrjetit?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Operatori i kartës SIM është i panjohur"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> nuk ka faqe të sigurt e të njohur"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vendos kartën SIM dhe rinise"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lidhu me internetin"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Kërkesat e vendndodhjeve të fundit"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Vend. për profilin e punës"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Lejet e vendndodhjes për aplikacionet"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Qasje e pastër"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrollet"</string>
     <string name="force_stop" msgid="2681771622136916280">"Ndalo me forcë"</string>
+    <string name="archive" msgid="9074663845068632127">"Arkivo"</string>
+    <string name="restore" msgid="7622486640713967157">"Restauro"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Totali"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Madhësia e aplikacionit"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Aplikacioni i hapësirës ruajtëse të USB-së"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Madhësia e paketës nuk mund të llogaritej."</string>
     <string name="version_text" msgid="7628938665256107608">"versioni <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Zhvendos"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arkivimi dështoi"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"\"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>\" u arkivua"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Restaurimi dështoi"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> po restaurohet"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Një migrim tjetër është tashmë në vazhdim."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nuk ka hapësirë ruajtëse të mjaftueshme."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Aplikacioni nuk ekziston."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Ofrohet tastiera në ekran"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Menaxho tastierat në ekran"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Opsionet"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Qasshmëria"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fizike"</string>
     <string name="show_ime" msgid="4334255501724746849">"Përdor tastierën në ekran"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Mbaje në ekran ndërsa tastiera fizike është aktive"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Tastet e kërcimit"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Aktivizo \"Tastet e kërcimit\" për qasshmërinë për tastierën fizike"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Tastet e përhershme"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Aktivizo \"Tastet e përhershme\" për qasshmërinë për tastierën fizike"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Shkurtoret e tastierës"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Shfaq listën e shkurtoreve"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastierat dhe veglat e profilit të punës"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Rendit sipas kohës së përdorimit"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Rendit sipas herës së fundit të përdorimit"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Rendit sipas emrit të aplikacionit"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Përdorur për herë të fundit"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Përdorur për herë të fundit"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"asnjëherë"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Koha e përdorimit"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Qasshmëria"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Cilësimet e qasjes"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vazhdo gjithsesi"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Anulo"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Cilësimet e zmadhimit"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Zmadho me tre trokitje"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Zmadho me shkurtore"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Zmadho me shkurtore dhe tri trokitje"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Rreth \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Trokit dy 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="860548190334486449">"Për të filluar dhe ndaluar zmadhimin, trokit dy 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="1624189347106713695">"Cilësime: butoni i qasshmërisë"</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_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>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Trokit dy herë me dy gishta në ekran"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"trokit dy herë me dy gishta në ekran"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Trokit shpejt {0,number,integer} herë me dy gishta në ekran"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Trokit tri herë mbi ekran"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Mëso më shumë rreth butonit dhe gjestit të qasshmërisë"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Përdorimi i butonit të qasshmërisë. Gjesti nuk ofrohet me navigimin me 3 butona."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Qasu me shpejtësi te veçoritë e qasshmërisë"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Për të filluar"</b>\n"1. Shko te cilësimet e qasshmërisë\n2. Zgjidh një veçori dhe trokit shkurtoren\n3. Zgjidh nëse dëshiron të përdorësh një buton ose gjest për të marrë qasje te kjo veçori"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Për të filluar"</b>\n"1. Shko te cilësimet e qasshmërisë\n2. Zgjidh një veçori dhe trokit shkurtoren\n3. Zgjidh butonin për të pasur qasje te veçoria"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Për të filluar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Shko te cilësimet e qasshmërisë&lt;br/&gt; {1,number,integer}. Zgjidh një veçori dhe trokit shkurtoren&lt;br/&gt; {2,number,integer}. Zgjidh nëse dëshiron të përdorësh një buton ose gjest për t\'u qasur te veçoria&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Për të filluar&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Shko te cilësimet e qasshmërisë&lt;br/&gt; {1,number,integer}. Zgjidh një veçori dhe trokit shkurtoren&lt;br/&gt; {2,number,integer}. Zgjidh butonin për t\'u qasur te veçoria&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Përdor butonin ose gjestin"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Vendndodhja"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Madhësia"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Butoni i energjisë mbyll telefonatën"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Kursor mausi i madh"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Bëje treguesin e miut më të dukshëm"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Bëji të gjitha aplikacionet të errëta"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Zbatohet për aplikacionet pa temën e tyre të errët. Disa aplikacione mund të kenë probleme me ekranin, si p.sh. ngjyra të anasjella."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Hiq animacionet"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Redukto lëvizjen në ekran"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Audioja mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Mund të monitorojë ndërveprimet me një aplikacion ose një sensor hardueri dhe të ndërveprojë me aplikacionet në emrin tënd."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Lejo"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Refuzo"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Ndalo"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Anulo"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Të ndalohet shërbimi \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Trokitja te <xliff:g id="STOP">%1$s</xliff:g> do të ndalojë <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Çaktivizo"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Mbaj aktiv"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Të çaktivizohet <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Nuk është instaluar asnjë shërbim"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Nuk është zgjedhur asnjë shërbim"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Nuk është dhënë asnjë përshkrim."</string>
     <string name="settings_button" msgid="2195468788019730377">"Cilësimet"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ndjeshmëria ndaj dritës, fotofobia, tema e errët, migrena, dhimbje koke, modaliteti i leximit, modaliteti i natës, ul ndriçimin, pika e bardhë"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Lehtësia e përdorimit, lehtësia e qasjes, ndihma, ndihmëse"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"shikimi, dëgjimi, i verbër, i shurdhër, motorik, shkathtësi, ndihmëse, ndihmë, lehtësi përdorimi, lehtësi qasjeje, dorë, ndihmë"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Zmadhuesi i dritareve, zmadho, zmadhimi, shikim i dobët, zmadho, bëje më të madh"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Titrat, CC, Transkriptimi në çast, vështirësi në dëgjim, humbje e dëgjimit, CART, ligjërimi në tekst, nëntitull"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"kontrasti i ngjyrës"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"aftësitë motorike, miu"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparate dëgjimi, me vështirësi në dëgjim, humbje e dëgjimit, impiante kokleare, pajisje për amplifikimin e zërit, përpunues të zërit"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorik, mi, mi i jashtëm, mi me kokë, mi me përshtatje, karrige me rrota, levë kontrolli"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparate dëgjimi, vështirësi në dëgjim, humbje e dëgjimit, impiante kokleare, pajisje për amplifikimin e zërit, përpunues të zërit, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"vështirësi në dëgjim, humbje e dëgjimit, titrat, teletajp, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri butona"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"shkathtësi, motorik, i moshuar, artrit, rsi, goditje në tru, dridhje, sklerozë multiple, paralizë cerebrale, dridhje, lëndim nga sforcim i përsëritur, dorë"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"vonesë, shkathtësi, i moshuar"</string>
     <string name="print_settings" msgid="8519810615863882491">"Printimi"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Joaktive"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 shërbim aktiv printimi}other{# shërbime aktive printimi}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Shiko aplikacionet me përdorimin më të lartë"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Karikimi u optimizua për të mbrojtur baterinë tënde"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Për të ndihmuar në zgjatjen e jetëgjatësisë së baterisë sate, është optimizuar karikimi"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Karikimi u optimizua për të mbrojtur baterinë tënde"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Për të ndihmuar në zgjatjen e jetëgjatësisë së baterisë sate, karikimi është i optimizuar gjatë lidhjes me stacionin"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Karikimi u optimizua për të mbrojtur baterinë tënde"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Për të ndihmuar në zgjatjen e jetëgjatësisë së baterisë sate, karikimi është i optimizuar gjatë lidhjes me stacionin"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Po karikohet plotësisht"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Për të mbrojtur baterinë tënde, karikimi do të optimizohet herën tjetër kur tableti yt të jetë i lidhur me stacionin"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Mëso më shumë rreth vendosjes së karikimit në pauzë"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Vazhdo karikimin"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Përfshin aktivitetin me nivel të lartë të energjisë në sfond"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Hiq"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Anulo"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Karikoje plotësisht"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Problem me aksesorin e karikimit"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Mëso më shumë për karikimin e papërputhshëm"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Menaxheri i baterisë"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Menaxho automatikisht aplikacionet"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"tani"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Grafiku i përdorimit të baterisë"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Grafiku i përdorimit të baterisë për çdo ditë"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Grafiku i përdorimit të baterisë për çdo orë"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Përqindja e nivelit të baterisë nga <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> deri në <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Përdorimi i baterisë që nga karikimi i fundit i plotë"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Përdorimi i baterisë për <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Koha para ekranit që nga karikimi i fundit i plotë"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Sinjali i telefonimit të urgjencës"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Cakto sjelljen kur kryhet një telefonatë urgjence"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Rezervimi"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Aktiv"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Joaktiv"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Rezervo dhe restauro"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Të dhënat personale"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Rezervo të dhënat e mia"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Emri"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Lloji"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Adresa e serverit"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Enkriptimi PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Sekreti L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Identifikuesi IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Çelësi IPSec i parashkëmbyer"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certifikata e përdoruesit IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Certifikata CA e protokollit IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Certifikata e serverit IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Shfaq opsionet e përparuara"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Domenet e kërkimit të DNS-së"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Serverët DNS (p.sh. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Rrugët e transferimit (p.sh. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Emri i përdoruesit"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Fjalëkalimi"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Ruaj informacionet e llogarisë"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(nuk përdoret)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(mos e verifiko serverin)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(marrë nga serveri)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Ky lloj i VPN-së nuk mund të qëndrojë i lidhur gjatë gjithë kohës"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Rrjeti VPN gjithmonë aktiv mbështet adresat numerike të serverit"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Duhet të specifikohet një server DNS për rrjetin VPN gjthmonë aktiv"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Adresat e serverit të DNS-së duhet të jenë numerike për rrjetin VPN gjithmonë aktiv"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Informacionet e futura nuk e mbështesin rrjetin VPN gjithmonë aktiv"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Anulo"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Injoro"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blloko lidhjet pa rrjetin VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Të kërkohet lidhja e VPN-së?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Jo e sigurt. Përditësoje me një VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Nisja e VPN-së së pambështetur dështoi."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Zgjidh një profil VPN-je për të qëndruar gjithmonë i lidhur. Trafiku i rrjetit do të lejohet vetëm kur të lidhet me këtë VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Asnjë"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN-ja gjithnjë e aktivizuar kërkon një adresë IP-je për serverin dhe DNS-në."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Sinjalizimet AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Merr buletine rreth rrëmbimeve të fëmijëve"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Përsërit"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktivizo \"Menaxherin e telefonatave\""</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Lejo këtë shërbim të menaxhojë si kryhen telefonatat."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Menaxheri i telefonatave"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Sinjalizimet wireless të urgjencës"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Operatorët e rrjetit"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Emrat e pikës së qasjes"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"portofoli"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"paguaj, trokit, pagesa"</string>
     <string name="keywords_backup" msgid="707735920706667685">"rezervim, rezervo"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"gjesti"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"fytyrë, shkyçje, autorizim, identifikim"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"fytyrë, shkyç, vërtetim, identifikim, gjurmë gishti, biometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, versioni prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Aktivizo tingujt"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Titra në çast"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Media me titra automatike"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Altoparlantët e telefonit"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Altoparlantët e tabletit"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Altoparlantët e pajisjes"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Kufje me tel"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Audioja nga media e përputhshme bëhet më përfshirëse"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Joaktiv"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Çfarë dëshiron të shfaqë ekrani yt i kyçjes?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Bisedat e fundit u hoqën"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Biseda u hoq"</string>
     <string name="clear" msgid="5092178335409471100">"Pastro"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Pastro: <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Bisedat me përparësi dhe të modifikuara do të shfaqen këtu"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Kur e shënon një bisedë si me përparësi, ose kur bën ndonjë ndryshim tjetër te bisedat, ato do të shfaqen këtu. \n\nPër të ndryshuar cilësimet e bisedës: \nRrëshqit shpejt poshtë nga kreu i ekranit për të hapur strehën me tërheqje poshtë dhe më pas prek dhe mbaj të shtypur një bisedë."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimizo"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Joaktiv"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Gozhdimi i aplikacionit"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Gozhdimi i aplikacionit të lejon ta mbash aplikacionin aktual në pamje derisa ta zhgozhdosh. Kjo veçori mund të përdoret, për shembull, për të lejuar një shok të besuar që të luajë një lojë specifike."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kur një aplikacion është i gozhduar, ai mund të hapë aplikacione të tjera dhe mund të ketë qasje tek të dhënat personale. \n\nPër të përdorur gozhdimin e aplikacionit: 	\n1. Aktivizo gozhdimin e aplikacionit 	\n2. Hap \"Përmbledhja\" 	\n3. Trokit ikonën e aplikacionit në krye të ekranit dhe më pas trokit \"Gozhdo\""</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kur një aplikacion është i gozhduar, ai mund të hapë aplikacione të tjera dhe mund të ketë qasje tek të dhënat personale. \n\nNëse do që ta ndash në mënyrë të sigurt pajisjen tënde me dikë, provo të përdorësh më mirë një përdorues vizitor. \n\nPër të përdorur gozhdimin e aplikacionit: 	\n1. Aktivizo gozhdimin e aplikacionit 	\n2. Hap \"Përmbledhja\" 	\n3. Trokit ikonën e aplikacionit në krye të ekranit dhe më pas trokit \"Gozhdo\""</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kur një aplikacion është i gozhduar, ai mund të hapë aplikacione të tjera dhe mund të ketë qasje te të dhënat personale. \n\nPër të përdorur gozhdimin e aplikacionit: 	\n{0,number,integer}. Aktivizo gozhdimin e aplikacionit 	\n{1,number,integer}. Hap \"Përmbledhjen\" 	\n{2,number,integer}. Trokit ikonën e aplikacionit në krye të ekranit dhe më pas trokit \"Gozhdo\""</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kur një aplikacion është i gozhduar, ai mund të hapë aplikacione të tjera dhe mund të ketë qasje te të dhënat personale. \n\nNëse do që ta ndash në mënyrë të sigurt pajisjen tënde me dikë, provo të përdorësh më mirë një përdorues vizitor. \n\nPër të përdorur gozhdimin e aplikacionit: 	\n{0,number,integer}. Aktivizo gozhdimin e aplikacionit 	\n{1,number,integer}. Hap \"Përmbledhjen\" 	\n{2,number,integer}. Trokit ikonën e aplikacionit në krye të ekranit dhe më pas trokit \"Gozhdo\""</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kur aplikacioni është i gozhduar: \n\n•		Të dhënat personale mund të jenë të qasshme \n		(si kontaktet dhe përmbajtja e email-eve) \n•		Aplikacioni i gozhduar mund të hapë aplikacione të tjera \n\nPërdore gozhdimin e aplikacionit vetëm me personat te të cilët ke besim."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Kërko motivin e shkyçjes para heqjes së gozhdimit"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Zhgozhdimi kërkon PIN-in"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Cilësimet e aplikacioneve të papërdorura"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Ndërprit aktivitetin nëse nuk përdoret"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Hiq lejet, fshi skedarët e përkohshëm dhe ndalo njoftimet"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Menaxho aplikacionin nëse nuk përdoret"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Hiq lejet, fshi skedarët e përkohshëm, ndalo njoftimet dhe arkivo aplikacionin"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Të gjitha apl."</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Aplikacionet e instaluara"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Aplikacionet e çastit"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"E lirë"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memoria e përdorur nga aplikacionet"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 aplikacion përdori memorien gjatë {time} të fundit}other{# aplikacione përdorën memorien gjatë {time} të fundit}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Aktivizo profilizimin e përdorimit të memories"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilizimi i përdorimit të memories kërkon burime shtesë të sistemit."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Profilizimi i memories u çaktivizua"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekuenca"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Përdorimi maksimal"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Nuk janë përdorur të dhëna"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Shfaq mbi aplikacionet e tjera"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Lejo shfaqjen mbi aplikacionet e tjera"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Lejoje këtë aplikacion të shfaqet në krye të aplikacioneve të tjera që po përdor. Ky aplikacion do të jetë në gjendje të shikojë se ku troket ose të ndryshojë se çfarë shfaqet në ekran."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Ndrysho daljen e medias"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Lejo që aplikacioni të ndërrojë daljen e medias"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Lejo që ky aplikacion të zgjedhë se cila pajisje e lidhur luan audion ose videon nga aplikacionet e tjera. Nëse lejohet, ky aplikacion mund të qaset te një listë e pajisjeve të disponueshme, si p.sh. kufjet dhe altoparlantët, dhe të zgjedhë se cila pajisje e daljes përdoret për të transmetuar audion ose videon."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Qasje te të gjithë skedarët"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Përmirëso aktivizimin zanor"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Kjo pajisje përdor inteligjencën private për të përmirësuar modelin e aktivizimit zanor. Aplikacionet mund të marrin përditësime të përmbledhura që janë mbledhur nga shumë përdorues për të ruajtur privatësinë ndërkohë që përmirësojnë modelin për të gjithë.\n\n"<a href="">"Më shumë rreth inteligjencës private"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Paralajmërimi i të dhënave <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Kufiri i të dhënave <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Paralajmërimi i të dhënave <xliff:g id="ID_1">^1</xliff:g> / Kufiri i të dhënave <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Llogaritja e të dhënave nga operatori mund të ndryshojë nga llogaritja e pajisjes"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Përjashton të dhënat që përdoren nga rrjetet e operatorëve celularë"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> të përdorura"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Cakto paralajm. për të dhënat"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"U përditësua <xliff:g id="ID_1">^2</xliff:g> më parë"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Sapo u përditësua nga <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"U përditësua pikërisht tani"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Shiko planin"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Shiko detajet"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Kursyesi i të dhënave"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Të dhënat e pakufizuara"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomali në përdorimin e baterisë"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Pllakëzat e zhvilluesit të cilësimeve të shpejta"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Çaktivizo kohën e pritjes së autorizimit të ADB-së"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Çaktivizo revokimin automatik të autorizimeve të ADB-së për sistemet që nuk janë lidhur me sasinë e parazgjedhur të kohës (7 ditë) ose të konfiguruar nga përdoruesi (minimumi 1 ditë)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Gjurma e Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensorët joaktivë"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Cilësimet e profilit të punës"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Kërko për kontakte të direktorisë së punës në aplikacionet personale"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Rrëshqit shpejt lart nga këndi i poshtëm për të aktivizuar aplikacionin e asistentit dixhital"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Shërbimi i plotësimit automatik"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Shërbimi i parazgjedhur i plotësimit automatik"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Fjalëkalimet"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Ofrues shtesë"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# fjalëkalim}other{# fjalëkalime}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"automatikisht, plotëso, plotësimi automatik, fjalëkalim"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Të çaktivizohen të gjitha shërbimet?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Fjalëkalimet, çelësat e kalimit dhe informacionet e tjera të ruajtura nuk do të ofrohen për plotësimin automatik kur të identifikohesh"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Të ndryshohet shërbimi i preferuar te &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 e reja, çelësat e kalimit dhe informacionet e tjera 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_enable_confirmation_message_title" msgid="1037501792652277829">"Të përdoret %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Mund të kesh vetëm 5 shërbime aktive"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Çaktivizo të paktën 1 shërbim për të shtuar një tjetër"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s përdor atë që ke në ekranin për të përcaktuar se çfarë mund të plotësohet automatikisht."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Kufiri i fjalëkalimeve, çelësave të kalimit dhe shërbimeve të të dhënave"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Mund të kesh aktive deri në 5 fjalëkalime, çelësa kalimi dhe shërbime të dhënash në të njëjtën kohë. Çaktivizo një shërbim për të shtuar një tjetër."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Kufiri i fjalëkalimeve, çelësave të kalimit dhe shërbimeve të të dhënave"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Mund të kesh aktive deri në 5 fjalëkalime, çelësa kalimi dhe shërbime të dhënash në të njëjtën kohë. Çaktivizo një shërbim për të shtuar një tjetër."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Çaktivizo"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Plotësim automatik"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Niveli i identifikimit"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Ndryshimet e pajtueshmërisë së aplikacionit mund të modifikohen vetëm për aplikacionet e korrigjueshme. Instalo një aplikacion të korrigjueshëm dhe provo përsëri."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Varet nga një cilësim tjetër"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Llogaria"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d llogari"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Emri i pajisjes"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Informacionet bazë"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Informacione ligjore dhe rregullatore"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Lejo këtë aplikacion të hapet kur skanohet një etiketë NFC.\nNëse kjo leje është aktive, aplikacioni do të ofrohet si opsion sa herë që zbulohet një etiketë."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Luaj median te"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Luaj <xliff:g id="LABEL">%s</xliff:g> në"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audioja do të luhet te"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Kjo pajisje"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Nuk ofrohet gjatë telefonatave"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Prano telefonatën te"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Hiqi zërin"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Për ta aktivizuar, në fillim ndrysho \"Shtyp dhe mbaj shtypur butonin e energjisë\" te menyja e energjisë."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Detajet e rrjetit"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Emri i pajisjes sate është i dukshëm për aplikacionet në telefonin tënd. 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="devices_title" msgid="649715719278562515">"Pajisjet"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Zgjidh rrjetin"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"I shkëputur"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Emri"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Ngjyra (e përdorur nga aplikacionet e përputhshme)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Ruaj"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Përdor kartën SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Përdor këtë kartë SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Joaktive"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Për ta çaktivizuar këtë kartë SIM, hiqe kartën SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Trokit për të aktivizuar <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Spastro kartën SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Lloji i rrjetit të preferuar"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Ndrysho modalitetin e operimit të rrjetit"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Lloji i rrjetit të preferuar"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Kontakto me operatorin celular të rrjetit për çmimin."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Përdorimi i të dhënave të aplikacionit"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Regjim i pavlefshëm i rrjetit <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Shpërfille."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Emrat e pikës së qasjes"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Nuk ofrohet kur është e lidhur me <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Do të kalosh te <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Dëshiron të kalosh te përdorimi i kartës SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Të përdoret <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Vetëm një kartë SIM mund të jetë aktive në të njëjtën kohë.\n\nKalimi te <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nuk do ta anulojë shërbimin e <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Vetëm 1 kartë eSIM mund të jetë aktive në të njëjtën kohë.\n\nKalimi te <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> nuk do ta anulojë shërbimin e <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Vetëm një kartë SIM mund të jetë aktive në të njëjtën kohë.\n\nKalimi nuk do ta anulojë shërbimin e <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Mund të përdorësh 2 karta SIM në të njëjtën kohë. Për të përdorur <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, çaktivizo një kartë tjetër SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Kalo te <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Çaktivizo <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Jo, faleminderit"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Anulo"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Ndërro"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Çaktivizo"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Karta SIM nuk mund të aktivizohet"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Provo të aktivizosh kartën SIM përsëri. Nëse problemi vazhdon, rinise pajisjen."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Konfiguro kartën SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Cakto preferencat e tua për rrjetin celular për të përdorur disa karta SIM në këtë pajisje"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Etiketo kartat e tua SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Këto etiketa do t\'i shikosh kur të bësh telefonata, të dërgosh mesazhe me tekst dhe të përdorësh të dhënat, si dhe te \"Cilësimet\""</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Etiketa e kartës SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiketa"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Zgjidh kartën SIM për përdorim"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Mund të përdorësh 2 karta SIM në të njëjtën kohë"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Cakto kartat parësore SIM"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Zgjidh se cilat karta SIM do të përdorësh si parazgjedhje për telefonatat, mesazhet me tekst dhe të dhënat"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Kartat parësore SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Telefonatat"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mesazhet me tekst"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Ndërrimi automatik për të dhënat"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Përdor të dhënat nga cilado kartë SIM në varësi të mbulimit dhe disponueshmërisë"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Vetëm për të dhënat"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Konfiguro"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Para"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Rrjeti celular"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Numri i telefonit"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Etiketa e ngjyra e kartës SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivizimi i rrjetit"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Ndërrimi i operatorit celular"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> është aktiv"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Për të përdorur të dhënat celulare, veçoritë e telefonatave dhe mesazhet SMS më vonë, shko te cilësimet e tua të rrjetit"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Të spastrohet kjo kartë eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Spastrimi i kësaj karte SIM e heq shërbimin e <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> nga kjo pajisje.\n\nShërbimi për <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> nuk do të anulohet."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Spastro"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Karta SIM po spastrohet…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Karta SIM nuk mund të spastrohet"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Kjo kartë SIM nuk mund të spastrohet për shkak të një gabimi.\n\nRinise pajisjen dhe provo përsëri."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Lidhu me pajisjen"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Aplikacioni <xliff:g id="APPNAME">%1$s</xliff:g> dëshiron të përdorë një rrjet të përkohshëm Wi-Fi për t\'u lidhur me pajisjen tënde"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Nuk u gjet asnjë pajisje. Sigurohu që pajisjet të jenë të ndezura dhe të gatshme për t\'u lidhur."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Telefonata urgjence"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Telefonatat e urgjencës me \"Telefonata me Wi‑Fi\" nuk mbështeten nga operatori yt celular.\nPajisja kalon automatikisht në një rrjet celular për të kryer një telefonatë urgjence.\nTelefonatat e urgjencës janë të mundshme vetëm në zonat me mbulim celular."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Përdor Wi‑Fi për telefonatat për të përmirësuar cilësinë"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Opsioni rezervë i telefonatave"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Nëse <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> nuk ofrohet ose është në roaming, përdor kartën SIM të të dhënave celulare për telefonata me <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"opsioni rezervë i telefonatave"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mesazh MMS në ardhje"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Mesazhi MMS nuk mund të dërgohet"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Trokit për të lejuar mesazhet MMS në <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> kur të dhënat celulare janë të çaktivizuara"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Informacioni i politikës sate të punës"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Cilësimet menaxhohen nga administratori yt i TI-së"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Rindiz me madhësinë e faqeve 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Rindize pajisjen duke përdorur bërthamën e përputhshme me madhësinë e faqeve 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Të rindizet me bërthamën e përputhshme me faqet 16 KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"PARALAJMËRIM: Disa aplikacione mund të mos jenë në përputhje me këtë modalitet. Pajisja do të rindizet pas konfirmimit."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Të rindizet me bërthamën e përputhshme me faqet 4 KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Pajisja do të rindizet pas konfirmimit."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Përditësimi i bërthamës në bërthamën e përputhshme me faqet 16 KB dështoi"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Ndryshimi po zbatohet"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Administruesi i raportit të defekteve në kod"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Përcakton se cili aplikacion administron shkurtoren e \"Raportit të defekteve në kod\" në pajisjen tënde."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Për të rifilluar shpejt luajtjen, luajtësi i medias qëndron i hapur te \"Cilësimet e shpejta\""</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Shfaq media në ekranin e kyçjes"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Për të rifilluar shpejt luajtjen, luajtësi i medias qëndron i hapur në ekranin e kyçjes"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Shfaq rekomandimet për mediat"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Shfaq rekomandimet e \"Asistentit\" për median"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Bazuar në aktivitetin tënd"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Fshih luajtësin"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Shfaq luajtësin"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Kartat eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktive"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Joaktive"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Parazgjedhja për <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"telefonatat"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audioja nga media e përputhshme bëhet më përfshirëse"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Monitorimi i lëvizjes së kokës"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audioja ndryshon ndërsa ti lëviz kokën për të tingëlluar më e natyrshme"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinkronizimi i lejeve"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Jepi pajisjes <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> të njëjtat leje të aplikacionit që ke lejuar në <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sinkronizo lejet nga telefoni"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Jepi orës të njëjtat leje të aplikacionit që ke lejuar në këtë telefon"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Lloji i pajisjes audio"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"E panjohur"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altoparlant"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Mesatar"</string>
     <string name="contrast_high" msgid="3988567609694797696">"I lartë"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ky aplikacion mund të hapet vetëm në 1 dritare"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktive"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Joaktive"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Joaktive"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Çaktivizuar"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Aktivizuar"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Çaktivizuar"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Aktivizuar"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Çaktivizuar"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Kthen ekranet e ndriçuara në të errëta dhe ekranet e errëta në të ndriçuara"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zmadho në ekran"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Çaktivizuar"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Çaktivizuar"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Aktivizuar"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Çaktivizuar"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Aktivizuar"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Fjalëkalimi është konfiguruar tani"</string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 831fbee..177bf08 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"После 1 минута"</item>
     <item msgid="1574040255478150028">"После 5 минута"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 4148932..036f889 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Само корисници са администраторским правима могу да приступе подешавањима за програмере."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Систем"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Ради"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Не ради"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Превуците нагоре да бисте наставили"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Склопите телефон и превуците нагоре на предњем екрану да бисте и даље корисили апликацију или сачекајте неколико секунди да се екран закључа"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Сродно"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Мелодија звона и аларми"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Звук током позива"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Медији"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Обавештења и други системски звуци"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Звуци медија и система"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Обавештења"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Аудио излаз подразумевано одређују појединачне апликације"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Неименовани Bluetooth уређај"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Претражује се"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth је укључен"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Прикажи све"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Прикажи све"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Писаљка"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Притисак на дугме са задње стране"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (пословни профил)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Повежите се са LE Audio стримом"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Аудио стримови у близини"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудио стримови"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Повежите се са аудио стримом помоћу QR кода"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Нема аудио стримова у близини."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Датум и време"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Прокси"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Обриши"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Да бисте изабрали језик за сваку апликацију, идите у подешавања језика апликације."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Сазнајте више о језицима апликација"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Желите да језик система од сада буде %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Желите да додате %s у жељене језике?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Тиме се апликације и веб-сајтови обавештавају да вам је тај језик жељени."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Подешавања уређаја и регионална подешавања ће се променити."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Промени"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Није доступно: %s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"субота"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ако апликација не подржава регионална подешавања, користиће подразумевана подешавања локалитета."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Сазнајте више о подешавањима језика."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Додатна подешавања"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Жељени род за обраћање"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Подесите род у ком желите да вам се обраћа"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Да би начин обраћања био персонализован, апликације могу да вам се обраћају у роду који изаберете"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Није наведено"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Женски род"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Мушки род"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Неутрално"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Желите ли да уклоните изабрани језик?}one{Желите ли да уклоните изабране језике?}few{Желите ли да уклоните изабране језике?}other{Желите ли да уклоните изабране језике?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст ће бити приказан на неком другом језику."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Није могуће уклонити све језике"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Локација"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Користи локацију"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Искључена"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Укључено – # апликација има приступ локацији}one{Укључено – # апликација има приступ локацији}few{Укључено – # апликације имају приступ локацији}other{Укључено – # апликација има приступ локацији}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Укључено/# апликација има приступ локацији}one{Укључено/# апликација има приступ локацији}few{Укључено/# апликације имају приступ локацији}other{Укључено/# апликација има приступ локацији}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Учитава се…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Апликације са дозволом за уређаје у близини могу да одреде приближан положај повезаних уређаја."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Приступ локацији је искључен за апликације и услуге. Локација уређаја може и даље да се шаље екипама хитних служби када позовете број за хитне случајеве или пошаљете SMS на њега."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Сазнајте више о подешавањима локације."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Сазнајте више о подешавањима локације"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"За промену приступа локацији: Подешавања &gt; Безбедност и приватност &gt; Контроле приватности"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Да бисте имали најбоље резултате, користите заштиту за екран са сертификатом Направљено за Google. Отисак прста детета можда неће радити са другим заштитама за екран."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Откључавање сатом"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Кад подесите откључавање лицем и откључавање отиском прста, телефон ће вам тражити отисак прста кад носите маску или се налазите на неком мрачном месту.\n\nАко није могуће препознати лице или отисак прста, можете да га откључате сатом."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Ако отисак прста не може да се препозна, можете да откључате уређај сатом."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Ако лице не може да се препозна, можете да откључате уређај сатом."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Кад подесите откључавање лицем и откључавање отиском прста, телефон ће вам тражити отисак прста кад носите маску или се налазите на неком мрачном месту.\n\nОткључавање сатом је још један погодан начин за откључавање телефона, на пример, када су вам прсти мокри или се лице не препознаје."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Откључавање сатом је још један погодан начин за откључавање телефона, на пример, када отисак прста није препознат."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Откључавање сатом је још један погодан начин за откључавање телефона, на пример, када вам се лице не препознаје."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Користите отисак прста или сат за"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Користите лице или сат за"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Користите лице, отисак прста или сат за"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додати су лице и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додати су лице, отисак прста и <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додати су лице, отисци прстију и <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Принцип рада"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Сат мора да буде откључан, на зглобу и у домашају овог телефона. Сат нећете морати да откључавате поново док вам је на зглобу."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Добићете обавештење на сату када се овај телефон откључа. Ако се откључао када то нисте желели, додирните обавештење да бисте га поново закључали."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ти имаш контролу"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Сат можете да уклоните из откључавања сатом у било ком тренутку у подешавањима"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Додирните обавештење"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Превуците нагоре на закључаном екрану"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Одаберите сат"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Доступни сатови"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Откажи"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Потврди"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Спремни сте!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Сада можете да користите сат да бисте откључали овај телефон када превучете нагоре на закључаном екрану или додирнете обавештење"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Откључавање сатом"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Можете да користите сат да бисте откључали овај телефон када превучете нагоре на закључаном екрану или додирнете обавештење"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Да бисте користили откључавање сатом, сат мора да буде откључан, на зглобу, у домашају и повезан са овим телефоном. Ако се веза прекине, мораћете да откључате телефон да бисте могли да користите откључавање сатом.\n\nИмајте на уму:\nУ једном наврату можете да подесите само један сат. Да бисте додали други сат, прво уклоните актуелни сат."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Сазнајте више о откључавању сата"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додај сат"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Уклони сат"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отисак прста и откључавање лицем"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Откључавање лицем и отиском прста за посао"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Треба да подесите"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Безбедност"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Приватност"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Пословни профил"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Приватни простор"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Нека приватне апликације буду закључане и сакривене"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Чувајте приватне апликације у засебном простору који можете да сакријете или закључате"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Закључавање приватног простора"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Можете да откључавате приватни простор исто као што откључавате уређај или да одаберете другачији тип откључавања"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Користи закључавање екрана уређаја"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Откључавање лицем и отиском прста"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Откључавање отиском прста"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Откључавање лицем"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Додирните да бисте подесили"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Откључавање отиском прста за приватни простор"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Откључавање лицем за приватни простор"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Начини за откључавање"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Исто као закључавање екрана уређаја"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Одабраћете ново закључавање за приватни простор?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Аутоматски закључај"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Аутоматски закључајте приватан простор"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Можете аутоматски да закључате приватан простор ако уређај нисте користили неко време"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Сваки пут кад се уређај закључа"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"После 5 минута неактивности"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Никад"</string>
+    <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_delete_title" msgid="3075645119800272800">"Избриши приватни простор"</string>
+    <string name="private_space_deleted" msgid="7825768516955610897">"Приватни простор је избрисан"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Брисање приватног простора није успело"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Приватни простор је откључан"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Подесите закључавање екрана"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Да бисте користили приватни простор, подесите закључавање екрана на овом уређају"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Подеси закључавање екрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Откажи"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Откажи"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Подеси"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Подесите приватни простор"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Чувајте приватне апликације у засебном простору који можете да сакријете или закључате"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Принцип рада"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Приватном простору можете да приступите са дна листе апликација"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Апликације у приватном простору су заштићене закључавањем"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Обавештења из апликација у приватном простору су скривена кад је он закључан"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Кад је приватни простор закључан, апликације у њему се неће приказивати у менаџеру дозвола, на контролној табли за приватност ни у другим подешавањима.\n\nПриватни простор не можете да преместите на нови уређај. Морате да подесите други приватни простор ако желите да га користите на другом уређају.\n\nСвако ко ваш уређај повеже са рачунаром или на њега инсталира штетне апликације моћи ће да приступи вашем приватном простору."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Подешава се приватни простор…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Обавештења из апликација у приватном простору су скривена кад је он закључан"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Откључајте приватни простор да бисте делили слике или фајлове из апликација у приватном простору"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Неке апликације су већ инсталиране у приватном простору"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Подешавање приватног простора није успело"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Пробај поново"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Откључати приватни простор откључавањем екрана?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Приватни простор можете да откључавате исто као што откључавате уређај или да одаберете другачији тип откључавања"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Користи откључавање екрана"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Одабери нови тип откључавања"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Готово!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Да бисте приступили приватном простору, отворите листу апликација и скролујте надоле"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Готово"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Скролујте надоле да бисте пронашли приватни простор"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Одаберите тип откључавања за приватни простор"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Приватни простор можете да откључате помоћу отиска прста. Ова опција захтева резервни тип откључавања из безбедносних разлога."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Подесите PIN за приватни простор"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Подесите лозинку за приватни простор"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Подесите образац за приватни простор"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Да бисте приказали приватно простор (није коначни UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Отворите апликацију Подешавања"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Додирните Безбедност &amp; Приватност &gt; Приватни простор &gt; Сакријте приватни простор кад је закључан"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Прекидач Сакријте приватни простор кад је закључан"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Напомена запосленима у Google-у: Програмирање ове апликације је још у току"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Можда ће бити потребно да унесете овај приступни кôд и на другом уређају."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Потврдите ради упаривања са координисаним скупом"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дозволи приступ контактима и историји позива"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Дозволи и приступ контактима и историји позива"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Информације ће се користити за обавештења о позивима и друго"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Није могуће повезати се са уређајем <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Доступни уређаји"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"У Режиму рада у авиону"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Обавести ме о јавним мрежама"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Обавештава вас кад год је доступна јавна мрежа високог квалитета"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Дозволи WEP мреже"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP је старији безбедносни протокол који је мање сигуран"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Мобилни оператер не дозвољава WEP мреже јер су мање безбедне"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Аутоматски укључи Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"WiFi ће се поново укључити у  близини сачуваних мрежа високог квалитета, као што је кућна мрежа"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Није доступно јер је локација искључена. Укључите "<annotation id="link">"локацију"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"WiFi скенирање омогућава апликацијама и услугама да траже WiFi мреже у било ком тренутку, чак и када је WiFi искључен. Ово, на пример, може да се користи за побољшање функција и услуга заснованих на локацији."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Укључи"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi скенирање је укључено"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Ова мрежа користи старији безбедносни протокол који је мање сигуран"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Мрежа <xliff:g id="NAME">%1$s</xliff:g> је блокирана"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Мрежа користи старији безбедносни протокол звани WEP који је мање сигуран. Да бисте се ипак повезали, дозволите WEP мреже."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Мобилни оператер не дозвољава да се повежете са овом мрежом јер она користи старији безбедносни протокол који је мање сигуран"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Дозволи WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Затвори"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Напредне опције"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Падајућа листа са напредним опцијама"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"проширите"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Остани на Wi‑Fi-ју"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Не приказуј поново"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Повежи"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"WiFi је укључен"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Повезано је на мрежу <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Повезујете се на <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Повезује се…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Повезивање са мрежом није успело"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежа није у домету"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Заборави"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Измени"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Брисање мреже није успело"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Сачувај"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Чување мреже није успело"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Откажи"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"WiFi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобилни подаци"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Етернет"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Пуњење"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Пуњење"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Хотспот веза"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Јачина везе"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сачуване мреже"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Нисте подесили лозинку"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Назив хотспота"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Лозинка хотспота"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Опсег приступне тачке"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Аутоматски искључи хотспот"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Када ниједан уређај није повезан"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Повећај компатибилност"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Онемогући подраз. брз. кадрова"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Онемогућите ограничавање максималне брзине кадрова за игре на <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Течни приказ"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Пажња екрана користи предњу камеру да би утврдила да ли неко гледа у екран. Ради на уређају, а слике се никада не чувају нити шаљу Google-у."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Укључите пажњу екрана"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Спречите искључивање екрана док га гледате"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Дуже време за гашење екрана троши више батерије."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камера је закључана"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Камера мора да буде откључана ради препознавања лица"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Камера мора да буде откључана ради пажње екрана"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (отвор за SIM картицу <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (отвор за SIM картицу <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (примарни)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Да бисте видели, одаберите сачувану мрежу"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL верзија"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Ниво батерије"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Заједничко"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Заједничка подешавања"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Сачувај"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Откажи"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Поље Назив не сме да буде празно."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Поље Назив приступне тачке не сме да буде празно."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Поље MЦК мора да садржи 3 цифре."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC поље мора да садржи 2 или 3 цифре."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Мобилни оператер не дозвољава називе приступних тачака типа %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Поље за MMSC мора да има важећу вредност."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Враћање подразумеваних подешавања назива приступне тачке."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Ресетуј на подразумевано"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Поновно постављање подразумеваних подешавања назива приступне тачке је завршено."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Ресетуј"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth и WiFi су ресетовани"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Обриши eSIM-ове"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Овим не отказујете ниједан тарифни пакет. Да бисте преузели нове SIM картице, обратите се мобилном оператеру."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Ресетуј подешавања"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Желите ли да ресетујете сва подешавања мреже? Ова радња не може да се опозове."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Желите ли да ресетујете сва подешавања мреже и обришете eSIM-ове? Не можете да опозовете ову радњу."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Желите да ресетујете?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Ресетовање мреже није доступно за овог корисника"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Подешавања мреже су ресетована"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Брисање SIM картица није успело"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM-ови не могу да се обришу због грешке.\n\nРестартујте уређај и пробајте поново."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Обриши све податке (фабричка подешавања)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Обриши све податке (фабричка подешавања)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музику"</li>\n<li>"слике"</li>\n<li>"друге податке корисника"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-ови"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"На тај начин нећете отказати мобилни тарифни пакет."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Избрисаћете све личне податке и преузете апликације. Ова радња не може да се опозове."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Сви лични подаци, укључујући преузете апликације и SIM картице, биће избрисани. Ова радња не може да се опозове."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Желите да обришете све податке?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Ресетовање на фабричка подешавања није доступно за овог корисника"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Брише се"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Хотспот, USB, Bluetooth, етернет"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Интернет се не дели са другим уређајима"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Искључено"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Привезивање"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Немој да користиш Wi‑Fi хотспот"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Дели интернет само преко USB-а"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Дели интернет само преко Bluetooth-а"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Дели интернет само преко етернета"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Дели интернет само преко USB-а и Bluetooth-а"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Дели интернет само преко USB-а и етернета"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Дели интернет само преко Bluetooth-а и етернета"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Дели интернет само преко USB-а, Bluetooth-а и етернета"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB привезивање"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth привезивање"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Привезивање етернета"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Користите хотспот и привезивање да бисте омогућили интернет на другим уређајима помоћу WiFi везе или везе за пренос података преко мобилног оператера. Апликације могу и да праве хотспотове за дељење садржаја са уређајима у близини."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Помоћ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобилна мрежа"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифни пакет за мобилни уређај"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Апликација за SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Желите ли да промените апликацију за SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Желите ли да користите <xliff:g id="NEW_APP">%1$s</xliff:g> уместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> као апликацију за SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Желите да промените Wi‑Fi помоћник?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%1$s</xliff:g> уместо апликације <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управљање мрежним везама?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%s</xliff:g> за управљање мрежним везама?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Непознати SIM оператер"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> нема познат веб-сајт за доделу"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Убаците SIM картицу и рестартујте"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Повежите се са интернетом"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Недавни захтеви за локацију"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Локација за пословни профил"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Дозволе за локацију апликације"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Обриши приступ"</string>
     <string name="controls_label" msgid="8671492254263626383">"Контроле"</string>
     <string name="force_stop" msgid="2681771622136916280">"Принудно заустави"</string>
+    <string name="archive" msgid="9074663845068632127">"Архивирај"</string>
+    <string name="restore" msgid="7622486640713967157">"Врати"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Укупно"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Величина апликације"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Апликација USB меморије"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Није могуће израчунати величину пакета."</string>
     <string name="version_text" msgid="7628938665256107608">"верзија <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Премести"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Архивирање није успело"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Архивирано: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Враћање није успело"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Враћа се <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Други пренос је већ у току."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Нема довољно простора у меморији."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Апликација не постоји."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Доступна тастатура на екрану"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Управљајте тастатурама на екрану"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опције"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Приступачност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
     <string name="show_ime" msgid="4334255501724746849">"Користи тастатуру на екрану"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Задржава се на екрану док је физичка тастатура активна"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Дужи одзив тастера"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Омогућите Дужи одзив тастера за физичку приступачност тастатуре"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Лепљиви тастери"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Омогућите Лепљиве тастере за физичку приступачност тастатуре"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Тастерске пречице"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Приказује листу пречица"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Тастатуре и алатке за пословни профил"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Сортирај по времену коришћења"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Сортирај по посл. коришћењу"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Сортирај по називу апликације"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Последњи пут коришћено"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Последњи пут коришћено"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"никад"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Време коришћења"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Приступачност"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Подешавања приступачности"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Ипак настави"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Откажи"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Подешавања увећања"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Увећање помоћу троструког додира"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Увећавајте помоћу пречице"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Увећавајте помоћу пречице и троструког додира"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"О услузи <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Двапут додирните екран помоћу два прста да бисте отворили"</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="860548190334486449">"Да бисте покренули и зауставили увећање, двапут додирните било где на екрану помоћу два прста."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Да бисте користили функцију приступачности, превуците нагоре од дна екрана помоћу 3 прста.\n\nДа бисте прелазили са једне функције на другу, превуците нагоре помоћу 3 прста и задржите."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Важи"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Подешавања дугм. Приступачност"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Подешавања дугмета"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Пречица за: <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Дугме Приступачност"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Покрет за приступачност"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Двапут додирните екран помоћу два прста"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"двапут додирните екран помоћу два прста"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Брзо додирните екран {0,number,integer} пута помоћу два прста"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Додирните екран трипут"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"додирните екран трипут"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Брзо додирните екран {0,number,integer} пута. Ова пречица може да успори уређај"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Сазнајте више о дугмету и покрету Приступачност"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Коришћење дугмета Приступачност. Покрет није доступан уз навигацију помоћу 3 дугмета."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Брзо приступајте функцијама приступачности"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Да бисте започели"</b>\n"1. Идите у подешавања приступачности\n2. Изаберите функцију и додирните пречицу\n3. Одаберите да ли желите да користите дугме или покрет за приступ тој функцији"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Да бисте започели"</b>\n"1. Идите у подешавања приступачности\n2. Изаберите функцију и додирните пречицу\n3. Одаберите дугме које ћете користити за приступ тој функцији"</string>
+    <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}. Изаберите функцију и додирните пречицу shortcut&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}. Изаберите функцију и додирните пречицу shortcut&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_size_title" msgid="5785110470538960881">"Величина"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Дугме за укључивање прекида позив"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Велики показивач миша"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Омогућите да показивач миша буде уочљивији"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Нека све апликације буду тамне"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Примењује се на апликације без тамне теме. Неке можда имају проблеме са приказом, нпр. обрнуте боје."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Уклони анимације"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Смањите померања на екрану"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Моно звук"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Може да прати интеракције са апликацијом или сензором хардвера и користи апликације уместо вас."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволи"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Одбиј"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Заустави"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Откажи"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Желите ли да зауставите <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ако додирнете <xliff:g id="STOP">%1$s</xliff:g>, зауставићете услугу <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Искључи"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Настави"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Желите да искључите услугу <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ниједна услуга није инсталирана"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ниједна услуга није изабрана"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Није наведен опис."</string>
     <string name="settings_button" msgid="2195468788019730377">"Подешавања"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"осетљивост на светлост, фотофобија, тамна тема, мигрена, главобоља, режим читања, ноћни режим, смањивање осветљености, бела тачка"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"једноставност коришћења, лакши приступ, помоћ, помоћно"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"вид, слух, слепи, глуви, моторика, спретност, помоћно, помоћ, једноставно коришћење, једноставни приступ, рука, помоћ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"увеличавање прозора, зумирање, увећање, слабовидост, увеличавање, повећати"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"титл, титлови, CC, транскрипција уживо, оштећење слуха, губитак слуха, CART, претварање говора у текст, титловање"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"контраст боја"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"моторика, миш"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"слушни апарати, са оштећењем слуха, губитак слуха, кохлеарни импланти, уређаји за појачавање звука, процесори звука"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"моторика, миш, спољни миш, миш за главу, адаптивни миш, инвалидска колица, џојстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"слушни апарати, са оштећењем слуха, губитак слуха, кохлеарни импланти, уређаји за појачавање звука, процесори звука, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"оштећење слуха, губитак слуха, титл, телепринтер, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"три дугмета"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"спретност, моторика, старије особе, артритис, учестала трауматска истегнућа зглоба, мождани удар, тремор, мултипла склероза, церебрална парализа, дрхтавица, повреда изазвана понављајућим покретима, рука"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"одлагање, спретност, старија особа"</string>
     <string name="print_settings" msgid="8519810615863882491">"Штампање"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Искључено"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 услуга штампања је укључена}one{# услуга штампања је укључена}few{# услуге штампања су укључене}other{# услуга штампања је укључено}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Погледајте апликације са највећом потрошњом батерије"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Пуњење је оптимизовано да би се заштитила батерија"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Пуњење је оптимизовано да би се продужио век трајања батерије"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Пуњење је оптимизовано да би се заштитила батерија"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Да би се продужио век трајања батерије, пуњење се оптимизује док је уређај на базној станици"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Пуњење је оптимизовано да би се заштитила батерија"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Да би се продужио век трајања батерије, пуњење се оптимизује док је уређај на базној станици"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Потпуно пуњење"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Да би се заштитила батерија, пуњење ће се оптимизовати следећи пут када таблет буде на базној станици"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Сазнајте више о томе зашто је пуњење паузирано"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Настави са пуњењем"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Укључује активности у позадини са великом потрошњом"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Уклони"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Откажи"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Пуни до краја"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Проблем са додатним прибором за пуњење"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Сазнајте више о некомпатибилном пуњењу"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Менаџер батерије"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Управљајте апликацијама аутоматски"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"сада"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Графикон потрошње батерије"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Графикон дневне потрошње батерије"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Графикон потрошње батерије по сатима"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Ниво напуњености батерије од <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> до <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Потрошња батерије од последњег потпуног пуњења"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Потрошња батерије за <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Време испред екрана од последњег потпуног пуњења"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал за хитне позиве"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Подешавање понашања када се успоставља хитан позив"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Резервна копија"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Укључено"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Искључено"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Резервна копија и ресетовање"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Лични подаци"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Прављење резервних копија података"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Назив"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Тип"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Адреса сервера"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP шифровање (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Тајни L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec идентификатор"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec унапред дељени кључ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec сертификат корисника"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA сертификат"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec сертификат сервера"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Прикажи напредне опције"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS домени за претрагу"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS сервери (нпр. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Руте за прослеђивање (нпр. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Корисничко име"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Лозинка"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Сачувај информације о налогу"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(не користи се)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(не верификуј сервер)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(примљено са сервера)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Овај тип VPN-а не може увек да остане повезан"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Увек укључени VPN подржава само нумеричке адресе сервера"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"DNS сервер мора да се одреди за увек укључени VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Адресе DNS сервера морају да буду нумеричке за увек укључени VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Унете информације не подржавају увек укључени VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Откажи"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Одбаци"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Блокирај везе без VPN-а"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Треба вам VPN веза?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Није безбедно. Ажурирајте на IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Покретање неподржаног VPN-а није успело."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Изаберите VPN профил са којим ћете увек бити повезани. Мрежни садржај ће бити дозвољен само када сте повезани са овим VPN-ом."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ниједан"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Стално укључен VPN захтева IP адресу за сервер и DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER обавештења"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Пријем објава о киднаповању деце"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Понављање"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Омогући Менаџер позива"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Омогућите овој услузи да управља начином на који се упућују позиви."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Менаџер позива"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Бежична упозорења о хитним случајевима"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Мрежни оператери"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Називи приступних тачака"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"новчаник"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"платите, додирните, плаћања"</string>
     <string name="keywords_backup" msgid="707735920706667685">"резервна копија, правити резервну копију"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"покрет"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"лице, откључавање, потврда идентитета, пријављивање"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"лице, откључавање, ауторизација, пријављивање, отисак прста, биометрија"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, мин, верзија prl-a, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Звукови при укључивању"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Титл уживо"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Аутоматски титл за медије"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Звучници телефона"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Звучници таблета"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Звучници уређаја"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Жичане слушалице"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Звук компатибилних медија постаје реалистичнији"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Искључено"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Недавне конверзације су уклоњене"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Конверзација је уклоњена"</string>
     <string name="clear" msgid="5092178335409471100">"Обриши"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Обриши <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Приоритетне и измењене конверзације се приказују овде"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Када означите конверзацију као приоритетну или обавите друге промене у конверзацијама, приказиваће се овде. \n\nДа бисте променили подешавања конверзација: \nПревуците надоле од врха екрана да бисте отворили клизни панел, па додирните и задржите конверзацију."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Умањи"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Искључено"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Качење апликација"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Качење апликација вам омогућава да задржите приказ актуелне апликације док је не откачите. Помоћу ове функције можете, на пример, да дозволите поузданом пријатељу да игра одређену игру."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Када је апликација закачена, може да отвара друге апликације и лични подаци могу да буду доступни. \n\nДа бисте користили качење апликација: 	\n1. Укључите качење апликација 	\n2. Отворите Преглед 	\n3. Додирните икону апликације у врху екрана, па додирните Закачи"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Када је апликација закачена, може да отвара друге апликације и лични подаци могу да буду доступни. \n\nАко желите да безбедно делите уређај са неким, боље користите профил госта. \n\nДа бисте користили качење апликација: 	\n1. Укључите качење апликација 	\n2. Отворите Преглед 	\n3. Додирните икону апликације у врху екрана, па додирните Закачи"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Управљајте апликацијом ако се не користи"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Уклоните дозволе, избришите привремене фајлове, зауставите обавештења и архивирајте апликацију"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Све апликације"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Инсталиране апликације"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Инстант апликације"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Слободно"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Меморија коју користе апликације"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 апликација је користила меморију у последњем периоду од {time}}one{# апликација је користила меморију у последњем периоду од {time}}few{# апликације су користиле меморију у последњем периоду од {time}}other{# апликација је користило меморију у последњем периоду од {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Омогући профилисање коришћења меморије"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"За профилисање коришћења меморије су потребни додатни системски ресурси."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Профилисање меморије је онемогућено"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Учесталост"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Максимум коришћења"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Не користе се никакви подаци"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Приказ преко других апликација"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Дозволи приказ преко других апликација"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Омогућите овој апликацији да се приказује преко других апликација које користите. Ова апликација ће моћи види где додирујете или да промени оно што се приказује на екрану."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Промените медијски излаз"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Дозволи апликацији да мења медијски излаз"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Дозволи овој апликацији да одабере који повезани уређај репродукује звук или видео из других апликација. Ако добије дозволу, ова апликација може да приступи листи доступних уређаја као што су слушалице и звучници и да одабере који излазни уређај се користи за стримовање или пребацивање звука или видеа."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Приступ свим датотекама"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Побољшавај активацију гласом"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Овај уређај користи приватна сазнања да би побољшао модел активације гласом. Апликације могу да добијају сажете новости које су обједињене за велики број корисника у циљу очувања приватности и побољшања модела за све.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Упозорење за потрошњу података: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Ограничење потрошње података: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Упозорење за потрошњу података: <xliff:g id="ID_1">^1</xliff:g>/Ограничење потрошње података: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Обрачун података код мобилног оператера се можда разликује од обрачуна уређаја."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Не обухвата податке које користе мреже мобилних оператера"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Потрошили сте <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Подеси упозорење о подацима"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Ажурирано је пре <xliff:g id="ID_1">^2</xliff:g>"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Малопре ажурирао оператер <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Ажурирано је малопре"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Прикажи план"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Прикажи детаље"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Уштеда података"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Неограничен приступ подацима"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Аномалија у вези са потрошњом батерије"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Плочице програмера за брза подешавања"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Онемогући временско ограничење овлашћења adb-а"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Онемогућава аутоматско опозивање овлашћења adb-а за системе који се не повежу поново током подразумеваног временског периода (7 дана) или временског периода који конфигурише корисник (најмање 1 дан)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope траг"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Сензори су искључени"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Подешавања пословног профила"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Тражи контакте из пословног директоријума у личним апликацијама"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Услуга аутоматског попуњавања"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Подразумевана услуга аутоматског попуњавања"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Лозинке"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Услуге за лозинке, приступне кодове и податке"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Додатни добављачи услуга"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# лозинка}one{# лозинка}few{# лозинке}other{# лозинки}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"аутоматски, попунити, аутоматски попунити, лозинка"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"подаци, приступни кôд, лозинка"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"аутоматски, попуњавање, аутоматско попуњавање, подаци, приступни кључ, лозинка"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Услуге за лозинке, приступне кодове и податке"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Желите да искључите ову услугу?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Лозинке, приступни кључеви и друге сачуване информације неће бити доступне за аутоматско попуњавање када се пријавите"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Промените жељену услугу у &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Нове лозинке, приступни кључеви и други подаци ће се од сада чувати овде. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; може да користи оно што је на екрану ради одређивања шта може аутоматски да се попуни"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Желите да користите %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Може да буде укључено само 5 услуга"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Искључите бар 1 услугу да бисте могли да додате другу"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s користи садржај на екрану да би утврдио шта може аутоматски да се попуни."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Ограничење услуга за лозинке, приступне кодове и податке"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Можете истовремено да имате највише 5 услуга за лозинке, приступне кодове и податке. Искључите неку од њих да бисте додали још."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Ограничење услуга за лозинке, приступне кодове и податке"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Можете истовремено да имате највише 5 услуга за лозинке, приступне кодове и податке. Искључите неку од њих да бисте додали још."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Искључи"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Аутоматско попуњавање"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Ниво евидентирања"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Промене компатибилности апликација могу да се измене само за апликације са отклоњивим грешкама. Инсталирајте апликацију са отклоњивим грешкама и пробајте поново."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Зависи од другог подешавања"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Налог"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d налога"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Назив уређаја"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Основне информације"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Правне информације и информације у вези са регулативама"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Дозволите да се ова апликација покреће када се скенира NFC ознака.\nАко је ова дозвола укључена, апликација ће бити доступна као опција сваки пут када се ознака открије."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Пуштај медијски садржај на"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Пусти <xliff:g id="LABEL">%s</xliff:g> на"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Звук се пушта"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Овај уређај"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Недоступно током позива"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Преузми позив"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Искључи звук"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Да бисте омогућили ово, прво промените опцију Притисните и задржите дугме за укључивање у мени дугмета за укључивање."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Детаљи о мрежи"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Апликације на телефону могу да виде назив уређаја. И други људи могу да виде назив уређаја могу када се повежете са Bluetooth уређајима или WiFi мрежом или подесите WiFi хотспот."</string>
     <string name="devices_title" msgid="649715719278562515">"Уређаји"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Одаберите мрежу"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Веза је прекинута"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Назив"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Боја (користе компатибилне апликације)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Сачувај"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Користи SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Користи овај SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Искључено"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Да бисте онемогућили ову SIM картицу, уклоните је"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Додирните да бисте активирали <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Обриши SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Жељени тип мреже"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Промена режима рада мреже"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Жељени тип мреже"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Цене проверите код мобилног оператера."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Потрошња података апликације"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Неважећи режим мреже <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игноришите."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Називи приступних тачака"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"Назив приступне тачке"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Недоступно када је повезано са: <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Желите ли да пређете на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Желите ли да пређете на SIM картицу?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Желите да користите <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"У датом тренутку може да буде активна само једна SIM картица.\n\nПребацивањем на <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> нећете отказати услугу <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"У датом тренутку може да буде активан само 1 eSIM.\n\nПребацивање на оператера <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> неће отказати услугу оператера <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"У датом тренутку може да буде активна само једна SIM картица.\n\nПребацивањем нећете отказати услугу <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Можете да користите 2 SIM картице истовремено. Да бисте користили <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, искључите другу SIM картицу."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Пређи на <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Искључите <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Не, хвала"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Откажи"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Пређи"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Искључи"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Активирање SIM картице није успело"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Пробајте поново да укључите SIM картицу. Ако се проблем и даље јавља, рестартујте уређај."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Подесите SIM картицу"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Подесите подешавања мобилне мреже да бисте користили више SIM картица на овом уређају"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Означите SIM картице"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Видећете ове ознаке у току позива, слања SMS порука и коришћења преноса података, као и у Подешавањима."</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Ознака SIM картице"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Ознака"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Избор SIM картица за употребу"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Можете да користите 2 SIM картице истовремено"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Подесите примарне SIM картице"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Одаберите које SIM картице ћете користити подразумевано за позиве, SMS поруке и пренос података"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Примарне SIM картице"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Позиви"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS поруке"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Ауто. замена преноса података"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Користи пренос података са било ког SIM-а у зависности од покривености и доступности"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Само пренос података"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Подеси"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Даље"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобилна мрежа"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Број телефона"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Ознака и боја SIM картице"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активација мреже"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Прелазак на другог мобилног оператера"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Мобилни оператер <xliff:g id="CARRIER_NAME">%1$s</xliff:g> је активан"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Да бисте касније користили мобилне податке, функције позива и SMS, идите на подешавања мреже"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Желите да обришете овај eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Брисањем ове SIM картице уклонићете услугу мобилног оператера <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> са овог уређаја.\n\nУслуга мобилног оператера <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> неће бити отказана."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Обриши"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM се брише…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Брисање SIM-а није успело"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Овај SIM не може да се обрише због грешке.\n\nРестартујте уређај и пробајте поново."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Повежите са уређајем"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Апликација <xliff:g id="APPNAME">%1$s</xliff:g> жели да користи привремену Wi‑Fi мрежу да би се повезала са уређајем"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Није пронађен ниједан уређај Проверите да ли је уређај укључен и доступан за повезивање."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Хитни позиви"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Мобилни оператер не подржава хитне позиве помоћу функције Позивање преко WiFi-а.\nУређај аутоматски прелази на мобилну мрежу да би упутио хитан позив.\nХитни позиви су могући само у областима покривеним мобилном мрежом."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Користите Wi‑Fi за позиве да бисте побољшали квалитет"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Резервни начин за позивање"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ако услуга <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> није доступна или је у ромингу, користите SIM за мобилне податке за<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>позиве."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"резервни начин за позивање"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Долазна MMS порука"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Слање MMS порука није могуће"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Додирните да бисте омогућили слање MMS порука на уређају <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> када су мобилни подаци искључени"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Информације о смерницама за посао"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Подешавањима управља ИТ администратор"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Укључи уз величину страница 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Укључи уређај уз језгро подржано за 16 KB странице"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Желите ли да рестартујете уређај са језгром компатибилним са 16 KB страницама?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"УПОЗОРЕЊЕ: Неке апликације можда нису компатибилне са овим режимом. Уређај ће се рестартовати после потврде."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Желите ли да рестартујете уређај са језгром компатибилним са 4 KB страницама?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Уређај ће се рестартовати после потврде."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ажурирање на језгро компатибилно са 16 KB страницама није успело."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Примењује се промена"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Обрађивач извештаја о грешци"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Одређује која апликација управља пречицом за извештај о грешци на уређају."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Лично"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Да бисте брзо наставили репродукцију, медија плејер остаје отворен у Брзим подешавањима"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Приказуј медијски садржај на закључаном екрану"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Да бисте брзо наставили репродукцију, медија плејер остаје отворен на закључаном екрану"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Приказуј препоруке за медије"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Прикажи препоруке за медије Помоћника"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"На основу активности"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Сакриј плејер"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Прикажи плејер"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-ови"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Активно"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Неактивно"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /Подразумевано за: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"позиви"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук компатибилних медија постаје реалистичнији"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Праћење главе"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звук се мења како померате главу да би деловао природније"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синхронизујте дозволе"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Одобрите исте дозволе за <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> као на уређају <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Синхронизуј дозволе са телефона"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Одобрите исте дозволе за апликације на сату као на овом телефону"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудио уређаја"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Непознато"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Звучник"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Средње"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Високо"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ова апликација може да се отвори само у једном прозору"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Укључeно"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Искључено"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Искључено"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Искључено"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Укључено"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Искључено"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Укључено"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Искључено"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Светли екрани постају тамни, а тамни екрани светли"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Увећање екрана"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Искључено"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Искључено"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Укључено"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Искључено"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Укључено"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Лозинка је подешена"</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index e4c73a8..949a18f 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a98ae6b..b42971a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Nu är du en utvecklare!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Det behövs inte. Du är redan utvecklare."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Aktivera utvecklaralternativ först"</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Endast administratörsanvändare kan komma åt utvecklarinställningar."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"I tjänst"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ur funktion"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Främre skärmen slås på när du viker enheten"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Endast spel, videor med mera"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Främre skärmen slås på för appar som förhindrar att skärmen inaktiveras"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Svep uppåt för att fortsätta"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Vik telefonen och svep uppåt på den främre skärmen för att fortsätta använda appen, eller vänta i några sekunder till skärmen låses"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Aldrig"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Främre skärmen låses när du viker enheten"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Använd automatisk rotation"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Relaterat"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringsignal och alarm"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Ljud under samtal"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Avisering och andra systemljud"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Medie- och systemljud"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Aviseringar"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Ljudutgången bestäms av enskilda appar som standard"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Namnlös Bluetooth-enhet"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Söker"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth har aktiverats"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Se alla"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Se alla"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"E-penna"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Vid tryck på knappen för e-penna"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (jobbprofil)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i 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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Ansut till en LE Audio-stream"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Ljudstreamar i närheten"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Ljudstreamar"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Anslut till en ljudstream med QR-kod"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Inga ljudstreamar hittades i närheten."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Gå till en apps inställningar för att välja språk i den."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Läs mer om appspråk"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Vill du ändra systemspråk till %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Vill du lägga till %s som ett föredraget språk?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Detta talar om för appar och webbplatser att du även föredrar det här språket."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Dina enhets- och regionsinställningar ändras."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Ändra"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s är inte tillgängligt"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"lördag"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Om en app inte har stöd för regionsinställningar används appens standardinställningar."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Läs mer om språkinställningar."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Ytterligare inställningar"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Tilltalsform"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Ange hur du vill tilltalas"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Appar kan använda din tilltalsform för att anpassa hur du tilltalas."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Inte angivet"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Femin­informer"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulinformer"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vill du ta bort det valda språket?}other{Vill du ta bort de valda språken?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text visas på ett annat språk."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Det går inte att ta bort alla språk"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Plats"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Använd plats"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Av"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{På – # app har platsåtkomst}other{På – # appar har platsåtkomst}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{På – # app har platsåtkomst}other{På – # appar har platsåtkomst}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Läser in …"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Appar med behörighet att upptäcka enheter i närheten kan beräkna anslutna enheters relativa position."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Platsåtkomst har inaktiverats för appar och tjänster. Enhetens plats kan fortfarande skickas till räddningstjänst när du ringer eller skickar sms till ett nödnummer."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Läs mer om platsinställningar."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Läs mer om platsinställningar"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Ändra platsåtkomst i Inställningar &gt; Säkerhet och integritet &gt; Integritetsinstä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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Använd ett skärmskydd märkt Made for Google för bästa resultat. Ditt barns fingeravtryck kanske inte registreras med andra skärmskydd."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Upplåsning med klockan"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"När du konfigurerar ansiktslås och fingeravtryckslås frågar telefonen om fingeravtryck när du använder munskydd eller om det är mörkt.\n\nDu kan låsa upp med klockan om ansiktet eller fingeravtrycket inte känns igen."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Du kan låsa upp med klockan om fingeravtrycket inte känns igen."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Du kan låsa upp med klockan om ansiktet inte känns igen."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"När du konfigurerar ansiktslås och fingeravtryckslås frågar telefonen om fingeravtryck när du använder munskydd eller om det är mörkt.\n\nMed upplåsning med klockan kan du smidigt låsa upp telefonen, till exempel när dina fingrar är fuktiga eller ditt ansikte inte känns igen."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Med upplåsning med klockan kan du smidigt låsa upp telefonen, till exempel när ditt fingeravtryck inte känns igen."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Med upplåsning med klockan kan du smidigt låsa upp telefonen, till exempel när ditt ansikte inte känns igen."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Använd fingeravtrycket eller klockan för att"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Använd ansiktet eller klockan för att"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Använd ansiktet, fingeravtrycket eller klockan för att"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansikte och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansikte, fingeravtryck och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansikte, fingeravtryck och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Upplåsning med fjärrverifierare"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Klockan har lagts till"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurera klockan"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Med upplåsning med klockan kan du smidigt låsa upp telefonen, till exempel när dina fingrar är fuktiga eller ditt ansikte inte känns igen.\n\nDu kan låsa upp den här telefonen med klockan så här:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Inte nu"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Fortsätt"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mer"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Så fungerar det"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Klockan måste vara upplåst, på handleden och i närheten av telefonen. Du behöver inte låsa upp klockan igen när den är på handleden."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"När den här telefonen låses upp får du en avisering på klockan. Om den låstes upp oavsiktligt kan du trycka på aviseringen och låsa telefonen igen."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du bestämmer själv"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kan ta bort klockan när som helst från Upplåsning med klockan i inställningarna."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Trycka på en avisering"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Svepa uppåt på låsskärmen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Välj klocka"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tillgängliga klockor"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Avbryt"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bekräfta"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Nu är det klart!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Nu kan du låsa upp den här telefonen med klockan när du sveper uppåt på låsskärmen eller trycker på en avisering"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Klar"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Upplåsning med klockan"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kan låsa upp den här telefonen med klockan när du sveper uppåt på låsskärmen eller trycker på en avisering"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Du kan bara använda upplåsning med klockan om klockan är upplåst, sitter på handleden, i närheten av telefonen och ansluten till den. Om anslutningen avbryts behöver du låsa upp telefonen innan du kan använda upplåsning med klockan\n\nTänk på följande:\nDu kan bara ha en klocka konfigurerad åt gången. Om du vill lägga till en annan klocka måste du först ta bort den befintliga."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Läs mer om upplåsning med klockan"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lägg till klocka"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ta bort klockan"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingeravtryck och ansiktslås"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansikts- och fingeravtryckslås för jobbprofilen"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfigurering krävs"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Säkerhet"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Integritet"</string>
     <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="2274405892301976238">"Håll privata appar låsta och dolda"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Ha privata appar i ett separat rum som du kan dölja eller låsa"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Lås privat rum"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Använd skärmlåset för enheten"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Ansikts- och fingeravtryckslås"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Fingeravtryckslås"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Ansiktslås"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Tryck för att ställa in"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Fingeravtryckslås för privat rum"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Ansiktslås för privat rum"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Olika sätt att låsa upp"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Samma som skärmlåset för enheten"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Vill du välja ett nytt lås för ditt privata rum?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Lås automatiskt"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Lås privat område automatiskt"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Du kan låsa ditt privata område automatiskt om du inte har använt enheten på ett tag"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Varje gång enheten låses"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Efter fem minuters inaktivitet"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Aldrig"</string>
+    <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_delete_title" msgid="3075645119800272800">"Radera privat rum"</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="private_space_unlocked" msgid="9091600948712932046">"Privat område är upplåst"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ställ in skärmlås"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Ställ in ett skärmlås för enheten om du vill använda ditt privata 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="private_space_cancel_label" msgid="379259667396956886">"Avbryt"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Ställ in"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Ställ in ett privat rum"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Ha privata appar i ett separat rum som du kan dölja eller låsa"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Så fungerar det"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Du kan komma åt ditt privata rum längst ned i applistan"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Appar i ditt privata rum skyddas av ett lås"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Aviseringar från appar i ditt privata rum döljs när det är låst"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Appar i ditt privata rum visas inte i behörighetshanteringen, integritetsöversikten eller andra inställningar när ditt privata rum är låst.\n\nDitt privata rum kan inte flyttas till en ny enhet. Du måste ställa in ett nytt privat rum om du vill använda det på en annan enhet.\n\nAlla som ansluter din enhet till en dator eller installerar skadliga appar på enheten kanske kan få åtkomst till ditt privata rum."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Ställer in privat rum …"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Aviseringar från appar i privat rum döljs när det är låst"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Lås upp ditt privata rum för att dela foton eller filer från appar i det privata rummet"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Vissa appar är redan installerade i ditt privata rum"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Det gick inte att ställa in privat rum"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Försök igen"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Vill du låsa upp privat rum med skärmlåset?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Du kan låsa upp ditt privata rum på samma sätt som du låser upp din enhet, eller så väljer du ett annat lås"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Använd skärmlås"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Välj ett nytt lås"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Klart!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Om du vill få åtkomst till ditt privata rum öppnar du applistan och scrollar nedåt"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Klar"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Scrolla nedåt för att hitta privat rum"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Välj ett lås för ditt privata rum"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Du kan låsa upp ditt privata rum med fingeravtrycket. Av säkerhetsskäl krävs ett alternativt lås."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Ställ in pinkod för ditt privata rum"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Ställ in lösenord för ditt privata rum"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Ställ in mönster för ditt privata rum"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"För att visa privat rum (Ej slutgiltig UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Öppna appen Inställningar"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Tryck på Säkerhet och integritet &gt; Privat rum &gt; Dölj privat rum när det är låst"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Inaktivera Dölj privat rum när det är låst"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Anteckning för anställda hos Google: Utvecklingen av den här funktionen pågår fortfarande"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Du kan också behöva ange lösenordet på den andra enheten."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bekräfta för att parkoppla med koordinerat set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Tillåt åtkomst till kontakter och sökhistorik"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ge även åtkomst till kontakter och samtalshistorik"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Uppgifterna används för samtalsaviseringar med mera"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Det gick inte att ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tillgängliga enheter"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"När Bluetooth har aktiverats kan enheten kommunicera med andra Bluetooth-enheter i närheten"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"I flygplansläge"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Meddelande om offentliga nätverk"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Meddela om tillgängliga offentliga nätverk av hög kvalitet"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Tillåt WEP-nätverk"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP är ett äldre säkerhetsprotokoll som är mindre säkert"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Din operatör tillåter inte WEP-nätverk eftersom de är mindre säkra"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Aktivera wifi automatiskt"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wifi aktiveras i närheten av sparade nätverk av hög kvalitet, till exempel ditt hemnätverk"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Ej tillgängligt eftersom platsåtkomst har inaktiverats. Aktivera "<annotation id="link">"plats"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Med hjälp av wifi-sökning kan appar och tjänster söka efter wifi-nätverk när som helst, även när wifi är inaktiverat. Funktionen kan till exempel användas till att förbättra platsbaserade funktioner och tjänster."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aktivera"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wifi-sökning har aktiverats"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Det här nätverket använder ett äldre säkerhetsprotokoll som är mindre säkert"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> har blockerats"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Det här nätverket använder ett äldre säkerhetsprotokoll som kallas WEP och som är mindre säkert. Om du vill ansluta ändå kan du tillåta WEP-nätverk."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Din operatör tillåter inte att du ansluter till det här nätverket eftersom det använder ett äldre säkerhetsprotokoll som är mindre säkert"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Tillåt WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Stäng"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Avancerade alternativ"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Rullgardinsmenyn Avancerade alternativ"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"utöka"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Fortsätt på Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Visa aldrig igen"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Anslut"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wifi har aktiverats"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Ansluten till <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ansluter till <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Ansluter …"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Det gick inte att ansluta till nätverket."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Nätverket är inte inom räckvidd"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Glöm"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Ändra"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Det gick inte att glömma nätverket"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Spara"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Det gick inte att spara närverket"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Avbryt"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wifi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobildata"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – laddas"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – laddas"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Anslutning till surfzon"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Anslutningsstyrka"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Sparade nätverk"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Inget lösenord har angetts"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Namn på surfzon"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Lösenord för surfzon"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP-band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Inaktivera surfzon automatiskt"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"När inga enheter är anslutna"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Utöka kompatibiliteten"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Skärmens vitbalans"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Slå av standardbildfrekvens för spel"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Stäng av begränsningen av bildfrekvensen för spel till <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Den främre kameran används i Blickavkänning för att avgöra om någon tittar på skärmen. Funktionen finns på enheten och bilderna varken lagras eller skickas till Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Aktivera blickavkänning"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Låt skärmen vara på så länge du tittar på den"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"En längre tidsgräns för skärmen förbrukar mer batteri."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kameran är låst"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Kameran måste låsas upp för ansiktsigenkänning"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Kameran måste låsas upp för blickavkänning"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM-kortplats <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM-kortplats <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (primär)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Välj ett sparat nätverk att visa"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI-kod"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI-kod SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL-version"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Batterinivå"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Allmänt"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Allmänna inställningar"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Spara"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Avbryt"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Fältet Namn får inte vara tomt."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN får inte vara tomt."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC-fältet måste bestå av 3 siffror."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC-fältet måste vara 2 eller 3 siffror"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operatören tillåter inte att du lägger till APN:er av typen %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC-fältet måste vara giltigt."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Återställer standardinställningar för APN."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Återställ standardinst."</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Återställning av standardinställningar för APN har slutförts."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Återställ"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth och wifi har återställts"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Rensa eSIM-kort"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Det här avbryter inte något serviceavtal för telefonen. Om du vill ladda ned SIM-kort som ersätter de gamla kontaktar du operatören."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Återställ inställningar"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Vill du återställa alla nätverksinställningar? Det går inte att ångra den här åtgärden."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Vill du återställa alla nätverksinställningar och rensa eSIM-kort? Det går inte att ångra den här åtgärden."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Vill du återställa?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Den här användaren kan inte återställa nätverket"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Nätverksinställningarna har återställts"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Det gick inte att rensa SIM-kortet"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Det går inte att rensa eSIM-kort på grund av ett fel.\n\nStarta om enheten och försök igen."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Rensa all data (återställ standardinst.)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Rensa all data (återställ standardinst.)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"musik"</li>\n<li>"foton"</li>\n<li>"annan användardata"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-kort"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Detta innebär inte att serviceavtalet avslutas."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Alla personliga uppgifter och alla nedladdade appar raderas. Det går inte att ångra den här åtgärden."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Alla personliga uppgifter raderas, inklusive nedladdade appar och SIM-kort. Det går inte att ångra den här åtgärden."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Vill du radera all data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Den här användaren kan inte återställa till standardinställningarna"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Raderar"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Surfzon, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet delas inte med andra enheter"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Av"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Internetdelning"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Använd inte Wi‑Fi-surfzon"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Dela internet endast via USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Dela internet endast via Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Dela internet endast via Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Dela internet endast via USB och Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Dela internet endast via USB och Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Dela internet endast via Bluetooth och Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Dela internet endast via USB, Bluetooth och Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Delning via USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Delning via Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-internetdelning"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Med hjälp av surfzoner och internetdelning kan andra enheter anslutas till internet via den här enhetens wifi- eller mobildataanslutning. Surfzoner kan även skapas i appar för att dela innehåll med enheter i närheten."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Hjälp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobilnätverk"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobilplan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Sms-app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Vill du byta sms-app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Vill du använda <xliff:g id="NEW_APP">%1$s</xliff:g> som sms-app i stället för <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Vill du byta wifi-assistentapp?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%1$s</xliff:g> i stället för med <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Vill du hantera nätverksanslutningarna med <xliff:g id="NEW_APP">%s</xliff:g>?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Okänd SIM-operatör"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> har ingen känd administrationswebbplats"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"För in SIM-kortet och starta om"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Anslut till internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Nya platsförfrågningar"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Plats för jobbprofil"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Appars platsbehörighet"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Ta bort åtkomst"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontroller"</string>
     <string name="force_stop" msgid="2681771622136916280">"Tvinga att avsluta"</string>
+    <string name="archive" msgid="9074663845068632127">"Arkivera"</string>
+    <string name="restore" msgid="7622486640713967157">"Återställ"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Totalt"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Appstorlek"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Data på USB-lagringsenhet"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Det gick inte att beräkna paketstorleken."</string>
     <string name="version_text" msgid="7628938665256107608">"version <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Flytta"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arkivering misslyckades"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arkiverade <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Återställningen misslyckades"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Återställer <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Det pågår redan en annan migrering."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Inte tillräckligt med lagringsutrymme."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Appen finns inte."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Tillgängligt skärmtangentbord"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Hantera skärmtangentbord"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Alternativ"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Tillgänglighet"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysiskt tangentbord"</string>
     <string name="show_ime" msgid="4334255501724746849">"Använd skärmtangentbord"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Ha kvar det på skärmen när det fysiska tangentbordet används"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Studsande tangenter"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Aktivera studsande tangenter för tillgänglighet med fysiskt tangentbord"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Tröga tangenter"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Aktivera tröga tangenter för tillgänglighet med fysiskt tangentbord"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Kortkommandon"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Visa en lista över genvägar"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tangentbord och verktyg för jobbprofilen"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sortera efter användningstid"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sortera efter senast användning"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sortera efter appnamn"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Användes senast"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Användes senast"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"aldrig"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Användningstid"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Tillgänglighet"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Tillgänglighetsinställningar"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Fortsätt ändå"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Avbryt"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Inställningar för förstoring"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Tryck tre gånger för att förstora"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Förstora med genväg"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Förstora med genväg och tryck snabbt tre gånger"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Om <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Tryck snabbt två 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="860548190334486449">"Tryck snabbt två 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Svep uppåt med tre fingrar från skärmens nederkant om du vill använda en tillgänglighetsfunktion.\n\nByt funktion genom att svepa uppåt med tre fingrar och hålla kvar dem."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Inst. för tillgänglighetsknapp"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Knappinställningar"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Genväg till <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Tillgänglighetsknapp"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Tillgänglighetsrörelse"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Tryck snabbt två gånger på skärmen med två fingrar"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"tryck snabbt två gånger på skärmen med två fingrar"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Tryck snabbt {0,number,integer} gånger på skärmen med två fingrar"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Tryck snabbt tre gånger på skärmen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Läs mer om tillgänglighetsknappen och tillgänglighetsrörelsen"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Använda tillgänglighetsknappen. Rörelsen är inte tillgänglig med navigering med tre knappar."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Kom snabbt åt tillgänglighetsfunktioner"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Så här kommer du igång"</b>\n"1. Öppna tillgänglighetsinställningarna\n2. Välj en funktion och tryck på genvägen\n3. Välj om du vill använda en knapp eller en rörelse för att komma åt funktionen"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Så här kommer du igång"</b>\n"1. Öppna tillgänglighetsinställningarna\n2. Välj en funktion och tryck på genvägen\n3. Välj den knapp du vill använda för att komma åt funktionen"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Så här kommer du igång&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Öppna tillgänglighetsinställningarna&lt;br/&gt; {1,number,integer}. Välj en funktion och tryck på genvägen&lt;br/&gt; {2,number,integer}. Välj om du vill använda en knapp eller en rörelse för att komma åt funktionen&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Så här kommer du igång&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Öppna tillgänglighetsinställningarna&lt;br/&gt; {1,number,integer}. Välj en funktion och tryck på genvägen&lt;br/&gt; {2,number,integer}. Välj den knapp du vill använda för att komma åt funktionen&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Använda knapp eller rörelse"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Läge"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Storlek"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Avsluta samtal med av/på-knapp"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Stor muspekarikon"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Gör muspekaren lättare att upptäcka"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Gör alla appar mörka"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Gäller för appar utan eget mörkt tema. Vissa appar kan få visningsproblem, som inverterade färger."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Ta bort animationer"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Minska rörelse på skärmen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Monoljud"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Den kan registrera din användning av en app eller maskinvarusensor och interagera med appar åt dig."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Tillåt"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Neka"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stoppa"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Avbryt"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Vill du avbryta <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Om du trycker på <xliff:g id="STOP">%1$s</xliff:g> stoppas <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Inaktivera"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Behåll på"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vill du inaktivera <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Inga tjänster är installerade"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ingen tjänst har valts"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Ingen beskrivning har angetts."</string>
     <string name="settings_button" msgid="2195468788019730377">"Inställningar"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ljuskänslighet, fotofobi, mörkt tema, migrän, huvudvärk, läsläge, nattläge, minska ljusstyrkan, vitpunkt"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Användarvänlighet, enkel åtkomst, hjälp, stöd"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"syn, hörsel, blind, döv, motorik, fingerfärdighet, assisterande, stöd, användarvänlighet, tillgänglighet, hand, hjälp"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Fönsterförstoring, Zoom, Förstoring, Nedsatt syn, Förstora, göra större"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Textning, undertexter, undertextning, Transkribering, hörselskada, hörselnedsättning, CART, tal till text, undertext"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"färgkontrast"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motorik, mus"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"hörapparater, hörselnedsättning, hörselskada, cochleaimplantat, ljudförstärkande enheter, ljudbehandlare"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorik, mus, extern mus, huvudstyrning, anpassad mus, rullstol, styrspak"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"hörapparater, hörselskada, hörselnedsättning, cochleaimplantat, ljudförstärkande enheter, ljudbehandlare, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"hörselskada, hörselnedsättning, textning, teleprinter, texttelefon"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre knappar"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"fingerfärdighet, motorik, senior, artrit, förslitningsskada, stroke, darrning, multipel skleros, cerebral pares, skakning, belastningsskada, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"fördröjning, fingerfärdighet, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"Utskrift"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Av"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 utskriftstjänst är på}other{# utskriftstjänster är på}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Se appar med högst batteriförbrukning"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Laddningen optimeras för att skydda batteriet"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Laddningen optimeras så att batteriet räcker längre"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Laddningen optimeras för att skydda batteriet"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Laddningen optimeras när du dockar enheten så att batteriet räcker längre"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Laddningen optimeras för att skydda batteriet"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Laddningen optimeras när du dockar enheten så att batteriet räcker längre"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Laddar fullt"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"För att skydda batteriet optimeras laddningen nästa gång surfplattan är dockad"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Läs mer om att laddning är pausad"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Återuppta laddning"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inkluderar batterikrävande aktivitet i bakgrunden"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ta bort"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Avbryt"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Ladda fullt"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Ett problem uppstod med att ladda tillbehöret"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Läs mer om inkompatibel laddning"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Hantera appar automatiskt"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"nu"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>–<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Diagram över batteriförbrukning"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Diagram över batteriförbrukning per dag"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Diagram över batteriförbrukning per timme"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Batteriprocent från <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> till <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Batteriförbrukning sedan batteriet senast var fulladdat"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Batteriförbrukning för <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Skärmtid sedan batteriet senast var fulladdat"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Ringsignal vid nödsituationer"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Ange beteende vid nödsamtal"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Säkerhetskopiering"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"På"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Av"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Säkerhetskopiera och återställ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personliga data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Säkerhetskopiera data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Namn"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Typ"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Serveradress"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP-kryptering (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP-hemlighet"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec-identifierare"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"I förväg delad IPSec-nyckel"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec-användarcertifikat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA-certifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec-servercertifikat"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Visa avancerade alternativ"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS-sökdomäner"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-servrar (t.ex. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Vidarebefordrar rutter (t.ex. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Användarnamn"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Lösenord"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Spara kontoinformation"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(används inte)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(kontrollera inte servern)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(mottaget från server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Den här VPN-typen kan inte vara ansluten hela tiden"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Always-on VPN har bara stöd för numeriska serveradresser"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"En DNS-server måste anges för Always-on VPN"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS-serveradresser måste vara numeriska för Always-on VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Information som angavs stöder inte Always-on VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Avbryt"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ignorera"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Blockera anslutningar utan VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Ska VPN krävas vid anslutning?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Inte säker. Uppdatera till ett VPN med IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Detta VPN stöds inte och gick inte att starta."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Välj en VPN-profil som du alltid vill vara ansluten till. Nätverkstrafik tillåts bara när du är ansluten till detta VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Inga"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Funktionen Always-on VPN kräver en IP-adress för både server och DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER-varningar"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Ta emot meddelanden om kidnappning"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Upprepa"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Aktivera samtalshanterare"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Tillåt att tjänsten hanterar hur du ringer samtal."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Samtalshanterare"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Trådlösa varningar vid nödsituationer"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Nätverksoperatörer"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Åtkomstpunktsnamn"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"betala, tryck, betalningar"</string>
     <string name="keywords_backup" msgid="707735920706667685">"säkerhetskopia, säkerhets kopia"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"rörelse"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ansikte, upplåsning, auktorisering, inloggning"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ansikte, låsa upp, auktorisera, logga in, fingeravtryck, biometri"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei-kod, meid, min, prl-version, imei-kod sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ljud vid uppstart"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Live Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Texta media automatiskt"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefonens högtalare"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Surfplattans högtalare"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Enhetens högtalare"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Hörlurar med sladd"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Ljud från kompatibel media blir mer omgivande"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Av"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Vad ska visas på låsskärmen?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"De senaste konversationerna har tagits bort"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Konversationen har tagits bort"</string>
     <string name="clear" msgid="5092178335409471100">"Rensa"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Rensa <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Prioriterade och ändrade konversationer visas här"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"När du markerar en konversation som prioriterad eller gör andra ändringar för konversationer så visas det här. \n\nSå här ändrar du inställningarna för konversationer: \nÖppna aviseringspanelen genom att svepa nedåt från skärmens överkant. Sedan trycker du länge på en konversation."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Minimera"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Av"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Fästa appar"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Genom att fästa en app kan du se till att den alltid är överst tills du lossar den igen. Du kan använda funktionen t.ex. om du vill låta någon du litar på prova på ett spel."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Det kan gå att öppna andra appar med appen du har fäst och personliga uppgifter kan bli tillgängliga. \n\nSå här fäster du appar: 	\n1. Aktivera Fästa appar 	\n2. Öppna översikten 	\n3. Tryck på appikonen högst upp på skärmen och sedan på Fäst"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Det kan gå att öppna andra appar med appen du har fäst och personliga uppgifter kan bli tillgängliga. \n\nOm du vill dela enheten med någon på ett säkert sätt kan du använda en gästanvändare i stället. \n\nSå här fäster du appar: 	\n1. Aktivera Fästa appar 	\n2. Öppna översikten 	\n3. Tryck på appikonen högst upp på skärmen och sedan på Fäst"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Det kan gå att öppna andra appar med appen du har fäst och personliga uppgifter kan bli tillgängliga. \n\nSå här fäster du appar: 	\n{0,number,integer}. Aktivera Fästa appar 	\n{1,number,integer}. Öppna översikten 	\n{2,number,integer}. Tryck på appikonen högst upp på skärmen och sedan på Fäst"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Det kan gå att öppna andra appar med appen du har fäst och personliga uppgifter kan bli tillgängliga. \n\nOm du vill dela enheten med någon på ett säkert sätt kan du använda en gästanvändare i stället. \n\nSå här fäster du appar: 	\n{0,number,integer}. Aktivera Fästa appar 	\n{1,number,integer}. Öppna översikten 	\n{2,number,integer}. Tryck på appikonen högst upp på skärmen och sedan på Fäst"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Följande gäller när du fäster appar: \n\n•	 Personliga uppgifter kan bli tillgängliga\n		(t.ex. kontakter och innehåll i e-post) \n•	 Det kan gå att öppna andra appar med appen som har fästs \n\nLåt bara personer du litar på använda fästa appar."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Kräv ett upplåsningsmönster för att lossa appar"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Be om pinkod innan appen lossas"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Inställningar för appar som inte används"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Pausa appaktivitet om appen inte används"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Ta bort behörigheter, radera tillfälliga filer och hindra aviseringar"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Hantera appen om den är oanvänd"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Ta bort behörigheter, radera tillfälliga filer, hindra aviseringar och arkivera appen"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Alla appar"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Installerade appar"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Snabbappar"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Ledigt"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Minne som används av appar"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app har använt minne under senaste {time}}other{# appar har använt minne under senaste {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Aktivera profilering av minnesanvändning"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Profilering av minnesanvändning kräver ytterligare systemresurser."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Minnesprofilering är inaktiverat"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekvens"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximal användning"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Ingen data används"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Visa ovanpå andra appar"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Tillåt visning ovanpå andra appar"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Tillåt att den här appen visas ovanpå andra appar. Appen kan se var du trycker eller ändra vad som visas på skärmen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Ändra uppspelning av media"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Tillåt att appar ändrar uppspelning av media"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Tillåt att den här appen ändrar vilken ansluten enhet som spelar upp ljud eller video från andra appar. Om du tillåter det kan den här appen få åtkomst till en lista över tillgängliga enheter, till exempel hörlurar och högtalare, och välja vilken utdataenhet som används för att streama eller casta ljud eller video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Åtkomst till alla filer"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Förbättra röstaktivering"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Den här enheten använder privata uppgifter för att förbättra röstaktiveringsmodellen. Appar kan få uppdaterade sammanfattningar som har samlats in från många användare för att bevara integriteten samtidigt som modellen förbättras för alla.\n\n"<a href="">"Läs mer om privata uppgifter"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Datavarning vid <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Datagräns på <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datavarning vid <xliff:g id="ID_1">^1</xliff:g>/datagräns på <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operatörens dataredovisning kan skilja sig från enhetens dataredovisning."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Data som används via operatörer utesluts"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> har använts"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Ställ in en datavarning"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Uppdaterades för <xliff:g id="ID_1">^2</xliff:g> sedan"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Uppdaterades av <xliff:g id="ID_1">^1</xliff:g> alldeles nyss"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Uppdaterades alldeles nyss"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Visa abonnemang"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Visa detaljer"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Databesparing"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Obegränsad data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Avvikelse i batteriförbrukningen"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Utvecklarrutor för snabbinställningar"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Inaktivera tidsgräns för adb-auktorisering"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Inaktivera automatiskt återkallande av adb-auktorisering för system som inte har återanslutit inom standardtiden (7 dagar) eller den tid som användaren ställt in (minst 1 dag)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscopespårning"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensorer är inaktiverade"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Inställningar för jobbprofilen"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Sök efter kontakter från jobbkatalogen i privata appar"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Svep uppåt från något av de nedre hörnen för att aktivera appen digital assistent"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Autofylltjänst"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Standardtjänst för autofyll"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Lösenord"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Lösenord, nycklar och datatjänster"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Ytterligare leverantörer"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# lösenord}other{# lösenord}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, fyll, autofyll, lösenord"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Lösenord, nycklar och datatjänster"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Vill du inaktivera alla tjänster?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;Lösenord, nycklar och andra sparade uppgifter blir inte tillgängliga för autofyll när du loggar in"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Ändra tjänsten du föredrar till &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 andra uppgifter sparas från och med nu här. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Vill du använda %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Du kan bara ha fem aktiva tjänster"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Inaktivera minst en tjänst för att lägga till en annan"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s använder det som visas på skärmen för att avgöra vad som kan fyllas i automatiskt."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Gräns för lösenord, nycklar och datatjänster"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Du kan ha upp till fem lösenord, nycklar och datatjänster aktiva samtidigt. Inaktivera en tjänst om du vill lägga till fler."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Gräns för lösenord, nycklar och datatjänster"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Du kan ha upp till fem lösenord, nycklar och datatjänster aktiva samtidigt. Inaktivera en tjänst om du vill lägga till fler."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Stäng av"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Autofyll"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Loggningsnivå"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Kompabilitetsändringar för appar kan endast modifieras för felsökningsbara appar. Installera en felsökningsbar app och försök igen."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Beroende av en annan inställning"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Konto"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d konton"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Enhetens namn"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Basinformation"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Juridisk information och föreskrifter"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Tillåt att appen startas när en NFC-etikett skannas.\nOm den här behörigheten är aktiverad blir appen tillgänglig som alternativ när en etikett identifieras."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Spela upp media på"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Spela upp <xliff:g id="LABEL">%s</xliff:g> på"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Ljud spelas upp på"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Den här enheten"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Ej tillgänglig under samtal"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Svara med"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Ljud av"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"För att aktivera ändrar du först alternativet ”Håll av/på-knappen nedtryckt” till startmenyn."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Nätverksinformation"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Enhetens namn är synligt för appar i mobilen. 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="devices_title" msgid="649715719278562515">"Enheter"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Välj nätverk"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Frånkopplad"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Namn"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Färg (används i kompatibla appar)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Spara"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Använd SIM-kort"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Använd det här SIM-kortet"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Av"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Ta ut SIM-kortet om du vill inaktivera det"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Aktivera <xliff:g id="CARRIER">%1$s</xliff:g> genom att trycka"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Radera SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Önskad nätverkstyp"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Ändra nätverksläge"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Önskad nätverkstyp"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Kontakta din nätoperatör för priser."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Appars dataanvändning"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Ogiltigt nätverksläge: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignorera."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Namn på åtkomstpunkter"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Inte tillgänglig vid anslutning till <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Vill du byta till <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Vill du byta till SIM-kort?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Vill du använda <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Du kan bara ha ett aktivt SIM-kort åt gången.\n\nOm du byter till <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> avslutas inte tjänsten hos <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Du kan bara ha ett aktivt eSIM-kort åt gången.\n\nOm du byter till <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> avslutas inte tjänsten hos <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Du kan bara ha ett aktivt SIM-kort åt gången.\n\nTjänsten hos <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> avslutas inte för att du byter SIM-kort."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Du kan använda två SIM-kort samtidigt. Inaktivera ett annat SIM-kort om du vill använda <xliff:g id="CARRIER_NAME">%1$s</xliff:g>."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Byt till <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Stäng av <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Nej tack"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Avbryt"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Byt"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Inaktivera"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Det gick inte att aktivera SIM-kortet"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Testa att aktivera SIM-kortet igen. Starta om enheten om problemet kvarstår."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Konfigurera SIM-kortet"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Ställ in inställningarna för mobilnätverk på att använda flera SIM-kort på den här enheten"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Sätt etikett på SIM-korten"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Du ser dessa etiketter när du ringer samtal, skickar sms, använder data och i inställningarna"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM-kortsetikett"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etikett"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Välj SIM-kort att använda"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Du kan använda två SIM-kort samtidigt"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Ställ in primära SIM-kort"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Välj vilka SIM-kort du vill använda som standard för samtal, sms och data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Dina primära SIM-kort"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Samtal"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Sms"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Automatiskt databyte"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Använd data från båda SIM-korten beroende på täckning och tillgänglighet"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Endast data"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Ställ in"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Nästa"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobilnätverk"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefonnummer"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM-kortsetikett och -färg"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Nätverksaktivering"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operatörsbyte"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> är aktiv"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Om du senare vill använda mobildata, samtalsfunktioner och sms öppnar du nätverksinställningarna"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-kort"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Vill du rensa det här eSIM-kortet?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Om du rensar det här SIM-kortet tas tjänsten hos <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> bort från enheten.\n\nTjänsten hos <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> avslutas inte."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Rensa"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Rensar SIM-kort …"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Det gick inte att rensa SIM-kortet"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Det gick inte att rensa SIM-kortet på grund av ett fel.\n\nStarta om enheten och försök igen."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Anslut till enhet"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Appen <xliff:g id="APPNAME">%1$s</xliff:g> vill ansluta till enheten via ett tillfälligt wifi-nätverk"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Inga enheter hittades. Kontrollera att enheterna är på och går att ansluta till."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Nödsamtal"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Nödsamtal via wifi stöds inte av din operatör.\nEnheten byter automatiskt till ett mobilnätverk vid nödsamtal.\nNödsamtal fungerar endast i områden där mobilnätverket har täckning."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Använd wifi vid samtal så att kvaliteten blir bättre"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Reserv för samtal"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Använd SIM-kortets mobildata för samtal via <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> om <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> inte är tillgängligt eller roaming är aktiverat."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"reserv för samtal"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Inkommande mms"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Det går inte att skicka mms"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Tryck för att tillåta mms via <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> när mobildata är inaktiverat"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Information om jobbpolicy"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Inställningar som hanteras av IT-administratören"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"Grafikprocessor"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Starta med sidstorlek på 16 kB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Starta med kärna kompatibel med sidor på 16 kB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Vill du starta om med en kärna som är kompatibel med sidor på 16 kB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"VARNING! Vissa appar kanske inte är kompatibla med det här läget. Enheten startas om efter bekräftelse."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Vill du starta om med en kärna som är kompatibel med sidor på 4 kB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Enheten startas om efter bekräftelse."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Det gick inte att uppdatera kärnan till en kärna som är kompatibel med sidor på 16 kB."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Tillämpar ändring"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Felrapportshanterare"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Avgör vilken app som hanterar Genväg till felrapport på enheten."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Privat"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Mediespelaren förblir öppen i snabbinställningarna så att du snabbt kan återuppta uppspelningen"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Visa media på låsskärmen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Mediespelaren finns tillgänglig på låsskärmen så att du kan återuppta uppspelningen snabbt"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Visa medierekommendationer"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Visa medierekommendationer från assistenten"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Baserat på din aktivitet"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Dölj spelare"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Visa spelare"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM-kort"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-kort"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktiv"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Inaktiv"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Standardinställning för <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"samtal"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"Sms"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ljud från kompatibel media blir mer omgivande"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Huvudspårning"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ljudet ändras när du rör på huvudet för att låta mer naturligt"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Synkronisera behörigheter"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Ge <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> samma appbehörigheter som du har tillåtit på <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Synkronisera behörigheter från telefonen"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Ge klockan samma appbehörigheter som du har gett den här telefonen"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Ljudenhetstyp"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Okänd"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Högtalare"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Medelhög"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Hög"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Denna app kan bara vara öppen i ett fönster"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"På"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Av"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Av"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Av"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"På"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Av"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"På"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Av"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Ändrar ljusa skärmar till mörka och tvärtom"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Zooma in på skärmen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Av"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Av"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"På"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Av"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"På"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Nu är lösenordet inställt"</string>
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index c448b3b..923f46e 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Baada ya dakika 1"</item>
     <item msgid="1574040255478150028">"Baada ya dakika 5"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 7189e0e..bb103d5 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Sasa wewe ni msanidi programu!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Hakuna haja, tayari wewe ni msanidi programu."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Tafadhali washa chaguo za wasanidi programu kwanza."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Ni watumiaji wasimamizi pekee wanaoweza kufikia mipangilio ya msanidi programu."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Mfumo"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Inatumika"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Haitumiki"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Skrini ya mbele huwaka unapokunja kifaa chako"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Video na michezo pekee na zaidi"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Skrini ya mbele huwaka unapofungua programu zinazozuia skrini yako kujizima"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Telezesha kidole juu ili uendelee"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Kunja simu yako kisha utelezeshe kidole juu kwenye mwonekano wa mbele ili uendelee kutumia programu, au subiri sekunde chache ili skrini ifungwe"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Kamwe"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Skrini ya mbele hufungwa unapokunja kifaa chako"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Ruhusu skrini ijizungushe kiotomatiki"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Zinazofanana"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Milio ya simu na kengele"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Sauti wakati wa simu"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Maudhui"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Sauti nyingine za mfumo na arifa"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Sauti za maudhui na mfumo"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Arifa"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Kwa chaguomsingi, sauti inayotoka hubainishwa na programu mahususi"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Kifaa cha Bluetooth kisicho na jina"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Inatafuta"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Imewasha Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Angalia vyote"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Angalia vyote"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Kubonyeza kitufe cha nyuma"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Wasifu wa kazini)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Unganisha kwenye mtiririko wa LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Mitiririko ya maudhui ya sauti iliyo karibu nawe"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Mitiririko ya maudhui ya sauti"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Unganisha kwenye mtiririko wa maudhui ya sauti ukitumia msimbo wa QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Mitiririko ya maudhui ya sauti haipo karibu."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ili uchague lugha kwa kila programu, nenda kwenye mipangilio ya lugha ya programu."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Pata maelezo zaidi kuhusu lugha za programu"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Ungependa kubadilisha lugha ya mfumo kuwa %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Ungependa kuweka %s kwenye lugha unazopendelea?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Hii huruhusu programu na vifaa kujua kuwa pia unapendelea lugha hii."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Mipangilio ya kifaa chako na mapendeleo ya kimaeneo yatabadilika."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Badilisha"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s haipatikani"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Jumamosi"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Ikiwa programu hairuhusu mapendeleo ya kimaeneo, programu itatumia mipangilio yake chaguomsingi ya lugha."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Pata maelezo zaidi kuhusu mapendeleo ya lugha."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Mapendeleo ya ziada"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Maneno ya kukutambulisha"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Bainisha jinsi ungependa kutambulishwa"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Programu zinaweza kutumia maneno ya kukutambulisha kuwekea mapendeleo jinsi ya kuwasiliana nawe."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Hayajabainishwa"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Jinsia ya kike"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Jinsia ya kiume"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Wastani"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Ungependa kuondoa lugha iliyochaguliwa?}other{Ungependa kuondoa lugha zilizochaguliwa?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Maandishi yataonyeshwa katika lugha nyingine."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Haiwezi kuondoa lugha zote"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Kutambua Mahali"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Tumia kipengele cha mahali"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Umezima"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Imewashwa - programu # ina idhini ya kufikia data ya mahali}other{Imewashwa - programu # zina idhini ya kufikia data ya mahali}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Imewashwa / programu # ina idhini ya kufikia data ya mahali}other{Imewashwa / programu # zina idhini ya kufikia data ya mahali}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Inapakia…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Programu zenye ruhusa ya Uhamishaji wa Karibu zinaweza kubainisha mahali vilipo vifaa vilivyounganishwa."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ruhusa za kufikia mahali zimezimwa kwenye programu na huduma. Bado maelezo ya mahali kilipo kifaa chako yanaweza kutumwa kwa wanaoshughulikia matukio ya dharura unapopiga simu au kutuma SMS kwa namba ya dharura."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Pata maelezo zaidi kuhusu Mipangilio ya Mahali."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Pata maelezo zaidi kuhusu Mipangilio ya mahali"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Ili ubadilishe idhini ya mahali, fungua Mipangilio &gt; Usalama na Faragha &gt; Vidhibiti vya faragha"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Kwa matokeo bora, tumia ulinzi wa skrini ambao umethibitishwa na Made for Google. Ukitumia ulinzi mwingine wa skrini, alama ya kidole ya mtoto wako huenda isifanye kazi."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Kufungua kupitia Saa"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Ukiweka mbinu ya Kufungua kwa Uso na Kufungua kwa Alama ya Kidole, simu yako itaomba uweke alama ya kidole chako unapovaa barakoa au ukiwa kwenye eneo lenye giza.\n\nUnaweza kufungua kwa kutumia saa yako uso au alama ya kidole chako isipotambuliwa."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Unaweza kufungua kwa kutumia saa yako, alama ya kidole chako isipotambuliwa."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Unaweza kufungua kwa kutumia saa yako, uso wako usipotambuliwa."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Ukiweka mipangilio ya Kufungua kwa Uso na Kufungua kwa Alama ya Kidole, utahitaji kuweka alama ya kidole kwenye simu yako wakati umevaa barakoa au ukiwa penye giza.\n\nKipengele cha Kufungua kupitia Saa ni njia nyingine rahisi ya kufungua simu yako, kwa mfano, wakati vidole vyako vina unyevu au uso wako hautambuliwi."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Kipengele cha Kufungua kupitia Saa ni njia nyingine rahisi ya kufungua simu yako, kwa mfano, wakati alama ya kidole haitambuliwi."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Kipengele cha Kufungua kupitia Saa ni njia nyingine rahisi ya kufungua simu yako, kwa mfano, wakati uso wako hautambuliwi."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Tumia alama ya kidole au saa"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Tumia uso au saa"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Tumia uso, alama ya kidole au saa"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Umeweka uso na <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Umeweka uso, alama ya kidole na <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Umeweka uso, alama za vidole na <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Kufungua Remote Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Saa imeoanishwa"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Weka mipangilio ya saa yako"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Kipengele cha Kufungua kupitia Saa ni njia nyingine rahisi ya kufungua simu hii, kwa mfano, wakati vidole vyako vina unyevu au uso wako hautambuliwi.\n\nUnaweza kutumia saa yako kufungua simu wakati:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Si sasa"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Endelea"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Zaidi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Jinsi inavyofanya kazi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Lazima uwe umefungua saa yako, umeivaa na iwe karibu na simu hii. Hutahitaji kufungua tena saa yako ukiwa umeivaa."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Ukifungua simu hii, utaarifiwa kwenye saa yako. Ikiwa umeifungua bila kukusudia, gusa arifa ili ufunge simu tena."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Uamuzi ni wako"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Unaweza kuondoa saa yako kwenye kipengele cha Kufungua kupitia Saa wakati wowote katika Mipangilio"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Gusa arifa"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Telezesha kidole juu kwenye skrini iliyofungwa"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Chagua saa yako"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Saa zinazopatikana"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Ghairi"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Thibitisha"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Kila kitu ni shwari!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Sasa unaweza kutumia saa yako kufungua simu hii unapotelezesha kidole juu kwenye skrini iliyofungwa au unapogusa arifa"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Nimemaliza"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Kufungua kupitia Saa"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Unaweza kutumia simu yako kufungua simu hii unapotelezesha kidole kwenda juu kwenye skrini iliyofungwa au kugusa arifa"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ili utumie kipengele cha Kufungua kupitia Saa, ni sharti saa yako iwe imefunguliwa, uwe umeivaa, iweze kuifikia na iunganishwe kwenye simu hii. Muunganisho ukikatizwa, utahitaji kufungua simu kabla ya kuweza kutumia kipengele cha Kufungua kupitia Saa.\n\nKumbuka:\nUnaweza kuweka mipangilio ya saa moja tu kwa wakati mmoja. Ili uweke mipangilio ya saa nyingine, ondoa kwanza mipangilio ya saa iliyopo."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Pata maelezo zaidi kuhusu Kufungua Kupitia Saa"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Weka saa"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ondoa saa"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Alama ya Kidole na Kufungua kwa Uso"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Kazini: Kufungua kwa Uso na Alama ya Kidole"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Unahitaji kuweka mipangilio"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Usalama"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Faragha"</string>
     <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="2274405892301976238">"Funga na ufiche programu za faragha"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Weka programu za faragha kwenye nafasi tofauti unayoweza kuficha au kufunga"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Mbinu ya kufunga Nafasi ya Faragha"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Unaweza kufungua Nafasi ya Faragha kupitia mbinu unayotumia kufungua kifaa chako, au uchague mbinu tofauti ya kufunga"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Tumia mbinu ya kufunga skrini ya kifaa"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Kipengele cha Kufungua kwa Alama ya Kidole na Uso"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Kufungua kwa Alama ya Kidole"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Kipengele cha Kufungua kwa Uso"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Gusa ili uweke mipangilio"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Kufungua Sehemu ya Faragha kwa Alama ya Kidole"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Kufungua Sehemu ya Faragha kwa Uso"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Mbinu za kufungua"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Mbinu sawa ya kufunga skrini ya kifaa"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Utachagua mbinu mpya ya kufunga Nafasi ya Faragha?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Funga kiotomatiki"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Kufunga sehemu ya faragha kiotomatiki"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Unaweza kufunga sehemu yako ya faragha kiotomatiki ikiwa hujatumia kifaa chako kwa muda"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Kila wakati kifaa kinapojifunga"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Ikikaa kwa dakika 5 bila shughuli"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Kisifunge kamwe"</string>
+    <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_delete_title" msgid="3075645119800272800">"Futa 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="private_space_unlocked" msgid="9091600948712932046">"Nafasi ya faragha imefunguliwa"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Weka mbinu ya kufunga skrini"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Ili utumie nafasi ya faragha, weka kipengele cha 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="private_space_cancel_label" msgid="379259667396956886">"Acha"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Weka mipangilio"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Kuweka mipangilio ya sehemu ya faragha"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Weka programu za faragha kwenye nafasi tofauti unayoweza kuficha au kufunga"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Utaratibu wake"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Unaweza kufikia sehemu ya faragha upande wa chini wa orodha ya programu zako"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Programu katika sehemu ya faragha zinalindwa kupitia mbinu ya kufunga"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Arifa za programu kwenye sehemu ya faragha hufichwa wakati umeifunga"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Programu zilizo kwenye sehemu yako ya faragha hazitaonekana kwenye Kidhibiti cha ruhusa, dashibodi ya faragha na mipangilio mingine wakati umefunga sehemu yako ya faragha.\n\nSehemu yako ya faragha haiwezi kuhamishiwa kwenye kifaa kipya. Utahitaji kuweka mipangilio ya sehemu nyingine ya faragha ikiwa ungependa kuitumia kwenye kifaa kingine.\n\nMtu yeyote anayeunganisha kifaa chako kwenye kompyuta au anayeweka programu hatari kwenye kifaa chako huenda akafikia sehemu yako ya faragha."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Inaweka mipangilio ya sehemu ya faragha…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Arifa za programu kwenye sehemu ya faragha hufichwa wakati umeifunga"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Fungua sehemu ya faragha ili ushiriki picha au faili kutoka kwenye programu zilizo katika sehemu ya faragha"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Baadhi ya programu tayari zimewekwa kwenye sehemu yako ya faragha"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Imeshindwa kuweka mipangilio ya sehemu ya faragha"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Jaribu Tena"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Ungependa kutumia kipengele cha kufunga skrini kufungua sehemu ya faragha?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Unaweza kufungua sehemu ya faragha kupitia mbinu unayotumia kufungua kifaa chako au uchague mbinu tofauti ya kufunga"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Tumia mbinu ya kufunga skrini"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Chagua mbinu mpya ya kufunga"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Tayari!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Ili ufikie sehemu yako ya faragha, nenda kwenye programu zako zilizoorodheshwa kisha uende chini"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Nimemaliza"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Nenda chini ili upate sehemu ya faragha"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Kuchagua mbinu ya kufunga sehemu yako ya faragha"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Unaweza kufungua sehemu yako ya faragha ukitumia alama ya kidole chako. Ili kudumisha usalama, chaguo hili linahitaji mbinu mbadala ya kufunga skrini."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Weka PIN ya sehemu yako ya faragha"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Weka nenosiri la sehemu yako ya faragha"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Weka mchoro wa sehemu yako ya faragha"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Ili kuonyesha Nafasi ya Faragha (Si UX ya mwisho)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Fungua Programu ya Mipangilio"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Gusa Usalama &amp; faragha &gt; Nafasi ya Faragha &gt; Ficha Nafasi ya Faragha wakati imefungwa"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Zima kipengele cha kuwasha/kuzima mipangilio ya Ficha Nafasi ya Faragha wakati imefungwa"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Dokezo kwa WanaGoogle: Bado kipengele hiki kinatengenezwa"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Unaweza pia kuhitaji kucharaza nenosiri hili kwenye kifaa kingine."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Thibitisha ili uoanishe na seti inayolengwa"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Ruhusu ufikiaji wa anwani na historia ya simu ulizopiga"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ruhusu pia ufikiaji wa anwani na rekodi ya simu zilizopigwa"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Maelezo yatatumiwa kwa matangazo ya simu na zaidi"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Haikuweza kuunganisha kwa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Vifaa vinavyopatikana"</string>
     <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 uunganishe"</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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Hali ya ndegeni imewashwa"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Niarifu mitandao ya umma inapopatikana"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Tuma arifa wakati mtandao wa umma wenye ubora wa juu unapatikana"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Ruhusu mitandao ya WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP ni itifaki ya usalama ya zamani ambayo si salama sana"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Mtoa huduma wako haruhusu mitandao ya WEP kwa sababu si salama sana"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Washa Wi‑Fi kiotomatiki"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi itaanza kutumika tena mitandao iliyohifadhiwa ya ubora wa juu itakapopatikana, kama vile mtandao wa nyumbani"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Haipatikani kwa sababu umezima huduma za mahali. Washa "<annotation id="link">"huduma za mahali"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Utafutaji wa Wi-Fi huruhusu programu na huduma zitafute mitandao ya Wi-Fi wakati wowote, hata wakati umezima Wi-Fi. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Washa"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Umewasha utafutaji wa Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Mtandao huu unatumia itifaki ya usalama ya zamani ambayo si salama sana"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> imezuiwa"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Mtandao huu unatumia itifaki ya usalama ya zamani, inayojulikana kama WEP, ambayo si salama sana. Ili uunganishe hata hivyo, ruhusu mitandao ya WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Mtoa huduma wako hakuruhusu kuunganisha kwenye mtandao huu kwa sababu unatumia itifaki ya usalama ya zamani ambayo si salama sana"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Ruhusu WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Funga"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Chaguo za kina"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Chaguo za Kina za Orodha Kunjuzi"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"panua"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Endelea kutumia Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Usionyeshe tena"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Unganisha"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Umewasha Wi‑Fi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Imeunganishwa kwenye <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Inaunganisha kwenye <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Inaunganisha…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Imeshindwa kuunganisha kwa mtandao"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mtandao hauko karibu"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Sahau"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Rekebisha"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Imeshindwa kusahau mtandao"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Hifadhi"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Imeshindwa kuhifadhi mtandao"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Ghairi"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Data ya mtandao wa simu"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethaneti"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Inachaji"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Inachaji"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Muunganisho wa mtandao pepe"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Uthabiti wa muunganisho"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mitandao iliyohifadhiwa"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Hujaweka nenosiri lolote"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Jina la mtandaopepe"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Nenosiri la mtandaopepe"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Bendi ya AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Zima mtandaopepe kiotomatiki"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Wakati hamna vifaa vilivyounganishwa"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Panua uoanifu"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Ulinganifu wa weupe wa skrini"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Zima kasi chaguomsingi ya picha ya michezo"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Zima kipengele cha kuweka kikomo cha kasi ya picha ya juu ya michezo iwe Hz <xliff:g id="FRAME_RATE">%1$d</xliff:g>."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Onyesho laini"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Kipengele cha utashi wa skrini hutumia kamera ya mbele ili kuona ikiwa kuna mtu anayeangalia skrini. Kipengele hiki hufanya kazi kwenye kifaa na picha hazihifadhiwi wala kutumwa kwa Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Washa utashi wa skrini"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Skrini isizime wakati ninaiangalia"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Muda mrefu wa skrini kujizima hutumia nishati zaidi ya betri."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera imefungwa"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Unahitaji kufungua Kamera ili utumie kipengele cha Utambuzi wa Nyuso"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Unahitaji kufungua Kamera ili utumie kipengele cha Utashi wa Skrini"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (nafasi ya sim ya <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (nafasi ya sim <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (msingi)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Ili uangalie, chagua mtandao uliohifadhiwa"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"NDOGO"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Toleo la PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Kiwango cha betri"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Ya jumuiya"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Mipangilio ya jumuiya"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Hifadhi"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Ghairi"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Huwezi kuacha sehemu hii ikiwa haijajazwa."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Lazima APN ijazwe."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Sehemu ya MCC lazima iwe na namba 3."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Sehemu ya MNC lazima iwe na namba 2 au 3."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Mtoa huduma haruhusu kuongeza APN za aina ya %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Ni lazima sehemu ya MMSC iwe sahihi."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Inarejesha mipangilio mbadala ya APN"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Rudisha kwenye chaguomsingi"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Kuweka upya kwa mipangilio mbadala ya APN kumekamilika"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Weka upya"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth na Wi‑Fi vimewekwa upya"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Futa eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Hatua hii haitaghairi mipango yoyote ya huduma za simu. Ili upakue SIM za kubadilisha, wasiliana na mtoa huduma wako."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Badilisha mipangilio"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Je, ungependa kubadilisha mipangilio yote ya mtandao? Huwezi kutendua kitendo hiki."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Ungependa kuweka upya mipangilio ya mtandao na kufuta eSIM? Huwezi kutendua kitendo hiki."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Iwekwe upya?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Kuweka upya mtandao hakupatikani kwa mtumiaji huyu"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Mipangilio ya mtandao imewekwa upya"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Imeshindwa kufuta data yote kwenye SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Imeshindwa kufuta eSIM kutokana na hitilafu.\n\nZima kisha uwashe kifaa chako na ujaribu tena."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Futa data yote (rejesha mipangilio iliyotoka nayo kiwandani)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Futa data yote (rejesha mipangilio Iliyotoka nayo kiwandani)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Muziki"</li>\n<li>"Picha"</li>\n<li>"data nyingine ya mtumiaji"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Hatua hii haitaghairi mpango wako wa huduma ya simu ya mkononi."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Taarifa binafsi na programu zako zote zilizopakuliwa zitafutwa. Huwezi kutendua kitendo hiki."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Taarifa yako yote ya binafsi, ikiwa ni pamoja na programu zilizopakuliwa na SIM, zitafutwa Huwezi kutendua kitendo hiki."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Ungependa kufuta data yote?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Urejeshaji wa mipangilio ya kiwandani haupatikani kwa mtumiaji huyu"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Inafuta"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Mtandao pepe, USB, Bluetooth, Ethaneti"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Haishiriki intaneti na vifaa vingine"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Imezimwa"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Kusambaza mtandao"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Usitumie mtandaopepe wa Wi-Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Shiriki intaneti kupitia USB pekee"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Shiriki intaneti kupitia Bluetooth pekee"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Shiriki intaneti kupitia Ethaneti pekee"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Shiriki intaneti kupitia USB na Bluetooth pekee"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Shiriki intaneti kupitia USB na Ethaneti pekee"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Shiriki intaneti kupitia Bluetooth na Ethaneti pekee"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Shiriki intaneti kupitia USB, Bluetooth na Ethaneti pekee"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Sambaza mtandao kwa USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Sambaza mtandao kwa Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Sambaza mtandao kwa Ethaneti"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Tumia mtandaopepe na huduma ya kusambaza mtandao ili uvisambazie vifaa vingine intaneti kupitia muunganisho wa data wa simu au Wi-Fi. Programu pia zinaweza kuunda mtandaopepe ili kushiriki maudhui na vifaa vilivyo karibu."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Usaidizi"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mtandao wa simu"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mpango wa vifaa vya mkononi"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Programu ya SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Ungependa kubadilisha programu ya SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Ungependa kutumia <xliff:g id="NEW_APP">%1$s</xliff:g> badala ya <xliff:g id="CURRENT_APP">%2$s</xliff:g> kama programu yako ya SMS?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Ungependa kubadili kisaidizi cha Wi-Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Ungependa kutumia <xliff:g id="NEW_APP">%1$s</xliff:g> badala ya <xliff:g id="CURRENT_APP">%2$s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Ungependa kutumia <xliff:g id="NEW_APP">%s</xliff:g> kusimamia miunganisho yako ya mtandao?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Mtoa huduma wa SIM asiyejulikana"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> hana tovuti ya utoaji inayojulikana"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Tafadhali weka SIM kadi kisha uzime na uwashe"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Tafadhali unganisha kwenye Intaneti"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Maombi ya hivi karibuni ya kutambua mahali"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Wasifu wa kazi kutambua mahali"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Ruhusa za programu kufikia mahali"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Futa ufikiaji"</string>
     <string name="controls_label" msgid="8671492254263626383">"Vidhibiti"</string>
     <string name="force_stop" msgid="2681771622136916280">"Lazimisha kuzima"</string>
+    <string name="archive" msgid="9074663845068632127">"Hifadhi kwenye kumbukumbu"</string>
+    <string name="restore" msgid="7622486640713967157">"Rejesha"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Jumla"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Ukubwa wa programu"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Programu ya hifadhi ya USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Haikuweza kuhesabu ukubwa wa furushi."</string>
     <string name="version_text" msgid="7628938665256107608">"Toleo <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Songa"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Imeshindwa kuhifadhi kwenye kumbukumbu"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Yaliyo kwenye kumbukumbu <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Imeshindwa kurejesha"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Inarejesha <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Tayari kuna uhamishaji unaoendelea."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Nafasi ya hifadhi haitoshi."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Programu haipo."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Kibodi ya skrini Inayopatikana"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Dhibiti kibodi za skrini"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Chaguo"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ufikivu"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Kibodi halisi"</string>
     <string name="show_ime" msgid="4334255501724746849">"Tumia kibodi ya skrini"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Ionyeshe kwenye skrini wakati kibodi halisi inatumika"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Vitufe vinavyoduta"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Washa Vitufe vinavyoduta kwa ajili ya ufikivu wa kibodi halisi"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Vitufe vinavyonata"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Washa Vitufe vinavyonata kwa ajili ya ufikivu wa kibodi halisi"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Mikato ya kibodi"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Onyesha orodha ya njia za mkato"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Zana na kibodi za wasifu wa kazini"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Panga kulingana na muda wa matumizi"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Panga kulingana na mara ya mwisho kutumika"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Panga kulingana na jina la programu"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Mara ya mwisho ilipotumika"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Mwisho kutumika"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"hazijawahi kufunguliwa"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Muda wa utumiaji"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Ufikivu"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Mipangilio ya ufikiaji"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Endelea tu"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Ghairi"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Mipangilio ya ukuzaji"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Kuza kwa kugusa mara tatu"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Kuza kwa njia ya mkato"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Kuza ukitumia njia ya mkato na kugonga mara tatu"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Kuhusu <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Gusa skrini mara mbili 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="860548190334486449">"Ili uanze au ukomeshe ukuzaji, gusa mara mbili 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Ili utumie kipengele cha ufikivu, 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_button" msgid="2031773187678948436">"Nimeelewa"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Mipangilio ya kitufe cha zana za ufikivu"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Mipangilio ya kitufe"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Njia mkato ya <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Kitufe cha zana za ufikivu"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Ishara ya ufikivu"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Gusa skrini mara mbili kwa vidole viwili"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"gusa skrini mara mbili kwa vidole viwili"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Gusa skrini kwa haraka mara {0,number,integer} kwa vidole viwili"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Gusa skrini mara tatu"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Pata maelezo zaidi kuhusu ishara na kitufe cha zana za ufikivu"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Kutumia kitufe cha zana za ufikivu. Ishara haipatikani kwenye usogezaji kwa kutumia vitufe 3."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Fikia vipengele vya ufikivu haraka"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Ili uanze"</b>\n"1. Nenda kwenye mipangilio ya ufikivu\n2. Chagua kipengele kisha gusa njia ya mkato\n3. Chagua iwapo unataka kutumia kitufe au ishara ili ufikie kipengele"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Ili uanze"</b>\n"1. Nenda kwenye mipangilio ya ufikivu\n2. Chagua kipengele kisha gusa njia ya mkato\n3. Chagua kitufe ili ufikie kipengele"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Ili uanze&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Nenda kwenye mipangilio ya ufikivu&lt;br/&gt; {1,number,integer}. Teua kipengele kisha uguse njia ya mkato&lt;br/&gt; {2,number,integer}. Chagua ikiwa ungependa kutumia kitufe au ishara kufikia kipengele&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Ili uanze&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Nenda kwenye mipangilio ya ufikivu&lt;br/&gt; {1,number,integer}. Teua kipengele kisha uguse njia ya mkato&lt;br/&gt; {2,number,integer}. Chagua kitufe ili ufikie kipengele&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Tumia ishara au kitufe"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Mahali"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Ukubwa"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Kata simu kwa kitufe cha kuwasha/kuzima"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Kielekezi kikubwa cha kipanya"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Fanya kiashiria cha kipanya kionekane kwa urahisi zaidi"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Fanya programu zote ziwe na mandhari meusi"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Inatumika kwa programu zisizo na mandhari meusi. Baadhi ya programu zinaweza kuwa na matatizo ya kuonyeshwa, kama vile rangi zilizogeuzwa."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Ondoa uhuishaji"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Punguza mwendo kwenye skrini"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Sauti ya mono"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Inaweza kufuatilia mawasiliano yako na programu au kitambuzi cha maunzi na kuwasiliana na programu zingine kwa niaba yako."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruhusu"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Kataa"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Komesha"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Ghairi"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Ungependa kuzima <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Kugusa <xliff:g id="STOP">%1$s</xliff:g> kutasimamisha <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Zima"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Usizime"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Ungependa kuzima <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Hakuna huduma zilizosanidiwa"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Hakuna huduma iliyochaguliwa"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Hakuna maelezo yaliyotolewa."</string>
     <string name="settings_button" msgid="2195468788019730377">"Mipangilio"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ung\'avu wa mwangaza, woga wa mwangaza, mandhari meusi, kipandauso, maumivu ya kichwa, hali ya kusoma, hali ya usiku, kupunguza mwangaza, sehemu nyeupe"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Urahisi wa kutumia, urahisi wa kufikia, usaidizi, saidizi"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"kuona, kusikia, vipofu, viziwi, ulemavu wa misuli, umahiri wa kutumia vidole, saidizi, usaidizi, urahisi wa kutumia, urahisi wa kufikia, mkono, usaidizi"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Kikuza Dirisha, Kuza, Ukuzaji, Uwezo mdogo wa kuona, Kuza, fanya iwe kubwa"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Manukuu, manukuu, manukuu, Nukuu Papo Hapo, tatizo la kusikia, kupoteza uwezo wa kusikia, KIKAPU, kunukuu matamshi, manukuu"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"utofautishaji wa rangi"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"mota, kipanya"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"visaidizi vya kusikia, tatizo la kusikia, kupoteza uwezo wa kusikia, vifaa vinavyosaidia kusikia vinavyopachikwa ndani ya sikio, vifaa vya kukuza sauti, vichakataji sauti"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"ulemavu wa misuli, kipanya, kipanya cha nje, kipanya cha kichwani, kipanya maalum, kiti cha magurudumu, usukani"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"visaidizi vya kusikia, tatizo la kusikia, kupoteza uwezo wa kusikia, vifaa vinavyosaidia kusikia vinavyopachikwa ndani ya sikio, vifaa vya kukuza sauti, vichakataji sauti, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"tatizo la kusikia, kupoteza uwezo wa kusikia, manukuu, mashine ya chapa, TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"vitufe vitatu"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"umahiri wa kutumia vidole, ulemavu wa misuli, ukongwe, yabisi-kavu, rsi, kiharusi, kutetema, kuathirika kwa mfumo wa neva, kupooza ubongo, kutetemeka, kuumia misuli"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"kuchelewa, umahiri wa kutumia vidole, ukongwe"</string>
     <string name="print_settings" msgid="8519810615863882491">"Kuchapisha"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Imezimwa"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Huduma 1 ya kuchapisha imewashwa}other{Huduma # za kuchapisha zimewashwa}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Angalia programu zinazotumia betri zaidi"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Hali ya kuchaji imeboreshwa ili kulinda betri yako"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Ili kuongeza muda wa matumizi ya betri yako, hali ya kuchaji imeboreshwa"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Hali ya kuchaji imeboreshwa ili kulinda betri yako"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Ili kuongeza muda wa matumizi ya betri yako, hali ya kuchaji imeboreshwa kifaa kikiwa kimepachikwa"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Hali ya kuchaji imeboreshwa ili kulinda betri yako"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Ili kuongeza muda wa matumizi ya betri yako, hali ya kuchaji imeboreshwa kifaa kikiwa kimepachikwa"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Kuchaji hadi ijae"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Ili kulinda betri yako, hali ya kuchaji itaboreshwa wakati kompyuta kibao yako imepachikwa"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Pata maelezo zaidi kuhusu kusitisha kuchaji"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Endelea kuchaji"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inajumuisha shughuli za chinichini zinazotumia nishati nyingi"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ondoa"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Ghairi"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Chaji hadi ijae"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Kifuasi cha kuchaji kina hitilafu"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Pata maelezo zaidi kuhusu adapta ya kuchaji isiyooana"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Kidhibiti cha Betri"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Dhibiti programu kiotomatiki"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"sasa"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Chati ya matumizi ya betri"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Chati ya matumizi ya betri ya kila siku"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Chati ya matumizi ya betri ya kila saa"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Asilimia ya chaji ya betri kuanzia <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> hadi <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Matumizi ya betri tangu ilipochajiwa mara ya mwisho"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Matumizi ya betri kuanzia <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Muda wa kutumia kifaa tangu kilipochajiwa mara ya mwisho"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Ishara ya simu ya dharura"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Weka tabia wakati simu ya dharura imepigwa"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Hifadhi nakala"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Imewashwa"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Imezimwa"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Hifadhi nakala na uzirejeshe"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Data za kibinafsi"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Hifadhi nakala ya data yangu"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Jina"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Aina"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Anwani ya seva"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Usimbaji fiche wa PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Siri ya L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Kitambulizi cha IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Ufunguo wa IPSec ulioshirikiwa mapema"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Cheti cha mtumiaji cha IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Cheti cha IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Cheti cha seva cha IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Onyesha chaguo za kina"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Vikoa vya utafutaji DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Seva ya DNS (mfano 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Njia za usambazaji (mfano 10.0.0.0 / 8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Jina la mtumiaji"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Nenosiri"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Hifadhi maelezo ya akaunti"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(haijatumika)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(usithibitishe seva)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(imepokewa kutoka kwa seva)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Aina hii ya VPN haiwezi kuwa imeunganishwa kila mara"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Hali ya VPN iliyowashwa kila mara inatumia anwani za seva za tarakimu pekee"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Ni lazima ubainishe seva ya DNS katika hali ya VPN iliyowashwa kila mara"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Ni lazima anwani za seva za DNS ziwe tarakimu katika hali ya VPN iliyowashwa kila mara"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Maelezo uliyoweka hayatumiki katika hali ya VPN iliyowashwa kila mara"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Ghairi"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Ondoa"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Zuia miunganisho isiyotumia VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Je, unahitaji muunganisho wa VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Si salama. Sasisha utumie VPN toleo la IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Imeshindwa kuwasha VPN isiyotumika."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Chagua wasifu wa VPN ambapo utakuwa umeunganishwa kila mara. Shughuli kwenye mtandao zitaruhusiwa tu wakati umeunganishwa kwenye VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Hamna"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Kila mara VPN iliyowashwa inahitaji anwani ya Itifaki Wavuti za seva na DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Tahadhari za AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Pokea taarifa kuhusu utekaji watoto nyara"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Rudia"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Washa Kidhibiti cha Simu"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Ruhusu huduma hii isimamie jinsi simu zako zinavyopigwa."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Kidhibiti cha Simu"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Arifa za dharura kupitia vifaa visivyotumia waya"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Kampuni zinazotoa huduma za mitandao"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Majina ya milango ya mtandao"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Pochi"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"lipa, gusa, malipo"</string>
     <string name="keywords_backup" msgid="707735920706667685">"hifadhi rudufu, hifadhi nakala"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ishara"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"uso, fungua, thibitisha, ingia katika akaunti"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"uso, kufungua, uthibitishaji, kuingia katika akaunti, alama ya kidole, bayometriki"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, toleo la prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Washa sauti"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Manukuu Papo Hapo"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Wekea maudhui manukuu kiotomatiki"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Spika za simu"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Spika za kishikwambi"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Spika za kifaa"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Vipokea sauti vya kichwani vinavyotumia waya"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Sauti kutoka kwenye maudhui yanayooana huwa murua zaidi"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Imezimwa"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ungependa skrini yako iliyofungwa ionyeshe nini?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Mazungumzo ya hivi majuzi yameondolewa"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Mazungumzo yameondolewa"</string>
     <string name="clear" msgid="5092178335409471100">"Futa"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Futa gumzo la <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Mazungumzo yenye kipaumbele na yaliyobadilishwa yataonekana hapa"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Mazungumzo utakayotia alama kuwa kipaumbele au yale utakayofanyia mabadiliko mengine yoyote, yataonekana hapa. \n\nIli ubadilishe mipangilio ya mazungumzo: \nTelezesha kidole chini kutoka sehemu ya juu ya skrini ili ufungue menyu inayovutwa chini, kisha uguse na ushikilie mazungumzo."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Punguza"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Kimezimwa"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Kubandika programu"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Huduma ya kubandika programu hukuruhusu kuendelea kuonyesha programu ya sasa hadi utakapoibandua. Kipengele hiki kinaweza kutumika, kwa mfano, kumruhusu rafiki unayemwamini kucheza mchezo mahususi."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Wakati programu imebandikwa, inaweza kufungua programu zingine na kufikia data binafsi. \n\nIli utumie kipengele cha kubandika programu: 	\n1. Washa kipengele cha kubandika programu 	\n2. Fungua Muhtasari 	\n3. Gusa aikoni ya programu katika sehemu ya juu ya skrini, kisha uguse Bandika"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Wakati programu imebandikwa, inaweza kufungua programu zingine na kufikia data binafsi. \n\nIkiwa unataka kushiriki kwa usalama kifaa chako na mtu, jaribu kutumia mtumiaji mgeni badala yake. \n\nIli utumie huduma ya kubandika programu: 	\n1. Washa huduma ya kubandika programu	\n2. Fungua Muhtasari 	\n3. Gusa aikoni ya programu katika sehemu ya juu ya skrini, kisha uguse Bandika"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Ukibandika programu, inaweza kufungua programu zingine na huenda ikafikia data binafsi. \n\nIli utumie kipengele cha kubandika programu: 	\n{0,number,integer}. Washa kipengele cha kubandika programu 	\n{1,number,integer}. Fungua Muhtasari 	\n{2,number,integer}. Gusa aikoni ya programu kwenye sehemu ya juu ya skrini, kisha uguse Bandika"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Ukibandika programu, inaweza kufungua programu zingine na huenda ikafikia data binafsi. \n\nKama ungependa kushiriki kifaa chako na mtu mwingine kwa njia salama, jaribu kutumia wasifu wa mgeni badala yake. \n\nIli utumie kipengele cha kubandika programu: 	\n{0,number,integer}. Washa kipengele cha kubandika programu 	\n{1,number,integer}. Fungua Muhtasari 	\n{2,number,integer}. Gusa aikoni ya programu kwenye sehemu ya juu ya skrini, kisha uguse Bandika"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Wakati programu imebandikwa: \n\n• Data binafsi inaweza kufikiwa \n (kama vile maudhui ya barua pepe na anwani) \n•Programu iliyobandikwa inaweza kufungua programu zingine \n\nTumia huduma ya kubandika programu na watu unaowaamini pekee."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Omba mchoro wa kufungua kabla hujabandua"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Itisha PIN kabla hujabandua"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Mipangilio ya programu zisizotumika"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Simamisha shughuli kwenye programu ikiwa haitumiki"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Ondoa ruhusa, futa faili za muda na usitishe arifa"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Dhibiti programu iwapo haitumiki"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Ondoa ruhusa, futa faili za muda, komesha arifa na uweke programu kwenye kumbukumbu"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Programu Zote"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Programu zilizosakinishwa"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Programu zinazofunguka papo hapo"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Haijatumika"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Hifadhi iliyotumiwa na programu"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Programu 1 imetumia hifadhi katika {time} zilizopita}other{Programu # imetumia hifadhi katika {time} zilizopita}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Washa utoaji maelezo kuhusu matumizi ya hifadhi"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Utoaji maelezo kuhusu matumizi ya hifadhi unahitaji nyenzo za ziada za mfumo."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Kipengele cha utoaji maelezo kuhusu matumizi ya hifadhi kimezimwa"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Masafa"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Upeo wa matumizi"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Hakuna data iliyotumika"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Kuonyeshwa juu ya programu zingine"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Programu ionekane juu ya zingine"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Ruhusu programu hii ionekane juu ya programu zingine unazotumia. Programu hii itaweza kuona unapogusa au kubadilisha kinachoonyeshwa kwenye skrini."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Badilisha tokeo la maudhui"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Ruhusu programu ibadilishe tokeo la maudhui"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Ruhusu programu hii ichague kifaa kilichounganishwa kinachopaswa kucheza maudhui ya sauti au video kutoka kwenye programu nyingine. Ukiiruhusu, programu hii inaweza kufikia orodha ya vifaa vinavyopatikana kama vile vipokea sauti vya kichwani na spika na ichague kifaa cha kutoa maudhui kitakachotumia kutiririsha au kutuma maudhui ya sauti au video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Kufikia faili zote"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Boresha hatua ya kuwezesha sauti"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Kifaa hiki hutumia umahiri wa faragha kuboresha muundo wa hatua ya kuwezesha sauti. Programu zinaweza kupokea muhtasari wa taarifa zilizojumlishwa kwa watumiaji wengi ili kudumisha faragha huku ikiboresha muundo kwa kila mtu.\n\n"<a href="">"Maelezo zaidi kuhusu umahiri wa faragha"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Onyo la matumizi ya data: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Kikomo cha data: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Onyo la matumizi ya data: <xliff:g id="ID_1">^1</xliff:g> / Kikomo cha data: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Huenda hesabu ya data ya mtoa huduma ikawa tofauti na ya kifaa chako"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Haijumuishi data inayotumiwa na mitandao ya mtoa huduma"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> zimetumika"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Weka onyo la matumizi ya data"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Imesasishwa <xliff:g id="ID_1">^2</xliff:g> zilizopita"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Imesasishwa na <xliff:g id="ID_1">^1</xliff:g> sasa hivi"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Imesasishwa sasa hivi"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Angalia mpango wa data"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Angalia maelezo"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Kiokoa Data"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Data bila kipimo"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Hitilafu ya matumizi ya betri"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Vigae vya msanidi programu vya mipangilio ya haraka"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Zima kuisha kwa muda wa uidhinishaji wa adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Zima ubatilishaji wa kiotomatiki wa uidhinishaji wa adb wa mifumo ambayo haijaunganishwa katika kipindi chaguomsingi (siku saba) au muda uliowekwa na mtumiaji (angalau siku moja)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Ufuatiliaji wa Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Vitambuzi Vimezimwa"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Mipangilio ya wasifu wa kazini"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Tafuta anwani za saraka ya kazini katika programu za binafsi"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Huduma ya kujaza kiotomatiki"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Huduma chaguomsingi ya kujaza kiotomatiki"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Manenosiri"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Manenosiri, funguo za siri na huduma za data"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Watoa huduma wa ziada"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{Nenosiri #}other{Manenosiri #}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"otomatiki, jaza, kujaza kiotomatiki, nenosiri"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Manenosiri, funguo za siri na huduma za data"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Ungependa kuzima huduma zote?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Manenosiri, funguo za siri na maelezo mengine yaliyohifadhiwa hayatapatikana ili kujazwa kiotomatiki unapoingia katika akaunti"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Badili huduma unayopendelea kuwa &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_enable_confirmation_message_title" msgid="1037501792652277829">"Ungependa kutumia %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Unaweza kuwasha huduma 5 pekee"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Zima angalau huduma 1 ili uweze kuongeza nyingine"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s hutumia maudhui kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Manenosiri, funguo za siri na kikomo cha huduma za data"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Unaweza kutumia hadi manenosiri 5, funguo za siri na huduma za data zinazotumika kwa wakati mmoja. Zima huduma ili uweke zaidi."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Manenosiri, funguo za siri na kikomo cha huduma za data"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Unaweza kutumia hadi manenosiri 5, funguo za siri na huduma za data zinazotumika kwa wakati mmoja. Zima huduma ili uweke zaidi."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Zima"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Kujaza Kiotomatiki"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Kiwango cha kumbukumbu"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Mabadiliko ya uoanifu wa programu yanaweza tu kubadilishwa kwa ajili ya programu zinazoweza kutatuliwa. Sakinisha programu inayoweza kutatuliwa na ujaribu tena."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Inategemea mipangilio mingine"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Akaunti"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Akaunti %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Jina la kifaa"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Maelezo ya msingi"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Sheria na kanuni"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Ruhusu programu hii ifunguke wakati tagi ya NFC inachanganuliwa.\nIkiwa ruhusa hii imewashwa, programu itapatikana kama chaguo wakati wowote tagi inapotambuliwa."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Cheza muziki kwenye"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Cheza <xliff:g id="LABEL">%s</xliff:g> kwenye"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Itaendelea kucheza sauti"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Kifaa hiki"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Haipatikani wakati unaongea kwa simu"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Pokea simu kwenye"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Zima sauti"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Ili uwashe, kwanza badilisha \"Kitufe cha kuwasha/kuzima cha kubonyeza na kushikilia\" kiwe menyu ya kuzima/kuwasha."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Maelezo ya mtandao"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Jina la kifaa chako litaonekana kwa programu zilizo kwenye simu yako. Pia, watu wengine wanaweza kuliona unapounganisha kwenye vifaa vya Bluetooth, unapounganisha kwenye mtandao wa Wi-Fi au kuweka mipangilio ya mtandao pepe wa Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Vifaa"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Chagua mtandao"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Haijaunganishwa"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Jina"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Rangi (inatumiwa na programu zinazooana)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Hifadhi"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Tumia SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Tumia SIM hii"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Imezimwa"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Ili uzime SIM hii, itoe"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Gusa ili uanze kutumia <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Futa data yote kwenye SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Aina ya mtandao inayopendelewa"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Badilisha hali ya utendaji wa mtandao"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Aina ya mtandao inayopendelewa"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Wasiliana na mtoa huduma za mtandao kwa maelezo kuhusu bei."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Programu zinavyotumia data"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Hali ya Mtandao Isiyo sahihi <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Puuza"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Majina ya Milango ya Mtandao"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Haipatikani inapounganishwa kwenye <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Ungependa kubadili utumie <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Ungependa kubadili ili utumie SIM kadi?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Ungependa kutumia <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Unaweza kutumia SIM moja tu kwa wakati mmoja.\n\nKubadili na kutumia <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> hakutaghairi huduma yako ya <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Unaweza kutumia eSIM 1 tu kwa wakati mmoja.\n\nHatua ya kubadili ili utumie <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>haitaghairi huduma yako ya <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Unaweza kutumia SIM moja tu kwa wakati mmoja.\n\nKubadili SIM hakutaghairi huduma yako ya <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Unaweza kutumia SIM mbili kwa wakati mmoja. Ili utumie <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, zima SIM nyingine."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Badili utumie <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Zima <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Hapana"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Ghairi"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Badilisha"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Zima"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Imeshindwa kuanza kutumia SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Jaribu kuwasha SIM tena. Iwapo tatizo litaendelea, zima kisha uwashe kifaa chako."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Weka mipangilio ya SIM yako"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Weka mapendeleo yako ya mtandao wa simu ili utumie zaidi ya SIM moja kwenye kifaa hiki"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Weka lebo za SIM zako"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Utaona lebo hizi unapopiga simu, unapotuma SMS, unapotumia data na katika Mipangilio"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Lebo ya SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Lebo"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Chagua SIM unazotaka kutumia"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Unaweza kutumia SIM mbili kwa wakati mmoja"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Weka SIM zako za msingi"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Chagua SIM ambazo ungependa kutumia kwa chaguomsingi kupiga simu, kutuma SMS na kwa muunganisho wa data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"SIM zako za msingi"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Simu"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Ujumbe"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Kubadilisha muunganisho wa data kiotomatiki"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Tumia muunganisho wa data wa SIM yoyote kulingana na ufikiaji na upatikanaji"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data pekee"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Weka mipangilio"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Endelea"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mtandao wa simu"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Namba ya simu"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Lebo na rangi ya SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Kuwasha mtandao"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Inabadilisha mtoa huduma"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Unatumia <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Ili utumie data ya mtandao wa simu, vipengele vya simu na SMS baadaye, nenda kwenye mipangilio ya mtandao wako"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Ungependa kufuta eSIM hii?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Kufuta data yote kwenye SIM hii huondoa huduma ya <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> kwenye kifaa hiki.\n\nHuduma ya <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> haitaghairiwa."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Futa"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Inafuta data yote kwenye SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Imeshindwa kufuta data yote kwenye SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Hitilafu imetokea wakati wa kufuta data kwenye SIM.\n\nZima kisha uwashe kifaa chako na ujaribu tena."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Unganisha kwenye kifaa"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> yako inataka kutumia mtandao wa muda wa Wi‑Fi kuunganisha kwenye kifaa chako"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Hakuna vifaa vilivyopatikana. Hakikisha kuwa umewasha vifaa na vinaweza kuunganishwa."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Simu za dharura"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Mtoa huduma wako hakuruhusu kupiga simu za dharura kupitia Wi-Fi.\nKifaa hubadili kiotomatiki na kutumia mtandao wa simu ya mkononi ili kupiga simu ya dharura.\nUnaweza kupiga simu za dharura katika maeneo yaliyo na mtandao wa simu ya mkononi pekee."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Tumia Wi-Fi kupiga na kupokea simu ili kuboresha hali ya mawasiliano"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Kupiga simu kupitia mtandao mbadala"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Ikiwa <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> haipatikani au inatumia mitandao ya ng\'ambo, tumia SIM yako ya data ya mtandao wa simu kwa ajili ya simu za <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"kupiga simu kupitia mtandao mbadala"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Ujumbe wa MMS unaoingia"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Huwezi kutuma ujumbe wa MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Gusa ili uruhusu ujumbe wa MMS kwenye <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> wakati data ya mtandao wa simu imezimwa"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Maelezo yako ya sera ya kazini"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Mipangilio inayodhibitiwa na msimamizi wako wa TEHAMA"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Kuwasha ukitumia ukurasa wa K 16"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Kuwasha kifaa ukitumia kiini cha ukurasa wa K 16"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Ungependa kuwasha tena ukitumia kiini kinachooana na kurasa za KB 16?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"TAHADHARI: Huenda baadhi ya programu hazioani na hali hii. Kifaa kitajiwasha tena baada ya uthibitishaji."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Ungependa kuwasha tena ukitumia kiini kinachooana na kurasa za KB 4?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Kifaa kitajiwasha tena baada ya uthibitishaji."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Imeshindwa kusasisha kiini kiwe kinachooana na kurasa za KB 16."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Kutekeleza mabadiliko"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Kidhibiti cha ripoti ya hitilafu"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Hubaini programu inayodhibiti njia ya mkato ya Ripoti ya Hitilafu kwenye kifaa chako."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Binafsi"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Ili uendelee kucheza kwa haraka, kicheza faili za sauti na video hubaki kikiwa kimefunguliwa kila wakati katika Mipangilio ya Haraka"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Onyesha maudhui kwenye skrini iliyofungwa"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Ili uendelee kucheza maudhui kwa haraka, kicheza faili za sauti na video hubaki kikiwa kimefunguliwa kwenye skrini iliyofungwa"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Onyesha mapendekezo ya maudhui"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Onyesha mapendekezo ya maudhui ya programu ya Mratibu"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Kulingana na shughuli zako"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ficha kichezaji"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Onyesha kichezaji"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Inatumika"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Haitumiki"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Chaguomsingi ya <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"simu"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Sauti kutoka kwenye maudhui yanayooana huwa murua zaidi"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Ufuatiliaji wa kichwa"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Sauti hubadilika kadiri unavyosogeza kichwa chako ili isikike kuwa ya asili zaidi"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sawazisha ruhusa"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Ipe <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ruhusa zile zile za programu ulizoruhusu kwenye <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Sawazisha ruhusa kutoka kwenye simu"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Ipe saa yako ruhusa za programu ambazo umeruhusu kwenye simu hii"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Aina ya Kifaa cha Sauti"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Haijulikani"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Spika"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Wastani"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Juu"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Programu hii inaweza kufunguliwa katika dirisha 1 pekee"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Kimewashwa"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Kimezimwa"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Kimezimwa"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Imezimwa"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Imewashwa"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Imezimwa"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Imewashwa"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Imezimwa"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Hugeuza skrini nyeupe kuwa nyeusi na skrini nyeusi kuwa nyeupe"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Vuta karibu kwenye skrini"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Imezimwa"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Imezimwa"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Imewashwa"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Imezimwa"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Imewashwa"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Imekamilisha kuweka nenosiri"</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..62732a4 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 நிமிடத்திற்குப் பிறகு"</item>
     <item msgid="1574040255478150028">"5 நிமிடங்களுக்குப் பிறகு"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 3c92601..c86821f 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"நிர்வாகப் பயனர்கள் மட்டுமே டெவெலப்பர் அமைப்புகளை அணுக முடியும்."</string>
     <string name="header_category_system" msgid="1665516346845259058">"சிஸ்டம்"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"சேவையில் உள்ளது"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"சேவையில் இல்லை"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"தொடர மேல்நோக்கி ஸ்வைப் செய்யுங்கள்"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"மொபைலை மடக்கி முன்புற டிஸ்பிளேவில் மேல்நோக்கி ஸ்வைப் செய்து ஆப்ஸைத் தொடர்ந்து பயன்படுத்தலாம் அல்லது திரை பூட்டப்படும் வரை சில வினாடிகள் காத்திருக்கலாம்"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"தொடர்புடையவை"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ரிங்டோன் மற்றும் அலாரங்கள்"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"அழைப்புகளின்போதான ஆடியோ"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"மீடியா"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"அறிவிப்பு &amp; பிற சிஸ்டம் ஒலிகள்"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"மீடியா மற்றும் சிஸ்டம் ஒலிகள்"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"அறிவிப்புகள்"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"இயல்பாக, ஆடியோ அவுட்புட் தனித்தனி ஆப்ஸால் தீர்மானிக்கப்படுகிறது"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"பெயரிடப்படாத புளூடூத் சாதனம்"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"தேடுகிறது"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"புளூடூத் ஆன் செய்யப்பட்டது"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"அனைத்தும் காட்டு"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"அனைத்தையும் காட்டு"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"ஸ்டைலஸ்"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"டெயில் பட்டனை அழுத்துதல்"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (பணிக் கணக்கு)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ஆடியோ ஸ்ட்ரீமுடன் இணைத்தல்"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"அருகிலுள்ள ஆடியோ ஸ்ட்ரீம்கள்"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ஆடியோ ஸ்ட்ரீம்கள்"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR குறியீட்டைப் பயன்படுத்தி ஆடியோ ஸ்ட்ரீமுடன் இணைக்கலாம்"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"அருகில் ஆடியோ ஸ்ட்ரீம்கள் எதுவுமில்லை."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ஒவ்வொரு ஆப்ஸுக்கும் மொழியைத் தேர்ந்தெடுக்க ஆப்ஸ் மொழி அமைப்புகளுக்குச் செல்லுங்கள்."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ஆப்ஸ் மொழிகள் குறித்து மேலும் அறிந்துகொள்ளுங்கள்"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"சிஸ்டம் மொழியை %s என்பதாக மாற்றவா?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"விருப்பமான மொழிகளில் %s ஐச் சேர்க்கவா?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"நீங்கள் இந்த மொழியையும் பயன்படுத்த விரும்புகிறீர்கள் என்பதை ஆப்ஸுக்கும் இணையதளங்களுக்கும் இது தெரியப்படுத்தும்."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"உங்கள் சாதன அமைப்புகளும் பிராந்தியத்திற்கேற்ற விருப்பங்களும் மாறும்."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"மாற்று"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s கிடைக்கவில்லை"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"சனி"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"பிராந்தியத்திற்கேற்ற விருப்பங்களை ஓர் ஆப்ஸ் ஆதரிக்கவில்லை எனில், அதன் இயல்புநிலை மொழி அமைப்புகளை அந்த ஆப்ஸ் பயன்படுத்தும்."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"மொழி விருப்பத்தேர்வுகள் குறித்து மேலும் அறிக."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"கூடுதல் விருப்பத்தேர்வுகள்"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"குறிப்பிடுவதற்கான வார்த்தைகள்"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"உங்களை எப்படிக் குறிப்பிட வேண்டும் என்பதை அமைக்கலாம்"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"ஆப்ஸ் உங்களை எப்படிக் குறிப்பிட வேண்டும் என்பதைப் பிரத்தியேகமாக்க, உங்களைக் குறிப்பிடுவதற்கான வார்த்தைகளை அவை பயன்படுத்தலாம்."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"குறிப்பிடப்படவில்லை"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"பெண்"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"ஆண்"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"நடுநிலை"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{தேர்ந்தெடுக்கப்பட்ட மொழியை அகற்றவா?}other{தேர்ந்தெடுக்கப்பட்ட மொழிகளை அகற்றவா?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"உரை மற்றொரு மொழியில் காட்டப்படும்."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"எல்லா மொழிகளையும் அகற்ற முடியாது"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"இருப்பிடம்"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"இருப்பிடத்தைப் பயன்படுத்து"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ஆஃப்"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ஆன் - # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளது}other{ஆன் - # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளன}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{ஆன் / # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளது}other{ஆன் / # ஆப்ஸ் இருப்பிடத்திற்கான அணுகலைக் கொண்டுள்ளன}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"ஏற்றுகிறது…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"இணைக்கப்பட்டுள்ள சாதனங்களின் தூரத்தை \'அருகிலுள்ள சாதனங்களுக்கான\' அனுமதியைப் பெற்ற ஆப்ஸால் தீர்மானிக்க முடியும்."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ஆப்ஸுக்கும் சேவைகளுக்கும் இருப்பிட அணுகல் முடக்கப்பட்டுள்ளது. எனினும் அவசர உதவி எண்ணை அழைத்தாலோ அதற்கு மெசேஜ் அனுப்பினாலோ, சாதனத்தின் இருப்பிடம் அவசரக் காலத்தில் உதவிபுரிவோருக்கு அனுப்பப்படக்கூடும்."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"இருப்பிட அமைப்புகள் குறித்து மேலும் அறிக."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"இருப்பிட அமைப்புகள் குறித்து மேலும் அறிக"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"இருப்பிட அணுகலை மாற்ற, அமைப்புகள் &gt; பாதுக்காப்பு &amp; தனியுரிமை &gt; தனியுரிமைக் கட்டுப்பாடுகள் என்பதற்குச் செல்க"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"சிறந்த முடிவுகளுக்கு, Made for Google சான்றளிக்கப்பட்ட ஸ்கிரீன் கார்டைப் பயன்படுத்துங்கள். உங்கள் பிள்ளையின் கைரேகை மற்ற ஸ்கிரீன் கார்டுகளுடன் பொருந்தாமல் போகக்கூடும்."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"வாட்ச் அன்லாக்"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"\'முகம் காட்டித் திறத்தல்\' அம்சத்தையும் \'கைரேகை அன்லாக்\' அம்சத்தையும் அமைத்ததும், நீங்கள் முகமூடி அணிந்திருந்தாலோ இருட்டான இடத்தில் இருந்தாலோ உங்கள் கைரேகையைப் பயன்படுத்துமாறு மொபைல் கேட்கும்.\n\nஉங்கள் முகமோ கைரேகையோ அங்கீகரிக்கப்படாதபோது வாட்ச்சைப் பயன்படுத்தி மொபைலை அன்லாக் செய்யலாம்."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"உங்கள் கைரேகை அங்கீகரிக்கப்படாதபோது வாட்ச்சைப் பயன்படுத்தி அன்லாக் செய்யலாம்."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"உங்கள் முகம் அங்கீகரிக்கப்படாதபோது வாட்ச்சைப் பயன்படுத்தி அன்லாக் செய்யலாம்."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"\'முகம் காட்டித் திறத்தல்\' அம்சத்தையும் \'கைரேகை அன்லாக்\' அம்சத்தையும் அமைக்கும்போது, நீங்கள் மாஸ்க் அணிந்திருந்தாலோ இருட்டான இடத்தில் இருந்தாலோ உங்கள் கைரேகையைப் பயன்படுத்துமாறு மொபைல் கேட்கும்.\n\nஉங்கள் மொபைலை அன்லாக் செய்ய வாட்ச் அன்லாக் அம்சம் மற்றொரு எளிதான வழியாகும். உதாரணத்திற்கு, உங்கள் விரல்கள் ஈரமாக இருக்கும்போது அல்லது முகத்தை அடையாளங்காண முடியாதபோது."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"உங்கள் மொபைலை அன்லாக் செய்ய வாட்ச் அன்லாக் அம்சம் மற்றொரு எளிதான வழியாகும். உதாரணத்திற்கு, உங்கள் கைரேகையை அடையாளங்காண முடியாதபோது."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"உங்கள் மொபைலை அன்லாக் செய்ய வாட்ச் அன்லாக் அம்சம் மற்றொரு எளிதான வழியாகும். உதாரணத்திற்கு, உங்கள் முகத்தை அடையாளங்காண முடியாதபோது."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"இதற்கு கைரேகை/வாட்ச்சைப் பயன்படுத்துங்கள்:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"இதற்கு முகம்/வாட்ச்சைப் பயன்படுத்துங்கள்:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"இதற்கு முகம், கைரேகை அல்லது வாட்ச்சைப் பயன்படுத்துங்கள்:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"முகம் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"முகம், கைரேகை மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"முகம், கைரேகைகள் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"இது எப்படிச் செயல்படுகிறது?"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"கையில் அணிந்திருக்கும் வாட்ச் அன்லாக் செய்யப்பட்டு, மொபைலின் வரம்பிற்குள் இருக்க வேண்டும். கையில் வாட்ச் அணிந்திருக்கும்போது மீண்டும் அதை அன்லாக் செய்ய வேண்டியதில்லை."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"இந்த மொபைல் அன்லாக் செய்யப்பட்டால் உங்கள் வாட்ச்சில் அறிவிப்பைப் பெறுவீர்கள். தற்செயலாக அது அன்லாக் செய்யப்பட்டிருந்தால் மீண்டும் மொபைலைப் பூட்ட அறிவிப்பைத் தட்டவும்."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"முழுமையான கட்டுப்பாட்டைப் பெற்றுள்ளீர்கள்"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"எப்போது வேண்டுமானாலும் அமைப்புகளுக்குச் சென்று வாட்ச் அன்லாக்கிலிருந்து உங்கள் வாட்ச்சை அகற்றலாம்"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"அறிவிப்பைத் தட்டுங்கள்"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"பூட்டுத் திரையை மேல்நோக்கி ஸ்வைப் செய்யுங்கள்"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"உங்கள் வாட்ச்சைத் தேர்வுசெய்யுங்கள்"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"கிடைக்கும் வாட்ச்சுகள்"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ரத்துசெய்"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"உறுதிசெய்"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"அமைக்கப்பட்டது!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"தற்போது, பூட்டுத் திரையில் மேலே ஸ்வைப் செய்தோ அறிவிப்பைத் தட்டுவதன் மூலமோ இந்த மொபைலை அன்லாக் செய்து உங்கள் வாட்ச்சைப் பயன்படுத்தலாம்"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"முடிந்தது"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"வாட்ச் அன்லாக்"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"பூட்டுத் திரையில் மேலே ஸ்வைப் செய்தோ அறிவிப்பைத் தட்டுவதன் மூலமோ இந்த மொபைலை அன்லாக் செய்து உங்கள் வாட்ச்சைப் பயன்படுத்தலாம்"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"வாட்ச் அன்லாக் அம்சத்தைப் பயன்படுத்த, கையில் அணிந்திருக்கும் வாட்ச் அன்லாக் செய்யப்பட்ட நிலையிலும் இணைக்கும் வரம்பிற்குள்ளும் இந்த மொபைலுடன் இணைக்கப்பட்டும் இருக்க வேண்டும். இணைப்பில் இடையூறு ஏற்பட்டால் வாட்ச் அன்லாக் அம்சத்தைப் பயன்படுத்துவதற்கு முன்பு மொபைலை அன்லாக் செய்ய வேண்டும்.\n\nநினைவில் கொள்ளுங்கள்:\nஒரு நேரத்தில் ஒரு வாட்ச்சை மட்டுமே அமைக்க முடியும். மற்றொரு வாட்ச்சைச் சேர்க்க, தற்போதுள்ள வாட்ச்சை முதலில் அகற்றுங்கள்."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"வாட்ச் அன்லாக் அம்சம் குறித்து மேலும் அறிக"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"வாட்ச்சைச் சேர்"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"வாட்ச்சை அகற்றும்"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"கைரேகை &amp; முகம் காட்டித் திறத்தல்"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"பணிக்கான முகம் &amp; கைரேகை அன்லாக்"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"அமைவு தேவை"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"பாதுகாப்பு"</string>
     <string name="privacy_header" msgid="5526002421324257007">"தனியுரிமை"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"பணிக் கணக்கு"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"தனிப்பட்ட சேமிப்பிடம்"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"தனிப்பட்ட ஆப்ஸை லாக் செய்தும் மறைத்தும் வைக்கலாம்"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"தனிப்பட்ட ஆப்ஸை நீங்கள் மறைக்கக்கூடிய அல்லது பூட்டக்கூடிய தனி இடத்தில் வைக்கலாம்"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"தனிப்பட்ட சேமிப்பிடப் பூட்டு"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"உங்கள் சாதனத்தை அன்லாக் செய்வதுபோலவே தனிப்பட்ட சேமிப்பிடத்தை அன்லாக் செய்யலாம் அல்லது வேறு பூட்டைத் தேர்ந்தெடுக்கலாம்"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"சாதனத் திரைப் பூட்டைப் பயன்படுத்துங்கள்"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"முகம் &amp; கைரேகை மூலம் அன்லாக் செய்தல்"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"கைரேகை அன்லாக்"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"முகம் காட்டித் திறத்தல்"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"அமைக்க தட்டுங்கள்"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"தனிப்பட்ட இடத்திற்கான கைரேகை அன்லாக்"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"தனிப்பட்ட இடத்திற்கான முகம் காட்டித் திறத்தல்"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"அன்லாக் செய்வதற்கான வழிகள்"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"சாதனத் திரைப் பூட்டைப் போன்றது"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"தனிப்பட்ட இடத்திற்கான புது பூட்டைத் தேர்வுசெய்யவா?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"தானாகவே பூட்டுதல்"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ரகசிய இடத்தைத் தானாகவே பூட்டுதல்"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"உங்கள் சாதனத்தைக் குறிப்பிட்ட காலத்திற்கு நீங்கள் பயன்படுத்தவில்லை எனில் உங்கள் ரகசிய இடத்தைத் தானாகவே பூட்டலாம்"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"சாதனம் பூட்டப்படும் ஒவ்வொரு முறையும்"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 நிமிடச் செயலற்ற நிலைக்குப் பின்பு"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ஒருபோதுமில்லை"</string>
+    <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_deleted" msgid="7825768516955610897">"தனிப்பட்ட சேமிப்பிடம் நீக்கப்பட்டது"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"தனிப்பட்ட சேமிப்பிடத்தை நீக்க முடியவில்லை"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ரகசிய இடம் அன்லாக் செய்யப்பட்டது"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"திரைப் பூட்டை அமையுங்கள்"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"உங்கள் தனிப்பட்ட இடத்தைப் பயன்படுத்த, இந்தச் சாதனத்தில் திரைப் பூட்டை அமையுங்கள்"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"திரைப் பூட்டை அமை"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ரத்துசெய்"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ரத்துசெய்"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"அமை"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"தனிப்பட்ட இடத்தை அமைத்தல்"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"தனிப்பட்ட ஆப்ஸை நீங்கள் மறைக்கக்கூடிய அல்லது பூட்டக்கூடிய தனி இடத்தில் வைக்கலாம்"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"இது செயல்படும் விதம்"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"ஆப்ஸ் பட்டியலின் கீழ்ப்பகுதியில் இருந்து உங்கள் தனிப்பட்ட இடத்தை அணுகலாம்"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"தனிப்பட்ட இடத்திலுள்ள ஆப்ஸ் பூட்டால் பாதுகாக்கப்படுகின்றன"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"தனிப்பட்ட இடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸின் அறிவிப்புகள் மறைக்கப்படும்"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"உங்கள் தனிப்பட்ட இடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸ் எதுவும் அனுமதி நிர்வாகம், தனியுரிமை டாஷ்போர்டு மற்றும் பிற அமைப்புகளில் காட்டப்படாது.\n\nஉங்கள் தனிப்பட்ட இடத்தைப் புதிய சாதனத்திற்கு மாற்ற முடியாது. வேறொரு சாதனத்தில் அதைப் பயன்படுத்த விரும்பினால், வேறொரு தனிப்பட்ட இடத்தை அமைக்க வேண்டும்.\n\nஉங்கள் சாதனத்தைக் கம்ப்யூட்டருடன் இணைத்தோ தீங்கிழைக்கும் ஆப்ஸை உங்கள் சாதனத்தில் நிறுவியோ யார் வேண்டுமானாலும் உங்கள் தனிப்பட்ட இடத்தை அணுக முடியும்."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"தனிப்பட்ட இடத்தை அமைக்கிறது…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"தனிப்பட்ட இடம் பூட்டப்பட்டிருக்கும்போது அதிலுள்ள ஆப்ஸின் அறிவிப்புகள் மறைக்கப்படும்"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"தனிப்பட்ட இடத்தில் இருக்கும் ஆப்ஸிலுள்ள படங்களையோ ஃபைல்களையோ பகிர தனிப்பட்ட இடத்தை அன்லாக் செய்யுங்கள்"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"உங்கள் தனிப்பட்ட இடத்தில் ஏற்கெனவே சில ஆப்ஸ் நிறுவப்பட்டுள்ளன"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"தனிப்பட்ட இடத்தை அமைக்க முடியவில்லை"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"மீண்டும் முயல்க"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"திரைப்பூட்டால் தனிப்பட்ட இடத்தைத் திறக்க வேண்டுமா?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"உங்கள் சாதனத்தை அன்லாக் செய்வது போலவே தனிப்பட்ட இடத்தையும் அன்லாக் செய்யலாம் அல்லது வேறு பூட்டைத் தேர்வுசெய்யலாம்"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"திரைப் பூட்டைப் பயன்படுத்து"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"புதிய பூட்டைத் தேர்ந்தெடு"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"அமைத்துவிட்டீர்கள்!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"உங்கள் தனிப்பட்ட இடத்தை அணுக, ஆப்ஸ் பட்டியலுக்குச் சென்று கீழே நகர்த்துங்கள்"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"முடிந்தது"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"தனிப்பட்ட இடத்தைக் கண்டறிய கீழே நகர்த்துங்கள்"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"உங்கள் தனிப்பட்ட இடத்திற்கான பூட்டைத் தேர்வுசெய்யுங்கள்"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"உங்கள் கைரேகையைப் பயன்படுத்தி தனிப்பட்ட இடத்தை அன்லாக் செய்யலாம். பாதுகாப்பிற்காக, இதனுடன் மற்றுமொரு பூட்டையும் பயன்படுத்துங்கள்."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"தனிப்பட்ட இடத்திற்கான பின்னை அமைத்தல்"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"தனிப்பட்ட இடத்தின் கடவுச்சொல்லை அமைத்தல்"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"தனிப்பட்ட இடத்திற்கான பேட்டர்னை அமைத்தல்"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"தனிப்பட்ட சேமிப்பிடத்தைக் காட்ட (இறுதி பயனர் அனுபவம் அல்ல)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"அமைப்புகள் ஆப்ஸைத் திறக்கவும்"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"\'பாதுகாப்பு &amp; தனியுரிமை &gt; தனிப்பட்ட சேமிப்பிடம் &gt; பூட்டியிருக்கையில் தனிப்பட்ட சேமிப்பிடத்தை மறை\' என்பதைத் தட்டவும்"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"\'பூட்டியிருக்கையில் தனிப்பட்ட சேமிப்பிடத்தை மறை\' என்பதை முடக்கவும்"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googlerகளின் கவனத்திற்கு: இந்த அம்சத்தின் மேம்பாடு இன்னும் செயலில் உள்ளது"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"நீங்கள் இந்தக் கடவுச்சொல்லை வேறொரு சாதனத்திலும் உள்ளிட வேண்டியிருக்கலாம்."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ஒருங்கிணைக்கப்பட்ட தொகுப்பில் உள்ள சாதனங்களுடன் இணைப்பதை உறுதிசெய்துகொள்ளுங்கள்"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"உங்கள் தொடர்புகள் மற்றும் அழைப்புப் பதிவை அணுக அனுமதிக்கவும்"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"தொடர்புகளுக்கும் அழைப்புப் பதிவுகளுக்கும் அனுமதி அளியுங்கள்"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"அழைப்பு அறிவிப்புகளுக்கும் பலவற்றுக்கும் தகவல் பயன்படுத்தப்படும்"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> உடன் இணைக்க முடியவில்லை."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"கிடைக்கும் சாதனங்கள்"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"விமானப் பயன்முறையில்"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"பொது நெட்வொர்க்குகள் கிடைக்கும்போது தெரிவி"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"உயர்தரமான பொது நெட்வொர்க் கிடைக்கும் போது தெரிவிக்கும்"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP நெட்வொர்க்குகளை அனுமதித்தல்"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP என்பது பாதுகாப்பு குறைவான பழைய பாதுகாப்பு நெறிமுறையாகும்"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP நெட்வொர்க்குகள் பாதுகாப்பு குறைவானவை என்பதால் உங்கள் மொபைல் நிறுவனம் அவற்றை அனுமதிப்பதில்லை"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"தானாகவே வைஃபையை இயக்கு"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"உயர்தரம் எனச் சேமிக்கப்பட்ட நெட்வொர்க்குகளுக்கு அருகில் இருக்கும் போது, வைஃபை இயக்கப்படும். உதாரணமாக, உங்கள் வீட்டு நெட்வொர்க்."</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"இருப்பிடம் ஆஃப் செய்யப்பட்டுள்ளதால், கிடைக்கவில்லை. "<annotation id="link">"இருப்பிடத்தை"</annotation>" ஆன் செய்யவும்."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"வைஃபை ஸ்கேனிங் அம்சமானது வைஃபை ஆஃப் செய்யப்பட்டிருந்தாலும்கூட, எந்தநேரத்திலும் வைஃபை நெட்வொர்க்குகளைத் தேட, ஆப்ஸையும் சேவைகளையும் அனுமதிக்கும். உதாரணத்திற்கு, இருப்பிடம் சார்ந்த அம்சங்கள் மற்றும் சேவைகளை மேம்படுத்துவதற்கும் இதைப் பயன்படுத்தலாம்."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ஆன் செய்"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"வைஃபை ஸ்கேனிங் ஆன் செய்யப்பட்டது"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"பாதுகாப்பு குறைவான பழைய பாதுகாப்பு நெறிமுறையை இந்த நெட்வொர்க் பயன்படுத்துகிறது"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> தடுக்கப்பட்டுள்ளது"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"பாதுகாப்பு குறைவான WEP எனும் பழைய பாதுகாப்பு நெறிமுறையை இந்த நெட்வொர்க் பயன்படுத்துகிறது. இருப்பினும் இதனுடன் இணைக்க, WEP நெட்வொர்க்குகளை நீங்கள் அனுமதிக்கலாம்."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"பாதுகாப்பு குறைவான பழைய பாதுகாப்பு நெறிமுறையை இந்த நெட்வொர்க் பயன்படுத்துவதால் இதனுடன் இணைப்பதற்கு உங்கள் மொபைல் நிறுவனம் அனுமதிக்கவில்லை"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP ஐ அனுமதி"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"மூடு"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"மேம்பட்ட விருப்பங்கள்"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"கீழ் தோன்றும் பட்டியின் மேம்படுத்தப்பட்ட விருப்பங்கள்"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"விரி"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"வைஃபையில் தொடர்க"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"இனி ஒருபோதும் காட்டாதே"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"இணை"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"வைஃபை ஆன் செய்யப்பட்டது"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> உடன் இணைக்கப்பட்டது"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> உடன் இணைக்கிறது"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"இணைக்கிறது…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"நெட்வொர்க்குடன் இணைக்க முடியவில்லை"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"நெட்வொர்க் தொடர்பு எல்லையில் இல்லை"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"மறந்துவிடு"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"மாற்று"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"நெட்வொர்க்கை நீக்குவதில் தோல்வி"</string>
     <string name="wifi_save" msgid="2312643132472226807">"சேமி"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"நெட்வொர்க்கைச் சேமிப்பதில் தோல்வி"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ரத்துசெய்"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"வைஃபை"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"மொபைல் டேட்டா"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ஈதர்நெட்"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ சார்ஜாகிறது"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ சார்ஜாகிறது"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ஹாட்ஸ்பாட் இணைப்பு"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"இணைப்பின் வலிமை"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"சேமித்த நெட்வொர்க்குகள்"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"கடவுச்சொல் எதுவும் அமைக்கப்படவில்லை"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ஹாட்ஸ்பாட் பெயர்"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ஹாட்ஸ்பாட் கடவுச்சொல்"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP அலைவரிசை"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ஹாட்ஸ்பாட்டைத் தானாக ஆஃப் செய்"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"எந்த சாதனங்களும் இணைக்கப்படாதபோது"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"இணக்கத்தன்மையை நீட்டித்தல்"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"கேம்களுக்கான இயல்பு ஃப்ரேம் வீதத்தை முடக்குதல்"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"கேம்களுக்கான அதிகபட்ச ஃப்ரேம் வீதமாக <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz என்பதை அமைப்பதை முடக்கலாம்."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"சீரான காட்சி"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"முன்பக்கக் கேமராவைப் பயன்படுத்தி திரையை யாராவது பார்க்கிறார்களா என்பதை \'திரை மீது கவனம்\' எனும் அம்சம் அறியும். இது சாதன அளவிலேயே இயங்கும், படங்கள் சேமிக்கப்படவோ Googleளுக்கு அனுப்பப்படவோ மாட்டாது."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"\'திரை மீது கவனத்தை\' ஆன் செய்தல்"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"பார்க்கும்போது திரையை ஆனில் வைத்திருக்கும்"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"கூடுதலான திரை அணைவு நேரம் அதிக பேட்டரியைப் பயன்படுத்தும்."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"கேமரா பூட்டப்பட்டுள்ளது"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"முகம் கண்டறிதலைப் பயன்படுத்த, கேமரா அன்லாக் செய்யப்பட வேண்டும்"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"திரை மீது கவனம் அம்சத்தைப் பயன்படுத்த, கேமரா அன்லாக் செய்யப்பட வேண்டும்"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (சிம் ஸ்லாட் <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (சிம் ஸ்லாட் <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (முதன்மை)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"பார்ப்பதற்கு, சேமிக்கப்பட்ட நெட்வொர்க்கைத் தேர்வுசெய்யுங்கள்"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL பதிப்பு"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"பேட்டரி நிலை"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"சமூகம்"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"சமூக அமைப்புகள்"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"சேமி"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ரத்துசெய்"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"பெயர் புலம் வெறுமையாக இருக்கக்கூடாது."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN வெறுமையாக இருக்கக்கூடாது."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC புலத்தில் 3 இலக்கங்களாவது இருக்க வேண்டும்."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC புலம் கண்டிப்பாக 2 அல்லது 3 இலக்கங்களில் இருக்க வேண்டும்."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"%s வகை APNகளைச் சேர்க்க, தொலைத்தொடர்பு நிறுவனம் அனுமதிக்கவில்லை."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC புலம் சரியானதாக இருக்க வேண்டும்."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"இயல்புநிலை APN அமைப்புகளை மீட்டமைக்கிறது."</string>
     <string name="menu_restore" msgid="4310539620115151551">"இயல்புநிலைக்கு மீட்டமை"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"இயல்புநிலை APN அமைப்புகளை மீட்டமைப்பது முடிந்தது."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"மீட்டமை"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"புளூடூத் &amp; வைஃபை மீட்டமைக்கப்பட்டன"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMகளை அழி"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"மொபைல் சேவைத் திட்டங்கள் எவையும் இதனால் ரத்துசெய்யப்படாது. மாற்று சிம்களைப் பதிவிறக்க, உங்கள் மொபைல் நிறுவனத்தைத் தொடர்புகொள்ளவும்."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"அமைப்புகளை மீட்டமை"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"அனைத்து நெட்வொர்க் அமைப்புகளையும் மீட்டமைக்கவா? இதைச் செயல்தவிர்க்க இயலாது."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"அனைத்து நெட்வொர்க் அமைப்புகளையும் மீட்டமைத்து eSIMகளை அழிக்கவா? இதைச் செயல்தவிர்க்க முடியாது."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"மீட்டமைக்கவா?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"நெட்வொர்க் அமைப்புகளை மீட்டமைக்க, இந்தப் பயனருக்கு அனுமதியில்லை"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"நெட்வொர்க் அமைப்புகள் மீட்டமைக்கப்பட்டன"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"சிம்களை அழிக்க இயலாது"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"பிழை ஏற்பட்டதால் eSIMகளை அழிக்க முடியவில்லை.\n\nசாதனத்தை மீண்டும் தொடங்கிவிட்டு முயலவும்."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"எல்லாத் தரவையும் அழி (ஆரம்பநிலை ரீசெட்)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"எல்லாத் தரவையும் அழி (ஆரம்பநிலை ரீசெட்)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"இசை"</li>\n<li>"படங்கள்"</li>\n<li>"பிற பயனர் தரவு"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMகள்"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"இதைச் செய்வதால் உங்கள் மொபைல் சேவைத் திட்டம் ரத்துசெய்யப்படாது."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"உங்களின் அனைத்துத் தனிப்பட்ட தகவல்களும் பதிவிறக்கிய ஆப்ஸும் நீக்கப்படும். இதைச் செயல்தவிர்க்க இயலாது."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"பதிவிறக்கிய ஆப்ஸ், சிம்கள் ஆகியவை உட்பட உங்களின் அனைத்துத் தனிப்பட்ட தகவல்களும் நீக்கப்படும். இதைச் செயல்தவிர்க்க இயலாது."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"எல்லாத் தரவையும் அழிக்கவா?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"இவருக்கு ஆரம்பநிலை மீட்டமைவு இல்லை"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"அழிக்கிறது"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ஹாட்ஸ்பாட், USB, புளூடூத், ஈதர்நெட்"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"பிற சாதனங்களுடன் இணையத்தைப் பகிர்வதில்லை"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"முடக்கப்பட்டுள்ளது"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"டெதெரிங்"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"வைஃபை ஹாட்ஸ்பாட்டைப் பயன்படுத்த வேண்டாம்"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB வழியாக மட்டும் இணையத்தைப் பகிரவும்"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"புளூடூத் வழியாக மட்டும் இணையத்தைப் பகிரவும்"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ஈதர்நெட் வழியாக மட்டுமே இணையத்தைப் பகிரவும்"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB மற்றும் புளூடூத் வழியாக மட்டும் இணையத்தைப் பகிரவும்"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB மற்றும் புளூடூத் வழியாக மட்டுமே இணையத்தைப் பகிரவும்"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"புளூடூத் மற்றும் ஈதர்நெட் வழியாக மட்டுமே இணையத்தைப் பகிரவும்"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, புளூடூத், ஈதர்நெட் வழியாக மட்டுமே இணையத்தைப் பகிரவும்"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB டெதெரிங்"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"புளூடூத் டெதெரிங்"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ஈத்தர்நெட் இணைப்புமுறை"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"உங்கள் வைஃபை அல்லது மொபைல் டேட்டா மூலம் வேறு சாதனங்களுக்கு இணைய இணைப்பை வழங்க ஹாட்ஸ்பாட்டையும் டெதரிங் இணைப்பு முறையையும் பயன்படுத்தும். மேலும், அருகிலுள்ள சாதனங்களுடன் உள்ளடக்கத்தைப் பகிர, தனியாக ஒரு ஹாட்ஸ்பாட்டையும் ஆப்ஸ் உருவாக்கலாம்."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"உதவி"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"நெட்வொர்க்"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"மொபைல் திட்டம்"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ஆப்ஸை மாற்றவா?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="CURRENT_APP">%2$s</xliff:g>க்குப் பதிலாக <xliff:g id="NEW_APP">%1$s</xliff:g>ஐ உங்கள் SMS பயன்பாடாகப் பயன்படுத்தவா?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"வைஃபை அசிஸ்டண்டை மாற்றவா?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க, <xliff:g id="CURRENT_APP">%2$s</xliff:g>க்குப் பதிலாக <xliff:g id="NEW_APP">%1$s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"நெட்வொர்க் இணைப்புகளை நிர்வகிக்க <xliff:g id="NEW_APP">%s</xliff:g>ஐப் பயன்படுத்தவா?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"அறியப்படாத சிம் மொபைல் நிறுவனம்"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> இடம், தெரிந்த புரொவிஷனிங் இணைதளம் இல்லை"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"சிம் கார்டைச் செருகி மீண்டும் தொடங்கவும்"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"இணையத்துடன் இணைக்கவும்"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"சமீபத்திய இருப்பிடக் கோரிக்கைகள்"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"பணி சுயவிவரத்திற்கான இருப்பிடம்"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ஆப்ஸுக்கான இருப்பிட அனுமதிகள்"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"அணுகலை நீக்கு"</string>
     <string name="controls_label" msgid="8671492254263626383">"கட்டுப்பாடுகள்"</string>
     <string name="force_stop" msgid="2681771622136916280">"உடனே நிறுத்து"</string>
+    <string name="archive" msgid="9074663845068632127">"காப்பிடு"</string>
+    <string name="restore" msgid="7622486640713967157">"மீட்டெடு"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"மொத்தம்"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ஆப்ஸின் அளவு"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB சேமிப்பிட ஆப்ஸ்"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"பேக்கேஜ் அளவைக் கணக்கிட முடியவில்லை."</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> பதிப்பு"</string>
     <string name="move_app" msgid="5421158479447276791">"நகர்த்து"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"காப்பிட முடியவில்லை"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> காப்பிடப்பட்டது"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"மீட்டெடுக்க முடியவில்லை"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ஐ மீட்டெடுக்கிறது"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ஏற்கனவே ஒரு நகர்த்துதல் செயலில் உள்ளது."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"போதுமான சேமிப்பிடம் இல்லை."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ஆப்ஸ் இல்லை."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"கிடைக்கும் ஸ்கிரீன் கீபோர்டு:"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"ஸ்கிரீன் கீபோர்டுகளை நிர்வகியுங்கள்"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"விருப்பங்கள்"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"அணுகல்தன்மை"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"கைமுறை கீபோர்டு"</string>
     <string name="show_ime" msgid="4334255501724746849">"ஸ்கிரீன் கீபோர்டைப் பயன்படுத்து"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"கைமுறை கீபோர்டு இயக்கத்தில் இருக்கும் போது இதைத் திரையில் வைத்திருக்கும்"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"பவுன்ஸ் விசைகள்"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"கீபோர்டு அணுகல்தன்மைக்கான பவுன்ஸ் விசைகளை இயக்கலாம்"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"ஸ்டிக்கி கீஸ்"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"கீபோர்டு அணுகல்தன்மைக்கான ஸ்டிக்கி கீஸை இயக்கலாம்"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"கீபோர்டு ஷார்ட்கட்கள்"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ஷார்ட்கட்களின் பட்டியலைக் காட்டும்"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"பணிக் கணக்கிற்கான கீபோர்டுகள் &amp; கருவிகள்"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"உபயோக நேரப்படி வரிசைப்படுத்துக"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"கடைசிப் பயன்பாட்டின்படி வரிசைப்படுத்துக"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ஆப்ஸ் பெயரால் வரிசைப்படுத்துக"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"கடைசியாகப் பயன்படுத்தியது"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"கடைசியாகப் பயன்படுத்தியது"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"எப்போதும் இல்லை"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"பயன்படுத்திய நேரம்"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"அணுகல்தன்மை"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"அணுகல்தன்மை அமைப்பு"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"பரவாயில்லை, தொடர்க"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ரத்துசெய்"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"பெரிதாக்கல் அமைப்புகள்"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"மூன்றுமுறை தட்டிப் பெரிதாக்குதல்"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ஷார்ட்கட் மூலம் பெரிதாக்குதல்"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ஷார்ட்கட் &amp; 3 முறை தட்டுவதன் மூலம் பெரிதாக்கலாம்"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> பற்றிய அறிமுகம்"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"இரண்டு விரல்களால் திரையில் இருமுறை தட்டித் திறத்தல்"</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="860548190334486449">"பெரிதாக்குவதைத் தொடங்கவும் நிறுத்தவும், திரையில் எங்காவது இரண்டு விரல்களால் இருமுறை தட்டவும்."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"அணுகல்தன்மை அம்சத்தைப் பயன்படுத்த திரையின் கீழிருந்து மேலாக 3 விரல்களால் ஸ்வைப் செய்யவும்.\n\nஅம்சங்களுக்கு இடையே மாற 3 விரல்களால் மேல்நோக்கி ஸ்வைப் செய்து பிடித்திருக்கவும்."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"புரிந்தது"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"அணுகல்தன்மை பட்டன் அமைப்புகள்"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"பட்டன் அமைப்புகள்"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ஷார்ட்கட்"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"அணுகல்தன்மை பட்டன்"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"அணுகல்தன்மை சைகை"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"இரண்டு விரல்களால் திரையை இருமுறை தட்டுதல்"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"இரண்டு விரல்களால் திரையை இருமுறை தட்டுங்கள்"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"இரண்டு விரல்களால் திரையில் {0,number,integer} முறை விரைவாகத் தட்டுங்கள்"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"திரையில் மூன்று முறை தட்டுதல்"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"திரையில் மூன்று முறை தட்டவும்"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"திரையை விரைவாக {0,number,integer} முறை தட்டவும். இந்த ஷார்ட்கட் உங்கள் சாதனத்தின் வேகத்தைக் குறைக்கக்கூடும்"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"அணுகல்தன்மை பட்டன் மற்றும் சைகை பற்றி மேலும் அறிந்துகொள்ளலாம்"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"அணுகல்தன்மை பட்டனைப் பயன்படுத்துதல். 3-பட்டன் வழிசெலுத்தலில் சைகையைப் பயன்படுத்த முடியாது."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"அணுகல்தன்மை அம்சங்களை விரைவாக அணுகலாம்"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"தொடங்க"</b>\n"1. அணுகல்தன்மை அமைப்புகளுக்குச் செல்லவும்\n2. ஓர் அம்சத்தைத் தேர்ந்தெடுத்து ஷார்ட்கட்டைத் தட்டவும்\n3. அந்த அம்சத்தை அணுக, பட்டன் அல்லது சைகை இவற்றில் எதைப் பயன்படுத்த விரும்புகிறீர்கள் என்பதைத் தேர்வுசெய்யவும்"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"தொடங்க"</b>\n"1. அணுகல்தன்மை அமைப்புகளுக்குச் செல்லவும்\n2. ஓர் அம்சத்தைத் தேர்ந்தெடுத்து ஷார்ட்கட்டைத் தட்டவும்\n3. அம்சத்தை அணுகுவதற்கான பட்டனைத் தேர்ந்தெடுக்கவும்"</string>
+    <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_size_title" msgid="5785110470538960881">"அளவு"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"பவர் பட்டன் மூலம் அழைப்பை நிறுத்து"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"பெரிய மவுஸ் பாயிண்டர்"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"மவுஸ் பாயிண்ட்டர் நன்றாகத் தெரியும்படி அமைக்கலாம்"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"அனைத்து ஆப்ஸையும் டார்க் ஆக்குதல்"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"டார்க் தீம் இல்லாத ஆப்ஸுக்குப் பொருந்தும். சில ஆப்ஸில் நெகடிவ் போன்ற காட்சிச் சிக்கல்கள் இருக்கலாம்."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"அனிமேஷன்களை அகற்று"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"திரையில் அசைவைக் குறைக்கும்"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"மோனோ ஆடியோ"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"ஏதேனும் ஆப்ஸ் அல்லது வன்பொருள் சென்சாரின் உதவியுடன் உரையாடல்களைக் கண்காணித்து உங்கள் சார்பாக ஆப்ஸுடன் உரையாட இச்சேவையால் இயலும்."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"அனுமதி"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"நிராகரி"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"நிறுத்து"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ரத்துசெய்"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> சேவையை நிறுத்தவா?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> என்பதைத் தட்டினால் <xliff:g id="SERVICE">%2$s</xliff:g> நிறுத்தப்படும்."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"முடக்கு"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"இயக்கு"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> ஐ முடக்கவா?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"சேவைகள் எதுவும் நிறுவப்படவில்லை"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"சேவை எதையும் தேர்ந்தெடுக்கவில்லை"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"விளக்கம் எதுவும் வழங்கப்படவில்லை."</string>
     <string name="settings_button" msgid="2195468788019730377">"அமைப்பு"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ஒளி உணர்திறன், ஃபோட்டோஃபோபியா, டார்க் தீம், ஒற்றைத் தலைவலி, தலைவலி, வாசிப்புப் பயன்முறை, இரவுப் பயன்முறை, ஒளிர்வைக் குறைத்தல், ஒயிட் பாயிண்ட்"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"எளிதாகப் பயன்படுத்தக்கூடியது, எளிதாக அணுகக்கூடியது, உதவி, உதவிகரமானது"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"பார்வை, கேட்கும் திறன், பார்வையற்றவர்கள், காது கேளாதோர், உடலியக்கம், கைத்திறன், உதவிகரமானது, உதவி, எளிதாகப் பயன்படுத்தக்கூடியது, எளிதாக அணுகக்கூடியது, கை, உதவி"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"சாளரப் பெரிதாக்கி, அளவை மாற்றுதல், பெரிதாக்கல், குறைந்த பார்வைத் திறன், பெரிதாக்கல், பெரிதாக்கு"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"வசனங்கள், விவரிப்பு சப்டைட்டில்கள், CC, Live Transcribe, கேட்பதில் சிரமம், கேட்கும் திறன் இன்மை, CART, பேச்சிலிருந்து உரை, சப்டைட்டில்"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"நிற வேறுபாடு"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"உடல் இயக்கத் திறன், மவுஸ்"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"செவித்துணைக் கருவிகள், செவித்திறன் குறைபாடு, செவித்திறன் இழப்பு, கோக்லியார் இம்பிளான்ட் சாதனங்கள், ஒலிபெருக்கிச் சாதனங்கள், சவுண்டு பிராசஸர்கள்"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"உடலியக்கம், மவுஸ், வெளிப்புற மவுஸ், ஹெட் மவுஸ், அடாப்டிவ் மவுஸ், வீல்சேர், ஜாய்ஸ்டிக்"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"செவித்துணைக் கருவிகள், செவித்திறன் குறைபாடு, செவித்திறன் இழப்பு, செவித்திறன் சாதனங்கள், ஒலிபெருக்கிச் சாதனங்கள், சவுண்டு பிராசஸர்கள், PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"கேட்பதில் சிரமம், கேட்கும் திறன் இன்மை, வசனங்கள், டெலிடைப், TTY"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"மூன்று பட்டன்கள்"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"கைத்திறன், உடல் இயக்கத் திறன், முதியோர், கீல்வாதம், rsi, பக்கவாதம், நடுக்கம், மல்ட்டிபில் ஸ்க்லரோசிஸ், செரிப்ரல் பால்சி, ஷேக்கிங், திரும்பத் திரும்ப ஏற்படும் காயம், கை"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"தாமதம், கைத்திறன், முதியோர்"</string>
     <string name="print_settings" msgid="8519810615863882491">"அச்சிடுதல்"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ஆஃப்"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 பிரிண்ட் சேவை இயக்கப்பட்டுள்ளது}other{# பிரிண்ட் சேவைகள் இயக்கப்பட்டுள்ளன}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"பேட்டரியை அதிகமாக உபயோகிக்கும் ஆப்ஸைக் காண்க"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"உங்கள் பேட்டரியைப் பாதுகாக்க சார்ஜிங் மேம்படுத்தப்பட்டுள்ளது"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"உங்கள் பேட்டரியின் ஆயுட்காலத்தை நீட்டிக்க உதவ சார்ஜிங் மேம்படுத்தப்பட்டுள்ளது"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"உங்கள் பேட்டரியைப் பாதுகாக்க சார்ஜிங் மேம்படுத்தப்பட்டுள்ளது"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"உங்கள் பேட்டரியின் ஆயுட்காலத்தை நீட்டிக்க உதவுவதற்கு, Dock உடன் இணைக்கப்பட்டிருக்கும்போது சார்ஜிங் மேம்படுத்தப்படும்"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"உங்கள் பேட்டரியைப் பாதுகாக்க சார்ஜிங் மேம்படுத்தப்பட்டுள்ளது"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"உங்கள் பேட்டரியின் ஆயுட்காலத்தை நீட்டிக்க உதவுவதற்கு, Dock உடன் இணைக்கப்பட்டிருக்கும்போது சார்ஜிங் மேம்படுத்தப்படும்"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"முழுமையாகச் சார்ஜ் ஆகிறது"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"உங்கள் பேட்டரியைப் பாதுகாக்க, உங்கள் டேப்லெட் அடுத்த முறை Dock உடன் இணைக்கப்படும்போது சார்ஜிங் மேம்படுத்தப்படும்"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"சார்ஜிங் இடைநிறுத்தப்பட்டது குறித்து மேலும் அறிக"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"சார்ஜ் செய்வதை மீண்டும் தொடங்கு"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"அதிக மின்சக்தியைப் பயன்படுத்தும் பின்னணிச் செயல்பாட்டையும் உள்ளடக்கியது"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"அகற்று"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ரத்துசெய்"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"முழுமையாகச் சார்ஜ் ஏற்றுங்கள்"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"சார்ஜரில் சிக்கல்"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"இணக்கமற்ற சார்ஜிங் குறித்து மேலும் அறிக"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"பேட்டரி நிர்வாகி"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"தானாகவே ஆப்ஸை நிர்வகித்தல்"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"தற்போது"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"பேட்டரி உபயோக விளக்கப்படம்"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"தினசரி பேட்டரி உபயோக விளக்கப்படம்"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"மணிநேர பேட்டரி உபயோக விளக்கப்படம்"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"பேட்டரி நிலை சதவீதம்: <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> முதல் <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> வரை"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"கடைசியாக பேட்டரியை முழுவதுமாகச் சார்ஜ் செய்ததிலிருந்து அதன் உபயோகம் குறித்த விவரம்"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g>க்கான பேட்டரி உபயோகம்"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"கடைசியாக முழுமையாகச் சார்ஜ் செய்யப்பட்டதிலிருந்து சாதனத்தைப் பயன்படுத்திய நேரம்"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"அவசரகால டயலிங் சிக்னல்"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"அவசர அழைப்பு இயக்கப்பட்டிருக்கும்போது நடத்தையை அமை"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"காப்புப்பிரதி"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ஆன் செய்யப்பட்டுள்ளது"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ஆஃப் செய்யப்பட்டுள்ளது"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"காப்புப் பிரதி &amp; மீட்டெடுத்தல்"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"தனிப்பட்ட தரவு"</string>
     <string name="backup_data_title" msgid="507663517227498525">"தரவை காப்புப்பிரதியெடு"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"பெயர்"</string>
     <string name="vpn_type" msgid="5533202873260826663">"வகை"</string>
     <string name="vpn_server" msgid="2908816134941973935">"சேவையக முகவரி"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP என்க்ரிப்ட் (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP ரகசியம்"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec அடையாளங்காட்டி"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec முன் பகிர்வு விசை"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec பயனர் சான்றிதழ்"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA சான்றிதழ்"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec சேவையகச் சான்றிதழ்"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"மேம்பட்ட விருப்பங்களைக் காட்டு"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS தேடல் டொமைன்கள்"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS சேவையகங்கள் (எ.கா. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"முன்னனுப்பும் பாதைகள் (எ.கா. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"பயனர்பெயர்"</string>
     <string name="vpn_password" msgid="1183746907642628127">"கடவுச்சொல்"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"கணக்கின் தகவலைச் சேமி"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(பயன்படுத்தப்படவில்லை)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(சேவையகத்தைச் சரிபார்க்க வேண்டாம்)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(சேவையகத்திலிருந்து பெறப்பட்டது)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"எல்லா நேரமும் இந்த VPN வகை இணைக்கப்பட்டிருக்காது"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"எப்போதும் VPNஐ இயக்கத்திலேயே வைக்கும் விருப்பமானது எண் வடிவச் சேவையக முகவரிகளை மட்டுமே ஆதரிக்கும்"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"எப்போதும் VPNஐ இயக்கத்திலேயே வைக்க, ஒரு DNS சேவையகத்தைக் குறிப்பிட வேண்டும்"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"எப்போதும் VPNஐ இயக்கத்திலேயே வைக்க, DNS சேவையக முகவரிகள் எண் வடிவில் இருக்க வேண்டும்"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"உள்ளிட்ட தகவலானது எப்போதும் VPNஐ இயக்கத்திலேயே வைப்பதை ஆதரிக்கவில்லை"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ரத்துசெய்"</string>
     <string name="vpn_done" msgid="5137858784289564985">"விலக்கு"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN இல்லாமல் இணைப்புகளைத் தடு"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN இணைப்பு வேண்டுமா?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"பாதுகாப்பற்றது. IKEv2 VPNனுக்குப் புதுப்பிக்கவும்"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"ஆதரிக்கப்படாத VPNனைத் தொடங்க முடியவில்லை."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"எப்போதும் இணைந்திருக்க வேண்டிய VPN சுயவிவரத்தைத் தேர்ந்தெடுக்கவும். இந்த VPN உடன் இணைந்திருக்கும்போது மட்டுமே நெட்வொர்க்கின் டிராஃபிக் அனுமதிக்கப்படும்."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ஏதுமில்லை"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"எப்போதும் இயக்கத்தில் இருக்கும் VPN க்கு சேவையகங்கள் மற்றும் DNS ஆகியவற்றின் IP முகவரி தேவைப்படுகிறது."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER எச்சரிக்கைகள்"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"குழந்தைக் கடத்தல் பற்றிய அறிவிப்புகளைப் பெறுதல்"</string>
     <string name="repeat_title" msgid="8676570486899483606">"மீண்டும்"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"அழைப்பு நிர்வாகியை இயக்கு"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"அழைப்புகளின் தன்மையை நிர்வகிக்க இந்தச் சேவையை அனுமதிக்கவும்."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"அழைப்பு நிர்வாகி"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"வயர்லெஸ் அவசரகால விழிப்பூட்டல்கள்"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"நெட்வொர்க் ஆபரேட்டர்கள்"</string>
     <string name="access_point_names" msgid="5768430498022188057">"ஆக்சஸ் பாயிண்ட் பெயர்கள்"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"கட்டணம் செலுத்தவும், தட்டவும், கட்டணம் செலுத்துதல்"</string>
     <string name="keywords_backup" msgid="707735920706667685">"காப்புப்பிரதி, காப்புப் பிரதி"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"சைகை"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"முகம் காட்டித் திறத்தல், அடையாளம், உள்நுழைதல்"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"முகம், அன்லாக், அங்கீகரிப்பு, உள்நுழை, கைரேகை, பயோமெட்ரிக்"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl பதிப்பு, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"ஒலிகளை இயக்கு"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"உடனடி வசன உரை"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"வசன உரைகளைத் தானாக எழுதும்"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"மொபைல் ஸ்பீக்கர்கள்"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"டேப்லெட் ஸ்பீக்கர்கள்"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"சாதன ஸ்பீக்கர்கள்"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"வயருள்ள ஹெட்ஃபோன்கள்"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"இணக்கமான மீடியாவிலிருந்து வரும் ஆடியோ இன்னும் ஆழ்ந்த இசை அனுபவத்தைத் தரும்"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ஆஃப்"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"சமீபத்திய உரையாடல்கள் அகற்றப்பட்டன"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"உரையாடல் அகற்றப்பட்டது"</string>
     <string name="clear" msgid="5092178335409471100">"அழி"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> ஐ அழிக்கும்"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"முக்கியமான மற்றும் மாற்றியமைக்கப்பட்ட உரையாடல்கள் இங்கே தோன்றும்"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"நீங்கள் உரையாடல் ஒன்றை முக்கியமானதெனக் குறியிடும்போதோ உரையாடல்களில் வேறு ஏதேனும் மாற்றங்களைச் செய்யும்போதோ அவை இங்கே தோன்றும். \n\nஉரையாடல் அமைப்புகளை மாற்றுதல்: \nஅறிவிப்பு விபரத்தைத் திறக்க திரையின் மேல் பகுதியில் இருந்து கீழே ஸ்வைப் செய்தபிறகு உரையாடலைத் தொட்டுப் பிடித்திருக்கவும்."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"சிறிதாக்கு"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ஆஃப்"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ஆப்ஸைப் பின் செய்தல்"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"அகற்றப்படும்வரை ஆப்ஸ் ஒன்றைத் திரையில் காட்டுவதற்கு ஆப்ஸைப் பின் செய்தல் அம்சம் அனுமதிக்கிறது. உதாரணமாக, இந்த அம்சத்தைப் பயன்படுத்தி குறிப்பிட்ட கேமை விளையாட நம்பிக்கைக்குரிய நண்பரை அனுமதிக்கலாம்."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"ஆப்ஸ் பின் செய்யப்பட்டிருக்கும்போது அது பிற ஆப்ஸைத் திறக்கக்கூடும், இதனால் தனிப்பட்ட தரவு அணுகப்படக்கூடும். \n\nஆப்ஸைப் பின் செய்தல் அம்சத்தைப் பயன்படுத்த: 	\n1. ஆப்ஸைப் பின் செய்தல் அம்சத்தை இயக்கவும் 	\n2. மேலோட்டப் பார்வையைத் திறக்கவும் 	\n3. திரையின் மேற்பகுதியில் உள்ள ஆப்ஸ் ஐகானைத் தட்டி ‘பின் செய்’ என்பதைத் தட்டவும்"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"ஆப்ஸ் பின் செய்யப்பட்டிருக்கும்போது அது பிற ஆப்ஸைத் திறக்கக்கூடும், இதனால் தனிப்பட்ட தரவு அணுகப்படக்கூடும். \n\nசாதனத்தை வேறொருவருடன் பாதுகாப்பாகப் பகிர விரும்பினால் கெஸ்ட் பயனர் அம்சத்தைப் பயன்படுத்திப் பார்க்கவும். \n\nஆப்ஸைப் பின் செய்ய: 	\n1. ஆப்ஸைப் பின் செய்தல் அம்சத்தை இயக்கவும் 	\n2. மேலோட்டப் பார்வையைத் திறக்கவும் 	\n3. திரையின் மேற்பகுதியில் உள்ள ஆப்ஸ் ஐகானைத் தட்டி ‘பின் செய்’ என்பதைத் தட்டவும்"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"ஆப்ஸைப் பயன்படுத்தாதபோது நிர்வகித்தல்"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"அனுமதிகளை அகற்றும், தற்காலிக ஃபைல்களை நீக்கும், அறிவிப்புகளை நிறுத்தும், ஆப்ஸைக் காப்பிடும்"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"எல்லா ஆப்ஸ்களும்"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"நிறுவிய ஆப்ஸ்"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"இன்ஸ்டண்ட் ஆப்ஸ்"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"இருப்பது"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ஆப்ஸ் உபயோகிக்கும் நினைவகம்"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{கடந்த {time} இல் 1 ஆப்ஸ் நினைவகத்தைப் பயன்படுத்தியுள்ளது}other{கடந்த {time} இல் # ஆப்ஸ் நினைவகத்தைப் பயன்படுத்தியுள்ளன}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"நினைவக உபயோக ப்ரொஃபைலிங்கை இயக்குதல்"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"நினைவக உபயோகத்தை ப்ரொஃபைலிங் செய்வதற்குக் கூடுதல் சிஸ்டம் ஆதாரங்கள் தேவை."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"நினைவக ப்ரொஃபைலிங் முடக்கப்பட்டது"</string>
     <string name="running_frequency" msgid="7260225121706316639">"அலைவரிசை"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"அதிகபட்ச உபயோகம்"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"டேட்டா எதுவும் பயன்படுத்தப்படவில்லை"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"பிற ஆப்ஸின் மேலே காட்டுதல்"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"பிற ஆப்ஸின் மேலே காட்டுவதை அனுமதி"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"நீங்கள் பயன்படுத்தும் பிற ஆப்ஸின் மேல் காட்டுவதற்கு இந்த ஆப்ஸை அனுமதிக்கும். நீங்கள் எங்கே தட்டுகிறீர்கள் என்பதைப் பார்க்கவும் திரையில் காட்டப்படுவதை மாற்றவும் இந்த ஆப்ஸால் முடியும்."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"மீடியா அவுட்புட்டை மாற்றுதல்"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"மீடியா அவுட்புட்டை மாற்ற ஆப்ஸை அனுமதித்தல்"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"இணைக்கப்பட்டுள்ள எந்தச் சாதனம் பிற ஆப்ஸின் ஆடியோ/வீடியோவைப் பிளே செய்யலாம் என்பதை இந்த ஆப்ஸ் தேர்வுசெய்வதற்கு அனுமதிக்கலாம். அனுமதிக்கப்பட்டால், ஹெட்ஃபோன்கள், ஸ்பீக்கர்கள் போன்ற கிடைக்கக்கூடிய அவுட்புட் சாதனங்களின் பட்டியலை அணுகி, அவற்றில் எதைப் பயன்படுத்தி ஆடியோ/வீடியோவைப் பிளே செய்யலாம் அல்லது அலைபரப்பலாம் என்பதை இந்த ஆப்ஸால் தேர்வுசெய்ய முடியும்."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"ஃபைல்கள் அனைத்திற்குமான அணுகல்"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"குரல் மூலம் செயல்படுத்துதலை மேம்படுத்து"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"குரல் மூலம் செயல்படுத்தும் மாடலை மேம்படுத்த இந்தச் சாதனம் தனிப்பட்ட நுண்ணறிவைப் பயன்படுத்துகிறது. மாடலை அனைவருக்கும் மேம்படுத்தும்போது தனியுரிமையைப் பராமரிக்க, பல பயனர்களிடமிருந்து தொகுக்கப்பட்ட சுருக்கமான புதுப்பிப்புகளை ஆப்ஸ் பெறலாம்.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> டேட்டா எச்சரிக்கை"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> டேட்டா வரம்பு"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> டேட்டா எச்சரிக்கை / <xliff:g id="ID_2">^2</xliff:g> டேட்டா வரம்பு"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"மொபைல் நிறுவனம் கணக்கிடும் டேட்டா அளவும், சாதனம் கணக்கிடும் டேட்டா அளவும் மாறுபடலாம்"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"மொபைல் நிறுவன நெட்வொர்க்குகள் பயன்படுத்திய டேட்டா அளவு சேர்க்கப்படவில்லை"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> பயன்படுத்தப்பட்டது"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"டேட்டா பயன்பாட்டு எச்சரிக்கையை அமை"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"புதுப்பித்தது: <xliff:g id="ID_1">^2</xliff:g> முன்பு"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"புதுப்பித்தது: <xliff:g id="ID_1">^1</xliff:g>, இப்போது"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"புதுப்பித்தது: இப்போது"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"திட்டத்தைக் காட்டு"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"விவரங்களைக் காட்டு"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"டேட்டா சேமிப்பான்"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"வரம்பற்ற டேட்டா"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"பேட்டரி உபயோக முரண்பாடு"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"விரைவு அமைப்புகளின் டெவெலப்பர் கட்டங்கள்"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb அங்கீகரிப்பு நேர முடிவை முடக்குதல்"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"இயல்பான (7 நாட்கள்) அல்லது பயனர் உள்ளமைத்த (குறைந்தபட்சம் 1 நாள்) நேரத்திற்குள் மீண்டும் இணைப்பிற்கு வராத சிஸ்டங்களுக்கான adb அங்கீகரிப்புகளைத் தானாக ரத்துசெய்தல் முடக்கப்படும்."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"வின்ஸ்கோப் டிரேஸ்"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"சென்சார்களை ஆஃப் செய்தல்"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"பணிச் சுயவிவர அமைப்புகள்"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"தனிப்பட்ட ஆப்ஸிலுள்ள பணித் தகவலகத் தொடர்புகளைத் தேடுதல்"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"தானாக நிரப்பும் சேவை"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"இயல்புநிலைத் தன்னிரப்பிச் சேவை"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"கடவுச்சொற்கள்"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"கூடுதல் வழங்குநர்கள்"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# கடவுச்சொல்}other{# கடவுச்சொற்கள்}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"தானியங்கு, நிரப்பு, தன்னிரப்பி, கடவுச்சொல்"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"தரவு, கடவுச்சாவி, கடவுச்சொல்"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"தானியங்கு, நிரப்பு, தன்னிரப்பி, தரவு, கடவுச்சாவி, கடவுச்சொல்"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;அனைத்துச் சேவைகளையும் முடக்கவா?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் சேமிக்கப்பட்ட பிற தகவல்கள் நீங்கள் உள்நுழையும்போது தானாக நிரப்புவதற்குக் கிடைக்காது"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;உங்களுக்கு விருப்பமான சேவையாக &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ஆப்ஸை மாற்றுங்கள். புதிய கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் பிற தகவல்கள் இப்போதிலிருந்து இங்கே சேமிக்கப்படும். எவற்றைத் தானாக நிரப்ப முடியும் என்பதைத் தீர்மானிக்க &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; உங்கள் திரையில் உள்ளவற்றைப் பயன்படுத்தக்கூடும்"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ஐப் பயன்படுத்தலாமா?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"5 சேவைகளை மட்டுமே இயக்கி வைத்திருக்கலாம்"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"மற்றொரு சேவையைச் சேர்க்க, குறைந்தது ஒரு சேவையையாவது முடக்கவும்"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"எவற்றைத் தானாக நிரப்பலாம் என்பதைத் தீர்மானிக்க உங்கள் திரையில் உள்ளவற்றை %1$s பயன்படுத்தும்."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகளுக்கான வரம்பு"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"ஒரே நேரத்தில் 5 கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகளைச் செயலில் வைத்திருக்கலாம். மேலும் ஒன்றைச் சேர்க்க ஒரு சேவையை முடக்கவும்."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகளுக்கான வரம்பு"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"ஒரே நேரத்தில் 5 கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள் வரை செயலில் வைத்திருக்கலாம். மேலும் ஒன்றைச் சேர்க்க ஒரு சேவையை முடக்கவும்."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"முடக்கு"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"தன்னிரப்பி"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging நிலை"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"பிழைதிருத்தி ஆப்ஸில் மட்டுமே ஆப்ஸ் இணக்கத்தன்மை மாற்றங்களை மாற்ற முடியும். பிழைதிருத்தி ஆப்ஸை நிறுவி மீண்டும் முயலவும்."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"மற்றொரு அமைப்பைச் சார்ந்தது"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"கணக்கு"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d கணக்குகள்"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"சாதனத்தின் பெயர்"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"அடிப்படைத் தகவல்கள்"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"சட்டம் &amp; ஒழுங்குமுறை"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC குறி ஸ்கேன் செய்யப்படும்போது இந்த ஆப்ஸை லான்ச் ஆக அனுமதிக்கும்.\nஇந்த அனுமதி இயக்கப்பட்டிருந்தால், ஸ்கேனின்போது குறி கண்டறியப்படும் போதெல்லாம் இந்த ஆப்ஸ் ஒரு விருப்பத்தேர்வாகக் காட்டப்படும்."</string>
     <string name="media_output_title" msgid="8283629315159510680">"மீடியாவை இதில் இயக்கு:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> ஐ இயக்குக"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ஆடியோ இதில் பிளே செய்யப்படும்"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"இந்தச் சாதனம்"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"அழைப்புகளின்போது பயன்படுத்த இயலாது"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"அழைப்புகளை எதில் எடுப்பது?"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ஒலியடக்கு"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"இயக்க, \"பவர் பட்டனை அழுத்திப் பிடித்திருக்கவும்\" என்பதைப் பவர் மெனுவில் மாற்றுங்கள்."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"நெட்வொர்க் விவரங்கள்"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"உங்கள் மொபைலில் உள்ள ஆப்ஸால் உங்கள் சாதனத்தின் பெயரைப் பார்க்க முடியும். புளூடூத் சாதனங்கள், வைஃபை நெட்வொர்க் ஆகியவற்றுடன் இணைக்கும்போதோ வைஃபை ஹாட்ஸ்பாட்டை அமைக்கும்போதோ அப்பெயர் பிறருக்கும் காட்டப்படக்கூடும்."</string>
     <string name="devices_title" msgid="649715719278562515">"சாதனங்கள்"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"நெட்வொர்க்கைத் தேர்வுசெய்"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"தொடர்பு துண்டிக்கப்பட்டது"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"பெயர்"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"வண்ணம் (இணக்கமான ஆப்ஸ் உபயோகிப்பவை)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"சேமி"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"சிம்மைப் பயன்படுத்து"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"இந்த சிம்மைப் பயன்படுத்து"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"முடக்கு"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"சிம் கார்டை அகற்றுவதன் மூலம் அதனை முடக்கலாம்"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> சிம்மை இயக்குவதற்குத் தட்டவும்"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"சிம்மை அழி"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"விருப்பமான நெட்வொர்க் வகை"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"நெட்வொர்க் இயங்கும் பயன்முறையை மாற்று"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"விருப்பமான நெட்வொர்க் வகை"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"கட்டணம் பற்றி அறிய நெட்வொர்க் வழங்குநரைத் தொடர்புகொள்ளவும்."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ஆப்ஸ் டேட்டா உபயோகம்"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"தவறான நெட்வொர்க் பயன்முறை <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. நிராகரி."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"ஆக்சஸ் பாயிண்ட் நேம்கள்"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> உடன் இணைந்திருக்கும்போது கிடைக்காது"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>க்கு மாற்றவா?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"சிம் கார்டுப் பயன்பாட்டிற்கு மாற்றவா?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> சிம்மைப் பயன்படுத்தவா?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ஒரு நேரத்தில் ஒரு சிம் மட்டுமே செயலில் இருக்கும்.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> சேவைக்கு மாற்றுவதனால் <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> சேவை ரத்துசெய்யப்படாது."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ஒரு நேரத்தில் ஒரு eSIM மட்டுமே செயலில் இருக்கலாம்.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> நெட்வொர்க்கிற்கு மாற்றுவது <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> சேவையை ரத்துசெய்யாது."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ஒரு நேரத்தில் ஒரு சிம் மட்டுமே செயலில் இருக்கும்.\n\nமாற்றுவதனால் <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> சேவை ரத்துசெய்யப்படாது."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"நீங்கள் ஒரே சமயத்தில் 2 சிம்களைப் பயன்படுத்தலாம். <xliff:g id="CARRIER_NAME">%1$s</xliff:g> சிம்மைப் பயன்படுத்த மற்றொரு சிம்மை முடக்கவும்."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>க்கு மாற்று"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> சிம்மை முடக்கவா?"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"வேண்டாம்"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ரத்துசெய்"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"மாற்று"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"முடக்கு"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"சிம்மை இயக்க முடியவில்லை"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"சிம்மை மீண்டும் ஆன் செய்து பார்க்கவும். சிக்கல் தொடரும்பட்சத்தில் சாதனத்தை மீண்டும் தொடங்கவும்."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"உங்கள் சிம்மை அமையுங்கள்"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"இந்தச் சாதனத்தில் பல சிம்களைப் பயன்படுத்த உங்கள் மொபைல் நெட்வொர்க் விருப்பத்தேர்வுகளை அமைக்கலாம்"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"சிம்களுக்கு லேபிளிடுங்கள்"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"அழைப்புகளை மேற்கொள்ளும்போதும் மெசேஜ்களை அனுப்பும்போதும் டேட்டாவைப் பயன்படுத்தும்போதும் அமைப்புகளிலும் இந்த லேபிள்களைப் பார்ப்பீர்கள்"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM லேபிள்"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"லேபிள்"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"எந்த சிம் பயன்படுத்துவது எனத் தேர்வுசெய்க"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"நீங்கள் ஒரே சமயத்தில் 2 சிம்களைப் பயன்படுத்தலாம்"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"உங்கள் முதன்மை சிம்மை அமைத்தல்"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"அழைப்புகள், மெசேஜ்கள், டேட்டா ஆகியவற்றுக்கு இயல்பாக எந்தெந்த சிம்களைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்வுசெய்யுங்கள்"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"உங்கள் முதன்மை சிம்கள்"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"அழைப்புகள்"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"மெசேஜ்கள்"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"தானியங்கு டேட்டா மாற்றம்"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"கவரேஜ் மற்றும் கிடைக்கும் நிலையைப் பொறுத்து சிம்மில் இருந்து டேட்டாவைப் பயன்படுத்தும்"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"டேட்டா மட்டும்"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"அமை"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"அடுத்து"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"மொபைல் நெட்வொர்க்"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"மொபைல் எண்"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"சிம் லேபிள் மற்றும் வண்ணம்"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"மொபைல் நெட்வொர்க்கை இயக்குதல்"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"மொபைல் நிறுவனத்தை மாற்றுகிறது"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> செயல்பாட்டில் உள்ளது"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"நெட்வொர்க் அமைப்புகளுக்குச் சென்று மொபைல் டேட்டா, மெசேஜ், அழைப்பு அம்சங்களைப் பிறகு பயன்படுத்துவதற்கு ஏற்றவாறு அமைத்துக்கொள்ளலாம்"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"சிம்"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"இந்த eSIMமை அழிக்கவா?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"சிம்மை அழிப்பது இந்தச் சாதனத்தில் இருந்து <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> சேவையை அகற்றிவிடும்.\n\nஇதனால் <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> சேவை ரத்துசெய்யப்படாது."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"அழி"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"சிம்மை அழிக்கிறது…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"சிம்மை அழிக்க இயலவில்லை"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"பிழை ஏற்பட்டதால் இந்த சிம்மை அழிக்க இயலாது.\n\nசாதனத்தை மீண்டும் தொடங்கி முயலவும்."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"சாதனத்துடன் இணைத்தல்"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"உங்கள் சாதனத்துடன் இணைக்க <xliff:g id="APPNAME">%1$s</xliff:g> ஆப்ஸ் தற்காலிகமான வைஃபை நெட்வொர்க்கைப் பயன்படுத்த விரும்புகிறது"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"சாதனங்கள் எதுவும் இல்லை. சாதனங்கள் ஆன் செய்யப்பட்டு இணைப்பதற்குத் தயாராக உள்ளனவா என்பதை உறுதிப்படுத்தவும்."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"அவசர அழைப்புகள்"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"வைஃபை அழைப்பு மூலம் அவசர அழைப்பு செய்வதை உங்கள் மொபைல் நிறுவனம் ஆதரிக்கவில்லை.\nஅவசர அழைப்பைச் செய்வதற்குச் சாதனம் தானாகச் செல்லுலார் நெட்வொர்க்கிற்கு மாறி விடும்.\nசெல்லுலார் கவரேஜ் உள்ள இடங்களில் மட்டுமே அவசர அழைப்புகள் சாத்தியமாகும்."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"வைஃபையைப் பயன்படுத்தி அழைப்புகளின் தரத்தை மேம்படுத்தலாம்"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"காப்புப் பிரதி அழைப்பு"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> கிடைக்காதபோதோ ரோமிங்கில் இருக்கும்போதோ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> அழைப்புகளுக்கு உங்கள் மொபைல் டேட்டா சிம்மை பயன்படுத்தலாம்."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"காப்புப் பிரதி அழைப்பு"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"உள்வரும் MMS மெசேஜ்"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS மெசேஜை அனுப்ப இயலவில்லை"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"மொபைல் டேட்டா ஆஃப் செய்யப்பட்டிருக்கும்போது <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> இல் MMS மெசேஜிங்கை அனுமதிக்கத் தட்டவும்."</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"உங்கள் பணிக் கணக்கின் கொள்கை குறித்த தகவல்"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"உங்கள் IT நிர்வாகி கட்டுப்படுத்தும் அமைப்புகள்"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16கி. பக்க அளவுடன் தொடங்குதல்"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16கி ஆதரிக்கும் கெர்னல் மூலம் சாதனத்தைத் தொடங்கும்"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16கி.பை. பக்க இணக்கமான கெர்னல் உடன் மறுபடி தொடங்கவா?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"எச்சரிக்கை: இந்தப் பயன்முறைக்கு சில ஆப்ஸ் இணங்காமல் இருக்கக்கூடும். உறுதிசெய்த பின்பு சாதனம் மறுபடி தொடங்கும்."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4கி.பை. பக்க இணக்கமான கெர்னல் உடன் மறுபடி தொடங்கவா?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"உறுதிசெய்த பின்பு சாதனம் மறுபடி தொடங்கும்."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"கெர்னலை 16கி.பை. பக்க இணக்கமான கெர்னலுக்குப் புதுப்பிக்க முடியவில்லை."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"மாற்றங்கள் செயல்படுத்தப்படுகின்றன"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"பிழை அறிக்கை ஹேண்ட்லர்"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"உங்கள் சாதனத்தில் பிழை அறிக்கைக்கான ஷார்ட்கட்டை எந்த ஆப்ஸ் கையாள வேண்டும் என்பதைத் தீர்மானிக்கும்."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"தனிப்பட்டது"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"வீடியோவின் இயக்கத்தை விரைவாகத் தொடங்க, விரைவு அமைப்புகளில் மீடியா பிளேயரைத் திறந்து வைத்திருக்கும்"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"பூட்டுத் திரையில் மீடியாவைக் காட்டுதல்"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"பிளேபேக்கை விரைவாகத் தொடங்க, பூட்டுத் திரையில் மீடியா பிளேயரைத் திறந்து வைத்திருக்கும்"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"மீடியா தொடர்பான பரிந்துரைகளைக் காட்டுதல்"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant மீடியா பரிந்துரைகளைக் காட்டுதல்"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"உங்கள் செயல்பாட்டின் அடிப்படையில் பரிந்துரைக்கும்"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"பிளேயர் மறை"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"பிளேயரைக் காட்டும்"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"சிம்"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMகள்"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"செயலிலுள்ளது"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"செயலில் இல்லை"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g>க்கான இயல்புநிலை"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"அழைப்புகள்"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"மெசேஜ்"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"இணக்கமான மீடியாவிலிருந்து வரும் ஆடியோ இன்னும் ஆழ்ந்த இசை அனுபவத்தைத் தரும்"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ஹெட் டிராக்கிங்"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ஒலிக்கு ஏற்றாற்போல உங்கள் தலையை மிக இயல்பாக நகர்த்தும்போது ஆடியோவும் மாறும்"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"ஒத்திசைவு அனுமதிகள்"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> சாதனத்தில் அனுமதித்த அதே ஆப்ஸ் அனுமதிகளை <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு வழங்கலாம்"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"மொபைலில் இருக்கும் அனுமதிகளை ஒத்திசைத்தல்"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"இந்த மொபைலில் அனுமதித்த அதே ஆப்ஸ் அனுமதிகளை உங்கள் வாட்ச்சிற்கு வழங்கலாம்"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ஆடியோ சாதனத்தின் வகை"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"தெரியாதவை"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ஸ்பீக்கர்"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"நடுத்தரம்"</string>
     <string name="contrast_high" msgid="3988567609694797696">"அதிகம்"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"இந்த ஆப்ஸை 1 சாளரத்தில் மட்டுமே திறக்க முடியும்"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"இயக்கத்தில்"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"முடக்கத்தில்"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"முடக்கத்தில்"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"இயக்கப்பட்டுள்ளது"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"இயக்கப்பட்டுள்ளது"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"லைட் ஸ்கிரீன்களை டார்க்காகவும், டார்க் ஸ்கிரீன்களை லைட்டாகவும் மாற்றும்"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"திரையைப் பெரிதாக்கலாம்"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"இயக்கப்பட்டுள்ளது"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"முடக்கப்பட்டுள்ளது"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"இயக்கப்பட்டுள்ளது"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"கடவுச்சொல் இப்போது அமைக்கப்பட்டது"</string>
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 0f9d73c..88c51f0 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 నిమిషం తర్వాత"</item>
     <item msgid="1574040255478150028">"5 నిమిషాల తర్వాత"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 01d9838..e7aa757 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"డెవలపర్ సెట్టింగ్‌లను అడ్మిన్ యూజర్‌లు మాత్రమే యాక్సెస్ చేయగలరు."</string>
     <string name="header_category_system" msgid="1665516346845259058">"సిస్టమ్"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"సేవ అందుబాటులో ఉంది"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"సేవ అందుబాటులో లేదు"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"కొనసాగించడానికి పైకి స్వైప్ చేయండి"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"యాప్‌ను ఉపయోగించడం కొనసాగించడానికి మీ ఫోన్‌ను ఫోల్డ్ చేసి, ముందు వైపు డిస్‌ప్లేపై పైకి స్వైప్ చేయండి, లేదా స్క్రీన్ లాక్ అయ్యే వరకు కొన్ని సెకన్లు వేచి ఉండండి"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"సంబంధిత టూల్స్"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"రింగ్‌టోన్, అలారాలు"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"కాల్స్ జరిగే సమయంలో ఆడియో"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"మీడియా"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"నోటిఫికేషన్‌లు, ఇతర సిస్టమ్ సౌండ్స్"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"మీడియా, సిస్టమ్ సౌండ్స్"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"నోటిఫికేషన్‌లు"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"ఆటోమేటిక్‌గా, ఆడియో అవుట్‌పుట్ వ్యక్తిగత యాప్‌ల ద్వారా నిర్ణయించబడుతుంది"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"పేరులేని బ్లూటూత్ పరికరం"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"సెర్చ్ చేయడం"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"బ్లూటూత్ ఆన్ చేయబడింది"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"అన్నీ చూడండి"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"అన్నింటినీ చూడండి"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"స్టైలస్"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"స్టైలస్ బటన్‌ను నొక్కండి"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (వర్క్ ప్రొఫైల్)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ఆడియో స్ట్రీమ్‌కు కనెక్ట్ చేయండి"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"సమీప ఆడియో స్ట్రీమ్‌లు"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"ఆడియో స్ట్రీమ్‌లు"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR కోడ్‌ను ఉపయోగించి ఆడియో స్ట్రీమ్‌కు కనెక్ట్ చేయండి"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"సమీప ఆడియో స్ట్రీమ్‌లు ఏవీ కనుగొనబడలేదు."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ప్రతి యాప్ కోసం భాషను ఎంచుకోవడానికి, యాప్ భాష సెట్టింగ్‌లకు వెళ్లండి."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"యాప్ భాషల గురించి మరింత తెలుసుకోండి"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"సిస్టమ్ భాషను %s‌కు మార్చాలా?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%sని ప్రాధాన్య భాషలకు జోడించాలా?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"మీరు ఈ భాషకు కూడా ప్రాధాన్యం ఇస్తారని, ఇది, యాప్‌లకు, వెబ్‌సైట్‌లకు తెలియజేస్తుంది."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"మీ పరికర సెట్టింగ్‌లు, ప్రాంతీయ ప్రాధాన్యతలు మారుతాయి."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"మార్చండి"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s అందుబాటులో లేదు"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"శనివారం"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"ప్రాంతీయ భాషా ప్రాధాన్యతలకు యాప్, సపోర్ట్ చేయకపోతే, ఆటోమేటిక్ భాషా సెట్టింగ్‌లను యాప్ ఉపయోగిస్తుంది."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"భాషా ప్రాధాన్యతల గురించి మరింత తెలుసుకోండి."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"అదనపు ప్రాధాన్యతలు"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"సంబోధనా పద్ధతులు"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"మిమ్మల్ని సంబోధించే విధానాన్ని సెట్ చేయండి"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"యాప్‌లు మిమ్మల్ని సంబోధించే విధానాన్ని వ్యక్తిగతీకరించడానికి అవి మీరు పేర్కొన్న సంబోధనా పద్ధతులను ఉపయోగించవచ్చు."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"పేర్కొనబడలేదు"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"స్త్రీ"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"పురుషుడు"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"న్యూట్రల్"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ఎంచుకున్న భాషను తీసివేయాలా?}other{ఎంచుకున్న భాషలను తీసివేయాలా?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"వచనం మరొక భాషలో ప్రదర్శించబడుతుంది."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"అన్ని భాషలను తీసివేయలేరు"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"లొకేషన్"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"లొకేషన్‌ను ఉపయోగించండి"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ఆఫ్"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{ఆన్‌లో ఉంది - # యాప్‌నకు లొకేషన్‌కు యాక్సెస్ ఉంది}other{ఆన్‌లో ఉంది - # యాప్‌లకు లొకేషన్‌కు యాక్సెస్ ఉంది}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{లొకేషన్ ఆన్‌లో ఉన్నప్పుడు / # యాప్ లొకేషన్‌కు యాక్సెస్‌ను కలిగి ఉంది}other{లొకేషన్ ఆన్‌లో ఉన్నప్పుడు / # యాప్‌లు లొకేషన్‌కు యాక్సెస్‌ను కలిగి ఉన్నాయి}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"లోడ్ చేస్తోంది…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"సమీపంలోని పరికరాలను యాక్సెస్ చేసే అనుమతి గల యాప్‌లు, కనెక్ట్ అయిన పరికరాలు ఎంత దూరంలో ఉన్నాయో తెలుసుకోగలవు."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"యాప్‌లు, సర్వీస్‌లకు లొకేషన్ యాక్సెస్ ఆఫ్ చేయబడింది. మీరు ఎమర్జెన్సీ నంబర్‌కు కాల్ చేసినా లేదా SMS పంపినా, అత్యవసర సమయాలలో స్పందించే వారికి ఆటోమేటిక్‌గా మీ పరికర లొకేషన్ పంపబడుతుంది."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"లొకేషన్ సెట్టింగ్‌ల గురించి మరింత తెలుసుకోండి."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"లొకేషన్ సెట్టింగ్‌ల గురించి మరింత తెలుసుకోండి"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"లొకేషన్ యాక్సెస్‌ను మార్చడానికి, సెట్టింగ్‌లు &gt; సెక్యూరిటీ &amp; గోప్యత &gt; గోప్యతా కంట్రోల్స్‌కు వెళ్లండి"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ఉత్తమ ఫలితాల కోసం, Google చేత సర్టిఫైడ్ చేయబడి తయారు చేయబడిన స్క్రీన్ ప్రొటెక్టర్‌ను ఉపయోగించండి. ఇతర స్క్రీన్ ప్రొటెక్టర్‌లతో, మీ పిల్లల వేలిముద్ర పని చేయకపోవచ్చు."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"వాచ్ అన్‌లాక్"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"మీరు ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేసినప్పుడు, మీరు మాస్క్ ధరించి ఉంటే లేదా చీకటి ప్రదేశంలో ఉంటే మీ ఫోన్, మీ వేలిముద్రను అడుగుతుంది.\n\nమీ ముఖం లేదా వేలిముద్ర గుర్తించబడనప్పుడు మీరు మీ వాచ్‌తో అన్‌లాక్ చేయవచ్చు."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"మీ వేలిముద్ర గుర్తించబడనప్పుడు మీరు మీ వాచ్‌తో అన్‌లాక్ చేయవచ్చు."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"మీ ముఖం గుర్తించబడనప్పుడు మీరు మీ వాచ్‌తో అన్‌లాక్ చేయవచ్చు."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"మీరు ఫేస్ అన్‌లాక్, వేలిముద్ర అన్‌లాక్‌ను సెటప్ చేసినప్పుడు, మీరు మాస్క్ ధరించి ఉంటే లేదా చీకటి ప్రదేశంలో ఉంటే మీ ఫోన్, మీ వేలిముద్రను అడుగుతుంది.\n\nవాచ్ అన్‌లాక్ అనేది ఉదాహరణకు, మీ వేళ్లు తడిగా ఉన్నప్పుడు లేదా ముఖం గుర్తించబడనప్పుడు మీ ఫోన్‌ను అన్‌లాక్ చేయడానికి మరొక అనుకూలమైన మార్గం."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"వాచ్ అన్‌లాక్ అనేది ఉదాహరణకు, మీ వేలిముద్ర గుర్తించబడనప్పుడు మీ ఫోన్‌ను అన్‌లాక్ చేయడానికి మరొక అనుకూలమైన మార్గం."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"వాచ్ అన్‌లాక్ అనేది ఉదాహరణకు, మీ ముఖం గుర్తించబడనప్పుడు మీ ఫోన్‌ను అన్‌లాక్ చేయడానికి మరొక అనుకూలమైన మార్గం."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"వేలిముద్ర లేదా వాచ్‌ను ఉపయోగించండి"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ముఖం, లేదా వాచ్‌ను ఉపయోగించండి"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ముఖం, వేలిముద్ర లేదా వాచ్‌ను ఉపయోగించండి"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ముఖం, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ముఖం, వేలిముద్ర, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ముఖం, వేలిముద్రలు, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"రిమోట్ ప్రామాణీకరణదారు అన్‌లాక్"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"వాచ్ జోడించబడింది"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"మీ వాచ్‌ను సెటప్ చేయండి"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ఇది ఎలా పని చేస్తుంది"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"మీ వాచ్ తప్పనిసరిగా అన్‌లాక్ చేయబడి ఉండాలి, ఇంకా మీ మణికట్టుపై ధరించి ఉండి, ఈ ఫోన్‌కు దగ్గరగా ఉండాలి. మీ వాచ్ మీ మణికట్టు మీద ఉన్నప్పుడు మీరు దాన్ని మళ్లీ అన్‌లాక్ చేయాల్సిన అవసరం లేదు."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ఈ ఫోన్ అన్‌లాక్ చేయబడినప్పుడు, మీ వాచ్‌లో మీకు తెలియజేయబడుతుంది. మీకు అవసరం లేనప్పుడు అది అన్‌లాక్ చేయబడితే, ఫోన్‌ను మళ్లీ లాక్ చేయడానికి నోటిఫికేషన్‌ను ట్యాప్ చేయండి."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"మీరు కంట్రోల్ చేయవచ్చు"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"మీరు సెట్టింగ్‌లలో ఎప్పుడైనా వాచ్ అన్‌లాక్ నుండి మీ వాచ్‌ను తీసివేయవచ్చు"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"నోటిఫికేషన్‌ను ట్యాప్ చేయండి"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"లాక్ స్క్రీన్ మీద పైకి స్వైప్ చేయండి"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"మీ వాచ్‌ను ఎంచుకోండి"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"అందుబాటులోని వాచ్‌లు"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"రద్దు చేయండి"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"నిర్ధారించండి"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"మీరు సెటప్‌ను పూర్తి చేశారు!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"మీరు ఇప్పుడు లాక్ స్క్రీన్‌పై స్వైప్ చేసినప్పుడు లేదా నోటిఫికేషన్‌ను ట్యాప్ చేసినప్పుడు ఈ ఫోన్‌ను అన్‌లాక్ చేయడానికి మీ వాచ్‌ను ఉపయోగించవచ్చు"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"పూర్తయింది"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"వాచ్ అన్‌లాక్"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"మీరు లాక్ స్క్రీన్‌పై స్వైప్ చేసినప్పుడు లేదా నోటిఫికేషన్‌ను ట్యాప్ చేసినప్పుడు ఈ ఫోన్‌ను అన్‌లాక్ చేయడానికి మీ వాచ్‌ను ఉపయోగించవచ్చు"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"వాచ్ అన్‌లాక్‌ను ఉపయోగించడానికి, మీ వాచ్ తప్పనిసరిగా అన్‌లాక్ చేయబడి, మీ మణికట్టుపై ధరించి ఉండి, ఫోన్‌కు దగ్గరలో ఉండి, ఇంకా ఈ ఫోన్‌కు కనెక్ట్ చేయబడి ఉండాలి. కనెక్షన్‌కు అంతరాయం ఏర్పడితే, మీరు వాచ్ అన్‌లాక్‌ను ఉపయోగించే ముందు మీరు ఫోన్‌ను అన్‌లాక్ చేయాలి.\n\nవీటిని గుర్తుంచుకోండి:\nమీరు ఒకసారి ఒక వాచ్‌ను మాత్రమే సెటప్ చేయవచ్చు. మరొక వాచ్‌ను జోడించడానికి, ముందుగా ప్రస్తుతం ఉన్న వాచ్‌ను తీసివేయండి."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"వాచ్ అన్‌లాక్ గురించి మరింత తెలుసుకోండి"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"వాచ్‌ను జోడించండి"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"వాచ్‌ను తీసివేయండి"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"వేలిముద్ర &amp; ఫేస్ అన్‌లాక్"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"వర్క్ కోసం ముఖం &amp; వేలిముద్ర అన్‌లాక్"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"సెటప్ అవసరం"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"సెక్యూరిటీ"</string>
     <string name="privacy_header" msgid="5526002421324257007">"గోప్యత"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"వర్క్ ప్రొఫైల్"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"ప్రైవేట్ స్పేస్"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ప్రైవేట్ యాప్‌లను లాక్ చేసి దాచి ఉంచండి"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"మీరు దాచడానికి లేదా లాక్ చేయడానికి వీలు ఉండే ప్రత్యేక స్పేస్‌లో ప్రైవేట్ యాప్‌లను ఉంచండి"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"ప్రైవేట్ స్పేస్ లాక్"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"మీరు మీ పరికరాన్ని ఎలా అయితే అన్‌లాక్ చేస్తారో, అలాగే ప్రైవేట్ స్పేస్‌ను అన్‌లాక్ చేయవచ్చు, లేదా వేరే లాక్‌ను ఎంచుకోవచ్చు"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"పరికర స్క్రీన్ లాక్‌ను ఉపయోగించండి"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"ముఖం &amp; వేలిముద్ర అన్‌లాక్"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"వేలిముద్ర అన్‌లాక్"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ఫేస్ అన్‌లాక్"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"సెటప్ చేయడానికి ట్యాప్ చేయండి"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"ప్రైవేట్ స్పేస్ కోసం వేలిముద్ర అన్‌లాక్"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"ప్రైవేట్ స్పేస్ కోసం ఫేస్ అన్‌లాక్"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"అన్‌లాక్ చేయడానికి మార్గాలు"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"పరికర స్క్రీన్ లాక్ లాంటిది"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"ప్రైవేట్ స్పేస్ కోసం కొత్త లాక్‌ను ఎంచుకోవాలా?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ఆటోమేటిక్‌గా లాక్ చేయండి"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ప్రైవేట్ స్పేస్‌ను ఆటోమేటిక్‌గా లాక్ చేయండి"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"మీ పరికరాన్ని కొంత వ్యవధి పాటు వినియోగించకపోతే, మీ ప్రైవేట్ స్పేస్‌ను ఆటోమేటిక్‌గా లాక్ చేయవచ్చు"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"పరికరం లాక్ అయిన ప్రతిసారీ"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 నిమిషాలు ఇన్‌యాక్టివ్‌గా ఉన్న తర్వాత"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ఎప్పుడూ వద్దు"</string>
+    <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_deleted" msgid="7825768516955610897">"ప్రైవేట్ స్పేస్ విజయవంతంగా తొలగించబడింది"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ప్రైవేట్ స్పేస్‌ను తొలగించడం సాధ్యం కాలేదు"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ప్రైవేట్ స్పేస్ అన్‌లాక్ చేయబడింది"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"స్క్రీన్ లాక్‌ను సెట్ చేయండి"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"మీ ప్రైవేట్ స్పేస్‌ను ఉపయోగించడానికి, ఈ పరికరంలో స్క్రీన్ లాక్ సెట్ చేయండి"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"స్క్రీన్ లాక్‌ను సెట్ చేయండి"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"రద్దు చేయండి"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"రద్దు చేయండి"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"సెటప్ చేయండి"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ప్రైవేట్ స్పేస్‌ను సెటప్ చేయండి"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"మీరు దాచడానికి లేదా లాక్ చేయడానికి వీలు ఉండే ప్రత్యేక స్పేస్‌లో ప్రైవేట్ యాప్‌లను ఉంచండి"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"ఇది ఎలా పని చేస్తుంది"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"మీ యాప్‌ల లిస్ట్ కింది నుండి మీరు ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయవచ్చు"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"ప్రైవేట్ స్పేస్‌లోని యాప్‌లు లాక్ చేయడం ద్వారా రక్షించబడతాయి"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"మీ ప్రైవేట్ స్పేస్ లాక్ అయ్యి ఉన్నప్పుడు, అందులోని యాప్‌ల నుండి నోటిఫికేషన్‌లు రావు"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"మీ ప్రైవేట్ స్పేస్ లాక్ అయి ఉన్నప్పుడు, అందులో ఉన్న యాప్‌లు అనుమతి మేనేజర్‌లో, గోప్యతా డ్యాష్‌బోర్డ్‌లో, ఇతర సెట్టింగ్‌లలో కనిపించవు.\n\nమీ ప్రైవేట్ స్పేస్‌ను కొత్త పరికరానికి తరలించడం సాధ్యం కాదు. మీరు దానిని మరొక పరికరంలో ఉపయోగించాలంటే, మరొక ప్రైవేట్ స్పేస్‌ను సెటప్ చేయవలసి ఉంటుంది.\n\nమీ పరికరాన్ని కంప్యూటర్‌కు కనెక్ట్ చేసే లేదా మీ పరికరంలో హానికరమైన యాప్‌లను ఇన్‌స్టాల్ చేసే ఎవరైనా మీ ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయగలరు."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"ప్రైవేట్ స్పేస్ సెటప్ ప్రోగ్రెస్‌లో ఉంది…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"ప్రైవేట్ స్పేస్ లాక్ అయ్యి ఉన్నప్పుడు, అందులోని యాప్‌ల నుండి నోటిఫికేషన్‌లు రావు"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ప్రైవేట్ స్పేస్‌ను అన్‌లాక్ చేసి, ప్రైవేట్ స్పేస్ యాప్‌లలోని ఫోటోలు లేదా ఫైల్స్‌ను షేర్ చేయండి"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"కొన్ని యాప్‌లు ఇప్పటికే మీ ప్రైవేట్ స్పేస్‌లో ఇన్‌స్టాల్ అయి ఉంటాయి"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ప్రైవేట్ స్పేస్‌ను సెటప్ చేయడం సాధ్యపడలేదు"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"మళ్లీ ట్రై చేయండి"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ప్రైవేట్ స్పేస్ అన్లాకింగ్‌కు స్క్రీన్లాక్ వాడాలా?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"మీరు మీ పరికరాన్ని ఎలా అయితే అన్‌లాక్ చేస్తారో, అలాగే ప్రైవేట్ స్పేస్‌ను అన్‌లాక్ చేయవచ్చు, లేదా వేరే లాక్‌ను ఎంచుకోవచ్చు"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"స్క్రీన్ లాక్‌ను ఉపయోగించండి"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"కొత్త లాక్‌ను ఎంచుకోండి"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"అంతా సిద్ధంగా ఉంది!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"మీ ప్రైవేట్ స్పేస్‌ను యాక్సెస్ చేయడానికి, మీ యాప్‌ల లిస్ట్‌కు వెళ్లి, తర్వాత కిందికి స్క్రోల్ చేయండి"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"పూర్తయింది"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"కిందికి స్క్రోల్ చేసి ప్రైవేట్ స్పేస్‌ను కనుగొనండి"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"మీ ప్రైవేట్ స్పేస్‌కు ఒక లాక్‌ను ఎంచుకోండి"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"మీ వేలిముద్రను ఉపయోగించి ప్రైవేట్ స్పేస్‌ను అన్‌లాక్ చేయవచ్చు. భద్రతా అవసరాల దృష్ట్యా, ఈ ఆప్షన్‌కు బ్యాకప్ స్క్రీన్ లాక్ అవసరం."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"మీ ప్రైవేట్ స్పేస్ కోసం PIN సెట్ చేయండి"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"మీ ప్రైవేట్ స్పేస్ కోసం పాస్‌వర్డ్‌ను సెట్ చేయండి"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"మీ ప్రైవేట్ స్పేస్ కోసం ఆకృతి సెట్ చేయి"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"ప్రైవేట్ స్పేస్‌ను చూపించడానికి (ఫైనల్ UX కాదు)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"సెట్టింగ్‌లు యాప్‌ను తెరవండి"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"సెక్యూరిటీ, గోప్యత, ప్రైవేట్ స్పేస్‌లను ట్యాప్ చేయండి; లాక్ చేయబడినప్పుడు ప్రైవేట్ స్పేస్‌ను దాచండి"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"టోగుల్‌ను లాక్ చేస్తే \'ప్రైవేట్ స్పేస్ చూపద్దు\'ను ఆఫ్ చేయండి"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google ఉద్యోగులకు గమనిక: ఈ ఫీచర్‌ను డెవలప్ చేయడం ఇంకా ప్రోగ్రెస్‌లో ఉంది"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"మీరు ఈ పాస్‌కీని ఇతర పరికరంలో కూడా టైప్ చేయాల్సి రావచ్చు."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"కోఆర్డినేటెడ్ సెట్‌తో పెయిర్ చేయడానికి నిర్ధారించండి"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"మీ కాంటాక్ట్‌లకు, కాల్ హిస్టరీకి యాక్సెస్‌ను అనుమతించండి"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"కాంటాక్ట్‌లకు, కాల్ హిస్టరీకి కూడా యాక్సెస్‌ను అనుమతించండి"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"సమాచారం, కాల్ అనౌన్స్‌మెంట్‌లు, ఇంకా మరిన్నింటి కోసం ఉపయోగించబడుతుంది"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>కి కనెక్ట్ చేయడం సాధ్యపడలేదు."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"అందుబాటులో ఉన్న పరికరాలు"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ఎయిర్‌ప్లేన్ మోడ్‌లో"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"పబ్లిక్ నెట్‌వర్క్‌ల సమాచారం తెలియజేయండి"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"అధిక క్వాలిటీ ఉన్న పబ్లిక్ నెట్‌వర్క్ అందుబాటులో ఉన్నప్పుడు తెలియజేస్తుంది"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP నెట్‌వర్క్‌లను అనుమతించండి"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP అనేది తక్కువ సురక్షితమైన పాత సెక్యూరిటీ ప్రోటోకాల్"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP నెట్‌వర్క్‌లు తక్కువ సురక్షితమైనవి కాబట్టి మీ క్యారియర్ వాటిని అనుమతించదు"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fiని ఆటోమేటిక్‌గా ఆన్ చేయండి"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"మీ ఇంటి నెట్‌వర్క్‌ల వంటి సేవ్ చేసిన అధిక క్వాలిటీ గల నెట్‌వర్క్‌లు అందుబాటులో ఉన్నప్పుడు Wi‑Fi తిరిగి ఆన్ చేయబడుతుంది"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"లొకేషన్ ఆఫ్ చేయబడింది కనుక అందుబాటులో లేదు. "<annotation id="link">"లొకేషన్‌ను"</annotation>" ఆన్ చేయండి."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi ఆఫ్‌లో ఉన్నా కూడా, ఏ సమయంలోనైనా Wi‑Fi నెట్‌‍వర్క్‌లను స్కాన్ చేయడానికి యాప్‌లను, స‌ర్వీసుల‌ను Wi‑Fi స్కానింగ్ అనుమతిస్తుంది. ఉదాహరణకు, లొకేషన్ ఆధారిత ఫీచర్‌లను, స‌ర్వీసుల‌ను మెరుగుపరచడానికి దీనిని ఉపయోగించవచ్చు."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"ఆన్ చేయి"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi-Fi స్కానింగ్ ఆన్ చేయబడింది"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"ఈ నెట్‌వర్క్ తక్కువ సురక్షితమైన పాత సెక్యూరిటీ ప్రోటోకాల్‌ను ఉపయోగిస్తుంది"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> బ్లాక్ చేయబడింది"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"ఈ నెట్‌వర్క్ WEP అనే పాత సెక్యూరిటీ ప్రోటోకాల్‌ను ఉపయోగిస్తుంది, ఇది తక్కువ సురక్షితమైనది. ఎలాగైనా సరే కనెక్ట్ చేయాలనుకుంటే, మీరు WEP నెట్‌వర్క్‌లను అనుమతించవచ్చు."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"మీ క్యారియర్ మిమ్మల్ని ఈ నెట్‌వర్క్‌కు కనెక్ట్ చేయడానికి అనుమతించదు ఎందుకంటే ఇది తక్కువ సురక్షితమైన పాత సెక్యూరిటీ ప్రోటోకాల్‌ను ఉపయోగిస్తుంది"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEPను అనుంతించండి"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"మూసివేయండి"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"అధునాతన ఆప్షన్‌లు"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"డ్రాప్-డౌన్ లిస్ట్‌ అధునాతన ఎంపికలు"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"విస్తరించు"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"అలాగే Wi‑Fiలో ఉంచు"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"మళ్లీ ఎప్పటికి చూపవద్దు"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"కనెక్ట్ చేయండి"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi ఆన్ చేయబడింది"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>కు కనెక్ట్ అయ్యింది"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>కు కనెక్ట్ చేయబడుతోంది"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"కనెక్ట్ అవుతోంది…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"నెట్‌వర్క్‌కు కనెక్ట్ చేయడం విఫలమైంది"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"నెట్‌వర్క్ పరిధిలో లేదు"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"విస్మరించు"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ఎడిట్ చేయండి"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"నెట్‌వర్క్‌ను ఉపేక్షించడంలో విఫలమైంది"</string>
     <string name="wifi_save" msgid="2312643132472226807">"సేవ్ చేయండి"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"నెట్‌వర్క్‌ను సేవ్ చేయడం విఫలమైంది"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"రద్దు చేయండి"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"మొబైల్ డేటా"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ఈథర్‌నెట్"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ ఛార్జ్ అవుతోంది"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ ఛార్జ్ అవుతోంది"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"హాట్‌స్పాట్ కనెక్షన్"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"కనెక్షన్ సామర్థ్యం"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"సేవ్ అయిన నెట్‌వర్క్‌లు"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"పాస్‌వర్డ్‌ సెట్ చేయలేదు"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"హాట్‌స్పాట్ పేరు"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"హాట్‌స్పాట్ పాస్‌వర్డ్‌"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP బ్యాండ్"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"హాట్‌స్పాట్‌ను ఆటోమేటిక్‌గా ఆఫ్ చేయండి"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"పరికరాలేవీ కనెక్ట్ చేసి లేనప్పుడు"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"అనుకూలతను మెరుగుపరచండి"</string>
@@ -1007,9 +1148,11 @@
     <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="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="fold_lock_behavior_title" msgid="786228803694268449">"ఫోల్డ్‌లో ఉన్న యాప్‌లను ఉపయోగించడం కొనసాగించండి"</string>
+    <string name="disable_game_default_frame_rate_title" msgid="3712908601744143753">"గేమ్‌ల కోసం ఆటోమేటిక్ సెట్టింగ్ ఫ్రేమ్ రేట్‌ను డిజేబుల్ చేయండి"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"గేమ్‌ల గరిష్ఠ ఫ్రేమ్ రేట్‌ను <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz వద్ద పరిమితం చేయడాన్ని డిజేబుల్ చేయండి."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"స్మూత్ డిస్‌ప్లే"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"స్క్రీన్ వైపు ఎవరైనా చూస్తున్నారా అన్నది తెలుసుకునేందుకు స్క్రీన్ అటెన్ష‌న్,‌ ముందు వైపు ఉన్న కెమెరాను ఉపయోగిస్తుంది. ఇది పరికరంలో పని చేస్తుంది. ఇమేజ్‌లు స్టోర్‌ చేయబడవు లేదా  Googleకు పంపబడవు."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"స్క్రీన్ అటెన్షన్‌ను ఆన్ చేయి"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"స్క్రీన్‌ను చూస్తున్నప్పుడు దానిని ఆన్‌లో ఉంచగలుగుతారు"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ఎక్కువ ఆటోమేటిక్ స్క్రీన్ గడువు ముగింపు వలన ఎక్కువ బ్యాటరీ ఉపయోగించబడుతుంది."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"కెమెరా లాక్ చేయబడింది"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ముఖ గుర్తింపు కోసం కెమెరాను అన్‌లాక్ చేయాలి"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"స్క్రీన్ అటెన్షన్ కోసం కెమెరాను అన్‌లాక్ చేయాలి"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM స్లాట్ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM స్లాట్ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (ప్రాథమిక)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"చూడటానికి సేవ్ చేసిన నెట్‌వర్క్‌ను ఎంచుకోండి"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL వెర్షన్"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"బ్యాటరీ స్థాయి"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"కమ్యూనల్"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"కమ్యూనల్ సెట్టింగ్‌లు"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"సేవ్ చేయండి"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"రద్దు చేయండి"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"పేరు ఫీల్డ్ ఖాళీగా ఉండకూడదు."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN ఖాళీగా ఉండకూడదు."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC ఫీల్డ్ తప్పనిసరిగా 3 అంకెలు కలిగి ఉండాలి."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC ఫీల్డ్‌లో తప్పనిసరిగా 2 లేదా 3 అంకెలు ఉండాలి."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"క్యారియర్ %s రకమైన APNలను జోడించడాన్ని అనుమతించదు."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC ఫీల్డ్ తప్పనిసరిగా చెల్లుబాటు అవ్వాలి."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"ఆటోమేటిక్ APN సెట్టింగ్‌లను రీస్టోర్ చేస్తోంది."</string>
     <string name="menu_restore" msgid="4310539620115151551">"ఆటోమేటిక్‌కు రీసెట్ చేయండి"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"ఆటోమేటిక్ APN సెట్టింగ్‌లను రీసెట్ చేయడం పూర్తయింది."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"రీసెట్ చేయండి"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"బ్లూటూత్ &amp; Wi‑Fi రీసెట్ చేయబడ్డాయి"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIMలను ఫ్యాక్టరీ రీసెట్ చేయండి"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"ఇది ఏవిధమైన మొబైల్ సర్వీస్ ప్లాన్‌లను రద్దు చేయదు. రీప్లేస్‌మెంట్ SIMలను డౌన్‌లోడ్ చేయడానికి మీ క్యారియర్‌ను సంప్రదించండి."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"సెట్టింగ్‌లను రీసెట్ చేయండి"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"అన్ని నెట్‌వర్క్ సెట్టింగ్‌లను రీసెట్ చేయాలా? ఈ చర్యను మీరు రద్దు చేయలేరు."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"అన్ని నెట్‌వర్క్ సెట్టింగ్‌లను రీసెట్ చేసి, eSIMలను ఫ్యాక్టరీ రీసెట్ చేయాలా? ఈ చర్యను మీరు చర్య రద్దు చేయలేరు."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"రీసెట్ చేయాలా?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"ఈ వినియోగదారు కోసం నెట్‌వర్క్ రీసెట్ అందుబాటులో లేదు"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"నెట్‌వర్క్ సెట్టింగ్‌లు రీసెట్ చేయబడ్డాయి"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIMల డేటాను తొలగించలేకపోయింది"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ఎర్రర్ కారణంగా eSIMలు ఫ్యాక్టరీ రీసెట్ చేయబడవు.\n\nమీ పరికరాన్ని రీస్టార్ట్ చేసి మళ్లీ ట్రై చేయండి."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"మొత్తం డేటాను తొలగించండి (ఫ్యాక్టరీ రీసెట్)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"మొత్తం డేటాను తొలగించండి (ఫ్యాక్టరీ రీసెట్)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"మ్యూజిక్"</li>\n<li>"ఫోటోలు"</li>\n<li>"ఇతర యూజర్ డేటా"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMలు"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"ఇది మీ మొబైల్ సర్వీస్ ప్లాన్‌ను రద్దు చేయదు."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"మీ మొత్తం వ్యక్తిగత సమాచారంతో పాటు డౌన్‌లోడ్ చేసిన యాప్‌లు అన్నీ సమూలంగా తొలగించబడతాయి. ఒక్కసారి డేటాను తొలగిస్తే మళ్లీ వెనక్కు తెచ్చుకోలేరు."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"మీ మొత్తం వ్యక్తిగత సమాచారంతో పాటు డౌన్‌లోడ్ చేసిన యాప్‌లు, SIMలు అన్నీ సమూలంగా తొలగించబడతాయి. ఒక్కసారి డేటాను తొలగిస్తే మళ్లీ వెనక్కు తెచ్చుకోలేరు."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"మొత్తం డేటాను తొలగించాలా?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"ఈ యూజర్‌కు ఫ్యాక్టరీ రీసెట్ అందుబాటులో లేదు"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"తొలగిస్తోంది"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"హాట్‌స్పాట్, USB, బ్లూటూత్, ఈథర్‌నెట్"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"ఇంటర్నెట్‌ను ఇతర పరికరాలతో షేర్ చేయడం లేదు"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ఆఫ్‌లో ఉంది"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"టెథరింగ్"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi-Fi హాట్‌స్పాట్‌ను ఉపయోగించవద్దు"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"USB ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"బ్లూటూత్ ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ఈథర్‌నెట్ ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"USB, బ్లూటూత్ ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"USB, ఈథర్‌నెట్‌ల ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"బ్లూటూత్, ఈథర్‌నెట్‌ల ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"USB, బ్లూటూత్, ఈథర్‌నెట్ ద్వారా మాత్రమే ఇంటర్నెట్‌ను షేర్ చేయండి"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB టెథరింగ్‌"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"బ్లూటూత్ టెథరింగ్‌"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ఈథర్‌నెట్ టెథరింగ్"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"మీ Wi‑Fi లేదా మొబైల్ డేటా కనెక్షన్ ద్వారా ఇతర పరికరాలకు ఇంటర్నెట్‌ను అందించడం కోసం హాట్‌స్పాట్ అలాగే టెథరింగ్‌ను ఉపయోగించండి. సమీప పరికరాలతో కంటెంట్‌ను షేర్ చేయడం కోసం యాప్‌లు కూడా హాట్‌స్పాట్‌ను క్రియేట్ చేయవచ్చు."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"సహాయం"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"మొబైల్ నెట్‌వర్క్"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"మొబైల్ ప్లాన్"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS యాప్"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS యాప్‌ను మార్చాలా?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"మీ SMS అనువర్తనంగా <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi అసిస్టెంట్‌ను మార్చాలా?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"మీ నెట్‌వర్క్ కనెక్షన్‌లను మేనేజ్ చేయడానికి <xliff:g id="CURRENT_APP">%2$s</xliff:g>కి బదులుగా <xliff:g id="NEW_APP">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"మీ నెట్‌వర్క్ కనెక్షన్‌లను మేనేజ్ చేయడానికి <xliff:g id="NEW_APP">%s</xliff:g>ని ఉపయోగించాలా?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"సిమ్ ఆపరేటర్ తెలియదు"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>కి తెలిసిన కేటాయింపు వెబ్‌సైట్ ఏదీ లేదు"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"దయచేసి సిమ్ కార్డును చొప్పించి, పునఃప్రారంభించండి"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"దయచేసి ఇంటర్నెట్‌కు కనెక్ట్ చేయండి"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"లొకేషన్‌ను ఇటీవల రిక్వెస్ట్ చేసినవి"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ఆఫీస్ ప్రొఫైల్ కోసం లొకేషన్"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"యాప్ లొకేషన్ అనుమతులు"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"యాక్సెస్‌ను తీసివేయండి"</string>
     <string name="controls_label" msgid="8671492254263626383">"నియంత్రణలు"</string>
     <string name="force_stop" msgid="2681771622136916280">"ఫోర్స్ స్టాప్"</string>
+    <string name="archive" msgid="9074663845068632127">"ఆర్కైవ్ చేయండి"</string>
+    <string name="restore" msgid="7622486640713967157">"రీస్టోర్ చేయండి"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"మొత్తం"</string>
     <string name="application_size_label" msgid="6407051020651716729">"యాప్ సైజ్"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB స్టోరేజ్‌ యాప్"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"ప్యాకేజీ పరిమాణాన్ని గణించడం సాధ్యపడలేదు."</string>
     <string name="version_text" msgid="7628938665256107608">"వెర్షన్ <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"తరలించు"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"ఆర్కైవ్ చేయడం విఫలమైంది"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ఆర్కైవ్ చేయబడింది"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"రీస్టోర్ చేయడం విఫలమైంది"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> రీస్టోర్ చేయబడుతోంది"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ఇప్పటికే మరొక స్థాన మార్పిడి ప్రోగ్రెస్‌లో ఉంది."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"తగినంత స్టోరేజ్‌ స్థలం లేదు."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"యాప్ ఉనికిలో లేదు."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"స్క్రీన్‌పై కీబోర్డ్ అందుబాటులోఉంది"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"స్క్రీన్‌పై కీబోర్డ్స్ మేనేజ్ చేయండి"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ఆప్షన్‌లు"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"యాక్సెసిబిలిటీ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"భౌతిక కీబోర్డ్"</string>
     <string name="show_ime" msgid="4334255501724746849">"స్క్రీన్‌పై కీబోర్డ్‌ను ఉపయోగించండి"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"భౌతిక కీబోర్డ్ యాక్టివ్‌గా ఉన్నప్పుడు దీన్ని స్క్రీన్‌పై ఉంచుతుంది"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"బౌన్స్ కీలు"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"ఫిజికల్ కీబోర్డ్ యాక్సెసిబిలిటీ కోసం బౌన్స్ కీలను ఎనేబుల్ చేయండి"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"స్టిక్కీ కీలు"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"ఫిజికల్ కీబోర్డ్ యాక్సెసిబిలిటీ కోసం స్టిక్కీ కీలను ఎనేబుల్ చేయండి"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"కీబోర్డ్ షార్ట్‌కట్‌లు"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"షార్ట్‌కట్‌ల లిస్ట్‌ను చూడండి"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"కార్యాలయ ప్రొఫైల్ కీబోర్డ్‌లు &amp; సాధనాలు"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"వినియోగ టైం ద్వారా సార్ట్ చేయి"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"చివరి టైం ద్వారా సార్ట్ చేయి"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"యాప్ పేరు ద్వారా సార్ట్ చేయండి"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"చివరిగా ఉపయోగించినది"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"చివరిగా ఉపయోగించినది"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ఎప్పుడూ లేదు"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"వినియోగ సమయం"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"యాక్సెసిబిలిటీ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"యాక్సెస్ సామర్థ్య సెట్టింగ్‌లు"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ఏదేమైనా కొనసాగించండి"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"రద్దు చేయండి"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"మ్యాగ్నిఫికేషన్ సెట్టింగ్‌లు"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"మూడుసార్లు నొక్కడంతో మ్యాగ్నిఫై చేయండి"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"షార్ట్‌కట్‌తో మ్యాగ్నిఫై చేయండి"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"షార్ట్‌కట్‌తో, మూడుసార్లు నొక్కి మ్యాగ్నిఫై చేయండి"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"\'<xliff:g id="SERVICE">%1$s</xliff:g>\' పరిచయం"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"తెరవడానికి రెండు వేళ్లతో స్క్రీన్‌ను డబుల్ ట్యాప్ చేయండి"</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="860548190334486449">"మ్యాగ్నిఫికేషన్‌ను ప్రారంభించడానికి, ఆపడానికి స్క్రీన్‌పై ఎక్కడైనా 2 వేళ్లతో 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"యాక్సెస్ సౌలభ్య ఫీచర్‌లను ఉపయోగించడానికి, స్క్రీన్ దిగువ నుండి 3 వేళ్లతో పైకి స్వైప్ చేయండి.\n\nఫీచర్‌ల మధ్య స్విచ్ అవడానికి, 3 వేళ్లతో పైకి స్వైప్ చేసి పట్టుకోండి."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"అర్థమైంది"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"యాక్సెసిబిలిటీ బటన్ సెట్టింగ్స్"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"బటన్ సెట్టింగ్‌లు"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> - షార్ట్‌కట్"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"యాక్సెసిబిలిటీ బటన్"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"యాక్సెసిబిలిటీ సంజ్ఞ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"రెండు వేళ్లతో స్క్రీన్‌ను డబుల్-ట్యాప్ చేయండి"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"రెండు వేళ్లతో స్క్రీన్‌ను డబుల్-ట్యాప్ చేయండి"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"రెండు వేళ్లతో స్క్రీన్‌ను {0,number,integer} సార్లు వేగంగా ట్యాప్ చేయండి"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"స్క్రీన్‌పై మూడు సార్లు నొక్కండి"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"స్క్రీన్‌పై మూడు సార్లు ట్యాప్ చేయండి"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"స్క్రీన్‌ను {0,number,integer} సార్లు త్వరగా ట్యాప్ చేయండి. ఈ షార్ట్‌కట్ వల్ల మీ పరికరం పనితీరు నెమ్మదించవచ్చు"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"యాక్సెసిబిలిటీ బటన్ &amp; సంజ్ఞ గురించి మరింత తెలుసుకోండి"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"యాక్సెసిబిలిటీ బటన్‌ను ఉపయోగించడం. 3-బటన్ నావిగేషన్‌తో సంజ్ఞ అందుబాటులో లేదు."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"యాక్సెసిబిలిటీ ఫీచర్‌లను త్వరగా యాక్సెస్ చేయండి"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"ప్రారంభించడానికి"</b>\n"1. యాక్సెసిబిలిటీ సెట్టింగ్‌లకు వెళ్లండి\n2. ఏదైనా ఒక ఫీచర్‌ను ఎంచుకుని, షార్ట్‌కట్‌ను ట్యాప్ చేయండి\n3. ఆ ఫీచర్‌ను యాక్సెస్ చేయడానికి బటన్ లేదా సంజ్ఞలలో దేనిని ఉపయోగించాలనుకుంటున్నారో ఎంచుకోండి"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"ప్రారంభించడానికి"</b>\n"1. యాక్సెసిబిలిటీ సెట్టింగ్‌లకు వెళ్లండి\n2. ఫీచర్‌ను ఎంచుకుని, షార్ట్‌కట్‌ను ట్యాప్ చేయండి\n3. ఫీచర్‌ను యాక్సెస్ చేయడానికి బటన్‌ను ఎంచుకోండి"</string>
+    <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_size_title" msgid="5785110470538960881">"సైజ్‌"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"పవర్ బటన్ కాల్‌ను ముగిస్తుంది"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"పెద్ద మౌస్ పాయింటర్"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"మౌస్ పాయింటర్‌ను మరింత గుర్తించదగినదిగా చేయండి"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"యాప్‌లన్నింటిలో డార్క్ ధీమ్ వాడండి"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"డార్క్ ధీమ్స్ లేని యాప్‌లకు వర్తిస్తుంది. కొన్ని యాప్స్‌లో కలర్ మార్పిడుల డిస్‌ప్లేసమస్యలు ఉండవచ్చు."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"యానిమేషన్‌లను తీసివేయండి"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"స్క్రీన్ మీద కదలికను తగ్గించండి"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"మోనో ఆడియో"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"మీరు ఒక యాప్‌‌తో చేసే ఇంటరాక్షన్‌లను లేదా హార్డ్‌వేర్ సెన్సార్‌ను ట్రాక్ చేస్తూ మీ త‌ర‌ఫున యాప్‌లతో ఇంటరాక్ట్ చేయగలదు."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"అనుమతించండి"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"వద్దు"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"ఆపివేయి"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"రద్దు చేయండి"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"\'<xliff:g id="SERVICE">%1$s</xliff:g>\'ను ఆపివేయాలా?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"\'<xliff:g id="STOP">%1$s</xliff:g>\'ను నొక్కడం ద్వారా, <xliff:g id="SERVICE">%2$s</xliff:g> నిలిపివేయబడుతుంది."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ఆఫ్ చేయండి"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"ఆన్‌లోనే"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g>‌ను ఆఫ్ చేయాలా?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"సేవలు ఇన్‌స్టాల్ చేయబడలేదు"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ఏ సేవను ఎంచుకోలేదు"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"వివరణ ఏదీ అందించబడలేదు."</string>
     <string name="settings_button" msgid="2195468788019730377">"సెట్టింగ్‌లు"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"లైట్ సెన్సిటివిటీ, ఫోటోఫోబియా, ముదురు రంగు రూపం, మైగ్రేన్, తలనొప్పి, రీడింగ్ మోడ్, నైట్ మోడ్, బ్రైట్‌నెస్‌ను తగ్గించండి, వైట్ పాయింట్"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"సులభమైన వాడకం, సులభంగా యాక్సెస్, సహాయం, సహాయకరం"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"విజన్, వినికిడి, అంధత్వం, చెవుడు, మోటార్, నేర్పరితనం, సహాయకరం, అసిస్టెన్స్, ఉపయోగించడం సులభం, యాక్సెస్ చేయడం సులభం, చేయి, సహాయం"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"విండో మాగ్నిఫైయర్, జూమ్, మ్యాగ్నిఫికేషన్, తక్కువ విజన్, పెద్దదిగా చేయి, పెద్దగా చేయి"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"క్యాప్షన్‌లు, సబ్‌టైటిల్స్, CC, Live Transcribe, వినడంలో సమస్య, వినికిడి ఎర్రర్, CART, స్పీచ్ టూ టెక్స్ట్, సబ్‌టైటిల్"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"రంగు కాంట్రాస్ట్"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"మోటార్, మౌస్"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"వినికిడి పరికారాలు, వినికిడి సమస్యలు, వినికిడి లోపం, కోక్లియర్ ఇంప్లాంట్‌లు, యాంప్లిఫికేషన్ పరికరాలు, సౌండ్ ప్రాసెసర్‌లు"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"మోటార్, మౌస్, ఎక్స్‌టర్నల్ మౌస్, హెడ్ మౌస్, అడాప్టివ్ మౌస్, చక్రాల కుర్చీ, జాయ్‌స్టిక్"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"వినికిడి పరికారాలు, వినికిడి సమస్యలు, వినికిడి లోపం, కోక్లియర్ ఇంప్లాంట్‌లు, యాంప్లిఫికేషన్ పరికరాలు, సౌండ్ ప్రాసెసర్‌లు, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"వినడంలో సమస్య, వినికిడి ఎర్రర్, క్యాప్షన్‌లు, టెలీటైప్, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"మూడు బటన్‌లు"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"నేర్పరితనం, మోటార్, సీనియర్, ఆర్థరైటిస్, rsi, స్ట్రోక్, వణుకు, మల్టిపుల్ స్క్లేరోసిస్, సెరిబ్రల్ పాల్సీ, వణుకు, రిపీటీటివ్ స్ట్రెయిన్ గాయం, చేయి"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ఆలస్యం, నేర్పరితనం, సీనియర్"</string>
     <string name="print_settings" msgid="8519810615863882491">"ప్రింటింగ్‌"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ఆఫ్"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ప్రింట్ సర్వీస్ ఆన్‌లో ఉంది}other{# ప్రింట్ సర్వీస్‌లు ఆన్‌లో ఉన్నాయి}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"చాలా ఎక్కువగా బ్యాటరీని వినియోగించే యాప్‌లను చూడండి"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"మీ బ్యాటరీని రక్షించడానికి ఛార్జింగ్ ఆప్టిమైజ్ చేయబడింది"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"మీ బ్యాటరీ లైఫ్‌ను పొడిగించడంలో సహాయపడటానికి, ఛార్జింగ్ ఆప్టిమైజ్ చేయబడింది"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"మీ బ్యాటరీని రక్షించడానికి ఛార్జింగ్ ఆప్టిమైజ్ చేయబడింది"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"మీ బ్యాటరీ జీవితకాలాన్ని పొడిగించడంలో సహాయపడటానికి, డాక్ చేయబడినప్పుడు ఛార్జింగ్ ఆప్టిమైజ్ చేయబడుతుంది"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"మీ బ్యాటరీని రక్షించడానికి ఛార్జింగ్ ఆప్టిమైజ్ చేయబడింది"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"మీ బ్యాటరీ జీవితకాలాన్ని పొడిగించడంలో సహాయపడటానికి, డాక్ చేయబడినప్పుడు ఛార్జింగ్ ఆప్టిమైజ్ చేయబడుతుంది"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"పూర్తిగా ఛార్జింగ్ చేయండి"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"మీ బ్యాటరీని రక్షించడానికి, తదుపరిసారి మీ టాబ్లెట్ డాక్ చేయబడినప్పుడు ఛార్జింగ్ ఆప్టిమైజ్ చేయబడుతుంది"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"పాజ్ చేయబడిన ఛార్జింగ్ గురించి మరింత తెలుసుకోండి"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ఛార్జింగ్‌ను కొనసాగించండి"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"అధిక శక్తి వినియోగానికి సంబంధించిన నేపథ్య కార్యకలాపాం చేర్చబడుతుంది"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"తీసివేయండి"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"రద్దు చేయండి"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"ఫుల్ కావడానికి ఛార్జ్ చేయండి"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ఛార్జింగ్ యాక్సెసరీతో సమస్య ఉంది"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ఛార్జింగ్ అనుకూలంగా లేకపోవడం అనే దాని గురించి మరింత తెలుసుకోండి"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"బ్యాటరీ మేనేజర్"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"యాప్‌లను ఆటోమేటిక్‌గా నిర్వహించండి"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ప్రస్తుతం"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"బ్యాటరీ వినియోగం చార్ట్"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"రోజువారీ బ్యాటరీ వినియోగ చార్ట్"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"గంటలవారీ బ్యాటరీ వినియోగ చార్ట్"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> నుండి <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> వరకు బ్యాటరీ లెవెల్ శాతం"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"కిందటి సారి పూర్తిగా ఛార్జ్ చేసినప్పటి నుండి బ్యాటరీ వినియోగం"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"బ్యాటరీ వినియోగ వ్యవధి : <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"కిందటి సారి పూర్తిగా ఛార్జ్ చేసినప్పటి నుండి పరికర వినియోగ వ్యవధి"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"అత్యవసర డయలింగ్ సిగ్నల్"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"అత్యవసర కాల్ వచ్చినప్పుడు చేయాల్సిన విధిని సెట్ చేయండి"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"బ్యాకప్"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"ఆన్‌లో ఉంది"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ఆఫ్‌లో ఉంది"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"బ్యాకప్ &amp; పునరుద్ధరణ"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"వ్యక్తిగత డేటా"</string>
     <string name="backup_data_title" msgid="507663517227498525">"నా డేటాను బ్యాకప్ చేయి"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"పేరు"</string>
     <string name="vpn_type" msgid="5533202873260826663">"రకం"</string>
     <string name="vpn_server" msgid="2908816134941973935">"సర్వర్ అడ్రస్"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP ఎన్‌క్రిప్షన్ (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP రహస్యం"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec ఐడెంటిఫైయర్"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec ప్రీ-షేర్డ్ కీ"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec వినియోగదారు సర్టిఫికెట్"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA సర్టిఫికెట్"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec సర్వర్ సర్టిఫికెట్"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"అధునాతన ఆప్షన్‌లను చూపు"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS సెర్చ్ డొమైన్‌లు"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS సర్వర్‌లు (ఉదా. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"ఫార్వర్డింగ్ రూట్‌లు (ఉదా. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"యూజర్ పేరు"</string>
     <string name="vpn_password" msgid="1183746907642628127">"పాస్‌వర్డ్"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"ఖాతా సమాచారాన్ని సేవ్ చేయండి"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ఉపయోగించడం లేదు)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(సర్వర్‌ను ధృవీకరించదు)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(సర్వర్ నుండి స్వీకరించబడింది)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"ఈ రకమైన VPNని ఎల్లప్పుడూ కనెక్ట్ చేసి ఉంచడం సాధ్యం కాదు"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"ఎల్లప్పుడూ ఆన్‌లో ఉండే VPNలో కేవలం సంఖ్యాత్మక సర్వర్ అడ్రస్‌లకు మాత్రమే మద్దతు ఉంటుంది"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ఎల్లప్పుడూ ఆన్‌లో ఉండే VPN కోసం DNS సర్వర్‌ని తప్పనిసరిగా పేర్కొనాలి"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ఎల్లప్పుడూ ఆన్‌లో ఉండే VPN కోసం DNS సర్వర్ అడ్రస్‌లు తప్పనిసరిగా సంఖ్యలు అయి ఉండాలి"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ఎంటర్ చేసిన సమాచారానికి ఎల్లప్పుడూ ఆన్‌లో ఉండే VPN సపోర్ట్ చేయదు"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"రద్దు చేయండి"</string>
     <string name="vpn_done" msgid="5137858784289564985">"తీసివేయండి"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN లేని కనెక్షన్‌లను బ్లాక్ చేయండి"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN కనెక్షన్ అవసరమా?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"సురక్షితం కాదు. IKEv2 VPNకు అప్‌డేట్ చేయండి"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"సపోర్ట్ చేయని VPNను ప్రారంభించడంలో విఫలమయింది."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"ఎల్లప్పుడూ కనెక్ట్ చేయబడి ఉండటానికి VPN ప్రొఫైల్‌ను ఎంచుకోండి. ఈ VPNకి కనెక్ట్ అయి ఉన్నప్పుడు మాత్రమే నెట్‌వర్క్ ట్రాఫిక్ అనుమతించబడుతుంది."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ఏదీ వద్దు"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"ఎల్లప్పుడూ-ఆన్‌లో ఉండే VPNకి సర్వర్ మరియు DNS రెండింటి IP అడ్రస్‌ అవసరం."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"యాంబర్ అలర్ట్‌లు"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"పిల్లల అపహరణల గురించి వార్తలను స్వీకరించండి"</string>
     <string name="repeat_title" msgid="8676570486899483606">"రిపీట్‌ చేయండి"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"కాల్ నిర్వాహికిని ప్రారంభించండి"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"మీరు కాల్స్‌ను ఎలా చేయాలో మేనేజ్ చేయడానికి ఈ సేవను అనుమతించండి."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"కాల్ నిర్వాహికి"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"వైర్‌లెస్ ఎమర్జెన్సీ అలర్ట్‌లు"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"నెట్‌వర్క్ ఆపరేటర్‌లు"</string>
     <string name="access_point_names" msgid="5768430498022188057">"యాక్సెస్ పాయింట్ పేర్లు"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"చెల్లించడం, నొక్కడం, పేమెంట్‌లు"</string>
     <string name="keywords_backup" msgid="707735920706667685">"బ్యాకప్, బ్యాకప్"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"సంజ్ఞ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ముఖం, అన్‌లాక్, ప్రామాణీకరణ, సైన్ ఇన్"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ఫేస్, అన్‌లాక్, ప్రామాణీకరణ, సైన్ ఇన్, వేలిముద్ర, బయోమెట్రిక్"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl వెర్షన్, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"పవర్ ఆన్ చేసేటప్పుడు ధ్వనులు"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"లైవ్ క్యాప్షన్"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"మీడియాకు ఆటోమేటిక్ క్యాప్షన్‌లు"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ఫోన్ స్పీకర్‌లు"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"టాబ్లెట్ స్పీకర్‌లు"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"పరికర స్పీకర్‌లు"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"వైర్ ఉన్న హెడ్‌ఫోన్స్"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"అనుకూల మీడియా నుండి వచ్చే ఆడియో మరింతగా లీనమయ్యేలా చేస్తుంది"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ఆఫ్‌లో ఉంది"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"ఇటీవలి సంభాషణలు తీసివేయబడ్డాయి"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"సంభాషణ తీసివేయబడింది"</string>
     <string name="clear" msgid="5092178335409471100">"క్లియర్ చేయండి"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>ను తీసివేయండి"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ప్రాధాన్యతగల, అలాగే మార్పులు చేసిన సంభాషణలు ఇక్కడ కనిపిస్తాయి"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"మీరు ఒక సంభాషణను ఒకసారి ప్రాధాన్యతగలదిగా మార్క్ చేసినా, లేదా సంభాషణలకు ఇతర మార్పులు ఏవైనా చేసినా, అవి ఇక్కడ కనిపిస్తాయి. \n\nసంభాషణ సెట్టింగ్‌లను ఇలా మార్చండి: \nకిందకు-లాగే షేడ్‌ను తెరవడానికి స్క్రీన్‌పై నుండి కిందకి స్వైప్ చేయండి, ఆపై ఒక సంభాషణను తాకి, అలాగే పట్టుకుని ఉండండి."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"తక్కువ స్థాయికి తగ్గించండి"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ఆఫ్‌లో ఉంది"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"యాప్‌ను పిన్ చేయడం"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"యాప్‌ను పిన్ చేయడం వలన, ప్రస్తుతం ఉన్న యాప్‌ను మీరు మళ్లీ అన్‌పిన్ చేసేంత వరకూ అది వీక్షణలోనే ఉంటుంది. ఒక నిర్దిష్ట గేమ్‌ను ఆడటానికి నమ్మకమైన ఫ్రెండ్‌ను అనుమతించడం అనేది ఈ ఫీచర్ వినియోగానికి ఒక ఉదాహరణ."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"ఒక యాప్‌ను పిన్ చేసినప్పుడు, పిన్ చేసిన యాప్ వేరే యాప్‌లను తెరవవచ్చు, అలాగే వ్యక్తిగత డేటా‌ను యాక్సెస్ చేయవచ్చు. \n\n\'యాప్‌ను పిన్ చేయడం\'ను ఉపయోగించడానికి: 	\n1. \'యాప్‌ను పిన్ చేయడం\'ను ఆన్ చేయండి 	\n2. ఓవర్‌వ్యూను తెరవండి 	\n3. స్క్రీన్ ఎగువున యాప్ చిహ్నాన్ని ట్యాప్ చేసి, ఆపై పిన్‌ను ట్యాప్ చేయండి"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"ఒక యాప్‌ను పిన్ చేసినప్పుడు, పిన్ చేసిన యాప్ వేరే యాప్‌లను తెరవవచ్చు, అలాగే వ్యక్తిగత డేటా‌ను యాక్సెస్ చేయవచ్చు. \n\nమీ పరికరాన్ని మీరు మరొకరితో సురక్షితంగా షేర్ చేసుకోవాలంటే, బదులుగా గెస్ట్ యూజర్‌ను ఉపయోగించి చూడండి. \n\n\'యాప్‌ను పిన్ చేయడం\'ను ఉపయోగించడానికి: 	\n1. \'యాప్‌ను పిన్ చేయడం\'ను ఆన్ చేయండి 	\n2. ఓవర్‌వ్యూను తెరవండి 	\n3. స్క్రీన్ ఎగువున యాప్ చిహ్నాన్ని ట్యాప్ చేసి, ఆపై పిన్‌ను ట్యాప్ చేయండి"</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_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">"అన్‌పిన్ చేయడానికి ముందు పిన్‌ను అడుగు"</string>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"యాప్‌ను ఉపయోగించకపోతే, మేనేజ్ చేయండి"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"అనుమతులను తీసివేయండి, తాత్కాలిక ఫైల్స్‌ను తొలగించండి, నోటిఫికేషన్‌లను ఆపివేయండి, యాప్‌ను ఆర్కైవ్ చేయండి"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"అన్ని యాప్‌లు"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"ఇన్‌స్టాల్ చేసిన యాప్‌లు"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"ఇన్‌స్టంట్ యాప్‌లు"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"ఖాళీ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"యాప్‌ల ద్వారా ఉపయోగించబడిన మెమరీ"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{{time} కిత్రం 1 యాప్ మెమరీని ఉపయోగించింది}other{{time} క్రితం # యాప్‌లు మెమరీని ఉపయోగించాయి}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"మెమరీ వినియోగ ప్రొఫైలింగ్‌ను ఆన్ చేయండి"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"మెమరీ వినియోగ ప్రొఫైలింగ్‌కు అదనపు సిస్టమ్ సోర్స్‌లు అవసరం."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"మెమరీ ప్రొఫైలింగ్ డిజేబుల్ చేయబడింది"</string>
     <string name="running_frequency" msgid="7260225121706316639">"తరచుదనం"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"గరిష్ట వినియోగం"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"డేటాను వినియోగించలేదు"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"ఇతర యాప్‌ల ఎగువున ప్రదర్శించండి"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"ఇతర యాప్‌ల ఎగువున కనిపించడానికి అనుమతించండి"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"ఈ యాప్‌ని మీరు ఉపయోగించే ఇతర యాప్‌ల ఎగువున ప్రదర్శించడానికి అనుమతించండి. ఈ యాప్ మీరు స్క్రీన్‌పై ఎక్కడ ట్యాప్ చేస్తున్నారు, ఏది మారుస్తున్నారు అనేది చూడగలుగుతుంది."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"మీడియా అవుట్‌పుట్‌ను మార్చండి"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"యాప్‌నకు మీడియా అవుట్‌పుట్ మార్చే అనుమతివ్వు"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"కనెక్ట్ అయిన పరికరాలలో ఏవి ఇతర యాప్‌లలోని ఆడియో లేదా వీడియోను ప్లే చేయాలో ఎంచుకునే వీలును ఈ యాప్‌నకు కల్పించండి. అనుమతిస్తే, హెడ్‌ఫోన్స్, స్పీకర్‌ల వంటి అందుబాటులో ఉన్న పరికరాల లిస్ట్‌ను ఈ యాప్ యాక్సెస్ చేయగలదు, అలాగే ఆడియో లేదా వీడియోను స్ట్రీమ్ చేయడానికి లేదా ప్రసారం చేయడానికి ఏ అవుట్‌పుట్ పరికరాన్ని ఉపయోగించాలో ఇదే ఎంచుకుంటుంది."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"అన్ని ఫైళ్లకు యాక్సెస్"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"వాయిస్ యాక్టివేషన్‌ను మెరుగుపరచండి"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"వాయిస్ యాక్టివేషన్ మోడల్‌ను మెరుగుపరచడానికి ఈ పరికరం ప్రైవేట్ ఇంటెలిజెన్స్‌ను ఉపయోగిస్తుంది. అందరికీ మోడల్‌ను మెరుగుపరిచేటప్పుడు గోప్యతను నిర్వహించడానికి చాలా మంది యూజర్‌లలో సమగ్రమైన అప్‌డేట్‌లను యాప్‌లు స్వీకరించగలవు.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> డేటా హెచ్చరిక"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> డేటా పరిమితి"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> డేటా హెచ్చరిక / <xliff:g id="ID_2">^2</xliff:g> డేటా పరిమితి"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"క్యారియర్ డేటా అకౌంటింగ్, పరికర డేటా అకౌంటింగ్ మధ్య తేడా ఉండవచ్చు"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"క్యారియర్ నెట్‌వర్క్‌లు వినియోగించిన డేటా మినహాయించబడుతుంది"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> వినియోగించబడింది"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"డేటా హెచ్చరికను సెట్ చేయండి"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> క్రితం అప్‌డేట్ చేయబడింది"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"ఇప్పుడే <xliff:g id="ID_1">^1</xliff:g> అప్‌డేట్ చేసింది"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ఇప్పుడే అప్‌డేట్ చేయబడింది"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ప్లాన్‌ని చూడండి"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"వివరాలను చూడండి"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"డేటా సేవర్"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"అపరిమిత డేటా"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"బ్యాటరీ వినియోగ అసాధారణత"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"క్విక్ సెట్టింగ్‌ల డెవలపర్ టైల్స్"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb ప్రామాణీకరణ గడువు ముగింపును డిజేబుల్ చేయండి"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ఆటోమేటిక్ (7 రోజులు) లేదా యూజర్-కాన్ఫిగర్ చేసిన (కనీసం 1 రోజు) సమయం లోపల తిరిగి కనెక్ట్ చేయని వ్యవస్థల కోసం adb అధికారాల ఆటోమేటిక్ ఉపసంహరణను డిజేబుల్ చేయండి."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"విన్‌స్కోప్ ట్రేస్"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"సెన్సార్‌లు ఆపివేయబడ్డాయి"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"వర్క్ ప్రొఫైల్ సెట్టింగ్‌లు"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"వ్యక్తిగత యాప్‌లలో వర్క్ డైరెక్టరీ కాంటాక్ట్‌ల కోసం సెర్చ్ చేయండి"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"ఆటోఫిల్‌ సర్వీస్"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ఆటోమేటిక్ ఆటోఫిల్ సర్వీస్ సెట్టింగ్"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"పాస్‌వర్డ్‌లు"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"పాస్‌వర్డ్‌లు, పాస్-కీలు, డేటా సర్వీస్‌లు"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"అదనపు ప్రొవైడర్‌లు"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# పాస్‌వర్డ్}other{# పాస్‌వర్డ్‌లు}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"ఆటో, పూరించు, ఆటోఫిల్, పాస్‌వర్డ్"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"డేటా, పాస్-కీ, పాస్‌వర్డ్"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"ఆటోమేటిక్, ఫిల్, ఆటోఫిల్, డేటా, పాస్-కీ, పాస్‌వర్డ్"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"పాస్‌వర్డ్‌లు, పాస్-కీలు, డేటా సర్వీస్‌లు"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;అన్ని సర్వీస్‌లను ఆఫ్ చేయాలా?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; మీరు సైన్ ఇన్ చేసినప్పుడు ఆటోఫిల్ చేయడానికి పాస్‌వర్డ్‌లు, పాస్-కీలు, అలాగే ఇతర సేవ్ చేసిన సమాచారం అందుబాటులో ఉండదు"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;మీ ప్రాధాన్య సర్వీస్‌ను &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;కి మార్చాలా?&lt;/b&gt;&lt;br/&gt; &lt;br/&gt; కొత్త పాస్‌వర్డ్‌లు, పాస్-కీలు, ఇంకా ఇతర సమాచారం ఇప్పటినుండి ఇక్కడ సేవ్ చేయబడుతుంది. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; వేటిని ఆటోఫిల్ చేయాలో నిర్ణయించడానికి మీ స్క్రీన్‌పై ఉన్న వాటిని ఉపయోగించవచ్చు"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$sని ఉపయోగించాలా?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"మీరు కేవలం 5 సర్వీస్‌ను మాత్రమే కలిగి ఉండవచ్చు"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"మరొక సర్వీస్‌ను జోడించడానికి కనీసం 1 సర్వీస్‌ను ఆఫ్ చేయండి"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"ఏది ఆటోఫిల్ చేయవచ్చో గుర్తించడానికి %1$s మీ స్క్రీన్‌పై ఉన్న వాటిని ఉపయోగిస్తుంది."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"పాస్‌వర్డ్‌లు, పాస్-కీలు అలాగే డేటా సర్వీస్‌ల పరిమితి"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"మీరు ఒకే సమయంలో గరిష్ఠంగా 5 పాస్‌వర్డ్‌లు, పాస్-కీలు అలాగే డేటా సర్వీస్‌లను యాక్టివ్‌గా కలిగి ఉండవచ్చు. మరిన్నింటిని జోడించడం కోసం ఇప్పటికే ఉన్న ఒక సర్వీస్‌ను ఆఫ్ చేయండి."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"పాస్‌వర్డ్‌లు, పాస్-కీలు, అలాగే డేటా సర్వీస్‌ల పరిమితి"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"మీరు ఒకే సమయంలో గరిష్ఠంగా 5 పాస్‌వర్డ్‌లు, పాస్-కీలు, అలాగే డేటా సర్వీస్‌లను యాక్టివ్‌గా జోడించవచ్చు. మరిన్నింటిని జోడించడం కోసం ఇప్పటికే ఉన్న ఒక సర్వీస్‌ను ఆఫ్ చేయండి."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ఆఫ్ చేయండి"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ఆటోఫిల్"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"లాగింగ్ స్థాయి"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"డీబగ్ చేయగల యాప్‌లకు మాత్రమే యాప్ అనుకూలత మార్పులు సవరించబడతాయి. డీబగ్ చేయగల యాప్‌ను ఇన్‌స్టాల్ చేసి మళ్లీ ట్రై చేయండి."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"మరో సెట్టింగ్‌పై ఆధారపడి ఉంటుంది"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"ఖాతా"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ఖాతాలు"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"పరికరం పేరు"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ప్రాథమిక సమాచారం"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"చట్ట సంబంధితం &amp; నియంత్రణ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC ట్యాగ్‌ను స్కాన్ చేసినప్పుడు ప్రారంభమవ్వడానికి ఈ యాప్‌ను అనుమతించండి.\nఈ అనుమతి ఆన్‌లో ఉన్నట్లయితే, ట్యాగ్ గుర్తించబడినప్పుడల్లా ఒక ఆప్షన్‌గా ఉపయోగించేందుకు ఈ యాప్ అందుబాటులో ఉంటుంది."</string>
     <string name="media_output_title" msgid="8283629315159510680">"మీడియాను ప్లే చేయండి"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"ఇందులో <xliff:g id="LABEL">%s</xliff:g>ను ప్లే చేయండి"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"ఆడియో ప్లే అవుతుంది"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"ఈ పరికరం"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"కాల్స్‌ల సమయంలో అందుబాటులో ఉండదు"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"కాల్ తీసుకోండి"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"మ్యూట్ చేసినవి"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"ఎనేబుల్ చేయడానికి, మొదట \"పవర్ బటన్‌ను నొక్కి &amp; పట్టుకోండి\" తర్వాత పవర్ మెనూకు మార్చండి."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"నెట్‌వర్క్ వివరాలు"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"మీ పరికరంలోని పేరు మీ ఫోన్‌లోని యాప్‌లకు కనిపిస్తుంది. మీరు బ్లూటూత్ పరికరాలకు కనెక్ట్ చేసినప్పుడు, Wi-Fi నెట్‌వర్క్‌కు కనెక్ట్ చేసినప్పుడు లేదా Wi-Fi హాట్‌స్పాట్‌ను సెటప్ చేసినప్పుడు ఇతర వ్యక్తులకు కూడా ఇది కనిపించవచ్చు."</string>
     <string name="devices_title" msgid="649715719278562515">"పరికరాలు"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"నెట్‌వర్క్‌ను ఎంచుకోండి"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"డిస్‌కనెక్ట్ అయ్యింది"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"పేరు"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"రంగు (అనుకూల యాప్‌లు ఉపయోగిస్తాయి)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"సేవ్ చేయండి"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIMను ఉపయోగించండి"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ఈ SIMను ఉపయోగించండి"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ఆఫ్"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ఈ SIMను డిజేబుల్ చేయడానికి, SIM కార్డ్‌ను తీసివేయండి"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g>ను యాక్టివేట్ చేయడానికి నొక్కండి"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIMను తొలగించండి"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ప్రాధాన్యత గల నెట్‌వర్క్ రకం"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"నెట్‌వర్క్ ఆపరేటింగ్ మోడ్‌ను మార్చండి"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ప్రాధాన్యత గల నెట్‌వర్క్ రకం"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"ధరల కోసం మీ నెట్‌వర్క్ ప్రదాతను అడగండి."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"యాప్ డేటా వినియోగం"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"చెల్లని నెట్‌వర్క్ మోడ్<xliff:g id="NETWORKMODEID">%1$d</xliff:g>. విస్మరించు."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"యాక్సెస్ పాయింట్ పేర్లు"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g>కి కనెక్ట్ చేసినప్పుడు అందుబాటులో ఉండదు"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>కు మారాలా?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"సిమ్ కార్డ్‌ను ఉపయోగించడానికి స్విచ్‌ అవ్వాలని అనుకుంటున్నారా?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>ను ఉపయోగించాలా?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ఒకసారి ఒక SIM మాత్రమే యాక్టివ్‌గా ఉంటుంది.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>కు స్విచ్ అవ్వడం వలన మీ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> సర్వీస్ రద్దు చేయబడదు."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ఒకే సమయంలో 1 eSIM మాత్రమే యాక్టివ్‌గా ఉంచవచ్చు.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>కి స్విచ్ అవడం వలన మీ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> సర్వీస్ రద్దు చేయబడదు."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ఒకసారి ఒక SIM మాత్రమే యాక్టివ్‌గా ఉంటుంది.\n\nస్విచ్ అవ్వడం వలన మీ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> సర్వీస్ రద్దు చేయబడదు."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"మీరు ఒకేసారి 2 SIMలను ఉపయోగించవచ్చు. <xliff:g id="CARRIER_NAME">%1$s</xliff:g>ను ఉపయోగించడానికి, మరొక SIMను ఆఫ్ చేయండి."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>కు మారండి"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>ను ఆఫ్ చేయండి"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"వద్దు, ధన్యవాదాలు"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"రద్దు చేయండి"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"స్విచ్ చేయి"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ఆఫ్ చేయండి"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIMను యాక్టివేట్ చేయడం సాధ్యం కాదు"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIMను తిరిగి ఆన్ చేయడానికి ట్రై చేయండి. సమస్య ఇంకా కొనసాగితే, మీ పరికరాన్ని రీస్టార్ట్ చేయండి."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"మీ SIMను సెటప్ చేయండి"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ఈ పరికరంలో పలు SIMలను ఉపయోగించడానికి మీ మొబైల్ నెట్‌వర్క్ ప్రాధాన్యతలను సెట్ చేయండి"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"మీ SIMలను లేబుల్ చేయండి"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"కాల్స్ చేస్తున్నప్పుడు, టెక్స్ట్‌లను పంపేటప్పుడు, డేటాను ఉపయోగిస్తున్నప్పుడు, సెట్టింగ్‌లలో మీరు ఈ లేబుళ్లను చూస్తారు"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM లేబుల్"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"లేబుల్"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"ఏ SIMలను ఉపయోగించాలో ఎంచుకోండి"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"మీరు ఒకేసారి 2 SIMలను ఉపయోగించవచ్చు"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"మీ ప్రధాన SIMలను సెట్ చేయండి"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"కాల్స్, టెక్స్ట్‌లు, డేటా కోసం ఆటోమేటిక్‌గా ఏ SIMలను ఉపయోగించాలో ఎంచుకోండి"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"మీ ప్రధాన SIMలు"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"కాల్స్"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"టెక్స్ట్‌లు"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"ఆటోమేటిక్‌గా డేటాను మార్చడం"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"కవరేజ్, లభ్యత ఆధారంగా ఏదైనా SIM నుండి డేటాను ఉపయోగించండి"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"డేటా మాత్రమే"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"సెటప్ చేయండి"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"తర్వాత"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"మొబైల్ నెట్‌వర్క్"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"ఫోన్ నంబర్"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM లేబుల్, రంగు"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"నెట్‌వర్క్ యాక్టివేషన్"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"క్యారియర్‌ మారుతోంది"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> యాక్టివ్‌గా ఉంది"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"తర్వాత ఎప్పుడైనా మీ మొబైల్ డేటా, కాల్ ఫీచర్‌లు, SMSలను ఉపయోగించడానికి, మీ నెట్‌వర్క్ సెట్టింగ్‌లకు వెళ్లండి"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ఈ eSIMను ఫ్యాక్టరీ రీసెట్ చేయాలా?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"ఈ SIMను తొలగించడం వలన ఈ పరికరం నుండి <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> సర్వీస్ తీసివేయబడుతుంది.\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> సర్వీస్ రద్దు చేయబడదు."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"తొలగించండి"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIMను తొలగిస్తోంది…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIMను తొలగించలేకపోయింది"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ఎర్రర్ కారణంగా ఈ SIMను తొలగించడం సాధ్యం కాలేదు.\n\nమీ పరికరాన్ని రీస్టార్ట్ చేసి మళ్లీ ట్రై చేయండి."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"పరికరానికి కనెక్ట్ చేయండి"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"మీ పరికరానికి కనెక్ట్ కావడానికి <xliff:g id="APPNAME">%1$s</xliff:g> యాప్ తాత్కాలిక Wi‑Fi నెట్‌వర్క్‌ను ఉపయోగించాలనుకుంటుంది"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"పరికరాలు ఏవీ కనుగొనబడలేదు. పరికరాలు ఆన్‌లో ఉన్నాయని మరియు కనెక్ట్ చేయడానికి అందుబాటులో ఉన్నాయని నిర్ధారించుకోండి."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"అత్యవసర కాల్స్‌"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Wi‑Fi కాలింగ్‌ను ఉపయోగించి అత్యవసర కాల్స్‌ను చేయడానికి మీ క్యారియర్‌కు మద్దతు లేదు.\nఅత్యవసర కాల్‌ను చేయాల్సినప్పుడు పరికరం ఆటోమేటిక్‌గా సెల్యులార్ నెట్‌వర్క్‌‌కు మారుతుంది.\nసెల్యులార్ కవరేజీ ఉన్న ప్రాంతాలలో మాత్రమే అత్యవసర కాల్స్‌ను చేయడానికి సాధ్యమవుతుంది."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"కాల్స్‌ల క్వాలిటీని మెరుగుపరచడానికి Wi‑Fiని ఉపయోగించండి"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"బ్యాకప్ కాలింగ్"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> అందుబాటులో లేకపోతే లేదా రోమింగ్‌లో ఉంటే, <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> కాల్స్ కోసం మీ మొబైల్ డేటా SIMను ఉపయోగించండి."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"బ్యాకప్ కాలింగ్"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ఇన్‌కమింగ్ MMS మెసేజ్‌"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS మెసేజ్‌ను పంపించడం సాధ్యం కాదు"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"మొబైల్ డేటా ఆఫ్‌లో ఉన్నప్పుడు <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>లో MMS సందేశ సేవను అనుమతించడానికి నొక్కండి"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"మీ వర్క్ పాలసీకి సంబంధించిన సమాచారం"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"మీ IT అడ్మిన్ ద్వారా సెట్టింగ్‌లు మేనేజ్ చేయబడతాయి."</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K పేజీ సైజ్‌తో బూట్ చేయండి"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"16Kపేజీ సైజ్, సపోర్ట్ చేసే కెర్నెల్‌తో పరికరం బూట్"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16KB పేజీల అనుకూలమైన కెర్నెల్‌తో రీబూట్ చేయాలా?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"హెచ్చరిక: కొన్ని అప్లికేషన్‌లు ఈ మోడ్‌లో అనుకూలంగా పని చేయవు. నిర్ధారణ తర్వాత పరికరం రీబూట్ అవుతుంది."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4KB పేజీల అనుకూలమైన కెర్నెల్‌తో రీబూట్ చేయాలా?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"నిర్ధారణ తర్వాత పరికరం రీబూట్ అవుతుంది."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"కెర్నెల్‌ను 16KB పేజీల అనుకూల కెర్నెల్‌తో అప్‌డేట్ చేయడం విఫలమైంది."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"మార్పు వర్తింపజేయబడుతోంది"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"బగ్ రిపోర్ట్‌ హ్యాండ్లర్"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"మీ డివైజ్‌లో బగ్ రిపోర్ట్ షార్ట్‌కట్‌ను ఏ యాప్ నిర్వహించాలో నిర్ణయిస్తుంది."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"వ్యక్తిగతం"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"ప్లేబ్యాక్‌ను త్వరగా కొనసాగించడానికి, క్విక్ సెట్టింగ్‌లలో మీడియా ప్లేయర్‌ను తెరిచి ఉంచండి"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"లాక్ స్క్రీన్‌లో మీడియాను చూపండి"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"ప్లేబ్యాక్‌ను త్వరగా కొనసాగించడానికి, లాక్ స్క్రీన్‌లో మీడియా ప్లేయర్‌ను తెరిచి ఉంచండి"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"మీడియా సిఫార్సులను చూపించు"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistant మీడియా సిఫార్సులను చూపించు"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"మీ యాక్టివిటీ ఆధారంగా"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ప్లేయర్‌ను దాచు"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"ప్లేయర్‌ను చూపించు"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMలు"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"యాక్టివ్‌గా ఉంది"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ఇన్‌యాక్టివ్"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> కోసం ఆటోమేటిక్ సెట్టింగ్"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"కాల్స్"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"అనుకూల మీడియా నుండి వచ్చే ఆడియో మరింతగా లీనమయ్యేలా చేస్తుంది"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"హెడ్ ట్రాకింగ్"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"మీరు మీ తలను మరింత సహజంగా వినిపించేలా కదిపేటప్పుడు ఆడియో మారుతుంది"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"అనుమతులను సింక్ చేయండి"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>లో మీరు అనుమతించిన అదే యాప్ అనుమతులను <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>‌కి ఇవ్వండి"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"ఫోన్ నుండి అనుమతులను సింక్ చేయండి"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"మీరు ఈ ఫోన్‌కు ఇచ్చిన యాప్ అనుమతులను మీ వాచ్‌కు కూడా ఇవ్వండి"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ఆడియో పరికరం రకం"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"తెలియనిది"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"స్పీకర్"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"మధ్యస్థం"</string>
     <string name="contrast_high" msgid="3988567609694797696">"అధికం"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ఈ యాప్‌ను 1 విండోలో మాత్రమే తెరవవచ్చు"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ఆన్‌లో ఉంది"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ఆఫ్‌లో ఉంది"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ఆఫ్‌లో ఉంది"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ఆఫ్‌లో ఉంది"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"ఆన్‌లో ఉంది"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ఆఫ్‌లో ఉంది"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"ఆన్‌లో ఉంది"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ఆఫ్‌లో ఉంది"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"లైట్ స్క్రీన్‌లను డార్క్‌గా, అలాగే డార్క్ స్క్రీన్‌లను లైట్‌గా మారుస్తుంది"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"స్క్రీన్‌పై జూమ్ - ఇన్ చేయండి"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ఆఫ్‌లో ఉంది"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ఆఫ్‌లో ఉంది"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"ఆన్‌లో ఉంది"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ఆఫ్‌లో ఉంది"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"ఆన్‌లో ఉంది"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"పాస్‌వర్డ్ ఇప్పుడు సెటప్ చేయబడింది"</string>
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index dd07c77..a9bb803 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"หลังจาก 1 นาที"</item>
     <item msgid="1574040255478150028">"หลังจาก 5 นาที"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index b9bd926..a24276d 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"เฉพาะผู้ใช้ที่ดูแลระบบเท่านั้นที่เข้าถึงการตั้งค่าของนักพัฒนาแอปได้"</string>
     <string name="header_category_system" msgid="1665516346845259058">"ระบบ"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"กำลังให้บริการ"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"ไม่พร้อมให้บริการ"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"ปัดขึ้นเพื่อดำเนินการต่อ"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"พับโทรศัพท์แล้วปัดขึ้นบนหน้าจอด้านหน้าเพื่อใช้แอปต่อ หรือรอไม่กี่วินาทีเพื่อให้หน้าจอล็อก"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"ที่เกี่ยวข้อง"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"เสียงเรียกเข้าและการปลุก"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"เสียงในระหว่างการโทร"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"สื่อ"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"เสียงการแจ้งเตือนและระบบอื่นๆ"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"เสียงของสื่อและระบบ"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"การแจ้งเตือน"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"เอาต์พุตเสียงจะกำหนดตามแต่ละแอปโดยค่าเริ่มต้น"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"อุปกรณ์บลูทูธที่ไม่มีชื่อ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"กำลังค้นหา"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"เปิดบลูทูธแล้ว"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"ดูทั้งหมด"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"ดูทั้งหมด"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"สไตลัส"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"มีการกดปุ่มค้าง"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (โปรไฟล์งาน)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"เชื่อมต่อกับสตรีม LE Audio"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"สตรีมเสียงที่อยู่ใกล้เคียง"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"สตรีมเสียง"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"เชื่อมต่อกับสตรีมเสียงโดยใช้คิวอาร์โค้ด"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"ไม่พบสตรีมเสียงที่อยู่ใกล้เคียง"</string>
     <string name="date_and_time" msgid="1788358029823431692">"วันที่และเวลา"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"พร็อกซี"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"ล้างข้อมูล"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"หากต้องการเลือกภาษาของแต่ละแอป ให้ไปที่การตั้งค่าภาษาของแอป"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ดูข้อมูลเพิ่มเติมเกี่ยวกับภาษาของแอป"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"เปลี่ยนภาษาของระบบเป็นภาษา %s ไหม"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"เพิ่มภาษา %s เป็นภาษาที่ต้องการใช่ไหม"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"การดำเนินการนี้จะช่วยให้แอปและเว็บไซต์ทราบว่าคุณต้องการภาษานี้ด้วย"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"การตั้งค่าอุปกรณ์และค่ากำหนดตามพื้นที่จะเปลี่ยนแปลงไป"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"เปลี่ยน"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"ภาษา%sไม่พร้อมใช้งาน"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"วันเสาร์"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"หากแอปไม่รองรับค่ากำหนดตามพื้นที่ แอปจะใช้การตั้งค่าภาษาเริ่มต้นแทน"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"ดูข้อมูลเพิ่มเติมเกี่ยวกับค่ากำหนดภาษา"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"ค่ากำหนดเพิ่มเติม"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"คำที่ใช้เรียกบุคคล"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"กำหนดว่าต้องการให้แอปเรียกตัวคุณอย่างไร"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"แอปสามารถใช้คำเรียกตัวคุณตามที่คุณกำหนด"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"ไม่ระบุ"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"เพศหญิง"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"เพศชาย"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"กลางๆ"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{นำภาษาที่เลือกออกใช่ไหม}other{นำภาษาที่เลือกออกใช่ไหม}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"ข้อความจะแสดงเป็นภาษาอื่น"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ไม่สามารถนำทุกภาษาออกได้"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"ตำแหน่ง"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"ใช้ตำแหน่ง"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"ปิด"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{เปิดอยู่ - แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}other{เปิดอยู่ - แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{เปิดอยู่/แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}other{เปิดอยู่/แอป # แอปมีสิทธิ์เข้าถึงตำแหน่ง}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"กำลังโหลด…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"แอปที่มีสิทธิ์เข้าถึงอุปกรณ์ที่อยู่ใกล้เคียงจะสามารถระบุตำแหน่งซึ่งสัมพันธ์กับอุปกรณ์ที่เชื่อมต่อ"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"สิทธิ์เข้าถึงตำแหน่งปิดอยู่สำหรับแอปและบริการต่างๆ ระบบอาจยังส่งตำแหน่งของอุปกรณ์ไปให้หน่วยกู้ภัยฉุกเฉินเมื่อคุณโทรหาหรือส่ง SMS ถึงหมายเลขฉุกเฉิน"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าตำแหน่ง"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าตำแหน่ง"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"หากต้องการเปลี่ยนสิทธิ์เข้าถึงตำแหน่ง ให้ไปที่การตั้งค่า &gt; ความปลอดภัยและความเป็นส่วนตัว &gt; การควบคุมความเป็นส่วนตัว"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"ใช้แผ่นปกป้องหน้าจอที่มีป้ายรับรอง Made For Google เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด หากใช้แผ่นปกป้องหน้าจออื่นๆ อาจใช้ลายนิ้วมือของบุตรหลานไม่ได้"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"การปลดล็อกด้วยนาฬิกา"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"เมื่อตั้งค่าการปลดล็อกด้วยใบหน้าและลายนิ้วมือ โทรศัพท์จะขอให้สแกนลายนิ้วมือหากคุณสวมหน้ากากหรืออยู่ในที่มืด\n\nคุณสามารถปลดล็อกด้วยนาฬิกาหากระบบจดจำใบหน้าหรือลายนิ้วมือของคุณไม่ได้"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"คุณสามารถปลดล็อกด้วยนาฬิกาหากระบบจดจำลายนิ้วมือของคุณไม่ได้"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"คุณสามารถปลดล็อกด้วยนาฬิกาหากระบบจดจำใบหน้าของคุณไม่ได้"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"เมื่อตั้งค่าการปลดล็อกด้วยใบหน้าและปลดล็อกด้วยลายนิ้วมือ โทรศัพท์จะขอให้สแกนลายนิ้วมือเมื่อคุณสวมหน้ากากหรืออยู่ในที่มืด\n\nการปลดล็อกด้วยนาฬิกาเป็นอีกวิธีหนึ่งที่สะดวกในการปลดล็อกโทรศัพท์ เช่น เมื่อนิ้วเปียกอยู่หรือระบบจดจำใบหน้าไม่ได้"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"การปลดล็อกด้วยนาฬิกาเป็นอีกวิธีหนึ่งที่สะดวกในการปลดล็อกโทรศัพท์ เช่น เมื่อระบบจดจำลายนิ้วมือไม่ได้"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"การปลดล็อกด้วยนาฬิกาเป็นอีกวิธีหนึ่งที่สะดวกในการปลดล็อกโทรศัพท์ เช่น เมื่อระบบจดจำใบหน้าไม่ได้"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"ใช้ลายนิ้วมือหรือนาฬิกาเพื่อ"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"ใช้ใบหน้าหรือนาฬิกาเพื่อ"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"ใช้ใบหน้า ลายนิ้วมือ หรือนาฬิกาเพื่อ"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"เพิ่มใบหน้าและ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"วิธีการทำงาน"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"นาฬิกาต้องปลดล็อกไว้ สวมอยู่บนข้อมือของคุณ และอยู่ในระยะสัญญาณของโทรศัพท์เครื่องนี้ คุณจะไม่ต้องปลดล็อกนาฬิกาอีกครั้งขณะสวมไว้บนข้อมือ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"เมื่อโทรศัพท์เครื่องนี้ปลดล็อกแล้ว คุณจะได้รับการแจ้งเตือนที่นาฬิกา หากเป็นการปลดล็อกโดยไม่ได้ตั้งใจ ให้แตะการแจ้งเตือนเพื่อล็อกโทรศัพท์อีกครั้ง"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"คุณควบคุมได้"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"คุณนำนาฬิกาออกจากฟีเจอร์การปลดล็อกด้วยนาฬิกาได้ทุกเมื่อในการตั้งค่า"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"แตะการแจ้งเตือน"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ปัดขึ้นบนหน้าจอล็อก"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"เลือกนาฬิกา"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"นาฬิกาที่พร้อมใช้งาน"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ยกเลิก"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ยืนยัน"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ตั้งค่าเรียบร้อยแล้ว"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ตอนนี้คุณสามารถใช้นาฬิกาเพื่อปลดล็อกโทรศัพท์เครื่องนี้เมื่อปัดขึ้นบนหน้าจอล็อกหรือแตะการแจ้งเตือน"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"เสร็จสิ้น"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"การปลดล็อกด้วยนาฬิกา"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"คุณสามารถใช้นาฬิกาเพื่อปลดล็อกโทรศัพท์เครื่องนี้เมื่อปัดขึ้นบนหน้าจอล็อกหรือแตะการแจ้งเตือน"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"หากต้องการใช้การปลดล็อกด้วยนาฬิกาก็จะต้องปลดล็อกนาฬิกาไว้ สวมอยู่บนข้อมือของคุณ อยู่ในระยะสัญญาณ และเชื่อมต่อกับโทรศัพท์เครื่องนี้ หากการเชื่อมต่อเกิดติดขัด คุณจะต้องปลดล็อกโทรศัพท์ก่อนจึงจะใช้การปลดล็อกด้วยนาฬิกาได้\n\nข้อควรทราบ\nคุณตั้งค่านาฬิกาได้ครั้งละ 1 เรือนเท่านั้น หากต้องการเพิ่มนาฬิกาอื่น ให้นำนาฬิกาปัจจุบันออกก่อน"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการปลดล็อกด้วยนาฬิกา"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"เพิ่มนาฬิกา"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"นำนาฬิกาออก"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"การปลดล็อกด้วยลายนิ้วมือและใบหน้า"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"การปลดล็อกด้วยใบหน้าและลายนิ้วมือสำหรับการทำงาน"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ต้องตั้งค่า"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"ความปลอดภัย"</string>
     <string name="privacy_header" msgid="5526002421324257007">"ความเป็นส่วนตัว"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"โปรไฟล์งาน"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"พื้นที่ส่วนตัว"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"ล็อกและซ่อนแอปส่วนตัวไว้"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"เก็บแอปส่วนตัวไว้ในพื้นที่แยกต่างหากซึ่งคุณจะซ่อนหรือล็อกได้"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"การล็อกพื้นที่ส่วนตัว"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"คุณจะปลดล็อกพื้นที่ส่วนตัวได้โดยใช้วิธีเดียวกับที่คุณปลดล็อกอุปกรณ์ หรือเลือกการล็อกอื่น"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"ใช้การล็อกหน้าจออุปกรณ์"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"การปลดล็อกด้วยใบหน้าและลายนิ้วมือ"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"ปลดล็อกด้วยลายนิ้วมือ"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"ปลดล็อกด้วยใบหน้า"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"แตะเพื่อตั้งค่า"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"การปลดล็อกด้วยลายนิ้วมือสำหรับพื้นที่ส่วนตัว"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"การปลดล็อกด้วยใบหน้าสำหรับพื้นที่ส่วนตัว"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"วิธีปลดล็อก"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"เหมือนกับล็อกหน้าจออุปกรณ์"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"เลือกการล็อกใหม่สำหรับพื้นที่ส่วนตัวไหม"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"ล็อกโดยอัตโนมัติ"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"ล็อกพื้นที่ส่วนตัวโดยอัตโนมัติ"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"คุณสามารถล็อกพื้นที่ส่วนตัวโดยอัตโนมัติหากไม่ได้ใช้อุปกรณ์เป็นระยะเวลาหนึ่ง"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ทุกครั้งที่อุปกรณ์ล็อก"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"หลังจากไม่มีการใช้งานเป็นเวลา 5 นาที"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"ไม่เลย"</string>
+    <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_deleted" msgid="7825768516955610897">"ลบพื้นที่ส่วนตัวเรียบร้อยแล้ว"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"ลบพื้นที่ส่วนตัวไม่ได้"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"ปลดล็อกพื้นที่ส่วนตัวแล้ว"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"ตั้งการล็อกหน้าจอ"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"หากต้องการใช้พื้นที่ส่วนตัว ให้ตั้งการล็อกหน้าจอในอุปกรณ์นี้"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"ตั้งล็อกหน้าจอ"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"ยกเลิก"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"ยกเลิก"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"ตั้งค่า"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"ตั้งค่าพื้นที่ส่วนตัว"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"เก็บแอปส่วนตัวไว้ในพื้นที่แยกต่างหากซึ่งคุณจะซ่อนหรือล็อกได้"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"วิธีการทำงาน"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"คุณเข้าถึงพื้นที่ส่วนตัวได้จากด้านล่างของรายการแอป"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"แอปในพื้นที่ส่วนตัวได้รับการปกป้องโดยการล็อก"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"การแจ้งเตือนจากแอปในพื้นที่ส่วนตัวจะถูกซ่อนเมื่อล็อกไว้"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"แอปในพื้นที่ส่วนตัวจะไม่ปรากฏในเครื่องมือจัดการสิทธิ์ แดชบอร์ดความเป็นส่วนตัว และการตั้งค่าอื่นๆ เมื่อล็อกพื้นที่ส่วนตัวไว้\n\nระบบจะย้ายพื้นที่ส่วนตัวไปยังอุปกรณ์ใหม่ไม่ได้ คุณจะต้องตั้งค่าพื้นที่ส่วนตัวอีกแห่งหนึ่งหากต้องการใช้ในอุปกรณ์อื่น\n\nใครก็ตามที่เชื่อมต่ออุปกรณ์ของคุณกับคอมพิวเตอร์หรือติดตั้งแอปที่เป็นอันตรายลงในอุปกรณ์อาจเข้าถึงพื้นที่ส่วนตัวได้"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"กำลังตั้งค่าพื้นที่ส่วนตัว…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"การแจ้งเตือนจากแอปในพื้นที่ส่วนตัวจะถูกซ่อนเมื่อล็อกไว้"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"ปลดล็อกพื้นที่ส่วนตัวเพื่อแชร์รูปภาพหรือไฟล์จากแอปในพื้นที่ส่วนตัว"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"แอปบางแอปได้รับการติดตั้งในพื้นที่ส่วนตัวอยู่แล้ว"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"ตั้งค่าพื้นที่ส่วนตัวไม่ได้"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"ลองอีกครั้ง"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"ใช้การล็อกหน้าจอเพื่อปลดล็อกพื้นที่ส่วนตัวใช่ไหม"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"คุณจะปลดล็อกพื้นที่ส่วนตัวได้โดยใช้วิธีเดียวกับที่คุณปลดล็อกอุปกรณ์ หรือเลือกการล็อกอื่น"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"ใช้การล็อกหน้าจอ"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"เลือกการล็อกใหม่"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"เรียบร้อยแล้ว"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"หากต้องการเข้าถึงพื้นที่ส่วนตัว ให้ไปที่รายการแอปแล้วเลื่อนลงไปด้านล่าง"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"เสร็จสิ้น"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"เลื่อนลงเพื่อค้นหาพื้นที่ส่วนตัว"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"เลือกการล็อกสำหรับพื้นที่ส่วนตัว"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"คุณปลดล็อกพื้นที่ส่วนตัวได้โดยใช้ลายนิ้วมือ ตัวเลือกนี้ต้องใช้การล็อกข้อมูลสำรองเพื่อความปลอดภัย"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"ตั้งค่า PIN สำหรับพื้นที่ส่วนตัว"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"ตั้งค่ารหัสผ่านสำหรับพื้นที่ส่วนตัว"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"ตั้งค่ารูปแบบสำหรับพื้นที่ส่วนตัว"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"เพื่อแสดงพื้นที่ส่วนตัว (ไม่ใช่ UX สุดท้าย)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"เปิดแอปการตั้งค่า"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"แตะความปลอดภัยและความเป็นส่วนตัว &gt; พื้นที่ส่วนตัว &gt; ซ่อนพื้นที่ส่วนตัวเมื่อล็อกไว้"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"ปิดปุ่มสลับ \"ซ่อนพื้นที่ส่วนตัวเมื่อล็อกไว้\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"หมายเหตุถึง Googler: ฟีเจอร์นี้อยู่ระหว่างการพัฒนา"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"คุณอาจจำเป็นต้องพิมพ์รหัสผ่านนี้ลงในอุปกรณ์อีกเครื่องหนึ่งด้วยเช่นกัน"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ยืนยันการจับคู่กับชุดที่ทำงานร่วมกัน"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ให้สิทธิ์เข้าถึงรายชื่อติดต่อและประวัติการโทร"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"อนุญาตให้เข้าถึงรายชื่อติดต่อและประวัติการโทรด้วย"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"จะมีการใช้ข้อมูลเพื่อประกาศการติดต่อและอื่นๆ"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"ไม่สามารถเชื่อมต่อกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"อุปกรณ์ที่ใช้ได้"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ในโหมดใช้งานบนเครื่องบิน"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"แจ้งเตือนเมื่อพบเครือข่ายสาธารณะ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"แจ้งเตือนเมื่อมีเครือข่ายสาธารณะคุณภาพสูงพร้อมใช้งาน"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"อนุญาตเครือข่าย WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP เป็นโปรโตคอลความปลอดภัยเวอร์ชันเก่าซึ่งมีความปลอดภัยน้อยกว่า"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"ผู้ให้บริการของคุณไม่อนุญาตเครือข่าย WEP เนื่องจากมีความปลอดภัยน้อยกว่า"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"เปิด Wi‑Fi อัตโนมัติ"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi จะเปิดอีกครั้งเมื่ออยู่ใกล้เครือข่ายคุณภาพสูงที่บันทึกไว้ เช่น เครือข่ายที่บ้านของคุณ"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"ไม่พร้อมใช้งานเนื่องจากตำแหน่งปิดอยู่ โปรดเปิด"<annotation id="link">"ตำแหน่ง"</annotation></string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"การสแกนหา Wi-Fi อนุญาตให้แอปและบริการต่างๆ สแกนหาเครือข่าย Wi‑Fi ตลอดเวลาแม้ Wi‑Fi จะปิดอยู่ การตั้งค่านี้ใช้เพื่อทำสิ่งต่างๆ เช่น ปรับปรุงฟีเจอร์และบริการตามสถานที่"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"เปิด"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"เปิดการสแกนหา Wi-Fi แล้ว"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"เครือข่ายนี้ใช้โปรโตคอลความปลอดภัยเวอร์ชันเก่าซึ่งมีความปลอดภัยน้อยกว่า"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> ถูกบล็อก"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"เครือข่ายนี้ใช้โปรโตคอลความปลอดภัยเวอร์ชันเก่าที่ชื่อว่า WEP ซึ่งมีความปลอดภัยน้อยกว่า หากยังต้องการเชื่อมต่อ คุณอนุญาตเครือข่าย WEP ได้"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"ผู้ให้บริการของคุณไม่อนุญาตให้เชื่อมต่อกับเครือข่ายนี้เนื่องจากใช้โปรโตคอลความปลอดภัยเวอร์ชันเก่าซึ่งมีความปลอดภัยน้อยกว่า"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"อนุญาต WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"ปิด"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"ตัวเลือกขั้นสูง"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ตัวเลือกขั้นสูงที่เป็นรายการแบบเลื่อนลง"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"ขยาย"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"ใช้ Wi-Fi ต่อไป"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"ไม่ต้องแสดงอีก"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"เชื่อมต่อ"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"เปิด Wi-Fi แล้ว"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"เชื่อมต่อกับ <xliff:g id="NETWORK_NAME">%1$s</xliff:g> แล้ว"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"กำลังเชื่อมต่อกับ <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"กำลังเชื่อมต่อ…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"ไม่สามารถเชื่อมต่อกับเครือข่าย"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"เครือข่ายไม่อยู่ในพื้นที่ให้บริการ"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"ลบ"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"แก้ไข"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ไม่สามารถเลิกการจดจำเครือข่าย"</string>
     <string name="wifi_save" msgid="2312643132472226807">"บันทึก"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"ไม่สามารถบันทึกเครือข่าย"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"ยกเลิก"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"อินเทอร์เน็ตมือถือ"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"อีเทอร์เน็ต"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ กำลังชาร์จ"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ กำลังชาร์จ"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"การเชื่อมต่อฮอตสปอต"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"ความแรงของสัญญาณเชื่อมต่อ"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"เครือข่ายที่บันทึก"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"ไม่ได้ตั้งค่ารหัสผ่าน"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ชื่อฮอตสปอต"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"รหัสผ่านฮอตสปอต"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"ย่านความถี่ AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"ปิดฮอตสปอตโดยอัตโนมัติ"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"เมื่อไม่มีอุปกรณ์ใดเชื่อมต่ออยู่"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"เพิ่มความเข้ากันได้"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"ปิดอัตราเฟรมเริ่มต้นสำหรับเกม"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"ปิดใช้การจำกัดอัตราเฟรมสูงสุดสำหรับเกมที่ <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"การจดจ่อที่หน้าจอใช้กล้องหน้าเพื่อดูว่ามีใครกำลังดูหน้าจออยู่ไหม ฟีเจอร์นี้จะทำงานในอุปกรณ์และจะไม่มีการเก็บหรือส่งรูปภาพไปให้ Google"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"เปิดฟีเจอร์การจดจ่อที่หน้าจอ"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"เปิดหน้าจอค้างไว้เมื่อดูหน้าจออยู่"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"ระยะหมดเวลาหน้าจอที่นานขึ้นจะใช้พลังงานแบตเตอรี่มากขึ้น"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"กล้องถ่ายรูปล็อกอยู่"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"ต้องปลดล็อกกล้องถ่ายรูปเพื่อใช้การตรวจจับใบหน้า"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"ต้องปลดล็อกกล้องถ่ายรูปเพื่อใช้ฟีเจอร์การจดจ่อที่หน้าจอ"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (ช่องซิม <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (ช่องซิม <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (หลัก)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"เลือกเครือข่ายที่บันทึกไว้เพื่อดู"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"นาที"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"รุ่น PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"ระดับแบตเตอรี่"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"ส่วนกลาง"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"การตั้งค่าส่วนกลาง"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"บันทึก"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"ยกเลิก"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"ต้องใส่ข้อมูลในช่องชื่อ"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"ต้องใส่ข้อมูล APN"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"ช่อง MCC ต้องเป็นเลข 3 หลัก"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"ช่อง MNC ต้องมีเลขอย่างน้อย 2 หรือ 3 หลัก"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"ผู้ให้บริการไม่อนุญาตให้เพิ่ม APN ประเภท %s"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"ช่อง MMSC ต้องถูกต้อง"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"กำลังเรียกคืนการตั้งค่า APN เริ่มต้น"</string>
     <string name="menu_restore" msgid="4310539620115151551">"รีเซ็ตเป็นค่าเริ่มต้น"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"รีเซ็ตการตั้งค่า APN กลับเป็นค่าเริ่มต้นเรียบร้อยแล้ว"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"รีเซ็ต"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"รีเซ็ตบลูทูธและ Wi-Fi แล้ว"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"ลบ eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"การดำเนินการนี้จะไม่ยกเลิกแพ็กเกจมือถือ หากต้องการดาวน์โหลดซิมสำหรับใช้แทน โปรดติดต่อผู้ให้บริการ"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"รีเซ็ตการตั้งค่า"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"รีเซ็ตการตั้งค่าเครือข่ายทั้งหมดไหม คุณจะยกเลิกการดำเนินการนี้ไม่ได้"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"รีเซ็ตการตั้งค่าเครือข่ายทั้งหมดและลบ eSIM ใช่ไหม คุณจะยกเลิกการดำเนินการนี้ไม่ได้"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"รีเซ็ตไหม"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"การรีเซ็ตเครือข่ายไม่พร้อมใช้งานสำหรับผู้ใช้รายนี้"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"รีเซ็ตการตั้งค่าเครือข่ายแล้ว"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"ลบซิมไม่ได้"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"ลบ eSIM ไม่ได้เนื่องจากมีข้อผิดพลาด\n\nรีสตาร์ทอุปกรณ์แล้วลองอีกครั้ง"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"ลบข้อมูลทั้งหมด (รีเซ็ตเป็นค่าเริ่มต้น)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"ลบข้อมูลทั้งหมด (รีเซ็ตเป็นค่าเริ่มต้น)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"เพลง"</li>\n<li>"รูปภาพ"</li>\n<li>"ข้อมูลผู้ใช้อื่นๆ"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"การดำเนินการนี้จะไม่ยกเลิกแพ็กเกจอินเทอร์เน็ตมือถือของคุณ"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"ระบบจะลบข้อมูลส่วนบุคคลและแอปที่ดาวน์โหลดทั้งหมด คุณจะยกเลิกการดำเนินการนี้ไม่ได้"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"ระบบจะลบข้อมูลส่วนบุคคล รวมถึงแอปและซิมที่ดาวน์โหลดมาทั้งหมด คุณจะยกเลิกการดำเนินการนี้ไม่ได้"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"ลบข้อมูลทั้งหมดใช่ไหม"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"การรีเซ็ตเป็นค่าเริ่มต้นไม่พร้อมใช้งานสำหรับผู้ใช้รายนี้"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"กำลังลบ"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"ฮอตสปอต USB บลูทูธ อีเทอร์เน็ต"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"ไม่ได้แชร์อินเทอร์เน็ตกับอุปกรณ์อื่น"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"ปิด"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"การเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"ไม่ใช้ฮอตสปอต Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"แชร์อินเทอร์เน็ตผ่าน USB เท่านั้น"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"แชร์อินเทอร์เน็ตผ่านบลูทูธเท่านั้น"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"แชร์อินเทอร์เน็ตผ่านอีเทอร์เน็ตเท่านั้น"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"แชร์อินเทอร์เน็ตผ่าน USB และบลูทูธเท่านั้น"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"แชร์อินเทอร์เน็ตผ่าน USB และอีเทอร์เน็ตเท่านั้น"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"แชร์อินเทอร์เน็ตผ่านบลูทูธและอีเทอร์เน็ตเท่านั้น"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"แชร์อินเทอร์เน็ตผ่าน USB บลูทูธ และอีเทอร์เน็ตเท่านั้น"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"เชื่อมต่ออินเทอร์เน็ตผ่าน USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"ต่ออินเทอร์เน็ตผ่านบลูทูธ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"เชื่อมต่ออินเทอร์เน็ตผ่านอีเทอร์เน็ต"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"ใช้ฮอตสปอตและการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือเพื่อ⁠ให้⁠อุ⁠ป⁠ก⁠ร⁠ณ์อื่นๆ ใช้อินเทอร์เน็ตจาก Wi-Fi หรือการเชื่อมต่ออินเทอร์เน็ตมือถือของคุณได้ แอปยังสร้างฮอตสปอตเพื่อแชร์เนื้อหากับอุปกรณ์ที่อยู่ใกล้เคียงได้อีกด้วย"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"ความช่วยเหลือ"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"เครือข่ายมือถือ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"แพ็กเกจอินเทอร์เน็ต"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"แอป SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"เปลี่ยนแอป SMS ไหม"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"ใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> เป็นแอป SMS ของคุณแทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ไหม"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"เปลี่ยน Wi‑Fi Assistant ใช่ไหม"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"ต้องการใช้ <xliff:g id="NEW_APP">%1$s</xliff:g> แทน <xliff:g id="CURRENT_APP">%2$s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"ใช้ <xliff:g id="NEW_APP">%s</xliff:g> ในการจัดการการเชื่อมต่อเครือข่ายใช่ไหม"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"ไม่รู้จักผู้ให้บริการซิม"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> ไม่มีเว็บไซต์การจัดสรรที่รู้จัก"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"โปรดใส่ซิมการ์ดและรีสตาร์ท"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"โปรดเชื่อมต่ออินเทอร์เน็ต"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"คำขอตำแหน่งล่าสุด"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"ตำแหน่งสำหรับโปรไฟล์งาน"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"สิทธิ์เข้าถึงตำแหน่งสำหรับแอป"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"ล้างการเข้าถึง"</string>
     <string name="controls_label" msgid="8671492254263626383">"การควบคุม"</string>
     <string name="force_stop" msgid="2681771622136916280">"บังคับให้หยุด"</string>
+    <string name="archive" msgid="9074663845068632127">"เก็บ"</string>
+    <string name="restore" msgid="7622486640713967157">"คืนค่า"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"ทั้งหมด"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ขนาดแอป"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"แอปสำหรับจัดเก็บข้อมูล USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"คำนวณขนาดแพ็กเกจไม่ได้"</string>
     <string name="version_text" msgid="7628938665256107608">"เวอร์ชัน <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"ย้าย"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"เก็บไม่สำเร็จ"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"เก็บ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> แล้ว"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"คืนค่าไม่สำเร็จ"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"กำลังคืนค่า <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"กำลังย้ายข้อมูลอื่นอยู่"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"พื้นที่จัดเก็บข้อมูลไม่เพียงพอ"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ไม่มีแอปพลิเคชันนี้"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"แป้นพิมพ์บนหน้าจอที่พร้อมใช้งาน"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"จัดการแป้นพิมพ์บนหน้าจอ"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"ตัวเลือก"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"การช่วยเหลือพิเศษ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"แป้นพิมพ์จริง"</string>
     <string name="show_ime" msgid="4334255501724746849">"ใช้แป้นพิมพ์บนหน้าจอ"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"เปิดทิ้งไว้บนหน้าจอในระหว่างใช้งานแป้นพิมพ์จริง"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"คีย์ตีกลับ"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"เปิดใช้คีย์ตีกลับสำหรับการช่วยเหลือพิเศษของแป้นพิมพ์จริง"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"คีย์ติดหนึบ"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"เปิดใช้คีย์ติดหนึบสำหรับการช่วยเหลือพิเศษของแป้นพิมพ์จริง"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"แป้นพิมพ์ลัด"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"แสดงรายการแป้นพิมพ์ลัด"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"แป้นพิมพ์และเครื่องมือของโปรไฟล์งาน"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"จัดเรียงตามเวลาการใช้งาน"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"จัดเรียงตามครั้งสุดท้ายที่ใช้"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"จัดเรียงตามชื่อแอป"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"ครั้งสุดท้ายที่ใช้"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"ใช้ล่าสุด"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ไม่เคยใช้"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"เวลาการใช้งาน"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"การช่วยเหลือพิเศษ"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"การตั้งค่าการเข้าถึง"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"ดำเนินการต่อ"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"ยกเลิก"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"การตั้งค่าการขยาย"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"ขยายด้วยการแตะ 3 ครั้ง"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"ขยายโดยใช้ทางลัด"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"ขยายโดยใช้ทางลัดและการแตะ 3 ครั้ง"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"เกี่ยวกับ \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"ใช้ 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">"หากต้องการใช้ฟีเจอร์นี้ ให้กดปุ่มปรับระดับเสียงทั้ง 2 ปุ่มค้างไว้"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"หากต้องการเริ่มหรือหยุดการขยาย ให้แตะ 3 ครั้งที่ใดก็ได้บนหน้าจอ"</string>
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple" msgid="860548190334486449">"หากต้องการเริ่มหรือหยุดการขยาย ให้ใช้ 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"หากต้องการใช้ฟีเจอร์การช่วยเหลือพิเศษ ให้ใช้ 3 นิ้วเลื่อนขึ้นจากด้านล่างของหน้าจอ\n\nหากต้องการสลับระหว่างฟีเจอร์ต่างๆ ให้ใช้ 3 นิ้วเลื่อนขึ้นแล้วค้างไว้"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"รับทราบ"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"การตั้งค่าปุ่มช่วยเหลือพิเศษ"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"การตั้งค่าปุ่ม"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"ทางลัดของ \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ปุ่มการช่วยเหลือพิเศษ"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ท่าทางสัมผัสการช่วยเหลือพิเศษ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"ใช้ 2 นิ้วแตะสองครั้งบนหน้าจอ"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ใช้ 2 นิ้วแตะสองครั้งบนหน้าจอ"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"ใช้ 2 นิ้วแตะหน้าจอ {0,number,integer} ครั้งเร็วๆ"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"แตะหน้าจอ 3 ครั้ง"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"แตะหน้าจอ 3 ครั้ง"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"แตะหน้าจอเร็วๆ {0,number,integer} ครั้ง ทางลัดนี้อาจทำให้อุปกรณ์ทำงานช้าลง"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ดูข้อมูลเพิ่มเติมเกี่ยวกับปุ่มการช่วยเหลือพิเศษและท่าทางสัมผัส"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"กำลังใช้ปุ่มการช่วยเหลือพิเศษ ท่าทางสัมผัสดังกล่าวใช้กับการนำทางแบบ 3 ปุ่มไม่ได้"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"เข้าถึงฟีเจอร์การช่วยเหลือพิเศษได้อย่างรวดเร็ว"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"วิธีเริ่มต้นใช้งาน"</b>\n"1. ไปที่การตั้งค่าการช่วยเหลือพิเศษ\n2. เลือกฟีเจอร์และแตะทางลัด\n3. เลือกว่าต้องการใช้ปุ่มหรือท่าทางสัมผัสเพื่อเข้าถึงฟีเจอร์"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"วิธีเริ่มต้นใช้งาน"</b>\n"1. ไปที่การตั้งค่าการช่วยเหลือพิเศษ\n2. เลือกฟีเจอร์และแตะทางลัด\n3. เลือกปุ่มสำหรับการเข้าถึงฟีเจอร์"</string>
+    <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_size_title" msgid="5785110470538960881">"ขนาด"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"กดปุ่มเปิด/ปิดเพื่อวางสาย"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"เคอร์เซอร์เมาส์ขนาดใหญ่"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ทำให้เคอร์เซอร์เมาส์มองเห็นได้ชัดเจนยิ่งขึ้น"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"กำหนดให้ทุกแอปใช้ธีมมืด"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"ใช้กับแอปที่ไม่มีธีมมืดของแอปเอง แอปบางแอปอาจมีปัญหาในการแสดงผลอย่างเช่นการสลับสี"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"นำภาพเคลื่อนไหวออก"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"ลดการเคลื่อนไหวบนหน้าจอ"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"เสียงแบบโมโน"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"การควบคุมนี้สามารถติดตามการโต้ตอบของคุณกับแอปหรือกับเซ็นเซอร์ของฮาร์ดแวร์ และโต้ตอบกับแอปต่างๆ แทนคุณ"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"อนุญาต"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"ปฏิเสธ"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"หยุด"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"ยกเลิก"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"หยุด \"<xliff:g id="SERVICE">%1$s</xliff:g>\" ไหม"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"การแตะ<xliff:g id="STOP">%1$s</xliff:g>จะหยุด <xliff:g id="SERVICE">%2$s</xliff:g>"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"ปิด"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"เปิดไว้"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"ปิด <xliff:g id="SERVICE">%1$s</xliff:g> ใช่ไหม"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"ไม่ได้ติดตั้งบริการใดไว้"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"ไม่ได้เลือกบริการ"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"ไม่มีคำอธิบาย"</string>
     <string name="settings_button" msgid="2195468788019730377">"การตั้งค่า"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ความไวต่อแสง อาการกลัวแสง ธีมมืด ไมเกรน ปวดหัว โหมดอ่านหนังสือ โหมดกลางคืน ลดความสว่าง จุดสีขาว"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"ใช้งานง่าย, เข้าถึงง่าย, ความช่วยเหลือ, การช่วยเหลือพิเศษ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"การมองเห็น, การได้ยิน, ตาบอด, หูหนวก, การเคลื่อนไหว, ความคล่องแคล่ว, อำนวยความสะดวก, การสนับสนุน, ใช้งานง่าย, เข้าถึงง่าย, มือ, ความช่วยเหลือ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"แว่นขยายหน้าจอ, ซูม, การขยาย, สายตาเลือนราง, ขยาย, ทำให้ใหญ่ขึ้น"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"คำบรรยายแทนเสียง, คำบรรภาพ, คำบรรยาย, Live Transcribe, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, CART, การแปลงเสียงพูดเป็นข้อความ"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"คอนทราสต์ของสี"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"การเคลื่อนไหว, เมาส์"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"เครื่องช่วยฟัง, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, ประสาทหูเทียม, อุปกรณ์ขยายเสียง, เครื่องแปลงสัญญาณเสียง"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"การเคลื่อนไหว, เมาส์, เมาส์ภายนอก, เมาส์แบบคาดศีรษะ, เมาส์แบบปรับได้, วีลแชร์, จอยสติ๊ก"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"เครื่องช่วยฟัง, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, ประสาทหูเทียม, อุปกรณ์ขยายเสียง, เครื่องแปลงสัญญาณเสียง, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, คำบรรยายแทนเสียง, โทรพิมพ์, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ปุ่ม 3 ปุ่ม"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ความคล่องแคล่ว, การเคลื่อนไหว, ผู้สูงอายุ, ภาวะข้ออักเสบ, RSI, โรคหลอดเลือดสมอง, อาการสั่น, โรคปลอกประสาทเสื่อมแข็ง, ภาวะสมองพิการ, การสั่น, การบาดเจ็บจากการทำงานซ้ำๆ, มือ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ล่าช้า, ความคล่องแคล่ว, ผู้สูงอายุ"</string>
     <string name="print_settings" msgid="8519810615863882491">"การพิมพ์"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"ปิด"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{เปิดบริการพิมพ์ 1 รายการ}other{เปิดบริการพิมพ์ # รายการ}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"ดูแอปที่มีการใช้งานแบตเตอรี่สูงสุด"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"ปรับการชาร์จให้เหมาะสมแล้วเพื่อถนอมแบตเตอรี่"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"อุปกรณ์จะเพิ่มประสิทธิภาพการชาร์จเพื่อช่วยยืดอายุการใช้งานของแบตเตอรี่"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"ปรับการชาร์จให้เหมาะสมแล้วเพื่อถนอมแบตเตอรี่"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"อุปกรณ์จะปรับการชาร์จให้เหมาะสมขณะวางอยู่บนแท่นชาร์จเพื่อช่วยยืดอายุการใช้งานแบตเตอรี่"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"ปรับการชาร์จให้เหมาะสมแล้วเพื่อถนอมแบตเตอรี่"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"อุปกรณ์จะปรับการชาร์จให้เหมาะสมขณะวางอยู่บนแท่นชาร์จเพื่อช่วยยืดอายุการใช้งานแบตเตอรี่"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"การชาร์จจนเต็ม"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"อุปกรณ์จะปรับการชาร์จให้เหมาะสมในครั้งถัดไปที่คุณวางแท็บเล็ตบนแท่นชาร์จเพื่อถนอมแบตเตอรี่"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการชาร์จหยุดชั่วคราว"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"ชาร์จต่อ"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"รวมกิจกรรมในเบื้องหลังที่ใช้พลังงานมาก"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"นำออก"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"ยกเลิก"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"ชาร์จจนเต็ม"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"ปัญหาเกี่ยวกับอุปกรณ์เสริมสำหรับการชาร์จ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการชาร์จด้วยอะแดปเตอร์ที่ใช้ร่วมกันไม่ได้"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"ตัวจัดการแบตเตอรี่"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"จัดการแอปโดยอัตโนมัติ"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ขณะนี้"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"แผนภูมิการใช้งานแบตเตอรี่"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"แผนภูมิการใช้งานแบตเตอรี่รายวัน"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"แผนภูมิการใช้งานแบตเตอรี่รายชั่วโมง"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"เปอร์เซ็นต์ระดับแบตเตอรี่จาก <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> เป็น <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"การใช้งานแบตเตอรี่ตั้งแต่ชาร์จจนเต็มครั้งล่าสุด"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"การใช้งานแบตเตอรี่ในช่วง <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"เวลาอยู่หน้าจอตั้งแต่ชาร์จจนเต็มครั้งล่าสุด"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"สัญญาณการโทรฉุกเฉิน"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ตั้งค่าการทำงานเมื่อมีการโทรหาหมายเลขฉุกเฉิน"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"การสำรองข้อมูล"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"เปิด"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"ปิด"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"การสำรองและคืนค่าข้อมูล"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ข้อมูลส่วนตัว"</string>
     <string name="backup_data_title" msgid="507663517227498525">"สำรองข้อมูลของฉัน"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"ชื่อ"</string>
     <string name="vpn_type" msgid="5533202873260826663">"ประเภท"</string>
     <string name="vpn_server" msgid="2908816134941973935">"ที่อยู่เซิร์ฟเวอร์"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"การเข้ารหัส PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"ข้อมูลลับ L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"ตัวระบุ IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"คีย์ IPSec ที่แชร์ไว้ล่วงหน้า"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"ใบรับรองผู้ใช้ IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"ใบรับรอง IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"ใบรับรองเซิร์ฟเวอร์ IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"แสดงตัวเลือกขั้นสูง"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"โดเมนการค้นหา DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"เซิร์ฟเวอร์ DNS (เช่น 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"เส้นทางการส่งต่อ (เช่น 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"ชื่อผู้ใช้"</string>
     <string name="vpn_password" msgid="1183746907642628127">"รหัสผ่าน"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"บันทึกข้อมูลบัญชี"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ไม่ใช้)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ไม่ตรวจสอบเซิร์ฟเวอร์)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(ได้รับจากเซิร์ฟเวอร์)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"VPN ประเภทนี้ไม่สามารถเชื่อมต่อไว้ตลอดเวลา"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"การเชื่อมต่อ VPN ตลอดเวลารองรับที่อยู่เซิร์ฟเวอร์แบบตัวเลขเท่านั้น"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"ต้องระบุเซิร์ฟเวอร์ DNS สำหรับการเชื่อมต่อ VPN ตลอดเวลา"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"ที่อยู่เซิร์ฟเวอร์ DNS ต้องเป็นตัวเลขสำหรับการเชื่อมต่อ VPN ตลอดเวลา"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"ข้อมูลที่ป้อนไม่รองรับการเชื่อมต่อ VPN ตลอดเวลา"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"ยกเลิก"</string>
     <string name="vpn_done" msgid="5137858784289564985">"ปิด"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"บล็อกการเชื่อมต่อโดยไม่ใช้ VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"ต้องใช้การเชื่อมต่อ VPN ไหม"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"ไม่ปลอดภัย อัปเดตเป็น IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"เริ่มใช้ VPN ที่ไม่รองรับไม่สำเร็จ"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"เลือกโปรไฟล์ VPN เพื่อคงการเชื่อมต่อเอาไว้ตลอดเวลา การเข้าใช้เครือข่ายจะได้รับอนุญาตเฉพาะเมื่อมีการเชื่อมต่อกับ VPN นี้เท่านั้น"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"ไม่มี"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN แบบเปิดตลอดเวลาจำเป็นต้องใช้ที่อยู่ IP ทั้งสำหรับเซิร์ฟเวอร์และ DNS"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"การแจ้งเตือนเด็กหาย Amber Alert"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"รับกระดานข่าวสารเกี่ยวกับการลักพาตัวเด็ก"</string>
     <string name="repeat_title" msgid="8676570486899483606">"เล่นซ้ำ"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"เปิดใช้ Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"อนุญาตให้บริการนี้จัดการวิธีการโทรของคุณ"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"การแจ้งเหตุฉุกเฉินแบบไร้สาย"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"ผู้ให้บริการเครือข่าย"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Access point names"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ชำระเงิน แตะ การชำระเงิน"</string>
     <string name="keywords_backup" msgid="707735920706667685">"ข้อมูลสำรอง, สำรองข้อมูล"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"ท่าทางสัมผัส"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ใบหน้า, ปลดล็อก, การตรวจสอบสิทธิ์, ลงชื่อเข้าใช้"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ใบหน้า, ปลดล็อก, การตรวจสอบสิทธิ์, ลงชื่อเข้าใช้, ลายนิ้วมือ, ข้อมูลไบโอเมตริก"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, เวอร์ชัน prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"เสียงเปิดเครื่อง"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"คำบรรยายสด"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"แสดงคำบรรยายสื่อโดยอัตโนมัติ"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"ลำโพงโทรศัพท์"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ลำโพงแท็บเล็ต"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"ลำโพงอุปกรณ์"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"หูฟังแบบมีสาย"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"เสียงจากสื่อที่เข้ากันได้จะสมจริงยิ่งขึ้น"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"ปิด"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"นำการสนทนาล่าสุดออกแล้ว"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"นำการสนทนาออกแล้ว"</string>
     <string name="clear" msgid="5092178335409471100">"ล้าง"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"ล้าง <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"การสนทนาที่สำคัญและการสนทนาที่มีการเปลี่ยนแปลงจะปรากฏที่นี่"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"การสนทนาจะปรากฏที่นี่เมื่อตั้งสถานะให้เป็นการสนทนาที่สำคัญหรือทำการเปลี่ยนแปลงอื่นๆ \n\nวิธีเปลี่ยนการตั้งค่าการสนทนา \nปัดลงจากด้านบนของหน้าจอเพื่อเปิดหน้าต่างแจ้งเตือนแบบดึงลง จากนั้นแตะการสนทนาค้างไว้"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"ย่อเล็กสุด"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"ปิด"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"การปักหมุดแอป"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"การปักหมุดแอปจะทำให้คุณเห็นแอปปัจจุบันได้ตลอดจนกว่าจะเลิกปักหมุด ตัวอย่างการใช้ฟีเจอร์นี้ เช่น อนุญาตให้เพื่อนที่เชื่อถือได้เล่นเกมหนึ่งๆ"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"เมื่อปักหมุดแอป แอปที่ปักหมุดอาจเปิดแอปอื่นๆ และอาจมีการเข้าถึงข้อมูลส่วนตัว \n\nวิธีใช้การปักหมุดแอป 	\n1. เปิดการปักหมุดแอป 	\n2. เปิด \"ภาพรวม\" 	\n3. แตะไอคอนแอปที่ด้านบนหน้าจอ จากนั้นแตะ \"ปักหมุด\""</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"เมื่อปักหมุดแอป แอปที่ปักหมุดอาจเปิดแอปอื่นๆ และอาจมีการเข้าถึงข้อมูลส่วนตัว \n\nหากต้องการใช้อุปกรณ์ร่วมกับคนอื่นอย่างปลอดภัย ให้ลองใช้ผู้ใช้ชั่วคราวแทน \n\nวิธีใช้การปักหมุดแอป 	\n1. เปิดการปักหมุดแอป 	\n2. เปิด \"ภาพรวม\" 	\n3. แตะไอคอนแอปที่ด้านบนหน้าจอ จากนั้นแตะ \"ปักหมุด\""</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"จัดการแอปหากไม่ได้ใช้งาน"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"นำสิทธิ์ออก ลบไฟล์ชั่วคราว หยุดการแจ้งเตือน และเก็บแอป"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"แอปทั้งหมด"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"แอปที่ติดตั้ง"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Instant Apps"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"เหลือ"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"หน่วยความจำที่แอปใช้"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 แอปใช้หน่วยความจำในช่วง {time}ที่ผ่านมา}other{# แอปใช้หน่วยความจำในช่วง {time}ที่ผ่านมา}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"เปิดใช้การทำโปรไฟล์การใช้งานหน่วยความจำ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"การทำโปรไฟล์การใช้งานหน่วยความจำต้องใช้ทรัพยากรระบบเพิ่มเติม"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"ปิดใช้การทำโปรไฟล์หน่วยความจำอยู่"</string>
     <string name="running_frequency" msgid="7260225121706316639">"ความถี่"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"การใช้งานสูงสุด"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"ไม่ได้ใช้อินเทอร์เน็ต"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"แสดงทับบนแอปอื่นๆ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"อนุญาตให้แสดงทับแอปอื่นๆ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"อนุญาตให้แอปนี้แสดงทับแอปอื่นๆ ที่คุณกำลังใช้อยู่ แอปนี้จะเห็นจุดที่คุณแตะหรือเปลี่ยนแปลงสิ่งที่ปรากฏในหน้าจอได้"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"เปลี่ยนเอาต์พุตสื่อ"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"อนุญาตให้แอปเปลี่ยนเอาต์พุตสื่อ"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"อนุญาตให้แอปนี้เลือกอุปกรณ์ที่เชื่อมต่อที่จะเล่นเสียงหรือวิดีโอจากแอปอื่นๆ หากอนุญาต แอปนี้สามารถเข้าถึงรายการอุปกรณ์ที่มี เช่น หูฟังและลำโพง แล้วเลือกอุปกรณ์เอาต์พุตที่จะใช้ในการสตรีมหรือแคสต์เสียงหรือวิดีโอ"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"การเข้าถึงไฟล์ทั้งหมด"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"ปรับปรุงการเปิดใช้งานด้วยเสียง"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"อุปกรณ์นี้ใช้ข้อมูลเชิงวิเคราะห์ส่วนตัวเพื่อปรับปรุงโมเดลการเปิดใช้งานด้วยเสียง แอปจะรับข้อมูลอัปเดตแบบสรุปที่รวบรวมมาจากผู้ใช้จำนวนมากเพื่อรักษาความเป็นส่วนตัวขณะที่ปรับปรุงโมเดลสำหรับทุกคน\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"คำเตือนปริมาณอินเทอร์เน็ต <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"ขีดจำกัดอินเทอร์เน็ต <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"คำเตือนปริมาณอินเทอร์เน็ต <xliff:g id="ID_1">^1</xliff:g>/ขีดจำกัดอินเทอร์เน็ต <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"การบันทึกการใช้อินเทอร์เน็ตของผู้ให้บริการอาจแตกต่างไปจากการบันทึกในอุปกรณ์"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ไม่รวมอินเทอร์เน็ตที่ใช้โดยเครือข่ายผู้ให้บริการ"</string>
     <string name="data_used_template" msgid="8229342096562327646">"ใช้ไป <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ตั้งค่าเตือนการใช้อินเทอร์เน็ต"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"อัปเดตเมื่อ <xliff:g id="ID_1">^2</xliff:g>ที่ผ่านมา"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"อัปเดตโดย <xliff:g id="ID_1">^1</xliff:g> เมื่อสักครู่นี้"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"เพิ่งอัปเดตเมื่อสักครู่นี้"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"ดูแผนบริการ"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"ดูรายละเอียด"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"การประหยัดอินเทอร์เน็ต"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"ไม่จำกัดการใช้อินเทอร์เน็ต"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"การใช้งานแบตเตอรี่ผิดปกติ"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"การ์ดการตั้งค่าด่วนสำหรับนักพัฒนาแอป"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"ปิดใช้ระยะหมดเวลาการให้สิทธิ์ adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"ปิดใช้การเพิกถอนการให้สิทธิ์ adb โดยอัตโนมัติสำหรับระบบที่ไม่ได้เชื่อมต่อใหม่ภายในระยะเวลาที่เป็นค่าเริ่มต้น (7 วัน) หรือระยะเวลาที่ผู้ใช้กำหนดค่าไว้ (ขั้นต่ำ 1 วัน)"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope Trace"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"ปิดเซ็นเซอร์"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"การตั้งค่าโปรไฟล์งาน"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ค้นหารายชื่อติดต่อจากไดเรกทอรีงานในแอปส่วนตัว"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"บริการป้อนข้อความอัตโนมัติ"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"บริการป้อนข้อความอัตโนมัติเริ่มต้น"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"รหัสผ่าน"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"ผู้ให้บริการเพิ่มเติม"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{รหัสผ่าน # รายการ}other{รหัสผ่าน # รายการ}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"อัตโนมัติ ป้อนข้อความ ป้อนข้อความอัตโนมัติ รหัสผ่าน"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"อินเทอร์เน็ต, พาสคีย์, รหัสผ่าน"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"อัตโนมัติ, ป้อน, ป้อนข้อความอัตโนมัติ, ข้อมูล, พาสคีย์, รหัสผ่าน"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;ต้องการปิดบริการทั้งหมดหรือไม่&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ระบบจะไม่ป้อนรหัสผ่าน พาสคีย์ และข้อมูลอื่นๆ ที่บันทึกไว้โดยอัตโนมัติเมื่อคุณลงชื่อเข้าใช้"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;เปลี่ยนบริการที่ต้องการเป็น &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; ระบบจะบันทึกรหัสผ่านใหม่ พาสคีย์ และข้อมูลอื่นๆ ไว้ที่นี่นับจากนี้เป็นต้นไป &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; อาจใช้สิ่งที่อยู่บนหน้าจอเพื่อดูว่าจะป้อนข้อมูลใดโดยอัตโนมัติได้บ้าง"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ใช้ %1$s ใช่ไหม"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"คุณเปิดใช้บริการได้เพียง 5 รายการเท่านั้น"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"ปิดบริการอย่างน้อย 1 รายการเพื่อเพิ่มบริการอื่น"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ใช้สิ่งที่อยู่บนหน้าจอเพื่อดูว่าจะป้อนข้อมูลใดโดยอัตโนมัติได้บ้าง"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"ขีดจำกัดรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"คุณสามารถใช้งานรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ตได้พร้อมกันสูงสุด 5 รายการ ปิดบริการใดบริการหนึ่งเพื่อเพิ่มอีก"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"ขีดจำกัดรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"คุณสามารถใช้งานรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ตได้พร้อมกันสูงสุด 5 รายการ ปิดบริการใดบริการหนึ่งเพื่อเพิ่มอีก"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ปิด"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"ป้อนอัตโนมัติ"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"ระดับการบันทึก"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"จะแก้ไขการเปลี่ยนแปลงความเข้ากันได้ของแอปได้เฉพาะแอปที่แก้ไขข้อบกพร่องได้เท่านั้น ติดตั้งแอปที่แก้ไขข้อบกพร่องได้แล้วลองอีกครั้ง"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"ขึ้นอยู่กับการตั้งค่าอื่น"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"บัญชี"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d บัญชี"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"ชื่ออุปกรณ์"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"ข้อมูลพื้นฐาน"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"กฎหมายและข้อบังคับ"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"อนุญาตให้เปิดแอปนี้เมื่อมีการสแกนแท็ก NFC\nหากสิทธิ์นี้เปิดอยู่ แอปดังกล่าวจะพร้อมเป็นตัวเลือกเมื่อใดก็ตามที่ระบบตรวจพบแท็ก"</string>
     <string name="media_output_title" msgid="8283629315159510680">"เล่นสื่อไปยัง"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"เล่น <xliff:g id="LABEL">%s</xliff:g> ใน"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"เสียงจะเล่นต่อไป"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"อุปกรณ์นี้"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"ใช้งานไม่ได้ขณะสนทนาโทรศัพท์"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"รับสายใน"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"ปิดเสียง"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"หากต้องการเปิดใช้ ก่อนอื่นให้เปลี่ยน \"กดปุ่มเปิด/ปิดค้างไว้\" เป็นเมนูเปิด/ปิด"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"รายละเอียดเครือข่าย"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"แอปในโทรศัพท์จะเห็นชื่อของอุปกรณ์ และคนอื่นก็อาจเห็นเช่นกันหากคุณเชื่อมต่อกับอุปกรณ์บลูทูธหรือเครือข่าย Wi-Fi หรือตั้งค่าฮอตสปอต Wi-Fi"</string>
     <string name="devices_title" msgid="649715719278562515">"อุปกรณ์"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"เลือกเครือข่าย"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"เลิกเชื่อมต่อแล้ว"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"ชื่อ"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"สี (ใช้โดยแอปที่เข้ากันได้)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"บันทึก"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"ใช้ซิม"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"ใช้ซิมนี้"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"ปิด"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"ถอดซิมการ์ดเพื่อปิดใช้ซิมนี้"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"แตะเพื่อเปิดใช้งาน <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"ลบซิม"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ประเภทเครือข่ายที่ต้องการ"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"เปลี่ยนโหมดปฏิบัติการของเครือข่าย"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ประเภทเครือข่ายที่ต้องการ"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"โปรดสอบถามผู้ให้บริการเครือข่ายสำหรับข้อมูลเกี่ยวกับราคา"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ปริมาณการใช้อินเทอร์เน็ตของแอป"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"โหมดเครือข่ายไม่ถูกต้อง <xliff:g id="NETWORKMODEID">%1$d</xliff:g> ไม่สนใจ"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"จุดเข้าใช้งาน"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"ใช้ไม่ได้เมื่อเชื่อมต่อกับ <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"เปลี่ยนเป็น <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ใช่ไหม"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"เปลี่ยนไปใช้ซิมการ์ดใช่ไหม"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"ใช้ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ใช่ไหม"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"ใช้งานซิมได้ทีละ 1 ซิมเท่านั้น\n\nการเปลี่ยนเป็น <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> จะไม่ยกเลิกบริการของ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"ใช้งาน eSIM ได้ครั้งละ 1 ซิมเท่านั้น\n\nการเปลี่ยนเป็น \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\" จะไม่ยกเลิกบริการของ \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\""</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"ใช้งานซิมได้ทีละ 1 ซิมเท่านั้น\n\nการเปลี่ยนจะไม่ยกเลิกบริการของ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"คุณใช้ได้ 2 ซิมพร้อมกัน หากต้องการใช้ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ให้ปิดอีกซิมหนึ่ง"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"เปลี่ยนเป็น <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"ปิด <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"ไม่เป็นไร"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"ยกเลิก"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"เปลี่ยน"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"ปิด"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"เปิดใช้งานซิมไม่ได้"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ลองเปิดใช้ซิมอีกครั้ง หากยังพบปัญหาอยู่ ให้รีสตาร์ทอุปกรณ์"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"ตั้งค่าซิม"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"ตั้งค่ากำหนดเครือข่ายมือถือเพื่อใช้หลายซิมบนอุปกรณ์นี้"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"ติดป้ายกำกับซิม"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"คุณจะเห็นป้ายกำกับเหล่านี้เมื่อทำการโทร ส่งข้อความ และเชื่อมต่ออินเทอร์เน็ต รวมถึงในการตั้งค่า"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"ป้ายกำกับซิม"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"ป้ายกำกับ"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"เลือกซิมที่จะใช้"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"คุณใช้ได้ 2 ซิมพร้อมกัน"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"ตั้งค่าซิมหลัก"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"เลือกซิมที่จะใช้เป็นค่าเริ่มต้นสำหรับการโทร ส่งข้อความ และเชื่อมต่ออินเทอร์เน็ต"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"ซิมหลักของคุณ"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"โทร"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ข้อความ"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"การเปลี่ยนการเชื่อมต่ออินเทอร์เน็ตอัตโนมัติ"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"ใช้การเชื่อมต่ออินเทอร์เน็ตจากซิมใดก็ได้โดยขึ้นอยู่กับการครอบคลุมและความพร้อมใช้งาน"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"ใช้เชื่อมต่ออินเทอร์เน็ตเท่านั้น"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"ตั้งค่า"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"ถัดไป"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"เครือข่ายมือถือ"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"หมายเลขโทรศัพท์"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"ป้ายกำกับและสีซิม"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"การเปิดใช้งานเครือข่าย"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"การเปลี่ยนผู้ให้บริการ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ใช้งานอยู่"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"หากต้องการใช้อินเทอร์เน็ตมือถือ ฟีเจอร์การโทร และ SMS ในภายหลัง ให้ไปที่การตั้งค่าเครือข่าย"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"ซิม"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"ลบ eSIM นี้ใช่ไหม"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"การลบซิมนี้จะนำบริการ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ออกจากอุปกรณ์นี้\n\nแต่จะไม่ยกเลิกบริการของ <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"ลบ"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"กำลังลบซิม…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"ลบซิมไม่ได้"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"ลบซิมนี้ไม่ได้เนื่องจากมีข้อผิดพลาด\n\nรีสตาร์ทอุปกรณ์แล้วลองอีกครั้ง"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"เชื่อมต่อกับอุปกรณ์"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"แอป <xliff:g id="APPNAME">%1$s</xliff:g> ต้องการใช้เครือข่าย Wi‑Fi ชั่วคราวเพื่อเชื่อมต่อไปยังอุปกรณ์"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"ไม่พบอุปกรณ์ ตรวจสอบว่าอุปกรณ์เปิดอยู่และพร้อมเชื่อมต่อ"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"หมายเลขฉุกเฉิน"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ผู้ให้บริการของคุณไม่รองรับการโทรหาหมายเลขฉุกเฉินผ่าน Wi‑Fi\nอุปกรณ์จะเปลี่ยนไปใช้เครือข่ายมือถือโดยอัตโนมัติเพื่อโทรหาหมายเลขฉุกเฉิน\nคุณจะโทรหาหมายเลขฉุกเฉินได้ในพื้นที่ที่มีสัญญาณมือถือครอบคลุมเท่านั้น"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"ใช้ Wi‑Fi สำหรับการโทรเพื่อคุณภาพที่ดีขึ้น"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"การโทรสำรอง"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"หาก <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ไม่พร้อมใช้งานหรือกำลังโรมมิ่ง ให้ใช้ซิมสำหรับอินเทอร์เน็ตมือถือในการโทรของ <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"การโทรสำรอง"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ข้อความ MMS ขาเข้า"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"ส่งข้อความ MMS ไม่สำเร็จ"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"แตะเพื่ออนุญาตให้ใช้การรับส่ง MMS ใน <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> ขณะอินเทอร์เน็ตมือถือปิดอยู่"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"ข้อมูลนโยบายงาน"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"การตั้งค่าที่ผู้ดูแลระบบไอทีจัดการ"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"บูตด้วยหน้าขนาด 16 KB"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"บูตอุปกรณ์โดยใช้เคอร์เนลที่รองรับหน้าขนาด 16 KB"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"รีบูตด้วยเคอร์เนลที่รองรับการใช้งานหน้าขนาด 16 KB ใช่ไหม"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"คำเตือน: บางแอปพลิเคชันอาจไม่รองรับการใช้งานโหมดนี้ อุปกรณ์จะรีบูตหลังจากยืนยัน"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"รีบูตด้วยเคอร์เนลที่รองรับการใช้งานหน้าขนาด 4 KB ใช่ไหม"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"อุปกรณ์จะรีบูตหลังจากยืนยัน"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"อัปเดตเป็นเคอร์เนลที่รองรับการใช้งานหน้าขนาด 16 KB ไม่สำเร็จ"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"กำลังใช้การเปลี่ยนแปลง"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"เครื่องจัดการรายงานข้อบกพร่อง"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"เลือกแอปที่จะให้จัดการทางลัดรายงานข้อบกพร่องในอุปกรณ์"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ส่วนตัว"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"โปรแกรมเล่นสื่อจะยังเปิดอยู่ในการตั้งค่าด่วนเพื่อกลับมาเล่นต่อได้โดยเร็ว"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"แสดงสื่อในหน้าจอล็อก"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"โปรแกรมเล่นสื่อจะยังเปิดอยู่ในหน้าจอล็อกเพื่อกลับมาเล่นต่อได้โดยเร็ว"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"แสดงคำแนะนำสื่อ"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"แสดงคำแนะนำสื่อจาก Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"อิงตามกิจกรรมของคุณ"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"ซ่อนโปรแกรมเล่น"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"แสดงโปรแกรมเล่น"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"ซิม"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"ใช้งานอยู่"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"ไม่ใช้งาน"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / ค่าเริ่มต้นสำหรับ<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"การโทร"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"เสียงจากสื่อที่เข้ากันได้จะสมจริงยิ่งขึ้น"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"การติดตามการเคลื่อนไหวของศีรษะ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"เสียงจะเปลี่ยนตามการขยับศีรษะเพื่อให้ฟังดูเป็นธรรมชาติมากยิ่งขึ้น"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"สิทธิ์การซิงค์"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"ให้สิทธิ์ของแอปแก่ <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> เหมือนกับที่คุณอนุญาตใน <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"สิทธิ์การซิงค์จากโทรศัพท์"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"ให้สิทธิ์ของแอปแก่นาฬิกาเหมือนกับที่คุณอนุญาตบนโทรศัพท์เครื่องนี้"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ประเภทอุปกรณ์เสียง"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ไม่ทราบ"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ลำโพง"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"ปานกลาง"</string>
     <string name="contrast_high" msgid="3988567609694797696">"สูง"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"แอปนี้เปิดได้ใน 1 หน้าต่างเท่านั้น"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"เปิดอยู่"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ปิดอยู่"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ปิดอยู่"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ปิด"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"เปิด"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"ปิด"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"เปิด"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"ปิด"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"ปรับหน้าจอที่สว่างให้มืดและปรับหน้าจอที่มืดให้สว่าง"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"ซูมเข้าบนหน้าจอ"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"ปิด"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"ปิด"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"เปิด"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"ปิด"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"เปิด"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"ตั้งค่ารหัสผ่านแล้ว"</string>
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index f9ef5e2..a3c1d5a 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Pagkalipas ng 1 minuto"</item>
     <item msgid="1574040255478150028">"Pagkalipas ng 5 minuto"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 11799ce..27548759 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Isa ka nang developer!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Hindi na kailangan, isa ka nang developer."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Paki-enable muna ang mga opsyon ng developer."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Ang mga admin user lang ang makaka-access sa mga setting ng developer."</string>
     <string name="header_category_system" msgid="1665516346845259058">"System"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Gumagana"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Hindi Gumagana"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Mag-o-on ang display sa harap kapag na-fold mo ang iyong device"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Para lang sa mga laro, video, at higit pa"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Mag-o-on ang display sa harap para sa mga app na pumipigil sa pag-idle ng iyong screen"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Mag-swipe pataas para magpatuloy"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"I-fold ang iyong telepono at mag-swipe pataas sa front display para patuloy na gamitin ang app, o maghintay nang ilang segundo para mag-lock ang screen"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Hindi kailanman"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Magla-lock ang display sa harap kapag na-fold mo ang iyong device"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Gumamit ng auto-rotate"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Kaugnay"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Ringtone at mga alarm"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Audio sa mga tawag"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Notification at system sound"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Mga tunog ng media at system"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Mga Notification"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Bilang default, ang mga indibidwal na app ang tumutukoy ng output ng audio"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Walang pangalang Bluetooth na device"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Naghahanap"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Naka-on ang Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Tingnan lahat"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Tingnan lahat"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Pagpindot sa tail button"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Profile sa trabaho)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Kumonekta sa isang LE audio stream"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Mga audio stream sa malapit"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Mga audio stream"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Kumonekta sa isang audio stream gamit ang QR code"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Walang audio stream sa malapit."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Para pumili ng wika para sa bawat app, pumunta sa mga setting ng wika ng app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Matuto pa tungkol sa mga wika ng app"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Gawing %s ang wika ng system?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Idagdag ang %s sa mga gustong wika?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Ipinapaalam nito sa mga app at website na gusto mo rin ang wikang ito."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Magbabago ang mga setting ng device at panrehiyong preference mo."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Palitan"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Hindi available ang %s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Sabado"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Kung hindi sinusuportahan ng isang app ang mga panrehiyong preference, gagamitin ng app ang mga default nitong setting sa lokalidad."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Matuto pa tungkol sa mga preference sa wika."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Mga karagdagang kagustuhan"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Mga pantawag"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Itakda kung paano mo gustong matawag"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Magagamit ng mga app ang mga pinili mong pantawag sa iyong sarili para i-personalize kung paano ka nila tatawagin."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Hindi tinukoy"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Pambabae"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Panlalaki"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Neutral"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Alisin ang piniling wika?}one{Alisin ang mga piniling wika?}other{Alisin ang mga piniling wika?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Ipapakita ang text sa ibang wika."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Hindi maaalis ang lahat ng wika"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Lokasyon"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Gumamit ng lokasyon"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Naka-off"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Naka-on - # app ang may access sa lokasyon}one{Naka-on - # app ang may access sa lokasyon}other{Naka-on - # na app ang may access sa lokasyon}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Naka-on / # app ang may access sa lokasyon}one{Naka-on / # app ang may access sa lokasyon}other{Naka-on / # na app ang may access sa lokasyon}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Naglo-load…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Matutukoy ng mga app na may pahintulot sa Mga kalapit na device ang relatibong posisyon ng mga nakakonektang device."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Naka-off para sa mga app at serbisyo ang access sa lokasyon. Posibleng ipadala pa rin ang lokasyon ng iyong device sa mga reresponde sa emergency kapag tumawag o nag-text ka sa pang-emergency na numero."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Matuto pa tungkol sa Mga Setting ng Lokasyon."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Matuto pa tungkol sa Mga setting ng lokasyon."</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Para baguhin ang access sa lokasyon, pumunta sa Mga Setting &gt; Seguridad at Privacy &gt; Mga kontrol sa privacy"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Para sa pinakamahuhusay na resulta, gumamit ng screen protector na certified ng Made for Google. Posibleng hindi gumana ang fingerprint ng iyong anak gamit ang iba pang screen protector."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Pag-unlock Gamit ang Relo"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Kapag na-set up mo ang Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint, hihingin ng iyong telepono ang fingerprint mo kapag nakasuot ka ng mask o nasa madilim na lugar ka.\n\nPuwede kang mag-unlock gamit ang iyong relo kapag hindi makilala ang mukha o fingerprint mo."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Puwede kang mag-unlock gamit ang iyong relo kapag hindi makilala ang fingerprint mo."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Puwede kang mag-unlock gamit ang iyong relo kapag hindi makilala ang mukha mo."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Kapag nag-set up ka ng Pag-unlock Gamit ang Mukha at Pag-unlock Gamit ang Fingerprint, hihingin ng iyong telepono ang fingerprint mo kapag naka-mask ka o nasa madilim kang lugar.\n\nAng Pag-unlock Gamit ang Relo ay isa pang madaling paraan para i-unlock ang iyong telepono, halimbawa, kapag basa ang mga daliri mo o hindi nakikilala ang iyong mukha."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Ang Pag-unlock Gamit ang Relo ay isa pang madaling paraan para i-unlock ang iyong telepono, halimbawa, kapag hindi nakikilala ang fingerprint mo."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Ang Pag-unlock Gamit ang Relo ay isa pang madaling paraan para i-unlock ang iyong telepono, halimbawa, kapag hindi nakikilala ang mukha mo."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Gamitin ang fingerprint o relo para"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Gamitin ang mukha o relo para"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Gamitin ang mukha, fingerprint, o relo para"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Naidagdag ang mukha at <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Naidagdag ang mukha, fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Naidagdag ang mukha, mga fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Remote Authenticator Unlock"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Idinagdag ang relo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"I-set up ang iyong relo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ang Pag-unlock Gamit ang Relo ay isa pang madaling paraan para i-unlock ang teleponong ito, halimbawa, kapag basa ang iyong mga daliri o kung hindi nakikilala ang mukha mo.\n\nMagagamit mo ang iyong relo para i-unlock ang teleponong ito kapag ikaw ay:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Hindi ngayon"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Magpatuloy"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Higit pa"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Paano ito gumagana"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ang iyong relo ay dapat na naka-unlock, nasa iyong pulso, at malapit sa teleponong ito. Hindi mo kakailanganing i-unlock ulit ang iyong relo habang nasa pulso mo ito."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kapag naka-unlock ang teleponong ito, maaabisuhan ka sa iyong relo. Kung na-unlock ito nang hindi mo sinadadya, i-tap ang notification para i-lock ulit ang telepono."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ikaw ang may kontrol"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puwede mong alisin ang iyong relo sa Pag-unlock Gamit ang Relo anumang oras sa Mga Setting"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Mag-tap ng notification"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Mag-swipe pataas sa lock screen"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Piliin ang iyong relo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Mga available na relo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Kanselahin"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Kumpirmahin"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Handa ka na!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Puwede mo nang gamitin ang iyong relo para i-unlock ang teleponong ito kapag nag-swipe ka pataas sa lock screen o nag-tap ka ng notification"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Tapos na"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Pag-unlock Gamit ang Relo"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puwede mong gamitin ang iyong relo para i-unlock ang teleponong ito kapag nag-swipe ka pataas sa lock screen o nag-tap ka ng notification"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para magamit ang Pag-unlock Gamit ang Relo, dapat naka-unlock, suot mo sa iyong kamay, nasa malapit, at nakakonekta sa teleponong ito ang iyong relo. Kung maaantala ang koneksyon, kakailanganin mong i-unlock ang telepono bago mo magamit ang Pag-unlock Gamit ang Relo.\n\nTandaan:\nIsang relo lang ang magagamit mo sa bawat pagkakataon. Para magdagdag ng isa pang relo, alisin muna ang kasalukuyang relo."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Matuto pa tungkol sa Pag-unlock Gamit ang Relo"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Magdagdag ng relo"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Alisin ang relo"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Pag-unlock Gamit ang Fingerprint at Mukha"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Pag-unlock Gamit ang Mukha at Fingerprint para sa trabaho"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Kinakailangan ang pag-set up"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Seguridad"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Privacy"</string>
     <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="2274405892301976238">"Panatilihing naka-lock at nakatago ang mga pribadong app"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Ilagay ang mga pribadong app sa hiwalay na space na puwede mong itago o i-lock"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Lock ng Pribadong Space"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Gamitin ang lock ng screen ng device"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Pag-unlock Gamit ang Mukha at Fingerprint"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Pag-unlock Gamit ang Fingerprint"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Pag-unlock Gamit ang Mukha"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"I-tap para i-set up"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Pag-unlock Gamit ang Fingerprint para sa Pribadong Space"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Pag-unlock Gamit ang Mukha para sa Pribadong Space"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Mga paraan para mag-unlock"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Kapareho ng lock ng screen ng device"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Pumili ng bagong lock para sa Pribadong Space?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Awtomatikong i-lock"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Awtomatikong i-lock ang pribadong space"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Puwede mong awtomatikong i-lock ang pribadong space mo kung matagal mo nang hindi ginamit ang iyong device"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Sa tuwing magla-lock ang device"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Paglipas ng 5 minutong walang aktibidad"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Hindi kailanman"</string>
+    <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_delete_title" msgid="3075645119800272800">"I-delete 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="private_space_unlocked" msgid="9091600948712932046">"Na-unlock 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="7436025227616244687">"Para gamitin ang iyong pribadong space, magtakda ng lock ng screen sa device na ito."</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="private_space_cancel_label" msgid="379259667396956886">"Kanselahin"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"I-set up"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Mag-set up ng pribadong space"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Ilagay ang mga pribadong app sa hiwalay na space na puwede mong itago o i-lock"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Paano ito gumagana"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Maa-access mo ang iyong pribadong space mula sa ibaba ng listahan ng mga app mo"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Protektado ng lock ang mga app sa iyong pribadong space"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Nakatago ang mga notification mula sa mga app sa iyong pribadong space kapag naka-lock ito"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Hindi lalabas ang mga app sa iyong pribadong space sa manager ng pahintulot, dashboard ng privacy, at iba pang setting kapag naka-lock ang pribadong space mo.\n\nHindi puwedeng ilipat sa bagong device ang iyong pribadong space. Kakailanganin mong mag-set up ng isa pang pribadong space kung gusto mong gamitin ito sa ibang device.\n\nPuwedeng ma-access ng sinumang kokonekta sa iyong device sa isang computer o mag-i-install ng mga nakakapinsalang app sa device mo ang iyong pribadong space."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Sine-set up ang pribadong space…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Nakatago ang mga notification mula sa mga app sa pribadong space kapag naka-lock ito"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"I-unlock ang iyong pribadong space para magbahagi ng mga larawan o file mula sa mga app sa pribadong space"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Naka-install na ang ilang app sa iyong pribadong space"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Hindi na-set up ang pribadong space"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Subukan Ulit"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Gamitin ang lock ng screen para i-unlock ang pribadong space?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Puwede mong i-unlock ang iyong pribadong space sa parehong paraan kung paano mo i-unlock ang device mo, o pumili ng ibang lock"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Gamitin ang lock ng screen"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Pumili ng bagong lock"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Handa na lahat!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Para ma-access ang iyong pribadong space, pumunta sa listahan ng mga app mo at pagkatapos ay mag-scroll pababa"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Tapos na"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Mag-scroll pababa para mahanap ang pribadong space"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Pumili ng lock para sa iyong pribadong space"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Puwede mong i-unlock ang iyong pribadong space gamit ang fingerprint mo. Para sa seguridad, kailangan ng backup na lock para sa opsyong ito."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Magtakda ng PIN para sa pribadong space"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Magtakda ng password sa pribadong space"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Magtakda ng pattern sa pribadong space"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Para ipakita ang Pribadong Space (Hindi final na UX)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Buksan ang App na Mga Setting"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Mag-tap sa Seguridad at privacy &gt; Pribadong Space &gt; I-hide ang Pribadong Space kapag naka-lock"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Toggle: I-off ang I-hide ang Pribadong Space kapag naka-lock"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Paalala sa mga Googler: Dine-develop pa ang feature na ito"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Maaari mo ring kailanganing i-type ang passkey na ito sa iba pang device."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Kumpirmahin para ipares sa coordinated na set"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Payagan ang access sa iyong mga contact at history ng tawag"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Payagan din ang access sa mga contact at history ng tawag"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Gagamitin ang impormasyon para sa mga anunsyo sa tawag at higit pa"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Hindi makakonekta sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Mga available na device"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Nasa Airplane mode"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Abisuhan kapag may mga pampublikong network"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Mag-abiso kapag may available na pampublikong network na may mataas na kalidad"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Payagan ang mga WEP network"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"Ang WEP ay isang mas lumang protocol ng seguridad na hindi gaanong secure"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Hindi pinapayagan ng iyong carrier ang mga WEP network dahil hindi gaanong secure ang mga ito"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Awtomatikong i-on ang Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Mag-o-on ulit ang Wi‑Fi kapag malapit sa mga naka-save na network na may mataas na kalidad, gaya ng iyong home network"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Hindi available dahil naka-off ang lokasyon. I-on ang "<annotation id="link">"lokasyon"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Nagbibigay-daan ang pag-scan ng Wi‑Fi sa mga app at serbisyo para mag-scan ng mga Wi‑Fi network anumang oras, kahit na naka-off ang Wi‑Fi. Magagamit ito, halimbawa, para pahusayin ang mga feature at serbisyong batay sa lokasyon."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"I-on"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Na-on ang pag-scan ng Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Gumagamit ang network na ito ng mas lumang protocol ng seguridad na hindi gaanong secure"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Na-block ang <xliff:g id="NAME">%1$s</xliff:g>"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Gumagamit ang network na ito ng mas lumang protocol ng seguridad na tinatawag na WEP na hindi gaanong secure. Para kumonekta pa rin, puwede mong payagan ang mga WEP network."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Hindi ka pinapayagan ng iyong carrier na kumonekta sa network na ito dahil gumagamit ito ng mas lumang protocol ng seguridad na hindi gaanong secure"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Payagan ang WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Isara"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Mga advanced na opsyon"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Mga Advanced na Opsyon sa drop down na listahan"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"i-expand"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Manatili sa Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Huwag kailanman ipakitang muli"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Kumonekta"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Na-on ang Wi‑Fi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Nakakonekta sa <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Kumokonekta sa <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Kumokonekta…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Nabigong kumonekta sa network."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Walang signal ang network"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Kalimutan"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Baguhin"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nabigong kalimutan ang network"</string>
     <string name="wifi_save" msgid="2312643132472226807">"I-save"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Nabigong i-save ang network"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Kanselahin"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobile data"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Nagcha-charge"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Nagcha-charge"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Koneksyon sa hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Lakas ng koneksyon"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Naka-save na network"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Walang naitakdang password"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Pangalan ng hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Password ng hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP Band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Awtomatikong i-off ang hotspot"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Kapag walang nakakonektang device"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Palawakin ang compatibility"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"White balance ng display"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"I-disable ang default na frame rate para sa mga laro"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"I-disable ang paglilimita sa maximum na frame rate para sa mga laro sa <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ginagamit ng atensyon sa screen ang camera sa harap para makita kung may taong tumitingin sa screen. Gumagana ito sa device, at hindi kailanman sino-store o ipinapadala sa Google ang mga larawan."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"I-on ang atensyon sa screen"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Panatilihing naka-on ang screen habang tinitingnan mo ito"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Gagamit ng mas maraming baterya ang mas matagal na timeout ng screen."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Naka-lock ang camera"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Dapat ma-unlock ang camera para sa Pag-detect ng Mukha"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Naka-unlock dapat ang Camera para sa Atensyon sa Screen"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (sim slot <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (sim slot <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (pangunahin)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Para tingnan, piliin ang naka-save na network"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL na bersyon"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Antas ng baterya"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Communal"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Mga communal setting"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"I-save"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Kanselahin"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Hindi maaaring walang laman ang field ng Pangalan."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Hindi maaaring walang laman ang APN."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Dapat na 3 digit ang field na MCC."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Dapat na 2 o 3 digit ang field ng MNC."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Hindi pinapayagan ng carrier ang pagdaragdag ng mga APN na %s ang uri."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Valid dapat ang field ng MMSC."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Nire-restore ang default na mga setting ng APN"</string>
     <string name="menu_restore" msgid="4310539620115151551">"I-reset sa default"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Nakumpleto ang pag-reset sa default na mga setting ng APN."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"I-reset"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Na-reset ang Bluetooth at Wi‑Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Burahin ang mga eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Hindi nito kakanselahin ang anumang plan ng serbisyo sa mobile. Para mag-download ng mga kapalit na SIM, makipag-ugnayan sa iyong carrier."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"I-reset ang mga setting"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"I-reset ang lahat ng network setting? Hindi mo maa-undo ang pagkilos na ito."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"I-reset ang lahat ng setting ng network at burahin ang mga eSIM? Hindi mo maa-undo ang pagkilos na ito."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"I-reset?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Hindi available ang pag-reset ng network para sa user na ito"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Na-reset na ang mga network setting"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Hindi mabura ang mga SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Hindi mabura ang eSIM dahil nagkaroon ng error.\n\nI-restart ang iyong device at subukan ulit."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Burahin ang data (factory reset)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Burahin lahat (factory reset)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musika"</li>\n<li>"Mga Larawan"</li>\n<li>"Ibang data ng user"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"mga eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Hindi nito kakanselahin ang iyong plano ng serbisyo sa mobile."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Made-delete ang lahat ng iyong personal na impormasyon at na-download na app. Hindi mo maa-undo ang pagkilos na ito."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Made-delete ang lahat ng iyong personal na impormasyon, kasama ang mga na-download na app at SIM. Hindi mo maa-undo ang pagkilos na ito."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Burahin ang lahat ng data?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Hindi available ang factory reset para sa user na ito"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Binubura"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Hindi nagbabahagi ng internet sa ibang device"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Naka-off"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Pag-tether"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Huwag gumamit ng Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Magbahagi ng internet sa pamamagitan lang ng USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Magbahagi ng internet sa pamamagitan lang ng Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Magbahagi ng internet sa pamamagitan lang ng Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Magbahagi ng internet sa pamamagitan lang ng USB at Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Magbahagi ng internet sa pamamagitan lang ng USB at Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Magbahagi ng internet sa pamamagitan lang ng Bluetooth at Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Magbahagi ng internet sa pamamagitan lang ng USB, Bluetooth, at Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Pag-tether ng USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Pag-tether ng Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Pag-tether ng Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Gamitin ang hotspot at pag-tether para magbigay ng internet sa iba pang device sa pamamagitan ng iyong koneksyon sa Wi‑Fi o mobile data. Puwede ring gumawa ng hotspot ang mga app para magbahagi ng content sa mga kalapit na device."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Tulong"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobile network"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobile plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS app"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Palitan ang SMS app?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Gamitin ang <xliff:g id="NEW_APP">%1$s</xliff:g> sa halip na ang <xliff:g id="CURRENT_APP">%2$s</xliff:g> bilang iyong SMS app?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Baguhin ang Wi‑Fi assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Gamitin ang <xliff:g id="NEW_APP">%1$s</xliff:g> sa halip na ang <xliff:g id="CURRENT_APP">%2$s</xliff:g> upang pamahalaan ang iyong mga koneksyon sa network?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Gamitin ang <xliff:g id="NEW_APP">%s</xliff:g> upang pamahalaan ang iyong mga koneksyon sa network?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Hindi kilalang SIM operator"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Walang kilalang provisioning website ang <xliff:g id="OPERATOR">%1$s</xliff:g>"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Mangyaring magpasok ng SIM card at mag-restart"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Mangyaring kumonekta sa Internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Kamakailang hiling sa lokasyon"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokayon ng profile sa trabaho"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Pahintulot sa lokasyon ng app"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"I-clear ang access"</string>
     <string name="controls_label" msgid="8671492254263626383">"Mga Kontrol"</string>
     <string name="force_stop" msgid="2681771622136916280">"Sapilitang itigil"</string>
+    <string name="archive" msgid="9074663845068632127">"I-archive"</string>
+    <string name="restore" msgid="7622486640713967157">"I-restore"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Kabuuan"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Laki ng app"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB storage na app"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Hindi makalkula ang laki ng package."</string>
     <string name="version_text" msgid="7628938665256107608">"bersyon <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Ilipat"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Hindi na-archive"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Na-archive ang <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Hindi na-restore"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Nire-restore ang <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Mayroon nang kasalukuyang isinasagawang isa pang paglipat."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Hindi sapat na espasyo ng storage."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Hindi umiiral ang app."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Available na On-screen na keyboard"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Pamahalaan ang on-screen na keyboard"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Mga Opsyon"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Aktwal na keyboard"</string>
     <string name="show_ime" msgid="4334255501724746849">"Gumamit ng on-screen na keyboard"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Panatilihin ito sa screen habang aktibo ang pisikal na keyboard"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Mga bounce key"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"I-enable ang Mga bounce key para sa accessibility ng pisikal na keyboard"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Mga sticky key"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"I-enable ang Mga sticky key para sa accessibility ng pisikal na keyboard"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Mga keyboard shortcut"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ipakita ang listahan ng mga shortcut"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Mga keyboard at tool ng profile sa trabaho"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Ayusin ayon sa tagal ng gamit"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Ayusin ayon sa huling paggamit"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ayusin ayon sa pangalan ng app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Huling oras na ginamit"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Huling ginamit"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"hindi kailanman"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Oras ng paggamit"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Accessibility"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Mga setting ng pagiging maa-access"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Magpatuloy pa rin"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Kanselahin"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Mga setting ng pag-magnify"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Mag-magnify gamit ang triple-tap"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Mag-magnify gamit ang shortcut"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Mag-magnify gamit ang shortcut at pag-triple tap"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Tungkol sa <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Mag-double tap sa 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="860548190334486449">"Mag-double tap saanman sa screen gamit ang dalawang daliri para simulan at ihinto ang pag-magnify."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Para gumamit ng feature ng pagiging naa-access, mag-swipe pataas mula sa ibaba ng screen gamit ang 3 daliri.\n\nPara magpalipat-lipat sa mga feature, mag-swipe pataas gamit ang 3 daliri at i-hold ang mga ito."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Setting ng accessibility button"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Mga setting ng button"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Shortcut ng <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Button ng accessibility"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Galaw para sa accessibility"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"I-double tap ang screen gamit ang dalawang daliri"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"i-double tap ang screen gamit ang dalawang daliri"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Mabilis na i-tap ang screen nang {0,number,integer} (na) beses gamit ang dalawang daliri"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"I-triple tap ang screen"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Matuto pa tungkol sa button ng accessibility at paggalaw"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Paggamit sa button ng accessibility. Hindi available ang galaw sa 3-button na navigaton."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Madaling i-access ang mga feature ng accessibility"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Para magsimula"</b>\n"1. Pumunta sa mga setting ng accessibility\n2. Pumili ng feature at i-tap ang shortcut\n3. Piliin kung gusto mong gumamit ng button o galaw para i-access ang feature"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Para magsimula"</b>\n"1. Pumunta sa mga setting ng accessibility\n2. Pumili ng feature at i-tap ang shortcut\n3. Piliin ang button para i-access ang feature"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Para magsimula&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Pumunta sa mga setting ng accessibility&lt;br/&gt; {1,number,integer}. Pumili ng feature at i-tap ang shortcut&lt;br/&gt; {2,number,integer}. Piliin kung gusto mong gumamit ng button o galaw para i-access ang feature&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Para magsimula&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Pumunta sa mga setting ng accessibility&lt;br/&gt; {1,number,integer}. Pumili ng feature at i-tap ang shortcut&lt;br/&gt; {2,number,integer}. Piliin ang button para i-access ang feature&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Gamitin ang button o galaw"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Lokasyon"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Laki"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Tatapusin ng power button ang tawag"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Malaking pointer ng mouse"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Gawing mas kapansin-pansin ang pointer ng mouse"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Gawing madilim ang lahat ng app"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Nalalapat sa mga app na walang madilim na tema. Puwedeng may mga isyu sa display ang ilang app, tulad ng naka-invert na kulay."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Alisin ang mga animation"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Bawasan ang paggalaw sa screen"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Masusubaybayan nito ang iyong mga pakikipag-ugayan sa isang app o hardware na sensor, at puwede itong makipag-ugnayan sa mga app para sa iyo."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Payagan"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Tanggihan"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Ihinto"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Kanselahin"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Ihinto ang <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Kapag na-tap ang <xliff:g id="STOP">%1$s</xliff:g>, hihinto ang <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"I-off"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"I-on lang"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"I-off ang <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Walang mga serbisyong naka-install"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Walang serbisyong napili"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Walang ibinigay na paglalarawan."</string>
     <string name="settings_button" msgid="2195468788019730377">"Mga Setting"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"pagkasensitibo sa ilaw, photophobia, madilim na tema, matinding pananakit ng ulo, pananakit ng ulo, reading mode, night mode, bawasan ang liwanag, white point"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Dali ng paggamit, dali ng pag-access, tulong, nakakatulong"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"paningin, pandinig, bulag, bingi, paggalaw, kagalingan sa paggalaw, nakakatulong, pagtulong, dali ng paggamit, dali ng pag-access, kamay, tulong"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Magnifier ng Window, Zoom, Pag-magnify, Malabo ang paningin, Palakihin, gawing mas malaki"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Mga caption, mga closed caption, CC, Instant Transcribe, may problema sa pandinig, walang pandinig, CART, speech to text, subtitle"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"contrast ng kulay"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"mga hearing aid, may problema sa pandinig, pagkawala ng pandinig, mga cochlear implant, mga device sa pag-amplify, mga processor ng tunog"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"paggalaw, mouse, external na mouse, head mouse, adaptive na mouse, wheelchair, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"mga hearing aid, may problema sa pandinig, pagkawala ng pandinig, mga cochlear implant, mga device sa pag-amplify, mga sound processor, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"may problema sa pandinig, walang pandinig, mga caption, Teletype, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"tatlong button"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"kagalingan sa paggalaw, paggalaw, nakatatanda, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, panginginig, paulit-ulit na pinsala sa kalamnan, kamay"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"pagkaantala, kagalingan sa paggalaw, nakatatanda"</string>
     <string name="print_settings" msgid="8519810615863882491">"Pag-print"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Naka-off"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{May 1 serbisyo ng pag-print na naka-on}one{May # serbisyo ng pag-print na naka-on}other{May # na serbisyo ng pag-print na naka-on}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Tingnan ang mga app na pinakamalakas gumamit"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Naka-optimize ang pag-charge para protektahan ang baterya mo"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Para makatulong na mapatagal ang baterya mo, naka-optimize ang pag-charge"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Naka-optimize ang pag-charge para protektahan ang baterya mo"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Para tumulong na mapatagal ang lifespan ng baterya mo, naka-optimize ang pag-charge habang naka-dock"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Naka-optimize ang pag-charge para protektahan ang baterya mo"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Para tumulong na mapatagal ang lifespan ng baterya mo, naka-optimize ang pag-charge habang naka-dock"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"China-charge hanggang mapuno"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Para protektahan ang iyong baterya, io-optimize ang pag-charge sa susunod na i-dock ang tablet mo"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Naka-pause ang matuto pa tungkol sa pag-charge."</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Ituloy ang pag-charge"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Kasama ang aktibidad sa background na malakas kumonsumo ng baterya"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Alisin"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Kanselahin"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"I-charge hanggang mapuno"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Isyu sa pag-charge ng accessory"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Matuto pa tungkol sa hindi compatible na pag-charge"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Awtomatikong pamahalaan ang mga app"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ngayon"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Chart ng paggamit ng baterya"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Chart ng paggamit ng baterya kada araw"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Chart ng paggamit ng baterya kada oras"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Porsyento ng level ng baterya mula <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> hanggang <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Paggamit ng baterya mula noong huling na-full charge"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Paggamit ng baterya para sa <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Tagal ng paggamit mula noong huling ma-full charge"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Signal sa pang-emergency na pag-dial"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Itakda ang pag-uugali kapag naganap ang isang pang-emergency na tawag"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Pag-back Up"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Naka-on"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Naka-off"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"I-backup &amp; ipanumbalik"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Personal na data"</string>
     <string name="backup_data_title" msgid="507663517227498525">"I-back up ang aking data"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Pangalan"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Uri"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Address ng server"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP encryption (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP na lihim"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifier"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec na paunang nabahaging key"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Certificate ng user ng IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"CA certificate ng IPSec"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"certificate ng server ng IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Ipakita ang mga advanced na pagpipilian"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Mga domain sa paghahanap ng DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Mga server ng DNS (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Mga pagpapasahang ruta (hal. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Username"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Password"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"I-save ang impormasyon ng account"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(hindi ginagamit)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(huwag i-verify ang server)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(natanggap mula sa server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Hindi maaaring palaging manatiling nakakonekta ang uri ng VPN na ito"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Mga numeric na address ng server lang ang sinusuportahan ng VPN na palaging naka-on"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"May tinukoy dapat na server ng DNS para sa VPN na palaging naka-on"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Numeric dapat ang mga address ng server ng DNS para sa VPN na palaging naka-on"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Hindi sinusuportahan ng impormasyong inilagay ang VPN na palaging naka-on"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Kanselahin"</string>
     <string name="vpn_done" msgid="5137858784289564985">"I-dismiss"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"I-block ang mga koneksyong walang VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Gawing mandatoryo ang pagkonekta sa VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Hindi secure. Mag-update sa IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Hindi nasimulan ang hindi sinusuportahang VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Pumili ng VPN profile kung saan palaging mananatiling nakakonekta. Papayagan lang ang trapiko ng network kapag nakakonekta sa VPN na ito."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Wala"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Nangangailangan ang Always-on VPN ng IP address para sa parehong server at DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Mga AMBER alert"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Tumanggap ng mga bulletin tungkol sa pagdampot sa mga bata"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Ulitin"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"I-enable ang Call Manager"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Payagan ang serbisyong ito na pamahalaan kung paano ka tumatawag."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Call Manager"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Mga wireless na alerto sa emergency"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Mga network operator"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Mga access point name"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"magbayad, mag-tap, mga pagbabayad"</string>
     <string name="keywords_backup" msgid="707735920706667685">"backup, i-back up"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"galaw"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"mukha, i-unlock, auth, mag-sign in"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"mukha, pag-unlock, auth, pag-sign in, fingerprint, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, bersyon ng prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"I-on ang mga tunog"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Instant Caption"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"I-autocaption ang media"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Mga speaker ng telepono"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Mga speaker ng tablet"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Mga speaker ng device"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Wired na headphones"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Nagiging mas immersive ang audio mula sa compatible na media"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Naka-off"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ano ang gusto mong ipakita ng iyong lock screen?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Inalis ang mga kamakailang pag-uusap"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Inalis ang pag-uusap"</string>
     <string name="clear" msgid="5092178335409471100">"I-clear"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"I-clear ang <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Lalabas dito ang mga priyoridad at binagong pag-uusap"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Sa sandaling markahan mo ang isang pag-uusap bilang priyoridad, o magsagawa ng anupamang pagbabago sa mga pag-uusap, lalabas dito ang mga ito. \n\nPara baguhin ang mga setting ng pag-uusap: \nMag-swipe pababa mula sa itaas ng screen para buksan ang pull-down shade, pagkatapos ay pindutin nang matagal ang isang pag-uusap."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"I-minimize"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Naka-off"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Pag-pin ng app"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Sa pamamagitan ng pag-pin ng app, puwede mong panatilihing nakikita ang kasalukuyang app hanggang sa i-unpin mo ito. Puwedeng gamitin ang feature na ito, halimbawa, para mapalaro sa pinagkakatiwalaang kaibigan ang isang partikular na laro."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Kapag naka-pin ang isang app, puwedeng magbukas ng iba pang app ang naka-pin na app at puwedeng ma-access ang personal na data. \n\nPara gamitin ang pag-pin ng app: 	\n1. I-on ang pag-pin ng app 	\n2. Buksan ang Pangkalahatang-ideya 	\n3. I-tap ang icon ng app sa itaas ng screen, pagkatapos ay i-tap ang I-pin"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Kapag naka-pin ang isang app, puwedeng magbukas ng iba pang app ang naka-pin na app at puwedeng ma-access ang personal na data. \n\nKung gusto mong secure na ipagamit ang iyong device sa ibang tao, subukang gumamit na lang ng profile ng bisita. \n\nPara gamitin ang pag-pin ng app: 	\n1. I-on ang pag-pin ng app 	\n2. Buksan ang Pangkalahatang-ideya 	\n3. I-tap ang icon ng app sa itaas ng screen, pagkatapos ay i-tap ang I-pin"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Kapag naka-pin ang isang app, puwedeng magbukas ng iba pang app ang naka-pin na app at puwedeng ma-access ang personal na data. \n\nPara gamitin ang pag-pin ng app: 	\n{0,number,integer}. I-on ang pag-pin ng app 	\n{1,number,integer}. Buksan ang Overview 	\n{2,number,integer}. I-tap ang icon ng app sa itaas ng screen, pagkatapos ay i-tap ang I-pin"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Kapag naka-pin ang isang app, puwedeng magbukas ng iba pang app ang naka-pin na app at puwedeng ma-access ang personal na data. \n\nKung gusto mong secure na ipagamit ang iyong device sa ibang tao, subukang gumamit na lang ng profile ng bisita. \n\nPara gamitin ang pag-pin ng app: 	\n{0,number,integer}. I-on ang pag-pin ng app 	\n{1,number,integer}. Buksan ang Overview 	\n{2,number,integer}. I-tap ang icon ng app sa itaas ng screen, pagkatapos ay i-tap ang I-pin"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kapag naka-pin ang isang app: \n\n•		Puwedeng ma-access ang personal data \n		(gaya ng mga contact at content ng email) \n•	 Puwedeng magbukas ng ibang app ang naka-pin na app \n\nGamitin lang ang pag-pin ng app sa mga taong pinagkakatiwalaan mo."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Humingi ng pattern sa pag-unlock bago mag-unpin"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Humingi ng PIN bago mag-unpin"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Mga setting ng hindi ginagamit na app"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"I-pause ang aktibidad sa app kung hindi ginagamit"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Alisin ang mga pahintulot, i-delete ang mga pansamantalang file, at ihinto ang mga notification"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Pamahalaan ang app kung hindi ginagamit"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Alisin ang mga pahintulot, i-delete ang mga pansamantalang file, ihinto ang mga notification, at i-archive ang app"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Lahat ng app"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Mga naka-install na app"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Mga instant na app"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Libre"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Memory na ginamit ng mga app"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 app ang gumamit ng memory sa nakalipas na {time}}one{# app ang gumamit ng memory sa nakalipas na {time}}other{# na app ang gumamit ng memory sa nakalipas na {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"I-enable ang pag-profile ng paggamit ng memory"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Nangangailangan ng mga karagdagang resource ng system ang pag-profile ng paggamit ng memory."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Na-disable ang pag-profile ng memory"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frequency"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maximum na paggamit"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Walang nagamit na data"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Ipakita sa ibabaw ng ibang app"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Payagang ipakita sa ibabaw ng iba pang app"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Payagan ang app na ito na lumabas sa ibabaw ng iba pang app na ginagamit mo. Makikita ng app na ito kung saan mo tina-tap o binabago ang lumalabas sa screen."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Palitan ang media output"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Payagan ang app na magpalit ng media output"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Payagan ang app na ito na pumili kung aling nakakonektang device ang magpe-play ng audio o video mula sa iba pang app. Kung papayagan, magagawa ng app na ito na i-access ang listahan ng mga available na device gaya ng mga headphone at speaker at piliin kung aling output device ang gagamitin para mag-stream o mag-cast ng audio o video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Access sa lahat ng file"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Pahusayin ang pag-activate gamit ang boses"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Gumagamit ang device ng pribadong intelligence para mapahusay ang modelo ng pag-activate gamit ang boses. Puwedeng makatanggap ang mga app ng mga nakabuod na update na pinagsama-sama sa maraming user para mapanatili ang privacy habang pinapahusay ang modelo para sa lahat.\n\n"<a href="">"Higit pa tungkol sa pribadong intelligence"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Babala kapag umabot na sa <xliff:g id="ID_1">^1</xliff:g> ang data"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> na limitasyon sa data"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Babala kapag umabot na sa <xliff:g id="ID_1">^1</xliff:g> ang data / <xliff:g id="ID_2">^2</xliff:g> na limitasyon sa data"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Maaaring iba ang accounting ng data ng carrier kumpara sa accounting ng device"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Hindi kasama ang data na ginagamit ng mga carrier network"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ang nagamit"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Magtakda ng babala sa data"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Na-update <xliff:g id="ID_1">^2</xliff:g> ang nakalipas"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Kaka-update lang ng <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Kaka-update lang"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Tingnan ang plan"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Tingnan ang mga detalye"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Data Saver"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Hindi pinaghihigpitang data"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Anomaly sa paggamit ng baterya"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Mga tile ng developer para sa mga mabilisang setting"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"I-disable ang pag-time out ng pahintulot sa adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"I-disable ang awtomatikong pagbawi ng mga pahintulot sa adb para sa mga system na hindi pa ulit kumokonekta sa loob ng default (7 araw) na haba ng oras o sa loob ng haba ng oras na na-configure ng user (minimum na 1 araw)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Trace ng Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"I-Off ang Mga Sensor"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Mga setting ng profile sa trabaho"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Maghanap ng mga contact ng directory ng trabaho sa mga personal na app"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Serbisyo ng autofill"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Default na serbisyo ng autofill"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Mga Password"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Mga password, passkey, at serbisyo sa data"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Mga karagdagang provider"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}one{# password}other{# na password}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"auto, punan, autofill, password"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Mga password, passkey, at serbisyo sa data"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;I-off ang lahat ng serbisyo?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Hindi magiging available para sa autofill ang mga password, passkey, at iba pang naka-save na impormasyon kapag nag-sign in ka"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Baguhin ang gusto mong serbisyo sa &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 dito ang mga bagong password, passkey, at iba pang impormasyon mula ngayon. Puwedeng 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_enable_confirmation_message_title" msgid="1037501792652277829">"Gamitin ang %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"5 serbisyo lang ang puwede mong i-on"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"I-off ang kahit 1 serbisyo para magdagdag ng isa pa"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"Ginagamit ng %1$s kung ano ang nasa iyong screen para tukuyin kung ano ang puwedeng i-autofill."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Limitasyon sa mga password, passkey, at serbisyo sa data"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Puwede kang magkaroon ng hanggang 5 aktibong password, passkey, at serbisyo sa data nang sabay-sabay. Mag-off ng serbisyo para makapagdagdag ng higit pa."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Limitasyon sa mga password, passkey, at serbisyo sa data"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Puwede kang magkaroon ng hanggang 5 aktibong password, passkey, at serbisyo sa data nang sabay-sabay. Mag-off ng serbisyo para makapagdagdag ng higit pa."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"I-off"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"I-autofill"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Antas ng pag-log"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Puwede lang baguhin ang mga pagbabago sa compatibility ng app para sa mga nade-debug na app. Mag-install ng nade-debug na app at subukan ulit."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Nakadepende sa isa pang setting"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Account"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d (na) account"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Pangalan ng device"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Pangunahing impormasyon"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Legal at panregulasyon"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Payagang maglunsad ang app na ito kapag may na-scan na tag ng NFC.\nKung naka-on ang pahintulot na ito, magiging available bilang opsyon ang app sa tuwing may made-detect na tag."</string>
     <string name="media_output_title" msgid="8283629315159510680">"I-play ang media sa"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"I-play ang <xliff:g id="LABEL">%s</xliff:g> sa"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Magpe-play ang audio sa"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"device na ito"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Hindi available habang may tawag"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Sagutin ang tawag sa"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"I-mute"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Para i-enable, palitan muna ang \"Pindutin nang matagal ang power button\" sa power menu."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Mga detalye ng network"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nakikita ng mga app sa iyong telepono ang pangalan ng device 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="devices_title" msgid="649715719278562515">"Mga Device"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Pumili ng network"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Nadiskonekta"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Pangalan"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Kulay (ginagamit ng mga compatible app)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"I-save"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Gumamit ng SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Gamitin ang SIM na ito"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Naka-off"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Para i-disable ang SIM na ito, alisin ang SIM card"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"I-tap para i-activate ang <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Burahin ang SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Mas gustong network type"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Baguhin ang network operating mode"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Mas gustong network type"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Magtanong sa iyong network provider para sa pagpepresyo."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Paggamit ng data ng app"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Invalid ang Network Mode na <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Balewalain."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Mga Access Point Name"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Hindi available kapag nakakonekta sa <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Lumipat sa <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Lumipat sa paggamit ng SIM card?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Gamitin ang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Isang SIM lang ang puwedeng maging aktibo sa isang pagkakataon.\n\nHindi makakansela ang iyong serbisyo mula sa <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> kung lilipat ka sa <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"1 eSIM lang ang puwedeng maging aktibo sa bawat pagkakataon.\n\nHindi makakansela ang iyong serbisyo sa <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> kapag lumipat ka sa <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Isang SIM lang ang puwedeng maging aktibo sa isang pagkakataon.\n\nHindi makakansela ang iyong serbisyo mula sa <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> kung lilipat ka."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Puwede kang gumamit ng 2 SIM nang sabay. Para magamit ang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, i-off ang isa pang SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Lumipat sa <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"I-off ang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Huwag na lang"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Kanselahin"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Lumipat"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"I-off"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Hindi ma-activate ang SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Subukang i-on ulit ang SIM. Kung magpapatuloy ang problema, i-restart ang iyong device."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"I-set up ang iyong SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Itakda ang iyong mga kagustuhan sa mobile network para makagamit ng maraming SIM sa device na ito"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Lagyan ng label ang mga SIM mo"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Makikita mo ang mga label na ito kapag tumatawag, nagpapadala ng mga text, at gumagamit ng data, at sa Mga Setting"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Label ng SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Label"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Pumili ng mga gagamiting SIM"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Puwede kang gumamit ng 2 SIM nang sabay"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Itakda ang mga pangunahing SIM"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Piliin kung aling mga SIM ang gagamitin bilang default para sa mga tawag, text, at data"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Iyong mga pangunahing SIM"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Mga Tawag"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Mga Text"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Awtomatikong paglipat ng data"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Gumamit ng data mula sa alinmang SIM depende sa sakop at availability"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Data lang"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"I-set up"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Susunod"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobile network"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Numero ng telepono"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Label at kulay ng SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Pag-activate ng network"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Pagpapalit ng carrier"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Aktibo ang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Para gamitin ang mobile data, mga feature ng tawag, at SMS sa ibang pagkakataon, pumunta sa mga setting ng iyong network"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Burahin ang eSIM na ito?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Kapag binura ang SIM na ito, maaalis ang serbisyo ng <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sa device na ito.\n\nHindi makakansela ang serbisyo para sa <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Burahin"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Binubura ang SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Hindi mabura ang SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Hindi mabura ang SIM na ito dahil sa isang error.\n\nI-restart ang iyong device at subukan ulit."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Kumonekta sa device"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Gustong gumamit ng <xliff:g id="APPNAME">%1$s</xliff:g> app ng pansamantalang Wi‑Fi network para kumonekta sa iyong device"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Walang nahanap na device. Tiyaking naka-on ang mga device at available para kumonekta."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Mga emergency na tawag"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Hindi sinusuportahan ng iyong carrier ang mga emergency na tawag sa Pagtawag gamit ang Wi‑Fi.\nAwtomatikong lumilipat ang device sa isang cellular network para gumawa ng emergency na tawag.\nPosible lang ang mga emergency na tawag sa mga lugar na may cellular signal."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Gumamit ng Wi-Fi para sa mga tawag para mapahusay ang kalidad"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Backup na pagtawag"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Kung hindi available o nasa roaming ang <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>, gamitin ang mobile data SIM mo para sa mga pagtawag sa <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"backup na pagtawag"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Papasok na MMS message"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Hindi maipadala ang MMS message"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"I-tap para payagan ang pagmemensahe ng MMS sa <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> kapag naka-off ang mobile data"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Impormasyon tungkol sa iyong patakaran sa trabaho"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Pinapamahalaan ng iyong IT admin ang mga setting"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"I-boot nang may 16K laki ng page"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Mag-boot gamit ang 16K page size supported kernel"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"I-reboot nang may 16KB page na compatible kernel?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"BABALA: Posibleng hindi compatible sa mode na ito ang ilang application. Magre-reboot ang device pagkatapos ng pagkumpirma."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"I-reboot nang may 4KB page na compatible kernel?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Magre-reboot ang device pagkatapos ng pagkumpirma."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Hindi na-update ang kernel sa 16KB page na compatible kernel."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Inilalapat ang pagbabago"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Tagapangasiwa ng ulat ng bug"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Tinutukoy kung aling app ang mangangasiwa sa shortcut ng Ulat ng Bug sa iyong device."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Personal"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Para mabilis na maipagpatuloy ang pag-playback, mananatiling bukas ang media player sa Mga Mabilisang Setting"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Ipakita ang media sa lock screen"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Para mabilis na maipagpatuloy ang pag-playback, mananatiling bukas ang media player sa lock screen"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Ipakita ang mga rekomendasyon sa media"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Ipakita ang mga inirerekomendang media ng Assistant"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Batay sa iyong aktibidad"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Itago ang player"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Ipakita ang player"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Mga eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Aktibo"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Hindi aktibo"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Default para sa <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"mga tawag"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Nagiging mas immersive ang audio mula sa compatible na media"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pag-track ng ulo"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Nagbabago ang audio habang iginagalaw mo ang iyong ulo para maging mas natural ang tunog"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"I-sync ang mga pahintulot"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Bigyan ang <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> ng mga pahintulot sa app na pinayagan mo rin sa <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"I-sync ang mga pahintulot mula sa telepono"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Bigyan ang iyong relo ng parehong mga pahintulot sa app na pinayagan mo sa teleponong ito"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Uri ng Audio Device"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Hindi alam"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Katamtaman"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Mataas"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Sa 1 window lang puwedeng buksan ang app na ito"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Naka-on"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Naka-off"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Naka-off"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Naka-off"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Naka-on"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Naka-off"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Naka-on"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Naka-off"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Ginagawang madilim ang mga light na screen at light ang mga madilim na screen"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Mag-zoom in sa screen"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Naka-off"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Naka-off"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Naka-on"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Naka-off"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Naka-on"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Naka-set up na ngayon ang password"</string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 5892ae1..cb4447e 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 dakika sonra"</item>
     <item msgid="1574040255478150028">"5 dakika sonra"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 3c3a0ba..7f34a1b 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Artık bir geliştiricisiniz"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Gerekli değil, siz zaten bir geliştiricisiniz."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Lütfen önce geliştirici seçeneklerini etkinleştirin."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Geliştirici ayarlarına yalnızca yönetici kullanıcılar erişebilir."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Sistem"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Hizmette"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Hizmet Dışı"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Ön ekran, cihazınızı katladığınızda açılır"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Yalnızca oyunlar, videolar ve daha fazlası"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Ön ekran, ekranınızın boşta kalmasını engelleyen uygulamalar için açılır"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Devam etmek için yukarı kaydırın"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Uygulamayı kullanmaya devam etmek için telefonunuzu katlayıp ön ekranda yukarı kaydırın veya ekranın kilitlenmesi için birkaç saniye bekleyin"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Hiçbir zaman"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Ön ekran, cihazınızı katladığınızda kilitlenir"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Otomatik döndürmeyi kullan"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Benzer"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Zil sesi ve alarmlar"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Telefon görüşmelerinde ses"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Medya"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Bildirimler ve sistem sesleri"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Medya ve sistem sesleri"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Bildirimler"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Varsayılan olarak, ses çıkışı bağımsız uygulamalar tarafından belirlenir"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Adsız Bluetooth cihazı"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Arıyor"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth açık"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Tümünü göster"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Tümünü göster"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Ekran kalemi"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Ekran kalemi düğmesine basma"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (İş profili)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE ses akışına bağlanın"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Yakındaki ses akışları"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Ses akışları"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"QR kodu kullanarak ses akışına bağlanın"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Yakında ses akışı bulunamadı."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Her uygulamaya özel bir dil seçmek için uygulama dil ayarlarına gidin."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Uygulama dilleri hakkında daha fazla bilgi edinin"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sistem dili %s olarak değiştirilsin mi?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s tercih edilen dillere eklensin mi?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Bu, uygulamaların ve web sitelerinin sizin de bu dili tercih ettiğinizi bilmesini sağlar."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Cihaz ayarlarınız ve bölgesel tercihleriniz değişecek."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Değiştir"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s kullanılamıyor"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Cumartesi"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Bölgesel tercihleri desteklemeyen uygulamalar kendi varsayılan yerel ayarlarını kullanır."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Dil tercihleri ile ilgili daha fazla bilgi edinin."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Ek tercihler"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Hitap şekli"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Kullanılmasını istediğiniz hitap şeklini belirleyin"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Uygulamalar size nasıl hitap edeceklerini kişiselleştirmek için belirlediğiniz hitap şeklini kullanabilir."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Belirtilmedi"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Kadın"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Erkek"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Normal"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Seçilen dil kaldırılsın mı?}other{Seçilen diller kaldırılsın mı?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Metin başka bir dilde görüntülenecek."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Tüm diller kaldırılamaz"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Konum"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Konumu kullan"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Kapalı"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Açık - # uygulamanın konuma erişimi var}other{Açık - # uygulamanın konuma erişimi var}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Açık - # uygulamanın konuma erişimi var}other{Açık - # uygulamanın konuma erişimi var}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yükleniyor…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Yakındaki cihazlarla bağlanma izni olan uygulamalar, bağlı cihazların göreli konumunu belirleyebilir."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Uygulamaların ve hizmetlerin konum erişimi kapalı. Yine de arayarak veya mesaj göndererek bir acil durum numarasına ulaştığınızda cihazınızın konumu acil durum müdahale ekiplerine gönderilebilir."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Konum Ayarları hakkında daha fazla bilgi edinin."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Konum ayarları hakkında daha fazla bilgi edinin"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Konum erişimini değiştirmek için Ayarlar &gt; Güvenlik ve Gizlilik &gt; Gizlilik denetimleri\'ne gidin"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"En iyi sonuçlar için Made for Google sertifikalı bir ekran koruyucu kullanın. Çocuğunuzun parmak izi diğer ekran koruyucularla çalışmayabilir."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Saat ile Kilit Açma"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi\'ni ayarladığınızda telefonunuz, yüzünüzde maske varken veya karanlık bir yerdeyseniz parmak izinizi ister.\n\nYüzünüz veya parmak iziniz tanınmadığında kilidi kol saatinizle açabilirsiniz."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Parmak iziniz tanınmadığında kilidi kol saatinizle açabilirsiniz."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Yüzünüz tanınmadığında kilidi kol saatinizle açabilirsiniz."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Yüz Tanıma Kilidi ve Parmak İzi Kilidi\'ni ayarladığınızda telefonunuz, yüzünüzde maske varken veya karanlık bir yerdeyseniz parmak izinizi ister.\n\nSaat ile Kilit Açma, bu telefonun kilidini açabileceğiniz pratik yöntemlerden biridir. Örneğin, parmaklarınız ıslak olduğunda veya yüzünüz tanınmadığında bu özelliği kullanabilirsiniz."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Saat ile Kilit Açma, telefonunuzun kilidini açabileceğiniz pratik yöntemlerden biridir. Örneğin, parmak iziniz tanınmadığında bu özelliği kullanabilirsiniz."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Saat ile Kilit Açma, telefonunuzun kilidini açabileceğiniz pratik yöntemlerden biridir. Örneğin, yüzünüz tanınmadığında bu özelliği kullanabilirsiniz."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Şunlar için parmak izini veya kol saatini kullan:"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Şunlar için yüzü veya kol saatini kullan:"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Şunlar için yüzü, parmak izini veya kol saatini kullan:"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yüz ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yüz, parmak izi ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yüz, parmak izleri ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Uzaktan Kimlik Doğrulayıcı Kilidini Açma"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Kol saati eklendi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kol saatinizi kurma"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Saat ile Kilit Açma, bu telefonun kilidini açabileceğiniz pratik yöntemlerden biridir. Örneğin, parmaklarınız ıslak olduğunda veya yüzünüz tanınmadığında bu özelliği kullanabilirsiniz.\n\nAşağıdaki durumlarda bu telefonun kilidini açmak için kol saatinizi kullanabilirsiniz:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Şimdi değil"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Devam"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Daha fazla"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"İşleyiş şekli"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Kol saatiniz kilidi açık, bileğinize takılı ve bu telefona yakın mesafede olmalıdır. Bileğinizdeyken kol saatinizin kilidini tekrar açmanız gerekmez."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Bu telefonun kilidi açıldığında kol saatinize bildirim gelir. Kilidi yanlışlıkla açtıysanız bildirime dokunarak telefonu tekrar kilitleyebilirsiniz."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontrol sizde"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"İstediğiniz zaman Ayarlar\'a giderek kol saatinizi Saat ile Kilit Açma özelliğinden kaldırabilirsiniz"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Bildirime dokunanarak"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Kilit ekranını yukarı kaydırarak"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Kol saatinizi seçin"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Mevcut kol saatleri"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"İptal"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Onayla"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hazırsınız."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Kilit ekranında yukarı kaydırdığınızda veya bir bildirime dokunduğunuzda bu telefonun kilidini açmak için artık kol saatinizi kullanabilirsiniz"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Bitti"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Saat ile Kilit Açma"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Kilit ekranında yukarı kaydırdığınızda veya bir bildirime dokunduğunuzda bu telefonun kilidini açmak için kol saatinizi kullanabilirsiniz"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Saat ile Kilit Açma özelliğini kullanmak için kol saatiniz kilidi açık, bileğinize takılı, yakın mesafede ve bu telefona bağlı olmalıdır. Bağlantı kesilirse Saat ile Kilit Açma\'yı kullanabilmek için önce telefonun kilidini açmanız gerekir.\n\nHatırlatma:\nAynı anda yalnızca bir tane kol saati ayarlayabilirsiniz. Başka bir kol saati eklemek için önce mevcut kol saatini kaldırın."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saat ile Kilit Açma hakkında daha fazla bilgi"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Kol saati ekle"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kol saatini kaldır"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Parmak İzi ve Yüz Tanıma Kilidi"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"İş profili için Yüz Tanıma ve Parmak İzi Kilidi"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Kurulum gerekiyor"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Güvenlik"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Gizlilik"</string>
     <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="2274405892301976238">"Özel uygulamaları kilitli ve gizli tutun"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Özel uygulamaları, gizleyebileceğiniz veya kilitleyebileceğiniz ayrı bir alanda saklayın"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Gizli alan kilidi"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"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="private_space_screen_lock_title" msgid="8679383894967823163">"Cihaz ekran kilidini kullanma"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Yüz Tanıma Kilidi ve Parmak İziyle Kilit Açma"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Parmak İzi Kilidi"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Yüz Tanıma Kilidi"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Kurmak için dokunun"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Özel alan için Parmak İzi Kilidi"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Özel alan için Yüz Tanıma Kilidi"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Kilidi açma yöntemleri"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Cihaz ekranı kilidiyle aynı"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Gizli alan için yeni bir kilit seçilsin mi?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Otomatik olarak kilitleyin"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Özel alanı otomatik olarak kilitleyin"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Cihazınızı bir süredir kullanmadıysanız özel alanınızı otomatik olarak kilitleyebilirsiniz"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Cihaz her kilitlendiğinde"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 dakika etkinlik olmaması durumunda"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Hiçbir zaman"</string>
+    <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_delete_title" msgid="3075645119800272800">"Gizli alanı sil"</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="private_space_unlocked" msgid="9091600948712932046">"Özel alanın kilidi açıldı"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekran kilidi ayarlayın"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Özel 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="private_space_cancel_label" msgid="379259667396956886">"İptal"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Kur"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Özel alan kurun"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Özel uygulamaları, gizleyebileceğiniz veya kilitleyebileceğiniz ayrı bir alanda saklayın"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Nasıl çalışır?"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Özel alana, uygulama listenizin alt tarafından erişebilirsiniz"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Özel alandaki uygulamalar kilit ile korunur"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Kilitli olduğunda özel alandaki uygulamaların gönderdiği bildirimler gizlenir"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Özel alanınız kilitli olduğunda izin yöneticisi, gizlilik kontrol paneli ve diğer ayarlarda özel alanınızdaki uygulamalar görünmez.\n\nÖzel alanınız yeni bir cihaza taşınamaz. Başka bir cihazda kullanmak istiyorsanız ilgili cihazda yeni bir özel alan kurmanız gerekir.\n\nCihazınızı bilgisayara bağlayan veya cihazınıza zararlı uygulamalar yükleyen kişiler özel alanınıza erişebilir."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Özel alan kuruluyor…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Kilitli olduğunda özel alandaki uygulamaların gönderdiği bildirimler gizlenir"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Özel alan uygulamalarındaki fotoğrafları veya dosyaları paylaşmak için özel alanınızın kilidini açın"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Bazı uygulamalar, özel alanınıza önceden yüklenmiştir"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Özel alan kurulamadı"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Tekrar Dene"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Özel alanın kilidini açmak için ekran kilidi kullanılsın mı?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Özel alanın kilidini, cihazınızın kilidini açtığınız şekilde açabilir veya farklı bir kilit seçebilirsiniz"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Ekran kilidi kullan"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Yeni kilit seç"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Kurulum tamamlandı."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Özel alanınıza erişmek için uygulama listenize gidip aşağı kaydırın"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Bitti"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Özel alanı bulmak için aşağı kaydırın"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Özel alanınız için bir kilit seçin"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Özel alanınızın kilidini, parmak izinizi kullanarak açabilirsiniz. Güvenlik amacıyla, bu seçenek için yedek bir kilit gerekir."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Özel alanınız için PIN ayarlayın"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Özel alanınız için şifre ayarlayın"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Özel alanınız için desen ayarlayın"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Gizli alanı göstermek için (Nihai kullanıcı deneyimi değil)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Ayarlar uygulamasını açın"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Güvenlik ve gizlilik &gt; Gizli Alan &gt; Kilitli olduğunda gizli alanı gizle\'ye dokunun"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"\"Kilitli olduğunda gizli alanı gizle\" ayarını kapat düğmesi"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google çalışanlarına not: Bu özellik hâlâ geliştirme aşamasındadır"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Bu parolayı diğer cihazda da girmeniz gerekebilir."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Koordine grupla eşlemeyi onaylayın"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Kişilerime ve çağrı geçmişime erişime izin ver"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Kişilere ve çağrı geçmişine erişim izni de verin"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Bilgiler, arama duyuruları ve diğer özellikler için kullanılacak"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> adlı cihaza bağlanılamadı."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Kullanılabilir cihazlar"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bluetooth açık olduğunda, cihazınız yakındaki Bluetooth cihazlarla iletişim kurabilir."</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Uçak modunda"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Herkese açık ağları bildir"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Herkese açık yüksek kaliteli bir ağ kullanılabilir olduğunda bildir"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP ağlarına izin ver"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP, güvenliği düşük eski bir güvenlik protokolüdür"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operatörünüz, güvenliği düşük olduğundan WEP ağlarına izin vermiyor"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Kablosuz ağı otomatik olarak aç"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Ev ağınız gibi yüksek kaliteli kayıtlı ağların yakınında olduğunuzda kablosuz özelliği tekrar açılır"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Konum kapalı olduğundan kullanılamıyor. "<annotation id="link">"Konum"</annotation>"\'u açın."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Kablosuz ağ taraması uygulamaların ve hizmetlerin kablosuz ağları Kablosuz özelliği kapalıyken bile her zaman taramasına izin verir. Bu özellik, örneğin, konuma dayalı özellikleri ve hizmetleri iyileştirmek için kullanılabilir."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Aç"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Kablosuz ağ taraması açık"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Bu ağda, güvenliği düşük eski bir güvenlik protokolü kullanılıyor"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> engellendi"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Bu ağda, WEP adında güvenliği düşük eski bir güvenlik protokolü kullanılıyor. Yine de bağlanmak için WEP ağlarına izin verebilirsiniz."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operatörünüz, güvenliği düşük eski bir güvenlik protokolü kullandığından bu ağa bağlanmanıza izin vermiyor"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP\'e izin ver"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Kapat"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Gelişmiş seçenekler"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Açılır liste Gelişmiş Seçenekler"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"genişlet"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Kablosuz bağlantıda kal"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Bir daha gösterme"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Bağlan"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Kablosuz bağlantı açık"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ağına bağlandı"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> cihazına bağlanıyor"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Bağlanıyor…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Ağa bağlanılamadı"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ağ, kapsama alanında değil"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Unut"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Değiştir"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ağ unutulamadı"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Kaydet"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Ağ kaydedilemedi"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"İptal"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Kablosuz"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobil veri"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Şarj ediliyor"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Şarj ediliyor"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot bağlantısı"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Bağlantı gücü"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Kayıtlı ağlar"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Şifre ayarlanmadı"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot adı"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot şifresi"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Erişim Noktası Bandı"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspot\'u otomatik olarak kapat"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Hiçbir cihaz bağlı olmadığında"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Uyumluluğu genişlet"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Beyaz dengeyi göster"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Oyunlarda varsayılan kare hızını devre dışı bırakın"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Oyunlarda maksimum kare hızının <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz ile sınırlandırılmasını devre dışı bırakın."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ekrana dikkat verme seçeneğinde, ekrana bakan birisi olup olmadığını görmek için ön kamera kullanılır. Tüm işlemler cihazda gerçekleşir ve görüntüler hiçbir zaman saklanmaz ya da Google\'a gönderilmez."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Ekrana dikkat vermeyi açın"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Baktığınız sürece ekranı açık tutar"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Ekran zaman aşımı süresi uzun olduğunda daha fazla pil kullanılır."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera kilitli"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Yüz Algılama için kamera kilidi açık olmalıdır"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ekrana Dikkat Verme özelliği için kamera açık olmalıdır"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM yuvası <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM yuvası <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (birincil)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Görüntülemek için kaydedilmiş ağı seçin"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL sürümü"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Pil düzeyi"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Ortak"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Ortak ayarlar"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Kaydet"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"İptal"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Ad alanı boş olamaz."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN boş olamaz."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC alanındaki değer 3 rakamdan oluşmalıdır."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC alanındaki değer 2 veya 3 rakamdan oluşmalıdır."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Operatör %s türünde APN eklenmesine izin vermiyor."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC alanı geçerli olmalıdır."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Varsayılan APN ayarları geri yükleniyor."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Varsayılana sıfırla"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Varsayılan APN ayarlarına sıfırlama tamamlandı."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Sıfırla"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth ve kablosuz ayarları sıfırlandı"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM\'leri sil"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Bu işlem, mobil hizmet planlarını iptal etmeyecektir. Yedek SIM\'leri indirmek için operatörünüzle iletişime geçin."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Ayarları sıfırla"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Tüm ağ ayarları sıfırlansın mı? Bu işlemi geri alamazsınız."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Tüm ağ ayarları sıfırlansın ve eSIM\'ler silinsin mi? Bu işlem geri alınamaz."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Sıfırlansın mı?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Bu kullanıcı için ağ ayarlarına sıfırlama işlevi kullanılamıyor"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Ağ ayarları sıfırlandı"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM\'ler silinemiyor"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM\'ler bir hata nedeniyle silinemiyor.\n\nCihazınızı yeniden başlatıp tekrar deneyin."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Tüm verileri sil (fabrika ayarlarına sıfırla)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Tüm verileri sil (fabrika ayarlarına sıfırla)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Müzik"</li>\n<li>"Fotoğraflar"</li>\n<li>"Diğer kullanıcı verileri"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM\'ler"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Bu işlem mobil hizmet planınızı iptal etmeyecektir."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Tüm kişisel bilgileriniz ve indirilen uygulamalar silinir. Bu işlemi geri alamazsınız."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"İndirilen uygulamalar ve SIM\'ler dahil olmak üzere tüm kişisel bilgileriniz silinecek. Bu işlemi geri alamazsınız."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Tüm veriler silinsin mi?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Bu kullanıcı için fabrika ayarlarına sıfırlama işlevi kullanılamıyor"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Siliniyor"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"İnternet diğer cihazlarla paylaşılmıyor"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Kapalı"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Tethering"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Kablosuz hotspot kullanma"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"İnterneti yalnızca USB üzerinden paylaş"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"İnterneti yalnızca Bluetooth üzerinden paylaş"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"İnterneti yalnızca Ethernet üzerinden paylaş"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"İnterneti yalnızca USB ve Bluetooth üzerinden paylaş"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"İnterneti yalnızca USB ve Ethernet üzerinden paylaş"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"İnterneti yalnızca Bluetooth ve Ethernet üzerinden paylaş"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"İnterneti yalnızca USB, Bluetooth ve Ethernet üzerinden paylaş"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB tethering"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth tethering"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet tethering"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Kablosuz veya mobil veri bağlantınızdan başka cihazlara internet bağlantısı sağlamak için hotspot ve tethering\'i kullanın. Yakınlardaki cihazlarla içerik paylaşmak için uygulamalar da hotspot oluşturabilir."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Yardım"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobil ağ"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Mobil plan"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS uygulaması"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS uygulaması değiştirilsin mi?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"<xliff:g id="NEW_APP">%1$s</xliff:g>, SMS uygulamanız olarak <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerine kullanılsın mı?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Kablosuz bağlantı yardımcısı değiştirilsin mi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Ağ bağlantılarınızı yönetmek için <xliff:g id="CURRENT_APP">%2$s</xliff:g> yerine <xliff:g id="NEW_APP">%1$s</xliff:g> uygulaması kullanılsın mı?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Ağ bağlantılarınızı yönetmek için <xliff:g id="NEW_APP">%s</xliff:g> kullanılsın mı?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Bilinmeyen SIM operatörü"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>, bilinen temel hazırlık web sitesine sahip değil"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Lütfen SIM kartı takın ve yeniden başlatın"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Lütfen İnternet\'e bağlanın"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Son konum istekleri"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"İş profili konumu"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Uygulama konum izinleri"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Erişimi temizle"</string>
     <string name="controls_label" msgid="8671492254263626383">"Denetimler"</string>
     <string name="force_stop" msgid="2681771622136916280">"Durmaya zorla"</string>
+    <string name="archive" msgid="9074663845068632127">"Arşivle"</string>
+    <string name="restore" msgid="7622486640713967157">"Geri yükle"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Toplam"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Uygulama boyutu"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB bellek uygulaması"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Paket boyutu hesaplanamadı."</string>
     <string name="version_text" msgid="7628938665256107608">"sürüm <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Taşı"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arşivlenemedi"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> arşivlendi"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Geri yüklenemedi"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> geri yükleniyor"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Başka bir taşıma işlemi zaten çalışıyor."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Yeterli depolama alanı yok."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Uygulama mevcut değil."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Kullanılabilir dokunmatik klavye"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Ekran klavyelerini yönet"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Seçenekler"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Erişilebilirlik"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziksel klavye"</string>
     <string name="show_ime" msgid="4334255501724746849">"Ekran klavyesi kullan"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Fiziksel klavye etkin durumdayken ekranda tut"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Geri sekme tuşları"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Geri sekme tuşlarına klavyeden fiziksel erişimi etkinleştirin"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Yapışkan tuşlar"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Yapışkan tuşlara klavyeden fiziksel erişimi etkinleştirin"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klavye kısayolları"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Kısayol listesini göster"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"İş profili klavyeleri ve araçları"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Kullanım süresine göre sırala"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Son kullanılmaya göre sırala"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Uygulama adına göre sırala"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Son kullanıldığı tarih"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Son kullanıldığı tarih"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"hiçbir zaman"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Kullanım süresi"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Erişilebilirlik"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Erişebilirlik ayarları"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Yine de devam et"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"İptal"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Büyütme ayarları"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Üç kez dokunarak büyütme"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Kısayolla büyütme"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Kısayolla ve üç kez dokunarak büyütme"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> hakkında"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Açmak için ekrana iki parmağınızla iki 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="860548190334486449">"Büyütmeyi başlatıp durdurmak için ekranınızda herhangi bir yere iki parmağınızla iki 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Bir erişilebilirlik özelliğini 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_button" msgid="2031773187678948436">"Anladım"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Erişilebilirlik düğmesi ayarları"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Düğme ayarları"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> kısayolu"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Erişilebilirlik düğmesi"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Erişilebilirlik hareketi"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"İki parmağınızla ekrana iki kez dokunun"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"iki parmağınızla ekrana iki kez dokunun"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"İki parmağınızla ekrana {0,number,integer} kez hızlıca dokunun"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekrana üç kez dokun"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Erişilebilirlik düğmesi ve hareketi hakkında daha fazla bilgi edinin"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Erişilebilirlik düğmesini kullanma. Hareket, 3 düğmeli gezinme ile kullanılamaz."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Erişilebilirlik özelliklerine hızlıca erişin"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Başlamak için"</b>\n"1. Erişilebilirlik ayarlarına gidin\n2. Bir özellik seçip kısayola dokunun\n3. Özelliğe erişmek için düğme mi yoksa hareket mi kullanmak istediğinizi seçin"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Başlamak için"</b>\n"1. Erişilebilirlik ayarlarına gidin\n2. Bir özellik seçip kısayola dokunun\n3. Özelliğe erişmek için kullanılacak düğmeyi seçin"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Başlamak için&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Erişilebilirlik ayarlarına gidin&lt;br/&gt; {1,number,integer}. Bir özellik seçip kısayola dokunun&lt;br/&gt; {2,number,integer}. Özelliğe erişmek için düğme mi yoksa hareket mi kullanmak istediğinizi seçin&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Başlamak için&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Erişilebilirlik ayarlarına gidin&lt;br/&gt; {1,number,integer}. Bir özellik seçip kısayola dokunun&lt;br/&gt; {2,number,integer}. Özelliğe erişmek için kullanılacak düğmeyi seçin&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Düğmeyi veya hareketi kullan"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Yer"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Boyut"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Güç düğmesi çağrıyı sonlandırır"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Geniş fare işaretçisi"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Fare işaretçisini daha belirgin hale getirir"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Tüm uygulamaları koyu yap"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Kendi koyu teması olmayan uygulamalarda geçerlidir. Bazı uygulamalarda, renklerin çevrilmesi gibi görüntüleme sorunları olabilir."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animasyonları kaldır"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Ekrandaki hareketliliği azaltır"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono ses"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Bir uygulama veya donanım sensörüyle etkileşimlerinizi takip edebilir ve sizin adınıza uygulamalarla etkileşimde bulunabilir."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"İzin ver"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Reddet"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Durdur"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"İptal"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> durdurulsun mu?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> düğmesine dokunursanız <xliff:g id="SERVICE">%2$s</xliff:g> hizmeti durdurulur."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Kapat"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Açık bırak"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> kapatılsın mı?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Hiçbir hizmet yüklenmedi"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Hizmet seçilmedi"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Hiçbir açıklama sağlanmadı."</string>
     <string name="settings_button" msgid="2195468788019730377">"Ayarlar"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ışık hassasiyeti, ışık korkusu, karanlık tema, migren, baş ağrısı, okuma modu, gece modu, parlaklığı azalt, beyaz nokta"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Kullanım kolaylığı, erişim kolaylığı, destek, yardımcı"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"görme, işitme, kör, sağır, motor, el becerisi, yardımcı, yardım, kullanım kolaylığı, erişim kolaylığı, el, yardım"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Pencere büyütücü, Yakınlaştırma, Büyütme, Az görme, Genişlet, büyüt"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Altyazı, altyazılar, alt yazılar, Canlı Altyazı, duyma zorluğu, duyma kaybı, gerçek zamanlı altyazı, sesle yazma, alt yazı"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"renk kontrastı"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, fare"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"işitme cihazları, duyma zorluğu, duyma kaybı, koklear implantlar, ses yükseltme cihazları, ses işlemcileri"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motor, fare, harici fare, kafa faresi, uyarlanan fare, tekerlekli sandalye, kontrol çubuğu"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"işitme cihazları, işitme zorluğu, işitme kaybı, koklear implantlar, ses yükseltme cihazları, ses işlemcileri, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"duyma zorluğu, duyma kaybı, altyazı, işitme engelli iletişim cihazı, işitme engelli iletişim"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"üç düğme"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"el becerisi, motor, yaşlı, eklem iltihabı, rsi, inme, titreme, multipl skleroz, beyin felci, sallanma, aşırı kullanım sonucu kas rahatsızlığı, el"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"gecikme, el becerisi, yaşlı"</string>
     <string name="print_settings" msgid="8519810615863882491">"Yazdırma"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Kapalı"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 yazdırma hizmeti açık}other{# yazdırma hizmeti açık}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"En fazla pil kullanan uygulamaları göster"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Pilinizi korumak için şarj işlemi optimize edildi"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Pilinizin kullanım ömrünü uzatmaya yardımcı olmak için şarj işlemi optimize edildi"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Pilinizi korumak için şarj işlemi optimize edildi"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Cihazınız yuvadayken pilinizin kullanım ömrünü uzatmaya yardımcı olmak için şarj işlemi optimize edildi"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Pilinizi korumak için şarj işlemi optimize edildi"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Cihazınız yuvadayken pilinizin kullanım ömrünü uzatmaya yardımcı olmak için şarj işlemi optimize edildi"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Tamamen dolana kadar şarj ediliyor"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Tabletiniz daha sonra yuvadayken şarj işlemi, pilinizi korumak için optimize edilecek"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Şarj işlemi duraklatıldı hakkında daha fazla bilgi"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Şarja devam et"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Yüksek güç tüketen arka plan etkinliğini içerir"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Kaldır"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"İptal"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Tam kapasitede şarj et"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Şarj aksesuarı ile ilgili sorun"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Uyumsuz şarj hakkında daha fazla bilgi"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Pil Yöneticisi"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Uygulamaları otomatik olarak yönet"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"şu an"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g>-<xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Pil kullanım grafiği"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Günlük pil kullanımı grafiği"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Saatlik pil kullanımı grafiği"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Pil seviyesi yüzdesi <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ile <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> arasında"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Son tam şarjdan sonraki pil kullanımı"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g> arası pil kullanımı"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Son tam şarjdan sonraki ekran süresi"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Acil durum arama sinyali"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Acil çağrı yapıldığında nasıl işlev göreceğini ayarlayın"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Yedekleme"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Açık"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Kapalı"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Yedekleme ve geri yükleme"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Kişisel veriler"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Verilerimi yedekle"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Ad"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Tür"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Sunucu adresi"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP şifreleme (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP gizli bilgisi"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec kimliği"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec önceden paylaşılan anahtar"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec kullanıcı sertifikası"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA sertifikası"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec sunucu sertifikası"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Gelişmiş seçenekleri göster"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS arama alan adları"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS sunucuları (ör. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Yönlendirme rotaları (ör. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Kullanıcı adı"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Şifre"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Hesap bilgilerini kaydet"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(kullanılmıyor)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(sunucuyu doğrulama)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(sunucudan alınır)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Bu VPN türü her zaman bağlı durumda kalamaz"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Her zaman açık durumda olan VPN yalnızca sayısal sunucu adreslerini destekliyor"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Her zaman açık durumda olan VPN için bir DNS sunucusu belirtilmelidir"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Her zaman açık durumda olan VPN için DNS sunucusu adresleri sayısal olmalıdır"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Girilen bilgiler her zaman açık durumda olan VPN\'yi desteklemiyor"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"İptal"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Kapat"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN\'si olmayan bağlantıları engelle"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN bağlantısı gerekiyor mu?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Güvenli değil. IKEv2 VPN\'e güncelle"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Desteklenmeyen VPN başlatılamadı."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Her zaman bağlı kalacak bir VPN profili seçin. Ağ trafiğine yalnızca bu VPN\'ye bağlanıldığında izin verilir."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Yok"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Her zaman açık VPN seçeneğinde hem sunucu hem de DNS için bir IP adresi gerekir."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER kayıp çocuk alarmı"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Çocuk kaçırma olaylarıyla ilgili bültenleri alın"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Tekrarla"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Çağrı Yöneticisini Etkinleştir"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Bu hizmetin, çağrılarınızın yapılış şeklini yönetmesine izin verin."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Çağrı Yöneticisi"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Kablosuz acil durum uyarıları"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Ağ operatörleri"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Erişim noktası adları"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"cüzdan"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ödeme, dokunma, ödemeler"</string>
     <string name="keywords_backup" msgid="707735920706667685">"yedek, yedekleme"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"hareket"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"yüz, kilidi açma, kimlik doğrulama, oturum açma"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"yüz, kilit açma, kimlik doğrulama, giriş yapma, parmak izi, biyometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl sürümü, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Açılış sesleri"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Canlı Altyazı"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Otomatik medya altyazısı"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefon hoparlörleri"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Tablet hoparlörleri"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Cihaz hoparlörleri"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Kablolu kulaklık"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Uyumlu medyadaki sesler daha yoğun hale gelir"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Kapalı"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Kilit ekranınızda nelerin görünmesini istiyorsunuz?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Son görüşmeler kaldırıldı"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Görüşme kaldırıldı"</string>
     <string name="clear" msgid="5092178335409471100">"Sil"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> ile sohbeti temizle"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Öncelikli ve değiştirilmiş görüşmeler burada görünür"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Öncelikli olarak işaretlediğiniz veya üzerinde başka değişiklikler yaptığınız görüşmeler burada görünür. \n\nGörüşme ayarlarını değiştirmek için:\nEkranın üst kısmından aşağı kaydırarak aşağı indirilen gölgeyi açın, ardından bir görüşmeye dokunup basılı tutun."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Küçült"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Kapalı"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Uygulama sabitleme"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Uygulama sabitleme, geçerli uygulamayı sabitleme kaldırılana kadar görünür durumda tutmanıza olanak tanır. Bu özellik, örneğin, güvendiğiniz bir arkadaşınızın belli bir oyunu oynamasını sağlamak için kullanılabilir."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Bir uygulama sabitlendiğinde diğer uygulamaları açabilir ve kişisel verilere erişilebilir. \n\nUygulama sabitlemeyi kullanmak için: 	\n1. Uygulama sabitlemeyi açın 	\n2. Genel Bakış\'ı açın 	\n3. Ekranın üst tarafındaki uygulama simgesine dokunup ardından Sabitle\'ye dokunun"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Bir uygulama sabitlendiğinde diğer uygulamaları açabilir ve kişisel verilere erişilebilir. \n\nCihazınızı güvenli bir şekilde başka biriyle paylaşmak isterseniz bunun yerine misafir kullanıcı özelliğini kullanın. \n\nUygulama sabitlemeyi kullanmak için: 	\n1. Uygulama sabitlemeyi açın 	\n2. Genel Bakış\'ı açın 	\n3. Ekranın üst tarafındaki uygulama simgesine dokunup ardından Sabitle\'ye dokunun"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Bir uygulama sabitlendiğinde diğer uygulamaları açabilir ve kişisel verilere erişilebilir. \n\nUygulama sabitlemeyi kullanmak için: 	\n{0,number,integer}. Uygulama sabitlemeyi açın 	\n{1,number,integer}. Genel Bakış\'ı açın 	\n{2,number,integer}. Ekranın üst tarafındaki uygulama simgesine dokunup ardından Sabitle\'ye dokunun"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Bir uygulama sabitlendiğinde diğer uygulamaları açabilir ve kişisel verilere erişilebilir. \n\nCihazınızı güvenli bir şekilde başka biriyle paylaşmak isterseniz bunun yerine misafir kullanıcı özelliğini kullanın. \n\nUygulama sabitlemeyi kullanmak için: 	\n{0,number,integer}. Uygulama sabitlemeyi açın 	\n{1,number,integer}. Genel Bakış\'ı açın 	\n{2,number,integer}. Ekranın üst tarafındaki uygulama simgesine dokunup ardından Sabitle\'ye dokunun"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Uygulama sabitlendiğinde: \n\n•	 Kişisel verilere erişilebilir \n		(ör. kişiler ve e-posta içerikleri) \n•		Sabitlenen uygulama diğer uygulamaları açabilir \n\nUygulama sabitlemeyi yalnızca güvendiğiniz kişilerle kullanın."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Sabitlemeyi kaldırmadan önce kilit açma desenini sor"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Sabitlemeyi kaldırmadan önce PIN\'i sor"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Kullanılmayan uygulama ayarları"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Kullanılmayan uygulama etkinliğini duraklat"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"İzinleri kaldır, geçici dosyaları sil ve bildirimleri durdur"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Kullanılmayan uygulamayı yönet"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"İzinleri kaldır, geçici dosyaları sil, bildirimleri durdur ve uygulamayı arşivle"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Tüm uygulamalar"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Yüklü uygulamalar"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Hazır uygulamalar"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Boş"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Uygulamalar tarafından kullanılan bellek"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 uygulama son {time} içinde belleği kullandı}other{# uygulama son {time} içinde belleği kullandı}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Bellek kullanımının profilini çıkarmayı etkinleştir"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Bellek kullanımının profilini çıkarma için ek sistem kaynakları gerekir."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Bellek kullanımının profilini çıkarma devre dışı bırakıldı"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Frekans"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimum kullanım"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Veri kullanılmadı"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Diğer uygulamaların üzerinde göster"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Diğer uygulamalar üzerinde gösterime izin ver"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Bu uygulamaya, kullandığınız diğer uygulamaların üzerinde gösterme izin verir. Bu uygulama, ekranda nereye dokunduğunuzu görebilecek veya ekranda görüntülenenleri değiştirebilecek."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Medya çıkışını değiştirin"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Uygulamanın, medya çıkışını değiştirmesine izin verin"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Bu uygulamanın, diğer uygulamalardan ses veya video oynatabilecek bağlı cihazı seçmesine izin verin. İzin verildiği takdirde bu uygulama, kulaklık ve hoparlör gibi kullanılabilir cihazların listesine erişip ses veya video akışı ya da yayını için kullanılacak çıkış cihazını seçebilir."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Tüm dosyalara erişim"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Sesli etkinleştirmeyi iyileştir"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Bu cihaz, sesli etkinleştirme modelini iyileştirmek için gizli bilgileri kullanır. Uygulamalar, modeli herkes için iyileştirirken gizliliği de korumak üzere birçok kullanıcıdan toplanan özetlenmiş güncellemeler alabilir.\n\n"<a href="">"Gizli bilgiler 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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> veri uyarısı"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> veri limiti"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> veri uyarısı / <xliff:g id="ID_2">^2</xliff:g> veri sınırı"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Operatörünüzün veri kullanımı hesaplaması, cihazdaki hesaplamadan farklı olabilir"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Operatör ağları tarafından kullanılan verileri hariç tutar"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> kullanıldı"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Veri uyarısı oluştur"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> önce güncellendi"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> tarafından şimdi güncellendi"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Az önce güncellendi"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Planı göster"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Ayrıntıları göster"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Veri Tasarrufu"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Kısıtlanmamış veri"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Pil kullanımında anormallik"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Hızlı ayarlar geliştirici kutuları"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Adb yetkilendirme zaman aşımını devre dışı bırak"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Varsayılan (7 gün) veya kullanıcı tarafından yapılandırılan (en az 1 gün) süre içinde yeniden bağlanmamış sistemler için adb yetkilendirmelerinin otomatik olarak iptal edilmesini devre dışı bırakın."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope İzleme"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensörler Kapalı"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"İş profili ayarları"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Kişisel uygulamalarda iş dizini kişilerini ara"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Dijital asistan uygulamasını çağırmak için ekranı parmağınızla alt köşeden yukarı kaydırın."</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Otomatik doldurma hizmeti"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Varsayılan otomatik doldurma hizmeti"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Şifreler"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Şifreler, geçiş anahtarları ve veri hizmetleri"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <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, geçiş anahtarı, şifre"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"otomatik, doldurma, otomatik doldurma, veriler, geçiş anahtarı, şifre"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Şifreler, geçiş anahtarları ve veri hizmetleri"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Tüm hizmetler devre dışı bırakılsın mı?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Şifreler, geçiş anahtarları ve diğer kayıtlı bilgiler oturum açtığınızda otomatik doldurma için kullanılamayacak"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Tercih ettiğiniz hizmet &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; olarak değiştirilsin mi?&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_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s kullanılsın mı?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"En fazla beş hizmet etkinleştirebilirsiniz"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Başka hizmet eklemek için en az bir hizmeti devre dışı bırakın"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s, nelerin otomatik olarak doldurulabileceğini belirlemek için ekranınızdan aldığı bilgiyi kullanır."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Şifre, geçiş anahtarı ve veri hizmetlerinin sayısı sınırı aştı"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Aynı anda en fazla 5 etkin şifre, geçiş anahtarı ve veri hizmetiniz olabilir. Başka hizmet eklemek için bir hizmeti devre dışı bırakın."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Şifre, geçiş anahtarı ve veri hizmetlerinin sayısı sınırı aştı"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Aynı anda en fazla 5 etkin şifre, geçiş anahtarı ve veri hizmetiniz olabilir. Başka hizmet eklemek için bir hizmeti devre dışı bırakın."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Kapat"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Otomatik doldur"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Günlük kaydı düzeyi"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Uygulama uyumluluğuyla ilgili değişiklikler sadece hata ayıklaması yapılabilecek uygulamalar için değiştirilebilir. Hata ayıklaması yapılabilecek bir uygulama yükleyip tekrar deneyin"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Bu ayar başka bir ayara bağlı"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Hesap"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d hesap"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Cihaz adı"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Temel bilgiler"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Yasalar ve yönetmelikler"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Bir NFC etiketi tarandığında bu uygulamanın başlatılmasına izin verin.\nBu izin verilirse uygulama, bir etiket algılandığında kullanılabilir seçenekler arasında olur."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Medyayı oynatma yeri:"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g> ses çıkışı:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Ses şurada çalacak:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Bu cihaz"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Aramalar sırasında kullanılamaz"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Çağrıyı al"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Sesi kapat"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Etkinleştirmek için önce \"Güç düğmesini basılı tutun\" işlemini güç menüsünden değiştirin."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Ağ ayrıntıları"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Telefonunuzdaki uygulamalar, cihazınızın adını görebilecek. Cihazınızın adı ayrıca Blueetoth 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="devices_title" msgid="649715719278562515">"Cihazlar"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Ağ seç"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Bağlı değil"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Ad"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Renk (uyumlu uygulamalar tarafından kullanılır)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Kaydet"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM\'i kullan"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Bu SIM\'i kullan"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Kapalı"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Bu SIM\'i devre dışı bırakmak için SIM kartı çıkarın"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> operatörünü etkinleştirmek için dokunun"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM\'i sil"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tercih edilen ağ türü"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Ağın çalışma modunu değiştir"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tercih edilen ağ türü"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Fiyat bilgisi için ağ sağlayıcınıza başvurun."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Uygulama veri kullanımı"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"<xliff:g id="NETWORKMODEID">%1$d</xliff:g> Geçersiz Ağ Modu. Yoksayın."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Erişim Noktası Adları"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> operatörüne bağlıyken kullanılamaz"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> operatörüne geçilsin mi?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM kart kullanmaya geçilsin mi?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> kullanılsın mı?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Aynı anda yalnızca tek bir SIM etkin olabilir.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operatörüne geçtiğinizde <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> hizmetiniz iptal edilmez."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Aynı anda yalnızca 1 eSIM etkin olabilir.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> operatörüne geçtiğinizde <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> hizmetiniz iptal edilmez."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Aynı anda yalnızca tek bir SIM etkin olabilir.\n\nGeçiş yaptığınızda <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> hizmetiniz iptal edilmez."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Aynı anda 2 SIM kullanabilirsiniz. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> kullanmak için diğer SIM\'i devre dışı bırakın."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> operatörüne geç"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> cihazını kapat"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Hayır, teşekkürler"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"İptal"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Geç"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Kapat"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM etkinleştirilemiyor"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM\'i tekrar açmayı deneyin. Sorun devam ederse cihazınızı yeniden başlatın."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM\'inizi kurun"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Mobil ağ tercihlerinizi, bu cihazda birden fazla SIM kullanacak şekilde ayarlayın"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM\'lerinizi etiketleyin"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Telefon ederken, mesaj gönderirken, verileri kullanırken ve Ayarlar\'da bu etiketleri göreceksiniz"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM etiketi"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Etiket"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Kullanılacak SIM\'leri seçin"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Aynı anda 2 SIM kullanabilirsiniz"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Birincil SIM\'lerinizi kurun"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Aramalar, mesajlar ve veriler için varsayılan olarak kullanılacak SIM\'leri seçin"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Birincil SIM\'leriniz"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Aramalar"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Kısa mesajlar"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Otomatik veri geçişi"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Kapsam alanına ve kullanılabilirliğe bağlı olarak iki SIM\'den birindeki verileri kullanın"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Yalnızca veri"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Ayarla"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Sonraki"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobil ağ"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefon numarası"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM etiketi ve rengi"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ağ etkinleştirme"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Operatör değiştirme"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> etkin durumda"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Mobil veri, arama özellikleri ve SMS\'i daha sonra kullanmak için ağ ayarlarınıza gidin"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Bu eSIM silinsin mi?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Bu SIM silindiğinde, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> hizmeti bu cihazdan kaldırılır.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> hizmeti iptal edilmez."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Sil"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM siliniyor…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM silinemiyor"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Bu SIM bir hata nedeniyle silinemiyor.\n\nCihazınızı yeniden başlatıp tekrar deneyin."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Cihaza bağlanın"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> uygulaması cihazınıza bağlanmak için geçici bir kablosuz ağ kullanmak istiyor"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Hiçbir cihaz bulunamadı. Cihazların açık ve bağlanmaya hazır olduğundan emin olun."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Acil durum aramaları"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Operatörünüz, kablosuz çağrı üzerinden yapılan acil durum aramalarını desteklememektedir.\nAcil durum araması yapmak için cihaz otomatik olarak hücresel ağa geçer.\nAcil durum aramaları sadece hücresel ağ kapsamında olan yerlerde yapılabilir."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Kaliteyi iyileştirmek için çağrılarda kablosuz ağ kullanın"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Yedek arama"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> kullanılamıyorsa veya dolaşım yapılıyorsa <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> aramaları için mobil veri SIM\'inizi kullanın."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"yedek arama"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Gelen MMS mesajı"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS mesajı gönderilemiyor"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Mobil veri kapalıyken MMS mesajının <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> üzerinden gönderilip alınmasına izin vermek için dokunun"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"İş politikası bilgileriniz"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Ayarlar BT yöneticiniz tarafından yönetilir"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16K sayfa boyutuyla başlat"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Cihazı, 16K sayfa boyutunu destekleyen çekirdekle başlat"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16 KB sayfalarla uyumlu çekirdekle yeniden başlatılsın mı?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"UYARI: Bazı uygulamalar bu modla uyumlu olmayabilir. Cihaz, onay verildikten sonra yeniden başlatılır."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 KB sayfalarla uyumlu çekirdekle yeniden başlatılsın mı?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Cihaz, onay verildikten sonra yeniden başlatılır."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Çekirdek, 16 KB sayfalarla uyumlu çekirdeğe güncellenemedi."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Değişiklik uygulanıyor"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Hata raporu işleyici"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Cihazınızda Hata Raporu kısayolunun hangi uygulama tarafından işleneceğini belirler."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Kişisel"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Medya oynatıcı, oynatmayı hızlıca devam ettirmek için Hızlı Ayarlar\'da açık kalır"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Medyaları kilit ekranında göster"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Medya oynatıcı, oynatmayı hızlıca devam ettirmek için kilit ekranında açık kalır"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Medya önerilerini göster"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Asistan\'ın medya önerilerini göster"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Etkinliğinize dayalı olarak"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Oynatıcıyı gizle"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Oynatıcıyı göster"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM\'ler"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Etkin"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Etkin değil"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> için varsayılan"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"aramalar"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Uyumlu medyadaki sesler daha yoğun gelir"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Kafa hareketi izleme"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ses, kulağa daha doğal gelmesi için kafanızı hareket ettirdikçe değişir"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"İzin senkronizasyonu"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> cihazda etkinleştirdiğiniz uygulama izinleri <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> cihazda da etkinleştirilir"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Telefondaki izinleri senkronize et"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Bu telefonda etkinleştirdiğiniz uygulama izinleri kol saatinizde de etkinleştirilir"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Ses Cihazı Türü"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Bilinmiyor"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Hoparlör"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Orta"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Yüksek"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Bu uygulama yalnızca 1 pencerede açılabilir"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Açık"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Kapalı"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Kapalı"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Kapalı"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Açık"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Kapalı"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Açık"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Kapalı"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Açık renkli ekranları koyu renk yapar, koyu renkli ekranları da açık renk yapar"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Ekranı yakınlaştırın"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Kapalı"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Kapalı"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Açık"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Kapalı"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Açık"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Şifre ayarlandı"</string>
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index a4f69f8..43c4c5f 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Через 1 хвилину"</item>
     <item msgid="1574040255478150028">"Через 5 хвилин"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 8062cd9..2fb55ad 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Доступ до налаштувань розробника мають лише адміністратори."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Система"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Працює"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Не працює"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Проведіть пальцем угору, щоб продовжити"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Складіть телефон і проведіть пальцем угору по передньому екрану, щоб і надалі користуватися додатком, або зачекайте кілька секунд, і екран заблокується"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Схожі"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Сигнал дзвінка й будильники"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Аудіо під час дзвінків"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Медіа"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Сповіщення й системні звуки"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Звуки мультимедіа й системи"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Сповіщення"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"За умовчанням аудіовихід визначають окремі додатки"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Пристрій Bluetooth без імені"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Пошук"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth увімкнено"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Показати всі"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Показати всі"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Стилус"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Натискання кнопки стилуса"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (робочий профіль)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Підключитися до аудіопотоку LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Аудіопотоки поблизу"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Аудіопотоки"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Підключіться до аудіопотоку за допомогою QR-коду"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Аудіопотіків поблизу не знайдено."</string>
     <string name="date_and_time" msgid="1788358029823431692">"Дата й час"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Проксі"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"Очистити"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Щоб вибрати мову для кожного додатка, перейдіть у його налаштування мови."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Докладніше про мови додатків"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Змінити мову системи на таку: %s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Додати мову (%s) до списку бажаних?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Додатки й веб-сайти знатимуть, що ви віддаєте перевагу також і цій мові."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Регіональні та інші налаштування вашого пристрою буде змінено."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Змінити"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"Вибрана мова (%s) недоступна"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Субота"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Якщо додаток не підтримує регіональні налаштування, він використовуватиме налаштування мови за умовчанням."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Дізнайтеся більше про вибір мови."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Додаткові параметри"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Форма звертання"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Виберіть, як до вас звертатися"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Для персоналізації додатки можуть використовувати вибрану форму звертання до вас."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не вказано"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Жіночий рід"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Чоловічий рід"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Нейтральна"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Вилучити вибрану мову?}one{Вилучити вибрані мови?}few{Вилучити вибрані мови?}many{Вилучити вибрані мови?}other{Вилучити вибрані мови?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст відображатиметься іншою мовою"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не можна видалити всі мови"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Місцезнаходження"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Використовувати геодані"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Вимкнено"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Увімкнено: # додаток має доступ до геоданих}one{Увімкнено: # додаток має доступ до геоданих}few{Увімкнено: # додатки мають доступ до геоданих}many{Увімкнено: # додатків мають доступ до геоданих}other{Увімкнено: # додатка мають доступ до геоданих}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Увімкнено / # додаток має доступ до геоданих}one{Увімкнено / # додаток має доступ до геоданих}few{Увімкнено / # додатки мають доступ до геоданих}many{Увімкнено / # додатків мають доступ до геоданих}other{Увімкнено / # додатка мають доступ до геоданих}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Завантаження…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Додатки з дозволами на доступ до пристроїв поблизу можуть визначати відносне розташування підключених пристроїв."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Доступ до геоданих вимкнено для додатків і сервісів. Однак дані про місцезнаходження вашого пристрою можуть надсилатися в екстрених випадках, якщо ви зателефонуєте або надішлете SMS на екстрений номер."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Докладніше про доступ до геоданих."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Докладніше про доступ до геоданих"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Змінити доступ до геоданих: \"Налаштування\" &gt; \"Безпека й конфід.\" &gt; \"Налашт. конфід.\""</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Рекомендуємо використовувати захисну плівку чи скло, що мають позначку \"Створено для Google\". Якщо вони не матимуть такої позначки, відбиток пальця дитини може не розпізнаватися."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Розблокування годинником"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Якщо ви налаштуєте розблокування за допомогою фейс-контролю й відбитка пальця, телефон запитуватиме ваш відбиток пальця, коли ви в масці або навколо вас темно.\n\nЯкщо не вдається розпізнати ваше обличчя або відбиток пальця, ви можете розблокувати пристрій за допомогою годинника."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Якщо ваш відбиток пальця не вдається розпізнати, ви можете розблокувати пристрій за допомогою годинника."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Якщо ваше обличчя не вдається розпізнати, ви можете розблокувати пристрій за допомогою годинника."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Якщо ви налаштуєте розблокування за допомогою фейс-контролю й відбитком пальця, телефон запитуватиме ваш відбиток пальця, коли темно або у вас на обличчі маска.\n\nРозблокування годинником – ще один зручний спосіб розблоковувати цей телефон (наприклад, коли у вас мокрі руки чи пристрій не може розпізнати ваше обличчя)."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Розблокування годинником – ще один зручний спосіб розблоковувати цей телефон (наприклад, коли пристрій не може розпізнати ваш відбиток пальця)."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Розблокування годинником – ще один зручний спосіб розблоковувати цей телефон (наприклад, коли пристрій не може розпізнати ваше обличчя)."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Використовувати відбиток пальця або годинник для"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Використовувати фейс-контроль або годинник для"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Використовувати фейс-контроль, відбиток пальця або годинник для"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додано обличчя та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додано обличчя, відбиток пальця та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додано обличчя, відбитки пальців і годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Як це працює"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Годинник має бути розблокований, перебувати на вашому зап’ясті й у радіусі дії цього телефона. Вам не потрібно буде розблоковувати годинник ще раз, поки він на руці."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Коли цей телефон розблокується, ви отримаєте сповіщення на годиннику. Якщо це сталося випадково, натисніть сповіщення, щоб знову заблокувати телефон."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Повний контроль"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Ви будь-коли можете вимкнути функцію розблокування годинником у налаштуваннях"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Натисніть сповіщення"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Проведіть пальцем угору по заблокованому екрану"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Виберіть свій годинник"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Доступні годинники"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Скасувати"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Підтвердити"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Готово."</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Тепер за допомогою годинника ви можете розблоковувати цей телефон, провівши вгору по заблокованому екрану або торкнувшись сповіщення"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Розблокування годинником"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Ви можете розблоковувати цей телефон за допомогою годинника, провівши вгору по заблокованому екрану або торкнувшись сповіщення"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Щоб використовувати розблокування годинником, він має бути розблокований, підключений до цього телефона, перебувати в радіусі дії і на вашому зап’ясті. Якщо підключення перерветься, вам потрібно буде розблокувати телефон, перш ніж скористатись розблокуванням годинником.\n\nВажливо.\nУ вас не може бути налаштовано кілька годинників одночасно. Щоб додати інший годинник, спершу вилучіть наявний."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Докладніше про розблокування годинником"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додати годинник"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Вилучити годинник"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Розблокування відбитком пальця й фейс-контроль"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Фейс-контроль і відбиток пальця для роботи"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Потрібно налаштувати"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Безпека"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Конфіденційність"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"Робочий профіль"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"Приватний простір"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"Зберігайте приватні додатки в прихованому й заблокованому сховищі"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Зберігайте приватні додатки в окремому просторі, який можна приховати або заблокувати"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Блокування приватного простору"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Ви можете розблоковувати приватний простір так само, як і свій пристрій, або вибрати інший спосіб розблокування"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Використовувати спосіб розблокування екрана пристрою"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Фейс-контроль і розблокування відбитком пальця"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Розблокування відбитком пальця"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Фейс-контроль"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Натисніть, щоб налаштувати"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Розблокування відбитком пальця для особистого простору"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Фейс-контроль для особистого простору"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Способи розблокування"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Той самий спосіб розблокування, що й для екрана пристрою"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Вибрати нове блокування приватного простору?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Блокувати автоматично"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Автоматичне блокування приватного простору"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Ви можете блокувати приватний простір автоматично, якщо не використовуєте пристрій протягом певного часу"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Щоразу, коли пристрій блокується"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Через 5 хвилин неактивності"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Ніколи"</string>
+    <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_deleted" msgid="7825768516955610897">"Приватний простір видалено"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"Не вдалося видалити приватний простір"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"Приватний простір розблоковано"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Налаштуйте блокування екрана"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"Щоб застосовувати приватний простір, налаштуйте блокування екрана на цьому пристрої"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"Налаштувати блокування екрана"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"Скасувати"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"Скасувати"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Налаштувати"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Налаштуйте приватний простір"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Зберігайте приватні додатки в окремому просторі, який можна приховати або заблокувати"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Як це працює"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Ви можете отримати доступ до приватного простору внизу списку додатків"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Додатки в приватному просторі захищено блокуванням"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Сповіщення додатків у приватному просторі приховуються, коли його заблоковано"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Коли приватний простір заблоковано, його додатки не відображатимуться в менеджері дозволів, на панелі керування дозволами й в інших налаштуваннях.\n\nПриватний простір не можна перенести на інший пристрій. Якщо ви хочете використовувати приватний простір на іншому пристрої, потрібно налаштувати інший приватний простір.\n\nДо вашого приватного простору може отримати доступ будь-який користувач, установивши на вашому пристрої шкідливі додатки або підключивши його до комп’ютера."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Налаштування приватного простору…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Сповіщення додатків у приватному просторі приховуються, коли його заблоковано"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Щоб ділитися фотографіями або файлами з додатків особистого простору, розблокуйте його"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Деякі додатки вже встановлено в приватному просторі"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Не вдалося налаштувати приватний простір"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Повторити"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Викор. сп. розбл. екрана для розбл. пр. простору?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Ви можете розблоковувати приватний простір так само, як і свій пристрій, або вибрати інший спосіб розблокування"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Доступ розблокуванням екрана"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Вибрати новий спосіб розблокування"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Готово."</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Щоб отримати доступ до приватного простору, перейдіть до списку додатків і прокрутіть сторінку вниз"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Готово"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Прокрутіть сторінку вниз, щоб знайти приватний простір"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Виберіть спосіб розблокування приватного простору"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Ви можете розблоковувати приватний простір відбитком пальця. З міркувань безпеки для цієї функції потрібно налаштувати резервний спосіб розблокування."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Створіть PIN-код для особистого простору"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Установіть пароль особистого простору"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Налаштуйте ключ для особистого простору"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Показувати приватний простір (неостаточна версія)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Відкрийте додаток Налаштування"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Виберіть \"Безпека й конфіденційність\" &gt; \"Приватний простір\" &gt; \"Приховати приватний простір, коли його заблоковано\""</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Вимкніть \"Приховати приватний простір, коли його заблоковано\""</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Примітка для працівників компанії Google: розробка цієї функції ще триває"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Також потрібно ввести цей ключ доступу на іншому пристрої."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Підтвердьте, щоб підключатися до набору узгоджених пристроїв"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дозволити доступ до контактів та історії викликів"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Надати доступ також до контактів і історії викликів"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Інформація використовуватиметься для сповіщень про виклики тощо"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не вдалося з’єднатися з пристроєм <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Доступні пристрої"</string>
     <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, ваш пристрій може обмінюватися даними з іншими пристроями з цією технологією поблизу"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"У режимі польоту"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Повідомляти про загальнодоступні мережі"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Сповіщати про доступність високоякісної загальнодоступної мережі"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Дозволити підключення до мереж WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP – це застарілий (менш надійний) протокол безпеки"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Ваш оператор не дозволяє підключатися до мереж WEP, оскільки вони менш надійні"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Автоматично вмикати Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi‑Fi вмикатиметься поблизу збережених високоякісних мереж, як-от вашої домашньої мережі"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Недоступно, оскільки місцезнаходження невідоме. Увімкніть "<annotation id="link">"надсилання геоданих"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"За допомогою функції пошуку мереж Wi-Fi додатки та сервіси можуть будь-коли шукати бездротові мережі, навіть якщо Wi-Fi вимкнено. Це покращує роботу функцій і сервісів, які використовують дані про місцезнаходження."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Увімкнути"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Пошук мереж Wi-Fi увімкнено"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"У цій мережі використовується застарілий (менш надійний) протокол безпеки"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"Мережу <xliff:g id="NAME">%1$s</xliff:g> заблоковано"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"У цій мережі використовується застарілий протокол безпеки WEP, який є менш надійним. Щоб усе одно під’єднатися, ви можете дозволити підключення до мереж WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Ваш оператор не дозволяє підключатися до цієї мережі, оскільки в ній використовується застарілий (менш надійний) протокол безпеки"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Дозволити WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Закрити"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Додаткові параметри"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Спадний список додаткових параметрів"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"розгорнути"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Використовувати Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Більше не показувати"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Підключити"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi увімкнено"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Підключено до мережі \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\""</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Підключення до мережі \"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>\""</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Підключення…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Помилка під’єднання до мережі."</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ви знаходитеся поза зоною покриття мережі"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Видалити"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Змінити"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Помилка видалення мережі"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Зберегти"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Помилка збереження мережі"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Скасувати"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Мобільний трафік"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – заряджається"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – заряджається"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"З\'єднання через точку доступу"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Рівень сигналу"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Збережені мережі"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Пароль не налаштовано"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Назва точки доступу"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Пароль точки доступу"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Діапазон частот точки доступу"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Вимикати точку доступу автоматично"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Коли немає підключених пристроїв"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Розширити сумісність"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Вимкнути станд. частоту кадрів для ігор"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Вимкнути обмеження частоти кадрів для ігор (<xliff:g id="FRAME_RATE">%1$d</xliff:g> Гц)."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Плавне відображення"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Адаптивний сплячий режим за допомогою передньої камери визначає, чи дивиться користувач на екран. Ця функція працює лише на пристрої, не зберігає зображень і не надсилає їх у Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Увімкнути адаптивний сплячий режим"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Не вимикати екран, поки ви на нього дивитеся"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Якщо вибрати довший час вимкнення екрана, акумулятор розряджатиметься швидше."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Камеру заблоковано"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Щоб розпізнавання облич працювало, потрібно розблокувати камеру"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Для роботи адаптивного сплячого режиму потрібно розблокувати камеру"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (гніздо <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g> для SIM-карти)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (гніздо <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g> для SIM-карти) (основний)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Щоб переглянути, виберіть збережену мережу"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Версія PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Рівень заряду акумулятора"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Для спільного використання"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Налаштування для спільного використання"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Зберегти"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Скасувати"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Поле \"Назва\" не може бути порожнім."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"Поле APN не може бути порожнім."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Поле MCC має містити 3 цифри."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Поле MNC має містити 2 або 3 цифри."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Оператор не дозволяє додавати APN типу %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Поле MMSC має бути дійсним."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Відновлення налаштувань APN за умовчанням."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Скинути налаштування"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Налаштування за умовчанням відновлено."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Скинути"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Налаштування Wi-Fi і Bluetooth скинуто"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Видалити всі дані з eSIM-карт"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Мобільні тарифні плани не буде скасовано. Щоб завантажити нові SIM-карти, зв\'яжіться з оператором."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Скинути налаштування"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Скинути всі налаштування мережі? Цю дію неможливо відмінити."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Скинути всі мережеві налаштування й видалити дані всіх eSIM-карт? Цю дію неможливо відмінити."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Скинути?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Цей користувач не може скидати налаштування мережі"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Налаштування мереж скинуто"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Не вдалося видалити SIM-карти"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Під час видалення всіх даних з eSIM-карт сталася помилка.\n\nПерезапустіть пристрій і повторіть спробу."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Стерти всі дані (скинути налаштування)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Стерти всі дані (скинути налаштування)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"музику"</li>\n<li>"фото"</li>\n<li>"інші дані користувача"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM-карти"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Ваш тарифний план не буде скасовано."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Усю особисту інформацію та завантажені додатки буде видалено. Цю дію неможливо відмінити."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Усю особисту інформацію, зокрема завантажені додатки й SIM-карти, буде видалено. Цю дію неможливо відмінити."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Стерти всі дані?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Цей користувач не може скинути налаштування"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Стирання"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Точка доступу, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Інші пристрої не мають доступу до Інтернету"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Вимкнено"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Використання телефона як модема"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Не використовувати точку доступу Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Надавати доступ до Інтернету тільки через USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Надавати доступ до Інтернету тільки через Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Надавати доступ до Інтернету лише через Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Надавати доступ до Інтернету тільки через USB та Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Надавати доступ до Інтернету лише через USB й Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Надавати доступ до Інтернету лише через Bluetooth і Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Надавати доступ до Інтернету лише через USB, Bluetooth і Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB-модем"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth-модем"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet-модем"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Надавайте іншим пристроям доступ до Інтернету через Wi-Fi або мобільне передавання даних за допомогою точки доступу й режиму модема. Додатки також можуть створювати точку доступу, щоб ділитися контентом із пристроями поруч."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Довідка"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Мобільна мережа"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Тарифний план"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Додаток для SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Змінити додаток для SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Використовувати для SMS додаток <xliff:g id="NEW_APP">%1$s</xliff:g> замість <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Змінити Wi‑Fi Assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Використовувати <xliff:g id="NEW_APP">%1$s</xliff:g> замість додатка <xliff:g id="CURRENT_APP">%2$s</xliff:g> для керування з’єднаннями?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Використовувати <xliff:g id="NEW_APP">%s</xliff:g> для керування з’єднаннями?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Невідомий оператор SIM-карти"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"Оператор <xliff:g id="OPERATOR">%1$s</xliff:g> не має веб-сайту про надання послуг"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Вставте SIM-карту та перезапустіть"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Під’єднайтеся до Інтернету"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Останні запити на геодані"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Геодані для робочого профілю"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Доступ додатків до геоданих"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Скасувати доступ"</string>
     <string name="controls_label" msgid="8671492254263626383">"Ел. керув."</string>
     <string name="force_stop" msgid="2681771622136916280">"Зупинити"</string>
+    <string name="archive" msgid="9074663845068632127">"Архівувати"</string>
+    <string name="restore" msgid="7622486640713967157">"Відновити"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Усього"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Розмір додатка"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Додаток на носії USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Не вдалось обчислити розмір пакета."</string>
     <string name="version_text" msgid="7628938665256107608">"версія <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Перем."</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Не вдалося архівувати"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> заархівовано"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Не вдалося відновити"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Відновлення додатка <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Триває ще одне переміщення."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Недостатньо пам’яті."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Програма не існує."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Доступна екранна клавіатура"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Керувати екранною клавіатурою"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Опції"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Доступність"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Фізична клавіатура"</string>
     <string name="show_ime" msgid="4334255501724746849">"Використовувати екранну клавіатуру"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Залишати її на екрані, коли активна фізична клавіатура"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Ігнорувати повторне натискання"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Активуйте ігнорування повторного натискання клавіш як функцію доступності для фізичної клавіатури"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Залипання клавіш"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Активуйте залипання клавіш як функцію доступності фізичної клавіатури"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Комбінації клавіш"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показати список комбінацій клавіш"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавіатури та інструменти робочого профілю"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"За часом використання"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"За часом ост. використання"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"За назвою додатка"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Останнє використання"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Останнє використання"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ніколи"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Час використ."</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Доступність"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Налаштування доступності"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Усе одно продовжити"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Скасувати"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Налаштування збільшення"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Збільшувати потрійним торканням"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Збільшувати кнопкою/жестом"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Збільшувати кнопкою й потрійним дотиком"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Про сервіс <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Двічі торкніться екрана двома пальцями, щоб відкрити"</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="860548190334486449">"Щоб почати або припинити збільшення, двічі натисніть будь-де на екрані двома пальцями."</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Щоб використовувати спеціальні можливості, проведіть трьома пальцями вверх від низу екрана.\n\nЩоб переключитися між функціями, проведіть трьома пальцями знизу вверх і утримуйте їх на екрані."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Налаштування кнопки"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Налаштування кнопки"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g>: швидкий доступ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Кнопка функцій доступності"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Жест спеціальних можливостей"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Двічі торкніться екрана двома пальцями"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"двічі торкніться екрана двома пальцями"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Швидко торкніться екрана двома пальцями стільки разів: {0,number,integer}"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Тричі торкнутися екрана"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"потрійний дотик"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"Швидко натисніть екран стільки разів: {0,number,integer}. Призначена кнопка чи відповідний жест може сповільнити роботу пристрою."</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Докладніше про кнопку й жест спеціальних можливостей"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Використання кнопки спеціальних можливостей. Жест недоступний при навігації трьома кнопками."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Швидкий доступ до функцій доступності"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Щоб почати:"</b>\n"1. Перейдіть до налаштувань спеціальних можливостей.\n2. Виберіть потрібну функцію й натисніть ярлик.\n3. Виберіть, чи використовувати кнопку або жест для доступу до функції."</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Щоб почати:"</b>\n"1. Перейдіть до налаштувань спеціальних можливостей.\n2. Виберіть потрібну функцію й натисніть швидку команду.\n3. Виберіть кнопку для доступу до функції."</string>
+    <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_size_title" msgid="5785110470538960881">"Розмір"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Кнопка живлення закінчує виклик"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Великий курсор"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Курсор миші стане помітнішим"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Зробити всі додатки темними"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Стосується додатків без темної теми. У деяких додатках можуть виникати проблеми з відображенням, як-от інвертування кольорів."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Вимкнути анімацію"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Кількість рухомих об’єктів на екрані зменшиться"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Монофонічне аудіо"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Цей сервіс може відстежувати вашу взаємодію з додатком чи апаратним датчиком, а також взаємодіяти з додатками від вашого імені."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Дозволити"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Заборонити"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Зупинити"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Скасувати"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Зупинити <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Натиснувши \"<xliff:g id="STOP">%1$s</xliff:g>\", ви зупините сервіс <xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Вимкнути"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Продовжити"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Вимкнути сервіс <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Не встановлено жодної служби"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Службу не вибрано"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Немає опису."</string>
     <string name="settings_button" msgid="2195468788019730377">"Налаштування"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"світлова чутливість, фотофобія, темна тема, мігрень, головний біль, режим читання, нічна тема, зменшення яскравості, біла точка"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Просте використання, простий доступ, допомога, допоміжний"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"зір, слух, незрячий, глухий, моторика, координація рухів, допоміжний, допомога, простота використання, простий доступ, рука"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"збільшення вікна, масштаб, збільшення, поганий зір, масштабування, збільшити"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Підписи, субтитри, субтитрування, миттєва транскрипція, поганий слух, втрата слуху, системи CART, перетворення мовлення на текст, субтитр"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"контраст кольорів"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"моторика, миша"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"слуховий апарат, поганий слух, утрата слуху, кохлеарні імплантати, пристрої для підсилення звуку, звукові процесори"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"моторика, миша, зовнішня миша, миша-окуляри, адаптивна миша, інвалідний візок, джойстик"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"слуховий апарат, поганий слух, утрата слуху, кохлеарні імплантати, пристрої для підсилення звуку, звукові процесори, персональні вироби для підсилення звуку"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"проблеми зі слухом, втрата слуху, підписи, телетайп, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"три кнопки"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"координація рухів, моторика, літня людина, артрит, хронічне розтягнення сухожиль, інсульт, тремор, розсіяний склероз, дитячий церебральний параліч, тремтіння, рука"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"затримка, координація рухів, літня людина"</string>
     <string name="print_settings" msgid="8519810615863882491">"Друк"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Вимкнено"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Увімкнено 1 сервіс друку}one{Увімкнено # сервіс друку}few{Увімкнено # сервіси друку}many{Увімкнено # сервісів друку}other{Увімкнено # сервісу друку}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Переглянути додатки, що найбільше використовують заряд"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Заряджання оптимізовано, щоб захистити акумулятор"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Щоб продовжити строк служби акумулятора, заряджання оптимізовано"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Заряджання оптимізовано, щоб захистити акумулятор"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Щоб продовжити строк служби акумулятора, заряджання оптимізовано, поки пристрій у док-станції"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Заряджання оптимізовано, щоб захистити акумулятор"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Щоб продовжити строк служби акумулятора, заряджання оптимізовано, поки пристрій у док-станції"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Повне заряджання"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Щоб захистити акумулятор, заряджання буде оптимізовано, коли планшет буде в док-станції наступного разу"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Докладніше про призупинення заряджання"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Відновити заряджання"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Виявлено енергозатратну активність у фоновому режимі"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Видалити"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Скасувати"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Зарядити повністю"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Проблема із зарядним пристроєм"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Докладніше про використання несумісних зарядних пристроїв"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Диспетчер заряду акумулятора"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Керувати додатками автоматично"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"зараз"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Діаграма використання заряду"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Діаграма використання заряду акумулятора за день"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Діаграма використання заряду акумулятора за годину"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Заряд акумулятора у відсотках від <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> до <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Використання заряду акумулятора після останнього повного заряджання"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Використання заряду акумулятора (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Час використання пристрою після останнього повного заряджання"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал екстреного виклику"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Устан. поведінку при розміщ. аварійного виклику"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Резервне копіювання"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Увімкнено"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Вимкнено"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Резервне копіювання та відновлення"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Особисті дані"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Резервне копіювання даних"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Назва"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Тип"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Адреса сервера"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Шифрування PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Ключ L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Ідентифікатор IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Спільний ключ IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Сертифікат користувача IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Сертифікат IPSec від ЦС"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Сертифікат сервера IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Показати розширені параметри"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Домени DNS пошуку"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS-сервери (напр., 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Маршрути пересилання (напр., 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Ім’я користувача"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Пароль"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Зберегти інформацію про обліковий запис"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(не використовується)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(не перевіряти сервер)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(отриманий із сервера)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Цей тип мережі VPN не може підтримувати постійне з’єднання"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Постійна мережа VPN підтримує лише числові адреси сервера"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Для постійної мережі VPN потрібно вказати DNS-сервер"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Для постійної мережі VPN адреси DNS-сервера мають складатися з цифр"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Введена інформація не підтримує постійну мережу VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Скасувати"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Закрити"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Блокувати підключення не через VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Вимагати з’єднання VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Ненадійна мережа. Перейдіть на VPN-підключення за протоколом IKEv2."</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Не вдалося запустити непідтримувану мережу VPN."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Виберіть профіль мережі VPN і не від’єднуйтесь від неї. Мережевий трафік дозволятиметься лише за умови під’єднання до цієї VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Не використовувати"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Для постійної мережі VPN потрібна IP-адреса як для сервера, так і для DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Сповіщення AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Отримувати сповіщення про викрадених дітей"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Повторити"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Увімкнути Менеджер викликів"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Дозволити цій службі керувати здійсненням викликів."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Менеджер викликів"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Бездротові екстрені сповіщення"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Оператори мережі"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Назви точок доступу"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"гаманець"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"оплатити, торкнутися, платежі"</string>
     <string name="keywords_backup" msgid="707735920706667685">"резервна копія, резервне копіювання"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"жест"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"обличчя, розблокувати, автентифікація, увійти, фейс-контроль"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"обличчя, розблокування, автентифікація, вхід, відбиток пальця, біометричні дані, фейс-контроль"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, версія prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Увімкнути звуки"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Живі субтитри"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Автоматичні субтитри (медіа)"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Динаміки телефона"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Динаміки планшета"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Динаміки пристрою"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Дротові навушники"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Звук із сумісних носіїв стає реалістичнішим"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Вимкнено"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Нещодавні розмови видалено"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Чат видалено"</string>
     <string name="clear" msgid="5092178335409471100">"Очистити"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Видалити користувача <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Тут з’являтимуться важливі та змінені розмови"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Якщо ви внесете зміни до розмов, наприклад позначите певну розмову як важливу, вони з’являться тут. \n\nЩоб змінити налаштування розмови: \nвідкрийте розкривну панель, провівши пальцем униз від верху екрана, а потім натисніть і утримуйте розмову."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Згортати"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Вимкнено"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Закріплення додатків"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Ви бачитимете закріплений додаток на екрані, поки не відкріпите його. Цю функцію можна використовувати, наприклад, щоб дозволити другові зіграти в певну гру."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Закріплений додаток матиме змогу відкривати інші додатки й отримувати доступ до персональних даних. \n\nЩоб використовувати закріплення додатка: 	\n1. Увімкніть закріплення додатка. 	\n2. Відкрийте \"Огляд\". 	\n3. Натисніть значок додатка вгорі екрана й виберіть \"Закріпити\"."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Закріплений додаток матиме змогу відкривати інші додатки й отримувати доступ до персональних даних. \n\nЯкщо ви хочете без ризику надавати іншому користувачу доступ до пристрою, натомість використовуйте режим гостя. \n\nЩоб використовувати закріплення додатка: 	\n1. Увімкніть закріплення додатка. 	\n2. Відкрийте \"Огляд\". 	\n3. Натисніть значок додатка вгорі екрана й виберіть \"Закріпити\"."</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Керуйте додатком, що не використовується"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Вилучити дозволи, видалити тимчасові файли, зупинити сповіщення й архівувати додаток"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Усі додатки"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Установлені додатки"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Додатки з миттєвим запуском"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Вільна пам’ять"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Використання пам\'яті додатками"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{За ост. {time} пам’ять використовував 1 додаток}one{За ост. {time} пам’ять використовував # додаток}few{За ост. {time} пам’ять використовували # додатки}many{За ост. {time} пам’ять використовували # додатків}other{За ост. {time} пам’ять використовували # додатка}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Увімк. профілювання використання пам’яті"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Щоб профілювати використання пам’яті, потрібні додаткові системні ресурси."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Профілювання використання пам’яті вимкнено"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Як часто працює додаток"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Найбільше використання"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Трафік не споживався"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Показувати поверх інших додатків"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Показувати поверх інших додатків"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Дозволити цьому додатку відображатися поверх інших відкритих додатків. Він зможе відстежувати місце натискання та змінювати вміст екрана."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Змін. пристр. для відтв. медіа"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Дозвол. додатку змін. прист. для відтв. медіа"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Дозволити цьому додатку вибирати, на якому підключеному пристрої відтворюватиметься аудіо або відео з інших додатків. Якщо дозволено, цей додаток зможе мати доступ до списку доступних пристроїв (наприклад, навушників і колонок) і вибирати, який пристрій виведення використовуватиметься для трансляції аудіо або відео."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Доступ до всіх файлів"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Покращувати активацію голосом"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Цей пристрій використовує приватну інформацію, щоб покращувати модель активації голосом. Додатки можуть отримувати зведені узагальнені дані від різних користувачів, щоб підтримувати конфіденційність і водночас покращувати модель для всіх.\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Застереження, коли використано <xliff:g id="ID_1">^1</xliff:g> трафіку"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Обмеження обсягу даних – <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Застереження, коли використано <xliff:g id="ID_1">^1</xliff:g> трафіку / Обмеження трафіку: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Оператор може по-іншому вимірювати статистику використання трафіку"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Не включає дані, що використовуються в мережах операторів мобільного зв\'язку"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Використано <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Сповіщення щодо трафіку"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Оновлено <xliff:g id="ID_1">^2</xliff:g> тому"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Оператор <xliff:g id="ID_1">^1</xliff:g> щойно оновив"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Щойно оновлено"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Переглянути план"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Докладніше"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Заощадження трафіку"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Необмежені дані"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Відхилення у використанні заряду акумулятора"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Швидкі налаштування блоку розробника"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Вимкнути час очікування авторизації ADB"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Вимкнути автоматичне скасування авторизації ADB для систем, які не підключилися знову впродовж періоду за умовчанням (7 днів) або зазначеного користувачем часу (мінімум 1 день)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Трасування Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Датчики вимкнено"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Налаштування робочого профілю"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Шукати в особистих додатках контакти з робочого каталогу"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Автозаповнення"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Сервіс автозаповнення за умовчанням"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Паролі"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сервіси керування паролями, ключами доступу й даними"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Інші постачальники"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# пароль}one{# пароль}few{# паролі}many{# паролів}other{# пароля}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"автоматичний, заповнення, автозаповнення, пароль"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"дані, ключ доступу, пароль"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"автоматично, заповнення, автозаповнення, дані, ключ доступу, пароль"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Сервіси керування паролями, ключами доступу й даними"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Вимкнути всі сервіси?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Паролі, ключі доступу й інші збережені дані не будуть підставлятись автоматично, коли ви ввійдете в обліковий запис."</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Змінити бажаний сервіс на &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Відтепер тут зберігатимуться нові паролі, ключі доступу й інша інформація. Додаток &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; може використовувати інформацію на екрані, щоб визначати поля, які можна заповнити автоматично."</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Використовувати %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Одночасно можна ввімкнути не більше ніж 5 сервісів"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Вимкніть принаймні 1 сервіс, щоб додати інший"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s використовує інформацію на екрані, щоб визначати поля для автозаповнення."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Вибрано забагато сервісів керування паролями, ключами доступу й даними"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Одночасно можуть бути активними щонайбільше 5 сервісів керування паролями, ключами доступу й даними. Вимкніть один із сервісів, щоб додати інший."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Вибрано забагато сервісів керування паролями, ключами доступу й даними"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Одночасно можуть бути активними щонайбільше 5 сервісів керування паролями, ключами доступу й даними. Вимкніть один із сервісів, щоб додати інший."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Вимкнути"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Автозаповнення"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Рівень реєстрації"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Налаштування сумісності можна змінювати лише для налагоджуваних додатків. Установіть налагоджуваний додаток і спробуйте ще раз."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Залежить від іншого налаштування"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Обліковий запис"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"Кількість облікових записів: %d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Назва пристрою"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Основна інформація"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Нормативно-правова інформація"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Дозвольте цьому додатку запускатися під час сканування NFC-міток.\nЯкщо цей дозвіл ввімкнено, у разі виявлення мітки додаток відображатиметься серед доступних опцій."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Де відтворювати мультимедіа"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Як відтворювати <xliff:g id="LABEL">%s</xliff:g>:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Де відтворюватиметься аудіо:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Цей пристрій"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Недоступно під час викликів"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Прийняти виклик на"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Вимкнути звук"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Щоб увімкнути цю функцію, спершу змініть налаштування \"Утримувати кнопку живлення\" так, щоб при цьому відкривалось меню кнопки живлення."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Інформація про мережу"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Назва пристрою відображається в додатках на телефоні. Її також можуть бачити інші люди, коли ви підключаєтеся до пристроїв Bluetooth або налаштовуєте точку доступу Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Пристрої"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Вибрати мережу"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Від’єднано"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Назва"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Колір (для сумісних додатків)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Зберегти"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Використовувати SIM-карту"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Використовувати цю SIM-карту"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Вимкнено"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Щоб вимкнути цю SIM-карту, вийміть її"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Торкніться, щоб активувати оператора <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Видалити SIM-карту"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Пріоритетний тип мережі"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Змінити режим роботи мережі"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Пріоритетний тип мережі"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Докладніше про ціни можна дізнатися в оператора мережі."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Використання трафіку додатками"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Недійсний режим мережі: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ігнорувати."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Точки доступу"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Недоступно, коли підключено до оператора <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Вибрати оператора <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Вибрати SIM-карту?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Використовувати <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Активною може бути лише одна SIM-карта.\n\nЯкщо ви виберете оператора <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, обслуговування в оператора <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> не буде скасовано."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Активною може бути лише одна eSIM-карта.\n\nЯкщо ви виберете оператора \"<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>\", це не скасує послуг оператора \"<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>\"."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Активною може бути лише одна SIM-карта.\n\nСервіс оператора <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> не буде скасовано."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Можна використовувати 2 SIM-карти одночасно. Щоб вибрати SIM-карту оператора <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, вимкніть іншу."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Вибрати оператора <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Вимкнути карту оператора <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Ні, дякую"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Скасувати"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Вибрати"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Вимкнути"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не вдається активувати SIM-карту"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Спробуйте знову ввімкнути SIM-карту. Якщо проблема не зникне, перезапустіть пристрій."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Налаштуйте SIM-карту"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Налаштуйте параметри мобільних мереж, щоб використовувати на цьому пристрої кілька SIM-карт"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Позначте свої SIM-карти"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Ви бачитимете ці мітки, коли будете телефонувати, надсилати SMS і користуватися мобільним Інтернетом, а також у налаштуваннях"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Мітка SIM-карти"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Мітка"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Виберіть SIM-карти"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Ви можете використовувати 2 SIM-карти одночасно"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Виберіть основні SIM-карти"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Виберіть, які SIM-карти використовувати за умовчанням для дзвінків, SMS і мобільного трафіку"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Ваші основні SIM-карти"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Виклики"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"SMS"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Автом. перемикання моб. даних"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Використовувати мобільний трафік із будь-якої SIM-карти залежно від покриття й доступності"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Лише мобільний Інтернет"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Налаштувати"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Далі"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Мобільна мережа"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Номер телефону"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Мітка й колір SIM-карти"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активація мережі"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Змінення оператора"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> активовано"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Щоб використовувати мобільний Інтернет, функції викликів і SMS пізніше, перейдіть у мережеві налаштування"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM-карта"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Видалити всі дані з цієї eSIM-карти?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Якщо ви видалите цю SIM-карту, на цьому пристрої буде неможливо користуватися послугами оператора \"<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>\".\n\nОбслуговування в оператора \"<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>\" не буде скасовано."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Видалити"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Видалення SIM-карти…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Не вдалося видалити SIM-карту"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Під час видалення SIM-карти сталася помилка.\n\nПерезапустіть пристрій і повторіть спробу."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Підключитися до пристрою"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Додаток <xliff:g id="APPNAME">%1$s</xliff:g> запитує дозвіл підключитися до пристрою через тимчасову мережу Wi‑Fi"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Немає пристроїв. Переконайтеся, що пристрої ввімкнені й готові до з’єднання."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Екстрені виклики"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Ваш оператор не підтримує екстрені виклики через Wi-Fi.\nПід час таких викликів пристрій автоматично перемикається на мобільну мережу.\nЕкстрені виклики можна здійснювати лише в зонах покриття мобільної мережі."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Телефонувати через Wi-Fi для якісніших викликів"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Резервний спосіб здійснення викликів"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Якщо мережа оператора <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> недоступна чи працює в роумінгу, користуйтеся мобільним Інтернетом для викликів через <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"резервний спосіб здійснення викликів"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Вхідне MMS-повідомлення"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Не вдається надіслати MMS-повідомлення"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Торкніться, щоб увімкнути MMS-повідомлення для оператора <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>, коли мобільне передавання даних вимкнено"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Інформація про правила роботи"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Налаштування, якими керує адміністратор вашої організації"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"ГП"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Запустити з розміром сторінки 16 KБ"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Запустити пристрій із ядром для сторінок 16 КБ"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Перезапустити з ядром, сумісним зі сторінками розміром 16 КБ?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ПОПЕРЕДЖЕННЯ. Деякі додатки можуть бути несумісні з цим режимом. Пристрій перезапуститься після підтвердження."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Перезапустити з ядром, сумісним зі сторінками розміром 4 КБ?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Пристрій перезапуститься після підтвердження."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Не вдалося оновити ядро до сумісного зі сторінками розміром 16 КБ."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Застосування змін"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Обробник звітів про помилки"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Визначає, який додаток викликається ярликом звіту про помилку на пристрої."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Особисті додатки"</string>
@@ -4513,7 +4776,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Щоб швидко відновлювати відтворення, медіапрогравач залишається відкритим у швидких налаштуваннях"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Показувати мультимедіа на заблокованому екрані"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Щоб швидко відновлювати відтворення, медіапрогравач залишається відкритим на заблокованому екрані"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Показувати рекомендації мультимедійного контенту"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Показувати рекомендації мультимедійного контенту від Асистента"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"На основі ваших дій"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Приховати програвач"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Показати програвач"</string>
@@ -4545,8 +4808,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM-карта"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM-карта"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM-карти"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Активно"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Неактивно"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / За умовчанням (<xliff:g id="ID_1">%1$s</xliff:g>)"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"виклики"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4702,8 +4967,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук із сумісних носіїв стає реалістичнішим"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Відстеження рухів голови"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Коли ви рухаєте головою, звучання стає природнішим"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Синхронізація дозволів"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Надайте пристрою \"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>\" такі самі дозволи для додатків, які ви надали на пристрої \"<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>\""</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Синхронізуйте дозволи з телефона"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Надайте годиннику такі самі дозволи для додатків, які ви надали на телефоні"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудіопристрою"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Невідомо"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Колонка"</string>
@@ -4799,4 +5064,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Середній"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Високий"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Цей додаток можна відкрити лише в одному вікні"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Увімкнено"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Вимкнено"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Вимкнено"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Вимкнено"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Увімкнено"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Вимкнено"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Увімкнено"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Вимкнено"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Перетворює світлі кольори на темні й навпаки"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Наблизити вміст екрана"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Вимкнено"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Вимкнено"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Увімкнено"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Вимкнено"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Увімкнено"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Пароль установлено"</string>
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index d469c60..6a1220e 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 3add5d2..9841041 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"صرف منتظم صارفین ہی ڈویلپر کی ترتیبات تک رسائی حاصل کر سکتے ہیں۔"</string>
     <string name="header_category_system" msgid="1665516346845259058">"سسٹم"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"سروس میں"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"سروس میں نہیں ہے"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"جاری رکھنے کیلئے اوپر سوائپ کریں"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"اپنا فون فولڈ کریں اور ایپ استعمال کرنا جاری رکھنے کیلئے فرنٹ ڈسپلے پر اوپر سوائپ کریں یا اسکرین کے مقفل ہونے کیلئے چند سیکنڈ انتظار کریں"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"متعلقہ"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"رنگ ٹون اور الارمز"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"کالز کے دوران آڈیو"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"میڈیا"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"اطلاعات اور دیگر سسٹم ساؤنڈز"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"میڈیا اور سسٹم کی آوازیں"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"اطلاعات"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"بطور ڈیفالٹ آڈیو آؤٹ کا تعین انفرادی ایپس کے ذریعے کیا جاتا ہے"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"بلا نام بلوٹوتھ آلہ"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"تلاش کر رہا ہے"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"بلوٹوتھ کو آن کر دیا گیا"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"سبھی دیکھیں"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"سبھی دیکھیں"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"اسٹائلس"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"‏Tail بٹن دبائیں"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (دفتری پروفائل)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"‏LE آڈیو سلسلہ سے منسلک کریں"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"قریبی آڈیو سلسلے"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"آڈیو سلسلے"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"‏QR کوڈ استعمال کر کے آڈیو سلسلہ سے منسلک کریں"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"کوئی قریبی آڈیو سلسلے نہیں ملے۔"</string>
     <string name="date_and_time" msgid="1788358029823431692">"تاریخ اور وقت"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"پراکسی"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"صاف کریں"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"ہر ایپ کے لیے زبان منتخب کرنے کے لیے، ایپ کی زبان کی ترتیبات پر جائیں۔"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"ایپ کی زبانوں کے بارے میں مزید جانیں"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"‏سسٹم کی زبان کو %s پر تبدیل کریں ؟"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"‏‎%s کو ترجیحی زبانوں میں شامل کریں؟"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"اس سے ایپس اور ویب سائٹس کو معلوم ہوتا ہے کہ آپ بھی اس زبان کو ترجیح دیتے ہیں۔"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"آپ کے آلہ کی ترتیبات اور علاقائی ترجیحات تبدیل ہو جائیں گی۔"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"تبدیل کریں"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"‏%s دستیاب نہیں ہے"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"ہفتہ"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"‏اگر کوئی ایپ علاقائی ترجیحات کو سپورٹ نہیں کرتی ہے تو ایپ اپنی ڈیفالٹ locale کی ترتیبات استعمال کرے گی۔"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"زبان کی ترجیحات کے بارے میں مزید جانیں۔"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"اضافی ترجیحات"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"مخاطب کرنے کے الفاظ"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"سیٹ کریں کہ آپ کو کیسے مخاطب کیا جائے"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"ایپس آپ کو آپ کے مطابق مخاطب کرنے کے لیے آپ کے منتخب کردہ الفاظ کا استعمال کر سکتی ہیں۔"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"متعین نہیں ہے"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"مؤنث"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"مذکر"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"نیوٹرل"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{منتخب کردہ زبان ہٹائیں؟}other{منتخب کردہ زبانوں کو ہٹائیں؟}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"متن ایک دوسری زبان میں ڈسپلے کیا جائے گا۔"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ساری زبانیں نہیں ہٹا سکتا"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"مقام"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"مقام استعمال کریں"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"آف ہے"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{آن ہے - # ایپ کو مقام تک رسائی حاصل ہے}other{آن ہے - # ایپس کو مقام تک رسائی حاصل ہے}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{آن ہے / # ایپ کو مقام تک رسائی حاصل ہے}other{آن ہے / # ایپس کو مقام تک رسائی حاصل ہے}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"لوڈ ہو رہی ہے…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"قریبی آلات کی اجازت والی ایپس منسلک آلات کی متعلقہ پوزیشن کا تعین کر سکتی ہیں۔"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"ایپس اور سروسز کے لیے مقام تک رسائی آف ہے۔ آپ کے ایمرجنسی نمبر پر کال کرنے یا ٹیکسٹ پیغام بھیجنے پر بھی ایمرجنسی مدد فراہم کنندگان کو آپ کے آلے کا مقام بھیجا جا سکتا ہے۔"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"مقام کی ترتیبات کے بارے میں مزید جانیں۔"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"مقام کی ترتیبات کے بارے میں مزید جانیں"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"‏مقام تک رسائی کو تبدیل کرنے کے لیے ترتیبات &gt; سیکیورٹی اور رازداری &gt; رازداری سے متعلق کنٹرولز پر جائیں"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"‏بہترین نتائج کے لیے، ایک ایسے اسکرین پروٹیکٹر کا استعمال کریں جو Google کے لیے تیار کردہ سے سند یافتہ ہو۔ ممکن ہے کہ دوسرے اسکرین پروٹیکٹرز کے ساتھ آپ کے بچے کا فنگر پرنٹ کام نہ کرے۔"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"واچ اَن لاک"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"جب آپ فیس اَنلاک اور فنگر پرنٹ اَن لاک کی خصوصیت سیٹ اپ کرتے ہیں تو آپ کے ماسک پہننے یا کسی تاریک جگہ پر موجود ہونے کی صورت میں آپ کا فون آپ کے فنگر پرنٹ کے لیے پوچھے گا\n\nجب آپ کے چہرے یا فنگر پرنٹ کی شناخت نہ ہو تو آپ اپنی گھڑی سے غیر مقفل کر سکتے ہیں۔"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"جب آپ کے فنگر پرنٹ کی شناخت نہ ہو تو آپ اپنی گھڑی سے غیر مقفل کر سکتے ہیں۔"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"جب آپ کے چہرے کی شناخت نہ ہو تو آپ اپنی گھڑی سے غیر مقفل کر سکتے ہیں۔"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"جب آپ فیس اَنلاک اور فنگر پرنٹ اَن لاک کی خصوصیت سیٹ اپ کرتے ہیں تو آپ کے ماسک پہننے یا کسی تاریک جگہ پر موجود ہونے کی صورت میں آپ کا فون آپ کے فنگر پرنٹ کے لیے پوچھے گا۔\n\nواچ اَن لاک اس فون کو غیر مقفل کرنے کا ایک اور آسان طریقہ ہے، مثال کے طور پر، جب آپ کی انگلیاں گیلی ہوں یا چہرے کی شناخت نہ ہو پا رہی ہو۔"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"واچ اَن لاک اس فون کو غیر مقفل کرنے کا ایک اور آسان طریقہ ہے، مثال کے طور پر، جب آپ کے فنگر پرنٹ کی شناخت نہ ہو پا رہی ہو۔"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"واچ اَن لاک اس فون کو غیر مقفل کرنے کا ایک اور آسان طریقہ ہے، مثال کے طور پر، جب آپ کے چہرے کی شناخت نہ ہو پا رہی ہو۔"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"فنگر پرنٹ یا گھڑی استعمال کریں"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"چہرہ یا گھڑی استعمال کریں"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"چہرہ، فنگر پرنٹ یا گھڑی استعمال کریں"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چہرہ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چہرہ، فنگر پرنٹ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چہرہ، فنگر پرنٹس اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"اس کے کام کرنے کا طریقہ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"آپ کی گھڑی غیر مقفل، آپ کی کلائی پر اور اس فون کے قریب ہونی چاہیے۔ آپ کی گھڑی کے آپ کی کلائی پر ہونے پر آپ کو اسے دوبارہ غیر مقفل کرنے کی ضرورت نہیں ہوگی۔"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"اس فون کے غیر مقفل ہونے پر، آپ کو اپنی گھڑی پر مطلع کیا جائے گا۔ اگر یہ آپ کے نہ چاہنے پر بھی غیر مقفل تھا تو فون کو دوبارہ مقفل کرنے کے لیے اطلاع پر تھپتھپائیں۔"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"یہ سب آپ کے زیر کنٹرول ہے"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"آپ ترتیبات میں کسی بھی وقت واچ اَن لاک سے اپنی گھڑی کو ہٹا سکتے ہیں"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"اطلاع پر تھپتھپائیں"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"لاک اسکرین پر اوپر سوائپ کریں"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"اپنی گھڑی منتخب کریں"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"دستیاب گھڑیاں"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"منسوخ کریں"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"توثیق کریں"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"آپ پوری طرح سے تیار ہیں!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"جب آپ مقفل اسکرین پر اوپر سوائپ کرتے ہیں یا کسی اطلاع کو تھپتھپاتے ہیں تو اب آپ اس فون کو غیر مقفل کرنے کے لیے اپنی گھڑی کا استعمال کر سکتے ہیں"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ہو گیا"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"واچ اَن لاک"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"جب آپ مقفل اسکرین پر اوپر سوائپ کرتے ہیں یا کسی اطلاع کو تھپتھپاتے ہیں تو آپ اس فون کو غیر مقفل کرنے کے لیے اپنی گھڑی کا استعمال کر سکتے ہیں"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"واچ اَن لاک استعمال کرنے کے لیے، آپ کی گھڑی غیر مقفل، آپ کی کلائی پر، اس فون سے قریب اور اس سے منسلک ہونی چاہیے۔ اگر کنکشن میں خلل پڑتا ہے تو آپ کو واچ اَن لاک استعمال کرنے سے پہلے فون کو غیر مقفل کرنا ہوگا۔\n\nذہن میں رکھیں:\nآپ ایک وقت میں صرف ایک گھڑی سیٹ اپ کر سکتے ہیں۔ دوسری گھڑی شامل کرنے کے لیے، پہلے موجودہ گھڑی کو ہٹائیں۔"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"واچ اَن لاک کے بارے میں مزید جانیں"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"گھڑی شامل کریں"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"گھڑی ہٹائیں"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"فنگر پرنٹ اور فیس انلاک"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"کام کے لیے فیس اور فنگر پرنٹ اَن لاک"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"سیٹ اپ درکار ہے"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"سیکیورٹی"</string>
     <string name="privacy_header" msgid="5526002421324257007">"رازداری"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"دفتری پروفائل"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"نجی اسپیس"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"نجی ایپس کو مقفل اور پوشیدہ رکھیں"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"نجی ایپس کو الگ اسپیس میں رکھیں جنہیں آپ پوشیدہ یا مقفل کر سکتے ہیں"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"نجی اسپیس لاک"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"آپ نجی اسپیس کو اسی طرح غیر مقفل کر سکتے ہیں جس طرح آپ اپنے آلے کو غیر مقفل کرتے ہیں یا ایک مختلف قفل کا انتخاب سکتے ہیں"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"آلے کا اسکرین لاک استعمال کریں"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"چہرہ اور فنگر پرنٹ اَن لاک"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"فنگر پرنٹ اَن لاک"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"فیس اَنلاک"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"سیٹ اپ کرنے کیلئے تھپتھپائیں"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"پرائیویٹ اسپیس کے لیے فنگر پرنٹ اَن لاک"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"پرائیویٹ اسپیس کے لیے فیس اَنلاک"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"غیر مقفل کرنے کے طریقے"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"آلہ کے اسکرین لاک جیسا"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"نجی اسپیس کے لیے نیا لاک منتخب کریں؟"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"خودکار طور پر مقفل کریں"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"پرائیویٹ اسپیس کو خودکار طور پر مقفل کریں"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"آپ اپنی پرائیویٹ اسپیس کو خودکار طور پر مقفل کر سکتے ہیں اگر آپ نے اپنے آلے کو کچھ عرصے سے استعمال نہیں کیا ہے"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"ہر بار جب آلہ مقفل ہوتا ہے"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 منٹ کی غیرفعالیت کے بعد"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"کبھی نہیں"</string>
+    <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_deleted" msgid="7825768516955610897">"نجی اسپیس کامیابی کے ساتھ حذف ہو گئی"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"نجی اسپیس کو حذف نہیں کیا جا سکا"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"پرائیویٹ اسپیس غیر مقفل کی گئی"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"اسکرین لاک سیٹ کریں"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"اپنی نجی اسپیس استعمال کرنے کیلئے، اس آلہ پر اسکرین لاک سیٹ کریں"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"اسکرین لاک سیٹ کریں"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"منسوخ کریں"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"منسوخ کریں"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"سیٹ اپ کریں"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"نجی اسپیس سیٹ اپ کریں"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"نجی ایپس کو الگ اسپیس میں رکھیں جنہیں آپ پوشیدہ یا مقفل کر سکتے ہیں"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"اس کے کام کرنے کا طریقہ"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"آپ اپنی ایپس کی فہرست کے نچلے حصے سے اپنی نجی اسپیس تک رسائی حاصل کر سکتے ہیں"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"آپ کی نجی اسپیس میں موجود ایپس کو بذریعہ لاک محفوظ کیا جاتا ہے"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"آپ کی نجی اسپیس میں موجود ایپس کے مقفل ہونے پر ان کی اطلاعات پوشیدہ ہو جاتی ہیں"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"جب آپ کی نجی اسپیس مقفل ہوتی ہے تو آپ کی نجی اسپیس میں موجود ایپس اجازتوں کے مینیجر، پرائیویسی ڈیش بورڈ اور دیگر ترتیبات میں ظاہر نہیں ہوں گی۔\n\nآپ کی نجی اسپیس کو کسی نئے آلے پر منتقل نہیں کیا جا سکتا۔ اگر آپ اسے کسی دوسرے آلے پر استعمال کرنا چاہتے ہیں تو آپ کو ایک اور نجی اسپیس سیٹ اپ کرنے کی ضرورت ہوگی۔\n\nکوئی بھی جو آپ کے آلے کو کمپیوٹر سے منسلک کرتا ہے یا آپ کے آلے پر نقصان دہ ایپس انسٹال کرتا ہے وہ آپ کی نجی اسپیس تک رسائی حاصل کر سکتا ہے۔"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"نجی اسپیس سیٹ اپ کی جا رہی ہے…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"نجی اسپیس میں موجود ایپس کے مقفل ہونے پر ان کی اطلاعات پوشیدہ ہو جاتی ہیں"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"پرائیویٹ اسپیس ایپس سے تصاویر یا فائلز کا اشتراک کرنے کے لیے پرائیویٹ اسپیس کو غیر مقفل کریں"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"کچھ ایپس آپ کی نجی اسپیس میں پہلے سے ہی انسٹال ہیں"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"نجی اسپیس سیٹ اپ نہیں کی جا سکی"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"دوبارہ کوشش کریں"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"نجی اسپیس کو غیر مقفل کرنے کے لیے اسکرین لاک استعمال کریں؟"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"آپ نجی اسپیس کو اسی طرح غیر مقفل کر سکتے ہیں جس طرح آپ اپنے آلے کو غیر مقفل کرتے ہیں یا ایک مختلف لاک کا انتخاب کر سکتے ہیں"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"اسکرین لاک استعمال کریں"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"نیا قفل منتخب کریں"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"سب کچھ تیار ہے!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"اپنی نجی اسپیس تک رسائی حاصل کرنے کے لیے، اپنی ایپس کی فہرست پر جائیں پھر نیچے اسکرول کریں"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"ہو گیا"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"نجی اسپیس تلاش کرنے کے لیے نیچے اسکرول کریں"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"اپنی نجی جگہ کے لیے لاک کا انتخاب کریں"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"آپ اپنے فنگر پرنٹ کا استعمال کر کے اپنی نجی اسپیس کو غیر مقفل کر سکتے ہیں۔ سیکیورٹی کے مد نظر، اس اختیار کے لیے بیک اپ لاک درکار ہے۔"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"‏اپنی پرائیویٹ اسپیس کے لیے PIN سیٹ کریں"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"اپنی پرائیویٹ اسپیس کے لیے پاس ورڈ سیٹ کریں"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"اپنی پرائیویٹ اسپیس کے لیے پیٹرن سیٹ کریں"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"‏نجی اسپیس دکھانے کے لیے (حتمی UX نہیں)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"ترتیبات ایپ کھولیں"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"‏سیکیورٹی &amp; رازداری &gt; نجی اسپیس &gt; مقفل ہونے پر نجی اسپیس چھپائیں پر تھپتھپائیں"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"مقفل ہونے پر نجی اسپیس کو چھپائیں ٹوگل کو آف کریں"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"‏Googlers کے لیے نوٹ: اس خصوصیت کی ڈویلپمنٹ ابھی بھی پیشرفت میں ہے"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"آپ کو دیگر آلہ پر بھی اس پاس کلید کو ٹائپ کرنے کی ضرورت ہو سکتی ہے۔"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"مربوط سیٹ کے ساتھ جوڑا بنانے کی تصدیق کریں"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"اپنے رابطوں اور کال کی سرگزشت تک رسائی کی اجازت دیں"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"رابطوں اور کال کی سرگزشت تک رسائی کی بھی اجازت دیں"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"معلومات کو کال کے اعلانات اور مزید کے لیے استعمال کیا جائے گا"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> سے مربوط نہیں ہو سکا۔"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"دستیاب آلات"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"ہوائی جہاز وضع میں"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"عوامی نیٹ ورکس کیلئے مطلع کریں"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"جب اعلی معیاری عوامی نیٹ ورک دستیاب ہو مطلع کریں"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"‏WEP نیٹ ورکس کی اجازت دیں"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"‏WEP ایک پرانا سیکیورٹی پروٹوکول ہے جو کم محفوظ ہے"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"‏آپ کا کیریئر WEP نیٹ ورکس کی اجازت نہیں دیتا ہے کیونکہ وہ کم محفوظ ہیں"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"‏خود کار طور پر Wi‑Fi آن کریں"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"‏آپ کے ہوم نیٹ ورک کی طرح، اعلی معیاری محفوظ نیٹ ورکس کے قریب ہونے پر Wi‑Fi واپس آن ہو جائے گا۔"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"مقام آف ہونے کی وجہ سے غیر دستیاب ہے۔ "<annotation id="link">"مقام"</annotation>" آن کریں۔"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"‏Wi‑Fi کے آف ہونے پر بھی، Wi‑Fi اسکیننگ ایپس اور سروسز کو کسی بھی وقت Wi‑Fi نیٹ ورکس اسکین کرنے کی اجازت دیتی ہے۔ مثال کے طور، اسے مقام پر مبنی خصوصیات اور سروسز کو بہتر بنانے کیلئے استعمال کیا جا سکتا ہے۔"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"آن کریں"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"‏Wi‑Fi اسکیننگ آن ہے"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"یہ نیٹ ورک ایک پرانا سیکیورٹی پروٹوکول استعمال کرتا ہے جو کم محفوظ ہے"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> مسدود ہے"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"‏یہ نیٹ ورک ایک پرانا سیکیورٹی پروٹوکول استعمال کرتا ہے جسے WEP کہتے ہیں، جو کم محفوظ ہے۔ بہرحال منسلک ہونے کے لیے، آپ WEP نیٹ ورکس کو اجازت دے سکتے ہیں۔"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"آپ کا کیریئر آپ کو اس نیٹ ورک سے منسلک ہونے کی اجازت نہیں دیتا ہے کیونکہ یہ ایک پرانا سیکیورٹی پروٹوکول استعمال کرتا ہے جو کم محفوظ ہے"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"‏WEP کی اجازت دیں"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"بند کریں"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"جدید ترین اختیارات"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"ڈراپ ڈاؤن فہرست کے اعلی درجے کے اختیارات"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"پھیلائیں"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"‏Wi-Fi پر رہیں"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"دوبارہ کبھی نہ دکھائیں"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"منسلک کریں"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"‏Wi‑Fi کو آن کر دیا گیا"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"‫<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے منسلک کردہ"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے منسلک ہو رہا ہے"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"منسلک ہو رہا ہے…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"نیٹ ورک سے مربوط ہونے میں ناکام رہا"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"نیٹ ورک رینج میں نہیں ہے"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"بھول جائیں"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"ترمیم کریں"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"نیٹ ورک کو بھولنے میں ناکام ہوگیا"</string>
     <string name="wifi_save" msgid="2312643132472226807">"محفوظ کریں"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"نیٹ ورک محفوظ کرنے میں ناکام ہوگیا"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"منسوخ کریں"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"موبائل ڈیٹا"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"ایتھرنیٹ"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ چارج ہو رہی ہے"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ چارج ہو رہی ہے"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"ہاٹ اسپاٹ کنکشن"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"کنکشن کی مضبوطی"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"محفوظ کردہ نیٹ ورکس"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"کوئی پاس ورڈ سیٹ نہیں ہے"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"ہاٹ اسپاٹ کا نام"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"ہاٹ اسپاٹ کا پاس ورڈ"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"‏AP بینڈ"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"خودکار طور پر ہاٹ اسپاٹ آف کریں"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"جب کوئی آلات منسلک نہ ہوں"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"موافقت کی توسیع کریں"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"گیمز کیلئے ڈیفالٹ فریم ریٹ غیر فعال کریں"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"‏گیمز کے لیے زیادہ سے زیادہ فریم ریٹ کو ‎<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz پر محدود کرنے کو غیر فعال کریں۔"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"ہموار ڈسپلے"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"‏اسکرین پر توجہ کی خصوصیت یہ دیکھنے کے لیے سامنے والے کیمرے کا استعمال کرتی ہے کہ آیا کوئی اسکرین کو دیکھ تو نہیں رہا ہے۔ یہ آلہ پر کام کرتی ہے اور تصاویر کبھی بھی اسٹور نہیں کی جاتی ہیں اور نہ ہی Google کو بھیجی جاتی ہیں۔"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"اسکرین پر توجہ آن کریں"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"دیکھتے وقت اسکرین کو آن رکھیں"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"طویل اسکرین ٹائم آؤٹ زیادہ بیٹری استعمال کرے گا۔"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"کیمرا مقفل ہے"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"چہرے کی شناخت کیلئے کیمرا غیر مقفل ہونا ضروری ہے"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"اسکرین پر توجہ کے لیے کیمرا کو غیر مقفل کرنا ضروری ہے"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"‏IMEI (sim‎‎ سلاٹ <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)‎‎"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"‏IMEI (sim‎‎ سلاٹ <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>)‎‎ (بنیادی)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"دیکھنے کے لیے، محفوظ کردہ نیٹ ورک کا انتخاب کریں۔"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"‏PRL ورژن"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"بیٹری کی سطح"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"کمیونل"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"کمیونل ترتیبات"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"محفوظ کریں"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"منسوخ کریں"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"نام فیلڈ خالی نہیں رہ سکتی۔"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"‏APN خالی نہيں رہ سکتا۔"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"‏MCC فیلڈ میں لازمی طور پر 3 ہندسے ہونے چاہئیں۔"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"‏MNC فیلڈ میں لازمی طور پر 2 یا 3 ہندسے ہونے چاہئیں۔"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"‏کیریئر APNs کی قسم ‎%s‎ کو شامل کرنے کی اجازت نہیں دیتا ہے۔"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"‏MMSC فیلڈ کا درست ہونا ضروری ہے۔"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"‏ڈیفالٹ APN ترتیبات بحال ہو رہی ہیں۔"</string>
     <string name="menu_restore" msgid="4310539620115151551">"ڈیفالٹ پر دوبارہ ترتیب دیں"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"‏ڈیفالٹ APN ترتیبات کو دوبارہ ترتیب دینے کا عمل مکمل ہو گیا۔"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"ری سیٹ کریں"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"‏بلوٹوتھ اور Wi‑Fi کو ری سیٹ کر دیا گیا ہے"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"‏eSIMs مٹائیں"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"‏اس سے موبائل سروس کا کوئی بھی پلان منسوخ نہیں ہوگا۔ متبادل SIMs کو ڈاؤن لوڈ کرنے کے لیے، اپنے کیریئر سے رابطہ کریں۔"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"ترتیبات ری سیٹ کریں"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"نیٹ ورک کی سبھی ترتیبات ری سیٹ کریں؟ آپ اس کارروائی کو کالعدم نہیں کر سکتے ہیں۔"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"‏نیٹ ورک کی تمام ترتیبات کو ری سیٹ کریں اور eSIMs کو مٹائیں؟ آپ اس کاروائی کو کالعدم نہیں کر سکتے ہیں۔"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"ری سیٹ کریں؟"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"اس صارف کیلئے نیٹ ورک کو دوبارہ ترتیب دینا دستیاب نہیں ہے"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"نیٹ ورک کی ترتیبات کو دوبارہ ترتیب دیا گیا ہے"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"‏SIMs کو نہیں مٹا سکتے"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"‏ایک خرابی کی وجہ سے eSIMs کو مٹایا نہیں جا سکتا ہے۔\n\nاپنا آلہ ری اسٹارٹ کریں اور دوبارہ کوشش کریں۔"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"سبھی ڈیٹا کو حذف کریں (فیکٹری ری سیٹ)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"سبھی ڈیٹا کو حذف کریں (فیکٹری ری سیٹ)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"موسیقی"</li>\n<li>"تصاویر"</li>\n<li>"صارف کا دیگر ڈیٹا"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIMs"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"اس سے آپ کے موبائل سروس کا پلان منسوخ نہیں ہوگا۔"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"آپ کی سبھی ذاتی معلومات اور ڈاؤن لوڈ کردہ ایپس کو حذف کر دیا جائے گا۔ آپ اس کاروائی کو کالعدم نہیں کر سکتے ہیں۔"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"‏ڈاؤن لوڈ کردہ ایپس اور SIMs سمیت آپ کی سبھی ذاتی معلومات کو حذف کر دیا جائے گا۔ آپ اس کاروائی کو کالعدم نہیں کر سکتے ہیں۔"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"سبھی ڈیٹا صاف کریں؟"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"اس صارف کیلئے فیکٹری ری سیٹ دستیاب نہیں ہے"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"صاف ہو رہا ہے"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"‏ہاٹ اسپاٹ، USB، بلوٹوتھ، ایتھرنیٹ"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"دیگر آلات کے ساتھ انٹرنیٹ کا اشتراک نہیں ہو رہا ہے"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"آف"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"ٹیدرنگ"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"‏Wi-Fi ہاٹ اسپاٹ کا استعمال نہ کریں"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"‏USB کے ذریعے صرف انٹرٹیٹ کا اشتراک کریں"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"بلوٹوتھ کے ذریعے صرف انٹرنیٹ کا اشتراک کریں"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"ایتھرنیٹ کے ذریعے صرف انٹرنیٹ کا اشتراک کریں"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"‏USB اور بلوٹوتھ کے ذریعے صرف انٹرنیٹ کا اشتراک کریں"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"‏USB اور ایتھرنیٹ کے ذریعے صرف انٹرنیٹ کا اشتراک کریں"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"بلوٹوتھ اور ایتھرنیٹ کے ذریعے صرف انٹرنیٹ کا اشتراک کریں"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"‏USB بلوٹوتھ اور ایتھرنیٹ کے ذریعے صرف انٹرنیٹ کا اشتراک کریں"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"‏USB ٹیدرنگ"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"بلوٹوتھ ٹیدرنگ"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"ایتھرنیٹ ٹیدرنگ"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"‏اپنے Wi‑Fi یا موبائل ڈیٹا کنکشن کے ذریعے دیگر آلات کو انٹرنیٹ فراہم کرنے کے لیے ہاٹ اسپاٹ اور ٹیدرنگ کا استعمال کریں۔ ایپس بھی قریبی آلات کے ساتھ مواد کا اشتراک کرنے کے لیے ایک ہاٹ اسپاٹ تخلیق کر سکتی ہیں۔"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"مدد"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"موبائل نیٹ ورک"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"موبائل پلان"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"‏SMS ایپ"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"‏SMS ایپ تبدیل کریں؟"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"‏اپنے SMS ایپ بطور <xliff:g id="CURRENT_APP">%2$s</xliff:g> کے بجائے <xliff:g id="NEW_APP">%1$s</xliff:g> کو استعمال کریں؟"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"‏Wi‑Fi اسسٹنٹ تبدیل کریں؟"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="CURRENT_APP">%2$s</xliff:g> کے بجائے <xliff:g id="NEW_APP">%1$s</xliff:g> کا استعمال کریں؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"اپنے نیٹ ورک کنکشنز کا نظم کرنے کیلئے <xliff:g id="NEW_APP">%s</xliff:g> کا استعمال کریں؟"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"‏نامعلوم SIM آپریٹر"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> کے پاس کوئی معلوم پرووژننگ ویب سائٹ نہیں ہے"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"‏براہ کرم SIM کارڈ داخل کرکے دوبارہ شروع کریں"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"براہ کرم انٹرنیٹ سے مربوط کریں"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"حالیہ مقام کی درخواستیں"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"دفتری پروفائل کیلئے مقام"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"ایپ کے لیے مقام کی اجازتیں"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"رسائی صاف کریں"</string>
     <string name="controls_label" msgid="8671492254263626383">"کنٹرولز"</string>
     <string name="force_stop" msgid="2681771622136916280">"زبردستی روکیں"</string>
+    <string name="archive" msgid="9074663845068632127">"آرکائیو کریں"</string>
+    <string name="restore" msgid="7622486640713967157">"بحال کریں"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"کُل"</string>
     <string name="application_size_label" msgid="6407051020651716729">"ایپ سائز"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"‏USB اسٹوریج ایپ"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"پیکیج سائز کا حساب نہیں لگایا جا سکا۔"</string>
     <string name="version_text" msgid="7628938665256107608">"ورژن <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"منتقل کریں"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"آرکائیو کرنے کا عمل ناکام ہو گیا"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> آرکائیو کی گئی"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"بحالی ناکام ہو گئی"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> کو بحال کیا جا رہا ہے"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"ایک منتقلی پہلے سے پیشرفت میں ہے۔"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"اسٹوریج کی کافی جگہ نہیں ہے۔"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"ایپ موجود نہیں ہے۔"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"آن اسکرین کی بورڈ دستیاب ہے"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"آن اسکرین کی بورڈز کا نظم کریں"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"اختیارات"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"ایکسیسبیلٹی"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"فزیکل کی بورڈ"</string>
     <string name="show_ime" msgid="4334255501724746849">"آن اسکرین کی بورڈ کا استعمال کریں"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"جب فزیکل کی بورڈ فعال ہو تو اس کو اسکرین پر رکھیں"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"باؤنس کلیدیں"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"فزیکل کی بورڈ ایکسیسبیلٹی کے لیے باؤنس کلیدوں کو فعال کریں"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"دبی رہنے والی کلیدیں"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"فزیکل کی بورڈ ایکسیسبیلٹی کے لیے دبی رہنے والی کلیدیں فعال کریں"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"کی بورڈ شارٹ کٹس"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"شارٹ کٹس کی فہرست دکھائیں"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"دفتری پروفائل کے کی بورڈز اور ٹولز"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"استعمال کے وقت کے لحاظ سے ترتیب دیں"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"آخری بار استعمال کردہ کے لحاظ سے ترتیب دیں"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"ایپ کے نام کے لحاظ سے ترتیب دیں"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"آخری بار استعمال کردہ"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"آخری بار استعمال کردہ"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"کبھی نہیں"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"استعمال کا وقت"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"ایکسیسبیلٹی"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"ایکسیسبیلٹی ترتیبات"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"بہر حال جاری رکھیں"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"منسوخ کریں"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"میگنیفکیشن کی ترتیبات"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"تین بار تھپتھپا کر بڑا کریں"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"شارٹ کٹ سے بڑا کریں"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"شارٹ کٹ اور تین بار تھپتھپانے سے بڑا کریں"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> کے بارے میں"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"کھولنے کے لیے دو انگلیوں سے دو بار تھپتھپانے والی اسکرین"</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="860548190334486449">"میگنیفکیشن شروع یا اسٹاپ کرنے کے لیے، اپنی اسکرین پر کہیں بھی دو انگلیوں سے دو بار تھپتھپائیں۔"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"ایکسیسبیلٹی خصوصیت استعمال کرنے کیلئے، 3 انگلیوں سے اسکرین کے نیچے سے اوپر کی طرف سوائپ کریں۔\n\nخصوصیات کے درمیان سوئچ کرنے کے لیے، 3 انگلیوں سے اوپر کی طرف سوائپ کریں اور دبائے رکھیں۔"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"سمجھ آ گئی"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"ایکسیسبیلٹی بٹن کی ترتیبات"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"بٹن کی ترتیبات"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> شارٹ کٹ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"ایکسیسبیلٹی بٹن"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"ایکسیسبیلٹی کا اشارہ"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"دو انگلیوں سے دو بار تھپتھپانے والی اسکرین"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"دو انگلیوں سے دو بار تھپتھپانے والی اسکرین"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"‏دو انگلیوں سے اسکرین پر تیزی سے {0,number,integer} بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"اسکرین پر تین بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"اسکرین پر تین بار تھپتھپائیں"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"‏اسکرین پر فوری طور پر {‎0,number,integer} بار تھپتھپائیں۔ اس شارٹ کٹ سے آپ کا آلہ سست ہو سکتا ہے"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"ایکسیسبیلٹی بٹن اور اشارہ کے بارے میں مزید جانیں"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"ایکسیسبیلٹی بٹن کا استعمال کرنا۔ 3 بٹن والی نیویگیشن کے ساتھ اشارہ دستیاب نہیں ہوتا ہے۔"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"تیزی سے ایکسیسبیلٹی خصوصیات تک رسائی حاصل کریں"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"شروع کرنے کیلئے"</b>\n"1۔ ایکسیسبیلٹی کی ترتیبات پر جائیں\n2۔ کوئی خصوصیت منتخب کریں اور شارٹ کٹ پر تھپتھپائیں\n3۔ منتخب کریں کہ آیا آپ خصوصیت تک رسائی حاصل کرنے کیلئے بٹن یا اشارے کا استعمال کرنا چاہتے ہیں"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"شروع کرنے کے لیے"</b>\n"1۔ ایکسیسبیلٹی کی ترتیبات پر جائیں\n2۔ کوئی خصوصیت منتخب کریں اور شارٹ کٹ پر تھپتھپائیں\n3۔ خصوصیت تک رسائی حاصل کرنے کے لیے بٹن کا انتخاب کریں"</string>
+    <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_size_title" msgid="5785110470538960881">"سائز"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"پاور بٹن سے کال ختم ہو جاتی ہے"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"بڑا ماؤس پوائنٹر"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"ماؤس پوائنٹر کو زیادہ قابل توجہ بنائیں"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"سبھی ایپس کو گہری بنائیں"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"بغیر گہری تھیم والی ایپس پر اطلاق ہوتا ہے۔ کچھ ایپس میں ڈسپلے کے مسائل ہو سکتے ہیں، جیسے الٹے رنگ۔"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"اینیمیشنز ہٹائیں"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"اسکرین پر حرکت کو کم کریں"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"مونو آڈیو"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"یہ کسی ایپ یا ہارڈویئر سینسر کے ساتھ آپ کے تعاملات کو ٹریک کر سکتا ہے، اور آپ کی طرف سے ایپس کے ساتھ تعامل کر سکتا ہے۔"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"اجازت دیں"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"مسترد کریں"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"روکیں"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"منسوخ کریں"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> روکیں؟"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="STOP">%1$s</xliff:g> پر تھپتھپانے سے <xliff:g id="SERVICE">%2$s</xliff:g> اسٹاپ ہو جائے گی۔"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"آف کریں"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"آن رکھیں"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> آف کریں؟"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"کوئی سروسز انسٹال کردہ نہيں ہیں"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"کوئی سروس منتخب نہیں ہے"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"کوئی تفصیل فراہم نہيں کی گئی۔"</string>
     <string name="settings_button" msgid="2195468788019730377">"ترتیبات"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"لائٹ کی حساسیت، فوٹو فوبیا، گہری تھیم، آدھے سر کا درد، پڑھنے کا موڈ، نائٹ موڈ، چمک کو کم کریں، سفید پوائنٹ"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"استعمال میں آسان، رسائی حاصل کرنے میں آسان، معاون، مددگار"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"بصارت، سماعت، اندھا، بہرا، موٹر، مہارت، معاون، مدد، استعمال میں آسانی، رسائی میں آسانی، ہاتھ، مدد"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"ونڈو میگنیفائر، زوم، میگنیفکیشن، کم وژن، بڑا کرنا، سائز بڑھانا"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"کیپشنز، سب ٹائٹلز، سب ٹائٹلز، لائیو ٹرانسکرائب، اونچا سننے والا، سننے میں دشواری، کارٹ، اسپیچ ٹو ٹیکسٹ، ذیلی عنوان"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"رنگ کنٹراسٹ"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"اعصاب کی حرکی سرگرمی سے متعلق مہارتیں، ماؤس"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"سماعتی آلات، اونچا سننے والا، سننے میں دشواری، کوکلیئر امپلانٹس، ایمپلیفیکیشن آلات، ساؤنڈ پروسیسرز"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"موٹر، ماؤس، بیرونی ماؤس، ہیڈ ماؤس، اڈاپٹیو ماؤس، وہیل چیئر، جوائے اسٹک"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"‏سماعتی آلات، اونچا سننے والا، سننے میں دشواری، کوکلیئر امپلانٹس، ایمپلیفیکیشن آلات، ساؤنڈ پروسیسرز، PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"اونچا سننے والا، سننے میں دشواری، کیپشنز، ٹیلی ٹائپ، ٹیلی ٹائپ رائٹر"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"تین بٹنز"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"مہارت، موٹر، سینئر، وجمع المفاصل، آر ایس آئی، اسٹروک، رَعشہ، مضاعفِ تصلب، دماغی فالج، ارتعاش، بار بار اعصاب کی کھچھاؤ، ہاتھ"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"تاخیر، مہارت، سینئر"</string>
     <string name="print_settings" msgid="8519810615863882491">"پرنٹنگ"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"آف"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 پرنٹ سروس آن ہے}other{# پرنٹ سروسز آن ہیں}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"سب سے زیادہ بیٹری استعمال کرنے والی ایپس دیکھیں"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"آپ کی بیٹری کی حفاظت کے لیے چارجنگ کو بہتر بنایا گیا"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"آپ کی بیٹری کی عمر بڑھانے میں مدد کے لیے چارجنگ کو بہتر بنایا گیا"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"آپ کی بیٹری کی حفاظت کے لیے چارجنگ کو بہتر بنایا گیا"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"آپ کی بیٹری کی عمر بڑھانے میں مدد کے لیے ڈاک ہونے کے دوران چارجنگ کو بہتر بنایا گیا"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"آپ کی بیٹری کی حفاظت کے لیے چارجنگ کو بہتر بنایا گیا"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"آپ کی بیٹری کی عمر بڑھانے میں مدد کے لیے ڈاک ہونے کے دوران چارجنگ کو بہتر بنایا گیا"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"مکمل چارج کرنا"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"آپ کی بیٹری کی حفاظت کرنے کے لیے، اگلی بار آپ کے ٹیبلیٹ کے ڈاک ہونے پر چارجنگ کو بہتر بنایا جائے گا"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"چارجنگ کے موقوف ہونے سے متعلق مزید جانیں"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"چارج کرنا دوبارہ شروع کریں"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"اس میں زیادہ پاور والی پس منظر کی سرگرمی شامل ہے"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"ہٹائیں"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"منسوخ کریں"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"مکمل چارج کریں"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"چارجنگ ایکسیسری کے ساتھ مسئلہ"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"غیر موافق چارجنگ کے بارے میں مزید جانیں"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"بیٹری مینیجر"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"خودکار طور پر ایپس کا نظم کریں"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"ابھی"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"بیٹری کے استعمال کا چارٹ"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"یومیہ بیٹری کے استعمال کا چارٹ"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"فی گھنٹہ بیٹری کے استعمال کا چارٹ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> سے <xliff:g id="END_PERCENTAGE">%2$s</xliff:g> تک بیٹری لیول کا فیصد"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"پچھلے مکمل چارج کے بعد سے بیٹری کا استعمال"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"‫<xliff:g id="SLOT">%s</xliff:g> کے لیے بیٹری کا استعمال"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"پچھلے مکمل بیٹری چارج کے بعد سے اسکرین کا وقت"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"ایمرجنسی ڈائلنگ سگنل"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"ایمرجنسی کال کرتے وقت برتاؤ سیٹ کریں"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"بیک اپ"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"آن"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"آف"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"بیک اپ لیں اور بحال کریں"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"ذاتی ڈیٹا"</string>
     <string name="backup_data_title" msgid="507663517227498525">"میرے ڈیٹا کا بیک اپ لیں"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"نام"</string>
     <string name="vpn_type" msgid="5533202873260826663">"قسم"</string>
     <string name="vpn_server" msgid="2908816134941973935">"سرور کا پتہ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"‏PPP مرموز کاری (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"‏L2TP راز"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"‏IPSec شناخت کنندہ"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"‏IPSec پہلے سے اشتراک کردہ کلید"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"‏IPSec صارف سرٹیفیکیٹ"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"‏IPSec CA سرٹیفیکیٹ"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"‏IPSec سرور سرٹیفیکیٹ"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"جدید ترین اختیارات دکھائیں"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"‏DNS تلاش ڈومینز"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"‏DNS سرورز (مثلاً 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"فارورڈنگ روٹس (مثلاً 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"صارف نام"</string>
     <string name="vpn_password" msgid="1183746907642628127">"پاس ورڈ"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"اکاؤنٹ کی معلومات کو محفوظ کریں"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(استعمال نہیں ہوا)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(سرور کی توثیق نہ کریں)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(سرور سے موصول ہوا)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"‏اس قسم کا VPN ہر وقت منسلک نہیں رہ سکتا"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"‏ہمیشہ آن VPN صرف عددی سرور کے پتوں کو سپورٹ کرتا ہے"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"‏ہمیشہ آن VPN کیلئے DNS سرور کا تعین ہونا ضروری ہے"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"‏ہمیشہ آن VPN کیلئے DNS سرور پتوں کا عددی ہونا ضروری ہے"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"‏درج شدہ معلومات ہمیشہ آن VPN کو سپورٹ نہیں کرتی ہیں"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"منسوخ کریں"</string>
     <string name="vpn_done" msgid="5137858784289564985">"برخاست کریں"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"‏بنا VPN والے کنکشنز کو مسدود کریں"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"‏VPN کنکشن درکار ہے؟"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"‏محفوظ نہیں ہے۔ IKEv2 VPN میں اپ ڈیٹ کریں"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"‏غیر تعاون یافتہ VPN شروع کرنے میں ناکام۔"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"‏ہمیشہ مربوط رہنے کیلئے ایک VPN پروفائل منتخب کریں۔ صرف اس VPN سے مربوط ہونے پر ہی نیٹ ورک ٹریفک کی اجازت ہو گی۔"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"کوئی نہیں"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"‏ہمیشہ آن VPN کو سرور اور DNS دونوں کیلئے ایک IP پتہ کی ضرورت ہے۔"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"‏AMBER الرٹس"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"بچوں کے اغوا کے بارے میں بلیٹنز وصول کریں"</string>
     <string name="repeat_title" msgid="8676570486899483606">"دہرائیں"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"کال مینیجر فعال کریں"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"اس سروس کو اپنی کالز کیے جانے کے طریقے کا نظم کرنے کی اجازت دیں۔"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"کال مینیجر"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"وائرلیس ایمرجنسی الرٹس"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"نیٹ ورک آپریٹرز"</string>
     <string name="access_point_names" msgid="5768430498022188057">"رسائی کی جگہ کا نام"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"والٹ"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"ادائیگی کریں، تھپتھپائیں، ادائیگیاں"</string>
     <string name="keywords_backup" msgid="707735920706667685">"بیک اپ، بیک اپ لیں"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"اشارہ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"فیس، اَنلاک، اجازت دینا، سائن ان"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"چہرہ، غیر مقفل، توثیق، سائن ان، فنگر پرنٹ، بایومیٹرک"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"‏imei, meid, min, prl ورژن، imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"آوازیں آن کریں"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"لائیو کیپشن"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"خودکار طور پر میڈیا پر کیپشن لگائیں"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"فون کے اسپیکرز"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"ٹیبلیٹ کے اسپیکرز"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"آلے کے اسپیکرز"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"تار والے ہیڈ فونز"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"موافق میڈیا سے آڈیو کا مزید دلچسپ تجربہ فراہم ہوتا ہے"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"آف ہے"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"حالیہ گفتگوئیں ہٹا دی گئیں"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"گفتگو ہٹا دی گئی"</string>
     <string name="clear" msgid="5092178335409471100">"صاف کریں"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g> مٹائیں"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"ترجیحی اور ترمیم شدہ گفتگوئیں یہاں ظاہر ہوں گی"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"ایک بار جب آپ کسی گفتگو کو بطور ترجیحی نشان زد کرتے ہیں یا گفتگوؤں میں کوئی دوسری تبدیلی کرتے ہیں تو وہ یہاں ظاہر ہوں گی۔ \n\n گفتگو کی ترتیبات کو تبدیل کرنے کے ليے: \nپُل ڈاؤن شیڈ کھولنے کے ليے اسکرین کے اوپری حصے سے نیچے کی طرف سوائپ کریں پھر گفتگو کو ٹچ کریں اور دبائے رکھیں۔"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"کم کریں"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"آف ہے"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"ایپ کو پن کرنا"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"ایپ کو پن کرنے سے آپ کو حالیہ ایپ سے پن ہٹانے تک اسے منظر میں رکھنے کی اجازت ہوتی ہیں۔ اس خصوصیت کا استعمال کیا جا سکتا ہے مثال کے طور پر، کسی بھروسے مند دوست کو ایک مخصوص گیم کھیلنے کی اجازت دینا۔"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"کسی ایپ کو پن کرنے پر پن کردہ ایپ دیگر ایپس کو کھول سکتی ہے اور ذاتی ڈیٹا قابل رسائی ہو سکتا ہے۔ \n\nایپ کو پن کرنا استعمال کرنے کے لیے: \n1۔ ایپ کو پن کرنا آن کریں \n2۔ مجموعی جائزہ کھولیں \n3۔ اسکرین کے اوپری حصے پر ایپ آئیکن پر تھپتھپائیں پھر \'پن کریں\' پر تھپتھپائیں"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"کسی ایپ کو پن کرنے پر پن کردہ ایپ دیگر ایپس کو کھول سکتی ہے اور ذاتی ڈیٹا قابل رسائی ہو سکتا ہے۔ \n\nاگر آپ محفوظ طریقے سے اپنے آلے کا کسی کے ساتھ اشتراک کرنا چاہتے ہیں تو اس کے بجائے مہمان صارف استعمال کر کے آزمائیں۔ \n\nایپ کو پن کرنا استعمال کرنے کے ليے: \n1۔ ایپ کو پن کرنا آن کریں \n2۔ مجموعی جائزہ کھولیں \n3۔ اسکرین کے اوپری حصے پر ایپ آئیکن پر تھپتھپائیں پھر \'پن کریں\' پر تھپتھپائیں"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"اگر غیر استعمال شدہ ہے تو ایپ کا نظم کریں"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"اجازتیں ہٹائیں، عارضی فائلوں کو حذف کریں، اطلاعات کو روکیں اور ایپ کو آرکائیو کریں"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"سبھی ایپس"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"انسٹال کردہ ایپس"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"فوری ایپس"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"خالی"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"ایپس کی جانب سے استعمال کردہ میموری"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 ایپ نے آخری {time} میں میموری کا استعمال کیا}other{# ایپس نے آخری {time} میں میموری کا استعمال کیا}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"میموری کے استعمال کی پروفائلنگ فعال کریں"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"میموری کے استعمال کی پروفائلنگ کے لیے سسٹم کے اضافی وسائل کی ضرورت ہوتی ہے۔"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"میموری کی پروفائلنگ کو غیر فعال کر دیا گیا"</string>
     <string name="running_frequency" msgid="7260225121706316639">"فریکوئنسی"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"زیادہ سے زیادہ استعمال"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"کوئی ڈیٹا استعمال نہیں ہوا"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"دیگر ایپس پر ڈسپلے کریں"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"دیگر ایپس پر ڈسپلے کی اجازت دیں"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"اپنی زیر استعمال دیگر ایپس کے اوپر اس ایپ کو ڈسپلے ہونے کی اجازت دیں۔ یہ ایپ دیکھ سکتی ہے جہاں آپ تھپتھپاتے ہیں یا اسکرین پر دکھائے جانے والی چیزوں کو تبدیل کر سکتی ہے۔"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"میڈیا آؤٹ پٹ کو تبدیل کریں"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"ایپ کو میڈیا آؤٹ پٹ سوئچ کرنے کی اجازت دیں"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"اس ایپ کو یہ منتخب کرنے کی اجازت دیں کہ کون سا منسلک آلہ دوسری ایپس سے آڈیو یا ویڈیو چلائے۔ اجازت دینے پر، یہ ایپ دستیاب آلات کی فہرست تک رسائی حاصل کر سکتی ہے جیسے کہ ہیڈ فونز اور اسپیکرز اور منتخب کر سکتی ہے کہ کون سا آؤٹ پٹ آلہ آڈیو یا ویڈیو کو کی سلسلہ بند کرنے یا کاسٹ کرنے کے لیے استعمال کیا جائے۔"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"سبھی فائلز کی رسائی"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"آواز کی فعالیت کو بہتر بنائیں"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"یہ آلہ آواز کی فعالیت کے ماڈل کو بہتر بنانے کے لیے نجی ذہانت کا استعمال کرتا ہے۔ ایپس خلاصہ شدہ اپ ڈیٹس حاصل کر سکتی ہیں جو کہ بہت سے صارفین کے درمیان جمع کی جاتی ہیں تاکہ ہر ایک کے لیے ماڈل کو بہتر بناتے ہوئے رازداری کو برقرار رکھا جا سکے۔\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ڈیٹا وارننگ"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ڈیٹا کی حد"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ڈیٹا وارننگ / <xliff:g id="ID_2">^2</xliff:g> ڈیٹا کی حد"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"کیریئر ڈیٹا کا حساب آپ کے آلہ کے حساب سے مختلف ہو سکتا ہے"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"کیریئر نیٹ ورکس کے ذریعے استعمال کردہ ڈیٹا شامل نہیں ہے"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> استعمال ہوا"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"ڈیٹا وارننگ سیٹ کریں"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> پہلے اپ ڈیٹ کیا گيا"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> نے ابھی ابھی اپ ڈیٹ کیا"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"ابھی ابھی اپ ڈیٹ کیا گيا"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"پلان دیکھیں"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"تفاصیل دیکھیں"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"ڈیٹا سیور"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"غیر محدود ڈیٹا"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"بیٹری کا غیر معمولی استعمال"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"فوری ترتیبات کے ڈویلپر ٹائلز"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‏adb اجازت دہندگی کے ٹائم آؤٹ کو غیر فعال کریں"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"‏ان سسٹمز کے لیے adb کی اجازت دہندگیوں کی منسوخی کو خود کار طور پر غیر فعال کریں جو ڈیفالٹ (7 دن) یا صارف کے ترتیب کردہ (کم از کم 1 دن) وقت کی تعداد کے اندر دوبارہ منسلک نہیں ہوئی۔"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"‏Winscope ٹریس"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"سینسرز آف ہیں"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"دفتری پروفائل کی ترتیبات"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"ذاتی ایپس میں دفتری ڈائریکٹری کے رابطے تلاش کریں"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"آٹو فل سروس"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"ڈیفالٹ آٹو فِل سروس"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"پاس ورڈز"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"اضافی فراہم کنندگان"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# پاس ورڈ}other{# پاس ورڈز}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"خودکار، فل، آٹو فل، پاس ورڈ"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"ڈیٹا، پاس کی، پاس ورڈ"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"آٹو، فل، آٹو فل، ڈیٹا، پاس کی، پاس ورڈ"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"‏&lt;b&gt;Turn off all services?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; آپ کے سائن ان کرنے پر پاس ورڈز، پاس کیز اور دیگر محفوظ کردہ معلومات آٹو فل کے لیے دستیاب نہیں ہوں گی"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"‏&lt;b&gt;اپنی ترجیحی سروس کو &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; میں تبدیل کریں، نئے پاس ورڈز، پاس کیز اور دیگر معلومات اب سے یہاں محفوظ کی جائیں گی۔ &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; آپ کی اسکرین پر موجود چیزوں کا استعمال کر سکتا ہے تاکہ یہ تعین کیا جا سکے کہ کیا آٹو فل ہو سکتا ہے"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"‏%1$s کا استعمال کرنا ہے؟"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"آپ صرف 5 سروسز آن کر سکتے ہیں"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"دوسری سروس شامل کرنے کے لیے کم از کم 1 سروس آف کریں"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"‏%1$s آپ کی اسکرین پر موجود چیزوں کا استعمال یہ تعین کرنے کے لیے کرتا ہے کہ کیا آٹو فل کیا جا سکتا ہے۔"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز کی حد"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"آپ ایک وقت میں 5 پاس ورڈز، پاس کیز اور ڈیٹا سروسز فعال رکھ سکتے ہیں۔ مزید شامل کرنے کے لیے سروس کو آف کریں۔"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز کی حد"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"آپ ایک وقت میں 5 پاس ورڈز، پاس کیز اور ڈیٹا سروسز فعال رکھ سکتے ہیں۔ مزید شامل کرنے کے لیے سروس کو آف کریں۔"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"آف کریں"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"آٹو فل"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"لاگنگ کی سطح"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"ایپ کی موافقت کی تبدیلیاں صرف قابل ڈیبگ اپپس کے لیے ہی ترمیم کی جا سکتی ہیں۔ قابل ڈیبگ ایپ انسٹال کریں اور دوبارہ کوشش کریں۔"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"دوسری ترتیب پر منحصر ہے"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"اکاؤنٹ"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"‏‎%d اکاؤنٹس"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"آلے کا نام"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"بنیادی معلومات"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"قانونی اور ریگولیٹری"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"‏NFC ٹیگ اسکین ہونے پر اس ایپ کو شروع ہونے کی اجازت دیں۔\nاگر یہ اجازت آن ہوتی ہے تو ٹیگ کا پتا چلنے پر ایپ ایک اختیار کے طور پر دستیاب ہوگی۔"</string>
     <string name="media_output_title" msgid="8283629315159510680">"اس پر میڈیا چلائیں"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"‫<xliff:g id="LABEL">%s</xliff:g> اس پر چلائیں"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"آڈیو چلتی رہے گی"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"یہ آلہ"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"کالز کے دوران غیر دستیاب"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"اس کے ذریعے کال موصول کریں"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"خاموش کریں"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"فعال کرنے کے لیے، پہلے \"پاور بٹن کو چھوئیں اور دبائے رکھیں\" کو پاور مینیو میں تبدیل کریں۔"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"نیٹ ورک کی تفصیلات"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"‏آپ کے آلے کا نام آپ کے فون پر موجود ایپس میں دکھائی دیتا ہے۔ آپ کے بلوٹوتھ آلات سے منسلک ہونے، Wi-Fi نیٹ ورک سے منسلک ہونے یا Wi-Fi ہاٹ اسپاٹ کو سیٹ اپ کرنے پر دوسرے لوگ بھی اسے دیکھ سکتے ہیں۔"</string>
     <string name="devices_title" msgid="649715719278562515">"آلات"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"نیٹ ورک کا انتخاب کریں"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"غیر منسلک"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"نام"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"(موافق ایپس کے ذریعے استعمال کردہ) رنگ"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"محفوظ کریں"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"‏SIM کا استعمال کریں"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"‏اس SIM کا استعمال کریں"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"آف"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"‏اس SIM کو غیر فعال کرنے کے لیے، SIM کارڈ ہٹائيں"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"‫<xliff:g id="CARRIER">%1$s</xliff:g> فعال کرنے کے لیے تھپتھپائیں"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"‏SIM مٹائیں"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"ترجیحی نیٹ ورک کی قسم"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"نیٹ ورک آپریٹ کرنے کی وضع تبدیل کریں"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"ترجیحی نیٹ ورک کی قسم"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"اپنے نیٹ ورک فراہم کنندہ سے قیمت معلوم کریں۔"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"ایپ ڈیٹا کا استعمال"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"غلط نیٹ ورک موڈ <xliff:g id="NETWORKMODEID">%1$d</xliff:g>۔ نظر انداز کریں۔"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"رسائی کی جگہ کے نام"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> سے منسلک ہونے پر دستیاب نہیں ہے"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"‫<xliff:g id="CARRIER_NAME">%1$s</xliff:g> پر سوئچ کریں؟"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"‏SIM کارڈ استعمال کرنے کے لیے سوئچ کریں؟"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> کا استعمال کریں؟"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"‏ایک وقت میں صرف ایک SIM فعال ہو سکتی ہے۔\n\n‫<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> پر سوئچ کرنے سے آپ کے <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> کی سروس منسوخ نہیں ہو گی۔"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"‏ایک وقت میں صرف 1 eSIM فعال ہو سکتا ہے۔\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> پر سوئچ کرنے سے آپ کی <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> سروس منسوخ نہیں ہوگی۔"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"‏ایک وقت میں صرف ایک SIM فعال ہو سکتی ہے۔\n\nسوئچ کرنے سے آپ کے <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> کی سروس منسوخ نہیں ہوگی۔"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"‏آپ ایک وقت میں 2 SIM کا استعمال کر سکتے ہیں۔ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> کا استعمال کرنے کے لیے، دوسری SIM آف کریں۔"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"‫<xliff:g id="CARRIER_NAME">%1$s</xliff:g> پر سوئچ کریں"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> آف کریں"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"نہیں شکریہ"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"منسوخ کریں"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"سوئچ کریں"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"آف کریں"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"‏SIM کو فعال نہیں کیا جا سکتا"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"‏SIM کو دوبارہ آن کرنے کی کوشش کریں۔ مسئلے کے برقرار رہنے پر اپنا آلہ ری اسٹارٹ کریں۔"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"‏اپنا SIM سیٹ اپ کریں"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"‏اس آلے پر متعدد SIMs کا استعمال کرنے کے لیے اپنے موبائل نیٹ ورک کی ترجیحات سیٹ کریں"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"‏اپنے SIMs پر لیبل لگائیں"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"آپ کو یہ لیبلز کال کرنے، ٹیکسٹ بھیجنے، ڈیٹا کا استعمال کرنے پر اور ترتیبات میں نظر آئیں گے"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"‏SIM لیبل"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"لیبل"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"‏منتخب کریں کہ کون سا SIM استعمال کرنا ہے"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"‏آپ ایک وقت میں 2 SIM کا استعمال کر سکتے ہیں"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"‏اپنے بنیادی SIMs سیٹ کریں"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"‏منتخب کریں کہ کالز، ٹیکسٹس اور ڈیٹا کے لیے بطور ڈیفالٹ کون سا SIM استعمال کرنا ہے"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"‏آپ کے بنیادی SIMs"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"کالز"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"ٹیکسٹس"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"خودکار طور پر ڈیٹا سوئچ کرنا"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"‏کوریج اور دستیابی کے لحاظ سے کسی بھی SIM سے ڈیٹا کا استعمال کریں"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"صرف ڈیٹا"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"سیٹ اپ کریں"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"آگے جائیں"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"موبائل نیٹ ورک"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"فون نمبر"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"‏SIM لیبل اور رنگ"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"نیٹ ورک کی فعالیت"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"کیریئر سوئچنگ"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> فعال ہے"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"‏موبائل ڈیٹا، کال کی خصوصیات اور SMS کو بعد میں استعمال کرنے کے لیے اپنے نیٹ ورک کی ترتیبات پر جائیں"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"‏اس eSIM کو مٹائیں؟"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"‏اس SIM کو مٹانے سے اس آلہ سے <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> سروس ہٹ جاتی ہے۔\n\n ‫<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> کی سروس منسوخ نہیں ہوگی۔"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"مٹائیں"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"‏SIM کو مٹایا جا رہا ہے…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"‏SIM کو نہیں مٹا سکتے"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"‏ایک خرابی کی وجہ سے اس SIM کو مٹایا نہیں جا سکتا ہے۔\n\nاپنا آلہ دوبارہ شروع کریں اور دوبارہ کوشش کریں۔"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"آلے سے منسلک کریں"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"‏<xliff:g id="APPNAME">%1$s</xliff:g> ایپ آپ کے آلے سے منسلک ہونے کے لیے عارضی Wi-Fi نیٹ ورک استعمال کرنا چاہتی ہے"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"کوئی آلہ نہیں ملا۔ یقینی بنائیں کہ آلات آن ہیں اور منسلک کرنے کے لیے دستیاب ہیں۔"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ایمرجنسی کالز"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"‏آپ کے کیریئر کی جانب سے Wi-Fi پر ایمرجنسی کالز تعاون یافتہ نہیں ہیں۔\nایمرجنسی کال کرنے کے لیے آلہ خود کار طور پر سیلولر نیٹ ورک پر سوئچ ہو جاتا ہے۔\nایمرجنسی کالز صرف سیلولر کوریج والے علاقے میں ممکن ہیں۔"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"‏معیار کو بہتر بنانے کے لیے کالز کے لیے Wi-Fi کا استعمال کریں"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"بیک اپ کالنگ"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"‏اگر <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> دستیاب نہیں ہے یا رومنگ میں ہے تو <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> کے لیے اپنے موبائل ڈیٹا کی SIM کا استعمال کریں۔"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"بیک اپ کالنگ"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"‏آنے والا MMS پیغام"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"‏MMS پیغام نہیں بھیجا جا سکا"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"‏موبائل ڈیٹا آف ہونے پر <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> پر MMS پیغام رسانی کی اجازت دینے کے لیے تھپتھپائیں"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"آپ کے کام کی پالیسی کی معلومات"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"‏آپ کے IT منتظم کے ذریعے نظم کردہ ترتیبات"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"‏16K صفحہ سائز کے ساتھ بوٹ کریں"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"‏16K صفحہ سائز کے تعاون یافتہ کرنل کا استعمال کرتے ہوئے بوٹ کریں"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"‏16KB صفحات کے موافق کرنل کے ساتھ ریبوٹ کریں؟"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"وارننگ: ہو سکتا ہے کچھ ایپلیکیشنز اس وضع کے ساتھ موافق نہ ہوں۔ تصدیق کے بعد آلہ ریبوٹ ہو جائے گا۔"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"‏4KB صفحات کے موافق کرنل کے ساتھ ریبوٹ کریں؟"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"تصدیق کے بعد آلہ ریبوٹ ہو جائے گا۔"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"‏کرنل کو 16KB صفحات کے موافق کرنل میں اپ ڈیٹ کرنے میں ناکام۔"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"تبدیلی کا اطلاق کرنا"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"بگ رپورٹ کا ہینڈلر"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"آپ کے آلے پر کون سی ایپ بگ رپورٹ شارٹ کٹ ہینڈل کرتی اس کا تعین کرتی ہے۔"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"ذاتی"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"پلے بیک کو فوری طور پر دوبارہ شروع کرنے کے لیے میڈیا پلیئر فوری ترتیبات میں کھلا رہتا ہے"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"مقفل اسکرین پر میڈیا دکھائیں"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"پلے بیک کو فوری طور پر دوبارہ شروع کرنے کے لیے میڈیا پلیئر مقفل اسکرین پر کھلا رہتا ہے"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"میڈیا کی تجاویز دکھائیں"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"اسسٹنٹ کی میڈیا تجاویز دکھائیں"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"آپ کی سرگرمی کی بنیاد پر"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"کھلاڑی کو چھپائیں"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"کھلاڑی کو دکھائیں"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIMs"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"فعال"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"غیر فعال"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> کے لیے ڈیفالٹ"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"کالز"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"موافق میڈیا سے آڈیو کا مزید دلچسپ تجربہ فراہم ہوتا ہے"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"سر کی ٹریکنگ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"خود کو زیادہ فطری دکھانے کے لیے اپنے سر کو حرکت دیتے ہی آڈیو تبدیل ہو جاتی ہے"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"مطابقت پذیری کی اجازتیں"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"اپنی <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> کو ایپ کی وہی اجازتیں دیں جن کی آپ نے <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> پر اجازت دی ہے"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"فون سے اجازتوں کو مطابقت پذیر کریں"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"اپنی گھڑی کو ایپ کی وہی اجازتیں دیں جن کی آپ نے اس فون پر اجازت دی ہے"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"آڈیو آلہ کی قسم"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"نامعلوم"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"اسپیکر"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
     <string name="contrast_high" msgid="3988567609694797696">"زیادہ"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"یہ ایپ صرف 1 ونڈو میں کھولی جا سکتی ہے"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"آن ہے"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"آف ہے"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"آف ہے"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"آف ہے"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"آن ہے"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"آف ہے"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"آن ہے"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"آف ہے"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"روشنی کی اسکرینز کو سیاہ اور گہری اسکرینز کو روشنی میں بدل دیتا ہے"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"اسکرین پر زوم ان کریں"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"آف ہے"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"آف ہے"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"آن ہے"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"آف ہے"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"آن ہے"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"اب پاس ورڈ سیٹ اپ ہو گیا ہے"</string>
 </resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 1038caa..c5a3dac 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 daqiqadan keyin"</item>
     <item msgid="1574040255478150028">"5 daqiqadan keyin"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index fc16c81..923c826 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Siz endi dasturchi rejimidasiz!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Shart emas, siz allaqachon dasturchi rejimidasiz."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Avval dasturchi sozlamalarini yoqing."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Faqat administratorlar dasturchi sozlamalaridan foydalana oladi."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Tizim"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Xizmat doirasida"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Xizmat doirasidan tashqarida"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Qurilma buklanganda old ekranni yoqish"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Faqat oʻyinlar, videolar va boshqalar"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Ekran oʻchganda toʻxtagan ilovalarni old ekranda yoqish"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Davom etish uchun tepaga suring"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Ilovadan foydalanishda davom etish uchun telefonni taxlab, oldingi ekrani ustida tepaga suring yoki ekran qulflanishi uchun bir necha soniya kuting"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Hech qachon"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Qurilma buklanganda old ekranni qulflash"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Avtomatik burilish"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Aloqador"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Rington va signallar"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Chaqiruvlardagi audio"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Media"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Bildirishnoma va tizim tovushlari"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Media va tizim tovushlari"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Bildirishnomalar"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Standart holatda audio chiqarish har bir ilovada alohida sozlanadi"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Nomsiz bluetooth qurilma"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Qidirilmoqda"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth yoqildi"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Hammasi"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Hammasi"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Stilus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Stilus tugmasi bosilishi"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Ish profili)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"LE audio oqimiga ulanish"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Atrofdagi audio oqimlar"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Audio oqimlar"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Audio oqimga QR kod orqali ulanish"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Yaqin-atrofda audio oqimlar majvud."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Har bir ilova uchun til tanlash uchun ilova tili sozlamalariga kiring."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Ilova tillari haqida batafsil"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Tizim tili %s tiliga oʻzgartirilsinmi?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"%s asosiy tillarga qoʻshilsinmi?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Buning natijasida ilovalar va veb-saytlar ham bu tilni tanlaganingizni bilishadi."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Qurilma sozlamalari va hududiy sozlamalar oʻzgaradi."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Oʻzgartirish"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s mavjud emas"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Shanba"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Hududiy sozlamalar ishlamasa, ilova standart mahalliy sozlamalardan foydalanadi."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Til sozlamalari haqida batafsil."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Qoʻshimcha sozlamalar"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Murojaat shartlari"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Tegishli murojaat shaklini koʻrsating"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Ilovalar moslashtirish uchun qaysi murojaat shaklini afzal koʻrishingiz haqidagi maʼlumotlardan foydalanish mumkin."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Koʻrsatilmagan"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Ayollar uchun"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Erkaklar uchun"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Oʻrtacha"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Tanlangan til olib tashlansinmi?}other{Tanlangan tillar olib tashlansinmi?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Matnlar keyin boshqa tilda chiqadi."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Barcha tillarni o‘chirib tashlash mumkin emas"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Joylashuv"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Joylashuvni aniqlash"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Oʻchiq"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{# ta ilovada joylashuvga ruxsat bor}other{# ta ilovada joylashuvga ruxsat bor}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Yoniq / # ta ilova joylashuvdan foydalanadi}other{Yoniq / # ta ilova joylashuvdan foydalanadi}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Yuklanmoqda…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Yaqin-atrofdagi qurilmalarga ruxsati bor ilovalar ulangan qurilmalarning nisbiy holatini aniqlay oladi."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ilovalar va xizmatlar uchun joylashuv axborotiga ruxsat yoqilmagan. Favqulodda holatlar raqamiga murojaat qilganingizda, qurilmangiz favqulodda xizmatlarga joylashuvingizni yuborishi mumkin."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Joylashuv sozlamalari haqida batafsil."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Joylashuv sozlamalari haqida batafsil"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Joylashuv ruxsatini Sozlamalar &gt; Xavfsizlik va maxfiylik &gt; Maxfiylik nazorati orqali oʻzgartirish mumkin"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Eng yaxshi natijalarga erishish uchun Made for Google sertifikatiga ega ekran himoyasidan foydalaning. Boshqa ekran himoyasida farzandingizning barmoq izi ishlamasligi mumkin."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Soat bilan ochish"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Yuz va barmoq izi bilan ochish sozlanganda, telefoningiz yuz niqobi taqqaningizda yoki qorongʻi joylarda barmoq izingizni soʻraydi.\n\nYuzingiz yoki barmoq izingiz tanilmaganda, soatingiz bilan qulfni ochishingiz mumkin."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Barmoq izingiz tanilmaganda, soatingiz bilan qulfni ochishingiz mumkin."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Yuzingiz tanilmaganda, soatingiz bilan qulfni ochishingiz mumkin."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Yuz va barmoq izi bilan ochish sozlanganda, telefoningiz yuz niqobi taqqaningizda yoki qorongʻi joylarda barmoq izingizni soʻraydi.\n\nBarmoqlar hoʻl boʻlsa yoki yuzingizni tanimasa, soat bilan ochish funksiyasi telefonni qulfdan chiqarishning yana bir qulay usuli hisoblanadi."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Barmoqlar hoʻl boʻlsa, soat bilan ochish funksiyasi telefonni qulfdan chiqarishning yana bir qulay usuli hisoblanadi."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Yuzingizni tanimasa, soat bilan ochish funksiyasi telefonni qulfdan chiqarishning yana bir qulay usuli hisoblanadi."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Barmoq izi yoki soat orqali"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Yuz yoki soat orqali"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Yuz, barmoq izi yoki soat orqali"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yuz va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yuz, barmoq izi va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yuz, barmoq izlari va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Masofaviy Authenticator qulfini ochish"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Soat kiritildi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Soatingizni sozlang"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Barmoqlar hoʻl boʻlsa yoki yuzingizni tanimasa, soat bilan ochish funksiyasi telefonni qulfdan chiqarishning yana bir qulay usuli hisoblanadi.\n\nBu telefonni quyidagi hollarda soat bilan qulfdan chiqarish mumkin:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Hozir emas"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Davom etish"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Yana"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ishlash tartibi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Soat qulflanmagan, bilagingizda va bu telefonga yaqin joyda tursin. Soat bilakda turganida yana qulfdan chiqarish shart emas."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Bu telefon qulfdan chiqarilganda soatga bildirishnoma keladi. Agar istamaganingizda qulfdan chiqarilsa, telefonni qayta qulflash uchun bildirishnomaga teging."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Boshqaruv oʻz qoʻlingizda"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Soatni istalgan vaqt Sozlamalar orqali Soat bilan ochish funksiyasidan olib tashlash mumkin"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Bildirishnomaga tegining"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Qulflangan ekranda tepaga suring"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Soatingizni tanlang"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Mavjud soatlar"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Bekor qilish"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"OK"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hammasi tayyor!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Endi bloklangan ekranda tepaga surib yoki bildirishnomaga teginib, bu telefonni soat orqali qulfdan chiqarish mumkin"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Tayyor"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"[qurilma qulfini] soat bilan ochish"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Bloklangan ekranda tepaga surib yoki bildirishnomaga tegib, bu telefonni soat orqali qulfdan chiqarish mumkin"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Soat bilan ochish uchun soat qulfdan chiqarilgan, bilagingizda, yaqin joyda va bu telefonga ulangan boʻlishi kerak. Agar aloqa uzilsa, soat bilan ochishdan oldin telefonni qulfdan chiqarish kerak.\n\nYodda tuting:\nBir vaqtning oʻzida faqat bitta soatni sozlash mumkin. Boshqa soat qoʻshish uchun hozirgisini olib tashlang."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Soat bilan ochish haqida batafsil"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Soat kiritish"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Soatni olib tashlash"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Barmoq izi va yuz bilan ochish"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ish uchun Yuz va Barmoq izi bilan ochish"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Sozlash talab etiladi"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Xavfsizlik"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Maxfiylik"</string>
     <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="2274405892301976238">"Maxfiy ilovalar qulflangan va yashirin saqlansin"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Maxfiy ilovalarni berkitish yoki qulflash mumkin alohida joyda saqlang"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Maxfiy joy qulfi"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Maxfiy joyni qurilmangizniki bilan ayni usulda qulfdan chiqarishingiz mumkin yoki boshqa qulf tanlang"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Qurilmaning ekran qulfidan foydalanish"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Yuz va barmoq izi bilan ochish"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Barmoq izi bilan ochish"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Yuz bilan ochish"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Sozlash uchun bosing"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Maxfiy joyni barmoq izi bilan ochish"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Maxfiy joyni yuz bilan ochish"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Qulfni ochish usullari"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Qurilmaning qulflash usulidan foydalanish"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Maxfiy joy uchun yangi qulf yaratilsinmi?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Avtomatik qulflash"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Maxfiy makonni avtomatik qulflash"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Agar qurilmangizdan muayyan vaqt foydalanmasangiz, maxfiy makoningizni avtomatik ravishda qulflashingiz mumkin"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Har safar qurilma qulflanganda"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"5 daqiqa nofaollikdan keyin"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Hech qachon"</string>
+    <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_delete_title" msgid="3075645119800272800">"Maxfiy joyni oʻchirish"</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="private_space_unlocked" msgid="9091600948712932046">"Maxfiy makon ochildi"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Ekran qulfini sozlash"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Bekor qilish"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Sozlash"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Maxfiy joyni sozlash"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Maxfiy ilovalarni berkitish yoki qulflash mumkin alohida joyda saqlang"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Ishlash tartibi"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Ilovalar roʻyxatining pastki qismidan maxfiy joyga kirish mumkin"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Maxfiy joydagi ilovalar qulf bilan himoyalangan"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Qulflanganida maxfiy joydagi ilovalardan bildirishnomalar berkitiladi"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Maxfiy joy qulflanganda undagi ilovalar ruxsatlar boshqaruvi, maxfiylik paneli va boshqa sozlamalarda chiqmaydi.\n\nMaxfiy joyni yangi qurilmaga koʻchirish imkonsiz. Boshqa qurilmada ishlatish uchun boshqa maxfiy joy sozlanishi kerak.\n\nQurilmani kompyuterga ulash yoki unga zararli ilova oʻrnatish ruxsati bor shaxslar maxfiy joyga ruxsat olishi mumkin."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Maxfiy joy sozlanmoqda…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Qulflanganida maxfiy joydagi ilovalardan bildirishnomalar berkitiladi"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Maxfiy joy ilovalaridan rasm yoki fayl ulashish uchun maxfiy joy qulfini oching"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Ayrim ilovalar maxfiy joyda allaqachon oʻrnatilgan"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Maxfiy joy sozlanmadi"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Qayta urinish"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Maxfiy joy qurilma qulfi bilan ochilsinmi?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Maxfiy joyni qurilma qulfi bilan bir xil usulda ochish yoki unga boshqa qulf tanlash mumkin"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Ekran qulfi"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Yangi qulf tanlash"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Hammasi tayyor!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Maxfiy joyga kirish uchun ilovalar roʻyxatini ochib, pastga varaqlang"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Tayyor"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Maxfiy joyni topish uchun pastga varaqlang"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Maxfiy joy qulfini tanlang"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Maxfiy joyni barmoq izi bilan ochish mumkin. Xavfsizlik maqsadida bu parametr zaxiraviy qulf bilan ishlaydi."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Maxfiy joy uchun PIN kod belgilash"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Maxfiy joy uchun parol belgilash"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Maxfiy joy uchun grafik kalit belgilash"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Maxfiy joyni chiqarish uchun (yakuniy interfeys emas)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Sozlamalar ilovasini ochish"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Sozlamalar &gt; Maxfiylik &gt; Maxfiy joy &gt; Qulflanganda Maxfiy joyni berkitish ustiga bosing"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Quflanganda Maxfiy joyni berkitish sozlamasini faolsizlantirish"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Googlerlar diqqatiga: Bu funksiya hali ham ishlab chiqish jarayonida"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Shuningdek, bu kirish kalitini ikkinchi qurilmada kiritishingiz talab qilinishi mumkin."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Sozlangan toʻplamga ulanishni tasdiqlang"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Kontakt va chaqiruvlar tarixiga ruxsat berish"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Shuningdek, kontaktlar va chaqiruvlar tarixiga kirish uchun ruxsat bering"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Maʼlumotlar chaqiruvlar haqida xabar berish uchun ishlatiladi"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ga o‘zaro bog‘lanmadi."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Mavjud qurilmalar"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Uchish rejimida"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Ochiq tarmoqlar haqida xabar berish"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Yuqori sifatli ochiq tarmoqlar haqida xabar qilinsin"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"WEP tarmoqlarga ruxsat berish"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP – past xavfsizlikka ega eskirgan xavfsizlik protokoli"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Operatoringiz past darajadagi xavfsizlik tufayli WEP tarmoqlaridan foydalanishni taqiqlagan"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Wi‑Fi aloqasini avtomatik yoqish"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Saqlab olingan tarmoqlar ichidan signali yaxshisi chiqsa, Wi-Fi avtomatik yonadi (masalan, uyda)"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Joylashuv xizmati faolsizlantirilgani uchun ishlamaydi. "<annotation id="link">"Joylashuv"</annotation>" xizmatini yoqing."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi‑Fi tarmoqlarni qidirish funksiyasi ilova va xizmatlarga hatto Wi-Fi yoniq emasligida ham Wi-Fi tarmoqlarni qidirish uchun ruxsat beradi. Bu joylashuv axborotiga asoslangan funksiya va xizmatlar sifatini yaxshilashda ishlatilishi mumkin."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Yoqish"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi qidirish yoqildi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Bu tarmoq xavfsizlik darajasi past boʻlgan eski xavfsizlik protokolidan foydalanadi."</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> bloklandi"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Ushbu tarmoq past darajadagi xavfsizlikka ega eski WEP xavfsizlik protokolidan foydalanadi. Hali ham ulanishni xohlasangiz, WEP shifrlangan tarmoqlarni yoqing."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Operatoringiz ushbu tarmoqqa ulanishingizga ruxsat bermaydi, chunki u past darajadagi xavfsizlikka ega eski xavfsizlik protokolidan foydalanadi."</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"WEP tarmoqqa ruxsat berish"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Yopish"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Kengaytirilgan sozlamalar"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Qoʻshimcha parametrlar pastga ochiluvchi roʻyxati"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"yoyish"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Wi-Fi tarmog‘ida qoling"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Boshqa ko‘rsatilmasin"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Ulanish"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi-Fi yoqildi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Bunga ulandi: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ulanmoqda: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Ulanmoqda…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Tarmoqqa ulanmadi"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Tarmoq xizmat doirasidan tashqarida"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Olib tashlash"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"O‘zgartirish"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Tarmoqni unutmadi"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Saqlash"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Tarmoqni saqlamadi"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Bekor qilish"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Mobil internet"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Quvvatlash"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Quvvatlash"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Hotspot ulanishi"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Aloqa sifati"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saqlangan tarmoqlar"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Parollanmagan"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Hotspot nomi"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Hotspot paroli"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Wi-Fi diapazoni"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Hotspotni avtomatik faolsizlantirish"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Hech qanday qurilma ulanmaganda"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Kengaytirilgan moslik"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Ekrandagi oq rang muvozanati"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Oʻyinlar standart kadr tezligini faolsizlantirish"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz chastotada oʻyinlar uchun maksimal kadr tezligi cheklanmasin."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Smooth Display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Moslashuvchan kutish rejimi kimdir old kameraga qaraganini aniqlashda ishlatiladi U faqat qurilmada ishlatiladi va rasmlar hech qachon Google serverlariga yuborilmaydi."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Moslashuvchan kutish rejimini yoqish"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Ekranga qarab turilganida u yoniq turadi"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Ekranning kutish vaqti qancha uzoq boʻlsa, shuncha koʻp quvvat sarflanadi."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Kamera qulflangan"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Yuzni aniqlash funksiyasi ishlashi uchun kamera qulfdan chiqarilishi kerak"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Moslashuvchan kutish rejimi uchun kamera qulflanmagan boʻlishi kerak"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (<xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>-SIM uyasi)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (<xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>-SIM uyasi) (asosiy)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Ochish uchun saqlangan tarmoqni tanlang"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL versiyasi"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Batareya quvvati darajasi"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Umumiy"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Umumiy sozlamalar"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Saqlash"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Bekor qilish"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Nom to‘ldirilmagan bo‘lolmaydi."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN kiritilishi shart"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC 3 ta raqamdan iborat bo‘lishi shart."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC 2 yoki 3 ta raqamdan iborat bo‘lishi shart."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Aloqa operatori bunday turdagi APN (%s) qo‘shishni taqiqlagan."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC qatori yaroqli emas."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"APN standart sozlamalari tiklanmoqda."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Asliga qaytarish"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Standart sozlamalar tiklandi."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Tiklash"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Bluetooth va Wi-Fi sozlamalari tiklandi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"eSIM kartalarni tozalash"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Bunda mobil xizmatning hech qaysi tarif rejasi bekor qilinmaydi. Yangi eSIM profilini yuklab olish uchun aloqa operatoriga murojaat qiling"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Asliga qaytarish"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Barcha tarmoq sozlamalari qayta tiklansinmi? Bu amalni ortga qaytarish imkonsiz."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Barcha tarmoq sozlamalari va eSIM kartalar tiklansinmi? Bu amalni ortga qaytara olmaysiz."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Asliga qaytarilsinmi?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Bu foydalanuvchi tarmoq sozlamalarini tiklay olmaydi"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Tarmoq sozlamalari qayta tiklandi"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"SIM kartalar axboroti tozalanmadi"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"eSIM kartalar axboroti xatolik sabab tozalanmadi.\n\nQurilmani qayta ishga tushirib, yana urining."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Barcha maʼlumotlarni tozalash (zavod sozlamalarini tiklash)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Barcha maʼlumotlarni tozalash (zavod sozlamalarini tiklash)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Musiqalar"</li>\n<li>"Suratlar"</li>\n<li>"Foydalanuvchining boshqa ma\'lumotlari"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM kartalar"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Bunda, mobil aloqa xizmatiga hech narsa qilinmaydi."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Barcha shaxsiy maʼlumotlaringiz va yuklab olingan ilovalar tozalab tashlanadi. Bu amalni ortga qaytara olmaysiz."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Barcha shaxsiy maʼlumotlaringiz, jumladan, yuklab olingan ilovalar va SIM kartalar axboroti tozalab tashlanadi. Bu amalni ortga qaytara olmaysiz."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Hamma narsa tozalansinmi?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Bu foydalanuvchiga sozlamalarni zavod holatiga qaytarishga ruxsat berilmagan"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Tozalanmoqda"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Hotspot, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Internet boshqa qurilmalarga ulashilmaydi"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Oʻchiq"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Modem rejimi"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Wi‑Fi hotspot ishlatilmasin"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Internetni faqat USB orqali ulashish"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Internetni faqat Bluetooth orqali ulashish"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Internetni faqat Ethernet orqali ulashish"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Internetni faqat USB va Bluetooth orqali ulashish"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Internetni faqat USB va Ethernet orqali ulashish"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Internetni faqat Bluetooth va Ethernet orqali ulashish"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Internetni faqat USB, Bluetooth va Ethernet orqali ulashish"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB modem"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Bluetooth modem"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ethernet modem rejimi"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Boshqa qurilmalarga Wi-Fi yoki mobil internet orqali internetni tarqatish uchun hotspot va modem rejimlaridan foydalaning. Ilovalar ham yaqin-atrofdagi qurilmalarga kontent ulashish uchun hotspot yarata oladi."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Yordam"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mobil tarmoq"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Uyali tarmoq paketlari"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"SMS ilovasi"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"SMS ilovasi almashtirilsinmi?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"SMS xabarlar uchun <xliff:g id="CURRENT_APP">%2$s</xliff:g> emas, <xliff:g id="NEW_APP">%1$s</xliff:g> ishlatilsinmi?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Wi‑Fi yordamchisi o‘zgartirilsinmi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="CURRENT_APP">%2$s</xliff:g>” o‘rniga “<xliff:g id="NEW_APP">%1$s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Tarmoq ulanishlarini boshqarish uchun “<xliff:g id="NEW_APP">%s</xliff:g>” ilovasidan foydalanilsinmi?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Noma’lum uyali aloqa operatori"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> operatorida sinxronlash uchun sayti yo‘q"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"SIM karta solib, qurilmani qayta ishga tushiring"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Iltimos, Internetga ulaning"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Joylashuv axboroti so‘rovlari"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Ish profili uchun geolokatsiya"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Ilovalar uchun joylashuv ruxsati"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Ruxsatnomalarni o‘chirish"</string>
     <string name="controls_label" msgid="8671492254263626383">"Boshqaruv"</string>
     <string name="force_stop" msgid="2681771622136916280">"Majburan to‘xtatish"</string>
+    <string name="archive" msgid="9074663845068632127">"Arxivlash"</string>
+    <string name="restore" msgid="7622486640713967157">"Tiklash"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Jami"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Ilova hajmi"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB xotira ilovasi"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Paket o‘lchamini hisoblamadi"</string>
     <string name="version_text" msgid="7628938665256107608">"<xliff:g id="VERSION_NUM">%1$s</xliff:g> versiya"</string>
     <string name="move_app" msgid="5421158479447276791">"Boshqa joyga olish"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Arxivlanmadi"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Arxivlandi: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Tiklanmadi"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Tiklanmoqda: <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Boshqa bir ko‘chirish amalga oshirilmoqda."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Xotirada yetarlicha bo‘sh joy yo‘q."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Ilova mavjud emas."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Ekrandagi klaviatura mavjud"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Ekrandagi klaviaturalarni boshqarish"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Variantlar"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Qulayliklar"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tashqi klaviatura"</string>
     <string name="show_ime" msgid="4334255501724746849">"Ekrandagi klaviaturadan foydalanish"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Tashqi klaviatura ulanganida ekranda chiqib turadi"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Qayta bosishni nazorat qilish"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Jismoniy klaviatura qulayliklari uchun Qayta bosishni nazorat qilish funksiyasini yoqish"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Yopishqoq tugmalar"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Jismoniy klaviatura qulayliklari uchun Yopishqoq tugmalarni yoqish"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tezkor tugmalar"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tezkor tugmalar roʻyxatini ochish"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Ish profili klaviaturalari va vositalari"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Foydalanish vaqti boʻyicha saralash"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Oxirgi foydalanish boʻyicha saralash"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Ilova nomi boʻyicha saralash"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"So‘nggi marta foydalanish"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Oxirgi ishlatilgan"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"hech qachon"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Sarf vaqti"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Qulayliklar"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Qulayliklar sozlamalari"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Baribir davom ettirilsin"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Bekor qilish"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Kattalashtirish sozlamalari"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Uch marta bosib kattalashtirish"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Tugma yordamida kattalashtirish"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Tugma va uch marta bosish bilan kattalashtirish"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g> haqida"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Ochish uchun ekranni ikki barmoq bilan ikki marta bosing"</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="860548190334486449">"Kattalashtirish yoki bekor qilish uchun ekran ustiga ikki barmoq bilan ikki 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Maxsus imkoniyatlardan 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_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Qulayliklar tugmasi sozlamalari"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Tugma sozlamalari"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> tezkor tugmasi"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Qulayliklar tugmasi"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Qulaylik ishorasi"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Ekranni ikki barmoq bilan ikki marta bosing"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"ekranni ikki barmoq bilan ikki marta bosing"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Ekranni ikki barmoq bilan {0,number,integer} marta takror bosing"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Ekran ustiga uch marta bosing"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Qulayliklar tugmasi va ishoralar haqida batafsil"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Qulaylik tugmasidan foydalanish. 3 tugmali navigatsiya ishora orqali ishlamaydi."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Maxsus imkoniyatlarni tez ochish"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Boshlash uchun:"</b>\n"1. Qulayliklar sozlamalarini oching\n2. Funksiyani tanlang va yorliq ustiga bosing\n3. Foydalaniladigan tugmani yoki funksiyadan foydalanish uchun ishorani tanlang"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Boshlash uchun:"</b>\n"1. Qulayliklar sozlamalarini oching\n2. Funksiyani tanlang va yorliq ustiga bosing\n3. Funksiyadan foydalanish uchun tugmani tanlang"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Boshlash uchun&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Maxsus imkoniyatlar sozlamalarini oching&lt;br/&gt; {1,number,integer}. Funksiyani tanlang va yorliq ustiga bosing&lt;br/&gt; {2,number,integer}. Foydalaniladigan tugmani yoki funksiyadan foydalanish uchun ishorani tanlang&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Boshlash uchun&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Maxsus imkoniyatlar sozlamalarini oching&lt;br/&gt; {1,number,integer}. Funksiyani tanlang va yorliq ustiga bosing&lt;br/&gt; {2,number,integer}. Funksiyadan foydalanish uchun tugmani tanlang&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Tugma yoki imo-ishoradan foydalanish"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Joylashuv"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Hajmi"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Quvvat tugmasi chaqiruvni tugatadi"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Yirik sichqoncha kursori"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Kursorni kattaroq chiqarish"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Barcha ilovalarni tungi qilish"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Tungi mavzusi mavjud emas ilovalarga tegishli. Ayrim ilovalarda aks rang kabi xato chiqishi mumkin."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Animatsiyalarni olib tashlash"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Ekrandagi harakatlarni kamaytirish"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Mono audio"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ilova yoki qurilma sensori bilan munosabatlaringizni kuzatishi hamda sizning nomingizdan ilovalar bilan ishlashi mumkin."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Ruxsat"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Rad etish"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Stop"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Bekor qilish"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"<xliff:g id="SERVICE">%1$s</xliff:g> xizmati to‘xtatilsinmi?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"<xliff:g id="SERVICE">%2$s</xliff:g> xizmatini toʻxtatish uchun <xliff:g id="STOP">%1$s</xliff:g> tugmasini bosing."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Faolsizlantirish"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Kerak emas"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"<xliff:g id="SERVICE">%1$s</xliff:g> faolsizlantirilsinmi?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Hech qanday xizmat o‘rnatilmagan"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Hech qanday xizmat tanlanmagan"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Hech qanday tavsif berilmagan."</string>
     <string name="settings_button" msgid="2195468788019730377">"Sozlamalar"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"yorugʻlikka taʼsirchanlik, fotofobiya, tungi mavzu, migren, bosh ogʻrigʻi, oʻqish rejimi, tungi rejim, xiralashtirish, oq nuqta"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Foydalanish oson, ochish oson, yordam beradi, foydali"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"koʻrish, eshitish, koʻr, kar, motorika, tezkorlik, yordamchi, yordam, foydalanish oson, ochish oson, dastak, yordam"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Oyna lupasi, zum, kattalashtirish, zaif koʻrish, kattalashtirish, katta qilish"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Taglavhalar, yopiq taglavhalar, CC, Jonli transkripsiya, nuqsonli eshitish, karlik, CART, nutq sintezatori, taglavha"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"rang kontrasti"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"motor, sichqoncha"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"eshitish apparatlari, nuqsonli eshitish, karlik, koxlear implantlar, ovoz kuchaytiruvchi qurilmalar va tovush protsessorlari"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, sichqoncha, tashqi sichqoncha, bosh uchun sichqoncha, moslashuvchan sichqoncha, nogironlar aravachasi, joystik"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"eshitish apparatlari, nuqsonli eshitish, karlik, koxlear implantlar, ovoz kuchaytiruvchi qurilmalar va tovush protsessorlari, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"nuqsonli eshitish, karlik, taglavhalar, teletayp, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"uchta tugma"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"tezkorlik, motorika, keksalar, artrit, rsi, insult, tremor, surunkali skleroz, bolalar falaji, qaltirash, qayta shikastlanish, dastak"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"kechikish, tezkorlik, keksalar"</string>
     <string name="print_settings" msgid="8519810615863882491">"Chop etish"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Oʻchiq"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ta chop etish xizmati yoniq}other{# ta chop etish xizmati yoniq}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Batareyani koʻp sarflayotgan ilovalar"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Batareyangizni himoyalash uchun quvvatlash optimallashtirildi"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Batareyangiz ishlash muddatini uzaytirish maqsadida quvvatlash optimallashtirildi"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Batareyangizni himoyalash uchun quvvatlash optimallashtirildi"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Batareyangiz ishlash muddatini kengaytirish maqsadida dokka joylanganda quvvatlash optimallashtiriladi"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Batareyangizni himoyalash uchun quvvatlash optimallashtirildi"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Batareyangiz ishlash muddatini kengaytirish maqsadida dokka joylanganda quvvatlash optimallashtiriladi"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Toʻlgunicha quvvat olish"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Keyingi safar planshetingiz dokka joylanganda batareyangizni himoyalash uchun quvvatlash optimallashtiriladi"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Quvvatlash pauzasi haqida batafsil"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Davom ettirish"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Ichiga koʻproq quvvat talab qiluvchi fondagi harakatni oladi"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Ha"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Bekor qilish"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Toʻliq quvvatlash"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Quvvatlash aksessuari bilan muammo"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Mos boʻlmagan quvvatlash haqida batafsil"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Batareya boshqaruvi"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Ilovalarni avtomatik boshqarish"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"hozir"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g>, <xliff:g id="HOUR">%2$s</xliff:g>⁠"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>⁠"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Batareya sarfi diagrammasi"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Kunlik batareya sarfi sarhisobi"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Soatlik batareya sarfi sarhisobi"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Batareya quvvati foizi: <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> – <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Oxirgi toʻliq quvvatdan keyingi batareya sarfi"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Batareya quvvati sarfi (<xliff:g id="SLOT">%s</xliff:g>)"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Oxirgi toʻliq quvvatlanishdan keyin foydalanish vaqti"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Favqulodda chaqiruv signali"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Favqulodda qo‘ng‘iroq uchun xususiyat o‘rnatish"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Zaxiralash"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Yoniq"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Oʻchiq"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Zaxira nusxa va qayta tiklash"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Shaxsiy ma‘lumotlar"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Ma’lumotlarni zaxiralash"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Tarmoq nomi"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Turi"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Server manzili"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP shifrlash (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP kaliti"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec identifikatori"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec umumiy kaliti"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec foydalanuvchi sertifikati"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec SM sertifikati"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec serveri sertifikati"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Kengaytirilgan sozlamalar"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS qidiruvi uchun domenlar"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS serverlar (m-n, 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Uzatish marshrutlari (m-n, 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Foydalanuvchi nomi"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Parol"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Hisob ma’lumotini saqlash"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ishlatilmagan)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(server tekshirilmasin)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(serverdan olingan)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Bu VPN tarmoq turi doim ulanib tura olmaydi"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"Doimiy VPN faqat raqamli server manzillari bilan ishlaydi"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Doimiy VPN uchun DNS serveri ko‘rsatilishi kerak"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Doimiy VPN uchun DNS server manzillari raqamdan iborat bo‘lishi lozim"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Kiritilgan ma’lumot doimiy VPN tarmoqni qo‘llab-quvvatlamaydi"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Bekor qilish"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Yopish"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"VPN tarmoqsiz ulanishlarni bloklash"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"VPN aloqasi talab qilinsinmi?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Xavfsiz emas. IKEv2 VPN tarmoqqa yangilang"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Mos kelmaydigan VPN ishga tushmadi."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Doimiy VPN tarmog‘ini tanlang: faqat ushbu tarmoqqa ulanganda trafik sarflanishiga ruxsat beriladi."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Ishlatilmasin"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Server va DNS uchun IP manzilini ko‘rsating."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER ogohlantirishlari"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Bola o‘g‘irlash to‘g‘risidagi rasmiy axborotlarni olish"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Takrorlash"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Qo‘ng‘iroqlar boshqaruvchisini yoqish"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Chaqiruvlarni boshqarish."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Qo‘ng‘iroqlar boshqaruvchisi"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Simsiz tarmoqlar orqali favqulodda ogohlantirish"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Tarmoq operatorlari"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Ulanish nuqtalari"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"Wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"to‘lash, bosish, to‘lovlar"</string>
     <string name="keywords_backup" msgid="707735920706667685">"zaxira, zaxira nusxa olish"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"imo-ishora"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"yuz, qulfdan chiqarish, tekshiruv, kirish"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"yuz, qulfni ochish, tekshiruv, kirish, barmoq izi, biometrik"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl versiyasi, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Ovozni yoqish"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Jonli izoh"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Avtomatik taglavha yaratish"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Telefon karnaylari"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Planshet karnaylari"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Qurilma karnaylari"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Simli quloqlik"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Mos mediadan olingan audio yanada qiziqarli chiqadi"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Oʻchiq"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ekran qulfida nimalar chiqishini xohlaysiz?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Oxirgi suhbatlar olib tashlandi"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Suhbat olib tashlandi"</string>
     <string name="clear" msgid="5092178335409471100">"Tozalash"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Tozalash: <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Muhim va oʻzgargan suhbatlar shu yerda chiqadi"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Muhim deb belgilangan yoki oʻzgartirish kiritilgan xabarlar shu yerda chiqadi. \n\nSuhbat sozlamalarini oʻzgartirish uchun: \nEkran tepasini bosib pastga torting, keyin suhbat ustiga biroz bosib turing."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Kichraytirish"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Oʻchiq"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Ilovani mahkamlash"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Bu funksiya muayyan ilovaning ekranini telefonda boshqa ilovalarga kirishni yopgan holda mahkamlaydi. Undan tanishlar bilan oʻyin oʻynash uchun foydalanish mumkin."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Mahkamlangan ilova boshqa ilovalarni ochishi va shaxsiy maʼlumotlarga kirishi mumkin. \n\nBu funksiyadan foydalanish uchun quyidagilarni bajaring: 	\n1. Sozlamalar orqali funksiyani yoqing 	\n2. Umumiy menyusini oching 	\n3. Ekranning yuqori qismidagi ilova belgisini bosib, keyin Mahkamlash tugmasini bosing."</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Mahkamlangan ilova boshqa ilovalarni ochishi va shaxsiy maʼlumotlarga kirishi mumkin. \n\nAgar qurilmangizdan boshqalar foydalanadigan boʻlsa, ular uchun mehmon foydalanuvchini yoqing. \n\nBu funksiyadan foydalanish uchun quyidagilarni bajaring: 	\n1. Sozlamalar orqali funksiyani yoqing 	\n2. Umumiy menyusini oching 	\n3. Ekranning yuqori qismidagi ilova belgisini bosib, keyin Mahkamlash tugmasini bosing."</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Mahkamlangan ilova boshqa ilovalarni ochishi va shaxsiy maʼlumotlarga kirishi mumkin. \n\nIlovani qadash funksiyasidan foydalanish uchun: 	\n{0,number,integer}. Ilovani qadash funksiyasini yoqing 	\n{1,number,integer}. Umumiy menyusini oching 	\n{2,number,integer}. Ekranning yuqori qismidagi ilova belgisini bosib, keyin Mahkamlash tugmasini bosing."</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Mahkamlangan ilova boshqa ilovalarni ochishi va shaxsiy maʼlumotlarga kirishi mumkin. \n\nAgar qurilmangizdan boshqalar foydalanadigan boʻlsa, ular uchun mehmon foydalanuvchini yoqing. \n\nIlovani qadash funksiyasidan foydalanish uchun: 	\n{0,number,integer}. Ilovani qadash funksiyasini yoqing 	\n{1,number,integer}. Umumiy menyusini oching 	\n{2,number,integer}. Ekranning yuqori qismidagi ilova belgisini bosib, keyin Mahkamlash tugmasini bosing."</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Ilova mahkamlanganda: \n\n•		Shaxsiy maʼlumotlarga kira oladi \n		(masalan, kontaktlar va email kontenti) \n•		Boshqa ilovalarni ocha oladi \n\nBu funksiyadan faqat ishonchli odamlaringiz bilan foydalaning."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Yechishdan oldin grafik kalit so‘ralsin"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Yechishda PIN kod talab qilinsin"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Ishlatilmagan ilova sozlamalari"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Ishlatilmayotgan ilovalarni pauzalash"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Ruxsatlarni olib tashlash, vaqtinchalik fayllarni oʻchirish va bildirishnomalarni toʻxtatish"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Ishlatilmagan ilovalarni boshqarish"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Ruxsatlarni olib tashlash, vaqtinchalik fayllarni oʻchirish, bildirishnomalarni toʻxtatish va ilovani arxivlash"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Barcha ilovalar"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Oʻrnatilgan ilovalar"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Darhol ochiladigan ilovalar"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Bo‘sh"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Ilovalar sarflagan xotira"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{Oxirgi {time} da 1 ta ilova xotiradan foydalangan}other{Oxirgi {time} da # ta ilova xotiradan foydalangan}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Xotiradan foydalanishni profillarga ajratish yoniq"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Xotiradan foydalanishni profillarga ajratish qoʻshimcha tizim resurslarini sarflaydi"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Xotirani profillarga ajratish oʻchirildi"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Yuz berish oralig‘i"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Maksimal foydalanish"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Trafik sarflanmagan"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Boshqa ilovalar ustidan ochilish"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Boshqa ilovalar ustidan ochilish"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Interfeys elementlarini boshqa oynalar ustidan ochishga ruxsat berish. Bu ilova ekranda nimalar chiqishi va qaysi qismi bosilishini koʻra oladi."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Media chiqishini tanlash"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Ilova media chiqishini tanlashiga ruxsat berish"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Bu ilovaga qaysi ulangan qurilmada boshqa ilovadan audio yoki video ijro etishni tanlashga ruxsat berish. Ruxsat berilsa, bu ilova quloqlik va karnay kabi qurilmalar roʻyxatini olishi va qaysi chiqish qurilmasida audio yoki video ijro etilishini tanlashiga ruxsat beriladi."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Barcha fayllarga kirish ruxsati"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Ovoz bilan faollashtirishni yaxshilang"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Ovozli faollashtirish modelini yaxshilash uchun ushbu qurilma shaxsiy maʼlumotlardan foydalanadi. Ilovalar koʻp sonli foydalanuvchilarning umumiy maʼlumotlarini olishlari mumkin. Bu bizga maxfiylikni taʼminlash va barcha uchun modelni yaxshilash imkonini beradi.\n\n"<a href="">"Shaxsiy maʼlumotlar 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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Trafik sarfiga oid ogohlantirish: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Trafik limiti: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Trafik sarfiga oid ogohlantirish: <xliff:g id="ID_1">^1</xliff:g> / trafik limiti: <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Aloqa operatorining hisob-kitobi qurilmanikidan farq qilishi mumkin"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Aloqa operatori orqali uzatilgan trafik kiritilmagan"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> sarflandi"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Trafik sarfiga oid ogohlantirish"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g> oldin yangilangan"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> tomonidan hozir yangilandi"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Hozir yangilandi"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Tarif rejasi"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Tafsilotlar"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Trafik tejash"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Cheklanmagan mobil internet"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Batareya noodatiy sarflanmoqda"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Tezkor sozlamalarning dasturchi tugmalari"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"adb avtorizatsiyasini bekor qilishni faolsizlantirish"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Standart holat boʻyicha (7 kun) yoki foydalanuvchi tomonidan belgilangan (kamida 1 kun) muddatda qayta ulanmagan tizimlar uchun adb avtorizatsiyasining avtomatik bekor qilinishini faolsizlantirish."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope trassirovkasi"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Sensorlar nofaol"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Ish profili sozlamalari"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Ish katalogidagi kontaktlarni shaxsiy ilovalar ichidan qidiring"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Avtomatik kiritish"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Birlamchi avtomatik kiritish xizmati"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Parollar"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Parollar, kirish kalitlari va maʼlumotlar uchun xizmatlar"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Qoʻshimcha taʼminotchilar"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ta parol}other{# ta parol}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"avto, toʻldirish, avtotoʻldirish, parol"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Parollar, kirish kalitlari va maʼlumotlar uchun xizmatlar"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Barcha xizmatlar faolsizlantirilsinmi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Hisobingizga kirganingizda parollar, kalitlar va boshqa saqlangan maʼlumotlar avtomatik toʻldirish uchun chiqmaydi"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Maqbul xizmatingiz quyidagiga oʻzgartirilsinmi: &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Yangi parollar, kalitlar va boshqa maʼlumotlar bundan buyon 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_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ishlatilsinmi?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Faqat 5 tagacha xizmatni yoqishingiz mumkin"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Boshqa xizmatni qoʻshish uchun kamida 1 ta eskisini faolsizlantiring"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ekraningizda nimani avtomatik kiritish kerakligini aniqlaydi."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Parollar, kalitlar va maʼlumotlarni saqlash uchun xizmatlar soni cheklangan"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Bir vaqtda parollar, kalitlar va maʼlumotlarni saqlash uchun 5 tadan ortiq xizmat faol boʻlishi mumkin emas. Yangi xizmat qoʻshish uchun birortasini oʻchiring."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Parollar, kodlar va maʼlumotlarni saqlash boʻyicha xizmatlar soni cheklangan"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Bir vaqtda parollar, kodlar va maʼlumotlarni saqlash uchun 5 tadan ortiq xizmat faol boʻlishi mumkin emas. Yangi xizmat qoʻshish uchun birortasini oʻchiring."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Faolsizlantirish"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Avtomatik kiritish"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Jurnal yuritish darajasi"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Ilova mosligini faqat nosozliklari aniqlanadigan ilovalarda oʻzgartirish mumkin. Nosozliklari aniqlanadigan ilovani oʻrnating va qayta urining."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Bu sozlama boshqa parametrlarga bog‘liq"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Hisob"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d ta hisob"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Qurilma nomi"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Asosiy axborot"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Huquqiy va normativ talablar"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"NFC tegi skanerlanganda bu ilovani ishga tushirishga ruxsat bering.\nRuxsat berilsa, bu ilova NFC teglarini qayta ishlash uchun tanlanishi mumkin."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Yoqish"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"<xliff:g id="LABEL">%s</xliff:g>: qayerda ijro etiladi"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Audio ijro etiladi:"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Shu qurilma"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Chaqiruv paytida ishlamaydi"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Chaqiruv qabul qilish"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Sukut"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Yoqish uchun quvvat menyusida “Quvvat tugmasini bosib turing” sozlamasini oʻzgartiring."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Tarmoq tafsilotlari"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Telefoningizdagi barcha ilovalarga qurilma nomi koʻrinadi. Qurilmalarga Bluetooth yoki Wi-Fi tarmoq orqali ulanganingizda, Wi-Fi hotspot sozlaganingizda boshqa foydalanuvchilarni ularni koʻrishi mumkin."</string>
     <string name="devices_title" msgid="649715719278562515">"Qurilmalar"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Tarmoqni tanlash"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Ulanmagan"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Nomi"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Rang (mos ilovalar uchun)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Saqlash"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"SIM ishlatish"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Bu SIM kartadan foydalanish"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Oʻchiq"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Bu SIM kartani faolsizlantirish uchun uni olib tashlang"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"<xliff:g id="CARRIER">%1$s</xliff:g> tarmoq operatorini faollashtirish uchun bosing"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"SIM axborotini tozalash"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Tarmoq turi"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Tarmoq rejimini almashtiring"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Tarmoq turi"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Paketlar narxlari haqidagi ma’lumotni internet provayderingizdan olishingiz mumkin."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Ilovalar sarflagan trafik"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Notanish tarmoq rejimi: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Inkor qilish"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Internetga ulanish nuqtalari (APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"<xliff:g id="CARRIER">%1$s</xliff:g> bilan ishlamaydi"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> tanlansinmi?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"SIM kartadagi internetga almashsinmi?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ishlatilsinmi?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Faqat bitta SIM kartani faollashtirish mumkin.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> yoqilganda <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> xizmati bekor qilinmaydi."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Faqat 1 ta eSIM kartani faollashtirish mumkin.\n\n<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> yoqilganda <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> xizmati bekor qilinmaydi."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Faqat bitta SIM kartani faollashtirish mumkin.\n\nAlmashganda <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> aloqasini bekor qilmaydi."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Bir vaqtda 2 ta SIM karta ishlatish mumkin. <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ishlatish uchun narigi SIM kartani faolsizlantiring."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Bunga almashish: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> operatorini faolsizlantiring"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Kerak emas"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Bekor qilish"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Almashtirish"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Faolsizlantirish"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM karta faollashmadi"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM kartani qaytadan yoqing. Agar muammo davom etsa, qurilmangizni qayta ishga tushiring."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"SIM kartangizni sozlang"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Bu qurilmada bir nechta SIM kartadan foydalanish uchun mobil tarmoq parametrlarini sozlang"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"SIM kartalaringizni yorliqlang"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Chaqiruvlar amalga oshirganingizda, SMS yuborganingizda va mobil internetdan foydalanganingizda hamda Sozlamalarda bu yorliqlar koʻrinadi"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM karta yorligʻi"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Yorliq"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Ishlatish uchun SIM kartani tanlang"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Bir vaqtda 2 ta SIM karta ishlatish mumkin"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Asosiy SIM kartangizni sozlang"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Chaqiruvlar, SMS va mobil internet uchun standart holatda qaysi SIM kartadan foydalanishni tanlang"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Asosiy SIM kartalaringiz"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Chaqiruvlar"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Matnlar"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Mobil internetni avtoalmashtirish"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Qamrovi va mavjudligiga qarab istalgan SIM kartaning mobil internetidan foydalaning"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Faqat internet"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Sozlash"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Keyingisi"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mobil tarmoq"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Telefon raqami"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM yorligʻi va rangi"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Tarmoqni faollashtirish"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Aloqa operatorlarini oʻzaro almashtirish"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> faol"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Mobil internet, chaqiruv funksiyalari va SMS xabarlardan keyinroq foydalanishni istasangiz, tarmoq sozlamalarini oching"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Bu eSIM karta oʻchirilsinmi?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Agar bu SIM karta maʼlumotlari tozalansa, ushbu qurilmadan <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> xizmati ham tozalab tashlanadi.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> xizmati bekor qilinmaydi."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Tozalash"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"SIM karta axboroti tozalanmoqda…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"SIM karta axboroti tozalanmadi"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Bu SIM karta axboroti xatolik sabab tozalanmadi.\n\nQurilmani qayta ishga tushirib, yana urining."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Qurilmaga ulanish"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"<xliff:g id="APPNAME">%1$s</xliff:g> ilovasi qurilmangizga ulanish uchun vaqtinchalik Wi‑Fi tarmoqdan foydalanmoqchi"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Qurilmalar topilmadi. Qurilmalar yoniq va tarmoqda ekanligi tekshiring."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Favqulodda qoʻngʻiroqlar"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Aloqa operatoringiz Wi-Fi chaqiruvlar orqali Favqulodda qoʻngʻiroqlar uchun mos emas.\nQurilma favqulodda qoʻngʻiroq bajarish uchun avtomatik ravishda mobil tarmoqdan foydalanadi.\nFavqulodda qoʻngʻiroqlar faqatgina mobil aloqa qamrovi ichida ishlaydi."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Chaqiruvlar sifatini oshirish uchun Wi-Fi tarmoqdan foydalaning"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Zaxiraviy chaqiruv"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ishlamaganda yoki roumingda <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> uchun SIM karta mobil internetidan foydalaning."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"zaxiraviy chaqiruv"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"MMS xabar keldi"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS xabar yuborilmadi"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Mobil internet nofaolligida <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> orqali MMS xabarlashuvga ruxsat berish uchun bosing"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Ish siyosati haqida axborot"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Sozlamalar AT administratori tomonidan boshqariladi"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"16 KB sahifa hajmi bilan yoqish"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Qurilmani 16 KB sahifa hajmini dastaklaydigan yadro bilan yoqish"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"16 KB sahifa hajmi bilan mos yadro bilan qayta yoqilsinmi?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"OGOHLANTIRISH: Ayrim ilovalar bu rejim bilan mos kelmasligi mumkin. Tasdiqlangandan keyin qurilma qayta yoqiladi."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"4 KB sahifa hajmi bilan mos yadro bilan qayta yoqilsinmi?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Tasdiqlangandan keyin qurilma qayta yoqiladi."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"16 KB sahifa hajmi bilan mos yadroga yangilanmadi."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Oʻzgarish tatbiq qilinmoqda"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Xatoliklarni xabar qilish vositasi"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Qurilmadagi qaysi ilova xatoliklarni xabar qilish vositasi bilan ishlashini aniqlaydi."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Shaxsiy"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Ijroga tez qaytish, media pleyer Tezkor sozlamalarda chiqadi"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Multimedia ijrosini ekran qulfida chiqarish"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Ijroni tezkor davom ettirish, multimedia pleyeri ekran qulfida chiqadi"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Media tavsiyalarni chiqarish"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Assistent media tavsiyalarini chiqarish"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Faoliyatingiz asosida"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Pleyerni berkitish"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Pleyerni chiqarish"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM kartalar"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Faol"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Nofaol"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g> uchun birlamchi"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"chaqiruvlar"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Mos mediadan olingan audio yanada qiziqarli chiqadi"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Boshni kuzatish"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ovoz tabiiyroq chiqishi uchun boshingizni harakatlantirganda oʻzgaradi"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Sinxronlash ruxsatlari"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> soatingizga <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g> qurilmasida ruxsat bergan ilova ruxsatlarini bering"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Telefondan ruxsatlarni sinxronlash"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Soatingizga bu telefonda ruxsat bergan ilova ruxsatlarini bering"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio qurilma turi"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Noaniq"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Karnay"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Oʻrtacha"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Yuqori"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Bu ilovani faqat 1 ta oynada ochish mumkin"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Yoniq"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Oʻchiq"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Oʻchiq"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Oʻchiq"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Yoniq"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Oʻchiq"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Yoniq"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Oʻchiq"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Yorqin ranglarni qora va qora ranglarni yorqin qilish"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Ekrandagi zum"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Oʻchiq"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Oʻchiq"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Yoniq"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Oʻchiq"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Yoniq"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Parol sozlandi"</string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index afbf7b3..d29136c 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Sau 1 phút"</item>
     <item msgid="1574040255478150028">"Sau 5 phút"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index c5f9f59..96c1ff4 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Bạn đã là nhà phát triển!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Không cần, bạn đã là nhà phát triển."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Vui lòng bật tùy chọn của nhà phát triển trước."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Chỉ người dùng quản trị mới dùng được các chế độ cài đặt dành cho nhà phát triển."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Hệ thống"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Đang sử dụng"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Không có dịch vụ"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Màn hình ngoài sẽ bật khi bạn gập thiết bị"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Chỉ trò chơi, video và nhiều nội dung khác"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Màn hình ngoài bật đối với các ứng dụng ngăn không cho màn hình chuyển sang chế độ rảnh"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Vuốt lên để tiếp tục"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Gập điện thoại và vuốt lên trên màn hình ngoài để tiếp tục sử dụng ứng dụng, hoặc đợi vài giây để màn hình tự khoá lại"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Không bao giờ"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Màn hình ngoài sẽ khoá khi bạn gập thiết bị"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Dùng chế độ tự động xoay"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Công cụ liên quan"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"Nhạc chuông và chuông báo"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Âm thanh trong cuộc gọi"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Nội dung nghe nhìn"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Thông báo và âm thanh hệ thống khác"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Âm thanh nội dung nghe nhìn và hệ thống"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Thông báo"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Theo mặc định, đầu ra âm thanh do từng ứng dụng xác định"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Thiết bị Bluetooth chưa được đặt tên"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Đang tìm kiếm"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Đã bật Bluetooth"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Xem tất cả"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Xem tất cả"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Bút cảm ứng"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Nhấp vào nút ở đuôi"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Hồ sơ công việc)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Kết nối với luồng Âm thanh năng lượng thấp"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Luồng âm thanh ở gần"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Luồng âm thanh"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Kết nối với một luồng âm thanh bằng mã QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Không tìm thấy luồng âm thanh ở gần nào."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Để chọn ngôn ngữ cho từng ứng dụng, hãy chuyển đến phần cài đặt ngôn ngữ ứng dụng."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Tìm hiểu thêm về ngôn ngữ ứng dụng"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Thay đổi ngôn ngữ hệ thống thành %s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Thêm %s vào ngôn ngữ được ưu tiên?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Thao tác này cho phép các ứng dụng và trang web biết rằng bạn cũng ưu tiên ngôn ngữ này."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Các chế độ cài đặt thiết bị và lựa chọn ưu tiên theo khu vực sẽ thay đổi."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Thay đổi"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"%s không dùng được"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"Thứ Bảy"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Nếu một ứng dụng không hỗ trợ lựa chọn ưu tiên theo khu vực, thì ứng dụng đó sẽ sử dụng chế độ cài đặt ngôn ngữ mặc định."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Tìm hiểu thêm về các lựa chọn ngôn ngữ ưu tiên."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Lựa chọn ưu tiên khác"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Cách xưng hô"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Thiết lập cách xưng hô với bạn"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Các ứng dụng có thể sử dụng cách xưng hô mà bạn thiết lập để cá nhân hoá việc xưng hô với bạn."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Chưa chỉ định"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Nữ giới"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Nam giới"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Trung tính"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Xoá ngôn ngữ đã chọn?}other{Xoá các ngôn ngữ đã chọn?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Văn bản sẽ hiển thị bằng ngôn ngữ khác."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Không thể xóa tất cả ngôn ngữ"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Vị trí"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Sử dụng vị trí"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Đang tắt"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Đang bật – # ứng dụng có quyền truy cập vào thông tin vị trí}other{Đang bật – # ứng dụng có quyền truy cập vào thông tin vị trí}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Đang bật / # ứng dụng có quyền truy cập vào thông tin vị trí}other{Đang bật / # ứng dụng có quyền truy cập vào thông tin vị trí}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Đang tải…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Những ứng dụng có quyền đối với các Thiết bị ở gần có thể xác định vị trí tương đối của các thiết bị đã kết nối."</string>
     <string name="location_settings_footer_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>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Tìm hiểu thêm về chế độ Cài đặt vị trí."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Tìm hiểu thêm về chế độ Cài đặt vị trí"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Thay đổi quyền vị trí: Cài đặt &gt; Bảo mật &amp; quyền riêng tư &gt; Kiểm soát quyền riêng tư"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Để đạt kết quả tốt nhất, hãy sử dụng miếng bảo vệ màn hình có chứng nhận Made for Google. Với các miếng bảo vệ màn hình khác, thiết bị có thể không nhận dạng được dấu vân tay của con bạn."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Mở khoá bằng đồng hồ"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Khi bạn thiết lập tính năng Mở khóa bằng khuôn mặt và Mở khóa bằng vân tay, điện thoại của bạn sẽ yêu cầu bạn cung cấp vân tay khi bạn đeo khẩu trang hoặc ở chỗ tối.\n\nBạn có thể mở khoá bằng đồng hồ khi điện thoại không nhận dạng được khuôn mặt hoặc vân tay của bạn."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Bạn có thể mở khoá bằng đồng hồ khi điện thoại không nhận dạng được vân tay của bạn."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Bạn có thể mở khoá bằng đồng hồ khi điện thoại không nhận dạng được khuôn mặt của bạn."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Khi bạn thiết lập tính năng Mở khoá bằng khuôn mặt và Mở khoá bằng vân tay, điện thoại của bạn sẽ yêu cầu bạn cung cấp vân tay khi bạn đeo khẩu trang hoặc ở chỗ tối.\n\nTính năng Mở khoá bằng đồng hồ là một cách thuận tiện khác để mở khoá điện thoại của bạn, chẳng hạn như khi ngón tay bạn bị ướt hoặc không nhận diện được khuôn mặt."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"Tính năng Mở khoá bằng đồng hồ là một cách thuận tiện khác để mở khoá điện thoại của bạn, chẳng hạn như khi không nhận diện được vân tay của bạn."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"Tính năng Mở khoá bằng đồng hồ là một cách thuận tiện khác để mở khoá điện thoại của bạn, chẳng hạn như khi ngón tay bạn bị ướt hoặc không nhận diện được khuôn mặt."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Dùng vân tay hoặc đồng hồ để"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Dùng khuôn mặt hoặc đồng hồ để"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Dùng khuôn mặt, vân tay hoặc đồng hồ để"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Đã thêm khuôn mặt và <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Đã thêm khuôn mặt, vân tay và <xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Đã thêm khuôn mặt, vân tay và <xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Mở khoá từ xa bằng Authenticator"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Đã thêm đồng hồ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Thiết lập đồng hồ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Mở khoá bằng đồng hồ là một tính năng tiện lợi giúp bạn mở khoá điện thoại khi tay bạn dính nước hoặc khi điện thoại không nhận dạng được khuôn mặt của bạn.\n\nBạn có thể dùng đồng hồ của mình để mở khoá điện thoại bằng cách:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Để sau"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Tiếp tục"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Xem thêm"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cách thức hoạt động"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Bạn phải mở khoá đồng hồ, đeo đồng hồ trên tay và để trong phạm vi của điện thoại này. Khi đeo đồng hồ trên tay, bạn không cần phải mở khoá đồng hồ thêm lần nữa."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Khi điện thoại mở khoá, bạn sẽ nhận được thông báo trên đồng hồ. Nếu điện thoại được mở khoá khi bạn không định làm vậy, hãy nhấn vào thông báo để khoá điện thoại lại."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Bạn nắm quyền kiểm soát"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Lúc nào bạn cũng có thể mở phần Cài đặt để xoá đồng hồ của mình khỏi tính năng Mở khoá bằng đồng hồ"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Nhấn vào thông báo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Vuốt màn hình khoá từ dưới lên"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Chọn đồng hồ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Những đồng hồ hỗ trợ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Huỷ"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Xác nhận"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Bạn đã hoàn tất!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Giờ đây, bạn có thể dùng đồng hồ của mình để mở khoá điện thoại này bằng cách vuốt màn hình khoá từ dưới lên hoặc nhấn vào thông báo"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Xong"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Mở khoá bằng đồng hồ"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Bạn có thể dùng đồng hồ của mình để mở khoá điện thoại bằng cách vuốt màn hình khoá từ dưới lên hoặc nhấn vào một thông báo"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Để sử dụng tính năng Mở khoá bằng đồng hồ, đồng hồ của bạn phải được mở khoá, đeo trên tay, nằm trong phạm vi của điện thoại và được kết nối với điện thoại. Nếu kết nối bị gián đoạn, bạn sẽ phải mở khoá điện thoại trước khi sử dụng tính năng Mở khoá bằng đồng hồ.\n\nLưu ý:\nMỗi lần, bạn chỉ có thể thiết lập một đồng hồ. Nếu muốn thêm đồng hồ khác thì trước tiên, bạn phải xoá đồng hồ hiện tại."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Tìm hiểu thêm về tính năng Mở khoá bằng đồng hồ"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Thêm đồng hồ"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Xoá đồng hồ"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Mở khoá bằng khuôn mặt và vân tay cho công việc"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cần thiết lập"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Bảo mật"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Quyền riêng tư"</string>
     <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="2274405892301976238">"Luôn khoá và ẩn các ứng dụng riêng tư"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Đưa các ứng dụng riêng tư vào một không gian riêng biệt mà bạn có thể ẩn hoặc khoá"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Khoá không gian riêng tư"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Bạn có thể mở khoá Không gian riêng tư giống như 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="private_space_screen_lock_title" msgid="8679383894967823163">"Sử dụng phương thức khoá màn hình thiết bị"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Mở khoá bằng khuôn mặt và vân tay"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Mở khoá bằng vân tay"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Mở khoá bằng khuôn mặt"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Nhấn để thiết lập"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Tính năng Mở khoá bằng vân tay cho không gian riêng tư"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Tính năng Mở khoá bằng khuôn mặt cho không gian riêng tư"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Cách mở khoá"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Giống như phương thức khoá màn hình thiết bị"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Chọn một khoá mới cho Không gian riêng tư?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Tự động khoá"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Tự động khoá không gian riêng tư"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Bạn có thể tự động khoá không gian riêng tư của mình nếu không sử dụng thiết bị trong một khoảng thời gian"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Mỗi khi khoá thiết bị"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Sau 5 phút không hoạt động"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Không bao giờ"</string>
+    <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_delete_title" msgid="3075645119800272800">"Xoá 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="private_space_unlocked" msgid="9091600948712932046">"Đã mở khoá 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="7436025227616244687">"Để dùng Không gian riêng tư, hãy thiết lập 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="private_space_cancel_label" msgid="379259667396956886">"Huỷ"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Thiết lập"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Thiết lập không gian riêng tư"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Đưa các ứng dụng riêng tư vào một không gian riêng biệt mà bạn có thể ẩn hoặc khoá"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Cơ chế hoạt động"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"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="private_space_protected_lock_text" msgid="3926344387256377994">"Ứng dụng trong không gian riêng tư được bảo vệ bằng khoá"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Thông báo của các ứng dụng trong không gian riêng tư của bạn sẽ bị ẩn khi tính năng này đang khoá"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"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ư và một số chế độ cài đặt khác khi không gian riêng tư đang khoá.\n\nKhông chuyển được không gian riêng tư của bạn sang thiết bị mới. Bạn sẽ cần thiết lập một không gian riêng tư khác nếu muốn sử dụng không gian đó trên một thiết bị khác.\n\nBất cứ ai kết nối thiết bị của bạn với máy tính hoặc cài đặt ứng dụng gây hại trên thiết bị của bạn đều có thể truy cập vào không gian riêng tư của bạn."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Đang thiết lập không gian riêng tư…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Thông báo của các ứng dụng trong không gian riêng tư sẽ bị ẩn khi tính năng này đang khoá"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Mở khoá không gian riêng tư để chia sẻ ảnh hoặc tệp từ các ứng dụng trong không gian riêng tư"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Một số ứng dụng đã được cài đặt vào không gian riêng tư của bạn"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Không thiết lập được không gian riêng tư"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Thử lại"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Dùng khoá màn hình để mở khoá không gian riêng tư?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Bạn có thể mở khoá không gian riêng tư theo cách tương tự như 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="private_space_use_screenlock_label" msgid="9182153443192032782">"Dùng phương thức khoá màn hình"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Chọn phương thức khoá mới"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Đã hoàn tất!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Để truy cập không gian riêng tư của bạn, hãy mở danh sách ứng dụng rồi di chuyển xuống"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Xong"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Di chuyển xuống để tìm không gian riêng tư"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Chọn một phương thức khoá cho không gian riêng tư"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Bạn có thể mở khoá không gian riêng tư bằng vân tay của mình. Để bảo mật, lựa chọn này yêu cầu bạn phải có một phương thức khoá dự phòng."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Đặt mã PIN cho không gian riêng tư"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Đặt mật khẩu cho không gian riêng tư"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Đặt hình mở khoá cho không gian riêng tư"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Cách cho hiện Không gian riêng tư (Không phải UX chính thức)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Mở ứng dụng Cài đặt"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Nhấn vào Bảo mật và quyền riêng tư &gt; Không gian riêng tư &gt; Ẩn Không gian riêng tư khi khoá"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Chuyển nút \"Ẩn Không gian riêng tư khi khoá\" sang tắt"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Ghi chú dành cho nhân viên của Google: Tính năng này vẫn đang trong quá trình phát triển"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Bạn cũng có thể cần nhập mã xác nhận này trên thiết bị khác."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Xác nhận ghép nối với bộ thiết bị"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Cho phép truy cập vào danh bạ và nhật ký cuộc gọi của bạn"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Cho phép truy cập cả danh bạ và nhật ký cuộc gọi"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Thông tin sẽ được sử dụng cho tính năng thông báo cuộc gọi và nhiều tính năng khác"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Không thể kết nối với <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Thiết bị có sẵn"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Bật Bluetooth để kết nối với thiết bị khác ở gần"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Ở chế độ trên máy bay"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Thông báo về mạng công cộng"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Thông báo khi có mạng công cộng chất lượng cao"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Cho phép kết nối với mạng WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP là một giao thức bảo mật cũ và kém an toàn hơn"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Nhà mạng của bạn không cho phép kết nối với mạng WEP vì mạng này kém an toàn hơn"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Tự động bật Wi-Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"Wi-Fi sẽ bật lại khi ở gần các mạng đã lưu chất lượng cao, chẳng hạn như mạng gia đình của bạn"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Không hoạt động vì đã tắt vị trí. Hãy bật "<annotation id="link">"vị trí"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Chế độ Quét tìm Wi-Fi cho phép các ứng dụng và dịch vụ quét tìm mạng Wi‑Fi bất kỳ lúc nào, ngay cả khi Wi-Fi tắt. Chế độ này có thể cải thiện các tính năng và dịch vụ dựa trên vị trí."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Bật"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Đã bật tính năng quét tìm Wi‑Fi"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Mạng này dùng một giao thức bảo mật cũ và kém an toàn hơn"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"<xliff:g id="NAME">%1$s</xliff:g> đã bị chặn"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Mạng này dùng một giao thức bảo mật cũ hơn có tên là WEP, giao thức này cũng kém an toàn hơn. Nếu quyết định vẫn kết nối, bạn có thể cho phép mạng WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Nhà mạng của bạn không cho phép kết nối với mạng này vì mạng này dùng một giao thức bảo mật cũ và kém an toàn hơn"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Cho phép WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Đóng"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Tùy chọn nâng cao"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Danh sách thả xuống của Tùy chọn nâng cao"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"mở rộng"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Luôn sử dụng Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Không bao giờ hiển thị lại"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Kết nối"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Đã bật Wi-Fi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Đã kết nối với <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Đang kết nối với <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Đang kết nối…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Không thể kết nối với mạng"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Đang nằm ngoài vùng phủ sóng của mạng"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Xóa"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Sửa đổi"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Không thể xóa mạng"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Lưu"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Không thể lưu mạng"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Hủy"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Dữ liệu di động"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> – Đang sạc"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> – Đang sạc"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Kết nối điểm phát sóng"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Cường độ tín hiệu kết nối"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mạng đã lưu"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Chưa đặt mật khẩu"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Tên điểm phát sóng"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Mật khẩu điểm phát sóng"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"Băng tần AP"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Tự động tắt điểm phát sóng"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Khi không có thiết bị nào kết nối"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Tăng cường khả năng tương thích"</string>
@@ -1008,8 +1149,10 @@
     <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 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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Tắt tốc độ khung hình mặc định cho trò chơi"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Tắt tuỳ chọn giới hạn tốc độ khung hình tối đa cho trò chơi ở <xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"Hình ảnh mượt"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Tính năng phát hiện ánh mắt sử dụng máy ảnh trước để xem liệu có ai đang nhìn vào màn hình hay không. Tính năng này hoạt động trên thiết bị nên sẽ không bao giờ lưu trữ hoặc gửi hình ảnh cho Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Bật tính năng phát hiện ánh mắt"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Giữ màn hình luôn bật khi bạn nhìn vào"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Thời gian chờ khoá màn hình dài hơn sẽ tốn nhiều pin hơn."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Máy ảnh bị khóa"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Bạn phải mở khóa máy ảnh để sử dụng tính năng Phát hiện khuôn mặt"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Bạn phải mở khóa máy ảnh để dùng tính năng Phát hiện ánh mắt"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (khe cắm thẻ SIM <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (khe cắm thẻ SIM <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (chính)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Để xem, hãy chọn mạng đã lưu"</string>
+    <string name="status_imei" msgid="5719752369250485007">"Số IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"Số IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Phiên bản PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Mức pin"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Dùng chung"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Các chế độ cài đặt dùng chung"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Lưu"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Hủy"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Không được để trống trường Tên."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN không được để trống."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Trường MCC phải có 3 chữ số."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Trường MNC phải có 2 hoặc 3 chữ số."</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Nhà cung cấp dịch vụ không cho phép thêm APN thuộc loại %s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Trường MMSC phải hợp lệ."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Đang khôi phục cài đặt APN mặc định."</string>
     <string name="menu_restore" msgid="4310539620115151551">"Đặt lại về mặc định"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Đã đặt lại xong các tùy chọn cài đặt APN mặc định về trạng thái ban đầu."</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Đặt lại"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"Đã đặt lại Bluetooth và Wi‑Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Xoá eSIM"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Thao tác này sẽ không hủy gói dịch vụ di động nào. Để tải SIM thay thế xuống, hãy liên hệ với nhà mạng của bạn."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Đặt lại chế độ cài đặt"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Bạn muốn đặt lại tất cả chế độ cài đặt mạng? Bạn không thể hủy thao tác này sau khi thực hiện."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Đặt lại mọi chế độ cài đặt mạng và xoá eSIM? Bạn không thể huỷ thao tác này."</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Đặt lại?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Người dùng này không được phép đặt lại mạng"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Cài đặt mạng đã được đặt lại"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Không thể xóa SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Không xoá được eSIM do có lỗi.\n\nHãy khởi động lại thiết bị rồi thử lại."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Xóa mọi dữ liệu (đặt lại về trạng thái ban đầu)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Xóa mọi dữ liệu (đặt lại về trạng thái ban đầu)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Nhạc"</li>\n<li>"Ảnh"</li>\n<li>"Dữ liệu khác của người dùng"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Thao tác này sẽ không hủy gói dịch vụ di động của bạn."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Tất cả thông tin cá nhân và ứng dụng đã tải xuống của bạn đều bị xóa. Bạn không thể hủy thao tác này sau khi thực hiện."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Tất cả thông tin cá nhân của bạn, kể cả SIM và ứng dụng đã tải xuống, đều bị xóa. Bạn không thể hủy thao tác này sau khi thực hiện."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Xóa mọi dữ liệu?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Người dùng này không thể thực hiện thao tác đặt lại về trạng thái ban đầu"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Đang xóa"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"Điểm phát sóng, USB, Bluetooth, Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Hiện không chia sẻ Internet với các thiết bị khác"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Đang tắt"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Chia sẻ Internet"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Không dùng điểm phát sóng Wi‑Fi"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Chỉ chia sẻ kết nối Internet qua USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Chỉ chia sẻ kết nối Internet qua Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Chỉ chia sẻ kết nối Internet qua Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Chỉ chia sẻ kết nối Internet qua USB và Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Chỉ chia sẻ kết nối Internet qua USB và Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Chỉ chia sẻ kết nối Internet qua Bluetooth và Ethernet"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Chỉ chia sẻ kết nối Internet qua USB, Bluetooth và Ethernet"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Chia sẻ Internet qua USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Chia sẻ Internet qua Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Chia sẻ Internet qua Ethernet"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Dùng tính năng điểm phát sóng và chia sẻ Internet để cho phép các thiết bị khác kết nối với Internet thông qua dữ liệu di động hoặc Wi-Fi của bạn. Các ứng dụng cũng có thể tạo điểm phát sóng để chia sẻ nội dung với thiết bị ở gần."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Trợ giúp"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Mạng di động"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Gói dịch vụ di động"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Ứng dụng SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Thay đổi ứng dụng SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Sử dụng <xliff:g id="NEW_APP">%1$s</xliff:g> thay vì <xliff:g id="CURRENT_APP">%2$s</xliff:g> làm ứng dụng SMS của bạn?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Thay đổi trình hỗ trợ Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Sử dụng <xliff:g id="NEW_APP">%1$s</xliff:g> thay cho <xliff:g id="CURRENT_APP">%2$s</xliff:g> để quản lý các kết nối mạng của bạn?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Sử dụng <xliff:g id="NEW_APP">%s</xliff:g> để quản lý các kết nối mạng của bạn?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"Nhà cung cấp dịch vụ SIM không xác định"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> không có trang web cấp phép xác định nào"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Vui lòng lắp thẻ SIM và khởi động lại"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Vui lòng kết nối internet"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Các yêu cầu gần đây về vị trí"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Vị trí của hồ sơ công việc"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Quyền truy cập thông tin vị trí cho ứng dụng"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Xóa quyền truy cập"</string>
     <string name="controls_label" msgid="8671492254263626383">"Các điều khiển"</string>
     <string name="force_stop" msgid="2681771622136916280">"Buộc dừng"</string>
+    <string name="archive" msgid="9074663845068632127">"Lưu trữ"</string>
+    <string name="restore" msgid="7622486640713967157">"Khôi phục"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Tổng"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Kích thước ứng dụng"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Ứng dụng bộ lưu trữ USB"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Không thể tính toán kích thước gói."</string>
     <string name="version_text" msgid="7628938665256107608">"Phiên bản <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Chuyển"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Không lưu trữ được"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"Đã lưu trữ <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Không khôi phục được"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Đang khôi phục <xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Đang diễn ra một hoạt động di chuyển khác."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Không đủ dung lượng lưu trữ."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Ứng dụng không tồn tại."</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Bàn phím ảo có sẵn"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Quản lý bàn phím ảo"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Tuỳ chọn"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Hỗ trợ tiếp cận"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Bàn phím vật lý"</string>
     <string name="show_ime" msgid="4334255501724746849">"Sử dụng bàn phím ảo"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Hiện bàn phím ảo trên màn hình trong khi bàn phím vật lý đang hoạt động"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Phím nảy"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Bật Phím nảy để hỗ trợ tiếp cận cho bàn phím vật lý"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Phím cố định"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Bật Phím cố định để hỗ trợ tiếp cận cho bàn phím vật lý"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Phím tắt"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Hiện danh sách phím tắt"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Công cụ và bàn phím hồ sơ công việc"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Sắp xếp theo thời gian dùng"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Sắp xếp theo lần dùng gần đây nhất"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Sắp xếp theo tên ứng dụng"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Sử dụng lần cuối"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Lần sử dụng gần đây nhất"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"không bao giờ"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Thời gian sử dụng"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Hỗ trợ tiếp cận"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Cài đặt hỗ trợ tiếp cận"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Vẫn tiếp tục"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Huỷ"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Cài đặt phóng to"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Phóng to bằng cách nhấn 3 lần"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Phóng to bằng phím tắt"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Phóng to bằng phím tắt và nhấn 3 lần"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Giới thiệu về <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"Nhấn đúp vào màn hình bằng hai ngón tay để 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="860548190334486449">"Để bắt đầu và dừng phóng to, hãy dùng 2 ngón tay nhấn đúp 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Để sử dụng tính năng hỗ trợ tiếp cận, 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_button" msgid="2031773187678948436">"Đã hiểu"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Cài đặt nút hỗ trợ tiếp cận"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Cài đặt nút"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Phím tắt dành cho <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Nút hỗ trợ tiếp cận"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Cử chỉ hỗ trợ tiếp cận"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"Nhấn đúp vào màn hình bằng hai ngón tay"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"nhấn đúp vào màn hình bằng hai ngón tay"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Nhấn nhanh vào màn hình {0,number,integer} lần bằng 2 ngón tay"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Nhấn 3 lần vào màn hình"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Tìm hiểu thêm về cử chỉ và nút hỗ trợ tiếp cận"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Sử dụng nút hỗ trợ tiếp cận. Bạn không thể sử dụng cử chỉ này với thao tác bằng 3 nút."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Truy cập nhanh vào bộ tính năng hỗ trợ tiếp cận"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Để bắt đầu, hãy làm theo các bước sau:"</b>\n"1. Chuyển đến phần cài đặt hỗ trợ tiếp cận\n2. Chọn một tính năng rồi nhấn vào phím tắt\n3. Chọn xem bạn muốn dùng nút hay cử chỉ để sử dụng tính năng này"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Để bắt đầu, hãy làm theo các bước sau:"</b>\n"1. Chuyển đến phần cài đặt hỗ trợ tiếp cận\n2. Chọn một tính năng rồi nhấn vào phím tắt\n3. Chọn một nút để sử dụng tính năng này"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Cách bắt đầu&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Mở chế độ cài đặt hỗ trợ tiếp cận&lt;br/&gt; {1,number,integer}. Chọn một tính năng rồi nhấn vào lối tắt&lt;br/&gt; {2,number,integer}. Chọn xem bạn muốn dùng nút hay cử chỉ để sử dụng tính năng đó&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Cách bắt đầu&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Mở chế độ cài đặt hỗ trợ tiếp cận&lt;br/&gt; {1,number,integer}. Chọn một tính năng rồi nhấn vào lối tắt&lt;br/&gt; {2,number,integer}. Chọn nút để sử dụng tính năng đó&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Sử dụng nút hoặc cử chỉ"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Vị trí"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Kích thước"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Kết thúc cuộc gọi bằng nút nguồn"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Con trỏ chuột lớn"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Tăng kích thước con trỏ chuột"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Áp dụng chế độ tối cho mọi ứng dụng"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Áp dụng cho ứng dụng không có giao diện tối riêng. Một số ứng dụng sẽ lỗi hiển thị, như đảo ngược màu."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Xóa hiệu ứng động"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Giảm chuyển động trên màn hình"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Âm thanh đơn âm"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Dịch vụ này có thể theo dõi các hoạt động tương tác của bạn với một ứng dụng hoặc bộ cảm biến phần cứng, cũng như có thể thay mặt bạn tương tác với các ứng dụng."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Cho phép"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Từ chối"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Dừng"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Hủy"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Dừng <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Tính năng <xliff:g id="SERVICE">%2$s</xliff:g> sẽ dừng khi bạn nhấn <xliff:g id="STOP">%1$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Tắt"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Tiếp tục"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Tắt <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Chưa có dịch vụ nào được cài đặt"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Không có dịch vụ nào được chọn"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Không có mô tả nào được cung cấp."</string>
     <string name="settings_button" msgid="2195468788019730377">"Cài đặt"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"nhạy cảm với ánh sáng, chứng sợ ánh sáng, giao diện tối, chứng đau nửa đầu, chứng nhức đầu, chế độ đọc, chế độ ban đêm, giảm độ sáng, điểm trắng"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Dễ sử dụng, dễ truy cập, trợ giúp, hỗ trợ"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"thị giác, thính giác, khiếm thị, khiếm thính, vận động, khéo léo, hỗ trợ, trợ giúp, dễ sử dụng, dễ tiếp cận, tay, giúp đỡ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Phóng to cửa sổ, Thu phóng, Phóng to, Thị lực kém, Tăng kích cỡ, làm cho lớn hơn"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Phụ đề, phụ đề chi tiết, CC, Chép lời trực tiếp, nặng tai, suy giảm thính lực, chép lời theo thời gian thực bằng máy tính (CART), chuyển lời nói thành văn bản"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"độ tương phản màu"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"vận động, chuột"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"thiết bị trợ thính, người có thính giác kém, suy giảm thính lực, ốc tai điện tử, thiết bị tăng âm, bộ xử lý âm thanh"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"vận động, chuột, chuột gắn ngoài, chuột gắn đầu, chuột thích ứng, xe lăn, cần điều khiển"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"thiết bị trợ thính, người có thính giác kém, suy giảm thính lực, ốc tai điện tử, thiết bị tăng âm, bộ xử lý âm thanh, trung tâm nhận cuộc gọi cứu hộ công cộng"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"nặng tai, suy giảm thính lực, phụ đề, Máy chữ điện báo, máy điện báo đánh chữ, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"ba nút"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"khéo léo, vận động, người cao tuổi, viêm khớp, RSI, đột quỵ, run rẩy, bệnh đa xơ cứng, bại não, run, chấn thương do căng cơ lặp đi lặp lại, tay"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"chậm trễ, khéo léo, người cao tuổi"</string>
     <string name="print_settings" msgid="8519810615863882491">"In"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Tắt"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 dịch vụ in đang bật}other{# dịch vụ in đang bật}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Xem các ứng dụng có mức sử dụng pin cao nhất"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Quá trình sạc được tối ưu hoá để bảo vệ pin"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Để giúp kéo dài thời lượng pin, quá trình sạc sẽ được tối ưu hoá"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Quá trình sạc được tối ưu hoá để bảo vệ pin"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Để giúp kéo dài tuổi thọ pin, quá trình sạc sẽ được tối ưu hoá khi bạn gắn thiết bị vào đế"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Quá trình sạc được tối ưu hoá để bảo vệ pin"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Để giúp kéo dài tuổi thọ pin, quá trình sạc sẽ được tối ưu hoá khi bạn gắn thiết bị vào đế"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Sạc đến khi đầy"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Để bảo vệ pin, quá trình sạc sẽ được tối ưu hoá trong lần tới khi bạn gắn máy tính bảng vào đế"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Tìm hiểu thêm về việc quá trình sạc bị tạm dừng"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Tiếp tục sạc"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Bao gồm hoạt động công suất cao trong nền"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Xóa"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Hủy"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Sạc đến khi đầy"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Có vấn đề với phụ kiện sạc"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Tìm hiểu thêm về chế độ sạc không tương thích"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Trình quản lý pin"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Tự động quản lý ứng dụng"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"hiện tại"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> – <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Biểu đồ mức sử dụng pin"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Biểu đồ mức sử dụng pin hằng ngày"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Biểu đồ mức sử dụng pin hằng giờ"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Phần trăm pin từ <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> đến <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Mức sử dụng pin từ lần sạc đầy gần nhất"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Mức sử dụng pin: <xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Thời gian sử dụng thiết bị kể từ lần sạc đầy gần đây nhất"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Tín hiệu quay số khẩn cấp"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Đặt chế độ khi cuộc gọi khẩn cấp được thực hiện"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sao lưu"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Đang bật"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Đang tắt"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Sao lưu &amp; khôi phục"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Dữ liệu cá nhân"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sao lưu dữ liệu của tôi"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Tên"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Loại"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Địa chỉ máy chủ"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"Mã hóa PPP (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Bảo mật L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Số nhận dạng IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Khóa chia sẻ trước IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Chứng chỉ người dùng IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Chứng chỉ IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"Chứng chỉ máy chủ IPSec"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Hiện tùy chọn nâng cao"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Miền tìm kiếm DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"Máy chủ DNS (ví dụ: 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Các tuyến chuyển tiếp (vd: 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Tên người dùng"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Mật khẩu"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Lưu thông tin tài khoản"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(không được sử dụng)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(không xác minh máy chủ)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(đã nhận từ máy chủ)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Loại VPN này không thể duy trì kết nối mọi lúc"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"VPN luôn bật chỉ hỗ trợ địa chỉ máy chủ dạng số"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Máy chủ DNS phải được chỉ định cho VPN luôn bật"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Địa chỉ máy chủ DNS phải có dạng số cho VPN luôn bật"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Thông tin đã nhập không hỗ trợ tính năng VPN luôn bật"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Hủy"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Loại bỏ"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Chặn các đường kết nối không qua VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Yêu cầu kết nối VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Không an toàn. Hãy cập nhật lên VPN IKEv2"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Không khởi động được VPN không được hỗ trợ"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Chọn một cấu hình VPN để luôn giữ kết nối. Lưu lượng truy cập mạng sẽ chỉ được cho phép khi kết nối với VPN này."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Không có"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"VPN luôn bật yêu cầu có địa chỉ IP cho cả máy chủ và DNS."</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Cảnh báo AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Nhận bản tin về bắt cóc trẻ em"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Lặp lại"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Bật Trình quản lý cuộc gọi"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Cho phép dịch vụ này quản lý cách thực hiện cuộc gọi của bạn."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Trình quản lý cuộc gọi"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Cảnh báo khẩn cấp không dây"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Nhà cung cấp dịch vụ mạng"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Tên điểm truy cập"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"ví"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"thanh toán, nhấn, khoản thanh toán"</string>
     <string name="keywords_backup" msgid="707735920706667685">"sao lưu"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"cử chỉ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"khuôn mặt, mở khóa, xác thực, đăng nhập"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"khuôn mặt, mở khóa, xác thực, đăng nhập, vân tay, sinh trắc học"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, phiên bản prl, imei sv"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Âm thanh bật nguồn"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Phụ đề trực tiếp"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Tự động tạo phụ đề cho nội dung nghe nhìn"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"Loa điện thoại"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Loa máy tính bảng"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Loa thiết bị"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Tai nghe có dây"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Âm thanh của nội dung nghe nhìn tương thích sẽ trở nên sống động hơn"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Đang tắt"</string>
@@ -3221,7 +3380,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Bạn muốn thông báo hiển thị trên màn hình khoá như thế nào?"</string>
     <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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Đã xóa các cuộc trò chuyện gần đây"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Đã xóa cuộc trò chuyện"</string>
     <string name="clear" msgid="5092178335409471100">"Xóa"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Xoá <xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Các cuộc trò chuyện ưu tiên và đã sửa đổi sẽ xuất hiện ở đây"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Sau khi bạn đánh dấu một cuộc trò chuyện là ưu tiên hoặc thực hiện bất kỳ sự thay đổi nào khác đối với các cuộc trò chuyện, thì những cuộc trò chuyện đó sẽ xuất hiện ở đây. \n\nĐể thay đổi chế độ cài đặt cuộc trò chuyện: \nVuốt từ đầu màn hình xuống để mở ngăn kéo xuống rồi chạm và giữ cuộc trò chuyện."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Thu nhỏ"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Đang tắt"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Ghim ứng dụng"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Tính năng ghim ứng dụng cho phép một ứng dụng liên tục hiện trên màn hình cho tới khi bỏ ghim. Bạn có thể sử dụng tính năng này để cho phép người mà bạn tin cậy chơi một trò chơi cụ thể chẳng hạn."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Khi bạn ghim ứng dụng, ứng dụng đã ghim có thể mở các ứng dụng khác và truy cập vào dữ liệu cá nhân. \n\nĐể dùng tính năng ghim ứng dụng, hãy làm như sau: 	\n1. Bật tính năng ghim ứng dụng 	\n2. Mở phần Tổng quan 	\n3. Nhấn vào biểu tượng ứng dụng ở đầu màn hình, sau đó nhấn vào Ghim"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Khi bạn ghim ứng dụng, ứng dụng đã ghim có thể mở các ứng dụng khác và truy cập vào dữ liệu cá nhân. \n\nNếu bạn muốn chia sẻ thiết bị của mình với người khác một cách an toàn, hãy thử sử dụng chế độ khách. \n\nĐể dùng tính năng ghim ứng dụng, hãy làm như sau: 	\n1. Bật tính năng ghim ứng dụng 	\n2. Mở phần Tổng quan 	\n3. Nhấn vào biểu tượng ứng dụng ở đầu màn hình, sau đó nhấn vào Ghim"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Khi bạn ghim một ứng dụng, ứng dụng đã ghim có thể mở ứng dụng khác và truy cập vào dữ liệu cá nhân. \n\nCách dùng tính năng ghim ứng dụng: 	\n{0,number,integer}. Bật tính năng ghim ứng dụng 	\n{1,number,integer}. Mở phần Tổng quan 	\n{2,number,integer}. Nhấn vào biểu tượng ứng dụng ở đầu màn hình, sau đó nhấn vào Ghim"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Khi bạn ghim một ứng dụng, ứng dụng đã ghim có thể mở ứng dụng khác và truy cập vào dữ liệu cá nhân. \n\nNếu bạn muốn cho người khác dùng thiết bị của mình nhưng vẫn giữ tính bảo mật, hãy thử sử dụng chế độ khách. \n\nCách dùng tính năng ghim ứng dụng: 	\n{0,number,integer}. Bật tính năng ghim ứng dụng 	\n{1,number,integer}. Mở phần Tổng quan 	\n{2,number,integer}. Nhấn vào biểu tượng ứng dụng ở đầu màn hình, sau đó nhấn vào Ghim"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Khi ghim ứng dụng: \n\n•	 Ứng dụng đã ghim có thể truy cập dữ liệu cá nhân (chẳng hạn như danh bạ và nội dung email) \n\n•	 Ứng dụng đã ghim có thể mở các ứng dụng khác \n\nChỉ sử dụng tính năng ghim ứng dụng với những người mà bạn tin tưởng."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Hỏi hình mở khóa trước khi bỏ ghim"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Hỏi mã PIN trước khi bỏ ghim"</string>
@@ -3569,6 +3740,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Chế độ cài đặt cho ứng dụng không dùng đến"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Tạm dừng hoạt động trong ứng dụng nếu không dùng"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Loại bỏ quyền, xoá tệp tạm thời và dừng thông báo"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Quản lý ứng dụng nếu không dùng"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Loại bỏ quyền, xoá tệp tạm thời, dừng thông báo, và lưu trữ ứng dụng"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Tất cả ứng dụng"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Ứng dụng đã cài đặt"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Ứng dụng tức thì"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"Còn trống"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Bộ nhớ do ứng dụng sử dụng"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 ứng dụng sử dụng bộ nhớ trong {time} vừa qua}other{# ứng dụng sử dụng bộ nhớ trong {time} vừa qua}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Bật chế độ phân tích mức sử dụng bộ nhớ"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Quy trình phân tích mức sử dụng bộ nhớ cần sử dụng thêm tài nguyên hệ thống."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Đã tắt chế độ phân tích bộ nhớ"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Tần suất"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Mức sử dụng tối đa"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Không sử dụng dữ liệu"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Hiện trên các ứng dụng khác"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Cho phép hiện trên các ứng dụng khác"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Cho phép ứng dụng này hiển thị trên các ứng dụng khác mà bạn đang dùng. Ứng dụng này có thể xem vị trí mà bạn nhấn vào hoặc thay đổi nội dung hiển thị trên màn hình."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Thay đổi đầu ra đa phương tiện"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Cho ứng dụng chuyển đổi đầu ra đa phương tiện"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Cho phép ứng dụng này chọn thiết bị được kết nối sẽ phát âm thanh hoặc video từ các ứng dụng khác. Nếu được cho phép, ứng dụng này sẽ truy cập được danh sách thiết bị hiện có (như tai nghe và loa), và có thể chọn thiết bị đầu ra nào sẽ được dùng để phát trực tuyến hoặc truyền âm thanh hoặc video."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Quyền truy cập vào mọi tệp"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Cải thiện tính năng kích hoạt bằng giọng nói"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Thiết bị này sử dụng hiểu biết riêng tư để cải thiện mô hình kích hoạt bằng giọng nói. Các ứng dụng có thể nhận được nội dung cập nhật tóm tắt và tổng hợp từ nhiều người dùng để đảm bảo quyền riêng tư trong khi vẫn có thể cải thiện mô hình này cho mọi người.\n\n"<a href="">"Tìm hiểu thêm về hiểu biết riêng tư"</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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"Cảnh báo dữ liệu khi dùng đến <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"Hạn mức dữ liệu <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Cảnh báo dữ liệu khi dùng đến <xliff:g id="ID_1">^1</xliff:g>/Hạn mức dữ liệu là <xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Cách tính dữ liệu của nhà mạng có thể khác với thiết bị của bạn."</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Không bao gồm dữ liệu do các nhà mạng sử dụng"</string>
     <string name="data_used_template" msgid="8229342096562327646">"Đã dùng <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Đặt cảnh báo dữ liệu"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Đã cập nhật <xliff:g id="ID_1">^2</xliff:g> trước"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Vừa được <xliff:g id="ID_1">^1</xliff:g> cập nhật xong"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Vừa cập nhật xong"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Xem gói"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Xem chi tiết"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Trình tiết kiệm dữ liệu"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Dữ liệu không hạn chế"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Mức sử dụng pin không bình thường"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Ô cài đặt nhanh dành cho nhà phát triển"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Tắt thời gian chờ ủy quyền adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Tắt tính năng tự động thu hồi các lượt ủy quyền adb đối với những hệ thống chưa kết nối lại trong khoảng thời gian mặc định (7 ngày) hoặc do người dùng đặt (tối thiểu 1 ngày)."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Dấu vết Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Tắt cảm biến"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Cài đặt hồ sơ công việc"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Tìm kiếm những người liên hệ trong các ứng dụng cá nhân bằng thư mục công việc"</string>
@@ -3962,7 +4144,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Vuốt lên từ góc dưới cùng để gọi ứng dụng trợ lý kỹ thuật số"</string>
     <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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Dịch vụ tự động điền"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Dịch vụ tự động điền mặc định"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Mật khẩu"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Các nhà cung cấp khác"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# mật khẩu}other{# mật khẩu}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"tự động, điền, tự động điền, mật khẩu"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Tắt tất cả dịch vụ?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Tính năng tự động điền sẽ không sử dụng được mật khẩu, khoá truy cập cũng như thông tin đã lưu khác khi bạn đăng nhập"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;Thay đổi dịch vụ bạn ưu tiên thành &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Từ nay, mật khẩu mới, khoá truy cập mới cũng như thông tin khác sẽ được lưu tại đây. &lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt; có thể dùng nội dung 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_enable_confirmation_message_title" msgid="1037501792652277829">"Sử dụng %1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Bạn chỉ bật được 5 dịch vụ"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Hãy tắt ít nhất là 1 dịch vụ để có thể thêm 1 dịch vụ khác"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s sử dụng nội dung trên màn hình của bạn để xác định thông tin có thể được tự động điền."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Giới hạn dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Bạn có thể đặt tối đa 5 dịch vụ dữ liệu, khoá truy cập và mật khẩu cùng lúc. Hãy tắt một dịch vụ nếu muốn thêm một dịch vụ khác."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Giới hạn về dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Bạn có thể chọn tối đa 5 dịch vụ dữ liệu, khoá truy cập và mật khẩu cùng lúc. Hãy tắt một dịch vụ nếu muốn thêm một dịch vụ khác."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Tắt"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Tự động điền"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Mức ghi nhật ký"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Bạn chỉ có thể sửa đổi các thay đổi về khả năng tương thích của ứng dụng đối với các ứng dụng có thể gỡ lỗi. Hãy cài đặt một ứng dụng có thể gỡ lỗi rồi thử lại."</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Phụ thuộc vào một cài đặt khác"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"Tài khoản"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d tài khoản"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Tên thiết bị"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Thông tin cơ bản"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Quy định và pháp lý"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Cho phép ứng dụng này khởi chạy khi một thẻ NFC được quét.\nNếu quyền này bật, ứng dụng sẽ xuất hiện dưới dạng lựa chọn mỗi khi có thẻ được phát hiện."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Phát nội dung nghe nhìn tới"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Phát <xliff:g id="LABEL">%s</xliff:g> trên"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Âm thanh sẽ phát ra"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Thiết bị này"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Không hoạt động khi có cuộc gọi"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Thực hiện cuộc gọi trên"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Tắt tiếng"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Để bật, trước tiên, hãy thay đổi tuỳ chọn \"Nhấn và giữ nút nguồn\" thành trình đơn nguồn."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Chi tiết mạng"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Tên thiết bị của bạn sẽ hiển thị với các ứng dụng trên điện thoại. 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ạng Wi-Fi hoặc thiết lập một điểm phát sóng Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Thiết bị"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Chọn mạng"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Đã ngắt kết nối"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Tên"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Màu (do các ứng dụng tương thích dùng)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Lưu"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Dùng SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Dùng SIM này"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Tắt"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Để tắt SIM này, hãy tháo thẻ SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Nhấn để kích hoạt <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Xóa SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Loại mạng ưu tiên"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Thay đổi chế độ hoạt động của mạng"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Loại mạng ưa thích"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Hãy liên hệ với nhà mạng của bạn để biết giá cước."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Mức sử dụng dữ liệu của ứng dụng"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Chế độ mạng <xliff:g id="NETWORKMODEID">%1$d</xliff:g> không hợp lệ. Bỏ qua."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Tên điểm truy cập"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Không sử dụng được khi kết nối với <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Chuyển sang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Chuyển sang dùng thẻ SIM?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Sử dụng <xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"Chỉ một SIM có thể hoạt động mỗi lần.\n\nKhi chuyển sang <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, dịch vụ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> của bạn sẽ không bị hủy."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"Chỉ 1 eSIM có thể hoạt động tại mỗi thời điểm.\n\nKhi bạn chuyển sang <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>, dịch vụ <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> của bạn sẽ không bị huỷ."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"Chỉ một SIM có thể hoạt động tại một thời điểm.\n\nKhi chuyển đổi SIM, dịch vụ <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> của bạn sẽ không bị hủy."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Bạn có thể dùng 2 SIM cùng lúc. Để dùng <xliff:g id="CARRIER_NAME">%1$s</xliff:g>, hãy tắt SIM khác."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Chuyển sang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Tắt <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Không, cảm ơn"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Hủy"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Chuyển"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Tắt thông báo"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Không thể kích hoạt SIM"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Hãy thử bật lại SIM. Nếu vấn đề vẫn xảy ra, vui lòng khởi động lại thiết bị."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Thiết lập SIM"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Thiết lập các lựa chọn ưu tiên về mạng di động để dùng nhiều SIM trên thiết bị này"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Đặt nhãn cho SIM"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Bạn sẽ thấy những nhãn này khi gọi điện, gửi tin nhắn văn bản, dùng dữ liệu và mở phần Cài đặt"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Nhãn SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Nhãn"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Chọn SIM bạn muốn dùng"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Bạn có thể dùng 2 SIM cùng lúc"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Đặt SIM chính"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Chọn SIM bạn muốn dùng theo mặc định cho cuộc gọi, tin nhắn văn bản và dữ liệu"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"SIM chính"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Cuộc gọi"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Tin nhắn văn bản"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Tự động chuyển đổi dữ liệu"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Dùng dữ liệu từ 1 trong 2 SIM tuỳ theo phạm vi phủ sóng và tình trạng mạng"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Chỉ dữ liệu"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Thiết lập"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Tiếp theo"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Mạng di động"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Số điện thoại"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Màu và nhãn SIM"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Kích hoạt mạng"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Chuyển nhà mạng"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> đang hoạt động"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Để sử dụng dữ liệu di động, các tính năng gọi điện và SMS vào lúc khác, hãy chuyển đến phần cài đặt mạng của bạn"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Xoá eSIM này?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Nếu bạn xóa SIM này, dịch vụ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sẽ bị xóa khỏi thiết bị này.\n\nDịch vụ của <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> sẽ không bị hủy."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Xóa"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Đang xóa SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Không thể xóa SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Không thể xóa SIM này do lỗi.\n\nHãy khởi động lại thiết bị rồi thử lần nữa."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Kết nối với thiết bị"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Ứng dụng <xliff:g id="APPNAME">%1$s</xliff:g> muốn dùng mạng Wi-Fi tạm thời để kết nối với thiết bị của bạn"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Không tìm thấy thiết bị nào. Đảm bảo rằng các thiết bị đang bật và sẵn sàng kết nối."</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Cuộc gọi khẩn cấp"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Nhà mạng của bạn không hỗ trợ các cuộc gọi khẩn cấp qua tính năng Gọi qua Wi‑Fi.\nKhi cần thực hiện cuộc gọi khẩn cấp, thiết bị sẽ tự động chuyển sang mạng di động.\nBạn chỉ có thể thực hiện cuộc gọi khẩn cấp ở các khu vực có mạng di động."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Sử dụng Wi‑Fi cho cuộc gọi để cải thiện chất lượng"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Gọi điện dự phòng"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Nếu <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> không có sẵn hoặc đang chuyển vùng, hãy dùng dữ liệu di động của SIM cho những cuộc gọi qua <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"gọi điện dự phòng"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Tin nhắn MMS đến"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Không thể gửi tin nhắn MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Nhấn để cho phép nhắn tin MMS qua <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> khi dữ liệu di động đang tắt"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Thông tin về chính sách công việc của bạn"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Các tùy chọn cài đặt do quản trị viên CNTT quản lý"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Khởi động với kích thước trang 16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Khởi động thiết bị bằng nhân hỗ trợ trang 16K"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Khởi động lại với nhân hệ điều hành tương thích với trang 16KB?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"CẢNH BÁO: Có thể một số ứng dụng sẽ không tương thích với chế độ này. Thiết bị sẽ khởi động lại sau khi xác nhận."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Khởi động lại với nhân hệ điều hành tương thích với trang 4KB?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Thiết bị sẽ khởi động lại sau khi xác nhận."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Không cập nhật được nhân hệ điều hành thành nhân hệ điều hành tương thích với trang 16KB"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Đang áp dụng thay đổi"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Trình xử lý báo cáo lỗi"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Xác định ứng dụng nào xử lý phím tắt Báo cáo lỗi trên thiết bị của bạn."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Cá nhân"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Để nhanh chóng tiếp tục phát, trình phát nội dung nghe nhìn sẽ luôn mở trong phần Cài đặt nhanh"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Hiện nội dung nghe nhìn trên màn hình khoá"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Để nhanh chóng tiếp tục phát, trình phát nội dung đa phương tiện luôn mở trên màn hình khoá"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Hiện các nội dung nghe nhìn đề xuất"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Hiện nội dung nghe nhìn mà Trợ lý đề xuất"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Dựa trên hoạt động của bạn"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Ẩn trình phát"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Hiện trình phát"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Đang hoạt động"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Không hoạt động"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Mặc định cho <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"cuộc gọi"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"Tin nhắn SMS"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Âm thanh của nội dung nghe nhìn tương thích sẽ trở nên sống động hơn"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Theo dõi chuyển động của đầu"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Âm thanh sẽ thay đổi khi bạn di chuyển đầu nhằm mang lại trải nghiệm nghe tự nhiên hơn"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Đồng bộ hoá quyền truy cập"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Cấp quyền cho <xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> tương tự như các quyền cho ứng dụng bạn đã cho phép trên <xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Đồng bộ hoá các quyền từ điện thoại"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Cấp quyền cho ứng dụng trên đồng hồ của bạn tương tự như các quyền mà bạn đã cấp trên điện thoại này"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Loại thiết bị âm thanh"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Không xác định"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Loa"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Vừa"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Cao"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ứng dụng này chỉ có thể mở trong 1 cửa sổ"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Đang bật"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Đang tắt"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Đang tắt"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Đang tắt"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Đang bật"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Đang tắt"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Đang bật"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Đang tắt"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Chuyển màn hình sáng thành tối và màn hình tối thành sáng"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Phóng to trên màn hình"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Đang tắt"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Đang tắt"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Đang bật"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Đang tắt"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Đang bật"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Đã thiết lập xong mật khẩu"</string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 0da27b1..fb9d893 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -479,4 +479,10 @@
     <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) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 6eb47d5..07b43e4 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"只有管理员用户可以访问开发者设置。"</string>
     <string name="header_category_system" msgid="1665516346845259058">"系统"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"服务中"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"不在服务区"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"向上滑动以继续"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"折叠您的手机并在外屏上向上滑动以继续使用该应用,或者等待几秒钟直到屏幕锁定"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"相关工具"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"铃声和闹钟"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"通话期间的音频"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"媒体"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"通知和其他系统声音"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"媒体和系统提示音"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"通知"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"默认情况下,音频输出由各应用决定"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"未命名的蓝牙设备"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"正在搜索"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"已开启蓝牙"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"查看全部"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"查看全部"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"触控笔"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"按下尾部按钮时"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g>(工作资料)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"连接到 LE 音频流"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"附近的音频流"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"音频流"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"使用二维码连接到音频流"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"在附近未发现音频流。"</string>
     <string name="date_and_time" msgid="1788358029823431692">"日期和时间"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"代理"</string>
     <string name="proxy_clear_text" msgid="6529658759984031149">"清除"</string>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"如需为每个应用选择语言,请进入应用语言设置页面。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"详细了解应用语言"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"将系统语言更改为%s?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"将“%s”添加为首选语言?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"此设置将告知应用和网站,您也想使用此语言作为首选语言。"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"您的设备设置和地区偏好设置将发生更改。"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"更改"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"无法使用%s"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"星期六"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"不支持地区偏好设置的应用将使用默认语言区域设置。"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"详细了解语言偏好设置。"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"更多偏好设置"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"称谓语"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"设置您希望别人如何称呼您"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"应用可以使用您的称谓语以个性化的方式来称呼您。"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"未指定"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"阴性"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"阳性"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"中性"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{要移除所选语言吗?}other{要移除所选语言吗?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"系统将以其他语言显示文字。"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"无法移除所有语言"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"位置信息"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"使用位置信息"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"已关闭"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{已开启 - # 个应用有权访问位置信息}other{已开启 - # 个应用有权访问位置信息}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{已开启 / # 个应用有权访问位置信息}other{已开启 / # 个应用有权访问位置信息}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在加载…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"具有附近设备权限的应用可以确定已连接的设备的相对位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"应用和服务的位置信息使用权处于关闭状态。在您拨打紧急电话号码或向该号码发送短信时,系统可能仍会将您的设备位置信息发送给急救人员。"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"详细了解位置信息设置。"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"详细了解位置信息设置"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"若要更改位置信息访问权限,请依次前往“设置”&gt;“安全和隐私设置”&gt;“隐私控制”"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"为获得最佳效果,请使用获得 Made For Google 认证的屏幕保护膜。如果使用其他屏幕保护膜,系统可能无法识别您孩子的指纹。"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"手表解锁"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"设置人脸解锁和指纹解锁后,如果您戴着口罩或所在区域光线较暗,手机会要求您使用指纹解锁。\n\n如果系统无法识别您的面孔或指纹,您可以用手表进行解锁。"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"如果系统无法识别您的指纹,您可以用手表进行解锁。"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"如果系统无法识别您的面孔,您可以用手表进行解锁。"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"在设置“人脸解锁”和“指纹解锁”功能时,如果您戴着口罩或所在区域光线较暗,手机会要求您提供指纹。\n\n“手表解锁”功能是解锁手机的另一种便捷方式。例如,当手指潮湿或设备未能识别出您的面孔时,“手表解锁”功能将非常有用。"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"“手表解锁”功能是解锁手机的另一种便捷方式。例如,当设备未能识别出您的指纹时,“手表解锁”功能将非常有用。"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"“手表解锁”功能是解锁手机的另一种便捷方式。例如,当设备未能识别出您的面孔时,“手表解锁”功能将非常有用。"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"将指纹或手表用于"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"将人脸或手表用于"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"将人脸、指纹或手表用于"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已添加面孔和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"远程身份验证器解锁"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"已添加手表"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"设置手表"</string>
+    <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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"运作方式"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"您必须将手表戴在手上,使其处于解锁状态,并靠近这部手机。只要手表戴在手上,您就不必再次解锁手表。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"当这部手机解锁后,您会在手表上收到通知。如果误解锁,只需点按通知即可再次锁定手机。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"一切由您掌控"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"您可以随时前往“设置”部分,从“手表解锁”设置中移除自己的手表"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"点按通知"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"在锁定的屏幕上向上滑动"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"选择您的手表"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"可用的手表"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"取消"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"确认"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"大功告成!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"现在,当您在锁定的屏幕上向上滑动或点按通知时,即可使用您的手表解锁这部手机"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完成"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"手表解锁"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"当您在锁定的屏幕上向上滑动或在点按通知时,可以使用您的手表解锁这部手机"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"若要使用“手表解锁”功能,您的手表必须满足以下条件:连接到这部手机、处于解锁状态、戴在手腕上,并且靠近这部手机。如果连接中断,您需要先解锁手机才能使用“手表解锁”功能。\n\n注意事项:\n您一次只能设置一块手表。若要再添加一块手表,请先移除当前的手表。"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"详细了解“手表解锁”功能"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"添加手表"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除手表"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指纹解锁和人脸解锁"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用于工作资料的人脸解锁和指纹解锁"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要设置"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"安全"</string>
     <string name="privacy_header" msgid="5526002421324257007">"隐私"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"工作资料"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"私密空间"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"让私密应用保持锁定状态并隐藏"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"将私密应用放在可以隐藏或锁定的独立空间中"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"私密空间锁定"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"您可以像解锁设备一样解锁私密空间,也可以选择其他锁定方式"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"使用设备屏幕锁定方式"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"人脸解锁和指纹解锁"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"指纹解锁"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"人脸解锁"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"点按即可设置"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"使用指纹解锁私密空间"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"使用人脸解锁私密空间"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"解锁方式"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"与设备的屏幕锁定方式相同"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"选择用于锁定私密空间的新方式?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"自动锁定"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"自动锁定私密空间"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"设备可在闲置一段时间后自动锁定私密空间"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"每次设备锁定时"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"无操作 5 分钟后"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"永不"</string>
+    <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_deleted" msgid="7825768516955610897">"已成功删除私密空间"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"无法删除私密空间"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"已解锁私密空间"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"设置屏锁"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"若要使用私密空间,请在此设备上设置屏锁"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"设置屏锁"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"取消"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"取消"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"设置"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"设置私密空间"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"将私密应用放在可以隐藏或锁定的独立空间中"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"运作方式"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"您可以从应用列表底部访问私密空间"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"系统会通过锁定功能来保护私密空间中的应用"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"私密空间锁定后,系统会隐藏私密空间中应用的通知"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"私密空间处于锁定状态时,私密空间中的应用不会显示在权限管理器、隐私信息中心和其他设置中。\n\n私密空间无法转移到新设备。若要在其他设备上使用私密空间,您需要在该设备上再设置一个私密空间。\n\n任何人如果将您的设备连接到计算机或在设备上安装有害应用,或许就能够访问您的私密空间。"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"正在设置私密空间…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"私密空间处于锁定状态时,系统会隐藏私密空间中应用的通知"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"解锁私密空间,即可分享私密空间应用中的照片或文件"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"某些应用已经安装在私密空间中"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"无法设置私密空间"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"重试"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"要使用屏锁来解锁私密空间?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"您可以像解锁设备一样解锁私密空间,也可以选择其他锁定方式"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"使用屏锁"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"选择新的锁定方式"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"设置完毕!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"若要访问私密空间,请前往应用列表,然后向下滚动"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"完成"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"向下滚动可找到私密空间"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"为私密空间选择一种锁定方式"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"您可以通过指纹解锁私密空间。为安全起见,您必须设置备用锁定方式,才能使用此选项。"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"为您的私密空间设置 PIN 码"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"为您的私密空间设置密码"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"为您的私密空间设置解锁图案"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"显示私密空间(非最终用户体验)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"打开“设置”应用"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"依次点按“安全和隐私”&gt;“私密空间”&gt;“隐藏锁定的私密空间”"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"关闭“隐藏锁定的私密空间”切换开关"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google 员工请注意:此功能的开发仍在进行中"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"您可能还需要在另一台设备上输入此通行密钥。"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"确认与协调组配对"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"允许访问您的通讯录和通话记录"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"还允许访问通讯录和通话记录"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"信息将用于来电通知等用途"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"无法连接到<xliff:g id="DEVICE_NAME">%1$s</xliff:g>。"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"可用的设备"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"正处于飞行模式下"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"附近有公共网络时发出通知"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"有可用的高品质公共网络时通知我"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"允许连接 WEP 网络"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP 是较旧的安全协议,其安全性较低"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"您的运营商不允许连接 WEP 网络,因为这类网络的安全性较低"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"自动开启 WLAN"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"位于已保存的高品质网络(例如您的家庭网络)附近时自动重新开启 WLAN"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"无法使用,因为位置信息服务已关闭。请开启"<annotation id="link">"位置信息服务"</annotation>"。"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"WLAN 扫描功能可让应用和服务随时扫描 WLAN 网络(即使 WLAN 已关闭)。这可用于改进基于位置的功能和服务。"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"开启"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"WLAN 扫描功能已开启"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"此网络采用较旧的安全协议,其安全性较低"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"“<xliff:g id="NAME">%1$s</xliff:g>”已被屏蔽"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"此网络采用名为 WEP 的较旧安全协议,其安全性较低。如果您仍想连接,也可选择允许连接 WEP 网络。"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"您的运营商不允许连接此网络,因为它采用较旧的安全协议,安全性较低"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"允许连接 WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"关闭"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"高级选项"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"下拉列表高级选项"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"展开"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"让 WLAN 保持开启状态"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"不再显示"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"连接"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"WLAN 已开启"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"已连接到“<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"正在连接到“<xliff:g id="NETWORK_NAME">%1$s</xliff:g>”"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"正在连接…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"无法连接网络"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"网络不在范围内"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"取消保存"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"修改"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"无法取消保存网络"</string>
     <string name="wifi_save" msgid="2312643132472226807">"保存"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"无法保存网络"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"取消"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"移动数据网络"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"以太网"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ 正在充电"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ 正在充电"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"热点连接"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"连接信号强度"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"已保存的网络"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"未设置密码"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"热点名称"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"热点密码"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP 频段"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"自动关闭热点"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"未连接任何设备时"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"扩大兼容性"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"停用游戏的默认帧速率"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"停用游戏的帧速率上限 (<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz)。"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"流畅画面"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"屏幕感知功能会通过前置摄像头来确定是否有人正在看屏幕。这个功能只会在设备上运行,系统绝对不会存储图片或将图片发送给 Google。"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"开启屏幕感知功能"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"直视屏幕时让屏幕保持开启"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"自动锁屏设置的时间越长就越耗电。"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"相机已锁定"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"必须解锁相机才能使用人脸检测功能"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"必须解锁相机才能使用屏幕感知功能"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI(SIM 卡插槽 <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI(SIM 卡插槽 <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>)(主卡)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"如需查看,请选择已保存的网络"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL 版本"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"电池电量"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"共用"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"通用设置"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"保存"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"取消"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"“名称”字段不能为空。"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN 不能为空。"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC 字段必须为 3 位数。"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC 字段必须为 2 位数或 3 位数。"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"运营商不允许添加“%s”类型的 APN。"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"MMSC 字段必须有效。"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"正在恢复默认 APN 设置。"</string>
     <string name="menu_restore" msgid="4310539620115151551">"重置为默认设置"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"已重置默认APN设置。"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"重置"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"蓝牙和 WLAN 已重置"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"清空 eSIM 卡"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"此操作并不会取消任何移动服务套餐。如要下载替代 SIM 卡,请与您的运营商联系。"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"重置设置"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"要重置所有网络设置吗?此操作无法撤消。"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"要重置所有网络设置并清空 eSIM 卡吗?此操作无法撤消。"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"要重置网络设置吗?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"此用户无权重置网络设置"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"网络设置已重置"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"无法清除 SIM 卡"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"发生错误,因此无法清空 eSIM 卡。\n\n请重启设备,然后重试。"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"清除所有数据(恢复出厂设置)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"清除所有数据(恢复出厂设置)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"音乐"</li>\n<li>"照片"</li>\n<li>"其他用户数据"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM 卡"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"这样并不会取消您的移动服务套餐。"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"系统将删除您所有的个人信息和已下载的应用。此操作无法撤消。"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"系统将删除您所有的个人信息(包括已下载的应用和 SIM 卡)。此操作无法撤消。"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"要清除所有数据吗?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"此用户无权恢复出厂设置"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"正在清除"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"热点、USB、蓝牙、以太网"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"目前没有与其他设备共享互联网连接"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"已关闭"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"网络共享"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"不使用 WLAN 热点"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"仅通过 USB 共享互联网连接"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"仅通过蓝牙共享互联网连接"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"仅通过以太网共享网络"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"仅通过 USB 和蓝牙共享互联网连接"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"仅通过 USB 和以太网共享网络"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"仅通过蓝牙和以太网共享网络"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"仅通过 USB、蓝牙和以太网共享网络"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB 网络共享"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"蓝牙网络共享"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"以太网络共享"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"使用热点和网络共享功能,让其他设备能通过您的 WLAN 或移动数据网络连接到互联网。应用还可以通过创建热点,与附近的设备共享内容。"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"帮助"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"移动网络"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"手机套餐"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"短信应用"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"要更改短信应用吗?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"要使用“<xliff:g id="NEW_APP">%1$s</xliff:g>”取代“<xliff:g id="CURRENT_APP">%2$s</xliff:g>”作为您的短信应用吗?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"要更改WLAN助手吗?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"不再使用<xliff:g id="CURRENT_APP">%2$s</xliff:g>,而改用<xliff:g id="NEW_APP">%1$s</xliff:g>来管理您的网络连接吗?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"要使用<xliff:g id="NEW_APP">%s</xliff:g>管理您的网络连接吗?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"未知的SIM卡运营商"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g>没有任何已知的配置网站"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"请插入SIM卡,然后重新启动"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"请连接到互联网"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"近期位置信息请求"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"工作资料位置信息"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"应用位置信息权限"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"取消访问权限"</string>
     <string name="controls_label" msgid="8671492254263626383">"控制"</string>
     <string name="force_stop" msgid="2681771622136916280">"强行停止"</string>
+    <string name="archive" msgid="9074663845068632127">"归档"</string>
+    <string name="restore" msgid="7622486640713967157">"恢复"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"总计"</string>
     <string name="application_size_label" msgid="6407051020651716729">"应用大小"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB存储(应用)"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"无法计算软件包的大小。"</string>
     <string name="version_text" msgid="7628938665256107608">"版本 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"移动"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"归档失败"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"已归档<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"恢复失败"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"正在恢复<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"系统目前正在执行另一项迁移操作。"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"存储空间不足。"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"应用不存在。"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"可用的屏幕键盘"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"管理屏幕键盘"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"选项"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"无障碍功能"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"实体键盘"</string>
     <string name="show_ime" msgid="4334255501724746849">"使用屏幕键盘"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"开启后,连接到实体键盘时,它会一直显示在屏幕上"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"返回键"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"启用返回键,使实体键盘更具无障碍性"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"粘滞键"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"启用粘滞键,使实体键盘更具无障碍性"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"键盘快捷键"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"显示快捷键列表"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作资料键盘和工具"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"按使用时间排序"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"按上次使用时间排序"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"按应用名称排序"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"上次使用时间"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"上次使用时间"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"从未用过"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"使用时间"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"无障碍"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"无障碍设置"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍然继续"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大设置"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"点按屏幕三次进行放大"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"使用快捷手势进行放大"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"通过“快捷手势”和“点按屏幕三次”进行放大"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"<xliff:g id="SERVICE">%1$s</xliff:g>简介"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"双指点按屏幕两次即可打开"</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="860548190334486449">"要启动或停止放大功能,请在屏幕上的任意位置双指点按两次。"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"如需使用无障碍功能,请用三根手指从屏幕底部向上滑动。\n\n用三根手指向上滑动并按住,即可在多项功能之间切换。"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"知道了"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"“无障碍”按钮设置"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"按钮设置"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"“<xliff:g id="SERVICE">%1$s</xliff:g>”快捷方式"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"“无障碍”按钮"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"无障碍手势"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"双指点按屏幕两次"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"双指点按屏幕两次"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"双指快速点按屏幕 {0,number,integer} 次"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"点按屏幕三次"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"点按屏幕三次"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"在屏幕上快速点按 {0,number,integer} 次。此快捷方式可能会减慢设备的运行速度"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"详细了解“无障碍”按钮和无障碍功能启动手势"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"请使用“无障碍”按钮。该手势不能与“三按钮”导航搭配使用。"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"快速使用无障碍功能"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"如要开始使用,请按以下步骤操作:"</b>\n"1. 转到无障碍设置\n2. 选择一项功能并点按相应快捷方式\n3. 选择要使用按钮还是手势来使用此功能"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"如要开始使用,请按以下步骤操作:"</b>\n"1. 转到无障碍设置\n2. 选择一项功能并点按相应快捷方式\n3. 选择相应按钮以使用此功能"</string>
+    <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_size_title" msgid="5785110470538960881">"大小"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"按电源按钮结束通话"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"大号鼠标指针"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"使鼠标指针更加显眼"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"使所有应用采用深色主题"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"适用于未自带深色主题的应用。某些应用可能会出现显示问题,例如反色。"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"移除动画"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"减少屏幕动画"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"单声道音频"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"此功能可以跟踪您与应用或硬件传感器的互动,并代表您与应用互动。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允许"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒绝"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"停止"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"取消"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"要停用“<xliff:g id="SERVICE">%1$s</xliff:g>”吗?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"点按“<xliff:g id="STOP">%1$s</xliff:g>”即可停止“<xliff:g id="SERVICE">%2$s</xliff:g>”。"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"关闭"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"保持开启状态"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"要关闭“<xliff:g id="SERVICE">%1$s</xliff:g>”吗?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"未安装任何服务"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"未选择任何服务"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"没有提供说明。"</string>
     <string name="settings_button" msgid="2195468788019730377">"设置"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"光敏度、畏光、深色主题、偏头痛、头痛、阅读模式、夜间模式、调低亮度、白点"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"易于使用, 易于访问, 协助, 辅助, Ease of use, ease of access, assistance, assistive"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"视觉, 听力, 失明, 失聪, 运动, 灵敏性, 辅助, 协助, 易于使用, 易于访问, 手, 帮助, vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"窗口放大镜, 缩放, 放大, 低视力, 增大, 加大, Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"字幕, 实时转写, 听障, 听力受损, 语音转文字, Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"色彩对比度"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"电机, 鼠标, motor, mouse"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"助听器, 听障, 听力减退, 人工耳蜗, 放大设备, 声音处理器, hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"运动, 鼠标, 外部鼠标, 头部鼠标, 自适应鼠标, 轮椅, 操纵杆, motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"助听器, 听障, 听力减退, 人工耳蜗, 放大设备, 声音处理器, 个人扩音产品, hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"听障, 听力受损, 字幕, 电传, hard of hearing, hearing loss, captions, Teletype, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"三个按钮, three buttons"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"灵敏性, 运动, 老年, 关节炎, 中风, 震颤, 多发性硬化症, 脑瘫, 晃动, 重复性劳损, 手, dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"延迟, 灵敏性, 老年, delay, dexterity, senior"</string>
     <string name="print_settings" msgid="8519810615863882491">"打印"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"已关闭"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 个打印服务已开启}other{# 个打印服务已开启}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"查看耗电量较高的应用"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"为保护电池,已采用更优化的充电方式"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"为延长电池寿命,已采用更优化的充电方式"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"为保护电池,已采用更优化的充电方式"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"为延长电池寿命,在插入基座时会采用更优化的充电方式"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"为保护电池,已采用更优化的充电方式"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"为延长电池寿命,在插入基座时会采用更优化的充电方式"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"正在充满电量"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"为保护电池,下次平板电脑插入基座时,将采用更优化的充电方式"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"详细了解充电暂停的原因"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"继续充电"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"包括高耗电后台活动"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"移除"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"取消"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"充满电"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"充电配件有问题"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"详细了解不兼容的充电装置"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"电池管理器"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"自动管理应用"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"现在"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g><xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"电池用量图表"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"每日电池用量图表"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"每小时电池用量图表"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"电池电量百分比:<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> &gt; <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"自上次充满电后的电池用量"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"“<xliff:g id="SLOT">%s</xliff:g>”的电池用量"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"自上次充满电后的设备使用时间"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"紧急拨号信号"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"设置进行紧急呼救时的行为"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"备份"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"已开启"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"已关闭"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"备份和还原"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"个人数据"</string>
     <string name="backup_data_title" msgid="507663517227498525">"备份我的数据"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"名称"</string>
     <string name="vpn_type" msgid="5533202873260826663">"类型"</string>
     <string name="vpn_server" msgid="2908816134941973935">"服务器地址"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP 加密 (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP 密钥"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec 标识符"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec 预共享密钥"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec 用户证书"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA 证书"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec 服务器证书"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"显示高级选项"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS 搜索网域"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS 服务器(例如 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"转发路线(例如 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"用户名"</string>
     <string name="vpn_password" msgid="1183746907642628127">"密码"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"保存账号信息"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(未使用)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(不验证服务器)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(来自服务器)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"此类型的 VPN 无法随时保持连接"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"始终开启的 VPN 仅支持数字格式的服务器地址"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"必须为始终开启的 VPN 指定 DNS 服务器"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS 服务器地址必须为数字才能使用始终开启的 VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"输入的信息不支持始终开启的 VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"取消"</string>
     <string name="vpn_done" msgid="5137858784289564985">"关闭"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"屏蔽未使用 VPN 的所有连接"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"需要连接 VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"不安全。请更新为 IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"未能启动不支持的 VPN。"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"选择要始终保持连接的VPN配置文件。只有在连接到此VPN之后才可以使用网络。"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"无"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"始终开启的 VPN 需要服务器和 DNS 的 IP 地址。"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"安珀警报"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"接收有关儿童被绑架/拐骗的公告"</string>
     <string name="repeat_title" msgid="8676570486899483606">"重复"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"启用通话管理器"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"允许此服务管理您的通话。"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"通话管理器"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"无线紧急警报"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"网络运营商"</string>
     <string name="access_point_names" msgid="5768430498022188057">"接入点名称(APN)"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"钱包"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"支付、点按、付款"</string>
     <string name="keywords_backup" msgid="707735920706667685">"备份内容, 备份"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"手势"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"人脸, 解锁, 身份验证, 登录"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"人脸, 解锁, 身份验证, 登录, 指纹, 生物识别, face, unlock, auth, sign in, fingerprint, biometric"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI, MEID, MIN, PRL 版本, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"开机音效"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"实时字幕"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"自动生成媒体字幕"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"手机扬声器"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"平板电脑扬声器"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"设备扬声器"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"有线耳机"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"播放兼容的媒体内容时,音频更具沉浸感"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"已关闭"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"已移除近期对话"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"对话已移除"</string>
     <string name="clear" msgid="5092178335409471100">"清除"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"清除对话“<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>”"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"优先对话和经过修改的对话会显示在这里"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"您标记为优先对话或做出任何其他更改的对话会显示在这里。\n\n如需更改对话设置,请执行以下操作:\n从屏幕顶部向下滑动,将下拉通知栏打开,然后长按要更改的对话。"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"最小化"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"已关闭"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"固定应用"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"通过固定应用功能,您可以固定显示当前应用,直到取消固定该应用为止。例如,您可以利用此功能让信任的好友玩某款游戏。"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"固定某个应用后,该应用可打开其他应用,也能访问个人数据。\n\n如需使用固定应用功能,请按以下步骤操作:	\n1. 开启固定应用功能	\n2. 打开“概览”	\n3. 点按屏幕顶部的应用图标,然后点按“固定”"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"固定某个应用后,该应用可打开其他应用,也能访问个人数据。\n\n如果您想安全地与他人共用您的设备,请尝试改用访客用户模式。\n\n如需使用固定应用功能,请按以下步骤操作:	\n1. 开启固定应用功能	\n2. 打开“概览”	\n3. 点按屏幕顶部的应用图标,然后点按“固定”"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"管理闲置应用"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"撤消权限、删除临时文件、停止发送通知并归档应用"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"所有应用"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"已安装的应用"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"免安装应用"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"可用"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"各个应用使用的内存"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{过去 {time}内有 1 个应用使用了内存}other{过去 {time}内有 # 个应用使用了内存}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"启用内存用量分析功能"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"内存用量分析功能需占用额外的系统资源。"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"内存分析功能已停用"</string>
     <string name="running_frequency" msgid="7260225121706316639">"频率"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"最高使用量"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"未使用任何数据流量"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"显示在其他应用的上层"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"允许显示在其他应用的上层"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"允许此应用显示在您当前使用的其他应用的上层。此应用将能得知您点按的位置或更改屏幕上显示的内容。"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"更改媒体输出"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"允许应用切换媒体输出"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"允许此应用选择要使用哪个已连接的设备播放其他应用的音频/视频。如果允许,此应用可以访问可用设备列表,例如头戴式耳机和音箱,并选择使用哪个输出设备流式传输或投放音频/视频。"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"所有文件访问权限"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"改进语音启动"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"此设备使用私人情报改进语音启动模型。应用可接收从众多用户处汇总的最新动态摘要,从而在维护隐私的同时为所有用户改进此模型。\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"数据流量警告:<xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"数据流量上限:<xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"数据流量警告:<xliff:g id="ID_1">^1</xliff:g>/数据流量上限:<xliff:g id="ID_2">^2</xliff:g>"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"运营商的流量计算方式可能与您设备的计算方式不同"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"不包括运营商网络的流量消耗"</string>
     <string name="data_used_template" msgid="8229342096562327646">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"设置数据流量警告"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"已在 <xliff:g id="ID_1">^2</xliff:g>前更新"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"刚刚由<xliff:g id="ID_1">^1</xliff:g>更新"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"刚刚更新"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"查看流量套餐"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"查看详情"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"省流模式"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"不受流量限制"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"电池用量异常"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"快捷设置开发者功能块"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"停用 adb 授权超时功能"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"停用以下功能:如果系统在默认时间(7 天)或用户配置的时间(最短 1 天)内未重新建立连接,就自动撤消 adb 授权。"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope 跟踪"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"传感器已关闭"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"工作资料设置"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"在个人应用中搜索工作目录联系人"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"自动填充服务"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"默认自动填充服务"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"密码"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"密码、通行密钥和数据服务"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"其他提供方"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 个密码}other{# 个密码}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"自动, 填充, 自动填充, 密码, auto, fill, autofill, password"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"数据, 通行密钥, 密码, data, passkey, password"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自动, 填充, 自动填充, 数据, 通行密钥, 密码, auto, fill, autofill, data, passkey, password"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"密码、通行密钥和数据服务"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;关闭所有服务?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;密码、通行密钥和其他已存信息将不可用于登录时自动填充"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;将您的首选服务更改为&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt;&lt;br/&gt;&lt;br/&gt;从现在起,新的密码、通行密钥和其他信息将保存在这里。&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;可能会根据屏幕上的内容判断可以自动填充的信息"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"使用%1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"您只能开启 5 项服务"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"至少关闭 1 项服务才能添加另 1 项服务"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s会根据屏幕上的内容判断可以自动填充的内容。"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"密码、通行密钥和数据服务限制"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"同时最多可以启用 5 个密码、通行密钥和数据服务。若要添加其他服务,请先关闭其中一项服务。"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"密码、通行密钥和数据服务限制"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"同时最多可以启用 5 个密码、通行密钥和数据服务。若要添加其他服务,请先关闭一个已启用的服务。"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"关闭"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"自动填充"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"日志记录级别"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"只能修改可调试应用的应用兼容性变更。请安装可调试的应用,然后重试。"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"必须一并更改其他设置"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"账号"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d 个账号"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"设备名称"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"基本信息"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"法律法规"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"扫描到 NFC 标签时,允许此应用启动。\n如果启用此权限,则每当检测到 NFC 标签时,此应用都会列为启动选项。"</string>
     <string name="media_output_title" msgid="8283629315159510680">"媒体播放到"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"用于播放<xliff:g id="LABEL">%s</xliff:g>内容的设备:"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"音频将继续播放"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"此设备"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"通话期间无法使用"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"接听来电的设备:"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"静音"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"如需启用,请先从“按住电源按钮”改为电源菜单。"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"网络详情"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"您的设备名称会显示在手机上的应用中。此外,当您连接到蓝牙设备、连接到 WLAN 网络或设置 WLAN 热点时,其他人可能也会看到您的设备名称。"</string>
     <string name="devices_title" msgid="649715719278562515">"设备"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"选择网络"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"已断开连接"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"名称"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"颜色(由兼容应用使用)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"保存"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"使用 SIM 卡"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"使用此 SIM 卡"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"关闭"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"要停用此 SIM 卡,请将其拔出"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"点按即可激活<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"清除 SIM 卡"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"首选网络类型"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"更改网络运行方式"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"首选网络类型"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"请与您的网络服务提供商联系以了解定价。"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"应用的流量使用情况"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"无效的网络模式<xliff:g id="NETWORKMODEID">%1$d</xliff:g>。忽略。"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"接入点名称"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"连接到<xliff:g id="CARRIER">%1$s</xliff:g>时无法使用"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"要切换到<xliff:g id="CARRIER_NAME">%1$s</xliff:g>吗?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"要切换为使用 SIM 卡吗?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"要使用“<xliff:g id="CARRIER_NAME">%1$s</xliff:g>”吗?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"一次只能启用一个 SIM 卡。\n\n切换到<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>不会取消<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>服务。"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"一次只能启用一个 eSIM 卡。\n\n切换到<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>不会取消<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>服务。"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"一次只能启用一个 SIM 卡。\n\n进行切换并不会取消<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>服务。"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"可以同时使用 2 张 SIM 卡。要使用<xliff:g id="CARRIER_NAME">%1$s</xliff:g>,请关闭另一张 SIM 卡。"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"切换到<xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"关闭<xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"不用了"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"取消"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"切换"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"停用"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"无法激活 SIM 卡"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"请尝试重新启用 SIM 卡。如果问题仍然存在,请重启您的设备。"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"设置 SIM 卡"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"您可以设置移动网络偏好设置,以便在此设备上使用多张 SIM 卡"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"给 SIM 卡加标签"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"您将在拨打电话、发送短信、使用移动网络时以及设置中看到这些标签"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM 卡标签"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"加标签"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"选择要使用哪些 SIM 卡"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"可以同时使用 2 张 SIM 卡"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"设置主 SIM 卡"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"选择在拨打电话、发送短信和使用移动网络时默认使用哪些 SIM 卡"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"主 SIM 卡"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"通话"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"短信"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"自动切换数据网络"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"根据信号覆盖率和可用性,选择要使用哪张 SIM 卡的移动网络"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"上网专用"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"设置"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"继续"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"移动网络"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"电话号码"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM 卡标签和颜色"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"网络激活"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"正在切换运营商"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>已启用"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"如要在日后使用移动数据、通话和短信功能,请转到“网络设置”部分"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM 卡"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"要清空此 eSIM 卡吗?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"清空此 SIM 卡将从此设备中移除<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>服务。\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>的服务不会因此被取消。"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"清空"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"正在清空 SIM 卡…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"无法清空 SIM 卡"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"发生错误,因此无法清除此 SIM 卡。\n\n请重启设备,然后重试。"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"连接到设备"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"“<xliff:g id="APPNAME">%1$s</xliff:g>”应用要使用临时 WLAN 网络连接到您的设备"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"找不到设备。请确保设备已开启并可连接到网络。"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"紧急呼叫"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"您的运营商不支持通过 WLAN 通话进行紧急呼叫。\n设备会自动切换到移动网络,以拨打紧急呼叫电话。\n只能在移动网络覆盖区域内进行紧急呼叫。"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"使用 WLAN 通话以提升通话质量"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"备用通话"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"如果<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>无法使用或处于漫游状态,系统将使用您的移动数据 SIM 卡拨打和接听<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>电话。"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"备用通话"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"接收彩信"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"无法发送彩信"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"点按即可在移动数据网络关闭时通过<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>收发彩信"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"您的工作政策信息"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"由 IT 管理员管理的设置"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"使用 16K 大小的页面启动"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"使用 16K 页面大小支持的内核启动设备"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"要使用 16KB 页面兼容内核重新启动吗?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"警告:某些应用可能与此模式不兼容。设备将在确认后重新启动。"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"要使用 4KB 页面兼容内核重新启动吗?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"设备将在确认后重新启动。"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"无法将内核更新为 16KB 页面兼容的内核。"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"正在应用更改"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Bug 报告处理程序"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"确定要使用哪款应用来处理设备上的错误报告快捷方式。"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"个人"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"为了方便您快速恢复播放,媒体播放器会在“快捷设置”中保持打开状态"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"在锁定的屏幕上显示媒体"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"为了方便您快速恢复播放,媒体播放器会在锁定的屏幕上保持打开状态"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"显示媒体推荐内容"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"显示 Google 助理推荐的媒体内容"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"根据您的活动"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"隐藏播放器"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"显示播放器"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM 卡"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM 卡"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM 卡"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"使用中"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"未使用"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /默认用于<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"通话"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"短信"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"播放兼容的媒体时,音频更具沉浸感"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"头部跟踪"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音频会随着头部移动而变化,让聆听效果更加自然"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"同步权限"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"为<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>授予您已在<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>上授予的那些应用权限"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"从手机同步权限"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"为手表授予您已在这部手机上授予的那些应用权限"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音频设备类型"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"未知"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"扬声器"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
     <string name="contrast_high" msgid="3988567609694797696">"高"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"此应用只能在 1 个窗口中打开"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"开启"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"关闭"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"关闭"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"已关闭"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"已开启"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"已关闭"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"已开启"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"已关闭"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"将亮屏幕调暗,将暗屏幕调亮"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"在屏幕上放大"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"已关闭"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"已关闭"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"已开启"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"已关闭"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"已开启"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"密码现已设置完成"</string>
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 2e9de69..5465990 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 分鐘後"</item>
     <item msgid="1574040255478150028">"5 分鐘後"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index ee9bfc2..17d31bd 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"只有管理員使用者可存取開發人員設定。"</string>
     <string name="header_category_system" msgid="1665516346845259058">"系統"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"服務中"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"沒有服務"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"向上滑動即可繼續"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"你可將手機摺疊並在前方螢幕向上滑動,繼續使用應用程式,或等待幾秒讓螢幕上鎖。"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"相關工具"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"鈴聲和鬧鐘"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"通話期間的音訊"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"媒體"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"通知和其他系統聲效"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"媒體和系統音效"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"通知"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"根據預設,系統會按個別應用程式決定輸出的音訊"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"未命名的藍牙裝置"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"正在搜尋..."</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"已開啟藍牙"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"查看全部"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"查看全部"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"觸控筆"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"按下尾部按鈕時"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (工作設定檔)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"連接 LE Audio 音訊串流"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"附近的音訊串流"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"音訊串流"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"使用 QR 碼連接音訊串流"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"找不到附近的音訊串流。"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"如要為各應用程式選取語言,請前往應用程式語言設定。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"進一步瞭解應用程式語言"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"要將系統語言變更為「%s」嗎?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"要將「%s」新增為偏好語言嗎?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"此操作讓應用程式和網站知道你同時偏好此語言。"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"系統將變更裝置設定和地區偏好設定。"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"變更"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"「%s」無法使用"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"星期六"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"如果應用程式不支援地區偏好設定,應用程式便會使用其預設語言代碼設定。"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"進一步瞭解語言偏好設定。"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"其他偏好設定"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"稱謂"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"設定你偏好的稱謂"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"應用程式可以使用稱謂來個人化對你的稱呼。"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"未指定"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"女性"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"男性"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"中性"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{要移除所選語言嗎?}other{要移除所選語言嗎?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"文字將以其他語言顯示。"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"無法移除所有語言"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"位置"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"使用位置"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"關閉"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{開啟 - # 個應用程式可存取位置資訊}other{開啟 - # 個應用程式可存取位置資訊}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{開啟/ # 個應用程式可存取位置資訊}other{開啟/ # 個應用程式可存取位置資訊}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"正在載入…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"應用程式如可存取附近的裝置,就能判斷已連接裝置的相對位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置權限已關閉。當你打電話或發短訊到緊急電話號碼時,系統仍會將你的裝置位置資料傳送給救援人員。"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"進一步瞭解「位置設定」。"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解「位置設定」"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"如要變更位置資料存取權,請前往「設定」&gt; [安全性和私隱] &gt; [私隱權設定]"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"為獲得最佳效果,請使用已通過 Made for Google 認證的螢幕保護貼。如果使用其他螢幕保護貼,系統可能無法辨識子女的指紋。"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"手錶解鎖"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"設定「面孔解鎖」和「指紋解鎖」時,如果你戴著口罩或人在昏暗的地方,手機就會要求你註冊指紋。\n\n當系統無法識別你的面孔或指紋時,可以使用手錶解鎖裝置。"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"當系統無法識別你的指紋時,可以使用手錶解鎖裝置。"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"當系統無法識別你的面孔時,可以使用手錶解鎖裝置。"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"設定「面孔解鎖」和「指紋解鎖」時,如果你戴著口罩或人在昏暗的地方,手機就會要求你註冊指紋。\n\n在你手指弄濕或系統無法識別你的面孔等情況下,「手錶解鎖」是另一個方便的解鎖手機方式。"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"在系統無法識別你的指紋等情況下,「手錶解鎖」是另一個方便的解鎖手機方式。"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"在系統無法識別你的面孔等情況下,「手錶解鎖」是另一個方便的解鎖手機方式。"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"使用指紋或手錶"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"使用面孔或手錶"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"使用面孔、指紋或手錶"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增面孔和<xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"運作方式"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"你必須先解鎖手錶,並將手錶戴在手腕上,並靠近此手機。只要手錶仍在腕上,你便無需再次解鎖手錶。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"此手機解鎖時,手錶就會顯示通知。如果不小心解鎖手機,只要輕按通知,即可再次鎖定。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"一切由你掌控"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"你可隨時前往「設定」將手錶從「手錶解鎖」中移除"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"輕按通知"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"在上鎖畫面向上滑動"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"選擇手錶"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"可連線的手錶"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"取消"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"確認"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"大功告成!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"你現可在上鎖畫面向上滑動或輕按通知,即可使用手錶解鎖此手機"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完成"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"手錶解鎖"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"在上鎖畫面向上滑動或輕按通知,即可使用手錶解鎖此手機"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"如要使用「手錶解鎖」,你必須先解鎖手錶,並將手錶戴在手腕上,以及靠近和連接此手機。如果連線中斷,你必須先解鎖手機,才能使用「手錶解鎖」。\n\n注意事項:\n你每次只可設定一隻手錶。如要新增其他手錶,請先移除目前的手錶。"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"進一步瞭解「手錶解鎖」"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"新增手錶"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除手錶"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋及面孔解鎖"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用於工作設定檔的面孔和指紋解鎖"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要設定"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"保安"</string>
     <string name="privacy_header" msgid="5526002421324257007">"私隱"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"工作設定檔"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"私人空間"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"讓私人應用程式保持鎖定及隱藏"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"將私人應用程式安裝在可隱藏或鎖定的獨立空間"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"「私人空間」鎖定"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"你可使用解鎖裝置的方式來解鎖「私人空間」,或選擇其他鎖定方式"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"使用裝置的螢幕鎖定"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"面孔和指紋解鎖"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"指紋解鎖"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"面孔解鎖"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"輕按即可設定"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"使用指紋解鎖私人空間"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"使用面孔解鎖私人空間"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"解鎖方法"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"與裝置的螢幕鎖定相同"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"要為「私人空間」選擇新的鎖定方式嗎?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"自動上鎖"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"自動鎖定私人空間"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"裝置可在閒置一段時間後自動鎖定私人空間"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"每當裝置鎖定"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"閒置 5 分鐘後"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"永不"</string>
+    <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_deleted" msgid="7825768516955610897">"已成功刪除「私人空間」"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"無法刪除「私人空間」"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"私人空間已解鎖"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"如要使用私人空間,請在此裝置上設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"取消"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"取消"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"設定"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"設定私人空間"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"將私人應用程式安裝在可隱藏或鎖定的獨立空間"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"運作方式"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"你可從應用程式清單底部存取私人空間"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"私人空間中的應用程式受鎖定功能保護"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"私人空間處於鎖定狀態時,系統會隱藏私人空間應用程式的通知"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"私人空間處於鎖定狀態時,當中的應用程式就不會在權限管理工具、私隱資訊主頁和其他設定中顯示。\n\n私人空間無法轉移至新裝置。如要在其他裝置上使用私人空間,請重新設定。\n\n如果有人將裝置連接電腦,或在裝置上安裝有害的應用程式,或許能存取你的私人空間。"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"正在設定私人空間…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"私人空間處於鎖定狀態時,系統會隱藏私人空間應用程式的通知"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"解鎖私人空間,即可分享來自私人空間應用程式的相片或檔案"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"部分應用程式已安裝在私人空間內"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"無法設定私人空間"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"再試一次"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"要使用螢幕鎖定功能解鎖私人空間嗎?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"你可使用解鎖裝置的方式來解鎖私人空間,或選擇其他鎖定方式"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"使用螢幕鎖定方式"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"選擇新的鎖定方式"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"大功告成!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"如要存取的私人空間,請前往應用程式清單並向下捲動畫面"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"完成"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"向下捲動以尋找私人空間"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"選擇私人空間的鎖定方式"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"你可以使用指紋解鎖私人空間。為安全起見,此選項需要設定後備鎖定方式。"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"設定私人空間的 PIN"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"設定私人空間密碼"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"設定私人空間上鎖圖案"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"顯示「私人空間」(不是最終版本的使用者體驗)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"開啟「設定」應用程式"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"輕按 [安全性和私隱權] &gt; [私人空間] &gt; [在鎖定時「隱藏私人空間」]"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"關閉「在鎖定時隱藏『私人空間』」切換按鈕"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google 員工注意事項:此功能仍在開發中"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"你可能也必須在另一部裝置上輸入這個密碼金鑰。"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"確認與協調組合配對"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"允許存取你的聯絡人和通話記錄"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"亦允許存取通訊錄和通話記錄"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"資訊將用於來電通知等用途"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"無法連接「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"可用的裝置"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"處於飛行模式"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"公共網絡通知"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"有高品質的公共網絡時通知我"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"允許使用 WEP 網絡"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP 是較舊的安全通訊協定,安全性較低"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP 網絡安全性較低,因此你的流動網絡供應商不允許使用"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"自動開啟 Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"附近有已儲存的高品質網絡 (例如家用網絡) 時會再次開啟 Wi-Fi"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"由於位置資訊功能已關閉,因此無法使用。請開啟 [位置資訊]"<annotation id="link"></annotation>"。"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Wi-Fi 掃瞄功能允許應用程式和服務隨時掃瞄 Wi-Fi 網絡 (即使 Wi-Fi 已關閉)。此功能可用於改善根據位置運作的功能和服務等等。"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"開啟"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Wi‑Fi 掃瞄功能已開啟"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"此網絡使用較舊的安全通訊協定,安全性較低"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"已封鎖「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"此網絡使用較舊的安全通訊協定 WEP,安全性較低。如仍要連線,可允許使用 WEP 網絡。"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"此網絡使用較舊的安全通訊協定,安全性較低,因此你的流動網絡供應商不允許使用"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"允許使用 WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"關閉"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"進階選項"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"下拉式清單進階選項"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"展開"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"繼續使用 Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"不要再顯示"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"連線"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"已開啟 Wi-Fi"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"已連線至「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"正在連接至「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"連接中…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"無法連接網絡"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"網絡不在覆蓋範圍內"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"刪除"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"修改"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"無法刪除網絡"</string>
     <string name="wifi_save" msgid="2312643132472226807">"儲存"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"無法儲存網絡"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"取消"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"流動數據"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"以太網絡"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ 充電中"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ 充電中"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"熱點連線"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"連線強度"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"已儲存的網絡"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"未設定密碼"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"熱點名稱"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"熱點密碼"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"存取點頻段"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"自動關閉熱點"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"沒有已連線的裝置時"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"擴展兼容性"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"停用遊戲預設影格速率"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"停用遊戲影格速率上限 (<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz)。"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"流暢畫面"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"「螢幕感知」功能利用前置鏡頭偵測使用者是否看著螢幕。此功能只會在裝置上運作,圖片亦不會被儲存或傳送至 Google。"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"開啟「保持螢幕亮起」"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"看著螢幕時讓螢幕保持開啟"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"長時間螢幕逾時會較為耗電。"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"「相機」已鎖定"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"必須解鎖相機才能使用「面孔偵測」功能"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"必須解鎖相機才能使用「保持螢幕亮起」功能"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM 卡插槽 <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM 卡插槽 <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (主要)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"如要查看,請選擇已儲存的網絡"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL 版本"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"電量"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"共用"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"共用設定"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"儲存"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"取消"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"[名稱] 欄位不得留空。"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN 不可留空。"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC 欄位必須為 3 位數。"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC 欄位必須要有 2 或 3 位數。"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"流動網絡供應商不允許新增 %s 類型的 APN。"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"請在 MMSC 欄位輸入有效的值。"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"正在還原預設 APN 設定。"</string>
     <string name="menu_restore" msgid="4310539620115151551">"重設回預設值"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"重設預設 APN 設定已完成。"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"重設"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"已重設藍牙和 Wi‑Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"清除 eSIM 卡"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"此操作不會取消任何流動服務計劃。如要下載替換用的 SIM 卡,請聯絡流動網絡供應商。"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"重設設定"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"你要重設所有網絡設定嗎?你將無法復原這項操作。"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"要重設所有網絡設定並清除 eSIM 卡嗎?你無法復原此操作。"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"重設?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"這位使用者無法重設網絡"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"網絡設定已重設"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"無法清除 SIM 卡"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"由於發生錯誤,因此無法清除 eSIM 卡。\n\n請重新啟動裝置,然後再試一次。"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"清除所有資料 (回復原廠設定)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"清除所有資料 (回復原廠設定)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"音樂"</li>\n<li>"相片"</li>\n<li>"其他使用者資料"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM 卡"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"此操作不會取消你的流動服務計劃。"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"系統會刪除你所有的個人資料和已下載的應用程式。你無法復原這項操作。"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"系統會刪除你所有的個人資料,包括已下載的應用程式和 SIM 卡。你無法復原這個動作。"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"要清除所有資料嗎?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"這位使用者無法將裝置恢復原廠設定"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"正在清除"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"熱點、USB、藍牙、以太網"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"目前沒有與其他裝置共用互聯網"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"關閉"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"網絡共享"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"不使用 Wi‑Fi 熱點"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"僅透過 USB 分享互聯網"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"僅透過藍牙分享互聯網"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"僅透過以太網分享互聯網"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"僅透過 USB 和藍牙分享互聯網"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"僅透過 USB 和以太網分享互聯網"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"僅透過藍牙和以太網分享互聯網"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"僅透過 USB、藍牙和以太網分享互聯網"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB 網絡共享"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"藍牙網絡共享"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"以太網網絡共享"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"使用熱點和網絡共享功能,讓其他裝置透過 Wi‑Fi 或流動數據連接到互聯網。應用程式亦可以建立熱點,與附近的裝置分享內容。"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"說明"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"流動網絡"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"流動數據計劃"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"短訊應用程式"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"變更短訊應用程式?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"將 <xliff:g id="NEW_APP">%1$s</xliff:g> 設為你的短訊應用程式,而不使用 <xliff:g id="CURRENT_APP">%2$s</xliff:g>?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"變更 Wi‑Fi Assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"使用「<xliff:g id="NEW_APP">%1$s</xliff:g>」(取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」) 管理你的網絡連線?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理你的網絡連線?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"未知的 SIM 流動網絡供應商"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"<xliff:g id="OPERATOR">%1$s</xliff:g> 沒有已知的佈建網站"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"請插入 SIM 卡,並重新啟動裝置"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"請連接互聯網"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"最近的位置資訊要求"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"工作設定檔的位置"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"應用程式位置權限"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"取消存取權"</string>
     <string name="controls_label" msgid="8671492254263626383">"控制按鈕"</string>
     <string name="force_stop" msgid="2681771622136916280">"強制停止"</string>
+    <string name="archive" msgid="9074663845068632127">"封存"</string>
+    <string name="restore" msgid="7622486640713967157">"還原"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"總數"</string>
     <string name="application_size_label" msgid="6407051020651716729">"應用程式大小"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB 儲存裝置應用程式"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"無法計算套件大小。"</string>
     <string name="version_text" msgid="7628938665256107608">"版本 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"移動"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"封存失敗"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"已封存「<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>」"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"還原失敗"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"正在還原「<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>」"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"另一個轉移正在進行中。"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"儲存空間不足。"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"應用程式不存在。"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"可用的屏幕鍵盤"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"管理屏幕鍵盤"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"選項"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙功能"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
     <string name="show_ime" msgid="4334255501724746849">"使用屏幕鍵盤"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"當實體鍵盤處於連接狀態時,保持在畫面上顯示"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"篩選鍵"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"啟用篩選鍵可讓實體鍵盤更便於無障礙使用"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"相黏鍵"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"啟用相黏鍵可讓實體鍵盤更便於無障礙使用"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"鍵盤快速鍵"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"顯示快速鍵清單"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作設定檔鍵盤與工具"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"按使用時間排序"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"按最後使用時間排序"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"按應用程式名稱排序"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"上次使用時間"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"上次使用時間"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"從未開啟"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"使用時間"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"無障礙設定"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"無障礙設定"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍要繼續"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大設定"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"輕按三下來放大"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"使用快速鍵來放大"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"使用快速鍵和輕按三下來放大"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"關於「<xliff:g id="SERVICE">%1$s</xliff:g>」"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"用兩隻手指喺螢幕上面㩒兩下就可以打開"</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="860548190334486449">"如果要啟用同停用放大功能,請用兩隻手指喺螢幕上面嘅任何一個地方㩒兩下。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"如果要使用呢項功能,請用兩指由螢幕底部向上掃。\n\n用兩指向上掃然後㩒住,就可以切換唔同功能。"</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">"如果要使用無障礙功能,請用兩指由螢幕底部向上掃。\n\n用兩指向上掃然後㩒住,就可以切換唔同功能。"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"如果要使用無障礙功能,請用 3 隻手指由螢幕底部向上掃。\n\n用 3 隻手指向上掃然後㩒住,就可以切換唔同功能。"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"知道了"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"無障礙功能按鈕設定"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"按鈕設定"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"「<xliff:g id="SERVICE">%1$s</xliff:g>」捷徑"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"無障礙功能按鈕"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"無障礙手勢"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"用兩隻手指喺螢幕上面㩒兩下"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"用兩隻手指喺螢幕上面㩒兩下"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"用兩隻手指快速喺螢幕上面㩒 {0,number,integer} 下"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕按螢幕三下"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"輕按螢幕三下"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速㩒螢幕 {0,number,integer} 下。呢個快速鍵可能會減慢裝置運作速度"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"進一步了解無障礙功能按鈕同手勢"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"請使用無障礙功能按鈕。手勢無法與三按鈕導覽配搭使用。"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"快速使用無障礙功能"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"開始使用:"</b>\n"1. 前往無障礙設定\n2. 選取功能並輕按捷徑\n3. 選擇用按鈕或手勢來使用該功能"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"操作方法如下:"</b>\n"1. 前往無障礙設定\n2. 選取功能並輕按捷徑\n3. 選擇要用來執行該功能的按鈕"</string>
+    <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_size_title" msgid="5785110470538960881">"大小"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"按開關按鈕結束通話"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"大型滑鼠游標"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"令滑鼠游標更加顯眼"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"所有應用程式都強制使用深色主題"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"套用至本身沒有深色主題的應用程式。部分應用程式可能會有顯示問題,例如色彩反轉。"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"移除動畫"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"減少畫面上的動態效果"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"單聲道音訊"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"這項功能會追蹤你與應用程式或硬件感應器的互動,並代表你直接與應用程式互動。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"停止"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"取消"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"停止「<xliff:g id="SERVICE">%1$s</xliff:g>」?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"輕按 [<xliff:g id="STOP">%1$s</xliff:g>] 將會停止 <xliff:g id="SERVICE">%2$s</xliff:g>。"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"關閉"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"保持開啟"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"要停用「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"未安裝任何服務"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"未選取任何服務"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"未提供說明。"</string>
     <string name="settings_button" msgid="2195468788019730377">"設定"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"光敏度, 光敏, 深色主題背景, 偏頭痛, 頭痛, 朗讀模式, 夜間模式, 調低亮度, 白點"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"易於使用, 易於存取, 協助, 輔助"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"視力, 聽力, 失明, 失聰, 動作, 靈活度, 輔助, 容易使用, 容易操作, 手, 協助"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"視窗放大鏡, 縮放, 放大, 低視力"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"字幕, CC, 即時轉錄, 聽障, 失聰, CART, 語音轉文字"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"色彩對比度"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"行動, 滑鼠"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"助聽器, 聽障, 失聰, 人工耳蝸, 擴音器, 聲音處理器"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"行動, 滑鼠, 外置滑鼠, 頭部控制滑鼠, 無障礙共融滑鼠, 輪椅, 搖桿"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"助聽器, 聽障, 聽力受損, 人工耳蝸, 擴音裝置, 聲音處理器, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"聽障, 失聰, 字幕, 電傳打字, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"三個按鈕"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"靈活性, 行動, 年長, 關節炎, rsi, 中風, 顫抖, 多發性硬化症, 大腦麻痺, 抖動, 重複性勞損, 手"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"延遲, 靈活度, 年長"</string>
     <string name="print_settings" msgid="8519810615863882491">"列印"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"關閉"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{已啟用 1 項列印服務}other{已啟用 # 項列印服務}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"查看用電量最高的應用程式"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"為保護電池,系統已優化充電"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"為延長電池壽命,系統會優化充電"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"為保護電池,系統已優化充電"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"為協助延長電池壽命,裝置放在插座上充電時,系統會優化充電"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"為保護電池,系統已優化充電"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"為協助延長電池壽命,裝置放在插座上充電時,系統會優化充電"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"將電池充滿"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"為保護電池,下次你將平板電腦放在插座上充電時,系統將會優化充電"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"進一步瞭解暫停充電"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"繼續充電"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"包括高耗電背景活動"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"移除"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"取消"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"讓裝置完全充電"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"充電配件發生問題"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"進一步瞭解不兼容的變壓器充電"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"電池管理工具"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"自動管理應用程式"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"現在"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g><xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"電池用量圖表"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"每日電池用量圖表"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"每小時電池用量圖表"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"電量百分比由 <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> 至 <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"上次充滿電後的電池用量"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g>的電池用量"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"上次充滿電後的裝置使用時間"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"緊急撥號訊號"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"設定撥打緊急電話時的運作方式"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"備份"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"已開啟"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"關閉"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"備份與還原"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"個人資料"</string>
     <string name="backup_data_title" msgid="507663517227498525">"備份我的資料"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"名稱"</string>
     <string name="vpn_type" msgid="5533202873260826663">"類型"</string>
     <string name="vpn_server" msgid="2908816134941973935">"伺服器位址"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP 加密 (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP 密碼"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec 識別碼"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec 預先共用金鑰"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec 使用者憑證"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA 憑證"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec 伺服器憑證"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"顯示進階選項"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS 搜尋網域"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS 伺服器 (如 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"轉寄路徑 (如 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"使用者名稱"</string>
     <string name="vpn_password" msgid="1183746907642628127">"密碼"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"儲存帳戶資訊"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(未使用)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(不要驗證伺服器)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(從伺服器接收)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"此 VPN 類型無法隨時保持連線"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"永久連線的 VPN 只支援數字格式的伺服器位址"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"必須為永久連線的 VPN 指定網域名稱系統 (DNS) 伺服器"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"網域名稱系統 (DNS) 伺服器位址必須為數字,才能使用永久連線的 VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"輸入的資料不支援永久連線的 VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"取消"</string>
     <string name="vpn_done" msgid="5137858784289564985">"關閉"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"封鎖沒有使用 VPN 的所有連線"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"需要 VPN 連線嗎?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"此 VPN 不安全,請更新至 IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"無法啟動不支援的 VPN。"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"選取要永久保持連線的 VPN 設定檔。只在連線至這個 VPN 時才允許網絡流量。"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"無"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"永久連線的 VPN 需要同時具備伺服器和 DNS 的 IP 位址。"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"AMBER 安珀警報"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"接收兒童綁架相關公告"</string>
     <string name="repeat_title" msgid="8676570486899483606">"重複"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"啟用通話管理員"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"允許此服務管理你的通話方式。"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"通話管理員"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"無線緊急警示"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"網絡供應商"</string>
     <string name="access_point_names" msgid="5768430498022188057">"接入點名稱"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"錢包"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"支付, 輕按, 付款"</string>
     <string name="keywords_backup" msgid="707735920706667685">"備份內容, 備份"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"手勢"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"臉容, 解鎖, 驗證, 登入"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"面孔, 解鎖, 驗證, 登入, 指紋, 生物識別"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"MEI, MEID, MIN, PRL 版本, IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"開機聲音"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"即時字幕"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"自動為媒體加入字幕"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"手機喇叭"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"平板電腦喇叭"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"裝置喇叭"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"有線耳機"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"兼容媒體的音效更逼真,讓你身歷其境"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"已關閉"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"已移除近期對話"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"已移除對話"</string>
     <string name="clear" msgid="5092178335409471100">"清除"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"清除<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"優先對話和已修改的對話會顯示在這裡"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"這裡會顯示你標記為優先對話或有其他變更的對話。\n\n如要變更對話設定,請按照下列步驟操作:\n從螢幕頂部向下滑動以開啟下拉式面板,然後輕觸並按住對話。"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"最小化"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"關閉"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"固定應用程式"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"應用程式固定功能可讓目前使用的應用程式持續在畫面上顯示,直到你取消固定為止。此功能可讓信任的朋友玩特定遊戲。"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"固定應用程式後,該應用程式可開啟其他應用程式,亦能存取個人資料。\n\n使用應用程式固定功能的步驟如下:	\n1. 開啟應用程式固定功能	\n2. 開啟 [概覽]	\n3. 輕按畫面頂部的應用程式圖示,然後輕按 [固定]"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"固定應用程式後,該應用程式可開啟其他應用程式,亦能存取個人資料。\n\n如要安全地與他人共用裝置,建議你改用訪客使用者。\n\n使用應用程式固定功能的步驟如下:	\n1. 開啟應用程式固定功能 \n2. 開啟「概覽」 \n3. 輕按畫面頂部的應用程式圖示,然後輕按 [固定]"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"管理應用程式 (如未使用)"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"移除權限、刪除暫存檔案、停止通知和封存應用程式"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"所有應用程式"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"已安裝的應用程式"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"免安裝應用程式"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"可用"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"應用程式的記憶體用量"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{過去 {time}內有 1 個應用程式使用過記憶體}other{過去 {time}內有 # 個應用程式使用過記憶體}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"啟用記憶體用量資料剖析功能"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"記憶體用量資料剖析功能啟用後,將需要較多的系統資源。"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"已停用記憶體用量資料剖析功能"</string>
     <string name="running_frequency" msgid="7260225121706316639">"頻率"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"最高用量"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"並未使用數據"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"在其他應用程式上面顯示"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"可顯示在其他應用程式上面"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"允許此應用程式在你目前使用的其他應用程式上層顯示內容。該應用程式將可知道你輕按的位置或變更畫面上顯示的內容。"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"變更媒體輸出"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"允許應用程式切換媒體輸出"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"允許此應用程式選擇要使用哪一部連結的裝置播放其他應用程式的音訊或影片。如果允許,此應用程式可存取存取清單中的可用裝置 (例如耳機和喇叭),並選擇要使用哪一部輸出裝置串流播放或投放音訊或影片。"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"所有檔案存取權"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"改善語音啟用功能"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"為提升語音啟動模型的品質,此裝置會使用私人資料技術。應用程式可接收由多名使用者的資料彙整而成的更新摘要,為所有人改善模型的同時,也保障使用者的私隱。\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> 數據用量上限"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告/<xliff:g id="ID_2">^2</xliff:g> 數據用量上限"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"流動網絡供應商的數據計算方式可能與裝置有所不同"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"不包括流動網絡供應商網絡使用的數據"</string>
     <string name="data_used_template" msgid="8229342096562327646">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"設定數據用量警告"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g>前更新"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> 於剛剛更新"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"剛剛更新"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"查看數據計劃"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"查看詳情"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"數據節省模式"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"不限制數據用量"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"電池用量異常情況"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"快速設定開發人員圖塊"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"停用 adb 授權逾時"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"對在預設時間 (7 天) 或使用者設定的時間 (最少 1 天) 內未重新連接的系統停用自動撤銷 adb 授權。"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope 追蹤"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"感應器已關閉"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"工作設定檔設定"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"在個人應用程式中搜尋工作目錄聯絡人"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"自動填入服務"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"預設的自動填入服務"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"密碼"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"密碼、密鑰及資料服務"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"其他供應商"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 個密碼}other{# 個密碼}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"自動, 填寫, 自動填入, 密碼"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"資料, 密鑰, 密碼"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自動, 填入, 自動填入, 資料, 密鑰, 密碼"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"密碼、密鑰及資料服務"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;要關閉所有服務嗎?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;系統將無法在你登入時提供密碼、密鑰和其他已儲存的資料"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;將偏好的服務變更為「&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;」。從現在起,系統會將新密碼、密鑰和其他資訊儲存在此應用程式。「&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;」可能會根據畫面內容判斷要自動填入的資料"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"要使用「%1$s」嗎?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"你只可同時開啟 5 項服務"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"如要新增其他服務,請關閉至少 1 項服務"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"「%1$s」會根據畫面內容判斷要自動填入的資料。"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"密碼、密鑰及資料服務限制"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"你最多可同時啟用 5 項密碼、密鑰及資料服務。如要新增服務,請先關閉其中一項服務。"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"密碼、密鑰及資料服務限制"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"你最多可同時啟用 5 項密碼、密鑰及資料服務。如要新增服務,請先關閉其中一項服務。"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"關閉"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"自動填入"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"記錄等級"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"你只能修改 debuggable 應用程式的兼容性。請安裝 debuggable 應用程式,然後再試。"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"必須一併變更其他設定"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"帳戶"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d 個帳戶"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"裝置名稱"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"基本資料"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"法律及監管"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"允許系統掃瞄到 NFC 標籤時啟用此應用程式。\n如開啟此權限,系統會在偵測到標籤時,將此應用程式列為選項。"</string>
     <string name="media_output_title" msgid="8283629315159510680">"播放媒體的裝置"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"使用以下裝置播放「<xliff:g id="LABEL">%s</xliff:g>」的內容"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"音訊播放媒體"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"此裝置"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"通話時無法使用"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"接聽來電時使用的裝置"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"靜音"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"如要啟用,請先將「按住開關按鈕」變更為電源選單。"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"網絡詳細資料"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"你在手機上的應用程式可以取得你的裝置名稱。當你連接藍牙裝置或 Wi-Fi 網絡,或設定 Wi-Fi 熱點時,其他人亦可能會看到你的裝置名稱。"</string>
     <string name="devices_title" msgid="649715719278562515">"裝置"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"選擇網絡"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"連接已中斷"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"名稱"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"顏色 (由兼容應用程式使用)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"儲存"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"使用 SIM 卡"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"使用此 SIM 卡"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"關"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"如要停用此 SIM 卡,請將其移除"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"輕按即可啟用<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"清除 SIM 卡"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"首選網絡類型"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"更改網絡操作模式"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"首選網絡類型"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"請聯絡你的網絡供應商查詢定價。"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"應用程式數據用量"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"網絡模式 <xliff:g id="NETWORKMODEID">%1$d</xliff:g> 無效。忽略。"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"接入點名稱 (APN)"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"無法在連接至<xliff:g id="CARRIER">%1$s</xliff:g>時使用"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"要切換至 <xliff:g id="CARRIER_NAME">%1$s</xliff:g> 嗎?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"要改用 SIM 卡嗎?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"要使用「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」嗎?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"每次只可啟用一張 SIM 卡。\n\n切換至 <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> 將不會取消你的 <xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g> 服務。"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"每次只可啟用 1 張 eSIM 卡。\n\n切換至「<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>」將不會取消你的「<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>」服務。"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"每次只可啟用一張 SIM 卡。\n\n改用其他服務將不會取消你的 <xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> 服務。"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"你可以同時使用 2 張 SIM 卡。如要使用「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」,請關閉另一張 SIM 卡。"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"切換至 <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"關閉「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"不用了,謝謝"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"取消"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"切換"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"關閉"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"無法啟用 SIM 卡"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"請嘗試再次啟用 SIM 卡。如果問題持續發生,請重新啟動裝置。"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"設定 SIM 卡"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"如要在此裝置上使用多張 SIM 卡,請設定偏好的流動網絡"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"將 SIM 卡加上標籤"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"撥打電話、傳送短訊及使用數據和「設定」頁面時,你會看到這些標籤"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM 標籤"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"標籤"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"選取要使用的 SIM 卡"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"你可同時使用兩張 SIM 卡"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"設定主要 SIM 卡"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"選擇用於通話、短訊和數據的預設 SIM 卡"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"主要 SIM 卡"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"通話"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"短訊"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"自動切換數據"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"按流動網絡的覆蓋範圍和適用範圍,選擇要使用哪張 SIM 卡的數據"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"數據專用"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"設定"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"下一頁"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"流動網絡"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"電話號碼"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM 卡標籤和顏色"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"網絡啟用"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"轉用流動網絡供應商"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"已啟用<xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"日後如要使用流動數據、通話和短訊功能,請前往 [網絡設定] 調整設定內容"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM 卡"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"要清除此 eSIM 卡嗎?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"清除此 SIM 卡即會從此裝置中移除 <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> 服務。\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> 的服務將不會取消。"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"清除"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"正在清除 SIM 卡…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"無法清除 SIM 卡"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"由於發生錯誤,因此無法清除此 SIM 卡。\n\n請重新啟動裝置,然後再試一次。"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"連接裝置"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"「<xliff:g id="APPNAME">%1$s</xliff:g>」應用程式要求使用臨時 Wi-Fi 網絡連接你的裝置"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"找不到任何裝置。請確保裝置已開啟,並可連接網絡。"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"緊急通話"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"你的電訊商目前不支援透過 Wi-Fi 通話撥打緊急電話。\n裝置會自動切換至流動網絡以撥打緊急電話。\n你只可在流動網絡覆蓋的區域撥打緊急電話。"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"使用 Wi‑Fi 撥打電話,以提升通話質素"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"備用通話"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"如果 <xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> 無法使用,系統將透過流動數據 SIM 卡撥打和接聽 <xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g> 的電話。"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"備用通話"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"收到的 MMS 訊息"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"無法傳送 MMS 訊息"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"輕按即可在流動數據關閉的情況下透過<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>傳送 MMS 訊息"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"你的工作政策資料"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"由 IT 管理員管理的設定"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"使用 16 K 頁面大小啟動"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"使用 16 K 頁面大小支援的 kernel 啟動裝置"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"要使用 16 KB 頁面兼容 kernel 重新啟動嗎?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"警告:部分應用程式可能與此模式不兼容。裝置將在確認後重新啟動。"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"要使用 4 KB 頁面兼容 kernel 重新啟動嗎?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"裝置將在確認後重新啟動。"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"無法將 kernel 更新為 16 KB 頁面兼容 kernel。"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"正在套用變更"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"錯誤報告處理常式"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"選擇裝置上負責處理錯誤報告快速鍵的應用程式。"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"個人"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"如要快速恢復播放,請讓「快速設定」中的媒體播放器保持開啟"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"在上鎖畫面上顯示媒體"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"如要快速恢復播放,請讓媒體播放器在上鎖畫面保持開啟"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"顯示媒體建議"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"顯示「Google 助理」媒體內容推薦"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"根據你的活動"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"隱藏播放器"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"顯示播放器"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM 卡"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM 卡"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM 卡"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"已啟用"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"未啟用"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" /<xliff:g id="ID_1">%1$s</xliff:g>的預設設定"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"通話"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"短訊"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"兼容媒體的音效更逼真,讓你身歷其境"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"頭部追蹤"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音訊會隨著你轉動頭部而變化,因此聽起來更自然"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"同步權限"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"將應用程式在「<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>」上的權限授予「<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>」"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"同步手機的權限"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"將此手機上你已允許的相同應用程式權限授予手錶"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音響裝置類型"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"喇叭"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
     <string name="contrast_high" msgid="3988567609694797696">"高"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"此應用程式只可在 1 個視窗中開啟"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"開啟"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"關閉"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"關閉"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"已停用"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"已啟用"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"已停用"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"已啟用"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"已停用"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"將明亮的畫面調暗或將深色畫面轉為淺色"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"放大畫面"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"已停用"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"已停用"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"已啟用"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"已停用"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"已啟用"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"密碼現已設定"</string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 406bdcf..b358037 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 分鐘後"</item>
     <item msgid="1574040255478150028">"5 分鐘後"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 605e83f..5c70617 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -28,6 +28,7 @@
     <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="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"只有管理員使用者可以存取開發人員設定。"</string>
     <string name="header_category_system" msgid="1665516346845259058">"系統"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"服務中"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"無服務"</string>
@@ -46,6 +47,8 @@
     <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="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"向上滑動即可繼續使用"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"你可以將手機摺疊並在封面螢幕向上滑動,繼續使用應用程式,或等待幾秒,讓系統鎖定螢幕"</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>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"相關工具"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"鈴聲和鬧鐘"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"通話期間的音訊"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"媒體"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"通知和其他系統音效"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"媒體和系統音效"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"通知"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"根據預設,系統會視個別應用程式決定輸出的音訊內容"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"未命名的藍牙裝置"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"搜尋中"</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"已開啟藍牙"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"查看全部"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"查看全部"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"觸控筆"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"按下按鈕後隨即開啟"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (工作資料夾)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"連線至 LE 音訊串流"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"附近的音訊串流"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"音訊串流"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"使用 QR code 連線至音訊串流"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"未偵測到附近有音訊串流。"</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"如要為各應用程式選取語言,請前往應用程式語言設定。"</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"進一步瞭解應用程式的語言"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"要將系統語言變更為「%s」嗎?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"要將「%s」新增為偏好語言嗎?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"這麼做可讓應用程式和網站知道這也是你的偏好語言。"</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"系統將變更裝置設定和地區偏好設定。"</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"變更"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"「%s」無法使用"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"星期六"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"如果應用程式不支援地區偏好設定,就會使用預設的語言代碼設定。"</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"進一步瞭解語言偏好設定"</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"其他偏好設定"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"稱謂"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"設定你想要的稱謂"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"應用程式可以使用你的稱謂量身打造對你的稱呼方式。"</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"未指定"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"女性"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"男性"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"普通"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{要移除所選語言嗎?}other{要移除所選語言嗎?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"使用介面的文字會切換成另一種語言。"</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"無法移除所有語言"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"位置"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"使用位置資訊"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"關閉"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{已開啟 - # 個應用程式已取得位置存取權}other{已開啟 - # 個應用程式已取得位置存取權}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{已開啟/# 個應用程式可存取位置資訊}other{已開啟/# 個應用程式可存取位置資訊}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"載入中…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"如果應用程式具有鄰近裝置權限,就能判斷已連結裝置的相對位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"應用程式和服務的位置存取權已關閉。當你撥打或傳訊息到緊急電話號碼時,系統仍會將你的裝置位置資訊傳送給緊急應變人員。"</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"進一步瞭解位置資訊設定。"</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"進一步瞭解位置資訊設定"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"如要變更位置資訊存取權,請依序前往「設定」&gt;「安全性與隱私權」&gt;「隱私權控制項」"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"為獲得最佳效果,請使用 Made For Google 認證的螢幕保護貼。如果使用其他螢幕保護貼,系統可能無法辨識孩子的指紋。"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"智慧手錶解鎖"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"設定人臉解鎖和指紋解鎖後,如果你戴口罩或人在光線昏暗的環境,系統會要求你使用指紋解鎖手機。\n\n如果系統無法辨識你的臉或指紋,可以使用智慧手錶解鎖裝置。"</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"如果系統無法辨識你的指紋,可以使用智慧手錶解鎖裝置。"</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"如果系統無法辨識你的臉,可以使用智慧手錶解鎖裝置。"</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"設定「人臉解鎖」和「指紋解鎖」功能後,如果你戴口罩或人在光線昏暗的環境,手機會要求你使用指紋解鎖。\n\n如要解鎖這支手機,「智慧手錶解鎖」功能也很方便。舉例來說,手指有水或臉部辨識失敗時,使用智慧手錶即可輕鬆解鎖。"</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"如要解鎖這支手機,「智慧手錶解鎖」功能也很方便。舉例來說,指紋辨識失敗時,使用智慧手錶即可輕鬆解鎖。"</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"如要解鎖這支手機,「智慧手錶解鎖」功能也很方便。舉例來說,臉部辨識失敗時,使用智慧手錶即可輕鬆解鎖。"</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"使用指紋或智慧手錶"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"使用人臉或智慧手錶"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"使用人臉、指紋或智慧手錶"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增臉孔和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
+    <string name="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_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>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"運作方式"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"你的智慧手錶必須處於解鎖狀態,並戴在手腕上,而且要在這支手機的連線範圍內。如果智慧手錶已戴在手腕上,就不必再解鎖智慧手錶。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"手機解鎖後,手錶上會顯示通知。如果不小心解鎖手機,只要輕觸通知,即可再次鎖定。"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"一切由你掌控"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"你隨時可以在「設定」中透過「智慧手錶解鎖」移除智慧手錶"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"輕觸通知"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"在螢幕鎖定畫面向上滑動"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"選擇你的智慧手錶"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"可用的智慧手錶"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"取消"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"確認"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"大功告成!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"現在用手指在螢幕鎖定畫面上向上滑動或輕觸通知,即可使用手錶解鎖這支手機"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完成"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"智慧手錶解鎖"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"在螢幕鎖定畫面向上滑動或輕觸通知,即可使用智慧手錶解鎖這支手機"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"如要使用「智慧手錶解鎖」功能,智慧手錶必須戴在手腕上並處於解鎖狀態,而且要在這支手機的連線範圍內。如果連線中斷,請先解鎖手機,才能使用「智慧手錶解鎖」功能。\n\n注意事項:\n一次只能設定一支手錶。如果還新增,請先移除目前的手錶。"</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"進一步瞭解「智慧手錶解鎖」功能"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"新增智慧手錶"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除智慧手錶"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋與人臉解鎖"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用於工作資料夾的人臉和指紋解鎖"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要設定"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"安全性"</string>
     <string name="privacy_header" msgid="5526002421324257007">"隱私權"</string>
     <string name="work_profile_category_header" msgid="85707750968948517">"工作資料夾"</string>
+    <string name="private_space_title" msgid="7078627930195569767">"私人空間"</string>
+    <string name="private_space_summary" msgid="2274405892301976238">"讓私人應用程式保持鎖定及隱藏的狀態"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"將私人應用程式安裝在可隱藏或鎖定的獨立空間"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"私人空間鎖定"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"你可以用解鎖裝置的方式來解鎖私人空間,或選擇其他鎖定設定"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"使用裝置螢幕鎖定"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"人臉和指紋解鎖"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"指紋解鎖"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"人臉解鎖"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"輕觸即可設定"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"使用指紋解鎖私人空間"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"使用人臉解鎖私人空間"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"解鎖方式"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"與裝置的螢幕鎖定一致"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"要選擇鎖定私人空間的新設定嗎?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"自動鎖定"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"自動鎖定私人空間"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"裝置可在閒置一段時間後自動鎖定私人空間"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"每當裝置鎖定"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"閒置 5 分鐘後"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"永不"</string>
+    <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_deleted" msgid="7825768516955610897">"成功刪除私人空間"</string>
+    <string name="private_space_delete_failed" msgid="8500755484258565011">"無法刪除私人空間"</string>
+    <string name="private_space_unlocked" msgid="9091600948712932046">"私人空間已解鎖"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"如要使用私人空間,請在這部裝置設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_action_label" msgid="2640487005629001288">"設定螢幕鎖定功能"</string>
+    <string name="no_device_lock_cancel" msgid="4412602160321228863">"取消"</string>
+    <string name="private_space_cancel_label" msgid="379259667396956886">"取消"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"設定"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"設定私人空間"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"將私人應用程式安裝在可隱藏或鎖定的獨立空間"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"運作方式"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"你可以在應用程式清單底部存取私人空間"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"鎖定私人空間即可保護應用程式"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"私人空間鎖定時,系統會隱藏來自私人空間應用程式的通知"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"私人空間鎖定時,當中的應用程式不會顯示在權限管理工具、隱私資訊主頁和其他設定。\n\n你無法將私人空間轉移到新裝置。如要在其他裝置上使用私人空間,請重新設定。\n\n如果有人將裝置接上電腦,或在裝置上安裝有害的應用程式,或許能夠存取你的私人空間。"</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"正在設定私人空間…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"私人空間鎖定時,系統會隱藏來自私人空間應用程式的通知"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"解鎖私人空間後,就能分享來自私人空間應用程式的相片或檔案"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"部分應用程式已安裝在私人空間內"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"無法設定私人空間"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"再試一次"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"要使用螢幕鎖定功能鎖定私人空間嗎?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"你可以用螢幕鎖定功能鎖定私人空間,也可以選擇其他鎖定方式"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"使用螢幕鎖定功能"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"選擇新的鎖定方式"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"大功告成!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"如要存取私人空間,請前往應用程式清單並向下捲動畫面"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"完成"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"向下捲動畫面即可找到私人空間"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"選擇私人空間鎖定方式"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"你可以用指紋解鎖私人空間。為了安全起見,你必須設定備用鎖定方式,才能使用這個選項。"</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"設定私人空間的 PIN 碼"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"設定私人空間的密碼"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"設定私人空間的解鎖圖案"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"顯示私人空間 (非最終使用者體驗版本)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"開啟「設定」應用程式"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"依序輕觸「安全性與隱私權」&gt;「私人空間」&gt;「隱藏鎖定的私人空間」"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"關閉「隱藏鎖定的私人空間」切換按鈕"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Google 員工注意事項:這項功能仍在開發中"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"你可能也必須在另一個裝置上輸入這個密碼金鑰。"</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"確認與協同組配對"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"允許存取你的聯絡人和通話記錄"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"也允許存取聯絡人和通話記錄"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"資訊將用於來電通知等用途"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"無法連線至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"可用的裝置"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"處於飛行模式時"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"附近有公用網路時通知我"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"有高品質的公用網路時通知我"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"允許使用 WEP 網路"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"WEP 是較舊的安全通訊協定,安全性較低"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"WEP 網路安全性較低,因此你的電信業者不允許使用這類網路"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"自動開啟 Wi‑Fi"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"若偵測到已儲存且連線品質佳的 Wi‑Fi 網路 (例如家用網路),系統會自動重新開啟 Wi‑Fi"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"定位服務已關閉,因此無法使用。請開啟 [定位]"<annotation id="link"></annotation>"。"</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"掃描 Wi-Fi 功能可在 Wi‑Fi 關閉時,讓應用程式和服務隨時掃描 Wi‑Fi 網路。此功能可用來改善適地性等功能和服務。"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"開啟"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"已開啟掃描 Wi-Fi 功能"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"這個網路使用較舊的安全通訊協定,安全性較低"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"已封鎖「<xliff:g id="NAME">%1$s</xliff:g>」"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"這個網路採用 WEP 這個較舊的安全通訊協定,安全性較低。如果仍要連線,可以允許使用 WEP 網路。"</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"這個網路使用較舊的安全通訊協定,安全性較低,因此你的電信業者不允許連線到這個網路"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"允許使用 WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"關閉"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"進階選項"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"下拉式清單進階選項"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"展開"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"保持開啟 Wi‑Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"不要再顯示"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"連線"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"Wi‑Fi 已開啟"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"已連線到「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"正在連線到「<xliff:g id="NETWORK_NAME">%1$s</xliff:g>」"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"連線中…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"無法連線至網路"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"不在網路有效範圍內"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"清除"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"修改"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"無法刪除網路"</string>
     <string name="wifi_save" msgid="2312643132472226807">"儲存"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"無法儲存網路"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"取消"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"Wi‑Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"行動數據"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"乙太網路"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ 充電中"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ 充電中"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"無線基地台連線"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"連線強度"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"已儲存的網路"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"未設定密碼"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"無線基地台名稱"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"無線基地台密碼"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"AP 頻帶"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"自動關閉無線基地台"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"未連接任何裝置時"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"擴充相容性"</string>
@@ -1008,8 +1149,10 @@
     <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="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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"停用遊戲預設畫面更新率"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"停用遊戲的畫面更新率上限 (<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz)。"</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"流暢顯示"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"螢幕感知功能會使用前置鏡頭判斷是否有人正在看著螢幕。這項功能只會在裝置上執行,系統不會儲存相關圖片或將其傳送給 Google。"</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"開啟螢幕感知功能"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"看著螢幕時讓螢幕保持開啟"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"螢幕自動關閉的等候時間越長,就會越耗電。"</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"相機已解鎖"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"必須解鎖相機才能使用臉部偵測功能"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"必須解鎖相機才能使用螢幕感知功能"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"IMEI (SIM 卡插槽 <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"IMEI (SIM 卡插槽 <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (主要)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"如要查看 MAC 位址,請選擇已儲存的網路"</string>
+    <string name="status_imei" msgid="5719752369250485007">"IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"MIN"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"PRL 版本"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"電池電量"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"共通"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"共通設定"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1267,6 +1416,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>
@@ -1274,11 +1425,14 @@
     <string name="menu_save" msgid="6611465355127483100">"儲存"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"取消"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"[名稱] 欄位不得留空。"</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"APN 不可留空。"</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"MCC 欄位必須為 3 位數。"</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"MNC 欄位必須要有 2 或 3 位數。"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"電信業者不允許新增「%s」類型的 APN。"</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"請在 MMSC 欄位輸入有效的值。"</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"正在還原預設 APN 設定。"</string>
     <string name="menu_restore" msgid="4310539620115151551">"還原為預設狀態"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"重設預設 APN 設定已完成。"</string>
@@ -1291,7 +1445,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"重設"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"已重設藍牙和 Wi‑Fi"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"清除 eSIM 卡"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"這項操作不會取消任何電信資費方案。如要下載替換用的 SIM 卡,請與你的電信業者聯絡。"</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"重設設定"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"要重設所有網路設定嗎?請注意,這個動作無法復原。"</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"要重設所有網路設定並清除 eSIM 卡嗎?請注意,這項操作無法復原。"</string>
@@ -1299,15 +1454,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"你要重設嗎?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"這個使用者無法重設網路設定"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"已重設網路設定"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"無法清除 SIM 卡"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"發生錯誤,因此無法清除 eSIM 卡。\n\n請重新啟動裝置,然後再試一次。"</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"清除所有資料 (恢復原廠設定)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"清除所有資料 (恢復原廠設定)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"音樂"</li>\n<li>"相片"</li>\n<li>"其他使用者資料"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729"><li>"eSIM 卡"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"你目前的電信資費方案並不會因此受到任何影響。"</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"系統將刪除你的所有個人資訊和已下載的應用程式。請注意,這項操作無法復原。"</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"系統將刪除你所有的個人資訊,包括已下載的應用程式和 SIM 卡。請注意,這項操作無法復原。"</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"要清除所有資料嗎?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"這位使用者無法將裝置恢復原廠設定"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"清除中"</string>
@@ -1340,16 +1498,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"無線基地台、USB、藍牙和乙太網路"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"目前並未分享網路給其他裝置"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"關閉"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"網路共用"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"不使用 Wi-Fi 無線基地台"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"僅透過 USB 分享網際網路連線"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"僅透過藍牙分享網際網路連線"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"僅透過乙太網路分享網際網路連線"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"僅透過 USB 和藍牙分享網際網路連線"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"僅透過 USB 和乙太網路分享網際網路連線"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"僅透過藍牙和乙太網路分享網際網路連線"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"僅透過 USB、藍牙和乙太網路分享網際網路連線"</string>
-    <string name="usb_title" msgid="1157283449840612901">"USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"USB 網路共用"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"藍牙網路共用"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"乙太網路共用"</string>
@@ -1357,7 +1505,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"使用無線基地台和網路共用功能,讓其他裝置能夠透過你的 Wi-Fi 或行動數據連線連上網際網路。應用程式也可以建立無線基地台,以便與鄰近的裝置分享內容。"</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"說明"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"行動網路"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"行動數據傳輸資費方案"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"簡訊應用程式"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"變更簡訊應用程式?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"你要改用「<xliff:g id="NEW_APP">%1$s</xliff:g>」而不再使用「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」做為簡訊應用程式嗎?"</string>
@@ -1365,10 +1512,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"變更 Wi‑Fi Assistant?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"改以「<xliff:g id="NEW_APP">%1$s</xliff:g>」取代「<xliff:g id="CURRENT_APP">%2$s</xliff:g>」管理你的網路連線?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"使用「<xliff:g id="NEW_APP">%s</xliff:g>」管理你的網路連線?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"未知的 SIM 卡電信業者"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"「<xliff:g id="OPERATOR">%1$s</xliff:g>」沒有任何已知的佈建網站"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"請插入 SIM 卡,並重新啟動裝置"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"請連線至網際網路"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"最近的定位要求"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"工作資料夾位置資訊"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"應用程式位置存取權"</string>
@@ -1551,6 +1694,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"清除存取權"</string>
     <string name="controls_label" msgid="8671492254263626383">"控制項"</string>
     <string name="force_stop" msgid="2681771622136916280">"強制停止"</string>
+    <string name="archive" msgid="9074663845068632127">"封存"</string>
+    <string name="restore" msgid="7622486640713967157">"還原"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"總共"</string>
     <string name="application_size_label" msgid="6407051020651716729">"應用程式大小"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB 儲存裝置應用程式"</string>
@@ -1604,6 +1757,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"無法計算套件大小。"</string>
     <string name="version_text" msgid="7628938665256107608">"版本 <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"移動"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"無法封存"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"已封存「<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>」"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"還原失敗"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"正在還原「<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>」"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"目前已在執行另一項遷移作業。"</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"儲存空間不足。"</string>
     <string name="does_not_exist" msgid="6499163879348776120">"應用程式不存在。"</string>
@@ -1689,9 +1846,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"可用的螢幕小鍵盤"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"管理螢幕小鍵盤"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"選項"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
     <string name="show_ime" msgid="4334255501724746849">"使用螢幕小鍵盤"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"使用實體鍵盤時仍繼續顯示螢幕小鍵盤"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"篩選鍵"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"啟用篩選鍵可讓實體鍵盤更易於使用"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"相黏鍵"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"啟用相黏鍵可讓實體鍵盤更易於使用"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"鍵盤快速鍵"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"顯示快速鍵清單"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作資料夾鍵盤和工具"</string>
@@ -1789,7 +1951,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"依使用時間排序"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"依上次使用時間排序"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"依應用程式名稱排序"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"上次使用時間"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"上次使用時間"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"從未開啟"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"使用時間"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"無障礙設定"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"無障礙設定"</string>
@@ -1852,7 +2015,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"仍要繼續"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"取消"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"放大功能設定"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"輕觸螢幕三下進行放大"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"使用快速手勢放大畫面"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"使用快速手勢並輕觸三下即可放大畫面"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"關於「<xliff:g id="SERVICE">%1$s</xliff:g>」"</string>
@@ -1878,18 +2040,20 @@
     <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_double" msgid="3912970760484557646">"用兩指輕觸螢幕兩下即可開啟"</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="860548190334486449">"如要啟用及停用放大功能,請用兩指在螢幕的任一處輕觸兩下。"</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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"如要使用無障礙功能,請用 3 指從螢幕底部向上滑動。\n\n如要切換不同的功能,請用 3 指向上滑動並按住。"</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"我知道了"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"無障礙工具按鈕設定"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"按鈕設定"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"「<xliff:g id="SERVICE">%1$s</xliff:g>」捷徑"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"無障礙工具按鈕"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"無障礙手勢"</string>
@@ -1905,6 +2069,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_double_tap" msgid="2271778556854020996">"用兩指輕觸螢幕兩下"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"用兩指輕觸螢幕兩下"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"用兩指快速輕觸螢幕 {0,number,integer} 下"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"輕觸螢幕三下"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="6863958573135995927">"輕觸螢幕三下"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_triple_tap" msgid="2102327956423320536">"快速輕觸螢幕 {0,number,integer} 下。這個手勢可能會影響裝置的運作效能"</string>
@@ -1923,8 +2090,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"進一步瞭解無障礙工具按鈕和手勢"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"請使用無障礙工具按鈕。手勢無法搭配三按鈕操作機制。"</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"快速使用無障礙功能"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"操作方法如下:"</b>\n"1. 前往無障礙設定\n2. 選取功能並輕觸捷徑\n3. 選擇是否要透過按鈕或手勢執行該功能"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"操作方法如下:"</b>\n"1. 前往無障礙設定\n2. 選取功能並輕觸捷徑\n3. 選擇要用來執行該功能的按鈕"</string>
+    <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_size_title" msgid="5785110470538960881">"大小"</string>
@@ -1940,6 +2107,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"按電源鍵結束通話"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"大型滑鼠游標"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"讓滑鼠游標更醒目"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"所有應用程式都強制使用深色主題"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"套用到本身沒有深色主題的應用程式。部分應用程式可能會有顯示問題,例如顏色反轉。"</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"移除動畫"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"減少畫面上的動態效果"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"單聲道音訊"</string>
@@ -1992,6 +2161,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>
@@ -2128,16 +2298,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"可追蹤你與應用程式或硬體感應器的互動,並代表你與應用程式進行互動。"</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"允許"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"拒絕"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"停止"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"取消"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"停止「<xliff:g id="SERVICE">%1$s</xliff:g>」?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"輕觸「<xliff:g id="STOP">%1$s</xliff:g>」會讓「<xliff:g id="SERVICE">%2$s</xliff:g>」停止運作。"</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"停用"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"保持啟用"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"要停用「<xliff:g id="SERVICE">%1$s</xliff:g>」嗎?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"未安裝任何服務"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"未選取任何服務"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"未提供說明。"</string>
     <string name="settings_button" msgid="2195468788019730377">"設定"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"對光線敏感、畏光、深色主題、偏頭痛、頭痛、閱讀模式、夜間模式、調低亮度、白點"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"容易使用, 容易存取, 輔助功能, 輔助"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"視力, 聽力, 失明, 失聰, 動作, 精細動作, 輔助, 容易使用, 容易操作, 手, 協助"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"視窗放大鏡, 縮放, 放大, 低視能, 加大, 調大"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"字幕, 隱藏式輔助字幕, CC, 即時轉錄, 聽障, 聽力受損, CART, 語音轉文字, 字幕 (Subtitle)"</string>
@@ -2152,10 +2321,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"色彩對比"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"動作, 滑鼠"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"助聽器, 聽障, 聽力受損, 人工電子耳, 擴音裝置, 聲音處理器"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"動作, 滑鼠, 外接滑鼠, 頭控滑鼠, 調適型滑鼠, 輪椅, 搖桿"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"助聽器, 聽障, 聽力受損, 人工電子耳, 擴音裝置, 聲音處理器, PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"聽障, 聽力受損, 字幕, 電傳打字, tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"三個按鈕"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"精細動作, 動作, 年長, 關節炎, rsi, 中風, 顫抖, 多發性硬化症, 腦性麻痺, 震顫, 重複性使力傷害, 手"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"延遲, 精細動作, 年長"</string>
     <string name="print_settings" msgid="8519810615863882491">"列印"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"關閉"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 個列印服務已啟用}other{# 個列印服務已啟用}}"</string>
@@ -2190,11 +2362,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>
@@ -2230,12 +2407,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"查看電池用量最高的應用程式"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"為保護電池,充電效能已最佳化"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"為延長電池壽命,系統已最佳化充電效能"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"為保護電池,充電效能將最佳化"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"為延長電池壽命,充電效能會在裝置插入座架時最佳化"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"為保護電池,充電效能已最佳化"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"為延長電池壽命,充電效能會在裝置插入座架時最佳化"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"將電池充飽"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"為保護電池,充電效能會在下次平板電腦插入座架時最佳化"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"進一步瞭解暫停充電"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"繼續充電"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"包含高耗電背景活動"</string>
@@ -2253,7 +2424,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"移除"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"取消"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"將電池充飽"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"充電配件有問題"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"進一步瞭解不相容的變壓器充電"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"自動管理應用程式"</string>
@@ -2293,6 +2465,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>
@@ -2336,6 +2509,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>
@@ -2343,9 +2517,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"現在"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g><xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g>,<xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"電池用量圖表"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"每日電池用量圖表"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"每小時電池用量圖表"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"電池電量百分比:從 <xliff:g id="START_PERCENTAGE">%1$s</xliff:g> 到 <xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"上次充飽電後的電池用量"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"<xliff:g id="SLOT">%s</xliff:g>的電池用量"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"自上次充飽電後的裝置使用時間"</string>
@@ -2461,8 +2637,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"緊急撥號信號"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"設定撥打緊急電話時的運作方式"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"備份"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"開啟"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"關閉"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"備份與還原"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"個人資料"</string>
     <string name="backup_data_title" msgid="507663517227498525">"備份我的資料"</string>
@@ -2551,6 +2725,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>
@@ -2600,27 +2775,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"名稱"</string>
     <string name="vpn_type" msgid="5533202873260826663">"類型"</string>
     <string name="vpn_server" msgid="2908816134941973935">"伺服器位址"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP 加密 (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"L2TP 密碼"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"IPSec 識別碼"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"IPSec 預先共用金鑰"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"IPSec 使用者憑證"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"IPSec CA 憑證"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec 伺服器憑證"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"顯示進階選項"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"DNS 搜尋網域"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"DNS 伺服器 (例如 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"轉寄路徑 (例如 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"使用者名稱"</string>
     <string name="vpn_password" msgid="1183746907642628127">"密碼"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"儲存帳戶資訊"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(未使用)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(不要驗證伺服器)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(從伺服器接收)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"這個 VPN 類型無法隨時保持連線"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"永久連線 VPN 僅支援數值格式的伺服器地址"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"必須為永久連線 VPN 指定 DNS 伺服器"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"DNS 伺服器地址必須為數字才能使用永久連線 VPN"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"輸入的資訊不支援永久連線 VPN"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"取消"</string>
     <string name="vpn_done" msgid="5137858784289564985">"關閉"</string>
@@ -2656,6 +2822,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"封鎖沒有 VPN 的連線"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"需要 VPN 連線嗎?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"這個 VPN 不安全,請更新為 IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"無法啟動不支援的 VPN。"</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"選取要永久連線 VPN 設定檔。只有在連線到這個 VPN 後才能使用網路。"</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"無"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"永久連線 VPN 需要同時具備伺服器和 DNS 的 IP 位址。"</string>
@@ -2790,11 +2957,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"安珀 (AMBER) 警戒"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"接收兒童擄拐案件相關公告"</string>
     <string name="repeat_title" msgid="8676570486899483606">"重複播放"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"啟用通話管理工具"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"允許這項服務管理你的通話方式。"</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"通話管理工具"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"無線緊急警報"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"網路業者"</string>
     <string name="access_point_names" msgid="5768430498022188057">"存取點名稱"</string>
@@ -2948,7 +3110,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"錢包"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"支付、感應支付、付款"</string>
     <string name="keywords_backup" msgid="707735920706667685">"備份內容, 備份"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"手勢"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"人臉, 解鎖, 驗證, 登入"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"人臉, 解鎖, 驗證, 登入, 指紋, 生物特徵辨識"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"IMEI、MEID、MIN、PRL 版本、IMEI SV"</string>
@@ -2999,6 +3160,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>
@@ -3034,9 +3196,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"啟動音效"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"即時字幕"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"自動產生媒體字幕"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"手機喇叭"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"平板電腦喇叭"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"裝置喇叭"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"有線耳機"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"相容媒體裝置可提供更有臨場感的聲音體驗"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"已關閉"</string>
@@ -3221,7 +3380,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>
@@ -3250,6 +3409,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"已移除近期對話"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"對話已移除"</string>
     <string name="clear" msgid="5092178335409471100">"清除"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"清除「<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>」"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"這裡會顯示優先對話和已變更的對話"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"你標示為優先對話或做出其他變更的對話會顯示在這裡。\n\n如何變更對話設定:\n從螢幕頂端向下滑動開啟下拉式通知欄,然後按住要變更的對話。"</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"最小化"</string>
@@ -3308,6 +3468,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>
@@ -3502,8 +3673,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"關閉"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"應用程式固定"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"你可以使用應用程式固定功能,將目前使用的應用程式固定在螢幕上,直到你取消固定為止。如果想讓信任的好友用你的手機玩遊戲,就可以使用這個功能。"</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"固定後的應用程式或許可開啟其他應用程式,也或許能存取個人資料。\n\n如何使用應用程式固定功能:	\n1. 開啟應用程式固定功能 	\n2. 開啟「總覽」	\n3. 輕觸畫面頂端的應用程式圖示,然後輕觸「固定」"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"固定後的應用程式或許可開啟其他應用程式,也或許能存取個人資料。\n\n如要安全地與人共用裝置,建議你改用訪客使用者設定檔。\n\n如何使用應用程式固定功能:	\n1. 開啟應用程式固定功能\n2. 開啟「總覽」\n3. 輕觸畫面頂端的應用程式圖示,然後輕觸「固定」"</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_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>
@@ -3569,6 +3740,8 @@
     <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>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"管理應用程式 (如未使用)"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"移除權限、刪除暫存檔、停止通知並封存應用程式"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"所有應用程式"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"已安裝的應用程式"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"免安裝應用程式"</string>
@@ -3677,6 +3850,9 @@
     <string name="free_memory" msgid="439783742246854785">"可用"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"應用程式的記憶體用量"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{過去 {time}內有 1 個應用程式使用了記憶體}other{過去 {time}內有 # 個應用程式使用了記憶體}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"啟用記憶體用量分析功能"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"記憶體用量分析功能啟用後,將需要較多的系統資源。"</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"記憶體用量分析功能已停用"</string>
     <string name="running_frequency" msgid="7260225121706316639">"頻率"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"最高用量"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"未使用任何數據"</string>
@@ -3695,10 +3871,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"顯示在其他應用程式上層"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"允許顯示在其他應用程式上層"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"允許這個應用程式顯示在畫面最上層,遮住你使用的其他應用程式。該應用程式將可知道你輕觸的位置或變更畫面上顯示的內容。"</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"變更媒體輸出"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"允許應用程式切換媒體輸出"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"允許這個應用程式選擇要使用哪一部連結的裝置播放其他應用程式的音訊或影片。如果允許,這個應用程式可以存取清單中的可用裝置 (例如耳機和音箱),並選擇要使用哪一部輸出裝置串流播放或投放音訊或影片。"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"所有檔案的存取權"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"提升語音啟動功能"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"為提升語音啟動模型的品質,這部裝置會使用私人資料技術。應用程式可接收涵蓋多位使用者的匯總摘要更新,在維護隱私權的同時為所有使用者提升模型品質。\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>
@@ -3807,7 +3991,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> 數據用量上限"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告/<xliff:g id="ID_2">^2</xliff:g> 數據用量上限"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"電信業者與裝置的數據計算方式可能有所不同"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"排除電信業者網路的數據用量"</string>
     <string name="data_used_template" msgid="8229342096562327646">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"設定數據用量警告"</string>
@@ -3833,7 +4016,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"<xliff:g id="ID_1">^2</xliff:g>前更新"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"<xliff:g id="ID_1">^1</xliff:g> 在剛才更新"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"剛才更新"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"查看方案"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"查看詳細資料"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"數據節省模式"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"數據用量不受限"</string>
@@ -3864,6 +4046,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"電池用量異常狀況"</string>
     <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>
@@ -3932,7 +4115,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"開發人員快速設定方塊"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"停用 ADB 授權逾時"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"如果系統在預設時間 (7 天) 或使用者設定時間 (至少 1 天) 內未重新連線,就停用自動撤銷 ADB 授權的功能。"</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Winscope 追蹤"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"感應器已關閉"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"工作資料夾設定"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"在個人應用程式中搜尋工作目錄聯絡人"</string>
@@ -3962,7 +4144,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>
@@ -4122,21 +4304,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"自動填入服務"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"預設的自動填入服務"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"密碼"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"密碼、密碼金鑰和資料服務"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"其他提供者"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 個密碼}other{# 個密碼}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"自動, 填寫, 自動填入, 密碼"</string>
     <string name="credman_keywords" msgid="8305600680836806170">"資料, 密碼金鑰, 密碼"</string>
     <string name="credman_autofill_keywords" msgid="701180623776848914">"自動、填入、自動填入、資料、密碼金鑰、密碼"</string>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"密碼、密碼金鑰和資料服務"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;要關閉所有服務嗎?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;系統將無法在你登入時提供密碼、密碼金鑰和其他已儲存的資訊"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&lt;b&gt;將偏好服務變更為「&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;」?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt;從現在起,系統會將新密碼、密碼金鑰和其他資訊儲存在這個應用程式。「&lt;xliff:g id=app_name example=Provider&gt;%1$s&lt;/xliff:g&gt;」可能會根據畫面內容判斷可自動填入的資訊"</string>
     <string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"要使用「%1$s」嗎?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"最多只能開啟 5 項服務"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"關閉至少 1 項服務並新增其他服務"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"「%1$s」會根據畫面內容判斷要自動填入的資訊。"</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"密碼、密碼金鑰和資料服務限制"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"一次最多可選取 5 個密碼、密碼金鑰和資料服務。如要新增其他服務,請先停用其中一項服務。"</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"密碼、密碼金鑰和資料服務限制"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"一次最多可選取 5 個密碼、密碼金鑰和資料服務。如要新增其他服務,請先停用其中一項服務。"</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"停用"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"自動填入"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"記錄層級"</string>
@@ -4193,6 +4384,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"你只能修改可偵錯應用程式的應用程式相容性變更。請安裝可進行偵錯的應用程式,然後再試一次。"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"必須一併變更其他設定"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"帳戶"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"%d 個帳戶"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"裝置名稱"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"基本資訊"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"法律和法規"</string>
@@ -4206,6 +4398,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"允許系統掃描到 NFC 標記時啟用這個應用程式。\n如果開啟這項權限,每當系統偵測到標記時,就會將這個應用程式列為選項。"</string>
     <string name="media_output_title" msgid="8283629315159510680">"播放媒體"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"透過以下裝置播放「<xliff:g id="LABEL">%s</xliff:g>」"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"音訊播放媒體"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"這個裝置"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"通話時無法使用"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"接聽來電時使用的裝置"</string>
@@ -4219,7 +4412,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"靜音"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"如要啟用,請先將設定從「按住電源鍵」變更為電源鍵選單。"</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"網路詳細資料"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"你在手機上的應用程式會取得手機的裝置名稱。此外,當你連上藍牙裝置、Wi-Fi 網路或者設定 Wi-Fi 無線基地台時,其他人可能也會看到這個裝置名稱。"</string>
     <string name="devices_title" msgid="649715719278562515">"裝置"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"選擇網路"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"連線中斷"</string>
@@ -4302,11 +4494,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"名稱"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"顏色 (用於相容的應用程式)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"儲存"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"使用 SIM 卡"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"使用這張 SIM 卡"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"停用"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"如要停用這張 SIM 卡,請將其移除"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"輕觸即可啟用「<xliff:g id="CARRIER">%1$s</xliff:g>」"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"清除 SIM 卡"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"偏好的網路類型"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"變更網路操作模式"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"偏好的網路類型"</string>
@@ -4325,6 +4518,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"請向你的網路供應商洽詢定價。"</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"應用程式數據用量"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"網路模式 <xliff:g id="NETWORKMODEID">%1$d</xliff:g> 無效。忽略。"</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"存取點名稱"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"APN"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"無法在連線到「<xliff:g id="CARRIER">%1$s</xliff:g>」時使用"</string>
@@ -4334,9 +4561,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"要切換至「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」嗎?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"要改為使用 SIM 卡嗎?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"要使用「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」嗎?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"一次只能啟用一張 SIM 卡。\n\n切換至「<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>」並不會取消「<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>」的服務。"</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"一次只能啟用 1 張 eSIM 卡。\n\n切換至「<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>」不會取消「<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>」的服務。"</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"一次只能啟用一張 SIM 卡。\n\n切換電信業者並不會取消「<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>」的服務。"</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"你可以同時使用 2 張 SIM 卡。如要使用「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」,請關閉另一張 SIM 卡。"</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"切換至「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"關閉「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」"</string>
@@ -4358,8 +4588,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"不用了,謝謝"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"取消"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"切換"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"關閉"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"無法啟用 SIM 卡"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"請試著再次啟用 SIM 卡,如果問題持續發生,請重新啟動裝置。"</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"設定 SIM 卡"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"如要在這部裝置上使用多張 SIM 卡,請設定偏好的行動網路"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"將 SIM 卡加上標籤"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"撥打電話、傳送訊息及使用數據網路和「設定」頁面時,你會看到這些標籤"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"SIM 卡標籤"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"標籤"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"選取要使用的 SIM 卡"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"你可以同時使用 2 張 SIM 卡"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"設定主要 SIM 卡"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"選擇用於通話、訊息和數據傳輸的預設 SIM 卡"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"你的主要 SIM 卡"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"通話"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"訊息"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"自動切換行動數據"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"依據行動網路的涵蓋率和可用性,選擇要使用哪張 SIM 卡的數據"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"數據傳輸專用"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"設定"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"繼續"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"行動網路"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"電話號碼"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"SIM 卡標籤和顏色"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"啟用網路"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"正在切換電信業者"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」已啟用"</string>
@@ -4379,11 +4633,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"日後如要使用行動數據、通話和簡訊功能,請前往網路設定進行調整"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"SIM 卡"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"要清除這張 eSIM 卡嗎?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"如果清除這張 SIM 卡,「<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>」服務會從這部裝置中移除。\n\n請放心,「<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>」的服務不會因此取消。"</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"清除"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"正在清除 SIM 卡…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"無法清除 SIM 卡"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"發生錯誤,因此無法清除這張 SIM 卡。\n\n請重新啟動裝置,然後再試一次。"</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"連線至裝置"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"「<xliff:g id="APPNAME">%1$s</xliff:g>」應用程式想透過臨時的 Wi-Fi 網路連線至你的裝置"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"找不到裝置。請確認裝置已經開啟並可進行連線。"</string>
@@ -4445,9 +4703,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"緊急電話"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"你的電信業者目前不支援透過 Wi-Fi 通話撥打緊急電話。\n這個裝置會在撥打緊急電話時自動切換到行動數據網路。\n你只能在有行動網路訊號的地區撥打緊急電話。"</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"使用 Wi-Fi 進行通話以改善通話品質"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"備用通話網路"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"如果「<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g>」的網路無法使用或正在使用漫遊網路,系統會透過你的行動數據 SIM 卡進行「<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>」通話。"</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"備用通話網路"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"收到多媒體訊息"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"無法傳送多媒體訊息"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"如要在行動數據關閉時透過「<xliff:g id="OPERATOR_NAME">%1$s</xliff:g>」收發多媒體訊息,請輕觸這裡"</string>
@@ -4458,6 +4713,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"你的工作政策資訊"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"由 IT 管理員管理的設定"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"使用 16 K 頁面大小啟動"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"使用 16 K 頁面大小支援的核心啟動裝置"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"要使用 16 KB 頁面相容核心重新啟動嗎?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"警告:部分應用程式可能與這個模式不相容。裝置將在確認後重新啟動。"</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"要使用 4 KB 頁面相容核心重新啟動嗎?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"裝置將在確認後重新啟動。"</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"無法將核心更新為 16 KB 頁面相容核心。"</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"正在套用變更"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"錯誤報告處理常式"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"選擇要使用哪個應用程式控管「錯誤報告」捷徑。"</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"個人"</string>
@@ -4511,7 +4774,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"讓快速設定中的媒體播放器保持開啟狀態,以便快速恢復播放"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"在螢幕鎖定畫面上顯示媒體"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"媒體播放器會在螢幕鎖定畫面上保持開啟狀態,以便快速繼續播放"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"顯示媒體推薦內容"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"顯示 Google 助理媒體推薦內容"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"根據你的活動"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"隱藏播放器"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"顯示播放器"</string>
@@ -4543,8 +4806,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM 卡"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"eSIM 卡"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"eSIM 卡"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"已啟用"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"未啟用"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / <xliff:g id="ID_1">%1$s</xliff:g>的預設設定"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"通話"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"簡訊"</string>
@@ -4700,8 +4965,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"相容媒體裝置可提供更有臨場感的聲音體驗"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"頭部追蹤"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音訊會隨著你轉動頭部而變化,因此聽起來更自然"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"同步權限"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"將應用程式在「<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>」上的權限授予「<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g>」"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"同步處理手機的權限"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"將這部手機上你已允許的相同應用程式權限授予手錶"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音訊裝置類型"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"揚聲器"</string>
@@ -4797,4 +5062,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"中"</string>
     <string name="contrast_high" msgid="3988567609694797696">"高"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"這個應用程式只能在 1 個視窗中開啟"</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"已開啟"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"已關閉"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"已關閉"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"已停用"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"已啟用"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"已停用"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"已啟用"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"已停用"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"將較亮的螢幕畫面調暗,將較暗的螢幕畫面調亮"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"放大畫面"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"已停用"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"已停用"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"已啟用"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"已停用"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"已啟用"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"密碼設定完成"</string>
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index fbea6d2..3bac8c0 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Ngemuva komzuzu o-1"</item>
     <item msgid="1574040255478150028">"Ngemuva kwemizuzu emi-5"</item>
   </string-array>
+    <!-- no translation found for notification_polite_options:0 (4617190141263245257) -->
+    <!-- no translation found for notification_polite_options:1 (3884076684767467743) -->
+    <!-- no translation found for notification_polite_options:2 (8765197536079931966) -->
+    <!-- no translation found for private_space_auto_lock_options:0 (551584871228110817) -->
+    <!-- no translation found for private_space_auto_lock_options:1 (3263162333754809690) -->
+    <!-- no translation found for private_space_auto_lock_options:2 (1575103586471380629) -->
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 7327f6f..3bed6ae 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -28,6 +28,7 @@
     <string name="show_dev_on" msgid="2840850085134853754">"Manje ungunjiniyela!"</string>
     <string name="show_dev_already" msgid="7041756429707644630">"Asikho isidingo, usuvele ungunjiniyela."</string>
     <string name="dev_settings_disabled_warning" msgid="6971867026249671244">"Sicela unike amandla izinketho zokuthuthukisa kuqala."</string>
+    <string name="dev_settings_available_to_admin_only_warning" msgid="3408243404879083111">"Abasebenzisi abangabaphathi kuphela abangafinyelela amasethingi onjiniyela."</string>
     <string name="header_category_system" msgid="1665516346845259058">"Isistimu"</string>
     <string name="radioInfo_service_in" msgid="9088637745836646271">"Kwisevisi"</string>
     <string name="radioInfo_service_out" msgid="1868347333892403287">"Ayikho isevisi"</string>
@@ -46,6 +47,8 @@
     <string name="stay_awake_on_fold_summary" msgid="1939963751585954262">"Isibonisi sangaphambili siyakhanya uma ugoqa idivayisi yakho"</string>
     <string name="selective_stay_awake_title" msgid="7887645333447645168">"Amageyimu kuphela, amavidiyo, nokuningi"</string>
     <string name="selective_stay_awake_summary" msgid="9055967322921984543">"Isibonisi sangaphambili siyakhanya lapho unama-app avimba isikrini sakho ukuthi siphumule"</string>
+    <string name="stay_awake_on_lockscreen_title" msgid="8088456642083051068">"Swayipha ukuze uqhubeke"</string>
+    <string name="stay_awake_on_lockscreen_summary" msgid="2299351813382522952">"Goqa ifoni yakho bese uswayipha uye phezulu kusibonisi sangaphambili ukuze uqhubeke usebenzisa i-app, noma ulinde imizuzwana embalwa ukuze isikrini sikhiye"</string>
     <string name="sleep_on_fold_title" msgid="7626123024330501411">"Ungalokothi"</string>
     <string name="sleep_on_fold_summary" msgid="7737992842459588846">"Isibonisi sangaphambili siyakhiya uma ugoqa idivayisi yakho"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="3440951924928594520">"Sebenzisa ukuphenduka okuzenzakalelayo"</string>
@@ -79,8 +82,8 @@
     <string name="bluetooth_screen_related" msgid="7976543255501825536">"Okuhambisanayo"</string>
     <string name="bluetooth_ringtone_title" msgid="3177308461256892085">"ithoni yokukhala nama-alamu"</string>
     <string name="bluetooth_call_title" msgid="6851464952021874072">"Umsindo phakathi nezingcingo"</string>
-    <string name="bluetooth_media_title" msgid="343705257183053699">"Imidiya"</string>
-    <string name="bluetooth_system_sounds_title" msgid="6746938637128763205">"Izaziso neminye imisindo yesistimu"</string>
+    <string name="bluetooth_media_title" msgid="2878373577382067290">"Imisindo yemidiya nesistimu"</string>
+    <string name="bluetooth_notification_title" msgid="8708962394926222039">"Izaziso"</string>
     <string name="bluetooth_audio_routing_footer_summary" msgid="410260713589309293">"Ngokuzenzakalelayo, okukhipha umsindo kunqunywa ama-app angawodwana"</string>
     <string name="bluetooth_device" msgid="2217973503732544291">"Idivayisi ye-Bluetooth engaqanjwanga igama"</string>
     <string name="progress_scanning" msgid="2564746192843011826">"Iyasesha..."</string>
@@ -113,23 +116,34 @@
     <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>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"I-Bluetooth ivuliwe"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Buka konke"</string>
+    <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Buka konke"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"I-Stylus"</string>
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Ukucindezela inkinobho yomsila"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Iphrofayela yomsebenzi)"</string>
     <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>
+    <string name="audio_streams_category_title" msgid="4878022761829895463">"Xhuma ekusakazeni komsindo we-LE"</string>
+    <string name="audio_streams_pref_title" msgid="6320485086288646209">"Ukusakaza komsindo okuseduze"</string>
+    <string name="audio_streams_title" msgid="6617990880383079165">"Ukusakaza komsindo"</string>
+    <string name="audio_streams_qr_code_summary" msgid="2838923349871884871">"Xhuma ekusakazeni komsindo usebenzisa ikhodi ye-QR"</string>
+    <string name="audio_streams_empty" msgid="8803517701437394982">"Akukho ukusakazwa komsindo okuseduze okutholiwe."</string>
     <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>
@@ -173,6 +187,8 @@
     <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Ukuze ukhethe ulimi lwe-app ngayinye, iya kumasethingi wolimi lwe-app."</string>
     <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"Funda kabanzi mayelana nezilimi ze-app"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Shintsha ulimi lwesistimu lube yi-%s ?"</string>
+    <string name="title_system_locale_addition" msgid="8218683660751479466">"Engeza u-%s kuzilimi ezikhethiwe?"</string>
+    <string name="desc_system_locale_addition" msgid="3409917362651596070">"Lokhu kuvumela ama-app namawebhusayithi azi ukuthi ukhetha lolu lwimi."</string>
     <string name="desc_notice_device_locale_settings_change" msgid="8311132485850714160">"Amasethingi edivayisi yakho nokuncamelayo kwesifunda kuzoshintsha."</string>
     <string name="button_label_confirmation_of_system_locale_change" msgid="5593798559604894733">"Shintsha"</string>
     <string name="title_unavailable_locale" msgid="2628898110416542386">"i-%s ayitholakali"</string>
@@ -196,6 +212,14 @@
     <string name="saturday_first_day_of_week" msgid="3702282590450322727">"UMgqibelo"</string>
     <string name="title_regional_pref_footer" msgid="7450438024324794380">"Uma i-app ingakusekeli okuncanyelwayo kwesifunda, i-app izosebenzisa amasethingi ayo endawo azenzekelayo."</string>
     <string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Funda kabanzi mayelana nokuncanyelwayo kolimi."</string>
+    <string name="category_title_terms_of_address" msgid="4309422700380895278">"Izintandokazi ezengeziwe"</string>
+    <string name="terms_of_address_title" msgid="4064593634733842458">"Imigomo yekheli"</string>
+    <string name="terms_of_address_summary" msgid="6136134336560679144">"Setha indlela ofuna kukhulunywe nawe ngayo"</string>
+    <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Ama-app angasebenzisa imigomo yekheli lakho ukuze zenze kube ngokwakho ukuthi zikhuluma nawe kanjani."</string>
+    <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Akucacisiwe"</string>
+    <string name="terms_of_address_feminine" msgid="1743479869695539283">"Okwabesifazane"</string>
+    <string name="terms_of_address_masculine" msgid="983106046135098856">"Okwabesilisa"</string>
+    <string name="terms_of_address_neutral" msgid="5475414185543112478">"Maphakathi nendawo"</string>
     <string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Sula ulimi olukhethiwe?}one{Sula izilimi ezikhethiwe?}other{Sula izilimi ezikhethiwe?}}"</string>
     <string name="dlg_remove_locales_message" msgid="8110560091134252067">"Umbhalo uzoboniswa ngolunye ulimi."</string>
     <string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ayikwazi ukususa zonke izilimi"</string>
@@ -257,11 +281,12 @@
     <string name="location_settings_title" msgid="8375074508036087178">"Indawo"</string>
     <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Sebenzisa indawo"</string>
     <string name="location_settings_summary_location_off" msgid="4797932754681162262">"Valiwe"</string>
-    <string name="location_settings_summary_location_on" msgid="7029728269719893381">"{count,plural, =1{Vuliwe -  i-app engu-# enokufinyelela endaweni}one{Vuliwe -  ama-app angu-# anokufinyelela endaweni}other{Vuliwe -  ama-app angu-# anokufinyelela endaweni}}"</string>
+    <string name="location_settings_summary_location_on" msgid="4273299717586679786">"{count,plural, =1{Ivuliwe / i-app e-# enokufinyelela endaweni}one{Ivuliwe / ama-app angu-# anokufinyelela endaweni}other{Ivuliwe / ama-app angu-# anokufinyelela endaweni}}"</string>
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Iyalayisha…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"Ama-app anemvume Yamadivayisi aeseduze angakhetha indawo ehambelanayo yamadivayisi axhunyiwe."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"Ukufinyelela kwendawo kuvaliwe mayelana nama-app namasevisi. Indawo yedivayisi yakho isengathunyelwa kubaphenduli besimo esiphuthumayo uma ushaya ikholi noma uthumela umbhalo kwinombolo ephuthumayo."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"Funda kabanzi Ngamasethingi wendawo."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="349380666660145540">"Funda kabanzi Ngamasethingi wendawo"</string>
+    <string name="location_settings_tooltip_text_for_chrome" msgid="3574930966097093550">"Ukuze ushintshe ukufinyelela kwendawo, iya kokuthi Amasethingi Nokuvikeleka kanye Nobumfihlo Nezilawuli zokwemfihlo"</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>
@@ -362,9 +387,9 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6" msgid="3563942520716110478">"Ukuze uthole imiphumela engcono, sebenzisa isivikeli sesikrini Esenzelwe I-Google esigunyaziwe. Kwezinye izivikeli zesikrini, isigxivizo somunwe wengane yakho ungase ungasebenzi."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_activeunlock_preference_title" msgid="4257580421087062228">"Ukuvula Iwashi"</string>
-    <string name="biometric_settings_intro_with_activeunlock" msgid="6583248094453119314">"Uma usetha Ukuvula Ngobuso kanye Nokuvula Ngesigxivizo somunwe, ifoni yakho izocela isigxivizo somunwe uma ugqoke imaski noma usendaweni emnyama.\n\nUngakwazi ukuvula ngewashi lakho uma ubuso bakho noma izigxivizo zeminwe zingaziwa."</string>
-    <string name="biometric_settings_intro_with_fingerprint" msgid="4312041617237493461">"Ungakwazi ukuvula ngewashi lakho uma isigxivizo somunwe wakho singaziwa."</string>
-    <string name="biometric_settings_intro_with_face" msgid="7658123658803417930">"Ungakwazi ukuvula ngewashi lakho uma ubuso bakho bungaziwa."</string>
+    <string name="biometric_settings_intro_with_activeunlock" msgid="5032953826653108646">"Uma usetha i-Face Unlock ne-Fingerprint Unlock, ifoni yakho izokucela isigxivizo somunwe uma ugqoke isifonyo noma usendaweni engenako ukukhanya.\n\nI-Watch Unlock ingenye indlela elula yokuvula ifoni yakho, ngokwesibonelo, uma iminwe yakho imanzi noma ubuso bungaqashelwa."</string>
+    <string name="biometric_settings_intro_with_fingerprint" msgid="5881355884547769337">"I-Watch Unlock ingenye indlela elula yokuvula ifoni yakho, ngokwesibonelo, uma isigxivizo sakho somunwe singaqashelwa."</string>
+    <string name="biometric_settings_intro_with_face" msgid="7671919122230588521">"I-Watch Unlock ingenye indlela elula yokuvula ifoni yakho, ngokwesibonelo, uma ubuso bakho bungaqashelwa."</string>
     <string name="biometric_settings_use_fingerprint_or_watch_for" msgid="1160830065613858095">"Sebenzisa isigxivizo somunwe noma iwashi ukuze"</string>
     <string name="biometric_settings_use_face_or_watch_for" msgid="1507077107150278532">"Sebenzisa ubuso noma iwashi ukuze"</string>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for" msgid="7495835723072020641">"Sebenzisa ubuso, izigxivizo zeminwe, noma iwashi ukuze"</string>
@@ -385,6 +410,33 @@
     <string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ubuso ne-<xliff:g id="WATCH">%s</xliff:g> zingeziwe"</string>
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ubuso, isigxivizo somunwe, ne-<xliff:g id="WATCH">%s</xliff:g> kungeziwe"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ubuso, izigxivizo zomunwe, ne-<xliff:g id="WATCH">%s</xliff:g> kungeziwe"</string>
+    <string name="security_settings_remoteauth_preference_title" msgid="8319680328086089533">"Ukuvula Isiqinisekisi Serimothi"</string>
+    <string name="security_settings_remoteauth_preference_summary" msgid="1507004469316635196">"Iwashi lifakiwe"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Setha iwashi lakho"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ukuvula Iwashi kungenye indlela elula yokuvula le foni, ngokwesibonelo, uma iminwe yakho imanzi noma ubuso bungabonakali.\n\nUngasebenzisa iwashi lakho ukuze uvule le foni uma:"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Hhayi manje"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Qhubeka"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Okwengeziwe"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Indlela esebenza ngayo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Iwashi lakho kufanele livulwe, esihlakaleni sakho, futhi ufinyeleleke kalula kule foni. Ngeke kudingeke ukuthi uvule iwashi lakho futhi lapho lisesihlakaleni sakho."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Uma le foni ivuliwe, uzokwaziswa ewashini lakho. Uma beyivuliwe ngenkathi obungahlosile ngayo, thepha isaziso ukuze ukhiye ifoni futhi."</string>
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Uwena olawulayo"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Ungasusa iwashi lakho kokuthi Ukuvula Iwashi nganoma yisiphi isikhathi Kumasethingi"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Thepha isaziso"</string>
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swayipha phezulu esikrini sokukhiya"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Khetha iwashi lakho"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Amawashi atholakalayo"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Khansela"</string>
+    <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Qinisekisa"</string>
+    <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Usumi ngomumo!"</string>
+    <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Manje usungasebenzisa iwashi lakho ukuze uvule le foni uma uswayiphela phezulu esikrinini sokukhiya noma uthepha isaziso"</string>
+    <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Kwenziwe"</string>
+    <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Ukuvula Iwashi"</string>
+    <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Ungasebenzisa iwashi lakho ukuze uvule le foni uma uswayiphela phezulu esikrinini sokukhiya noma uthephe isaziso"</string>
+    <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ukuze usebenzise Ukuvula Iwashi, iwashi lakho kufanele livulwe, esandleni sakho, endaweni ongalifinyelela kuyo, futhi lixhunywe kule foni. Uma ukuxhuma kuphazamiseka, kuzodingeka uvule ifoni ngaphambi kokuba usebenzise okuthi Ukuvula Iwashi.\n\nKhumbula:\nUngaba newashi elilodwa kuphela elisethiwe ngesikhathi esisodwa. Ukuze ufake elinye iwashi, qala ngokususa elamanje."</string>
+    <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Funda kabanzi mayelana Nokuvula Iwashi"</string>
+    <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Faka iwashi"</string>
+    <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Susa iwashi"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Isigxivizo somunwe Nokuvula Ngobuso"</string>
     <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ukuvula Ngobuso Nangesigxivizo Somunwe emsebenzini"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Ukusetha kuyadingeka"</string>
@@ -493,6 +545,86 @@
     <string name="security_header" msgid="961514795852103424">"Ukuvikela"</string>
     <string name="privacy_header" msgid="5526002421324257007">"Ubumfihlo"</string>
     <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="2274405892301976238">"Gcina ama-app angasese ekhiyiwe futhi efihliwe"</string>
+    <string name="private_space_description" msgid="4059594203775816136">"Gcina ama-app agodliwe endaweni ehlukile ongayifihla noma uyikhiye"</string>
+    <string name="private_space_lock_title" msgid="3006539720164938296">"Ukhiye Wesikhala Esigodliwe"</string>
+    <string name="private_space_one_lock_summary" msgid="2759953747682959371">"Ungakwazi ukuvula Isikhala Esigodliwe ngendlela efanayo ovula ngayo idivayisi yakho, noma ukhethe ukhiye ohlukile"</string>
+    <string name="private_space_screen_lock_title" msgid="8679383894967823163">"Sebenzisa ukukhiya isikrini sedivayisi"</string>
+    <string name="private_space_biometric_title" msgid="3934339826674553174">"Ukuvula Ngobuso Nangesigxivizo Somunwe"</string>
+    <string name="private_space_fingerprint_title" msgid="5989254643211889931">"Ukuvula Ngesigxivizo Somunwe"</string>
+    <string name="private_space_face_title" msgid="3290402865367663079">"Ukuvula Ngobuso"</string>
+    <string name="private_space_biometric_summary" msgid="4403837276018724581">"Thepha ukuze usethe"</string>
+    <string name="private_space_fingerprint_unlock_title" msgid="5804023571114910034">"Ukuvula Ngesigxivizo Somunwe Indawo Engasese"</string>
+    <string name="private_space_face_unlock_title" msgid="6613018437620070183">"Ukuvula Ngobuso Indawo Engasese"</string>
+    <string name="private_space_category_ways_to_unlock" msgid="4356631225316950046">"Izindlela zokuvula"</string>
+    <string name="private_space_screen_lock_summary" msgid="394837965365561070">"Ifana nokukhiya isikrini sedivayisi"</string>
+    <string name="private_space_new_lock_title" msgid="7306873010565337671">"Khetha isikhiya esisha Kusikhala Esigodliwe?"</string>
+    <string name="private_space_auto_lock_title" msgid="4757097802686131305">"Khiya ngokuzenzakalelayo"</string>
+    <string name="private_space_auto_lock_page_title" msgid="2993714305725968632">"Khiya indawo engasese ngokuzenzakalelayo"</string>
+    <string name="private_space_auto_lock_page_summary" msgid="8679844515655838654">"Ungakhiya indawo yakho engasese ngokuzenzakalelayo uma ungakaze usebenzise idivayisi yakho okwesikhathi esithile"</string>
+    <string name="private_space_auto_lock_every_time" msgid="1215061855836002830">"Njalo lapho idivayisi ikhiya"</string>
+    <string name="private_space_auto_lock_after_inactivity" msgid="1748673030841528649">"Ngemva kwemizuzu engu-5 yokungenzi lutho"</string>
+    <string name="private_space_auto_lock_never" msgid="595014527119778873">"Ungalokothi"</string>
+    <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_delete_title" msgid="3075645119800272800">"Sula Isikhala Esiyimfihlo"</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="private_space_unlocked" msgid="9091600948712932046">"Isikhala esiyimfihlo sivuliwe"</string>
+    <string name="no_device_lock_title" msgid="1078223464721029954">"Setha ukukhiya isikrini"</string>
+    <string name="no_device_lock_summary" msgid="7436025227616244687">"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="private_space_cancel_label" msgid="379259667396956886">"Khansela"</string>
+    <string name="private_space_setup_button_label" msgid="2094882154623560585">"Setha"</string>
+    <string name="private_space_setup_title" msgid="7091257695872833671">"Setha isikala esigodliwe"</string>
+    <string name="private_space_hide_apps_summary" msgid="6272406822568588610">"Gcina ama-app agodliwe endaweni ehlukile ongayifihla noma uyikhiye"</string>
+    <string name="private_space_how_title" msgid="6878224242661347658">"Indlela esisebenza ngayo"</string>
+    <string name="private_space_access_bottom_text" msgid="8931773427017046981">"Ungafinyelela esikhaleni esigodliwe ekugcineni kohlu lwama-app akho"</string>
+    <string name="private_space_protected_lock_text" msgid="3926344387256377994">"Ama-app asesikhaleni esigodliwe avikelwe ngokhiye"</string>
+    <string name="private_space_hidden_notifications_text" msgid="1487992156742340621">"Izaziso ezisuka kuma-app asesikhaleni esigodliwe ziyafihlwa uma sikhiyiwe"</string>
+    <string name="private_space_apps_permission_text" msgid="7030946025253366172">"Ama-app asesikhaleni sakho esigodliwe ngeke avele kumphathi wemvume, kudeshibhodi yobumfihlo, namanye amasethingi uma isikhala sakho esiyimfihlo sikhiyiwe.\n\nIsikhala sakho esigodliwe asikwazi ukuhanjiswa siye kudivayisi entsha. Uzodinga ukumisa esinye isikhala esigodliwe uma ufuna ukusisebenzisa kwenye idivayisi.\n\nNoma ngubani oxhuma idivayisi yakho kukhompyutha noma ofaka ama-appa ayingozi kudivayisi yakho angakwazi ukufinyelela esikhaleni sakho esigodliwe."</string>
+    <string name="private_space_setting_up_text" msgid="8458035555212009528">"Isetha isikhala esigodliwe…"</string>
+    <string name="private_space_notifications_hidden_title" msgid="4377296080723608107">"Izaziso ezisuka kuma-app Asesikhaleni Esigodliwe ziyafihlwa uma sikhiyiwe"</string>
+    <string name="private_space_share_photos_title" msgid="2102594859384040485">"Vula indawo yakho engasese ukuze wabelane ngezithombe noma amafayela avela kuma-app endawo yangasese"</string>
+    <string name="private_space_apps_installed_title" msgid="2428207301009983268">"Amanye ama-app avele afakiwe endaweni yakho eyimfihlo"</string>
+    <string name="private_space_error_screen_title" msgid="1210906480024148398">"Ayikwazanga ukumisa isikhala esigodliwe"</string>
+    <string name="private_space_tryagain_label" msgid="8305362615231738367">"Zama Futhi"</string>
+    <string name="private_space_lockscreen_title" msgid="6034864097861137509">"Sebenzisa ukukhiya isikrini ukuvula isikhala esigodliwe?"</string>
+    <string name="private_space_lockscreen_summary" msgid="430569465080645805">"Ungakwazi ukuvula isikhala esigodliwe ngendlela efanayo ovula ngayo idivayisi yakho, noma ukhethe ukhiye ohlukile"</string>
+    <string name="private_space_use_screenlock_label" msgid="9182153443192032782">"Sebenzisa ukukhiya isikrini"</string>
+    <string name="private_space_set_lock_label" msgid="1790408277477408475">"Khetha ukhiya omusha"</string>
+    <string name="private_space_success_title" msgid="4351904015352046118">"Usulungile!"</string>
+    <string name="private_space_access_text" msgid="4258842502257201013">"Ukuze ufinyelele esikhaleni sakho esiyimfihlo, iya ohlwini lwama-app akho bese uskrolela phansi"</string>
+    <string name="private_space_done_label" msgid="1020482651595246071">"Kwenziwe"</string>
+    <string name="private_space_scrolldown_to_access" msgid="4820954877349434545">"Skrolela phansi ukuze uthole indawo eyimfihlo"</string>
+    <!-- no translation found for private_space_retry_signin_title (8090276618867918844) -->
+    <skip />
+    <!-- no translation found for private_space_retry_summary (1920444015972648774) -->
+    <skip />
+    <!-- no translation found for private_space_skip_login_label (7078019409056628192) -->
+    <skip />
+    <!-- no translation found for private_space_continue_login_label (7779965766333065391) -->
+    <skip />
+    <string name="private_space_lock_setup_title" msgid="6541564212199510787">"Khetha ukhiye wesikhala sakho esigodliwe"</string>
+    <string name="private_space_lock_setup_description" msgid="423405593476300918">"Ungakwazi ukuvula isikhala sakho esigodliwe usebenzisa isigxivizo somunwe sakho. Mayelana nokuvikeleka, lokhu okukhethwa kukho kudinga ukukhiya okuyisipele."</string>
+    <string name="private_space_choose_your_pin_header" msgid="4560802934975898265">"Setha i-PIN yakho yendawo yangasese"</string>
+    <string name="private_space_choose_your_password_header" msgid="7660259341095044434">"Setha iphasiwedi yendawo yangasese"</string>
+    <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Setha iphethini yendawo yangasese"</string>
+    <string name="privatespace_unhide_header" msgid="1192011539687584004">"Ukubonisa Isikhala Esiyimfihlo (Hhayi i-UX yokugcina)"</string>
+    <string name="privatespace_open_settings" msgid="5038101805604421393">"Vula i-App Yamasethingi"</string>
+    <string name="privatespace_tap_settings" msgid="928932826450238276">"Thepha Kwezokuphepha &amp; ubumfihlo &gt; Isikhala Esiyimfihlo &gt; Fihla Isikhala Esigodliwe uma ikhiyiwe"</string>
+    <string name="privatespace_turnoff_hide" msgid="4858511423837613842">"Vala Ukufihla Isikhala Esiyimfihlo lapho ukuguqula kukhiyiwe"</string>
+    <string name="privatespace_development_note" msgid="2999992301558700721">"Isaziso esiya kosebenza kwa-Google: Ukuthuthukiswa kwalesi sakhi kusaqhubeka"</string>
     <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>
@@ -648,13 +780,15 @@
     <string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Kungadingeka ufake lokhiye wokudlula kwenye idivayisi."</string>
     <string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Qinisekisa ukuze ubhangqe nesethi ehlanganisiwe"</string>
     <string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Vumela ukufinyelela koxhumana nabo nomlando wekholi"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Phinda futhi uvumele ukufinyelela koxhumana nabo nomlando wekholi"</string>
+    <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Ulwazi luzosetshenziselwa izimemezelo zekholi nokunye okwengeziwe"</string>
     <string name="bluetooth_error_title" msgid="2284738188253690278"></string>
     <string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Ayikwazanga ukuxhuma ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Amadivayisi atholakalayo"</string>
     <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>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="7326727272747345476">"Uma i-Bluetooth ivuliwe, idivayisi yakho ingakwazi ukuxhumana namanye amadivayisi aseduze we-Bluetooth"</string>
     <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>
@@ -707,6 +841,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>
@@ -725,6 +861,9 @@
     <string name="wifi_in_airplane_mode" msgid="1235412508135267981">"Kwimodi yendiza"</string>
     <string name="wifi_notify_open_networks" msgid="2610323626246818961">"Yazisa ngamanethiwekhi asesidlangalaleni"</string>
     <string name="wifi_notify_open_networks_summary" msgid="191058832201741013">"Yazisa uma inethiwekhi yompahakthi enekhwalithi ephezulu itholakala"</string>
+    <string name="wifi_allow_wep_networks" msgid="8772342993235292010">"Vumela amanethiwekhi e-WEP"</string>
+    <string name="wifi_allow_wep_networks_summary" msgid="3033397893296724615">"I-WEP iyiphrothokholi yokuvikela endala engavikelekile"</string>
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow" msgid="6298103289728210026">"Inkampani yakho yenethiwekhi ayiwavumeli amanethiwekhi e-WEP ngoba avikeleke kancane"</string>
     <string name="wifi_wakeup" msgid="3834327315861781611">"Vula i-Wi‑Fi ngokuzenzakalelayo"</string>
     <string name="wifi_wakeup_summary" msgid="5778059083790221465">"I-Wi‑Fi izovuleka eceleni kwamanethiwekhi alondolozwe ngekhwalithi ephezulu, njengenethiwekhi yakho yasekhaya"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="681323616606485096">"Akutholakali ngoba indawo ivaliwe. Vula "<annotation id="link">"indawo"</annotation>"."</string>
@@ -746,6 +885,12 @@
     <string name="wifi_settings_scanning_required_info" msgid="1473411566072565789">"Ukuskena kwe-Wi-Fi kuvumela izinhlelo zokusebenza namasevisi ukuthi askenele amanethiwekhi e-Wi-Fi noma kunini, nanoma i-Wi-Fi ivaliwe. Lokhu kungasetshenziswa, njengesibonelo, ukuze kuthuthukiswe izici ezisuselwa endaweni namasevisi."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="1112223196123955447">"Vula"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="4721729158927146365">"Ukuskena kwe-Wi-Fi kuvuliwe"</string>
+    <string name="wifi_settings_warning_wep_network" msgid="2655077013800385646">"Le nethiwekhi isebenzisa iphrothokholi yokuvikela endala engavikeleke kancane"</string>
+    <string name="wifi_settings_wep_networks_blocked_title" msgid="8337700496544833669">"I-<xliff:g id="NAME">%1$s</xliff:g> ivinjiwe"</string>
+    <string name="wifi_settings_wep_networks_summary_toggle_off" msgid="1113138364046142949">"Le nethiwekhi isebenzisa iphrothokholi yokuvikela endala ebizwa nge-WEP, engavikelekile. Ukuze uxhume noma kunjalo, ungavumela amanethiwekhi e-WEP."</string>
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier" msgid="6085673947156094523">"Inkampani yakho yenethiwekhi ayikuvumeli ukuthi uxhume kule nethiwekhi ngoba isebenzisa iphrothokholi yokuvikela endala engavikelekile"</string>
+    <string name="wifi_settings_wep_networks_button_allow" msgid="2807926329019873706">"Vumela i-WEP"</string>
+    <string name="wifi_settings_ssid_block_button_close" msgid="3013886895576949908">"Vala"</string>
     <string name="wifi_show_advanced" msgid="2969378109942071741">"Izinketho ezithuthukile"</string>
     <string name="wifi_advanced_toggle_description" msgid="7299179796727934885">"Izinketho ezithuthukisiwe zohlu olushona ezansi"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3615140699129928913">"nweba"</string>
@@ -841,15 +986,12 @@
     <string name="lost_internet_access_cancel" msgid="1981171269794585284">"Hlala ku-Wi-Fi"</string>
     <string name="lost_internet_access_persist" msgid="6813604557672782197">"Ungaphinde uveze"</string>
     <string name="wifi_connect" msgid="2481467560349907397">"Xhuma kwi-inthanethi"</string>
-    <string name="wifi_turned_on_message" msgid="8069855406962662881">"I-Wi-Fi ivuliwe"</string>
     <string name="wifi_connected_to_message" msgid="8976048616505112896">"Ixhumeke ku-<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_connecting_to_message" msgid="3153205024060064551">"Ixhuma ku-<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_connecting" msgid="7450277833386859724">"Iyaxhuma…"</string>
     <string name="wifi_failed_connect_message" msgid="8538000546604347894">"Yehlulekile ukuxhuma kunethiwekhi"</string>
     <string name="wifi_not_in_range_message" msgid="3885327464037574739">"Inethiwekhi ayikho kubanga"</string>
     <string name="wifi_forget" msgid="3485573280364015620">"Khohlwa"</string>
     <string name="wifi_modify" msgid="5127926476383659412">"Lungisa"</string>
-    <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Yehlulekile ukukhohlwa inethiwekhi"</string>
     <string name="wifi_save" msgid="2312643132472226807">"Londoloza"</string>
     <string name="wifi_failed_save_message" msgid="1830279872341387120">"Yehlulekile ukulondoloza inethiwekhi"</string>
     <string name="wifi_cancel" msgid="6698897376888935410">"Khansela"</string>
@@ -871,7 +1013,7 @@
     <string name="internet_source_wifi" msgid="6952593095166435179">"I-Wi-Fi"</string>
     <string name="internet_source_mobile_data" msgid="877403889449201789">"Idatha yeselula"</string>
     <string name="internet_source_ethernet" msgid="8338472576454100966">"I-Ethernet"</string>
-    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"Iku-<xliff:g id="BATTERY_PERCENTAGE">%s</xliff:g> ‑ Iyashaja"</string>
+    <string name="hotspot_battery_charging_summary" msgid="6690892148553288457">"Iku-<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> ‑ Iyashaja"</string>
     <string name="hotspot_connection_category" msgid="4320380513982923556">"Ukuxhuma ku-Hotspot"</string>
     <string name="hotspot_connection_strength" msgid="87359986943768421">"Amandla okuxhuma"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Amanethiwekhi alondoloziwe"</string>
@@ -904,7 +1046,6 @@
     <string name="wifi_hotspot_no_password_subtext" msgid="3685689196772398783">"Ayikho iphasiwedi esethiwe"</string>
     <string name="wifi_hotspot_name_title" msgid="6633480190014369846">"Igama le-Hotspot"</string>
     <string name="wifi_hotspot_password_title" msgid="9096340919454296786">"Iphasiwedi ye-Hotspot"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="560262446129195042">"I-AP Band"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="8855711787485504882">"Vala ama-hotspot ngokuzenzakalela"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="8283656069997871354">"Lapho engekho amadivayisi axhunyiwe"</string>
     <string name="wifi_hotspot_maximize_compatibility" msgid="6494125684420024058">"Nweba ukuhambelana"</string>
@@ -1008,8 +1149,10 @@
     <string name="display_white_balance_title" msgid="2624544323029364713">"Bonisa ibhalansi emhlophe"</string>
     <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="disable_game_default_frame_rate_title" msgid="3712908601744143753">"Khubaza izinga lozimele elizenzakalelayo lamageyimu"</string>
+    <string name="disable_game_default_frame_rate_summary" msgid="4436762704707434225">"Khubaza ukukhawulela izinga eliphezulu lozimele lamageyimu ku-<xliff:g id="FRAME_RATE">%1$d</xliff:g> Hz."</string>
+    <string name="peak_refresh_rate_title" msgid="2056355754210341011">"I-Smooth display"</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>
@@ -1020,6 +1163,7 @@
     <string name="adaptive_sleep_privacy" msgid="7664570136417980556">"Ukunaka isikrini kusebenzisa ikhamera engaphambili ukuze kwazi uma umuntu othile abheka isikrini. Kusebenza kudivayisi, futhi izithombe azilokothi zilondolozwe noma zithunyelwe ku-Google."</string>
     <string name="adaptive_sleep_contextual_slice_title" msgid="7467588613212629758">"Vula ukunaka isikrini"</string>
     <string name="adaptive_sleep_contextual_slice_summary" msgid="2993867044745446094">"Gcina isikrini sivuliwe lapho usibhekile"</string>
+    <string name="power_consumption_footer_summary" msgid="4901490700555257237">"Ukuzicisha kwesikrini okuthatha isikhathi eside kuzosebenzisa ibhethri eningi."</string>
     <string name="auto_rotate_camera_lock_title" msgid="5369003176695105872">"Ikhamera ivaliwe"</string>
     <string name="auto_rotate_camera_lock_summary" msgid="5699491516271544672">"Ikhamera kumele ivulelwe Ukutholwa Kobuso"</string>
     <string name="adaptive_sleep_camera_lock_summary" msgid="8417541183603618098">"Ikhamera kufanele ivulelwe Ukunaka Kwesikrini"</string>
@@ -1150,6 +1294,8 @@
     <string name="imei_multi_sim" msgid="9001570420423929507">"I-IMEI (imbobo ye-sim <xliff:g id="IMEI_SLOT_ID">%1$d</xliff:g>)"</string>
     <string name="imei_multi_sim_primary" msgid="7914653040843734282">"I-IMEI (imbobo ye-sim <xliff:g id="IMEI_SLOT_ID_PRIMARY">%1$d</xliff:g>) (eyinhloko)"</string>
     <string name="view_saved_network" msgid="1232387673095080910">"Ukuze ubuke, khetha inethiwekhi elondoloziwe"</string>
+    <string name="status_imei" msgid="5719752369250485007">"I-IMEI"</string>
+    <string name="status_imei_sv" msgid="6908985558726440951">"I-IMEI SV"</string>
     <string name="status_min_number" msgid="4492899165438225714">"Okuncane"</string>
     <string name="status_msid_number" msgid="3871958248824595774">"MSID"</string>
     <string name="status_prl_version" msgid="9002131357502714281">"Inguqulo ye-PRL"</string>
@@ -1243,8 +1389,11 @@
     <string name="battery_level_title" msgid="1371765298786083448">"Izinga lebhethri"</string>
     <string name="communal_settings_title" msgid="2845678473945902115">"Okomphakathi"</string>
     <string name="communal_settings_summary" msgid="4923914136953940317">"Amasethingi omphakathi"</string>
+    <!-- no translation found for satellite_setting (706846910912477125) -->
+    <skip />
     <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>
@@ -1268,6 +1417,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>
@@ -1275,11 +1426,14 @@
     <string name="menu_save" msgid="6611465355127483100">"Londoloza"</string>
     <string name="menu_cancel" msgid="1197826697950745335">"Khansela"</string>
     <string name="error_title" msgid="7158648377702417716"></string>
+    <!-- no translation found for error_duplicate_apn_entry (7792928408935276618) -->
+    <skip />
     <string name="error_name_empty" msgid="1258275899283079142">"Igama lenkundla akumelwe lingabi nalutho."</string>
     <string name="error_apn_empty" msgid="7657491065443746915">"I-APN akumelwe ingabi nalutho."</string>
     <string name="error_mcc_not3" msgid="883659545640179094">"Inkundla ye-MCC kumele ibe namadijithi angu-3."</string>
     <string name="error_mnc_not23" msgid="7642478711158474918">"Inkundla ye-MNC kumelwe ibe amadijithi angu-2 noma angu--3"</string>
     <string name="error_adding_apn_type" msgid="1324263534991467943">"Inkampani yenethiwekhi ayivumeli ukungezwa kwama-APN ohlobo lwe-%s."</string>
+    <string name="error_mmsc_valid" msgid="8380951905485647380">"Inkambu ye-MMSC kufanele ibe evumelekile."</string>
     <string name="restore_default_apn" msgid="6596048535642130689">"Ibuyisela izilungiselelo ezizenzakalelayo ku-APN"</string>
     <string name="menu_restore" msgid="4310539620115151551">"Setha kabusha kube okumisiwe"</string>
     <string name="restore_default_apn_completed" msgid="5167505087078340256">"Ukuhlela okumisiwe izilungiselelo ze-APN kuqedile."</string>
@@ -1292,7 +1446,8 @@
     <string name="reset_bluetooth_wifi_button_text" msgid="3974098137045963639">"Setha kabusha"</string>
     <string name="reset_bluetooth_wifi_complete_toast" msgid="5893439291030574365">"I-Bluetooth ne-Wi-Fi zisethwe kabusha"</string>
     <string name="reset_esim_title" msgid="4194570573425902754">"Sula ama-eSIMs"</string>
-    <string name="reset_esim_desc" msgid="3662444090563399131">"Lokhu ngeke kukhansele noma yiziphi izinhlelo zesevisi yeselula. Ukuze ulande okokumisela ama-SIM, xhumana nenkampani yakho yenethiwekhi."</string>
+    <!-- no translation found for reset_esim_desc (6125192435907740751) -->
+    <skip />
     <string name="reset_network_button_text" msgid="2281476496459610071">"Setha kabusha izilungiselelo"</string>
     <string name="reset_network_final_desc" msgid="5304365082065278425">"Setha kabusha wonek amasethingi enethiwekhi? Awukwazi ukuhlehlisa lesi senzo."</string>
     <string name="reset_network_final_desc_esim" msgid="1129251284212847939">"Setha kabusha amasethingi wenethiwekhi bese usula ama-eSIM? Awukwazi ukuhlehlisa lesi senzo."</string>
@@ -1300,15 +1455,18 @@
     <string name="reset_network_confirm_title" msgid="913014422184481270">"Setha kabusha?"</string>
     <string name="network_reset_not_available" msgid="1966334631394607829">"Ukusetha kabusha inethiwekhi akutholakali kulo msebenzisi"</string>
     <string name="reset_network_complete_toast" msgid="1367872474130621115">"Izilungiselelo zenethiwekhi zisethwe kabusha"</string>
-    <string name="reset_esim_error_title" msgid="4670073610967959597">"Ayikwazi ukusula ama-SIM"</string>
-    <string name="reset_esim_error_msg" msgid="7279607120606365250">"Ama-eSIM awakwazi ukusulwa ngenxa yephutha.\n\nQala kabusha idivayisi yakho bese uzama futhi."</string>
+    <!-- no translation found for reset_esim_error_title (6516110227665862295) -->
+    <skip />
+    <!-- no translation found for reset_esim_error_msg (8459527827897797168) -->
+    <skip />
     <string name="main_clear_title" msgid="277664302144837723">"Sula yonke idatha (ukusethwa kabusha njengasekuqaleni)"</string>
     <string name="main_clear_short_title" msgid="4752094765533020696">"Sula yonke idatha (ukusethwa kabusha njengasekuqaleni)"</string>
     <string name="main_clear_desc_also_erases_external" msgid="3687911419628956693"><li>"Umculo"</li>\n<li>"Izithombe"</li>\n<li>"Idatha yomunye umsebenzisi"</li></string>
     <string name="main_clear_desc_also_erases_esim" msgid="4553469876411831729">"Ama-"<li>"eSIM"</li></string>
     <string name="main_clear_desc_no_cancel_mobile_plan" msgid="369883568059127035">\n\n"Lokhu ngeke kukhansele uhlelo lwakho lwesevisi yefoni."</string>
     <string name="main_clear_final_desc" msgid="5800877928569039580">"Lonke ulwazi lwakho lomuntu siqu nezinhlelo zokusebenza ezilandiwe zizosuswa. Awukwazi ukuhlehlisa lesi senzo."</string>
-    <string name="main_clear_final_desc_esim" msgid="440406836793824969">"Lonke ulwazi lwakho lomuntu siqu, kuhlanganise nezinhlelo zokusebenza ezilandiwe nama-SIM, kuzosuswa. Awukwazi ukuhlehlisa lesi senzo."</string>
+    <!-- no translation found for main_clear_final_desc_esim (6592404057237813989) -->
+    <skip />
     <string name="main_clear_confirm_title" msgid="6577071819657853713">"Sula yonke idatha?"</string>
     <string name="main_clear_not_available" msgid="3433795327146684827">"Ukusetha kabusha kwasekuqaleni akutholakaleli lo msebenzisi"</string>
     <string name="main_clear_progress_title" msgid="7239741132015617719">"Iyasula"</string>
@@ -1341,16 +1499,6 @@
     <string name="tether_settings_summary_all" msgid="7565193614882005775">"I-Hotspot, i-USB, i-Bluetooth, i-Ethernet"</string>
     <string name="tether_settings_summary_off" msgid="2526164899130351968">"Ayabelani nge-inthanethi namanye amadivayisi"</string>
     <string name="tether_preference_summary_off" msgid="6266799346319794630">"Valiwe"</string>
-    <string name="tethering_interface_options" msgid="7575535888135143650">"Ukusebenzisa ifoni njengemodemu"</string>
-    <string name="disable_wifi_hotspot_title" msgid="2167985468585290478">"Ungasebenzisi i-Wi‑Fi hotspot"</string>
-    <string name="disable_wifi_hotspot_when_usb_on" msgid="220439059794714583">"Yabelana i-inthanethi nge-USB"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_on" msgid="4711723299880116345">"Yabelana i-inthanethi nge-Bluetooth kuphela"</string>
-    <string name="disable_wifi_hotspot_when_ethernet_on" msgid="4123242400542103599">"Yabelana i-inthanethi nge-Ethernet kuphela"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on" msgid="5258774769658150180">"Yabelana i-inthanethi nge-USB nange-Bluetooth"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on" msgid="7126313562907225612">"Yabelana i-inthanethi nge-USB nange-Ethernet kuphela"</string>
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on" msgid="2943464651349235967">"Yabelana i-inthanethi nge-Bluetooth nange-Ethernet kuphela"</string>
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on" msgid="3934609816834760008">"Yabelana i-inthanethi nge-USB, nge-Bluetooth nange-Ethernet kuphela"</string>
-    <string name="usb_title" msgid="1157283449840612901">"I-USB"</string>
     <string name="usb_tethering_button_text" msgid="7364633823180913777">"Imodemu nge-USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="6108398414967813545">"Imodemu nge-Bluetooth"</string>
     <string name="ethernet_tether_checkbox_text" msgid="959743110824197356">"Ukusebenzisa ifoni njengemodemu kwe-ethernet"</string>
@@ -1358,7 +1506,6 @@
     <string name="tethering_footer_info_sta_ap_concurrency" msgid="2079039077487477676">"Sebenzisa i-hotspot nokusebenzisa ifoni njengemodemu ukuze unikeze i-inthanethi kumanye amadivayisi nge-Wi-Fi yakho noma ukuxhumeka kwedatha kweselula. Izinhlelo zokusebenza zingaphinda zidale i-hotspot ukuze zabelane ngokuqukethwe namadivayisi aseduze."</string>
     <string name="tethering_help_button_text" msgid="2823655011510912001">"Usizo"</string>
     <string name="network_settings_title" msgid="4663717899931613176">"Inethiwekhi yeselula"</string>
-    <string name="manage_mobile_plan_title" msgid="5616930513733409064">"Uhlelo lweselula"</string>
     <string name="sms_application_title" msgid="4791107002724108809">"Uhlelo lokusebenza lwe-SMS"</string>
     <string name="sms_change_default_dialog_title" msgid="2343439998715457307">"Shintsha uhlelo lokusebenza le-SMS?"</string>
     <string name="sms_change_default_dialog_text" msgid="8777606240342982531">"Sebenzisa i-<xliff:g id="NEW_APP">%1$s</xliff:g> kunokusebenzisa i-<xliff:g id="CURRENT_APP">%2$s</xliff:g> njengohlelo lwakho lokusebenza le-SMS?"</string>
@@ -1366,10 +1513,6 @@
     <string name="network_scorer_change_active_dialog_title" msgid="7005220310238618141">"Shintsha umsizi we-Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="7006057749370850706">"Sebenzisa i-<xliff:g id="NEW_APP">%1$s</xliff:g> esikhundleni se-<xliff:g id="CURRENT_APP">%2$s</xliff:g> ukuze uphathe uxhumo lakho lenethiwekhi?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="680685773455072321">"Sebenzisa i-<xliff:g id="NEW_APP">%s</xliff:g> ukuze uphathe uxhumo lwakho lenethiwekhi?"</string>
-    <string name="mobile_unknown_sim_operator" msgid="6650422533065760963">"I-opharetha ye-SIM engaziwa"</string>
-    <string name="mobile_no_provisioning_url" msgid="609462719893503773">"I-<xliff:g id="OPERATOR">%1$s</xliff:g> ayinayo iwebhusayithi eyaziwayo enikezayo"</string>
-    <string name="mobile_insert_sim_card" msgid="3639245241283948038">"Sicela ufake ikhadi le-SIM bese uqala kabusha"</string>
-    <string name="mobile_connect_to_internet" msgid="8162654404357069060">"Sicela uxhume ku-inthanethi"</string>
     <string name="location_category_recent_location_requests" msgid="2205900488782832082">"Izicelo zendawo zakamuva"</string>
     <string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Indawo yephrofayela yokusebenza"</string>
     <string name="location_app_level_permissions" msgid="907206607664629759">"Izimvume zendawo ye-app"</string>
@@ -1552,6 +1695,16 @@
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Sula ukufinyelela"</string>
     <string name="controls_label" msgid="8671492254263626383">"Izilawuli"</string>
     <string name="force_stop" msgid="2681771622136916280">"Phoqelela ukuma"</string>
+    <string name="archive" msgid="9074663845068632127">"Ingobo yomlando"</string>
+    <string name="restore" msgid="7622486640713967157">"Buyisela"</string>
+    <!-- no translation found for restoring_step_one (3465050101254272874) -->
+    <skip />
+    <!-- no translation found for restoring_step_two (140484846432595108) -->
+    <skip />
+    <!-- no translation found for restoring_step_three (3712883580876329811) -->
+    <skip />
+    <!-- no translation found for restoring_step_four (8966846882470446209) -->
+    <skip />
     <string name="total_size_label" msgid="2052185048749658866">"Konke"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Usayizi wohlelo lokusebenza"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"Uhlelo lokusebenza lokugcina kwi-USB"</string>
@@ -1605,6 +1758,10 @@
     <string name="invalid_size_value" msgid="7017371543563259201">"Ayikwazanga ukubala usayizi wephakeji."</string>
     <string name="version_text" msgid="7628938665256107608">"Inguqulo <xliff:g id="VERSION_NUM">%1$s</xliff:g>"</string>
     <string name="move_app" msgid="5421158479447276791">"Hambisa"</string>
+    <string name="archiving_failed" msgid="2037798988961634978">"Ukufaka kungobo yomlando kwehlulekile"</string>
+    <string name="archiving_succeeded" msgid="7891249456483297845">"I-<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> efakwe kungobo yomlando"</string>
+    <string name="restoring_failed" msgid="3390531747355943533">"Ukubuyisela akuphumelelanga"</string>
+    <string name="restoring_in_progress" msgid="7787443682651146115">"Kubuyiselwa i-<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g>"</string>
     <string name="another_migration_already_in_progress" msgid="6550546307856052261">"Okunye ukuthutha sekuvele kuyaqhubeka."</string>
     <string name="insufficient_storage" msgid="8115088042669030558">"Ayikho indawo eyanele yokulondoloza."</string>
     <string name="does_not_exist" msgid="6499163879348776120">"Ifayela ayikho"</string>
@@ -1690,9 +1847,14 @@
     <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Ikhibhodi ekusikrini etholakalayo"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Phatha amakhibhodi akuskrini"</string>
     <string name="keyboard_options_category" msgid="8040137073401152608">"Ongakukhetha"</string>
+    <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ukufinyeleleka"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Ikhibhodi ephathekayo"</string>
     <string name="show_ime" msgid="4334255501724746849">"Sebenzisa ikhibhodi ekuskrini"</string>
     <string name="show_ime_summary" msgid="7293345791727205975">"Yigcine kusikrini ngenkathi kusebenza ikhibhodi ephathekayo"</string>
+    <string name="bounce_keys" msgid="7419450970351743904">"Okhiye bokubuyisela emuva"</string>
+    <string name="bounce_keys_summary" msgid="6922850403920596246">"Nika amandla okhiye Bokubuyisela Emuva ukuze ikhibhodi ephathekayo ikwazi ukufinyelela"</string>
+    <string name="sticky_keys" msgid="7317317044898161747">"Okhiye abanamathelayo"</string>
+    <string name="sticky_keys_summary" msgid="8520909829540989765">"Nika amandla okhiye Abanamathelayo ukuze ikhibhodi ephathekayo ikwazi ukufinyelela"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Izinqamuleli zekhibhodi"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Bonisa uhlu lwezinqamuleli"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Amakhibhodi ephrofayela yomsebenzi namathuluzi"</string>
@@ -1790,7 +1952,8 @@
     <string name="usage_stats_sort_by_usage_time" msgid="2927310334119998301">"Hlunga ngesikhathi sokusebenzisa"</string>
     <string name="usage_stats_sort_by_last_time_used" msgid="7039213339779884017">"Hlunga ngesikhathi sokugcina esetshenziswe ngaso"</string>
     <string name="usage_stats_sort_by_app_name" msgid="4463833145514850478">"Hlunga ngegama le-app"</string>
-    <string name="last_time_used_label" msgid="2639712813493534074">"Isikhathi sokugcina ukusetshenziswa"</string>
+    <string name="last_time_used_label" msgid="7589377271406011659">"Igcinwe ukusetshenziswa"</string>
+    <string name="last_time_used_never" msgid="2936073559267990034">"ngeke"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Isikhathi sokusetshenziswa"</string>
     <string name="accessibility_settings" msgid="4713215774904704682">"Ukufinyeleleka"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Izilungiselelo zokufinyelela"</string>
@@ -1853,7 +2016,6 @@
     <string name="accessibility_magnification_triple_tap_warning_positive_button" msgid="8712304035901450010">"Qhubeka noma kunjalo"</string>
     <string name="accessibility_magnification_triple_tap_warning_negative_button" msgid="2028849736366584733">"Khansela"</string>
     <string name="accessibility_magnification_service_settings_title" msgid="3531350704632316017">"Izilungiselelo zokukhuliswa"</string>
-    <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Shintsha ngokuthepha kathathu"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Khulisa ngesinqamuleli"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Khulisa ngenkinobho futhi uthephe kathathu"</string>
     <string name="accessibility_introduction_title" msgid="8834950581512452348">"Mayelana ne-<xliff:g id="SERVICE">%1$s</xliff:g>"</string>
@@ -1879,18 +2041,20 @@
     <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_double" msgid="3912970760484557646">"Thepha kabili isikrini ngeminwe 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="860548190334486449">"Ukuze uqale futhi umise ukukhuliswa, thepha kabili 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>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Ukuze usebenzise isici sokufinyelela, 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_button" msgid="2031773187678948436">"Ngiyezwa"</string>
-    <string name="accessibility_tutorial_dialog_link_button" msgid="1624189347106713695">"Amasethingi enkinobho yokufinyelela"</string>
+    <string name="accessibility_tutorial_dialog_link_button" msgid="6797349445794031781">"Amasethingi wenkinobho"</string>
     <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> isinqamuleli"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Inkinobho yokufinyeleleka"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="5489284264414421286">"Ukutholakala kokuthinta"</string>
@@ -1906,6 +2070,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_double_tap" msgid="2271778556854020996">"Isikrini othepha kabili ngeminwe emibili kuso"</string>
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword" msgid="2971265341474137433">"isikrini othepha kabili ngeminwe emibili kuso"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap" msgid="8262165091808318538">"Thepha ngokushesha isikrini izikhathi ezingu-{0,number,integer} ngeminwe emibili"</string>
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap" msgid="6672798007229795841">"Isikrini sokuthepha kathathu"</string>
     <string name="accessibility_shortcut_triple_tap_keyword" msgid="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>
@@ -1924,8 +2091,8 @@
     <string name="accessibility_button_gesture_footer_learn_more_content_description" msgid="4144803517680297869">"Funda kabanzi ngenkinobho yokufinyeleleka nokuthinta"</string>
     <string name="accessibility_button_intro" msgid="2601976470525277903">"Ukusebenzisa inkinobho yokufinyeleleka. Ukuthinta akutholakali ngokuzulazula kwezinkinobho ezi-3."</string>
     <string name="accessibility_button_summary" msgid="8510939012631455831">"Finyelela ngokushesha izakhi zokufinyelela"</string>
-    <string name="accessibility_button_gesture_description" msgid="7507097717493960397"><b>"Ukuze uqalise:"</b>\n"1. Iya kumasethingi okungena\n2. Khetha isakhi bese uthepha isinqamuleli\n3. Khetha ukuthi uyafuna yini ukusebenzisa inkinobho noma ukuthinta ukuze ufinyelele isakhi"</string>
-    <string name="accessibility_button_description" msgid="1261273371298608222"><b>"Ukuze uqalise"</b>\n"1. Iya kumasethingi okufinyelela\n2. Khetha isakhi bese uthepha isinqamuleli\n3. Khetha inkinobho ukuze ufinyelele isakhi"</string>
+    <string name="accessibility_button_gesture_description" msgid="1141723096904904336">"&lt;b&gt;Ukuze uqalise&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Iya kumasethingi okungena&lt;br/&gt; {1,number,integer}. Khetha isakhi bese uthepha isinqamuleli&lt;br/&gt; {2,number,integer}. Khetha ukuthi uyafuna yini ukusebenzisa inkinobho noma ukunyakazisa umzimba ukuze ufinyelele isakhi&lt;br/&gt;"</string>
+    <string name="accessibility_button_description" msgid="7669538706120092399">"&lt;b&gt;Ukuze uqalise&lt;/b&gt;&lt;br/&gt; {0,number,integer}. Iya kumasethingi okungena&lt;br/&gt; {1,number,integer}. Khetha isakhi bese uthepha isinqamuleli&lt;br/&gt; {2,number,integer}. Khetha inkinobho ukuze ufinyelele isakhi&lt;br/&gt;"</string>
     <string name="accessibility_button_or_gesture_title" msgid="3510075963401163529">"Sebenzisa inkinobho noma ukuthinta"</string>
     <string name="accessibility_button_location_title" msgid="7182107846092304942">"Indawo"</string>
     <string name="accessibility_button_size_title" msgid="5785110470538960881">"Usayizi"</string>
@@ -1941,6 +2108,8 @@
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="8187306131979612144">"Inkinobho yamandla ivala ikholi"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="5508351959249876801">"Isikhombi esikhulu segundane"</string>
     <string name="accessibility_toggle_large_pointer_icon_summary" msgid="1480527946039237705">"Yenza isikhombi se-mouse sibonakale kakhudlwana"</string>
+    <string name="accessibility_force_invert_title" msgid="5015366813138748407">"Yenza onke ama-app abe mnyama"</string>
+    <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"Isebenza kuma-app angenayo itimu yawo emnyama. Amanye ama-app angase abe nezinkinga zokubonisa, njengemibala engenisiwe."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"Susa ukugqwayiza"</string>
     <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"Yehlisa ukunyakaza esikrinini"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"Umsindo we-Mono"</string>
@@ -1993,6 +2162,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>
@@ -2129,16 +2299,15 @@
     <string name="accessibility_service_action_perform_description" msgid="7807832069800034738">"Ingalandela ukusebenzisana kwakho nohlelo lokusebenza noma inzwa yehadiwe, nokusebenzisana nezinhlelo zokusebenza engxenyeni yakho."</string>
     <string name="accessibility_dialog_button_allow" msgid="8274918676473216697">"Vumela"</string>
     <string name="accessibility_dialog_button_deny" msgid="2037249860078259284">"Phika"</string>
-    <string name="accessibility_dialog_button_stop" msgid="7295448112784528196">"Misa"</string>
-    <string name="accessibility_dialog_button_cancel" msgid="4813234247237851121">"Khansela"</string>
-    <string name="disable_service_title" msgid="2909108731776956167">"Misa i-<xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
-    <string name="disable_service_message" msgid="4814173941688548016">"Ukuthepha u-<xliff:g id="STOP">%1$s</xliff:g> kuzomisa i-<xliff:g id="SERVICE">%2$s</xliff:g>."</string>
+    <string name="accessibility_dialog_button_stop" msgid="7584815613743292151">"Vala"</string>
+    <string name="accessibility_dialog_button_cancel" msgid="8625997437316659966">"Qhubeka"</string>
+    <string name="disable_service_title" msgid="8178020230162342801">"Vala i-<xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="accessibility_no_services_installed" msgid="3725569493860028593">"Ayikho isevisi efakiwe"</string>
     <string name="accessibility_no_service_selected" msgid="1310596127128379897">"Ayikho isevisi ekhethiwe"</string>
     <string name="accessibility_service_default_description" msgid="7801435825448138526">"Akukho ncazelo enikeziwe."</string>
     <string name="settings_button" msgid="2195468788019730377">"Izilungiselelo"</string>
     <string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ukuzwela kokukhanya, ukwesaba izithombe, itimu emnyama, i-migraine, ikhanda elibuhlungu, imodi yokufunda, imodi yasebusuku, nciphisa ukukhanya, iphoyinti elimhlophe"</string>
-    <string name="keywords_accessibility" msgid="4263443239404659143">"Ukusetshenziswa kalula, ukutholakala kalula, Umsizo, usizo"</string>
+    <string name="keywords_accessibility" msgid="8593989878379366798">"ukubuka, ukuzwa, impumputhe, isithuli, imoto, i-dexterity, okusizayo, usizo, ukusebenziseka kalula, ukufinyelela kalula, isandla, usizo"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"Isikhulisi Sewindi, Sondeza, Ukukhuliswa, Amehlo aluvindi, Khulisa, yenza kube kukhulu"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
     <string name="keywords_live_caption" msgid="1667203998080567556">"Amagama-ncazo, amazwibela avaliwe, i-CC, i-Live Transcribe, inkinga yokuzwa, ukulahleka kokuzwa, UBHASKIDI, inkulumo eya kumbhalo, umbhalo ongezansi"</string>
@@ -2153,10 +2322,13 @@
     <string name="keywords_contrast" msgid="4668393735398949873">"ukungafani kombala"</string>
     <string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
     <string name="keywords_switch_access" msgid="5813094504384313402"></string>
-    <string name="keywords_auto_click" msgid="7151756353013736931">"i-motor, igundwane"</string>
-    <string name="keywords_hearing_aids" msgid="4550504337687223314">"imishini yendlebe, onenkinga yokuzwa, ukulahlekelwa ukuzwa, izifakelo ze-cochlear, amadivaysi okukhulisa umsindo, izicubunguli zomsindo"</string>
+    <string name="keywords_auto_click" msgid="6811744211216280998">"imoto, i-mouse, i-mouse yangaphandle, i-mouse eyinhloko, i-mouse evumelana, isihlalo sabakhubazekile, i-joystick"</string>
+    <string name="keywords_hearing_aids" msgid="4657889873249157071">"imishini yendlebe, onenkinga yokuzwa, ukulahlekelwa ukuzwa, izifakelo ze-cochlear, amadivaysi okukhulisa umsindo, izicubunguli zomsindo, i-PSAP"</string>
     <string name="keywords_rtt" msgid="2429130928152514402">"onenkinga yokuzwa, ukulahlekelwa ukuzwa, amagama-ncazo, i-Teletype, i-tty"</string>
     <string name="keywords_voice_access" msgid="7807335263195876454"></string>
+    <string name="keywords_3_button_navigation" msgid="436361965016404218">"izinkinobho ezintathu"</string>
+    <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"i-dexterity, imoto, umuntu omdala, isifo samathambo, i-rsi, ukufa kohlangothi, idumbe, i-multiple sclerosis, i-cerebral palsy, ukuqhaqhazela, ukulimala kokucindezeleka okuphindayo, isandla"</string>
+    <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ukubambezeleka, i-dexterity, abantu abadala"</string>
     <string name="print_settings" msgid="8519810615863882491">"Ukuphrinta"</string>
     <string name="print_settings_summary_no_service" msgid="6721731154917653862">"Kuvaliwe"</string>
     <string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Isevisi e-1 yephrinta ivulekile}one{Amasevisi angu-# ephrinta avulekile}other{Amasevisi angu-# ephrinta avulekile}}"</string>
@@ -2191,11 +2363,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>
@@ -2231,12 +2408,6 @@
     <string name="battery_tip_high_usage_summary" msgid="3938999581403084551">"Bona ama-app asetshenziswa kakhulu"</string>
     <string name="battery_tip_limited_temporarily_title" msgid="6258554134146272311">"Ukushaja kuthuthukisiwe ukuvikela ibhethri lakho"</string>
     <string name="battery_tip_limited_temporarily_summary" msgid="5107379280241187562">"Ukusiza ukunweba impilo yebhethri yakho, ukushaja kuthuthukisiwe"</string>
-    <string name="battery_tip_dock_defender_future_bypass_title" msgid="4332616280495788195">"Ukushaja kuthuthukisiwe ukuvikela ibhethri lakho"</string>
-    <string name="battery_tip_dock_defender_future_bypass_summary" msgid="7870758621381307597">"Ukuze usize ukunweba impilo yebhethri lakho, ukushaja kuthuthukiswe ngenkathi kudokhwa"</string>
-    <string name="battery_tip_dock_defender_active_title" msgid="1414785238383255699">"Ukushaja kuthuthukisiwe ukuvikela ibhethri lakho"</string>
-    <string name="battery_tip_dock_defender_active_summary" msgid="3512082623718801459">"Ukuze usize ukunweba impilo yebhethri lakho, ukushaja kuthuthukiswe ngenkathi kudokhwa"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title" msgid="1679449361090557201">"Ishaja ize igcwale"</string>
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary" msgid="1099500476761333281">"Ukuze uvikele ibhethri lakho, ukushaja kuzothuthukiswa esikhathini esizayo lapho ithebulethi yakho idokhiwe"</string>
     <string name="battery_tip_limited_temporarily_sec_button_content_description" msgid="5648444926736883551">"Funda kabanzi mayelana nokuthi ukushaja kumisiwe"</string>
     <string name="battery_tip_limited_temporarily_dialog_resume_charge" msgid="2302295458913832342">"Qalisa kabusha ukukhokhisa"</string>
     <string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Ifaka umsebenzi ongemuva wamandla aphezulu"</string>
@@ -2254,7 +2425,8 @@
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="7940183167721998470">"Susa"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="4968135709160207507">"Khansela"</string>
     <string name="battery_tip_charge_to_full_button" msgid="6701709034348116261">"Shaja ugcwalise"</string>
-    <string name="battery_tip_incompatible_charging_title" msgid="5120763575150751300">"Inkinga ngesesekeli sokushaja"</string>
+    <!-- no translation found for battery_tip_incompatible_charging_title (1567827436103364999) -->
+    <skip />
     <string name="battery_tip_incompatible_charging_content_description" msgid="355668467640367701">"Funda kabanzi mayelana nokushaja okungahambelani"</string>
     <string name="smart_battery_manager_title" msgid="3677620516657920364">"Isiphathi sebhethri"</string>
     <string name="smart_battery_title" msgid="9095903608520254254">"Phatha izinhlelo zokusebenza ngokuzenzakalela"</string>
@@ -2294,6 +2466,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>
@@ -2337,6 +2510,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>
@@ -2344,9 +2518,11 @@
     <string name="battery_usage_chart_label_now" msgid="4598282721949430165">"manje"</string>
     <string name="battery_usage_timestamps_hyphen" msgid="7401188432989043905">"<xliff:g id="FROM_TIMESTAMP">%1$s</xliff:g> - <xliff:g id="TO_TIMESTAMP">%2$s</xliff:g>"</string>
     <string name="battery_usage_day_and_hour" msgid="1417890420844950881">"<xliff:g id="DAY">%1$s</xliff:g> <xliff:g id="HOUR">%2$s</xliff:g>"</string>
+    <string name="battery_usage_time_info_and_battery_level" msgid="6732629268310936155">"<xliff:g id="TIME_INFO">%1$s</xliff:g> <xliff:g id="BATTERY_LEVEL">%2$s</xliff:g>"</string>
     <string name="battery_usage_chart" msgid="4114747521432440017">"Ishadi lokusetshenziswa kwebhethri"</string>
     <string name="daily_battery_usage_chart" msgid="4176059567682992686">"Ishadi lokusetshenziswa kwebhethri kwansuku zonke"</string>
     <string name="hourly_battery_usage_chart" msgid="3098314511076561272">"Ishadi lokusetshenziswa kwebhethri ngehora"</string>
+    <string name="battery_level_percentage" msgid="1433178290838842146">"Iphesenti leleveli yebhethri ukusuka ku-<xliff:g id="START_PERCENTAGE">%1$s</xliff:g> ukuya ku-<xliff:g id="END_PERCENTAGE">%2$s</xliff:g>"</string>
     <string name="battery_usage_breakdown_title_since_last_full_charge" msgid="435006273323199906">"Ukusetshenziswa kwebhethri kusukela ekushajweni okugcwele kokugcina"</string>
     <string name="battery_usage_breakdown_title_for_slot" msgid="4823179483667671406">"Ukusetshenziswa kwebhethri kwe-<xliff:g id="SLOT">%s</xliff:g>"</string>
     <string name="screen_time_category_last_full_charge" msgid="8856908320256057753">"Isikhathi sesikrini kusukela ekushajweni okugcwele kokugcina"</string>
@@ -2462,8 +2638,6 @@
     <string name="emergency_tone_title" msgid="6673118505206685168">"Isignali yokudayela isimo esiphuthumayo"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Hlela ukuziphatha lapho ikholi oluphuthumayo lwenziwa"</string>
     <string name="privacy_settings_title" msgid="6437057228255974577">"Sekela ngokulondoloza"</string>
-    <string name="backup_summary_state_on" msgid="9018954639693085240">"Vuliwe"</string>
-    <string name="backup_summary_state_off" msgid="5341339397224835909">"Valiwe"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Isipele ukubuyiselwa"</string>
     <string name="personal_data_section_title" msgid="6368610168625722682">"Idatha yomuntu siqu"</string>
     <string name="backup_data_title" msgid="507663517227498525">"Sekela ngokulondoloza idatha yami"</string>
@@ -2552,6 +2726,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>
@@ -2601,27 +2776,18 @@
     <string name="vpn_name" msgid="3806456074909253262">"Igama"</string>
     <string name="vpn_type" msgid="5533202873260826663">"Uhlobo"</string>
     <string name="vpn_server" msgid="2908816134941973935">"Ikheli leseva"</string>
-    <string name="vpn_mppe" msgid="7366657055055114239">"PPP ukubethela (MPPE)"</string>
-    <string name="vpn_l2tp_secret" msgid="2356744369959140121">"Imfihlo ye-L2TP"</string>
     <string name="vpn_ipsec_identifier" msgid="8511842694369254801">"Isiqaphelisi se-IPSec"</string>
     <string name="vpn_ipsec_secret" msgid="532007567355505963">"Ukhiye owabelene ngaphambili we-IPSec"</string>
     <string name="vpn_ipsec_user_cert" msgid="2714372103705048405">"Isitifiketi somsebenzisi we-IPSec"</string>
     <string name="vpn_ipsec_ca_cert" msgid="5558498943577474987">"Izitifiketi ze-IPSec CA"</string>
     <string name="vpn_ipsec_server_cert" msgid="1411390470454731396">"IPSec izitifiketi se-server"</string>
     <string name="vpn_show_options" msgid="6105437733943318667">"Bonisa okukhethwa kukho okuseqophelweni"</string>
-    <string name="vpn_search_domains" msgid="1973799969613962440">"Izizinda zokusesha ze-DNS"</string>
-    <string name="vpn_dns_servers" msgid="6505263074417737107">"amaseva e-DNS (e.g. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="1218707725375594862">"Ukudlulisa imizila (e.g. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"Igama lomsebenzisi"</string>
     <string name="vpn_password" msgid="1183746907642628127">"Iphasiwedi"</string>
     <string name="vpn_save_login" msgid="5986762519977472618">"Lolondoloza ulwazi lwe-akhawunti"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(ayisetshenziswa)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(ungaqinisekisi iseva)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(itholakale kwi-server)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="4699113710248872972">"Lolu hlobo lwe-VPN alikwazi ukuhlala lixhumekile ngazo zonke izikhathi"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="2635347740046212693">"I-VPN ehlala ivuliwe isekela kuphela ikheli leseva yezinombolo"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3980357762395272467">"Iseva ye-DNS kufanele icaciswe ku-VPN ehlala ivulekile"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3934369594591801587">"Ikheli leseva le-DNS kufanele libe yizinombolo ze-VPN ehlala ivulekile"</string>
     <string name="vpn_always_on_invalid_reason_other" msgid="4571905303713233321">"Ulwazi olufakiwe alisekeli i-VPN ehlala ivulekile"</string>
     <string name="vpn_cancel" msgid="5929410618112404383">"Khansela"</string>
     <string name="vpn_done" msgid="5137858784289564985">"Cashisa"</string>
@@ -2657,6 +2823,7 @@
     <string name="vpn_require_connection" msgid="1027347404470060998">"Vimbela uxhumo ngaphandle kwe-VPN"</string>
     <string name="vpn_require_connection_title" msgid="4186758487822779039">"Kudingeka uxhumo lwe-VPN?"</string>
     <string name="vpn_insecure_dialog_subtitle" msgid="1857621742868835300">"Akuphephile. Buyekezela ku-IKEv2 VPN"</string>
+    <string name="vpn_start_unsupported" msgid="7139925503292269904">"Yehlulekile ukuqalisa i-VPN engasekelwa."</string>
     <string name="vpn_lockdown_summary" msgid="4700625960550559029">"Khetha iphrofayela ye-VPN ukuhlala uxhumekile. I-traffic yenethiwekhi izovunyelwa kuphela uma ixhunyiwe kule-VPN."</string>
     <string name="vpn_lockdown_none" msgid="455915403560910517">"Akunalutho"</string>
     <string name="vpn_lockdown_config_error" msgid="1992071316416371316">"I-VPN ehlala ikhanya idinga ikheli le-IP kwisiphakeli ne-DNS."</string>
@@ -2791,11 +2958,6 @@
     <string name="amber_alerts_title" msgid="5238275758191804575">"Izexwayiso ze-AMBER"</string>
     <string name="amber_alerts_summary" msgid="5755221775246075883">"Thola izihloko zezindaba mayelana nokulahleka kwezingane"</string>
     <string name="repeat_title" msgid="8676570486899483606">"Phinda"</string>
-    <string name="call_manager_enable_title" msgid="1214301265395158720">"Nika amandla isiphathi sekholi"</string>
-    <string name="call_manager_enable_summary" msgid="7362506369604163030">"Vumela le sevisi ukuphatha ukuthi amakholi wakho enziwa kanjani."</string>
-    <string name="call_manager_title" msgid="3397433159509629466">"Isiphathi sekholi"</string>
-    <!-- no translation found for call_manager_summary (2558839230880919191) -->
-    <skip />
     <string name="cell_broadcast_settings" msgid="2416980110093867199">"Izexwayiso zesimo esiphuthumayo"</string>
     <string name="network_operators_settings" msgid="5105453353329748954">"Imisebenzi yenethiwekhi"</string>
     <string name="access_point_names" msgid="5768430498022188057">"Amagama wephoyinti lokufinyelela"</string>
@@ -2949,7 +3111,6 @@
     <string name="keywords_wallet" msgid="3757421969956996972">"i-wallet"</string>
     <string name="keywords_payment_settings" msgid="6268791289277000043">"khokha, thepha, i-payments"</string>
     <string name="keywords_backup" msgid="707735920706667685">"isipele, yenza isipele"</string>
-    <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"uphawu lwezimpawu zomzimba"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ukuvula, ngobuso, gunyaza, ngena ngemvume"</string>
     <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ukuvula, ngobuso, ukufakazela, ukungena ngemvume, isigxivizo somunwe, i-biometrics"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, inguqulo ye-prl, imei sv"</string>
@@ -3000,6 +3161,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>
@@ -3035,9 +3197,6 @@
     <string name="boot_sounds_title" msgid="5033062848948884111">"Amandla kumisindo"</string>
     <string name="live_caption_title" msgid="8617086825712756983">"Amagama-ncazo abukhoma"</string>
     <string name="live_caption_summary" msgid="2898451867595161809">"Yenza amagama-ngcazo ngokuzenzakalela emidiya"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="3956755613908467186">"izipikha zefoni"</string>
-    <string name="spatial_audio_speaker" product="tablet" msgid="2261196916411018248">"Izipikha zethebhulethi"</string>
-    <string name="spatial_audio_speaker" product="device" msgid="3012868526054155189">"Izipikha zedivayisi"</string>
     <string name="spatial_audio_wired_headphones" msgid="2237355789145828648">"Ama-headphone entambo"</string>
     <string name="spatial_audio_text" msgid="8201387855375146000">"Umsindo ovela kumidiya ehambisanayo uba ogxile kakhulu"</string>
     <string name="spatial_summary_off" msgid="8272678804629774378">"Valiwe"</string>
@@ -3222,7 +3381,7 @@
     <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>
+    <string name="lock_screen_notifications_interstitial_message" msgid="6326229471276829730">"Ufuna ukuthi isikrini sakho sokuvala siboniseni?"</string>
     <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>
@@ -3251,6 +3410,7 @@
     <string name="recent_convos_removed" msgid="2122932798895714203">"Izingxoxo zakamuva zisusiwe"</string>
     <string name="recent_convo_removed" msgid="8686414146325958281">"Ingxoxo isusiwe"</string>
     <string name="clear" msgid="5092178335409471100">"Sula"</string>
+    <string name="clear_conversation" msgid="5564321180363279096">"Sula i-<xliff:g id="CONVERSATION_NAME">%1$s</xliff:g>"</string>
     <string name="conversation_onboarding_title" msgid="5194559958353468484">"Izingxoxo ezibalulekile neziguquliwe zizovela lapha"</string>
     <string name="conversation_onboarding_summary" msgid="2484845363368486941">"Lapho usumaka ingxoxo njengebalulekile, noma wenza ezinye izinguquko ezingxoxweni, zizovela lapha. \n\nUkushintsha izilungiselelo zengxoxo: \nSwayipha ngezansi kusuka ngaphezulu kwesikrini ukuvula ukudonsela phansi umthunzi, bese uthinta futhi ubambe ingxoxo."</string>
     <string name="notification_importance_min_title" msgid="7676541266705442501">"Nciphisa"</string>
@@ -3309,6 +3469,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>
@@ -3503,8 +3674,8 @@
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Valiwe"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Ukuphina i-app"</string>
     <string name="app_pinning_intro" msgid="6409063008733004245">"Ukuphina uhlelo lokusebenza kukuvumela ukuba ugcine uhlelo lokusebenza lwamanje lubhekiwe kuze kube yilapho ususa ukuphina kulo. Lesi sici singasetshenziswa, njengesibonelo, ukuvumela umngani othenjiwe ukuthi adlale igeyimu ethile."</string>
-    <string name="screen_pinning_description" msgid="4305370471370474846">"Uma i-app iphiniwe, i-app ephiniwe ingavula amanye ama-app futhi idatha yomuntu siqu ingase ifinyeleleke. \n\nUkuze usebenzise ukuphina i-app: 	\n1. Vula ukuphina i-app 	\n2. Vula Amazwibela 	\n3. Thepha isithonjana se-app phezulu esikrinini, bese uthepha okuthi Phina"</string>
-    <string name="screen_pinning_guest_user_description" msgid="2465729370037556955">"Uma i-app iphiniwe, i-app ephiniwe ingavula amanye ama-app futhi idatha yomuntu siqu ingase ifinyeleleke. \n\nUma ufuna ukwabelana nothile ngokuphephile ngedivayisi yakho, kunalokho zama ukusebenzisa umsebenzisi wesimenywa. \n\nUkuze usebenzise ukuphina i-app: 	\n1. Vula ukuphina i-app 	\n2. Vula Amazwibela 	\n3. Thepha isithonjana se-app phezulu esikrinini, bese uthepha okuthi Phina"</string>
+    <string name="screen_pinning_description" msgid="5822120806426139396">"Uma i-app iphiniwe, i-app ephiniwe ingavula amanye ama-app futhi idatha yomuntu siqu ingase ifinyeleleke. \n\nUkuze usebenzise ukuphina i-app: 	\n{0,number,integer}. Vula ukuphina i-app 	\n{1,number,integer}. Vula Isifinyezo 	\n{2,number,integer}. Thepha isithonjana se-app phezulu esikrinini, bese uthepha okuthi Phina"</string>
+    <string name="screen_pinning_guest_user_description" msgid="2307270321127139579">"Uma i-app iphiniwe, i-app ephiniwe ingavula amanye ama-app futhi idatha yomuntu siqu ingase ifinyeleleke. \n\nUma ufuna ukwabelana nothile ngokuphephile ngedivayisi yakho, kunalokho zama ukusebenzisa umsebenzisi wesimenywa. \n\nUkuze usebenzise ukuphina i-app: 	\n{0,number,integer}. Vula ukuphina i-app 	\n{1,number,integer}. Vula Isifinyezo 	\n{2,number,integer}. Thepha isithonjana se-app phezulu esikrinini, bese uthepha okuthi Phina"</string>
     <string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Uma i-app iphiniwe: \n\n•		Idatha yomuntu siqu ingafinyeleleka \n		(njengoxhumana nabo kanye nokuqukethwe ku-imeyili) \n•		Uhlelo lokusebenza oluphiniwe lungavula amanye ama-app \n\nSebenzisa ukuphina ama-app nabantu obathembayo kuphela."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Cela iphethini yokuvula ngaphambi kokususa ukuphina"</string>
     <string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Cela iphinikhodi ngaphambi kokuphina"</string>
@@ -3570,6 +3741,8 @@
     <string name="unused_apps_category" msgid="8954930958175500851">"Amasethingi we-app engasetshenziswanga"</string>
     <string name="unused_apps_switch" msgid="7595419855882245772">"Misa okwesikhashana umsebenzi we-app uma ingasetshenziswa"</string>
     <string name="unused_apps_switch_summary" msgid="2171098908014596802">"Susa izimvume, sula amafayela wesikhashana, futhi umise izaziso"</string>
+    <string name="unused_apps_switch_v2" msgid="7464060328451454469">"Lawula i-app uma ingasetsheziswa"</string>
+    <string name="unused_apps_switch_summary_v2" msgid="3182898279622036805">"Susa izimvume, sula amafayela esikhashana, futhi ufake i-app kungobo yomlando"</string>
     <string name="filter_all_apps" msgid="6645539744080251371">"Zonke izinhlelo zokusebenza"</string>
     <string name="filter_enabled_apps" msgid="8868356616126759124">"Izinhlelo zokusebenza ezifakiwe"</string>
     <string name="filter_instant_apps" msgid="2292108467020380068">"Izinhlelo zokusebenza ezisheshayo"</string>
@@ -3678,6 +3851,9 @@
     <string name="free_memory" msgid="439783742246854785">"Khululekile"</string>
     <string name="memory_usage_apps" msgid="5776108502569850579">"Imemori esetshenziswe yizinhlelo zokusebenza"</string>
     <string name="memory_usage_apps_summary" msgid="7168292864155527974">"{count,plural, =1{1 i-app esebenzise inkumbulo ekugcineni {time}}one{Ama-app angu-# asebenzise inkumbulo ekugcineni {time}}other{Ama-app angu-# asebenzise inkumbulo ekugcineni {time}}}"</string>
+    <string name="force_enable_pss_profiling_title" msgid="2253816522775341523">"Nika ukwenza iphrofayela yokusetshenziswa kwenkumbulo amandla"</string>
+    <string name="force_enable_pss_profiling_summary" msgid="7714294324548399136">"Ukusebenzisa iphrofayela yokusetshenziswa kwenkumbulo kudinga izinsiza zesistimu ezengeziwe."</string>
+    <string name="pss_profiling_disabled" msgid="1967278421143514850">"Ukwenza iphrofayela yenkumbulo kukhutshaziwe"</string>
     <string name="running_frequency" msgid="7260225121706316639">"Imvamisa"</string>
     <string name="memory_maximum_usage" msgid="2047013391595835607">"Ukusetshenziswa okukhulu"</string>
     <string name="no_data_usage" msgid="4665617440434654132">"Ayikho idatha esetshenzisiwe"</string>
@@ -3696,10 +3872,18 @@
     <string name="system_alert_window_settings" msgid="6458633954424862521">"Bonisa phezu kwamanye ama-app"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"Vumela ukubonisa phezu kwamanye ama-app"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"Vumela lolu hlelo lokusebenza ukuthi luboniswe ngaphezulu kwezinye izinhlelo zokusebenza ozisebenzisayo. Lolu hlelo lokusebenza luzokwazi ukubona uma uthepha noma ushintsha okuboniswa kusikrini."</string>
+    <string name="media_routing_control_title" msgid="6402800638960066807">"Shintsha umphumela wemidiya"</string>
+    <string name="allow_media_routing_control" msgid="4907036637509360616">"Vumela i-app ukushintsha okukhipha imidiya"</string>
+    <string name="allow_media_routing_description" msgid="8343709701298051207">"Vumela le-app ukuthi ikhethe ukuthi iyiphi idivayisi exhunyiwe edlala umsindo noma ividiyo kwamanye ama-app. Uma kuvunyelwe, le-app ingafinyelela uhlu lwamadivayisi atholakalayo njengama-headphone nezipikha futhi lukhethe ukuthi iyiphi idivayisi yokukhishwayo esetshenziselwa ukusakaza noma ukusakaza umsindo noma ividiyo."</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"Ukufinyelela kuwo wonke amafayela"</string>
     <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="permit_receive_sandboxed_detection_training_data" msgid="3929496847420108753">"Thuthukisa ukusetshenziswa kwezwi"</string>
+    <string name="receive_sandboxed_detection_training_data_description" msgid="1415687008184625050">"Le divayisi isebenzisa ubuchule obuyimfihlo ukuze buthuthukise imodeli yokusebenzisa izwi. Ama-app angathola izibuyekezo ezifinyeziwe ezihlukanisiwe phakathi nabasebenzisi abaningi ukuze kulondolozwe ubumfihlo lapho kuthuthukiswa imodeli yawo wonke umuntu.\n\n"<a href="">"Okuningi mayelana nobuchule obuyimfihlo"</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>
@@ -3808,7 +3992,6 @@
     <string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> isexwayiso sedatha"</string>
     <string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> umkhawulo wedatha"</string>
     <string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> isexwayiso sedatha / <xliff:g id="ID_2">^2</xliff:g> umkhawulo wedatha"</string>
-    <string name="operator_warning" msgid="5672761970087591211">"Ukubalwa kwedatha yenkampani yenethiwekhi kungahluka kusuka ekubaleni kwedivayisi"</string>
     <string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ayifaki phakathi idatha esetshenziswe izinkampani zenethiwekhi"</string>
     <string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> okusetshenzisiwe"</string>
     <string name="set_data_warning" msgid="1685771882794205462">"Setha isexwayiso sedatha"</string>
@@ -3834,7 +4017,6 @@
     <string name="no_carrier_update_text" msgid="5432798085593055966">"Kubuyekezwe nge-<xliff:g id="ID_1">^2</xliff:g> edlule"</string>
     <string name="carrier_and_update_now_text" msgid="5075861262344398849">"Kubuyekezwe i-<xliff:g id="ID_1">^1</xliff:g> khona manje"</string>
     <string name="no_carrier_update_now_text" msgid="7898004907837200752">"Kusandwa ukubuyekezwa"</string>
-    <string name="launch_mdp_app_text" msgid="8791816789749304897">"Buka uhlelo"</string>
     <string name="launch_wifi_text" msgid="976421974332512894">"Buka imininingwane"</string>
     <string name="data_saver_title" msgid="2593804270788863815">"Iseva yedatha"</string>
     <string name="unrestricted_data_saver" msgid="7922563266857367495">"Idatha engakhawulelwe"</string>
@@ -3865,6 +4047,7 @@
     <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>
+    <string name="battery_usage_anomaly_content_description" msgid="3199380151630770476">"Ukusetshenziswa kwebhethri okudidayo"</string>
     <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>
@@ -3933,7 +4116,6 @@
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Othayela bonjiniyela bezilungiselelo ezisheshayo"</string>
     <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Khubaza ukugunyazwa isikhathi sokuvala se-adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Khubaza ukuhoxiswa okuzenzakalelayo kokugunyazwa kwe-adb kwamasistimu angazange aphinde axhume phakathi kokuzenzekelayo (izinsuku esingu-7) noma alungiselelwe ngumsebenzisi (usuku olungu-1 ubuncane) ngenani lesikhathi."</string>
-    <string name="winscope_trace_quick_settings_title" msgid="4104768565053226689">"Ukulandelelwa kwe-Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Izinzwa zivaliwe"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Amasethingi ephrofayela yomsebenzi"</string>
     <string name="managed_profile_contact_search_title" msgid="6562061740814513737">"Sesha oxhumana nabo bohla lwemibhalo lomsebenzi kuma-app womuntu siqu"</string>
@@ -3963,7 +4145,7 @@
     <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>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"Swayiphela phezulu usuka ekhoneni elingezansi ukuze uncenge i-app yakho yomsizi wedijithali"</string>
     <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>
@@ -4123,21 +4305,30 @@
     <string name="autofill_app" msgid="7595308061826307921">"Isevisi yokugcwalisa ngokuzenzekela"</string>
     <string name="default_autofill_app" msgid="372234803718251606">"Isevisi yokugcwalisa okuzenzakalelayo"</string>
     <string name="autofill_passwords" msgid="6708057251459761083">"Amaphasiwedi"</string>
-    <string name="credman_chosen_app_title" msgid="4547405511458518096">"Amaphasiwedi, okhiye bokudlula namasevisi edatha"</string>
+    <!-- no translation found for credman_chosen_app_title (7735183808067729319) -->
+    <skip />
     <string name="credman_credentials" msgid="4931371941253324143">"Abahlinzeki abangeziwe"</string>
     <string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{iphasiwedi e-#}one{amaphasiwedi angu-#}other{amaphasiwedi angu-#}}"</string>
     <string name="autofill_keywords" msgid="8598763328489346438">"okuzenzakalelayo, gcwalisa, gcwalisa ngokuzenzakalelayo, iphasiwedi"</string>
     <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>
+    <!-- no translation found for credman_button_change (4072629639218503790) -->
+    <skip />
+    <!-- no translation found for credman_button_open (7519871964170816850) -->
+    <skip />
     <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_picker_title" msgid="2642776965060619988">"Amaphasiwedi, okhiye bokufinyelela namasevisi edatha"</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>
+    <string name="credman_confirmation_message_new_ui" msgid="6126274509951156460">"&lt;b&gt;Vala wonke amasevisi?&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; Amaphasiwedi, okhiye bokudlula, nolunye ulwazi olulondoloziwe ngeke lutholakale ukuba lufakwe ngokuzenzakalela lapho ungena ngemvume"</string>
+    <string name="credman_autofill_confirmation_message_new_ui" msgid="6222139222478822267">"&amp;;b&gt;Ishintsha isevisi oyincamelayo ukuze ithi &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 luzolondolozwa lapha kusukela manje kuya phambili. &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_enable_confirmation_message_title" msgid="1037501792652277829">"Isebenzisa i-%1$s?"</string>
+    <string name="credman_limit_error_msg_title" msgid="1525814645803612135">"Ungaba namasevisi angu-5 kuphela avuliwe"</string>
+    <string name="credman_limit_error_msg" msgid="2521803280130310063">"Vala okungenani isevisi eyodwa ukuze ufake enye"</string>
     <string name="credman_enable_confirmation_message" msgid="8407841892310870169">"I-%1$s isebenzisa okusesikrinini sakho ukuze inqume ukuthi yini engagcwaliswa ngokuzenzekela."</string>
-    <string name="credman_error_message_title" msgid="4741457523969373713">"Amaphasiwedi, okhiye bokudlula nomkhawulo wamasevisi edatha"</string>
-    <string name="credman_error_message" msgid="6793314648458925172">"Ungaba namaphasiwedi ama-5, okhiye bokudlula namasevisi edatha asebenzayo ngesikhathi esifanayo. Vala isevisi ukuze wengeze okwengeziwe."</string>
+    <string name="credman_error_message_title" msgid="4099557206946333568">"Amaphasiwedi, okhiye bokudlula nomkhawulo wamasevisi edatha"</string>
+    <string name="credman_error_message" msgid="8334797097200415449">"Ungaba namaphasiwedi afika kwama-5, okhiye bokudlula namasevisi edatha asebenzayo ngesikhathi esifanayo. Vala isevisi ukuze ufake okwengeziwe."</string>
     <string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Vala"</string>
     <string name="debug_autofill_category" msgid="5998163555428196185">"Ukugcwalisa okuzenzakalelayo"</string>
     <string name="autofill_logging_level_title" msgid="3733958845861098307">"Ileveli lokuloga"</string>
@@ -4194,6 +4385,7 @@
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"Izinguquko zokuhambelana kohlelo lokusebenza zingalungiswa kuphela kuzinhlelo zokusebenza ezingalungiswa amaphutha. Faka uhlelo lokusebenza olungalungiswa amaphutha bese uzama futhi"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"Kuncike kwesinye isilungiselelo"</string>
     <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"I-Akhawunti"</string>
+    <string name="my_device_info_account_preference_summary" msgid="3510582677937510545">"ama-akhawunti angu-%d"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"Igama ledivayisi"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"Ulwazi oluyisisekelo"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"Ezomthetho nokubusayo"</string>
@@ -4207,6 +4399,7 @@
     <string name="change_nfc_tag_apps_detail_summary" msgid="3338220223868942195">"Vumela le-app ukuthi iqalise uma umaka we-NFC uskeniwe.\nUma le mvume ivuliwe, i-app izotholakala njengokukhethwa kukho noma kunini uma kutholwa umaka."</string>
     <string name="media_output_title" msgid="8283629315159510680">"Dlala imidiya ku-"</string>
     <string name="media_output_label_title" msgid="4139048973886819148">"Ukudlala i-<xliff:g id="LABEL">%s</xliff:g> kuvuliwe"</string>
+    <string name="media_output_title_without_playing" msgid="3339321669132875821">"Umsindo uzodlala"</string>
     <string name="media_output_default_summary" msgid="4200343059396412376">"Le divayisi"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="475188726850090363">"Akutholakali ngesikhathi samakholi"</string>
     <string name="take_call_on_title" msgid="1159417893879946757">"Thatha ikholi ku-"</string>
@@ -4220,7 +4413,6 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3939350522269337013">"Thulisa"</string>
     <string name="prevent_ringing_option_unavailable_lpp_summary" msgid="8070356204398144241">"Ukuze unike amandla, qala ngokushintsha okuthi \"Cindezela futhi ubambe inkinobho yamandla\" kube yimenyu yamandla."</string>
     <string name="pref_title_network_details" msgid="7329759534269363308">"Imininingwane yenethiwekhi"</string>
-    <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Igama ledivayisi yakho libonakala kuma-app efonini yakho. Lingase futhi libonwe abanye abantu lapho uxhuma kumadivayisi we-Bluetooth, uxhuma kunethiwekhi ye-Wi-Fi noma usetha i-hotspot ye-Wi-Fi."</string>
     <string name="devices_title" msgid="649715719278562515">"Amadivayisi"</string>
     <string name="choose_network_title" msgid="5355609223363859430">"Khetha inethiwekhi"</string>
     <string name="network_disconnected" msgid="8281188173486212661">"Inqamukile"</string>
@@ -4303,11 +4495,12 @@
     <string name="mobile_network_sim_name_label" msgid="1452440641628369625">"Igama"</string>
     <string name="mobile_network_sim_color_label" msgid="5293944087609632340">"Umbala (usetshenziswe izinhlelo zokusebenza ezihambisanayo)"</string>
     <string name="mobile_network_sim_name_rename" msgid="5967588549571582924">"Londoloza"</string>
-    <string name="mobile_network_use_sim_on" msgid="7298332437547707908">"Sebenzisa i-SIM"</string>
+    <string name="mobile_network_use_sim_on" msgid="5333182776279917886">"Sebenzisa le SIM"</string>
     <string name="mobile_network_use_sim_off" msgid="6303281166199670639">"Valiwe"</string>
     <string name="mobile_network_disable_sim_explanation" msgid="2851862257846773796">"Ukuze ukhubaze le SIM, susa ikhadi le-SIM"</string>
     <string name="mobile_network_tap_to_activate" msgid="4139979375717958102">"Thepha ukuze usebenzise i-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="mobile_network_erase_sim" msgid="4629071168032714930">"Sula i-SIM"</string>
+    <!-- no translation found for mobile_network_erase_sim (5387971155494245850) -->
+    <skip />
     <string name="preferred_network_mode_title" msgid="3083431168988535628">"Uhlobo lwenethiwekhi oluncamelayo"</string>
     <string name="preferred_network_mode_summary" msgid="537577807865497546">"Shintsha imodi esebenzayo yenethiwekhi"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="4179420486180351631">"Uhlobo lwenethiwekhi oluncamelayo"</string>
@@ -4326,6 +4519,40 @@
     <string name="roaming_check_price_warning" msgid="5876977438036791361">"Hlola ngomhlinzeki wakho wenethiwekhi ukuze uthole intengo."</string>
     <string name="mobile_data_usage_title" msgid="2047864499317759728">"Ukusetshenziswa kwedatha yohlelo lokusebenza"</string>
     <string name="mobile_network_mode_error" msgid="9222056129897416074">"Imodi yenethiwekhi engavumelekile <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ziba."</string>
+    <!-- no translation found for satellite_setting_title (2543034229989047673) -->
+    <skip />
+    <!-- no translation found for satellite_setting_enabled_summary (3554127722727530845) -->
+    <skip />
+    <!-- no translation found for satellite_setting_disabled_summary (6789122487534159857) -->
+    <skip />
+    <!-- no translation found for keywords_satellite_setting (3312183289776517695) -->
+    <skip />
+    <!-- no translation found for category_name_about_satellite_messaging (3756205049485508340) -->
+    <skip />
+    <!-- no translation found for title_about_satellite_setting (9212860038048311345) -->
+    <skip />
+    <!-- no translation found for category_title_your_satellite_plan (3017895097366691841) -->
+    <skip />
+    <!-- no translation found for title_have_satellite_plan (2048372355699977947) -->
+    <skip />
+    <!-- no translation found for title_no_satellite_plan (2876056203035197505) -->
+    <skip />
+    <!-- no translation found for summary_add_satellite_setting (3815254731634052432) -->
+    <skip />
+    <!-- no translation found for category_name_how_it_works (585303230539269496) -->
+    <skip />
+    <!-- no translation found for title_satellite_connection_guide (3294802307913609072) -->
+    <skip />
+    <!-- no translation found for summary_satellite_connection_guide (3496123195218418456) -->
+    <skip />
+    <!-- no translation found for title_supported_service (4275535165812691571) -->
+    <skip />
+    <!-- no translation found for summary_supported_service (4320535903444834786) -->
+    <skip />
+    <!-- no translation found for satellite_setting_summary_more_information (4008690241760925372) -->
+    <skip />
+    <!-- no translation found for more_about_satellite_messaging (3385673133561348509) -->
+    <skip />
     <string name="mobile_network_apn_title" msgid="5582995550142073054">"Amagama wephoyinti lokufinyelela"</string>
     <string name="keywords_access_point_names" msgid="8174967126858505945">"i-apn"</string>
     <string name="manual_mode_disallowed_summary" msgid="4243142645520152175">"Ayitholakali uma ixhumeke ku-<xliff:g id="CARRIER">%1$s</xliff:g>"</string>
@@ -4335,9 +4562,12 @@
     <string name="sim_action_switch_sub_dialog_title" msgid="9180969453358718635">"Shintshela ku-<xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
     <string name="sim_action_switch_psim_dialog_title" msgid="5613177333235213024">"Shintshela ekusebenziseni iSIM card lakho?"</string>
     <string name="sim_action_switch_sub_dialog_mep_title" msgid="933856847099933004">"Sebenzisa i-<xliff:g id="CARRIER_NAME">%1$s</xliff:g>?"</string>
-    <string name="sim_action_switch_sub_dialog_text" msgid="2091834911153293004">"I-SIM eyodwa kuphela engeziwa isebenze ngesikhathi esithile.\n\nUkushintshela ku-<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ngeke kuze kukhansele isevisi yakho ye-<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_downloaded" msgid="8977951796005849471">"I-eSIM e-1 kuphela engenziwa isebenze ngesikhathi.\n\nUkushintshela ku-<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g> ngeke kukhansele isevisi yakho ye-<xliff:g id="FROM_CARRIER_NAME">%2$s</xliff:g>."</string>
-    <string name="sim_action_switch_sub_dialog_text_single_sim" msgid="6188750682431170845">"I-SIM eyodwa kuphela engenziwa isebenze ngesikhathi.\n\nUkushintsha ngeke kukhansele isevisi yakho ye-<xliff:g id="TO_CARRIER_NAME">%1$s</xliff:g>."</string>
+    <!-- no translation found for sim_action_switch_sub_dialog_text (7474905814976249607) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_downloaded (6415848271400253954) -->
+    <skip />
+    <!-- no translation found for sim_action_switch_sub_dialog_text_single_sim (421658355882679837) -->
+    <skip />
     <string name="sim_action_switch_sub_dialog_mep_text" msgid="8348764755143679582">"Ungasebenzisa ama-SIM ama-2 noma kunini. Ukuze usebenzise i-<xliff:g id="CARRIER_NAME">%1$s</xliff:g>, vala enye i-SIM."</string>
     <string name="sim_action_switch_sub_dialog_confirm" msgid="1901181581944638961">"Shintshela ku-<xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
     <string name="sim_action_switch_sub_dialog_carrier_list_item_for_turning_off" msgid="5392037608705799522">"Vala i-<xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
@@ -4359,8 +4589,32 @@
     <string name="sim_action_no_thanks" msgid="435717748384544195">"Cha ngiyabonga"</string>
     <string name="sim_action_cancel" msgid="2668099867029610910">"Khansela"</string>
     <string name="sim_switch_button" msgid="1405772571706095387">"Shintsha"</string>
+    <string name="sim_action_turn_off" msgid="3506698692916473000">"Vala"</string>
     <string name="dsds_activation_failure_title" msgid="4467364110584914794">"Akukwazi ukwenza i-SIM isebenze"</string>
     <string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Zama ukuvula i-SIM futhi. Inkinga iyaqhubeka, qala kabusha idivayisi yakho."</string>
+    <string name="sim_onboarding_bottomsheets_title" msgid="143711121394213711">"Setha i-SIM yakho"</string>
+    <string name="sim_onboarding_bottomsheets_msg" msgid="7367245016476460849">"Setha okuncamelayo kwenethiwekhi yakho yeselula ukuze usebenzise ama-SIM amaningi kule divayisi"</string>
+    <string name="sim_onboarding_label_sim_title" msgid="273162565849288273">"Lebula ama-SIM wakho"</string>
+    <string name="sim_onboarding_label_sim_msg" msgid="5105859235219529056">"Uzobona lawa malebula lapho wenza amakholi, uthumela imiyalezo, futhi usebenzisa idatha, futhi Nakumasethingi"</string>
+    <string name="sim_onboarding_label_sim_dialog_title" msgid="5839073125605286120">"Ilebula ye-SIM"</string>
+    <string name="sim_onboarding_label_sim_dialog_label" msgid="9020433985426525185">"Ilebula"</string>
+    <string name="sim_onboarding_select_sim_title" msgid="5895262188167744055">"Khetha ukuthi yimaphi ama-SIM ongawasebenzisa"</string>
+    <string name="sim_onboarding_select_sim_msg" msgid="5638859405391915048">"Ungasebenzisa ama-SIM angu-2 ngesikhathi"</string>
+    <string name="sim_onboarding_primary_sim_title" msgid="2793090401371135675">"Setha ama-SIM wakho ayinhloko"</string>
+    <string name="sim_onboarding_primary_sim_msg" msgid="5484656671490558032">"Khetha ukuthi yimaphi ama-SIM ongawasebenzisa ngokuzenzakalelayo kumakholi, ekuthumeleni imiyalezo, nedatha"</string>
+    <string name="primary_sim_title" msgid="2508161011657571566">"Ama-SIM wakho ayinhloko"</string>
+    <string name="primary_sim_calls_title" msgid="4961189133582615685">"Amakholi"</string>
+    <string name="primary_sim_texts_title" msgid="1287584042733097749">"Ukuthumela imiyalezo"</string>
+    <string name="primary_sim_automatic_data_title" msgid="1265528923229642480">"Ukushintsha idatha okuzenzekelayo"</string>
+    <string name="primary_sim_automatic_data_msg" msgid="1612203837010785203">"Sebenzisa idatha evela kunoma iyiphi i-SIM kuye ngokukhava nokutholakala"</string>
+    <string name="sim_onboarding_phoneNumber_data_only" msgid="8158409121949373662">"Idatha kuphela"</string>
+    <string name="sim_onboarding_setup" msgid="5750393553605388463">"Setha"</string>
+    <string name="sim_onboarding_next" msgid="6415025179929475355">"Okulandelayo"</string>
+    <!-- no translation found for sim_onboarding_progressbar_turning_sim_on (1163318788393361574) -->
+    <skip />
+    <string name="mobile_network_spn_title" msgid="3053793174495329077">"Inethiwekhi yeselula"</string>
+    <string name="mobile_network_phone_number_title" msgid="2090794402855021784">"Inombolo yefoni"</string>
+    <string name="mobile_network_sim_label_color_title" msgid="2401352348041132876">"Ilebula ye-SIM nombala"</string>
     <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ukwenziwa kusebenze kwenethiwekhi"</string>
     <string name="sim_switch_channel_id" msgid="4927038626791837861">"Ukushintsha inkampani yenethiwekhi"</string>
     <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"I-<xliff:g id="CARRIER_NAME">%1$s</xliff:g> iyasebenza"</string>
@@ -4380,11 +4634,15 @@
     <string name="switch_sim_dialog_no_switch_text" msgid="7053939850026876088">"Ukuze usebenzise idatha yeselula, izici zokushaya, ne-MMS kamuva, iya kuzilungiselelo zakho zenethiwekhi"</string>
     <string name="sim_card_label" msgid="6263064316075963775">"I-SIM"</string>
     <string name="erase_sim_dialog_title" msgid="4742077437653028326">"Sula le eSIM?"</string>
-    <string name="erase_sim_dialog_text" msgid="753031064269699885">"Ukusula le-SIM kususa isevisi ye-<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> kusukela kule divayisi.\n\nIsevisi ye-<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ngeke ize ikhanselwe."</string>
+    <!-- no translation found for erase_sim_dialog_text (1406141218170595272) -->
+    <skip />
     <string name="erase_sim_confirm_button" msgid="8309115684335320541">"Sula"</string>
-    <string name="erasing_sim" msgid="7877703231075699139">"Isula i-SIM…"</string>
-    <string name="erase_sim_fail_title" msgid="2024446702985862427">"Ayikwazi ukusula i-SIM"</string>
-    <string name="erase_sim_fail_text" msgid="7870804401227483131">"Le SIM ayikwazi ukusulwa ngenxa yephutha.\n\nQala kabusha idivayisi yakho uphinde uzame futhi."</string>
+    <!-- no translation found for erasing_sim (4237180547590463930) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_title (1445700500168357303) -->
+    <skip />
+    <!-- no translation found for erase_sim_fail_text (6898841004987411547) -->
+    <skip />
     <string name="network_connection_request_dialog_title" msgid="1896186380874289434">"Xhuma kudivayisi"</string>
     <string name="network_connection_request_dialog_summary" msgid="7693038309792726170">"Uhlelo lokusebenza le-<xliff:g id="APPNAME">%1$s</xliff:g> lifuna ukusebenzisa inethiwekhi ye-Wi‑Fi ukuxhuma kudivayisi yakho"</string>
     <string name="network_connection_timeout_dialog_message" msgid="598509083077743772">"Awekho amadivayisi atholiwe. Yenza isiqinisekiso sokuthi amadivayisi avuliwe futhi ayatholakala ukuze axhumeke."</string>
@@ -4446,9 +4704,6 @@
     <string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Amakholi aphuthumayo"</string>
     <string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Amakholi aphuthumayo ngokushaya kwe-Wi-Fi awasekelwe inkampani yakho yenethiwekhi.\nIdivayisi ishintsha ngokuzenzakalela iye kunethiwekhi yeselula ukuze yenze ikholi ephuthumayo.\nAmakholi aphuthumayo akhonakala kuphela ezindaweni ezinokufakwa kweselula."</string>
     <string name="wifi_calling_summary" msgid="8566648389959032967">"Sebenzisa i-Wi‑Fi ngamakholi ukuthuthukisa ikhwalithi"</string>
-    <string name="backup_calling_settings_title" msgid="519714752900364326">"Yenza ikhophi yasenqolobaneni yokushaya ikholi"</string>
-    <string name="backup_calling_setting_summary" msgid="599493254305348733">"Uma i-<xliff:g id="BACKUP_CALLING_OPERATOR_TEXT">%1$s</xliff:g> ingatholakali noma izula, sebenzisa i-SIM yedatha yakho yeselula ukwenza amakholi we-<xliff:g id="BACKUP_CALLING_CARRIER_TEXT">%1$s</xliff:g>."</string>
-    <string name="keywords_backup_calling" msgid="8592800915478816800">"yenza ikhophi yasenqolobaneni yokushaya ikholi"</string>
     <string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Umlayezo ongenayo we-MMS"</string>
     <string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Ayikwazi ukuthumela umlayezo we-MMS"</string>
     <string name="enable_mms_notification_summary" msgid="6432752438276672500">"Thepha ukuze uvumele ukulayeza kwe-MMS ku-<xliff:g id="OPERATOR_NAME">%1$s</xliff:g> uma idatha yeselula ivaliwe"</string>
@@ -4459,6 +4714,14 @@
     <string name="work_policy_privacy_settings" msgid="2702644843505242596">"Ulwazi lwenqubomgomo yakho yomsebenzi"</string>
     <string name="work_policy_privacy_settings_summary" msgid="690118670737638405">"Izilungiselelo eziphethwe umlawuli wakho we-IT"</string>
     <string name="track_frame_time_keywords" msgid="7885340257945922239">"I-GPU"</string>
+    <string name="enable_16k_pages" msgid="5009476566957520607">"Qalisa ngosayizi wekhasi ongu-16K"</string>
+    <string name="enable_16k_pages_summary" msgid="428117226069445198">"Qalisa idivayisi ngosayizi wekhasi ongu-16K wekheneli ehambisanayo"</string>
+    <string name="confirm_enable_16k_pages_title" msgid="6751570067857011642">"Qalisa ngamakhasi angu-16KB wekheneli ehambisanayo?"</string>
+    <string name="confirm_enable_16k_pages_text" msgid="702888115148257215">"ISIXWAYISO: Amanye ama-application angase angahambisani nale modi. Idivayisi izoqalisa ngemva kokuqinisekisa."</string>
+    <string name="confirm_enable_4k_pages_title" msgid="626987400420355263">"Qalisa ngamakhasi angu-4KB wekheneli ehambisanayo?"</string>
+    <string name="confirm_enable_4k_pages_text" msgid="6168921566226074524">"Idivayisi izoqalisa ngemva kokuqinisekisa."</string>
+    <string name="toast_16k_update_failed_text" msgid="8888858987184345567">"Ihlulekile ukubuyekeza ikheneli ibe amakhasi angu-16KB ekheneli ehambisanayo."</string>
+    <string name="progress_16k_ota_title" msgid="2117218313875523741">"Yenza izinguquko"</string>
     <string name="bug_report_handler_title" msgid="713439959113250125">"Isibambi sombiko wesiphazamiso"</string>
     <string name="bug_report_handler_picker_footer_text" msgid="4935758328366585673">"Icacisa ukuthi uluphi uhlelo lokusebenza oluphatha isinqamuleli sombiko wesiphazamisi kudivayisi yakho."</string>
     <string name="personal_profile_app_subtext" msgid="5586060806997067676">"Okomuntu siqu"</string>
@@ -4512,7 +4775,7 @@
     <string name="media_controls_resume_description" msgid="3163482266454802097">"Ukuze uqalise kabusha ngokushesha ukudlala, i-media player ihlala ivuliwe Kumasethingi asheshayo"</string>
     <string name="media_controls_lockscreen_title" msgid="2188311721857512510">"Bonisa imidiya ekukhiyeni isikrini"</string>
     <string name="media_controls_lockscreen_description" msgid="3320333660404439510">"Ukuze uqalise kabusha ukudlala ngokushesha, i-media player ihlala ivuliwe ekukhiyeni isikrini"</string>
-    <string name="media_controls_recommendations_title" msgid="184225835236807677">"Bonisa izincomo zemidiya"</string>
+    <string name="media_controls_recommendations_title" msgid="3012692549413927608">"Bonisa izincomo zemidiya Zomsizi"</string>
     <string name="media_controls_recommendations_description" msgid="7596498733126824030">"Ngokususelwe kumsebenzi wakho"</string>
     <string name="media_controls_hide_player" msgid="2751439192580884015">"Fihla umdlali"</string>
     <string name="media_controls_show_player" msgid="8504571042365814021">"Bonisa umdlali"</string>
@@ -4544,8 +4807,10 @@
     <string name="sim_category_title" msgid="2341314000964710495">"SIM"</string>
     <string name="downloaded_sim_category_title" msgid="2876988650413179752">"I-eSIM"</string>
     <string name="downloaded_sims_category_title" msgid="487799905978489922">"Ama-eSIM"</string>
-    <string name="sim_category_active_sim" msgid="1503823567818544012">"Kuyasebenza"</string>
-    <string name="sim_category_inactive_sim" msgid="4068899490133820881">"Akusebenzi"</string>
+    <!-- no translation found for sim_category_active_sim (3077009911935592178) -->
+    <skip />
+    <!-- no translation found for sim_category_inactive_sim (7351553344148400450) -->
+    <skip />
     <string name="sim_category_default_active_sim" msgid="1208194173387987231">" / Okuzenzakalelayo kwe-<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="default_active_sim_calls" msgid="2390973682556353558">"amakholi"</string>
     <string name="default_active_sim_sms" msgid="8041498593025994921">"I-SMS"</string>
@@ -4701,8 +4966,8 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Umsindo ovela kumidiya ehambisanayo uba ogxile kakhulu"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Ukulandelela ikhanda"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Umsindo uyashintsha njengoba uhambisa ikhanda lakho ukuze lizwakale ngokwemvelo"</string>
-    <string name="bluetooth_details_permissions_sync_title" msgid="584337314155926373">"Vumelanisa izimvume"</string>
-    <string name="bluetooth_details_permissions_sync_summary" msgid="3426601558010545762">"Nikeza i-<xliff:g id="REMOTE_DEVICE_NAME">%1$s</xliff:g> izimvume ezifanayo ze-app ovumele ukuba zisebenze ku-<xliff:g id="LOCAL_DEVICE_NAME">%2$s</xliff:g>"</string>
+    <string name="bluetooth_details_permissions_sync_title" msgid="7277580382321003521">"Vumelanisa izimvume ezivele efonini yakho"</string>
+    <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Nikeza iwashi lakho izimvume ezifanayo ze-app ozivumele kulefoni"</string>
     <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Uhlobo Lwedivayisi Yokulalelwayo"</string>
     <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Akwaziwa"</string>
     <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Isipikha"</string>
@@ -4798,4 +5063,29 @@
     <string name="contrast_medium" msgid="384414510709285811">"Okuphakathi"</string>
     <string name="contrast_high" msgid="3988567609694797696">"Phezulu"</string>
     <string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Le-app ingavulwa kuphela ewindini eli-1."</string>
+    <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ivuliwe"</string>
+    <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Ivaliwe"</string>
+    <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Ivaliwe"</string>
+    <string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Valiwe"</string>
+    <string name="daltonizer_state_on" msgid="131013270022603983">"Vuliwe"</string>
+    <string name="daltonizer_state_off" msgid="1162285688069856179">"Valiwe"</string>
+    <string name="color_inversion_state_on" msgid="1160969033636440368">"Vuliwe"</string>
+    <string name="color_inversion_state_off" msgid="6925638668080451724">"Valiwe"</string>
+    <string name="color_inversion_feature_summary" msgid="1199876648549627647">"Ishintsha izikrini ezikhanyayo zibe mnyama nezikrini ezimnyama zikhanye"</string>
+    <string name="magnification_feature_summary" msgid="2053971569640663564">"Sondeza isithombe esikrinini"</string>
+    <string name="autoclick_disabled" msgid="3213396804955002120">"Valiwe"</string>
+    <string name="show_captions_disabled" msgid="690650956523818755">"Valiwe"</string>
+    <string name="show_captions_enabled" msgid="7089043007924626">"Vuliwe"</string>
+    <string name="live_caption_disabled" msgid="3562035026547887366">"Valiwe"</string>
+    <string name="live_caption_enabled" msgid="5269360946200718949">"Vuliwe"</string>
+    <string name="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>
+    <string name="accessibility_setup_password_complete" msgid="6358749253318369077">"Iphasiwe manje isethiwe"</string>
 </resources>
diff --git a/res/values/accessibility_shortcut_keys.xml b/res/values/accessibility_shortcut_keys.xml
new file mode 100644
index 0000000..0d409a8
--- /dev/null
+++ b/res/values/accessibility_shortcut_keys.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.
+  -->
+
+<resources>
+    <string name="accessibility_shortcut_volume_keys_pref" translatable="false">shortcut_volume_keys_pref</string>
+    <string name="accessibility_shortcut_gesture_pref" translatable="false">shortcut_gesture_pref</string>
+    <string name="accessibility_shortcut_nav_button_pref" translatable="false">shortcut_nav_button_pref</string>
+    <string name="accessibility_shortcut_fab_pref" translatable="false">shortcut_fab_pref</string>
+    <string name="accessibility_shortcut_triple_tap_pref" translatable="false">shortcut_triple_tap_pref</string>
+    <string name="accessibility_shortcut_two_fingers_double_tap_pref" translatable="false">shortcut_two_fingers_double_tap_pref</string>
+    <string name="accessibility_shortcuts_advanced_collapsed" translatable="false">advanced_shortcuts_collapsed</string>
+</resources>
\ No newline at end of file
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 1ab9876..0e35fed 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -233,6 +233,26 @@
 
     <!-- Bluetooth Settings -->
 
+    <!-- Bluetooth developer settings: Bluetooth LE Audio modes -->
+    <string-array name="bluetooth_leaudio_mode">
+        <!-- Do not translate. -->
+        <item>Disabled</item>
+        <!-- Do not translate. -->
+        <item>Unicast</item>
+        <!-- Do not translate. -->
+        <item>Unicast and Broadcast</item>
+    </string-array>
+
+    <!-- Values for Bluetooth LE Audio mode -->
+    <string-array name="bluetooth_leaudio_mode_values" translatable="false">
+        <!-- Do not translate. -->
+        <item>disabled</item>
+        <!-- Do not translate. -->
+        <item>unicast</item>
+        <!-- Do not translate. -->
+        <item>broadcast</item>
+    </string-array>
+
     <!-- Bluetooth developer settings: Titles for maximum number of connected audio devices -->
     <string-array name="bluetooth_max_connected_audio_devices">
         <item>Use System Default: <xliff:g id="default_bluetooth_max_connected_audio_devices">%1$d</xliff:g></item>
@@ -872,15 +892,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 +1431,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. -->
@@ -1465,4 +1479,42 @@
         <item>@string/battery_app_item_hint_in_fg</item>
     </string-array>
 
+    <!-- A locale list of not supporting Terms of Address. [DO NOT TRANSLATE] -->
+    <string-array name="terms_of_address_unsupported_locales">
+        <item>fr-CA</item> <!-- French (Canada) -->
+    </string-array>
+
+    <!-- A language list of supporting Terms of Address. [DO NOT TRANSLATE] -->
+    <string-array name="terms_of_address_supported_languages">
+        <item>fr</item> <!-- French -->
+    </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>
+
+    <!-- Entries for private space auto lock option -->
+    <string-array name="private_space_auto_lock_options">
+        <item>@string/private_space_auto_lock_every_time</item>
+        <item>@string/private_space_auto_lock_after_inactivity</item>
+        <item>@string/private_space_auto_lock_never</item>
+    </string-array>
+
+    <!-- Values for private space auto lock option -->
+    <string-array name="private_space_auto_lock_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..03225a5 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 -->
 
@@ -141,6 +137,8 @@
     <color name="SIM_dark_mode_color_pink">#ffff8bcb</color> <!-- Material Pink 300 -->
     <color name="SIM_dark_mode_color_orange">#fffcad70</color> <!-- Material Orange 300 -->
 
+    <!-- Accessibility colors -->
+    <color name="accessibility_text_reading_background">@android:color/white</color>
     <!-- Accessibility Settings icon background colors -->
     <color name="accessibility_feature_background">#5F6368</color> <!-- Google grey 700 -->
     <color name="accessibility_magnification_background">#F50D60</color>
@@ -173,6 +171,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
old mode 100755
new mode 100644
index 17c3398..433620d
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -38,8 +38,14 @@
     <!-- Whether to show Camera laser sensor switch in Developer Options -->
     <bool name="config_show_camera_laser_sensor">false</bool>
 
-    <!-- Fully-qualified class name for the implementation of the FeatureFactory to be instantiated. -->
-    <string name="config_featureFactory" translatable="false">com.android.settings.overlay.FeatureFactoryImpl</string>
+    <!-- Intent action to open Avatar Picker app -->
+    <string name="config_avatar_picker_action" translatable="false">
+        com.android.avatarpicker.FULL_SCREEN_ACTIVITY
+    </string>
+    <!-- User avatar dialog result broadcast explicit package -->
+    <string name="config_avatar_picker_package" translatable="false">
+        com.android.avatarpicker
+    </string>
 
     <!-- Package name and fully-qualified class name for the wallpaper picker activity. -->
     <string name="config_wallpaper_picker_package" translatable="false">com.android.settings</string>
@@ -229,6 +235,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.
@@ -258,9 +267,6 @@
         com.android.settings.intelligence
     </string>
 
-    <!-- Whether the confirmation for sim deletion is defaulted to be on or off-->
-    <bool name="config_sim_deletion_confirmation_default_on">false</bool>
-
     <!-- Package Installer package name -->
     <string name="config_package_installer_package_name" translatable="false">
         com.android.packageinstaller
@@ -349,9 +355,6 @@
          Fetch resource from overlay package directly if this is set. -->
     <string name="config_regulatory_info_overlay_package_name" translatable="false" />
 
-    <!-- Whether to show a preference item for mobile plan -->
-    <bool name="config_show_mobile_plan">true</bool>
-
     <!-- Whether none security option is hide or not  (country specific). -->
     <bool name="config_hide_none_security_option">false</bool>
 
@@ -529,8 +532,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. -->
@@ -689,6 +696,9 @@
     <!-- Whether to enable the advanced vpn feature. The default is not to. -->
     <bool name="config_advanced_vpn_enabled">false</bool>
 
+    <!-- Whether to show the VPN options menu. The default is to show it. -->
+    <bool name="config_show_vpn_options">true</bool>
+
     <!-- An array of uid name for which packages exempt from Wi-Fi permission check. -->
     <string-array name="config_exempt_wifi_permission_uid_name" translatable="false">
         <item>@string/config_settingsintelligence_package_name</item>
@@ -746,14 +756,49 @@
     <!-- 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"/>
 
     <!-- List of MVNO. Do not translate -->
     <integer-array name="datausage_hiding_carrier_service_carrier_id" translatable="false"/>
+
+    <!-- App locale change intent action-->
+    <string name ="config_app_locale_intent_action" translatable="false" />
+
+    <!-- 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>
+
+    <!-- Package responsible for updating Mainline Modules -->
+    <string name="config_mainline_module_update_package" translatable="false">com.android.vending</string>
+
+    <!-- Whether location services setting is available or not. -->
+    <bool name="config_show_location_services">true</bool>
+
+    <!-- Whether to disable location toggle for ChromeOS devices-->
+    <bool name="config_disable_location_toggle_for_chrome">false</bool>
+
+    <!-- Whether to display pSIM conversion menu in Settings.-->
+    <bool name="config_psim_conversion_menu_enabled">false</bool>
+
+    <!-- Array of carrier id to allow the pSIM conversion-->
+    <integer-array name="config_psim_conversion_menu_enabled_carrier" translatable="false">
+    </integer-array>
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 9703124..3e0b8d9 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>
@@ -169,6 +165,34 @@
     <item name="face_preview_scale" format="float" type="dimen">1.0</item>
     <dimen name="face_enroll_intro_illustration_margin_bottom">0dp</dimen>
 
+    <!-- Keyboard -->
+    <dimen name="keyboard_picker_margin_large">68dp</dimen>
+    <dimen name="keyboard_picker_margin">24dp</dimen>
+    <dimen name="keyboard_picker_margin_small">16dp</dimen>
+    <dimen name="keyboard_picker_radius">28dp</dimen>
+    <dimen name="keyboard_picker_text_size">16sp</dimen>
+
+    <!-- RemoteAuth-->
+    <dimen name="remoteauth_fragment_padding_horizontal">40dp</dimen>
+    <dimen name="remoteauth_fragment_subtitle_text_size">14sp</dimen>
+    <dimen name="remoteauth_icon_small_size">24dp</dimen>
+    <dimen name="remoteauth_touchable_area_minimum_span">48dp</dimen>
+    <dimen name="remoteauth_padding_horizontal">24dp</dimen>
+    <dimen name="remoteauth_device_name_text_size">20sp</dimen>
+    <dimen name="remoteauth_device_vertical_margin">12dp</dimen>
+    <dimen name="remoteauth_introduction_fragment_padding_horizontal">30dp</dimen>
+    <dimen name="remoteauth_introduction_description_start_margin">8dp</dimen>
+    <dimen name="remoteauth_introduction_subheading_text_size">18sp</dimen>
+    <dimen name="remoteauth_carousel_progress_margin">28dp</dimen>
+    <dimen name="remoteauth_carousel_progress_circle_diameter">8dp</dimen>
+    <dimen name="remoteauth_carousel_progress_circle_margin">4dp</dimen>
+    <dimen name="remoteauth_enrolling_authenticator_vertical_margin">12dp</dimen>
+    <dimen name="remoteauth_enrolling_authenticator_horizontal_margin">16dp</dimen>
+    <dimen name="remoteauth_enrolling_progress_bar_size">16dp</dimen>
+    <dimen name="remoteauth_settings_top_margin">22dp</dimen>
+    <dimen name="remoteauth_settings_device_horizontal_margin">16dp</dimen>
+
+
     <!-- Lock pattern view size, align sysui biometric_auth_pattern_view_size -->
     <dimen name="biometric_auth_pattern_view_size">348dp</dimen>
     <dimen name="biometric_auth_pattern_view_max_size">@dimen/biometric_auth_pattern_view_size</dimen>
@@ -205,6 +229,16 @@
     <dimen name="message_metadata_top_padding">4dp</dimen>
     <dimen name="message_icon_inset">11dp</dimen>
 
+    <!-- Text Reading Settings -->
+    <dimen name="text_reading_preview_layout_padding_horizontal_min">
+        @*android:dimen/list_item_padding_start_material</dimen>
+    <dimen name="text_reading_preview_background_padding_horizontal_min">18dp</dimen>
+
+    <dimen name="text_reading_preview_layout_padding_horizontal_min_suw">
+        @dimen/text_reading_preview_layout_padding_horizontal_min</dimen>
+    <dimen name="text_reading_preview_background_padding_horizontal_min_suw">
+        @dimen/text_reading_preview_background_padding_horizontal_min</dimen>
+
     <!-- Accessibility Settings -->
     <dimen name="accessibility_layout_margin_start_end">16dp</dimen>
     <dimen name="accessibility_imageview_size">176dp</dimen>
@@ -218,11 +252,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>
 
@@ -371,7 +400,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>
@@ -429,7 +458,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>
@@ -441,4 +470,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 7fe1daa..78900bc 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -41,9 +41,13 @@
     <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
     <string name="show_dev_already">No need, you are already a developer.</string>
 
-    <!-- [CHAR LIMIT=NONE] Toast message when user attemps to launch developer otions before enabling it. -->
+    <!-- [CHAR LIMIT=NONE] Toast message when user attempts to launch developer options before enabling it. -->
     <string name="dev_settings_disabled_warning">Please enable developer options first.</string>
 
+    <!-- [CHAR LIMIT=NONE] Toast message when non-admin user attempts to launch developer options. -->
+    <string name="dev_settings_available_to_admin_only_warning">Only the admin users can access developer settings.</string>
+
+
     <!-- Category headings in left-pane header menu --> <skip />
     <!-- Settings main menu category heading. System (Updates, data, accessibility, about phone). [CHAR LIMIT=40] -->
     <string name="header_category_system">System</string>
@@ -88,6 +92,11 @@
     <string name="selective_stay_awake_title">Only games, videos, and more</string>
     <!-- Summary for selective stay awake radio button. [CHAR_LIMIT=NONE] -->
     <string name="selective_stay_awake_summary">Front display turns on for apps that stop your screen going idle</string>
+    <!-- Title for fold grace period radio button that, on fold, goes to the lockscreen. [CHAR_LIMIT=NONE] -->
+    <string name="stay_awake_on_lockscreen_title">Swipe up to continue</string>
+    <!-- Summary for folding grace period radio button that, on fold, goes to the lockscreen. [CHAR_LIMIT=NONE] -->
+    <string name="stay_awake_on_lockscreen_summary">Fold your phone and swipe up on the front display to continue using the app, or wait a few seconds for the screen to lock</string>
+
     <!-- Title for sleep on fold radio button. [CHAR_LIMIT=NONE] -->
     <string name="sleep_on_fold_title">Never</string>
     <!-- Summary for sleep on fold radio button. [CHAR_LIMIT=NONE] -->
@@ -160,10 +169,10 @@
     <string name="bluetooth_ringtone_title">Ringtone and alarms</string>
     <!-- Bluetooth audio output settings. Title of the option managing call audio path. [CHAR LIMIT=30] -->
     <string name="bluetooth_call_title">Audio during calls</string>
-    <!-- Bluetooth audio output settings. Title of the option managing media audio path. [CHAR LIMIT=30] -->
-    <string name="bluetooth_media_title">Media</string>
-    <!-- Bluetooth audio output settings. Title of the option managing system sounds related audio path. [CHAR LIMIT=60] -->
-    <string name="bluetooth_system_sounds_title">Notifications and other system sounds</string>
+    <!-- Bluetooth audio output settings. Title of the option managing media and system sounds related audio path. [CHAR LIMIT=30] -->
+    <string name="bluetooth_media_title">Media and system sounds</string>
+    <!-- Bluetooth audio output settings. Title of the option managing notification audio path. [CHAR LIMIT=60] -->
+    <string name="bluetooth_notification_title">Notifications</string>
     <!-- Description for text in accessibility hearing aids footer. [CHAR LIMIT=NONE] -->
     <string name="bluetooth_audio_routing_footer_summary">By default, audio output is determined by individual apps</string>
 
@@ -240,14 +249,15 @@
     <string name="bluetooth_disable_leaudio">Disable Bluetooth LE audio</string>
     <!-- Summary of toggle for disabling Bluetooth LE audio [CHAR LIMIT=none]-->
     <string name="bluetooth_disable_leaudio_summary">Disables Bluetooth LE audio feature if the device supports LE audio hardware capabilities.</string>
-
+    <!-- Setting toggle title for switch Bluetooth LE Audio mode. [CHAR LIMIT=40] -->
+    <string name="bluetooth_leaudio_mode">Bluetooth LE Audio mode</string>
     <!-- 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>
@@ -257,6 +267,10 @@
     <string name="connected_device_other_device_title">Other devices</string>
     <!-- Title for connected device group [CHAR LIMIT=none]-->
     <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]-->
@@ -268,6 +282,8 @@
 
     <!-- Title to see all the previous connected devices [CHAR LIMIT=50] -->
     <string name="previous_connected_see_all">See all</string>
+    <!-- Title to see all fast pair devices [CHAR LIMIT=none]-->
+    <string name="connected_device_fast_pair_device_see_all">See all</string>
 
     <!-- Title for stylus device details page [CHAR LIMIT=50] -->
     <string name="stylus_device_details_title">Stylus</string>
@@ -282,6 +298,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>
 
@@ -398,6 +432,12 @@
     <!-- Title for asking to change system locale or not. [CHAR LIMIT=50]-->
     <string name="title_change_system_locale">Change system language to %s ?</string>
 
+    <!-- The title of a confirmation dialog to indicate adding a system locale. [CHAR LIMIT=50]-->
+    <string name="title_system_locale_addition">Add %s to preferred languages?</string>
+
+    <!-- The content of a confirmation dialog indicating the impact when the user adds a system locale. [CHAR LIMIT=NONE]-->
+    <string name="desc_system_locale_addition">This lets apps and websites know you also prefer this language.</string>
+
     <!-- The text of the confirmation dialog showing the system locale will be changed. [CHAR LIMIT=NONE]-->
     <string name="desc_notice_device_locale_settings_change">Your device settings and regional preferences will change.</string>
 
@@ -452,6 +492,23 @@
     <!-- Support link for the regional preference page. [CHAR LIMIT=NONE]-->
     <string name="regional_pref_footer_learn_more_link" translatable="false">https://support.google.com/android?p=regional_preferences</string>
 
+    <!-- Category for the terms of address. [CHAR LIMIT=NONE]-->
+    <string name="category_title_terms_of_address">Additional preferences</string>
+    <!-- Preference title for the terms of address. [CHAR LIMIT=NONE]-->
+    <string name="terms_of_address_title">Terms of address</string>
+    <!-- Preference summary for the terms of address. [CHAR LIMIT=NONE]-->
+    <string name="terms_of_address_summary">Set how you want to be addressed</string>
+    <!-- The subtitle of terms of address. [CHAR LIMIT=NONE] -->
+    <string name="terms_of_address_intro_title">Apps can use your terms of address to personalize how they address you.</string>
+    <!-- The title of not specified of terms of address. [CHAR LIMIT=NONE] -->
+    <string name="terms_of_address_not_specified">Not specified</string>
+    <!-- The title of feminine of terms of address. [CHAR LIMIT=NONE] -->
+    <string name="terms_of_address_feminine">Feminine</string>
+    <!-- The title of masculine of terms of address. [CHAR LIMIT=NONE] -->
+    <string name="terms_of_address_masculine">Masculine</string>
+    <!-- The title of neutral of terms of address. [CHAR LIMIT=NONE] -->
+    <string name="terms_of_address_neutral">Neutral</string>
+
     <!-- The title of the confirmation dialog shown when the user selects one / several languages and tries to remove them [CHAR LIMIT=60] -->
     <string name="dlg_remove_locales_title">{count, plural,
       =1      {Remove selected language?}
@@ -593,8 +650,8 @@
     <string name="location_settings_summary_location_off">Off</string>
     <!-- Summary for Location settings when location is on, explaining how many apps have location permission [CHAR LIMIT=NONE]-->
     <string name="location_settings_summary_location_on">{count, plural,
-      =1      {On - # app has access to location}
-      other   {On - # apps have access to location}
+      =1      {On / # app has access to location}
+      other   {On / # apps have access to location}
     }</string>
     <!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] -->
     <string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
@@ -614,8 +671,10 @@
     </string>
     <!-- Location settings footer link content description [CHAR LIMIT=NONE] -->
     <string name="location_settings_footer_learn_more_content_description">
-        Learn more about Location Settings.
+        Learn more about Location settings
     </string>
+    <!-- Tooltip for switchbar on Chrome devices. [CHAR LIMIT=90]-->
+    <string name="location_settings_tooltip_text_for_chrome">To change location access, go to Settings > Security and Privacy > Privacy controls</string>
 
     <!-- Main Settings screen setting option title for the item to take you to the accounts screen [CHAR LIMIT=22] -->
     <string name="account_settings_title">Accounts</string>
@@ -753,7 +812,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>
@@ -834,11 +893,11 @@
     <!-- Title shown for menu item that launches watch unlock settings. [CHAR LIMIT=40] -->
     <string name ="security_settings_activeunlock_preference_title">Watch Unlock</string>
     <!-- Introduction shown in face and fingerprint page to introduce the biometric feature. [CHAR LIMIT=NONE]-->
-    <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>
+    <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\nWatch Unlock is another convenient way to unlock your phone, for example, when your fingers are wet or face 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]-->
-    <string name="biometric_settings_intro_with_face">You can unlock with your watch when your face isn\u2019t recognized.</string>
+    <string name="biometric_settings_intro_with_fingerprint">Watch Unlock is another convenient way to unlock your phone, for example, 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]-->
+    <string name="biometric_settings_intro_with_face">Watch Unlock is another convenient way to unlock your phone, for example, 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>
     <string name="biometric_settings_use_face_fingerprint_or_watch_for"> Use face, fingerprint, or watch to</string>
@@ -876,6 +935,66 @@
     <!-- Message showing that multiple fingerprints, face, and the current watch is set up. Shown for a menu item that launches fingerprint, face,  and active unlock settings or enrollment. [CHAR LIMIT=80]-->
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary">Face, fingerprints, and <xliff:g id="watch" example="Dani's Watch">%s</xliff:g> added</string>
 
+    <!-- RemoteAuth unlock enrollment and settings --><skip />
+    <!-- Title shown for menu item that launches watch unlock settings. [CHAR LIMIT=40] -->
+    <string name ="security_settings_remoteauth_preference_title">Remote Authenticator Unlock</string>
+    <!-- Message shown in summary field when remote authenticator is set up. [CHAR LIMIT=40] -->
+    <string name="security_settings_remoteauth_preference_summary">Watch added</string>
+    <!-- Strings for RemoteAuth enroll introduction page -->
+    <!-- Introduction title shown in remote enrollment to introduce the remote feature [CHAR LIMIT=29] -->
+    <string name="security_settings_remoteauth_enroll_introduction_title">Set up your watch</string>
+    <!-- Summary of the Watch Unlock feature that allows users to unlock the phone with paired watches [CHAR_LIMIT=NONE]-->
+    <string name="security_settings_remoteauth_enroll_introduction_message">Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\u2019t recognized.\n\nYou can use your watch to unlock this phone when you:</string>
+    <!-- Button text to cancel enrollment [CHAR LIMIT=30] -->
+    <string name="security_settings_remoteauth_enroll_introduction_disagree">Not now</string>
+    <!-- Button text to start enrollment [CHAR LIMIT=30] -->
+    <string name="security_settings_remoteauth_enroll_introduction_agree">Continue</string>
+    <!-- Button text to scroll to the end of a scrollview. [CHAR LIMIT=30] -->
+    <string name="security_settings_remoteauth_enroll_introduction_more">More</string>
+    <!-- Heading of the paragraph that explains how the Watch Unlock feature works [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_how_title">How it works</string>
+    <!-- Explains that paired watches must be unlocked, on-body, and nearby, in order to unlock the phone [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_info_lock_open">Your watch must be unlocked, on your wrist, and within reach of this phone. You won\u2019t need to unlock your watch again while it\u2019s on your wrist.</string>
+    <!-- Explains that users will be notified on the watch when the phone is unlocked by the watch, and they can tap on the notification to lock the phone from the watch [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_info_notifications">When this phone is unlocked, you\u2019ll get notified on your watch. If it was unlocked when you didn’t intend to, tap the notification to lock the phone again.</string>
+    <!-- Heading of the paragraph that explains how to opt out of the Watch Unlock feature [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title">You\u2019re in control</string>
+    <!-- Explains that users can prevent their watches from unlocking their phone by removing them in the Watch Unlock settings [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch">You can remove your watch from Watch Unlock at any time in Settings</string>
+    <!-- Subtitle for animation that explains users can unlock by tapping a notification [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification">Tap a notification</string>
+    <!-- Subtitle for animation that explains users can unlock by swiping up on the lock screen [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up">Swipe up on the lock screen</string>
+    <!-- Strings for RemoteAuth enroll enrolling page -->
+    <!-- Title of the screen that allows users to choose from a list of available watches to enable the Watch Unlock feature [CHAR_LIMIT=45] -->
+    <string name="security_settings_remoteauth_enroll_enrolling_title">Choose your watch</string>
+    <!-- Heading text for the list of watches available for the Watch Unlock feature [CHAR_LIMIT=40] -->
+    <string name="security_settings_remoteauth_enroll_enrolling_list_heading">Available watches</string>
+    <!-- Button text to cancel enrollment [CHAR LIMIT=30] -->
+    <string name="security_settings_remoteauth_enroll_enrolling_disagree">Cancel</string>
+    <!-- Button text to start enrollment [CHAR LIMIT=30] -->
+    <string name="security_settings_remoteauth_enroll_enrolling_agree">Confirm</string>
+    <!-- Strings for RemoteAuth enroll finish page -->
+    <!-- Title of the dialog that shows when a paired watch has been set up successfully and can be used to unlock the phone [CHAR_LIMIT=45] -->
+    <string name="security_settings_remoteauth_enroll_finish_title">You\u2019re all set!</string>
+    <!-- Explains when a paired watch can be used to unlock the phone after it has been set up successfully [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_enroll_finish_description">You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification</string>
+    <!-- Button text to finish enrollment [CHAR LIMIT=30] -->
+    <string name="security_settings_remoteauth_enroll_finish_btn_next">Done</string>
+    <!-- Strings for RemoteAuth settings page-->
+    <!-- Title for remote authenticator settings page [CHAR_LIMIT=NONE]-->
+    <string name="security_settings_remoteauth_settings_title">Watch Unlock</string>
+    <!-- Explains when a watch can be used to unlock the phone [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_settings_description">You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification</string>
+    <!-- Explains how to enable the Watch Unlock feature on a watch [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_settings_info_footer">To use Watch Unlock, your watch must be unlocked, on your wrist, within reach, and connected to this phone. If the connection is interrupted, you\u2019ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, first remove the current one.</string>
+    <!-- Links to the Watch Unlock help center article [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_settings_learn_more">Learn more about Watch Unlock</string>
+    <!-- Button text to add new watch [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_settings_register_new_authenticator">Add watch</string>
+    <!-- Accessibility label of a button that lets users remove enrolled watches from Watch Unlock settings [CHAR_LIMIT=NONE] -->
+    <string name="security_settings_remoteauth_settings_remove_device">Remove watch</string>
+
     <!-- Biometric settings --><skip />
     <!-- Title shown for menu item that launches biometric settings. [CHAR LIMIT=66] -->
     <string name="security_settings_biometric_preference_title">Fingerprint &amp; Face Unlock</string>
@@ -996,6 +1115,8 @@
     <string name="security_settings_udfps_enroll_progress_a11y_message">Enrolling fingerprint <xliff:g id="percentage" example="10">%d</xliff:g> percent</string>
     <!-- Title shown in fingerprint enrollment dialog once enrollment is completed [CHAR LIMIT=29] -->
     <string name="security_settings_fingerprint_enroll_finish_title">Fingerprint added</string>
+    <!-- Key for require screen on to auth toggle shown in fingerprint enrollment dialog once enrollment is completed. [CHAR LIMIT=NONE] -->
+    <string name="security_settings_require_screen_on_to_auth_key" translatable="false">security_settings_require_screen_on_to_auth</string>
     <!-- Title for require screen on to auth toggle shown in fingerprint enrollment dialog once enrollment is completed. [CHAR LIMIT=NONE] -->
     <string name="security_settings_require_screen_on_to_auth_title">Touch to unlock anytime</string>
     <!-- Description for require screen on to auth toggle shown in fingerprint enrollment dialog once enrollment is completed. [CHAR LIMIT=NONE] -->
@@ -1090,13 +1211,180 @@
 
     <!-- Title for the subpage in the "Security & privacy". This page consists of the more security and privacy settings. Can be navigated by Settings -> Security & privacy -> More security & privacy [CHAR LIMIT=NONE] -->
     <string name="more_security_privacy_settings">More security &amp; privacy</string>
-    <!-- Title for the section that has security entries in the More security & privacy page. [CHAR LIMIT=60] -->
+    <!-- Title for the section that has security entries in the More security & privacy page. Also used for Private Space security category. [CHAR LIMIT=60] -->
     <string name="security_header">Security</string>
     <!-- Title for the section that has privacy entries in the More security & privacy page. [CHAR LIMIT=60] -->
     <string name="privacy_header">Privacy</string>
     <!-- Title for the section that has work profile entries in the More security & privacy page. [CHAR LIMIT=60] -->
     <string name="work_profile_category_header">Work profile</string>
 
+    <!-- Title for the Private Space page. [CHAR LIMIT=60] -->
+    <string name="private_space_title">Private Space</string>
+    <!-- Summary for the Private Space page. [CHAR LIMIT=NONE] -->
+    <string name="private_space_summary">Keep private apps locked and hidden</string>
+    <!-- Description for the Private Space page. [CHAR LIMIT=NONE] -->
+    <string name="private_space_description">Keep private apps in a separate space that you can hide or lock</string>
+    <!-- Title for the Private Space one lock preference. [CHAR LIMIT=60] -->
+    <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>
+    <!-- Title for the Fingerprint preference when face hardware is not supported on device. [CHAR LIMIT=40] -->
+    <string name="private_space_fingerprint_title">Fingerprint Unlock</string>
+    <!-- Title for the Face preference when fingerprint unlock is not supported on device. [CHAR LIMIT=40] -->
+    <string name="private_space_face_title">Face 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>
+    <!-- Title for the Fingerprint unlock for private space preference. [CHAR LIMIT=60] -->
+    <string name="private_space_fingerprint_unlock_title">Fingerprint Unlock for Private Space</string>
+    <!-- Title for the Face unlock for private space preference. [CHAR LIMIT=60] -->
+    <string name="private_space_face_unlock_title">Face Unlock for Private Space</string>
+    <!-- Biometric category title - biometric options for unlocking the device. [CHAR LIMIT=50] -->
+    <string name="private_space_category_ways_to_unlock">Ways to unlock</string>
+    <!-- Summary for one lock when device screen lock is used as private profile lock. [CHAR LIMIT=40] -->
+    <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 for auto lock private space. [CHAR LIMIT=40] -->
+    <string name="private_space_auto_lock_title">Lock automatically</string>
+    <!-- Title for private space auto lock settings page. [CHAR LIMIT=50] -->
+    <string name="private_space_auto_lock_page_title">Lock private space automatically</string>
+    <!-- Description for private space auto lock settings page. [CHAR LIMIT=NONE] -->
+    <string name="private_space_auto_lock_page_summary">You can lock your private space automatically if you haven\’t used your device for a period of time</string>
+    <!-- Configure auto lock: Value for auto lock configuration to lock private space every time device locks. [CHAR LIMIT=40] -->
+    <string name="private_space_auto_lock_every_time">Every time device locks</string>
+    <!-- Configure auto lock: Value for auto lock configuration to lock private space after 5 minutes of inactivity. [CHAR LIMIT=40] -->
+    <string name="private_space_auto_lock_after_inactivity">After 5 minutes of inactivity</string>
+    <!-- Configure auto lock: Value for auto lock configuration to never lock private space. [CHAR LIMIT=20] -->
+    <string name="private_space_auto_lock_never">Never</string>
+    <!-- Title for the preference to hide Private Space. [CHAR LIMIT=60] -->
+    <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 delete Private Space. [CHAR LIMIT=40] -->
+    <string name="private_space_delete_title">Delete private space</string>
+    <!-- Title for the delete private space page. [CHAR LIMIT=40] -->
+    <string name="private_space_delete_header">Delete private space?</string>
+    <!-- Description for hide Private Space settings page. [CHAR LIMIT=NONE] -->
+    <string name="private_space_delete_summary">Your private space will be removed from your device. All private apps and data will be deleted. You can’t undo this action.</string>
+    <!-- Text for the accounts added to private space that will be removed. [CHAR LIMIT=90] -->
+    <string name="private_space_accounts">The following accounts will be removed from your private space:</string>
+    <!-- Label for private space delete button [CHAR LIMIT=30] -->
+    <string name="private_space_delete_button_label">Delete</string>
+    <!-- Title for the private space delete confirmation page. [CHAR LIMIT=40] -->
+    <string name="private_space_confirm_deletion_header">Deleting private space\u2026</string>
+    <!-- Description for private space delete confirmation page that mentions it will take a few moments. [CHAR LIMIT=40] -->
+    <string name="private_space_confirm_deletion_summary">This will take a few moments</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>
+    <!-- Toast to show when the private space is unlocked from settings entry point. [CHAR LIMIT=40] -->
+    <string name="private_space_unlocked">Private space unlocked</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 your 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="private_space_cancel_label">Cancel</string>
+    <!-- Label for private space setup button to create private space [CHAR LIMIT=30] -->
+    <string name="private_space_setup_button_label">Set up</string>
+    <!-- Title for Private Space setup education screen. [CHAR LIMIT=50] -->
+    <string name="private_space_setup_title">Set up a private space</string>
+    <!-- Summary for the private space setup education screen. [CHAR LIMIT=NONE] -->
+    <string name="private_space_hide_apps_summary">Keep private apps in a separate space that you can hide or lock</string>
+    <!-- Text shown in private space setup screen which explains how the private space works [CHAR LIMIT=50] -->
+    <string name="private_space_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="private_space_access_bottom_text">You can access your 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="private_space_protected_lock_text">Apps in your 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="private_space_hidden_notifications_text">Notifications from apps in your private space are hidden when it\u2019s locked</string>
+    <!-- This is info text to help explain in private space setup screen that the permissions granted to private space apps will not be shown in settings when private space is locked. [CHAR LIMIT=NONE] -->
+    <string name="private_space_apps_permission_text">Apps in your private space won\'t appear in permission manager, privacy dashboard, and other settings when your private space is locked.\n\nYour private space can\'t be moved to a new device. You\'ll need to set up another private space if you want to use it on another device.\n\nAnyone that connects your device to a computer or installs harmful apps on your device may be able to access your private space.</string>
+    <!-- Text shown at the bottom in private space auto advancing  screens. [CHAR LIMIT=60] -->
+    <string name="private_space_setting_up_text">Setting up private space\u2026</string>
+    <!-- Title for private space setup in auto advancing screen informing private space notifications are hidden when locked. [CHAR LIMIT=NONE] -->
+    <string name="private_space_notifications_hidden_title">Notifications from apps in private space are hidden when it\u2019s locked</string>
+    <!-- Title for private space setup in auto advancing screen informing photos/files from private space can be shared when unlocked. [CHAR LIMIT=NONE] -->
+    <string name="private_space_share_photos_title">Unlock private space to share photos or files from private space apps</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="private_space_apps_installed_title">Some apps are already installed in your private space</string>
+    <!-- Title for private space creation error screen. [CHAR LIMIT=60] -->
+    <string name="private_space_error_screen_title">Couldn\u2019t set up private space</string>
+    <!-- Label for button to retry creating private space again on creation error. [CHAR LIMIT=30] -->
+    <string name="private_space_tryagain_label">Try Again</string>
+    <!-- Title for private space lock setup screen. [CHAR LIMIT=90] -->
+    <string name="private_space_lockscreen_title">Use screen lock to unlock private space?</string>
+    <!-- Summary for the private space lock setup screen. [CHAR LIMIT=NONE] -->
+    <string name="private_space_lockscreen_summary">You can unlock your 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="private_space_use_screenlock_label">Use screen lock</string>
+    <!-- Label for private space lock setup button to choose a new lock. [CHAR LIMIT=50] -->
+    <string name="private_space_set_lock_label">Choose new lock</string>
+    <!-- Title for private space setup success screen. [CHAR LIMIT=30] -->
+    <string name="private_space_success_title">All set!</string>
+    <!-- Summary for the private space setup success screen. [CHAR LIMIT=NONE] -->
+    <string name="private_space_access_text">To access your private space, go to your apps list 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="private_space_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="private_space_scrolldown_to_access">Scroll down to find private space</string>
+    <!-- Title for private space account login error screen. [CHAR LIMIT=30] -->
+    <string name="private_space_retry_signin_title">Sign in</string>
+    <!-- Summary for the private space account login error screen. [CHAR LIMIT=NONE] -->
+    <string name="private_space_retry_summary">Sign in to an account to use with your private space</string>
+    <!-- Label for button to skip private space account sign in. [CHAR LIMIT=30] -->
+    <string name="private_space_skip_login_label">Not now</string>
+    <!-- Label for button to coninue with private space account sign in. [CHAR LIMIT=30] -->
+    <string name="private_space_continue_login_label">Continue</string>
+    <!-- private space lock setup screen title. This title is asking the user to choose a type of screen lock (such as a pattern, PIN, or password) that they need to enter to unlock private space. [CHAR LIMIT=60] -->
+    <string name="private_space_lock_setup_title">Choose a lock for your private space</string>
+    <!-- private space lock setup screen description [CHAR LIMIT=NONE] -->
+    <string name="private_space_lock_setup_description">You can unlock your private space using your fingerprint. For security, this option requires a backup lock.</string>
+    <!-- Header for private space choose your PIN screen [CHAR LIMIT=40] -->
+    <string name="private_space_choose_your_pin_header">Set a PIN for your private space</string>
+    <!-- Header for private space choose your password screen [CHAR LIMIT=40] -->
+    <string name="private_space_choose_your_password_header">Set a password for your private space</string>
+    <!-- Header for private space choose your pattern screen [CHAR LIMIT=40] -->
+    <string name="private_space_choose_your_pattern_header">Set a pattern for your 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=90] -->
+    <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=90] -->
+    <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>
     <!-- Text shown when users has enrolled a maximum number of fingerprints [CHAR LIMIT=NONE] -->
@@ -1468,7 +1756,7 @@
     <string name="bluetooth_pairing_request">Pair with <xliff:g id="device_name">%1$s</xliff:g>?</string>
 
     <!-- Message when a bluetooth device from a coordinated set is bonding late. [CHAR LIMIT=NONE] -->
-    <string name="bluetooth_pairing_group_late_bonding">Add new member to the existing coordinated set</string>
+    <string name="bluetooth_pairing_group_late_bonding">Confirm to add the second piece of your audio device</string>
 
     <!-- Message when bluetooth is informing the user of the pairing key. [CHAR LIMIT=NONE] -->
     <string name="bluetooth_pairing_key_msg">Bluetooth pairing code</string>
@@ -1491,11 +1779,17 @@
     <string name="bluetooth_enter_passkey_other_device">You may also need to type this passkey on the other device.</string>
 
     <!-- Pairing dialog text to remind user the pairing including all of the devices in a coordinated set. [CHAR LIMIT=NONE] -->
-    <string name="bluetooth_paring_group_msg">Confirm to pair with the coordinated set</string>
+    <string name="bluetooth_paring_group_msg">Confirm to pair with the audio device</string>
 
     <!-- Checkbox message in pairing dialogs.  [CHAR LIMIT=NONE] -->
     <string name="bluetooth_pairing_shares_phonebook">Allow access to your contacts and call history</string>
 
+    <!-- Phonebook sharing toggle message in pairing dialogs.  [CHAR LIMIT=NONE] -->
+    <string name="bluetooth_pairing_phonebook_toggle_text">Also allow access to contacts and call history</string>
+
+    <!-- Phonebook sharing toggle detailed message in pairing dialogs.  [CHAR LIMIT=NONE] -->
+    <string name="bluetooth_pairing_phonebook_toggle_details">Info will be used for call announcements and more</string>
+
     <!-- Title for BT error dialogs. -->
     <string name="bluetooth_error_title"></string>
 
@@ -1510,8 +1804,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]-->
@@ -1645,6 +1939,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>
@@ -1687,6 +1986,12 @@
     <string name="wifi_notify_open_networks">Notify for public networks</string>
     <!-- Checkbox summary for option to notify user when open networks are nearby-->
     <string name="wifi_notify_open_networks_summary">Notify when a high\u2011quality public network is available</string>
+    <!-- Checkbox title for option to allow user to connect to wep networks-->
+    <string name="wifi_allow_wep_networks">Allow WEP networks</string>
+    <!-- Checkbox summary for option to allow user to connect to wep networks-->
+    <string name="wifi_allow_wep_networks_summary">WEP is an older security protocol that\u0027s less secure</string>
+    <!-- Checkbox summary for option to allow user to connect to wep networks when it is blocked by carrier-->
+    <string name="wifi_allow_wep_networks_summary_carrier_not_allow">Your carrier doesn\u0027t allow WEP networks because they\u0027re less secure</string>
     <!-- Checkbox title for option to enable Wi-Fi when saved networks are nearby -->
     <string name="wifi_wakeup">Turn on Wi\u2011Fi automatically</string>
     <!-- Checkbox summary for option to enable Wi-Fi when high quality saved networks are nearby-->
@@ -1736,6 +2041,18 @@
     <string name="wifi_settings_scanning_required_turn_on">Turn on</string>
     <!-- Wi-Fi settings dialog. Text to show in toast for when user turns on wifi scanning. [CHAR LIMIT=NONE] -->
     <string name="wifi_settings_scanning_required_enabled">Wi\u2011Fi scanning turned on</string>
+    <!-- Wi-Fi settings dialog. Warning on the password entry page for a WEP network, when WEP networks are allowed. [CHAR LIMIT=NONE] -->
+    <string name="wifi_settings_warning_wep_network">This network uses an older security protocol that\u0027s less secure</string>
+    <!-- Wi-Fi settings dialog. Title of dialog displayed when WEP network is blocked. [CHAR LIMIT=NONE] -->
+    <string name="wifi_settings_wep_networks_blocked_title"><xliff:g id="name">%1$s</xliff:g> is blocked</string>
+    <!-- Wi-Fi settings dialog. Summary text of dialog displayed when WEP network toggle is turned off. [CHAR LIMIT=NONE] -->
+    <string name="wifi_settings_wep_networks_summary_toggle_off">This network uses an older security protocol called WEP, which is less secure. To connect anyway, you can allow WEP networks.</string>
+    <!-- Wi-Fi settings dialog. Summary text of dialog displayed when WEP network is blocked by the carrier. [CHAR LIMIT=NONE] -->
+    <string name="wifi_settings_wep_networks_summary_blocked_by_carrier">Your carrier doesn\u0027t allow you to connect to this network because it uses an older security protocol that’s less secure</string>
+    <!-- Wi-Fi settings dialog. Button text of dialog displayed when WEP network toggle is turned off. [CHAR LIMIT=NONE] -->
+    <string name="wifi_settings_wep_networks_button_allow">Allow WEP</string>
+    <!-- Wi-Fi settings dialog. Button text of dialog displayed when WEP network toggle is blocked. [CHAR LIMIT=NONE] -->
+    <string name="wifi_settings_ssid_block_button_close">Close</string>
 
     <!-- Dialog for Access Points --> <skip />
     <!-- Label to show/hide advanced options [CHAR LIMIT=40] -->
@@ -1881,7 +2198,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>
@@ -1929,12 +2246,8 @@
 
     <!-- Button label to connect to a Wi-Fi network -->
     <string name="wifi_connect">Connect</string>
-    <!-- Turned on notification for Wi-Fi [CHAR LIMIT=40] -->
-    <string name="wifi_turned_on_message">Wi\u2011Fi turned on</string>
     <!-- A notification for connected to a Wi-Fi network [CHAR LIMIT=NONE] -->
     <string name="wifi_connected_to_message">Connected to <xliff:g id="network_name" example="MyNetwork">%1$s</xliff:g></string>
-    <!-- A notification for connecting to a Wi-Fi network [CHAR LIMIT=NONE] -->
-    <string name="wifi_connecting_to_message">Connecting to <xliff:g id="network_name" example="MyNetwork">%1$s</xliff:g></string>
     <!-- Button label to connecting progress to a Wi-Fi network [CHAR LIMIT=20] -->
     <string name="wifi_connecting">Connecting\u2026</string>
     <!-- Failured notification for connect -->
@@ -1945,8 +2258,6 @@
     <string name="wifi_forget">Forget</string>
     <!-- Button label to modify a Wi-Fi network -->
     <string name="wifi_modify">Modify</string>
-    <!-- Failured notification for forget -->
-    <string name="wifi_failed_forget_message">Failed to forget network</string>
     <!-- Button label to save a Wi-Fi network configuration -->
     <string name="wifi_save">Save</string>
     <!-- Failured notification for save -->
@@ -2004,7 +2315,7 @@
     <!-- Ethernet summary in Internet source preference [CHAR LIMIT=NONE]-->
     <string name="internet_source_ethernet">Ethernet</string>
     <!-- Hotspot device details battery charging summary [CHAR LIMIT=NONE]-->
-    <string name="hotspot_battery_charging_summary"><xliff:g id="battery_percentage" example="80%">%s</xliff:g> \u2011 Charging</string>
+    <string name="hotspot_battery_charging_summary"><xliff:g id="battery_percentage" example="80%">%1$s</xliff:g> \u2011 Charging</string>
     <!-- Hotspot device details preference category title in Network details [CHAR LIMIT=NONE]-->
     <string name="hotspot_connection_category">Hotspot connection</string>
     <!-- Connection strength preference in Hotspot connection preference category [CHAR LIMIT=NONE]-->
@@ -2076,8 +2387,6 @@
     <string name="wifi_hotspot_name_title">Hotspot name</string>
     <!-- Label for Wifi hotspot password. -->
     <string name="wifi_hotspot_password_title">Hotspot password</string>
-    <!-- Label for Wifi hotspot AP Band. -->
-    <string name="wifi_hotspot_ap_band_title">AP Band</string>
 
     <!-- Title for the toggle to turn off hotspot automatically [CHAR LIMIT=NONE]-->
     <string name="wifi_hotspot_auto_off_title">Turn off hotspot automatically</string>
@@ -2396,10 +2705,14 @@
     <string name="display_white_balance_summary"></string>
     <!-- Display settings screen, setting option name to change Fold setting -->
     <string name="fold_lock_behavior_title">Continue using apps on fold</string>
+    <!-- Display settings screen, game default frame rate settings title [CHAR LIMIT=65] -->
+    <string name="disable_game_default_frame_rate_title">Disable default frame rate for games</string>
+    <!-- Display settings screen, game default frame rate settings summary [CHAR LIMIT=NONE] -->
+    <string name="disable_game_default_frame_rate_summary">Disable limiting the maximum frame rate for games at <xliff:g id="frame_rate" example="60">%1$d</xliff:g> Hz.</string>
     <!-- Display settings screen, peak refresh rate settings title [CHAR LIMIT=30] -->
-    <string name="peak_refresh_rate_title">Smooth Display</string>
+    <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]-->
@@ -2420,6 +2733,8 @@
     <string name="adaptive_sleep_contextual_slice_title">Turn on screen attention</string>
     <!-- Description about the contextual adaptive sleep card [CHAR LIMIT=NONE]-->
     <string name="adaptive_sleep_contextual_slice_summary">Keep screen on when looking at it</string>
+    <!-- Description about the power consumption implication in screen timeout footer [CHAR LIMIT=NONE]-->
+    <string name="power_consumption_footer_summary">Longer screen timeout will use more battery.</string>
     <!-- auto_rotate settings screen, title about the camera privacy lock enabled [CHAR LIMIT=NONE]-->
     <string name="auto_rotate_camera_lock_title">Camera is locked</string>
     <!-- Description feature's privacy sensitive details to make sure users understand what feature users, what it saves/sends etc [CHAR LIMIT=NONE]-->
@@ -2451,7 +2766,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>
@@ -2497,7 +2812,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>
@@ -2714,9 +3029,9 @@
     <string name="imei_multi_sim_primary">IMEI (sim slot <xliff:g id="imei_slot_id_primary">%1$d</xliff:g>) (primary)</string>
     <!-- About phone screen, summary of the MAC address [CHAR LIMIT=80] -->
     <string name="view_saved_network">To view, choose saved network</string>
-    <!-- Do not translate. About phone, status item title -->
+    <!-- About phone, status item title. This translation is for specific language only. Like: fr-CA -->
     <string name="status_imei">IMEI</string>
-    <!-- Do not translate. About phone, status item title -->
+    <!-- About phone, status item title. This translation is for specific language only. Like: fr-CA -->
     <string name="status_imei_sv">IMEI SV</string>
     <!-- Do not translate. About phone, status item title -->
     <string name="status_iccid">ICCID</string>
@@ -2859,8 +3174,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>
@@ -2905,7 +3220,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] -->
@@ -2958,11 +3273,17 @@
     <!-- Summary of the communal settings under Settings > Communal [CHAR LIMIT=50] -->
     <string name="communal_settings_summary">Communal settings</string>
 
+    <!-- _satellite_setting_preference_layout -->
+    <!-- _satellite_setting_preference_layout screen title-->
+    <string name="satellite_setting">Satellite Messaging</string>
+
     <!-- APN Settings -->
     <!-- APN settings screen title -->
     <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]-->
@@ -3005,6 +3326,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 -->
@@ -3019,6 +3344,8 @@
     <string name="menu_cancel">Cancel</string>
     <!-- APN error dialog title -->
     <string name="error_title"></string>
+    <!-- APN error dialog messages when the new apn is a duplicate: -->
+    <string name="error_duplicate_apn_entry">Duplicate apn entry.</string>
     <!-- APN error dialog messages: -->
     <string name="error_name_empty">The Name field can\u2019t be empty.</string>
     <!-- APN error dialog messages: -->
@@ -3029,6 +3356,8 @@
     <string name="error_mnc_not23">MNC field must be 2 or 3 digits.</string>
     <!-- APN error dialog messages: -->
     <string name="error_adding_apn_type">Carrier does not allow adding APNs of type %s.</string>
+    <!-- APN error messages: -->
+    <string name="error_mmsc_valid">MMSC field must be valid.</string>
     <!-- The message of dialog indicated restoring default APN settings in progress -->
     <string name="restore_default_apn">Restoring default APN settings.</string>
     <!-- APNs screen menu option to reset default APN settings -->
@@ -3062,7 +3391,7 @@
     <!-- Erase Euicc dialog and SD card & phone storage settings screen, title for the menu option and checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=50] -->
     <string name="reset_esim_title">Erase eSIMs</string>
     <!-- Erase Euicc dialog and SD card & phone storage settings screen, message for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
-    <string name="reset_esim_desc">This won’t cancel any mobile service plans. To download replacement SIMs, contact your carrier.</string>
+    <string name="reset_esim_desc">This won’t cancel your mobile service plan. To get a replacement SIM, contact your carrier.</string>
 
     <!-- SD card & phone storage settings screen, button on screen after user selects Reset network settings -->
     <string name="reset_network_button_text">Reset settings</string>
@@ -3079,9 +3408,9 @@
     <!-- Reset settings complete toast text [CHAR LIMIT=75] -->
     <string name="reset_network_complete_toast">Network settings have been reset</string>
     <!-- Title of the error message shown when error happens during erase eSIM data [CHAR LIMIT=NONE] -->
-    <string name="reset_esim_error_title">Can\u2019t erase SIMs</string>
+    <string name="reset_esim_error_title">Can\u2019t erase eSIMs</string>
     <!-- Message of the error message shown when error happens during erase eSIM data [CHAR LIMIT=NONE] -->
-    <string name="reset_esim_error_msg">eSIMs can\u2019t be erased due to an error.\n\nRestart your device and try again.</string>
+    <string name="reset_esim_error_msg">Something went wrong and your eSIMs weren\u2019t erased.\n\nRestart your device and try again.</string>
 
     <!-- Main Clear -->
     <!-- Button title to factory data reset the entire device [CHAR LIMIT=NONE] -->
@@ -3097,7 +3426,7 @@
     <!-- SD card & phone storage settings screen, message on screen after user selects Reset phone button [CHAR LIMIT=NONE] -->
     <string name="main_clear_final_desc">All of your personal information and downloaded apps will be deleted. You can\u2019t undo this action.</string>
     <!-- SD card & phone storage settings screen, message on screen after user selects Reset phone button [CHAR LIMIT=NONE] -->
-    <string name="main_clear_final_desc_esim">All of your personal information, including downloaded apps &amp; SIMs, will be deleted. You can\u2019t undo this action.</string>
+    <string name="main_clear_final_desc_esim">All of your personal information, including downloaded apps &amp; eSIMs, will be deleted. You can\u2019t undo this action.</string>
     <!-- Main clear confirmation screen title [CHAR LIMIT=33] -->
     <string name="main_clear_confirm_title">Erase all data?</string>
     <!-- Error message for users that aren't allowed to factory reset [CHAR LIMIT=none] -->
@@ -3169,29 +3498,8 @@
     <!-- Tethering preference summary when hotspot and tethering are off [CHAR LIMIT=NONE]-->
     <string name="tether_preference_summary_off">Off</string>
 
-    <!-- Tethering interface options [CHAR LIMIT=NONE]-->
-    <string name="tethering_interface_options">Tethering</string>
-
-    <!-- Disable Wifi Hotspot option-->
-    <!-- Don't use Wi-Fi hotspot title [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_title">Don\u2019t use Wi\u2011Fi hotspot</string>
-    <!-- Don't use Wi-Fi hotspot summary when USB tethering is chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_usb_on">Only share internet via USB</string>
-    <!-- Don't use Wi-Fi hotspot summary when Bluetooth tethering is chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_bluetooth_on">Only share internet via Bluetooth</string>
-    <!-- Don't use Wi-Fi hotspot summary when Ethernet tethering is chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_ethernet_on">Only share internet via Ethernet</string>
-    <!-- Don't use Wi-Fi hotspot summary when USB tethering and Bluetooth tethering are chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_on">Only share internet via USB and Bluetooth</string>
-    <!-- Don't use Wi-Fi hotspot summary when USB tethering and Ethernet tethering are chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_usb_and_ethernet_on">Only share internet via USB and Ethernet</string>
-    <!-- Don't use Wi-Fi hotspot summary when Bluetooth tethering and Ethernet tethering are chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_bluetooth_and_ethernet_on">Only share internet via Bluetooth and Ethernet</string>
-    <!-- Don't use Wi-Fi hotspot summary when USB, Bluetooth and Ethernet tethering are chosen [CHAR LIMIT=NONE]-->
-    <string name="disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on">Only share internet via USB, Bluetooth and Ethernet</string>
-
     <!-- USB Tethering options -->
-    <string name="usb_title">USB</string>
+    <!-- Label for USB tethering switch [CHAR LIMIT=NONE]-->
     <string name="usb_tethering_button_text">USB tethering</string>
 
     <!-- Bluetooth Tethering settings-->
@@ -3213,9 +3521,6 @@
     <!-- Wireless controls, item title to go into the network settings -->
     <string name="network_settings_title">Mobile network</string>
 
-    <!-- Mobile plan [CHAR LIMIT=35]-->
-    <string name="manage_mobile_plan_title" translatable="true">Mobile plan</string>
-
     <!-- SMS Application [CHAR LIMIT=35]-->
     <string name="sms_application_title" translatable="true">SMS app</string>
     <string name="sms_change_default_dialog_title" translatable="true">Change SMS app?</string>
@@ -3229,18 +3534,6 @@
     <!-- Wifi Assistant request message.  This message asks the user if it is okay for an app to become the Wifi Assistant. [CHAR LIMIT=100] -->
     <string name="network_scorer_change_active_no_previous_dialog_text">Use <xliff:g id="new_app">%s</xliff:g> to manage your network connections?</string>
 
-    <!-- The SIM operator is not known [CHAR_ LIMIT=50]-->
-    <string name="mobile_unknown_sim_operator" translatable="true">Unknown SIM operator</string>
-
-    <!-- There is no mobile provisiong website for the operator which is the firat parameter [CHAR_ LIMIT=50]-->
-    <string name="mobile_no_provisioning_url"><xliff:g id="operator">%1$s</xliff:g> has no known provisioning website</string>
-
-    <!-- Ask user to insert a SIM card [CHAR_ LIMIT=50]-->
-    <string name="mobile_insert_sim_card" translatable="true">Please insert SIM card and restart</string>
-
-    <!-- Ask user to connect to the internet [CHAR_ LIMIT=50]-->
-    <string name="mobile_connect_to_internet" translatable="true">Please connect to the internet</string>
-
     <!-- Location settings screen, sub category for recent location requests [CHAR LIMIT=42] -->
     <string name="location_category_recent_location_requests">Recent location requests</string>
 
@@ -3691,6 +3984,18 @@
     <string name="controls_label">Controls</string>
     <!-- Manage applications, text label for button to kill / force stop an application -->
     <string name="force_stop">Force stop</string>
+    <!-- Manage applications, text label for button to archive an application. Archiving means uninstalling the app without deleting user's personal data and replacing the app with a stub app with minimum size. So, the user can unarchive the app later and not lose any personal data. -->
+    <string name="archive">Archive</string>
+    <!-- Manage applications, text label for button to restore an application. Restoring means installing the archived app. -->
+    <string name="restore">Restore</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_one">Restoring</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_two">Restoring.</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_three">Restoring..</string>
+    <!-- Manage applications, text label for button while the application is restoring. -->
+    <string name="restoring_step_four">Restoring...</string>
     <!-- Manage applications, individual application info screen,label under Storage heading.  The total storage space taken up by this app. -->
     <string name="total_size_label">Total</string>
     <!-- Manage applications, individual application info screen, label under Storage heading. The amount of space taken up by the application itself (for example, the java compield files and things like that) -->
@@ -3801,6 +4106,15 @@
     <!-- Manage applications, text for Move button -->
     <string name="move_app">Move</string>
 
+    <!-- Toast message when archiving an app failed. -->
+    <string name="archiving_failed">Archiving failed</string>
+    <!-- Toast message when archiving an app succeeded. -->
+    <string name="archiving_succeeded">Archived <xliff:g id="package_label" example="Translate">%1$s</xliff:g></string>
+    <!-- Toast message when restoring an app failed. -->
+    <string name="restoring_failed">Restoring failed</string>
+    <!-- Toast message when restoring an app has started. -->
+    <string name="restoring_in_progress">Restoring <xliff:g id="package_label" example="Translate">%1$s</xliff:g></string>
+
     <!-- Text of pop up message if the request for a "migrate primary storage" operation
          (see storage_menu_migrate) is denied as another is already in progress. [CHAR LIMIT=75] -->
     <string name="another_migration_already_in_progress">Another migration is already in progress.</string>
@@ -3998,12 +4312,26 @@
     <string name="add_virtual_keyboard">Manage on-screen keyboards</string>
     <!-- Title for the 'keyboard options' preference category. [CHAR LIMIT=35] -->
     <string name="keyboard_options_category">Options</string>
+    <!-- Title for the 'keyboard accessibility options' preference category. [CHAR LIMIT=35] -->
+    <string name="keyboard_a11y_category">Accessibility</string>
     <!-- Title for the 'physical keyboard' settings screen. [CHAR LIMIT=35] -->
     <string name="physical_keyboard_title">Physical keyboard</string>
     <!-- Title for the 'show virtual keyboard' preference switch. [CHAR LIMIT=35] -->
     <string name="show_ime">Use on-screen keyboard</string>
     <!-- Summary text for the 'add virtual keyboard' preference sub-screen. [CHAR LIMIT=100] -->
     <string name="show_ime_summary">Keep it on screen while physical keyboard is active</string>
+    <!-- Title for the 'Bounce keys' preference switch. [CHAR LIMIT=35] -->
+    <string name="bounce_keys">Bounce keys</string>
+    <!-- Summary text for the 'Bounce keys' preference sub-screen. [CHAR LIMIT=100] -->
+    <string name="bounce_keys_summary">Enable Bounce keys for physical keyboard accessibility</string>
+    <!-- Title for the 'Slow keys' preference switch. [CHAR LIMIT=35] -->
+    <string name="slow_keys">Slow keys</string>
+    <!-- Summary text for the 'Slow keys' preference sub-screen. [CHAR LIMIT=100] -->
+    <string name="slow_keys_summary">Enable Slow keys for physical keyboard accessibility</string>
+    <!-- Title for the 'Sticky keys' preference switch. [CHAR LIMIT=35] -->
+    <string name="sticky_keys">Sticky keys</string>
+    <!-- Summary text for the 'Sticky keys' preference sub-screen. [CHAR LIMIT=100] -->
+    <string name="sticky_keys_summary">Enable Sticky keys for physical keyboard accessibility</string>
     <!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
     <string name="keyboard_shortcuts_helper">Keyboard shortcuts</string>
     <!-- Summary text for the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=100] -->
@@ -4240,7 +4568,9 @@
     <!-- Spinner label to indicate sort by app name. [CHAR LIMIT=30] -->
     <string name="usage_stats_sort_by_app_name">Sort by app name</string>
     <!-- label for last time used -->
-    <string name="last_time_used_label">Last time used</string>
+    <string name="last_time_used_label">Last used</string>
+    <!-- label for last time used of never opened apps -->
+    <string name="last_time_used_never">never</string>
     <!-- label for usage time -->
     <string name="usage_time_label">Usage time</string>
 
@@ -4369,8 +4699,6 @@
     <string name="accessibility_magnification_triple_tap_warning_negative_button">Cancel</string>
     <!-- Title for the accessibility preference screen to enable screen magnification settings. [CHAR LIMIT=35] -->
     <string name="accessibility_magnification_service_settings_title">Magnification settings</string>
-    <!-- Title for the accessibility preference screen to enable triple-tap gesture screen magnification. [CHAR LIMIT=35] -->
-    <string name="accessibility_screen_magnification_gestures_title">Magnify with triple-tap</string>
     <!-- Title for the accessibility preference screen to enable navigation bar screen magnification. [CHAR LIMIT=35] -->
     <string name="accessibility_screen_magnification_navbar_title">Magnify with shortcut</string>
     <!-- Summary for the accessibility magnification setting indicating both "Magnify with button" and "Magnify with triple-tap" are enabled [CHAR LIMIT=50] -->
@@ -4409,7 +4737,7 @@
     <string name="accessibility_screen_magnification_navbar_short_summary">Tap a button to zoom</string>
     <!-- Intro for the accessibility preference screen to enable screen magnification gestures. [CHAR LIMIT=none] -->
     <string name="accessibility_screen_magnification_intro_text">Quickly zoom in on the screen to make content larger</string>
-    <!-- Summary for the accessibility preference screen to enable screen magnification gestures. [CHAR LIMIT=none] -->
+    <!-- Instructions on the accessibility preference screen teaching the user how to enable screen magnification gestures. [CHAR LIMIT=none] -->
     <string name="accessibility_screen_magnification_summary">
         <![CDATA[
         <b>To zoom in:</b><br/>
@@ -4436,6 +4764,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 double tap. [CHAR LIMIT=100] -->
+    <string name="accessibility_tutorial_dialog_title_two_finger_double">Two finger double 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] -->
@@ -4448,6 +4778,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 double tap. [CHAR LIMIT=100] -->
+    <string name="accessibility_tutorial_dialog_message_two_finger_triple">To start and stop magnification, double-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] -->
@@ -4458,8 +4790,8 @@
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback">To use an accessibility 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>
     <!-- Button for the accessibility tutorial dialog to dismiss the dialog when user clicks it. [CHAR LIMIT=10] -->
     <string name="accessibility_tutorial_dialog_button">Got it</string>
-    <!-- Button for the accessibility tutorial dialog to link to accessibility settings page. [CHAR LIMIT=30] -->
-    <string name="accessibility_tutorial_dialog_link_button">Accessibility button settings</string>
+    <!-- Button for the accessibility tutorial dialog to open the Accessibility button settings page. [CHAR LIMIT=30] -->
+    <string name="accessibility_tutorial_dialog_link_button">Button settings</string>
     <!-- Title for accessibility shortcut preference for accessibility apps. [CHAR LIMIT=40] -->
     <string name="accessibility_shortcut_title"><xliff:g id="service" example="Select to Speak">%1$s</xliff:g> shortcut</string>
     <!-- Title for software shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
@@ -4490,6 +4822,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 double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_title_two_finger_double_tap">Two-finger double-tap screen</string>
+    <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_two_finger_double_tap_keyword">two-finger double-tap screen</string>
+    <!-- Summary for two finger double tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_shortcut_edit_dialog_summary_two_finger_double_tap">Quickly tap screen {0,number,integer} times with two fingers</string>
     <!-- Title for triple tap shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_title_triple_tap">Triple-tap screen</string>
     <!-- Part of list to compose user's accessibility shortcut list. [CHAR LIMIT=NONE] -->
@@ -4526,10 +4864,24 @@
     <string name="accessibility_button_intro">Using the accessibility button. The gesture isn\u2019t available with 3-button navigation.</string>
     <!-- Summary text for the accessibility button preference. [CHAR LIMIT=50] -->
     <string name="accessibility_button_summary">Quickly access accessibility features</string>
-    <!-- Description for the accessibility button in gesture navigation. Explain how this page works. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_button_gesture_description"><b>To get started</b>\n1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose whether you want to use a button or gesture to access the feature</string>
-    <!-- Description for the accessibility button page. Explain how this page works. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_button_description"><b>To get started</b>\n1. Go to accessibility settings\n2. Select a feature and tap the shortcut\n3. Choose the button to access the feature</string>
+    <!-- Description for the accessibility button in gesture navigation. Explain how this page works in numbered ordered list. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_button_gesture_description">
+        <![CDATA[
+        <b>To get started</b><br/>
+        {0,number,integer}. Go to accessibility settings<br/>
+        {1,number,integer}. Select a feature and tap the shortcut<br/>
+        {2,number,integer}. Choose whether you want to use a button or gesture to access the feature<br/>
+        ]]>
+    </string>
+    <!-- Description for the accessibility button page. Explain how this page works in numbered ordered list. [CHAR LIMIT=NONE] -->
+    <string name="accessibility_button_description">
+        <![CDATA[
+        <b>To get started</b><br/>
+        {0,number,integer}. Go to accessibility settings<br/>
+        {1,number,integer}. Select a feature and tap the shortcut<br/>
+        {2,number,integer}. Choose the button to access the feature<br/>
+        ]]>
+    </string>
     <!-- Title for the button or gesture of the accessibility button. [CHAR LIMIT=35] -->
     <string name="accessibility_button_or_gesture_title">Use button or gesture</string>
     <!-- Title for the location of the accessibility button. [CHAR LIMIT=35] -->
@@ -4562,6 +4914,10 @@
     <string name="accessibility_toggle_large_pointer_icon_title">Large mouse pointer</string>
     <!-- Summary for the accessibility preference for enabling/disabling large icons for mouse/trackpad pointers. [CHAR LIMIT=60] -->
     <string name="accessibility_toggle_large_pointer_icon_summary">Make the mouse pointer more noticeable</string>
+    <!-- Title for the accessibility preference for forcing all apps to use dark theme. [CHAR LIMIT=35] -->
+    <string name="accessibility_force_invert_title">Make all apps dark</string>
+    <!-- Summary for the accessibility preference for forcing all apps to use dark theme. [CHAR LIMIT=100] -->
+    <string name="accessibility_force_invert_summary">Applies to apps without their own dark theme. Some apps may have display issues, like inverted colors.</string>
     <!-- Title for the accessibility preference for disabling animations. [CHAR LIMIT=35] -->
     <string name="accessibility_disable_animations">Remove animations</string>
     <!-- Summary for the accessibility preference for disabling animations. [CHAR LIMIT=60] -->
@@ -4676,6 +5032,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. -->
@@ -4808,7 +5166,7 @@
     <!-- List of synonyms used in the settings search bar to find the "Audio Description. [CHAR LIMIT=NONE] -->
     <string name="keywords_audio_description">audio description, audio, description, low vision,</string>
 
-    <!-- Preference's shortcut when enabled. [CHAR LIMIT=NONE] -->
+    <!-- Shows when the shortcut of an accessibility feature is turned on. The accessibility feature could refer to any accessibility feature installed on the device. [CHAR LIMIT=NONE] -->
     <string name="accessibility_summary_shortcut_enabled">Shortcut on</string>
     <!-- Preference's shortcut when disabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_summary_shortcut_disabled">Off</string>
@@ -5003,15 +5361,12 @@
     <string name="accessibility_dialog_button_deny">Deny</string>
 
     <!-- String for the allow button in accessibility permission dialog. [CHAR LIMIT=10] -->
-    <string name="accessibility_dialog_button_stop">Stop</string>
+    <string name="accessibility_dialog_button_stop">Turn off</string>
     <!-- String for the deny button in accessibility permission dialog. [CHAR LIMIT=10] -->
-    <string name="accessibility_dialog_button_cancel">Cancel</string>
+    <string name="accessibility_dialog_button_cancel">Keep on</string>
 
     <!-- Title for a warning about disabling an accessibility service. [CHAR LIMIT=NONE] -->
-    <string name="disable_service_title">Stop <xliff:g id="service" example="TalkBack">%1$s</xliff:g>?</string>
-    <!-- Message for a warning about disabling accessibility service. [CHAR LIMIT=NONE] -->
-    <string name="disable_service_message">Tapping <xliff:g id="stop" example="Stop">%1$s</xliff:g> will
-        stop <xliff:g id="service" example="TalkBack">%2$s</xliff:g>.</string>
+    <string name="disable_service_title">Turn off <xliff:g id="service" example="TalkBack">%1$s</xliff:g>?</string>
 
     <!-- Title for the prompt shown as a placeholder if no accessibility services are installed. [CHAR LIMIT=50] -->
     <string name="accessibility_no_services_installed">No services installed</string>
@@ -5028,7 +5383,7 @@
     <!-- List of synonyms used in the settings search bar to find the “Extra Dim” setting, which dims your screen. Title name is located at strings/reduce_bright_colors_preference_title. [CHAR LIMIT=NONE] -->
     <string name="keywords_reduce_bright_colors">light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point</string>
     <!-- List of synonyms used in the settings search bar to find the “Accessibility”. [CHAR LIMIT=NONE] -->
-    <string name="keywords_accessibility">Ease of use, ease of access, assistance, assistive</string>
+    <string name="keywords_accessibility">vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help</string>
     <!-- List of synonyms used in the settings search bar to find the “Magnification”. [CHAR LIMIT=NONE] -->
     <string name="keywords_magnification">Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger</string>
     <!-- List of synonyms used in the settings search bar to find the “TalkBack”. [CHAR LIMIT=NONE] -->
@@ -5058,13 +5413,19 @@
     <!-- List of synonyms used in the settings search bar to find the “Switch Access”. [CHAR LIMIT=NONE] -->
     <string name="keywords_switch_access"></string>
     <!-- List of synonyms used in the settings search bar to find the “Autoclick(dwell timing)”. [CHAR LIMIT=NONE] -->
-    <string name="keywords_auto_click">motor, mouse</string>
+    <string name="keywords_auto_click">motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick</string>
     <!-- List of synonyms used in the settings search bar to find the “Hearing aids”. [CHAR LIMIT=NONE] -->
-    <string name="keywords_hearing_aids">hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors</string>
+    <string name="keywords_hearing_aids">hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP</string>
     <!-- List of synonyms used in the settings search bar to find the “Real-time text (RTT)”. [CHAR LIMIT=NONE] -->
     <string name="keywords_rtt">hard of hearing, hearing loss, captions, Teletype, tty</string>
     <!-- List of synonyms used in the settings search bar to find the “Voice Access”. [CHAR LIMIT=NONE] -->
     <string name="keywords_voice_access"></string>
+    <!-- List of synonyms used in the settings search bar to find the “3-button navigation”. [CHAR LIMIT=NONE] -->
+    <string name="keywords_3_button_navigation">three buttons</string>
+    <!-- List of synonyms used in the settings search bar to find the “Touch & hold delay”. [CHAR LIMIT=NONE] -->
+    <string name="keywords_touch_and_hold_delay">dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand</string>
+    <!-- List of synonyms used in the settings search bar to find the “Time to take action (Accessibility timeout)”. [CHAR LIMIT=NONE] -->
+    <string name="keywords_accessibility_timeout">delay, dexterity, senior</string>
 
     <skip />
 
@@ -5173,6 +5534,10 @@
     <string name="power_discharge_remaining"><xliff:g id="remain">%1$s</xliff:g> remaining</string>
     <!-- Display time remaining until battery is charged [CHAR_LIMIT=60] -->
     <string name="power_charge_remaining"><xliff:g id="until_charged">%1$s</xliff:g> to charge</string>
+    <!-- Title for app screen time in power usage detail page [CHAR LIMIT=NONE] -->
+    <string name="power_usage_detail_screen_time">Screen time</string>
+    <!-- Title for app background time in power usage detail page [CHAR LIMIT=NONE] -->
+    <string name="power_usage_detail_background_time">Background time</string>
 
     <!-- Description of battery state and remaining time (e.g. Charging rapidly • 1hr 23 min left until full)-->
     <string name="battery_state_and_duration" translatable="false"><xliff:g id="state">%1$s</xliff:g> • <xliff:g id="time">%2$s</xliff:g></string>
@@ -5188,6 +5553,12 @@
     <!-- Dialog message when app can't been restricted because it is not optimized [CHAR_LIMIT=120] -->
     <string name="background_activity_disabled_dialog_text">Since this app is not set to optimize battery, you can\u2019t restrict it.\n\nTo restrict the app, first turn on battery optimization.</string>
 
+    <!-- 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] -->
@@ -5266,18 +5637,6 @@
     <string name="battery_tip_limited_temporarily_title">Charging optimized to protect your battery</string>
     <!-- Summary for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
     <string name="battery_tip_limited_temporarily_summary">To help extend your battery\'s lifespan, charging is optimized</string>
-    <!-- Title for the battery dock defender future bypass tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_future_bypass_title">Charging optimized to protect your battery</string>
-    <!-- Summary for the battery dock defender future bypass tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_future_bypass_summary">To help extend your battery\'s lifespan, charging is optimized while docked</string>
-    <!-- Title for the battery dock defender active tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_active_title">Charging optimized to protect your battery</string>
-    <!-- Summary for the battery dock defender active tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_active_summary">To help extend your battery\'s lifespan, charging is optimized while docked</string>
-    <!-- Title for the battery dock defender temporarily bypassed tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_temporarily_bypassed_title">Charging to full</string>
-    <!-- Summary for the battery dock defender temporarily bypassed tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_dock_defender_temporarily_bypassed_summary">To protect your battery, charging will be optimized the next time your tablet is docked</string>
     <!-- Content description for the battery limited temporarily tip secondary button [CHAR LIMIT=NONE] -->
     <string name="battery_tip_limited_temporarily_sec_button_content_description">Learn more about charging is paused</string>
     <!-- Text of battery limited temporarily tip resume charge button. [CHAR LIMIT=NONE] -->
@@ -5329,7 +5688,7 @@
     <!-- Charge to full button for battery defender tips [CHAR LIMIT=NONE] -->
     <string name="battery_tip_charge_to_full_button">Charge to full</string>
     <!-- Title of incompatible charging battery tip [CHAR LIMIT=NONE] -->
-    <string name="battery_tip_incompatible_charging_title">Issue with charging accessory</string>
+    <string name="battery_tip_incompatible_charging_title">Check charging accessory</string>
     <!-- Content description for the incompatible charging battery tip button [CHAR LIMIT=NONE] -->
     <string name="battery_tip_incompatible_charging_content_description">Learn more about incompatible charging</string>
 
@@ -5423,8 +5782,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>
 
@@ -5534,6 +5895,8 @@
     <string name="battery_usage_background_less_than_one_minute">Background: less than a min</string>
     <!-- [CHAR_LIMIT=NONE] Device screen on time less than a minute -->
     <string name="battery_usage_screen_time_less_than_one_minute">Screen time: less than a min</string>
+    <!-- [CHAR_LIMIT=NONE] Power usage time less than a minute -->
+    <string name="power_usage_time_less_than_one_minute">Less than a min</string>
     <!-- [CHAR_LIMIT=NONE] Battery usage item for total usage time -->
     <string name="battery_usage_for_total_time">Total: <xliff:g id="time">%s</xliff:g></string>
     <!-- [CHAR_LIMIT=NONE] Battery usage item for background usage time -->
@@ -5548,12 +5911,16 @@
     <string name="battery_usage_timestamps_hyphen"><xliff:g id="from_timestamp">%1$s</xliff:g> - <xliff:g id="to_timestamp">%2$s</xliff:g></string>
     <!-- [CHAR_LIMIT=NONE] The first slot is a week day (e.g. "Monday"); the second slot is a hourly time span (e.g. "6 AM - 8 AM"). -->
     <string name="battery_usage_day_and_hour"><xliff:g id="day">%1$s</xliff:g> <xliff:g id="hour">%2$s</xliff:g></string>
+    <!-- [CHAR_LIMIT=NONE] Accessibility content description for each slot in battery chart view. -->
+    <string name="battery_usage_time_info_and_battery_level"><xliff:g id="time_info" example="Battery usage for Monday 6 AM - 8 AM">%1$s</xliff:g> <xliff:g id="battery_level" example="Battery level percentage from 83% to 59%">%2$s</xliff:g></string>
     <!-- [CHAR_LIMIT=NONE] Accessibility content description for battery chart view. -->
     <string name="battery_usage_chart">Battery usage chart</string>
     <!-- [CHAR_LIMIT=NONE] Accessibility content description for daily battery chart view. -->
     <string name="daily_battery_usage_chart">Daily battery usage chart</string>
     <!-- [CHAR_LIMIT=NONE] Accessibility content description for hourly battery chart view. -->
     <string name="hourly_battery_usage_chart">Hourly battery usage chart</string>
+    <!-- [CHAR_LIMIT=NONE] Accessibility content description for battery level percentage. -->
+    <string name="battery_level_percentage">Battery level percentage from <xliff:g id="start_percentage">%1$s</xliff:g> to <xliff:g id="end_percentage">%2$s</xliff:g></string>
     <!-- [CHAR_LIMIT=NONE] Battery usage breakdown title since last full charge -->
     <string name="battery_usage_breakdown_title_since_last_full_charge">Battery usage since last full charge</string>
     <!-- [CHAR_LIMIT=NONE] Battery usage breakdown title for a selected slot -->
@@ -5828,10 +6195,6 @@
     <!-- Backup and reset Settings screen --><skip />
     <!-- Backup and reset settings menu and activity title -->
     <string name="privacy_settings_title">Backup</string>
-    <!-- Summary for the Backup settings when it is turned on. -->
-    <string name="backup_summary_state_on">On</string>
-    <!-- Summary for the Backup settings when it is turned off. -->
-    <string name="backup_summary_state_off">Off</string>
     <!-- Backup section title -->
     <string name="backup_section_title">Backup &amp; restore</string>
     <!-- Personal data section title -->
@@ -6038,6 +6401,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>
@@ -6152,10 +6517,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] -->
@@ -6168,12 +6529,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] -->
@@ -6187,22 +6542,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>
@@ -6278,6 +6617,11 @@
 
     <!-- Dialog subtitle warning for a VPN app that has an insecure type. [CHAR LIMIT=100]  -->
     <string name="vpn_insecure_dialog_subtitle">Not secure. Update to an IKEv2 VPN</string>
+    <!-- Dialog message when user attempted to start a VPN type that is no longer supported. It is
+         very unlikely, but not impossible, that a user has a very old VPN configuration that the
+         newer device no longer supports. This message is displayed when the user tries to start
+         this unsupported VPN. [CHAR LIMIT=NONE]  -->
+    <string name="vpn_start_unsupported">Failed to start unsupported VPN.</string>
 
     <!-- Summary describing the always-on VPN feature. [CHAR LIMIT=NONE] -->
     <string name="vpn_lockdown_summary">Select a VPN profile to always remain connected to. Network traffic will only be allowed when connected to this VPN.</string>
@@ -6698,6 +7042,8 @@
     <string name="help_url_adaptive_sleep" translatable="false" />
     <!-- Help URL, Previously connected bluetooth devices [DO NOT TRANSLATE] -->
     <string name="help_url_previously_connected_devices" translatable="false"></string>
+    <!-- Help URL, Fast Pair devices on Connected device settings [DO NOT TRANSLATE] -->
+    <string name="help_url_connected_devices_fast_pair_devices" translatable="false"></string>
     <!-- Help URL, Top level privacy settings [DO NOT TRANSLATE] -->
     <string name="help_url_privacy_dashboard" translatable="false"></string>
 
@@ -6752,6 +7098,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>
@@ -6774,14 +7122,6 @@
          For example, they may have alerts just once or every 2 or 15 minutes.  [CHAR LIMIT=30] -->
     <string name="repeat_title">Repeat</string>
 
-    <!-- Call Manager enable settings title.  [CHAR LIMIT=50] -->
-    <string name="call_manager_enable_title">Enable Call Manager</string>
-    <!-- Call Manager enable settings summary.  [CHAR LIMIT=80] -->
-    <string name="call_manager_enable_summary">Allow this service to manage how your calls are made.</string>
-    <!-- Call Manager settings title.  [CHAR LIMIT=50] -->
-    <string name="call_manager_title">Call Manager</string>
-    <!-- Call Manager settings summary.  [CHAR LIMIT=50] -->
-    <string name="call_manager_summary"><xliff:g id="app">%1$s</xliff:g></string>
     <!-- Cell Broadcast settings title.  [CHAR LIMIT=50] -->
     <string name="cell_broadcast_settings">Wireless emergency alerts</string>
     <!-- Network operators settings title.  [CHAR LIMIT=50] -->
@@ -7076,7 +7416,6 @@
     <string name="keywords_wallet">wallet</string>
     <string name="keywords_payment_settings">pay, tap, payments</string>
     <string name="keywords_backup">backup, back up</string>
-    <string name="keywords_assist_gesture_launch">gesture</string>
     <string name="keywords_face_unlock">face, unlock, auth, sign in</string>
     <string name="keywords_biometric_unlock">face, unlock, auth, sign in, fingerprint, biometric</string>
     <string name="keywords_imei_info">imei, meid, min, prl version, imei sv</string>
@@ -7196,6 +7535,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>
 
@@ -7301,13 +7643,6 @@
     <!-- Setting summary for controlling how caption text display in real time [CHAR LIMIT=NONE]-->
     <string name="live_caption_summary">Automatically caption media</string>
 
-    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
-    <string name="spatial_audio_speaker" product="default">Phone speakers</string>
-    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
-    <string name="spatial_audio_speaker" product="tablet">Tablet speakers</string>
-    <!-- Output device type for the phone speaker that is available for spatializer effect. [CHAR LIMIT=NONE]-->
-    <string name="spatial_audio_speaker" product="device">Device speakers</string>
-
     <!-- Output device type for the wired headphones that is available for spatializer effect. [CHAR LIMIT=NONE]-->
     <string name="spatial_audio_wired_headphones">Wired headphones</string>
 
@@ -7696,7 +8031,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>
@@ -7832,7 +8167,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>
@@ -7928,6 +8263,9 @@
     <!-- a11y string -->
     <string name="clear">Clear</string>
 
+    <!-- a11y string -->
+    <string name="clear_conversation">Clear <xliff:g id="conversation_name" example="Mom">%1$s</xliff:g></string>
+
     <!-- title for conversation onboarding -->
     <string name="conversation_onboarding_title">Priority and modified conversations will appear here</string>
 
@@ -8078,6 +8416,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>
 
@@ -8666,20 +9018,24 @@
     <string name="app_pinning_intro">App pinning allows you to keep the current app in view until you unpin it. This feature can be used, for example, to let a trusted friend play a specific game.</string>
     <!-- [CHAR LIMIT=none] Screen pinning description -->
     <string name="screen_pinning_description">
+        <![CDATA[
         When an app is pinned, the pinned app may open other apps and personal data may be accessible.
         \n\nTo use app pinning:
-        \t\n1. Turn on app pinning
-        \t\n2. Open Overview
-        \t\n3. Tap the app icon at the top of the screen, then tap Pin
+        \t\n{0,number,integer}. Turn on app pinning
+        \t\n{1,number,integer}. Open Overview
+        \t\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin
+        ]]>
     </string>
     <!-- [CHAR LIMIT=none] Screen pinning description -->
     <string name="screen_pinning_guest_user_description">
+        <![CDATA[
         When an app is pinned, the pinned app may open other apps and personal data may be accessible.
         \n\nIf you want to securely share your device with someone, try using a guest user instead.
         \n\nTo use app pinning:
-        \t\n1. Turn on app pinning
-        \t\n2. Open Overview
-        \t\n3. Tap the app icon at the top of the screen, then tap Pin
+        \t\n{0,number,integer}. Turn on app pinning
+        \t\n{1,number,integer}. Open Overview
+        \t\n{2,number,integer}. Tap the app icon at the top of the screen, then tap Pin
+        ]]>
     </string>
     <!-- [CHAR LIMIT=300] Screen pinning title -->
     <string name="screen_pinning_dialog_message">
@@ -8864,6 +9220,12 @@
     <!-- Summary of the switch preference that controls whether the system will pause app activity when the app has not been used for months [CHAR LIMIT=NONE]-->
     <string name="unused_apps_switch_summary">Remove permissions, delete temporary files, and stop notifications</string>
 
+    <!-- Label of a switch preference that controls whether the system will pause app activity when the app has not been used for a while [CHAR LIMIT=40]-->
+    <string name="unused_apps_switch_v2">Manage app if unused</string>
+
+    <!-- Summary of the switch preference that controls whether the system will pause app activity when the app has not been used for a while [CHAR LIMIT=NONE]-->
+    <string name="unused_apps_switch_summary_v2">Remove permissions, delete temporary files, stop notifications, and archive the app</string>
+
     <!-- Label for showing all apps in list [CHAR LIMIT=30] -->
     <string name="filter_all_apps">All apps</string>
     <!-- Label for showing enabled apps in list [CHAR LIMIT=30] -->
@@ -9191,6 +9553,13 @@
       other   {# apps used memory in the last {time}}
     }</string>
 
+    <!-- Label for toggle that enables the profiling/aggregating of memory usage [CHAR LIMIT=80]-->
+    <string name="force_enable_pss_profiling_title">Enable memory usage profiling</string>
+    <!-- Description with an explanation of the extra resources used if profiling of memory usage is enabled [CHAR LIMIT=NONE]-->
+    <string name="force_enable_pss_profiling_summary">Memory usage profiling requires additional system resources.</string>
+    <!-- Summary that shows the current memory usage profiling status as disabled. [CHAR LIMIT=NONE]-->
+    <string name="pss_profiling_disabled">Memory profiling disabled</string>
+
     <!-- Label for frequency that the app is runnig (e.g. always, sometimes, etc.) [CHAR LIMIT=25] -->
     <string name="running_frequency">Frequency</string>
 
@@ -9243,6 +9612,14 @@
     <!-- Description of allowing overlay setting [CHAR LIMIT=NONE] -->
     <string name="allow_overlay_description">Allow this app to display on top of other apps you\u2019re using. This app will be able to see where you tap or change what\u2019s displayed on the screen.</string>
 
+    <!-- Change Media Output settings -->
+    <!-- Title for Change Media Output screen [CHAR LIMIT=30] -->
+    <string name="media_routing_control_title">Change media output</string>
+    <!-- Label for setting which controls whether app can change media outputs for other apps [CHAR LIMIT=45] -->
+    <string name="allow_media_routing_control">Allow app to switch media output</string>
+    <!-- Description for allowing change media output setting [CHAR LIMIT=NONE] -->
+    <string name="allow_media_routing_description">Allow this app to choose which connected device plays audio or video from other apps. If allowed, this app can access a list of available devices such as headphones and speakers and choose which output device is used to stream or cast audio or video.</string>
+
     <!-- Manager External Storage settings title [CHAR LIMIT=40] -->
     <string name="manage_external_storage_title">All files access</string>
     <!-- Label for a setting which controls whether an app can manage external storage [CHAR LIMIT=45] -->
@@ -9253,6 +9630,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>
 
@@ -9552,9 +9936,6 @@
     <!-- Format for a summary describing the amount of data before the user is warned or limited [CHAR LIMIT=NONE] -->
     <string name="cell_data_warning_and_limit"><xliff:g name="amount" example="1 GB">^1</xliff:g> data warning / <xliff:g name="amount" example="2 GB">^2</xliff:g> data limit</string>
 
-    <!-- A summary shown on data usage screens to indicate inaccuracy of data tracking [CHAR LIMIT=NONE] -->
-    <string name="operator_warning">Carrier data accounting may differ from device accounting</string>
-
     <!-- A summary shown on data usage screens to indicate data tracking excluded from carrier networks [CHAR LIMIT=NONE] -->
     <string name="non_carrier_data_usage_warning">Excludes data used by carrier networks</string>
 
@@ -9637,9 +10018,6 @@
     <!-- Informational text about recent update time only, without carrier [CHAR LIMIT=30] -->
     <string name="no_carrier_update_now_text">Updated just now</string>
 
-    <!-- Button to launch external data plan app [CHAR LIMIT=30] -->
-    <string name="launch_mdp_app_text">View plan</string>
-
     <!-- Alternate launch button text for Wi-Fi only mode [CHAR LIMIT=30] -->
     <string name="launch_wifi_text">View details</string>
 
@@ -9730,6 +10108,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>
 
@@ -9913,9 +10294,6 @@
     <!-- [CHAR LIMIT=NONE] Setting summary explaining the disablement of the automatic adb authorization timeout. -->
     <string name="adb_authorization_timeout_summary">Disable automatic revocation of adb authorizations for systems that have not reconnected within the default (7 days) or user-configured (minimum 1 day) amount of time.</string>
 
-    <!-- [CHAR LIMIT=25] Title of developer tile to toggle winscope trace -->
-    <string name="winscope_trace_quick_settings_title">Winscope Trace</string>
-
     <!-- [CHAR LIMIT=25] Title of developer tile to toggle sensors -->
     <string name="sensors_off_quick_settings_title">Sensors Off</string>
 
@@ -9994,7 +10372,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>
@@ -10014,7 +10392,7 @@
     <!-- Message for the dialog that explains how increasing sensitivity can affect gestures along the edges. [CHAR LIMIT=NONE] -->
     <string name="back_sensitivity_dialog_message">Higher sensitivity may conflict with any app gestures along the edges of the screen.</string>
 
-    <!-- Title for the dialog that is shown to adjust the back sensitivity [CHAR LIMIT=60] -->
+    <!-- Title for adjusting the back sensitivity, which is the sensitivity of the edge swipe that would trigger back navigation. [CHAR LIMIT=60] -->
     <string name="back_sensitivity_dialog_title">Back Sensitivity</string>
 
     <!-- Title for the screen to show all the gesture navigation settings [CHAR LIMIT=80] -->
@@ -10110,9 +10488,6 @@
     <!-- Title for settings suggestion for fingerprint swipe for notifications [CHAR LIMIT=60] -->
     <string name="fingerprint_swipe_for_notifications_suggestion_title">See notifications quickly</string>
 
-    <!-- Title text for the assist gesture [CHAR LIMIT=60] DO NOT TRANSLATE -->
-    <string name="assist_gesture_title" translatable="false">Assist gesture</string>
-
     <!-- Switch text for each gesture setting state -->
     <string name="gesture_setting_on">On</string>
     <string name="gesture_setting_off">Off</string>
@@ -10409,7 +10784,7 @@
     <!-- Preference category for showing auto-fill services with saved passwords. [CHAR LIMIT=60] -->
     <string name="autofill_passwords">Passwords</string>
     <!-- Preference category for showing autofill and credman services with saved credentials. [CHAR LIMIT=60] -->
-    <string name="credman_chosen_app_title">Passwords, passkeys and data services</string>
+    <string name="credman_chosen_app_title">Preferred service</string>
     <!-- Preference category for showing additional credential providers. [CHAR LIMIT=60] -->
     <string name="credman_credentials">Additional providers</string>
     <!-- Summary for passwords settings that shows how many passwords are saved for each autofill
@@ -10427,6 +10802,10 @@
     <string name="credman_keywords">data, passkey, password</string>
     <!-- Keywords for the credman feature. [CHAR LIMIT=NONE] -->
     <string name="credman_autofill_keywords">auto, fill, autofill, data, passkey, password</string>
+    <!-- Button for choosing credman service. [CHAR LIMIT=40] -->
+    <string name="credman_button_change">Change</string>
+    <!-- Button for opening credman service settings. [CHAR LIMIT=40] -->
+    <string name="credman_button_open">Open</string>
 
     <!-- Message of the warning dialog for setting the auto-fill app. [CHAR_LIMIT=NONE] -->
     <string name="autofill_confirmation_message">
@@ -10445,13 +10824,14 @@
         <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>
 
     <!-- Title of the screen where the user picks a provider. [CHAR_LIMIT=NONE] -->
-    <string name="credman_picker_title">Passwords, passkeys and data services</string>
+    <string name="credman_picker_title">Passwords, passkeys, and data services</string>
 
     <!-- Title of the warning dialog for disabling the credential provider. [CHAR_LIMIT=NONE] -->
     <string name="credman_confirmation_message_title">Turn off %1$s\?</string>
@@ -10468,17 +10848,45 @@
         ]]>
     </string>
 
+    <!-- Message of the warning dialog for disabling the credential provider (new strings for 24Q3). [CHAR_LIMIT=NONE] -->
+    <string name="credman_confirmation_message_new_ui">
+        <![CDATA[
+        <b>Turn off all services?</b>
+        <br/>
+        <br/>
+        Passwords, passkeys, and other saved info won\'t be available for autofill when you sign in
+        ]]>
+    </string>
+
+    <!-- Message of the warning dialog for setting a new preferred credential provider (new strings for 24Q3). [CHAR_LIMIT=NONE] -->
+    <string name="credman_autofill_confirmation_message_new_ui">
+        <![CDATA[
+        <b>Change your preferred service to <xliff:g id="app_name" example="Provider">%1$s</xliff:g>\?</b>
+        <br/>
+        <br/>
+        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>
+
     <!-- Title of the warning dialog for enabling the credential provider. [CHAR_LIMIT=NONE] -->
     <string name="credman_enable_confirmation_message_title">Use %1$s\?</string>
 
+    <!-- Title of the error dialog when too many credential providers are selected (new strings for 24Q3). [CHAR_LIMIT=NONE] -->
+    <string name="credman_limit_error_msg_title">You can only have 5 services on</string>
+
+    <!-- Message of the error dialog when too many credential providers are selected (new strings for 24Q3). [CHAR_LIMIT=NONE] -->
+    <string name="credman_limit_error_msg">Turn off at least 1 service to add another</string>
+
     <!-- Message of the warning dialog for enabling the credential provider. [CHAR_LIMIT=NONE] -->
     <string name="credman_enable_confirmation_message">%1$s uses what\'s on your screen to determine what can be autofilled.</string>
 
     <!-- Title of the error dialog when too many credential providers are selected. [CHAR_LIMIT=NONE] -->
-    <string name="credman_error_message_title">Passwords, passkeys and data services limit</string>
+    <string name="credman_error_message_title">Passwords, passkeys, and data services limit</string>
 
     <!-- Message of the error dialog when too many credential providers are selected. [CHAR_LIMIT=NONE] -->
-    <string name="credman_error_message">You can have up to 5 passwords, passkeys and data services active at the same time. Turn off a service to add more.</string>
+    <string name="credman_error_message">You can have up to 5 passwords, passkeys, and data services active at the same time. Turn off a service to add more.</string>
 
     <!-- Positive button to turn off credential manager provider (confirmation). [CHAR LIMIT=60] -->
     <string name="credman_confirmation_message_positive_button">Turn off</string>
@@ -10657,6 +11065,8 @@
 
     <!-- Title for preference showing the primary account on the device [CHAR LIMIT=60]-->
     <string name="my_device_info_account_preference_title">Account</string>
+    <!-- Summary for preference showing the number of the accounts. [CHAR LIMIT=NONE]-->
+    <string name="my_device_info_account_preference_summary">%d accounts</string>
     <!-- Title for preference showing the name of the device. [CHAR LIMIT=60]-->
     <string name="my_device_info_device_name_preference_title">Device name</string>
 
@@ -10693,6 +11103,9 @@
     <!-- Title with application label for media output settings. [CHAR LIMIT=NONE] -->
     <string name="media_output_label_title">Play <xliff:g id="label" example="Music Player">%s</xliff:g> on</string>
 
+    <!-- Title for media output settings without media is playing -->
+    <string name="media_output_title_without_playing">Audio will play on</string>
+
     <!-- Summary for media output default settings. (this device) [CHAR LIMIT=30] -->
     <string name="media_output_default_summary">This device</string>
 
@@ -10725,9 +11138,6 @@
     <!-- Title for detail page of wifi network [CHAR LIMIT=30] -->
     <string name="pref_title_network_details">Network details</string>
 
-    <!--  Warning text about the visibility of device name. [CHAR LIMIT=NONE] -->
-    <string name="about_phone_device_name_warning">Your device name is visible to apps on your phone. 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>
-
     <!-- Title for Connected device shortcut [CHAR LIMIT=30] -->
     <string name="devices_title">Devices</string>
 
@@ -10952,7 +11362,7 @@
     <string name="mobile_network_sim_name_rename">Save</string>
     <!-- Label for the on position of a switch on the mobile network details page which allows
          disabling/enabling a SIM. The SIM is enabled in this state. [CHAR LIMIT=40] -->
-    <string name="mobile_network_use_sim_on">Use SIM</string>
+    <string name="mobile_network_use_sim_on">Use this SIM</string>
     <!-- Label for the off position of a switch on the mobile network details page which allows
          disabling/enabling a SIM. The SIM is disabled in this state. [CHAR LIMIT=40] -->
     <string name="mobile_network_use_sim_off">Off</string>
@@ -10973,7 +11383,7 @@
 
     <!-- Mobile network details page. Label for an option that lets the user delete an eSIM from
          the device. [CHAR LIMIT=60] -->
-    <string name="mobile_network_erase_sim">Erase SIM</string>
+    <string name="mobile_network_erase_sim">Erase eSIM</string>
 
     <!-- Title for preferred network type [CHAR LIMIT=NONE] -->
     <string name="preferred_network_mode_title">Preferred network type</string>
@@ -11018,6 +11428,43 @@
     <string name="mobile_data_usage_title">App data usage</string>
     <!-- Summary to show the current network mode is invalid. [CHAR LIMIT=NONE]-->
     <string name="mobile_network_mode_error">Invalid Network Mode <xliff:g id="networkModeId" example="0">%1$d</xliff:g>. Ignore.</string>
+    <!-- Title for _satellite_setting_preference_layout in mobile network settings [CHAR LIMIT=60] -->
+    <string name="satellite_setting_title">Satellite messaging</string>
+    <!-- Summary for _satellite_setting_preference_layout. [CHAR LIMIT=NONE]-->
+    <string name="satellite_setting_enabled_summary">Send and receive text messages by satellite. Included with your account.</string>
+    <!-- Summary for _satellite_setting_preference_layout. [CHAR LIMIT=NONE]-->
+    <string name="satellite_setting_disabled_summary">Send and receive text messages by satellite. Non included with your account.</string>
+    <!-- Search keywords for "_satellite_setting_preference_layout" [CHAR_LIMIT=NONE] -->
+    <string name="keywords_satellite_setting">Satellite messaging</string>
+    <!-- Category name "About satellite messaging" [CHAR_LIMIT=NONE] -->
+    <string name="category_name_about_satellite_messaging">About satellite messaging</string>
+    <!-- Summary for category "About satellite messaging" [CHAR_LIMIT=NONE] -->
+    <string name="title_about_satellite_setting">You can send and receive text messages by satellite as part of an eligible <xliff:g id="carrier_name" example="T-Mobile">%1$s</xliff:g> account</string>
+    <!-- Category title "Your mobile plan" [CHAR_LIMIT=NONE] -->
+    <string name="category_title_your_satellite_plan">Your <xliff:g id="carrier_name" example="T-Mobile">%1$s</xliff:g> plan</string>
+    <!-- Title for category "Your mobile plan when satellite is included in plan" [CHAR_LIMIT=NONE] -->
+    <string name="title_have_satellite_plan">Satellite messaging is included with your account</string>
+    <!-- Title for category "Your mobile plan when satellite is not included in plan" [CHAR_LIMIT=NONE] -->
+    <string name="title_no_satellite_plan">Satellite messaging isn\u2019t included with your account</string>
+    <!-- text view add satellite messaging" [CHAR_LIMIT=NONE] -->
+    <string name="summary_add_satellite_setting">Add satellite messaging</string>
+    <!-- Category name "How it works" [CHAR_LIMIT=NONE] -->
+    <string name="category_name_how_it_works">How it works</string>
+    <!-- Title for satellite connection guide [CHAR_LIMIT=NONE] -->
+    <string name="title_satellite_connection_guide">When you don\u2019t have a mobile network</string>
+    <!-- Summary for satellite connection guide [CHAR_LIMIT=NONE] -->
+    <string name="summary_satellite_connection_guide">Your phone will auto-connect to a satellite. For the best connection, keep a clear view of the sky.</string>
+    <!-- Title for satellite supported service [CHAR_LIMIT=NONE] -->
+    <string name="title_supported_service">After your phone connects to a satellite</string>
+    <!-- Summary for satellite supported service [CHAR_LIMIT=NONE] -->
+    <string name="summary_supported_service">You can text anyone, including emergency services. Your phone will reconnect to a mobile network when available.</string>
+    <!-- learn more text - more about satellite messaging [CHAR_LIMIT=NONE] -->
+    <string name="satellite_setting_summary_more_information">Satellite messaging may take longer and is available only in some areas, Weather and certain structures may affect your satellite connection. Calling by satellite isn\u2019t available.\n\nIt may take some time for changes to your account to show in Settings. Contact <xliff:g id="carrier_name" example="T-Mobile">%1$s</xliff:g> for details.</string>
+    <!-- more about satellite messaging [CHAR_LIMIT=NONE] -->
+    <string name="more_about_satellite_messaging">More about satellite messaging</string>
+    <!-- URL for more info about satellite messaging [CHAR LIMIT=60] -->
+    <string name="more_info_satellite_messaging_link" translatable="false"></string>
+
     <!-- Title for Apn settings in mobile network settings [CHAR LIMIT=60] -->
     <string name="mobile_network_apn_title">Access Point Names</string>
     <!-- Search keywords for "Access Point Names" [CHAR_LIMIT=NONE] -->
@@ -11041,11 +11488,11 @@
     <!-- Title of confirmation dialog asking the user if they want to switch subscription. [CHAR_LIMIT=NONE] -->
     <string name="sim_action_switch_sub_dialog_mep_title">Use <xliff:g id="carrier_name" example="Google Fi">%1$s</xliff:g>?</string>
     <!-- Body text of confirmation dialog for switching subscription that involves switching SIM slots. Indicates that only one SIM can be active at a time. Also that switching will not cancel the user's mobile service plan. [CHAR_LIMIT=NONE] -->
-    <string name="sim_action_switch_sub_dialog_text">Only one SIM can be active at a time.\n\nSwitching to <xliff:g id="to_carrier_name" example="Google Fi">%1$s</xliff:g> won\u2019t cancel your <xliff:g id="from_carrier_name" example="Sprint">%2$s</xliff:g> service.</string>
-    <!-- Body text of confirmation dialog for switching subscription between two eSIM profiles. Indicates that only 1 eSIM can be active at a time. Also that switching will not cancel the user's mobile service plan. [CHAR_LIMIT=NONE] -->
-    <string name="sim_action_switch_sub_dialog_text_downloaded">Only 1 eSIM can be active at a time.\n\nSwitching to <xliff:g id="to_carrier_name" example="Google Fi">%1$s</xliff:g> won\u2019t cancel your <xliff:g id="from_carrier_name" example="Sprint">%2$s</xliff:g> service.</string>
+    <string name="sim_action_switch_sub_dialog_text">Only 1 SIM can be on at a time.\n\nSwitching to <xliff:g id="to_carrier_name" example="Google Fi">%1$s</xliff:g> won\u2019t cancel your <xliff:g id="from_carrier_name" example="Sprint">%2$s</xliff:g> service.</string>
+    <!-- Body text of confirmation dialog for switching subscription between two eSIM profiles. Indicates that only 1 eSIM can be on at a time. Also that switching will not cancel the user's mobile service plan. [CHAR_LIMIT=NONE] -->
+    <string name="sim_action_switch_sub_dialog_text_downloaded">Only 1 eSIM can be on at a time.\n\nSwitching to <xliff:g id="to_carrier_name" example="Google Fi">%1$s</xliff:g> won\u2019t cancel your <xliff:g id="from_carrier_name" example="Sprint">%2$s</xliff:g> service.</string>
     <!-- Body text of confirmation dialog for switching subscription between two eSIM profiles. Indicates that only one SIM can be active at a time. Also that switching will not cancel the user's mobile service plan. [CHAR_LIMIT=NONE] -->
-    <string name="sim_action_switch_sub_dialog_text_single_sim">Only one SIM can be active at a time.\n\nSwitching won\u2019t cancel your <xliff:g id="to_carrier_name" example="Google Fi">%1$s</xliff:g> service.</string>
+    <string name="sim_action_switch_sub_dialog_text_single_sim">Only 1 SIM can be on at a time.\n\nSwitching won\u2019t cancel your <xliff:g id="to_carrier_name" example="Google Fi">%1$s</xliff:g> service.</string>
     <!-- Body text of confirmation dialog for switching subscription between two eSIM profiles. Indicates that only one downloaded SIM can be active at a time. Also that switching will not cancel the user's mobile service plan. [CHAR_LIMIT=NONE] -->
     <string name="sim_action_switch_sub_dialog_mep_text">You can use 2 SIMs at a time. To use <xliff:g id="carrier_name" example="Google Fi">%1$s</xliff:g>, turn off another SIM.</string>
     <!-- Text of confirm button in the confirmation dialog asking the user if they want to switch subscription. [CHAR_LIMIT=NONE] -->
@@ -11088,11 +11535,63 @@
     <string name="sim_action_cancel">Cancel</string>
     <!-- Button which will disconnect the user from one mobile network and immediately connect to another. [CHAR LIMIT=30] -->
     <string name="sim_switch_button">Switch</string>
+    <!-- Button text to turn off the sim. [CHAR LIMIT=30] -->
+    <string name="sim_action_turn_off">Turn off</string>
     <!-- Title of DSDS activation failure dialog [CHAR LIMIT=40] -->
     <string name="dsds_activation_failure_title">Can\u2019t activate SIM</string>
     <!-- Body text of DSDS activation failure dialog. Users could toggle the selected SIM again or reboot to recover. [CHAR LIMIT=NONE] -->
     <string name="dsds_activation_failure_body_msg2">Try turning on the SIM again. If the problem continues, restart your device.</string>
 
+    <!-- Strings for dual SIM onboarding -->
+    <!-- Title of dual sim onboarding's bottom sheets. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_bottomsheets_title">Set up your SIM</string>
+    <!-- Body text of dual sim onboarding's bottom sheets. [CHAR LIMIT=NONE] -->
+    <string name="sim_onboarding_bottomsheets_msg">Set your mobile network preferences to use multiple SIMs on this device</string>
+    <!-- Title of dual sim onboarding's label sim page. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_label_sim_title">Label your SIMs</string>
+    <!-- Body text of dual sim onboarding's label sim page. [CHAR LIMIT=NONE] -->
+    <string name="sim_onboarding_label_sim_msg">You’ll see these labels when making calls, sending texts, and using data, and in Settings</string>
+    <!-- Title of dual sim onboarding's label sim dialog. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_label_sim_dialog_title">SIM label</string>
+    <!-- Label text of dual sim onboarding's label sim dialog. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_label_sim_dialog_label">Label</string>
+    <!-- Title of dual sim onboarding's select sim page. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_select_sim_title">Select which SIMs to use</string>
+    <!-- Body text of dual sim onboarding's select sim page. [CHAR LIMIT=NONE] -->
+    <string name="sim_onboarding_select_sim_msg">You can use 2 SIMs at a time</string>
+    <!-- Title of dual sim onboarding's primary sim page. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_primary_sim_title">Set your primary SIMs</string>
+    <!-- Body text of dual sim onboarding's primary sim page. [CHAR LIMIT=NONE] -->
+    <string name="sim_onboarding_primary_sim_msg">Choose which SIMs to use by default for calls, texts, and data</string>
+
+    <!-- Title of primary sim at SIMs page. [CHAR LIMIT=30] -->
+    <string name="primary_sim_title">Your primary SIMs</string>
+
+    <!-- Title of Calls item/dialog at dual sim onboarding's primary sim page or SIMs page. [CHAR LIMIT=30] -->
+    <string name="primary_sim_calls_title">Calls</string>
+    <!-- Title of Texts item/dialog at dual sim onboarding's primary sim page or SIMs page. [CHAR LIMIT=30] -->
+    <string name="primary_sim_texts_title">Texts</string>
+    <!-- Title of automatic data switching at dual sim onboarding's primary sim page or SIMs page. [CHAR LIMIT=30] -->
+    <string name="primary_sim_automatic_data_title">Automatic data switching</string>
+    <!-- Body text of automatic data switching at dual sim onboarding's primary sim page or SIMs page. [CHAR LIMIT=NONE] -->
+    <string name="primary_sim_automatic_data_msg">Use data from either SIM depending on coverage and availability</string>
+
+    <!-- Text of phone number item when the sim is data only. [CHAR LIMIT=NONE] -->
+    <string name="sim_onboarding_phoneNumber_data_only">Data only</string>
+
+    <!-- Button on the dual sim onboarding to start to set up sim. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_setup">Set up</string>
+    <!-- Button on the dual sim onboarding to go to next page. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_next">Next</string>
+    <!-- Text on the progressbar of dual sim onboarding for turning sim on. [CHAR LIMIT=30] -->
+    <string name="sim_onboarding_progressbar_turning_sim_on">Turning on <xliff:g id="carrier_name" example="Google Fi">%1$s</xliff:g>&#8230;</string>
+    <!-- Title of service provider name(SPN) at mobile network settings page. [CHAR LIMIT=30] -->
+    <string name="mobile_network_spn_title">Mobile network</string>
+    <!-- Title of phone number at mobile network settings page. [CHAR LIMIT=30] -->
+    <string name="mobile_network_phone_number_title">Phone number</string>
+    <!-- Title of SIM label and color editor dialog at mobile network settings page. [CHAR LIMIT=30] -->
+    <string name="mobile_network_sim_label_color_title">SIM label and color</string>
+
     <!--  Strings for SIM push notifications  -->
     <!-- Category name of the notifications related to SIM setup. [CHAR LIMIT=NONE] -->
     <string name="sim_setup_channel_id">Network activation</string>
@@ -11144,15 +11643,15 @@
     <!-- Title on confirmation dialog asking the user if they want to erase the eSIM from the device. [CHAR_LIMIT=NONE] -->
     <string name="erase_sim_dialog_title">Erase this eSIM?</string>
     <!-- Body text in confirmation dialog indicating what erasing a SIM entails. [CHAR_LIMIT=NONE] -->
-    <string name="erase_sim_dialog_text">Erasing this SIM removes <xliff:g id="carrier_name_a" example="Google Fi">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="carrier_name_b" example="Google Fi">%1$s</xliff:g> won\'t be canceled.</string>
+    <string name="erase_sim_dialog_text">This removes <xliff:g id="carrier_name_a" example="Google Fi">%1$s</xliff:g> service from this device, but your <xliff:g id="carrier_name_b" example="Google Fi">%1$s</xliff:g> plan won\'t be canceled.</string>
     <!-- Button label to erase the eSIM [CHAR_LIMIT=20] -->
     <string name="erase_sim_confirm_button">Erase</string>
     <!-- Status message indicating the device is in the process of erasing the SIM. [CHAR_LIMIT=NONE] -->
-    <string name="erasing_sim">Erasing SIM&#8230;</string>
+    <string name="erasing_sim">Erasing eSIM&#8230;</string>
     <!-- Title of error message indicating the device could not erase the SIM. [CHAR_LIMIT=NONE] -->
-    <string name="erase_sim_fail_title">Can\'t erase SIM</string>
+    <string name="erase_sim_fail_title">Can\'t erase eSIM</string>
     <!-- Body text of error message indicating the device could not erase the SIM due to an error. [CHAR_LIMIT=NONE] -->
-    <string name="erase_sim_fail_text">This SIM can\'t be erased due to an error.\n\nRestart your device and try again.</string>
+    <string name="erase_sim_fail_text">Something went wrong and this eSIM wasn\'t erased.\n\nRestart your device and try again.</string>
 
     <!-- Title for Network connection request Dialog [CHAR LIMIT=60] -->
     <string name="network_connection_request_dialog_title">Connect to device</string>
@@ -11311,15 +11810,6 @@
     <!-- Summary for Wi-Fi calling to explain this feature [CHAR LIMIT=NONE] -->
     <string name="wifi_calling_summary">Use Wi\u2011Fi for calls to improve quality</string>
 
-    <!-- Mobile network settings screen, title of Backup calling setting.  [CHAR LIMIT=NONE] -->
-    <string name="backup_calling_settings_title">Backup calling</string>
-
-    <!-- Backup calling summary.  [CHAR LIMIT=100] -->
-    <string name="backup_calling_setting_summary">If <xliff:g id="backup_calling_operator_text" example="Google Fi">%1$s</xliff:g> is unavailable or roaming, use your mobile data SIM for <xliff:g id="backup_calling_carrier_text" example="Google Fi">%1$s</xliff:g> calls.</string>
-
-    <!-- List of synonyms for the cross SIM calling titles, used to match in settings search [CHAR LIMIT=NONE] -->
-    <string name="keywords_backup_calling">backup calling</string>
-
     <!-- Title for enable MMS notification when trying to receive MMS.  [CHAR LIMIT=40] -->
     <string name="enable_receiving_mms_notification_title">Incoming MMS message</string>
     <!-- Title for enable MMS notification when trying to send MMS.  [CHAR LIMIT=40] -->
@@ -11346,7 +11836,23 @@
     <!-- Developer Settings: Search keywords for the Profile HWUI rendering. [CHAR_LIMIT=NONE] -->
     <string name="track_frame_time_keywords">GPU</string>
 
+    <!-- setting Checkbox title whether to boot with 16K page size [CHAR_LIMIT=35] -->
+    <string name="enable_16k_pages">Boot with 16K page size</string>
+    <!-- setting Checkbox summary whether to boot with 16K page size[CHAR_LIMIT=50] -->
+    <string name="enable_16k_pages_summary">Boot device using 16K page size supported kernel</string>
+    <!-- Confirmation dialog title to ensure user wishes to enable 16K page size -->
+    <string name="confirm_enable_16k_pages_title">Reboot with 16KB pages compatible kernel?</string>
+    <!-- Warning dialog message to confirm user wishes to enable 16K page size -->
+    <string name="confirm_enable_16k_pages_text">WARNING: Some applications may not be compatible with this mode. Device will reboot after confirmation.</string>
+    <!-- dialog title to confirm user wishes to revert to 4k page size kernel -->
+    <string name="confirm_enable_4k_pages_title">Reboot with 4KB pages compatible kernel?</string>
+    <!-- dialog message to confirm user wishes to enable 4K page size -->
+    <string name="confirm_enable_4k_pages_text">Device will reboot after confirmation.</string>
+    <!-- Toast message when 16k OTA update fails -->
+    <string name="toast_16k_update_failed_text">Failed to update kernel to 16KB pages compatible kernel.</string>
+    <string name="progress_16k_ota_title">Applying change</string>
     <!-- DSU Loader. Do not translate. -->
+
     <string name="dsu_loader_title" translatable="false">DSU Loader</string>
     <!-- DSU Loader Description. Do not translate. -->
     <string name="dsu_loader_description" translatable="false">Load a Dynamic System Update Image</string>
@@ -11484,7 +11990,7 @@
     <!-- Description of toggle to enable or disable the media resumption on lockscreen [CHAR LIMIT=NONE]-->
     <string name="media_controls_lockscreen_description">To quickly resume playback, media player stays open on lock screen</string>
     <!-- Title of toggle to enable or disable media recommendations in quick settings [CHAR LIMIT=NONE] -->
-    <string name="media_controls_recommendations_title">Show media recommendations</string>
+    <string name="media_controls_recommendations_title">Show Assistant media recommendations</string>
     <!-- Description of toggle to enable or disable media recommendations based on user's activity [CHAR LIMIT=NONE] -->
     <string name="media_controls_recommendations_description">Based on your activity</string>
     <!-- Subtext for media settings when the player will be hidden [CHAR LIMIT=50] -->
@@ -11550,9 +12056,9 @@
     <!-- Provider Model: title of eSIMs category. [CHAR LIMIT=50] -->
     <string name="downloaded_sims_category_title">eSIMs</string>
     <!-- Provider Model: summary of Active in SIM category. [CHAR LIMIT=50] -->
-    <string name="sim_category_active_sim">Active</string>
+    <string name="sim_category_active_sim">On</string>
     <!-- Provider Model: summary of Inactive in SIM category. [CHAR LIMIT=50] -->
-    <string name="sim_category_inactive_sim">Inactive</string>
+    <string name="sim_category_inactive_sim">Off</string>
     <!-- Provider Model: summary of default config. [CHAR LIMIT=50] -->
     <string name="sim_category_default_active_sim">\u0020/ Default for <xliff:g name="default_sim_config" example=" / Default for calls">%1$s</xliff:g></string>
     <!-- Provider Model: summary of default call. [CHAR LIMIT=50] -->
@@ -12080,9 +12586,9 @@
     <string name="bluetooth_details_head_tracking_summary">Audio changes as you move your head to sound more natural</string>
 
     <!-- The title of CDM Permissions Sync -->
-    <string name="bluetooth_details_permissions_sync_title">Sync permissions</string>
+    <string name="bluetooth_details_permissions_sync_title">Sync permissions from phone</string>
     <!-- The summary of CDM Permissions Sync -->
-    <string name="bluetooth_details_permissions_sync_summary">Give <xliff:g id="remote_device_name" example="Pixel Watch">%1$s</xliff:g> the same app permissions that you’ve allowed on <xliff:g id="local_device_name" example="Pixel 6">%2$s</xliff:g></string>
+    <string name="bluetooth_details_permissions_sync_summary">Give your watch the same app permissions that you’ve allowed on this phone</string>
 
     <!-- The title of the bluetooth audio device type selection [CHAR LIMIT=none] -->
     <string name="bluetooth_details_audio_device_types_title">Audio Device Type</string>
@@ -12310,4 +12816,74 @@
 
     <!-- Warning message when we try to dock an app not supporting multiple instances split into multiple sides [CHAR LIMIT=NONE] -->
     <string name="dock_multi_instances_not_supported_text">"This app can only be opened in 1 window"</string>
-</resources>
+
+    <!-- Shown when an accessibility feature is turned on. Note: for gendered languages, suggest to translate as "Feature on" because the accessibility feature it refers to can be in any gender. [CHAR LIMIT=NONE] -->
+    <string name="generic_accessibility_service_on">On</string>
+    <!-- Shown when an accessibility feature is turned off. Note: for gendered languages, suggest to translate as "Feature off" because the accessibility feature it refers to can be in any gender. [CHAR LIMIT=NONE] -->
+    <string name="generic_accessibility_service_off">Off</string>
+    <!-- Shows when the shortcut of an accessibility feature is turned off. The "off" refers to the state of "shortcut". Note: for gendered languages, suggest to translate as "Shortcut off". [CHAR LIMIT=NONE] -->
+    <string name="generic_accessibility_feature_shortcut_off">Off</string>
+    <!--
+        Summary for the disabled state of the accessibility shortcut.
+        This is shown as a summary for "[Service] shortcut" from the string resource accessibility_shortcut_title,
+        where "off" refers to the state of "shortcut" and
+        should match the same gender as the noun used in the string accessibility_shortcut_title.
+    -->
+    <string name="accessibility_shortcut_state_off">Off</string>
+
+    <!-- Representing daltonizer (color filter) feature is turned on -->
+    <string name="daltonizer_state_on">On</string>
+    <!-- Representing daltonizer (color filter) feature is turned off -->
+    <string name="daltonizer_state_off">Off</string>
+    <!-- Representing color inversion feature is turned on -->
+    <string name="color_inversion_state_on">On</string>
+    <!-- Representing color inversion feature is turned off -->
+    <string name="color_inversion_state_off">Off</string>
+    <!-- The color inversion feature summary displayed as a subtext as an item in a list. -->
+    <string name="color_inversion_feature_summary">Turns light screens dark and dark screens light</string>
+    <!-- Summary for the accessibility preference screen to enable screen magnification. [CHAR LIMIT=none] -->
+    <string name="magnification_feature_summary">Zoom in on the screen</string>
+    <!-- Summary of the AutoClick feature disabled state. -->
+    <string name="autoclick_disabled">Off</string>
+    <!-- Summary of the show captions preference disabled state. -->
+    <string name="show_captions_disabled">Off</string>
+    <!-- Summary of the show captions preference enabled state. -->
+    <string name="show_captions_enabled">On</string>
+    <!-- Summary of the Live Caption disabled state. -->
+    <string name="live_caption_disabled">Off</string>
+    <!-- Summary of the Live Caption enabled state. -->
+    <string name="live_caption_enabled">On</string>
+
+    <!--  Warning text about the visibility of device name. [CHAR LIMIT=NONE] -->
+    <string name="about_phone_device_name_warning">Your device name is visible to apps you installed. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot.</string>
+
+    <!-- Developer settings: grammatical gender title [CHAR LIMIT=50]-->
+    <string name="grammatical_gender_title">Grammatical gender</string>
+    <!-- Developer settings: select Grammatical gender dialog title [CHAR LIMIT=50]-->
+    <string name="grammatical_gender_dialog_title">Select Grammatical gender</string>
+
+    <!-- Do not translate. Developer settings: Title for the screen allowing user to control Quarantined apps [CHAR LIMIT=50] -->
+    <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>
+
+    <!-- Content description for setting password complete-->
+    <string name="accessibility_setup_password_complete">Password is now set up</string>
+
+    <!-- Authority of the content provider that support methods restartPhoneProcess and restartRild. Will be overlaid by OEM.-->
+    <string name="reset_telephony_stack_content_provider_authority" translatable="false"></string>
+</resources>
\ No newline at end of file
diff --git a/res/values/styles.xml b/res/values/styles.xml
index ee78a45..fbc6d7f 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,14 @@
         <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">center</item>
+        <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textColor">?android:attr/textColorPrimary</item>
     </style>
 
     <style name="ContextualCardStyle">
@@ -949,8 +949,62 @@
     </style>
 
     <style name="ScreenLockPasswordHintTextFontStyle">
+        <item name="android:textColor">?android:attr/colorError</item>
+        <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>
+
+    <style name="CredentialManagerChangeButton" parent="@style/ActionPrimaryButton">
+        <item name="android:fontFamily">google-sans-medium</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textAllCaps">false</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:paddingHorizontal">24dp</item>
+    </style>
+
+    <style name="CredentialManagerOpenButton"
+        parent="@style/Widget.AppCompat.Button">
+        <item name="android:theme">@style/RoundedCornerThemeOverlay</item>
+        <item name="android:fontFamily">google-sans-medium</item>
+        <item name="android:textSize">14sp</item>
+        <item name="android:textAllCaps">false</item>
+        <item name="android:singleLine">true</item>
+        <item name="android:background">@null</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_audio_routing_fragment.xml b/res/xml/accessibility_audio_routing_fragment.xml
index 89fad0a..51129d6 100644
--- a/res/xml/accessibility_audio_routing_fragment.xml
+++ b/res/xml/accessibility_audio_routing_fragment.xml
@@ -46,10 +46,10 @@
         android:entries="@array/bluetooth_audio_routing_titles"
         android:entryValues="@array/bluetooth_audio_routing_values"
         android:summary="%s"
-        android:key="audio_routing_system_sounds"
+        android:key="audio_routing_notification"
         android:persistent="false"
-        android:title="@string/bluetooth_system_sounds_title"
-        settings:controller="com.android.settings.accessibility.HearingDeviceSystemSoundsRoutingPreferenceController" />
+        android:title="@string/bluetooth_notification_title"
+        settings:controller="com.android.settings.accessibility.HearingDeviceNotificationRoutingPreferenceController" />
 
     <com.android.settings.accessibility.AccessibilityFooterPreference
         android:key="hearing_device_footer"
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..a500b72 100644
--- a/res/xml/accessibility_color_and_motion.xml
+++ b/res/xml/accessibility_color_and_motion.xml
@@ -49,7 +49,15 @@
         settings:controller="com.android.settings.display.DarkUIPreferenceController"
         settings:searchable="false"/>
 
-    <SwitchPreference
+    <SwitchPreferenceCompat
+        android:icon="@drawable/ic_dark_ui"
+        android:key="toggle_force_invert"
+        android:persistent="false"
+        android:summary="@string/accessibility_force_invert_summary"
+        android:title="@string/accessibility_force_invert_title"
+        settings:controller="com.android.settings.accessibility.ToggleForceInvertPreferenceController"/>
+
+    <SwitchPreferenceCompat
         android:icon="@drawable/ic_accessibility_animation"
         android:key="toggle_disable_animations"
         android:persistent="false"
@@ -57,7 +65,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_edit_shortcuts.xml b/res/xml/accessibility_edit_shortcuts.xml
new file mode 100644
index 0000000..06cbedd
--- /dev/null
+++ b/res/xml/accessibility_edit_shortcuts.xml
@@ -0,0 +1,79 @@
+<?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">
+
+    <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
+        android:key="@string/accessibility_shortcut_fab_pref"
+        android:persistent="false"
+        android:selectable="true"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.FloatingButtonShortcutOptionController" />
+
+    <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
+        android:key="@string/accessibility_shortcut_gesture_pref"
+        android:persistent="false"
+        android:selectable="true"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.GestureShortcutOptionController" />
+
+    <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
+        android:key="@string/accessibility_shortcut_nav_button_pref"
+        android:persistent="false"
+        android:selectable="true"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.NavButtonShortcutOptionController" />
+
+    <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
+        android:key="@string/accessibility_shortcut_volume_keys_pref"
+        android:persistent="false"
+        android:selectable="true"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.VolumeKeysShortcutOptionController" />
+
+    <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
+        android:key="@string/accessibility_shortcut_two_fingers_double_tap_pref"
+        android:persistent="false"
+        android:selectable="true"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.TwoFingersDoubleTapShortcutOptionController" />
+
+    <Preference
+        android:icon="@drawable/ic_keyboard_arrow_down"
+        android:key="@string/accessibility_shortcuts_advanced_collapsed"
+        android:persistent="false"
+        android:selectable="true"
+        android:title="@string/accessibility_shortcut_edit_dialog_title_advance"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.AdvancedShortcutsPreferenceController" />
+
+    <com.android.settings.accessibility.shortcuts.ShortcutOptionPreference
+        android:key="@string/accessibility_shortcut_triple_tap_pref"
+        android:persistent="false"
+        android:selectable="true"
+        settings:allowDividerAbove="false"
+        settings:allowDividerBelow="false"
+        settings:controller="com.android.settings.accessibility.shortcuts.TripleTapShortcutOptionController" />
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/accessibility_hearing_aids.xml b/res/xml/accessibility_hearing_aids.xml
index b13eb74..57a0fe2 100644
--- a/res/xml/accessibility_hearing_aids.xml
+++ b/res/xml/accessibility_hearing_aids.xml
@@ -28,11 +28,10 @@
         settings:controller="com.android.settings.accessibility.AvailableHearingDevicePreferenceController"/>
 
     <com.android.settingslib.RestrictedPreference
-        android:key="add_bt_devices"
+        android:key="hearing_device_add_bt_devices"
         android:title="@string/bluetooth_pairing_pref_title"
         android:icon="@drawable/ic_add_24dp"
         android:summary="@string/connected_device_add_device_summary"
-        android:fragment="com.android.settings.accessibility.HearingDevicePairingDetail"
         settings:userRestriction="no_config_bluetooth"
         settings:useAdminDisabledSummary="true"
         settings:controller="com.android.settings.connecteddevice.AddDevicePreferenceController"/>
@@ -53,7 +52,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_magnification_service_settings.xml b/res/xml/accessibility_magnification_service_settings.xml
deleted file mode 100644
index e80d936..0000000
--- a/res/xml/accessibility_magnification_service_settings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2019 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:key="magnification_mode_screen"
-    android:persistent="false"
-    android:title="@string/accessibility_magnification_service_settings_title"
-    settings:searchable="false">
-
-    <Preference
-        android:key="magnification_mode"
-        android:persistent="false"
-        android:title="@string/accessibility_magnification_mode_title"
-        settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.MagnificationModePreferenceController" />
-
-</PreferenceScreen>
diff --git a/res/xml/accessibility_magnification_settings.xml b/res/xml/accessibility_magnification_settings.xml
deleted file mode 100644
index 83ce79b..0000000
--- a/res/xml/accessibility_magnification_settings.xml
+++ /dev/null
@@ -1,33 +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.
--->
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/accessibility_screen_magnification_title"
-    settings:searchable="false">
-    <Preference
-        android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
-        android:key="screen_magnification_gestures_preference_screen"
-        android:title="@string/accessibility_screen_magnification_gestures_title"
-        settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.MagnificationGesturesPreferenceController"/>
-    <Preference
-        android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
-        android:key="screen_magnification_navbar_preference_screen"
-        android:title="@string/accessibility_screen_magnification_navbar_title"
-        settings:searchable="false"
-        settings:controller="com.android.settings.accessibility.MagnificationNavbarPreferenceController"/>
-</PreferenceScreen>
diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml
index 1110914..0f4065b 100644
--- a/res/xml/accessibility_settings.xml
+++ b/res/xml/accessibility_settings.xml
@@ -19,7 +19,8 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:key="accessibility_settings_screen"
     android:persistent="false"
-    android:title="@string/accessibility_settings">
+    android:title="@string/accessibility_settings"
+    settings:keywords="@string/keywords_accessibility">
 
     <PreferenceCategory
         android:key="user_installed_services_category"
@@ -62,7 +63,7 @@
             settings:controller="com.android.settings.accessibility.ReduceBrightColorsPreferenceController"/>
 
         <Preference
-            android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
+            android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragment"
             android:key="magnification_preference_screen"
             android:icon="@drawable/ic_accessibility_magnification"
             android:persistent="false"
@@ -140,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_tap_assistance.xml b/res/xml/accessibility_tap_assistance.xml
index 22667b4..d2ec653 100644
--- a/res/xml/accessibility_tap_assistance.xml
+++ b/res/xml/accessibility_tap_assistance.xml
@@ -27,14 +27,16 @@
         android:summary="%s"
         android:persistent="false"
         android:title="@string/accessibility_long_press_timeout_preference_title"
-        settings:controller="com.android.settings.accessibility.SelectLongPressTimeoutPreferenceController"/>
+        settings:controller="com.android.settings.accessibility.SelectLongPressTimeoutPreferenceController"
+        settings:keywords="@string/keywords_touch_and_hold_delay"/>
 
     <Preference
         android:fragment="com.android.settings.accessibility.AccessibilityControlTimeoutPreferenceFragment"
         android:key="accessibility_control_timeout_preference_fragment"
         android:persistent="false"
         android:title="@string/accessibility_setting_item_control_timeout_title"
-        settings:controller="com.android.settings.accessibility.AccessibilityTimeoutPreferenceController"/>
+        settings:controller="com.android.settings.accessibility.AccessibilityTimeoutPreferenceController"
+        settings:keywords="@string/keywords_accessibility_timeout"/>
 
     <Preference
         android:fragment="com.android.settings.accessibility.ToggleAutoclickPreferenceFragment"
diff --git a/res/xml/accessibility_text_reading_options.xml b/res/xml/accessibility_text_reading_options.xml
index 8a09f67..0711a3f 100644
--- a/res/xml/accessibility_text_reading_options.xml
+++ b/res/xml/accessibility_text_reading_options.xml
@@ -45,17 +45,21 @@
         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"
+        settings:controller=
+            "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"
-        android:title="@string/accessibility_toggle_high_text_contrast_preference_title" />
+        android:title="@string/accessibility_toggle_high_text_contrast_preference_title"
+        settings:controller=
+            "com.android.settings.accessibility.HighTextContrastPreferenceController" />
 
     <com.android.settings.accessibility.TextReadingResetPreference
         android:key="reset"
diff --git a/res/xml/accessibility_vibration_intensity_settings.xml b/res/xml/accessibility_vibration_intensity_settings.xml
index 7b08fe0..f9a5578 100644
--- a/res/xml/accessibility_vibration_intensity_settings.xml
+++ b/res/xml/accessibility_vibration_intensity_settings.xml
@@ -20,23 +20,23 @@
     android:title="@string/accessibility_vibration_settings_title">
 
     <com.android.settingslib.widget.MainSwitchPreference
-        android:key="vibration_main_switch"
+        android:key="vibration_intensity_switch_main"
         android:title="@string/accessibility_vibration_primary_switch_title"
         app:keywords="@string/keywords_accessibility_vibration_primary_switch"
         app:controller="com.android.settings.accessibility.VibrationMainSwitchPreferenceController"/>
 
     <PreferenceCategory
-        android:key="accessibility_call_vibration_category"
+        android:key="vibration_intensity_category_call"
         android:title="@string/accessibility_call_vibration_category_title">
 
         <com.android.settings.widget.SeekBarPreference
-            android:key="ring_vibration_preference_screen"
+            android:key="vibration_intensity_preference_ring"
             android:title="@string/accessibility_ring_vibration_title"
             app:keywords="@string/keywords_ring_vibration"
             app:controller="com.android.settings.accessibility.RingVibrationIntensityPreferenceController" />
 
-        <SwitchPreference
-            android:key="ramping_ringer"
+        <SwitchPreferenceCompat
+            android:key="vibration_intensity_preference_ramping_ringer"
             android:title="@string/vibrate_when_ringing_option_ramping_ringer"
             app:keywords="@string/keywords_ramping_ringer_vibration"
             app:controller="com.android.settings.accessibility.VibrationRampingRingerTogglePreferenceController"/>
@@ -44,17 +44,17 @@
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="accessibility_notification_alarm_vibration_category"
+        android:key="vibration_intensity_category_notification_alarm"
         android:title="@string/accessibility_notification_alarm_vibration_category_title">
 
         <com.android.settings.widget.SeekBarPreference
-            android:key="notification_vibration_preference_screen"
+            android:key="vibration_intensity_preference_notification"
             android:title="@string/accessibility_notification_vibration_title"
             app:keywords="@string/keywords_notification_vibration"
             app:controller="com.android.settings.accessibility.NotificationVibrationIntensityPreferenceController" />
 
         <com.android.settings.widget.SeekBarPreference
-            android:key="alarm_vibration_preference_screen"
+            android:key="vibration_intensity_preference_alarm"
             android:title="@string/accessibility_alarm_vibration_title"
             app:keywords="@string/keywords_alarm_vibration"
             app:controller="com.android.settings.accessibility.AlarmVibrationIntensityPreferenceController" />
@@ -62,21 +62,27 @@
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="accessibility_interactive_haptics_category"
+        android:key="vibration_intensity_category_haptics"
         android:title="@string/accessibility_interactive_haptics_category_title">
 
         <com.android.settings.widget.SeekBarPreference
-            android:key="touch_vibration_preference_screen"
+            android:key="vibration_intensity_preference_touch"
             android:title="@string/accessibility_touch_vibration_title"
             app:keywords="@string/keywords_touch_vibration"
             app:controller="com.android.settings.accessibility.HapticFeedbackIntensityPreferenceController" />
 
         <com.android.settings.widget.SeekBarPreference
-            android:key="media_vibration_preference_screen"
+            android:key="vibration_intensity_preference_media"
             android:title="@string/accessibility_media_vibration_title"
             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 25be499..3ce92a6 100644
--- a/res/xml/accessibility_vibration_settings.xml
+++ b/res/xml/accessibility_vibration_settings.xml
@@ -20,23 +20,23 @@
     android:title="@string/accessibility_vibration_settings_title">
 
     <com.android.settingslib.widget.MainSwitchPreference
-        android:key="vibration_main_switch"
+        android:key="vibration_switch_main"
         android:title="@string/accessibility_vibration_primary_switch_title"
         app:keywords="@string/keywords_accessibility_vibration_primary_switch"
         app:controller="com.android.settings.accessibility.VibrationMainSwitchPreferenceController"/>
 
     <PreferenceCategory
-        android:key="accessibility_call_vibration_category"
+        android:key="vibration_category_call"
         android:title="@string/accessibility_call_vibration_category_title">
 
-        <SwitchPreference
-            android:key="ring_vibration_preference_screen"
+        <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
-            android:key="ramping_ringer"
+        <SwitchPreferenceCompat
+            android:key="vibration_preference_ramping_ringer"
             android:title="@string/vibrate_when_ringing_option_ramping_ringer"
             app:keywords="@string/keywords_ramping_ringer_vibration"
             app:controller="com.android.settings.accessibility.VibrationRampingRingerTogglePreferenceController"/>
@@ -44,17 +44,17 @@
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="accessibility_notification_alarm_vibration_category"
+        android:key="vibration_category_notification_alarm"
         android:title="@string/accessibility_notification_alarm_vibration_category_title">
 
-        <SwitchPreference
-            android:key="notification_vibration_preference_screen"
+        <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
-            android:key="alarm_vibration_preference_screen"
+        <SwitchPreferenceCompat
+            android:key="vibration_preference_alarm"
             android:title="@string/accessibility_alarm_vibration_title"
             app:keywords="@string/keywords_alarm_vibration"
             app:controller="com.android.settings.accessibility.AlarmVibrationTogglePreferenceController" />
@@ -62,21 +62,27 @@
     </PreferenceCategory>
 
     <PreferenceCategory
-        android:key="accessibility_interactive_haptics_category"
+        android:key="vibration_category_haptics"
         android:title="@string/accessibility_interactive_haptics_category_title">
 
-        <SwitchPreference
-            android:key="touch_vibration_preference_screen"
+        <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
-            android:key="media_vibration_preference_screen"
+        <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..7266bda 100644
--- a/res/xml/accounts_dashboard_settings_credman.xml
+++ b/res/xml/accounts_dashboard_settings_credman.xml
@@ -26,15 +26,14 @@
         android:order="10"
         android:title="@string/credman_chosen_app_title">
 
-        <com.android.settings.widget.GearPreference
-            android:fragment="com.android.settings.applications.credentials.DefaultCombinedPicker"
+        <com.android.settings.applications.credentials.PrimaryProviderPreference
             android:key="default_credman_autofill_main"
             android:title="@string/credman_chosen_app_title"
             settings:keywords="@string/credman_autofill_keywords">
             <extra
                 android:name="for_work"
                 android:value="false" />
-        </com.android.settings.widget.GearPreference>
+        </com.android.settings.applications.credentials.PrimaryProviderPreference>
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -49,21 +48,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..9473e17 100644
--- a/res/xml/accounts_personal_dashboard_settings_credman.xml
+++ b/res/xml/accounts_personal_dashboard_settings_credman.xml
@@ -27,15 +27,14 @@
         android:order="10"
         android:title="@string/credman_chosen_app_title">
 
-        <com.android.settings.widget.GearPreference
-            android:fragment="com.android.settings.applications.credentials.DefaultCombinedPicker"
+        <com.android.settings.applications.credentials.PrimaryProviderPreference
             android:key="default_credman_autofill_main"
             android:title="@string/credman_chosen_app_title"
             settings:keywords="@string/credman_autofill_keywords">
             <extra
                 android:name="for_work"
                 android:value="false" />
-        </com.android.settings.widget.GearPreference>
+        </com.android.settings.applications.credentials.PrimaryProviderPreference>
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -50,14 +49,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..54db839
--- /dev/null
+++ b/res/xml/accounts_private_dashboard_settings_credman.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="default_service_category"
+        android:order="10"
+        android:title="@string/credman_chosen_app_title">
+
+        <com.android.settings.applications.credentials.PrimaryProviderPreference
+            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.applications.credentials.PrimaryProviderPreference>
+    </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..d649940 100644
--- a/res/xml/accounts_work_dashboard_settings_credman.xml
+++ b/res/xml/accounts_work_dashboard_settings_credman.xml
@@ -27,15 +27,14 @@
         android:order="10"
         android:title="@string/credman_chosen_app_title">
 
-        <com.android.settings.widget.GearPreference
-            android:fragment="com.android.settings.applications.credentials.DefaultCombinedPickerWork"
+        <com.android.settings.applications.credentials.PrimaryProviderPreference
             android:key="default_credman_autofill_main_work"
             android:title="@string/credman_chosen_app_title"
             settings:searchable="false">
             <extra
                 android:name="for_work"
                 android:value="true" />
-        </com.android.settings.widget.GearPreference>
+        </com.android.settings.applications.credentials.PrimaryProviderPreference>
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -50,14 +49,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
deleted file mode 100644
index 0aee621..0000000
--- a/res/xml/all_tether_prefs.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:key="all_tether_prefs_screen"
-    android:title="@string/tether_settings_title_all"
-    settings:searchable="false">
-
-    <PreferenceCategory
-        android:key="wifi_tether_settings_group"
-        android:title="@string/wifi_hotspot_checkbox_text"
-        settings:searchable="false">
-        <com.android.settings.wifi.tether.WifiTetherSsidPreference
-            android:key="wifi_tether_network_name_2"
-            android:title="@string/wifi_hotspot_name_title"
-            android:summary="@string/summary_placeholder"/>
-
-        <com.android.settings.widget.ValidatedEditTextPreference
-            android:key="wifi_tether_network_password_2"
-            android:persistent="false"
-            android:title="@string/wifi_hotspot_password_title"/>
-
-        <SwitchPreference
-            android:key="wifi_tether_auto_turn_off_2"
-            android:title="@string/wifi_hotspot_auto_off_title"
-            android:summary="@string/wifi_hotspot_auto_off_summary"/>
-
-        <ListPreference
-            android:key="wifi_tether_network_ap_band_2"
-            android:title="@string/wifi_hotspot_ap_band_title"/>
-
-        <ListPreference
-            android:key="wifi_tether_security_2"
-            android:title="@string/wifi_security"
-            android:summary="@string/summary_placeholder"
-            android:entries="@array/wifi_tether_security"
-            android:entryValues="@array/wifi_tether_security_values"/>
-    </PreferenceCategory>
-
-    <PreferenceCategory
-        android:key="tethering_options_group"
-        android:title="@string/tethering_interface_options"
-        settings:searchable="false">
-        <SwitchPreference
-            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
-            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
-            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
-            android:key="disable_wifi_tethering"
-            android:title="@string/disable_wifi_hotspot_title"
-            android:summary="@string/summary_placeholder"
-            settings:controller="com.android.settings.network.WifiTetherDisablePreferenceController"
-            settings:keywords="@string/keywords_hotspot_tethering" />
-    </PreferenceCategory>
-
-    <Preference
-        android:key="disabled_on_data_saver_2"
-        android:summary="@string/tether_settings_disabled_on_data_saver"
-        android:selectable="false"
-        settings:searchable="false"
-        settings:allowDividerAbove="true" />
-
-    <com.android.settingslib.widget.FooterPreference
-        android:key="tether_prefs_footer_2"
-        android:selectable="false"
-        settings:searchable="false"/>
-</PreferenceScreen>
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/app_ops_permissions_details.xml b/res/xml/app_ops_permissions_details.xml
index eb8188b..3cbe009 100644
--- a/res/xml/app_ops_permissions_details.xml
+++ b/res/xml/app_ops_permissions_details.xml
@@ -17,7 +17,7 @@
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto">
 
-    <com.android.settings.widget.FilterTouchesSwitchPreference
+    <com.android.settingslib.RestrictedSwitchPreference
         android:key="app_ops_settings_switch" />
 
     <com.android.settingslib.widget.FooterPreference
diff --git a/res/xml/assist_gesture_settings.xml b/res/xml/assist_gesture_settings.xml
deleted file mode 100644
index 2426516..0000000
--- a/res/xml/assist_gesture_settings.xml
+++ /dev/null
@@ -1,36 +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.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:title="@string/assist_gesture_title">
-
-    <com.android.settings.widget.VideoPreference
-        android:key="gesture_assist_video"
-        app:animation="@raw/gesture_assist"
-        app:preview="@drawable/gesture_assist"
-        app:controller="com.android.settings.widget.VideoPreferenceController" />
-
-    <SwitchPreference
-        android:key="gesture_assist"
-        android:title="@string/assist_gesture_title"
-        app:keywords="@string/keywords_assist_gesture_launch"
-        app:controller="com.android.settings.gestures.AssistGestureSettingsPreferenceController"
-        app:allowDividerAbove="true" />
-
-</PreferenceScreen>
diff --git a/res/xml/audio_stream_details_fragment.xml b/res/xml/audio_stream_details_fragment.xml
new file mode 100644
index 0000000..2a84939
--- /dev/null
+++ b/res/xml/audio_stream_details_fragment.xml
@@ -0,0 +1,36 @@
+<?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="Audio stream details">
+
+    <com.android.settingslib.widget.LayoutPreference
+        android:key="audio_stream_header"
+        android:layout="@layout/settings_entity_header"
+        android:selectable="false"
+        settings:allowDividerBelow="true"
+        settings:searchable="false"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamHeaderController" />
+
+    <com.android.settingslib.widget.ActionButtonsPreference
+        android:key="audio_stream_button"
+        settings:allowDividerBelow="true"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamButtonController" />
+
+</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..45781c0
--- /dev/null
+++ b/res/xml/bluetooth_audio_sharing.xml
@@ -0,0 +1,80 @@
+<?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">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="audio_sharing_top_intro"
+        android:title="Let others listen to your media along with you using their own compatible headphones"
+        settings:searchable="false" />
+
+    <PreferenceCategory
+        android:key="audio_sharing_device_volume_group"
+        android:title="Devices listening"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingDeviceVolumeGroupController" />
+
+    <Preference
+        android:icon="@drawable/ic_audio_calls_and_alarms"
+        android:key="calls_and_alarms"
+        android:summary=""
+        android:title="@string/calls_and_alarms_device_title"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.CallsAndAlarmsPreferenceController" />
+
+    <Preference
+        android:icon="@drawable/ic_audio_play_sample"
+        android:key="audio_sharing_play_sound"
+        android:summary="Everyone listening should hear it"
+        android:title="Play a test sound"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingPlaySoundPreferenceController" />
+
+    <PreferenceCategory
+        android:key="audio_sharing_stream_settings_category"
+        android:title="Stream settings"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.StreamSettingsCategoryController">
+
+        <com.android.settings.connecteddevice.audiosharing.AudioSharingNamePreference
+            android:key="audio_sharing_stream_name"
+            android:title="Name"
+            settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingNamePreferenceController" />
+
+        <com.android.settings.widget.ValidatedEditTextPreference
+            android:key="audio_sharing_stream_password"
+            android:summary="********"
+            android:title="Password"
+            settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingPasswordPreferenceController" />
+
+        <SwitchPreferenceCompat
+            android:key="audio_sharing_stream_compatibility"
+            android:title="Improve compatibility"
+            settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingCompatibilityPreferenceController" />
+    </PreferenceCategory>
+
+    <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:fragment="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsDashboardFragment"
+            android:icon="@drawable/ic_chevron_right_24dp"
+            android:key="audio_streams_settings"
+            android:title="@string/audio_streams_pref_title" />
+
+    </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..e7e708e
--- /dev/null
+++ b/res/xml/bluetooth_audio_streams.xml
@@ -0,0 +1,48 @@
+<?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="Find an audio stream">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:key="audio_streams_top_intro"
+        android:title="Listen to a device that's sharing audio or to a nearby Auracast broadcast"
+        settings:searchable="false"/>
+
+    <Preference
+        android:key="audio_streams_active_device"
+        android:title="Your audio device"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsActiveDeviceController" />
+
+    <com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryPreference
+        android:key="audio_streams_nearby_category"
+        android:title="Audio streams nearby"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryController">
+
+    <Preference
+        android:key="audio_streams_scan_qr_code"
+        android:title="Scan a QR code"
+        android:icon="@drawable/ic_add_24dp"
+        android:summary="Start listening by scanning a stream's QR code"
+        android:order="0"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController" />
+
+    </com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsProgressCategoryPreference>
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/bluetooth_audio_streams_dialog.xml b/res/xml/bluetooth_audio_streams_dialog.xml
new file mode 100644
index 0000000..024e537
--- /dev/null
+++ b/res/xml/bluetooth_audio_streams_dialog.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:id="@+id/dialog_bg"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingStart="25dp"
+        android:paddingEnd="25dp"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="25dp"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/dialog_icon"
+                android:layout_width="30dp"
+                android:layout_height="30dp"
+                android:layout_marginTop="24dp"
+                android:layout_gravity="center"
+                android:src="@drawable/ic_bt_audio_sharing"/>
+
+            <TextView
+                android:id="@+id/dialog_title"
+                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Headline"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:gravity="center"
+                android:layout_gravity="center"/>
+
+            <TextView
+                android:id="@+id/dialog_subtitle"
+                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
+                android:textStyle="bold"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:gravity="center"
+                android:layout_gravity="center"
+                android:visibility="gone"/>
+
+            <TextView
+                android:id="@+id/dialog_subtitle_2"
+                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Small"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:gravity="center"
+                android:layout_gravity="center"
+                android:visibility="gone"/>
+        </LinearLayout>
+
+        <androidx.constraintlayout.widget.ConstraintLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/broadcast_dialog_margin">
+            <Button
+                android:id="@+id/left_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintStart_toStartOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                style="@style/BroadcastActionButton"/>
+            <Button
+                android:id="@+id/right_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:visibility="gone"
+                app:layout_constraintBottom_toBottomOf="parent"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintTop_toTopOf="parent"
+                style="@style/BroadcastActionButton"/>
+        </androidx.constraintlayout.widget.ConstraintLayout>
+
+    </LinearLayout>
+</FrameLayout>
\ 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..50b1429
--- /dev/null
+++ b/res/xml/bluetooth_audio_streams_qr_code.xml
@@ -0,0 +1,64 @@
+<?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="To listen to this audio stream, other people can connect compatible headphones to their Android device. They can then scan this QR code."/>
+
+        <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"/>
+
+            <TextView
+                android:id="@+id/password"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="15sp"
+                android:textColor="?android:attr/textColorPrimary"/>
+        </LinearLayout>
+
+    </LinearLayout>
+
+</LinearLayout>
\ No newline at end of file
diff --git a/res/xml/bluetooth_device_details_fragment.xml b/res/xml/bluetooth_device_details_fragment.xml
index 12ed8eb..d260554 100644
--- a/res/xml/bluetooth_device_details_fragment.xml
+++ b/res/xml/bluetooth_device_details_fragment.xml
@@ -81,6 +81,9 @@
         android:key="bluetooth_profiles"/>
 
     <PreferenceCategory
+        android:key="bt_extra_options"/>
+
+    <PreferenceCategory
         android:key="bluetooth_related_tools"
         android:title="@string/bluetooth_screen_related">
         <Preference
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..4703a14 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -27,8 +27,7 @@
             android:order="10"
             android:title="@string/app_notification_field"
             android:summary="@string/app_notification_field_summary"
-            android:fragment="com.android.settings.applications.manageapplications.ManageApplications"
-            settings:searchable="false">
+            android:fragment="com.android.settings.applications.manageapplications.ManageApplications">
             <extra
                 android:name="classname"
                 android:value="com.android.settings.Settings$NotificationAppListActivity"/>
@@ -98,7 +97,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 +119,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 +147,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 a0e0a1f..34a5798 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -23,29 +23,42 @@
     <com.android.settings.slices.SlicePreference
         android:key="bt_nearby_slice"
         android:title="@string/summary_placeholder"
-        settings:controller="com.android.settings.slices.SlicePreferenceController"
-        settings:allowDividerBelow="true"/>
+        settings:allowDividerBelow="true"
+        settings:controller="com.android.settings.slices.SlicePreferenceController" />
+
+    <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:icon="@drawable/ic_bt_audio_sharing"
+            android:key="connected_device_audio_sharing_settings"
+            android:order="10"
+            android:title="@string/audio_sharing_title"
+            settings:searchable="false" />
+    </PreferenceCategory>
 
     <PreferenceCategory
         android:key="available_device_list"
         android:title="@string/connected_device_media_device_title"
-        settings:controller="com.android.settings.connecteddevice.AvailableMediaDeviceGroupController"/>
+        settings:controller="com.android.settings.connecteddevice.AvailableMediaDeviceGroupController" />
 
     <PreferenceCategory
         android:key="connected_device_list"
         android:title="@string/connected_device_other_device_title"
-        settings:controller="com.android.settings.connecteddevice.ConnectedDeviceGroupController"/>
+        settings:controller="com.android.settings.connecteddevice.ConnectedDeviceGroupController" />
 
     <com.android.settingslib.RestrictedPreference
-        android:key="add_bt_devices"
-        android:title="@string/bluetooth_pairing_pref_title"
-        android:icon="@drawable/ic_add_24dp"
-        android:summary="@string/connected_device_add_device_summary"
         android:fragment="com.android.settings.bluetooth.BluetoothPairingDetail"
+        android:icon="@drawable/ic_add_24dp"
+        android:key="add_bt_devices"
+        android:summary="@string/connected_device_add_device_summary"
+        android:title="@string/bluetooth_pairing_pref_title"
+        settings:controller="com.android.settings.connecteddevice.AddDevicePreferenceController"
         settings:keywords="@string/keywords_add_bt_device"
-        settings:userRestriction="no_config_bluetooth"
         settings:useAdminDisabledSummary="true"
-        settings:controller="com.android.settings.connecteddevice.AddDevicePreferenceController"/>
+        settings:userRestriction="no_config_bluetooth" />
 
     <PreferenceCategory
         android:key="previously_connected_devices"
@@ -53,26 +66,42 @@
         settings:controller="com.android.settings.connecteddevice.PreviouslyConnectedDevicePreferenceController">
 
         <Preference
-            android:key="previously_connected_devices_see_all"
-            android:title="@string/previous_connected_see_all"
+            android:fragment="com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment"
             android:icon="@drawable/ic_chevron_right_24dp"
+            android:key="previously_connected_devices_see_all"
             android:order="10"
-            settings:searchable="false"
-            android:fragment="com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment"/>
+            android:title="@string/previous_connected_see_all"
+            settings:searchable="false" />
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:key="fast_pair_devices"
+        android:title="@string/connected_device_previously_associated_fast_pair_device_title"
+        settings:controller=
+            "com.android.settings.connecteddevice.fastpair.FastPairDevicePreferenceController">
+
+        <Preference
+            android:fragment=
+                "com.android.settings.connecteddevice.fastpair.FastPairDeviceDashboardFragment"
+            android:icon="@drawable/ic_chevron_right_24dp"
+            android:key="fast_pair_devices_see_all"
+            android:order="10"
+            android:title="@string/connected_device_fast_pair_device_see_all"
+            settings:searchable="false" />
     </PreferenceCategory>
 
     <Preference
-        android:key="connection_preferences"
-        android:title="@string/connected_device_connections_title"
-        android:summary="@string/summary_placeholder"
         android:fragment="com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment"
+        android:key="connection_preferences"
+        android:summary="@string/summary_placeholder"
+        android:title="@string/connected_device_connections_title"
         settings:allowDividerAbove="true"
-        settings:controller="com.android.settings.connecteddevice.AdvancedConnectedDeviceController"/>
+        settings:controller="com.android.settings.connecteddevice.AdvancedConnectedDeviceController" />
 
     <com.android.settingslib.widget.FooterPreference
         android:key="discoverable_footer"
-        android:title="@string/bluetooth_off_footer"
         android:selectable="false"
+        android:title="@string/bluetooth_off_footer"
         settings:controller="com.android.settings.connecteddevice.DiscoverableFooterPreferenceController">
     </com.android.settingslib.widget.FooterPreference>
 
diff --git a/res/xml/connected_devices_advanced.xml b/res/xml/connected_devices_advanced.xml
index 46d1a0a..b088791 100644
--- a/res/xml/connected_devices_advanced.xml
+++ b/res/xml/connected_devices_advanced.xml
@@ -21,56 +21,59 @@
 
     <Preference
         android:fragment="com.android.settings.connecteddevice.BluetoothDashboardFragment"
-        android:key="bluetooth_switchbar_screen"
-        android:title="@string/bluetooth_settings_title"
         android:icon="@*android:drawable/ic_settings_bluetooth"
-        android:order="-9"/>
+        android:key="bluetooth_switchbar_screen"
+        android:order="-10"
+        android:title="@string/bluetooth_settings_title" />
 
     <Preference
+        android:fragment="com.android.settings.connecteddevice.audiosharing.AudioSharingDashboardFragment"
+        android:icon="@drawable/ic_bt_audio_sharing"
+        android:key="audio_sharing_settings"
+        android:order="-9"
+        android:title="@string/audio_sharing_title"
+        settings:controller="com.android.settings.connecteddevice.audiosharing.AudioSharingPreferenceController"
+        settings:searchable="true" />
+
+    <com.android.settingslib.RestrictedPreference
         android:fragment="com.android.settings.connecteddevice.NfcAndPaymentFragment"
-        android:key="nfc_and_payment_settings"
-        android:title="@string/nfc_quick_toggle_title"
         android:icon="@drawable/ic_nfc"
+        android:key="nfc_and_payment_settings"
         android:order="-7"
+        android:title="@string/nfc_quick_toggle_title"
+        settings:controller="com.android.settings.connecteddevice.NfcAndPaymentFragmentController"
         settings:searchable="false"
-        settings:controller="com.android.settings.connecteddevice.NfcAndPaymentFragmentController"/>
+        settings:useAdminDisabledSummary="true"
+        settings:userRestriction="no_near_field_communication_radio" />
 
     <Preference
         android:fragment="com.android.settings.wfd.WifiDisplaySettings"
-        android:key="wifi_display_settings"
-        android:title="@string/wifi_display_settings_title"
         android:icon="@drawable/ic_cast_24dp"
+        android:key="wifi_display_settings"
         android:order="-6"
+        android:title="@string/wifi_display_settings_title"
         settings:controller="com.android.settings.wfd.WifiDisplayPreferenceController"
-        settings:keywords="@string/keywords_wifi_display_settings"/>
+        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"
-        android:icon="@*android:drawable/ic_settings_print"
         android:fragment="com.android.settings.print.PrintSettingsFragment"
-        android:order="-3"/>
+        android:icon="@*android:drawable/ic_settings_print"
+        android:key="connected_device_printing"
+        android:order="-3"
+        android:summary="@string/summary_placeholder"
+        android:title="@string/print_settings" />
 
-    <SwitchPreference
+    <com.android.settingslib.RestrictedSwitchPreference
         android:key="uwb_settings"
-        android:title="@string/uwb_settings_title"
         android:order="100"
         android:summary="@string/summary_placeholder"
+        android:title="@string/uwb_settings_title"
         settings:controller="com.android.settings.uwb.UwbPreferenceController"
-        settings:userRestriction="no_ultra_wideband_radio"
-        settings:useAdminDisabledSummary="true"/>
+        settings:useAdminDisabledSummary="true"
+        settings:userRestriction="no_ultra_wideband_radio" />
 
     <PreferenceCategory
         android:key="dashboard_tile_placeholder"
-        android:order="-8"/>
+        android:order="-8" />
 
 </PreferenceScreen>
diff --git a/res/xml/data_usage_list.xml b/res/xml/data_usage_list.xml
index 644fca4..62456ed 100644
--- a/res/xml/data_usage_list.xml
+++ b/res/xml/data_usage_list.xml
@@ -14,19 +14,17 @@
      limitations under the License.
 -->
 
-<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto">
 
     <PreferenceCategory
         android:key="usage_amount"
         android:title="@string/summary_placeholder">
 
         <com.android.settings.datausage.ChartDataUsagePreference
-            android:key="chart_data" />
-
-        <Preference
-            android:key="operator_warning"
-            android:summary="@string/operator_warning"
-            android:selectable="false" />
+            android:key="chart_data"
+            settings:controller="com.android.settings.datausage.ChartDataUsagePreferenceController"
+            />
 
         <Preference
             android:key="non_carrier_data_usage_warning"
@@ -37,6 +35,7 @@
 
     <PreferenceCategory
         android:key="apps_group"
-        android:layout="@layout/preference_category_no_label" />
+        android:layout="@layout/preference_category_no_label"
+        settings:controller="com.android.settings.datausage.DataUsageListAppsController" />
 
 </PreferenceScreen>
diff --git a/res/xml/date_time_prefs.xml b/res/xml/date_time_prefs.xml
index 593c428..f1c62bb 100644
--- a/res/xml/date_time_prefs.xml
+++ b/res/xml/date_time_prefs.xml
@@ -24,19 +24,22 @@
         android:key="auto_time"
         android:title="@string/date_time_auto"
         settings:useAdditionalSummary="true"
-        settings:userRestriction="no_config_date_time"/>
+        settings:userRestriction="no_config_date_time"
+        settings:controller="com.android.settings.datetime.AutoTimePreferenceController" />
 
     <com.android.settingslib.RestrictedPreference
         android:key="date"
         android:title="@string/date_time_set_date_title"
         android:summary="@string/summary_placeholder"
-        settings:userRestriction="no_config_date_time"/>
+        settings:userRestriction="no_config_date_time"
+        settings:controller="com.android.settings.datetime.DatePreferenceController" />
 
     <com.android.settingslib.RestrictedPreference
         android:key="time"
         android:title="@string/date_time_set_time_title"
         android:summary="@string/summary_placeholder"
-        settings:userRestriction="no_config_date_time"/>
+        settings:userRestriction="no_config_date_time"
+        settings:controller="com.android.settings.datetime.TimePreferenceController" />
 
     <PreferenceCategory
         android:key="timezone_preference_category"
@@ -45,7 +48,8 @@
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="auto_zone"
             android:title="@string/zone_auto_title"
-            settings:userRestriction="no_config_date_time"/>
+            settings:userRestriction="no_config_date_time"
+            settings:controller="com.android.settings.datetime.AutoTimeZonePreferenceController" />
 
         <com.android.settingslib.widget.BannerMessagePreference
             android:key="location_time_zone_detection_status"
@@ -64,7 +68,8 @@
             android:summary="@string/summary_placeholder"
             android:fragment="com.android.settings.datetime.timezone.TimeZoneSettings"
             settings:userRestriction="no_config_date_time"
-            settings:keywords="@string/keywords_time_zone"/>
+            settings:keywords="@string/keywords_time_zone"
+            settings:controller="com.android.settings.datetime.TimeZonePreferenceController" />
 
     </PreferenceCategory>
 
@@ -74,11 +79,13 @@
         settings:keywords="@string/keywords_time_format">
         <SwitchPreference
             android:key="auto_24hour"
-            android:title="@string/date_time_24hour_auto"/>
+            android:title="@string/date_time_24hour_auto"
+            settings:controller="com.android.settings.datetime.AutoTimeFormatPreferenceController" />
 
         <SwitchPreference
             android:key="24 hour"
-            android:title="@string/date_time_24hour" />
+            android:title="@string/date_time_24hour"
+            settings:controller="com.android.settings.datetime.TimeFormatPreferenceController" />
     </PreferenceCategory>
 
 </PreferenceScreen>
diff --git a/res/xml/development_app_picker.xml b/res/xml/development_app_picker.xml
new file mode 100644
index 0000000..15e4ce0
--- /dev/null
+++ b/res/xml/development_app_picker.xml
@@ -0,0 +1,18 @@
+<?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/>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 32acac6..fb5e280 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -107,6 +107,12 @@
             android:summary="@string/oem_unlock_enable_summary"
             settings:useAdditionalSummary="true" />
 
+        <SwitchPreference
+            android:key="enable_16k_pages"
+            android:title="@string/enable_16k_pages"
+            android:summary="@string/enable_16k_pages_summary"
+            settings:useAdditionalSummary="true" />
+
         <Preference
             android:key="running_apps"
             android:title="@string/runningservices_settings_title"
@@ -123,12 +129,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" />
@@ -146,6 +152,13 @@
             android:key="quick_settings_tiles"
             android:title="@string/quick_settings_developer_tiles"
             android:fragment="com.android.settings.development.qstile.DevelopmentTileConfigFragment" />
+
+        <ListPreference
+            android:key="grammatical_gender"
+            android:title="@string/grammatical_gender_title"
+            android:dialogTitle="@string/grammatical_gender_dialog_title"
+            android:entries="@array/grammatical_gender_entries"
+            android:entryValues="@array/grammatical_gender_values" />
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -168,39 +181,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" />
@@ -210,7 +223,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" />
@@ -229,7 +242,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" />
 
@@ -238,16 +251,21 @@
             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" />
 
+        <SwitchPreferenceCompat
+            android:key="disable_game_default_frame_rate"
+            android:title="@string/disable_game_default_frame_rate_title"
+            android:summary="@string/disable_game_default_frame_rate_summary"/>
+
         <Preference
             android:key="graphics_driver_dashboard"
             android:title="@string/graphics_driver_dashboard_title"
@@ -261,22 +279,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" />
@@ -292,32 +315,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" />
@@ -335,35 +358,42 @@
             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
+        <ListPreference
+            android:key="bluetooth_leaudio_mode"
+            android:title="@string/bluetooth_leaudio_mode"
+            android:summary="@string/summary_placeholder"
+            android:entries="@array/bluetooth_leaudio_mode"
+            android:entryValues="@array/bluetooth_leaudio_mode_values"/>
+
+        <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" />
 
@@ -381,7 +411,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"/>
 
@@ -432,17 +462,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"/>
@@ -454,17 +484,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" />
@@ -476,17 +506,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" />
@@ -524,7 +554,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" />
@@ -542,12 +572,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" />
@@ -564,21 +594,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" />
@@ -607,6 +637,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
@@ -614,7 +649,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" />
@@ -633,7 +668,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" />
@@ -649,12 +684,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" />
@@ -665,7 +700,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" />
@@ -685,32 +720,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" />
@@ -719,16 +754,22 @@
             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" />
 
+        <Preference
+            android:key="quarantined_apps"
+            android:title="@string/quarantined_apps_title"
+            settings:controller="com.android.settings.development.quarantine.QuarantinedAppsPreferenceController"
+            android:fragment="com.android.settings.development.quarantine.QuarantinedAppsFragment" />
+
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -780,12 +821,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"
@@ -798,7 +839,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
new file mode 100644
index 0000000..bb8381f
--- /dev/null
+++ b/res/xml/fast_pair_devices.xml
@@ -0,0 +1,27 @@
+<?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/connected_device_previously_associated_fast_pair_device_title">
+
+    <PreferenceCategory
+        android:key="fast_pair_device_list"
+        settings:controller="com.android.settings.connecteddevice.fastpair.FastPairDeviceGroupController"/>
+
+</PreferenceScreen>
\ No newline at end of file
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/gestures.xml b/res/xml/gestures.xml
index 4881360..035c7f7 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -21,12 +21,6 @@
     android:title="@string/gesture_preference_title">
 
     <Preference
-        android:key="gesture_assist_input_summary"
-        android:title="@string/assist_gesture_title"
-        android:fragment="com.android.settings.gestures.AssistGestureSettings"
-        settings:controller="com.android.settings.gestures.AssistGestureSettingsPreferenceController" />
-
-    <Preference
         android:key="gesture_swipe_down_fingerprint_input_summary"
         android:title="@string/fingerprint_swipe_for_notifications_title"
         android:fragment="com.android.settings.gestures.SwipeToNotificationSettings"
diff --git a/res/xml/hearing_device_pairing_fragment.xml b/res/xml/hearing_device_pairing_fragment.xml
new file mode 100644
index 0000000..1ccc1dd
--- /dev/null
+++ b/res/xml/hearing_device_pairing_fragment.xml
@@ -0,0 +1,45 @@
+<?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/bluetooth_pairing_pref_title">
+
+    <com.android.settings.bluetooth.BluetoothProgressCategory
+        android:key="available_hearing_devices"
+        android:title="@string/accessibility_found_hearing_devices" />
+
+    <PreferenceCategory
+        android:key="more_devices_category"
+        android:title="@string/accessibility_found_all_devices">
+        <com.android.settings.accessibility.ArrowPreference
+            android:key="more_devices"
+            android:title="@string/accessibility_list_all_devices_title"
+            settings:searchable="false"
+            settings:userRestriction="no_config_bluetooth"
+            settings:useAdminDisabledSummary="true"
+            settings:controller="com.android.settings.accessibility.ViewAllBluetoothDevicesPreferenceController"/>
+    </PreferenceCategory>
+
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="hearing_device_footer"
+        android:title="@string/accessibility_hearing_device_footer_summary"
+        android:selectable="false"
+        settings:searchable="false"
+        settings:controller="com.android.settings.accessibility.PairHearingDeviceFooterPreferenceController"/>
+
+</PreferenceScreen>
\ No newline at end of file
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/languages.xml b/res/xml/languages.xml
index 5269d99..844b7fa 100644
--- a/res/xml/languages.xml
+++ b/res/xml/languages.xml
@@ -32,6 +32,17 @@
             android:layout="@layout/locale_order_list" />
     </PreferenceCategory>
 
+    <PreferenceCategory
+        android:key="key_category_terms_of_address"
+        android:title="@string/category_title_terms_of_address"
+        settings:controller="com.android.settings.localepicker.TermsOfAddressCategoryController">
+        <Preference
+            android:key="key_terms_of_address"
+            android:title="@string/terms_of_address_title"
+            android:summary="@string/terms_of_address_summary"
+            settings:controller="com.android.settings.localepicker.TermsOfAddressController"/>
+    </PreferenceCategory>
+
     <com.android.settingslib.widget.FooterPreference
         android:key="footer_languages_picker"
         android:title="@string/desc_notice_of_language_picker"
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
index c8dbe42..527dfd0 100644
--- a/res/xml/manage_assist.xml
+++ b/res/xml/manage_assist.xml
@@ -28,23 +28,17 @@
         android:summary="@string/summary_placeholder"
         settings:searchable="false"/>
 
-    <Preference
-        android:key="gesture_assist_application"
-        android:title="@string/assist_gesture_title"
-        android:fragment="com.android.settings.gestures.AssistGestureSettings"
-        settings:controller="com.android.settings.gestures.AssistGestureSettingsPreferenceController" />
-
-    <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 fe61424..a29e123 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -37,29 +37,48 @@
         <ListPreference
             android:key="calls_preference"
             android:title="@string/calls_preference"
+            android:enabled="false"
             settings:controller="com.android.settings.network.telephony.CallsDefaultSubscriptionController"
             settings:allowDividerAbove="true"/>
 
         <ListPreference
             android:key="sms_preference"
             android:title="@string/sms_preference"
+            android:enabled="false"
             settings:controller="com.android.settings.network.telephony.SmsDefaultSubscriptionController"/>
 
         <Preference
+            android:key="mobile_network_spn"
+            android:title="@string/mobile_network_spn_title"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"
+            settings:controller="com.android.settings.network.telephony.MobileNetworkSpnPreferenceController"
+            settings:allowDividerAbove="true" />
+
+        <Preference
+            android:key="phone_number"
+            android:title="@string/status_number"
+            android:summary="@string/summary_placeholder"
+            android:selectable="false"
+            settings:controller="com.android.settings.network.telephony.MobileNetworkPhoneNumberPreferenceController"
+            settings:allowDividerBelow="true"
+            settings:enableCopying="true"/>
+
+        <Preference
             android:key="cdma_lte_data_service_key"
             android:title="@string/cdma_lte_data_service"
             settings:controller="com.android.settings.network.telephony.DataServiceSetupPreferenceController"
             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"
@@ -84,7 +103,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"
@@ -96,13 +115,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"
@@ -110,7 +129,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"
@@ -118,7 +137,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"
@@ -126,7 +145,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"
@@ -160,6 +179,24 @@
             settings:controller="com.android.settings.network.telephony.CarrierSettingsVersionPreferenceController"
             settings:enableCopying="true"/>
 
+        <!-- IMEI -->
+        <Preference
+            android:key="network_mode_imei_info"
+            android:title="@string/status_imei"
+            android:summary="@string/summary_placeholder"
+            settings:keywords="@string/keywords_imei_info"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.network.telephony.MobileNetworkImeiPreferenceController"/>
+        <!-- EID -->
+        <com.android.settingslib.CustomDialogPreferenceCompat
+            android:key="network_mode_eid_info"
+            android:title="@string/status_eid"
+            android:summary="@string/device_info_protected_single_press"
+            android:positiveButtonText="@string/dlg_ok"
+            android:dialogLayout="@layout/dialog_eid_status"
+            settings:enableCopying="true"
+            settings:controller="com.android.settings.network.telephony.MobileNetworkEidPreferenceController"/>
+
         <PreferenceCategory
             android:key="calling_category"
             android:title="@string/call_category"
@@ -177,7 +214,7 @@
                 </intent>
             </Preference>
 
-            <SwitchPreference
+            <SwitchPreferenceCompat
                 android:key="video_calling_key"
                 android:title="@string/video_calling_settings_title"
                 android:persistent="true"
@@ -206,9 +243,10 @@
         <PreferenceCategory
             android:key="network_operators_category_key"
             android:title="@string/network_operator_category"
+            settings:allowDividerBelow="true"
             settings:controller="com.android.settings.network.telephony.NetworkPreferenceCategoryController">
 
-            <SwitchPreference
+            <com.android.settings.spa.preference.ComposePreference
                 android:key="auto_select_key"
                 android:title="@string/select_automatically"
                 settings:controller="com.android.settings.network.telephony.gsm.AutoSelectPreferenceController"/>
@@ -219,12 +257,19 @@
                 settings:controller="com.android.settings.network.telephony.gsm.OpenNetworkSelectPagePreferenceController"/>
         </PreferenceCategory>
 
+        <com.android.settingslib.RestrictedPreference
+            android:key="telephony_satellite_setting_key"
+            android:persistent="false"
+            android:title="@string/satellite_setting_title"
+            settings:keywords="@string/keywords_satellite_setting"
+            settings:controller=
+                "com.android.settings.network.telephony.SatelliteSettingPreferenceController"/>
+
         <!--We want separate APN setting from reset of settings because we want user to change it with caution-->
         <com.android.settingslib.RestrictedPreference
             android:key="telephony_apn_key"
             android:persistent="false"
             android:title="@string/mobile_network_apn_title"
-            settings:allowDividerAbove="true"
             settings:keywords="@string/keywords_access_point_names"
             settings:controller="com.android.settings.network.telephony.ApnPreferenceController"/>
 
@@ -242,14 +287,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" />
+                "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 47ea3e0..5cd60f0 100644
--- a/res/xml/more_security_privacy_settings.xml
+++ b/res/xml/more_security_privacy_settings.xml
@@ -42,9 +42,10 @@
             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" />
+            android:title="@string/lockpattern_settings_enable_visible_pattern_title_profile"
+            settings:controller="com.android.settings.security.VisiblePatternProfilePreferenceController" />
 
         <com.android.settings.RestrictedListPreference
             android:key="privacy_lock_screen_work_profile_notifications"
@@ -85,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"
@@ -97,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"
@@ -118,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"
@@ -194,14 +204,6 @@
         settings:keywords="@string/keywords_app_pinning"
         settings:controller="com.android.settings.security.ScreenPinningPreferenceController" />
 
-    <SwitchPreference
-        android:order="290"
-        android:key="confirm_sim_deletion"
-        android:title="@string/confirm_sim_deletion_title"
-        android:summary="@string/confirm_sim_deletion_description"
-        settings:isPreferenceVisible="@bool/config_show_sim_info"
-        settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" />
-
     <Preference
         android:order="300"
         android:id="@+id/memtag_page"
@@ -212,4 +214,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 6edb5b7..62bc040 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -52,11 +52,12 @@
             settings:controller="com.android.settings.deviceinfo.BrandedAccountPreferenceController"/>
 
         <!-- Phone number -->
-        <com.android.settings.deviceinfo.PhoneNumberSummaryPreference
+        <Preference
             android:key="phone_number"
             android:order="3"
             android:title="@string/status_number"
             android:summary="@string/summary_placeholder"
+            android:selectable="false"
             settings:isPreferenceVisible="@bool/config_show_sim_info"
             settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
             settings:enableCopying="true"/>
@@ -118,7 +119,6 @@
             android:key="eid_info"
             android:order="31"
             android:title="@string/status_eid"
-            android:summary="@string/device_info_protected_single_press"
             android:positiveButtonText="@string/dlg_ok"
             android:dialogLayout="@layout/dialog_eid_status"
             settings:isPreferenceVisible="@bool/config_show_sim_info"
@@ -126,7 +126,7 @@
             settings:controller="com.android.settings.deviceinfo.simstatus.SimEidPreferenceController"/>
 
         <!-- IMEI -->
-        <com.android.settings.deviceinfo.PhoneNumberSummaryPreference
+        <Preference
             android:key="imei_info"
             android:order="32"
             android:title="@string/status_imei"
@@ -151,7 +151,8 @@
             android:order="43"
             android:title="@string/battery_info"
             android:fragment="com.android.settings.deviceinfo.batteryinfo.BatteryInfoFragment"
-            settings:keywords="@string/keywords_battery_info"/>
+            settings:keywords="@string/keywords_battery_info"
+            settings:controller="com.android.settings.deviceinfo.batteryinfo.BatteryInfoPreferenceController"/>
     </PreferenceCategory>
 
     <PreferenceCategory
diff --git a/res/xml/network_provider_calls_sms.xml b/res/xml/network_provider_calls_sms.xml
index 8d15578..7f2ba8a 100644
--- a/res/xml/network_provider_calls_sms.xml
+++ b/res/xml/network_provider_calls_sms.xml
@@ -26,6 +26,7 @@
         settings:controller="com.android.settings.network.telephony.CallsDefaultSubscriptionController"
         android:order="10"
         android:icon="@drawable/ic_phone"
+        android:enabled="false"
         />
 
     <ListPreference
@@ -34,6 +35,7 @@
         settings:controller="com.android.settings.network.telephony.SmsDefaultSubscriptionController"
         android:order="15"
         android:icon="@drawable/ic_sms"
+        android:enabled="false"
         />
 
     <PreferenceCategory
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index ef6ed16..04f248e 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -37,10 +37,11 @@
         android:icon="@drawable/ic_calls_sms"
         android:order="-20"
         android:summary="@string/summary_placeholder"
-        settings:isPreferenceVisible="@bool/config_show_sim_info"
+        android:fragment="com.android.settings.network.NetworkProviderCallsSmsFragment"
+        settings:userRestriction="no_config_mobile_networks"
         settings:allowDividerBelow="true"
-        settings:keywords="@string/calls_and_sms"
-        settings:useAdminDisabledSummary="true" />
+        settings:useAdminDisabledSummary="true"
+        settings:controller="com.android.settings.network.NetworkProviderCallsSmsController" />
 
     <com.android.settingslib.RestrictedPreference
         android:key="mobile_network_list"
@@ -51,7 +52,6 @@
         settings:keywords="@string/keywords_more_mobile_networks"
         settings:userRestriction="no_config_mobile_networks"
         settings:isPreferenceVisible="@bool/config_show_sim_info"
-        settings:allowDividerAbove="true"
         settings:useAdminDisabledSummary="true"
         settings:searchable="@bool/config_show_sim_info"/>
 
@@ -64,33 +64,13 @@
         settings:userRestriction="no_airplane_mode"/>
 
     <com.android.settingslib.RestrictedPreference
-        android:key="manage_mobile_plan"
-        android:title="@string/manage_mobile_plan_title"
-        android:persistent="false"
-        android:order="19"
-        settings:userRestriction="no_config_mobile_networks"
-        settings:isPreferenceVisible="@bool/config_show_sim_info"
-        settings:useAdminDisabledSummary="true" />
-
-    <com.android.settingslib.RestrictedPreference
         android:fragment="com.android.settings.network.tether.TetherSettings"
         android:key="tether_settings"
         android:title="@string/tether_settings_title_all"
         android:icon="@drawable/ic_wifi_tethering"
         android:order="5"
         android:summary="@string/summary_placeholder"
-        settings:keywords="@string/keywords_hotspot_tethering"
-        settings:userRestriction="no_config_tethering"
-        settings:useAdminDisabledSummary="true" />
-
-    <com.android.settingslib.PrimarySwitchPreference
-        android:fragment="com.android.settings.AllInOneTetherSettings"
-        android:key="all_tether_settings"
-        android:title="@string/tether_settings_title_all"
-        android:icon="@drawable/ic_wifi_tethering"
-        android:order="6"
-        android:summary="@string/summary_placeholder"
-        settings:controller="com.android.settings.network.AllInOneTetherPreferenceController"
+        settings:controller="com.android.settings.network.TetherPreferenceController"
         settings:keywords="@string/keywords_hotspot_tethering"
         settings:userRestriction="no_config_tethering"
         settings:useAdminDisabledSummary="true" />
diff --git a/res/xml/network_provider_settings.xml b/res/xml/network_provider_settings.xml
index 1921ece..418bb8d 100644
--- a/res/xml/network_provider_settings.xml
+++ b/res/xml/network_provider_settings.xml
@@ -65,7 +65,13 @@
 
     <PreferenceCategory
         android:key="access_points"
-        android:layout="@layout/preference_category_no_label"/>
+        android:layout="@layout/preference_category_no_label">
+
+        <com.android.settings.wifi.AddWifiNetworkPreference
+            android:key="add_wifi_network"
+            android:title="@string/wifi_add_network"
+            android:icon="@drawable/ic_add_24dp"/>
+    </PreferenceCategory>
 
     <Preference
         android:key="configure_network_settings"
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..b95f23e 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"
@@ -38,4 +38,28 @@
             android:summary="@string/modifier_keys_settings_summary"
             android:fragment="com.android.settings.inputmethod.ModifierKeysSettings" />
     </PreferenceCategory>
+
+    <PreferenceCategory
+        android:key="keyboard_a11y_category"
+        android:title="@string/keyboard_a11y_category">
+
+        <SwitchPreference
+            android:key="accessibility_sticky_keys"
+            android:title="@string/sticky_keys"
+            android:summary="@string/sticky_keys_summary"
+            android:defaultValue="false" />
+
+        <SwitchPreference
+            android:key="accessibility_slow_keys"
+            android:title="@string/slow_keys"
+            android:summary="@string/slow_keys_summary"
+            android:defaultValue="false" />
+
+        <SwitchPreference
+            android:key="accessibility_bounce_keys"
+            android:title="@string/bounce_keys"
+            android:summary="@string/bounce_keys_summary"
+            android:defaultValue="false" />
+
+    </PreferenceCategory>
 </PreferenceScreen>
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 c9836b4..f3b30b6 100644
--- a/res/xml/power_usage_detail.xml
+++ b/res/xml/power_usage_detail.xml
@@ -27,28 +27,34 @@
     <com.android.settingslib.widget.ActionButtonsPreference
         android:key="action_buttons"/>
 
-    <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"/>
+    <PreferenceCategory
+        android:key="battery_usage_time_category"
+        settings:isPreferenceVisible="false"
+        settings:selectable="false"
+        settings:controller=
+            "com.android.settings.fuelgauge.PowerUsageTimeController">
 
-    <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.settings.fuelgauge.PowerUsageTimePreference
+            settings:isPreferenceVisible="false"
+            settings:selectable="false"
+            android:key="battery_usage_screen_time"/>
 
-    <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.settings.fuelgauge.PowerUsageTimePreference
+            settings:isPreferenceVisible="false"
+            settings:selectable="false"
+            android:key="battery_usage_background_time"/>
 
-    <com.android.settingslib.widget.FooterPreference
-        android:key="app_usage_footer_preference"
-        android:title="@string/manager_battery_usage_footer"
-        android:selectable="false"
-        settings:searchable="false"/>
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:title="@string/manager_battery_usage_category_title"
+        android:key="manage_battery_usage_category">
+
+        <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>
 
 </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_auto_lock_settings.xml b/res/xml/private_space_auto_lock_settings.xml
new file mode 100644
index 0000000..82f6c57
--- /dev/null
+++ b/res/xml/private_space_auto_lock_settings.xml
@@ -0,0 +1,20 @@
+<?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"
+    android:title="@string/private_space_auto_lock_page_title"/>
diff --git a/res/xml/private_space_biometric_settings.xml b/res/xml/private_space_biometric_settings.xml
new file mode 100644
index 0000000..6135b5f
--- /dev/null
+++ b/res/xml/private_space_biometric_settings.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/private_space_biometric_title"
+    settings:searchable="false">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:title="@string/biometric_settings_intro"
+        settings:searchable="false" />
+
+    <PreferenceCategory
+        android:key="biometric_ways_to_unlock"
+        android:title="@string/private_space_category_ways_to_unlock"
+        settings:searchable="false">
+
+        <com.android.settingslib.RestrictedPreference
+            android:key="private_space_fingerprint_unlock_settings"
+            android:title="@string/private_space_fingerprint_unlock_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.privatespace.onelock.PrivateSpaceFingerprintPreferenceController"
+            settings:searchable="false" />
+
+        <com.android.settingslib.RestrictedPreference
+            android:key="private_space_face_unlock_settings"
+            android:title="@string/private_space_face_unlock_title"
+            android:summary="@string/summary_placeholder"
+            settings:controller="com.android.settings.privatespace.onelock.PrivateSpaceFacePreferenceController"
+            settings:searchable="false" />
+
+    </PreferenceCategory>
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/private_space_settings.xml b/res/xml/private_space_settings.xml
new file mode 100644
index 0000000..a3dfbf2
--- /dev/null
+++ b/res/xml/private_space_settings.xml
@@ -0,0 +1,79 @@
+<?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="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">
+
+        <Preference
+            android:key="private_space_auto_lock"
+            android:title="@string/private_space_auto_lock_title"
+            android:fragment="com.android.settings.privatespace.autolock.AutoLockSettingsFragment"
+            settings:controller="com.android.settings.privatespace.autolock.AutoLockPreferenceController"
+            settings:searchable="false" />
+
+        <Preference
+            android:key="private_space_use_one_lock"
+            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" />
+
+        <Preference
+            android:key="private_space_hidden"
+            android:title="@string/private_space_hide_title"
+            android:fragment="com.android.settings.privatespace.HidePrivateSpaceSettings"
+            settings:controller="com.android.settings.privatespace.HidePrivateSpaceSummaryController"
+            settings:searchable="false" />
+
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:title="@string/private_space_category_system">
+
+        <Preference
+            android:key="private_space_delete"
+            android:title="@string/private_space_delete_title"
+            settings:controller="com.android.settings.privatespace.delete.DeletePrivateSpaceController"
+            settings:searchable="false" />
+
+    </PreferenceCategory>
+
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="private_space_footer"
+        android:title="@string/private_space_apps_permission_text"
+        android:selectable="false"
+        settings:searchable="false"/>
+
+</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..c9e0e62
--- /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" />
+
+    <com.android.settingslib.RestrictedPreference
+        android:key="private_space_biometrics"
+        android:title="@string/private_space_biometric_title"
+        android:summary="@string/summary_placeholder"
+        android:fragment="com.android.settings.privatespace.onelock.PrivateSpaceBiometricSettings"
+        settings:searchable="false" />
+
+</PreferenceScreen>
diff --git a/res/xml/process_stats_summary.xml b/res/xml/process_stats_summary.xml
index 3b3271d..9def18f 100644
--- a/res/xml/process_stats_summary.xml
+++ b/res/xml/process_stats_summary.xml
@@ -19,45 +19,52 @@
     android:title="@string/app_memory_use"
     android:key="app_list">
 
+    <SwitchPreference
+        android:key="force_enable_pss_profiling"
+        android:title="@string/force_enable_pss_profiling_title"
+        android:summary="@string/force_enable_pss_profiling_summary" />
+
     <PreferenceCategory
-        android:title="@string/average_memory_use"/>
+        android:title="@string/average_memory_use"
+        android:key="memory_info">
 
-    <com.android.settings.SummaryPreference
-        android:key="status_header"
-        android:selectable="false" />
+        <com.android.settings.SummaryPreference
+            android:key="status_header"
+            android:selectable="false" />
 
-    <com.android.settings.applications.SpacePreference
-        android:layout_height="5dp" />
+        <com.android.settings.applications.SpacePreference
+            android:layout_height="5dp" />
 
-    <Preference
-        android:key="performance"
-        android:selectable="false"
-        android:layout="@layout/horizontal_preference"
-        android:title="@string/memory_performance" />
+        <Preference
+            android:key="performance"
+            android:selectable="false"
+            android:layout="@layout/horizontal_preference"
+            android:title="@string/memory_performance" />
 
-    <Preference
-        android:key="total_memory"
-        android:selectable="false"
-        android:layout="@layout/horizontal_preference"
-        android:title="@string/total_memory" />
+        <Preference
+            android:key="total_memory"
+            android:selectable="false"
+            android:layout="@layout/horizontal_preference"
+            android:title="@string/total_memory" />
 
-    <Preference
-        android:key="average_used"
-        android:selectable="false"
-        android:layout="@layout/horizontal_preference"
-        android:title="@string/average_used" />
+        <Preference
+            android:key="average_used"
+            android:selectable="false"
+            android:layout="@layout/horizontal_preference"
+            android:title="@string/average_used" />
 
-    <Preference
-        android:key="free"
-        android:selectable="false"
-        android:layout="@layout/horizontal_preference"
-        android:title="@string/free_memory" />
+        <Preference
+            android:key="free"
+            android:selectable="false"
+            android:layout="@layout/horizontal_preference"
+            android:title="@string/free_memory" />
 
-    <com.android.settings.applications.SpacePreference
-        android:layout_height="15dp" />
+        <com.android.settings.applications.SpacePreference
+            android:layout_height="15dp" />
 
-    <Preference
-        android:key="apps_list"
-        android:title="@string/memory_usage_apps" />
+        <Preference
+            android:key="apps_list"
+            android:title="@string/memory_usage_apps" />
 
+    </PreferenceCategory>
 </PreferenceScreen>
diff --git a/res/xml/quarantined_apps.xml b/res/xml/quarantined_apps.xml
new file mode 100644
index 0000000..69a90d6
--- /dev/null
+++ b/res/xml/quarantined_apps.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.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="quarantined_apps_screen"
+    android:title="@string/quarantined_apps_title"
+    settings:controller="com.android.settings.development.quarantine.QuarantinedAppsScreenController"
+    settings:searchable="true">
+</PreferenceScreen>
\ No newline at end of file
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/satellite_setting.xml b/res/xml/satellite_setting.xml
new file mode 100644
index 0000000..9eb1763
--- /dev/null
+++ b/res/xml/satellite_setting.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:key="satellite_setting"
+    android:title="@string/satellite_setting"
+    settings:keywords="@string/keywords_satellite_setting">
+
+    <PreferenceCategory
+        android:title="@string/category_name_about_satellite_messaging">
+
+        <com.android.settingslib.widget.TopIntroPreference
+            android:key="key_about_satellite_messaging"/>
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:key="key_category_your_satellite_plan"
+        android:title="@string/category_title_your_satellite_plan">
+
+        <Preference
+            android:key="key_your_satellite_plan"
+            android:icon="?android:attr/textColorPrimary"/>
+    </PreferenceCategory>
+
+    <PreferenceCategory
+        android:key="key_category_how_it_works"
+        android:title="@string/category_name_how_it_works"
+        android:clickable="false"
+        android:focusable="false">
+
+        <Preference
+            android:key="key_satellite_connection_guide"
+            android:title="@string/title_satellite_connection_guide"
+            android:summary="@string/summary_satellite_connection_guide"
+            android:icon="@drawable/ic_signal_cellular_nodata_24px"/>
+
+        <Preference
+            android:key="key_supported_service"
+            android:title="@string/title_supported_service"
+            android:summary="@string/summary_supported_service"
+            android:icon="@drawable/ic_satellite_alt_24px"/>
+    </PreferenceCategory>
+
+    <com.android.settingslib.widget.FooterPreference
+        android:key="satellite_setting_extra_info_footer_pref"
+        android:layout="@layout/satellite_setting_more_information_layout"
+        android:selectable="false"
+        settings:searchable="false"/>
+
+</PreferenceScreen>
diff --git a/res/xml/screen_lock_settings.xml b/res/xml/screen_lock_settings.xml
index 00dd7ae..19061d9 100644
--- a/res/xml/screen_lock_settings.xml
+++ b/res/xml/screen_lock_settings.xml
@@ -23,24 +23,24 @@
     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" />
 
 
     <!-- available in pin/pattern/password -->
-    <com.android.settings.display.TimeoutListPreference
+    <com.android.settings.security.screenlock.ProtectedTimeoutListPreference
         android:key="lock_after_timeout"
         android:title="@string/lock_after_timeout"
         android:summary="@string/summary_placeholder"
@@ -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 f52fb12..c220e99 100644
--- a/res/xml/security_advanced_settings.xml
+++ b/res/xml/security_advanced_settings.xml
@@ -106,14 +106,6 @@
         settings:keywords="@string/keywords_app_pinning"
         settings:controller="com.android.settings.security.ScreenPinningPreferenceController" />
 
-    <SwitchPreference
-        android:order="290"
-        android:key="confirm_sim_deletion"
-        android:title="@string/confirm_sim_deletion_title"
-        android:summary="@string/confirm_sim_deletion_description"
-        settings:isPreferenceVisible="@bool/config_show_sim_info"
-        settings:controller="com.android.settings.security.ConfirmSimDeletionPreferenceController" />
-
   <com.android.settingslib.RestrictedPreference
         android:order="300"
         android:id="@+id/memtag_page"
@@ -142,9 +134,10 @@
             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" />
+            android:title="@string/lockpattern_settings_enable_visible_pattern_title_profile"
+            settings:controller="com.android.settings.security.VisiblePatternProfilePreferenceController" />
 
         <com.android.settingslib.RestrictedPreference
             android:key="fingerprint_settings_profile"
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 5041778..c545b47 100644
--- a/res/xml/security_settings_combined_biometric.xml
+++ b/res/xml/security_settings_combined_biometric.xml
@@ -47,6 +47,13 @@
             android:summary="@string/summary_placeholder"
             settings:keywords="@string/keywords_active_unlock_settings"
             settings:controller="com.android.settings.biometrics.activeunlock.ActiveUnlockStatusPreferenceController" />
+
+        <com.android.settingslib.RestrictedPreference
+            android:key="biometric_remote_authenticator_settings"
+            android:title="@string/security_settings_remoteauth_preference_title"
+            android:summary="@string/summary_placeholder"
+            settings:keywords="@string/keywords_active_unlock_settings"
+            settings:controller="com.android.settings.remoteauth.RemoteAuthStatusPreferenceController" />
     </PreferenceCategory>
 
     <PreferenceCategory
@@ -59,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/security_settings_fingerprint.xml b/res/xml/security_settings_fingerprint.xml
index 0156ef9..9c8b0a3 100644
--- a/res/xml/security_settings_fingerprint.xml
+++ b/res/xml/security_settings_fingerprint.xml
@@ -36,7 +36,7 @@
         settings:isPreferenceVisible="false">
 
         <com.android.settingslib.RestrictedSwitchPreference
-            android:key="security_settings_require_screen_on_to_auth"
+            android:key="@string/security_settings_require_screen_on_to_auth_key"
             android:title="@string/security_settings_require_screen_on_to_auth_title"
             android:summary="@string/security_settings_require_screen_on_to_auth_description"
             settings:keywords="@string/security_settings_require_screen_on_to_auth_keywords"
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 c3e0eef..15312c8 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -36,6 +36,7 @@
         android:icon="@drawable/ic_media_stream"
         android:title="@string/media_volume_option_title"
         android:order="-180"
+        settings:userRestriction="no_adjust_volume"
         settings:controller="com.android.settings.notification.MediaVolumePreferenceController"/>
 
     <!-- Media output switcher -->
@@ -53,6 +54,7 @@
         android:icon="@drawable/ic_local_phone_24_lib"
         android:title="@string/call_volume_option_title"
         android:order="-170"
+        settings:userRestriction="no_adjust_volume"
         settings:controller="com.android.settings.notification.CallVolumePreferenceController"/>
 
     <!-- Hands free profile output switcher -->
@@ -70,6 +72,7 @@
         android:icon="@drawable/ic_ring_volume"
         android:title="@string/separate_ring_volume_option_title"
         android:order="-155"
+        settings:userRestriction="no_adjust_volume"
         settings:controller="com.android.settings.notification.SeparateRingVolumePreferenceController"/>
 
     <!-- Notification volume -->
@@ -78,6 +81,7 @@
         android:icon="@drawable/ic_notifications"
         android:title="@string/notification_volume_option_title"
         android:order="-150"
+        settings:userRestriction="no_adjust_volume"
         settings:controller="com.android.settings.notification.NotificationVolumePreferenceController"
         settings:unavailableSliceSubtitle="@string/notification_volume_disabled_summary"/>
 
@@ -87,6 +91,7 @@
         android:icon="@*android:drawable/ic_audio_alarm"
         android:title="@string/alarm_volume_option_title"
         android:order="-140"
+        settings:userRestriction="no_adjust_volume"
         settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
 
     <!-- TODO(b/174964721): make this a PrimarySwitchPreference -->
@@ -164,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"/>
@@ -207,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..743a122 100644
--- a/res/xml/special_access.xml
+++ b/res/xml/special_access.xml
@@ -95,11 +95,23 @@
         settings:controller="com.android.settings.applications.specialaccess.notificationaccess.NotificationAccessController" />
 
     <Preference
+        android:key="media_routing_control"
+        android:title="@string/media_routing_control_title"
+        android:order="-1100"
+        settings:controller="com.android.settings.applications.specialaccess.MediaRoutingControlPreferenceController" >
+    </Preference>
+
+    <Preference
         android:key="use_full_screen_intent"
         android:title="@string/full_screen_intent_title"
         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/system_dashboard_fragment.xml b/res/xml/system_dashboard_fragment.xml
index 1f5559f..a2cb8fa 100644
--- a/res/xml/system_dashboard_fragment.xml
+++ b/res/xml/system_dashboard_fragment.xml
@@ -93,6 +93,19 @@
     </Preference>
 
     <Preference
+        android:key="system_multiuser"
+        android:title="@string/user_settings_title"
+        android:icon="@drawable/ic_settings_multiuser"
+        android:order="-45"
+        android:fragment="com.android.settings.users.UserSettings"
+        settings:controller="com.android.settings.users.MultiUserPreferenceController"/>
+
+    <com.android.settings.spa.preference.ComposePreference
+        android:key="developer_options"
+        android:order="-40"
+        settings:controller="com.android.settings.system.DeveloperOptionsController"/>
+
+    <Preference
         android:key="reset_dashboard"
         android:title="@string/reset_dashboard_title"
         android:icon="@drawable/ic_restore"
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/terms_of_address.xml b/res/xml/terms_of_address.xml
new file mode 100644
index 0000000..a29a55c3
--- /dev/null
+++ b/res/xml/terms_of_address.xml
@@ -0,0 +1,46 @@
+<?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/terms_of_address_title">
+
+    <com.android.settingslib.widget.TopIntroPreference
+        android:title="@string/terms_of_address_intro_title"
+        android:persistent="false"/>
+
+    <com.android.settings.widget.TickButtonPreference
+        android:key="key_terms_of_address_not_specified"
+        android:title="@string/terms_of_address_not_specified"
+        settings:controller="com.android.settings.localepicker.TermsOfAddressNotSpecifiedController"/>
+
+    <com.android.settings.widget.TickButtonPreference
+        android:key="key_terms_of_address_feminine"
+        android:title="@string/terms_of_address_feminine"
+        settings:controller="com.android.settings.localepicker.TermsOfAddressFeminineController"/>
+
+    <com.android.settings.widget.TickButtonPreference
+        android:key="key_terms_of_address_masculine"
+        android:title="@string/terms_of_address_masculine"
+        settings:controller="com.android.settings.localepicker.TermsOfAddressMasculineController"/>
+
+    <com.android.settings.widget.TickButtonPreference
+        android:key="key_terms_of_address_neutral"
+        android:title="@string/terms_of_address_neutral"
+        settings:controller="com.android.settings.localepicker.TermsOfAddressNeutralController"/>
+
+</PreferenceScreen>
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_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..3c577d8
--- /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">
+
+    <SwitchPreferenceCompat
+        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..5866c58 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,12 @@
         settings:keywords="@string/keywords_wifi_notify_open_networks"
         settings:controller="com.android.settings.wifi.NotifyOpenNetworksPreferenceController"/>
 
-    <SwitchPreference
+    <com.android.settings.spa.preference.ComposePreference
+        android:key="allow_wep_networks"
+        android:title="@string/wifi_allow_wep_networks"
+        settings:controller="com.android.settings.wifi.WepNetworksPreferenceController"/>
+
+    <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/AirplaneModeEnabler.java b/src/com/android/settings/AirplaneModeEnabler.java
index 735ae23..c233dda 100644
--- a/src/com/android/settings/AirplaneModeEnabler.java
+++ b/src/com/android/settings/AirplaneModeEnabler.java
@@ -29,6 +29,7 @@
 
 import androidx.annotation.VisibleForTesting;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.network.GlobalSettingsChangeListener;
 import com.android.settings.network.ProxySubscriptionManager;
 import com.android.settings.overlay.FeatureFactory;
@@ -67,7 +68,7 @@
         super(context, Settings.Global.AIRPLANE_MODE_ON);
 
         mContext = context;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mOnAirplaneModeChangedListener = listener;
 
         mTelephonyManager = context.getSystemService(TelephonyManager.class);
@@ -146,8 +147,19 @@
      * @return any subscription within device is under ECM mode
      */
     public boolean isInEcmMode() {
-        if (mTelephonyManager.getEmergencyCallbackMode()) {
-            return true;
+        if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+            try {
+                if (mTelephonyManager.getEmergencyCallbackMode()) {
+                    return true;
+                }
+            } catch (UnsupportedOperationException e) {
+                // Device doesn't support FEATURE_TELEPHONY_CALLING
+                // Ignore exception, device is not in ECM mode.
+            }
+        } else {
+            if (mTelephonyManager.getEmergencyCallbackMode()) {
+                return true;
+            }
         }
         final List<SubscriptionInfo> subInfoList =
                 ProxySubscriptionManager.getInstance(mContext).getActiveSubscriptionsInfo();
@@ -158,8 +170,18 @@
             final TelephonyManager telephonyManager =
                     mTelephonyManager.createForSubscriptionId(subInfo.getSubscriptionId());
             if (telephonyManager != null) {
-                if (telephonyManager.getEmergencyCallbackMode()) {
-                    return true;
+                if (!Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+                    if (telephonyManager.getEmergencyCallbackMode()) {
+                        return true;
+                    }
+                } else {
+                    try {
+                        if (telephonyManager.getEmergencyCallbackMode()) {
+                            return true;
+                        }
+                    } catch (UnsupportedOperationException e) {
+                        // Ignore exception, device is not in ECM mode.
+                    }
                 }
             }
         }
diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java
deleted file mode 100644
index f98fdc1..0000000
--- a/src/com/android/settings/AllInOneTetherSettings.java
+++ /dev/null
@@ -1,443 +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;
-
-import static android.net.ConnectivityManager.TETHERING_WIFI;
-import static android.net.TetheringManager.ACTION_TETHER_STATE_CHANGED;
-import static android.net.wifi.WifiManager.WIFI_AP_STATE_CHANGED_ACTION;
-
-import android.app.settings.SettingsEnums;
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.Bundle;
-import android.os.UserManager;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
-
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.dashboard.RestrictedDashboardFragment;
-import com.android.settings.datausage.DataSaverBackend;
-import com.android.settings.network.BluetoothTetherPreferenceController;
-import com.android.settings.network.EthernetTetherPreferenceController;
-import com.android.settings.network.TetherEnabler;
-import com.android.settings.network.UsbTetherPreferenceController;
-import com.android.settings.network.WifiTetherDisablePreferenceController;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.widget.MainSwitchBarController;
-import com.android.settings.widget.SettingsMainSwitchBar;
-import com.android.settings.wifi.tether.WifiTetherApBandPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherBasePreferenceController;
-import com.android.settings.wifi.tether.WifiTetherFooterPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherPasswordPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherSSIDPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherSecurityPreferenceController;
-import com.android.settingslib.TetherUtil;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Displays preferences for all Tethering options.
- */
-@SearchIndexable
-public class AllInOneTetherSettings extends RestrictedDashboardFragment
-        implements DataSaverBackend.Listener,
-        WifiTetherBasePreferenceController.OnTetherConfigUpdateListener {
-
-    // TODO(b/148622133): Should clean up the postfix once this fragment replaced TetherSettings.
-    public static final String DEDUP_POSTFIX = "_2";
-
-    @VisibleForTesting
-    static final String KEY_WIFI_TETHER_NETWORK_NAME = "wifi_tether_network_name" + DEDUP_POSTFIX;
-    @VisibleForTesting
-    static final String KEY_WIFI_TETHER_NETWORK_PASSWORD =
-            "wifi_tether_network_password" + DEDUP_POSTFIX;
-    @VisibleForTesting
-    static final String KEY_WIFI_TETHER_AUTO_OFF = "wifi_tether_auto_turn_off" + DEDUP_POSTFIX;
-    @VisibleForTesting
-    static final String KEY_WIFI_TETHER_NETWORK_AP_BAND =
-            "wifi_tether_network_ap_band" + DEDUP_POSTFIX;
-    @VisibleForTesting
-    static final String KEY_WIFI_TETHER_SECURITY = "wifi_tether_security" + DEDUP_POSTFIX;
-
-    private static final String KEY_DATA_SAVER_FOOTER = "disabled_on_data_saver" + DEDUP_POSTFIX;
-    private static final String KEY_WIFI_TETHER_GROUP = "wifi_tether_settings_group";
-    public static final String WIFI_TETHER_DISABLE_KEY = "disable_wifi_tethering";
-    public static final String USB_TETHER_KEY = "enable_usb_tethering";
-    public static final String BLUETOOTH_TETHER_KEY = "enable_bluetooth_tethering" + DEDUP_POSTFIX;
-    public static final String ETHERNET_TETHER_KEY = "enable_ethernet_tethering" + DEDUP_POSTFIX;
-
-    @VisibleForTesting
-    static final int EXPANDED_CHILD_COUNT_DEFAULT = 4;
-    @VisibleForTesting
-    static final int EXPANDED_CHILD_COUNT_WITH_SECURITY_NON = 3;
-    @VisibleForTesting
-    static final int EXPANDED_CHILD_COUNT_MAX = Integer.MAX_VALUE;
-    private static final String TAG = "AllInOneTetherSettings";
-
-    private boolean mUnavailable;
-
-    private DataSaverBackend mDataSaverBackend;
-    private boolean mDataSaverEnabled;
-    private Preference mDataSaverFooter;
-
-    private WifiManager mWifiManager;
-    private boolean mRestartWifiApAfterConfigChange;
-    private final AtomicReference<BluetoothPan> mBluetoothPan = new AtomicReference<>();
-
-    private WifiTetherSSIDPreferenceController mSSIDPreferenceController;
-    private WifiTetherPasswordPreferenceController mPasswordPreferenceController;
-    private WifiTetherApBandPreferenceController mApBandPreferenceController;
-    private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
-    private PreferenceGroup mWifiTetherGroup;
-    private boolean mShouldShowWifiConfig = true;
-    private boolean mHasShownAdvance;
-    private TetherEnabler mTetherEnabler;
-    @VisibleForTesting
-    final TetherEnabler.OnTetherStateUpdateListener mStateUpdateListener =
-            state -> {
-                mShouldShowWifiConfig = TetherEnabler.isTethering(state, TETHERING_WIFI)
-                        || state == TetherEnabler.TETHERING_OFF;
-                getPreferenceScreen().setInitialExpandedChildrenCount(
-                        getInitialExpandedChildCount());
-                mWifiTetherGroup.setVisible(mShouldShowWifiConfig);
-            };
-
-    private final BroadcastReceiver mTetherChangeReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context content, Intent intent) {
-            String action = intent.getAction();
-            if (Log.isLoggable(TAG, Log.DEBUG)) {
-                Log.d(TAG,
-                        "updating display config due to receiving broadcast action " + action);
-            }
-            updateDisplayWithNewConfig();
-            if (TextUtils.equals(action, ACTION_TETHER_STATE_CHANGED)) {
-                restartWifiTetherIfNeed(mWifiManager.getWifiApState());
-            } else if (TextUtils.equals(action, WIFI_AP_STATE_CHANGED_ACTION)) {
-                restartWifiTetherIfNeed(intent.getIntExtra(WifiManager.EXTRA_WIFI_AP_STATE, 0));
-            }
-        }
-
-        private void restartWifiTetherIfNeed(int state) {
-            if (state == WifiManager.WIFI_AP_STATE_DISABLED
-                    && mRestartWifiApAfterConfigChange) {
-                mRestartWifiApAfterConfigChange = false;
-                mTetherEnabler.startTethering(TETHERING_WIFI);
-            }
-        }
-    };
-
-    private final BluetoothProfile.ServiceListener mProfileServiceListener =
-            new BluetoothProfile.ServiceListener() {
-                public void onServiceConnected(int profile, BluetoothProfile proxy) {
-                    mBluetoothPan.set((BluetoothPan) proxy);
-                }
-
-                public void onServiceDisconnected(int profile) {
-                    mBluetoothPan.set(null);
-                }
-            };
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.TETHER;
-    }
-
-    public AllInOneTetherSettings() {
-        super(UserManager.DISALLOW_CONFIG_TETHERING);
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
-
-        mSSIDPreferenceController = use(WifiTetherSSIDPreferenceController.class);
-        mSecurityPreferenceController = use(WifiTetherSecurityPreferenceController.class);
-        mPasswordPreferenceController = use(WifiTetherPasswordPreferenceController.class);
-        mApBandPreferenceController = use(WifiTetherApBandPreferenceController.class);
-        getSettingsLifecycle().addObserver(use(UsbTetherPreferenceController.class));
-        getSettingsLifecycle().addObserver(use(BluetoothTetherPreferenceController.class));
-        getSettingsLifecycle().addObserver(use(EthernetTetherPreferenceController.class));
-        getSettingsLifecycle().addObserver(use(WifiTetherDisablePreferenceController.class));
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        mDataSaverBackend = new DataSaverBackend(getContext());
-        mDataSaverEnabled = mDataSaverBackend.isDataSaverEnabled();
-        mDataSaverFooter = findPreference(KEY_DATA_SAVER_FOOTER);
-        mWifiTetherGroup = findPreference(KEY_WIFI_TETHER_GROUP);
-
-        setIfOnlyAvailableForAdmins(true);
-        if (isUiRestricted()) {
-            mUnavailable = true;
-            return;
-        }
-
-        mDataSaverBackend.addListener(this);
-
-        // Set initial state based on Data Saver mode.
-        onDataSaverChanged(mDataSaverBackend.isDataSaverEnabled());
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-        if (mUnavailable) {
-            return;
-        }
-        // 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();
-        final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
-        if (adapter != null) {
-            adapter.getProfileProxy(activity.getApplicationContext(), mProfileServiceListener,
-                    BluetoothProfile.PAN);
-        }
-        final SettingsMainSwitchBar mainSwitch = activity.getSwitchBar();
-        mTetherEnabler = new TetherEnabler(activity,
-                new MainSwitchBarController(mainSwitch), mBluetoothPan);
-        getSettingsLifecycle().addObserver(mTetherEnabler);
-        use(UsbTetherPreferenceController.class).setTetherEnabler(mTetherEnabler);
-        use(BluetoothTetherPreferenceController.class).setTetherEnabler(mTetherEnabler);
-        use(EthernetTetherPreferenceController.class).setTetherEnabler(mTetherEnabler);
-        use(WifiTetherDisablePreferenceController.class).setTetherEnabler(mTetherEnabler);
-        mainSwitch.show();
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        if (mUnavailable) {
-            if (!isUiRestrictedByOnlyAdmin()) {
-                getEmptyTextView().setText(R.string.tethering_settings_not_available);
-            }
-            getPreferenceScreen().removeAll();
-            return;
-        }
-        final Context context = getContext();
-        if (context != null) {
-            // The intent WIFI_AP_STATE_CHANGED_ACTION is not sticky intent after SC-V2
-            // But ACTION_TETHER_STATE_CHANGED is still sticky intent. So no need to handle
-            // initial state for WIFI_AP_STATE_CHANGED_ACTION
-            IntentFilter filter = new IntentFilter(ACTION_TETHER_STATE_CHANGED);
-            filter.addAction(WIFI_AP_STATE_CHANGED_ACTION);
-            context.registerReceiver(mTetherChangeReceiver, filter);
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        if (mUnavailable) {
-            return;
-        }
-        if (mTetherEnabler != null) {
-            mTetherEnabler.addListener(mStateUpdateListener);
-        }
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        if (mUnavailable) {
-            return;
-        }
-        if (mTetherEnabler != null) {
-            mTetherEnabler.removeListener(mStateUpdateListener);
-        }
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        if (mUnavailable) {
-            return;
-        }
-        final Context context = getContext();
-        if (context != null) {
-            context.unregisterReceiver(mTetherChangeReceiver);
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        mDataSaverBackend.remListener(this);
-        super.onDestroy();
-    }
-
-    @Override
-    public void onDataSaverChanged(boolean isDataSaving) {
-        mDataSaverEnabled = isDataSaving;
-        mDataSaverFooter.setVisible(mDataSaverEnabled);
-    }
-
-    @Override
-    public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
-        // Do nothing
-    }
-
-    @Override
-    public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
-        // Do nothing
-    }
-
-    @Override
-    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        return buildPreferenceControllers(context, this);
-    }
-
-    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
-            WifiTetherBasePreferenceController.OnTetherConfigUpdateListener listener) {
-        final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        controllers.add(
-                new WifiTetherSSIDPreferenceController(context, listener));
-        controllers.add(
-                new WifiTetherPasswordPreferenceController(context, listener));
-        controllers.add(
-                new WifiTetherApBandPreferenceController(context, listener));
-        controllers.add(
-                new WifiTetherSecurityPreferenceController(context, listener));
-        controllers.add(
-                new WifiTetherAutoOffPreferenceController(context, KEY_WIFI_TETHER_AUTO_OFF));
-        controllers.add(
-                new WifiTetherFooterPreferenceController(context));
-
-        return controllers;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.all_tether_prefs;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    public int getHelpResource() {
-        return R.string.help_url_tether;
-    }
-
-    @Override
-    public void onTetherConfigUpdated(AbstractPreferenceController controller) {
-        final SoftApConfiguration config = buildNewConfig();
-        mPasswordPreferenceController.setSecurityType(config.getSecurityType());
-        mWifiManager.setSoftApConfiguration(config);
-
-        if (mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED) {
-            if (Log.isLoggable(TAG, Log.DEBUG)) {
-                Log.d(TAG, "Wifi AP config changed while enabled, stop and restart");
-            }
-            mRestartWifiApAfterConfigChange = true;
-            mTetherEnabler.stopTethering(TETHERING_WIFI);
-        }
-    }
-
-    private SoftApConfiguration buildNewConfig() {
-        final SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
-        final int securityType = mSecurityPreferenceController.getSecurityType();
-        configBuilder.setSsid(mSSIDPreferenceController.getSSID());
-        if (securityType == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK) {
-            configBuilder.setPassphrase(
-                    mPasswordPreferenceController.getPasswordValidated(securityType),
-                    SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
-        }
-        configBuilder.setBand(mApBandPreferenceController.getBandIndex());
-        return configBuilder.build();
-    }
-
-    private void updateDisplayWithNewConfig() {
-        mSSIDPreferenceController.updateDisplay();
-        mSecurityPreferenceController.updateDisplay();
-        mPasswordPreferenceController.updateDisplay();
-        mApBandPreferenceController.updateDisplay();
-    }
-
-    @Override
-    public int getInitialExpandedChildCount() {
-        if (mHasShownAdvance || !mShouldShowWifiConfig) {
-            mHasShownAdvance = true;
-            return EXPANDED_CHILD_COUNT_MAX;
-        }
-
-        if (mSecurityPreferenceController == null) {
-            return EXPANDED_CHILD_COUNT_DEFAULT;
-        }
-
-        return (mSecurityPreferenceController.getSecurityType()
-                == SoftApConfiguration.SECURITY_TYPE_OPEN)
-                ? EXPANDED_CHILD_COUNT_WITH_SECURITY_NON : EXPANDED_CHILD_COUNT_DEFAULT;
-    }
-
-    @Override
-    public void onExpandButtonClick() {
-        super.onExpandButtonClick();
-        mHasShownAdvance = true;
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.all_tether_prefs) {
-
-                @Override
-                public List<String> getNonIndexableKeys(Context context) {
-                    final List<String> keys = super.getNonIndexableKeys(context);
-
-                    if (!TetherUtil.isTetherAvailable(context)) {
-                        keys.add(KEY_WIFI_TETHER_NETWORK_NAME);
-                        keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
-                        keys.add(KEY_WIFI_TETHER_AUTO_OFF);
-                        keys.add(KEY_WIFI_TETHER_NETWORK_AP_BAND);
-                        keys.add(KEY_WIFI_TETHER_SECURITY);
-                    }
-                    return keys;
-                }
-
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
-                }
-
-                @Override
-                public List<AbstractPreferenceController> createPreferenceControllers(
-                        Context context) {
-                    return buildPreferenceControllers(context, null /*listener*/);
-                }
-            };
-}
diff --git a/src/com/android/settings/BugreportPreference.java b/src/com/android/settings/BugreportPreference.java
index 598399a..3c3e608 100644
--- a/src/com/android/settings/BugreportPreference.java
+++ b/src/com/android/settings/BugreportPreference.java
@@ -87,7 +87,7 @@
             final Context context = getContext();
             if (mFullTitle.isChecked()) {
                 Log.v(TAG, "Taking full bugreport right away");
-                FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(context,
                         SettingsEnums.ACTION_BUGREPORT_FROM_SETTINGS_FULL);
                 try {
                     ActivityManager.getService().requestFullBugReport();
@@ -96,7 +96,7 @@
                 }
             } else {
                 Log.v(TAG, "Taking interactive bugreport right away");
-                FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(context,
                         SettingsEnums.ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE);
                 try {
                     ActivityManager.getService().requestInteractiveBugReport();
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/IccLockSettings.java b/src/com/android/settings/IccLockSettings.java
index 6592fe0..422610a 100644
--- a/src/com/android/settings/IccLockSettings.java
+++ b/src/com/android/settings/IccLockSettings.java
@@ -52,8 +52,9 @@
 import android.widget.TextView;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
 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 +123,7 @@
     private ProxySubscriptionManager mProxySubscriptionMgr;
 
     private EditPinPreference mPinDialog;
-    private SwitchPreference mPinToggle;
+    private TwoStatePreference mPinToggle;
 
     private Resources mRes;
 
@@ -193,7 +194,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)) {
@@ -716,13 +717,18 @@
         return slotId;
     }
 
+    @Nullable
     private SubscriptionInfo getVisibleSubscriptionInfoForSimSlotIndex(int slotId) {
         final List<SubscriptionInfo> subInfoList =
                 mProxySubscriptionMgr.getActiveSubscriptionsInfo();
         if (subInfoList == null) {
             return null;
         }
-        final CarrierConfigManager carrierConfigManager = getContext().getSystemService(
+        Context context = getContext();
+        if (context == null) {
+            return null;
+        }
+        final CarrierConfigManager carrierConfigManager = context.getSystemService(
                 CarrierConfigManager.class);
         for (SubscriptionInfo subInfo : subInfoList) {
             if ((isSubscriptionVisible(carrierConfigManager, subInfo)
diff --git a/src/com/android/settings/MainClear.java b/src/com/android/settings/MainClear.java
index 8a441e2..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(R.style.SudGlifButton_Primary)
-                        .build()
-        );
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .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();
     }
 
@@ -501,10 +527,12 @@
 
                 if (userInfo.isManagedProfile()) {
                     titleText.setText(devicePolicyManager.getResources().getString(
-                            WORK_CATEGORY_HEADER, () -> getString(R.string.category_work)));
+                            WORK_CATEGORY_HEADER, () -> getString(
+                                    com.android.settingslib.R.string.category_work)));
                 } else {
                     titleText.setText(devicePolicyManager.getResources().getString(
-                            PERSONAL_CATEGORY_HEADER, () -> getString(R.string.category_personal)));
+                            PERSONAL_CATEGORY_HEADER, () -> getString(
+                                    com.android.settingslib.R.string.category_personal)));
                 }
                 contents.addView(titleView);
             }
diff --git a/src/com/android/settings/MainClearConfirm.java b/src/com/android/settings/MainClearConfirm.java
index c8b982e..b5ddd1a 100644
--- a/src/com/android/settings/MainClearConfirm.java
+++ b/src/com/android/settings/MainClearConfirm.java
@@ -86,13 +86,14 @@
                 return;
             }
 
+            final PersistentDataBlockManager pdbManager;
             // pre-flight check hardware support PersistentDataBlockManager
-            if (SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("")) {
-                return;
-            }
-
-            final PersistentDataBlockManager pdbManager = (PersistentDataBlockManager)
+            if (!SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("")) {
+                pdbManager = (PersistentDataBlockManager)
                     getActivity().getSystemService(Context.PERSISTENT_DATA_BLOCK_SERVICE);
+            } else {
+                pdbManager = null;
+            }
 
             if (shouldWipePersistentDataBlock(pdbManager)) {
 
@@ -211,7 +212,7 @@
                         .setText(R.string.main_clear_button_text)
                         .setListener(mFinalClickListener)
                         .setButtonType(ButtonType.OTHER)
-                        .setTheme(R.style.SudGlifButton_Primary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                         .build()
         );
     }
diff --git a/src/com/android/settings/RegulatoryInfoDisplayActivity.kt b/src/com/android/settings/RegulatoryInfoDisplayActivity.kt
index ffacb9c..fdf66c3 100644
--- a/src/com/android/settings/RegulatoryInfoDisplayActivity.kt
+++ b/src/com/android/settings/RegulatoryInfoDisplayActivity.kt
@@ -46,7 +46,7 @@
 
         getRegulatoryInfo()?.let {
             val view = layoutInflater.inflate(R.layout.regulatory_info, null)
-            val image = view.findViewById<ImageView>(R.id.regulatoryInfo)
+            val image = view.requireViewById<ImageView>(R.id.regulatoryInfo)
             image.setImageDrawable(it)
             builder.setView(view)
             builder.show()
diff --git a/src/com/android/settings/RemoteBugreportActivity.java b/src/com/android/settings/RemoteBugreportActivity.java
index 1485287..20cc059 100644
--- a/src/com/android/settings/RemoteBugreportActivity.java
+++ b/src/com/android/settings/RemoteBugreportActivity.java
@@ -20,7 +20,6 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.SHARE_REMOTE_BUGREPORT_NOT_FINISHED_REQUEST_CONSENT;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.SHARING_REMOTE_BUGREPORT_MESSAGE;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.content.DialogInterface;
@@ -29,6 +28,7 @@
 import android.os.UserHandle;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 
 /**
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index da15d03..c33a4f8 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -16,12 +16,10 @@
 
 package com.android.settings;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -43,8 +41,10 @@
 import androidx.activity.result.ActivityResult;
 import androidx.activity.result.ActivityResultLauncher;
 import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.network.ResetNetworkRestrictionViewBuilder;
@@ -122,16 +122,24 @@
     void showFinalConfirmation() {
         Bundle args = new Bundle();
 
-        ResetNetworkRequest request = new ResetNetworkRequest(
-                ResetNetworkRequest.RESET_CONNECTIVITY_MANAGER |
-                ResetNetworkRequest.RESET_VPN_MANAGER
-        );
+        // TODO(b/317276437) Simplify the logic once flag is released
+        int resetOptions = ResetNetworkRequest.RESET_CONNECTIVITY_MANAGER
+                        | ResetNetworkRequest.RESET_VPN_MANAGER;
+        if (Flags.resetMobileNetworkSettings()) {
+            resetOptions |= ResetNetworkRequest.RESET_IMS_STACK;
+            resetOptions |= ResetNetworkRequest.RESET_PHONE_PROCESS;
+            resetOptions |= ResetNetworkRequest.RESET_RILD;
+        }
+        ResetNetworkRequest request = new ResetNetworkRequest(resetOptions);
         if (mSubscriptions != null && mSubscriptions.size() > 0) {
             int selectedIndex = mSubscriptionSpinner.getSelectedItemPosition();
             SubscriptionInfo subscription = mSubscriptions.get(selectedIndex);
             int subId = subscription.getSubscriptionId();
             request.setResetTelephonyAndNetworkPolicyManager(subId)
                    .setResetApn(subId);
+            if (Flags.resetMobileNetworkSettings()) {
+                request.setResetImsSubId(subId);
+            }
         }
         if (mEsimContainer.getVisibility() == View.VISIBLE && mEsimCheckbox.isChecked()) {
             request.setResetEsim(getContext().getPackageName())
diff --git a/src/com/android/settings/ResetNetworkRequest.java b/src/com/android/settings/ResetNetworkRequest.java
index 40eebb0..4be8b32 100644
--- a/src/com/android/settings/ResetNetworkRequest.java
+++ b/src/com/android/settings/ResetNetworkRequest.java
@@ -48,11 +48,29 @@
     /* Reset option - reset BluetoothManager */
     public static final int RESET_BLUETOOTH_MANAGER = 0x10;
 
-    /* Subscription ID for not performing reset TelephonyAndNetworkPolicy or reset APN */
+    /* Reset option - reset IMS stack */
+    public static final int RESET_IMS_STACK = 0x20;
+
+    /* Reset option - reset phone process */
+    public static final int RESET_PHONE_PROCESS = 0x40;
+
+    /* Reset option - reset RILD */
+    public static final int RESET_RILD = 0x80;
+
+    /**
+     *  Subscription ID indicates NOT resetting any of the components below:
+     *  - TelephonyAndNetworkPolicy
+     *  - APN
+     *  - IMS
+     */
     public static final int INVALID_SUBSCRIPTION_ID = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
-    /* Subscription ID for performing reset TelephonyAndNetworkPolicy or reset APN
-        on all subscriptions */
+    /**
+     *  Subscription ID indicates resetting components below for ALL subscriptions:
+     *  - TelephonyAndNetworkPolicy
+     *  - APN
+     *  - IMS
+     */
     public static final int ALL_SUBSCRIPTION_ID = SubscriptionManager.DEFAULT_SUBSCRIPTION_ID;
 
     /* Key within Bundle. To store some connectivity options for reset */
@@ -75,10 +93,14 @@
     @VisibleForTesting
     protected static final String KEY_APN_SUBID = "resetApnSubId";
 
+    /** Key within Bundle. To store subscription ID for resetting IMS. */
+    protected  static final String KEY_RESET_IMS_SUBID = "resetImsSubId";
+
     private int mResetOptions = RESET_NONE;
     private String mResetEsimPackageName;
     private int mResetTelephonyManager = INVALID_SUBSCRIPTION_ID;
     private int mResetApn = INVALID_SUBSCRIPTION_ID;
+    private int mSubscriptionIdToResetIms = INVALID_SUBSCRIPTION_ID;
 
     /**
      * Reconstruct based on keys stored within Bundle.
@@ -93,6 +115,8 @@
         mResetTelephonyManager = optionsFromBundle.getInt(
                 KEY_TELEPHONY_NET_POLICY_MANAGER_SUBID, INVALID_SUBSCRIPTION_ID);
         mResetApn = optionsFromBundle.getInt(KEY_APN_SUBID, INVALID_SUBSCRIPTION_ID);
+        mSubscriptionIdToResetIms = optionsFromBundle.getInt(KEY_RESET_IMS_SUBID,
+                INVALID_SUBSCRIPTION_ID);
     }
 
     /**
@@ -173,6 +197,29 @@
     }
 
     /**
+     * Get the subscription ID applied for resetting IMS.
+     * @return subscription ID.
+     *         {@code ALL_SUBSCRIPTION_ID} for applying to all subscriptions.
+     *         {@code INVALID_SUBSCRIPTION_ID} means resetting IMS
+     *         is not part of the option within this request.
+     */
+    public int getResetImsSubId() {
+        return mSubscriptionIdToResetIms;
+    }
+
+    /**
+     * Set the subscription ID applied for resetting APN.
+     * @param subId is the subscription ID referenced from SubscriptionManager.
+     *         {@code ALL_SUBSCRIPTION_ID} for applying to all subscriptions.
+     *         {@code INVALID_SUBSCRIPTION_ID} means resetting IMS will not take place.
+     * @return this
+     */
+    public ResetNetworkRequest setResetImsSubId(int subId) {
+        mSubscriptionIdToResetIms = subId;
+        return this;
+    }
+
+    /**
      * Store a copy of this request into Bundle given.
      * @param writeToBundle is a Bundle for storing configurations of this request.
      * @return this request
@@ -182,6 +229,7 @@
         writeToBundle.putString(KEY_ESIM_PACKAGE, mResetEsimPackageName);
         writeToBundle.putInt(KEY_TELEPHONY_NET_POLICY_MANAGER_SUBID, mResetTelephonyManager);
         writeToBundle.putInt(KEY_APN_SUBID, mResetApn);
+        writeToBundle.putInt(KEY_RESET_IMS_SUBID, mSubscriptionIdToResetIms);
         return this;
     }
 
@@ -219,6 +267,15 @@
         if (mResetApn != INVALID_SUBSCRIPTION_ID) {
             builder.resetApn(mResetApn);
         }
+        if ((mResetOptions & RESET_IMS_STACK) != 0) {
+            builder.resetIms(mSubscriptionIdToResetIms);
+        }
+        if ((mResetOptions & RESET_PHONE_PROCESS) != 0) {
+            builder.restartPhoneProcess();
+        }
+        if ((mResetOptions & RESET_RILD) != 0) {
+            builder.restartRild();
+        }
         return builder;
     }
 }
diff --git a/src/com/android/settings/ResetSubscriptionContract.java b/src/com/android/settings/ResetSubscriptionContract.java
index 580e907..528a16d 100644
--- a/src/com/android/settings/ResetSubscriptionContract.java
+++ b/src/com/android/settings/ResetSubscriptionContract.java
@@ -23,8 +23,8 @@
 
 import androidx.annotation.VisibleForTesting;
 
-import java.util.concurrent.Executors;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.IntStream;
 
@@ -53,8 +53,8 @@
         mContext = context;
         // Only keeps specific subscription ID required to perform reset operation
         IntStream subIdStream = IntStream.of(
-                resetRequest.getResetTelephonyAndNetworkPolicyManager()
-                , resetRequest.getResetApnSubId());
+                resetRequest.getResetTelephonyAndNetworkPolicyManager(),
+                resetRequest.getResetApnSubId(), resetRequest.getResetImsSubId());
         mResetSubscriptionIds = subIdStream.sorted().distinct()
                 .filter(id -> SubscriptionManager.isUsableSubscriptionId(id))
                 .toArray();
diff --git a/src/com/android/settings/RestrictedCheckBox.java b/src/com/android/settings/RestrictedCheckBox.java
index 828c443..64bb0a6 100644
--- a/src/com/android/settings/RestrictedCheckBox.java
+++ b/src/com/android/settings/RestrictedCheckBox.java
@@ -61,7 +61,8 @@
             RestrictedLockUtilsInternal.setTextViewAsDisabledByAdmin(mContext, this,
                     mDisabledByAdmin);
             if (mDisabledByAdmin) {
-                getButtonDrawable().setColorFilter(mContext.getColor(R.color.disabled_text_color),
+                getButtonDrawable().setColorFilter(
+                        mContext.getColor(com.android.settingslib.R.color.disabled_text_color),
                         PorterDuff.Mode.MULTIPLY);
             } else {
                 getButtonDrawable().clearColorFilter();
diff --git a/src/com/android/settings/SetFullBackupPassword.java b/src/com/android/settings/SetFullBackupPassword.java
index b6a03d5..7252289 100644
--- a/src/com/android/settings/SetFullBackupPassword.java
+++ b/src/com/android/settings/SetFullBackupPassword.java
@@ -25,6 +25,7 @@
 import android.util.Log;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -48,7 +49,8 @@
                     // Mismatch between new pw and its confirmation re-entry
                     Log.i(TAG, "password mismatch");
                     Toast.makeText(SetFullBackupPassword.this,
-                            R.string.local_backup_password_toast_confirmation_mismatch,
+                            com.android.settingslib.R
+                                    .string.local_backup_password_toast_confirmation_mismatch,
                             Toast.LENGTH_LONG).show();
                     return;
                 }
@@ -59,14 +61,15 @@
                     // success
                     Log.i(TAG, "password set successfully");
                     Toast.makeText(SetFullBackupPassword.this,
-                            R.string.local_backup_password_toast_success,
+                            com.android.settingslib.R.string.local_backup_password_toast_success,
                             Toast.LENGTH_LONG).show();
                     finish();
                 } else {
                     // failure -- bad existing pw, usually
                     Log.i(TAG, "failure; password mismatch?");
                     Toast.makeText(SetFullBackupPassword.this,
-                            R.string.local_backup_password_toast_validation_failure,
+                            com.android.settingslib.R
+                                    .string.local_backup_password_toast_validation_failure,
                             Toast.LENGTH_LONG).show();
                 }
             } else if (v == mCancel) {
@@ -80,6 +83,7 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
 
         mBackupManager = IBackupManager.Stub.asInterface(ServiceManager.getService("backup"));
 
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 60a5b80..63ce331 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -19,18 +19,15 @@
 import static android.provider.Settings.ACTION_PRIVACY_SETTINGS;
 
 import android.content.ActivityNotFoundException;
-import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.telephony.ims.ImsRcsManager;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.biometrics.face.FaceSettings;
 import com.android.settings.communal.CommunalPreferenceController;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.enterprise.EnterprisePrivacySettings;
 import com.android.settings.network.MobileNetworkIntentConverter;
 import com.android.settings.overlay.FeatureFactory;
@@ -49,7 +46,6 @@
     */
 
     public static class MemtagPageActivity extends SettingsActivity { /* empty */}
-    public static class AssistGestureSettingsActivity extends SettingsActivity { /* empty */}
     public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
     public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
     public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }
@@ -59,43 +55,11 @@
     public static class FingerprintSettingsActivityV2 extends SettingsActivity { /* empty */ }
     public static class CombinedBiometricSettingsActivity extends SettingsActivity { /* empty */ }
     public static class CombinedBiometricProfileSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class TetherSettingsActivity extends SettingsActivity {
-        // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently.
-        @Override
-        public Intent getIntent() {
-            return wrapIntentWithAllInOneTetherSettingsIfNeeded(
-                    getApplicationContext(), super.getIntent());
-        }
+    public static class TetherSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class WifiTetherSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class PrivateSpaceBiometricSettingsActivity extends SettingsActivity {
+        /* empty */
     }
-    public static class WifiTetherSettingsActivity extends SettingsActivity {
-        // TODO(b/147675042): Clean the override up when we enable the new Fragment persistently.
-        @Override
-        public Intent getIntent() {
-            return wrapIntentWithAllInOneTetherSettingsIfNeeded(
-                    getApplicationContext(), super.getIntent());
-        }
-    }
-
-    private static Intent wrapIntentWithAllInOneTetherSettingsIfNeeded(
-            Context context, Intent superIntent) {
-        if (!FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE)) {
-            return superIntent;
-        }
-
-        final Intent modIntent = new Intent(superIntent);
-        modIntent.putExtra(EXTRA_SHOW_FRAGMENT,
-                AllInOneTetherSettings.class.getCanonicalName());
-        Bundle args = superIntent.getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS);
-        if (args != null) {
-            args = new Bundle(args);
-        } else {
-            args = new Bundle();
-        }
-        args.putParcelable("intent", superIntent);
-        modIntent.putExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS, args);
-        return modIntent;
-    }
-
     public static class VpnSettingsActivity extends SettingsActivity { /* empty */ }
     /** Activity for Data saver settings. */
     public static class DataSaverSummaryActivity extends SettingsActivity { /* empty */ }
@@ -135,9 +99,10 @@
     public static class HighPowerApplicationsActivity extends SettingsActivity { /* empty */ }
     public static class BackgroundCheckSummaryActivity extends SettingsActivity { /* empty */ }
     public static class StorageUseActivity extends SettingsActivity { /* empty */ }
-    public static class DevelopmentSettingsDashboardActivity extends SettingsActivity { /* empty */ }
+    public static class DevelopmentSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilitySettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityDetailsSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class AccessibilityEditShortcutsActivity extends SettingsActivity { /* empty */ }
     public static class CaptioningSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityInversionSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AccessibilityContrastSettingsActivity extends SettingsActivity { /* empty */ }
@@ -203,7 +168,7 @@
         private String getAlternativeFragmentName() {
             String alternativeFragmentClassname = null;
             final SecuritySettingsFeatureProvider securitySettingsFeatureProvider =
-                    FeatureFactory.getFactory(this).getSecuritySettingsFeatureProvider();
+                    FeatureFactory.getFeatureFactory().getSecuritySettingsFeatureProvider();
             if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) {
                 alternativeFragmentClassname = securitySettingsFeatureProvider
                         .getAlternativeSecuritySettingsFragmentClassname();
@@ -315,7 +280,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 */
@@ -382,6 +346,7 @@
         /* empty */
     }
 
+    public static class SatelliteSettingActivity extends SettingsActivity { /* empty */ }
     public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
     public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ }
     public static class MemorySettingsActivity extends SettingsActivity { /* empty */ }
@@ -421,8 +386,7 @@
         @Override
         public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
-            if (FeatureFactory.getFactory(this)
-                    .getEnterprisePrivacyFeatureProvider(this)
+            if (FeatureFactory.getFeatureFactory().getEnterprisePrivacyFeatureProvider()
                     .showParentalControls()) {
                 finish();
             } else if (!EnterprisePrivacySettings.isPageEnabled(this)) {
@@ -437,6 +401,7 @@
     public static class StylusUsiDetailsActivity extends SettingsActivity { /* empty */ }
     public static class BluetoothBroadcastActivity extends SettingsActivity { /* empty */ }
     public static class BluetoothFindBroadcastsActivity extends SettingsActivity { /* empty */ }
+    public static class AudioStreamConfirmDialogActivity extends SettingsActivity { /* empty */ }
     public static class WifiCallingDisclaimerActivity extends SettingsActivity { /* empty */ }
     public static class MobileNetworkListActivity extends SettingsActivity {}
     public static class PowerMenuSettingsActivity extends SettingsActivity {}
@@ -516,4 +481,11 @@
      * Activity for OneHandedSettings
      */
     public static class OneHandedSettingsActivity extends SettingsActivity { /* empty */ }
+
+    public static class PreviouslyConnectedDeviceActivity extends SettingsActivity { /* empty */ }
+
+    public static class ScreenTimeoutActivity extends SettingsActivity { /* empty */ }
+
+    /** Activity for the Reset mobile network settings. */
+    public static class ResetMobileNetworkSettingsActivity extends SettingsActivity { /* empty */ }
 }
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index b369190..27a87f3 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;
@@ -53,7 +48,6 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceManager;
@@ -67,7 +61,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;
@@ -76,7 +69,6 @@
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.core.instrumentation.Instrumentable;
 import com.android.settingslib.core.instrumentation.SharedPreferencesLogger;
-import com.android.settingslib.development.DevelopmentSettingsEnabler;
 import com.android.settingslib.drawer.DashboardCategory;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
@@ -180,8 +172,6 @@
     private CharSequence mInitialTitle;
     private int mInitialTitleResId;
 
-    private BroadcastReceiver mDevelopmentSettingsListener;
-
     private boolean mBatteryPresent = true;
     private BroadcastReceiver mBatteryInfoReceiver = new BroadcastReceiver() {
         @Override
@@ -238,7 +228,7 @@
         String tag = getMetricsTag();
 
         return new SharedPreferencesLogger(this, tag,
-                FeatureFactory.getFactory(this).getMetricsFeatureProvider(),
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(),
                 lookupMetricsCategory());
     }
 
@@ -278,7 +268,8 @@
         getMetaData();
         final Intent intent = getIntent();
 
-        if (shouldShowTwoPaneDeepLink(intent) && tryStartTwoPaneDeepLink(intent)) {
+        if (shouldShowMultiPaneDeepLink(intent)
+                && tryStartMultiPaneDeepLink(this, intent, mHighlightMenuKey)) {
             finish();
             super.onCreate(savedState);
             return;
@@ -292,8 +283,8 @@
     protected void createUiFromIntent(Bundle savedState, Intent intent) {
         long startTime = System.currentTimeMillis();
 
-        final FeatureFactory factory = FeatureFactory.getFactory(this);
-        mDashboardFeatureProvider = factory.getDashboardFeatureProvider(this);
+        final FeatureFactory factory = FeatureFactory.getFeatureFactory();
+        mDashboardFeatureProvider = factory.getDashboardFeatureProvider();
 
         if (intent.hasExtra(EXTRA_UI_OPTIONS)) {
             getWindow().setUiOptions(intent.getIntExtra(EXTRA_UI_OPTIONS, 0));
@@ -330,14 +321,6 @@
             launchSettingFragment(initialFragmentName, intent);
         }
 
-        final boolean isActionBarButtonEnabled = isActionBarButtonEnabled(intent);
-
-        final ActionBar actionBar = getActionBar();
-        if (actionBar != null) {
-            actionBar.setDisplayHomeAsUpEnabled(isActionBarButtonEnabled);
-            actionBar.setHomeButtonEnabled(isActionBarButtonEnabled);
-            actionBar.setDisplayShowTitleEnabled(true);
-        }
         mMainSwitch = findViewById(R.id.switch_bar);
         if (mMainSwitch != null) {
             mMainSwitch.setMetricsCategory(lookupMetricsCategory());
@@ -395,6 +378,17 @@
         }
     }
 
+    private void setActionBarStatus() {
+        final boolean isActionBarButtonEnabled = isActionBarButtonEnabled(getIntent());
+
+        final ActionBar actionBar = getActionBar();
+        if (actionBar != null) {
+            actionBar.setDisplayHomeAsUpEnabled(isActionBarButtonEnabled);
+            actionBar.setHomeButtonEnabled(isActionBarButtonEnabled);
+            actionBar.setDisplayShowTitleEnabled(true);
+        }
+    }
+
     private boolean isActionBarButtonEnabled(Intent intent) {
         if (WizardManagerHelper.isAnySetupWizard(intent)) {
             return false;
@@ -412,73 +406,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;
         }
@@ -680,15 +608,7 @@
     @Override
     protected void onResume() {
         super.onResume();
-
-        mDevelopmentSettingsListener = new BroadcastReceiver() {
-            @Override
-            public void onReceive(Context context, Intent intent) {
-                updateTilesList();
-            }
-        };
-        LocalBroadcastManager.getInstance(this).registerReceiver(mDevelopmentSettingsListener,
-                new IntentFilter(DevelopmentSettingsEnabler.DEVELOPMENT_SETTINGS_CHANGED_ACTION));
+        setActionBarStatus();
 
         registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
 
@@ -698,8 +618,6 @@
     @Override
     protected void onPause() {
         super.onPause();
-        LocalBroadcastManager.getInstance(this).unregisterReceiver(mDevelopmentSettingsListener);
-        mDevelopmentSettingsListener = null;
         unregisterReceiver(mBatteryInfoReceiver);
     }
 
@@ -849,19 +767,6 @@
                 || somethingChanged;
 
         somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
-                        Settings.UserSettingsActivity.class.getName()),
-                UserHandle.MU_ENABLED && UserManager.supportsMultipleUsers()
-                        && !Utils.isMonkeyRunning(), isAdmin)
-                || somethingChanged;
-
-        final boolean showDev = DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(this)
-                && !Utils.isMonkeyRunning();
-        somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
-                        Settings.DevelopmentSettingsDashboardActivity.class.getName()),
-                showDev, isAdmin)
-                || somethingChanged;
-
-        somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
                         Settings.WifiDisplaySettingsActivity.class.getName()),
                 WifiDisplaySettings.isAvailable(this), isAdmin)
                 || somethingChanged;
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/SettingsApplication.java b/src/com/android/settings/SettingsApplication.java
index 8c050ea..528576d 100644
--- a/src/com/android/settings/SettingsApplication.java
+++ b/src/com/android/settings/SettingsApplication.java
@@ -17,15 +17,20 @@
 package com.android.settings;
 
 import android.app.Application;
+import android.content.Context;
 import android.database.ContentObserver;
 import android.net.Uri;
 import android.provider.Settings;
 import android.util.FeatureFlagUtils;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.activityembedding.ActivityEmbeddingRulesController;
 import com.android.settings.activityembedding.ActivityEmbeddingUtils;
 import com.android.settings.core.instrumentation.ElapsedTimeUtils;
 import com.android.settings.homepage.SettingsHomepageActivity;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.overlay.FeatureFactoryImpl;
 import com.android.settings.spa.SettingsSpaEnvironment;
 import com.android.settingslib.applications.AppIconCacheManager;
 import com.android.settingslib.spa.framework.common.SpaEnvironmentFactory;
@@ -40,6 +45,12 @@
     private WeakReference<SettingsHomepageActivity> mHomeActivity = new WeakReference<>(null);
 
     @Override
+    protected void attachBaseContext(Context base) {
+        super.attachBaseContext(base);
+        FeatureFactory.setFactory(this, getFeatureFactory());
+    }
+
+    @Override
     public void onCreate() {
         super.onCreate();
 
@@ -62,6 +73,11 @@
         }
     }
 
+    @NonNull
+    protected FeatureFactory getFeatureFactory() {
+        return new FeatureFactoryImpl();
+    }
+
     /**
      * Set the spa environment instance.
      * Override this function to set different spa environment for different Settings app.
diff --git a/src/com/android/settings/SettingsDumpService.java b/src/com/android/settings/SettingsDumpService.java
index 4feb6b2..7e84691 100644
--- a/src/com/android/settings/SettingsDumpService.java
+++ b/src/com/android/settings/SettingsDumpService.java
@@ -38,7 +38,6 @@
 
 import com.android.settings.applications.ProcStatsData;
 import com.android.settings.datausage.lib.DataUsageLib;
-import com.android.settings.fuelgauge.batterytip.AnomalyConfigJobService;
 import com.android.settings.network.MobileNetworkRepository;
 import com.android.settingslib.net.DataUsageController;
 
@@ -99,7 +98,6 @@
                 dump.put(KEY_DATAUSAGE, dumpDataUsage());
                 dump.put(KEY_MEMORY, dumpMemory());
                 dump.put(KEY_DEFAULT_BROWSER_APP, dumpDefaultBrowser());
-                dump.put(KEY_ANOMALY_DETECTION, dumpAnomalyDetection());
             } catch (Exception e) {
                 Log.w(TAG, "exception in dump: ", e);
             }
@@ -197,20 +195,6 @@
         }
     }
 
-    @VisibleForTesting
-    JSONObject dumpAnomalyDetection() throws JSONException {
-        final JSONObject obj = new JSONObject();
-        final SharedPreferences sharedPreferences = getSharedPreferences(
-                AnomalyConfigJobService.PREF_DB,
-                Context.MODE_PRIVATE);
-        final int currentVersion = sharedPreferences.getInt(
-                AnomalyConfigJobService.KEY_ANOMALY_CONFIG_VERSION,
-                0 /* defValue */);
-        obj.put("anomaly_config_version", String.valueOf(currentVersion));
-
-        return obj;
-    }
-
     private void dumpMobileNetworkSettings(IndentingPrintWriter writer) {
         MobileNetworkRepository.getInstance(this).dump(writer);
     }
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/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 8c97f02..66397c0 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -479,6 +479,10 @@
                 mDialogFragment.dismiss();
                 mDialogFragment = null;
             }
+            RecyclerView view = getListView();
+            if (view != null) {
+                view.clearOnScrollListeners();
+            }
         }
         super.onDetach();
     }
@@ -737,7 +741,7 @@
                 overrideKey, () -> getString(resource)));
     }
 
-    protected void replaceEnterpriseStringSummary(
+    public void replaceEnterpriseStringSummary(
             String preferenceKey, String overrideKey, int resource) {
         Preference preference = findPreference(preferenceKey);
         if (preference == null) {
@@ -750,7 +754,7 @@
                         () -> getString(resource)));
     }
 
-    protected void replaceEnterpriseStringTitle(
+    public void replaceEnterpriseStringTitle(
             String preferenceKey, String overrideKey, int resource) {
         Preference preference = findPreference(preferenceKey);
         if (preference == null) {
diff --git a/src/com/android/settings/TouchBlockingFrameLayout.java b/src/com/android/settings/TouchBlockingFrameLayout.java
index ca249e2..6c77273 100644
--- a/src/com/android/settings/TouchBlockingFrameLayout.java
+++ b/src/com/android/settings/TouchBlockingFrameLayout.java
@@ -16,12 +16,13 @@
 
 package com.android.settings;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.widget.FrameLayout;
 
+import androidx.annotation.Nullable;
+
 /**
  * Extension of FrameLayout that consumes all touch events.
  */
diff --git a/src/com/android/settings/TrustedCredentialsDialogBuilder.java b/src/com/android/settings/TrustedCredentialsDialogBuilder.java
index 9a73991..93d5ebb 100644
--- a/src/com/android/settings/TrustedCredentialsDialogBuilder.java
+++ b/src/com/android/settings/TrustedCredentialsDialogBuilder.java
@@ -15,7 +15,6 @@
  */
 package com.android.settings;
 
-import android.annotation.NonNull;
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.content.DialogInterface;
@@ -31,6 +30,7 @@
 import android.widget.LinearLayout;
 import android.widget.Spinner;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.internal.widget.LockPatternUtils;
diff --git a/src/com/android/settings/TrustedCredentialsFragment.java b/src/com/android/settings/TrustedCredentialsFragment.java
index c90a44d..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;
@@ -333,11 +333,11 @@
             TextView title = convertView.findViewById(android.R.id.title);
             if (getUserInfoByGroup(groupPosition).isManagedProfile()) {
                 title.setText(mDevicePolicyManager.getResources().getString(WORK_CATEGORY_HEADER,
-                        () -> getString(R.string.category_work)));
+                        () -> getString(com.android.settingslib.R.string.category_work)));
             } else {
                 title.setText(mDevicePolicyManager.getResources().getString(
                         PERSONAL_CATEGORY_HEADER,
-                        () -> getString(R.string.category_personal)));
+                        () -> getString(com.android.settingslib.R.string.category_personal)));
 
             }
             title.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_END);
@@ -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/UserCredentialsSettings.java b/src/com/android/settings/UserCredentialsSettings.java
index 73f1d9e..4950650 100644
--- a/src/com/android/settings/UserCredentialsSettings.java
+++ b/src/com/android/settings/UserCredentialsSettings.java
@@ -17,7 +17,6 @@
 package com.android.settings;
 
 import android.annotation.LayoutRes;
-import android.annotation.Nullable;
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -43,6 +42,7 @@
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 910ab81..108e331 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -16,11 +16,11 @@
 
 package com.android.settings;
 
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PASSWORD;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PATTERN;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PIN;
 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;
 
@@ -42,7 +42,6 @@
 import android.content.pm.IntentFilterVerificationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
 import android.content.pm.UserProperties;
 import android.content.res.Configuration;
@@ -55,7 +54,9 @@
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.VectorDrawable;
+import android.hardware.face.Face;
 import android.hardware.face.FaceManager;
+import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 import android.net.ConnectivityManager;
 import android.net.LinkAddress;
@@ -66,6 +67,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;
@@ -106,14 +108,13 @@
 import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
 import androidx.fragment.app.Fragment;
 import androidx.lifecycle.Lifecycle;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
 
 import com.android.internal.app.UnlaunchableAppActivity;
 import com.android.internal.util.ArrayUtils;
 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;
@@ -121,6 +122,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 {
@@ -147,11 +149,6 @@
             "device_identifier_access_restrictions_disabled";
 
     /**
-     * Whether to show the Permissions Hub.
-     */
-    public static final String PROPERTY_PERMISSIONS_HUB_ENABLED = "permissions_hub_enabled";
-
-    /**
      * Whether to show location indicators.
      */
     public static final String PROPERTY_LOCATION_INDICATORS_ENABLED = "location_indicators_enabled";
@@ -182,61 +179,6 @@
             "delete_all_app_clones_enabled";
 
     /**
-     * Finds a matching activity for a preference's intent. If a matching
-     * activity is not found, it will remove the preference.
-     *
-     * @param context The context.
-     * @param parentPreferenceGroup The preference group that contains the
-     *            preference whose intent is being resolved.
-     * @param preferenceKey The key of the preference whose intent is being
-     *            resolved.
-     * @param flags 0 or one or more of
-     *            {@link #UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY}
-     *            .
-     * @return Whether an activity was found. If false, the preference was
-     *         removed.
-     */
-    public static boolean updatePreferenceToSpecificActivityOrRemove(Context context,
-            PreferenceGroup parentPreferenceGroup, String preferenceKey, int flags) {
-
-        final Preference preference = parentPreferenceGroup.findPreference(preferenceKey);
-        if (preference == null) {
-            return false;
-        }
-
-        final Intent intent = preference.getIntent();
-        if (intent != null) {
-            // Find the activity that is in the system image
-            final PackageManager pm = context.getPackageManager();
-            final List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
-            final int listSize = list.size();
-            for (int i = 0; i < listSize; i++) {
-                final ResolveInfo resolveInfo = list.get(i);
-                if ((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM)
-                        != 0) {
-
-                    // Replace the intent with this specific activity
-                    preference.setIntent(new Intent().setClassName(
-                            resolveInfo.activityInfo.packageName,
-                            resolveInfo.activityInfo.name));
-
-                    if ((flags & UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY) != 0) {
-                        // Set the preference title to the activity's label
-                        preference.setTitle(resolveInfo.loadLabel(pm));
-                    }
-
-                    return true;
-                }
-            }
-        }
-
-        // Did not find a matching activity, so remove the preference
-        parentPreferenceGroup.removePreference(preference);
-
-        return false;
-    }
-
-    /**
      * Returns true if Monkey is running.
      */
     public static boolean isMonkeyRunning() {
@@ -449,6 +391,54 @@
     }
 
     /**
+     * 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;
+    }
+
+    /**
+     * Returns true if a profile of specified userType exists. Note that it considers all profiles,
+     * including the disabled profiles and the parent user itself.
+     */
+    public static boolean doesProfileOfTypeExists(
+            @NonNull UserManager userManager, @ProfileType int userType) {
+        final List<UserInfo> userProfiles = userManager.getProfiles(UserHandle.myUserId());
+        String umUserType = getUmUserType(userType);
+        for (UserInfo profile : userProfiles) {
+            if (Objects.equals(umUserType, profile.userType)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    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.
      */
@@ -487,15 +477,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();
     }
@@ -790,36 +785,15 @@
     @Nullable public static String getConfirmCredentialStringForUser(@NonNull Context context,
              int userId, @LockPatternUtils.CredentialType int credentialType) {
         final int effectiveUserId = UserManager.get(context).getCredentialOwnerProfile(userId);
-        final boolean isEffectiveUserManagedProfile = UserManager.get(context)
-                .isManagedProfile(effectiveUserId);
-        final DevicePolicyManager devicePolicyManager = context
-                .getSystemService(DevicePolicyManager.class);
+        if (UserManager.get(context).isManagedProfile(effectiveUserId)) {
+            return null;
+        }
         switch (credentialType) {
             case LockPatternUtils.CREDENTIAL_TYPE_PIN:
-                if (isEffectiveUserManagedProfile) {
-                    return devicePolicyManager.getResources().getString(WORK_PROFILE_CONFIRM_PIN,
-                            () -> context.getString(
-                                    R.string.lockpassword_confirm_your_pin_generic_profile));
-                }
-
                 return context.getString(R.string.lockpassword_confirm_your_pin_generic);
             case LockPatternUtils.CREDENTIAL_TYPE_PATTERN:
-                if (isEffectiveUserManagedProfile) {
-                    return devicePolicyManager.getResources().getString(
-                            WORK_PROFILE_CONFIRM_PATTERN,
-                            () -> context.getString(
-                                    R.string.lockpassword_confirm_your_pattern_generic_profile));
-                }
-
                 return context.getString(R.string.lockpassword_confirm_your_pattern_generic);
             case LockPatternUtils.CREDENTIAL_TYPE_PASSWORD:
-                if (isEffectiveUserManagedProfile) {
-                    return devicePolicyManager.getResources().getString(
-                            WORK_PROFILE_CONFIRM_PASSWORD,
-                            () -> context.getString(
-                                    R.string.lockpassword_confirm_your_password_generic_profile));
-                }
-
                 return context.getString(R.string.lockpassword_confirm_your_password_generic);
         }
         return null;
@@ -1252,8 +1226,16 @@
         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.getShowInQuietMode()
+                        == UserProperties.SHOW_IN_QUIET_MODE_HIDDEN) {
+                    if (!userManager.isQuietModeEnabled(userHandle)) {
+                        return true;
+                    } else {
+                        continue;
+                    }
+                }
                 return true;
             }
         }
@@ -1353,4 +1335,64 @@
         return dreamsSupported && (!dreamsOnlyEnabledForDockUser || canCurrentUserDream(context));
     }
 
+
+    /**
+     * Removes fingerprint templates enrolled for a given user.
+     *
+     * @param context application context.
+     * @param userId the id of the relevant user
+     */
+    public static void removeEnrolledFingerprintForUser(Context context, int userId) {
+        FingerprintManager fingerprintManager = getFingerprintManagerOrNull(context);
+        if (fingerprintManager != null && fingerprintManager.hasEnrolledTemplates(userId)) {
+            fingerprintManager.removeAll(userId,
+                    fingerprintManagerRemovalCallback(userId));
+        }
+    }
+
+    /**
+     * Removes face templates enrolled for a given user.
+     *
+     * @param context application context.
+     * @param userId the id of the relevant user
+     */
+    public static void removeEnrolledFaceForUser(Context context, int userId) {
+        FaceManager faceManager  = getFaceManagerOrNull(context);
+        if (faceManager != null && faceManager.hasEnrolledTemplates(userId)) {
+            faceManager.removeAll(userId, faceManagerRemovalCallback(userId));
+        }
+    }
+
+    private static FaceManager.RemovalCallback faceManagerRemovalCallback(int userId) {
+        return new FaceManager.RemovalCallback() {
+            @Override
+            public void onRemovalError(@Nullable Face face, int errMsgId, CharSequence err) {
+                Log.e(TAG, "Unable to remove face template for user " + userId + ", error: " + err);
+            }
+
+            @Override
+            public void onRemovalSucceeded(Face face, int remaining) {
+                if (remaining == 0) {
+                    Log.d(TAG, "Enrolled face templates removed for user " + userId);
+                }
+            }
+        };
+    }
+
+    private static FingerprintManager.RemovalCallback fingerprintManagerRemovalCallback(
+            int userId) {
+        return new FingerprintManager.RemovalCallback() {
+            @Override
+            public void onRemovalError(@Nullable Fingerprint fp, int errMsgId, CharSequence err) {
+                Log.e(TAG, "Unable to remove fingerprint for user " + userId + " , error: " + err);
+            }
+
+            @Override
+            public void onRemovalSucceeded(Fingerprint fp, int remaining) {
+                if (remaining == 0) {
+                    Log.d(TAG, "Enrolled fingerprints removed for user " + userId);
+                }
+            }
+        };
+    }
 }
diff --git a/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java
index 77b8230..bd46152 100644
--- a/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java
@@ -17,6 +17,8 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
+import android.icu.text.MessageFormat;
+import android.text.Html;
 
 import androidx.preference.PreferenceScreen;
 
@@ -50,7 +52,9 @@
         final int titleResource = AccessibilityUtil.isGestureNavigateEnabled(mContext)
                 ? R.string.accessibility_button_gesture_description
                 : R.string.accessibility_button_description;
-        final CharSequence footerText = mContext.getText(titleResource);
+        final CharSequence footerText = Html.fromHtml(
+                MessageFormat.format(mContext.getString(titleResource), 1, 2, 3),
+                Html.FROM_HTML_MODE_COMPACT);
         final AccessibilityFooterPreference footerPreference =
                 screen.findPreference(getPreferenceKey());
         footerPreference.setTitle(footerText);
diff --git a/src/com/android/settings/accessibility/AccessibilityButtonPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityButtonPreferenceController.java
index f076472..53d9c55 100644
--- a/src/com/android/settings/accessibility/AccessibilityButtonPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityButtonPreferenceController.java
@@ -17,12 +17,16 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
+import android.content.res.Resources;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.search.SearchIndexableRaw;
+
+import java.util.List;
 
 /**
  * Preference controller for accessibility button preference.
@@ -41,10 +45,23 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        final int titleResource = AccessibilityUtil.isGestureNavigateEnabled(mContext)
-                ? R.string.accessibility_button_gesture_title : R.string.accessibility_button_title;
         final Preference preference = screen.findPreference(getPreferenceKey());
-        preference.setTitle(titleResource);
+        preference.setTitle(getPreferenceTitleResource());
 
     }
+
+    @Override
+    public void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
+        SearchIndexableRaw data = new SearchIndexableRaw(mContext);
+        data.key = getPreferenceKey();
+        final Resources res = mContext.getResources();
+        data.title = res.getString(getPreferenceTitleResource());
+        data.screenTitle = res.getString(R.string.accessibility_shortcuts_settings_title);
+        rawData.add(data);
+    }
+
+    private int getPreferenceTitleResource() {
+        return AccessibilityUtil.isGestureNavigateEnabled(mContext)
+                ? R.string.accessibility_button_gesture_title : R.string.accessibility_button_title;
+    }
 }
diff --git a/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java b/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragment.java
index 5f84c3c..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;
 
@@ -104,10 +103,7 @@
             @Nullable ComponentName componentName) {
         if (MAGNIFICATION_COMPONENT_NAME.equals(componentName)) {
             final String destination = ToggleScreenMagnificationPreferenceFragment.class.getName();
-            final Bundle arguments = new Bundle();
-            MagnificationGesturesPreferenceController.populateMagnificationGesturesPreferenceExtras(
-                    arguments, getContext());
-            return new LaunchFragmentArguments(destination, arguments);
+            return new LaunchFragmentArguments(destination, /* arguments= */ null);
         }
 
         if (ACCESSIBILITY_BUTTON_COMPONENT_NAME.equals(componentName)) {
@@ -115,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);
         }
@@ -240,7 +234,7 @@
                     new ComponentName(packageName, tileServiceClassName).flattenToString());
         }
 
-        final int metricsCategory = FeatureFactory.getFactory(getActivity().getApplicationContext())
+        final int metricsCategory = FeatureFactory.getFeatureFactory()
                 .getAccessibilityMetricsFeatureProvider()
                 .getDownloadedFeatureMetricsCategory(componentName);
         extras.putInt(AccessibilitySettings.EXTRA_METRICS_CATEGORY, metricsCategory);
diff --git a/src/com/android/settings/accessibility/AccessibilityDialogUtils.java b/src/com/android/settings/accessibility/AccessibilityDialogUtils.java
index f744984..ca3a7b1 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()) {
+                    initTwoFingerDoubleTapMagnificationShortcut(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()) {
+                    initTwoFingerDoubleTapMagnificationShortcut(context, contentView);
+                }
                 initMagnifyShortcut(context, contentView);
                 initAdvancedWidget(contentView);
                 break;
@@ -358,6 +365,23 @@
                 R.raw.a11y_shortcut_type_triple_tap);
     }
 
+    private static void initTwoFingerDoubleTapMagnificationShortcut(Context context, View view) {
+        // TODO(b/306153204): Update shortcut string and image when UX provides them
+        final View dialogView = view.findViewById(R.id.two_finger_triple_tap_shortcut);
+        final CharSequence title = context.getText(
+                R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap);
+        String summary = context.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap);
+        // Format the number '2' in the summary.
+        final Object[] arguments = {2};
+        summary = MessageFormat.format(summary, arguments);
+
+        setupShortcutWidgetWithImageRawResource(context, dialogView, title, summary,
+                R.raw.a11y_shortcut_type_triple_tap);
+
+        dialogView.setVisibility(View.VISIBLE);
+    }
+
     private static void initAdvancedWidget(View view) {
         final LinearLayout advanced = view.findViewById(R.id.advanced_shortcut);
         final View tripleTap = view.findViewById(R.id.triple_tap_shortcut);
diff --git a/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java b/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorial.java
index 528801f..1f71ab0 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;
@@ -170,13 +171,6 @@
     static AlertDialog createAccessibilityTutorialDialogForSetupWizard(Context context,
             int shortcutTypes, @Nullable DialogInterface.OnClickListener actionButtonListener) {
 
-        final int category = SettingsEnums.SWITCH_SHORTCUT_DIALOG_ACCESSIBILITY_BUTTON_SETTINGS;
-        final DialogInterface.OnClickListener linkButtonListener =
-                (dialog, which) -> new SubSettingLauncher(context)
-                        .setDestination(AccessibilityButtonFragment.class.getName())
-                        .setSourceMetricsCategory(category)
-                        .launch();
-
         final AlertDialog alertDialog = new AlertDialog.Builder(context)
                 .setPositiveButton(R.string.accessibility_tutorial_dialog_button,
                         actionButtonListener)
@@ -418,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_double);
+        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) {
@@ -434,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 e4611fe..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;
@@ -184,7 +171,8 @@
         }
 
         if (bluetoothProfile == BluetoothProfile.HEARING_AID) {
-            HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, activeDevice);
+            HearingAidUtils.launchHearingAidPairingDialog(
+                    mFragmentManager, activeDevice, getMetricsCategory());
         }
     }
 
@@ -214,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/AccessibilityHearingAidsFragment.java b/src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java
index 33fef62..80a03c6 100644
--- a/src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java
@@ -36,9 +36,9 @@
 /** Accessibility settings for hearing aids. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
 public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPreferenceFragment {
-
     private static final String TAG = "AccessibilityHearingAidsFragment";
     private static final String KEY_HEARING_OPTIONS_CATEGORY = "hearing_options_category";
+    public static final String KEY_HEARING_DEVICE_ADD_BT_DEVICES = "hearing_device_add_bt_devices";
     private static final int SHORTCUT_PREFERENCE_IN_CATEGORY_INDEX = 20;
     private String mFeatureName;
 
diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
index 93ec8030..fb50ef1 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) {
@@ -131,18 +135,14 @@
     /** Returns a {@link Dialog} to be shown to confirm that they want to disable a service. */
     public static Dialog createDisableDialog(Context context,
             AccessibilityServiceInfo info, DialogInterface.OnClickListener listener) {
-        final AlertDialog dialog = new AlertDialog.Builder(context)
-                .setTitle(context.getString(R.string.disable_service_title,
-                        info.getResolveInfo().loadLabel(context.getPackageManager())))
-                .setMessage(context.getString(R.string.disable_service_message,
-                        context.getString(R.string.accessibility_dialog_button_stop),
-                        getServiceName(context, info)))
+        CharSequence serviceName = getServiceName(context, info);
+
+        return new AlertDialog.Builder(context)
+                .setTitle(context.getString(R.string.disable_service_title, serviceName))
                 .setCancelable(true)
                 .setPositiveButton(R.string.accessibility_dialog_button_stop, listener)
                 .setNegativeButton(R.string.accessibility_dialog_button_cancel, listener)
                 .create();
-
-        return dialog;
     }
 
     // Get the service name and bidi wrap it to protect from bidi side effects.
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index 426d7c9..16414f8 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -79,7 +79,6 @@
     static final String EXTRA_PREFERENCE_KEY = "preference_key";
     static final String EXTRA_CHECKED = "checked";
     static final String EXTRA_TITLE = "title";
-    static final String EXTRA_TITLE_RES = "title_res";
     static final String EXTRA_RESOLVE_INFO = "resolve_info";
     static final String EXTRA_SUMMARY = "summary";
     static final String EXTRA_INTRO = "intro";
@@ -87,7 +86,6 @@
     static final String EXTRA_COMPONENT_NAME = "component_name";
     static final String EXTRA_SETTINGS_COMPONENT_NAME = "settings_component_name";
     static final String EXTRA_TILE_SERVICE_COMPONENT_NAME = "tile_service_component_name";
-    static final String EXTRA_VIDEO_RAW_RESOURCE_ID = "video_resource";
     static final String EXTRA_LAUNCHED_FROM_SUW = "from_suw";
     static final String EXTRA_ANIMATED_IMAGE_RES = "animated_image_res";
     static final String EXTRA_HTML_DESCRIPTION = "html_description";
@@ -248,7 +246,7 @@
      * @return The service summary
      */
     public static CharSequence getServiceSummary(Context context, AccessibilityServiceInfo info,
-            boolean serviceEnabled) {
+                                                 boolean serviceEnabled) {
         if (serviceEnabled && info.crashed) {
             return context.getText(R.string.accessibility_summary_state_stopped);
         }
@@ -263,11 +261,11 @@
                     context, componentName) != AccessibilityUtil.UserShortcutType.EMPTY;
             serviceState = shortcutEnabled
                     ? context.getText(R.string.accessibility_summary_shortcut_enabled)
-                    : context.getText(R.string.accessibility_summary_shortcut_disabled);
+                    : context.getText(R.string.generic_accessibility_feature_shortcut_off);
         } else {
             serviceState = serviceEnabled
-                    ? context.getText(R.string.accessibility_summary_state_enabled)
-                    : context.getText(R.string.accessibility_summary_state_disabled);
+                    ? context.getText(R.string.generic_accessibility_service_on)
+                    : context.getText(R.string.generic_accessibility_service_off);
         }
 
         final CharSequence serviceSummary = info.loadSummary(context.getPackageManager());
@@ -516,7 +514,7 @@
                 @Override
                 public List<SearchIndexableRaw> getRawDataToIndex(Context context,
                         boolean enabled) {
-                    return FeatureFactory.getFactory(context)
+                    return FeatureFactory.getFeatureFactory()
                             .getAccessibilitySearchFeatureProvider().getSearchIndexableRawData(
                                     context);
                 }
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
index 10c3f91..fdf7592 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizard.java
@@ -24,7 +24,6 @@
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
-import android.content.Context;
 import android.content.pm.ServiceInfo;
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
@@ -129,7 +128,6 @@
                 SCREEN_READER_PACKAGE_NAME, SCREEN_READER_SERVICE_NAME);
         updateAccessibilityServicePreference(mSelectToSpeakPreference,
                 SELECT_TO_SPEAK_PACKAGE_NAME, SELECT_TO_SPEAK_SERVICE_NAME);
-        configureMagnificationPreferenceIfNeeded(mDisplayMagnificationPreference);
     }
 
     @Override
@@ -220,13 +218,4 @@
         final String htmlDescription = info.loadHtmlDescription(getPackageManager());
         extras.putString(AccessibilitySettings.EXTRA_HTML_DESCRIPTION, htmlDescription);
     }
-
-    private static void configureMagnificationPreferenceIfNeeded(Preference preference) {
-        final Context context = preference.getContext();
-        preference.setFragment(
-                ToggleScreenMagnificationPreferenceFragmentForSetupWizard.class.getName());
-        final Bundle extras = preference.getExtras();
-        MagnificationGesturesPreferenceController
-                .populateMagnificationGesturesPreferenceExtras(extras, context);
-    }
 }
diff --git a/src/com/android/settings/accessibility/AccessibilitySetupWizardUtils.java b/src/com/android/settings/accessibility/AccessibilitySetupWizardUtils.java
index b7a3439..9140fdf 100644
--- a/src/com/android/settings/accessibility/AccessibilitySetupWizardUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilitySetupWizardUtils.java
@@ -17,20 +17,21 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.text.TextUtils;
 import android.widget.LinearLayout;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.StringRes;
 
-import com.android.settings.R;
-
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
 import com.google.android.setupcompat.template.Mixin;
 import com.google.android.setupdesign.GlifPreferenceLayout;
+import com.google.android.setupdesign.R;
 import com.google.android.setupdesign.util.ThemeHelper;
 
 /** Provides utility methods to accessibility settings for Setup Wizard only. */
-class AccessibilitySetupWizardUtils {
+public class AccessibilitySetupWizardUtils {
 
     private AccessibilitySetupWizardUtils(){}
 
@@ -46,10 +47,19 @@
      * @param icon The icon to be set
      */
     public static void updateGlifPreferenceLayout(Context context, GlifPreferenceLayout layout,
-            CharSequence title, CharSequence description, Drawable icon) {
-        layout.setHeaderText(title);
-        layout.setDescriptionText(description);
-        layout.setIcon(icon);
+            @Nullable CharSequence title, @Nullable CharSequence description,
+            @Nullable Drawable icon) {
+        if (!TextUtils.isEmpty(title)) {
+            layout.setHeaderText(title);
+        }
+
+        if (!TextUtils.isEmpty(description)) {
+            layout.setDescriptionText(description);
+        }
+
+        if (icon != null) {
+            layout.setIcon(icon);
+        }
         layout.setDividerInsets(Integer.MAX_VALUE, 0);
 
         if (ThemeHelper.shouldApplyMaterialYouStyle(context)) {
diff --git a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
index b414add..09a691e 100644
--- a/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragment.java
@@ -44,6 +44,7 @@
 
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
+import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settings.dashboard.RestrictedDashboardFragment;
 import com.android.settings.utils.LocaleUtils;
 
@@ -251,7 +252,17 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        showDialog(DialogEnums.EDIT_SHORTCUT);
+        if (Flags.editShortcutsInFullScreen()) {
+            EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                    getContext(),
+                    getMetricsCategory(),
+                    getShortcutTitle(),
+                    getComponentName(),
+                    getIntent()
+            );
+        } else {
+            showDialog(DialogEnums.EDIT_SHORTCUT);
+        }
     }
 
     @Override
@@ -261,7 +272,7 @@
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
-                getComponentName().flattenToString(), AccessibilityUtil.UserShortcutType.SOFTWARE);
+                getComponentName().flattenToString());
         if (preference.isChecked()) {
             AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
                     getComponentName());
@@ -434,11 +445,11 @@
         }
 
         if (!mShortcutPreference.isChecked()) {
-            return context.getText(R.string.switch_off_text);
+            return context.getText(R.string.accessibility_shortcut_state_off);
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(context,
-                getComponentName().flattenToString(), AccessibilityUtil.UserShortcutType.SOFTWARE);
+                getComponentName().flattenToString());
 
         final List<CharSequence> list = new ArrayList<>();
 
@@ -466,8 +477,8 @@
         int value = restoreOnConfigChangedValue();
         if (value == NOT_SET) {
             final int lastNonEmptyUserShortcutType = PreferredShortcuts.retrieveUserShortcutType(
-                    getPrefContext(), getComponentName().flattenToString(),
-                    AccessibilityUtil.UserShortcutType.SOFTWARE);
+                    getPrefContext(), getComponentName().flattenToString()
+            );
             value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
                     : AccessibilityUtil.UserShortcutType.EMPTY;
         }
@@ -508,7 +519,7 @@
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
-                getComponentName().flattenToString(), AccessibilityUtil.UserShortcutType.SOFTWARE);
+                getComponentName().flattenToString());
         mShortcutPreference.setChecked(
                 AccessibilityUtil.hasValuesInSettings(getPrefContext(), shortcutTypes,
                         getComponentName()));
diff --git a/src/com/android/settings/accessibility/AccessibilityUtil.java b/src/com/android/settings/accessibility/AccessibilityUtil.java
index e2e2933..3b81bdb 100644
--- a/src/com/android/settings/accessibility/AccessibilityUtil.java
+++ b/src/com/android/settings/accessibility/AccessibilityUtil.java
@@ -37,10 +37,9 @@
 
 import androidx.annotation.IntDef;
 import androidx.annotation.NonNull;
+import androidx.annotation.StringRes;
 import androidx.annotation.VisibleForTesting;
 
-import com.android.settings.R;
-
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.StringJoiner;
@@ -95,6 +94,7 @@
             UserShortcutType.SOFTWARE,
             UserShortcutType.HARDWARE,
             UserShortcutType.TRIPLETAP,
+            UserShortcutType.TWOFINGERTRIPLETAP,
     })
 
     /** Denotes the user shortcut type. */
@@ -103,6 +103,7 @@
         int SOFTWARE = 1; // 1 << 0
         int HARDWARE = 2; // 1 << 1
         int TRIPLETAP = 4; // 1 << 2
+        int TWOFINGERTRIPLETAP = 8; // 1 << 3
     }
 
     /**
@@ -124,15 +125,15 @@
     }
 
     /**
-     * Return On/Off string according to the setting which specifies the integer value 1 or 0. This
+     * Returns On/Off string according to the setting which specifies the integer value 1 or 0. This
      * setting is defined in the secure system settings {@link android.provider.Settings.Secure}.
      */
-    static CharSequence getSummary(Context context, String settingsSecureKey) {
-        final boolean enabled = Settings.Secure.getInt(context.getContentResolver(),
+    static CharSequence getSummary(
+            Context context, String settingsSecureKey, @StringRes int enabledString,
+            @StringRes int disabledString) {
+        boolean enabled = Settings.Secure.getInt(context.getContentResolver(),
                 settingsSecureKey, State.OFF) == State.ON;
-        final int resId = enabled ? R.string.accessibility_feature_state_on
-                : R.string.accessibility_feature_state_off;
-        return context.getResources().getText(resId);
+        return context.getResources().getText(enabled ? enabledString : disabledString);
     }
 
     /**
diff --git a/src/com/android/settings/accessibility/ArrowPreference.java b/src/com/android/settings/accessibility/ArrowPreference.java
new file mode 100644
index 0000000..32e2bcb
--- /dev/null
+++ b/src/com/android/settings/accessibility/ArrowPreference.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.accessibility;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.core.content.res.TypedArrayUtils;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+
+/**
+ * A settings preference with colored rounded rectangle background and an arrow icon on the right
+ */
+public class ArrowPreference extends Preference {
+
+    public ArrowPreference(@NonNull Context context) {
+        this(context, null);
+    }
+
+    public ArrowPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+        this(context, attrs, TypedArrayUtils.getAttr(context,
+                androidx.preference.R.attr.preferenceStyle,
+                android.R.attr.preferenceStyle));
+    }
+
+    public ArrowPreference(@NonNull Context context, @Nullable AttributeSet attrs,
+            int defStyleAttr) {
+        this(context, attrs, defStyleAttr, 0);
+    }
+
+    public ArrowPreference(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        init();
+    }
+
+    private void init() {
+        setLayoutResource(R.layout.arrow_preference);
+    }
+}
diff --git a/src/com/android/settings/accessibility/AutoclickPreferenceController.java b/src/com/android/settings/accessibility/AutoclickPreferenceController.java
index 74cd0ac..dc219d6 100644
--- a/src/com/android/settings/accessibility/AutoclickPreferenceController.java
+++ b/src/com/android/settings/accessibility/AutoclickPreferenceController.java
@@ -53,7 +53,7 @@
         final boolean enabled = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED, OFF) == ON;
         if (!enabled) {
-            return mContext.getResources().getText(R.string.accessibility_feature_state_off);
+            return mContext.getResources().getText(R.string.autoclick_disabled);
         }
         final int delayMillis = Settings.Secure.getInt(mContext.getContentResolver(),
                 Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY,
diff --git a/src/com/android/settings/accessibility/AvailableHearingDevicePreferenceController.java b/src/com/android/settings/accessibility/AvailableHearingDevicePreferenceController.java
index 076432c..c8692a1 100644
--- a/src/com/android/settings/accessibility/AvailableHearingDevicePreferenceController.java
+++ b/src/com/android/settings/accessibility/AvailableHearingDevicePreferenceController.java
@@ -103,7 +103,8 @@
         }
 
         if (bluetoothProfile == BluetoothProfile.HEARING_AID) {
-            HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, activeDevice);
+            HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, activeDevice,
+                    getMetricsCategory());
         }
     }
 }
diff --git a/src/com/android/settings/accessibility/BalanceSeekBarPreference.java b/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
index b03c8ab..0254cae 100644
--- a/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
+++ b/src/com/android/settings/accessibility/BalanceSeekBarPreference.java
@@ -17,16 +17,12 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
-import android.media.AudioSystem;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.util.AttributeSet;
-import android.view.View;
 import android.widget.ImageView;
-import android.widget.SeekBar;
 
 import androidx.core.content.res.TypedArrayUtils;
-import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
@@ -43,7 +39,7 @@
 
     public BalanceSeekBarPreference(Context context, AttributeSet attrs) {
         super(context, attrs, TypedArrayUtils.getAttr(context,
-                R.attr.preferenceStyle,
+                com.android.settingslib.R.attr.preferenceStyle,
                 android.R.attr.preferenceStyle));
         mContext = context;
         setLayoutResource(R.layout.preference_balance_slider);
diff --git a/src/com/android/settings/accessibility/CameraFlashNotificationPreferenceController.java b/src/com/android/settings/accessibility/CameraFlashNotificationPreferenceController.java
index 8b9b888..7c96b0f 100644
--- a/src/com/android/settings/accessibility/CameraFlashNotificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/CameraFlashNotificationPreferenceController.java
@@ -49,7 +49,7 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider().changed(
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().changed(
                 getMetricsCategory(), getPreferenceKey(), isChecked ? 1 : 0);
         return Settings.System.putInt(mContext.getContentResolver(),
                 Settings.System.CAMERA_FLASH_NOTIFICATION, (isChecked ? ON : OFF));
diff --git a/src/com/android/settings/accessibility/CaptioningPreferenceController.java b/src/com/android/settings/accessibility/CaptioningPreferenceController.java
index 35d9507..563aad5 100644
--- a/src/com/android/settings/accessibility/CaptioningPreferenceController.java
+++ b/src/com/android/settings/accessibility/CaptioningPreferenceController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.provider.Settings;
 
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 public class CaptioningPreferenceController extends BasePreferenceController {
@@ -35,6 +36,8 @@
     @Override
     public CharSequence getSummary() {
         return AccessibilityUtil.getSummary(mContext,
-                Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED);
+                Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED,
+                R.string.show_captions_enabled,
+                R.string.show_captions_disabled);
     }
 }
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 921aa4e..28c5335 100644
--- a/src/com/android/settings/accessibility/ColorAndMotionFragment.java
+++ b/src/com/android/settings/accessibility/ColorAndMotionFragment.java
@@ -21,11 +21,13 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.provider.Settings;
+import android.view.accessibility.Flags;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -47,10 +49,12 @@
     private static final String DISPLAY_DALTONIZER_PREFERENCE_SCREEN = "daltonizer_preference";
     private static final String TOGGLE_DISABLE_ANIMATIONS = "toggle_disable_animations";
     private static final String TOGGLE_LARGE_POINTER_ICON = "toggle_large_pointer_icon";
+    @VisibleForTesting
+    static final String TOGGLE_FORCE_INVERT = "toggle_force_invert";
 
     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<>();
@@ -68,6 +72,11 @@
 
         mShortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
         mShortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED);
+        mShortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE);
+        mShortcutFeatureKeys.add(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS);
+        if (Flags.forceInvertColor()) {
+            mShortcutFeatureKeys.add(ToggleForceInvertPreferenceController.SETTINGS_KEY);
+        }
 
         mSettingsContentObserver = new AccessibilitySettingsContentObserver(new Handler());
         mSettingsContentObserver.registerKeysToObserverCallback(mShortcutFeatureKeys,
@@ -123,8 +132,6 @@
         final PreferenceCategory experimentalCategory = getPreferenceScreen().findPreference(
                 CATEGORY_EXPERIMENTAL);
         if (ColorDisplayManager.isColorTransformAccelerated(getContext())) {
-            mDisplayDaltonizerPreferenceScreen.setSummary(AccessibilityUtil.getSummary(
-                    getContext(), Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED));
             getPreferenceScreen().removePreference(experimentalCategory);
         } else {
             // Move following preferences to experimental category if device don't supports HWC
diff --git a/src/com/android/settings/accessibility/ColorInversionPreferenceController.java b/src/com/android/settings/accessibility/ColorInversionPreferenceController.java
index 926bc0d..5b20714 100644
--- a/src/com/android/settings/accessibility/ColorInversionPreferenceController.java
+++ b/src/com/android/settings/accessibility/ColorInversionPreferenceController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.provider.Settings;
 
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 /** Controller that shows the color inversion summary. */
@@ -33,7 +34,10 @@
 
     @Override
     public CharSequence getSummary() {
-        return AccessibilityUtil.getSummary(mContext, DISPLAY_INVERSION_ENABLED);
+        return AccessibilityUtil.getSummary(
+                mContext,
+                DISPLAY_INVERSION_ENABLED,
+                R.string.color_inversion_state_on, R.string.color_inversion_state_off);
     }
 
     @Override
diff --git a/src/com/android/settings/accessibility/DaltonizerPreferenceController.java b/src/com/android/settings/accessibility/DaltonizerPreferenceController.java
index c859d8c..f89cb54 100644
--- a/src/com/android/settings/accessibility/DaltonizerPreferenceController.java
+++ b/src/com/android/settings/accessibility/DaltonizerPreferenceController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.provider.Settings;
 
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 /** Controller that shows and updates the color correction summary. */
@@ -37,6 +38,9 @@
 
     @Override
     public CharSequence getSummary() {
-        return AccessibilityUtil.getSummary(mContext, DALTONIZER_ENABLED);
+        return AccessibilityUtil.getSummary(
+                mContext,
+                DALTONIZER_ENABLED,
+                R.string.daltonizer_state_on, R.string.daltonizer_state_off);
     }
 }
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/ExpandablePreference.java b/src/com/android/settings/accessibility/ExpandablePreference.java
new file mode 100644
index 0000000..b84c0c1
--- /dev/null
+++ b/src/com/android/settings/accessibility/ExpandablePreference.java
@@ -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.
+ */
+
+package com.android.settings.accessibility;
+
+/**
+ * An interface denoting a preference is expandable
+ */
+public interface ExpandablePreference {
+
+    /**
+     * Set the expandable state of the preference
+     */
+    void setExpanded(boolean expanded);
+
+    /**
+     * Returns if the preference is currently expanded.
+     */
+    boolean isExpanded();
+}
diff --git a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreference.java b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreference.java
index 0141084..5b669fa 100644
--- a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreference.java
+++ b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreference.java
@@ -62,7 +62,8 @@
 
     private void init() {
         setLayoutResource(R.layout.flash_notification_preview_preference);
-        mBackgroundEnabled = getContext().getDrawable(R.drawable.settingslib_switch_bar_bg_on);
+        mBackgroundEnabled = getContext().getDrawable(
+                com.android.settingslib.widget.mainswitch.R.drawable.settingslib_switch_bar_bg_on);
         mBackgroundDisabled = getContext().getDrawable(R.drawable.switch_bar_bg_disabled);
         mTextColorDisabled = Utils.getColorAttrDefaultColor(getContext(),
                 android.R.attr.textColorPrimary);
diff --git a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
index f137584..ae1adfa 100644
--- a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
+++ b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
@@ -28,6 +28,7 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.UserHandle;
 import android.provider.Settings;
 
 import androidx.annotation.NonNull;
@@ -81,7 +82,7 @@
         if (getPreferenceKey().equals(preference.getKey())) {
             Intent intent = new Intent(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
             intent.putExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_SHORT_PREVIEW);
-            mContext.sendBroadcast(intent);
+            mContext.sendBroadcastAsUser(intent, UserHandle.SYSTEM);
             return true;
         }
 
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/FloatingMenuSizePreferenceController.java b/src/com/android/settings/accessibility/FloatingMenuSizePreferenceController.java
index bd447be..7d4f495 100644
--- a/src/com/android/settings/accessibility/FloatingMenuSizePreferenceController.java
+++ b/src/com/android/settings/accessibility/FloatingMenuSizePreferenceController.java
@@ -52,11 +52,12 @@
 
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({
+            Size.UNKNOWN,
             Size.SMALL,
             Size.LARGE,
     })
-    @VisibleForTesting
-    @interface Size {
+    public @interface Size {
+        int UNKNOWN = -1;
         int SMALL = 0;
         int LARGE = 1;
     }
diff --git a/src/com/android/settings/accessibility/FontSizeData.java b/src/com/android/settings/accessibility/FontSizeData.java
index 1226d25..096710d 100644
--- a/src/com/android/settings/accessibility/FontSizeData.java
+++ b/src/com/android/settings/accessibility/FontSizeData.java
@@ -25,6 +25,7 @@
 import android.provider.Settings;
 
 import com.android.settingslib.R;
+import com.android.window.flags.Flags;
 
 import java.util.Arrays;
 import java.util.List;
@@ -38,12 +39,11 @@
 
     FontSizeData(Context context) {
         super(context);
-
         final Resources resources = getContext().getResources();
         final ContentResolver resolver = getContext().getContentResolver();
         final List<String> strEntryValues =
                 Arrays.asList(resources.getStringArray(R.array.entryvalues_font_size));
-        setDefaultValue(FONT_SCALE_DEF_VALUE);
+        setDefaultValue(getFontScaleDefValue(resolver));
         final float currentScale =
                 Settings.System.getFloat(resolver, Settings.System.FONT_SCALE, getDefaultValue());
         setInitialIndex(fontSizeValueToIndex(currentScale, strEntryValues.toArray(new String[0])));
@@ -78,4 +78,10 @@
         }
         return indices.length - 1;
     }
+
+    private float getFontScaleDefValue(ContentResolver resolver) {
+        return Flags.configurableFontScaleDefault() ? Settings.System.getFloat(resolver,
+                Settings.System.DEFAULT_DEVICE_FONT_SCALE, FONT_SCALE_DEF_VALUE)
+                : FONT_SCALE_DEF_VALUE;
+    }
 }
diff --git a/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java b/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java
index 71e4a21..727cdd5 100644
--- a/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java
+++ b/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java
@@ -22,6 +22,7 @@
 import android.telephony.TelephonyManager;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 
@@ -49,8 +50,18 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return mTelephonyManager.isHearingAidCompatibilitySupported() ? AVAILABLE
-                : UNSUPPORTED_ON_DEVICE;
+        if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+            try {
+                return mTelephonyManager.isHearingAidCompatibilitySupported() ? AVAILABLE
+                        : UNSUPPORTED_ON_DEVICE;
+            } catch (UnsupportedOperationException e) {
+                // Device doesn't support FEATURE_TELEPHONY_CALLING
+                return UNSUPPORTED_ON_DEVICE;
+            }
+        } else {
+            return mTelephonyManager.isHearingAidCompatibilitySupported() ? AVAILABLE
+                    : UNSUPPORTED_ON_DEVICE;
+        }
     }
 
     @Override
@@ -73,6 +84,6 @@
     }
 
     private void setAudioParameterHacEnabled(boolean enabled) {
-        mAudioManager.setParameters(HAC_KEY + "=" + (enabled ? HAC_VAL_ON : HAC_VAL_OFF));
+        mAudioManager.setParameters(HAC_KEY + "=" + (enabled ? HAC_VAL_ON : HAC_VAL_OFF) + ";");
     }
 }
diff --git a/src/com/android/settings/accessibility/HearingAidUtils.java b/src/com/android/settings/accessibility/HearingAidUtils.java
index 4315093..edf2d9f 100644
--- a/src/com/android/settings/accessibility/HearingAidUtils.java
+++ b/src/com/android/settings/accessibility/HearingAidUtils.java
@@ -38,34 +38,30 @@
      *
      * @param fragmentManager The {@link FragmentManager} used to show dialog fragment
      * @param device The {@link CachedBluetoothDevice} need to be hearing aid device
+     * @param launchPage The page id where the dialog is launched
      */
     public static void launchHearingAidPairingDialog(FragmentManager fragmentManager,
-            @NonNull CachedBluetoothDevice device) {
-        // No need to show the pair another ear dialog if the device supports and enables CSIP.
+            @NonNull CachedBluetoothDevice device, int launchPage) {
+        // No need to show the pair another ear dialog if the device supports CSIP.
         // CSIP will pair other devices in the same set automatically.
-        if (isCsipSupportedAndEnabled(device)) {
+        if (device.getProfiles().stream().anyMatch(
+                profile -> profile instanceof CsipSetCoordinatorProfile)) {
             return;
         }
         if (device.isConnectedAshaHearingAidDevice()
                 && device.getDeviceMode() == HearingAidInfo.DeviceMode.MODE_BINAURAL
                 && device.getSubDevice() == null) {
-            launchHearingAidPairingDialogInternal(fragmentManager, device);
+            launchHearingAidPairingDialogInternal(fragmentManager, device, launchPage);
         }
     }
 
     private static void launchHearingAidPairingDialogInternal(FragmentManager fragmentManager,
-            @NonNull CachedBluetoothDevice device) {
+            @NonNull CachedBluetoothDevice device, int launchPage) {
         if (device.getDeviceSide() == HearingAidInfo.DeviceSide.SIDE_INVALID) {
             Log.w(TAG, "Can not launch hearing aid pairing dialog for invalid side");
             return;
         }
-        HearingAidPairingDialogFragment.newInstance(device.getAddress()).show(fragmentManager,
-                HearingAidPairingDialogFragment.TAG);
-    }
-
-    private static boolean isCsipSupportedAndEnabled(@NonNull CachedBluetoothDevice device) {
-        return device.getProfiles().stream().anyMatch(
-                profile -> (profile instanceof CsipSetCoordinatorProfile)
-                        && (profile.isEnabled(device.getDevice())));
+        HearingAidPairingDialogFragment.newInstance(device.getAddress(), launchPage)
+                .show(fragmentManager, HearingAidPairingDialogFragment.TAG);
     }
 }
diff --git a/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceController.java b/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceController.java
index 8ca2663..d8db406 100644
--- a/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceController.java
+++ b/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceController.java
@@ -20,7 +20,6 @@
 import android.provider.Settings;
 
 import com.android.settings.Utils;
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
@@ -28,9 +27,6 @@
  */
 public class HearingDeviceCallRoutingPreferenceController extends
         HearingDeviceAudioRoutingBasePreferenceController {
-
-    private CachedBluetoothDevice mHearingDevice;
-
     public HearingDeviceCallRoutingPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
     }
diff --git a/src/com/android/settings/accessibility/HearingDeviceMediaRoutingPreferenceController.java b/src/com/android/settings/accessibility/HearingDeviceMediaRoutingPreferenceController.java
index cd99ce0..8e19920 100644
--- a/src/com/android/settings/accessibility/HearingDeviceMediaRoutingPreferenceController.java
+++ b/src/com/android/settings/accessibility/HearingDeviceMediaRoutingPreferenceController.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.provider.Settings;
 
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
@@ -27,9 +26,6 @@
  */
 public class HearingDeviceMediaRoutingPreferenceController extends
         HearingDeviceAudioRoutingBasePreferenceController {
-
-    private CachedBluetoothDevice mHearingDevice;
-
     public HearingDeviceMediaRoutingPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
     }
diff --git a/src/com/android/settings/accessibility/HearingDeviceNotificationRoutingPreferenceController.java b/src/com/android/settings/accessibility/HearingDeviceNotificationRoutingPreferenceController.java
new file mode 100644
index 0000000..c875fd7
--- /dev/null
+++ b/src/com/android/settings/accessibility/HearingDeviceNotificationRoutingPreferenceController.java
@@ -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.accessibility;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
+
+/**
+ * The controller of the hearing device notification routing list preference.
+ */
+public class HearingDeviceNotificationRoutingPreferenceController extends
+        HearingDeviceAudioRoutingBasePreferenceController {
+
+    public HearingDeviceNotificationRoutingPreferenceController(Context context,
+            String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    protected int[] getSupportedAttributeList() {
+        return HearingAidAudioRoutingConstants.NOTIFICATION_ROUTING_ATTRIBUTES;
+
+    }
+
+    @Override
+    protected void saveRoutingValue(Context context, int routingValue) {
+        Settings.Secure.putInt(context.getContentResolver(),
+                Settings.Secure.HEARING_AID_NOTIFICATION_ROUTING, routingValue);
+
+    }
+
+    @Override
+    protected int restoreRoutingValue(Context context) {
+        return Settings.Secure.getInt(context.getContentResolver(),
+                Settings.Secure.HEARING_AID_NOTIFICATION_ROUTING,
+                HearingAidAudioRoutingConstants.RoutingValue.AUTO);
+    }
+}
diff --git a/src/com/android/settings/accessibility/HearingDevicePairingFragment.java b/src/com/android/settings/accessibility/HearingDevicePairingFragment.java
new file mode 100644
index 0000000..78f5b4c
--- /dev/null
+++ b/src/com/android/settings/accessibility/HearingDevicePairingFragment.java
@@ -0,0 +1,492 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.app.Activity.RESULT_OK;
+import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
+
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothGatt;
+import android.bluetooth.BluetoothGattCallback;
+import android.bluetooth.BluetoothManager;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothUuid;
+import android.bluetooth.le.BluetoothLeScanner;
+import android.bluetooth.le.ScanCallback;
+import android.bluetooth.le.ScanFilter;
+import android.bluetooth.le.ScanRecord;
+import android.bluetooth.le.ScanResult;
+import android.bluetooth.le.ScanSettings;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.ParcelUuid;
+import android.os.SystemProperties;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.BluetoothDevicePreference;
+import com.android.settings.bluetooth.BluetoothProgressCategory;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.HearingAidInfo;
+import com.android.settingslib.bluetooth.HearingAidStatsLogUtils;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This fragment shows all scanned hearing devices through BLE scanning. Users can
+ * pair them in this page.
+ */
+public class HearingDevicePairingFragment extends RestrictedDashboardFragment implements
+        BluetoothCallback {
+
+    private static final boolean DEBUG = true;
+    private static final String TAG = "HearingDevicePairingFragment";
+    private static final String BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY =
+            "persist.bluetooth.showdeviceswithoutnames";
+    private static final String KEY_AVAILABLE_HEARING_DEVICES = "available_hearing_devices";
+
+    LocalBluetoothManager mLocalManager;
+    @Nullable
+    BluetoothAdapter mBluetoothAdapter;
+    @Nullable
+    CachedBluetoothDeviceManager mCachedDeviceManager;
+
+    private boolean mShowDevicesWithoutNames;
+    @Nullable
+    private BluetoothProgressCategory mAvailableHearingDeviceGroup;
+
+    @Nullable
+    BluetoothDevice mSelectedDevice;
+    final List<BluetoothDevice> mSelectedDeviceList = new ArrayList<>();
+    final List<BluetoothGatt> mConnectingGattList = new ArrayList<>();
+    final Map<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
+            new HashMap<>();
+
+    private List<ScanFilter> mLeScanFilters;
+
+    public HearingDevicePairingFragment() {
+        super(DISALLOW_CONFIG_BLUETOOTH);
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mLocalManager = Utils.getLocalBtManager(getActivity());
+        if (mLocalManager == null) {
+            Log.e(TAG, "Bluetooth is not supported on this device");
+            return;
+        }
+        mBluetoothAdapter = getSystemService(BluetoothManager.class).getAdapter();
+        mCachedDeviceManager = mLocalManager.getCachedDeviceManager();
+        mShowDevicesWithoutNames = SystemProperties.getBoolean(
+                BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false);
+
+        initPreferencesFromPreferenceScreen();
+        initHearingDeviceLeScanFilters();
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        use(ViewAllBluetoothDevicesPreferenceController.class).init(this);
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (mLocalManager == null || mBluetoothAdapter == null || isUiRestricted()) {
+            return;
+        }
+        mLocalManager.setForegroundActivity(getActivity());
+        mLocalManager.getEventManager().registerCallback(this);
+        if (mBluetoothAdapter.isEnabled()) {
+            startScanning();
+        } else {
+            // Turn on bluetooth if it is disabled
+            mBluetoothAdapter.enable();
+        }
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        if (mLocalManager == null || isUiRestricted()) {
+            return;
+        }
+        stopScanning();
+        removeAllDevices();
+        for (BluetoothGatt gatt: mConnectingGattList) {
+            gatt.disconnect();
+        }
+        mConnectingGattList.clear();
+        mLocalManager.setForegroundActivity(null);
+        mLocalManager.getEventManager().unregisterCallback(this);
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(Preference preference) {
+        if (preference instanceof BluetoothDevicePreference) {
+            stopScanning();
+            BluetoothDevicePreference devicePreference = (BluetoothDevicePreference) preference;
+            mSelectedDevice = devicePreference.getCachedDevice().getDevice();
+            if (mSelectedDevice != null) {
+                mSelectedDeviceList.add(mSelectedDevice);
+            }
+            devicePreference.onClicked();
+            return true;
+        }
+        return super.onPreferenceTreeClick(preference);
+    }
+
+    @Override
+    public void onDeviceDeleted(@NonNull CachedBluetoothDevice cachedDevice) {
+        removeDevice(cachedDevice);
+    }
+
+    @Override
+    public void onBluetoothStateChanged(int bluetoothState) {
+        switch (bluetoothState) {
+            case BluetoothAdapter.STATE_ON:
+                startScanning();
+                showBluetoothTurnedOnToast();
+                break;
+            case BluetoothAdapter.STATE_OFF:
+                finish();
+                break;
+        }
+    }
+
+    @Override
+    public void onDeviceBondStateChanged(@NonNull CachedBluetoothDevice cachedDevice,
+            int bondState) {
+        if (DEBUG) {
+            Log.d(TAG, "onDeviceBondStateChanged: " + cachedDevice.getName() + ", state = "
+                    + bondState);
+        }
+        if (bondState == BluetoothDevice.BOND_BONDED) {
+            // If one device is connected(bonded), then close this fragment.
+            setResult(RESULT_OK);
+            finish();
+            return;
+        } else if (bondState == BluetoothDevice.BOND_BONDING) {
+            // Set the bond entry where binding process starts for logging hearing aid device info
+            final int pageId = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+                    .getAttribution(getActivity());
+            final int bondEntry = AccessibilityStatsLogUtils.convertToHearingAidInfoBondEntry(
+                    pageId);
+            HearingAidStatsLogUtils.setBondEntryForDevice(bondEntry, cachedDevice);
+        }
+        if (mSelectedDevice != null) {
+            BluetoothDevice device = cachedDevice.getDevice();
+            if (mSelectedDevice.equals(device) && bondState == BluetoothDevice.BOND_NONE) {
+                // If current selected device failed to bond, restart scanning
+                startScanning();
+            }
+        }
+    }
+
+    @Override
+    public void onProfileConnectionStateChanged(@NonNull CachedBluetoothDevice cachedDevice,
+            int state, int bluetoothProfile) {
+        // This callback is used to handle the case that bonded device is connected in pairing list.
+        // 1. If user selected multiple bonded devices in pairing list, after connected
+        // finish this page.
+        // 2. If the bonded devices auto connected in paring list, after connected it will be
+        // removed from paring list.
+        if (cachedDevice.isConnected()) {
+            final BluetoothDevice device = cachedDevice.getDevice();
+            if (device != null && mSelectedDeviceList.contains(device)) {
+                setResult(RESULT_OK);
+                finish();
+            } else {
+                removeDevice(cachedDevice);
+            }
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.HEARING_AID_PAIRING;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.hearing_device_pairing_fragment;
+    }
+
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    void addDevice(CachedBluetoothDevice cachedDevice) {
+        if (mBluetoothAdapter == null) {
+            return;
+        }
+        // Do not create new preference while the list shows one of the state messages
+        if (mBluetoothAdapter.getState() != BluetoothAdapter.STATE_ON) {
+            return;
+        }
+        if (mDevicePreferenceMap.get(cachedDevice) != null) {
+            return;
+        }
+        String key = cachedDevice.getDevice().getAddress();
+        BluetoothDevicePreference preference = (BluetoothDevicePreference) getCachedPreference(key);
+        if (preference == null) {
+            preference = new BluetoothDevicePreference(getPrefContext(), cachedDevice,
+                    mShowDevicesWithoutNames, BluetoothDevicePreference.SortType.TYPE_FIFO);
+            preference.setKey(key);
+            preference.hideSecondTarget(true);
+        }
+        if (mAvailableHearingDeviceGroup != null) {
+            mAvailableHearingDeviceGroup.addPreference(preference);
+        }
+        mDevicePreferenceMap.put(cachedDevice, preference);
+        if (DEBUG) {
+            Log.d(TAG, "Add device. device: " + cachedDevice);
+        }
+    }
+
+    void removeDevice(CachedBluetoothDevice cachedDevice) {
+        if (DEBUG) {
+            Log.d(TAG, "removeDevice: " + cachedDevice);
+        }
+        BluetoothDevicePreference preference = mDevicePreferenceMap.remove(cachedDevice);
+        if (mAvailableHearingDeviceGroup != null && preference != null) {
+            mAvailableHearingDeviceGroup.removePreference(preference);
+        }
+    }
+
+    void startScanning() {
+        if (mCachedDeviceManager != null) {
+            mCachedDeviceManager.clearNonBondedDevices();
+        }
+        removeAllDevices();
+        startLeScanning();
+    }
+
+    void stopScanning() {
+        stopLeScanning();
+    }
+
+    private final ScanCallback mLeScanCallback = new ScanCallback() {
+        @Override
+        public void onScanResult(int callbackType, ScanResult result) {
+            handleLeScanResult(result);
+        }
+
+        @Override
+        public void onBatchScanResults(List<ScanResult> results) {
+            for (ScanResult result: results) {
+                handleLeScanResult(result);
+            }
+        }
+
+        @Override
+        public void onScanFailed(int errorCode) {
+            Log.w(TAG, "BLE Scan failed with error code " + errorCode);
+        }
+    };
+
+    void handleLeScanResult(ScanResult result) {
+        if (mCachedDeviceManager == null) {
+            return;
+        }
+        final BluetoothDevice device = result.getDevice();
+        CachedBluetoothDevice cachedDevice = mCachedDeviceManager.findDevice(device);
+        if (cachedDevice == null) {
+            cachedDevice = mCachedDeviceManager.addDevice(device);
+        }
+        if (cachedDevice.getHearingAidInfo() == null) {
+            if (DEBUG) {
+                Log.d(TAG, "Set hearing aid info on device: " + cachedDevice);
+            }
+            cachedDevice.setHearingAidInfo(new HearingAidInfo.Builder().build());
+        }
+        // No need to handle the device if the device is already in the list or discovering services
+        if (mDevicePreferenceMap.get(cachedDevice) == null
+                && mConnectingGattList.stream().noneMatch(
+                        gatt -> gatt.getDevice().equals(device))) {
+            if (isAndroidCompatibleHearingAid(result)) {
+                addDevice(cachedDevice);
+            } else {
+                discoverServices(cachedDevice);
+            }
+        }
+    }
+
+    void startLeScanning() {
+        if (mBluetoothAdapter == null) {
+            return;
+        }
+        if (DEBUG) {
+            Log.v(TAG, "startLeScanning");
+        }
+        final BluetoothLeScanner leScanner = mBluetoothAdapter.getBluetoothLeScanner();
+        if (leScanner == null) {
+            Log.w(TAG, "LE scanner not found, cannot start LE scanning");
+        } else {
+            final ScanSettings settings = new ScanSettings.Builder()
+                    .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
+                    .setLegacy(false)
+                    .build();
+            leScanner.startScan(mLeScanFilters, settings, mLeScanCallback);
+            if (mAvailableHearingDeviceGroup != null) {
+                mAvailableHearingDeviceGroup.setProgress(true);
+            }
+        }
+    }
+
+    void stopLeScanning() {
+        if (mBluetoothAdapter == null) {
+            return;
+        }
+        if (DEBUG) {
+            Log.v(TAG, "stopLeScanning");
+        }
+        final BluetoothLeScanner leScanner = mBluetoothAdapter.getBluetoothLeScanner();
+        if (leScanner != null) {
+            leScanner.stopScan(mLeScanCallback);
+            if (mAvailableHearingDeviceGroup != null) {
+                mAvailableHearingDeviceGroup.setProgress(false);
+            }
+        }
+    }
+
+    private void removeAllDevices() {
+        mDevicePreferenceMap.clear();
+        if (mAvailableHearingDeviceGroup != null) {
+            mAvailableHearingDeviceGroup.removeAll();
+        }
+    }
+
+    void initPreferencesFromPreferenceScreen() {
+        mAvailableHearingDeviceGroup = findPreference(KEY_AVAILABLE_HEARING_DEVICES);
+    }
+
+    private void initHearingDeviceLeScanFilters() {
+        mLeScanFilters = new ArrayList<>();
+        // Filters for ASHA hearing aids
+        mLeScanFilters.add(
+                new ScanFilter.Builder().setServiceUuid(BluetoothUuid.HEARING_AID).build());
+        mLeScanFilters.add(new ScanFilter.Builder()
+                .setServiceData(BluetoothUuid.HEARING_AID, new byte[0]).build());
+        // Filters for LE audio hearing aids
+        mLeScanFilters.add(new ScanFilter.Builder().setServiceUuid(BluetoothUuid.HAS).build());
+        mLeScanFilters.add(new ScanFilter.Builder()
+                .setServiceData(BluetoothUuid.HAS, new byte[0]).build());
+        // Filters for MFi hearing aids
+        mLeScanFilters.add(new ScanFilter.Builder().setServiceUuid(BluetoothUuid.MFI_HAS).build());
+        mLeScanFilters.add(new ScanFilter.Builder()
+                .setServiceData(BluetoothUuid.MFI_HAS, new byte[0]).build());
+    }
+
+    boolean isAndroidCompatibleHearingAid(ScanResult scanResult) {
+        ScanRecord scanRecord = scanResult.getScanRecord();
+        if (scanRecord == null) {
+            if (DEBUG) {
+                Log.d(TAG, "Scan record is null, not compatible with Android. device: "
+                        + scanResult.getDevice());
+            }
+            return false;
+        }
+        List<ParcelUuid> uuids = scanRecord.getServiceUuids();
+        if (uuids != null) {
+            if (uuids.contains(BluetoothUuid.HEARING_AID) || uuids.contains(BluetoothUuid.HAS)) {
+                if (DEBUG) {
+                    Log.d(TAG, "Scan record uuid matched, compatible with Android. device: "
+                            + scanResult.getDevice());
+                }
+                return true;
+            }
+        }
+        if (scanRecord.getServiceData(BluetoothUuid.HEARING_AID) != null
+                || scanRecord.getServiceData(BluetoothUuid.HAS) != null) {
+            if (DEBUG) {
+                Log.d(TAG, "Scan record service data matched, compatible with Android. device: "
+                        + scanResult.getDevice());
+            }
+            return true;
+        }
+        if (DEBUG) {
+            Log.d(TAG, "Scan record mismatched, not compatible with Android. device: "
+                    + scanResult.getDevice());
+        }
+        return false;
+    }
+
+    void discoverServices(CachedBluetoothDevice cachedDevice) {
+        if (DEBUG) {
+            Log.d(TAG, "connectGattToCheckCompatibility, device: " + cachedDevice);
+        }
+        BluetoothGatt gatt = cachedDevice.getDevice().connectGatt(getContext(), false,
+                new BluetoothGattCallback() {
+                    @Override
+                    public void onConnectionStateChange(BluetoothGatt gatt, int status,
+                            int newState) {
+                        super.onConnectionStateChange(gatt, status, newState);
+                        if (DEBUG) {
+                            Log.d(TAG, "onConnectionStateChange, status: " + status + ", newState: "
+                                    + newState + ", device: " + cachedDevice);
+                        }
+                        if (newState == BluetoothProfile.STATE_CONNECTED) {
+                            gatt.discoverServices();
+                        }
+                    }
+
+                    @Override
+                    public void onServicesDiscovered(BluetoothGatt gatt, int status) {
+                        super.onServicesDiscovered(gatt, status);
+                        boolean isCompatible = gatt.getService(BluetoothUuid.HEARING_AID.getUuid())
+                                != null
+                                || gatt.getService(BluetoothUuid.HAS.getUuid()) != null;
+                        if (DEBUG) {
+                            Log.d(TAG,
+                                    "onServicesDiscovered, compatible with Android: " + isCompatible
+                                            + ", device: " + cachedDevice);
+                        }
+                        if (isCompatible) {
+                            addDevice(cachedDevice);
+                        }
+                    }
+                });
+        mConnectingGattList.add(gatt);
+    }
+
+    void showBluetoothTurnedOnToast() {
+        Toast.makeText(getContext(), R.string.connected_device_bluetooth_turned_on_toast,
+                Toast.LENGTH_SHORT).show();
+    }
+}
diff --git a/src/com/android/settings/accessibility/HearingDeviceRingtoneRoutingPreferenceController.java b/src/com/android/settings/accessibility/HearingDeviceRingtoneRoutingPreferenceController.java
index 3e8f79c..594ab00 100644
--- a/src/com/android/settings/accessibility/HearingDeviceRingtoneRoutingPreferenceController.java
+++ b/src/com/android/settings/accessibility/HearingDeviceRingtoneRoutingPreferenceController.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.provider.Settings;
 
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
 
 /**
@@ -28,15 +27,13 @@
 public class HearingDeviceRingtoneRoutingPreferenceController extends
         HearingDeviceAudioRoutingBasePreferenceController {
 
-    private CachedBluetoothDevice mHearingDevice;
-
     public HearingDeviceRingtoneRoutingPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
     }
 
     @Override
     protected int[] getSupportedAttributeList() {
-        return HearingAidAudioRoutingConstants.RINGTONE_ROUTING_ATTRIBUTE;
+        return HearingAidAudioRoutingConstants.RINGTONE_ROUTING_ATTRIBUTES;
 
     }
 
diff --git a/src/com/android/settings/accessibility/HearingDeviceSystemSoundsRoutingPreferenceController.java b/src/com/android/settings/accessibility/HearingDeviceSystemSoundsRoutingPreferenceController.java
deleted file mode 100644
index 1bc0090..0000000
--- a/src/com/android/settings/accessibility/HearingDeviceSystemSoundsRoutingPreferenceController.java
+++ /dev/null
@@ -1,57 +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.accessibility;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.bluetooth.HearingAidAudioRoutingConstants;
-
-/**
- * The controller of the hearing device system sounds routing list preference.
- */
-public class HearingDeviceSystemSoundsRoutingPreferenceController extends
-        HearingDeviceAudioRoutingBasePreferenceController {
-
-    private CachedBluetoothDevice mHearingDevice;
-
-    public HearingDeviceSystemSoundsRoutingPreferenceController(Context context,
-            String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    @Override
-    protected int[] getSupportedAttributeList() {
-        return HearingAidAudioRoutingConstants.SYSTEM_SOUNDS_ROUTING_ATTRIBUTES;
-
-    }
-
-    @Override
-    protected void saveRoutingValue(Context context, int routingValue) {
-        Settings.Secure.putInt(context.getContentResolver(),
-                Settings.Secure.HEARING_AID_SYSTEM_SOUNDS_ROUTING, routingValue);
-
-    }
-
-    @Override
-    protected int restoreRoutingValue(Context context) {
-        return Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.HEARING_AID_SYSTEM_SOUNDS_ROUTING,
-                HearingAidAudioRoutingConstants.RoutingValue.AUTO);
-    }
-}
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..21ac998 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.cleanupAccessibilityWarningDialog()) {
+            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.cleanupAccessibilityWarningDialog()) {
+            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..869443c
--- /dev/null
+++ b/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceController.java
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.app.settings.SettingsEnums;
+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.annotation.NonNull;
+import androidx.annotation.Nullable;
+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;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+
+/**
+ *  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;
+
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
+    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);
+                }
+            }
+        };
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+    }
+
+    @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);
+        mMetricsFeatureProvider.action(mContext,
+                SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED, isChecked);
+        if (success && isChecked) {
+            // Play the preview vibration effect when the toggle is on.
+            final VibrationAttributes touchAttrs =
+                    VibrationPreferenceConfig.createPreviewVibrationAttributes(
+                            VibrationAttributes.USAGE_TOUCH);
+            final VibrationAttributes keyboardAttrs =
+                    new VibrationAttributes.Builder(touchAttrs)
+                            .setCategory(VibrationAttributes.CATEGORY_KEYBOARD)
+                            .build();
+            VibrationPreferenceConfig.playVibrationPreview(mVibrator, keyboardAttrs);
+        }
+        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/LockScreenRotationPreferenceController.java b/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java
index db19096..bde2ef5 100644
--- a/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java
+++ b/src/com/android/settings/accessibility/LockScreenRotationPreferenceController.java
@@ -54,7 +54,8 @@
      */
     @Override
     public boolean setChecked(boolean isChecked) {
-        RotationPolicy.setRotationLock(mContext, !isChecked);
+        RotationPolicy.setRotationLock(mContext, !isChecked,
+                /* caller= */ "LockScreenRotationPreferenceController#setChecked");
         return true;
     }
 
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/MagnificationGesturesPreferenceController.java b/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java
deleted file mode 100644
index 2aba16e..0000000
--- a/src/com/android/settings/accessibility/MagnificationGesturesPreferenceController.java
+++ /dev/null
@@ -1,105 +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.accessibility;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
-
-public class MagnificationGesturesPreferenceController extends TogglePreferenceController {
-
-    private boolean mIsFromSUW = false;
-
-    public MagnificationGesturesPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return MagnificationPreferenceFragment.isChecked(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return MagnificationPreferenceFragment.setChecked(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, isChecked);
-    }
-
-    public void setIsFromSUW(boolean fromSUW) {
-        mIsFromSUW = fromSUW;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (getPreferenceKey().equals(preference.getKey())) {
-            Bundle extras = preference.getExtras();
-            populateMagnificationGesturesPreferenceExtras(extras, mContext);
-            extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED, isChecked());
-            extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mIsFromSUW);
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return TextUtils.equals(getPreferenceKey(),
-                "screen_magnification_gestures_preference_screen");
-    }
-
-    @Override
-    public boolean isPublicSlice() {
-        return true;
-    }
-
-    @Override
-    public int getSliceHighlightMenuRes() {
-        return R.string.menu_key_accessibility;
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        int resId = 0;
-        if (mIsFromSUW) {
-            resId = R.string.accessibility_screen_magnification_short_summary;
-        } else {
-            final boolean enabled = isChecked();
-            resId = (enabled ? R.string.accessibility_feature_state_on :
-                    R.string.accessibility_feature_state_off);
-        }
-        return mContext.getString(resId);
-    }
-
-    static void populateMagnificationGesturesPreferenceExtras(Bundle extras, Context context) {
-        // TODO(b/270481978): It seems not necessary to put EXTRA_TITLE_RES.
-        extras.putInt(AccessibilitySettings.EXTRA_TITLE_RES,
-                R.string.accessibility_screen_magnification_gestures_title);
-
-        // TODO(b/270481978): It seems not necessary to put EXTRA_VIDEO_RAW_RESOURCE_ID.
-        extras.putInt(AccessibilitySettings.EXTRA_VIDEO_RAW_RESOURCE_ID,
-                R.raw.accessibility_screen_magnification);
-    }
-}
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/MagnificationNavbarPreferenceController.java b/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java
deleted file mode 100644
index 98855f7..0000000
--- a/src/com/android/settings/accessibility/MagnificationNavbarPreferenceController.java
+++ /dev/null
@@ -1,102 +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.accessibility;
-
-import android.content.Context;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
-
-public class MagnificationNavbarPreferenceController extends TogglePreferenceController {
-
-    private boolean mIsFromSUW = false;
-
-    public MagnificationNavbarPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return MagnificationPreferenceFragment.isChecked(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED);
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return MagnificationPreferenceFragment.setChecked(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, isChecked);
-    }
-
-    public void setIsFromSUW(boolean fromSUW) {
-        mIsFromSUW = fromSUW;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (getPreferenceKey().equals(preference.getKey())) {
-            Bundle extras = preference.getExtras();
-            extras.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY,
-                    Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED);
-            extras.putInt(AccessibilitySettings.EXTRA_TITLE_RES,
-                    R.string.accessibility_screen_magnification_navbar_title);
-            extras.putCharSequence(AccessibilitySettings.EXTRA_HTML_DESCRIPTION,
-                    mContext.getText(R.string.accessibility_screen_magnification_navbar_summary));
-            extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED, isChecked());
-            extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mIsFromSUW);
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return MagnificationPreferenceFragment.isApplicable(mContext.getResources())
-                ? AVAILABLE
-                : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return TextUtils.equals(getPreferenceKey(),
-                "screen_magnification_navbar_preference_screen");
-    }
-
-    @Override
-    public boolean isPublicSlice() {
-        return true;
-    }
-
-    @Override
-    public int getSliceHighlightMenuRes() {
-        return R.string.menu_key_accessibility;
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        int resId = 0;
-        if (mIsFromSUW) {
-            resId = R.string.accessibility_screen_magnification_navbar_short_summary;
-        } else {
-            final boolean enabled = isChecked();
-            resId = (enabled ? R.string.accessibility_feature_state_on :
-                    R.string.accessibility_feature_state_off);
-        }
-        return mContext.getText(resId);
-    }
-}
diff --git a/src/com/android/settings/accessibility/MagnificationPreferenceController.java b/src/com/android/settings/accessibility/MagnificationPreferenceController.java
index 5b5236e..23bda87 100644
--- a/src/com/android/settings/accessibility/MagnificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationPreferenceController.java
@@ -17,17 +17,11 @@
 package com.android.settings.accessibility;
 
 import android.content.Context;
-import android.os.Bundle;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
 
 public class MagnificationPreferenceController extends BasePreferenceController {
 
-    private Preference mPreference;
-
     public MagnificationPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
     }
@@ -41,18 +35,4 @@
     public CharSequence getSummary() {
         return ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext);
     }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-        configureMagnificationPreferenceIfNeeded();
-    }
-
-    private void configureMagnificationPreferenceIfNeeded() {
-        mPreference.setFragment(ToggleScreenMagnificationPreferenceFragment.class.getName());
-        final Bundle extras = mPreference.getExtras();
-        MagnificationGesturesPreferenceController
-                .populateMagnificationGesturesPreferenceExtras(extras, mContext);
-    }
 }
diff --git a/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java
deleted file mode 100644
index d589f0f..0000000
--- a/src/com/android/settings/accessibility/MagnificationPreferenceFragment.java
+++ /dev/null
@@ -1,171 +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.accessibility;
-
-import android.accessibilityservice.AccessibilityServiceInfo;
-import android.app.settings.SettingsEnums;
-import android.content.ComponentName;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.accessibility.AccessibilityManager;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.List;
-
-/** Settings fragment containing magnification preference. */
-@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public final class MagnificationPreferenceFragment extends DashboardFragment {
-    @VisibleForTesting static final int ON = 1;
-    @VisibleForTesting static final int OFF = 0;
-
-    private static final String TAG = "MagnificationPreferenceFragment";
-
-    // Settings App preference keys
-    private static final String PREFERENCE_TITLE_KEY = "magnification_preference_screen_title";
-
-    // Pseudo ComponentName used to represent navbar magnification in Settings.Secure.
-    private static final String MAGNIFICATION_COMPONENT_ID =
-            "com.android.server.accessibility.MagnificationController";
-
-    private boolean mLaunchedFromSuw = false;
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.ACCESSIBILITY_SCREEN_MAGNIFICATION_SETTINGS;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    public int getHelpResource() {
-        return R.string.help_url_magnification;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.accessibility_magnification_settings;
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        final Bundle args = getArguments();
-        if ((args != null) && args.containsKey(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW)) {
-            mLaunchedFromSuw = args.getBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW);
-        }
-        use(MagnificationGesturesPreferenceController.class)
-                .setIsFromSUW(mLaunchedFromSuw);
-        use(MagnificationNavbarPreferenceController.class)
-                .setIsFromSUW(mLaunchedFromSuw);
-    }
-
-    @Override
-    public boolean onPreferenceTreeClick(Preference preference) {
-        if (mLaunchedFromSuw) {
-            // If invoked from SUW, redirect to fragment instrumented for Vision Settings metrics
-            preference.setFragment(
-                    ToggleScreenMagnificationPreferenceFragmentForSetupWizard.class.getName());
-        }
-        return super.onPreferenceTreeClick(preference);
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (mLaunchedFromSuw) {
-            // Do not call super. We don't want to see the "Help & feedback" on OOBE page.
-        } else {
-            super.onCreateOptionsMenu(menu, inflater);
-        }
-    }
-
-    static CharSequence getConfigurationWarningStringForSecureSettingsKey(String key,
-            Context context) {
-        if (!Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED.equals(key)) {
-            return null;
-        }
-        if (Settings.Secure.getInt(context.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, 0) == 0) {
-            return null;
-        }
-        final AccessibilityManager am = (AccessibilityManager) context.getSystemService(
-                Context.ACCESSIBILITY_SERVICE);
-        final String assignedId = Settings.Secure.getString(context.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS);
-        if (!TextUtils.isEmpty(assignedId) && !MAGNIFICATION_COMPONENT_ID.equals(assignedId)) {
-            final ComponentName assignedComponentName = ComponentName.unflattenFromString(
-                    assignedId);
-            final List<AccessibilityServiceInfo> activeServices =
-                    am.getEnabledAccessibilityServiceList(
-                            AccessibilityServiceInfo.FEEDBACK_ALL_MASK);
-            final int serviceCount = activeServices.size();
-            for (int i = 0; i < serviceCount; i++) {
-                final AccessibilityServiceInfo info = activeServices.get(i);
-                if (info.getComponentName().equals(assignedComponentName)) {
-                    final CharSequence assignedServiceName = info.getResolveInfo().loadLabel(
-                            context.getPackageManager());
-                    final int messageId = AccessibilityUtil.isGestureNavigateEnabled(context)
-                            ? R.string.accessibility_screen_magnification_gesture_navigation_warning
-                            : R.string.accessibility_screen_magnification_navbar_configuration_warning;
-                    return context.getString(messageId, assignedServiceName);
-                }
-            }
-        }
-        return null;
-    }
-
-    static boolean isChecked(ContentResolver contentResolver, String settingsKey) {
-        return Settings.Secure.getInt(contentResolver, settingsKey, OFF) == ON;
-    }
-
-    static boolean setChecked(ContentResolver contentResolver, String settingsKey,
-            boolean isChecked) {
-        return Settings.Secure.putInt(contentResolver, settingsKey, isChecked ? ON : OFF);
-    }
-
-    /**
-     * @return {@code true} if this fragment should be shown, {@code false} otherwise. This
-     * fragment is shown in the case that more than one magnification mode is available.
-     */
-    static boolean isApplicable(Resources res) {
-        return res.getBoolean(com.android.internal.R.bool.config_showNavigationBar);
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.accessibility_magnification_settings) {
-
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return isApplicable(context.getResources());
-                }
-            };
-}
diff --git a/src/com/android/settings/accessibility/MagnificationSettingsFragment.java b/src/com/android/settings/accessibility/MagnificationSettingsFragment.java
deleted file mode 100644
index a898076..0000000
--- a/src/com/android/settings/accessibility/MagnificationSettingsFragment.java
+++ /dev/null
@@ -1,91 +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.accessibility;
-
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-
-import com.android.settings.DialogCreatable;
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-/** Settings page for magnification. */
-@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class MagnificationSettingsFragment extends DashboardFragment implements
-        MagnificationModePreferenceController.DialogHelper {
-
-    private static final String TAG = "MagnificationSettingsFragment";
-
-    private DialogCreatable mDialogDelegate;
-
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.ACCESSIBILITY_MAGNIFICATION_SETTINGS;
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        use(MagnificationModePreferenceController.class).setDialogHelper(this);
-    }
-
-    @Override
-    public void showDialog(int dialogId) {
-        super.showDialog(dialogId);
-    }
-
-    @Override
-    public void setDialogDelegate(DialogCreatable delegate) {
-        mDialogDelegate = delegate;
-    }
-
-    @Override
-    public int getDialogMetricsCategory(int dialogId) {
-        if (mDialogDelegate != null) {
-            return mDialogDelegate.getDialogMetricsCategory(dialogId);
-        }
-        return 0;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.accessibility_magnification_service_settings;
-    }
-
-    @Override
-    public Dialog onCreateDialog(int dialogId) {
-        if (mDialogDelegate != null) {
-            final Dialog dialog = mDialogDelegate.onCreateDialog(dialogId);
-            if (dialog != null) {
-                return dialog;
-            }
-        }
-        throw new IllegalArgumentException("Unsupported dialogId " + dialogId);
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.accessibility_magnification_service_settings);
-}
diff --git a/src/com/android/settings/accessibility/PreferredShortcuts.java b/src/com/android/settings/accessibility/PreferredShortcuts.java
index 2c9840d..e76bc9b 100644
--- a/src/com/android/settings/accessibility/PreferredShortcuts.java
+++ b/src/com/android/settings/accessibility/PreferredShortcuts.java
@@ -19,10 +19,17 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.os.UserHandle;
+import android.util.ArrayMap;
 
+import androidx.annotation.NonNull;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.util.ShortcutUtils;
 import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
 /** Static utility methods relating to {@link PreferredShortcut} */
@@ -32,27 +39,25 @@
     private static final String USER_SHORTCUT_TYPE = "user_shortcut_type";
 
     /**
-     * Retrieves {@link UserShortcutType} for the given {@code componentName} from
+     * Retrieves the user preferred shortcut types for the given {@code componentName} from
      * SharedPreferences.
      *
      * @param context       {@link Context} to access the {@link SharedPreferences}
      * @param componentName Name of the service or activity, should be the format of {@link
      *                      ComponentName#flattenToString()}.
-     * @param defaultType   See {@link UserShortcutType}
-     * @return {@link UserShortcutType}
+     * @return {@link ShortcutConstants.UserShortcutType}
      */
-    public static int retrieveUserShortcutType(Context context, String componentName,
-            int defaultType) {
-        if (componentName == null) {
-            return defaultType;
-        }
+    @ShortcutConstants.UserShortcutType
+    public static int retrieveUserShortcutType(
+            @NonNull Context context, @NonNull String componentName) {
+        final int defaultTypes = getDefaultPreferredShortcutTypesForTarget(componentName);
 
         // Create a mutable set to modify
         final Set<String> info = new HashSet<>(getFromSharedPreferences(context));
         info.removeIf(str -> !str.contains(componentName));
 
         if (info.isEmpty()) {
-            return defaultType;
+            return defaultTypes;
         }
 
         final String str = info.stream().findFirst().get();
@@ -81,6 +86,41 @@
     }
 
     /**
+     * Update the user preferred shortcut from Settings data
+     *
+     * @param context    {@link Context} to access the {@link SharedPreferences}
+     * @param components contains a set of {@link ComponentName} the service or activity. The
+     *                   string
+     *                   representation of the ComponentName should be in the format of
+     *                   {@link ComponentName#flattenToString()}.
+     */
+    public static void updatePreferredShortcutsFromSettings(
+            @NonNull Context context, @NonNull Set<String> components) {
+        final Map<Integer, Set<String>> shortcutTypeToTargets = new ArrayMap<>();
+        for (int shortcutType : ShortcutConstants.USER_SHORTCUT_TYPES) {
+            shortcutTypeToTargets.put(
+                    shortcutType,
+                    ShortcutUtils.getShortcutTargetsFromSettings(
+                            context, shortcutType, UserHandle.myUserId()));
+        }
+
+        for (String target : components) {
+            int shortcutTypes = ShortcutConstants.UserShortcutType.DEFAULT;
+            for (Map.Entry<Integer, Set<String>> entry : shortcutTypeToTargets.entrySet()) {
+                if (entry.getValue().contains(target)) {
+                    shortcutTypes |= entry.getKey();
+                }
+            }
+
+            if (shortcutTypes != ShortcutConstants.UserShortcutType.DEFAULT) {
+                final PreferredShortcut shortcut = new PreferredShortcut(
+                        target, shortcutTypes);
+                PreferredShortcuts.saveUserShortcutType(context, shortcut);
+            }
+        }
+    }
+
+    /**
      * Returns a immutable set of {@link PreferredShortcut#toString()} list from
      * SharedPreferences.
      */
@@ -98,5 +138,14 @@
         return context.getSharedPreferences(ACCESSIBILITY_PERF, Context.MODE_PRIVATE);
     }
 
+    /**
+     * Returns the default shortcut types for the given accessibility feature.
+     */
+    @ShortcutConstants.UserShortcutType
+    private static int getDefaultPreferredShortcutTypesForTarget(@NonNull String componentName) {
+        // TODO (b/322712028): return different default shortcut types for the given component
+        return ShortcutConstants.UserShortcutType.SOFTWARE;
+    }
+
     private PreferredShortcuts() {}
 }
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/RestrictedPreferenceHelper.java b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
index 00339a1..6f21fb8 100644
--- a/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
+++ b/src/com/android/settings/accessibility/RestrictedPreferenceHelper.java
@@ -119,7 +119,7 @@
             final String htmlDescription = info.loadHtmlDescription(mPm);
             final String settingsClassName = info.getSettingsActivityName();
             final String tileServiceClassName = info.getTileServiceName();
-            final int metricsCategory = FeatureFactory.getFactory(mContext)
+            final int metricsCategory = FeatureFactory.getFeatureFactory()
                     .getAccessibilityMetricsFeatureProvider()
                     .getDownloadedFeatureMetricsCategory(componentName);
 
@@ -182,7 +182,7 @@
             final String htmlDescription = info.loadHtmlDescription(mPm);
             final String settingsClassName = info.getSettingsActivityName();
             final String tileServiceClassName = info.getTileServiceName();
-            final int metricsCategory = FeatureFactory.getFactory(mContext)
+            final int metricsCategory = FeatureFactory.getFeatureFactory()
                     .getAccessibilityMetricsFeatureProvider()
                     .getDownloadedFeatureMetricsCategory(componentName);
 
@@ -234,6 +234,32 @@
         // permittedServices null means all accessibility services are allowed.
         boolean serviceAllowed = permittedServices == null || permittedServices.contains(
                 preference.getPackageName());
+
+        if (android.security.Flags.extendEcmToAllSettings()) {
+            preference.checkEcmRestrictionAndSetDisabled(
+                    AppOpsManager.OPSTR_BIND_ACCESSIBILITY_SERVICE,
+                    preference.getPackageName(), preference.getUid());
+            if (preference.isDisabledByEcm()) {
+                serviceAllowed = false;
+            }
+
+            if (serviceAllowed || serviceEnabled) {
+                preference.setEnabled(true);
+            } else {
+                // Disable accessibility service that are not permitted.
+                final RestrictedLockUtils.EnforcedAdmin admin =
+                        RestrictedLockUtilsInternal.checkIfAccessibilityServiceDisallowed(
+                                mContext, preference.getPackageName(), UserHandle.myUserId());
+
+                if (admin != null) {
+                    preference.setDisabledByAdmin(admin);
+                } else if (!preference.isDisabledByEcm()) {
+                    preference.setEnabled(false);
+                }
+            }
+            return;
+        }
+
         boolean appOpsAllowed;
         if (serviceAllowed) {
             try {
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
index 8a440b6..ca77f16 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
@@ -27,6 +27,7 @@
 import android.content.Intent;
 import android.graphics.Color;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.view.View;
 
 import androidx.annotation.ColorInt;
@@ -41,6 +42,7 @@
 import java.util.TimerTask;
 import java.util.function.Consumer;
 
+
 /**
  * DialogFragment for Screen flash notification color picker.
  */
@@ -119,7 +121,7 @@
         synchronized (this) {
             if (mTimer != null) mTimer.cancel();
 
-            mTimer = new Timer();
+            mTimer = createTimer();
             if (mIsPreview) {
                 mTimer.schedule(getStopTask(), 0);
                 startDelay = BETWEEN_STOP_AND_START_DELAY_MS;
@@ -166,14 +168,18 @@
         Intent intent = new Intent(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
         intent.putExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_LONG_PREVIEW);
         intent.putExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_COLOR, mCurrentColor);
-        getContext().sendBroadcast(intent);
+        getContext().sendBroadcastAsUser(intent, UserHandle.SYSTEM);
     }
 
     private void stopPreviewLocked() {
         if (getContext() == null) return;
 
         Intent stopIntent = new Intent(ACTION_FLASH_NOTIFICATION_STOP_PREVIEW);
-        getContext().sendBroadcast(stopIntent);
+        getContext().sendBroadcastAsUser(stopIntent, UserHandle.SYSTEM);
         mIsPreview = false;
     }
+
+    Timer createTimer() {
+        return new Timer();
+    }
 }
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java b/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
index 53abc95..bd54aca 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceController.java
@@ -63,7 +63,7 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider().changed(
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().changed(
                 getMetricsCategory(), getPreferenceKey(), isChecked ? 1 : 0);
         if (isChecked) {
             checkAndSetInitialColor();
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/TEST_MAPPING b/src/com/android/settings/accessibility/TEST_MAPPING
new file mode 100644
index 0000000..93f6611
--- /dev/null
+++ b/src/com/android/settings/accessibility/TEST_MAPPING
@@ -0,0 +1,12 @@
+{
+  "presubmit": [
+    {
+      "name": "SettingsUnitTests",
+      "options": [
+        {
+          "include-filter": "com.android.settings.accessibility"
+        }
+      ]
+    }
+  ]
+}
diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
index 450aeca..a90af21 100644
--- a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
@@ -62,7 +62,7 @@
     static final String BOLD_TEXT_KEY = "toggle_force_bold_text";
     static final String HIGH_TEXT_CONTRAST_KEY = "toggle_high_text_contrast_preference";
     static final String RESET_KEY = "reset";
-    private static final String PREVIEW_KEY = "preview";
+    static final String PREVIEW_KEY = "preview";
     private static final String NEED_RESET_SETTINGS = "need_reset_settings";
     private static final String LAST_PREVIEW_INDEX = "last_preview_index";
     private static final int UNKNOWN_INDEX = -1;
diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java
index 783696d..11be73c 100644
--- a/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizard.java
@@ -29,6 +29,7 @@
 
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 import com.android.settingslib.Utils;
 
@@ -42,6 +43,24 @@
 public class TextReadingPreferenceFragmentForSetupWizard extends TextReadingPreferenceFragment {
 
     @Override
+    public void addPreferencesFromResource(int preferencesResId) {
+        super.addPreferencesFromResource(preferencesResId);
+
+        adjustPreviewPaddingsForSetupWizard();
+    }
+
+    @VisibleForTesting
+    void adjustPreviewPaddingsForSetupWizard() {
+        TextReadingPreviewPreference textReadingPreviewPreference = findPreference(PREVIEW_KEY);
+        textReadingPreviewPreference.setLayoutMinHorizontalPadding(
+                getContext().getResources().getDimensionPixelSize(
+                        R.dimen.text_reading_preview_layout_padding_horizontal_min_suw));
+        textReadingPreviewPreference.setBackgroundMinHorizontalPadding(
+                getContext().getResources().getDimensionPixelSize(
+                        R.dimen.text_reading_preview_background_padding_horizontal_min_suw));
+    }
+
+    @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
 
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/TextReadingPreviewPager.java b/src/com/android/settings/accessibility/TextReadingPreviewPager.java
index 5d43159..252d121 100644
--- a/src/com/android/settings/accessibility/TextReadingPreviewPager.java
+++ b/src/com/android/settings/accessibility/TextReadingPreviewPager.java
@@ -18,8 +18,7 @@
 
 import android.content.Context;
 import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.ViewGroup;
+import android.view.View;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -29,18 +28,31 @@
  * The view pager is used for displaying screen preview with different size configuration changes.
  */
 public class TextReadingPreviewPager extends ViewPager {
+
     public TextReadingPreviewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
         super(context, attrs);
     }
 
     @Override
-    public boolean onInterceptTouchEvent(MotionEvent ev) {
-        final ViewGroup parent = (ViewGroup) getParent();
-        if (parent != null) {
-            // Avoid conflicting with the nested scroll view.
-            parent.requestDisallowInterceptTouchEvent(true);
-        }
+    public boolean onStartNestedScroll(View child, View target, int nestedScrollAxes) {
+        return (nestedScrollAxes & View.SCROLL_AXIS_VERTICAL) != 0;
+    }
 
-        return super.onInterceptTouchEvent(ev);
+    @Override
+    public void onNestedScrollAccepted(View child, View target, int axes) {
+        super.onNestedScrollAccepted(child, target, axes);
+        // Allow the nested scrollview inside of the view pager to be scrollable.
+        getParent().requestDisallowInterceptTouchEvent(true);
+    }
+
+    @Override
+    public void onNestedScroll(
+            View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) {
+        if (dyUnconsumed != 0) {
+            // Assume dyUnconsumed != 0 means the target has been scrolled to the end vertically.
+            // We could let the parent to consume the rest of the dyUnconsumed
+            getParent().requestDisallowInterceptTouchEvent(false);
+        }
+        super.onNestedScroll(target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
     }
 }
diff --git a/src/com/android/settings/accessibility/TextReadingPreviewPreference.java b/src/com/android/settings/accessibility/TextReadingPreviewPreference.java
index c4a9489..a9e2dce 100644
--- a/src/com/android/settings/accessibility/TextReadingPreviewPreference.java
+++ b/src/com/android/settings/accessibility/TextReadingPreviewPreference.java
@@ -19,11 +19,14 @@
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 import androidx.viewpager.widget.ViewPager;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.Preconditions;
 import com.android.settings.R;
 import com.android.settings.display.PreviewPagerAdapter;
@@ -37,6 +40,9 @@
     private int mLastLayerIndex;
     private PreviewPagerAdapter mPreviewAdapter;
 
+    private int mLayoutMinHorizontalPadding = 0;
+    private int mBackgroundMinHorizontalPadding = 0;
+
     private final ViewPager.OnPageChangeListener mPageChangeListener =
             new ViewPager.OnPageChangeListener() {
         @Override
@@ -80,6 +86,10 @@
     public void onBindViewHolder(PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
 
+        FrameLayout previewLayout = (FrameLayout) holder.itemView;
+        LinearLayout backgroundView = previewLayout.findViewById(R.id.preview_background);
+        adjustPaddings(previewLayout, backgroundView);
+
         final ViewPager viewPager = (ViewPager) holder.findViewById(R.id.preview_pager);
         viewPager.addOnPageChangeListener(mPageChangeListener);
         final DotsPageIndicator pageIndicator =
@@ -88,6 +98,36 @@
         updatePagerAndIndicator(viewPager, pageIndicator);
     }
 
+    /**
+     * Set the minimum preview layout horizontal inner padding.
+     */
+    void setLayoutMinHorizontalPadding(int layoutMinHorizontalPadding) {
+        mLayoutMinHorizontalPadding = layoutMinHorizontalPadding;
+    }
+
+    /**
+     * Set the minimum preview background view horizontal inner padding.
+     */
+    void setBackgroundMinHorizontalPadding(int backgroundMinHorizontalPadding) {
+        mBackgroundMinHorizontalPadding = backgroundMinHorizontalPadding;
+    }
+
+    @VisibleForTesting
+    void adjustPaddings(FrameLayout previewLayout, LinearLayout backgroundView) {
+        previewLayout.setPadding(
+                Math.max(previewLayout.getPaddingStart(), mLayoutMinHorizontalPadding),
+                previewLayout.getPaddingTop(),
+                Math.max(previewLayout.getPaddingEnd(), mLayoutMinHorizontalPadding),
+                previewLayout.getPaddingBottom()
+        );
+        backgroundView.setPadding(
+                Math.max(backgroundView.getPaddingStart(), mBackgroundMinHorizontalPadding),
+                backgroundView.getPaddingTop(),
+                Math.max(backgroundView.getPaddingEnd(), mBackgroundMinHorizontalPadding),
+                backgroundView.getPaddingBottom()
+        );
+    }
+
     void setPreviewAdapter(PreviewPagerAdapter previewAdapter) {
         if (previewAdapter != mPreviewAdapter) {
             mPreviewAdapter = previewAdapter;
@@ -142,6 +182,12 @@
     }
 
     private void init() {
+        // set up the minimum horizontal paddings
+        setLayoutMinHorizontalPadding(getContext().getResources().getDimensionPixelSize(
+                R.dimen.text_reading_preview_layout_padding_horizontal_min));
+        setBackgroundMinHorizontalPadding(getContext().getResources().getDimensionPixelSize(
+                R.dimen.text_reading_preview_background_padding_horizontal_min));
+
         setLayoutResource(R.layout.accessibility_text_reading_preview);
     }
 
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 28b80ba..0b5ad3e 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -41,13 +41,13 @@
 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;
 
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
-import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settingslib.accessibility.AccessibilityUtils;
 
 import java.util.List;
@@ -157,28 +157,55 @@
                 if (info == null) {
                     return null;
                 }
-                mWarningDialog = AccessibilityServiceWarning
-                        .createCapabilitiesDialog(getPrefContext(), info,
-                                this::onDialogButtonFromEnableToggleClicked,
-                                this::onDialogButtonFromUninstallClicked);
+                if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
+                    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.cleanupAccessibilityWarningDialog()) {
+                    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.cleanupAccessibilityWarningDialog()) {
+                    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);
         }
@@ -303,15 +330,20 @@
     @Override
     public void onToggleClicked(ShortcutPreference preference) {
         final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
-                mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mComponentName.flattenToString());
         if (preference.isChecked()) {
-            if (!mToggleServiceSwitchPreference.isChecked()) {
+            final boolean isWarningRequired;
+            if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
+                isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
+                        .isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
+            } else {
+                isWarningRequired = !mToggleServiceSwitchPreference.isChecked();
+            }
+            if (isWarningRequired) {
                 preference.setChecked(false);
                 showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
             } else {
-                AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
-                        mComponentName);
-                showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
+                onAllowButtonFromShortcutToggleClicked();
             }
         } else {
             AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), shortcutTypes,
@@ -322,10 +354,20 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        final boolean isServiceOnOrShortcutAdded = mShortcutPreference.isChecked()
-                || mToggleServiceSwitchPreference.isChecked();
-        showPopupDialog(isServiceOnOrShortcutAdded ? DialogEnums.EDIT_SHORTCUT
-                : DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
+        final boolean isWarningRequired;
+        if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
+            isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
+                    .isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
+        } else {
+            isWarningRequired = !(mShortcutPreference.isChecked()
+                    || mToggleServiceSwitchPreference.isChecked());
+        }
+
+        if (isWarningRequired) {
+            showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
+        } else {
+            onAllowButtonFromShortcutClicked();
+        }
     }
 
     @Override
@@ -440,7 +482,9 @@
             mIsDialogShown.set(false);
             showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
         }
-        mWarningDialog.dismiss();
+        if (mWarningDialog != null) {
+            mWarningDialog.dismiss();
+        }
     }
 
     private void onDenyButtonFromEnableToggleClicked() {
@@ -459,17 +503,19 @@
         }
     }
 
-    private void onAllowButtonFromShortcutToggleClicked() {
+    void onAllowButtonFromShortcutToggleClicked() {
         mShortcutPreference.setChecked(true);
 
         final int shortcutTypes = retrieveUserShortcutType(getPrefContext(),
-                mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mComponentName.flattenToString());
         AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes, mComponentName);
 
         mIsDialogShown.set(false);
         showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
 
-        mWarningDialog.dismiss();
+        if (mWarningDialog != null) {
+            mWarningDialog.dismiss();
+        }
 
         mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
     }
@@ -493,9 +539,21 @@
 
     private void onAllowButtonFromShortcutClicked() {
         mIsDialogShown.set(false);
-        showPopupDialog(DialogEnums.EDIT_SHORTCUT);
+        if (Flags.editShortcutsInFullScreen()) {
+            EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                    getContext(),
+                    getMetricsCategory(),
+                    getShortcutTitle(),
+                    mComponentName,
+                    getIntent()
+            );
+        } else {
+            showPopupDialog(DialogEnums.EDIT_SHORTCUT);
+        }
 
-        mWarningDialog.dismiss();
+        if (mWarningDialog != null) {
+            mWarningDialog.dismiss();
+        }
     }
 
     private void onDenyButtonFromShortcutClicked() {
@@ -507,13 +565,17 @@
             mToggleServiceSwitchPreference.setChecked(false);
             getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED,
                     /* disableService */ false);
-            if (!mShortcutPreference.isChecked()) {
+            final boolean isWarningRequired;
+            if (android.view.accessibility.Flags.cleanupAccessibilityWarningDialog()) {
+                isWarningRequired = getPrefContext().getSystemService(AccessibilityManager.class)
+                        .isAccessibilityServiceWarningRequired(getAccessibilityServiceInfo());
+            } else {
+                isWarningRequired = !mShortcutPreference.isChecked();
+            }
+            if (isWarningRequired) {
                 showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
             } else {
-                handleConfirmServiceEnabled(/* confirmed= */ true);
-                if (serviceSupportsAccessibilityButton()) {
-                    showPopupDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
-                }
+                onAllowButtonFromEnableToggleClicked();
             }
         } else {
             mToggleServiceSwitchPreference.setChecked(true);
diff --git a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
index 5defe98..ccba9e7f 100644
--- a/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleColorInversionPreferenceFragment.java
@@ -25,6 +25,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.ContentResolver;
+import android.content.Context;
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -37,17 +38,22 @@
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.search.SearchIndexableRaw;
 
 import java.util.ArrayList;
 import java.util.List;
 
-/** Settings page for color inversion. */
+/**
+ * Settings page for color inversion.
+ */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
 public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePreferenceFragment {
 
     private static final String TAG = "ToggleColorInversionPreferenceFragment";
     private static final String ENABLED = Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED;
 
+    private static final String KEY_SHORTCUT_PREFERENCE = "color_inversion_shortcut_key";
+
     @Override
     protected void registerKeysToObserverCallback(
             AccessibilitySettingsContentObserver contentObserver) {
@@ -67,9 +73,9 @@
         mHtmlDescription = getText(R.string.accessibility_display_inversion_preference_subtitle);
         mTopIntroTitle = getText(R.string.accessibility_display_inversion_preference_intro_text);
         mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
-                .authority(getPrefContext().getPackageName())
-                .appendPath(String.valueOf(R.raw.a11y_color_inversion_banner))
-                .build();
+            .authority(getPrefContext().getPackageName())
+            .appendPath(String.valueOf(R.raw.a11y_color_inversion_banner))
+            .build();
         final View view = super.onCreateView(inflater, container, savedInstanceState);
         updateFooterPreference();
         return view;
@@ -159,7 +165,7 @@
     @Override
     int getUserShortcutTypes() {
         return AccessibilityUtil.getUserShortcutTypesFromSettings(getPrefContext(),
-                mComponentName);
+            mComponentName);
     }
 
     @Override
@@ -170,8 +176,8 @@
     @Override
     CharSequence getTileTooltipContent(@QuickSettingsTooltipType int type) {
         return getText(type == QuickSettingsTooltipType.GUIDE_TO_EDIT
-                ? R.string.accessibility_color_inversion_qs_tooltip_content
-                : R.string.accessibility_color_inversion_auto_added_qs_tooltip_content);
+            ? R.string.accessibility_color_inversion_qs_tooltip_content
+            : R.string.accessibility_color_inversion_auto_added_qs_tooltip_content);
     }
 
     @Override
@@ -184,5 +190,17 @@
     }
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.accessibility_color_inversion_settings);
+            new BaseSearchIndexProvider(R.xml.accessibility_color_inversion_settings) {
+                @Override
+                public List<SearchIndexableRaw> getRawDataToIndex(Context context,
+                        boolean enabled) {
+                    final List<SearchIndexableRaw> rawData = new ArrayList<>();
+                    SearchIndexableRaw raw = new SearchIndexableRaw(context);
+                    raw.key = KEY_SHORTCUT_PREFERENCE;
+                    raw.title = context.getString(
+                        R.string.accessibility_display_inversion_shortcut_title);
+                    rawData.add(raw);
+                    return rawData;
+                }
+            };
 }
diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
index 5e36100..bc34e01 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -95,8 +95,10 @@
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
         mComponentName = DALTONIZER_COMPONENT_NAME;
-        mPackageName = getText(R.string.accessibility_display_daltonizer_preference_title);
-        mHtmlDescription = getText(R.string.accessibility_display_daltonizer_preference_subtitle);
+        mPackageName = getText(com.android.settingslib.R
+                .string.accessibility_display_daltonizer_preference_title);
+        mHtmlDescription = getText(com.android.settingslib.R
+                .string.accessibility_display_daltonizer_preference_subtitle);
         mTopIntroTitle = getText(R.string.accessibility_daltonizer_about_intro_text);
         final View view = super.onCreateView(inflater, container, savedInstanceState);
         updateFooterPreference();
@@ -108,8 +110,8 @@
         super.onViewCreated(view, savedInstanceState);
         final View rootView = getActivity().getWindow().peekDecorView();
         if (rootView != null) {
-            rootView.setAccessibilityPaneTitle(getString(
-                    R.string.accessibility_display_daltonizer_preference_title));
+            rootView.setAccessibilityPaneTitle(getString(com.android.settingslib.R
+                    .string.accessibility_display_daltonizer_preference_title));
         }
     }
 
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index 6a4344f..e7835f8 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;
@@ -57,12 +59,13 @@
 import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
 import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 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 +79,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 +191,7 @@
         initGeneralCategory();
         initShortcutPreference();
         initSettingsPreference();
+        initAppInfoPreference();
         initHtmlTextPreference();
         initFooterPreference();
 
@@ -208,7 +212,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 +220,7 @@
                 setupEditShortcutDialog(mDialog);
                 return mDialog;
             case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL:
-                if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+                if (isAnySetupWizard()) {
                     mDialog = AccessibilityGestureNavigationTutorial
                             .createAccessibilityTutorialDialogForSetupWizard(
                                     getPrefContext(), getUserShortcutTypes(),
@@ -325,7 +329,7 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         onPreferenceToggled(mPreferenceKey, isChecked);
     }
 
@@ -541,6 +545,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;
@@ -616,7 +658,7 @@
         int value = restoreOnConfigChangedValue();
         if (value == NOT_SET) {
             final int lastNonEmptyUserShortcutType = PreferredShortcuts.retrieveUserShortcutType(
-                    getPrefContext(), mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                    getPrefContext(), mComponentName.flattenToString());
             value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
                     : UserShortcutType.EMPTY;
         }
@@ -662,11 +704,11 @@
         }
 
         if (!mShortcutPreference.isChecked()) {
-            return context.getText(R.string.switch_off_text);
+            return context.getText(R.string.accessibility_shortcut_state_off);
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(context,
-                mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mComponentName.flattenToString());
 
         final List<CharSequence> list = new ArrayList<>();
         if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
@@ -759,7 +801,7 @@
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
-                mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mComponentName.flattenToString());
         mShortcutPreference.setChecked(
                 AccessibilityUtil.hasValuesInSettings(getPrefContext(), shortcutTypes,
                         mComponentName));
@@ -777,7 +819,7 @@
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
-                mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mComponentName.flattenToString());
         if (preference.isChecked()) {
             AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
                     mComponentName);
@@ -791,7 +833,13 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        showDialog(DialogEnums.EDIT_SHORTCUT);
+        if (com.android.settings.accessibility.Flags.editShortcutsInFullScreen()) {
+            EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                    requireContext(), getMetricsCategory(), getShortcutTitle(),
+                    mComponentName, getIntent());
+        } else {
+            showDialog(DialogEnums.EDIT_SHORTCUT);
+        }
     }
 
     /**
@@ -864,6 +912,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 +958,9 @@
         }
         return null;
     }
+
+    @VisibleForTesting
+    boolean isAnySetupWizard() {
+        return WizardManagerHelper.isAnySetupWizard(getIntent());
+    }
 }
diff --git a/src/com/android/settings/accessibility/ToggleForceInvertPreferenceController.java b/src/com/android/settings/accessibility/ToggleForceInvertPreferenceController.java
new file mode 100644
index 0000000..3f2cc13
--- /dev/null
+++ b/src/com/android/settings/accessibility/ToggleForceInvertPreferenceController.java
@@ -0,0 +1,63 @@
+/*
+ * 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.accessibility;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.accessibility.Flags;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+/** A toggle preference controller for force invert (force dark). */
+public class ToggleForceInvertPreferenceController extends TogglePreferenceController {
+
+    public static final String SETTINGS_KEY =
+            Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED;
+
+    @VisibleForTesting
+    static final int ON = 1;
+    @VisibleForTesting
+    static final int OFF = 0;
+
+    public ToggleForceInvertPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return Settings.Secure.getInt(mContext.getContentResolver(), SETTINGS_KEY, OFF) != OFF;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return Settings.Secure.putInt(mContext.getContentResolver(),
+                SETTINGS_KEY, isChecked ? ON : OFF);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.forceInvertColor() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_accessibility;
+    }
+}
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 1270671..023556c 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
 import static com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
 import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
@@ -42,16 +43,20 @@
 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;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
 import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
+import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settings.utils.LocaleUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -75,13 +80,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 +207,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(
@@ -225,10 +230,6 @@
     protected void onProcessArguments(Bundle arguments) {
         Context context = getContext();
 
-        // This Fragment may get arguments from MagnificationGesturesPreferenceController or
-        // MagnificationNavbarPreferenceController and it's necessary to check if a key exists
-        // before putting a new value into arguments.
-
         if (!arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY)) {
             arguments.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY,
                     Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
@@ -264,7 +265,7 @@
             return;
         }
 
-        var alwaysOnPreference = new SwitchPreference(getPrefContext());
+        var alwaysOnPreference = new SwitchPreferenceCompat(getPrefContext());
         alwaysOnPreference.setTitle(
                 R.string.accessibility_screen_magnification_always_on_title);
         alwaysOnPreference.setSummary(
@@ -289,7 +290,7 @@
             return;
         }
 
-        SwitchPreference joystickPreference = new SwitchPreference(getPrefContext());
+        TwoStatePreference joystickPreference = new SwitchPreferenceCompat(getPrefContext());
         joystickPreference.setTitle(
                 R.string.accessibility_screen_magnification_joystick_title);
         joystickPreference.setSummary(
@@ -334,6 +335,11 @@
         if (mTripleTapTypeCheckBox.isChecked()) {
             value |= UserShortcutType.TRIPLETAP;
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (mTwoFingerTripleTapTypeCheckBox.isChecked()) {
+                value |= UserShortcutType.TWOFINGERTRIPLETAP;
+            }
+        }
         return value;
     }
 
@@ -347,6 +353,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);
@@ -371,7 +386,7 @@
         int value = restoreOnConfigChangedValue();
         if (value == NOT_SET) {
             final int lastNonEmptyUserShortcutType = PreferredShortcuts.retrieveUserShortcutType(
-                    getPrefContext(), MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                    getPrefContext(), MAGNIFICATION_CONTROLLER_NAME);
             value = mShortcutPreference.isChecked() ? lastNonEmptyUserShortcutType
                     : UserShortcutType.EMPTY;
         }
@@ -382,6 +397,10 @@
                 hasShortcutType(value, UserShortcutType.HARDWARE));
         mTripleTapTypeCheckBox.setChecked(
                 hasShortcutType(value, UserShortcutType.TRIPLETAP));
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            mTwoFingerTripleTapTypeCheckBox.setChecked(
+                    hasShortcutType(value, UserShortcutType.TWOFINGERTRIPLETAP));
+        }
     }
 
     private int restoreOnConfigChangedValue() {
@@ -441,7 +460,7 @@
         }
 
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(context,
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                MAGNIFICATION_CONTROLLER_NAME);
 
         final List<CharSequence> list = new ArrayList<>();
         if (hasShortcutType(shortcutTypes, UserShortcutType.SOFTWARE)) {
@@ -457,6 +476,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_double_tap_keyword);
+                list.add(twoFingerTripleTapTitle);
+            }
+        }
 
         // Show software shortcut if first time to use.
         if (list.isEmpty()) {
@@ -537,7 +563,7 @@
                 preferenceKey)) {
             showDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
         }
-        MagnificationPreferenceFragment.setChecked(getContentResolver(), preferenceKey, enabled);
+        Settings.Secure.putInt(getContentResolver(), preferenceKey, enabled ? ON : OFF);
     }
 
     @Override
@@ -548,7 +574,7 @@
     @Override
     public void onToggleClicked(ShortcutPreference preference) {
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                MAGNIFICATION_CONTROLLER_NAME);
         if (preference.isChecked()) {
             optInAllMagnificationValuesToSettings(getPrefContext(), shortcutTypes);
             showDialog(DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
@@ -560,7 +586,16 @@
 
     @Override
     public void onSettingsClicked(ShortcutPreference preference) {
-        showDialog(DialogEnums.MAGNIFICATION_EDIT_SHORTCUT);
+        if (com.android.settings.accessibility.Flags.editShortcutsInFullScreen()) {
+            EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                    requireContext(),
+                    getMetricsCategory(),
+                    getShortcutTitle(),
+                    MAGNIFICATION_COMPONENT_NAME,
+                    getIntent());
+        } else {
+            showDialog(DialogEnums.MAGNIFICATION_EDIT_SHORTCUT);
+        }
     }
 
     @Override
@@ -594,7 +629,7 @@
     @Override
     protected void updateShortcutPreference() {
         final int shortcutTypes = PreferredShortcuts.retrieveUserShortcutType(getPrefContext(),
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                MAGNIFICATION_CONTROLLER_NAME);
         mShortcutPreference.setChecked(
                 hasMagnificationValuesInSettings(getPrefContext(), shortcutTypes));
         mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
@@ -622,6 +657,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,
@@ -632,6 +673,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;
         }
@@ -647,6 +697,17 @@
         joiner.add(MAGNIFICATION_CONTROLLER_NAME);
 
         Settings.Secure.putString(context.getContentResolver(), targetKey, joiner.toString());
+        // The size setting defaults to unknown. If the user has ever manually changed the size
+        // before, we do not automatically change it.
+        if (shortcutType == UserShortcutType.SOFTWARE
+                && Settings.Secure.getInt(context.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                FloatingMenuSizePreferenceController.Size.UNKNOWN)
+                == FloatingMenuSizePreferenceController.Size.UNKNOWN) {
+            Settings.Secure.putInt(context.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                    FloatingMenuSizePreferenceController.Size.LARGE);
+        }
     }
 
     @VisibleForTesting
@@ -661,6 +722,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,
@@ -671,6 +738,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);
@@ -706,6 +782,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;
     }
 
@@ -716,6 +799,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);
@@ -745,6 +836,11 @@
         if (hasMagnificationValuesInSettings(context, UserShortcutType.TRIPLETAP)) {
             shortcutTypes |= UserShortcutType.TRIPLETAP;
         }
+        if (Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            if (hasMagnificationValuesInSettings(context, UserShortcutType.TWOFINGERTRIPLETAP)) {
+                shortcutTypes |= UserShortcutType.TWOFINGERTRIPLETAP;
+            }
+        }
         return shortcutTypes;
     }
 
@@ -755,9 +851,13 @@
      */
     public static CharSequence getServiceSummary(Context context) {
         // Get the user shortcut type from settings provider.
-        final int uerShortcutType = getUserShortcutTypeFromSettings(context);
-        return (uerShortcutType != AccessibilityUtil.UserShortcutType.EMPTY)
+        final int userShortcutType = getUserShortcutTypeFromSettings(context);
+        final CharSequence featureState =
+                (userShortcutType != AccessibilityUtil.UserShortcutType.EMPTY)
                 ? context.getText(R.string.accessibility_summary_shortcut_enabled)
-                : context.getText(R.string.accessibility_summary_shortcut_disabled);
+                : context.getText(R.string.generic_accessibility_feature_shortcut_off);
+        final CharSequence featureSummary = context.getText(R.string.magnification_feature_summary);
+        return context.getString(R.string.preference_summary_default_combination,
+                featureState, featureSummary);
     }
 }
diff --git a/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java b/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java
new file mode 100644
index 0000000..41e8198
--- /dev/null
+++ b/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java
@@ -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.accessibility;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.os.Vibrator;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+/** Accessibility settings for the vibration. */
+@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
+public class VibrationIntensitySettingsFragment extends DashboardFragment {
+
+    private static final String TAG = "VibrationIntensitySettings";
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.ACCESSIBILITY_VIBRATION;
+    }
+
+    @Override
+    public int getHelpResource() {
+        return R.string.help_uri_accessibility_vibration;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.accessibility_vibration_intensity_settings;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @VisibleForTesting
+    static boolean isPageSearchEnabled(Context context) {
+        final int supportedIntensityLevels = context.getResources().getInteger(
+                R.integer.config_vibration_supported_intensity_levels);
+        final boolean hasVibrator = context.getSystemService(Vibrator.class).hasVibrator();
+        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
+            return hasVibrator && supportedIntensityLevels > 1;
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        final View view = super.onCreateView(inflater, container, savedInstanceState);
+        final Resources res = view.getResources();
+        final RecyclerView rv = getListView();
+        if (rv != null) {
+            final int bottom_padding = res.getDimensionPixelSize(
+                    com.android.settingslib.widget.theme.R.dimen
+                            .settingslib_listPreferredItemPaddingEnd);
+            rv.setPaddingRelative(rv.getPaddingStart(), rv.getPaddingTop(), rv.getPaddingEnd(),
+                    rv.getPaddingBottom() + bottom_padding);
+        }
+        return view;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.accessibility_vibration_intensity_settings) {
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    return VibrationIntensitySettingsFragment.isPageSearchEnabled(context);
+                }
+            };
+}
diff --git a/src/com/android/settings/accessibility/VibrationPreferenceConfig.java b/src/com/android/settings/accessibility/VibrationPreferenceConfig.java
index b4be528..a304862 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,13 +146,17 @@
         return mAudioManager.getRingerModeInternal() == AudioManager.RINGER_MODE_SILENT;
     }
 
-    private static VibrationAttributes createPreviewVibrationAttributes(
+    static VibrationAttributes createPreviewVibrationAttributes(
             @VibrationAttributes.Usage int vibrationUsage) {
         return new VibrationAttributes.Builder()
                 .setUsage(vibrationUsage)
-                // Enforce fresh settings to be applied for the preview vibration, as they
-                // are played immediately after the new user values are set.
-                .setFlags(VibrationAttributes.FLAG_INVALIDATE_SETTINGS_CACHE)
+                .setFlags(
+                        // Enforce fresh settings to be applied for the preview vibration, as they
+                        // are played immediately after the new user values are set.
+                        VibrationAttributes.FLAG_INVALIDATE_SETTINGS_CACHE
+                        // Bypass user settings to allow vibration previews to be played while in
+                        // limited interruptions' mode, e.g. zen mode.
+                        | VibrationAttributes.FLAG_BYPASS_INTERRUPTION_POLICY)
                 .build();
     }
 
diff --git a/src/com/android/settings/accessibility/VibrationPreferenceController.java b/src/com/android/settings/accessibility/VibrationPreferenceController.java
index 61606b8..d430249 100644
--- a/src/com/android/settings/accessibility/VibrationPreferenceController.java
+++ b/src/com/android/settings/accessibility/VibrationPreferenceController.java
@@ -21,9 +21,15 @@
 import android.content.Context;
 import android.os.Vibrator;
 import android.provider.Settings;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.flags.Flags;
 
 /** Controller for "Vibration & haptics" settings page. */
 public class VibrationPreferenceController extends BasePreferenceController {
@@ -49,4 +55,29 @@
                         ? R.string.accessibility_vibration_settings_state_on
                         : R.string.accessibility_vibration_settings_state_off);
     }
+
+    @VisibleForTesting
+    void launchVibrationSettingsFragment(Class klass) {
+        new SubSettingLauncher(mContext)
+                .setSourceMetricsCategory(getMetricsCategory())
+                .setDestination(klass.getName())
+                .launch();
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (Flags.separateAccessibilityVibrationSettingsFragments()
+                && TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            if (mContext.getResources().getInteger(
+                    R.integer.config_vibration_supported_intensity_levels) > 1) {
+                launchVibrationSettingsFragment(VibrationIntensitySettingsFragment.class);
+            } else {
+                launchVibrationSettingsFragment(VibrationSettings.class);
+            }
+            return true;
+        }
+        return super.handlePreferenceTreeClick(preference);
+    }
+
+
 }
diff --git a/src/com/android/settings/accessibility/VibrationSettings.java b/src/com/android/settings/accessibility/VibrationSettings.java
index 26a1bc2..4b36dde 100644
--- a/src/com/android/settings/accessibility/VibrationSettings.java
+++ b/src/com/android/settings/accessibility/VibrationSettings.java
@@ -26,10 +26,12 @@
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
 
@@ -43,6 +45,9 @@
     private static final String TAG = "VibrationSettings";
 
     private static int getVibrationXmlResourceId(Context context) {
+        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
+            return R.xml.accessibility_vibration_settings;
+        }
         final int supportedIntensities = context.getResources().getInteger(
                 R.integer.config_vibration_supported_intensity_levels);
         return supportedIntensities > 1
@@ -74,6 +79,9 @@
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
+        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
+            return super.onCreateView(inflater, container, savedInstanceState);
+        }
         final View view = super.onCreateView(inflater, container, savedInstanceState);
         final RecyclerView rv = getListView();
         final Resources res = view.getResources();
@@ -81,19 +89,30 @@
                 R.integer.config_vibration_supported_intensity_levels);
         if (rv != null && supportedIntensities > 1) {
             final int bottom_padding = res.getDimensionPixelSize(
-                    R.dimen.settingslib_listPreferredItemPaddingEnd);
+                    com.android.settingslib.widget.theme.R.dimen.settingslib_listPreferredItemPaddingEnd);
             rv.setPaddingRelative(rv.getPaddingStart(), rv.getPaddingTop(), rv.getPaddingEnd(),
                     rv.getPaddingBottom() + bottom_padding);
         }
         return view;
     }
 
+    @VisibleForTesting
+    static boolean isPageSearchEnabled(Context context) {
+        final int supportedIntensityLevels = context.getResources().getInteger(
+                R.integer.config_vibration_supported_intensity_levels);
+        final boolean hasVibrator = context.getSystemService(Vibrator.class).hasVibrator();
+        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
+            return hasVibrator && supportedIntensityLevels == 1;
+        } else {
+            return hasVibrator;
+        }
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider() {
-
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    return context.getSystemService(Vibrator.class).hasVibrator();
+                    return VibrationSettings.isPageSearchEnabled(context);
                 }
 
                 @Override
diff --git a/src/com/android/settings/accessibility/rtt/TelecomUtil.java b/src/com/android/settings/accessibility/rtt/TelecomUtil.java
index 53c988a..8317298 100644
--- a/src/com/android/settings/accessibility/rtt/TelecomUtil.java
+++ b/src/com/android/settings/accessibility/rtt/TelecomUtil.java
@@ -64,7 +64,7 @@
             return Optional.empty();
         }
         SubscriptionManager subscriptionManager = context.getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         List<SubscriptionInfo> subscriptionInfos =
                 subscriptionManager.getActiveSubscriptionInfoList();
         if (subscriptionInfos == null) {
diff --git a/src/com/android/settings/accessibility/shortcuts/AdvancedShortcutsPreferenceController.java b/src/com/android/settings/accessibility/shortcuts/AdvancedShortcutsPreferenceController.java
new file mode 100644
index 0000000..61be82f
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/AdvancedShortcutsPreferenceController.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.accessibility.shortcuts;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+
+import android.content.Context;
+
+import com.android.settings.accessibility.ExpandablePreference;
+
+import java.util.Set;
+
+/**
+ * A preference controller that controls an expandable preference that wraps
+ * the advanced shortcut options.
+ */
+public class AdvancedShortcutsPreferenceController extends ShortcutOptionPreferenceController
+        implements ExpandablePreference {
+
+    private boolean mIsExpanded = false;
+
+    public AdvancedShortcutsPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    protected boolean isChecked() {
+        return false;
+    }
+
+    @Override
+    protected void enableShortcutForTargets(boolean enable) {
+        // do nothing
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (!isExpanded() && isShortcutAvailable()) {
+            // "Advanced" is available when the user hasn't clicked on it
+            return AVAILABLE_UNSEARCHABLE;
+        }
+        return CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void setExpanded(boolean expanded) {
+        mIsExpanded = expanded;
+    }
+
+    @Override
+    public boolean isExpanded() {
+        return mIsExpanded;
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        // Only Magnification has advanced shortcut options.
+        Set<String> shortcutTargets = getShortcutTargets();
+        return shortcutTargets.size() == 1
+                && shortcutTargets.contains(MAGNIFICATION_CONTROLLER_NAME);
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
new file mode 100644
index 0000000..a3cbb57
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
@@ -0,0 +1,359 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static android.app.Activity.RESULT_CANCELED;
+import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE;
+import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
+import static android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED;
+import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED;
+import static android.provider.Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE;
+
+import android.app.settings.SettingsEnums;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.accessibility.AccessibilityManager;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.accessibility.AccessibilitySetupWizardUtils;
+import com.android.settings.accessibility.PreferredShortcuts;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
+import java.util.Collection;
+import java.util.Set;
+
+/**
+ * A screen show various accessibility shortcut options for the given a11y feature
+ */
+public class EditShortcutsPreferenceFragment extends DashboardFragment {
+    private static final String TAG = "EditShortcutsPreferenceFragment";
+
+    @VisibleForTesting
+    static final String ARG_KEY_SHORTCUT_TARGETS = "targets";
+    @VisibleForTesting
+    static final String SAVED_STATE_IS_EXPANDED = "isExpanded";
+    private ContentObserver mSettingsObserver;
+
+    private static final Uri VOLUME_KEYS_SHORTCUT_SETTING =
+            Settings.Secure.getUriFor(ACCESSIBILITY_SHORTCUT_TARGET_SERVICE);
+    private static final Uri BUTTON_SHORTCUT_MODE_SETTING =
+            Settings.Secure.getUriFor(ACCESSIBILITY_BUTTON_MODE);
+    private static final Uri BUTTON_SHORTCUT_SETTING =
+            Settings.Secure.getUriFor(ACCESSIBILITY_BUTTON_TARGETS);
+
+    private static final Uri TRIPLE_TAP_SHORTCUT_SETTING =
+            Settings.Secure.getUriFor(ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
+    private static final Uri TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING =
+            Settings.Secure.getUriFor(ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED);
+
+    @VisibleForTesting
+    static final Uri[] SHORTCUT_SETTINGS = {
+            VOLUME_KEYS_SHORTCUT_SETTING,
+            BUTTON_SHORTCUT_MODE_SETTING,
+            BUTTON_SHORTCUT_SETTING,
+            TRIPLE_TAP_SHORTCUT_SETTING,
+            TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING,
+    };
+
+    private Set<String> mShortcutTargets;
+
+    @Nullable
+    private AccessibilityManager.TouchExplorationStateChangeListener
+            mTouchExplorationStateChangeListener;
+
+
+    /**
+     * Helper method to show the edit shortcut screen
+     */
+    public static void showEditShortcutScreen(
+            Context context, int metricsCategory, CharSequence screenTitle,
+            ComponentName target, Intent fromIntent) {
+        Bundle args = new Bundle();
+
+        if (MAGNIFICATION_COMPONENT_NAME.equals(target)) {
+            // We can remove this branch once b/147990389 is completed
+            args.putStringArray(
+                    ARG_KEY_SHORTCUT_TARGETS, new String[]{MAGNIFICATION_CONTROLLER_NAME});
+        } else {
+            args.putStringArray(
+                    ARG_KEY_SHORTCUT_TARGETS, new String[]{target.flattenToString()});
+        }
+        Intent toIntent = new Intent();
+        if (fromIntent != null) {
+            SetupWizardUtils.copySetupExtras(fromIntent, toIntent);
+        }
+
+        new SubSettingLauncher(context)
+                .setDestination(EditShortcutsPreferenceFragment.class.getName())
+                .setExtras(toIntent.getExtras())
+                .setArguments(args)
+                .setSourceMetricsCategory(metricsCategory)
+                .setTitleText(screenTitle)
+                .launch();
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        initializeArguments();
+        initializePreferenceControllerArguments();
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (savedInstanceState != null) {
+            boolean isExpanded = savedInstanceState.getBoolean(SAVED_STATE_IS_EXPANDED);
+            if (isExpanded) {
+                onExpanded();
+            }
+        }
+        mSettingsObserver = new ContentObserver(new Handler()) {
+            @Override
+            public void onChange(boolean selfChange, Uri uri) {
+                if (VOLUME_KEYS_SHORTCUT_SETTING.equals(uri)) {
+                    refreshPreferenceController(VolumeKeysShortcutOptionController.class);
+                } else if (BUTTON_SHORTCUT_MODE_SETTING.equals(uri)
+                        || BUTTON_SHORTCUT_SETTING.equals(uri)) {
+                    refreshSoftwareShortcutControllers();
+                } else if (TRIPLE_TAP_SHORTCUT_SETTING.equals(uri)) {
+                    refreshPreferenceController(TripleTapShortcutOptionController.class);
+                } else if (TWO_FINGERS_DOUBLE_TAP_SHORTCUT_SETTING.equals(uri)) {
+                    refreshPreferenceController(TwoFingersDoubleTapShortcutOptionController.class);
+                }
+
+                PreferredShortcuts.updatePreferredShortcutsFromSettings(
+                        getContext(), mShortcutTargets);
+            }
+        };
+
+        registerSettingsObserver();
+    }
+
+    @NonNull
+    @Override
+    public RecyclerView onCreateRecyclerView(
+            @NonNull LayoutInflater inflater, @NonNull ViewGroup parent,
+            @Nullable Bundle savedInstanceState) {
+        if (parent instanceof GlifPreferenceLayout layout) {
+            // Usually for setup wizard
+            return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        } else {
+            return super.onCreateRecyclerView(inflater, parent, savedInstanceState);
+        }
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+        if (view instanceof GlifPreferenceLayout layout) {
+            // Usually for setup wizard
+            String title = null;
+            Intent intent = getIntent();
+            if (intent != null) {
+                title = intent.getStringExtra(EXTRA_SHOW_FRAGMENT_TITLE);
+            }
+            AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
+                    /* description= */ null, /* icon= */ null);
+
+            FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
+            AccessibilitySetupWizardUtils.setPrimaryButton(getContext(), mixin, R.string.done,
+                    () -> {
+                        setResult(RESULT_CANCELED);
+                        finish();
+                    });
+        }
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mTouchExplorationStateChangeListener = isTouchExplorationEnabled ->
+                refreshPreferenceController(GestureShortcutOptionController.class);
+
+        final AccessibilityManager am = getSystemService(
+                AccessibilityManager.class);
+        am.addTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
+        PreferredShortcuts.updatePreferredShortcutsFromSettings(getContext(), mShortcutTargets);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+
+        if (mTouchExplorationStateChangeListener != null) {
+            final AccessibilityManager am = getSystemService(
+                    AccessibilityManager.class);
+            am.removeTouchExplorationStateChangeListener(mTouchExplorationStateChangeListener);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(
+                SAVED_STATE_IS_EXPANDED,
+                use(AdvancedShortcutsPreferenceController.class).isExpanded());
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        unregisterSettingsObserver();
+    }
+
+    private void registerSettingsObserver() {
+        if (mSettingsObserver != null) {
+            for (Uri uri : SHORTCUT_SETTINGS) {
+                getContentResolver().registerContentObserver(
+                        uri, /* notifyForDescendants= */ false, mSettingsObserver);
+            }
+        }
+    }
+
+    private void unregisterSettingsObserver() {
+        if (mSettingsObserver != null) {
+            getContentResolver().unregisterContentObserver(mSettingsObserver);
+        }
+    }
+
+    private void initializeArguments() {
+        Bundle args = getArguments();
+        if (args == null || args.isEmpty()) {
+            throw new IllegalArgumentException(
+                    EditShortcutsPreferenceFragment.class.getSimpleName()
+                            + " requires non-empty shortcut targets");
+        }
+
+        String[] targets = args.getStringArray(ARG_KEY_SHORTCUT_TARGETS);
+        if (targets == null) {
+            throw new IllegalArgumentException(
+                    EditShortcutsPreferenceFragment.class.getSimpleName()
+                            + " requires non-empty shortcut targets");
+        }
+
+        mShortcutTargets = Set.of(targets);
+        // TODO(318748373): use 'targets' to populate title when no title is given
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_ACCESSIBILITY_SERVICE_EDIT_SHORTCUT;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.accessibility_edit_shortcuts;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(Preference preference) {
+        if (getString(R.string.accessibility_shortcuts_advanced_collapsed)
+                .equals(preference.getKey())) {
+            onExpanded();
+            // log here since calling super.onPreferenceTreeClick will be skipped
+            writePreferenceClickMetric(preference);
+            return true;
+        }
+        return super.onPreferenceTreeClick(preference);
+    }
+
+    @VisibleForTesting
+    void initializePreferenceControllerArguments() {
+        boolean isInSuw = WizardManagerHelper.isAnySetupWizard(getIntent());
+
+        getPreferenceControllers()
+                .stream()
+                .flatMap(Collection::stream)
+                .filter(
+                        controller -> controller instanceof ShortcutOptionPreferenceController)
+                .forEach(controller -> {
+                    ShortcutOptionPreferenceController shortcutOptionPreferenceController =
+                            (ShortcutOptionPreferenceController) controller;
+                    shortcutOptionPreferenceController.setShortcutTargets(mShortcutTargets);
+                    shortcutOptionPreferenceController.setInSetupWizard(isInSuw);
+                });
+    }
+
+    private void onExpanded() {
+        AdvancedShortcutsPreferenceController advanced =
+                use(AdvancedShortcutsPreferenceController.class);
+        advanced.setExpanded(true);
+
+        TripleTapShortcutOptionController tripleTapShortcutOptionController =
+                use(TripleTapShortcutOptionController.class);
+        tripleTapShortcutOptionController.setExpanded(true);
+
+        refreshPreferenceController(AdvancedShortcutsPreferenceController.class);
+        refreshPreferenceController(TripleTapShortcutOptionController.class);
+    }
+
+    private void refreshPreferenceController(
+            Class<? extends AbstractPreferenceController> controllerClass) {
+        AbstractPreferenceController controller = use(controllerClass);
+        if (controller != null) {
+            controller.displayPreference(getPreferenceScreen());
+            if (!TextUtils.isEmpty(controller.getPreferenceKey())) {
+                controller.updateState(findPreference(controller.getPreferenceKey()));
+            }
+        }
+    }
+
+    private void refreshSoftwareShortcutControllers() {
+        // Gesture
+        refreshPreferenceController(GestureShortcutOptionController.class);
+
+        // FAB
+        refreshPreferenceController(FloatingButtonShortcutOptionController.class);
+
+        // A11y Nav Button
+        refreshPreferenceController(NavButtonShortcutOptionController.class);
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
new file mode 100644
index 0000000..e72a85d
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionController.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import android.content.Context;
+import android.text.SpannableStringBuilder;
+
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+/**
+ * A controller handles displaying the floating action button shortcut option preference and
+ * configuring the shortcut.
+ */
+public class FloatingButtonShortcutOptionController
+        extends SoftwareShortcutOptionPreferenceController {
+
+    public FloatingButtonShortcutOptionController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
+            shortcutOptionPreference.setTitle(
+                    R.string.accessibility_shortcut_edit_dialog_title_software);
+            shortcutOptionPreference.setIntroImageResId(
+                    R.drawable.a11y_shortcut_type_software_floating);
+        }
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        return AccessibilityUtil.isFloatingMenuEnabled(mContext);
+    }
+
+    @Nullable
+    @Override
+    public CharSequence getSummary() {
+        if (isInSetupWizard()) {
+            return null;
+        }
+        return new SpannableStringBuilder().append(getCustomizeAccessibilityButtonLink());
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
new file mode 100644
index 0000000..fb312c6
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionController.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import android.content.Context;
+import android.text.SpannableStringBuilder;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+/**
+ * A controller handles displaying the gesture shortcut option preference and
+ * configuring the shortcut.
+ */
+public class GestureShortcutOptionController extends SoftwareShortcutOptionPreferenceController {
+
+    public GestureShortcutOptionController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
+            shortcutOptionPreference.setTitle(
+                    R.string.accessibility_shortcut_edit_dialog_title_software_by_gesture);
+
+            int resId = AccessibilityUtil.isTouchExploreEnabled(mContext)
+                    ? R.drawable.a11y_shortcut_type_software_gesture_talkback
+                    : R.drawable.a11y_shortcut_type_software_gesture;
+            shortcutOptionPreference.setIntroImageResId(resId);
+        }
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        return !isInSetupWizard()
+                && !AccessibilityUtil.isFloatingMenuEnabled(mContext)
+                && AccessibilityUtil.isGestureNavigateEnabled(mContext);
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        final SpannableStringBuilder sb = new SpannableStringBuilder();
+        final int resId = AccessibilityUtil.isTouchExploreEnabled(mContext)
+                ? R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback
+                : R.string.accessibility_shortcut_edit_dialog_summary_software_gesture;
+        sb.append(mContext.getText(resId));
+        sb.append("\n\n");
+        sb.append(getCustomizeAccessibilityButtonLink());
+
+        return sb;
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/NavButtonShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/NavButtonShortcutOptionController.java
new file mode 100644
index 0000000..32c8da2
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/NavButtonShortcutOptionController.java
@@ -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.accessibility.shortcuts;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.SpannableStringBuilder;
+import android.text.style.ImageSpan;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+/**
+ * A controller handles displaying the nav button shortcut option preference and
+ * configuring the shortcut.
+ */
+public class NavButtonShortcutOptionController extends SoftwareShortcutOptionPreferenceController {
+
+    public NavButtonShortcutOptionController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
+            shortcutOptionPreference.setTitle(
+                    R.string.accessibility_shortcut_edit_dialog_title_software);
+            shortcutOptionPreference.setIntroImageResId(R.drawable.a11y_shortcut_type_software);
+            shortcutOptionPreference.setSummaryProvider(
+                    new Preference.SummaryProvider<ShortcutOptionPreference>() {
+                        @Override
+                        public CharSequence provideSummary(
+                                @NonNull ShortcutOptionPreference preference) {
+                            return getSummary(preference.getSummaryTextLineHeight());
+                        }
+                    });
+        }
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        return !AccessibilityUtil.isFloatingMenuEnabled(mContext)
+                && !AccessibilityUtil.isGestureNavigateEnabled(mContext);
+    }
+
+    private CharSequence getSummary(int lineHeight) {
+        final SpannableStringBuilder sb = new SpannableStringBuilder();
+        sb.append(getSummaryStringWithIcon(lineHeight));
+
+        if (!isInSetupWizard()) {
+            sb.append("\n\n");
+            sb.append(getCustomizeAccessibilityButtonLink());
+        }
+
+        return sb;
+    }
+
+    private SpannableString getSummaryStringWithIcon(int lineHeight) {
+        final String summary = mContext
+                .getString(R.string.accessibility_shortcut_edit_dialog_summary_software);
+        final SpannableString spannableMessage = SpannableString.valueOf(summary);
+
+        // Icon
+        final int indexIconStart = summary.indexOf("%s");
+        final int indexIconEnd = indexIconStart + 2;
+        final Drawable icon = mContext.getDrawable(R.drawable.ic_accessibility_new);
+        final ImageSpan imageSpan = new ImageSpan(icon);
+        imageSpan.setContentDescription("");
+        icon.setBounds(
+                /* left= */ 0, /* top= */ 0, /* right= */ lineHeight, /* bottom= */ lineHeight);
+        spannableMessage.setSpan(
+                imageSpan, indexIconStart, indexIconEnd,
+                Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+        return spannableMessage;
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreference.java b/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreference.java
new file mode 100644
index 0000000..53d84b3
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreference.java
@@ -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.accessibility.shortcuts;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.text.method.LinkMovementMethod;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.DrawableRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.RawRes;
+import androidx.preference.CheckBoxPreference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.LottieColorUtils;
+
+import com.airbnb.lottie.LottieAnimationView;
+import com.airbnb.lottie.LottieDrawable;
+
+/**
+ * A preference represents an accessibility shortcut option with a checkbox and a tutorial image
+ */
+public class ShortcutOptionPreference extends CheckBoxPreference {
+
+    private static final String TAG = "ShortcutOptionPreference";
+
+    @DrawableRes
+    private int mIntroImageResId = Resources.ID_NULL;
+    @RawRes
+    private int mIntroImageRawResId = Resources.ID_NULL;
+
+    private int mSummaryTextLineHeight;
+
+    public ShortcutOptionPreference(
+            @NonNull Context context, @Nullable AttributeSet attrs,
+            int defStyleAttr, int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        init();
+    }
+
+    public ShortcutOptionPreference(@NonNull Context context, @Nullable AttributeSet attrs,
+            int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        init();
+    }
+
+    public ShortcutOptionPreference(@NonNull Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public ShortcutOptionPreference(@NonNull Context context) {
+        super(context);
+        init();
+    }
+
+    private void init() {
+        setLayoutResource(R.layout.accessibility_shortcut_option_checkable);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        if (mIntroImageResId == Resources.ID_NULL && mIntroImageRawResId == Resources.ID_NULL) {
+            holder.findViewById(R.id.image).setVisibility(View.GONE);
+        } else {
+            holder.findViewById(R.id.image).setVisibility(View.VISIBLE);
+            LottieAnimationView imageView = holder.itemView.findViewById(R.id.image);
+
+            if (mIntroImageRawResId != Resources.ID_NULL) {
+                imageView.setFailureListener(result ->
+                        Log.w(TAG,
+                                "Invalid image raw resource id: "
+                                        + getContext().getResources()
+                                                .getResourceEntryName(mIntroImageRawResId),
+                                result));
+                imageView.setAnimation(mIntroImageRawResId);
+                imageView.setRepeatCount(LottieDrawable.INFINITE);
+                LottieColorUtils.applyDynamicColors(getContext(), imageView);
+                imageView.playAnimation();
+            } else {
+                imageView.setImageResource(mIntroImageResId);
+            }
+        }
+
+        final TextView summaryView = (TextView) holder.findViewById(android.R.id.summary);
+        if (summaryView != null) {
+            mSummaryTextLineHeight = summaryView.getLineHeight();
+            summaryView.setMovementMethod(LinkMovementMethod.getInstance());
+        }
+
+        syncSummaryView(holder);
+    }
+
+
+    /**
+     * Sets the introduction image for this preference with a drawable resource ID.
+     */
+    public void setIntroImageResId(@DrawableRes int introImageResId) {
+        if (introImageResId != mIntroImageResId) {
+            mIntroImageResId = introImageResId;
+            mIntroImageRawResId = Resources.ID_NULL;
+            notifyChanged();
+        }
+    }
+
+    /**
+     * Sets the introduction image for this preference with a raw resource ID for an animated image.
+     */
+    public void setIntroImageRawResId(@RawRes int introImageRawResId) {
+        if (introImageRawResId != mIntroImageRawResId) {
+            mIntroImageRawResId = introImageRawResId;
+            mIntroImageResId = Resources.ID_NULL;
+            notifyChanged();
+        }
+    }
+
+    public int getSummaryTextLineHeight() {
+        return mSummaryTextLineHeight;
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceController.java b/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceController.java
new file mode 100644
index 0000000..4d35554
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceController.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.accessibility.shortcuts;
+
+import android.content.Context;
+import android.os.UserHandle;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.util.ShortcutUtils;
+import com.android.internal.util.Preconditions;
+import com.android.settings.core.BasePreferenceController;
+
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * A base preference controller for {@link ShortcutOptionPreference}
+ */
+public abstract class ShortcutOptionPreferenceController extends BasePreferenceController
+        implements Preference.OnPreferenceChangeListener {
+    private Set<String> mShortcutTargets = Collections.emptySet();
+    private boolean mIsInSetupWizard;
+
+    public ShortcutOptionPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        if (getPreferenceKey().equals(preference.getKey())
+                && preference instanceof ShortcutOptionPreference) {
+            ((ShortcutOptionPreference) preference).setChecked(isChecked());
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (isShortcutAvailable()) {
+            return AVAILABLE_UNSEARCHABLE;
+        }
+        return CONDITIONALLY_UNAVAILABLE;
+    }
+
+    /**
+     * Set the targets (i.e. a11y features) to be configured with the a11y shortcut option.
+     * <p>
+     * Note: the shortcutTargets cannot be empty, since the edit a11y shortcut option
+     * is meant to configure the shortcut options for an a11y feature.
+     * </>
+     *
+     * @param shortcutTargets the a11y features, like color correction, Talkback, etc.
+     * @throws NullPointerException     if the {@code shortcutTargets} was {@code null}
+     * @throws IllegalArgumentException if the {@code shortcutTargets} was empty
+     */
+    public void setShortcutTargets(Set<String> shortcutTargets) {
+        Preconditions.checkCollectionNotEmpty(shortcutTargets, /* valueName= */ "a11y targets");
+
+        this.mShortcutTargets = shortcutTargets;
+    }
+
+    public void setInSetupWizard(boolean isInSetupWizard) {
+        this.mIsInSetupWizard = isInSetupWizard;
+    }
+
+    protected Set<String> getShortcutTargets() {
+        return mShortcutTargets;
+    }
+
+    protected boolean isInSetupWizard() {
+        return mIsInSetupWizard;
+    }
+
+    @Override
+    public final boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
+        enableShortcutForTargets((Boolean) newValue);
+        return false;
+    }
+
+    @ShortcutConstants.UserShortcutType
+    protected int getShortcutType() {
+        return ShortcutConstants.UserShortcutType.DEFAULT;
+    }
+
+    /**
+     * Returns true if the shortcut is associated to the targets
+     */
+    protected boolean isChecked() {
+        Set<String> targets = ShortcutUtils.getShortcutTargetsFromSettings(
+                mContext, getShortcutType(), UserHandle.myUserId());
+
+        return !targets.isEmpty() && targets.containsAll(getShortcutTargets());
+    }
+
+    /**
+     * Enable or disable the shortcut for the given accessibility features.
+     */
+    protected void enableShortcutForTargets(boolean enable) {
+        Set<String> shortcutTargets = getShortcutTargets();
+        @ShortcutConstants.UserShortcutType int shortcutType = getShortcutType();
+
+        if (enable) {
+            for (String target : shortcutTargets) {
+                ShortcutUtils.optInValueToSettings(mContext, shortcutType, target);
+            }
+        } else {
+            for (String target : shortcutTargets) {
+                ShortcutUtils.optOutValueFromSettings(mContext, shortcutType, target);
+            }
+        }
+        ShortcutUtils.updateInvisibleToggleAccessibilityServiceEnableState(
+                mContext, shortcutTargets, UserHandle.myUserId());
+    }
+
+    /**
+     * Returns true when the user can associate a shortcut to the targets
+     */
+    protected abstract boolean isShortcutAvailable();
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/SoftwareShortcutOptionPreferenceController.java b/src/com/android/settings/accessibility/shortcuts/SoftwareShortcutOptionPreferenceController.java
new file mode 100644
index 0000000..24098c8
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/SoftwareShortcutOptionPreferenceController.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.accessibility.shortcuts;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.View;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityButtonFragment;
+import com.android.settings.accessibility.FloatingMenuSizePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.utils.AnnotationSpan;
+
+/**
+ * A base controller for the preference controller of software shortcuts.
+ */
+public abstract class SoftwareShortcutOptionPreferenceController
+        extends ShortcutOptionPreferenceController {
+
+    public SoftwareShortcutOptionPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @ShortcutConstants.UserShortcutType
+    @Override
+    protected int getShortcutType() {
+        return ShortcutConstants.UserShortcutType.SOFTWARE;
+    }
+
+    private boolean isMagnificationInTargets() {
+        return getShortcutTargets().contains(MAGNIFICATION_CONTROLLER_NAME);
+    }
+
+    protected CharSequence getCustomizeAccessibilityButtonLink() {
+        final View.OnClickListener linkListener = v -> new SubSettingLauncher(mContext)
+                .setDestination(AccessibilityButtonFragment.class.getName())
+                .setSourceMetricsCategory(getMetricsCategory())
+                .launch();
+        final AnnotationSpan.LinkInfo linkInfo = new AnnotationSpan.LinkInfo(
+                AnnotationSpan.LinkInfo.DEFAULT_ANNOTATION, linkListener);
+        return AnnotationSpan.linkify(
+                mContext.getText(
+                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating),
+                linkInfo);
+    }
+
+    @Override
+    protected void enableShortcutForTargets(boolean enable) {
+        super.enableShortcutForTargets(enable);
+
+        if (enable) {
+            // Update the A11y FAB size to large when the Magnification shortcut is enabled
+            // and the user hasn't changed the floating button size
+            if (isMagnificationInTargets()
+                    && Settings.Secure.getInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                    FloatingMenuSizePreferenceController.Size.UNKNOWN)
+                    == FloatingMenuSizePreferenceController.Size.UNKNOWN) {
+                Settings.Secure.putInt(mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                        FloatingMenuSizePreferenceController.Size.LARGE);
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java
new file mode 100644
index 0000000..0eb1ee5
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionController.java
@@ -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.accessibility.shortcuts;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+
+import android.content.Context;
+import android.icu.text.MessageFormat;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+import com.android.settings.accessibility.ExpandablePreference;
+
+import java.util.Set;
+
+/**
+ * A controller handles displaying the triple tap shortcut option preference and
+ * configuring the shortcut.
+ */
+public class TripleTapShortcutOptionController extends ShortcutOptionPreferenceController
+        implements ExpandablePreference {
+
+    private boolean mIsExpanded = false;
+
+    public TripleTapShortcutOptionController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
+            shortcutOptionPreference.setTitle(
+                    R.string.accessibility_shortcut_edit_dialog_title_triple_tap);
+            String summary = mContext.getString(
+                    R.string.accessibility_shortcut_edit_dialog_summary_triple_tap);
+            // Format the number '3' in the summary.
+            final Object[] arguments = {3};
+            summary = MessageFormat.format(summary, arguments);
+
+            shortcutOptionPreference.setSummary(summary);
+            shortcutOptionPreference.setIntroImageRawResId(
+                    R.raw.a11y_shortcut_type_triple_tap);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (isExpanded() && isShortcutAvailable()) {
+            return AVAILABLE_UNSEARCHABLE;
+        }
+        return CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @ShortcutConstants.UserShortcutType
+    @Override
+    protected int getShortcutType() {
+        return ShortcutConstants.UserShortcutType.TRIPLETAP;
+    }
+
+    @Override
+    public void setExpanded(boolean expanded) {
+        mIsExpanded = expanded;
+    }
+
+    @Override
+    public boolean isExpanded() {
+        return mIsExpanded;
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        Set<String> shortcutTargets = getShortcutTargets();
+        return shortcutTargets.size() == 1
+                && shortcutTargets.contains(MAGNIFICATION_CONTROLLER_NAME);
+    }
+
+    @Override
+    protected boolean isChecked() {
+        return Settings.Secure.getInt(
+                mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                AccessibilityUtil.State.OFF) == AccessibilityUtil.State.ON;
+    }
+
+    @Override
+    protected void enableShortcutForTargets(boolean enable) {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                enable ? AccessibilityUtil.State.ON : AccessibilityUtil.State.OFF);
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/TwoFingersDoubleTapShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/TwoFingersDoubleTapShortcutOptionController.java
new file mode 100644
index 0000000..64ed7bd
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/TwoFingersDoubleTapShortcutOptionController.java
@@ -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.accessibility.shortcuts;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+
+import android.content.Context;
+import android.icu.text.MessageFormat;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.server.accessibility.Flags;
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+import java.util.Set;
+
+/**
+ * A controller handles displaying the two fingers double tap shortcut option preference and
+ * configuring the shortcut.
+ */
+public class TwoFingersDoubleTapShortcutOptionController
+        extends ShortcutOptionPreferenceController {
+
+    public TwoFingersDoubleTapShortcutOptionController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @ShortcutConstants.UserShortcutType
+    @Override
+    protected int getShortcutType() {
+        return ShortcutConstants.UserShortcutType.TRIPLETAP;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
+            // TODO (b/306153204): Update shortcut string and image when UX provides them
+            shortcutOptionPreference.setTitle(
+                    R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap);
+            String summary = mContext.getString(
+                    R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap);
+            // Format the number '2' in the summary.
+            final Object[] arguments = {2};
+            summary = MessageFormat.format(summary, arguments);
+
+            shortcutOptionPreference.setSummary(summary);
+            shortcutOptionPreference.setIntroImageRawResId(
+                    R.raw.a11y_shortcut_type_triple_tap);
+        }
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        if (!Flags.enableMagnificationMultipleFingerMultipleTapGesture()) {
+            return false;
+        }
+        // Only Magnification has two fingers triple tap shortcut option.
+        Set<String> shortcutTargets = getShortcutTargets();
+        return shortcutTargets.size() == 1
+                && shortcutTargets.contains(MAGNIFICATION_CONTROLLER_NAME);
+    }
+
+    @Override
+    protected boolean isChecked() {
+        return Settings.Secure.getInt(
+                mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                AccessibilityUtil.State.OFF) == AccessibilityUtil.State.ON;
+    }
+
+    @Override
+    protected void enableShortcutForTargets(boolean enable) {
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                enable ? AccessibilityUtil.State.ON : AccessibilityUtil.State.OFF);
+    }
+}
diff --git a/src/com/android/settings/accessibility/shortcuts/VolumeKeysShortcutOptionController.java b/src/com/android/settings/accessibility/shortcuts/VolumeKeysShortcutOptionController.java
new file mode 100644
index 0000000..9083e7c
--- /dev/null
+++ b/src/com/android/settings/accessibility/shortcuts/VolumeKeysShortcutOptionController.java
@@ -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.accessibility.shortcuts;
+
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+/**
+ * A controller handles displaying the volume keys shortcut option preference and
+ * configuring the shortcut.
+ */
+public class VolumeKeysShortcutOptionController extends ShortcutOptionPreferenceController {
+
+    public VolumeKeysShortcutOptionController(
+            Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @ShortcutConstants.UserShortcutType
+    @Override
+    protected int getShortcutType() {
+        return ShortcutConstants.UserShortcutType.HARDWARE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+        if (preference instanceof ShortcutOptionPreference shortcutOptionPreference) {
+            shortcutOptionPreference.setTitle(
+                    R.string.accessibility_shortcut_edit_dialog_title_hardware);
+            shortcutOptionPreference.setSummary(
+                    R.string.accessibility_shortcut_edit_dialog_summary_hardware);
+            shortcutOptionPreference.setIntroImageResId(
+                    R.drawable.a11y_shortcut_type_hardware);
+        }
+    }
+
+    @Override
+    protected boolean isShortcutAvailable() {
+        return true;
+    }
+
+    @Override
+    protected void enableShortcutForTargets(boolean enable) {
+        super.enableShortcutForTargets(enable);
+        if (enable) {
+            AccessibilityUtil.skipVolumeShortcutDialogTimeoutRestriction(mContext);
+        }
+    }
+}
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/AccountHeaderPreferenceController.java b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
index 11fcaff..b466d2b 100644
--- a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
@@ -95,6 +95,6 @@
                 .newInstance(mActivity, mHost, mHeaderPreference.findViewById(R.id.entity_header))
                 .setLabel(mAccount.name)
                 .setIcon(helper.getDrawableForType(mContext, mAccount.type))
-                .done(mActivity, true /* rebindButtons */);
+                .done(true /* rebindButtons */);
     }
 }
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index cdaba20..2d862d6 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -42,9 +42,11 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
+import android.content.pm.UserProperties;
 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 +102,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;
@@ -164,7 +165,7 @@
         if (mAuthorities != null) {
             mAuthoritiesCount = mAuthorities.length;
         }
-        final FeatureFactory featureFactory = FeatureFactory.getFactory(mContext);
+        final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
         mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
         mHelper = helper;
         mType = type;
@@ -187,6 +188,11 @@
     }
 
     @Override
+    public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
+        rawData.add(newAddAccountRawData());
+    }
+
+    @Override
     public void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
         if (!isAvailable()) {
             return;
@@ -296,14 +302,25 @@
             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())
+                            .getShowInQuietMode() == UserProperties.SHOW_IN_QUIET_MODE_HIDDEN
+                            && profile.isQuietModeEnabled())) {
+                    updateProfileUi(profile);
                 }
             }
         }
@@ -336,6 +353,10 @@
             }
             return;
         }
+        if (mUm.getUserProperties(userInfo.getUserHandle()).getShowInSettings()
+                == UserProperties.SHOW_IN_SETTINGS_NO) {
+            return;
+        }
         final Context context = mContext;
         final ProfileData profileData = new ProfileData();
         profileData.userInfo = userInfo;
@@ -352,7 +373,7 @@
         } else if (userInfo.isManagedProfile()) {
             if (mType == ProfileSelectFragment.ProfileType.ALL) {
                 setCategoryTitleFromDevicePolicyResource(preferenceGroup, WORK_CATEGORY_HEADER,
-                        R.string.category_work);
+                        com.android.settingslib.R.string.category_work);
                 final String workGroupSummary = getWorkGroupSummary(context, userInfo);
                 preferenceGroup.setSummary(workGroupSummary);
                 setContentDescriptionFromDevicePolicyResource(preferenceGroup,
@@ -366,7 +387,7 @@
         } else if (userInfo.isCloneProfile()) {
             if (mType == ProfileSelectFragment.ProfileType.ALL) {
                 setCategoryTitleFromDevicePolicyResource(preferenceGroup, CLONE_CATEGORY_HEADER,
-                        R.string.category_clone);
+                        com.android.settingslib.R.string.category_clone);
                 setContentDescriptionFromDevicePolicyResource(preferenceGroup,
                         ACCESSIBILITY_CATEGORY_CLONE, R.string.accessibility_category_clone,
                         null);
@@ -375,7 +396,7 @@
             // Primary Profile
             if (mType == ProfileSelectFragment.ProfileType.ALL) {
                 setCategoryTitleFromDevicePolicyResource(preferenceGroup, PERSONAL_CATEGORY_HEADER,
-                        R.string.category_personal);
+                        com.android.settingslib.R.string.category_personal);
                 setContentDescriptionFromDevicePolicyResource(preferenceGroup,
                         ACCESSIBILITY_CATEGORY_PERSONAL, R.string.accessibility_category_personal,
                         null);
@@ -416,6 +437,14 @@
         }));
     }
 
+    private SearchIndexableRaw newAddAccountRawData() {
+        SearchIndexableRaw data = new SearchIndexableRaw(mContext);
+        data.key = PREF_KEY_ADD_ACCOUNT;
+        data.title = mContext.getString(R.string.add_account_label);
+        data.iconResId = R.drawable.ic_add_24dp;
+        return data;
+    }
+
     private RestrictedPreference newAddAccountPreference() {
         RestrictedPreference preference =
                 new RestrictedPreference(mFragment.getPreferenceManager().getContext());
@@ -530,18 +559,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/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java
index 83f89d8..80056a8 100644
--- a/src/com/android/settings/accounts/AccountSyncSettings.java
+++ b/src/com/android/settings/accounts/AccountSyncSettings.java
@@ -140,11 +140,10 @@
         final Activity activity = getActivity();
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* header */)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setIcon(getDrawableForType(mAccount.type))
                 .setLabel(mAccount.name)
                 .setSummary(getLabelForType(mAccount.type))
-                .done(activity, getPrefContext());
+                .done(getPrefContext());
         pref.setOrder(0);
         getPreferenceScreen().addPreference(pref);
         if (savedInstanceState != null && savedInstanceState.containsKey(UID_REQUEST_KEY)) {
diff --git a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java
index f1b5be1..72366d4 100644
--- a/src/com/android/settings/accounts/AccountTypePreferenceLoader.java
+++ b/src/com/android/settings/accounts/AccountTypePreferenceLoader.java
@@ -92,7 +92,8 @@
                     final Context targetCtx = mFragment.getActivity().createPackageContextAsUser(
                             desc.packageName, 0, mUserHandle);
                     final Theme baseTheme = mFragment.getResources().newTheme();
-                    baseTheme.applyStyle(R.style.Theme_SettingsBase, true);
+                    baseTheme.applyStyle(
+                            com.android.settingslib.widget.theme.R.style.Theme_SettingsBase, true);
                     final Context themedCtx =
                             new LocalClassLoaderContextThemeWrapper(getClass(), targetCtx, 0);
                     themedCtx.getTheme().setTo(baseTheme);
diff --git a/src/com/android/settings/accounts/AvatarViewMixin.java b/src/com/android/settings/accounts/AvatarViewMixin.java
index 6b04e97..0925e24 100644
--- a/src/com/android/settings/accounts/AvatarViewMixin.java
+++ b/src/com/android/settings/accounts/AvatarViewMixin.java
@@ -117,7 +117,7 @@
                     true /* finishSecondaryWithPrimary */,
                     false /* clearTop */);
 
-            FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .logSettingsTileClick(KEY_AVATAR_ICON, SettingsEnums.SETTINGS_HOMEPAGE);
 
             // Here may have two different UI while start the activity.
@@ -144,8 +144,8 @@
 
     @VisibleForTesting
     boolean hasAccount() {
-        final Account accounts[] = FeatureFactory.getFactory(
-                mContext).getAccountFeatureProvider().getAccounts(mContext);
+        final Account[] accounts = FeatureFactory.getFeatureFactory().getAccountFeatureProvider()
+                .getAccounts(mContext);
         return (accounts != null) && (accounts.length > 0);
     }
 
diff --git a/src/com/android/settings/accounts/ChooseAccountPreferenceController.java b/src/com/android/settings/accounts/ChooseAccountPreferenceController.java
index a217f01..3d05963 100644
--- a/src/com/android/settings/accounts/ChooseAccountPreferenceController.java
+++ b/src/com/android/settings/accounts/ChooseAccountPreferenceController.java
@@ -50,6 +50,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.StringJoiner;
 
 /**
  * An extra {@link UserHandle} can be specified in the intent as {@link EXTRA_USER}, if the user for
@@ -189,7 +190,7 @@
                 mScreen.addPreference(p);
             }
         } else {
-            if (Log.isLoggable(TAG, Log.VERBOSE)) {
+            if (mAuthorities != null && Log.isLoggable(TAG, Log.VERBOSE)) {
                 final StringBuilder auths = new StringBuilder();
                 for (String a : mAuthorities) {
                     auths.append(a);
@@ -197,8 +198,14 @@
                 }
                 Log.v(TAG, "No providers found for authorities: " + auths);
             }
+            if (mAccountTypesFilter != null) {
+                final StringJoiner types = new StringJoiner(", ", "", "");
+                mAccountTypesFilter.forEach(types::add);
+                Log.w(TAG, "No providers found for account types: " + types);
+            }
             mActivity.setResult(RESULT_CANCELED);
-            mActivity.finish();
+            // Do not finish activity to avoid the caller getting the existing account list because
+            // the prompt respond reveals that the input account does not exist.
         }
     }
 
diff --git a/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java b/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java
index ca0a0d6..f7816bb 100644
--- a/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java
+++ b/src/com/android/settings/accounts/EnterpriseDisclosurePreferenceController.java
@@ -35,8 +35,8 @@
     public EnterpriseDisclosurePreferenceController(Context context, String key) {
         // Preference key doesn't matter as we are creating the preference in code.
         super(context, key);
-        mFeatureProvider = FeatureFactory.getFactory(mContext)
-                .getEnterprisePrivacyFeatureProvider(mContext);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/accounts/ManagedProfileQuietModeEnabler.java b/src/com/android/settings/accounts/ManagedProfileQuietModeEnabler.java
index 989be09..df30637 100644
--- a/src/com/android/settings/accounts/ManagedProfileQuietModeEnabler.java
+++ b/src/com/android/settings/accounts/ManagedProfileQuietModeEnabler.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.accounts;
 
+import android.app.admin.flags.Flags;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -58,7 +59,14 @@
     }
 
     public void setQuietModeEnabled(boolean enabled) {
-        if (mManagedProfile != null) {
+        if (mManagedProfile == null) {
+            return;
+        }
+        if (Flags.quietModeCredentialBugFix()) {
+            if (isQuietModeEnabled() != enabled) {
+                mUserManager.requestQuietModeEnabled(enabled, mManagedProfile);
+            }
+        } else {
             mUserManager.requestQuietModeEnabled(enabled, mManagedProfile);
         }
     }
diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
index 7003eed..cdb35b4 100644
--- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
+++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
@@ -34,19 +34,17 @@
 import android.util.Log;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.widget.Button;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settings.widget.RestrictedButton;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.LayoutPreference;
@@ -64,19 +62,26 @@
     private Fragment mParentFragment;
     private UserHandle mUserHandle;
     private LayoutPreference mRemoveAccountPreference;
+    private RestrictedButton mRemoveAccountButton;
 
     public RemoveAccountPreferenceController(Context context, Fragment parent) {
         super(context);
         mParentFragment = parent;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         mRemoveAccountPreference = screen.findPreference(KEY_REMOVE_ACCOUNT);
-        final Button removeAccountButton = mRemoveAccountPreference.findViewById(R.id.button);
-        removeAccountButton.setOnClickListener(this);
+        mRemoveAccountButton = mRemoveAccountPreference.findViewById(R.id.button);
+        mRemoveAccountButton.setOnClickListener(this);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        mRemoveAccountButton.updateState();
     }
 
     @Override
@@ -93,21 +98,13 @@
     public void onClick(View v) {
         mMetricsFeatureProvider.logClickedPreference(mRemoveAccountPreference,
                 mMetricsFeatureProvider.getMetricsCategory(mParentFragment));
-        if (mUserHandle != null) {
-            final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
-                    mContext, UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier());
-            if (admin != null) {
-                RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, admin);
-                return;
-            }
-        }
-
         ConfirmRemoveAccountDialog.show(mParentFragment, mAccount, mUserHandle);
     }
 
     public void init(Account account, UserHandle userHandle) {
         mAccount = account;
         mUserHandle = userHandle;
+        mRemoveAccountButton.init(mUserHandle, UserManager.DISALLOW_MODIFY_ACCOUNTS);
     }
 
     /**
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..2aea27d 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,8 +68,11 @@
     }
 
     @Override
-    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
         mQuietModeEnabler.setQuietModeEnabled(!isChecked);
+        if (android.app.admin.flags.Flags.quietModeCredentialBugFix()) {
+            updateState(mPreference);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
index 993787b..50134ba 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingRulesController.java
@@ -34,6 +34,7 @@
 import androidx.window.embedding.SplitPlaceholderRule;
 import androidx.window.embedding.SplitRule;
 
+import com.android.settings.R;
 import com.android.settings.Settings;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SubSettings;
@@ -49,6 +50,8 @@
 import com.android.settings.homepage.SettingsHomepageActivity;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockPattern;
+import com.android.settings.remoteauth.RemoteAuthActivity;
+import com.android.settings.remoteauth.RemoteAuthActivityInternal;
 import com.android.settingslib.users.AvatarPickerActivity;
 
 import java.util.Collection;
@@ -245,19 +248,27 @@
     private void registerAlwaysExpandRule() {
         final Set<ActivityFilter> activityFilters = new HashSet<>();
         if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.SETTINGS_SEARCH_ALWAYS_EXPAND)) {
-            final Intent searchIntent = FeatureFactory.getFactory(mContext)
+            final Intent searchIntent = FeatureFactory.getFeatureFactory()
                     .getSearchFeatureProvider()
                     .buildSearchIntent(mContext, SettingsEnums.SETTINGS_HOMEPAGE);
             addActivityFilter(activityFilters, searchIntent);
         }
         addActivityFilter(activityFilters, FingerprintEnrollmentActivity.class);
+        addActivityFilter(activityFilters, FingerprintEnrollmentActivity.InternalActivity.class);
         addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class);
         addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class);
         addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class);
         addActivityFilter(activityFilters, FaceEnrollIntroductionInternal.class);
         addActivityFilter(activityFilters, FaceEnrollIntroduction.class);
-        addActivityFilter(activityFilters, AvatarPickerActivity.class);
+        addActivityFilter(activityFilters, RemoteAuthActivity.class);
+        addActivityFilter(activityFilters, RemoteAuthActivityInternal.class);
         addActivityFilter(activityFilters, ChooseLockPattern.class);
+        if (android.multiuser.Flags.avatarSync()) {
+            String action = mContext.getString(R.string.config_avatar_picker_action);
+            addActivityFilter(activityFilters, new Intent(action));
+        } else {
+            addActivityFilter(activityFilters, AvatarPickerActivity.class);
+        }
         ActivityRule activityRule = new ActivityRule.Builder(activityFilters).setAlwaysExpand(true)
                 .build();
         mRuleController.addRule(activityRule);
diff --git a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
index 67d56e0..74a9673 100644
--- a/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
+++ b/src/com/android/settings/activityembedding/ActivityEmbeddingUtils.java
@@ -53,7 +53,7 @@
      * @see androidx.window.embedding.SplitController.SplitSupportStatus#SPLIT_UNAVAILABLE
      */
     private static final boolean SHOULD_ENABLE_LARGE_SCREEN_OPTIMIZATION =
-            SystemProperties.getBoolean("persist.settings.large_screen_opt.enabled", true);
+            SystemProperties.getBoolean("persist.settings.large_screen_opt.enabled", false);
 
     private static final String TAG = "ActivityEmbeddingUtils";
 
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/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/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 3261d6c..2c41be4 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -90,8 +90,8 @@
         super.onCreate(savedInstanceState);
         mFinishing = false;
         final Activity activity = getActivity();
-        mApplicationFeatureProvider = FeatureFactory.getFactory(activity)
-                .getApplicationFeatureProvider(activity);
+        mApplicationFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getApplicationFeatureProvider();
         mState = ApplicationsState.getInstance(activity.getApplication());
         mSession = mState.newSession(this, getSettingsLifecycle());
         mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
@@ -144,10 +144,14 @@
         if (mAppEntry != null) {
             // Get application info again to refresh changed properties of application
             try {
-                mPackageInfo = mPm.getPackageInfoAsUser(mAppEntry.info.packageName,
-                        PackageManager.MATCH_DISABLED_COMPONENTS |
-                                PackageManager.GET_SIGNING_CERTIFICATES |
-                                PackageManager.GET_PERMISSIONS, mUserId);
+                mPackageInfo = mPm.getPackageInfoAsUser(
+                        mAppEntry.info.packageName,
+                        PackageManager.PackageInfoFlags.of(
+                                PackageManager.MATCH_DISABLED_COMPONENTS
+                                        | PackageManager.GET_SIGNING_CERTIFICATES
+                                        | PackageManager.GET_PERMISSIONS
+                                        | PackageManager.MATCH_ARCHIVED_PACKAGES),
+                        mUserId);
             } catch (NameNotFoundException e) {
                 Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
             }
diff --git a/src/com/android/settings/applications/AppInfoWithHeader.java b/src/com/android/settings/applications/AppInfoWithHeader.java
index 7bf9f64..8645628 100644
--- a/src/com/android/settings/applications/AppInfoWithHeader.java
+++ b/src/com/android/settings/applications/AppInfoWithHeader.java
@@ -46,7 +46,6 @@
         final Activity activity = getActivity();
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* header */)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setIcon(Utils.getBadgedIcon(getContext(), mPackageInfo.applicationInfo))
                 .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
                 .setSummary(mPackageInfo)
@@ -55,7 +54,7 @@
                 .setUid(mPackageInfo.applicationInfo.uid)
                 .setHasAppInfoLink(true)
                 .setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
-                .done(activity, getPrefContext());
+                .done(getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 }
diff --git a/src/com/android/settings/applications/AppLocaleUtil.java b/src/com/android/settings/applications/AppLocaleUtil.java
index 70d284d..103a2c1 100644
--- a/src/com/android/settings/applications/AppLocaleUtil.java
+++ b/src/com/android/settings/applications/AppLocaleUtil.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.applications;
 
-import android.annotation.NonNull;
 import android.app.LocaleConfig;
 import android.content.Context;
 import android.content.Intent;
@@ -28,6 +27,7 @@
 import android.util.FeatureFlagUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
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/ApplicationFeatureProviderImpl.java b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
index 80d3947..851d763 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.applications;
 
+import static android.webkit.Flags.updateServiceV2;
+
 import android.Manifest;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
@@ -30,6 +32,7 @@
 import android.content.pm.UserInfo;
 import android.location.LocationManager;
 import android.os.RemoteException;
+import android.os.SystemConfigManager;
 import android.os.UserManager;
 import android.service.euicc.EuiccService;
 import android.telecom.DefaultDialerManager;
@@ -41,6 +44,7 @@
 
 import com.android.internal.telephony.SmsApplication;
 import com.android.settings.R;
+import com.android.settings.webview.WebViewUpdateServiceWrapper;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -54,6 +58,9 @@
     private final IPackageManager mPms;
     private final DevicePolicyManager mDpm;
     private final UserManager mUm;
+    private final WebViewUpdateServiceWrapper mWebViewUpdateServiceWrapper;
+    private final SystemConfigManager mSystemConfigManager;
+
     /** Flags to use when querying PackageManager for Euicc component implementations. */
     private static final int EUICC_QUERY_FLAGS =
             PackageManager.MATCH_SYSTEM_ONLY | PackageManager.MATCH_DEBUG_TRIAGED_MISSING
@@ -61,11 +68,17 @@
 
     public ApplicationFeatureProviderImpl(Context context, PackageManager pm,
             IPackageManager pms, DevicePolicyManager dpm) {
+        this(context, pm, pms, dpm, new WebViewUpdateServiceWrapper());
+    }
+    public ApplicationFeatureProviderImpl(Context context, PackageManager pm,
+            IPackageManager pms, DevicePolicyManager dpm, WebViewUpdateServiceWrapper wvusWrapper) {
         mContext = context.getApplicationContext();
         mPm = pm;
         mPms = pms;
         mDpm = dpm;
         mUm = UserManager.get(mContext);
+        mWebViewUpdateServiceWrapper = wvusWrapper;
+        mSystemConfigManager = context.getSystemService(SystemConfigManager.class);
     }
 
     @Override
@@ -159,6 +172,14 @@
             keepEnabledPackages.add(euicc.packageName);
         }
 
+        // Keep WebView default package enabled.
+        if (updateServiceV2()) {
+            String packageName = mWebViewUpdateServiceWrapper.getDefaultWebViewPackageName();
+            if (packageName != null) {
+                keepEnabledPackages.add(packageName);
+            }
+        }
+
         keepEnabledPackages.addAll(getEnabledPackageAllowlist());
 
         final LocationManager locationManager =
@@ -167,6 +188,7 @@
         if (locationHistoryPackage != null) {
             keepEnabledPackages.add(locationHistoryPackage);
         }
+        keepEnabledPackages.addAll(mSystemConfigManager.getPreventUserDisablePackages());
         return keepEnabledPackages;
     }
 
diff --git a/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java b/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java
index f3ad326..bb628c9 100644
--- a/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java
+++ b/src/com/android/settings/applications/FetchPackageStorageAsyncLoader.java
@@ -16,13 +16,15 @@
 
 package com.android.settings.applications;
 
-import android.annotation.NonNull;
+
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.os.UserHandle;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+
 import com.android.internal.util.Preconditions;
 import com.android.settingslib.applications.StorageStatsSource;
 import com.android.settingslib.applications.StorageStatsSource.AppStorageStats;
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/ProcessStatsDetail.java b/src/com/android/settings/applications/ProcessStatsDetail.java
index 266c195..de21a46 100644
--- a/src/com/android/settings/applications/ProcessStatsDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsDetail.java
@@ -129,7 +129,6 @@
         final Activity activity = getActivity();
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* appHeader */)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setIcon(mApp.mUiTargetApp != null
                         ? IconDrawableFactory.newInstance(activity).getBadgedIcon(mApp.mUiTargetApp)
                         : new ColorDrawable(0))
@@ -140,7 +139,7 @@
                         : UserHandle.USER_NULL)
                 .setHasAppInfoLink(true)
                 .setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
-                .done(activity, getPrefContext());
+                .done(getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
diff --git a/src/com/android/settings/applications/ProcessStatsSummary.java b/src/com/android/settings/applications/ProcessStatsSummary.java
index 4044794..ef76cd5 100644
--- a/src/com/android/settings/applications/ProcessStatsSummary.java
+++ b/src/com/android/settings/applications/ProcessStatsSummary.java
@@ -16,20 +16,26 @@
 package com.android.settings.applications;
 
 import android.app.settings.SettingsEnums;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.icu.text.MessageFormat;
 import android.os.Bundle;
+import android.os.Flags;
+import android.provider.Settings;
 import android.text.format.Formatter;
 import android.text.format.Formatter.BytesResult;
 
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.SwitchPreference;
 
 import com.android.settings.R;
 import com.android.settings.SummaryPreference;
 import com.android.settings.Utils;
 import com.android.settings.applications.ProcStatsData.MemInfo;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.development.DisableDevSettingsDialogFragment;
 
 import java.util.HashMap;
 import java.util.Locale;
@@ -37,6 +43,8 @@
 
 public class ProcessStatsSummary extends ProcessStatsBase implements OnPreferenceClickListener {
 
+    private static final String KEY_PREF_SCREEN = "app_list";
+    private static final String KEY_MEMORY_INFO_PREF_GROUP = "memory_info";
     private static final String KEY_STATUS_HEADER = "status_header";
 
     private static final String KEY_PERFORMANCE = "performance";
@@ -44,7 +52,9 @@
     private static final String KEY_AVERAGY_USED = "average_used";
     private static final String KEY_FREE = "free";
     private static final String KEY_APP_LIST = "apps_list";
+    private static final String KEY_FORCE_ENABLE_PSS_PROFILING = "force_enable_pss_profiling";
 
+    private PreferenceCategory mMemoryInfoPrefCategory;
     private SummaryPreference mSummaryPref;
 
     private Preference mPerformance;
@@ -52,12 +62,14 @@
     private Preference mAverageUsed;
     private Preference mFree;
     private Preference mAppListPreference;
+    private SwitchPreference mForceEnablePssProfiling;
 
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
 
         addPreferencesFromResource(R.xml.process_stats_summary);
+        mMemoryInfoPrefCategory = (PreferenceCategory) findPreference(KEY_MEMORY_INFO_PREF_GROUP);
         mSummaryPref = (SummaryPreference) findPreference(KEY_STATUS_HEADER);
         mPerformance = findPreference(KEY_PERFORMANCE);
         mTotalMemory = findPreference(KEY_TOTAL_MEMORY);
@@ -65,11 +77,37 @@
         mFree = findPreference(KEY_FREE);
         mAppListPreference = findPreference(KEY_APP_LIST);
         mAppListPreference.setOnPreferenceClickListener(this);
+
+        // This preference is only applicable if the flag for PSS deprecation in AppProfiler is
+        // enabled. Otherwise, it can immediately be hidden.
+        mForceEnablePssProfiling =
+                (SwitchPreference) findPreference(KEY_FORCE_ENABLE_PSS_PROFILING);
+        if (Flags.removeAppProfilerPssCollection()) {
+            mForceEnablePssProfiling.setOnPreferenceClickListener(this);
+            // Make the toggle reflect the current state of the global setting.
+            mForceEnablePssProfiling.setChecked(isPssProfilingForceEnabled(getContext()));
+        } else {
+            mForceEnablePssProfiling.setVisible(false);
+        }
+    }
+
+    private void refreshPreferences() {
+        // The memory fields should be static if the flag is not enabled.
+        if (!Flags.removeAppProfilerPssCollection()) {
+            return;
+        }
+        mMemoryInfoPrefCategory.setVisible(mForceEnablePssProfiling.isChecked());
     }
 
     @Override
     public void refreshUi() {
         Context context = getContext();
+        refreshPreferences();
+
+        // If PSS collection is not enabled, none of the following work needs to be done.
+        if (Flags.removeAppProfilerPssCollection() && !isPssProfilingForceEnabled(context)) {
+            return;
+        }
 
         MemInfo memInfo = mStatsManager.getMemInfo();
 
@@ -100,7 +138,8 @@
         String durationString = getString(sDurationLabels[mDurationIndex]);
         int numApps = mStatsManager.getEntries().size();
         MessageFormat msgFormat = new MessageFormat(
-                getResources().getString(R.string.memory_usage_apps_summary), Locale.getDefault());
+                getResources().getString(R.string.memory_usage_apps_summary),
+                        Locale.getDefault());
         Map<String, Object> arguments = new HashMap<>();
         arguments.put("count", numApps);
         arguments.put("time", durationString);
@@ -131,7 +170,34 @@
                     .setSourceMetricsCategory(getMetricsCategory())
                     .launch();
             return true;
+        } else if (preference == mForceEnablePssProfiling) {
+            DisableDevSettingsDialogFragment.show(this);
         }
         return false;
     }
+
+    private boolean isPssProfilingForceEnabled(Context context) {
+        ContentResolver cr = context.getContentResolver();
+        return Settings.Global.getInt(cr, Settings.Global.FORCE_ENABLE_PSS_PROFILING, 0) == 1;
+    }
+
+    /**
+     * Called when the reboot confirmation button is clicked.
+     */
+    public void onRebootDialogConfirmed() {
+        Context context = getContext();
+        ContentResolver cr = context.getContentResolver();
+        Settings.Global.putInt(cr, Settings.Global.FORCE_ENABLE_PSS_PROFILING,
+                mForceEnablePssProfiling.isChecked() ? 1 : 0);
+        refreshPreferences();
+    }
+
+    /**
+     * Called when the reboot deny button is clicked.
+     */
+    public void onRebootDialogCanceled() {
+        // Set the toggle to reflect the state of the setting, which should not have changed.
+        mForceEnablePssProfiling.setChecked(isPssProfilingForceEnabled(getContext()));
+    }
+
 }
diff --git a/src/com/android/settings/applications/RunningServiceDetails.java b/src/com/android/settings/applications/RunningServiceDetails.java
index e95b41a..3d5bddb 100644
--- a/src/com/android/settings/applications/RunningServiceDetails.java
+++ b/src/com/android/settings/applications/RunningServiceDetails.java
@@ -226,8 +226,8 @@
 
     void addServicesHeader() {
         if (mNumServices == 0) {
-            mServicesHeader = (TextView) mInflater.inflate(R.layout.preference_category,
-                    mAllDetails, false);
+            mServicesHeader = (TextView) mInflater.inflate(
+                    androidx.preference.R.layout.preference_category, mAllDetails, false);
             mServicesHeader.setText(R.string.runningservicedetails_services_title);
             mAllDetails.addView(mServicesHeader);
         }
@@ -236,8 +236,8 @@
 
     void addProcessesHeader() {
         if (mNumProcesses == 0) {
-            mProcessesHeader = (TextView) mInflater.inflate(R.layout.preference_category,
-                    mAllDetails, false);
+            mProcessesHeader = (TextView) mInflater.inflate(
+                    androidx.preference.R.layout.preference_category, mAllDetails, false);
             mProcessesHeader.setText(R.string.runningservicedetails_processes_title);
             mAllDetails.addView(mProcessesHeader);
         }
diff --git a/src/com/android/settings/applications/RunningServices.java b/src/com/android/settings/applications/RunningServices.java
index b1689d5..c75fe06 100644
--- a/src/com/android/settings/applications/RunningServices.java
+++ b/src/com/android/settings/applications/RunningServices.java
@@ -42,7 +42,7 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        getActivity().setTitle(R.string.runningservices_settings_title);
+        getActivity().setTitle(com.android.settingslib.R.string.runningservices_settings_title);
     }
 
     @Override
diff --git a/src/com/android/settings/applications/UsageAccessDetails.java b/src/com/android/settings/applications/UsageAccessDetails.java
index 4adb6c1..6976149 100644
--- a/src/com/android/settings/applications/UsageAccessDetails.java
+++ b/src/com/android/settings/applications/UsageAccessDetails.java
@@ -38,11 +38,11 @@
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
 import androidx.preference.Preference.OnPreferenceClickListener;
-import androidx.preference.SwitchPreference;
 
 import com.android.settings.R;
 import com.android.settings.applications.AppStateUsageBridge.UsageState;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
@@ -57,7 +57,7 @@
     // TODO: Break out this functionality into its own class.
     private AppStateUsageBridge mUsageBridge;
     private AppOpsManager mAppOpsManager;
-    private SwitchPreference mSwitchPref;
+    private RestrictedSwitchPreference 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 = (RestrictedSwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
         mUsageDesc = findPreference(KEY_APP_OPS_SETTINGS_DESC);
 
         getPreferenceScreen().setTitle(R.string.usage_access);
@@ -148,7 +148,7 @@
         int logCategory = newState ? SettingsEnums.APP_SPECIAL_PERMISSION_USAGE_VIEW_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_USAGE_VIEW_DENY;
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         metricsFeatureProvider.action(
                 metricsFeatureProvider.getAttribution(getActivity()),
                 logCategory,
@@ -170,8 +170,16 @@
                 mPackageInfo.applicationInfo.uid);
 
         boolean hasAccess = mUsageState.isPermissible();
+        boolean shouldEnable = mUsageState.permissionDeclared;
+
+        if (shouldEnable && !hasAccess) {
+            mSwitchPref.checkEcmRestrictionAndSetDisabled(AppOpsManager.OPSTR_GET_USAGE_STATS,
+                    mPackageName, mPackageInfo.applicationInfo.uid);
+            shouldEnable = !mSwitchPref.isDisabledByEcm();
+        }
+
         mSwitchPref.setChecked(hasAccess);
-        mSwitchPref.setEnabled(mUsageState.permissionDeclared);
+        mSwitchPref.setEnabled(shouldEnable);
 
         ResolveInfo resolveInfo = mPm.resolveActivityAsUser(mSettingsIntent,
                 PackageManager.GET_META_DATA, mUserId);
diff --git a/src/com/android/settings/applications/appcompat/RadioWithImagePreference.java b/src/com/android/settings/applications/appcompat/RadioWithImagePreference.java
index 77cd86c..b47b679 100644
--- a/src/com/android/settings/applications/appcompat/RadioWithImagePreference.java
+++ b/src/com/android/settings/applications/appcompat/RadioWithImagePreference.java
@@ -127,7 +127,7 @@
     }
 
     private void init() {
-        setWidgetLayoutResource(com.android.settingslib.R.layout.preference_widget_radiobutton);
+        setWidgetLayoutResource(R.layout.preference_widget_radiobutton);
         setLayoutResource(R.layout.radio_with_image_preference);
         setIconSpaceReserved(false);
     }
diff --git a/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java b/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
index dfb583c..ef054df 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
@@ -21,6 +21,7 @@
 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_APP_DEFAULT;
 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;
@@ -28,6 +29,7 @@
 
 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;
@@ -44,10 +46,15 @@
 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 com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -60,29 +67,41 @@
 
     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";
     private static final String KEY_PREF_DISPLAY_SIZE = "display_size_pref";
     private static final String KEY_PREF_16_9 = "16_9_pref";
     private static final String KEY_PREF_4_3 = "4_3_pref";
     @VisibleForTesting
+    static final String KEY_PREF_FULLSCREEN = "fullscreen_pref";
+    @VisibleForTesting
     static final String KEY_PREF_DEFAULT = "app_default_pref";
     @VisibleForTesting
     static final String KEY_PREF_3_2 = "3_2_pref";
 
+    @VisibleForTesting
+    @NonNull String mSelectedKey = KEY_PREF_DEFAULT;
+
+    /** Radio button preference key mapped to {@link PackageManager.UserMinAspectRatio} value */
+    @VisibleForTesting
+    final BiMap<String, Integer> mKeyToAspectRatioMap = HashBiMap.create();
+
     private final List<RadioWithImagePreference> mAspectRatioPreferences = new ArrayList<>();
 
     @NonNull private UserAspectRatioManager mUserAspectRatioManager;
-    @NonNull private String mSelectedKey = KEY_PREF_DEFAULT;
+    private boolean mIsOverrideToFullscreenEnabled;
 
     @Override
     public void onCreate(@NonNull Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
         mUserAspectRatioManager = new UserAspectRatioManager(getContext());
+        mIsOverrideToFullscreenEnabled = getAspectRatioManager()
+                .isOverrideToFullscreenEnabled(mPackageName, mUserId);
+
         initPreferences();
         try {
-            final int userAspectRatio = mUserAspectRatioManager
+            final int userAspectRatio = getAspectRatioManager()
                     .getUserMinAspectRatioValue(mPackageName, mUserId);
             mSelectedKey = getSelectedKey(userAspectRatio);
         } catch (RemoteException e) {
@@ -104,6 +123,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);
@@ -118,8 +138,7 @@
 
     @Override
     public int getMetricsCategory() {
-        // TODO(b/292566895): add metrics for logging
-        return 0;
+        return SettingsEnums.USER_ASPECT_RATIO_APP_INFO_SETTINGS;
     }
 
     @Override
@@ -145,43 +164,23 @@
     }
 
     @PackageManager.UserMinAspectRatio
-    private int getSelectedUserMinAspectRatio(@NonNull String selectedKey) {
-        switch (selectedKey) {
-            case KEY_PREF_FULLSCREEN:
-                return USER_MIN_ASPECT_RATIO_FULLSCREEN;
-            case KEY_PREF_HALF_SCREEN:
-                return USER_MIN_ASPECT_RATIO_SPLIT_SCREEN;
-            case KEY_PREF_DISPLAY_SIZE:
-                return USER_MIN_ASPECT_RATIO_DISPLAY_SIZE;
-            case KEY_PREF_3_2:
-                return USER_MIN_ASPECT_RATIO_3_2;
-            case KEY_PREF_4_3:
-                return USER_MIN_ASPECT_RATIO_4_3;
-            case KEY_PREF_16_9:
-                return USER_MIN_ASPECT_RATIO_16_9;
-            default:
-                return USER_MIN_ASPECT_RATIO_UNSET;
-        }
+    @VisibleForTesting
+    int getSelectedUserMinAspectRatio(@NonNull String selectedKey) {
+        final int appDefault = mKeyToAspectRatioMap
+                .getOrDefault(KEY_PREF_DEFAULT, USER_MIN_ASPECT_RATIO_UNSET);
+        return mKeyToAspectRatioMap.getOrDefault(selectedKey, appDefault);
     }
 
     @NonNull
     private String getSelectedKey(@PackageManager.UserMinAspectRatio int userMinAspectRatio) {
-        switch (userMinAspectRatio) {
-            case USER_MIN_ASPECT_RATIO_FULLSCREEN:
-                return KEY_PREF_FULLSCREEN;
-            case USER_MIN_ASPECT_RATIO_SPLIT_SCREEN:
-                return KEY_PREF_HALF_SCREEN;
-            case USER_MIN_ASPECT_RATIO_DISPLAY_SIZE:
-                return KEY_PREF_DISPLAY_SIZE;
-            case USER_MIN_ASPECT_RATIO_3_2:
-                return KEY_PREF_3_2;
-            case USER_MIN_ASPECT_RATIO_4_3:
-                return KEY_PREF_4_3;
-            case USER_MIN_ASPECT_RATIO_16_9:
-                return KEY_PREF_16_9;
-            default:
-                return KEY_PREF_DEFAULT;
+        final String appDefault = mKeyToAspectRatioMap.inverse()
+                .getOrDefault(USER_MIN_ASPECT_RATIO_UNSET, KEY_PREF_DEFAULT);
+
+        if (userMinAspectRatio == USER_MIN_ASPECT_RATIO_UNSET && mIsOverrideToFullscreenEnabled) {
+            // Pre-select fullscreen option if device manufacturer has overridden app to fullscreen
+            userMinAspectRatio = USER_MIN_ASPECT_RATIO_FULLSCREEN;
         }
+        return mKeyToAspectRatioMap.inverse().getOrDefault(userMinAspectRatio, appDefault);
     }
 
     @Override
@@ -197,7 +196,7 @@
                 .setHasAppInfoLink(true)
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE)
-                .done(getActivity(), getPrefContext());
+                .done(getPrefContext());
 
         getPreferenceScreen().addPreference(pref);
     }
@@ -214,7 +213,11 @@
                 .setButton1Icon(R.drawable.ic_settings_open)
                 .setButton1OnClickListener(v -> launchApplication());
 
-        addPreference(KEY_PREF_DEFAULT, USER_MIN_ASPECT_RATIO_UNSET);
+        if (mIsOverrideToFullscreenEnabled) {
+            addPreference(KEY_PREF_DEFAULT, USER_MIN_ASPECT_RATIO_APP_DEFAULT);
+        } else {
+            addPreference(KEY_PREF_DEFAULT, USER_MIN_ASPECT_RATIO_UNSET);
+        }
         addPreference(KEY_PREF_FULLSCREEN, USER_MIN_ASPECT_RATIO_FULLSCREEN);
         addPreference(KEY_PREF_DISPLAY_SIZE, USER_MIN_ASPECT_RATIO_DISPLAY_SIZE);
         addPreference(KEY_PREF_HALF_SCREEN, USER_MIN_ASPECT_RATIO_SPLIT_SCREEN);
@@ -229,12 +232,13 @@
         if (pref == null) {
             return;
         }
-        if (!mUserAspectRatioManager.hasAspectRatioOption(aspectRatio, mPackageName)) {
+        if (!getAspectRatioManager().hasAspectRatioOption(aspectRatio, mPackageName)) {
             pref.setVisible(false);
             return;
         }
         pref.setTitle(mUserAspectRatioManager.getAccessibleEntry(aspectRatio, mPackageName));
         pref.setOnClickListener(this);
+        mKeyToAspectRatioMap.put(key, aspectRatio);
         mAspectRatioPreferences.add(pref);
     }
 
@@ -244,6 +248,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..3bf6109 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
@@ -16,20 +16,32 @@
 
 package com.android.settings.applications.appcompat;
 
+import static android.content.pm.ActivityInfo.OVERRIDE_ANY_ORIENTATION_TO_USER;
+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_APP_DEFAULT;
+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;
 import static android.os.UserHandle.getUserHandleForUid;
+import static android.os.UserHandle.getUserId;
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE;
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE;
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE;
 
 import static java.lang.Boolean.FALSE;
 
 import android.app.AppGlobals;
+import android.app.compat.CompatChanges;
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.IPackageManager;
 import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
 import android.os.RemoteException;
+import android.os.UserHandle;
 import android.provider.DeviceConfig;
 import android.util.ArrayMap;
 
@@ -38,6 +50,7 @@
 
 import com.android.settings.R;
 import com.android.settings.Utils;
+import com.android.window.flags.Flags;
 
 import com.google.common.annotations.VisibleForTesting;
 
@@ -48,10 +61,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 =
@@ -60,6 +69,8 @@
             "enable_app_compat_user_aspect_ratio_fullscreen";
     private static final boolean DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_FULLSCREEN = true;
 
+    final boolean mIsUserMinAspectRatioAppDefaultFlagEnabled = Flags.userMinAspectRatioAppDefault();
+
     private final Context mContext;
     private final IPackageManager mIPm;
     /** Apps that have launcher entry defined in manifest */
@@ -67,8 +78,13 @@
     private final Map<Integer, CharSequence> mUserAspectRatioA11yMap;
 
     public UserAspectRatioManager(@NonNull Context context) {
+        this(context, AppGlobals.getPackageManager());
+    }
+
+    @VisibleForTesting
+    UserAspectRatioManager(@NonNull Context context, @NonNull IPackageManager pm) {
         mContext = context;
-        mIPm = AppGlobals.getPackageManager();
+        mIPm = pm;
         mUserAspectRatioA11yMap = new ArrayMap<>();
         mUserAspectRatioMap = getUserMinAspectRatioMapping();
     }
@@ -91,7 +107,7 @@
             throws RemoteException {
         final int aspectRatio = mIPm.getUserMinAspectRatio(packageName, uid);
         return hasAspectRatioOption(aspectRatio, packageName)
-                ? aspectRatio : PackageManager.USER_MIN_ASPECT_RATIO_UNSET;
+                ? aspectRatio : USER_MIN_ASPECT_RATIO_UNSET;
     }
 
     /**
@@ -99,11 +115,18 @@
      */
     @NonNull
     public String getUserMinAspectRatioEntry(@PackageManager.UserMinAspectRatio int aspectRatio,
-            String packageName) {
-        if (!hasAspectRatioOption(aspectRatio, packageName))  {
-            return mUserAspectRatioMap.get(PackageManager.USER_MIN_ASPECT_RATIO_UNSET);
+            @NonNull String packageName, int userId) {
+        final String appDefault = getAspectRatioStringOrDefault(
+                mUserAspectRatioMap.get(USER_MIN_ASPECT_RATIO_UNSET),
+                USER_MIN_ASPECT_RATIO_UNSET);
+
+        if (!hasAspectRatioOption(aspectRatio, packageName)) {
+            return appDefault;
         }
-        return mUserAspectRatioMap.get(aspectRatio);
+
+        return isCurrentSelectionFromManufacturerOverride(packageName, userId, aspectRatio)
+                ? getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN, packageName, userId)
+                : mUserAspectRatioMap.getOrDefault(aspectRatio, appDefault);
     }
 
     /**
@@ -111,19 +134,22 @@
      */
     @NonNull
     public CharSequence getAccessibleEntry(@PackageManager.UserMinAspectRatio int aspectRatio,
-            String packageName) {
-        return mUserAspectRatioA11yMap.getOrDefault(aspectRatio,
-                getUserMinAspectRatioEntry(aspectRatio, packageName));
+            @NonNull String packageName) {
+        final int userId = mContext.getUserId();
+        return isCurrentSelectionFromManufacturerOverride(packageName, userId, aspectRatio)
+                ? getAccessibleEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN, packageName)
+                : mUserAspectRatioA11yMap.getOrDefault(aspectRatio,
+                        getUserMinAspectRatioEntry(aspectRatio, packageName, userId));
     }
 
     /**
      * @return corresponding aspect ratio string for package name and user
      */
     @NonNull
-    public String getUserMinAspectRatioEntry(@NonNull String packageName, int uid)
+    public String getUserMinAspectRatioEntry(@NonNull String packageName, int userId)
             throws RemoteException {
-        final int aspectRatio = getUserMinAspectRatioValue(packageName, uid);
-        return getUserMinAspectRatioEntry(aspectRatio, packageName);
+        final int aspectRatio = getUserMinAspectRatioValue(packageName, userId);
+        return getUserMinAspectRatioEntry(aspectRatio, packageName, userId);
     }
 
     /**
@@ -133,8 +159,7 @@
      */
     public boolean hasAspectRatioOption(@PackageManager.UserMinAspectRatio int option,
             String packageName) {
-        if (option == PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN
-                && !isFullscreenOptionEnabled(packageName)) {
+        if (option == USER_MIN_ASPECT_RATIO_FULLSCREEN && !isFullscreenOptionEnabled(packageName)) {
             return false;
         }
         return mUserAspectRatioMap.containsKey(option);
@@ -160,6 +185,18 @@
     }
 
     /**
+     * Whether the app has been overridden to fullscreen by device manufacturer or
+     * whether the app's aspect ratio has been overridden by the user.
+     */
+    public boolean isAppOverridden(@NonNull ApplicationInfo app,
+            @PackageManager.UserMinAspectRatio int userOverride) {
+        return (userOverride != USER_MIN_ASPECT_RATIO_UNSET
+                    && userOverride != USER_MIN_ASPECT_RATIO_APP_DEFAULT)
+                || isCurrentSelectionFromManufacturerOverride(app.packageName, getUserId(app.uid),
+                    userOverride);
+    }
+
+    /**
      * Whether fullscreen option in per-app user aspect ratio settings is enabled
      */
     @VisibleForTesting
@@ -173,12 +210,35 @@
                     DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_FULLSCREEN);
     }
 
-    LauncherApps getLauncherApps() {
-        return mContext.getSystemService(LauncherApps.class);
+    /**
+     * Whether the device manufacturer has overridden app's orientation to
+     * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_USER} to force app to fullscreen
+     * and app has not opted-out from the treatment
+     */
+    boolean isOverrideToFullscreenEnabled(String pkgName, int userId) {
+        Boolean appAllowsOrientationOverride = readComponentProperty(mContext.getPackageManager(),
+                pkgName, PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE);
+        return mIsUserMinAspectRatioAppDefaultFlagEnabled
+                && hasAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN, pkgName)
+                && !FALSE.equals(appAllowsOrientationOverride)
+                && isFullscreenCompatChangeEnabled(pkgName, userId);
+    }
+
+    @VisibleForTesting
+    boolean isFullscreenCompatChangeEnabled(String pkgName, int userId) {
+        return CompatChanges.isChangeEnabled(
+                OVERRIDE_ANY_ORIENTATION_TO_USER, pkgName, UserHandle.of(userId));
+    }
+
+    private boolean isCurrentSelectionFromManufacturerOverride(String pkgName, int userId,
+            @PackageManager.UserMinAspectRatio int aspectRatio) {
+        return aspectRatio == USER_MIN_ASPECT_RATIO_UNSET
+                && isOverrideToFullscreenEnabled(pkgName, userId);
     }
 
     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();
     }
 
@@ -205,13 +265,13 @@
             boolean containsColon = aspectRatioString.contains(":");
             switch (aspectRatioVal) {
                 // Only map known values of UserMinAspectRatio and ignore unknown entries
-                case PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN:
-                case PackageManager.USER_MIN_ASPECT_RATIO_UNSET:
-                case PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN:
-                case PackageManager.USER_MIN_ASPECT_RATIO_DISPLAY_SIZE:
-                case PackageManager.USER_MIN_ASPECT_RATIO_4_3:
-                case PackageManager.USER_MIN_ASPECT_RATIO_16_9:
-                case PackageManager.USER_MIN_ASPECT_RATIO_3_2:
+                case USER_MIN_ASPECT_RATIO_FULLSCREEN:
+                case USER_MIN_ASPECT_RATIO_UNSET:
+                case USER_MIN_ASPECT_RATIO_SPLIT_SCREEN:
+                case USER_MIN_ASPECT_RATIO_DISPLAY_SIZE:
+                case USER_MIN_ASPECT_RATIO_4_3:
+                case USER_MIN_ASPECT_RATIO_16_9:
+                case USER_MIN_ASPECT_RATIO_3_2:
                     if (containsColon) {
                         String[] aspectRatioDigits = aspectRatioString.split(":");
                         String accessibleString = getAccessibleOption(aspectRatioDigits[0],
@@ -223,16 +283,24 @@
                     userMinAspectRatioMap.put(aspectRatioVal, aspectRatioString);
             }
         }
-        if (!userMinAspectRatioMap.containsKey(PackageManager.USER_MIN_ASPECT_RATIO_UNSET)) {
+        if (!userMinAspectRatioMap.containsKey(USER_MIN_ASPECT_RATIO_UNSET)) {
             throw new RuntimeException("config_userAspectRatioOverrideValues options must have"
                     + " USER_MIN_ASPECT_RATIO_UNSET value");
         }
+        if (mIsUserMinAspectRatioAppDefaultFlagEnabled) {
+            userMinAspectRatioMap.put(USER_MIN_ASPECT_RATIO_APP_DEFAULT,
+                    userMinAspectRatioMap.get(USER_MIN_ASPECT_RATIO_UNSET));
+            if (mUserAspectRatioA11yMap.containsKey(USER_MIN_ASPECT_RATIO_UNSET)) {
+                mUserAspectRatioA11yMap.put(USER_MIN_ASPECT_RATIO_APP_DEFAULT,
+                        mUserAspectRatioA11yMap.get(USER_MIN_ASPECT_RATIO_UNSET));
+            }
+        }
         return userMinAspectRatioMap;
     }
 
     @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);
     }
 
@@ -244,17 +312,17 @@
         }
         // Options are customized per device and if strings are set to @null, use default
         switch (aspectRatioVal) {
-            case PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN:
+            case USER_MIN_ASPECT_RATIO_FULLSCREEN:
                 return mContext.getString(R.string.user_aspect_ratio_fullscreen);
-            case PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN:
+            case USER_MIN_ASPECT_RATIO_SPLIT_SCREEN:
                 return mContext.getString(R.string.user_aspect_ratio_half_screen);
-            case PackageManager.USER_MIN_ASPECT_RATIO_DISPLAY_SIZE:
+            case USER_MIN_ASPECT_RATIO_DISPLAY_SIZE:
                 return mContext.getString(R.string.user_aspect_ratio_device_size);
-            case PackageManager.USER_MIN_ASPECT_RATIO_4_3:
+            case USER_MIN_ASPECT_RATIO_4_3:
                 return mContext.getString(R.string.user_aspect_ratio_4_3);
-            case PackageManager.USER_MIN_ASPECT_RATIO_16_9:
+            case USER_MIN_ASPECT_RATIO_16_9:
                 return mContext.getString(R.string.user_aspect_ratio_16_9);
-            case PackageManager.USER_MIN_ASPECT_RATIO_3_2:
+            case USER_MIN_ASPECT_RATIO_3_2:
                 return mContext.getString(R.string.user_aspect_ratio_3_2);
             default:
                 return mContext.getString(R.string.user_aspect_ratio_app_default);
diff --git a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
index 8decbd9..35fc1cb 100644
--- a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
@@ -124,8 +124,9 @@
                     mParent.getMetricsCategory(),
                     mBatteryDiffEntry,
                     Utils.formatPercentage(
-                            mBatteryDiffEntry.getPercentage(), /* round */ true),
-                    /*slotInformation=*/ null, /*showTimeInformation=*/ false);
+                            mBatteryDiffEntry.getPercentage(), /*round=*/ true),
+                    /*slotInformation=*/ null, /*showTimeInformation=*/ false,
+                    /*anomalyHintPrefKey=*/ null, /*anomalyHintText=*/ null);
             return true;
         }
 
diff --git a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
index ff191ab..b80de32 100644
--- a/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java
@@ -32,6 +32,7 @@
 import android.content.om.OverlayInfo;
 import android.content.om.OverlayManager;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.Flags;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -138,9 +139,9 @@
                     "Fragment should implement AppButtonsDialogListener");
         }
 
-        final FeatureFactory factory = FeatureFactory.getFactory(activity);
+        final FeatureFactory factory = FeatureFactory.getFeatureFactory();
         mMetricsFeatureProvider = factory.getMetricsFeatureProvider();
-        mApplicationFeatureProvider = factory.getApplicationFeatureProvider(activity);
+        mApplicationFeatureProvider = factory.getApplicationFeatureProvider();
         mState = state;
         mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
         mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
@@ -292,7 +293,8 @@
         switch (id) {
             case ButtonActionDialogFragment.DialogType.DISABLE:
                 mMetricsFeatureProvider.action(mActivity,
-                        SettingsEnums.ACTION_SETTINGS_DISABLE_APP);
+                        SettingsEnums.ACTION_SETTINGS_DISABLE_APP,
+                        getPackageNameForMetric());
                 AsyncTask.execute(new DisableChangerRunnable(mPm, mAppEntry.info.packageName,
                         PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER));
                 break;
@@ -433,10 +435,17 @@
                     // No preferred default, so permit uninstall only when
                     // there is more than one candidate
                     enabled = (mHomePackages.size() > 1);
-                } else {
-                    // There is an explicit default home app -- forbid uninstall of
-                    // that one, but permit it for installed-but-inactive ones.
-                    enabled = !mPackageInfo.packageName.equals(currentDefaultHome.getPackageName());
+                } else if (mPackageInfo.packageName.equals(currentDefaultHome.getPackageName())) {
+                    if (Flags.improveHomeAppBehavior()) {
+                        // Allow uninstallation of current home app if it is a non-system app
+                        // and/or there are other candidate apps available.
+                        if (mPackageInfo.applicationInfo.isSystemApp()
+                                || mHomePackages.size() == 1) {
+                            enabled = false;
+                        }
+                    } else {
+                        enabled = false;
+                    }
                 }
             }
         }
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/AppHeaderViewPreferenceController.java b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
index 285493a..5542087 100644
--- a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
@@ -66,7 +66,6 @@
         final Activity activity = mParent.getActivity();
         mEntityHeaderController = EntityHeaderController
                 .newInstance(activity, mParent, mHeader.findViewById(R.id.entity_header))
-                .setRecyclerView(mParent.getListView(), mLifecycle)
                 .setPackageName(mPackageName)
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE)
@@ -86,6 +85,6 @@
                 .setLabel(appEntry)
                 .setIcon(appEntry)
                 .setIsInstantApp(isInstantApp)
-                .done(activity, false /* rebindActions */);
+                .done(false /* rebindActions */);
     }
 }
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index e771ff4..82d55f3 100644
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -731,10 +731,12 @@
             try {
                 mPackageInfo = activity.getPackageManager().getPackageInfo(
                         mAppEntry.info.packageName,
-                        PackageManager.MATCH_DISABLED_COMPONENTS |
-                                PackageManager.MATCH_ANY_USER |
-                                PackageManager.GET_SIGNATURES |
-                                PackageManager.GET_PERMISSIONS);
+                        PackageManager.PackageInfoFlags.of(
+                                PackageManager.MATCH_DISABLED_COMPONENTS
+                                        | PackageManager.MATCH_ANY_USER
+                                        | PackageManager.GET_SIGNATURES
+                                        | PackageManager.GET_PERMISSIONS
+                                        | PackageManager.MATCH_ARCHIVED_PACKAGES));
             } catch (NameNotFoundException e) {
                 Log.e(TAG, "Exception when retrieving package:" + mAppEntry.info.packageName, e);
             }
diff --git a/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java b/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java
index 5e99e8b..1216ae8 100644
--- a/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceController.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.os.UserManager;
 
 import androidx.preference.Preference;
 
@@ -39,10 +38,6 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (UserManager.get(mContext).isManagedProfile()) {
-            return DISABLED_FOR_USER;
-        }
-
         if (AppUtils.isMainlineModule(mContext.getPackageManager(), mPackageName)) {
             return DISABLED_FOR_USER;
         }
diff --git a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
index 6144a73..1e7ca1e 100644
--- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
+++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
@@ -137,7 +137,6 @@
         final Activity activity = getActivity();
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* header */)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setIcon(Utils.getBadgedIcon(getContext(), mApplicationInfo))
                 .setLabel(mApplicationInfo.loadLabel(getContext().getPackageManager()))
                 .setIsInstantApp(AppUtils.isInstant(mApplicationInfo))
@@ -146,7 +145,7 @@
                 .setHasAppInfoLink(true)
                 .setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
                 .setOrder(10)
-                .done(activity, getPrefContext());
+                .done(getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
diff --git a/src/com/android/settings/applications/appinfo/AppSettingPreferenceController.java b/src/com/android/settings/applications/appinfo/AppSettingPreferenceController.java
index cacbffb..52ed311 100644
--- a/src/com/android/settings/applications/appinfo/AppSettingPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppSettingPreferenceController.java
@@ -59,7 +59,7 @@
         if (intent == null) {
             return false;
         }
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .action(SettingsEnums.PAGE_UNKNOWN,
                         SettingsEnums.ACTION_OPEN_APP_SETTING,
                         mParent.getMetricsCategory(),
diff --git a/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java b/src/com/android/settings/applications/appinfo/DrawOverlayDetails.java
index 5f7e56f..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
@@ -121,7 +123,7 @@
         int logCategory = newState ? SettingsEnums.APP_SPECIAL_PERMISSION_APPDRAW_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_APPDRAW_DENY;
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         metricsFeatureProvider.action(
                 metricsFeatureProvider.getAttribution(getActivity()),
                 logCategory,
diff --git a/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java b/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java
index b723274..9a41f25 100644
--- a/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java
+++ b/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java
@@ -88,9 +88,9 @@
                         UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
                         userHandle);
         if ((userRestrictionSource & UserManager.RESTRICTION_SOURCE_SYSTEM) != 0) {
-            return context.getString(R.string.disabled_by_admin);
+            return context.getString(com.android.settingslib.widget.restricted.R.string.disabled_by_admin);
         } else if (userRestrictionSource != 0) {
-            return context.getString(R.string.disabled);
+            return context.getString(com.android.settingslib.R.string.disabled);
         }
         final InstallAppsState appsState = new AppStateInstallAppsBridge(context, null, null)
                 .createInstallAppsStateFor(entry.info.packageName, entry.info.uid);
@@ -113,7 +113,7 @@
         if (mUserManager.hasBaseUserRestriction(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
                 UserHandle.of(UserHandle.myUserId()))) {
             mSwitchPref.setChecked(false);
-            mSwitchPref.setSummary(R.string.disabled);
+            mSwitchPref.setSummary(com.android.settingslib.R.string.disabled);
             mSwitchPref.setEnabled(false);
             return true;
         }
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/InstantAppButtonDialogFragment.java b/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragment.java
index 5a6d3df..f514ed6 100644
--- a/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragment.java
+++ b/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragment.java
@@ -63,7 +63,7 @@
     public void onClick(DialogInterface dialog, int which) {
         final Context context = getContext();
         final PackageManager packageManager = context.getPackageManager();
-        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
             .action(context, SettingsEnums.ACTION_SETTINGS_CLEAR_INSTANT_APP, mPackageName);
         packageManager.deletePackageAsUser(mPackageName, null, 0, UserHandle.myUserId());
     }
diff --git a/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java b/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java
index 68f893c..0f2b5aa 100644
--- a/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/LongBackgroundTasksDetailsPreferenceController.java
@@ -40,8 +40,8 @@
 
     public LongBackgroundTasksDetailsPreferenceController(Context context, String key) {
         super(context, key);
-        mAppFeatureProvider = FeatureFactory.getFactory(context)
-                .getApplicationFeatureProvider(context);
+        mAppFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getApplicationFeatureProvider();
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java b/src/com/android/settings/applications/appinfo/ManageExternalStorageDetails.java
index 6c840d5..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;
 
@@ -67,7 +67,7 @@
         mSwitchPref.setOnPreferenceChangeListener(this);
 
         mMetricsFeatureProvider =
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
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/OWNERS b/src/com/android/settings/applications/appinfo/OWNERS
index cd6abb8..87cecea 100644
--- a/src/com/android/settings/applications/appinfo/OWNERS
+++ b/src/com/android/settings/applications/appinfo/OWNERS
@@ -2,4 +2,4 @@
 allenwtsu@google.com
 danielwbhuang@google.com
 goldmanj@google.com
-tomhsu@google.com
+zoeychen@google.com
diff --git a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java
index 3682af2..b0ef00c 100644
--- a/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/TimeSpentInAppPreferenceController.java
@@ -53,8 +53,8 @@
     public TimeSpentInAppPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mPackageManager = context.getPackageManager();
-        mAppFeatureProvider = FeatureFactory.getFactory(context)
-                .getApplicationFeatureProvider(context);
+        mAppFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getApplicationFeatureProvider();
     }
 
     public void setPackageName(String packageName) {
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 d17f843..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
@@ -89,7 +89,7 @@
     void logSpecialPermissionChange(boolean newState, String packageName) {
         int logCategory = newState ? SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_DENY;
-        FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider().action(getContext(),
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(getContext(),
                 logCategory, packageName);
     }
 
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/appops/BackgroundCheckSummary.java b/src/com/android/settings/applications/appops/BackgroundCheckSummary.java
index 58f962a..4ed9002 100644
--- a/src/com/android/settings/applications/appops/BackgroundCheckSummary.java
+++ b/src/com/android/settings/applications/appops/BackgroundCheckSummary.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.applications.appops;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.os.Bundle;
 import android.preference.PreferenceFrameLayout;
@@ -24,6 +23,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.Nullable;
 import androidx.fragment.app.FragmentTransaction;
 
 import com.android.settings.R;
diff --git a/src/com/android/settings/applications/assist/ManageAssist.java b/src/com/android/settings/applications/assist/ManageAssist.java
index ad6c71e..28c7d96 100644
--- a/src/com/android/settings/applications/assist/ManageAssist.java
+++ b/src/com/android/settings/applications/assist/ManageAssist.java
@@ -21,7 +21,6 @@
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.gestures.AssistGestureSettingsPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -59,12 +58,6 @@
         return SettingsEnums.APPLICATIONS_MANAGE_ASSIST;
     }
 
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        use(AssistGestureSettingsPreferenceController.class).setAssistOnly(true);
-    }
-
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
diff --git a/src/com/android/settings/applications/assist/OWNERS b/src/com/android/settings/applications/assist/OWNERS
index 22e486d..12a7e20 100644
--- a/src/com/android/settings/applications/assist/OWNERS
+++ b/src/com/android/settings/applications/assist/OWNERS
@@ -1,9 +1,5 @@
 # Default reviewers for this and subdirectories.
-adamhe@google.com
-augale@google.com
-joannechung@google.com
-lpeter@google.com
-svetoslavganov@google.com
-tymtsai@google.com
+
+include platform/frameworks/base:/core/java/android/service/voice/OWNERS
 
 # Emergency approvers in case the above are not available
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/CombinedProviderInfo.java b/src/com/android/settings/applications/credentials/CombinedProviderInfo.java
index 074fb7b..f8a3b0f 100644
--- a/src/com/android/settings/applications/credentials/CombinedProviderInfo.java
+++ b/src/com/android/settings/applications/credentials/CombinedProviderInfo.java
@@ -16,17 +16,22 @@
 
 package com.android.settings.applications.credentials;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ServiceInfo;
 import android.credentials.CredentialProviderInfo;
 import android.graphics.drawable.Drawable;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.service.autofill.AutofillServiceInfo;
 import android.text.TextUtils;
 import android.util.IconDrawableFactory;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -41,6 +46,11 @@
  * logic for each row in settings.
  */
 public final class CombinedProviderInfo {
+    private static final String TAG = "CombinedProviderInfo";
+    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 List<CredentialProviderInfo> mCredentialProviderInfos;
     private final @Nullable AutofillServiceInfo mAutofillServiceInfo;
     private final boolean mIsDefaultAutofillProvider;
@@ -82,6 +92,37 @@
         return mAutofillServiceInfo.getServiceInfo().applicationInfo;
     }
 
+    /** Returns the package name. */
+    public @Nullable String getPackageName() {
+        ApplicationInfo ai = getApplicationInfo();
+        if (ai != null) {
+            return ai.packageName;
+        }
+
+        return null;
+    }
+
+    /** Returns the settings activity. */
+    public @Nullable String getSettingsActivity() {
+        // This logic is not used by the top entry but rather what activity should
+        // be launched from the settings screen.
+        for (CredentialProviderInfo cpi : mCredentialProviderInfos) {
+            final CharSequence settingsActivity = cpi.getSettingsActivity();
+            if (!TextUtils.isEmpty(settingsActivity)) {
+                return String.valueOf(settingsActivity);
+            }
+        }
+
+        if (mAutofillServiceInfo != null) {
+            final String settingsActivity = mAutofillServiceInfo.getSettingsActivity();
+            if (!TextUtils.isEmpty(settingsActivity)) {
+                return settingsActivity;
+            }
+        }
+
+        return null;
+    }
+
     /** Returns the app icon. */
     @Nullable
     public Drawable getAppIcon(@NonNull Context context, int userId) {
@@ -284,4 +325,44 @@
 
         return cmpi;
     }
+
+    public static @Nullable Intent createSettingsActivityIntent(
+            @NonNull Context context,
+            @Nullable CharSequence packageName,
+            @Nullable CharSequence settingsActivity,
+            int currentUserId) {
+        if (TextUtils.isEmpty(packageName) || TextUtils.isEmpty(settingsActivity)) {
+            return null;
+        }
+
+        ComponentName cn =
+                new ComponentName(String.valueOf(packageName), String.valueOf(settingsActivity));
+        if (cn == null) {
+            Log.e(
+                    TAG,
+                    "Failed to deserialize settingsActivity attribute, we got: "
+                            + String.valueOf(packageName)
+                            + " and "
+                            + String.valueOf(settingsActivity));
+            return null;
+        }
+
+        Intent intent = new Intent(SETTINGS_ACTIVITY_INTENT_ACTION);
+        intent.addCategory(SETTINGS_ACTIVITY_INTENT_CATEGORY);
+        intent.setComponent(cn);
+
+        int contextUserId = context.getUser().getIdentifier();
+        if (currentUserId != contextUserId && UserManager.isHeadlessSystemUserMode()) {
+            Log.w(
+                    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);
+        }
+
+        return intent;
+    }
 }
diff --git a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
index 6747b36..4fc0e16 100644
--- a/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/CredentialManagerPreferenceController.java
@@ -18,10 +18,9 @@
 
 import static androidx.lifecycle.Lifecycle.Event.ON_CREATE;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.Dialog;
+import android.content.ActivityNotFoundException;
 import android.content.ComponentName;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -34,6 +33,7 @@
 import android.credentials.CredentialManager;
 import android.credentials.CredentialProviderInfo;
 import android.credentials.SetEnabledProvidersException;
+import android.credentials.flags.Flags;
 import android.database.ContentObserver;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
@@ -45,9 +45,13 @@
 import android.provider.Settings;
 import android.service.autofill.AutofillServiceInfo;
 import android.text.TextUtils;
-import android.util.IconDrawableFactory;
 import android.util.Log;
+import android.util.Pair;
+import android.view.View;
+import android.widget.CompoundButton;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.core.content.ContextCompat;
 import androidx.fragment.app.DialogFragment;
@@ -58,7 +62,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
+import androidx.preference.PreferenceViewHolder;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.content.PackageMonitor;
@@ -67,12 +71,14 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.widget.TwoTargetPreference;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.concurrent.Executor;
 
@@ -95,28 +101,28 @@
     private static final int MAX_SELECTABLE_PROVIDERS = 5;
 
     private final PackageManager mPm;
-    private final IconDrawableFactory mIconFactory;
     private final List<CredentialProviderInfo> mServices;
     private final Set<String> mEnabledPackageNames;
     private final @Nullable CredentialManager mCredentialManager;
     private final Executor mExecutor;
-    private final Map<String, SwitchPreference> mPrefs = new HashMap<>(); // key is package name
+    private final Map<String, CombiPreference> mPrefs = new HashMap<>(); // key is package name
     private final List<ServiceInfo> mPendingServiceInfos = new ArrayList<>();
     private final Handler mHandler = new Handler();
     private final SettingContentObserver mSettingsContentObserver;
+    private final ImageUtils.IconResizer mIconResizer;
 
     private @Nullable FragmentManager mFragmentManager = null;
     private @Nullable Delegate mDelegate = null;
     private @Nullable String mFlagOverrideForTest = null;
     private @Nullable PreferenceScreen mPreferenceScreen = null;
 
-    private boolean mVisibility = false;
+    private Optional<Boolean> mSimulateHiddenForTests = Optional.empty();
     private boolean mIsWorkProfile = false;
+    private boolean mSimulateConnectedForTests = false;
 
     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);
@@ -126,6 +132,13 @@
                 new SettingContentObserver(mHandler, context.getContentResolver());
         mSettingsContentObserver.register();
         mSettingsPackageMonitor.register(context, context.getMainLooper(), false);
+        mIconResizer = getResizer(context);
+    }
+
+    private static ImageUtils.IconResizer getResizer(Context context) {
+        final Resources resources = context.getResources();
+        int size = (int) resources.getDimension(android.R.dimen.app_icon_size);
+        return new ImageUtils.IconResizer(size, size, resources.getDisplayMetrics());
     }
 
     private @Nullable CredentialManager getCredentialManager(Context context, boolean isTest) {
@@ -144,11 +157,13 @@
 
     @Override
     public int getAvailabilityStatus() {
-        if (mCredentialManager == null) {
+        if (!isConnected()) {
             return UNSUPPORTED_ON_DEVICE;
         }
 
-        if (!mVisibility) {
+        // If there is no top provider or any providers in the list then
+        // we should hide this pref.
+        if (isHiddenDueToNoProviderSet()) {
             return CONDITIONALLY_UNAVAILABLE;
         }
 
@@ -156,12 +171,26 @@
             return CONDITIONALLY_UNAVAILABLE;
         }
 
+        // If we are in work profile mode and there is no user then we
+        // should hide for now. We use CONDITIONALLY_UNAVAILABLE
+        // because it is possible for the user to be set later.
+        if (mIsWorkProfile) {
+            UserHandle workProfile = getWorkProfileUserHandle();
+            if (workProfile == null) {
+                return CONDITIONALLY_UNAVAILABLE;
+            }
+        }
+
         return AVAILABLE;
     }
 
     @VisibleForTesting
     public boolean isConnected() {
-        return mCredentialManager != null;
+        return mCredentialManager != null || mSimulateConnectedForTests;
+    }
+
+    public void setSimulateConnectedForTests(boolean simulateConnectedForTests) {
+        mSimulateConnectedForTests = simulateConnectedForTests;
     }
 
     /**
@@ -183,12 +212,17 @@
         fragment.getSettingsLifecycle().addObserver(this);
         mFragmentManager = fragmentManager;
         mIsWorkProfile = isWorkProfile;
+
         setDelegate(delegate);
         verifyReceivedIntent(launchIntent);
 
         // Recreate the content observers because the user might have changed.
         mSettingsContentObserver.unregister();
         mSettingsContentObserver.register();
+
+        // When we set the mIsWorkProfile above we should try and force a refresh
+        // so we can get the correct data.
+        delegate.forceDelegateRefresh();
     }
 
     /**
@@ -275,7 +309,7 @@
 
         NewProviderConfirmationDialogFragment fragment =
                 newNewProviderConfirmationDialogFragment(
-                        serviceInfo.packageName, appName, /* setActivityResult= */ true);
+                        serviceInfo.packageName, appName, /* shouldSetActivityResult= */ true);
         if (fragment == null || mFragmentManager == null) {
             return;
         }
@@ -299,8 +333,44 @@
                 null);
     }
 
+    private Set<ComponentName> buildComponentNameSet(
+            List<CredentialProviderInfo> providers, boolean removeNonPrimary) {
+        Set<ComponentName> output = new HashSet<>();
+
+        for (CredentialProviderInfo cpi : providers) {
+            if (removeNonPrimary && !cpi.isPrimary()) {
+                continue;
+            }
+
+            output.add(cpi.getComponentName());
+        }
+
+        return output;
+    }
+
     private void updateFromExternal() {
-        update();
+        if (mCredentialManager == null) {
+            return;
+        }
+
+        // Get the list of new providers and components.
+        List<CredentialProviderInfo> newProviders =
+                mCredentialManager.getCredentialProviderServices(
+                        getUser(), CredentialManager.PROVIDER_FILTER_USER_PROVIDERS_ONLY);
+        Set<ComponentName> newComponents = buildComponentNameSet(newProviders, false);
+        Set<ComponentName> newPrimaryComponents = buildComponentNameSet(newProviders, true);
+
+        // Get the list of old components
+        Set<ComponentName> oldComponents = buildComponentNameSet(mServices, false);
+        Set<ComponentName> oldPrimaryComponents = buildComponentNameSet(mServices, true);
+
+        // If the sets are equal then don't update the UI.
+        if (oldComponents.equals(newComponents)
+                && oldPrimaryComponents.equals(newPrimaryComponents)) {
+            return;
+        }
+
+        setAvailableServices(newProviders, null);
 
         if (mPreferenceScreen != null) {
             displayPreference(mPreferenceScreen);
@@ -311,18 +381,33 @@
         }
     }
 
-    private void setVisibility(boolean newVisibility) {
-        if (newVisibility == mVisibility) {
-            return;
-        }
-
-        mVisibility = newVisibility;
+    @VisibleForTesting
+    public void forceDelegateRefresh() {
         if (mDelegate != null) {
             mDelegate.forceDelegateRefresh();
         }
     }
 
     @VisibleForTesting
+    public void setSimulateHiddenForTests(Optional<Boolean> simulateHiddenForTests) {
+        mSimulateHiddenForTests = simulateHiddenForTests;
+    }
+
+    @VisibleForTesting
+    public boolean isHiddenDueToNoProviderSet() {
+        return isHiddenDueToNoProviderSet(getProviders());
+    }
+
+    private boolean isHiddenDueToNoProviderSet(
+            Pair<List<CombinedProviderInfo>, CombinedProviderInfo> providerPair) {
+        if (mSimulateHiddenForTests.isPresent()) {
+            return mSimulateHiddenForTests.get();
+        }
+
+        return (providerPair.first.size() == 0 || providerPair.second == null);
+    }
+
+    @VisibleForTesting
     void setAvailableServices(
             List<CredentialProviderInfo> availableServices, String flagOverrideForTest) {
         mFlagOverrideForTest = flagOverrideForTest;
@@ -387,10 +472,11 @@
         return preference;
     }
 
-    /** Aggregates the list of services and builds a list of UI prefs to show. */
-    @VisibleForTesting
-    public Map<String, SwitchPreference> buildPreferenceList(
-            Context context, PreferenceGroup group) {
+    /**
+     * Returns a pair that contains a list of the providers in the first position and the top
+     * provider in the second position.
+     */
+    private Pair<List<CombinedProviderInfo>, CombinedProviderInfo> getProviders() {
         // Get the selected autofill provider. If it is the placeholder then replace it with an
         // empty string.
         String selectedAutofillProvider =
@@ -403,24 +489,35 @@
         // Get the list of combined providers.
         List<CombinedProviderInfo> providers =
                 CombinedProviderInfo.buildMergedList(
-                        AutofillServiceInfo.getAvailableServices(context, getUser()),
+                        AutofillServiceInfo.getAvailableServices(mContext, getUser()),
                         mServices,
                         selectedAutofillProvider);
+        return new Pair<>(providers, CombinedProviderInfo.getTopProvider(providers));
+    }
 
-        // Get the provider that is displayed at the top. If there is none then hide
-        // everything.
-        CombinedProviderInfo topProvider = CombinedProviderInfo.getTopProvider(providers);
-        if (topProvider == null) {
-            setVisibility(false);
+    /** Aggregates the list of services and builds a list of UI prefs to show. */
+    @VisibleForTesting
+    public @NonNull Map<String, CombiPreference> buildPreferenceList(
+            @NonNull Context context, @NonNull PreferenceGroup group) {
+        // Get the providers and extract the values.
+        Pair<List<CombinedProviderInfo>, CombinedProviderInfo> providerPair = getProviders();
+        CombinedProviderInfo topProvider = providerPair.second;
+        List<CombinedProviderInfo> providers = providerPair.first;
+
+        // If the provider is set to "none" or there are no providers then we should not
+        // return any providers.
+        if (isHiddenDueToNoProviderSet(providerPair)) {
+            forceDelegateRefresh();
             return new HashMap<>();
         }
 
-        Map<String, SwitchPreference> output = new HashMap<>();
+        Map<String, CombiPreference> output = new HashMap<>();
         for (CombinedProviderInfo combinedInfo : providers) {
             final String packageName = combinedInfo.getApplicationInfo().packageName;
 
             // If this provider is displayed at the top then we should not show it.
             if (topProvider != null
+                    && topProvider.getApplicationInfo() != null
                     && topProvider.getApplicationInfo().packageName.equals(packageName)) {
                 continue;
             }
@@ -434,29 +531,35 @@
             CharSequence title = combinedInfo.getAppName(context);
 
             // Build the pref and add it to the output & group.
-            SwitchPreference pref =
+            CombiPreference pref =
                     addProviderPreference(
-                            context, title, icon, packageName, combinedInfo.getSettingsSubtitle());
+                            context,
+                            title == null ? "" : title,
+                            icon,
+                            packageName,
+                            combinedInfo.getSettingsSubtitle(),
+                            combinedInfo.getSettingsActivity());
             output.put(packageName, pref);
             group.addPreference(pref);
         }
 
         // Set the visibility if we have services.
-        setVisibility(!output.isEmpty());
+        forceDelegateRefresh();
 
         return output;
     }
 
     /** Creates a preference object based on the provider info. */
     @VisibleForTesting
-    public SwitchPreference createPreference(Context context, CredentialProviderInfo service) {
+    public CombiPreference createPreference(Context context, CredentialProviderInfo service) {
         CharSequence label = service.getLabel(context);
         return addProviderPreference(
                 context,
                 label == null ? "" : label,
                 service.getServiceIcon(mContext),
                 service.getServiceInfo().packageName,
-                service.getSettingsSubtitle());
+                service.getSettingsSubtitle(),
+                service.getSettingsActivity());
     }
 
     /**
@@ -510,54 +613,81 @@
         return enabledServices;
     }
 
-    private SwitchPreference addProviderPreference(
+    @VisibleForTesting
+    public @NonNull Drawable processIcon(@Nullable Drawable icon) {
+        // If we didn't get an icon then we should use the default app icon.
+        if (icon == null) {
+            icon = mPm.getDefaultActivityIcon();
+        }
+
+        Drawable providerIcon = Utils.getSafeIcon(icon);
+        return mIconResizer.createIconThumbnail(providerIcon);
+    }
+
+    private CombiPreference addProviderPreference(
             @NonNull Context prefContext,
             @NonNull CharSequence title,
             @Nullable Drawable icon,
             @NonNull String packageName,
-            @Nullable CharSequence subtitle) {
-        final SwitchPreference pref = new SwitchPreference(prefContext);
+            @Nullable CharSequence subtitle,
+            @Nullable CharSequence settingsActivity) {
+        final CombiPreference pref =
+                new CombiPreference(prefContext, mEnabledPackageNames.contains(packageName));
         pref.setTitle(title);
-        pref.setChecked(mEnabledPackageNames.contains(packageName));
+        pref.setLayoutResource(R.layout.preference_icon_credman);
 
-        if (icon != null) {
-            pref.setIcon(Utils.getSafeIcon(icon));
+        if (Flags.newSettingsUi()) {
+            pref.setIcon(processIcon(icon));
+        } else if (icon != null) {
+            pref.setIcon(icon);
         }
 
         if (subtitle != null) {
             pref.setSummary(subtitle);
         }
 
-        pref.setOnPreferenceClickListener(
-                p -> {
-                    boolean isChecked = pref.isChecked();
+        pref.setPreferenceListener(
+                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 (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) {
+                                    return;
+                                }
 
-                            if (fragment == null || mFragmentManager == null) {
-                                return true;
+                                fragment.show(mFragmentManager, ErrorDialogFragment.TAG);
+                                return;
                             }
 
-                            fragment.show(mFragmentManager, ErrorDialogFragment.TAG);
-                            return true;
-                        }
+                            togglePackageNameEnabled(packageName);
 
-                        togglePackageNameEnabled(packageName);
-
-                        // Enable all prefs.
-                        if (mPrefs.containsKey(packageName)) {
-                            mPrefs.get(packageName).setChecked(true);
+                            // Enable all prefs.
+                            if (mPrefs.containsKey(packageName)) {
+                                mPrefs.get(packageName).setChecked(true);
+                            }
+                        } else {
+                            togglePackageNameDisabled(packageName);
                         }
-                        return true;
-                    } else {
-                        togglePackageNameDisabled(packageName);
                     }
 
-                    return true;
+                    @Override
+                    public void onLeftSideClicked() {
+                        Intent settingsIntent =
+                                CombinedProviderInfo.createSettingsActivityIntent(
+                                        mContext, packageName, settingsActivity, getUser());
+                        if (settingsIntent != null) {
+                            try {
+                                mContext.startActivity(settingsIntent);
+                            } catch (ActivityNotFoundException e) {
+                                Log.e(TAG, "Failed to open settings activity", e);
+                            }
+                        }
+                    }
                 });
 
         return pref;
@@ -605,13 +735,13 @@
             newNewProviderConfirmationDialogFragment(
                     @NonNull String packageName,
                     @NonNull CharSequence appName,
-                    boolean setActivityResult) {
+                    boolean shouldSetActivityResult) {
         DialogHost host =
                 new DialogHost() {
                     @Override
                     public void onDialogClick(int whichButton) {
                         completeEnableProviderDialogBox(
-                                whichButton, packageName, setActivityResult);
+                                whichButton, packageName, shouldSetActivityResult);
                     }
 
                     @Override
@@ -622,8 +752,8 @@
     }
 
     @VisibleForTesting
-    void completeEnableProviderDialogBox(
-            int whichButton, String packageName, boolean setActivityResult) {
+    int completeEnableProviderDialogBox(
+            int whichButton, String packageName, boolean shouldSetActivityResult) {
         int activityResult = -1;
         if (whichButton == DialogInterface.BUTTON_POSITIVE) {
             if (togglePackageNameEnabled(packageName)) {
@@ -640,7 +770,7 @@
                 final DialogFragment fragment = newErrorDialogFragment();
 
                 if (fragment == null || mFragmentManager == null) {
-                    return;
+                    return activityResult;
                 }
 
                 fragment.show(mFragmentManager, ErrorDialogFragment.TAG);
@@ -652,9 +782,11 @@
 
         // If the dialog is being shown because of the intent we should
         // return a result.
-        if (activityResult == -1 || !setActivityResult) {
+        if (activityResult == -1 || !shouldSetActivityResult) {
             setActivityResult(activityResult);
         }
+
+        return activityResult;
     }
 
     private @Nullable ErrorDialogFragment newErrorDialogFragment() {
@@ -672,12 +804,22 @@
 
     protected int getUser() {
         if (mIsWorkProfile) {
-            UserHandle workProfile = Utils.getManagedProfile(UserManager.get(mContext));
-            return workProfile.getIdentifier();
+            UserHandle workProfile = getWorkProfileUserHandle();
+            if (workProfile != null) {
+                return workProfile.getIdentifier();
+            }
         }
         return UserHandle.myUserId();
     }
 
+    private @Nullable UserHandle getWorkProfileUserHandle() {
+        if (mIsWorkProfile) {
+            return Utils.getManagedProfile(UserManager.get(mContext));
+        }
+
+        return null;
+    }
+
     /** Called when the dialog button is clicked. */
     private static interface DialogHost {
         void onDialogClick(int whichButton);
@@ -749,8 +891,18 @@
         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
             return new AlertDialog.Builder(getActivity())
-                    .setTitle(getContext().getString(R.string.credman_error_message_title))
-                    .setMessage(getContext().getString(R.string.credman_error_message))
+                    .setTitle(
+                            getContext()
+                                    .getString(
+                                            Flags.newSettingsUi()
+                                                    ? R.string.credman_limit_error_msg_title
+                                                    : R.string.credman_error_message_title))
+                    .setMessage(
+                            getContext()
+                                    .getString(
+                                            Flags.newSettingsUi()
+                                                    ? R.string.credman_limit_error_msg
+                                                    : R.string.credman_error_message))
                     .setPositiveButton(android.R.string.ok, this)
                     .create();
         }
@@ -836,4 +988,96 @@
             updateFromExternal();
         }
     }
+
+    /** CombiPreference is a combination of TwoTargetPreference and SwitchPreference. */
+    public static class CombiPreference extends TwoTargetPreference {
+
+        private final Listener mListener = new Listener();
+
+        private class Listener implements View.OnClickListener {
+            @Override
+            public void onClick(View buttonView) {
+                // Forward the event.
+                if (mSwitch != null) {
+                    mOnClickListener.onCheckChanged(CombiPreference.this, mSwitch.isChecked());
+                }
+            }
+        }
+
+        // Stores a reference to the switch view.
+        private @Nullable CompoundButton mSwitch;
+
+        // Switch text for on and off states
+        private @NonNull boolean mChecked = false;
+        private @Nullable OnCombiPreferenceClickListener mOnClickListener = null;
+
+        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) {
+            super(context);
+            mChecked = initialValue;
+        }
+
+        /** Set the new checked value */
+        public void setChecked(boolean isChecked) {
+            // Don't update if we don't need too.
+            if (mChecked == isChecked) {
+                return;
+            }
+
+            mChecked = isChecked;
+
+            if (mSwitch != null) {
+                mSwitch.setChecked(isChecked);
+            }
+        }
+
+        @VisibleForTesting
+        public boolean isChecked() {
+            return mChecked;
+        }
+
+        public void setPreferenceListener(OnCombiPreferenceClickListener onClickListener) {
+            mOnClickListener = onClickListener;
+        }
+
+        @Override
+        protected int getSecondTargetResId() {
+            return com.android.settingslib.R.layout.preference_widget_primary_switch;
+        }
+
+        @Override
+        public void onBindViewHolder(PreferenceViewHolder view) {
+            super.onBindViewHolder(view);
+
+            // Setup the switch.
+            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/CredentialsPickerActivity.java b/src/com/android/settings/applications/credentials/CredentialsPickerActivity.java
new file mode 100644
index 0000000..495c104
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/CredentialsPickerActivity.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 com.android.settings.SettingsActivity;
+
+/** Standalone activity used to launch a {@link DefaultCombinedPicker} fragment. */
+public class CredentialsPickerActivity extends SettingsActivity {
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        return super.isValidFragment(fragmentName)
+                || DefaultCombinedPicker.class.getName().equals(fragmentName);
+    }
+}
diff --git a/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java b/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java
index dcf8fa8..0bffee9 100644
--- a/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java
+++ b/src/com/android/settings/applications/credentials/DefaultCombinedPicker.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.applications.credentials;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -26,8 +25,11 @@
 import android.credentials.CredentialManager;
 import android.credentials.CredentialProviderInfo;
 import android.credentials.SetEnabledProvidersException;
+import android.credentials.flags.Flags;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
 import android.os.OutcomeReceiver;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -36,6 +38,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.core.content.ContextCompat;
 import androidx.preference.Preference;
 
@@ -43,7 +46,6 @@
 import com.android.settings.R;
 import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
 import com.android.settingslib.applications.DefaultAppInfo;
-import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.CandidateInfo;
 
 import java.util.ArrayList;
@@ -65,6 +67,8 @@
     private CredentialManager mCredentialManager;
     private int mIntentSenderUserId = -1;
 
+    private static final Handler sMainHandler = new Handler(Looper.getMainLooper());
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -132,17 +136,44 @@
             new PackageMonitor() {
                 @Override
                 public void onPackageAdded(String packageName, int uid) {
-                    ThreadUtils.postOnMainThread(() -> update());
+                    sMainHandler.post(
+                            () -> {
+                                // See b/296164461 for context
+                                if (getContext() == null) {
+                                    Log.w(TAG, "context is null");
+                                    return;
+                                }
+
+                                update();
+                            });
                 }
 
                 @Override
                 public void onPackageModified(String packageName) {
-                    ThreadUtils.postOnMainThread(() -> update());
+                    sMainHandler.post(
+                            () -> {
+                                // See b/296164461 for context
+                                if (getContext() == null) {
+                                    Log.w(TAG, "context is null");
+                                    return;
+                                }
+
+                                update();
+                            });
                 }
 
                 @Override
                 public void onPackageRemoved(String packageName, int uid) {
-                    ThreadUtils.postOnMainThread(() -> update());
+                    sMainHandler.post(
+                            () -> {
+                                // See b/296164461 for context
+                                if (getContext() == null) {
+                                    Log.w(TAG, "context is null");
+                                    return;
+                                }
+
+                                update();
+                            });
                 }
             };
 
@@ -278,14 +309,18 @@
             final String message =
                     getContext()
                             .getString(
-                                    R.string.credman_confirmation_message);
+                                    Flags.newSettingsUi()
+                                            ? R.string.credman_confirmation_message_new_ui
+                                            : R.string.credman_confirmation_message);
             return Html.fromHtml(message);
         }
         final CharSequence appName = appInfo.loadLabel();
         final String message =
                 getContext()
                         .getString(
-                                R.string.credman_autofill_confirmation_message,
+                                Flags.newSettingsUi()
+                                        ? R.string.credman_autofill_confirmation_message_new_ui
+                                        : R.string.credman_autofill_confirmation_message,
                                 Html.escapeHtml(appName));
         return Html.fromHtml(message);
     }
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/DefaultCombinedPreferenceController.java b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java
index 59c33b2..0fb1769 100644
--- a/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceController.java
@@ -16,24 +16,29 @@
 
 package com.android.settings.applications.credentials;
 
-import android.content.ComponentName;
+import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
 import android.credentials.CredentialManager;
 import android.credentials.CredentialProviderInfo;
+import android.graphics.drawable.Drawable;
 import android.os.UserHandle;
 import android.provider.Settings;
 import android.service.autofill.AutofillService;
 import android.service.autofill.AutofillServiceInfo;
-import android.text.TextUtils;
-import android.util.Log;
 import android.view.autofill.AutofillManager;
+import android.util.Slog;
 
+import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.applications.defaultapps.DefaultAppPreferenceController;
 import com.android.settingslib.applications.DefaultAppInfo;
+import com.android.settingslib.widget.TwoTargetPreference;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -73,38 +78,87 @@
 
     @Override
     protected Intent getSettingIntent(DefaultAppInfo info) {
-        if (info == null) {
-            return null;
+        // Despite this method being called getSettingIntent this intent actually
+        // opens the primary picker. This is so that we can swap the cog and the left
+        // hand side presses to align the UX.
+        if (PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            // We need to return an empty intent here since the class we inherit
+            // from will throw an NPE if we return null and we don't want it to 
+            // open anything since we added the buttons.
+            return new Intent();
         }
-        final AutofillSettingIntentProvider intentProvider =
-                new AutofillSettingIntentProvider(mContext, getUser(), info.getKey());
-        return intentProvider.getIntent();
+        return createIntentToOpenPicker();
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        final CombinedProviderInfo topProvider = getTopProvider();
+        if (topProvider != null && mContext != null) {
+            updatePreferenceForProvider(
+                    preference,
+                    topProvider.getAppName(mContext),
+                    topProvider.getSettingsSubtitle(),
+                    topProvider.getAppIcon(mContext, getUser()),
+                    createSettingsActivityIntent(
+                            topProvider.getPackageName(), topProvider.getSettingsActivity()));
+        } else {
+            updatePreferenceForProvider(preference, null, null, null, null);
+        }
+    }
+
+    @VisibleForTesting
+    public void updatePreferenceForProvider(
+            Preference preference,
+            @Nullable CharSequence appName,
+            @Nullable String appSubtitle,
+            @Nullable Drawable appIcon,
+            @Nullable Intent settingsActivityIntent) {
+        if (appName == null) {
+            preference.setTitle(R.string.app_list_preference_none);
+        } else {
+            preference.setTitle(appName);
+        }
+
+        if (appIcon == null) {
+            preference.setIcon(null);
+        } else {
+            preference.setIcon(Utils.getSafeIcon(appIcon));
+        }
+
+        preference.setSummary(appSubtitle);
+
+        if (preference instanceof PrimaryProviderPreference) {
+            PrimaryProviderPreference primaryPref = (PrimaryProviderPreference) preference;
+            primaryPref.setIconSize(TwoTargetPreference.ICON_SIZE_MEDIUM);
+            primaryPref.setDelegate(
+                    new PrimaryProviderPreference.Delegate() {
+                        public void onOpenButtonClicked() {
+                            if (settingsActivityIntent != null) {
+                                try {
+                                    startActivity(settingsActivityIntent);
+                                } catch (ActivityNotFoundException e) {
+                                    Slog.e(TAG, "Failed to open settings activity", e);
+                                }
+                            }
+                        }
+
+                        public void onChangeButtonClicked() {
+                            startActivity(createIntentToOpenPicker());
+                        }
+                    });
+
+            // Hide the open button if there is no defined settings activity.
+            primaryPref.setOpenButtonVisible(settingsActivityIntent != null);
+            primaryPref.setButtonsVisible(appName != null);
+        }
+    }
+
+    private @Nullable CombinedProviderInfo getTopProvider() {
+        return CombinedProviderInfo.getTopProvider(getAllProviders(getUser()));
     }
 
     @Override
     protected DefaultAppInfo getDefaultAppInfo() {
-        List<CombinedProviderInfo> providers = getAllProviders(getUser());
-        CombinedProviderInfo topProvider = CombinedProviderInfo.getTopProvider(providers);
-        if (topProvider != null) {
-            ServiceInfo brandingService = topProvider.getBrandingService();
-            if (brandingService == null) {
-                return new DefaultAppInfo(
-                        mContext,
-                        mPackageManager,
-                        getUser(),
-                        topProvider.getApplicationInfo(),
-                        topProvider.getSettingsSubtitle(),
-                        true);
-            } else {
-                return new DefaultAppInfo(
-                        mContext,
-                        mPackageManager,
-                        getUser(),
-                        brandingService,
-                        topProvider.getSettingsSubtitle(),
-                        true);
-            }
-        }
         return null;
     }
 
@@ -138,54 +192,19 @@
         return true;
     }
 
-    /** Provides Intent to setting activity for the specified autofill service. */
-    static final class AutofillSettingIntentProvider {
-
-        private final String mKey;
-        private final Context mContext;
-        private final int mUserId;
-
-        public AutofillSettingIntentProvider(Context context, int userId, String key) {
-            mKey = key;
-            mContext = context;
-            mUserId = userId;
-        }
-
-        public Intent getIntent() {
-            final List<ResolveInfo> resolveInfos =
-                    mContext.getPackageManager()
-                            .queryIntentServicesAsUser(
-                                    AUTOFILL_PROBE, PackageManager.GET_META_DATA, mUserId);
-
-            for (ResolveInfo resolveInfo : resolveInfos) {
-                final ServiceInfo serviceInfo = resolveInfo.serviceInfo;
-
-                // If there are multiple autofill services then pick the first one.
-                if (mKey != null && mKey.startsWith(serviceInfo.packageName)) {
-                    final String settingsActivity;
-                    try {
-                        settingsActivity =
-                                new AutofillServiceInfo(mContext, serviceInfo)
-                                        .getSettingsActivity();
-                    } catch (SecurityException e) {
-                        // Service does not declare the proper permission, ignore it.
-                        Log.e(TAG, "Error getting info for " + serviceInfo + ": " + e);
-                        return null;
-                    }
-                    if (TextUtils.isEmpty(settingsActivity)) {
-                        return null;
-                    }
-                    return new Intent(Intent.ACTION_MAIN)
-                            .setComponent(
-                                    new ComponentName(serviceInfo.packageName, settingsActivity));
-                }
-            }
-
-            return null;
-        }
-    }
-
     protected int getUser() {
         return UserHandle.myUserId();
     }
+
+    /** Creates an intent to open the credential picker. */
+    private Intent createIntentToOpenPicker() {
+        return new Intent(mContext, CredentialsPickerActivity.class);
+    }
+
+    /** Creates an intent to open the settings activity of the primary provider (if available). */
+    public @Nullable Intent createSettingsActivityIntent(
+            @Nullable String packageName, @Nullable String settingsActivity) {
+        return CombinedProviderInfo.createSettingsActivityIntent(
+                mContext, packageName, settingsActivity, getUser());
+    }
 }
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..990e221
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/DefaultPrivateCombinedPreferenceController.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.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 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/credentials/DefaultWorkCombinedPreferenceController.java b/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java
index eb0aa7a..f7ca204 100644
--- a/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java
+++ b/src/com/android/settings/applications/credentials/DefaultWorkCombinedPreferenceController.java
@@ -21,7 +21,6 @@
 import android.os.UserHandle;
 
 import com.android.settings.Utils;
-import com.android.settingslib.applications.DefaultAppInfo;
 
 public class DefaultWorkCombinedPreferenceController extends DefaultCombinedPreferenceController {
     private final UserHandle mUserHandle;
@@ -45,17 +44,6 @@
     }
 
     @Override
-    protected Intent getSettingIntent(DefaultAppInfo info) {
-        if (info == null) {
-            return null;
-        }
-        final AutofillSettingIntentProvider intentProvider =
-                new AutofillSettingIntentProvider(
-                        mContext, mUserHandle.getIdentifier(), info.getKey());
-        return intentProvider.getIntent();
-    }
-
-    @Override
     protected void startActivity(Intent intent) {
         mContext.startActivityAsUser(intent, mUserHandle);
     }
diff --git a/src/com/android/settings/applications/credentials/ImageUtils.java b/src/com/android/settings/applications/credentials/ImageUtils.java
new file mode 100644
index 0000000..a7803a8
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/ImageUtils.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.credentials;
+
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Paint;
+import android.graphics.PaintFlagsDrawFilter;
+import android.graphics.PixelFormat;
+import android.graphics.Rect;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.PaintDrawable;
+import android.util.DisplayMetrics;
+
+import androidx.annotation.NonNull;
+
+/** Handles resizing of images for CredMan settings. */
+public class ImageUtils {
+
+    /**
+     * Utility class to resize icons to match default icon size. Code is mostly borrowed from
+     * Launcher and ActivityPicker.
+     */
+    public static class IconResizer {
+        private final int mIconWidth;
+        private final int mIconHeight;
+
+        private final DisplayMetrics mMetrics;
+        private final Rect mOldBounds = new Rect();
+        private final Canvas mCanvas = new Canvas();
+
+        public IconResizer(int width, int height, DisplayMetrics metrics) {
+            mCanvas.setDrawFilter(
+                    new PaintFlagsDrawFilter(Paint.DITHER_FLAG, Paint.FILTER_BITMAP_FLAG));
+
+            mMetrics = metrics;
+            mIconWidth = width;
+            mIconHeight = height;
+        }
+
+        /**
+         * Returns a Drawable representing the thumbnail of the specified Drawable. The size of the
+         * thumbnail is defined by the dimension android.R.dimen.app_icon_size.
+         *
+         * <p>This method is not thread-safe and should be invoked on the UI thread only.
+         *
+         * @param icon The icon to get a thumbnail of.
+         * @return A thumbnail for the specified icon or the icon itself if the thumbnail could not
+         *     be created.
+         */
+        public Drawable createIconThumbnail(Drawable icon) {
+            int width = mIconWidth;
+            int height = mIconHeight;
+
+            if (icon == null) {
+                return new EmptyDrawable(width, height);
+            }
+
+            try {
+                if (icon instanceof PaintDrawable) {
+                    PaintDrawable painter = (PaintDrawable) icon;
+                    painter.setIntrinsicWidth(width);
+                    painter.setIntrinsicHeight(height);
+                } else if (icon instanceof BitmapDrawable) {
+                    // Ensure the bitmap has a density.
+                    BitmapDrawable bitmapDrawable = (BitmapDrawable) icon;
+                    Bitmap bitmap = bitmapDrawable.getBitmap();
+                    if (bitmap.getDensity() == Bitmap.DENSITY_NONE) {
+                        bitmapDrawable.setTargetDensity(mMetrics);
+                    }
+                }
+                int iconWidth = icon.getIntrinsicWidth();
+                int iconHeight = icon.getIntrinsicHeight();
+
+                if (iconWidth > 0 && iconHeight > 0) {
+                    if (width < iconWidth || height < iconHeight) {
+                        final float ratio = (float) iconWidth / iconHeight;
+
+                        if (iconWidth > iconHeight) {
+                            height = (int) (width / ratio);
+                        } else if (iconHeight > iconWidth) {
+                            width = (int) (height * ratio);
+                        }
+
+                        final Bitmap.Config c =
+                                icon.getOpacity() != PixelFormat.OPAQUE
+                                        ? Bitmap.Config.ARGB_8888
+                                        : Bitmap.Config.RGB_565;
+                        final Bitmap thumb = Bitmap.createBitmap(mIconWidth, mIconHeight, c);
+                        final Canvas canvas = mCanvas;
+                        canvas.setBitmap(thumb);
+
+                        // Copy the old bounds to restore them later
+                        // If we were to do oldBounds = icon.getBounds(),
+                        // the call to setBounds() that follows would
+                        // change the same instance and we would lose the
+                        // old bounds.
+                        mOldBounds.set(icon.getBounds());
+                        final int x = (mIconWidth - width) / 2;
+                        final int y = (mIconHeight - height) / 2;
+                        icon.setBounds(x, y, x + width, y + height);
+                        icon.draw(canvas);
+                        icon.setBounds(mOldBounds);
+
+                        // Create the new resized drawable.
+                        icon = createBitmapDrawable(thumb);
+                    } else if (iconWidth < width && iconHeight < height) {
+                        final Bitmap.Config c = Bitmap.Config.ARGB_8888;
+                        final Bitmap thumb = Bitmap.createBitmap(mIconWidth, mIconHeight, c);
+                        final Canvas canvas = mCanvas;
+                        canvas.setBitmap(thumb);
+                        mOldBounds.set(icon.getBounds());
+
+                        // Set the bounds for the new icon.
+                        final int x = (width - iconWidth) / 2;
+                        final int y = (height - iconHeight) / 2;
+                        icon.setBounds(x, y, x + iconWidth, y + iconHeight);
+                        icon.draw(canvas);
+                        icon.setBounds(mOldBounds);
+
+                        // Create the new resized drawable.
+                        icon = createBitmapDrawable(thumb);
+                    }
+                }
+
+            } catch (Throwable t) {
+                icon = new EmptyDrawable(width, height);
+            }
+
+            return icon;
+        }
+
+        private BitmapDrawable createBitmapDrawable(Bitmap thumb) {
+            BitmapDrawable icon = new BitmapDrawable(thumb);
+            icon.setTargetDensity(mMetrics);
+            mCanvas.setBitmap(null);
+            return icon;
+        }
+    }
+
+    public static class EmptyDrawable extends Drawable {
+        private final int mWidth;
+        private final int mHeight;
+
+        EmptyDrawable(int width, int height) {
+            mWidth = width;
+            mHeight = height;
+        }
+
+        @Override
+        public int getIntrinsicWidth() {
+            return mWidth;
+        }
+
+        @Override
+        public int getIntrinsicHeight() {
+            return mHeight;
+        }
+
+        @Override
+        public int getMinimumWidth() {
+            return mWidth;
+        }
+
+        @Override
+        public int getMinimumHeight() {
+            return mHeight;
+        }
+
+        @Override
+        public void draw(@NonNull Canvas canvas) {}
+
+        @Override
+        public void setAlpha(int alpha) {}
+
+        @Override
+        public void setColorFilter(@NonNull ColorFilter cf) {}
+
+        @Override
+        public int getOpacity() {
+            return PixelFormat.TRANSLUCENT;
+        }
+    }
+}
diff --git a/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java b/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java
new file mode 100644
index 0000000..b8e2529
--- /dev/null
+++ b/src/com/android/settings/applications/credentials/PrimaryProviderPreference.java
@@ -0,0 +1,215 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.credentials;
+
+import android.content.Context;
+import android.credentials.flags.Flags;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.Button;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.widget.GearPreference;
+
+/**
+ * This preference is shown at the top of the "passwords & accounts" screen and allows the user to
+ * pick their primary credential manager provider.
+ */
+public class PrimaryProviderPreference extends GearPreference {
+
+    public static boolean shouldUseNewSettingsUi() {
+        return Flags.newSettingsUi();
+    }
+
+    private @Nullable Button mChangeButton = null;
+    private @Nullable Button mOpenButton = null;
+    private @Nullable View mButtonFrameView = null;
+    private @Nullable View mGearView = null;
+    private @Nullable Delegate mDelegate = null;
+    private boolean mButtonsVisible = false;
+    private boolean mOpenButtonVisible = false;
+
+    /** Called to send messages back to the parent controller. */
+    public static interface Delegate {
+        void onOpenButtonClicked();
+
+        void onChangeButtonClicked();
+    }
+
+    public PrimaryProviderPreference(
+            @NonNull Context context,
+            @NonNull AttributeSet attrs,
+            int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+        initializeNewSettingsUi();
+    }
+
+    public PrimaryProviderPreference(
+           @NonNull Context context,
+           @NonNull AttributeSet attrs) {
+        super(context, attrs);
+        initializeNewSettingsUi();
+    }
+
+    private void initializeNewSettingsUi() {
+        if (!shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        // Change the layout to the new settings ui.
+        setLayoutResource(R.layout.preference_credential_manager_with_buttons);
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        if (shouldUseNewSettingsUi()) {
+            onBindViewHolderNewSettingsUi(holder);
+        } else {
+            onBindViewHolderOldSettingsUi(holder);
+        }
+    }
+
+    private void onBindViewHolderOldSettingsUi(PreferenceViewHolder holder) {
+        setOnPreferenceClickListener(
+                new Preference.OnPreferenceClickListener() {
+                    public boolean onPreferenceClick(@NonNull Preference preference) {
+                        if (mDelegate != null) {
+                            mDelegate.onOpenButtonClicked();
+                            return true;
+                        }
+
+                        return false;
+                    }
+                });
+
+        // Setup the gear icon to handle opening the change provider scenario.
+        mGearView = holder.findViewById(R.id.settings_button);
+        mGearView.setVisibility(View.VISIBLE);
+        mGearView.setOnClickListener(
+                new View.OnClickListener() {
+                    public void onClick(@NonNull View v) {
+                        if (mDelegate != null) {
+                            mDelegate.onChangeButtonClicked();
+                        }
+                    }
+                });
+    }
+
+    private void onBindViewHolderNewSettingsUi(PreferenceViewHolder holder) {
+        mOpenButton = (Button) holder.findViewById(R.id.open_button);
+        mOpenButton.setOnClickListener(
+                new View.OnClickListener() {
+                    public void onClick(@NonNull View v) {
+                        if (mDelegate != null) {
+                            mDelegate.onOpenButtonClicked();
+                        }
+                    }
+                });
+        setVisibility(mOpenButton, mOpenButtonVisible);
+
+        mChangeButton = (Button) holder.findViewById(R.id.change_button);
+        mChangeButton.setOnClickListener(
+                new View.OnClickListener() {
+                    public void onClick(@NonNull View v) {
+                        if (mDelegate != null) {
+                            mDelegate.onChangeButtonClicked();
+                        }
+                    }
+                });
+
+        mButtonFrameView = holder.findViewById(R.id.credman_button_frame);
+        mButtonFrameView.setVisibility(mButtonsVisible ? View.VISIBLE : View.GONE);
+
+        // There is a special case where if the provider == none then we should
+        // hide the buttons and when the preference is tapped we can open the
+        // provider selection dialog.
+        setOnPreferenceClickListener(
+                new Preference.OnPreferenceClickListener() {
+                    public boolean onPreferenceClick(@NonNull Preference preference) {
+                        return handlePreferenceClickNewSettingsUi();
+                    }
+                });
+    }
+
+    private boolean handlePreferenceClickNewSettingsUi() {
+        if (mDelegate != null && !mButtonsVisible) {
+            mDelegate.onChangeButtonClicked();
+            return true;
+        }
+
+        return false;
+    }
+
+    public void setOpenButtonVisible(boolean isVisible) {
+        if (mOpenButton != null) {
+            mOpenButton.setVisibility(isVisible ? View.VISIBLE : View.GONE);
+            setVisibility(mOpenButton, isVisible);
+        }
+
+        mOpenButtonVisible = isVisible;
+    }
+
+    public void setButtonsVisible(boolean isVisible) {
+        if (mButtonFrameView != null) {
+            setVisibility(mButtonFrameView, isVisible);
+        }
+
+        mButtonsVisible = isVisible;
+    }
+
+    public void setDelegate(@NonNull Delegate delegate) {
+        mDelegate = delegate;
+    }
+
+    @Override
+    protected boolean shouldHideSecondTarget() {
+        return shouldUseNewSettingsUi();
+    }
+
+    @VisibleForTesting
+    public @Nullable Button getOpenButton() {
+        return mOpenButton;
+    }
+
+    @VisibleForTesting
+    public @Nullable Button getChangeButton() {
+        return mChangeButton;
+    }
+
+    @VisibleForTesting
+    public @Nullable View getButtonFrameView() {
+        return mButtonFrameView;
+    }
+
+    @VisibleForTesting
+    public @Nullable View getGearView() {
+        return mGearView;
+    }
+
+    private static void setVisibility(View view, boolean isVisible) {
+        view.setVisibility(isVisible ? View.VISIBLE : View.GONE);
+    }
+}
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java
index 30c7973..c31fb9e 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAppPreferenceController.java
@@ -18,7 +18,6 @@
 
 import static com.android.settingslib.widget.TwoTargetPreference.ICON_SIZE_MEDIUM;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -28,6 +27,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
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/defaultapps/SettingIntentProvider.java b/src/com/android/settings/applications/defaultapps/SettingIntentProvider.java
index a6e3edf..c43fbd5 100644
--- a/src/com/android/settings/applications/defaultapps/SettingIntentProvider.java
+++ b/src/com/android/settings/applications/defaultapps/SettingIntentProvider.java
@@ -16,9 +16,10 @@
 
 package com.android.settings.applications.defaultapps;
 
-import android.annotation.Nullable;
 import android.content.Intent;
 
+import androidx.annotation.Nullable;
+
 /**
  * Provides an "advanced setting" intent for this app info.
  */
diff --git a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
index cc662aa..676c35a 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);
@@ -200,7 +200,6 @@
         final String summary = activity.getString(R.string.app_launch_top_intro_message);
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* header */)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setIcon(Utils.getBadgedIcon(mContext, mPackageInfo.applicationInfo))
                 .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
                 .setSummary(summary)  // add intro text
@@ -210,7 +209,7 @@
                 .setHasAppInfoLink(true)
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE)
-                .done(activity, getPrefContext());
+                .done(getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
@@ -289,6 +288,7 @@
                 .create();
         if (dialog.getListView() != null) {
             dialog.getListView().setTextDirection(View.TEXT_DIRECTION_LOCALE);
+            dialog.getListView().setEnabled(false);
         } else {
             Log.w(TAG, "createVerifiedLinksDialog: dialog.getListView() is null, please check it.");
         }
diff --git a/src/com/android/settings/applications/intentpicker/LeftSideCheckBoxPreference.java b/src/com/android/settings/applications/intentpicker/LeftSideCheckBoxPreference.java
index fdb6d25..199dc4e 100644
--- a/src/com/android/settings/applications/intentpicker/LeftSideCheckBoxPreference.java
+++ b/src/com/android/settings/applications/intentpicker/LeftSideCheckBoxPreference.java
@@ -22,7 +22,6 @@
 
 import androidx.preference.PreferenceViewHolder;
 
-import com.android.settings.R;
 import com.android.settingslib.widget.TwoTargetPreference;
 
 /** This preference has a check box in the left side. */
@@ -33,7 +32,7 @@
     public LeftSideCheckBoxPreference(Context context, AttributeSet attrs,
             int defStyleAttr, int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
-        setLayoutResource(R.layout.preference_checkable_two_target);
+        setLayoutResource(com.android.settingslib.R.layout.preference_checkable_two_target);
     }
 
     public LeftSideCheckBoxPreference(Context context, AttributeSet attrs, int defStyleAttr) {
@@ -51,7 +50,7 @@
     public LeftSideCheckBoxPreference(Context context, boolean isChecked) {
         super(context);
         mChecked = isChecked;
-        setLayoutResource(R.layout.preference_checkable_two_target);
+        setLayoutResource(com.android.settingslib.R.layout.preference_checkable_two_target);
     }
 
     @Override
diff --git a/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java b/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java
index e7bb88d..fd998f5 100644
--- a/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java
+++ b/src/com/android/settings/applications/manageapplications/AppFilterRegistry.java
@@ -167,13 +167,13 @@
         mFilters[FILTER_APPS_PERSONAL] = new AppFilterItem(
                 ApplicationsState.FILTER_PERSONAL,
                 FILTER_APPS_PERSONAL,
-                R.string.category_personal);
+                com.android.settingslib.R.string.category_personal);
 
         // Work
         mFilters[FILTER_APPS_WORK] = new AppFilterItem(
                 ApplicationsState.FILTER_WORK,
                 FILTER_APPS_WORK,
-                R.string.category_work);
+                com.android.settingslib.R.string.category_work);
 
         // Usage access screen, never displayed.
         mFilters[FILTER_APPS_USAGE_ACCESS] = new AppFilterItem(
@@ -219,7 +219,7 @@
         mFilters[FILTER_ALARMS_AND_REMINDERS] = new AppFilterItem(
                 AppStateAlarmsAndRemindersBridge.FILTER_CLOCK_APPS,
                 FILTER_ALARMS_AND_REMINDERS,
-                R.string.alarms_and_reminders_title);
+                com.android.settingslib.R.string.alarms_and_reminders_title);
 
         // Apps that can manage media files
         mFilters[FILTER_APPS_MEDIA_MANAGEMENT] = new AppFilterItem(
@@ -279,7 +279,7 @@
         mFilters[FILTER_APPS_TURN_SCREEN_ON] = new AppFilterItem(
                 AppStateTurnScreenOnBridge.FILTER_TURN_SCREEN_ON_APPS,
                 FILTER_APPS_TURN_SCREEN_ON,
-                R.string.turn_screen_on_title);
+                com.android.settingslib.R.string.turn_screen_on_title);
     }
 
     public static AppFilterRegistry getInstance() {
diff --git a/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java b/src/com/android/settings/applications/manageapplications/ApplicationViewHolder.java
index 58232ea..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;
 
@@ -73,8 +78,8 @@
         mAppName = itemView.findViewById(android.R.id.title);
         mAppIcon = itemView.findViewById(android.R.id.icon);
         mSummary = itemView.findViewById(android.R.id.summary);
-        mDisabled = itemView.findViewById(R.id.appendix);
-        mSwitch = itemView.findViewById(R.id.switchWidget);
+        mDisabled = itemView.findViewById(com.android.settingslib.widget.preference.app.R.id.appendix);
+        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);
@@ -86,7 +91,7 @@
 
     static View newView(ViewGroup parent, boolean twoTarget, int listType) {
         ViewGroup view = (ViewGroup) LayoutInflater.from(parent.getContext())
-                .inflate(R.layout.preference_app, parent, false);
+                .inflate(com.android.settingslib.widget.preference.app.R.layout.preference_app, parent, false);
         ViewGroup widgetFrame = view.findViewById(android.R.id.widget_frame);
         if (twoTarget) {
             if (widgetFrame != null) {
@@ -94,11 +99,13 @@
                     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(
-                        R.layout.preference_two_target_divider, view, false);
+                        com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target_divider,
+                        view, false);
                 // second to last, before widget frame
                 view.addView(divider, view.getChildCount() - 1);
             }
@@ -110,7 +117,8 @@
 
     static View newHeader(ViewGroup parent, int resText) {
         ViewGroup view = (ViewGroup) LayoutInflater.from(parent.getContext())
-                .inflate(R.layout.preference_app_header, parent, false);
+                .inflate(com.android.settingslib.widget.preference.app.R.layout.preference_app_header,
+                        parent, false);
         TextView textView = view.findViewById(R.id.apps_top_intro_text);
         textView.setText(resText);
         return view;
@@ -165,10 +173,6 @@
         mAppName.setContentDescription(contentDescription);
     }
 
-    void setIcon(int drawableRes) {
-        mAppIcon.setImageResource(drawableRes);
-    }
-
     void setIcon(Drawable icon) {
         if (icon == null) {
             return;
@@ -183,7 +187,7 @@
         } else if (!info.enabled || info.enabledSetting
                 == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED) {
             mDisabled.setVisibility(View.VISIBLE);
-            mDisabled.setText(R.string.disabled);
+            mDisabled.setText(com.android.settingslib.R.string.disabled);
         } else {
             mDisabled.setVisibility(View.GONE);
         }
@@ -211,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);
@@ -244,7 +249,7 @@
             public void onClick(View v) {
                 CloneBackend cloneBackend = CloneBackend.getInstance(context);
                 final MetricsFeatureProvider metricsFeatureProvider =
-                        FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+                        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
                 String packageName = entry.info.packageName;
 
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index d734a27..e370f3e 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -689,7 +689,8 @@
                 startAppInfoFragment(WriteSettingsDetails.class, R.string.write_system_settings);
                 break;
             case LIST_TYPE_MANAGE_SOURCES:
-                startAppInfoFragment(ExternalSourcesDetails.class, R.string.install_other_apps);
+                startAppInfoFragment(ExternalSourcesDetails.class,
+                        com.android.settingslib.R.string.install_other_apps);
                 break;
             case LIST_TYPE_GAMES:
                 startAppInfoFragment(AppStorageSettings.class, R.string.game_storage_settings);
@@ -704,7 +705,7 @@
                 break;
             case LIST_TYPE_ALARMS_AND_REMINDERS:
                 startAppInfoFragment(AlarmsAndRemindersDetails.class,
-                        R.string.alarms_and_reminders_label);
+                        com.android.settingslib.R.string.alarms_and_reminders_label);
                 break;
             case LIST_TYPE_MEDIA_MANAGEMENT_APPS:
                 startAppInfoFragment(MediaManagementAppsDetails.class,
@@ -741,7 +742,8 @@
                         R.string.change_nfc_tag_apps_title);
                 break;
             case LIST_TYPE_TURN_SCREEN_ON:
-                startAppInfoFragment(TurnScreenOnDetails.class, R.string.turn_screen_on_title);
+                startAppInfoFragment(TurnScreenOnDetails.class,
+                        com.android.settingslib.R.string.turn_screen_on_title);
                 break;
             // TODO: Figure out if there is a way where we can spin up the profile's settings
             // process ahead of time, to avoid a long load of data when user clicks on a managed
@@ -1052,7 +1054,7 @@
         } else if (className.equals(WriteSettingsActivity.class.getName())) {
             screenTitle = R.string.write_settings;
         } else if (className.equals(ManageExternalSourcesActivity.class.getName())) {
-            screenTitle = R.string.install_other_apps;
+            screenTitle = com.android.settingslib.R.string.install_other_apps;
         } else if (className.equals(ChangeWifiStateActivity.class.getName())) {
             screenTitle = R.string.change_wifi_state_title;
         } else if (className.equals(ManageExternalStorageActivity.class.getName())) {
@@ -1060,7 +1062,7 @@
         } else if (className.equals(MediaManagementAppsActivity.class.getName())) {
             screenTitle = R.string.media_management_apps_title;
         } else if (className.equals(AlarmsAndRemindersActivity.class.getName())) {
-            screenTitle = R.string.alarms_and_reminders_title;
+            screenTitle = com.android.settingslib.R.string.alarms_and_reminders_title;
         } else if (className.equals(NotificationAppListActivity.class.getName())
                 || className.equals(
                 NotificationReviewPermissionsActivity.class.getName())) {
@@ -1076,7 +1078,7 @@
         } else if (className.equals(ChangeNfcTagAppsActivity.class.getName())) {
             screenTitle = R.string.change_nfc_tag_apps_title;
         } else if (className.equals(TurnScreenOnSettingsActivity.class.getName())) {
-            screenTitle = R.string.turn_screen_on_title;
+            screenTitle = com.android.settingslib.R.string.turn_screen_on_title;
         } else {
             if (screenTitle == -1) {
                 screenTitle = R.string.all_apps;
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt b/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt
index 8313686..dca115b 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt
+++ b/src/com/android/settings/applications/manageapplications/ManageApplicationsUtil.kt
@@ -59,14 +59,17 @@
 import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_WIFI_ACCESS
 import com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_WRITE_SETTINGS
 import com.android.settings.spa.app.AllAppListPageProvider
+import com.android.settings.spa.app.battery.BatteryOptimizationModeAppListPageProvider
 import com.android.settings.spa.app.appcompat.UserAspectRatioAppsPageProvider
 import com.android.settings.spa.app.specialaccess.AlarmsAndRemindersAppListProvider
 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.notification.AppListNotificationsPageProvider
 import com.android.settings.spa.system.AppLanguagesPageProvider
@@ -119,6 +122,12 @@
             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
+            LIST_TYPE_BATTERY_OPTIMIZATION -> BatteryOptimizationModeAppListPageProvider.name
             else -> null
         }
     }
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/DefaultPaymentSettingsPreferenceController.java b/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceController.java
index 763a500..c66c97e 100644
--- a/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceController.java
@@ -16,10 +16,14 @@
 
 package com.android.settings.applications.specialaccess;
 
+import android.app.role.RoleManager;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.nfc.NfcAdapter;
+import android.nfc.cardemulation.CardEmulation;
 import android.os.UserManager;
+import android.permission.flags.Flags;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -62,6 +66,20 @@
     }
 
     @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (Flags.walletRoleEnabled()
+                && mPreferenceKey.equals(preference.getKey())) {
+            RoleManager roleManager = mContext.getSystemService(RoleManager.class);
+            if (roleManager.isRoleAvailable(RoleManager.ROLE_WALLET)) {
+                Intent intent = new Intent(CardEmulation.ACTION_CHANGE_DEFAULT);
+                mContext.startActivity(intent);
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
     public void onResume() {
         if (mPaymentSettingsEnabler != null) {
             mPaymentSettingsEnabler.resume();
diff --git a/src/com/android/settings/applications/specialaccess/MediaRoutingControlPreferenceController.java b/src/com/android/settings/applications/specialaccess/MediaRoutingControlPreferenceController.java
new file mode 100644
index 0000000..72011ba
--- /dev/null
+++ b/src/com/android/settings/applications/specialaccess/MediaRoutingControlPreferenceController.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.specialaccess;
+
+import android.Manifest;
+import android.content.Context;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+
+import com.android.media.flags.Flags;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.spa.SpaActivity;
+import com.android.settings.spa.app.specialaccess.MediaRoutingControlAppListProvider;
+
+/**
+ * This controller manages features availability for special app access for
+ * {@link Manifest.permission#MEDIA_ROUTING_CONTROL} permission.
+ */
+public class MediaRoutingControlPreferenceController extends BasePreferenceController {
+    public MediaRoutingControlPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.enablePrivilegedRoutingForMediaRoutingControl()
+                ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (TextUtils.equals(preference.getKey(), mPreferenceKey)) {
+            SpaActivity.startSpaActivity(
+                    mContext, MediaRoutingControlAppListProvider.INSTANCE.getAppListRoute());
+            return true;
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
index 597705c..b95da80 100644
--- a/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
+++ b/src/com/android/settings/applications/specialaccess/PaymentSettingsEnabler.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.nfc.NfcAdapter;
 import android.nfc.cardemulation.CardEmulation;
+import android.os.UserHandle;
 
 import androidx.preference.Preference;
 
@@ -64,12 +65,17 @@
         }
     }
 
+    private boolean hasAnyServices() {
+        return mCardEmuManager.getServices(
+            CardEmulation.CATEGORY_PAYMENT, UserHandle.myUserId()).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/applications/LongBackgroundTaskController.java b/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java
index ccfa9c8..93bf1ad 100644
--- a/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java
+++ b/src/com/android/settings/applications/specialaccess/applications/LongBackgroundTaskController.java
@@ -30,8 +30,8 @@
 
     public LongBackgroundTaskController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mAppFeatureProvider = FeatureFactory.getFactory(context)
-                .getApplicationFeatureProvider(context);
+        mAppFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getApplicationFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
index c43bde6..bb9876b 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminAdd.java
@@ -573,7 +573,7 @@
     void logSpecialPermissionChange(boolean allow, String packageName) {
         int logCategory = allow ? SettingsEnums.APP_SPECIAL_PERMISSION_ADMIN_ALLOW :
                 SettingsEnums.APP_SPECIAL_PERMISSION_ADMIN_DENY;
-        FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(
                 SettingsEnums.PAGE_UNKNOWN,
                 logCategory,
                 SettingsEnums.PAGE_UNKNOWN,
@@ -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/deviceadmin/DeviceAdminListItem.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListItem.java
index 370a4df..f7dff2e 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListItem.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListItem.java
@@ -86,6 +86,14 @@
         return new UserHandle(getUserIdFromDeviceAdminInfo(mInfo));
     }
 
+    public int getUid() {
+        return mInfo.getActivityInfo().applicationInfo.uid;
+    }
+
+    public String getPackageName() {
+        return mInfo.getPackageName();
+    }
+
     public Intent getLaunchIntent(Context context) {
         return new Intent(context, DeviceAdminAdd.class)
                 .putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, mInfo.getComponent());
diff --git a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
index 9403316..55ba8ac 100644
--- a/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/deviceadmin/DeviceAdminListPreferenceController.java
@@ -18,6 +18,7 @@
 
 import static android.app.admin.DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED;
 
+import android.Manifest;
 import android.app.AppGlobals;
 import android.app.admin.DeviceAdminInfo;
 import android.app.admin.DeviceAdminReceiver;
@@ -45,12 +46,13 @@
 
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.RestrictedSwitchPreference;
 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;
-import com.android.settingslib.widget.AppSwitchPreference;
 import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.TwoTargetPreference;
 
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -104,7 +106,7 @@
         mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
         mPackageManager = mContext.getPackageManager();
         mIPackageManager = AppGlobals.getPackageManager();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -167,35 +169,35 @@
         if (mFooterPreference != null) {
             mFooterPreference.setVisible(mAdmins.isEmpty());
         }
-        final Map<String, AppSwitchPreference> preferenceCache = new ArrayMap<>();
+        final Map<String, RestrictedSwitchPreference> preferenceCache = new ArrayMap<>();
         final Context prefContext = mPreferenceGroup.getContext();
         final int childrenCount = mPreferenceGroup.getPreferenceCount();
         for (int i = 0; i < childrenCount; i++) {
             final Preference pref = mPreferenceGroup.getPreference(i);
-            if (!(pref instanceof AppSwitchPreference)) {
+            if (!(pref instanceof RestrictedSwitchPreference switchPref)) {
                 continue;
             }
-            final AppSwitchPreference appSwitch = (AppSwitchPreference) pref;
-            preferenceCache.put(appSwitch.getKey(), appSwitch);
+            preferenceCache.put(switchPref.getKey(), switchPref);
         }
         for (DeviceAdminListItem item : mAdmins) {
             final String key = item.getKey();
-            AppSwitchPreference pref = preferenceCache.remove(key);
+            RestrictedSwitchPreference pref = preferenceCache.remove(key);
             if (pref == null) {
-                pref = new AppSwitchPreference(prefContext);
+                pref = new RestrictedSwitchPreference(prefContext);
                 mPreferenceGroup.addPreference(pref);
             }
             bindPreference(item, pref);
         }
-        for (AppSwitchPreference unusedCacheItem : preferenceCache.values()) {
+        for (RestrictedSwitchPreference unusedCacheItem : preferenceCache.values()) {
             mPreferenceGroup.removePreference(unusedCacheItem);
         }
     }
 
-    private void bindPreference(DeviceAdminListItem item, AppSwitchPreference pref) {
+    private void bindPreference(DeviceAdminListItem item, RestrictedSwitchPreference pref) {
         pref.setKey(item.getKey());
         pref.setTitle(item.getName());
         pref.setIcon(item.getIcon());
+        pref.setIconSize(TwoTargetPreference.ICON_SIZE_DEFAULT);
         pref.setChecked(item.isActive());
         pref.setSummary(item.getDescription());
         pref.setEnabled(item.isEnabled());
@@ -207,6 +209,8 @@
         });
         pref.setOnPreferenceChangeListener((preference, newValue) -> false);
         pref.setSingleLineTitle(true);
+        pref.checkEcmRestrictionAndSetDisabled(Manifest.permission.BIND_DEVICE_ADMIN,
+                item.getPackageName(), item.getUid());
     }
 
     /**
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
index 4149e23..faa1b51 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
@@ -208,7 +208,8 @@
             title.setText(appLabel);
         }
 
-        final ImageView personalIconView = mHeader.findViewById(R.id.entity_header_icon_personal);
+        final ImageView personalIconView = mHeader.findViewById(
+                com.android.settingslib.widget.preference.layout.R.id.entity_header_icon_personal);
         if (personalIconView != null) {
             Drawable icon = IconDrawableFactory.newInstance(mContext)
                     .getBadgedIcon(mPackageInfo.applicationInfo, personalProfile.getIdentifier())
@@ -219,7 +220,8 @@
             personalIconView.setImageDrawable(icon);
         }
 
-        final ImageView workIconView = mHeader.findViewById(R.id.entity_header_icon_work);
+        final ImageView workIconView = mHeader.findViewById(
+                com.android.settingslib.widget.preference.layout.R.id.entity_header_icon_work);
         if (workIconView != null) {
             Drawable icon = IconDrawableFactory.newInstance(mContext)
                     .getBadgedIcon(mPackageInfo.applicationInfo, workProfile.getIdentifier())
@@ -499,20 +501,24 @@
     private void enableSwitchPref() {
         mSwitchPref.setChecked(true);
         mSwitchPref.setTitle(R.string.interact_across_profiles_switch_enabled);
-        final ImageView horizontalArrowIcon = mHeader.findViewById(R.id.entity_header_swap_horiz);
+        final ImageView horizontalArrowIcon =
+                mHeader.findViewById(com.android.settingslib.widget.preference.layout.R.id.entity_header_swap_horiz);
         if (horizontalArrowIcon != null) {
             horizontalArrowIcon.setImageDrawable(
-                    mContext.getDrawable(R.drawable.ic_swap_horiz_blue));
+                    mContext.getDrawable(
+                            com.android.settingslib.widget.preference.layout.R.drawable.ic_swap_horiz_blue));
         }
     }
 
     private void disableSwitchPref() {
         mSwitchPref.setChecked(false);
         mSwitchPref.setTitle(R.string.interact_across_profiles_switch_disabled);
-        final ImageView horizontalArrowIcon = mHeader.findViewById(R.id.entity_header_swap_horiz);
+        final ImageView horizontalArrowIcon =
+                mHeader.findViewById(com.android.settingslib.widget.preference.layout.R.id.entity_header_swap_horiz);
         if (horizontalArrowIcon != null) {
             horizontalArrowIcon.setImageDrawable(
-                    mContext.getDrawable(R.drawable.ic_swap_horiz_grey));
+                    mContext.getDrawable(
+                            com.android.settingslib.widget.preference.layout.R.drawable.ic_swap_horiz_grey));
         }
     }
 
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java
index 8169072..432b423 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettings.java
@@ -17,7 +17,6 @@
 
 import static android.app.admin.DevicePolicyResources.Strings.Settings.CONNECTED_WORK_AND_PERSONAL_APPS_TITLE;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
@@ -32,6 +31,7 @@
 import android.util.Pair;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceScreen;
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java b/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java
index 6bee62c..00f0625 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceController.java
@@ -41,6 +41,8 @@
     private PreferenceFragmentCompat mParent;
     private NotificationManager mNm;
     private PackageManager mPm;
+    // The appOp representing this preference
+    private String mAppOpStr;
 
     public ApprovalPreferenceController(Context context, String key) {
         super(context, key);
@@ -71,6 +73,14 @@
         return this;
     }
 
+    /**
+     * Set the associated appOp for the Setting
+     */
+    public ApprovalPreferenceController setAppOpStr(String appOpStr) {
+        mAppOpStr = appOpStr;
+        return this;
+    }
+
     @Override
     public int getAvailabilityStatus() {
         return AVAILABLE;
@@ -107,8 +117,20 @@
                 return false;
             }
         });
-        preference.updateState(
-                mCn.getPackageName(), mPkgInfo.applicationInfo.uid, isAllowedCn, isEnabled);
+
+        if (android.security.Flags.extendEcmToAllSettings()) {
+            if (!isAllowedCn && !isEnabled) {
+                preference.setEnabled(false);
+            } else if (isEnabled) {
+                preference.setEnabled(true);
+            } else {
+                preference.checkEcmRestrictionAndSetDisabled(mAppOpStr,
+                        mCn.getPackageName(), mPkgInfo.applicationInfo.uid);
+            }
+        } else {
+            preference.updateState(
+                    mCn.getPackageName(), mPkgInfo.applicationInfo.uid, isAllowedCn, isEnabled);
+        }
     }
 
     public void disable(final ComponentName cn) {
@@ -117,7 +139,11 @@
         AsyncTask.execute(() -> {
             if (!mNm.isNotificationPolicyAccessGrantedForPackage(
                     cn.getPackageName())) {
-                mNm.removeAutomaticZenRules(cn.getPackageName());
+                if (android.app.Flags.modesApi()) {
+                    mNm.removeAutomaticZenRules(cn.getPackageName(), /* fromUser= */ true);
+                } else {
+                    mNm.removeAutomaticZenRules(cn.getPackageName());
+                }
             }
         });
     }
@@ -135,7 +161,7 @@
     void logSpecialPermissionChange(boolean enable, String packageName) {
         final int logCategory = enable ? SettingsEnums.APP_SPECIAL_PERMISSION_NOTIVIEW_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_NOTIVIEW_DENY;
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider().action(mContext,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(mContext,
                 logCategory, packageName);
     }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java b/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
index 8ccf7ed..b636264 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
@@ -109,7 +109,6 @@
         mHeaderController = EntityHeaderController.newInstance(
                 mFragment.getActivity(), mFragment, pref.findViewById(R.id.entity_header));
         pref = mHeaderController
-                .setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
                 .setIcon(IconDrawableFactory.newInstance(mFragment.getActivity())
                         .getBadgedIcon(mPackageInfo.applicationInfo))
                 .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
@@ -122,7 +121,7 @@
                 .setHasAppInfoLink(true)
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE)
-                .done(mFragment.getActivity(), mContext);
+                .done(mContext);
         pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
     }
 }
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java b/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java
index 17dabe4..89767dd 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/NotificationAccessDetails.java
@@ -21,6 +21,7 @@
 import static com.android.settings.applications.AppInfoBase.ARG_PACKAGE_NAME;
 
 import android.Manifest;
+import android.app.AppOpsManager;
 import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
 import android.companion.ICompanionDeviceManager;
@@ -102,6 +103,7 @@
                 .setCn(mComponentName)
                 .setNm(context.getSystemService(NotificationManager.class))
                 .setPm(mPm)
+                .setAppOpStr(AppOpsManager.OPSTR_ACCESS_NOTIFICATIONS)
                 .setParent(this);
         use(HeaderPreferenceController.class)
                 .setFragment(this)
diff --git a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureDetails.java
index 1c322ff..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);
@@ -124,7 +124,7 @@
                 ? SettingsEnums.APP_PICTURE_IN_PICTURE_ALLOW
                 : SettingsEnums.APP_PICTURE_IN_PICTURE_DENY;
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         metricsFeatureProvider.action(
                 metricsFeatureProvider.getAttribution(getActivity()),
                 logCategory,
diff --git a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
index 3c90bf3..f19b68a 100644
--- a/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
+++ b/src/com/android/settings/applications/specialaccess/pictureinpicture/PictureInPictureSettings.java
@@ -17,7 +17,6 @@
 
 import static android.content.pm.PackageManager.GET_ACTIVITIES;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.pm.ActivityInfo;
@@ -32,6 +31,7 @@
 import android.util.Pair;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
diff --git a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
index 54ac63e..4c9f813 100644
--- a/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
+++ b/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsAccess.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.applications.specialaccess.premiumsms;
 
-import android.annotation.Nullable;
 import android.app.Application;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -24,6 +23,7 @@
 import android.telephony.SmsManager;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.DropDownPreference;
 import androidx.preference.Preference;
@@ -126,7 +126,7 @@
         if (category != SmsManager.PREMIUM_SMS_CONSENT_UNKNOWN) {
             // TODO(117860032): Category is wrong. It should be defined in SettingsEnums.
             final MetricsFeatureProvider metricsFeatureProvider =
-                    FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
+                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
             metricsFeatureProvider.action(
                     metricsFeatureProvider.getAttribution(getActivity()),
                     category,
diff --git a/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java b/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java
index a70d03e..d35a492 100644
--- a/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java
+++ b/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerSettings.java
@@ -69,7 +69,7 @@
         int logCategory = enable ? SettingsEnums.APP_SPECIAL_PERMISSION_VRHELPER_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_VRHELPER_DENY;
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         metricsFeatureProvider.action(
                 metricsFeatureProvider.getAttribution(getActivity()),
                 logCategory,
diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
index 2c52a8c..6f4137c 100644
--- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
+++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessController.java
@@ -23,7 +23,6 @@
 import android.content.Context;
 import android.content.pm.PackageInfo;
 import android.content.pm.ParceledListSlice;
-import android.os.AsyncTask;
 import android.os.RemoteException;
 import android.util.ArraySet;
 import android.util.Log;
@@ -102,15 +101,19 @@
     }
 
     public static void deleteRules(final Context context, final String pkg) {
-       final NotificationManager mgr = context.getSystemService(NotificationManager.class);
-       mgr.removeAutomaticZenRules(pkg);
+        final NotificationManager mgr = context.getSystemService(NotificationManager.class);
+        if (android.app.Flags.modesApi()) {
+            mgr.removeAutomaticZenRules(pkg, /* fromUser= */ true);
+        } else {
+            mgr.removeAutomaticZenRules(pkg);
+        }
     }
 
     @VisibleForTesting
     static void logSpecialPermissionChange(boolean enable, String packageName, Context context) {
         int logCategory = enable ? SettingsEnums.APP_SPECIAL_PERMISSION_DND_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_DND_DENY;
-        FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(context,
                 logCategory, packageName);
     }
 }
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/aware/AwareFeatureProvider.java b/src/com/android/settings/aware/AwareFeatureProvider.java
deleted file mode 100644
index a4e9c0c..0000000
--- a/src/com/android/settings/aware/AwareFeatureProvider.java
+++ /dev/null
@@ -1,36 +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.aware;
-
-import android.content.Context;
-
-import androidx.fragment.app.Fragment;
-
-public interface AwareFeatureProvider {
-    /** Returns true if the aware sensor is supported. */
-    boolean isSupported(Context context);
-
-    /** Returns true if the aware feature is enabled. */
-    boolean isEnabled(Context context);
-
-    /** Show information dialog. */
-    void showRestrictionDialog(Fragment parent);
-
-    /** Return Quick Gestures Summary. */
-    CharSequence getGestureSummary(Context context, boolean sensorSupported,
-            boolean assistGestureEnabled, boolean assistGestureSilenceEnabled);
-}
diff --git a/src/com/android/settings/aware/AwareFeatureProviderImpl.java b/src/com/android/settings/aware/AwareFeatureProviderImpl.java
deleted file mode 100644
index 6f80d8a..0000000
--- a/src/com/android/settings/aware/AwareFeatureProviderImpl.java
+++ /dev/null
@@ -1,43 +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.aware;
-
-import android.content.Context;
-
-import androidx.fragment.app.Fragment;
-
-public class AwareFeatureProviderImpl implements AwareFeatureProvider {
-    @Override
-    public boolean isSupported(Context context) {
-        return false;
-    }
-
-    @Override
-    public boolean isEnabled(Context context) {
-        return false;
-    }
-
-    @Override
-    public void showRestrictionDialog(Fragment parent) {
-    }
-
-    @Override
-    public CharSequence getGestureSummary(Context context, boolean sensorSupported,
-            boolean assistGestureEnabled, boolean assistGestureSilenceEnabled) {
-        return null;
-    }
-}
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/BackupSettingsHelper.java b/src/com/android/settings/backup/BackupSettingsHelper.java
index b55172e..258f54d 100644
--- a/src/com/android/settings/backup/BackupSettingsHelper.java
+++ b/src/com/android/settings/backup/BackupSettingsHelper.java
@@ -24,7 +24,6 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -51,24 +50,6 @@
     }
 
     /**
-     * If there is only one profile, show whether the backup is on or off.
-     * Otherwise, show nothing.
-     */
-    public String getSummary() {
-        UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
-        if (userManager.getUserProfiles().size() == 1) {
-            try {
-                int resId = mBackupManager.isBackupEnabled()
-                        ? R.string.backup_summary_state_on : R.string.backup_summary_state_off;
-                return mContext.getText(resId).toString();
-            } catch (RemoteException e) {
-                Log.e(TAG, "Error getting isBackupEnabled", e);
-            }
-        }
-        return null;
-    }
-
-    /**
      * Returns an intent to launch backup settings from backup transport if the intent was provided
      * by the transport. Otherwise returns the intent to launch the default backup settings screen.
      *
diff --git a/src/com/android/settings/backup/SettingsBackupHelper.java b/src/com/android/settings/backup/SettingsBackupHelper.java
index a682df8..04935a7 100644
--- a/src/com/android/settings/backup/SettingsBackupHelper.java
+++ b/src/com/android/settings/backup/SettingsBackupHelper.java
@@ -16,29 +16,47 @@
 
 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;
+import com.android.settings.onboarding.OnboardingFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.shortcut.CreateShortcutPreferenceController;
 
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import com.android.settings.flags.Flags;
 
 /**
  * Backup agent for Settings APK
  */
 public class SettingsBackupHelper extends BackupAgentHelper {
+    private static final String PREF_LOCALE_NOTIFICATION = "localeNotificationSharedPref";
+    public static final String SOUND_BACKUP_HELPER = "SoundSettingsBackup";
 
     @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));
+        if (Flags.enableSoundBackup()) {
+            OnboardingFeatureProvider onboardingFeatureProvider =
+                    FeatureFactory.getFeatureFactory().getOnboardingFeatureProvider();
+            if (onboardingFeatureProvider != null) {
+                addHelper(SOUND_BACKUP_HELPER, onboardingFeatureProvider.
+                        getSoundBackupHelper(this, this.getBackupRestoreEventLogger()));
+            }
+        }
     }
 
     @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/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index ebbe2e8..73e1af1 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -24,7 +24,6 @@
 
 import static com.google.android.setupdesign.transition.TransitionHelper.TRANSITION_FADE_THROUGH;
 
-import android.annotation.NonNull;
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
@@ -45,6 +44,7 @@
 import android.os.UserManager;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.internal.util.FrameworkStatsLog;
@@ -238,7 +238,7 @@
                 if (parentalConsent && isMultiSensor && mIsFaceEnrollable) {
                     // Exclude face enrollment from setup wizard if feature config not supported
                     // in setup wizard flow, we still allow user enroll faces through settings.
-                    mIsFaceEnrollable = FeatureFactory.getFactory(getApplicationContext())
+                    mIsFaceEnrollable = FeatureFactory.getFeatureFactory()
                             .getFaceFeatureProvider()
                             .isSetupWizardSupported(getApplicationContext());
                     Log.d(TAG, "config_suw_support_face_enroll: " + mIsFaceEnrollable);
@@ -424,7 +424,9 @@
     // handles responses while parental consent is pending
     private void handleOnActivityResultWhileConsenting(
             int requestCode, int resultCode, Intent data) {
-        overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
+        overridePendingTransition(
+                com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                com.google.android.setupdesign.R.anim.sud_slide_next_out);
 
         switch (requestCode) {
             case REQUEST_CHOOSE_LOCK:
diff --git a/src/com/android/settings/biometrics/BiometricEnrollBase.java b/src/com/android/settings/biometrics/BiometricEnrollBase.java
index 6e11079..335d0b9 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollBase.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollBase.java
@@ -18,7 +18,6 @@
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 
-import android.annotation.Nullable;
 import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.content.res.ColorStateList;
@@ -32,6 +31,7 @@
 import android.widget.TextView;
 
 import androidx.annotation.ColorInt;
+import androidx.annotation.Nullable;
 
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
@@ -40,6 +40,7 @@
 import com.android.settings.core.InstrumentedActivity;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
 import com.android.systemui.unfold.compat.ScreenSizeFoldProvider;
 import com.android.systemui.unfold.updates.FoldProvider;
 
@@ -171,8 +172,16 @@
             mNextLaunched = savedInstanceState.getBoolean(EXTRA_KEY_NEXT_LAUNCHED);
         }
         mUserId = getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
-        mPostureGuidanceIntent = FeatureFactory.getFactory(getApplicationContext())
+        mPostureGuidanceIntent = FeatureFactory.getFeatureFactory()
                 .getFaceFeatureProvider().getPostureGuidanceIntent(getApplicationContext());
+
+        // Remove the existing split screen dialog.
+        BiometricsSplitScreenDialog dialog =
+                (BiometricsSplitScreenDialog) getSupportFragmentManager()
+                        .findFragmentByTag(BiometricsSplitScreenDialog.class.getName());
+        if (dialog != null) {
+            getSupportFragmentManager().beginTransaction().remove(dialog).commit();
+        }
     }
 
     @Override
@@ -338,4 +347,8 @@
         final ColorStateList stateList = Utils.getColorAttr(this, android.R.attr.windowBackground);
         return stateList != null ? stateList.getDefaultColor() : Color.TRANSPARENT;
     }
+
+    protected boolean shouldShowSplitScreenDialog() {
+        return isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(this);
+    }
 }
diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
index 46f534d..1b9a70f 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
@@ -154,6 +154,12 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        if (shouldShowSplitScreenDialog()) {
+            BiometricsSplitScreenDialog
+                    .newInstance(getModality(), !WizardManagerHelper.isAnySetupWizard(getIntent()))
+                    .show(getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName());
+        }
+
         if (savedInstanceState != null) {
             mConfirmingCredentials = savedInstanceState.getBoolean(KEY_CONFIRMING_CREDENTIALS);
             mHasScrolledToBottom = savedInstanceState.getBoolean(KEY_SCROLLED_TO_BOTTOM);
@@ -293,6 +299,13 @@
 
     @Override
     protected void onNextButtonClick(View view) {
+        // If it's not on suw, this method shouldn't be accessed.
+        if (shouldShowSplitScreenDialog() && WizardManagerHelper.isAnySetupWizard(getIntent())) {
+            BiometricsSplitScreenDialog.newInstance(getModality(), false /*destroyActivity*/)
+                    .show(getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName());
+            return;
+        }
+
         mNextClicked = true;
         if (checkMaxEnrolled() == 0) {
             // Lock thingy is already set up, launch directly to the next page
@@ -367,7 +380,9 @@
                 updatePasswordQuality();
                 final boolean handled = onSetOrConfirmCredentials(data);
                 if (!handled) {
-                    overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
+                    overridePendingTransition(
+                            com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                            com.google.android.setupdesign.R.anim.sud_slide_next_out);
                     getNextButton().setEnabled(false);
                     getChallenge(((sensorId, userId, challenge) -> {
                         mSensorId = sensorId;
@@ -387,7 +402,9 @@
             if (resultCode == RESULT_OK && data != null) {
                 final boolean handled = onSetOrConfirmCredentials(data);
                 if (!handled) {
-                    overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
+                    overridePendingTransition(
+                            com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                            com.google.android.setupdesign.R.anim.sud_slide_next_out);
                     getNextButton().setEnabled(false);
                     getChallenge(((sensorId, userId, challenge) -> {
                         mSensorId = sensorId;
@@ -403,7 +420,9 @@
                 finish();
             }
         } else if (requestCode == LEARN_MORE_REQUEST) {
-            overridePendingTransition(R.anim.sud_slide_back_in, R.anim.sud_slide_back_out);
+            overridePendingTransition(
+                    com.google.android.setupdesign.R.anim.sud_slide_back_in,
+                    com.google.android.setupdesign.R.anim.sud_slide_back_out);
         } else if (requestCode == ENROLL_NEXT_BIOMETRIC_REQUEST
                 || cameFromMultiBioFpAuthAddAnother) {
             if (isResultFinished(resultCode)) {
diff --git a/src/com/android/settings/biometrics/BiometricEnrollSidecar.java b/src/com/android/settings/biometrics/BiometricEnrollSidecar.java
index 369fa4b..78f6087 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollSidecar.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollSidecar.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.biometrics;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
@@ -24,6 +23,8 @@
 import android.os.Handler;
 import android.os.UserHandle;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
diff --git a/src/com/android/settings/biometrics/BiometricHandoffActivity.java b/src/com/android/settings/biometrics/BiometricHandoffActivity.java
index 7f28ced..263bab1 100644
--- a/src/com/android/settings/biometrics/BiometricHandoffActivity.java
+++ b/src/com/android/settings/biometrics/BiometricHandoffActivity.java
@@ -56,7 +56,7 @@
                     .setText(R.string.biometric_settings_hand_back_to_guardian_ok)
                     .setButtonType(FooterButton.ButtonType.NEXT)
                     .setListener(this::onNextButtonClick)
-                    .setTheme(R.style.SudGlifButton_Primary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                     .build();
         }
         return mPrimaryFooterButton;
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/BiometricStatusPreferenceController.java b/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java
index 2f9ae6b..b9d2072 100644
--- a/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java
@@ -71,7 +71,7 @@
     public BiometricStatusPreferenceController(Context context, String key) {
         super(context, key);
         mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context);
         mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java
index 4e1a2f3..53892bd 100644
--- a/src/com/android/settings/biometrics/BiometricUtils.java
+++ b/src/com/android/settings/biometrics/BiometricUtils.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.biometrics;
 
+import static android.util.FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT;
+
 import android.annotation.IntDef;
 import android.app.Activity;
 import android.app.PendingIntent;
@@ -249,20 +251,22 @@
      */
     public static Intent getFingerprintFindSensorIntent(@NonNull Context context,
             @NonNull Intent activityIntent) {
-        if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
-            final Intent intent = new Intent(context, FingerprintEnrollmentActivity.class);
+        final boolean isSuw =  WizardManagerHelper.isAnySetupWizard(activityIntent);
+        final Intent intent;
+        if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
+            intent = new Intent(context, isSuw
+                    ? FingerprintEnrollmentActivity.SetupActivity.class
+                    : FingerprintEnrollmentActivity.class);
             intent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true);
-            if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
-                SetupWizardUtils.copySetupExtras(activityIntent, intent);
-            }
-            return intent;
-        } else if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
-            Intent intent = new Intent(context, SetupFingerprintEnrollFindSensor.class);
-            SetupWizardUtils.copySetupExtras(activityIntent, intent);
-            return intent;
         } else {
-            return new Intent(context, FingerprintEnrollFindSensor.class);
+            intent = new Intent(context, isSuw
+                    ? SetupFingerprintEnrollFindSensor.class
+                    : FingerprintEnrollFindSensor.class);
         }
+        if (isSuw) {
+            SetupWizardUtils.copySetupExtras(activityIntent, intent);
+        }
+        return intent;
     }
 
     /**
@@ -272,19 +276,21 @@
      */
     public static Intent getFingerprintIntroIntent(@NonNull Context context,
             @NonNull Intent activityIntent) {
-        if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
-            final Intent intent = new Intent(context, FingerprintEnrollmentActivity.class);
-            if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
-                WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
-            }
-            return intent;
-        } else if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
-            Intent intent = new Intent(context, SetupFingerprintEnrollIntroduction.class);
-            WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
-            return intent;
+        final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent);
+        final Intent intent;
+        if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
+            intent = new Intent(context, isSuw
+                    ? FingerprintEnrollmentActivity.SetupActivity.class
+                    : FingerprintEnrollmentActivity.class);
         } else {
-            return new Intent(context, FingerprintEnrollIntroduction.class);
+            intent = new Intent(context, isSuw
+                    ? SetupFingerprintEnrollIntroduction.class
+                    : FingerprintEnrollIntroduction.class);
         }
+        if (isSuw) {
+            WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
+        }
+        return intent;
     }
 
     /**
@@ -508,7 +514,7 @@
      * Returns true if the device supports Face enrollment in SUW flow
      */
     public static boolean isFaceSupportedInSuw(Context context) {
-        return FeatureFactory.getFactory(context).getFaceFeatureProvider().isSetupWizardSupported(
+        return FeatureFactory.getFeatureFactory().getFaceFeatureProvider().isSetupWizardSupported(
                 context);
     }
 
diff --git a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
index 7051b70..1e1a142 100644
--- a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
@@ -16,11 +16,12 @@
 
 package com.android.settings.biometrics;
 
-import android.annotation.Nullable;
 import android.content.Intent;
 import android.os.UserHandle;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.password.ChooseLockSettingsHelper;
 
 /**
@@ -96,6 +97,14 @@
     }
 
     public void startEnrollment() {
+        // If it's in multi window mode, dialog is shown, do not start enrollment.
+        if (shouldShowSplitScreenDialog()) {
+            return;
+        }
+        startEnrollmentInternal();
+    }
+
+    protected void startEnrollmentInternal() {
         mSidecar = (BiometricEnrollSidecar) getSupportFragmentManager()
                 .findFragmentByTag(TAG_SIDECAR);
         if (mSidecar == null) {
diff --git a/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java b/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java
index c1ecee8..79feb0b 100644
--- a/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java
+++ b/src/com/android/settings/biometrics/BiometricsSplitScreenDialog.java
@@ -18,6 +18,8 @@
 
 import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
 
+import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_SKIP;
+
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
 import android.content.DialogInterface;
@@ -34,23 +36,33 @@
  */
 public class BiometricsSplitScreenDialog extends InstrumentedDialogFragment {
     private static final String KEY_BIOMETRICS_MODALITY = "biometrics_modality";
+    private static final String KEU_DESTROY_ACTIVITY = "destroy_activity";
 
     @BiometricAuthenticator.Modality
     private int mBiometricsModality;
+    private boolean mDestroyActivity;
 
-    /** Returns the new instance of the class */
+    /**
+     * Returns the new instance of the class
+     * @param biometricsModality Biometric modality.
+     * @param destroyActivity Whether to destroy the activity
+     * @return the current {@link BiometricsSplitScreenDialog}
+     */
     public static BiometricsSplitScreenDialog newInstance(
-            @BiometricAuthenticator.Modality int biometricsModality) {
+            @BiometricAuthenticator.Modality int biometricsModality, boolean destroyActivity) {
         final BiometricsSplitScreenDialog dialog = new BiometricsSplitScreenDialog();
         final Bundle args = new Bundle();
         args.putInt(KEY_BIOMETRICS_MODALITY, biometricsModality);
+        args.putBoolean(KEU_DESTROY_ACTIVITY, destroyActivity);
         dialog.setArguments(args);
+        dialog.setCancelable(false);
         return dialog;
     }
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         mBiometricsModality = getArguments().getInt(KEY_BIOMETRICS_MODALITY);
+        mDestroyActivity = getArguments().getBoolean(KEU_DESTROY_ACTIVITY);
         int titleId;
         int messageId;
         switch (mBiometricsModality) {
@@ -65,9 +77,16 @@
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         builder.setTitle(titleId)
                 .setMessage(messageId)
+                .setCancelable(false)
                 .setPositiveButton(
                         R.string.biometric_settings_add_biometrics_in_split_mode_ok,
-                        (DialogInterface.OnClickListener) (dialog, which) -> dialog.dismiss());
+                        (DialogInterface.OnClickListener) (dialog, which) -> {
+                            dialog.dismiss();
+                            if (mDestroyActivity) {
+                                getActivity().setResult(RESULT_SKIP);
+                                getActivity().finish();
+                            }
+                        });
         return builder.create();
     }
 
diff --git a/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetup.java b/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetup.java
index 1f30e56..ce12c59 100644
--- a/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetup.java
+++ b/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetup.java
@@ -88,7 +88,7 @@
                         .setText(R.string.cancel)
                         .setListener(this::onCancelClick)
                         .setButtonType(FooterButton.ButtonType.CANCEL)
-                        .setTheme(R.style.SudGlifButton_Secondary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                         .build()
         );
 
@@ -97,7 +97,7 @@
                         .setText(R.string.security_settings_activeunlock_biometric_setup)
                         .setListener(this::onNextButtonClick)
                         .setButtonType(FooterButton.ButtonType.NEXT)
-                        .setTheme(R.style.SudGlifButton_Primary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                         .build()
         );
     }
diff --git a/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java b/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java
index 4d92598..2eee9df 100644
--- a/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java
+++ b/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtils.java
@@ -191,13 +191,10 @@
     public String getIntroForActiveUnlock() {
         final boolean faceAllowed = Utils.hasFaceHardware(mContext);
         final boolean fingerprintAllowed = Utils.hasFingerprintHardware(mContext);
-        if (useBiometricFailureLayout()) {
+        if (isAvailable()) {
             int introRes = getIntroRes(faceAllowed, fingerprintAllowed);
             return introRes == 0 ? "" : mContext.getString(introRes);
         }
-        if (useUnlockIntentLayout() && (!faceAllowed || !fingerprintAllowed)) {
-            return "";
-        }
         return mContext.getString(R.string.biometric_settings_intro);
     }
 
diff --git a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
index 69ae9a7..b174788 100644
--- a/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
+++ b/src/com/android/settings/biometrics/combination/BiometricsSettingsBase.java
@@ -16,8 +16,6 @@
 package com.android.settings.biometrics.combination;
 
 import static android.app.Activity.RESULT_OK;
-import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
-import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
 
 import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
 
@@ -48,12 +46,10 @@
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricStatusPreferenceController;
 import com.android.settings.biometrics.BiometricUtils;
-import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.core.SettingsBaseActivity;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.password.ChooseLockSettingsHelper;
-import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.transition.SettingsTransitionHelper;
 
@@ -167,18 +163,6 @@
         // since FingerprintSettings and FaceSettings revoke the challenge when finishing.
         if (getFacePreferenceKey().equals(key)) {
             mDoNotFinishActivity = true;
-
-            //  If it's split mode and there is no enrolled face, show the dialog. (if there is
-            //  enrolled face, FaceSettingsEnrollButtonPreferenceController#onClick will handle
-            //  the dialog)
-            if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(
-                    getActivity()) && !mFaceManager.hasEnrolledTemplates(mUserId)) {
-                BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
-                        getActivity().getSupportFragmentManager(),
-                        BiometricsSplitScreenDialog.class.getName());
-                return true;
-            }
-
             mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
                 final Activity activity = getActivity();
                 if (activity == null || activity.isFinishing()) {
@@ -209,18 +193,6 @@
             return true;
         } else if (getFingerprintPreferenceKey().equals(key)) {
             mDoNotFinishActivity = true;
-
-            //  If it's split mode and there is no enrolled fingerprint, show the dialog. (if
-            //  there is enrolled fingerprint, FingerprintSettingsFragment#onPreferenceTreeClick
-            //  will handle the dialog)
-            if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(
-                    getActivity()) && !mFingerprintManager.hasEnrolledFingerprints(mUserId)) {
-                BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
-                        getActivity().getSupportFragmentManager(),
-                        BiometricsSplitScreenDialog.class.getName());
-                return true;
-            }
-
             mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
                 final Activity activity = getActivity();
                 if (activity == null || activity.isFinishing()) {
@@ -328,8 +300,9 @@
                 if (BiometricUtils.containsGatekeeperPasswordHandle(data)) {
                     mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(data);
                     if (!TextUtils.isEmpty(mRetryPreferenceKey)) {
-                        getActivity().overridePendingTransition(R.anim.sud_slide_next_in,
-                                R.anim.sud_slide_next_out);
+                        getActivity().overridePendingTransition(
+                                com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                                com.google.android.setupdesign.R.anim.sud_slide_next_out);
                         retryPreferenceKey(mRetryPreferenceKey, mRetryPreferenceExtra);
                     }
                 } else {
diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java
index 8cc6bc4..2cd239e 100644
--- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java
+++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtils.java
@@ -159,4 +159,12 @@
     public String getProfileSettingsClassName() {
         return Settings.CombinedBiometricProfileSettingsActivity.class.getName();
     }
+
+    /**
+     * Returns the class name of the Settings page corresponding to combined biometric settings for
+     * Private profile.
+     */
+    public String getPrivateProfileSettingsClassName() {
+        return Settings.PrivateSpaceBiometricSettingsActivity.class.getName();
+    }
 }
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 4ef4752..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);
@@ -117,7 +137,8 @@
                             .setText(R.string.skip_label)
                             .setListener(this::onSkipButtonClick)
                             .setButtonType(FooterButton.ButtonType.SKIP)
-                            .setTheme(R.style.SudGlifButton_Secondary)
+                            .setTheme(
+                                    com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                             .build()
             );
         } else {
@@ -126,7 +147,8 @@
                             .setText(R.string.security_settings_face_enroll_introduction_cancel)
                             .setListener(this::onSkipButtonClick)
                             .setButtonType(FooterButton.ButtonType.CANCEL)
-                            .setTheme(R.style.SudGlifButton_Secondary)
+                            .setTheme(
+                                    com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                             .build()
             );
         }
@@ -135,7 +157,7 @@
                 .setText(R.string.security_settings_face_enroll_education_start)
                 .setListener(this::onNextButtonClick)
                 .setButtonType(FooterButton.ButtonType.NEXT)
-                .setTheme(R.style.SudGlifButton_Primary)
+                .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                 .build();
 
         final AccessibilityManager accessibilityManager = getApplicationContext().getSystemService(
@@ -153,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/FaceEnrollEnrolling.java b/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
index 68fbe38..e8bd0ef 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollEnrolling.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.biometrics.face;
 
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
+
 import android.app.settings.SettingsEnums;
 import android.content.Intent;
 import android.hardware.face.FaceManager;
@@ -33,6 +35,7 @@
 import com.android.settings.biometrics.BiometricErrorDialog;
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.biometrics.BiometricsEnrollEnrolling;
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.slices.CustomSliceRegistry;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
@@ -88,6 +91,10 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        if (shouldShowSplitScreenDialog()) {
+            BiometricsSplitScreenDialog.newInstance(TYPE_FACE, true /*destroyActivity*/)
+                    .show(getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName());
+        }
         setContentView(R.layout.face_enroll_enrolling);
         setHeaderText(R.string.security_settings_face_enroll_repeat_title);
         mErrorText = findViewById(R.id.error_text);
@@ -100,7 +107,7 @@
                         .setText(R.string.security_settings_face_enroll_enrolling_skip)
                         .setListener(this::onSkipButtonClick)
                         .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                         .build()
         );
 
@@ -134,7 +141,7 @@
     }
 
     @Override
-    public void startEnrollment() {
+    protected void startEnrollmentInternal() {
         super.startEnrollment();
         mPreviewFragment = (FaceEnrollPreviewFragment) getSupportFragmentManager()
                 .findFragmentByTag(TAG_FACE_PREVIEW);
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollFinish.java b/src/com/android/settings/biometrics/face/FaceEnrollFinish.java
index 6e99cdb..16aeeb0 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollFinish.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollFinish.java
@@ -43,7 +43,7 @@
                         .setText(R.string.security_settings_face_enroll_done)
                         .setListener(this::onNextButtonClick)
                         .setButtonType(FooterButton.ButtonType.NEXT)
-                        .setTheme(R.style.SudGlifButton_Primary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                         .build()
         );
     }
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index bea0c33..eb50e08 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -537,7 +537,7 @@
                     .setText(R.string.security_settings_face_enroll_introduction_agree)
                     .setButtonType(FooterButton.ButtonType.OPT_IN)
                     .setListener(this::onNextButtonClick)
-                    .setTheme(R.style.SudGlifButton_Primary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                     .build();
         }
         return mPrimaryFooterButton;
@@ -551,7 +551,7 @@
                     .setText(R.string.security_settings_face_enroll_introduction_no_thanks)
                     .setListener(this::onSkipButtonClick)
                     .setButtonType(FooterButton.ButtonType.NEXT)
-                    .setTheme(R.style.SudGlifButton_Primary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                     .build();
         }
         return mSecondaryFooterButton;
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 2e94404..197aca0 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -18,7 +18,6 @@
 
 import static android.app.Activity.RESULT_OK;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_SETTINGS_FOR_WORK_TITLE;
-import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
 
 import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
 import static com.android.settings.biometrics.BiometricEnrollBase.ENROLL_REQUEST;
@@ -43,12 +42,10 @@
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
-import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.search.SearchIndexable;
 import com.android.settingslib.widget.LayoutPreference;
@@ -104,26 +101,8 @@
         mEnrollButton.setVisible(true);
     };
 
-    private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener =
-            new FaceSettingsEnrollButtonPreferenceController.Listener() {
-                @Override
-                public boolean onShowSplitScreenDialog() {
-                    if (getActivity().isInMultiWindowMode()
-                            && !ActivityEmbeddingUtils.isActivityEmbedded(getActivity())) {
-                        // If it's in split mode, show the error dialog.
-                        BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
-                                getActivity().getSupportFragmentManager(),
-                                BiometricsSplitScreenDialog.class.getName());
-                        return true;
-                    }
-                    return false;
-                }
-
-                @Override
-                public void onStartEnrolling(Intent intent) {
-                    FaceSettings.this.startActivityForResult(intent, ENROLL_REQUEST);
-                }
-            };
+    private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener = intent ->
+            startActivityForResult(intent, ENROLL_REQUEST);
 
     /**
      * @param context
@@ -182,7 +161,7 @@
 
         mUserId = getActivity().getIntent().getIntExtra(
                 Intent.EXTRA_USER_ID, UserHandle.myUserId());
-        mFaceFeatureProvider = FeatureFactory.getFactory(getContext()).getFaceFeatureProvider();
+        mFaceFeatureProvider = FeatureFactory.getFeatureFactory().getFaceFeatureProvider();
 
         if (mUserManager.getUserInfo(mUserId).isManagedProfile()) {
             getActivity().setTitle(
@@ -418,13 +397,9 @@
                 }
 
                 private boolean isAttentionSupported(Context context) {
-                    FaceFeatureProvider featureProvider = FeatureFactory.getFactory(
-                            context).getFaceFeatureProvider();
-                    boolean isAttentionSupported = false;
-                    if (featureProvider != null) {
-                        isAttentionSupported = featureProvider.isAttentionSupported(context);
-                    }
-                    return isAttentionSupported;
+                    FaceFeatureProvider featureProvider =
+                            FeatureFactory.getFeatureFactory().getFaceFeatureProvider();
+                    return featureProvider.isAttentionSupported(context);
                 }
 
                 private boolean hasEnrolledBiometrics(Context context) {
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/face/FaceSettingsEnrollButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java
index 50e4248..e5f7c4f 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceController.java
@@ -75,11 +75,6 @@
 
     @Override
     public void onClick(View v) {
-        // If it's in multi window mode, do not start the introduction intent.
-        if (mListener != null && mListener.onShowSplitScreenDialog()) {
-            return;
-        }
-
         mIsClicked = true;
         final Intent intent = new Intent();
         intent.setClassName(SETTINGS_PACKAGE_NAME, FaceEnrollIntroduction.class.getName());
@@ -121,12 +116,6 @@
      */
     public interface Listener {
         /**
-         * Called to check whether to show dialog in split screen mode
-         * @return Whether split screen warning dialog shown.
-         */
-        boolean onShowSplitScreenDialog();
-
-        /**
          * Called when the user has indicated an intent to begin enrolling a new face.
          * @param intent The Intent that should be used to launch face enrollment.
          */
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceController.java
index 0ce02ab..e2123f0 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceController.java
@@ -49,7 +49,7 @@
 
     public FaceSettingsFooterPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mProvider = FeatureFactory.getFactory(context).getFaceFeatureProvider();
+        mProvider = FeatureFactory.getFeatureFactory().getFaceFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
index 4b2e336..797364b 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
@@ -178,7 +178,7 @@
         super(context, preferenceKey);
         mContext = context;
         mFaceManager = context.getSystemService(FaceManager.class);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mFaceUpdater = new FaceUpdater(context, mFaceManager);
     }
 
diff --git a/src/com/android/settings/biometrics/face/FaceUpdater.java b/src/com/android/settings/biometrics/face/FaceUpdater.java
index 3a1f77c..57c1195 100644
--- a/src/com/android/settings/biometrics/face/FaceUpdater.java
+++ b/src/com/android/settings/biometrics/face/FaceUpdater.java
@@ -50,8 +50,9 @@
     /** Wrapper around the {@link FaceManager#enroll} method. */
     public void enroll(int userId, byte[] hardwareAuthToken, CancellationSignal cancel,
             FaceManager.EnrollmentCallback callback, int[] disabledFeatures) {
-        mFaceManager.enroll(userId, hardwareAuthToken, cancel,
-                new NotifyingEnrollmentCallback(mContext, callback), disabledFeatures);
+        this.enroll(userId, hardwareAuthToken, cancel,
+                new NotifyingEnrollmentCallback(mContext, callback), disabledFeatures,
+                null, false);
     }
 
     /** Wrapper around the {@link FaceManager#enroll} method. */
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index a62bd67..175e8f9 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -16,13 +16,12 @@
 
 package com.android.settings.biometrics.fingerprint;
 
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
 import static android.text.Layout.HYPHENATION_FREQUENCY_NONE;
 
 import android.animation.Animator;
 import android.animation.ObjectAnimator;
 import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.RawRes;
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
@@ -53,15 +52,15 @@
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
-import android.view.animation.AccelerateDecelerateInterpolator;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
 import android.widget.ProgressBar;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import androidx.annotation.IdRes;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -69,10 +68,15 @@
 import com.android.settings.biometrics.BiometricEnrollSidecar;
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.biometrics.BiometricsEnrollEnrolling;
+import com.android.settings.biometrics.BiometricsSplitScreenDialog;
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
+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;
@@ -85,6 +89,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.
@@ -100,27 +105,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})
@@ -192,11 +192,16 @@
     private boolean mHaveShownSfpsRightEdgeLottie;
     private boolean mShouldShowLottie;
 
-    private ObjectAnimator mHelpAnimation;
+    private Animator mHelpAnimation;
 
     private OrientationEventListener mOrientationEventListener;
     private int mPreviousRotation = 0;
 
+    @NonNull
+    private SfpsEnrollmentFeature mSfpsEnrollmentFeature = new EmptySfpsEnrollmentFeature();
+    @Nullable
+    private UdfpsEnrollCalibrator mCalibrator;
+
     @VisibleForTesting
     protected boolean shouldShowLottie() {
         DisplayDensityUtils displayDensity = new DisplayDensityUtils(getApplicationContext());
@@ -204,6 +209,10 @@
         final int currentDensity = displayDensity.getDefaultDisplayDensityValues()
                 [currentDensityIndex];
         final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay();
+
+        if (getResources().getConfiguration().fontScale > 1) {
+            return false;
+        }
         return defaultDensity == currentDensity;
     }
 
@@ -216,15 +225,10 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-
-        if (isInMultiWindowMode()) {
-            final Toast splitUnsupportedToast = Toast.makeText(this,
-                    R.string.dock_multi_instances_not_supported_text, Toast.LENGTH_SHORT);
-            splitUnsupportedToast.show();
-            finish();
-            return;
+        if (shouldShowSplitScreenDialog()) {
+            BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT, true /*destroyActivity*/)
+                    .show(getSupportFragmentManager(), BiometricsSplitScreenDialog.class.getName());
         }
-
         if (savedInstanceState != null) {
             restoreSavedState(savedInstanceState);
         }
@@ -248,7 +252,15 @@
 
             setContentView(layout);
             setDescriptionText(R.string.security_settings_udfps_enroll_start_message);
+
+            if (Flags.udfpsEnrollCalibration()) {
+                mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
+                        .getUdfpsEnrollCalibrator(getApplicationContext(), savedInstanceState,
+                                getIntent());
+            }
         } else if (mCanAssumeSfps) {
+            mSfpsEnrollmentFeature = FeatureFactory.getFeatureFactory()
+                    .getFingerprintFeatureProvider().getSfpsEnrollmentFeature();
             setContentView(R.layout.sfps_enroll_enrolling);
             setHelpAnimation();
         } else {
@@ -282,7 +294,7 @@
                         .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
                         .setListener(this::onSkipButtonClick)
                         .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                         .build()
         );
 
@@ -333,16 +345,10 @@
     }
 
     private void setHelpAnimation() {
-        final float translationX = 40;
-        final int duration = 550;
         final RelativeLayout progressLottieLayout = findViewById(R.id.progress_lottie);
-        mHelpAnimation = ObjectAnimator.ofFloat(progressLottieLayout,
-                "translationX" /* propertyName */,
-                0, translationX, -1 * translationX, translationX, 0f);
-        mHelpAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
-        mHelpAnimation.setDuration(duration);
-        mHelpAnimation.setAutoCancel(false);
+        mHelpAnimation = mSfpsEnrollmentFeature.getHelpAnimator(progressLottieLayout);
     }
+
     @Override
     protected BiometricEnrollSidecar getSidecar() {
         final FingerprintEnrollSidecar sidecar = new FingerprintEnrollSidecar(this,
@@ -365,6 +371,11 @@
         super.onSaveInstanceState(outState);
         outState.putBoolean(KEY_STATE_CANCELED, mIsCanceled);
         outState.putInt(KEY_STATE_PREVIOUS_ROTATION, mPreviousRotation);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                mCalibrator.onSaveInstanceState(outState);
+            }
+        }
     }
 
     private void restoreSavedState(Bundle savedInstanceState) {
@@ -604,7 +615,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(
@@ -613,39 +625,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;
 
@@ -670,11 +691,19 @@
             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();
+        if (mCanAssumeSfps) {
+            mSfpsEnrollmentFeature.handleOnEnrollmentLottieComposition(view);
+        }
     }
 
     @EnrollStage
@@ -704,17 +733,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() {
@@ -745,22 +765,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
@@ -1175,4 +1204,33 @@
             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);
+        }
+
+        @Override
+        public Animator getHelpAnimator(@NonNull View target) {
+            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 aadc932..be3a769 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;
@@ -27,7 +29,6 @@
 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;
@@ -38,6 +39,8 @@
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricEnrollSidecar;
 import com.android.settings.biometrics.BiometricUtils;
+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;
@@ -74,6 +77,8 @@
     private ScreenSizeFoldProvider mScreenSizeFoldProvider;
     private boolean mIsFolded;
     private boolean mIsReverseDefaultRotation;
+    @Nullable
+    protected UdfpsEnrollCalibrator mCalibrator;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -95,23 +100,16 @@
                         .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
                         .setListener(this::onSkipButtonClick)
                         .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
+                        .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(R.style.SudGlifButton_Primary)
-                    .build()
-            );
 
             mIllustrationLottie = findViewById(R.id.illustration_lottie);
             AccessibilityManager am = getSystemService(AccessibilityManager.class);
@@ -164,12 +162,22 @@
 
         mAnimation = null;
         if (mCanAssumeUdfps) {
-            mIllustrationLottie.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    onStartButtonClick(v);
+            if (Flags.udfpsEnrollCalibration()) {
+                mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
+                        .getUdfpsEnrollCalibrator(getApplicationContext(), savedInstanceState,
+                                getIntent());
+                if (mCalibrator != null) {
+                    mCalibrator.onFindSensorPage(
+                            getLifecycle(),
+                            getSupportFragmentManager(),
+                            this::enableUdfpsLottieAndNextButton
+                    );
+                } else {
+                    enableUdfpsLottieAndNextButton();
                 }
-            });
+            } else {
+                enableUdfpsLottieAndNextButton();
+            }
         } else if (!mCanAssumeSfps) {
             View animationView = findViewById(R.id.fingerprint_sensor_location_animation);
             if (animationView instanceof FingerprintFindSensorAnimation) {
@@ -178,6 +186,25 @@
         }
     }
 
+    private void enableUdfpsLottieAndNextButton() {
+        if (isFinishing()) {
+            return;
+        }
+
+        if (mFooterBarMixin.getPrimaryButton() == null) {
+            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 +282,22 @@
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putBoolean(SAVED_STATE_IS_NEXT_CLICKED, mNextClicked);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                mCalibrator.onSaveInstanceState(outState);
+            }
+        }
+    }
+
+    @Override
+    protected Intent getFingerprintEnrollingIntent() {
+        final Intent ret = super.getFingerprintEnrollingIntent();
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                ret.putExtras(mCalibrator.getExtrasForNextIntent(true));
+            }
+        }
+        return ret;
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
index a5d198d..9c89f24 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
@@ -23,8 +23,10 @@
 import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
+import android.view.ViewGroup;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -32,6 +34,8 @@
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
+import com.android.settings.biometrics.fingerprint.feature.SfpsRestToUnlockFeature;
+import com.android.settings.overlay.FeatureFactory;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupcompat.template.FooterButton;
@@ -56,6 +60,8 @@
 
     private boolean mIsAddAnotherOrFinish;
 
+    private SfpsRestToUnlockFeature mSfpsRestToUnlockFeature;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -64,14 +70,20 @@
                 mFingerprintManager.getSensorPropertiesInternal();
         mCanAssumeSfps = props != null && props.size() == 1 && props.get(0).isAnySidefpsType();
         if (mCanAssumeSfps) {
+            mSfpsRestToUnlockFeature = FeatureFactory.getFeatureFactory()
+                    .getFingerprintFeatureProvider().getSfpsRestToUnlockFeature(this);
             setContentView(R.layout.sfps_enroll_finish);
+            setUpRestToUnlockLayout();
         } else {
             setContentView(R.layout.fingerprint_enroll_finish);
         }
         setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title);
         setDescriptionText(R.string.security_settings_fingerprint_enroll_finish_v2_message);
-        if (mCanAssumeSfps) {
-            setDescriptionForSfps();
+        final String sfpsDescription = mSfpsRestToUnlockFeature != null
+                ? mSfpsRestToUnlockFeature.getDescriptionForSfps(this)
+                : null;
+        if (mCanAssumeSfps && !TextUtils.isEmpty(sfpsDescription)) {
+            setDescriptionForSfps(sfpsDescription);
         }
 
         mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
@@ -79,7 +91,7 @@
                 new FooterButton.Builder(this)
                         .setText(R.string.fingerprint_enroll_button_add)
                         .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                         .build()
         );
 
@@ -88,12 +100,12 @@
                         .setText(R.string.security_settings_fingerprint_enroll_done)
                         .setListener(this::onNextButtonClick)
                         .setButtonType(FooterButton.ButtonType.NEXT)
-                        .setTheme(R.style.SudGlifButton_Primary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                         .build()
         );
     }
 
-    private void setDescriptionForSfps() {
+    private void setDescriptionForSfps(String sfpsDescription) {
         final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
         if (fpm != null) {
             final List<FingerprintSensorPropertiesInternal> props =
@@ -101,12 +113,19 @@
             final int maxEnrollments = props.get(0).maxEnrollmentsPerUser;
             final int enrolled = fpm.getEnrolledFingerprints(mUserId).size();
             if (enrolled < maxEnrollments) {
-                setDescriptionText(R.string
-                        .security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message);
+                setDescriptionText(sfpsDescription);
             }
         }
     }
 
+    private void setUpRestToUnlockLayout() {
+        final ViewGroup contentFrame = findViewById(R.id.sfps_enrollment_finish_content_frame);
+        final View restToUnlockLayout = mSfpsRestToUnlockFeature.getRestToUnlockLayout(this);
+        if (restToUnlockLayout == null) return;
+        contentFrame.removeAllViews();
+        contentFrame.addView(restToUnlockLayout);
+    }
+
     @Override
     public void onBackPressed() {
         updateFingerprintSuggestionEnableState();
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index 04063ed..242b745 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;
@@ -67,6 +69,8 @@
 
     private DevicePolicyManager mDevicePolicyManager;
     private boolean mCanAssumeUdfps;
+    @Nullable
+    protected UdfpsEnrollCalibrator mCalibrator;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -85,6 +89,11 @@
 
         mDevicePolicyManager = getSystemService(DevicePolicyManager.class);
 
+        if (Flags.udfpsEnrollCalibration()) {
+            mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider()
+                    .getUdfpsEnrollCalibrator(getApplicationContext(), savedInstanceState, 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);
@@ -127,13 +136,16 @@
         footerTitle1.setText(getFooterTitle1());
         footerTitle2.setText(getFooterTitle2());
 
-        final ScrollView scrollView = findViewById(R.id.sud_scroll_view);
+        final ScrollView scrollView =
+                findViewById(com.google.android.setupdesign.R.id.sud_scroll_view);
         scrollView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
 
         final Intent intent = getIntent();
         if (mFromSettingsSummary
                 && GatekeeperPasswordProvider.containsGatekeeperPasswordHandle(intent)) {
-            overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
+            overridePendingTransition(
+                    com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                    com.google.android.setupdesign.R.anim.sud_slide_next_out);
             getNextButton().setEnabled(false);
             getChallenge(((sensorId, userId, challenge) -> {
                 if (isFinishing()) {
@@ -153,6 +165,16 @@
     }
 
     @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                mCalibrator.onSaveInstanceState(outState);
+            }
+        }
+    }
+
+    @Override
     protected void initViews() {
         setDescriptionText(getString(
                 R.string.security_settings_fingerprint_enroll_introduction_v3_message,
@@ -361,6 +383,11 @@
             intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE,
                     BiometricUtils.getGatekeeperPasswordHandle(getIntent()));
         }
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                intent.putExtras(mCalibrator.getExtrasForNextIntent(false));
+            }
+        }
         return intent;
     }
 
@@ -406,7 +433,7 @@
                     .setText(R.string.security_settings_fingerprint_enroll_introduction_agree)
                     .setListener(this::onNextButtonClick)
                     .setButtonType(FooterButton.ButtonType.OPT_IN)
-                    .setTheme(R.style.SudGlifButton_Primary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                     .build();
         }
         return mPrimaryFooterButton;
@@ -420,7 +447,7 @@
                     .setText(getNegativeButtonTextId())
                     .setListener(this::onSkipButtonClick)
                     .setButtonType(FooterButton.ButtonType.NEXT)
-                    .setTheme(R.style.SudGlifButton_Primary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                     .build();
         }
         return mSecondaryFooterButton;
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
index d65e057..155ced5 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
@@ -30,10 +30,10 @@
 import android.os.Bundle;
 
 import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 
 import com.android.settings.R;
-import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 /** Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment. */
@@ -95,7 +95,7 @@
         return dialog;
     }
 
-    public static void showErrorDialog(BiometricEnrollBase host, int errMsgId, boolean isSetup) {
+    public static void showErrorDialog(FragmentActivity host, int errMsgId, boolean isSetup) {
         if (host.isFinishing()) {
             return;
         }
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..c1e34a5
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature;
+import com.android.settings.biometrics.fingerprint.feature.SfpsRestToUnlockFeature;
+
+public interface FingerprintFeatureProvider {
+    /**
+     * Gets the feature implementation of SFPS enrollment.
+     * @return the feature implementation
+     */
+    SfpsEnrollmentFeature getSfpsEnrollmentFeature();
+
+
+    /**
+     * Gets calibrator for udfps pre-enroll
+     * @param appContext application context
+     * @param activitySavedInstanceState activity savedInstanceState
+     * @param activityIntent activity intent
+     */
+    @Nullable
+    default UdfpsEnrollCalibrator getUdfpsEnrollCalibrator(@NonNull Context appContext,
+            @Nullable Bundle activitySavedInstanceState, @Nullable Intent activityIntent) {
+        return null;
+    }
+
+    /**
+     * Gets the feature implementation of SFPS rest to unlock.
+     * @param context context
+     * @return the feature implementation
+     */
+    SfpsRestToUnlockFeature getSfpsRestToUnlockFeature(@NonNull Context context);
+}
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..8a8df98
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImpl.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.biometrics.fingerprint;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature;
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeatureImpl;
+import com.android.settings.biometrics.fingerprint.feature.SfpsRestToUnlockFeature;
+import com.android.settings.biometrics.fingerprint.feature.SfpsRestToUnlockFeatureImpl;
+
+public class FingerprintFeatureProviderImpl implements FingerprintFeatureProvider {
+
+    @Nullable
+    private SfpsEnrollmentFeature mSfpsEnrollmentFeatureImpl = null;
+
+    @Nullable
+    private SfpsRestToUnlockFeature mSfpsRestToUnlockFeature = null;
+
+    @Override
+    public SfpsEnrollmentFeature getSfpsEnrollmentFeature() {
+        if (mSfpsEnrollmentFeatureImpl == null) {
+            mSfpsEnrollmentFeatureImpl = new SfpsEnrollmentFeatureImpl();
+        }
+        return mSfpsEnrollmentFeatureImpl;
+    }
+
+    @Override
+    public SfpsRestToUnlockFeature getSfpsRestToUnlockFeature(@NonNull Context context) {
+        if (mSfpsRestToUnlockFeature == null) {
+            mSfpsRestToUnlockFeature = new SfpsRestToUnlockFeatureImpl();
+        }
+        return mSfpsRestToUnlockFeature;
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
index 99d4ff9..2916872 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
@@ -20,7 +20,6 @@
 import android.animation.AnimatorListenerAdapter;
 import android.animation.ValueAnimator;
 import android.annotation.ColorInt;
-import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.Paint;
@@ -29,6 +28,8 @@
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 import com.android.settings.Utils;
 
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java b/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
index 134462d..73eccdc 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintRemoveSidecar.java
@@ -16,13 +16,14 @@
 
 package com.android.settings.biometrics.fingerprint;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.core.InstrumentedFragment;
 
 import java.util.LinkedList;
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 505fe1c..2aacbe4 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -20,7 +20,6 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED_EXPLANATION;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE;
 import static android.app.admin.DevicePolicyResources.UNDEFINED;
-import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;
@@ -60,7 +59,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;
@@ -68,22 +67,23 @@
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricUtils;
-import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.biometrics.GatekeeperPasswordProvider;
 import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
 import com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity;
 import com.android.settings.core.SettingsBaseActivity;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
 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;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 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;
@@ -91,6 +91,7 @@
 import com.google.android.setupdesign.util.DeviceHelper;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
@@ -146,12 +147,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;
@@ -597,6 +633,19 @@
         private void addFingerprintUnlockCategory() {
             mFingerprintUnlockCategory = findPreference(KEY_FINGERPRINT_UNLOCK_CATEGORY);
             setupFingerprintUnlockCategoryPreferences();
+            final Preference restToUnlockPreference = FeatureFactory.getFeatureFactory()
+                    .getFingerprintFeatureProvider()
+                    .getSfpsRestToUnlockFeature(getContext())
+                    .getRestToUnlockPreference(getContext());
+            if (restToUnlockPreference != null) {
+                // Use custom featured preference if any.
+                mRequireScreenOnToAuthPreference.setTitle(restToUnlockPreference.getTitle());
+                mRequireScreenOnToAuthPreference.setSummary(restToUnlockPreference.getSummary());
+                mRequireScreenOnToAuthPreference.setChecked(
+                        ((TwoStatePreference) restToUnlockPreference).isChecked());
+                mRequireScreenOnToAuthPreference.setOnPreferenceChangeListener(
+                        restToUnlockPreference.getOnPreferenceChangeListener());
+            }
             updateFingerprintUnlockCategoryVisibility();
         }
 
@@ -615,7 +664,7 @@
                     mRequireScreenOnToAuthPreferenceController.isChecked());
             mRequireScreenOnToAuthPreference.setOnPreferenceChangeListener(
                     (preference, newValue) -> {
-                        final boolean isChecked = ((SwitchPreference) preference).isChecked();
+                        final boolean isChecked = ((TwoStatePreference) preference).isChecked();
                         mRequireScreenOnToAuthPreferenceController.setChecked(!isChecked);
                         return true;
                     });
@@ -738,23 +787,12 @@
         public boolean onPreferenceTreeClick(Preference pref) {
             final String key = pref.getKey();
             if (KEY_FINGERPRINT_ADD.equals(key)) {
-                // 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());
-                if (getActivity().isInMultiWindowMode() && !isActivityEmbedded) {
-                    BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
-                            getActivity().getSupportFragmentManager(),
-                            BiometricsSplitScreenDialog.class.getName());
-                    return true;
-                }
-
                 mIsEnrolling = true;
                 Intent intent = new Intent();
                 if (FeatureFlagUtils.isEnabled(getContext(),
                         FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
                     intent.setClassName(SETTINGS_PACKAGE_NAME,
-                            FingerprintEnrollmentActivity.class.getName());
+                            FingerprintEnrollmentActivity.InternalActivity.class.getName());
                     intent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true);
                 } else {
                     intent.setClassName(SETTINGS_PACKAGE_NAME,
@@ -839,6 +877,8 @@
         @Override
         protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
             if (!isFingerprintHardwareDetected(context)) {
+                Log.e(TAG, "Fingerprint hardware is not detected");
+                mControllers = Collections.emptyList();
                 return null;
             }
 
@@ -847,20 +887,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;
         }
@@ -876,8 +916,9 @@
                             final Activity activity = getActivity();
                             if (activity != null) {
                                 // Apply pending transition for auto adding first fingerprint case
-                                activity.overridePendingTransition(R.anim.sud_slide_next_in,
-                                        R.anim.sud_slide_next_out);
+                                activity.overridePendingTransition(
+                                        com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                                        com.google.android.setupdesign.R.anim.sud_slide_next_out);
                             }
 
                             // To have smoother animation, change flow to let next visible activity
@@ -923,7 +964,7 @@
                     activity.finish();
                 }
             } else if (requestCode == AUTO_ADD_FIRST_FINGERPRINT_REQUEST) {
-                if (resultCode != RESULT_FINISHED || data == null) {
+                if (resultCode != RESULT_FINISHED) {
                     Log.d(TAG, "Add first fingerprint, fail or null data, result:" + resultCode);
                     if (resultCode == BiometricEnrollBase.RESULT_TIMEOUT) {
                         // If "Fingerprint Unlock" is closed because of timeout, notify result code
@@ -935,14 +976,19 @@
                     return;
                 }
 
-                mToken = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
+                if (mToken == null && data != null) {
+                    mToken = data.getByteArrayExtra(
+                            ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
+                }
                 if (mToken == null) {
                     Log.w(TAG, "Add first fingerprint, null token");
                     finish();
                     return;
                 }
 
-                mChallenge = data.getLongExtra(EXTRA_KEY_CHALLENGE, -1L);
+                if (mChallenge == -1L && data != null) {
+                    mChallenge = data.getLongExtra(EXTRA_KEY_CHALLENGE, -1L);
+                }
                 if (mChallenge == -1L) {
                     Log.w(TAG, "Add first fingerprint, invalid challenge");
                     finish();
@@ -1028,7 +1074,7 @@
             intent.setClassName(SETTINGS_PACKAGE_NAME,
                     FeatureFlagUtils.isEnabled(getActivity(),
                             FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)
-                            ? FingerprintEnrollmentActivity.class.getName()
+                            ? FingerprintEnrollmentActivity.InternalActivity.class.getName()
                             : FingerprintEnrollIntroductionInternal.class.getName()
             );
 
@@ -1356,12 +1402,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 87396dd..61ec54b 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsRequireScreenOnToAuthPreferenceController.java
@@ -25,11 +25,14 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.Utils;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
 
 /**
  * Preference controller that controls whether a SFPS device is required to be interactive for
  * fingerprint authentication to unlock the device.
  */
+@SearchIndexable
 public class FingerprintSettingsRequireScreenOnToAuthPreferenceController
         extends FingerprintSettingsPreferenceController {
     private static final String TAG =
@@ -104,4 +107,10 @@
         return UserHandle.of(getUserId()).getIdentifier();
     }
 
+    /**
+     * This feature is not directly searchable.
+     */
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {};
+
 }
diff --git a/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java b/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java
index 11f3ee3..4dc75b9 100644
--- a/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java
+++ b/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java
@@ -16,11 +16,12 @@
 
 package com.android.settings.biometrics.fingerprint;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Handler;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import java.time.Clock;
 import java.util.ArrayDeque;
 import java.util.Deque;
diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java
index a71bb65..6590530 100644
--- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java
@@ -33,6 +33,7 @@
 import com.android.settings.SetupWizardUtils;
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.password.ChooseLockSettingsHelper;
 
 public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSensor {
@@ -48,6 +49,11 @@
         }
         BiometricUtils.copyMultiBiometricExtras(getIntent(), intent);
         SetupWizardUtils.copySetupExtras(getIntent(), intent);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                intent.putExtras(mCalibrator.getExtrasForNextIntent(true));
+            }
+        }
         return intent;
     }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
index eb68687..0ee9ad3 100644
--- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
@@ -25,6 +25,7 @@
 import com.android.settings.SetupWizardUtils;
 import com.android.settings.Utils;
 import com.android.settings.biometrics.BiometricUtils;
+import com.android.settings.flags.Flags;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.password.SetupSkipDialog;
 
@@ -46,6 +47,11 @@
                     BiometricUtils.getGatekeeperPasswordHandle(getIntent()));
         }
         SetupWizardUtils.copySetupExtras(getIntent(), intent);
+        if (Flags.udfpsEnrollCalibration()) {
+            if (mCalibrator != null) {
+                intent.putExtras(mCalibrator.getExtrasForNextIntent(false));
+            }
+        }
         return intent;
     }
 
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..c54c6b5
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt
@@ -0,0 +1,18 @@
+package com.android.settings.biometrics.fingerprint
+
+import android.os.Bundle
+import androidx.fragment.app.FragmentManager
+import androidx.lifecycle.Lifecycle
+
+interface UdfpsEnrollCalibrator {
+
+    fun getExtrasForNextIntent(isEnrolling: Boolean): Bundle
+
+    fun onSaveInstanceState(outState: Bundle)
+
+    fun onFindSensorPage(
+            lifecycle: Lifecycle,
+            fragmentManager: FragmentManager,
+            enableEnrollingRunnable: Runnable
+    )
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollEnrollingView.java b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollEnrollingView.java
index df2f2f7..c798dff 100644
--- a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollEnrollingView.java
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollEnrollingView.java
@@ -37,8 +37,8 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
-import com.android.settingslib.udfps.UdfpsOverlayParams;
-import com.android.settingslib.udfps.UdfpsUtils;
+import com.android.systemui.biometrics.UdfpsUtils;
+import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
 import com.google.android.setupdesign.GlifLayout;
@@ -78,7 +78,7 @@
     @Override
     protected void onFinishInflate() {
         super.onFinishInflate();
-        mHeaderView = findViewById(R.id.sud_landscape_header_area);
+        mHeaderView = findViewById(com.google.android.setupdesign.R.id.sud_landscape_header_area);
         mUdfpsEnrollView = findViewById(R.id.udfps_animation_view);
     }
 
@@ -138,7 +138,8 @@
                 displayInfo.getNaturalWidth(),
                 displayInfo.getNaturalHeight(),
                 scaleFactor,
-                displayInfo.rotation);
+                displayInfo.rotation,
+                udfpsProps.sensorType);
 
         mUdfpsEnrollView.setOverlayParams(params);
         mUdfpsEnrollView.setEnrollHelper(udfpsEnrollHelper);
@@ -201,8 +202,10 @@
             return false;
         };
 
-        findManagedViewById(mIsLandscape ? R.id.sud_landscape_content_area
-                : R.id.sud_layout_content).setOnHoverListener(onHoverListener);
+        findManagedViewById(mIsLandscape
+                ? com.google.android.setupdesign.R.id.sud_landscape_content_area
+                : com.google.android.setupdesign.R.id.sud_layout_content
+        ).setOnHoverListener(onHoverListener);
     }
 
     private void swapHeaderAndContent() {
@@ -212,7 +215,8 @@
         parentView.addView(mHeaderView);
 
         // Hide scroll indicators
-        BottomScrollView headerScrollView = mHeaderView.findViewById(R.id.sud_header_scroll_view);
+        BottomScrollView headerScrollView = mHeaderView.findViewById(
+                com.google.android.setupdesign.R.id.sud_header_scroll_view);
         headerScrollView.setScrollIndicators(0);
     }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
index 0bfb87d..8d1113e 100644
--- a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollHelper.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.biometrics.fingerprint;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.PointF;
 import android.hardware.fingerprint.FingerprintManager;
@@ -29,6 +27,9 @@
 import android.util.TypedValue;
 import android.view.accessibility.AccessibilityManager;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import com.android.settings.core.InstrumentedFragment;
 
 import java.util.ArrayList;
@@ -182,7 +183,7 @@
      * Called when a fingerprint image has been acquired, but wasn't processed yet.
      */
     public void onAcquired(boolean isAcquiredGood) {
-        if (mListener != null && mTotalSteps != -1) {
+        if (mListener != null) {
             mListener.onAcquired(isAcquiredGood && animateIfLastStep());
         }
     }
diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollView.java b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollView.java
index 5ded91e..4a2a243 100644
--- a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollView.java
+++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollView.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.graphics.Rect;
 import android.graphics.RectF;
+import android.hardware.fingerprint.FingerprintSensorProperties;
 import android.os.Handler;
 import android.os.Looper;
 import android.util.AttributeSet;
@@ -33,7 +34,7 @@
 import androidx.annotation.Nullable;
 
 import com.android.settings.R;
-import com.android.settingslib.udfps.UdfpsOverlayParams;
+import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams;
 
 /**
  * View corresponding with udfps_enroll_view.xml
@@ -202,7 +203,9 @@
     }
 
     private void onFingerDown() {
-        mFingerprintDrawable.setShouldSkipDraw(true);
+        if (mOverlayParams.getSensorType() == FingerprintSensorProperties.TYPE_UDFPS_OPTICAL) {
+            mFingerprintDrawable.setShouldSkipDraw(true);
+        }
         mFingerprintDrawable.invalidateSelf();
     }
 
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..f99d394
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.animation.Animator;
+import android.content.Context;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling;
+
+import com.airbnb.lottie.LottieAnimationView;
+
+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);
+
+    /**
+     * Gets the help animator used when get help message.
+     * @param target the target view to animate
+     * @return animator
+     */
+    Animator getHelpAnimator(@NonNull View target);
+
+    /**
+     * Handles extra stuffs on lottie composition.
+     * @param lottieView the view related to the lottie
+     */
+    default void handleOnEnrollmentLottieComposition(LottieAnimationView lottieView) {}
+}
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..abc31c9
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeatureImpl.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.animation.Animator;
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.hardware.fingerprint.FingerprintManager;
+import android.view.View;
+import android.view.animation.AccelerateInterpolator;
+
+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);
+    }
+
+    @Override
+    public Animator getHelpAnimator(@NonNull View target) {
+        final float translationX = 40;
+        final int duration = 550;
+        final ObjectAnimator help = ObjectAnimator.ofFloat(target,
+                "translationX" /* propertyName */,
+                0, translationX, -1 * translationX, translationX, 0f);
+        help.setInterpolator(new AccelerateInterpolator());
+        help.setDuration(duration);
+        help.setAutoCancel(false);
+        return help;
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeature.kt b/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeature.kt
new file mode 100644
index 0000000..840926c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeature.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint.feature
+
+import android.content.Context
+import android.view.View
+import androidx.preference.Preference
+
+/**
+ * Defines the feature provided by rest to unlock.
+ */
+interface SfpsRestToUnlockFeature {
+    /**
+     * Gets the content view hierarchy for SFPS rest to unlock feature which is used by
+     * [com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish].
+     * @param context the context of
+     * [com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish].
+     */
+    fun getRestToUnlockLayout(context: Context) : View? = null
+
+    /**
+     * Gets the SFPS rest to unlock preference which is used in
+     * [com.android.settings.biometrics.fingerprint.FingerprintSettings].
+     * @param context the context of
+     * [com.android.settings.biometrics.fingerprint.FingerprintSettings].
+     */
+    fun getRestToUnlockPreference(context: Context) : Preference? = null
+
+    /**
+     * Gets the specific description used in
+     * [com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish] for SFPS devices.
+     * @return the description text for SFPS devices.
+     */
+    fun getDescriptionForSfps(context: Context) : String
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeatureImpl.kt b/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeatureImpl.kt
new file mode 100644
index 0000000..de78a2a
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeatureImpl.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint.feature
+
+import android.content.Context
+
+class SfpsRestToUnlockFeatureImpl : SfpsRestToUnlockFeature {
+    override fun getDescriptionForSfps(context: Context) : String {
+        return context.getString(
+            com.android.settings.R
+                .string.security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message
+        )
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/OWNERS b/src/com/android/settings/biometrics/fingerprint2/OWNERS
new file mode 100644
index 0000000..c58a06d
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/OWNERS
@@ -0,0 +1,3 @@
+# Owners for Biometric Fingerprint
+joshmccloskey@google.com
+jbolinger@google.com
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/README.md b/src/com/android/settings/biometrics/fingerprint2/README.md
new file mode 100644
index 0000000..4a99a2b
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/README.md
@@ -0,0 +1,10 @@
+### Fingerprint Settings Enrollment
+
+#### Flows
+
+* FingerprintSettings (ui.settings.fragment.FingerprintSettingsV2Fragment)
+* FingerprintEnrollment (ui.enrollment.activity.FingerprintEnrollmentV2Activity)
+
+#### Style
+
+* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
new file mode 100644
index 0000000..58ef509
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.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.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
+
+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/FingerprintManagerInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractor.kt
deleted file mode 100644
index 2fbdedf..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractor.kt
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.domain.interactor
-
-import android.content.Context
-import android.content.Intent
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintManager.GenerateChallengeCallback
-import android.hardware.fingerprint.FingerprintManager.RemovalCallback
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import android.os.CancellationSignal
-import android.util.Log
-import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.password.ChooseLockSettingsHelper
-import kotlin.coroutines.resume
-import kotlin.coroutines.suspendCoroutine
-import kotlinx.coroutines.CancellableContinuation
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.flow
-import kotlinx.coroutines.suspendCancellableCoroutine
-import kotlinx.coroutines.withContext
-
-private const val TAG = "FingerprintManagerInteractor"
-
-/** Encapsulates business logic related to managing fingerprints. */
-interface FingerprintManagerInteractor {
-  /** Returns the list of current fingerprints. */
-  val enrolledFingerprints: Flow<List<FingerprintViewModel>>
-
-  /** Returns the max enrollable fingerprints, note during SUW this might be 1 */
-  val maxEnrollableFingerprints: Flow<Int>
-
-  /** Runs [FingerprintManager.authenticate] */
-  suspend fun authenticate(): FingerprintAuthAttemptViewModel
-
-  /**
-   * Generates a challenge with the provided [gateKeeperPasswordHandle] and on success returns a
-   * challenge and challenge token. This info can be used for secure operations such as
-   * [FingerprintManager.enroll]
-   *
-   * @param gateKeeperPasswordHandle GateKeeper password handle generated by a Confirm
-   * @return A [Pair] of the challenge and challenge token
-   */
-  suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray>
-
-  /** Returns true if a user can enroll a fingerprint false otherwise. */
-  fun canEnrollFingerprints(numFingerprints: Int): Flow<Boolean>
-
-  /**
-   * Removes the given fingerprint, returning true if it was successfully removed and false
-   * otherwise
-   */
-  suspend fun removeFingerprint(fp: FingerprintViewModel): Boolean
-
-  /** Renames the given fingerprint if one exists */
-  suspend fun renameFingerprint(fp: FingerprintViewModel, newName: String)
-
-  /** Indicates if the device has side fingerprint */
-  suspend fun hasSideFps(): Boolean
-
-  /** Indicates if the press to auth feature has been enabled */
-  suspend fun pressToAuthEnabled(): Boolean
-
-  /** Retrieves the sensor properties of a device */
-  suspend fun sensorPropertiesInternal(): List<FingerprintSensorPropertiesInternal>
-}
-
-class FingerprintManagerInteractorImpl(
-  applicationContext: Context,
-  private val backgroundDispatcher: CoroutineDispatcher,
-  private val fingerprintManager: FingerprintManager,
-  private val gatekeeperPasswordProvider: GatekeeperPasswordProvider,
-  private val pressToAuthProvider: () -> Boolean,
-) : FingerprintManagerInteractor {
-
-  private val maxFingerprints =
-    applicationContext.resources.getInteger(
-      com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser
-    )
-  private val applicationContext = applicationContext.applicationContext
-
-  override suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray> =
-    suspendCoroutine {
-      val callback = GenerateChallengeCallback { _, userId, challenge ->
-        val intent = Intent()
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gateKeeperPasswordHandle)
-        val challengeToken =
-          gatekeeperPasswordProvider.requestGatekeeperHat(intent, challenge, userId)
-
-        gatekeeperPasswordProvider.removeGatekeeperPasswordHandle(intent, false)
-        val p = Pair(challenge, challengeToken)
-        it.resume(p)
-      }
-      fingerprintManager.generateChallenge(applicationContext.userId, callback)
-    }
-
-  override val enrolledFingerprints: Flow<List<FingerprintViewModel>> = flow {
-    emit(
-      fingerprintManager
-        .getEnrolledFingerprints(applicationContext.userId)
-        .map { (FingerprintViewModel(it.name.toString(), it.biometricId, it.deviceId)) }
-        .toList()
-    )
-  }
-
-  override fun canEnrollFingerprints(numFingerprints: Int): Flow<Boolean> = flow {
-    emit(numFingerprints < maxFingerprints)
-  }
-
-  override val maxEnrollableFingerprints = flow { emit(maxFingerprints) }
-
-  override suspend fun removeFingerprint(fp: FingerprintViewModel): Boolean = suspendCoroutine {
-    val callback =
-      object : RemovalCallback() {
-        override fun onRemovalError(
-          fp: android.hardware.fingerprint.Fingerprint,
-          errMsgId: Int,
-          errString: CharSequence
-        ) {
-          it.resume(false)
-        }
-
-        override fun onRemovalSucceeded(
-          fp: android.hardware.fingerprint.Fingerprint?,
-          remaining: Int
-        ) {
-          it.resume(true)
-        }
-      }
-    fingerprintManager.remove(
-      android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
-      applicationContext.userId,
-      callback
-    )
-  }
-
-  override suspend fun renameFingerprint(fp: FingerprintViewModel, newName: String) {
-    withContext(backgroundDispatcher) {
-      fingerprintManager.rename(fp.fingerId, applicationContext.userId, newName)
-    }
-  }
-
-  override suspend fun hasSideFps(): Boolean = suspendCancellableCoroutine {
-    it.resume(fingerprintManager.isPowerbuttonFps)
-  }
-
-  override suspend fun pressToAuthEnabled(): Boolean = suspendCancellableCoroutine {
-    it.resume(pressToAuthProvider())
-  }
-
-  override suspend fun sensorPropertiesInternal(): List<FingerprintSensorPropertiesInternal> =
-    suspendCancellableCoroutine {
-      it.resume(fingerprintManager.sensorPropertiesInternal)
-    }
-
-  override suspend fun authenticate(): FingerprintAuthAttemptViewModel =
-    suspendCancellableCoroutine { c: CancellableContinuation<FingerprintAuthAttemptViewModel> ->
-      val authenticationCallback =
-        object : FingerprintManager.AuthenticationCallback() {
-
-          override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
-            super.onAuthenticationError(errorCode, errString)
-            if (c.isCompleted) {
-              Log.d(TAG, "framework sent down onAuthError after finish")
-              return
-            }
-            c.resume(FingerprintAuthAttemptViewModel.Error(errorCode, errString.toString()))
-          }
-
-          override fun onAuthenticationSucceeded(result: FingerprintManager.AuthenticationResult) {
-            super.onAuthenticationSucceeded(result)
-            if (c.isCompleted) {
-              Log.d(TAG, "framework sent down onAuthError after finish")
-              return
-            }
-            c.resume(FingerprintAuthAttemptViewModel.Success(result.fingerprint?.biometricId ?: -1))
-          }
-        }
-
-      val cancellationSignal = CancellationSignal()
-      c.invokeOnCancellation { cancellationSignal.cancel() }
-      fingerprintManager.authenticate(
-        null,
-        cancellationSignal,
-        authenticationCallback,
-        null,
-        applicationContext.userId
-      )
-    }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
new file mode 100644
index 0000000..984d04c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractorImpl.kt
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.domain.interactor
+
+import android.content.Context
+import android.content.Intent
+import android.hardware.fingerprint.FingerprintManager
+import android.hardware.fingerprint.FingerprintManager.GenerateChallengeCallback
+import android.hardware.fingerprint.FingerprintManager.RemovalCallback
+import android.os.CancellationSignal
+import android.util.Log
+import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint2.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.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
+import kotlin.coroutines.suspendCoroutine
+import kotlinx.coroutines.CancellableContinuation
+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
+
+private const val TAG = "FingerprintManagerInteractor"
+
+class FingerprintManagerInteractorImpl(
+  applicationContext: Context,
+  private val backgroundDispatcher: CoroutineDispatcher,
+  private val fingerprintManager: FingerprintManager,
+  private val gatekeeperPasswordProvider: GatekeeperPasswordProvider,
+  private val pressToAuthProvider: PressToAuthProvider,
+  private val fingerprintFlow: FingerprintFlow,
+) : FingerprintManagerInteractor {
+
+  private val maxFingerprints =
+    applicationContext.resources.getInteger(
+      com.android.internal.R.integer.config_fingerprintMaxTemplatesPerUser
+    )
+  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 ->
+        val intent = Intent()
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gateKeeperPasswordHandle)
+        val challengeToken =
+          gatekeeperPasswordProvider.requestGatekeeperHat(intent, challenge, userId)
+
+        gatekeeperPasswordProvider.removeGatekeeperPasswordHandle(intent, false)
+        val p = Pair(challenge, challengeToken)
+        it.resume(p)
+      }
+      fingerprintManager.generateChallenge(applicationContext.userId, callback)
+    }
+
+  override val enrolledFingerprints: Flow<List<FingerprintData>> = flow {
+    emit(
+      fingerprintManager
+        .getEnrolledFingerprints(applicationContext.userId)
+        .map { (FingerprintData(it.name.toString(), it.biometricId, it.deviceId)) }
+        .toList()
+    )
+  }
+
+  override val canEnrollFingerprints: Flow<Boolean> = flow {
+    emit(
+      fingerprintManager.getEnrolledFingerprints(applicationContext.userId).size < maxFingerprints
+    )
+  }
+
+  override val sensorPropertiesInternal = flow {
+    val sensorPropertiesInternal = fingerprintManager.sensorPropertiesInternal
+    emit(
+      if (sensorPropertiesInternal.isEmpty()) null
+      else sensorPropertiesInternal.first().toFingerprintSensor()
+    )
+  }
+
+  override val maxEnrollableFingerprints = flow { emit(maxFingerprints) }
+
+  override suspend fun enroll(
+    hardwareAuthToken: ByteArray?,
+    enrollReason: EnrollReason,
+  ): Flow<FingerEnrollState> = callbackFlow {
+    // TODO (b/308456120) Improve this logic
+    if (enrollRequestOutstanding.value) {
+      Log.d(TAG, "Outstanding enroll request, waiting 150ms")
+      delay(150)
+      if (enrollRequestOutstanding.value) {
+        Log.e(TAG, "Request still present, continuing")
+      }
+    }
+
+    enrollRequestOutstanding.update { true }
+
+    var streamEnded = false
+    var totalSteps: Int? = null
+    val enrollmentCallback =
+      object : FingerprintManager.EnrollmentCallback() {
+        override fun onEnrollmentProgress(remaining: Int) {
+          // This is sort of an implementation detail, but unfortunately the API isn't
+          // very expressive. If anything we should look at changing the FingerprintManager API.
+          if (totalSteps == null) {
+            totalSteps = remaining + 1
+          }
+
+          trySend(FingerEnrollState.EnrollProgress(remaining, totalSteps!!)).onFailure {
+            error ->
+            Log.d(TAG, "onEnrollmentProgress($remaining) failed to send, due to $error")
+          }
+
+          if (remaining == 0) {
+            streamEnded = true
+            enrollRequestOutstanding.update { false }
+          }
+        }
+
+        override fun onEnrollmentHelp(helpMsgId: Int, helpString: CharSequence?) {
+          trySend(FingerEnrollState.EnrollHelp(helpMsgId, helpString.toString()))
+            .onFailure { error -> Log.d(TAG, "onEnrollmentHelp failed to send, due to $error") }
+        }
+
+        override fun onEnrollmentError(errMsgId: Int, errString: CharSequence?) {
+          trySend(errMsgId.toEnrollError(fingerprintFlow == SetupWizard))
+            .onFailure { error -> Log.d(TAG, "onEnrollmentError failed to send, due to $error") }
+          Log.d(TAG, "onEnrollmentError($errMsgId)")
+          streamEnded = true
+          enrollRequestOutstanding.update { false }
+        }
+      }
+
+    val cancellationSignal = CancellationSignal()
+    fingerprintManager.enroll(
+      hardwareAuthToken,
+      cancellationSignal,
+      applicationContext.userId,
+      enrollmentCallback,
+      enrollReason.toOriginalReason(),
+    )
+    awaitClose {
+      // If the stream has not been ended, and the user has stopped collecting the flow
+      // before it was over, send cancel.
+      if (!streamEnded) {
+        Log.e(TAG, "Cancel is sent from settings for enroll()")
+        cancellationSignal.cancel()
+      }
+    }
+  }
+
+  override suspend fun removeFingerprint(fp: FingerprintData): Boolean = suspendCoroutine {
+    val callback =
+      object : RemovalCallback() {
+        override fun onRemovalError(
+          fp: android.hardware.fingerprint.Fingerprint,
+          errMsgId: Int,
+          errString: CharSequence
+        ) {
+          it.resume(false)
+        }
+
+        override fun onRemovalSucceeded(
+          fp: android.hardware.fingerprint.Fingerprint?,
+          remaining: Int
+        ) {
+          it.resume(true)
+        }
+      }
+    fingerprintManager.remove(
+      android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId),
+      applicationContext.userId,
+      callback
+    )
+  }
+
+  override suspend fun renameFingerprint(fp: FingerprintData, newName: String) {
+    withContext(backgroundDispatcher) {
+      fingerprintManager.rename(fp.fingerId, applicationContext.userId, newName)
+    }
+  }
+
+  override suspend fun hasSideFps(): Boolean = suspendCancellableCoroutine {
+    it.resume(fingerprintManager.isPowerbuttonFps)
+  }
+
+  override suspend fun pressToAuthEnabled(): Boolean = suspendCancellableCoroutine {
+    it.resume(pressToAuthProvider.isEnabled)
+  }
+
+  override suspend fun authenticate(): FingerprintAuthAttemptModel =
+    suspendCancellableCoroutine { c: CancellableContinuation<FingerprintAuthAttemptModel> ->
+      val authenticationCallback =
+        object : FingerprintManager.AuthenticationCallback() {
+
+          override fun onAuthenticationError(errorCode: Int, errString: CharSequence) {
+            super.onAuthenticationError(errorCode, errString)
+            if (c.isCompleted) {
+              Log.d(TAG, "framework sent down onAuthError after finish")
+              return
+            }
+            c.resume(FingerprintAuthAttemptModel.Error(errorCode, errString.toString()))
+          }
+
+          override fun onAuthenticationSucceeded(result: FingerprintManager.AuthenticationResult) {
+            super.onAuthenticationSucceeded(result)
+            if (c.isCompleted) {
+              Log.d(TAG, "framework sent down onAuthError after finish")
+              return
+            }
+            c.resume(FingerprintAuthAttemptModel.Success(result.fingerprint?.biometricId ?: -1))
+          }
+        }
+
+      val cancellationSignal = CancellationSignal()
+      c.invokeOnCancellation { cancellationSignal.cancel() }
+      fingerprintManager.authenticate(
+        null,
+        cancellationSignal,
+        authenticationCallback,
+        null,
+        applicationContext.userId
+      )
+    }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/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/Android.bp b/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp
new file mode 100644
index 0000000..145f3d6
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/Android.bp
@@ -0,0 +1,14 @@
+// This  library is mainly used for fakes which will be shared across are various types of tests
+// unit/robo/screenshot etc.
+//
+// This library shouldn't have many dependencies.
+android_library {
+    name: "FingerprintManagerInteractor",
+    srcs: [
+      "**/*.kt"
+    ],
+    static_libs: [
+      "BiometricsSharedLib",
+      "kotlinx-coroutines-android",
+    ],
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/AndroidManifest.xml b/src/com/android/settings/biometrics/fingerprint2/shared/AndroidManifest.xml
new file mode 100644
index 0000000..e2c97fc
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/AndroidManifest.xml
@@ -0,0 +1,18 @@
+<!--
+  ~ Copyright (C) 2023 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT 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"
+    package="com.android.settings.biometrics.fingerprint2.shared">
+</manifest>
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt b/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
new file mode 100644
index 0000000..e776b9a
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/data/repository/PressToAuthProvider.kt
@@ -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.
+ */
+
+package com.android.settings.biometrics.fingerprint2.shared.data.repository
+
+/**
+ * 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
new file mode 100644
index 0000000..94afa49
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/domain/interactor/FingerprintManagerInteractor.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.biometrics.fingerprint2.shared.domain.interactor
+
+import com.android.settings.biometrics.fingerprint2.shared.model.EnrollReason
+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
+
+/**
+ * Interface to obtain the necessary data for FingerprintEnrollment/Settings
+ *
+ * Note that this interface should not have dependencies on heavyweight libraries such as the
+ * framework, hidl/aidl, etc. This makes it much easier to test and create fakes for.
+ */
+interface FingerprintManagerInteractor {
+  /** Returns the list of current fingerprints. */
+  val enrolledFingerprints: Flow<List<FingerprintData>>
+
+  /** Returns the max enrollable fingerprints, note during SUW this might be 1 */
+  val maxEnrollableFingerprints: Flow<Int>
+
+  /** Returns true if a user can enroll a fingerprint false otherwise. */
+  val canEnrollFingerprints: Flow<Boolean>
+
+  /** Retrieves the sensor properties of a device */
+  val sensorPropertiesInternal: Flow<FingerprintSensor?>
+
+  /** Runs the authenticate flow */
+  suspend fun authenticate(): FingerprintAuthAttemptModel
+
+  /**
+   * Generates a challenge with the provided [gateKeeperPasswordHandle] and on success returns a
+   * challenge and challenge token. This info can be used for secure operations such as enrollment
+   *
+   * @param gateKeeperPasswordHandle GateKeeper password handle generated by a Confirm
+   * @return A [Pair] of the challenge and challenge token
+   */
+  suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray>
+
+  /**
+   * Runs [FingerprintManager.enroll] with the [hardwareAuthToken] and [EnrollReason] for this
+   * enrollment. Returning the [FingerEnrollState] that represents this fingerprint
+   * enrollment state.
+   */
+  suspend fun enroll(
+      hardwareAuthToken: ByteArray?,
+      enrollReason: EnrollReason,
+  ): Flow<FingerEnrollState>
+
+  /**
+   * Removes the given fingerprint, returning true if it was successfully removed and false
+   * otherwise
+   */
+  suspend fun removeFingerprint(fp: FingerprintData): Boolean
+
+  /** Renames the given fingerprint if one exists */
+  suspend fun renameFingerprint(fp: FingerprintData, newName: String)
+
+  /** Indicates if the device has side fingerprint */
+  suspend fun hasSideFps(): Boolean
+
+  /** Indicates if the press to auth feature has been enabled */
+  suspend fun pressToAuthEnabled(): Boolean
+
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt
new file mode 100644
index 0000000..47a0af0
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/EnrollReason.kt
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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 reason for enrollment */
+enum class EnrollReason {
+  /**
+   * The enroll happens on education screen. This is to support legacy flows where we require the
+   * user to touch the sensor before going ahead to the EnrollEnrolling flow
+   */
+  FindSensor,
+  /** The enroll happens on enrolling screen. */
+  EnrollEnrolling
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
new file mode 100644
index 0000000..4766d59
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerEnrollState.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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
+
+import android.annotation.StringRes
+
+/**
+ * Represents a fingerprint enrollment state. See [FingerprintManager.EnrollmentCallback] for more
+ * information
+ */
+sealed class FingerEnrollState {
+  /**
+   * Represents an enrollment step progress.
+   *
+   * Progress is obtained by (totalStepsRequired - remainingSteps) / totalStepsRequired
+   */
+  data class EnrollProgress(
+    val remainingSteps: Int,
+    val totalStepsRequired: Int,
+  ) : FingerEnrollState()
+
+  /** Represents that recoverable error has been encountered during enrollment. */
+  data class EnrollHelp(
+    @StringRes val helpMsgId: Int,
+    val helpString: String,
+  ) : FingerEnrollState()
+
+  /** Represents that an unrecoverable error has been encountered and the operation is complete. */
+  data class EnrollError(
+    @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/FingerprintData.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.kt
new file mode 100644
index 0000000..b2aa25c
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintData.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
+
+data class FingerprintData(
+  val name: String,
+  val fingerId: Int,
+  val deviceId: Long,
+)
+
+sealed class FingerprintAuthAttemptModel {
+  data class Success(
+    val fingerId: Int,
+  ) : FingerprintAuthAttemptModel()
+
+  data class Error(
+    val error: Int,
+    val message: String,
+  ) : 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/binder/FingerprintSettingsViewBinder.kt b/src/com/android/settings/biometrics/fingerprint2/ui/binder/FingerprintSettingsViewBinder.kt
deleted file mode 100644
index d9f3e43..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/binder/FingerprintSettingsViewBinder.kt
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.binder
-
-import android.hardware.fingerprint.FingerprintManager
-import android.util.Log
-import androidx.lifecycle.LifecycleCoroutineScope
-import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder.FingerprintView
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollAdditionalFingerprint
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchedActivity
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.Job
-import kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.flow.filterNotNull
-import kotlinx.coroutines.launch
-
-private const val TAG = "FingerprintSettingsViewBinder"
-
-/** Binds a [FingerprintSettingsViewModel] to a [FingerprintView] */
-object FingerprintSettingsViewBinder {
-
-  interface FingerprintView {
-    /**
-     * Helper function to launch fingerprint enrollment(This should be the default behavior when a
-     * user enters their PIN/PATTERN/PASS and no fingerprints are enrolled).
-     */
-    fun launchFullFingerprintEnrollment(
-      userId: Int,
-      gateKeeperPasswordHandle: Long?,
-      challenge: Long?,
-      challengeToken: ByteArray?
-    )
-
-    /** Helper to launch an add fingerprint request */
-    fun launchAddFingerprint(userId: Int, challengeToken: ByteArray?)
-    /**
-     * Helper function that will try and launch confirm lock, if that fails we will prompt user to
-     * choose a PIN/PATTERN/PASS.
-     */
-    fun launchConfirmOrChooseLock(userId: Int)
-
-    /** Used to indicate that FingerprintSettings is finished. */
-    fun finish()
-
-    /** Indicates what result should be set for the returning callee */
-    fun setResultExternal(resultCode: Int)
-    /** Indicates the settings UI should be shown */
-    fun showSettings(state: FingerprintStateViewModel)
-    /** Indicates that a user has been locked out */
-    fun userLockout(authAttemptViewModel: FingerprintAuthAttemptViewModel.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
-    /** Indicates a user should be asked to renae ma dialog */
-    suspend fun askUserToRenameDialog(
-      fingerprintViewModel: FingerprintViewModel
-    ): Pair<FingerprintViewModel, String>?
-  }
-
-  fun bind(
-    view: FingerprintView,
-    viewModel: FingerprintSettingsViewModel,
-    navigationViewModel: FingerprintSettingsNavigationViewModel,
-    lifecycleScope: LifecycleCoroutineScope,
-  ) {
-
-    /** Result listener for launching enrollments **after** a user has reached the settings page. */
-
-    // Settings display flow
-    lifecycleScope.launch {
-      viewModel.fingerprintState.filterNotNull().collect { view.showSettings(it) }
-    }
-
-    // Dialog flow
-    lifecycleScope.launch {
-      viewModel.isShowingDialog.collectLatest {
-        if (it == null) {
-          return@collectLatest
-        }
-        when (it) {
-          is PreferenceViewModel.RenameDialog -> {
-            val willRename = view.askUserToRenameDialog(it.fingerprintViewModel)
-            if (willRename != null) {
-              Log.d(TAG, "renaming fingerprint $it")
-              viewModel.renameFingerprint(willRename.first, willRename.second)
-            }
-            viewModel.onRenameDialogFinished()
-          }
-          is PreferenceViewModel.DeleteDialog -> {
-            if (view.askUserToDeleteDialog(it.fingerprintViewModel)) {
-              Log.d(TAG, "deleting fingerprint $it")
-              viewModel.deleteFingerprint(it.fingerprintViewModel)
-            }
-            viewModel.onDeleteDialogFinished()
-          }
-        }
-      }
-    }
-
-    // Auth flow
-    lifecycleScope.launch {
-      viewModel.authFlow.filterNotNull().collect {
-        when (it) {
-          is FingerprintAuthAttemptViewModel.Success -> {
-            view.highlightPref(it.fingerId)
-          }
-          is FingerprintAuthAttemptViewModel.Error -> {
-            if (it.error == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
-              view.userLockout(it)
-            }
-          }
-        }
-      }
-    }
-
-    // Launch this on Dispatchers.Default and not main.
-    // Otherwise it takes too long for state transitions such as PIN/PATTERN/PASS
-    // to enrollment, which makes gives the user a janky experience.
-    lifecycleScope.launch(Dispatchers.Default) {
-      var settingsShowingJob: Job? = null
-      navigationViewModel.nextStep.filterNotNull().collect { nextStep ->
-        settingsShowingJob?.cancel()
-        settingsShowingJob = null
-        Log.d(TAG, "next step = $nextStep")
-        when (nextStep) {
-          is EnrollFirstFingerprint ->
-            view.launchFullFingerprintEnrollment(
-              nextStep.userId,
-              nextStep.gateKeeperPasswordHandle,
-              nextStep.challenge,
-              nextStep.challengeToken
-            )
-          is EnrollAdditionalFingerprint ->
-            view.launchAddFingerprint(nextStep.userId, nextStep.challengeToken)
-          is LaunchConfirmDeviceCredential -> view.launchConfirmOrChooseLock(nextStep.userId)
-          is FinishSettings -> {
-            Log.d(TAG, "Finishing due to ${nextStep.reason}")
-            view.finish()
-          }
-          is FinishSettingsWithResult -> {
-            Log.d(TAG, "Finishing with result ${nextStep.result} due to ${nextStep.reason}")
-            view.setResultExternal(nextStep.result)
-            view.finish()
-          }
-          is ShowSettings -> Log.d(TAG, "Showing settings")
-          is LaunchedActivity -> Log.d(TAG, "Launched activity, awaiting result")
-        }
-      }
-    }
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/README.md b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/README.md
new file mode 100644
index 0000000..8469f59
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/README.md
@@ -0,0 +1,23 @@
+### Fingerprint Settings Enrollment
+
+#### Entry Points (To FingerprintEnrollment)
+
+* FingerprintSettings (which launches the below intent)
+* Intent -> ".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity")
+
+#### General Architecture
+
+The code should follow the MVVM architecture.
+
+**In addition, one activity (FingerprintEnrollmentV2Activity) should**
+
+* Control a list of fragments which correspond to enrollment steps
+* Be responsible for navigation events between fragments
+* Be responsible for navigation events to other activities if need be (
+  ConfirmDeviceCredentialActivity)
+* Be the controller of the viewmodels
+
+#### Style
+
+* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
+
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
new file mode 100644
index 0000000..06307a4
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
@@ -0,0 +1,344 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.activity
+
+import android.app.Activity
+import android.content.Intent
+import android.content.res.Configuration
+import android.hardware.fingerprint.FingerprintManager
+import android.os.Bundle
+import android.provider.Settings
+import android.util.Log
+import android.view.accessibility.AccessibilityManager
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import com.android.internal.widget.LockPatternUtils
+import com.android.settings.R
+import com.android.settings.SetupWizardUtils
+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
+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.Finish
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FoldStateViewModel
+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.LaunchConfirmDeviceCredential
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
+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
+
+private const val TAG = "FingerprintEnrollmentV2Activity"
+
+/**
+ * This is the activity that controls the entire Fingerprint Enrollment experience through its
+ * 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. */
+  private val confirmDeviceResultListener =
+    registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+      val resultCode = result.resultCode
+      val data = result.data
+      onConfirmDevice(resultCode, data)
+    }
+
+  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+    super.onActivityResult(requestCode, resultCode, data)
+    if (requestCode == CONFIRM_REQUEST) {
+      onConfirmDevice(resultCode, data)
+    }
+  }
+
+  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)
+  }
+
+  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?
+    lifecycleScope.launch {
+      gatekeeperViewModel.onConfirmDevice(wasSuccessful, gateKeeperPasswordHandle)
+    }
+  }
+
+  override fun onCreate(savedInstanceState: Bundle?) {
+    super.onCreate(savedInstanceState)
+    // TODO(b/299573056): Show split screen dialog when it's in multi window mode.
+    setContentView(R.layout.fingerprint_v2_enroll_main)
+
+    setTheme(SetupWizardUtils.getTheme(applicationContext, intent))
+    ThemeHelper.trySetDynamicColor(applicationContext)
+
+    val backgroundDispatcher = Dispatchers.IO
+
+    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)),
+        PressToAuthProviderImpl(context),
+        enrollType,
+      )
+
+    var challenge: Long? = intent.getExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE) as Long?
+    val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
+    val gatekeeperInfo = FingerprintGatekeeperViewModel.toGateKeeperInfo(challenge, token)
+
+    gatekeeperViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
+          gatekeeperInfo,
+          interactor,
+        )
+      )[FingerprintGatekeeperViewModel::class.java]
+
+    navigationViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintEnrollNavigationViewModel.FingerprintEnrollNavigationViewModelFactory(
+          backgroundDispatcher,
+          interactor,
+          gatekeeperViewModel,
+          gatekeeperInfo is GatekeeperInfo.GatekeeperPasswordInfo,
+          enrollType,
+        )
+      )[FingerprintEnrollNavigationViewModel::class.java]
+
+    // Initialize FoldStateViewModel
+    foldStateViewModel =
+      ViewModelProvider(this, FoldStateViewModel.FoldStateViewModelFactory(context))[
+        FoldStateViewModel::class.java]
+    foldStateViewModel.onConfigurationChange(resources.configuration)
+
+    // Initialize FingerprintViewModel
+    fingerprintEnrollViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintEnrollViewModel.FingerprintEnrollViewModelFactory(
+          interactor,
+          gatekeeperViewModel,
+          navigationViewModel,
+        )
+      )[FingerprintEnrollViewModel::class.java]
+
+    // Initialize scroll view model
+    fingerprintScrollViewModel =
+      ViewModelProvider(this, FingerprintScrollViewModel.FingerprintScrollViewModelFactory())[
+        FingerprintScrollViewModel::class.java]
+
+    // Initialize AccessibilityViewModel
+    accessibilityViewModel =
+      ViewModelProvider(
+        this,
+        AccessibilityViewModel.AccessibilityViewModelFactory(
+          getSystemService(AccessibilityManager::class.java)!!
+        )
+      )[AccessibilityViewModel::class.java]
+
+    // Initialize OrientationViewModel
+    orientationStateViewModel =
+      ViewModelProvider(this, OrientationStateViewModel.OrientationViewModelFactory(context))[
+        OrientationStateViewModel::class.java]
+
+    // Initialize FingerprintEnrollEnrollingViewModel
+    fingerprintEnrollEnrollingViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingViewModelFactory(
+          fingerprintEnrollViewModel,
+          backgroundViewModel
+        )
+      )[FingerprintEnrollEnrollingViewModel::class.java]
+
+    // Initialize FingerprintEnrollFindSensorViewModel
+    ViewModelProvider(
+      this,
+      FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorViewModelFactory(
+        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()
+        .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
+            }
+
+          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 =
+      intent.getBooleanExtra(BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY, false)
+    if (
+      fromSettingsSummary && GatekeeperPasswordProvider.containsGatekeeperPasswordHandle(intent)
+    ) {
+      overridePendingTransition(
+        com.google.android.setupdesign.R.anim.sud_slide_next_in,
+        com.google.android.setupdesign.R.anim.sud_slide_next_out
+      )
+    }
+  }
+
+  private fun launchConfirmOrChooseLock(userId: Int) {
+    val activity = this
+    lifecycleScope.launch(coroutineDispatcher) {
+      val intent = Intent()
+      val builder = ChooseLockSettingsHelper.Builder(activity)
+      val launched =
+        builder
+          .setRequestCode(CONFIRM_REQUEST)
+          .setTitle(getString(R.string.security_settings_fingerprint_preference_title))
+          .setRequestGatekeeperPasswordHandle(true)
+          .setUserId(userId)
+          .setForegroundOnly(true)
+          .setReturnCredentials(true)
+          .show()
+      if (!launched) {
+        intent.setClassName(SETTINGS_PACKAGE_NAME, ChooseLockGeneric::class.java.name)
+        intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS, true)
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
+        intent.putExtra(Intent.EXTRA_USER_ID, userId)
+        confirmDeviceResultListener.launch(intent)
+      }
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
new file mode 100644
index 0000000..b12491f
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
@@ -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.fingerprint2.ui.enrollment.fragment
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+
+/**
+ * A fragment to indicate that fingerprint enrollment has been completed.
+ *
+ * This page will display basic information about what a fingerprint can be used for and acts as the
+ * final step of enrollment.
+ */
+class FingerprintEnrollConfirmationV2Fragment : Fragment() {
+
+  override fun onCreate(savedInstanceState: Bundle?) {
+    super.onCreate(savedInstanceState)
+    if (savedInstanceState == null) {
+      val navigationViewModel =
+        ViewModelProvider(requireActivity())[FingerprintEnrollNavigationViewModel::class.java]
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
new file mode 100644
index 0000000..0140d57
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fragment
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
+
+/** A fragment that is responsible for enrolling a users fingerprint. */
+class FingerprintEnrollEnrollingV2Fragment : Fragment(R.layout.fingerprint_enroll_enrolling) {
+
+  override fun onCreate(savedInstanceState: Bundle?) {
+    super.onCreate(savedInstanceState)
+    if (savedInstanceState == null) {
+      val navigationViewModel =
+        ViewModelProvider(requireActivity())[FingerprintEnrollNavigationViewModel::class.java]
+    }
+  }
+}
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
new file mode 100644
index 0000000..bfd4264
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fragment
+
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.Surface
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import com.airbnb.lottie.LottieAnimationView
+import com.android.settings.R
+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.launch
+
+private const val TAG = "FingerprintEnrollFindSensorV2Fragment"
+
+/**
+ * A fragment that is used to educate the user about the fingerprint sensor on this device.
+ *
+ * If the sensor is not a udfps sensor, this fragment listens to fingerprint enrollment for
+ * proceeding to the enroll enrolling.
+ *
+ * The main goals of this page are
+ * 1. Inform the user where the fingerprint sensor is on their device
+ * 2. Explain to the user how the enrollment process shown by [FingerprintEnrollEnrollingV2Fragment]
+ *    will work.
+ */
+class FingerprintEnrollFindSensorV2Fragment : Fragment() {
+  // This is only for non-udfps or non-sfps sensor. For udfps and sfps, we show lottie.
+  private var animation: FingerprintFindSensorAnimation? = null
+
+  private var contentLayoutId: Int = -1
+  private val viewModel: FingerprintEnrollFindSensorViewModel by lazy {
+    ViewModelProvider(requireActivity())[FingerprintEnrollFindSensorViewModel::class.java]
+  }
+
+  override fun onCreateView(
+    inflater: LayoutInflater,
+    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
+
+      // Set up header and description
+      lifecycleScope.launch { viewModel.sensorType.collect { setTexts(it, view) } }
+
+      // Set up footer bar
+      val footerBarMixin = view.getMixin(FooterBarMixin::class.java)
+      setupSecondaryButton(footerBarMixin)
+      lifecycleScope.launch {
+        viewModel.showPrimaryButton.collect { setupPrimaryButton(footerBarMixin) }
+      }
+
+      // Set up lottie or animation
+      lifecycleScope.launch {
+        viewModel.sfpsLottieInfo.collect { (isFolded, rotation) ->
+          setupLottie(view, getSfpsIllustrationLottieAnimation(isFolded, rotation))
+        }
+      }
+      lifecycleScope.launch {
+        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() }
+        }
+      }
+      lifecycleScope.launch {
+        viewModel.showRfpsAnimation.collect {
+          animation =
+            view.findViewById(R.id.fingerprint_sensor_location_animation)
+          animation!!.startAnimation()
+        }
+      }
+
+      lifecycleScope.launch {
+        viewModel.showErrorDialog.collect { (errMsgId, isSetup) ->
+          // TODO: Covert error dialog kotlin as well
+          FingerprintErrorDialog.showErrorDialog(requireActivity(), errMsgId, isSetup)
+        }
+      }
+    }
+  }
+
+  override fun onDestroy() {
+    animation?.stopAnimation()
+    super.onDestroy()
+  }
+
+  private fun setupSecondaryButton(footerBarMixin: FooterBarMixin) {
+    footerBarMixin.secondaryButton =
+      FooterButton.Builder(requireActivity())
+        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+        .setListener {
+          run {
+            // TODO: Show the dialog for suw
+            Log.d(TAG, "onSkipClicked")
+            // TODO: Finish activity in the root activity instead.
+            requireActivity().finish()
+          }
+        }
+        .setButtonType(FooterButton.ButtonType.SKIP)
+        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+        .build()
+  }
+
+  private fun setupPrimaryButton(footerBarMixin: FooterBarMixin) {
+    footerBarMixin.primaryButton =
+      FooterButton.Builder(requireActivity())
+        .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
+        .setListener {
+          run {
+            Log.d(TAG, "onStartButtonClick")
+            viewModel.proceedToEnrolling()
+          }
+        }
+        .setButtonType(FooterButton.ButtonType.NEXT)
+        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+        .build()
+  }
+
+  private fun setupLottie(
+    view: View,
+    lottieAnimation: Int,
+    lottieClickListener: View.OnClickListener? = null
+  ) {
+    val illustrationLottie: LottieAnimationView? = view.findViewById(R.id.illustration_lottie)
+    illustrationLottie?.setAnimation(lottieAnimation)
+    illustrationLottie?.playAnimation()
+    illustrationLottie?.setOnClickListener(lottieClickListener)
+    illustrationLottie?.visibility = View.VISIBLE
+  }
+
+  private fun setTexts(sensorType: FingerprintSensorType, view: GlifLayout) {
+    when (sensorType) {
+      FingerprintSensorType.UDFPS_OPTICAL,
+      FingerprintSensorType.UDFPS_ULTRASONIC -> {
+        view.setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title)
+        view.setDescriptionText(R.string.security_settings_udfps_enroll_find_sensor_message)
+      }
+      FingerprintSensorType.POWER_BUTTON -> {
+        view.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
+        view.setDescriptionText(R.string.security_settings_sfps_enroll_find_sensor_message)
+      }
+      else -> {
+        view.setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title)
+        view.setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message)
+      }
+    }
+  }
+
+  private fun getSfpsIllustrationLottieAnimation(isFolded: Boolean, rotation: Int): Int {
+    val animation: Int
+    when (rotation) {
+      Surface.ROTATION_90 ->
+        animation =
+          (if (isFolded) R.raw.fingerprint_edu_lottie_folded_top_left
+          else R.raw.fingerprint_edu_lottie_portrait_top_left)
+      Surface.ROTATION_180 ->
+        animation =
+          (if (isFolded) R.raw.fingerprint_edu_lottie_folded_bottom_left
+          else R.raw.fingerprint_edu_lottie_landscape_bottom_left)
+      Surface.ROTATION_270 ->
+        animation =
+          (if (isFolded) R.raw.fingerprint_edu_lottie_folded_bottom_right
+          else R.raw.fingerprint_edu_lottie_portrait_bottom_right)
+      else ->
+        animation =
+          (if (isFolded) R.raw.fingerprint_edu_lottie_folded_top_right
+          else R.raw.fingerprint_edu_lottie_landscape_top_right)
+    }
+    return animation
+  }
+}
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
new file mode 100644
index 0000000..32d201d
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
@@ -0,0 +1,315 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fragment
+
+import android.annotation.NonNull
+import android.annotation.StringRes
+import android.graphics.Color
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffColorFilter
+import android.os.Bundle
+import android.text.Html
+import android.text.method.LinkMovementMethod
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.ScrollView
+import android.widget.TextView
+import androidx.annotation.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.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 com.google.android.setupdesign.template.RequireScrollMixin
+import com.google.android.setupdesign.util.DynamicColorPalette
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintEnrollmentIntroV2Fragment"
+
+/** This class represents the customizable text for FingerprintEnrollIntroduction. */
+private data class TextModel(
+  @StringRes val footerMessageTwo: Int,
+  @StringRes val footerMessageThree: Int,
+  @StringRes val footerMessageFour: Int,
+  @StringRes val footerMessageFive: Int,
+  @StringRes val footerMessageSix: Int,
+  @StringRes val negativeButton: Int,
+  @StringRes val footerTitleOne: Int,
+  @StringRes val footerTitleTwo: Int,
+  @StringRes val headerText: Int,
+  @StringRes val descriptionText: Int,
+)
+
+/**
+ * The introduction fragment that is used to inform the user the basics of what a fingerprint sensor
+ * is and how it will be used.
+ *
+ * The main gaols of this page are
+ * 1. Inform the user what the fingerprint sensor is and does
+ * 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) {
+
+  /** Used for testing purposes */
+  private var factory: ViewModelProvider.Factory? = null
+
+  @VisibleForTesting
+  constructor(theFactory: ViewModelProvider.Factory) : this() {
+    factory = theFactory
+  }
+
+  private val viewModelProvider: ViewModelProvider by lazy {
+    if (factory != null) {
+      ViewModelProvider(requireActivity(), factory!!)
+    } else {
+      ViewModelProvider(requireActivity())
+    }
+  }
+
+  private lateinit var footerBarMixin: FooterBarMixin
+  private lateinit var textModel: TextModel
+
+  // 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]
+  }
+
+  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()
+            listOf(
+                R.id.icon_fingerprint,
+                R.id.icon_device_locked,
+                R.id.icon_trash_can,
+                R.id.icon_info,
+                R.id.icon_shield,
+                R.id.icon_link
+              )
+              .forEach { icon ->
+                view.requireViewById<ImageView>(icon).drawable.colorFilter = colorFilter
+              }
+
+            // Set the text for the footer text views.
+            listOf(
+                R.id.footer_message_2 to textModel.footerMessageTwo,
+                R.id.footer_message_3 to textModel.footerMessageThree,
+                R.id.footer_message_4 to textModel.footerMessageFour,
+                R.id.footer_message_5 to textModel.footerMessageFive,
+                R.id.footer_message_6 to textModel.footerMessageSix,
+              )
+              .forEach { pair -> view.requireViewById<TextView>(pair.first).setText(pair.second) }
+
+            setFooterLink(view)
+
+            val iconShield: ImageView = view.requireViewById(R.id.icon_shield)
+            val footerMessage6: TextView = view.requireViewById(R.id.footer_message_6)
+            when (sensorType) {
+              FingerprintSensorType.UDFPS_ULTRASONIC,
+              FingerprintSensorType.UDFPS_OPTICAL -> {
+                footerMessage6.visibility = View.VISIBLE
+                iconShield.visibility = View.VISIBLE
+              }
+              else -> {
+                footerMessage6.visibility = View.GONE
+                iconShield.visibility = View.GONE
+              }
+            }
+
+            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()
+    footerLink.text =
+      Html.fromHtml(
+        getString(R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more),
+        Html.FROM_HTML_MODE_LEGACY
+      )
+  }
+
+  private fun setupFooterBarAndScrollView(
+    view: View,
+  ) {
+    val scrollView: ScrollView =
+      view.requireViewById(com.google.android.setupdesign.R.id.sud_scroll_view)
+    scrollView.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
+    // Next button responsible for starting the next fragment.
+    val onNextButtonClick: View.OnClickListener =
+      View.OnClickListener {
+        Log.d(TAG, "OnNextClicked")
+        navigationViewModel.nextStep()
+      }
+
+    val layout: GlifLayout = view.findViewById(R.id.setup_wizard_layout)!!
+    footerBarMixin = layout.getMixin(FooterBarMixin::class.java)
+    footerBarMixin.primaryButton =
+      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(requireContext())
+        .setText(textModel.negativeButton)
+        .setListener({ Log.d(TAG, "prevClicked") })
+        .setButtonType(FooterButton.ButtonType.NEXT)
+        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+        .build(),
+      true /* usePrimaryStyle */
+    )
+
+    val primaryButton = footerBarMixin.primaryButton
+    val secondaryButton = footerBarMixin.secondaryButton
+
+    secondaryButton.visibility = View.INVISIBLE
+
+    val requireScrollMixin = layout.getMixin(RequireScrollMixin::class.java)
+    requireScrollMixin.requireScrollWithButton(
+      requireContext(),
+      primaryButton,
+      R.string.security_settings_face_enroll_introduction_more,
+      onNextButtonClick
+    )
+
+    requireScrollMixin.setOnRequireScrollStateChangedListener { scrollNeeded: Boolean ->
+      // Show secondary button once scroll is completed.
+      if (!scrollNeeded) {
+        fingerprintScrollViewModel.userConsented()
+      }
+    }
+
+    viewLifecycleOwner.lifecycleScope.launch {
+      fingerprintScrollViewModel.hasReadConsentScreen.collect { consented ->
+        if (consented) {
+          primaryButton.setText(
+            requireContext(),
+            R.string.security_settings_fingerprint_enroll_introduction_agree
+          )
+          secondaryButton.visibility = View.VISIBLE
+        } else {
+          secondaryButton.visibility = View.INVISIBLE
+        }
+      }
+    }
+
+    footerBarMixin.getButtonContainer()?.setBackgroundColor(Color.TRANSPARENT)
+
+    // I think I should remove this, and make the challenge a pre-requisite of launching
+    // the flow. For instance if someone launches the activity with an invalid challenge, it
+    // either 1) Fails or 2) Launched confirmDeviceCredential
+    primaryButton.isEnabled = false
+    viewLifecycleOwner.lifecycleScope.launch {
+      gateKeeperViewModel.hasValidGatekeeperInfo.collect { primaryButton.isEnabled = it }
+    }
+  }
+
+  private fun getNormalTextModel() =
+    TextModel(
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_2,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_3,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_4,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_5,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_6,
+      R.string.security_settings_fingerprint_enroll_introduction_no_thanks,
+      R.string.security_settings_fingerprint_enroll_introduction_footer_title_1,
+      R.string.security_settings_fingerprint_enroll_introduction_footer_title_2,
+      R.string.security_settings_fingerprint_enroll_introduction_title,
+      R.string.security_settings_fingerprint_enroll_introduction_v3_message,
+    )
+
+  private fun getUnicornTextModel() =
+    TextModel(
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_3,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5,
+      R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6,
+      R.string.security_settings_fingerprint_enroll_introduction_no_thanks,
+      R.string.security_settings_fingerprint_enroll_introduction_footer_title_consent_1,
+      R.string.security_settings_fingerprint_enroll_introduction_footer_title_2,
+      R.string.security_settings_fingerprint_enroll_consent_introduction_title,
+      R.string.security_settings_fingerprint_enroll_introduction_v3_message,
+    )
+
+  @NonNull
+  private fun getIconColorFilter(): PorterDuffColorFilter {
+    return PorterDuffColorFilter(
+      DynamicColorPalette.getColor(context, DynamicColorPalette.ColorType.ACCENT),
+      PorterDuff.Mode.SRC_IN
+    )
+  }
+}
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/AccessibilityViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/AccessibilityViewModel.kt
new file mode 100644
index 0000000..a86ad5d
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/AccessibilityViewModel.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.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import android.view.accessibility.AccessibilityManager
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.stateIn
+
+/** Represents all of the information on accessibility state. */
+class AccessibilityViewModel(accessibilityManager: AccessibilityManager) : ViewModel() {
+  /** A flow that contains whether or not accessibility is enabled */
+  val isAccessibilityEnabled: Flow<Boolean> =
+    callbackFlow {
+        val listener =
+          AccessibilityManager.AccessibilityStateChangeListener { enabled -> trySend(enabled) }
+        accessibilityManager.addAccessibilityStateChangeListener(listener)
+
+        // This clause will be called when no one is listening to the flow
+        awaitClose { accessibilityManager.removeAccessibilityStateChangeListener(listener) }
+      }
+      .stateIn(
+        viewModelScope, // This is going to tied to the view model scope
+        SharingStarted.WhileSubscribed(), // When no longer subscribed, we removeTheListener
+        false
+      )
+
+  class AccessibilityViewModelFactory(private val accessibilityManager: AccessibilityManager) :
+    ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return AccessibilityViewModel(accessibilityManager) as T
+    }
+  }
+}
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
new file mode 100644
index 0000000..7722a46
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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 androidx.lifecycle.viewModelScope
+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.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.shareIn
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+/** Models the UI state for [FingerprintEnrollFindSensorV2Fragment]. */
+class FingerprintEnrollFindSensorViewModel(
+  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.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> = sensorType.map { it == FingerprintSensorType.REAR }
+
+  /** Represents the stream of showing primary button. */
+  val showPrimaryButton: Flow<Boolean> = _isUdfps.filter { it }
+
+  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(
+      _showSfpsLottie,
+      foldStateViewModel.isFolded,
+      orientationStateViewModel.rotation,
+    ) { _, isFolded, rotation ->
+      emit(Pair(isFolded, rotation))
+    }
+
+  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.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 {
+      combine(
+          fingerprintEnrollViewModel.sensorType,
+          gatekeeperViewModel.hasValidGatekeeperInfo,
+          gatekeeperViewModel.gatekeeperInfo,
+          navigationViewModel.navigationViewModel
+        ) { sensorType, hasValidGatekeeperInfo, gatekeeperInfo, navigationViewModel ->
+          val shouldStartEnroll =
+            navigationViewModel.currStep == Education &&
+              sensorType != FingerprintSensorType.UDFPS_OPTICAL &&
+              sensorType != FingerprintSensorType.UDFPS_ULTRASONIC &&
+              hasValidGatekeeperInfo
+          if (shouldStartEnroll) (gatekeeperInfo as GatekeeperInfo.GatekeeperPasswordInfo).token
+          else null
+        }
+        .collect { token ->
+          if (token != null) {
+            canStartEducation()
+          } else {
+            stopEducation()
+          }
+        }
+    }
+
+    // Enroll progress flow
+    viewModelScope.launch {
+      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 -> {}
+              }
+            }
+        }
+      }
+    }
+  }
+
+  /** 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()
+  }
+
+  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
+  ) : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+      return FingerprintEnrollFindSensorViewModel(
+        navigationViewModel,
+        fingerprintEnrollViewModel,
+        gatekeeperViewModel,
+        backgroundViewModel,
+        accessibilityViewModel,
+        foldStateViewModel,
+        orientationStateViewModel
+      )
+        as T
+    }
+  }
+}
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
new file mode 100644
index 0000000..c7a1071
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollViewModel.kt
@@ -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.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+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.FingerEnrollState
+import com.android.systemui.biometrics.shared.model.FingerprintSensorType
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.shareIn
+import kotlinx.coroutines.flow.transformLatest
+
+/** Represents all of the fingerprint information needed for a fingerprint enrollment process. */
+class FingerprintEnrollViewModel(
+  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  gatekeeperViewModel: FingerprintGatekeeperViewModel,
+  navigationViewModel: FingerprintEnrollNavigationViewModel,
+) : ViewModel() {
+
+  /**
+   * 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> =
+    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
+
+  /**
+   * 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<FingerEnrollState> =
+    combine(gatekeeperViewModel.gatekeeperInfo, _enrollReason) { hardwareAuthToken, enrollReason,
+        ->
+        Pair(hardwareAuthToken, enrollReason)
+      }
+      .transformLatest {
+        /** [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)
+          }
+        }
+      }
+      .shareIn(viewModelScope, SharingStarted.WhileSubscribed(), 0)
+
+  /**
+   * 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)
+      }
+    }
+
+  /**
+   * 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 gatekeeperViewModel: FingerprintGatekeeperViewModel,
+    val navigationViewModel: FingerprintEnrollNavigationViewModel,
+  ) : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): 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
new file mode 100644
index 0000000..2e5dce0
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllNavigationViewModel.kt
@@ -0,0 +1,141 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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 android.util.Log
+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.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"
+
+/**
+ * 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 fingerprintManagerInteractor: FingerprintManagerInteractor,
+  private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
+  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,
+  ) : NavigationStep(lastStep, nextStep, forward)
+
+  private var _fingerprintFlow = MutableStateFlow<FingerprintFlow?>(theFingerprintFlow)
+
+  /** A flow that indicates the [FingerprintFlow] */
+  val fingerprintFlow: Flow<FingerprintFlow?> = _fingerprintFlow.asStateFlow()
+
+  private val _navigationStep =
+    MutableStateFlow(
+      InternalNavigationStep(PlaceHolderState, firstStep, forward = false, canNavigate = true)
+    )
+
+  init {
+    viewModelScope.launch {
+      gatekeeperViewModel.credentialConfirmed.filterNotNull().collect {
+        if (_navigationStep.value.currStep is LaunchConfirmDeviceCredential) {
+          if (it) nextStep() else finish()
+        }
+      }
+    }
+  }
+
+  /**
+   * A flow that contains the [NavigationStep] used to indicate where in the enrollment process the
+   * user is.
+   */
+  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 {
+      val currStep = _navigationStep.value.currStep
+      val nextStep = currStep.next(navState)
+      Log.d(TAG, "nextStep(${currStep} -> $nextStep)")
+      _navigationStep.update {
+        InternalNavigationStep(currStep, nextStep, forward = true, canNavigate = false)
+      }
+    }
+  }
+
+  /** Go back a step of fingerprint enrollment. */
+  fun prevStep() {
+    viewModelScope.launch {
+      val currStep = _navigationStep.value.currStep
+      val nextStep = currStep.prev(navState)
+      _navigationStep.update {
+        InternalNavigationStep(currStep, nextStep, forward = false, canNavigate = false)
+      }
+    }
+  }
+
+  private fun finish() {
+    _navigationStep.update {
+      InternalNavigationStep(Finish(null), Finish(null), forward = false, canNavigate = false)
+    }
+  }
+
+  class FingerprintEnrollNavigationViewModelFactory(
+    private val backgroundDispatcher: CoroutineDispatcher,
+    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+    private val fingerprintGatekeeperViewModel: FingerprintGatekeeperViewModel,
+    private val canSkipConfirm: Boolean,
+    private val fingerprintFlow: FingerprintFlow,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+
+      val navState = NavState(canSkipConfirm)
+      return FingerprintEnrollNavigationViewModel(
+        backgroundDispatcher,
+        fingerprintManagerInteractor,
+        fingerprintGatekeeperViewModel,
+        Start.next(navState),
+        navState,
+        fingerprintFlow,
+      )
+        as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
new file mode 100644
index 0000000..db93d02
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.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.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import android.os.CountDownTimer
+import android.util.Log
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintGatekeeperViewModel"
+
+sealed interface GatekeeperInfo {
+  object Invalid : GatekeeperInfo
+  object Timeout : GatekeeperInfo
+  data class GatekeeperPasswordInfo(val token: ByteArray?, val passwordHandle: Long?) :
+    GatekeeperInfo
+}
+
+/**
+ * This class is responsible for maintaining the gatekeeper information including things like
+ * timeouts.
+ *
+ * Please note, that this class can't fully support timeouts of the gatekeeper password handle due
+ * to the fact that a handle may have been generated earlier in the settings enrollment and passed
+ * in as a parameter to this class.
+ */
+class FingerprintGatekeeperViewModel(
+  theGatekeeperInfo: GatekeeperInfo?,
+  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+) : ViewModel() {
+
+  private var _gatekeeperInfo: MutableStateFlow<GatekeeperInfo?> =
+    MutableStateFlow(theGatekeeperInfo)
+
+  /** The gatekeeper info for fingerprint enrollment. */
+  val gatekeeperInfo: Flow<GatekeeperInfo?> = _gatekeeperInfo.asStateFlow()
+
+  /** Indicates if the gatekeeper info is valid. */
+  val hasValidGatekeeperInfo: Flow<Boolean> =
+    gatekeeperInfo.map { it is GatekeeperInfo.GatekeeperPasswordInfo }
+
+  private var _credentialConfirmed: MutableStateFlow<Boolean?> = MutableStateFlow(null)
+  val credentialConfirmed: Flow<Boolean?> = _credentialConfirmed.asStateFlow()
+
+  private var countDownTimer: CountDownTimer? = null
+
+  /** Timeout of 15 minutes for a generated challenge */
+  private val TIMEOUT: Long = 15 * 60 * 1000
+
+  /** Called after a confirm device credential attempt has been made. */
+  fun onConfirmDevice(wasSuccessful: Boolean, theGatekeeperPasswordHandle: Long?) {
+    if (!wasSuccessful) {
+      Log.d(TAG, "confirmDevice failed")
+      _gatekeeperInfo.update { GatekeeperInfo.Invalid }
+      _credentialConfirmed.update { false }
+    } else {
+      viewModelScope.launch {
+        val res = fingerprintManagerInteractor.generateChallenge(theGatekeeperPasswordHandle!!)
+        _gatekeeperInfo.update { GatekeeperInfo.GatekeeperPasswordInfo(res.second, res.first) }
+        _credentialConfirmed.update { true }
+        startTimeout()
+      }
+    }
+  }
+
+  private fun startTimeout() {
+    countDownTimer?.cancel()
+    countDownTimer =
+      object : CountDownTimer(TIMEOUT, 1000) {
+        override fun onFinish() {
+          _gatekeeperInfo.update { GatekeeperInfo.Timeout }
+        }
+
+        override fun onTick(millisUntilFinished: Long) {}
+      }
+  }
+
+  companion object {
+    /**
+     * A function that checks if the challenge and token are valid, in which case a
+     * [GatekeeperInfo.GatekeeperPasswordInfo] is provided, else [GatekeeperInfo.Invalid]
+     */
+    fun toGateKeeperInfo(challenge: Long?, token: ByteArray?): GatekeeperInfo {
+      Log.d(TAG, "toGateKeeperInfo(${challenge == null}, ${token == null})")
+      if (challenge == null || token == null) {
+        return GatekeeperInfo.Invalid
+      }
+      return GatekeeperInfo.GatekeeperPasswordInfo(token, challenge)
+    }
+  }
+
+  class FingerprintGatekeeperViewModelFactory(
+    private val gatekeeperInfo: GatekeeperInfo?,
+    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return FingerprintGatekeeperViewModel(gatekeeperInfo, fingerprintManagerInteractor) as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt
new file mode 100644
index 0000000..989d4d3
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.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.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.update
+
+/** This class is responsible for ensuring a users consent to use FingerprintEnrollment. */
+class FingerprintScrollViewModel : ViewModel() {
+
+  private val _hasReadConsentScreen: MutableStateFlow<Boolean> = MutableStateFlow(false)
+
+  /** Indicates if a user has consented to FingerprintEnrollment */
+  val hasReadConsentScreen: Flow<Boolean> = _hasReadConsentScreen.asStateFlow()
+
+  /** Indicates that a user has consented to FingerprintEnrollment */
+  fun userConsented() {
+    _hasReadConsentScreen.update { true }
+  }
+
+  class FingerprintScrollViewModelFactory : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return FingerprintScrollViewModel() as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.kt
new file mode 100644
index 0000000..a4c7ff2
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FoldStateViewModel.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.fingerprint2.ui.enrollment.viewmodel
+
+import android.content.Context
+import android.content.res.Configuration
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import com.android.systemui.unfold.compat.ScreenSizeFoldProvider
+import com.android.systemui.unfold.updates.FoldProvider
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.callbackFlow
+
+/** Represents all of the information on fold state. */
+class FoldStateViewModel(context: Context) : ViewModel() {
+
+  private val screenSizeFoldProvider = ScreenSizeFoldProvider(context)
+
+  /** A flow that contains the fold state info */
+  val isFolded: Flow<Boolean> = callbackFlow {
+    val foldStateListener =
+      object : FoldProvider.FoldCallback {
+        override fun onFoldUpdated(isFolded: Boolean) {
+          trySend(isFolded)
+        }
+      }
+    screenSizeFoldProvider.registerCallback(foldStateListener, context.mainExecutor)
+    awaitClose { screenSizeFoldProvider.unregisterCallback(foldStateListener) }
+  }
+
+  fun onConfigurationChange(newConfig: Configuration) {
+    screenSizeFoldProvider.onConfigurationChange(newConfig)
+  }
+
+  class FoldStateViewModelFactory(private val context: Context) : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return FoldStateViewModel(context) 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
new file mode 100644
index 0000000..b68f6d6
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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
+
+/**
+ * A class that represents an action that the consumer should transition between lastStep and
+ * currStep and in what direction this transition is occurring (e.g. forward or backwards)
+ */
+open class NavigationStep(
+  val lastStep: NextStepViewModel,
+  val currStep: NextStepViewModel,
+  val forward: Boolean
+) {
+  override fun toString(): String {
+    return "lastStep=$lastStep, currStep=$currStep, forward=$forward"
+  }
+}
+
+/** The navigation state used by a [NavStep] to determine what the [NextStepViewModel] should be. */
+class NavState(val confirmedDevice: Boolean)
+
+interface NavStep<T> {
+  fun next(state: NavState): T
+  fun prev(state: NavState): T
+}
+
+/**
+ * A class to represent a high level step (I.E. EnrollmentIntroduction) for FingerprintEnrollment.
+ */
+sealed class NextStepViewModel : NavStep<NextStepViewModel>
+
+/**
+ * This is the initial state for the previous step, used to indicate that there have been no
+ * previous states.
+ */
+object PlaceHolderState : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Finish(null)
+
+  override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/**
+ * 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]
+ */
+data object Start : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel =
+    if (state.confirmedDevice) Intro else LaunchConfirmDeviceCredential
+
+  override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/** State indicating enrollment has been completed */
+class Finish(val resultCode: Int?) : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Finish(resultCode)
+  override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/** State for the FingerprintEnrollment introduction */
+data object Intro : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Education
+  override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/** State for the FingerprintEnrollment education */
+data object Education : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Enrollment
+  override fun prev(state: NavState): NextStepViewModel = Intro
+}
+
+/** State for the FingerprintEnrollment enrollment */
+data object Enrollment : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Confirmation
+  override fun prev(state: NavState): NextStepViewModel = Education
+}
+
+/** State for the FingerprintEnrollment confirmation */
+object Confirmation : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Finish(0)
+  override fun prev(state: NavState): NextStepViewModel = Intro
+}
+
+/**
+ * State used to send the user to the ConfirmDeviceCredential activity. This activity can either
+ * confirm a users device credential, or have them create one.
+ */
+object LaunchConfirmDeviceCredential : NextStepViewModel() {
+  override fun next(state: NavState): NextStepViewModel = Intro
+  override fun prev(state: NavState): NextStepViewModel = Finish(0)
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.kt
new file mode 100644
index 0000000..2e5f734
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/OrientationStateViewModel.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.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import android.content.Context
+import android.view.OrientationEventListener
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.internal.R
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.stateIn
+
+/** Represents all of the information on orientation state and rotation state. */
+class OrientationStateViewModel(private val context: Context) : ViewModel() {
+
+  /** A flow that contains the orientation info */
+  val orientation: Flow<Int> = callbackFlow {
+    val orientationEventListener =
+      object : OrientationEventListener(context) {
+        override fun onOrientationChanged(orientation: Int) {
+          trySend(orientation)
+        }
+      }
+    orientationEventListener.enable()
+    awaitClose { orientationEventListener.disable() }
+  }
+
+  /** A flow that contains the rotation info */
+  val rotation: Flow<Int> =
+    callbackFlow {
+        val orientationEventListener =
+          object : OrientationEventListener(context) {
+            override fun onOrientationChanged(orientation: Int) {
+              trySend(getRotationFromDefault(context.display!!.rotation))
+            }
+          }
+        orientationEventListener.enable()
+        awaitClose { orientationEventListener.disable() }
+      }
+      .stateIn(
+        viewModelScope, // This is going to tied to the view model scope
+        SharingStarted.WhileSubscribed(), // When no longer subscribed, we removeTheListener
+        context.display!!.rotation
+      )
+
+  fun getRotationFromDefault(rotation: Int): Int {
+    val isReverseDefaultRotation =
+      context.resources.getBoolean(R.bool.config_reverseDefaultRotation)
+    return if (isReverseDefaultRotation) {
+      (rotation + 1) % 4
+    } else {
+      rotation
+    }
+  }
+
+  class OrientationViewModelFactory(private val context: Context) : ViewModelProvider.Factory {
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+      return OrientationStateViewModel(context) as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintDeletionDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintDeletionDialog.kt
deleted file mode 100644
index 42e2047..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintDeletionDialog.kt
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.fragment
-
-import android.app.Dialog
-import android.app.admin.DevicePolicyManager
-import android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE
-import android.app.admin.DevicePolicyResources.UNDEFINED
-import android.app.settings.SettingsEnums
-import android.content.DialogInterface
-import android.os.Bundle
-import android.os.UserManager
-import androidx.appcompat.app.AlertDialog
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment
-import kotlin.coroutines.resume
-import kotlinx.coroutines.suspendCancellableCoroutine
-
-private const val KEY_IS_LAST_FINGERPRINT = "IS_LAST_FINGERPRINT"
-
-class FingerprintDeletionDialog : InstrumentedDialogFragment() {
-  private lateinit var fingerprintViewModel: FingerprintViewModel
-  private var isLastFingerprint: Boolean = false
-  private lateinit var alertDialog: AlertDialog
-  lateinit var onClickListener: DialogInterface.OnClickListener
-  lateinit var onNegativeClickListener: DialogInterface.OnClickListener
-  lateinit var onCancelListener: DialogInterface.OnCancelListener
-
-  override fun getMetricsCategory(): Int {
-    return SettingsEnums.DIALOG_FINGERPINT_EDIT
-  }
-
-  override fun onCancel(dialog: DialogInterface) {
-    onCancelListener.onCancel(dialog)
-  }
-
-  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)
-    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)
-    val context = requireContext()
-
-    if (isLastFingerprint) {
-      val isProfileChallengeUser = UserManager.get(context).isManagedProfile(context.userId)
-      val messageId =
-        if (isProfileChallengeUser) {
-          WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE
-        } else {
-          UNDEFINED
-        }
-      val defaultMessageId =
-        if (isProfileChallengeUser) {
-          R.string.fingerprint_last_delete_message_profile_challenge
-        } else {
-          R.string.fingerprint_last_delete_message
-        }
-      val devicePolicyManager = requireContext().getSystemService(DevicePolicyManager::class.java)
-      message =
-        devicePolicyManager?.resources?.getString(messageId) {
-          message + "\n\n" + context.getString(defaultMessageId)
-        }
-          ?: ""
-    }
-
-    alertDialog =
-      AlertDialog.Builder(requireActivity())
-        .setTitle(title)
-        .setMessage(message)
-        .setPositiveButton(
-          R.string.security_settings_fingerprint_enroll_dialog_delete,
-          onClickListener
-        )
-        .setNegativeButton(R.string.cancel, onNegativeClickListener)
-        .create()
-    return alertDialog
-  }
-
-  companion object {
-    private const val KEY_FINGERPRINT = "fingerprint"
-    suspend fun showInstance(
-      fp: FingerprintViewModel,
-      lastFingerprint: Boolean,
-      target: FingerprintSettingsV2Fragment,
-    ) = suspendCancellableCoroutine { continuation ->
-      val dialog = FingerprintDeletionDialog()
-      dialog.onClickListener = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
-      dialog.onNegativeClickListener =
-        DialogInterface.OnClickListener { _, _ -> continuation.resume(false) }
-      dialog.onCancelListener = DialogInterface.OnCancelListener { continuation.resume(false) }
-
-      continuation.invokeOnCancellation { dialog.dismiss() }
-      val bundle = Bundle()
-      bundle.putObject(
-        KEY_FINGERPRINT,
-        android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId)
-      )
-      bundle.putBoolean(KEY_IS_LAST_FINGERPRINT, lastFingerprint)
-      dialog.arguments = bundle
-      dialog.show(target.parentFragmentManager, FingerprintDeletionDialog::class.java.toString())
-    }
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsPreference.kt b/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsPreference.kt
deleted file mode 100644
index e12785d..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsPreference.kt
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.fragment
-
-import android.content.Context
-import android.util.Log
-import android.view.View
-import androidx.lifecycle.lifecycleScope
-import androidx.preference.PreferenceViewHolder
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settingslib.widget.TwoTargetPreference
-import kotlinx.coroutines.delay
-import kotlinx.coroutines.launch
-
-private const val TAG = "FingerprintSettingsPreference"
-
-class FingerprintSettingsPreference(
-  context: Context,
-  val fingerprintViewModel: FingerprintViewModel,
-  val fragment: FingerprintSettingsV2Fragment,
-  val isLastFingerprint: Boolean
-) : TwoTargetPreference(context) {
-  private lateinit var myView: View
-
-  init {
-    key = "FINGERPRINT_" + fingerprintViewModel.fingerId
-    Log.d(TAG, "FingerprintPreference $this with frag $fragment $key")
-    title = fingerprintViewModel.name
-    isPersistent = false
-    setIcon(R.drawable.ic_fingerprint_24dp)
-    setOnPreferenceClickListener {
-      fragment.lifecycleScope.launch { fragment.onPrefClicked(fingerprintViewModel) }
-      true
-    }
-  }
-
-  override fun onBindViewHolder(view: PreferenceViewHolder) {
-    super.onBindViewHolder(view)
-    myView = view.itemView
-    view.itemView.findViewById<View>(R.id.delete_button)?.setOnClickListener {
-      fragment.lifecycleScope.launch { fragment.onDeletePrefClicked(fingerprintViewModel) }
-    }
-  }
-
-  /** Highlights this dialog. */
-  suspend fun highlight() {
-    fragment.activity?.getDrawable(R.drawable.preference_highlight)?.let { highlight ->
-      val centerX: Float = myView.width / 2.0f
-      val centerY: Float = myView.height / 2.0f
-      highlight.setHotspot(centerX, centerY)
-      myView.background = highlight
-      myView.isPressed = true
-      myView.isPressed = false
-      delay(300)
-      myView.background = null
-    }
-  }
-
-  override fun getSecondTargetResId(): Int {
-    return R.layout.preference_widget_delete
-  }
-
-  suspend fun askUserToDeleteDialog(): Boolean {
-    return FingerprintDeletionDialog.showInstance(fingerprintViewModel, isLastFingerprint, fragment)
-  }
-
-  suspend fun askUserToRenameDialog(): Pair<FingerprintViewModel, String>? {
-    return FingerprintSettingsRenameDialog.showInstance(fingerprintViewModel, fragment)
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt
deleted file mode 100644
index a08b3db..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.fragment
-
-import android.app.Dialog
-import android.app.settings.SettingsEnums
-import android.content.DialogInterface
-import android.os.Bundle
-import android.text.InputFilter
-import android.text.Spanned
-import android.text.TextUtils
-import android.util.Log
-import android.widget.ImeAwareEditText
-import androidx.appcompat.app.AlertDialog
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment
-import kotlin.coroutines.resume
-import kotlinx.coroutines.suspendCancellableCoroutine
-
-private const val TAG = "FingerprintSettingsRenameDialog"
-
-class FingerprintSettingsRenameDialog : InstrumentedDialogFragment() {
-  lateinit var onClickListener: 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 {
-    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 context = requireContext()
-    val alertDialog =
-      AlertDialog.Builder(context)
-        .setView(R.layout.fingerprint_rename_dialog)
-        .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok, onClickListener)
-        .create()
-    alertDialog.setOnShowListener {
-      (dialog?.findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText?)?.apply {
-        val name = fingerprintViewModel.name
-        setText(name)
-        filters = this@FingerprintSettingsRenameDialog.getFilters()
-        selectAll()
-        requestFocus()
-        scheduleShowSoftInput()
-      }
-    }
-
-    return alertDialog
-  }
-
-  private fun getFilters(): Array<InputFilter> {
-    val filter: InputFilter =
-      object : InputFilter {
-
-        override fun filter(
-          source: CharSequence,
-          start: Int,
-          end: Int,
-          dest: Spanned?,
-          dstart: Int,
-          dend: Int
-        ): CharSequence? {
-          for (index in start until end) {
-            val c = source[index]
-            // KXMLSerializer does not allow these characters,
-            // see KXmlSerializer.java:162.
-            if (c.code < 0x20) {
-              return ""
-            }
-          }
-          return null
-        }
-      }
-    return arrayOf(filter)
-  }
-
-  override fun getMetricsCategory(): Int {
-    return SettingsEnums.DIALOG_FINGERPINT_EDIT
-  }
-
-  companion object {
-    private const val KEY_FINGERPRINT = "fingerprint"
-
-    suspend fun showInstance(fp: FingerprintViewModel, target: FingerprintSettingsV2Fragment) =
-      suspendCancellableCoroutine { continuation ->
-        val dialog = FingerprintSettingsRenameDialog()
-        val onClick =
-          DialogInterface.OnClickListener { _, _ ->
-            val dialogTextField =
-              dialog.requireDialog().findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText
-            val newName = dialogTextField.text.toString()
-            if (!TextUtils.equals(newName, fp.name)) {
-              Log.d(TAG, "rename $fp.name to $newName for $dialog")
-              continuation.resume(Pair(fp, newName))
-            } else {
-              continuation.resume(null)
-            }
-          }
-
-        dialog.onClickListener = onClick
-        dialog.onCancelListener =
-          DialogInterface.OnCancelListener {
-            Log.d(TAG, "onCancelListener clicked $dialog")
-            continuation.resume(null)
-          }
-
-        continuation.invokeOnCancellation {
-          Log.d(TAG, "invokeOnCancellation $dialog")
-          dialog.dismiss()
-        }
-
-        val bundle = Bundle()
-        bundle.putObject(
-          KEY_FINGERPRINT,
-          android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId)
-        )
-        dialog.arguments = bundle
-        Log.d(TAG, "showing dialog $dialog")
-        dialog.show(
-          target.parentFragmentManager,
-          FingerprintSettingsRenameDialog::class.java.toString()
-        )
-      }
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsV2Fragment.kt
deleted file mode 100644
index b82f7c1..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsV2Fragment.kt
+++ /dev/null
@@ -1,581 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.fragment
-
-import android.app.Activity
-import android.app.admin.DevicePolicyManager
-import android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED_EXPLANATION
-import android.app.settings.SettingsEnums
-import android.content.Context.FINGERPRINT_SERVICE
-import android.content.Intent
-import android.hardware.fingerprint.FingerprintManager
-import android.os.Bundle
-import android.provider.Settings.Secure
-import android.text.TextUtils
-import android.util.FeatureFlagUtils
-import android.util.Log
-import android.view.View
-import android.widget.Toast
-import androidx.activity.result.ActivityResultLauncher
-import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.lifecycleScope
-import androidx.preference.Preference
-import androidx.preference.PreferenceCategory
-import com.android.internal.widget.LockPatternUtils
-import com.android.settings.R
-import com.android.settings.Utils.SETTINGS_PACKAGE_NAME
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST
-import com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY
-import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
-import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
-import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.core.SettingsBaseActivity
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment
-import com.android.settings.dashboard.DashboardFragment
-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.settingslib.HelpUtils
-import com.android.settingslib.RestrictedLockUtils
-import com.android.settingslib.RestrictedLockUtilsInternal
-import com.android.settingslib.transition.SettingsTransitionHelper
-import com.android.settingslib.widget.FooterPreference
-import com.google.android.setupdesign.util.DeviceHelper
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-
-private const val TAG = "FingerprintSettingsV2Fragment"
-private const val KEY_FINGERPRINTS_ENROLLED_CATEGORY = "security_settings_fingerprints_enrolled"
-private const val KEY_FINGERPRINT_SIDE_FPS_CATEGORY =
-  "security_settings_fingerprint_unlock_category"
-private const val KEY_FINGERPRINT_ADD = "key_fingerprint_add"
-private const val KEY_FINGERPRINT_SIDE_FPS_SCREEN_ON_TO_AUTH =
-  "security_settings_require_screen_on_to_auth"
-private const val KEY_FINGERPRINT_FOOTER = "security_settings_fingerprint_footer"
-
-/**
- * A class responsible for showing FingerprintSettings. Typical activity Flows are
- * 1. Settings > FingerprintSettings > PIN/PATTERN/PASS -> FingerprintSettings
- * 2. FingerprintSettings -> FingerprintEnrollment fow
- *
- * This page typically allows for
- * 1. Fingerprint deletion
- * 2. Fingerprint enrollment
- * 3. Renaming a fingerprint
- * 4. Enabling/Disabling a feature
- */
-class FingerprintSettingsV2Fragment :
-  DashboardFragment(), FingerprintSettingsViewBinder.FingerprintView {
-  private lateinit var settingsViewModel: FingerprintSettingsViewModel
-  private lateinit var navigationViewModel: FingerprintSettingsNavigationViewModel
-
-  /** Result listener for ChooseLock activity flow. */
-  private val confirmDeviceResultListener =
-    registerForActivityResult(StartActivityForResult()) { result ->
-      val resultCode = result.resultCode
-      val data = result.data
-      onConfirmDevice(resultCode, data)
-    }
-
-  /** Result listener for launching enrollments **after** a user has reached the settings page. */
-  private val launchAdditionalFingerprintListener: ActivityResultLauncher<Intent> =
-    registerForActivityResult(StartActivityForResult()) { result ->
-      lifecycleScope.launch {
-        val resultCode = result.resultCode
-        Log.d(TAG, "onEnrollAdditionalFingerprint($resultCode)")
-
-        if (resultCode == BiometricEnrollBase.RESULT_TIMEOUT) {
-          navigationViewModel.onEnrollAdditionalFailure()
-        } else {
-          navigationViewModel.onEnrollSuccess()
-        }
-      }
-    }
-
-  /** Initial listener for the first enrollment request */
-  private val launchFirstEnrollmentListener: ActivityResultLauncher<Intent> =
-    registerForActivityResult(StartActivityForResult()) { result ->
-      lifecycleScope.launch {
-        val resultCode = result.resultCode
-        val data = result.data
-
-        Log.d(TAG, "onEnrollFirstFingerprint($resultCode, $data)")
-        if (resultCode != RESULT_FINISHED || data == null) {
-          if (resultCode == BiometricEnrollBase.RESULT_TIMEOUT) {
-            navigationViewModel.onEnrollFirstFailure(
-              "Received RESULT_TIMEOUT when enrolling",
-              resultCode
-            )
-          } else {
-            navigationViewModel.onEnrollFirstFailure(
-              "Incorrect resultCode or data was null",
-              resultCode
-            )
-          }
-        } else {
-          val token = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
-          val challenge = data.getExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE) as Long?
-          navigationViewModel.onEnrollFirst(token, challenge)
-        }
-      }
-    }
-
-  override fun userLockout(authAttemptViewModel: FingerprintAuthAttemptViewModel.Error) {
-    Toast.makeText(activity, authAttemptViewModel.message, Toast.LENGTH_SHORT).show()
-  }
-
-  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
-    // This is needed to support ChooseLockSettingBuilder...show(). All other activity
-    // calls should use the registerForActivity method call.
-    super.onActivityResult(requestCode, resultCode, data)
-    onConfirmDevice(resultCode, data)
-  }
-
-  override fun onCreate(icicle: Bundle?) {
-    super.onCreate(icicle)
-
-    if (icicle != null) {
-      Log.d(TAG, "onCreateWithSavedState")
-    } else {
-      Log.d(TAG, "onCreate()")
-    }
-
-    if (
-      !FeatureFlagUtils.isEnabled(
-        context,
-        FeatureFlagUtils.SETTINGS_BIOMETRICS2_FINGERPRINT_SETTINGS
-      )
-    ) {
-      Log.d(TAG, "Finishing due to feature not being enabled")
-      finish()
-      return
-    }
-
-    val context = requireContext()
-    val userId = context.userId
-
-    preferenceScreen.isVisible = false
-
-    val fingerprintManager = context.getSystemService(FINGERPRINT_SERVICE) as FingerprintManager
-
-    val backgroundDispatcher = Dispatchers.IO
-    val activity = requireActivity()
-    val userHandle = activity.user.identifier
-
-    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
-      }
-
-    val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
-    val challenge = intent.getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, -1L)
-
-    navigationViewModel =
-      ViewModelProvider(
-        this,
-        FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
-          userId,
-          interactor,
-          backgroundDispatcher,
-          token,
-          challenge
-        )
-      )[FingerprintSettingsNavigationViewModel::class.java]
-
-    settingsViewModel =
-      ViewModelProvider(
-        this,
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          userId,
-          interactor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-      )[FingerprintSettingsViewModel::class.java]
-
-    FingerprintSettingsViewBinder.bind(
-      this,
-      settingsViewModel,
-      navigationViewModel,
-      lifecycleScope,
-    )
-  }
-
-  override fun getMetricsCategory(): Int {
-    return SettingsEnums.FINGERPRINT
-  }
-
-  override fun getPreferenceScreenResId(): Int {
-    return R.xml.security_settings_fingerprint_limbo
-  }
-
-  override fun getLogTag(): String {
-    return TAG
-  }
-
-  override fun onStop() {
-    super.onStop()
-    navigationViewModel.maybeFinishActivity(requireActivity().isChangingConfigurations)
-  }
-
-  override fun onPause() {
-    super.onPause()
-    settingsViewModel.shouldAuthenticate(false)
-    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.commit()
-  }
-
-  override fun onResume() {
-    super.onResume()
-    settingsViewModel.shouldAuthenticate(true)
-  }
-
-  /** Used to indicate that preference has been clicked */
-  fun onPrefClicked(fingerprintViewModel: FingerprintViewModel) {
-    Log.d(TAG, "onPrefClicked(${fingerprintViewModel})")
-    settingsViewModel.onPrefClicked(fingerprintViewModel)
-  }
-
-  /** Used to indicate that a delete pref has been clicked */
-  fun onDeletePrefClicked(fingerprintViewModel: FingerprintViewModel) {
-    Log.d(TAG, "onDeletePrefClicked(${fingerprintViewModel})")
-    settingsViewModel.onDeleteClicked(fingerprintViewModel)
-  }
-
-  override fun showSettings(state: FingerprintStateViewModel) {
-    val category =
-      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINTS_ENROLLED_CATEGORY)
-        as PreferenceCategory?
-
-    category?.removeAll()
-
-    state.fingerprintViewModels.forEach { fingerprint ->
-      category?.addPreference(
-        FingerprintSettingsPreference(
-          requireContext(),
-          fingerprint,
-          this@FingerprintSettingsV2Fragment,
-          state.fingerprintViewModels.size == 1,
-        )
-      )
-    }
-    category?.isVisible = true
-
-    createFingerprintsFooterPreference(state.canEnroll, state.maxFingerprints)
-    preferenceScreen.isVisible = true
-
-    val sideFpsPref =
-      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINT_SIDE_FPS_CATEGORY)
-        as PreferenceCategory?
-    sideFpsPref?.isVisible = false
-
-    if (state.hasSideFps) {
-      sideFpsPref?.isVisible = state.fingerprintViewModels.isNotEmpty()
-      val otherPref =
-        this@FingerprintSettingsV2Fragment.findPreference(
-          KEY_FINGERPRINT_SIDE_FPS_SCREEN_ON_TO_AUTH
-        ) as Preference?
-      otherPref?.isVisible = state.fingerprintViewModels.isNotEmpty()
-    }
-    addFooter(state.hasSideFps)
-  }
-  private fun addFooter(hasSideFps: Boolean) {
-    val footer =
-      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINT_FOOTER)
-        as PreferenceCategory?
-    val admin =
-      RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
-        activity,
-        DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT,
-        requireActivity().userId
-      )
-    val activity = requireActivity()
-    val helpIntent =
-      HelpUtils.getHelpIntent(activity, getString(helpResource), activity::class.java.name)
-    val learnMoreClickListener =
-      View.OnClickListener { v: View? -> activity.startActivityForResult(helpIntent, 0) }
-
-    class FooterColumn {
-      var title: CharSequence? = null
-      var learnMoreOverrideText: CharSequence? = null
-      var learnMoreOnClickListener: View.OnClickListener? = null
-    }
-
-    var footerColumns = mutableListOf<FooterColumn>()
-    if (admin != null) {
-      val devicePolicyManager = getSystemService(DevicePolicyManager::class.java)
-      val column1 = FooterColumn()
-      column1.title =
-        devicePolicyManager.resources.getString(FINGERPRINT_UNLOCK_DISABLED_EXPLANATION) {
-          getString(R.string.security_fingerprint_disclaimer_lockscreen_disabled_1)
-        }
-
-      column1.learnMoreOnClickListener =
-        View.OnClickListener { _ ->
-          RestrictedLockUtils.sendShowAdminSupportDetailsIntent(activity, admin)
-        }
-      column1.learnMoreOverrideText = getText(R.string.admin_support_more_info)
-      footerColumns.add(column1)
-      val column2 = FooterColumn()
-      column2.title = getText(R.string.security_fingerprint_disclaimer_lockscreen_disabled_2)
-      if (hasSideFps) {
-        column2.learnMoreOverrideText =
-          getText(R.string.security_settings_fingerprint_settings_footer_learn_more)
-      }
-      column2.learnMoreOnClickListener = learnMoreClickListener
-      footerColumns.add(column2)
-    } else {
-      val column = FooterColumn()
-      column.title =
-        getString(
-          R.string.security_settings_fingerprint_enroll_introduction_v3_message,
-          DeviceHelper.getDeviceName(requireActivity())
-        )
-      column.learnMoreOnClickListener = learnMoreClickListener
-      if (hasSideFps) {
-        column.learnMoreOverrideText =
-          getText(R.string.security_settings_fingerprint_settings_footer_learn_more)
-      }
-      footerColumns.add(column)
-    }
-
-    footer?.removeAll()
-    for (i in 0 until footerColumns.size) {
-      val column = footerColumns[i]
-      val footerPrefToAdd: FooterPreference =
-        FooterPreference.Builder(requireContext()).setTitle(column.title).build()
-      if (i > 0) {
-        footerPrefToAdd.setIconVisibility(View.GONE)
-      }
-      if (column.learnMoreOnClickListener != null) {
-        footerPrefToAdd.setLearnMoreAction(column.learnMoreOnClickListener)
-        if (!TextUtils.isEmpty(column.learnMoreOverrideText)) {
-          footerPrefToAdd.setLearnMoreText(column.learnMoreOverrideText)
-        }
-      }
-      footer?.addPreference(footerPrefToAdd)
-    }
-  }
-
-  override suspend fun askUserToDeleteDialog(fingerprintViewModel: FingerprintViewModel): Boolean {
-    Log.d(TAG, "showing delete dialog for (${fingerprintViewModel})")
-
-    try {
-      val willDelete =
-        fingerprintPreferences()
-          .first { it?.fingerprintViewModel == fingerprintViewModel }
-          ?.askUserToDeleteDialog()
-          ?: false
-      if (willDelete) {
-        mMetricsFeatureProvider.action(
-          context,
-          SettingsEnums.ACTION_FINGERPRINT_DELETE,
-          fingerprintViewModel.fingerId
-        )
-      }
-      return willDelete
-    } catch (exception: Exception) {
-      Log.d(TAG, "askUserToDeleteDialog exception $exception")
-      return false
-    }
-  }
-
-  override suspend fun askUserToRenameDialog(
-    fingerprintViewModel: FingerprintViewModel
-  ): Pair<FingerprintViewModel, String>? {
-    Log.d(TAG, "showing rename dialog for (${fingerprintViewModel})")
-    try {
-      val toReturn =
-        fingerprintPreferences()
-          .first { it?.fingerprintViewModel == fingerprintViewModel }
-          ?.askUserToRenameDialog()
-      if (toReturn != null) {
-        mMetricsFeatureProvider.action(
-          context,
-          SettingsEnums.ACTION_FINGERPRINT_RENAME,
-          toReturn.first.fingerId
-        )
-      }
-      return toReturn
-    } catch (exception: Exception) {
-      Log.d(TAG, "askUserToRenameDialog exception $exception")
-      return null
-    }
-  }
-
-  override suspend fun highlightPref(fingerId: Int) {
-    fingerprintPreferences()
-      .first { pref -> pref?.fingerprintViewModel?.fingerId == fingerId }
-      ?.highlight()
-  }
-
-  override fun launchConfirmOrChooseLock(userId: Int) {
-    lifecycleScope.launch(Dispatchers.Default) {
-      navigationViewModel.setStepToLaunched()
-      val intent = Intent()
-      val builder =
-        ChooseLockSettingsHelper.Builder(requireActivity(), this@FingerprintSettingsV2Fragment)
-      val launched =
-        builder
-          .setRequestCode(CONFIRM_REQUEST)
-          .setTitle(getString(R.string.security_settings_fingerprint_preference_title))
-          .setRequestGatekeeperPasswordHandle(true)
-          .setUserId(userId)
-          .setForegroundOnly(true)
-          .setReturnCredentials(true)
-          .show()
-      if (!launched) {
-        intent.setClassName(SETTINGS_PACKAGE_NAME, ChooseLockGeneric::class.java.name)
-        intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS, true)
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
-        intent.putExtra(Intent.EXTRA_USER_ID, userId)
-        confirmDeviceResultListener.launch(intent)
-      }
-    }
-  }
-
-  override fun launchFullFingerprintEnrollment(
-    userId: Int,
-    gateKeeperPasswordHandle: Long?,
-    challenge: Long?,
-    challengeToken: ByteArray?,
-  ) {
-    navigationViewModel.setStepToLaunched()
-    Log.d(TAG, "launchFullFingerprintEnrollment")
-    val intent = Intent()
-    intent.setClassName(
-      SETTINGS_PACKAGE_NAME,
-      FingerprintEnrollIntroductionInternal::class.java.name
-    )
-    intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true)
-    intent.putExtra(
-      SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
-      SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE
-    )
-
-    intent.putExtra(Intent.EXTRA_USER_ID, userId)
-
-    if (gateKeeperPasswordHandle != null) {
-      intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, gateKeeperPasswordHandle)
-    } else {
-      intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, challengeToken)
-      intent.putExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge)
-    }
-    launchFirstEnrollmentListener.launch(intent)
-  }
-
-  override fun setResultExternal(resultCode: Int) {
-    setResult(resultCode)
-  }
-
-  override fun launchAddFingerprint(userId: Int, challengeToken: ByteArray?) {
-    navigationViewModel.setStepToLaunched()
-    val intent = Intent()
-    intent.setClassName(
-      SETTINGS_PACKAGE_NAME,
-      FingerprintEnrollEnrolling::class.qualifiedName.toString()
-    )
-    intent.putExtra(Intent.EXTRA_USER_ID, userId)
-    intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, challengeToken)
-    launchAdditionalFingerprintListener.launch(intent)
-  }
-
-  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?
-    lifecycleScope.launch {
-      navigationViewModel.onConfirmDevice(wasSuccessful, gateKeeperPasswordHandle)
-    }
-  }
-
-  private fun createFingerprintsFooterPreference(canEnroll: Boolean, maxFingerprints: Int) {
-    val pref = this@FingerprintSettingsV2Fragment.findPreference<Preference>(KEY_FINGERPRINT_ADD)
-    val maxSummary = context?.getString(R.string.fingerprint_add_max, maxFingerprints) ?: ""
-    pref?.summary = maxSummary
-    pref?.isEnabled = canEnroll
-    pref?.setOnPreferenceClickListener {
-      navigationViewModel.onAddFingerprintClicked()
-      true
-    }
-    pref?.isVisible = true
-  }
-
-  private fun fingerprintPreferences(): List<FingerprintSettingsPreference?> {
-    val category =
-      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINTS_ENROLLED_CATEGORY)
-        as PreferenceCategory?
-
-    return category?.let { cat ->
-      cat.childrenToList().map { it as FingerprintSettingsPreference? }
-    }
-      ?: emptyList()
-  }
-
-  private fun PreferenceCategory.childrenToList(): List<Preference> {
-    val mutable: MutableList<Preference> = mutableListOf()
-    for (i in 0 until this.preferenceCount) {
-      mutable.add(this.getPreference(i))
-    }
-    return mutable.toList()
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/README.md b/src/com/android/settings/biometrics/fingerprint2/ui/settings/README.md
new file mode 100644
index 0000000..461ffc2
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/README.md
@@ -0,0 +1,17 @@
+### Fingerprint Settings Enrollment
+
+#### Entry Point (For Fingerprint Settings)
+
+* [SecuritySettings] (https://cs.android.com/android/platform/superproject/+/master:packages/apps/Settings/src/com/android/settings/security/SecuritySettings.java;l=40?q=SecuritySettings)
+
+#### General Architecture
+
+The code should follow the MVVM architecture.
+
+The FingerprintSettingsV2Fragment is responsible for most of the heavy lifting. It should coordinate
+navigation events, maintain the viewmodels, and launch new activities if need be.
+
+#### Style
+
+* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
+
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
new file mode 100644
index 0000000..debdfb8
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.settings.binder
+
+import android.hardware.fingerprint.FingerprintManager
+import android.util.Log
+import androidx.lifecycle.LifecycleCoroutineScope
+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
+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.FinishSettings
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchedActivity
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintSettingsViewBinder"
+
+/** Binds a [FingerprintSettingsViewModel] to a [FingerprintView] */
+object FingerprintSettingsViewBinder {
+
+  interface FingerprintView {
+    /**
+     * Helper function to launch fingerprint enrollment(This should be the default behavior when a
+     * user enters their PIN/PATTERN/PASS and no fingerprints are enrolled).
+     */
+    fun launchFullFingerprintEnrollment(
+      userId: Int,
+      gateKeeperPasswordHandle: Long?,
+      challenge: Long?,
+      challengeToken: ByteArray?
+    )
+    /** Helper to launch an add fingerprint request */
+    fun launchAddFingerprint(userId: Int, challengeToken: ByteArray?)
+    /**
+     * Helper function that will try and launch confirm lock, if that fails we will prompt user to
+     * choose a PIN/PATTERN/PASS.
+     */
+    fun launchConfirmOrChooseLock(userId: Int)
+    /** Used to indicate that FingerprintSettings is finished. */
+    fun finish()
+    /** 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<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: 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: FingerprintData): Boolean
+    /** Indicates a user should be asked to renae ma dialog */
+    suspend fun askUserToRenameDialog(
+      fingerprintViewModel: FingerprintData
+    ): Pair<FingerprintData, String>?
+  }
+
+  fun bind(
+    view: FingerprintView,
+    viewModel: FingerprintSettingsViewModel,
+    navigationViewModel: FingerprintSettingsNavigationViewModel,
+    lifecycleScope: LifecycleCoroutineScope,
+  ) {
+
+    /** Result listener for launching enrollments **after** a user has reached the settings page. */
+
+    // Settings display flow
+    lifecycleScope.launch { viewModel.enrolledFingerprints.collect { view.showSettings(it) } }
+    lifecycleScope.launch {
+      viewModel.addFingerprintPrefInfo.collect { (enablePref, maxFingerprints) ->
+        view.updateAddFingerprintsPreference(enablePref, maxFingerprints)
+      }
+    }
+    lifecycleScope.launch { viewModel.isSfpsPrefVisible.collect { view.updateSfpsPreference(it) } }
+
+    // Dialog flow
+    lifecycleScope.launch {
+      viewModel.isShowingDialog.collectLatest {
+        if (it == null) {
+          return@collectLatest
+        }
+        when (it) {
+          is PreferenceViewModel.RenameDialog -> {
+            val willRename = view.askUserToRenameDialog(it.fingerprintViewModel)
+            if (willRename != null) {
+              Log.d(TAG, "renaming fingerprint $it")
+              viewModel.renameFingerprint(willRename.first, willRename.second)
+            }
+            viewModel.onRenameDialogFinished()
+          }
+          is PreferenceViewModel.DeleteDialog -> {
+            if (view.askUserToDeleteDialog(it.fingerprintViewModel)) {
+              Log.d(TAG, "deleting fingerprint $it")
+              viewModel.deleteFingerprint(it.fingerprintViewModel)
+            }
+            viewModel.onDeleteDialogFinished()
+          }
+        }
+      }
+    }
+
+    // Auth flow
+    lifecycleScope.launch {
+      viewModel.authFlow.filterNotNull().collect {
+        when (it) {
+          is FingerprintAuthAttemptModel.Success -> {
+            view.highlightPref(it.fingerId)
+          }
+          is FingerprintAuthAttemptModel.Error -> {
+            if (it.error == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
+              view.userLockout(it)
+            }
+          }
+        }
+      }
+    }
+
+    // Launch this on Dispatchers.Default and not main.
+    // Otherwise it takes too long for state transitions such as PIN/PATTERN/PASS
+    // to enrollment, which makes gives the user a janky experience.
+    lifecycleScope.launch(Dispatchers.Default) {
+      var settingsShowingJob: Job? = null
+      navigationViewModel.nextStep.filterNotNull().collect { nextStep ->
+        settingsShowingJob?.cancel()
+        settingsShowingJob = null
+        Log.d(TAG, "next step = $nextStep")
+        when (nextStep) {
+          is EnrollFirstFingerprint ->
+            view.launchFullFingerprintEnrollment(
+              nextStep.userId,
+              nextStep.gateKeeperPasswordHandle,
+              nextStep.challenge,
+              nextStep.challengeToken
+            )
+          is EnrollAdditionalFingerprint ->
+            view.launchAddFingerprint(nextStep.userId, nextStep.challengeToken)
+          is LaunchConfirmDeviceCredential -> view.launchConfirmOrChooseLock(nextStep.userId)
+          is FinishSettings -> {
+            Log.d(TAG, "Finishing due to ${nextStep.reason}")
+            view.finish()
+          }
+          is FinishSettingsWithResult -> {
+            Log.d(TAG, "Finishing with result ${nextStep.result} due to ${nextStep.reason}")
+            view.setResultExternal(nextStep.result)
+            view.finish()
+          }
+          is ShowSettings -> Log.d(TAG, "Showing settings")
+          is LaunchedActivity -> Log.d(TAG, "Launched activity, awaiting result")
+        }
+      }
+    }
+  }
+}
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
new file mode 100644
index 0000000..71a22eb
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.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.biometrics.fingerprint2.ui.settings.fragment
+
+import android.app.Dialog
+import android.app.admin.DevicePolicyManager
+import android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE
+import android.app.admin.DevicePolicyResources.UNDEFINED
+import android.app.settings.SettingsEnums
+import android.content.DialogInterface
+import android.os.Bundle
+import android.os.UserManager
+import androidx.appcompat.app.AlertDialog
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment
+import kotlin.coroutines.resume
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+private const val KEY_IS_LAST_FINGERPRINT = "IS_LAST_FINGERPRINT"
+
+class FingerprintDeletionDialog : InstrumentedDialogFragment() {
+  private lateinit var fingerprintViewModel: FingerprintData
+  private var isLastFingerprint: Boolean = false
+  private lateinit var alertDialog: AlertDialog
+  lateinit var onClickListener: DialogInterface.OnClickListener
+  lateinit var onNegativeClickListener: DialogInterface.OnClickListener
+  lateinit var onCancelListener: DialogInterface.OnCancelListener
+
+  override fun getMetricsCategory(): Int {
+    return SettingsEnums.DIALOG_FINGERPINT_EDIT
+  }
+
+  override fun onCancel(dialog: DialogInterface) {
+    onCancelListener.onCancel(dialog)
+  }
+
+  override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+    val fp = requireArguments().get(KEY_FINGERPRINT) as android.hardware.fingerprint.Fingerprint
+    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)
+    val context = requireContext()
+
+    if (isLastFingerprint) {
+      val isProfileChallengeUser = UserManager.get(context).isManagedProfile(context.userId)
+      val messageId =
+        if (isProfileChallengeUser) {
+          WORK_PROFILE_FINGERPRINT_LAST_DELETE_MESSAGE
+        } else {
+          UNDEFINED
+        }
+      val defaultMessageId =
+        if (isProfileChallengeUser) {
+          R.string.fingerprint_last_delete_message_profile_challenge
+        } else {
+          R.string.fingerprint_last_delete_message
+        }
+      val devicePolicyManager = requireContext().getSystemService(DevicePolicyManager::class.java)
+      message =
+        devicePolicyManager?.resources?.getString(messageId) {
+          message + "\n\n" + context.getString(defaultMessageId)
+        }
+          ?: ""
+    }
+
+    alertDialog =
+      AlertDialog.Builder(requireActivity())
+        .setTitle(title)
+        .setMessage(message)
+        .setPositiveButton(
+          R.string.security_settings_fingerprint_enroll_dialog_delete,
+          onClickListener
+        )
+        .setNegativeButton(R.string.cancel, onNegativeClickListener)
+        .create()
+    return alertDialog
+  }
+
+  companion object {
+    private const val KEY_FINGERPRINT = "fingerprint"
+    suspend fun showInstance(
+        fp: FingerprintData,
+        lastFingerprint: Boolean,
+        target: FingerprintSettingsV2Fragment,
+    ) = suspendCancellableCoroutine { continuation ->
+      val dialog = FingerprintDeletionDialog()
+      dialog.onClickListener = DialogInterface.OnClickListener { _, _ -> continuation.resume(true) }
+      dialog.onNegativeClickListener =
+        DialogInterface.OnClickListener { _, _ -> continuation.resume(false) }
+      dialog.onCancelListener = DialogInterface.OnCancelListener { continuation.resume(false) }
+
+      continuation.invokeOnCancellation { dialog.dismiss() }
+      val bundle = Bundle()
+      bundle.putObject(
+        KEY_FINGERPRINT,
+        android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId)
+      )
+      bundle.putBoolean(KEY_IS_LAST_FINGERPRINT, lastFingerprint)
+      dialog.arguments = bundle
+      dialog.show(target.parentFragmentManager, FingerprintDeletionDialog::class.java.toString())
+    }
+  }
+}
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
new file mode 100644
index 0000000..ea26946
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.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.settings.fragment
+
+import android.content.Context
+import android.util.Log
+import android.view.View
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.PreferenceViewHolder
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settingslib.widget.TwoTargetPreference
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintSettingsPreference"
+
+class FingerprintSettingsPreference(
+    context: Context,
+    val fingerprintViewModel: FingerprintData,
+    val fragment: FingerprintSettingsV2Fragment,
+    val isLastFingerprint: Boolean
+) : TwoTargetPreference(context) {
+  private lateinit var myView: View
+
+  init {
+    key = "FINGERPRINT_" + fingerprintViewModel.fingerId
+    Log.d(TAG, "FingerprintPreference $this with frag $fragment $key")
+    title = fingerprintViewModel.name
+    isPersistent = false
+    setIcon(R.drawable.ic_fingerprint_24dp)
+    setOnPreferenceClickListener {
+      fragment.lifecycleScope.launch { fragment.onPrefClicked(fingerprintViewModel) }
+      true
+    }
+  }
+
+  override fun onBindViewHolder(view: PreferenceViewHolder) {
+    super.onBindViewHolder(view)
+    myView = view.itemView
+    view.itemView.findViewById<View>(R.id.delete_button)?.setOnClickListener {
+      fragment.lifecycleScope.launch { fragment.onDeletePrefClicked(fingerprintViewModel) }
+    }
+  }
+
+  /** Highlights this dialog. */
+  suspend fun highlight() {
+    fragment.activity?.getDrawable(R.drawable.preference_highlight)?.let { highlight ->
+      val centerX: Float = myView.width / 2.0f
+      val centerY: Float = myView.height / 2.0f
+      highlight.setHotspot(centerX, centerY)
+      myView.background = highlight
+      myView.isPressed = true
+      myView.isPressed = false
+      delay(300)
+      myView.background = null
+    }
+  }
+
+  override fun getSecondTargetResId(): Int {
+    return R.layout.preference_widget_delete
+  }
+
+  suspend fun askUserToDeleteDialog(): Boolean {
+    return FingerprintDeletionDialog.showInstance(fingerprintViewModel, isLastFingerprint, fragment)
+  }
+
+  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
new file mode 100644
index 0000000..ff469f1
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
@@ -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.biometrics.fingerprint2.ui.settings.fragment
+
+import android.app.Dialog
+import android.app.settings.SettingsEnums
+import android.content.DialogInterface
+import android.os.Bundle
+import android.text.InputFilter
+import android.text.Spanned
+import android.text.TextUtils
+import android.util.Log
+import android.widget.ImeAwareEditText
+import androidx.appcompat.app.AlertDialog
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment
+import kotlin.coroutines.resume
+import kotlinx.coroutines.suspendCancellableCoroutine
+
+private const val TAG = "FingerprintSettingsRenameDialog"
+
+class FingerprintSettingsRenameDialog : InstrumentedDialogFragment() {
+  lateinit var onClickListener: 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 {
+    Log.d(TAG, "onCreateDialog $this")
+    val fp = requireArguments().get(KEY_FINGERPRINT) as android.hardware.fingerprint.Fingerprint
+    val fingerprintViewModel = FingerprintData(fp.name.toString(), fp.biometricId, fp.deviceId)
+
+    val context = requireContext()
+    val alertDialog =
+      AlertDialog.Builder(context)
+        .setView(R.layout.fingerprint_rename_dialog)
+        .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok, onClickListener)
+        .create()
+    alertDialog.setOnShowListener {
+      (dialog?.findViewById(R.id.fingerprint_rename_field) as ImeAwareEditText?)?.apply {
+        val name = fingerprintViewModel.name
+        setText(name)
+        filters = this@FingerprintSettingsRenameDialog.getFilters()
+        selectAll()
+        requestFocus()
+        scheduleShowSoftInput()
+      }
+    }
+
+    return alertDialog
+  }
+
+  private fun getFilters(): Array<InputFilter> {
+    val filter: InputFilter =
+      object : InputFilter {
+
+        override fun filter(
+          source: CharSequence,
+          start: Int,
+          end: Int,
+          dest: Spanned?,
+          dstart: Int,
+          dend: Int
+        ): CharSequence? {
+          for (index in start until end) {
+            val c = source[index]
+            // KXMLSerializer does not allow these characters,
+            // see KXmlSerializer.java:162.
+            if (c.code < 0x20) {
+              return ""
+            }
+          }
+          return null
+        }
+      }
+    return arrayOf(filter)
+  }
+
+  override fun getMetricsCategory(): Int {
+    return SettingsEnums.DIALOG_FINGERPINT_EDIT
+  }
+
+  companion object {
+    private const val KEY_FINGERPRINT = "fingerprint"
+
+    suspend fun showInstance(fp: FingerprintData, target: FingerprintSettingsV2Fragment) =
+      suspendCancellableCoroutine { continuation ->
+        val dialog = FingerprintSettingsRenameDialog()
+        val onClick =
+          DialogInterface.OnClickListener { _, _ ->
+            val dialogTextField =
+              dialog.requireDialog().requireViewById(R.id.fingerprint_rename_field)
+                as ImeAwareEditText
+            val newName = dialogTextField.text.toString()
+            if (!TextUtils.equals(newName, fp.name)) {
+              Log.d(TAG, "rename $fp.name to $newName for $dialog")
+              continuation.resume(Pair(fp, newName))
+            } else {
+              continuation.resume(null)
+            }
+          }
+
+        dialog.onClickListener = onClick
+        dialog.onCancelListener =
+          DialogInterface.OnCancelListener {
+            Log.d(TAG, "onCancelListener clicked $dialog")
+            continuation.resume(null)
+          }
+
+        continuation.invokeOnCancellation {
+          Log.d(TAG, "invokeOnCancellation $dialog")
+          dialog.dismiss()
+        }
+
+        val bundle = Bundle()
+        bundle.putObject(
+          KEY_FINGERPRINT,
+          android.hardware.fingerprint.Fingerprint(fp.name, fp.fingerId, fp.deviceId)
+        )
+        dialog.arguments = bundle
+        Log.d(TAG, "showing dialog $dialog")
+        dialog.show(
+          target.parentFragmentManager,
+          FingerprintSettingsRenameDialog::class.java.toString()
+        )
+      }
+  }
+}
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
new file mode 100644
index 0000000..c22a5a7
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
@@ -0,0 +1,582 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.settings.fragment
+
+import android.app.Activity
+import android.app.admin.DevicePolicyManager
+import android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED_EXPLANATION
+import android.app.settings.SettingsEnums
+import android.content.Context.FINGERPRINT_SERVICE
+import android.content.Intent
+import android.hardware.fingerprint.FingerprintManager
+import android.os.Bundle
+import android.provider.Settings.Secure
+import android.text.TextUtils
+import android.util.Log
+import android.view.View
+import android.widget.Toast
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.Preference
+import androidx.preference.PreferenceCategory
+import com.android.internal.widget.LockPatternUtils
+import com.android.settings.R
+import com.android.settings.Utils.SETTINGS_PACKAGE_NAME
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST
+import com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY
+import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
+import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
+import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
+import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
+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
+import com.android.settings.core.SettingsBaseActivity
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment
+import com.android.settings.dashboard.DashboardFragment
+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.settingslib.HelpUtils
+import com.android.settingslib.RestrictedLockUtils
+import com.android.settingslib.RestrictedLockUtilsInternal
+import com.android.settingslib.transition.SettingsTransitionHelper
+import com.android.settingslib.widget.FooterPreference
+import com.google.android.setupdesign.util.DeviceHelper
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintSettingsV2Fragment"
+private const val KEY_FINGERPRINTS_ENROLLED_CATEGORY = "security_settings_fingerprints_enrolled"
+private const val KEY_FINGERPRINT_SIDE_FPS_CATEGORY =
+  "security_settings_fingerprint_unlock_category"
+private const val KEY_FINGERPRINT_ADD = "key_fingerprint_add"
+private const val KEY_FINGERPRINT_SIDE_FPS_SCREEN_ON_TO_AUTH =
+  "security_settings_require_screen_on_to_auth"
+private const val KEY_FINGERPRINT_FOOTER = "security_settings_fingerprint_footer"
+
+/**
+ * A class responsible for showing FingerprintSettings. Typical activity Flows are
+ * 1. Settings > FingerprintSettings > PIN/PATTERN/PASS -> FingerprintSettings
+ * 2. FingerprintSettings -> FingerprintEnrollment fow
+ *
+ * This page typically allows for
+ * 1. Fingerprint deletion
+ * 2. Fingerprint enrollment
+ * 3. Renaming a fingerprint
+ * 4. Enabling/Disabling a feature
+ */
+class FingerprintSettingsV2Fragment :
+  DashboardFragment(), FingerprintSettingsViewBinder.FingerprintView {
+  private lateinit var settingsViewModel: FingerprintSettingsViewModel
+  private lateinit var navigationViewModel: FingerprintSettingsNavigationViewModel
+
+  /** Result listener for ChooseLock activity flow. */
+  private val confirmDeviceResultListener =
+    registerForActivityResult(StartActivityForResult()) { result ->
+      val resultCode = result.resultCode
+      val data = result.data
+      onConfirmDevice(resultCode, data)
+    }
+
+  /** Result listener for launching enrollments **after** a user has reached the settings page. */
+  private val launchAdditionalFingerprintListener: ActivityResultLauncher<Intent> =
+    registerForActivityResult(StartActivityForResult()) { result ->
+      lifecycleScope.launch {
+        val resultCode = result.resultCode
+        Log.d(TAG, "onEnrollAdditionalFingerprint($resultCode)")
+
+        if (resultCode == BiometricEnrollBase.RESULT_TIMEOUT) {
+          navigationViewModel.onEnrollAdditionalFailure()
+        } else {
+          navigationViewModel.onEnrollSuccess()
+        }
+      }
+    }
+
+  /** Initial listener for the first enrollment request */
+  private val launchFirstEnrollmentListener: ActivityResultLauncher<Intent> =
+    registerForActivityResult(StartActivityForResult()) { result ->
+      lifecycleScope.launch {
+        val resultCode = result.resultCode
+        val data = result.data
+
+        Log.d(TAG, "onEnrollFirstFingerprint($resultCode, $data)")
+        if (resultCode != RESULT_FINISHED || data == null) {
+          if (resultCode == BiometricEnrollBase.RESULT_TIMEOUT) {
+            navigationViewModel.onEnrollFirstFailure(
+              "Received RESULT_TIMEOUT when enrolling",
+              resultCode
+            )
+          } else {
+            navigationViewModel.onEnrollFirstFailure(
+              "Incorrect resultCode or data was null",
+              resultCode
+            )
+          }
+        } else {
+          val token = data.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
+          val challenge = data.getExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE) as Long?
+          navigationViewModel.onEnrollFirst(token, challenge)
+        }
+      }
+    }
+
+  override fun userLockout(authAttemptViewModel: FingerprintAuthAttemptModel.Error) {
+    Toast.makeText(activity, authAttemptViewModel.message, Toast.LENGTH_SHORT).show()
+  }
+
+  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+    // This is needed to support ChooseLockSettingBuilder...show(). All other activity
+    // calls should use the registerForActivity method call.
+    super.onActivityResult(requestCode, resultCode, data)
+    onConfirmDevice(resultCode, data)
+  }
+
+  override fun onCreate(icicle: Bundle?) {
+    super.onCreate(icicle)
+
+    if (icicle != null) {
+      Log.d(TAG, "onCreateWithSavedState")
+    } else {
+      Log.d(TAG, "onCreate()")
+    }
+
+    /*
+    if (
+      !FeatureFlagUtils.isEnabled(
+        context,
+        FeatureFlagUtils.SETTINGS_BIOMETRICS2_FINGERPRINT_SETTINGS
+      )
+    ) {
+      Log.d(TAG, "Finishing due to feature not being enabled")
+      finish()
+      return
+    }
+
+     */
+
+    val context = requireContext()
+    val userId = context.userId
+
+    preferenceScreen.isVisible = false
+
+    val fingerprintManager = context.getSystemService(FINGERPRINT_SERVICE) as FingerprintManager
+
+    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)),
+        PressToAuthProviderImpl(context),
+        isAnySuw
+      )
+
+    val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
+    val challenge = intent.getLongExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, -1L)
+
+    navigationViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
+          userId,
+          interactor,
+          backgroundDispatcher,
+          token,
+          challenge
+        )
+      )[FingerprintSettingsNavigationViewModel::class.java]
+
+    settingsViewModel =
+      ViewModelProvider(
+        this,
+        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          userId,
+          interactor,
+          backgroundDispatcher,
+          navigationViewModel,
+        )
+      )[FingerprintSettingsViewModel::class.java]
+
+    FingerprintSettingsViewBinder.bind(
+      this,
+      settingsViewModel,
+      navigationViewModel,
+      lifecycleScope,
+    )
+  }
+
+  override fun getMetricsCategory(): Int {
+    return SettingsEnums.FINGERPRINT
+  }
+
+  override fun getPreferenceScreenResId(): Int {
+    return R.xml.security_settings_fingerprint_limbo
+  }
+
+  override fun getLogTag(): String {
+    return TAG
+  }
+
+  override fun onStop() {
+    super.onStop()
+    navigationViewModel.maybeFinishActivity(requireActivity().isChangingConfigurations)
+  }
+
+  override fun onPause() {
+    super.onPause()
+    settingsViewModel.shouldAuthenticate(false)
+    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.commit()
+  }
+
+  override fun onResume() {
+    super.onResume()
+    settingsViewModel.shouldAuthenticate(true)
+  }
+
+  /** Used to indicate that preference has been clicked */
+  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: FingerprintData) {
+    Log.d(TAG, "onDeletePrefClicked(${fingerprintViewModel})")
+    settingsViewModel.onDeleteClicked(fingerprintViewModel)
+  }
+
+  override fun showSettings(enrolledFingerprints: List<FingerprintData>) {
+    val category =
+      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINTS_ENROLLED_CATEGORY)
+        as PreferenceCategory?
+
+    category?.removeAll()
+
+    enrolledFingerprints.forEach { fingerprint ->
+      category?.addPreference(
+        FingerprintSettingsPreference(
+          requireContext(),
+          fingerprint,
+          this@FingerprintSettingsV2Fragment,
+          enrolledFingerprints.size == 1,
+        )
+      )
+    }
+    category?.isVisible = true
+    preferenceScreen.isVisible = true
+    addFooter()
+  }
+
+  override fun updateAddFingerprintsPreference(canEnroll: Boolean, maxFingerprints: Int) {
+    val pref = this@FingerprintSettingsV2Fragment.findPreference<Preference>(KEY_FINGERPRINT_ADD)
+    val maxSummary = context?.getString(R.string.fingerprint_add_max, maxFingerprints) ?: ""
+    pref?.summary = maxSummary
+    pref?.isEnabled = canEnroll
+    pref?.setOnPreferenceClickListener {
+      navigationViewModel.onAddFingerprintClicked()
+      true
+    }
+    pref?.isVisible = true
+  }
+
+  override fun updateSfpsPreference(isSfpsPrefVisible: Boolean) {
+    val sideFpsPref =
+      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINT_SIDE_FPS_CATEGORY)
+        as PreferenceCategory?
+    sideFpsPref?.isVisible = isSfpsPrefVisible
+    val otherPref =
+      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINT_SIDE_FPS_SCREEN_ON_TO_AUTH)
+        as Preference?
+    otherPref?.isVisible = isSfpsPrefVisible
+  }
+
+  private fun addFooter() {
+    val footer =
+      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINT_FOOTER)
+        as PreferenceCategory?
+    val admin =
+      RestrictedLockUtilsInternal.checkIfKeyguardFeaturesDisabled(
+        activity,
+        DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT,
+        requireActivity().userId
+      )
+    val activity = requireActivity()
+    val helpIntent =
+      HelpUtils.getHelpIntent(activity, getString(helpResource), activity::class.java.name)
+    val learnMoreClickListener =
+      View.OnClickListener { v: View? -> activity.startActivityForResult(helpIntent, 0) }
+
+    class FooterColumn {
+      var title: CharSequence? = null
+      var learnMoreOverrideText: CharSequence? = null
+      var learnMoreOnClickListener: View.OnClickListener? = null
+    }
+
+    var footerColumns = mutableListOf<FooterColumn>()
+    if (admin != null) {
+      val devicePolicyManager = getSystemService(DevicePolicyManager::class.java)
+      val column1 = FooterColumn()
+      column1.title =
+        devicePolicyManager.resources.getString(FINGERPRINT_UNLOCK_DISABLED_EXPLANATION) {
+          getString(R.string.security_fingerprint_disclaimer_lockscreen_disabled_1)
+        }
+
+      column1.learnMoreOnClickListener =
+        View.OnClickListener { _ ->
+          RestrictedLockUtils.sendShowAdminSupportDetailsIntent(activity, admin)
+        }
+      column1.learnMoreOverrideText = getText(R.string.admin_support_more_info)
+      footerColumns.add(column1)
+      val column2 = FooterColumn()
+      column2.title = getText(R.string.security_fingerprint_disclaimer_lockscreen_disabled_2)
+      column2.learnMoreOverrideText =
+        getText(R.string.security_settings_fingerprint_settings_footer_learn_more)
+      column2.learnMoreOnClickListener = learnMoreClickListener
+      footerColumns.add(column2)
+    } else {
+      val column = FooterColumn()
+      column.title =
+        getString(
+          R.string.security_settings_fingerprint_enroll_introduction_v3_message,
+          DeviceHelper.getDeviceName(requireActivity())
+        )
+      column.learnMoreOnClickListener = learnMoreClickListener
+      column.learnMoreOverrideText =
+        getText(R.string.security_settings_fingerprint_settings_footer_learn_more)
+      footerColumns.add(column)
+    }
+
+    footer?.removeAll()
+    for (i in 0 until footerColumns.size) {
+      val column = footerColumns[i]
+      val footerPrefToAdd: FooterPreference =
+        FooterPreference.Builder(requireContext()).setTitle(column.title).build()
+      if (i > 0) {
+        footerPrefToAdd.setIconVisibility(View.GONE)
+      }
+      if (column.learnMoreOnClickListener != null) {
+        footerPrefToAdd.setLearnMoreAction(column.learnMoreOnClickListener)
+        if (!TextUtils.isEmpty(column.learnMoreOverrideText)) {
+          footerPrefToAdd.setLearnMoreText(column.learnMoreOverrideText)
+        }
+      }
+      footer?.addPreference(footerPrefToAdd)
+    }
+  }
+
+  override suspend fun askUserToDeleteDialog(fingerprintViewModel: FingerprintData): Boolean {
+    Log.d(TAG, "showing delete dialog for (${fingerprintViewModel})")
+
+    try {
+      val willDelete =
+        fingerprintPreferences()
+          .first { it?.fingerprintViewModel == fingerprintViewModel }
+          ?.askUserToDeleteDialog()
+          ?: false
+      if (willDelete) {
+        mMetricsFeatureProvider.action(
+          context,
+          SettingsEnums.ACTION_FINGERPRINT_DELETE,
+          fingerprintViewModel.fingerId
+        )
+      }
+      return willDelete
+    } catch (exception: Exception) {
+      Log.d(TAG, "askUserToDeleteDialog exception $exception")
+      return false
+    }
+  }
+
+  override suspend fun askUserToRenameDialog(
+    fingerprintViewModel: FingerprintData
+  ): Pair<FingerprintData, String>? {
+    Log.d(TAG, "showing rename dialog for (${fingerprintViewModel})")
+    try {
+      val toReturn =
+        fingerprintPreferences()
+          .first { it?.fingerprintViewModel == fingerprintViewModel }
+          ?.askUserToRenameDialog()
+      if (toReturn != null) {
+        mMetricsFeatureProvider.action(
+          context,
+          SettingsEnums.ACTION_FINGERPRINT_RENAME,
+          toReturn.first.fingerId
+        )
+      }
+      return toReturn
+    } catch (exception: Exception) {
+      Log.d(TAG, "askUserToRenameDialog exception $exception")
+      return null
+    }
+  }
+
+  override suspend fun highlightPref(fingerId: Int) {
+    fingerprintPreferences()
+      .first { pref -> pref?.fingerprintViewModel?.fingerId == fingerId }
+      ?.highlight()
+  }
+
+  override fun launchConfirmOrChooseLock(userId: Int) {
+    lifecycleScope.launch(Dispatchers.Default) {
+      navigationViewModel.setStepToLaunched()
+      val intent = Intent()
+      val builder =
+        ChooseLockSettingsHelper.Builder(requireActivity(), this@FingerprintSettingsV2Fragment)
+      val launched =
+        builder
+          .setRequestCode(CONFIRM_REQUEST)
+          .setTitle(getString(R.string.security_settings_fingerprint_preference_title))
+          .setRequestGatekeeperPasswordHandle(true)
+          .setUserId(userId)
+          .setForegroundOnly(true)
+          .setReturnCredentials(true)
+          .show()
+      if (!launched) {
+        intent.setClassName(SETTINGS_PACKAGE_NAME, ChooseLockGeneric::class.java.name)
+        intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS, true)
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
+        intent.putExtra(Intent.EXTRA_USER_ID, userId)
+        confirmDeviceResultListener.launch(intent)
+      }
+    }
+  }
+
+  override fun launchFullFingerprintEnrollment(
+    userId: Int,
+    gateKeeperPasswordHandle: Long?,
+    challenge: Long?,
+    challengeToken: ByteArray?,
+  ) {
+    navigationViewModel.setStepToLaunched()
+    Log.d(TAG, "launchFullFingerprintEnrollment")
+    val intent = Intent()
+    intent.setClassName(
+      SETTINGS_PACKAGE_NAME,
+      FingerprintEnrollIntroductionInternal::class.java.name
+    )
+    intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true)
+    intent.putExtra(
+      SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
+      SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE
+    )
+
+    intent.putExtra(Intent.EXTRA_USER_ID, userId)
+
+    if (gateKeeperPasswordHandle != null) {
+      intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, gateKeeperPasswordHandle)
+    } else {
+      intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, challengeToken)
+      intent.putExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge)
+    }
+    launchFirstEnrollmentListener.launch(intent)
+  }
+
+  override fun setResultExternal(resultCode: Int) {
+    setResult(resultCode)
+  }
+
+  override fun launchAddFingerprint(userId: Int, challengeToken: ByteArray?) {
+    navigationViewModel.setStepToLaunched()
+    val intent = Intent()
+    intent.setClassName(
+      SETTINGS_PACKAGE_NAME,
+      FingerprintEnrollEnrolling::class.qualifiedName.toString()
+    )
+    intent.putExtra(Intent.EXTRA_USER_ID, userId)
+    intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, challengeToken)
+    launchAdditionalFingerprintListener.launch(intent)
+  }
+
+  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?
+    lifecycleScope.launch {
+      navigationViewModel.onConfirmDevice(wasSuccessful, gateKeeperPasswordHandle)
+    }
+  }
+
+  private fun fingerprintPreferences(): List<FingerprintSettingsPreference?> {
+    val category =
+      this@FingerprintSettingsV2Fragment.findPreference(KEY_FINGERPRINTS_ENROLLED_CATEGORY)
+        as PreferenceCategory?
+
+    return category?.let { cat ->
+      cat.childrenToList().map { it as FingerprintSettingsPreference? }
+    }
+      ?: emptyList()
+  }
+
+  private fun PreferenceCategory.childrenToList(): List<Preference> {
+    val mutable: MutableList<Preference> = mutableListOf()
+    for (i in 0 until this.preferenceCount) {
+      mutable.add(this.getPreference(i))
+    }
+    return mutable.toList()
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
new file mode 100644
index 0000000..22a25e1
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.settings.viewmodel
+
+import android.hardware.fingerprint.FingerprintManager
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics.fingerprint2.shared.domain.interactor.FingerprintManagerInteractor
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.last
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+/** A Viewmodel that represents the navigation of the FingerprintSettings activity. */
+class FingerprintSettingsNavigationViewModel(
+    private val userId: Int,
+    private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+    private val backgroundDispatcher: CoroutineDispatcher,
+    tokenInit: ByteArray?,
+    challengeInit: Long?,
+) : ViewModel() {
+
+  private var token = tokenInit
+  private var challenge = challengeInit
+
+  private val _nextStep: MutableStateFlow<NextStepViewModel?> = MutableStateFlow(null)
+
+  /** This flow represents the high level state for the FingerprintSettingsV2Fragment. */
+  val nextStep: StateFlow<NextStepViewModel?> = _nextStep.asStateFlow()
+
+  init {
+    if (challengeInit == null || tokenInit == null) {
+      _nextStep.update { LaunchConfirmDeviceCredential(userId) }
+    } else {
+      viewModelScope.launch {
+        if (fingerprintManagerInteractor.enrolledFingerprints.last().isEmpty()) {
+          _nextStep.update { EnrollFirstFingerprint(userId, null, challenge, token) }
+        } else {
+          showSettingsHelper()
+        }
+      }
+    }
+  }
+
+  /** Used to indicate that FingerprintSettings is complete. */
+  fun finish() {
+    _nextStep.update { null }
+  }
+
+  /** Used to finish settings in certain cases. */
+  fun maybeFinishActivity(changingConfig: Boolean) {
+    val isConfirmingOrEnrolling =
+      _nextStep.value is LaunchConfirmDeviceCredential ||
+        _nextStep.value is EnrollAdditionalFingerprint ||
+        _nextStep.value is EnrollFirstFingerprint ||
+        _nextStep.value is LaunchedActivity
+    if (!isConfirmingOrEnrolling && !changingConfig)
+      _nextStep.update {
+        FinishSettingsWithResult(BiometricEnrollBase.RESULT_TIMEOUT, "onStop finishing settings")
+      }
+  }
+
+  /** Used to indicate that we have launched another activity and we should await its result. */
+  fun setStepToLaunched() {
+    _nextStep.update { LaunchedActivity }
+  }
+
+  /** Indicates a successful enroll has occurred */
+  fun onEnrollSuccess() {
+    showSettingsHelper()
+  }
+
+  /** Add fingerprint clicked */
+  fun onAddFingerprintClicked() {
+    _nextStep.update { EnrollAdditionalFingerprint(userId, token) }
+  }
+
+  /** Enrolling of an additional fingerprint failed */
+  fun onEnrollAdditionalFailure() {
+    launchFinishSettings("Failed to enroll additional fingerprint")
+  }
+
+  /** The first fingerprint enrollment failed */
+  fun onEnrollFirstFailure(reason: String) {
+    launchFinishSettings(reason)
+  }
+
+  /** The first fingerprint enrollment failed with a result code */
+  fun onEnrollFirstFailure(reason: String, resultCode: Int) {
+    launchFinishSettings(reason, resultCode)
+  }
+
+  /** Notifies that a users first enrollment succeeded. */
+  fun onEnrollFirst(theToken: ByteArray?, theChallenge: Long?) {
+    if (theToken == null) {
+      launchFinishSettings("Error, empty token")
+      return
+    }
+    if (theChallenge == null) {
+      launchFinishSettings("Error, empty keyChallenge")
+      return
+    }
+    token = theToken
+    challenge = theChallenge
+
+    showSettingsHelper()
+  }
+
+  /**
+   * Indicates to the view model that a confirm device credential action has been completed with a
+   * [theGateKeeperPasswordHandle] which will be used for [FingerprintManager] operations such as
+   * [FingerprintManager.enroll].
+   */
+  suspend fun onConfirmDevice(wasSuccessful: Boolean, theGateKeeperPasswordHandle: Long?) {
+    if (!wasSuccessful) {
+      launchFinishSettings("ConfirmDeviceCredential was unsuccessful")
+      return
+    }
+    if (theGateKeeperPasswordHandle == null) {
+      launchFinishSettings("ConfirmDeviceCredential gatekeeper password was null")
+      return
+    }
+
+    launchEnrollNextStep(theGateKeeperPasswordHandle)
+  }
+
+  private fun showSettingsHelper() {
+    _nextStep.update { ShowSettings }
+  }
+
+  private suspend fun launchEnrollNextStep(gateKeeperPasswordHandle: Long?) {
+    fingerprintManagerInteractor.enrolledFingerprints.collect {
+      if (it.isEmpty()) {
+        _nextStep.update { EnrollFirstFingerprint(userId, gateKeeperPasswordHandle, null, null) }
+      } else {
+        viewModelScope.launch(backgroundDispatcher) {
+          val challengePair =
+            fingerprintManagerInteractor.generateChallenge(gateKeeperPasswordHandle!!)
+          challenge = challengePair.first
+          token = challengePair.second
+
+          showSettingsHelper()
+        }
+      }
+    }
+  }
+
+  private fun launchFinishSettings(reason: String) {
+    _nextStep.update { FinishSettings(reason) }
+  }
+
+  private fun launchFinishSettings(reason: String, errorCode: Int) {
+    _nextStep.update { FinishSettingsWithResult(errorCode, reason) }
+  }
+
+  class FingerprintSettingsNavigationModelFactory(
+      private val userId: Int,
+      private val interactor: FingerprintManagerInteractor,
+      private val backgroundDispatcher: CoroutineDispatcher,
+      private val token: ByteArray?,
+      private val challenge: Long?,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+
+      return FingerprintSettingsNavigationViewModel(
+        userId,
+        interactor,
+        backgroundDispatcher,
+        token,
+        challenge,
+      )
+        as T
+    }
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
new file mode 100644
index 0000000..164f79f
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
@@ -0,0 +1,336 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.settings.viewmodel
+
+import android.hardware.fingerprint.FingerprintManager
+import android.util.Log
+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.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
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.combineTransform
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.sample
+import kotlinx.coroutines.flow.transform
+import kotlinx.coroutines.flow.transformLatest
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintSettingsViewModel"
+private const val DEBUG = false
+
+/** Models the UI state for fingerprint settings. */
+class FingerprintSettingsViewModel(
+  private val userId: Int,
+  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+  private val backgroundDispatcher: CoroutineDispatcher,
+  private val navigationViewModel: FingerprintSettingsNavigationViewModel,
+) : ViewModel() {
+  private val _enrolledFingerprints: MutableStateFlow<List<FingerprintData>?> =
+    MutableStateFlow(null)
+
+  /** Represents the stream of enrolled fingerprints. */
+  val enrolledFingerprints: Flow<List<FingerprintData>> =
+    _enrolledFingerprints.asStateFlow().filterNotNull().filterOnlyWhenSettingsIsShown()
+
+  /** Represents the stream of the information of "Add Fingerprint" preference. */
+  val addFingerprintPrefInfo: Flow<Pair<Boolean, Int>> =
+    _enrolledFingerprints.filterOnlyWhenSettingsIsShown().transform {
+      emit(
+        Pair(
+          fingerprintManagerInteractor.canEnrollFingerprints.first(),
+          fingerprintManagerInteractor.maxEnrollableFingerprints.first()
+        )
+      )
+    }
+
+  /** Represents the stream of visibility of sfps preference. */
+  val isSfpsPrefVisible: Flow<Boolean> =
+    _enrolledFingerprints.filterOnlyWhenSettingsIsShown().transform {
+      emit(fingerprintManagerInteractor.hasSideFps() && !it.isNullOrEmpty())
+    }
+
+  private val _isShowingDialog: MutableStateFlow<PreferenceViewModel?> = MutableStateFlow(null)
+  val isShowingDialog =
+    _isShowingDialog.combine(navigationViewModel.nextStep) { dialogFlow, nextStep ->
+      if (nextStep is ShowSettings) {
+        return@combine dialogFlow
+      } else {
+        return@combine null
+      }
+    }
+
+  private val _consumerShouldAuthenticate: MutableStateFlow<Boolean> = MutableStateFlow(false)
+
+  private val _fingerprintSensorType: Flow<FingerprintSensorType> =
+    fingerprintManagerInteractor.sensorPropertiesInternal.filterNotNull().map { it.sensorType }
+
+  private val _sensorNullOrEmpty: Flow<Boolean> =
+    fingerprintManagerInteractor.sensorPropertiesInternal.map { it == null }
+
+  private val _isLockedOut: MutableStateFlow<FingerprintAuthAttemptModel.Error?> =
+    MutableStateFlow(null)
+
+  private val _authSucceeded: MutableSharedFlow<FingerprintAuthAttemptModel.Success?> =
+    MutableSharedFlow()
+
+  private val _attemptsSoFar: MutableStateFlow<Int> = MutableStateFlow(0)
+  /**
+   * This is a very tricky flow. The current fingerprint manager APIs are not robust, and a proper
+   * implementation would take quite a lot of code to implement, it might be easier to rewrite
+   * FingerprintManager.
+   *
+   * The hack to note is the sample(400), if we call authentications in too close of proximity
+   * without waiting for a response, the fingerprint manager will send us the results of the
+   * previous attempt.
+   */
+  private val canAuthenticate: Flow<Boolean> =
+    combine(
+        _isShowingDialog,
+        navigationViewModel.nextStep,
+        _consumerShouldAuthenticate,
+        _enrolledFingerprints,
+        _isLockedOut,
+        _attemptsSoFar,
+        _fingerprintSensorType,
+        _sensorNullOrEmpty
+      ) {
+        dialogShowing,
+        step,
+        resume,
+        fingerprints,
+        isLockedOut,
+        attempts,
+        sensorType,
+        sensorNullOrEmpty ->
+        if (DEBUG) {
+          Log.d(
+            TAG,
+            "canAuthenticate(isShowingDialog=${dialogShowing != null}," +
+              "nextStep=${step}," +
+              "resumed=${resume}," +
+              "fingerprints=${fingerprints}," +
+              "lockedOut=${isLockedOut}," +
+              "attempts=${attempts}," +
+              "sensorType=${sensorType}" +
+              "sensorNullOrEmpty=${sensorNullOrEmpty}"
+          )
+        }
+        if (sensorNullOrEmpty) {
+          return@combine false
+        }
+        if (
+          listOf(FingerprintSensorType.UDFPS_ULTRASONIC, FingerprintSensorType.UDFPS_OPTICAL)
+            .contains(sensorType)
+        ) {
+          return@combine false
+        }
+
+        if (step != null && step is ShowSettings) {
+          if (fingerprints?.isNotEmpty() == true) {
+            return@combine dialogShowing == null && isLockedOut == null && resume && attempts < 15
+          }
+        }
+        false
+      }
+      .sample(400)
+      .distinctUntilChanged()
+
+  /** Represents a consistent stream of authentication attempts. */
+  val authFlow: Flow<FingerprintAuthAttemptModel> =
+    canAuthenticate
+      .transformLatest {
+        try {
+          Log.d(TAG, "canAuthenticate $it")
+          while (it && navigationViewModel.nextStep.value is ShowSettings) {
+            Log.d(TAG, "canAuthenticate authing")
+            attemptingAuth()
+            when (val authAttempt = fingerprintManagerInteractor.authenticate()) {
+              is FingerprintAuthAttemptModel.Success -> {
+                onAuthSuccess(authAttempt)
+                emit(authAttempt)
+              }
+              is FingerprintAuthAttemptModel.Error -> {
+                if (authAttempt.error == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
+                  lockout(authAttempt)
+                  emit(authAttempt)
+                  return@transformLatest
+                }
+              }
+            }
+          }
+        } catch (exception: Exception) {
+          Log.d(TAG, "shouldAuthenticate exception $exception")
+        }
+      }
+      .flowOn(backgroundDispatcher)
+
+  init {
+    viewModelScope.launch {
+      navigationViewModel.nextStep.filterNotNull().collect {
+        _isShowingDialog.update { null }
+        if (it is ShowSettings) {
+          // reset state
+          updateEnrolledFingerprints()
+        }
+      }
+    }
+  }
+
+  /** The rename dialog has finished */
+  fun onRenameDialogFinished() {
+    _isShowingDialog.update { null }
+  }
+
+  /** The delete dialog has finished */
+  fun onDeleteDialogFinished() {
+    _isShowingDialog.update { null }
+  }
+
+  override fun toString(): String {
+    return "userId: $userId\n" + "enrolledFingerprints: ${_enrolledFingerprints.value}\n"
+  }
+
+  /** The fingerprint delete button has been clicked. */
+  fun onDeleteClicked(fingerprintViewModel: FingerprintData) {
+    viewModelScope.launch {
+      if (_isShowingDialog.value == null || navigationViewModel.nextStep.value != ShowSettings) {
+        _isShowingDialog.tryEmit(PreferenceViewModel.DeleteDialog(fingerprintViewModel))
+      } else {
+        Log.d(TAG, "Ignoring onDeleteClicked due to dialog showing ${_isShowingDialog.value}")
+      }
+    }
+  }
+
+  /** The rename fingerprint dialog has been clicked. */
+  fun onPrefClicked(fingerprintViewModel: FingerprintData) {
+    viewModelScope.launch {
+      if (_isShowingDialog.value == null || navigationViewModel.nextStep.value != ShowSettings) {
+        _isShowingDialog.tryEmit(PreferenceViewModel.RenameDialog(fingerprintViewModel))
+      } else {
+        Log.d(TAG, "Ignoring onPrefClicked due to dialog showing ${_isShowingDialog.value}")
+      }
+    }
+  }
+
+  /** A request to delete a fingerprint */
+  fun deleteFingerprint(fp: FingerprintData) {
+    viewModelScope.launch(backgroundDispatcher) {
+      if (fingerprintManagerInteractor.removeFingerprint(fp)) {
+        updateEnrolledFingerprints()
+      }
+    }
+  }
+
+  /** A request to rename a fingerprint */
+  fun renameFingerprint(fp: FingerprintData, newName: String) {
+    viewModelScope.launch {
+      fingerprintManagerInteractor.renameFingerprint(fp, newName)
+      updateEnrolledFingerprints()
+    }
+  }
+
+  private fun attemptingAuth() {
+    _attemptsSoFar.update { it + 1 }
+  }
+
+  private suspend fun onAuthSuccess(success: FingerprintAuthAttemptModel.Success) {
+    _authSucceeded.emit(success)
+    _attemptsSoFar.update { 0 }
+  }
+
+  private fun lockout(attemptViewModel: FingerprintAuthAttemptModel.Error) {
+    _isLockedOut.update { attemptViewModel }
+  }
+
+  private suspend fun updateEnrolledFingerprints() {
+    _enrolledFingerprints.update { fingerprintManagerInteractor.enrolledFingerprints.first() }
+  }
+
+  /** Used to indicate whether the consumer of the view model is ready for authentication. */
+  fun shouldAuthenticate(authenticate: Boolean) {
+    _consumerShouldAuthenticate.update { authenticate }
+  }
+
+  private fun <T> Flow<T>.filterOnlyWhenSettingsIsShown() =
+    combineTransform(navigationViewModel.nextStep) { value, currStep ->
+      if (currStep != null && currStep is ShowSettings) {
+        emit(value)
+      }
+    }
+
+  class FingerprintSettingsViewModelFactory(
+    private val userId: Int,
+    private val interactor: FingerprintManagerInteractor,
+    private val backgroundDispatcher: CoroutineDispatcher,
+    private val navigationViewModel: FingerprintSettingsNavigationViewModel,
+  ) : ViewModelProvider.Factory {
+
+    @Suppress("UNCHECKED_CAST")
+    override fun <T : ViewModel> create(
+      modelClass: Class<T>,
+    ): T {
+
+      return FingerprintSettingsViewModel(
+        userId,
+        interactor,
+        backgroundDispatcher,
+        navigationViewModel,
+      )
+        as T
+    }
+  }
+}
+
+private inline fun <T1, T2, T3, T4, T5, T6, T7, T8, R> combine(
+  flow: Flow<T1>,
+  flow2: Flow<T2>,
+  flow3: Flow<T3>,
+  flow4: Flow<T4>,
+  flow5: Flow<T5>,
+  flow6: Flow<T6>,
+  flow7: Flow<T7>,
+  flow8: Flow<T8>,
+  crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7, T8) -> R
+): Flow<R> {
+  return combine(flow, flow2, flow3, flow4, flow5, flow6, flow7, flow8) { args: Array<*> ->
+    @Suppress("UNCHECKED_CAST")
+    transform(
+      args[0] as T1,
+      args[1] as T2,
+      args[2] as T3,
+      args[3] as T4,
+      args[4] as T5,
+      args[5] as T6,
+      args[6] as T7,
+      args[7] as T8,
+    )
+  }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
new file mode 100644
index 0000000..d9155b6
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.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.biometrics.fingerprint2.ui.settings.viewmodel
+
+/**
+ * A class to represent a high level step for FingerprintSettings. This is typically to perform an
+ * action like launching an activity.
+ */
+sealed class NextStepViewModel
+
+data class EnrollFirstFingerprint(
+  val userId: Int,
+  val gateKeeperPasswordHandle: Long?,
+  val challenge: Long?,
+  val challengeToken: ByteArray?,
+) : NextStepViewModel()
+
+data class EnrollAdditionalFingerprint(
+  val userId: Int,
+  val challengeToken: ByteArray?,
+) : NextStepViewModel()
+
+data class FinishSettings(val reason: String) : NextStepViewModel()
+
+data class FinishSettingsWithResult(val result: Int, val reason: String) : NextStepViewModel()
+
+object ShowSettings : NextStepViewModel()
+
+object LaunchedActivity : NextStepViewModel()
+
+data class LaunchConfirmDeviceCredential(val userId: Int) : NextStepViewModel()
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
new file mode 100644
index 0000000..181da4e
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
@@ -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.biometrics.fingerprint2.ui.settings.viewmodel
+
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintData
+
+/** Classed use to represent a Dialogs state. */
+sealed class PreferenceViewModel {
+  data class RenameDialog(
+      val fingerprintViewModel: FingerprintData,
+  ) : PreferenceViewModel()
+
+  data class DeleteDialog(
+      val fingerprintViewModel: FingerprintData,
+  ) : PreferenceViewModel()
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsNavigationViewModel.kt
deleted file mode 100644
index a3a5d3c..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsNavigationViewModel.kt
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
-
-import android.hardware.fingerprint.FingerprintManager
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.StateFlow
-import kotlinx.coroutines.flow.asStateFlow
-import kotlinx.coroutines.flow.update
-import kotlinx.coroutines.launch
-
-/** A Viewmodel that represents the navigation of the FingerprintSettings activity. */
-class FingerprintSettingsNavigationViewModel(
-  private val userId: Int,
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-  private val backgroundDispatcher: CoroutineDispatcher,
-  tokenInit: ByteArray?,
-  challengeInit: Long?,
-) : ViewModel() {
-
-  private var token = tokenInit
-  private var challenge = challengeInit
-
-  private val _nextStep: MutableStateFlow<NextStepViewModel?> = MutableStateFlow(null)
-  /** This flow represents the high level state for the FingerprintSettingsV2Fragment. */
-  val nextStep: StateFlow<NextStepViewModel?> = _nextStep.asStateFlow()
-
-  init {
-    if (challengeInit == null || tokenInit == null) {
-      _nextStep.update { LaunchConfirmDeviceCredential(userId) }
-    } else {
-      viewModelScope.launch { showSettingsHelper() }
-    }
-  }
-
-  /** Used to indicate that FingerprintSettings is complete. */
-  fun finish() {
-    _nextStep.update { null }
-  }
-
-  /** Used to finish settings in certain cases. */
-  fun maybeFinishActivity(changingConfig: Boolean) {
-    val isConfirmingOrEnrolling =
-      _nextStep.value is LaunchConfirmDeviceCredential ||
-        _nextStep.value is EnrollAdditionalFingerprint ||
-        _nextStep.value is EnrollFirstFingerprint ||
-        _nextStep.value is LaunchedActivity
-    if (!isConfirmingOrEnrolling && !changingConfig)
-      _nextStep.update {
-        FinishSettingsWithResult(BiometricEnrollBase.RESULT_TIMEOUT, "onStop finishing settings")
-      }
-  }
-
-  /** Used to indicate that we have launched another activity and we should await its result. */
-  fun setStepToLaunched() {
-    _nextStep.update { LaunchedActivity }
-  }
-
-  /** Indicates a successful enroll has occurred */
-  fun onEnrollSuccess() {
-    showSettingsHelper()
-  }
-
-  /** Add fingerprint clicked */
-  fun onAddFingerprintClicked() {
-    _nextStep.update { EnrollAdditionalFingerprint(userId, token) }
-  }
-
-  /** Enrolling of an additional fingerprint failed */
-  fun onEnrollAdditionalFailure() {
-    launchFinishSettings("Failed to enroll additional fingerprint")
-  }
-
-  /** The first fingerprint enrollment failed */
-  fun onEnrollFirstFailure(reason: String) {
-    launchFinishSettings(reason)
-  }
-
-  /** The first fingerprint enrollment failed with a result code */
-  fun onEnrollFirstFailure(reason: String, resultCode: Int) {
-    launchFinishSettings(reason, resultCode)
-  }
-
-  /** Notifies that a users first enrollment succeeded. */
-  fun onEnrollFirst(theToken: ByteArray?, theChallenge: Long?) {
-    if (theToken == null) {
-      launchFinishSettings("Error, empty token")
-      return
-    }
-    if (theChallenge == null) {
-      launchFinishSettings("Error, empty keyChallenge")
-      return
-    }
-    token = theToken!!
-    challenge = theChallenge!!
-
-    showSettingsHelper()
-  }
-
-  /**
-   * Indicates to the view model that a confirm device credential action has been completed with a
-   * [theGateKeeperPasswordHandle] which will be used for [FingerprintManager] operations such as
-   * [FingerprintManager.enroll].
-   */
-  suspend fun onConfirmDevice(wasSuccessful: Boolean, theGateKeeperPasswordHandle: Long?) {
-    if (!wasSuccessful) {
-      launchFinishSettings("ConfirmDeviceCredential was unsuccessful")
-      return
-    }
-    if (theGateKeeperPasswordHandle == null) {
-      launchFinishSettings("ConfirmDeviceCredential gatekeeper password was null")
-      return
-    }
-
-    launchEnrollNextStep(theGateKeeperPasswordHandle)
-  }
-
-  private fun showSettingsHelper() {
-    _nextStep.update { ShowSettings }
-  }
-
-  private suspend fun launchEnrollNextStep(gateKeeperPasswordHandle: Long?) {
-    fingerprintManagerInteractor.enrolledFingerprints.collect {
-      if (it.isEmpty()) {
-        _nextStep.update { EnrollFirstFingerprint(userId, gateKeeperPasswordHandle, null, null) }
-      } else {
-        viewModelScope.launch(backgroundDispatcher) {
-          val challengePair =
-            fingerprintManagerInteractor.generateChallenge(gateKeeperPasswordHandle!!)
-          challenge = challengePair.first
-          token = challengePair.second
-
-          showSettingsHelper()
-        }
-      }
-    }
-  }
-
-  private fun launchFinishSettings(reason: String) {
-    _nextStep.update { FinishSettings(reason) }
-  }
-
-  private fun launchFinishSettings(reason: String, errorCode: Int) {
-    _nextStep.update { FinishSettingsWithResult(errorCode, reason) }
-  }
-  class FingerprintSettingsNavigationModelFactory(
-    private val userId: Int,
-    private val interactor: FingerprintManagerInteractor,
-    private val backgroundDispatcher: CoroutineDispatcher,
-    private val token: ByteArray?,
-    private val challenge: Long?,
-  ) : ViewModelProvider.Factory {
-
-    @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
-
-      return FingerprintSettingsNavigationViewModel(
-        userId,
-        interactor,
-        backgroundDispatcher,
-        token,
-        challenge,
-      )
-        as T
-    }
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsViewModel.kt
deleted file mode 100644
index 554f336..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsViewModel.kt
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
-
-import android.hardware.fingerprint.FingerprintManager
-import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL
-import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import android.util.Log
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-import androidx.lifecycle.viewModelScope
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
-import kotlinx.coroutines.CoroutineDispatcher
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableSharedFlow
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.combine
-import kotlinx.coroutines.flow.combineTransform
-import kotlinx.coroutines.flow.distinctUntilChanged
-import kotlinx.coroutines.flow.filterNotNull
-import kotlinx.coroutines.flow.flowOn
-import kotlinx.coroutines.flow.last
-import kotlinx.coroutines.flow.sample
-import kotlinx.coroutines.flow.transformLatest
-import kotlinx.coroutines.flow.update
-import kotlinx.coroutines.launch
-
-private const val TAG = "FingerprintSettingsViewModel"
-private const val DEBUG = false
-
-/** Models the UI state for fingerprint settings. */
-class FingerprintSettingsViewModel(
-  private val userId: Int,
-  private val fingerprintManagerInteractor: FingerprintManagerInteractor,
-  private val backgroundDispatcher: CoroutineDispatcher,
-  private val navigationViewModel: FingerprintSettingsNavigationViewModel,
-) : ViewModel() {
-
-  private val _consumerShouldAuthenticate: MutableStateFlow<Boolean> = MutableStateFlow(false)
-
-  private val fingerprintSensorPropertiesInternal:
-    MutableStateFlow<List<FingerprintSensorPropertiesInternal>?> =
-    MutableStateFlow(null)
-
-  private val _isShowingDialog: MutableStateFlow<PreferenceViewModel?> = MutableStateFlow(null)
-  val isShowingDialog =
-    _isShowingDialog.combine(navigationViewModel.nextStep) { dialogFlow, nextStep ->
-      if (nextStep is ShowSettings) {
-        return@combine dialogFlow
-      } else {
-        return@combine null
-      }
-    }
-
-  init {
-    viewModelScope.launch {
-      fingerprintSensorPropertiesInternal.update {
-        fingerprintManagerInteractor.sensorPropertiesInternal()
-      }
-    }
-
-    viewModelScope.launch {
-      navigationViewModel.nextStep.filterNotNull().collect {
-        _isShowingDialog.update { null }
-        if (it is ShowSettings) {
-          // reset state
-          updateSettingsData()
-        }
-      }
-    }
-  }
-
-  private val _fingerprintStateViewModel: MutableStateFlow<FingerprintStateViewModel?> =
-    MutableStateFlow(null)
-  val fingerprintState: Flow<FingerprintStateViewModel?> =
-    _fingerprintStateViewModel.combineTransform(navigationViewModel.nextStep) {
-      settingsShowingViewModel,
-      currStep ->
-      if (currStep != null && currStep is ShowSettings) {
-        emit(settingsShowingViewModel)
-      }
-    }
-
-  private val _isLockedOut: MutableStateFlow<FingerprintAuthAttemptViewModel.Error?> =
-    MutableStateFlow(null)
-
-  private val _authSucceeded: MutableSharedFlow<FingerprintAuthAttemptViewModel.Success?> =
-    MutableSharedFlow()
-
-  private val attemptsSoFar: MutableStateFlow<Int> = MutableStateFlow(0)
-
-  /**
-   * This is a very tricky flow. The current fingerprint manager APIs are not robust, and a proper
-   * implementation would take quite a lot of code to implement, it might be easier to rewrite
-   * FingerprintManager.
-   *
-   * The hack to note is the sample(400), if we call authentications in too close of proximity
-   * without waiting for a response, the fingerprint manager will send us the results of the
-   * previous attempt.
-   */
-  private val canAuthenticate: Flow<Boolean> =
-    combine(
-        _isShowingDialog,
-        navigationViewModel.nextStep,
-        _consumerShouldAuthenticate,
-        _fingerprintStateViewModel,
-        _isLockedOut,
-        attemptsSoFar,
-        fingerprintSensorPropertiesInternal
-      ) { dialogShowing, step, resume, fingerprints, isLockedOut, attempts, sensorProps ->
-        if (DEBUG) {
-          Log.d(
-            TAG,
-            "canAuthenticate(isShowingDialog=${dialogShowing != null}," +
-              "nextStep=${step}," +
-              "resumed=${resume}," +
-              "fingerprints=${fingerprints}," +
-              "lockedOut=${isLockedOut}," +
-              "attempts=${attempts}," +
-              "sensorProps=${sensorProps}"
-          )
-        }
-        if (sensorProps.isNullOrEmpty()) {
-          return@combine false
-        }
-        val sensorType = sensorProps[0].sensorType
-        if (listOf(TYPE_UDFPS_OPTICAL, TYPE_UDFPS_ULTRASONIC).contains(sensorType)) {
-          return@combine false
-        }
-
-        if (step != null && step is ShowSettings) {
-          if (fingerprints?.fingerprintViewModels?.isNotEmpty() == true) {
-            return@combine dialogShowing == null && isLockedOut == null && resume && attempts < 15
-          }
-        }
-        false
-      }
-      .sample(400)
-      .distinctUntilChanged()
-
-  /** Represents a consistent stream of authentication attempts. */
-  val authFlow: Flow<FingerprintAuthAttemptViewModel> =
-    canAuthenticate
-      .transformLatest {
-        try {
-          Log.d(TAG, "canAuthenticate $it")
-          while (it && navigationViewModel.nextStep.value is ShowSettings) {
-            Log.d(TAG, "canAuthenticate authing")
-            attemptingAuth()
-            when (val authAttempt = fingerprintManagerInteractor.authenticate()) {
-              is FingerprintAuthAttemptViewModel.Success -> {
-                onAuthSuccess(authAttempt)
-                emit(authAttempt)
-              }
-              is FingerprintAuthAttemptViewModel.Error -> {
-                if (authAttempt.error == FingerprintManager.FINGERPRINT_ERROR_LOCKOUT) {
-                  lockout(authAttempt)
-                  emit(authAttempt)
-                  return@transformLatest
-                }
-              }
-            }
-          }
-        } catch (exception: Exception) {
-          Log.d(TAG, "shouldAuthenticate exception $exception")
-        }
-      }
-      .flowOn(backgroundDispatcher)
-
-  /** The rename dialog has finished */
-  fun onRenameDialogFinished() {
-    _isShowingDialog.update { null }
-  }
-
-  /** The delete dialog has finished */
-  fun onDeleteDialogFinished() {
-    _isShowingDialog.update { null }
-  }
-
-  override fun toString(): String {
-    return "userId: $userId\n" + "fingerprintState: ${_fingerprintStateViewModel.value}\n"
-  }
-
-  /** The fingerprint delete button has been clicked. */
-  fun onDeleteClicked(fingerprintViewModel: FingerprintViewModel) {
-    viewModelScope.launch {
-      if (_isShowingDialog.value == null || navigationViewModel.nextStep.value != ShowSettings) {
-        _isShowingDialog.tryEmit(PreferenceViewModel.DeleteDialog(fingerprintViewModel))
-      } else {
-        Log.d(TAG, "Ignoring onDeleteClicked due to dialog showing ${_isShowingDialog.value}")
-      }
-    }
-  }
-
-  /** The rename fingerprint dialog has been clicked. */
-  fun onPrefClicked(fingerprintViewModel: FingerprintViewModel) {
-    viewModelScope.launch {
-      if (_isShowingDialog.value == null || navigationViewModel.nextStep.value != ShowSettings) {
-        _isShowingDialog.tryEmit(PreferenceViewModel.RenameDialog(fingerprintViewModel))
-      } else {
-        Log.d(TAG, "Ignoring onPrefClicked due to dialog showing ${_isShowingDialog.value}")
-      }
-    }
-  }
-
-  /** A request to delete a fingerprint */
-  fun deleteFingerprint(fp: FingerprintViewModel) {
-    viewModelScope.launch(backgroundDispatcher) {
-      if (fingerprintManagerInteractor.removeFingerprint(fp)) {
-        updateSettingsData()
-      }
-    }
-  }
-
-  /** A request to rename a fingerprint */
-  fun renameFingerprint(fp: FingerprintViewModel, newName: String) {
-    viewModelScope.launch {
-      fingerprintManagerInteractor.renameFingerprint(fp, newName)
-      updateSettingsData()
-    }
-  }
-
-  private fun attemptingAuth() {
-    attemptsSoFar.update { it + 1 }
-  }
-
-  private suspend fun onAuthSuccess(success: FingerprintAuthAttemptViewModel.Success) {
-    _authSucceeded.emit(success)
-    attemptsSoFar.update { 0 }
-  }
-
-  private fun lockout(attemptViewModel: FingerprintAuthAttemptViewModel.Error) {
-    _isLockedOut.update { attemptViewModel }
-  }
-
-  /**
-   * This function is sort of a hack, it's used whenever we want to check for fingerprint state
-   * updates.
-   */
-  private suspend fun updateSettingsData() {
-    Log.d(TAG, "update settings data called")
-    val fingerprints = fingerprintManagerInteractor.enrolledFingerprints.last()
-    val canEnrollFingerprint =
-      fingerprintManagerInteractor.canEnrollFingerprints(fingerprints.size).last()
-    val maxFingerprints = fingerprintManagerInteractor.maxEnrollableFingerprints.last()
-    val hasSideFps = fingerprintManagerInteractor.hasSideFps()
-    val pressToAuthEnabled = fingerprintManagerInteractor.pressToAuthEnabled()
-    _fingerprintStateViewModel.update {
-      FingerprintStateViewModel(
-        fingerprints,
-        canEnrollFingerprint,
-        maxFingerprints,
-        hasSideFps,
-        pressToAuthEnabled
-      )
-    }
-  }
-
-  /** Used to indicate whether the consumer of the view model is ready for authentication. */
-  fun shouldAuthenticate(authenticate: Boolean) {
-    _consumerShouldAuthenticate.update { authenticate }
-  }
-
-  class FingerprintSettingsViewModelFactory(
-    private val userId: Int,
-    private val interactor: FingerprintManagerInteractor,
-    private val backgroundDispatcher: CoroutineDispatcher,
-    private val navigationViewModel: FingerprintSettingsNavigationViewModel,
-  ) : ViewModelProvider.Factory {
-
-    @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel> create(
-      modelClass: Class<T>,
-    ): T {
-
-      return FingerprintSettingsViewModel(
-        userId,
-        interactor,
-        backgroundDispatcher,
-        navigationViewModel,
-      )
-        as T
-    }
-  }
-}
-
-private inline fun <T1, T2, T3, T4, T5, T6, T7, R> combine(
-  flow: Flow<T1>,
-  flow2: Flow<T2>,
-  flow3: Flow<T3>,
-  flow4: Flow<T4>,
-  flow5: Flow<T5>,
-  flow6: Flow<T6>,
-  flow7: Flow<T7>,
-  crossinline transform: suspend (T1, T2, T3, T4, T5, T6, T7) -> R
-): Flow<R> {
-  return combine(flow, flow2, flow3, flow4, flow5, flow6, flow7) { args: Array<*> ->
-    @Suppress("UNCHECKED_CAST")
-    transform(
-      args[0] as T1,
-      args[1] as T2,
-      args[2] as T3,
-      args[3] as T4,
-      args[4] as T5,
-      args[5] as T6,
-      args[6] as T7,
-    )
-  }
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintViewModel.kt
deleted file mode 100644
index 1df0e34..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintViewModel.kt
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
-
-/** Represents the fingerprint data nad the relevant state. */
-data class FingerprintStateViewModel(
-  val fingerprintViewModels: List<FingerprintViewModel>,
-  val canEnroll: Boolean,
-  val maxFingerprints: Int,
-  val hasSideFps: Boolean,
-  val pressToAuth: Boolean,
-)
-
-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()
-}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/NextStepViewModel.kt
deleted file mode 100644
index f9dbbff..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/NextStepViewModel.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
-
-/**
- * A class to represent a high level step for FingerprintSettings. This is typically to perform an
- * action like launching an activity.
- */
-sealed class NextStepViewModel
-
-data class EnrollFirstFingerprint(
-  val userId: Int,
-  val gateKeeperPasswordHandle: Long?,
-  val challenge: Long?,
-  val challengeToken: ByteArray?,
-) : NextStepViewModel()
-
-data class EnrollAdditionalFingerprint(
-  val userId: Int,
-  val challengeToken: ByteArray?,
-) : NextStepViewModel()
-
-data class FinishSettings(val reason: String) : NextStepViewModel()
-
-data class FinishSettingsWithResult(val result: Int, val reason: String) : NextStepViewModel()
-
-object ShowSettings : NextStepViewModel()
-
-object LaunchedActivity : NextStepViewModel()
-
-data class LaunchConfirmDeviceCredential(val userId: Int) : NextStepViewModel()
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/PreferenceViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/PreferenceViewModel.kt
deleted file mode 100644
index 05764a2..0000000
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/PreferenceViewModel.kt
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
-
-/** Classed use to represent a Dialogs state. */
-sealed class PreferenceViewModel {
-  data class RenameDialog(
-    val fingerprintViewModel: FingerprintViewModel,
-  ) : PreferenceViewModel()
-
-  data class DeleteDialog(
-    val fingerprintViewModel: FingerprintViewModel,
-  ) : PreferenceViewModel()
-}
diff --git a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java b/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
index dd5b673..516f471 100644
--- a/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
+++ b/src/com/android/settings/biometrics2/factory/BiometricsViewModelFactory.java
@@ -28,12 +28,14 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
 import com.android.settings.biometrics2.data.repository.FingerprintRepository;
+import com.android.settings.biometrics2.ui.model.CredentialModel;
 import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
 import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel;
 import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator;
 import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel;
 import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel;
 import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel;
 import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
 import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel;
 import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel;
@@ -47,14 +49,14 @@
  */
 public class BiometricsViewModelFactory implements ViewModelProvider.Factory {
 
-    private static final String TAG = "BiometricsViewModelFact";
+    private static final String TAG = "BiometricsViewModelFactory";
 
     public static final CreationExtras.Key<ChallengeGenerator> CHALLENGE_GENERATOR_KEY =
             new CreationExtras.Key<ChallengeGenerator>() {};
     public static final CreationExtras.Key<EnrollmentRequest> ENROLLMENT_REQUEST_KEY =
             new CreationExtras.Key<EnrollmentRequest>() {};
-    public static final CreationExtras.Key<Integer> USER_ID_KEY =
-            new CreationExtras.Key<Integer>() {};
+    public static final CreationExtras.Key<CredentialModel> CREDENTIAL_MODEL_KEY =
+            new CreationExtras.Key<CredentialModel>() {};
 
     @NonNull
     @Override
@@ -67,17 +69,18 @@
             Log.w(TAG, "create, null application");
             return create(modelClass);
         }
-        final FeatureFactory featureFactory = FeatureFactory.getFactory(application);
-        final BiometricsRepositoryProvider provider = FeatureFactory.getFactory(application)
-                .getBiometricsRepositoryProvider();
+        final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
+        final BiometricsRepositoryProvider provider =
+                featureFactory.getBiometricsRepositoryProvider();
 
         if (modelClass.isAssignableFrom(AutoCredentialViewModel.class)) {
             final LockPatternUtils lockPatternUtils =
                     featureFactory.getSecurityFeatureProvider().getLockPatternUtils(application);
             final ChallengeGenerator challengeGenerator = extras.get(CHALLENGE_GENERATOR_KEY);
-            if (challengeGenerator != null) {
+            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
+            if (challengeGenerator != null && credentialModel != null) {
                 return (T) new AutoCredentialViewModel(application, lockPatternUtils,
-                        challengeGenerator);
+                        challengeGenerator, credentialModel);
             }
         } else if (modelClass.isAssignableFrom(DeviceFoldedViewModel.class)) {
             return (T) new DeviceFoldedViewModel(new ScreenSizeFoldProvider(application),
@@ -92,10 +95,10 @@
         } else if (modelClass.isAssignableFrom(FingerprintEnrollIntroViewModel.class)) {
             final FingerprintRepository repository = provider.getFingerprintRepository(application);
             final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
-            final Integer userId = extras.get(USER_ID_KEY);
-            if (repository != null && request != null && userId != null) {
+            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
+            if (repository != null && request != null && credentialModel != null) {
                 return (T) new FingerprintEnrollIntroViewModel(application, repository, request,
-                        userId);
+                        credentialModel.getUserId());
             }
         } else if (modelClass.isAssignableFrom(FingerprintEnrollmentViewModel.class)) {
             final FingerprintRepository repository = provider.getFingerprintRepository(application);
@@ -104,27 +107,32 @@
                 return (T) new FingerprintEnrollmentViewModel(application, repository, request);
             }
         } else if (modelClass.isAssignableFrom(FingerprintEnrollProgressViewModel.class)) {
-            final Integer userId = extras.get(USER_ID_KEY);
-            if (userId != null) {
+            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
+            if (credentialModel != null) {
                 return (T) new FingerprintEnrollProgressViewModel(application,
-                        new FingerprintUpdater(application), userId);
+                        new FingerprintUpdater(application), credentialModel.getUserId());
             }
         } else if (modelClass.isAssignableFrom(FingerprintEnrollEnrollingViewModel.class)) {
-            final Integer userId = extras.get(USER_ID_KEY);
+            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
             final FingerprintRepository fingerprint = provider.getFingerprintRepository(
                     application);
-            if (fingerprint != null) {
-                return (T) new FingerprintEnrollEnrollingViewModel(application, userId,
-                        fingerprint);
+            if (fingerprint != null && credentialModel != null) {
+                return (T) new FingerprintEnrollEnrollingViewModel(application,
+                        credentialModel.getUserId(), fingerprint);
             }
         } else if (modelClass.isAssignableFrom(FingerprintEnrollFinishViewModel.class)) {
-            final Integer userId = extras.get(USER_ID_KEY);
+            final CredentialModel credentialModel = extras.get(CREDENTIAL_MODEL_KEY);
             final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
             final FingerprintRepository fingerprint = provider.getFingerprintRepository(
                     application);
-            if (fingerprint != null && userId != null) {
-                return (T) new FingerprintEnrollFinishViewModel(application, userId, request,
-                        fingerprint);
+            if (fingerprint != null && credentialModel != null && request != null) {
+                return (T) new FingerprintEnrollFinishViewModel(application,
+                        credentialModel.getUserId(), request, fingerprint);
+            }
+        } else if (modelClass.isAssignableFrom(FingerprintEnrollErrorDialogViewModel.class)) {
+            final EnrollmentRequest request = extras.get(ENROLLMENT_REQUEST_KEY);
+            if (request != null) {
+                return (T) new FingerprintEnrollErrorDialogViewModel(application, request.isSuw());
             }
         }
         return create(modelClass);
diff --git a/src/com/android/settings/biometrics2/ui/model/CredentialModel.java b/src/com/android/settings/biometrics2/ui/model/CredentialModel.java
deleted file mode 100644
index caff80a..0000000
--- a/src/com/android/settings/biometrics2/ui/model/CredentialModel.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.model;
-
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
-import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN;
-import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.UserHandle;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
-
-import java.time.Clock;
-
-/**
- * Secret credential data including
- * 1. userId
- * 2. challenge
- * 3. token
- * 4. gkPwHandle
- */
-public final class CredentialModel {
-
-    /**
-     * Default value for an invalid challenge
-     */
-    @VisibleForTesting
-    public static final long INVALID_CHALLENGE = -1L;
-
-    /**
-     * Default value if GkPwHandle is invalid.
-     */
-    @VisibleForTesting
-    public static final long INVALID_GK_PW_HANDLE = 0L;
-
-    private final Clock mClock;
-
-    private final long mInitMillis;
-
-    private final int mUserId;
-
-    private long mChallenge;
-    @Nullable
-    private Long mUpdateChallengeMillis = null;
-
-    @Nullable
-    private byte[] mToken;
-    @Nullable
-    private Long mUpdateTokenMillis = null;
-
-    private long mGkPwHandle;
-    @Nullable
-    private Long mClearGkPwHandleMillis = null;
-
-    public CredentialModel(@Nullable Bundle bundle, @NonNull Clock clock) {
-        if (bundle == null) {
-            bundle = new Bundle();
-        }
-        mUserId = bundle.getInt(Intent.EXTRA_USER_ID, UserHandle.myUserId());
-        mChallenge = bundle.getLong(EXTRA_KEY_CHALLENGE, INVALID_CHALLENGE);
-        mToken = bundle.getByteArray(EXTRA_KEY_CHALLENGE_TOKEN);
-        mGkPwHandle = bundle.getLong(EXTRA_KEY_GK_PW_HANDLE, INVALID_GK_PW_HANDLE);
-        mClock = clock;
-        mInitMillis = mClock.millis();
-    }
-
-    /**
-     * Get a bundle which can be used to recreate CredentialModel
-     */
-    @NonNull
-    public Bundle getBundle() {
-        final Bundle bundle = new Bundle();
-        bundle.putInt(Intent.EXTRA_USER_ID, mUserId);
-        bundle.putLong(EXTRA_KEY_CHALLENGE, mChallenge);
-        bundle.putByteArray(EXTRA_KEY_CHALLENGE_TOKEN, mToken);
-        bundle.putLong(EXTRA_KEY_GK_PW_HANDLE, mGkPwHandle);
-        return bundle;
-    }
-
-    /**
-     * Get userId for this credential
-     */
-    public int getUserId() {
-        return mUserId;
-    }
-
-    /**
-     * Check user id is valid or not
-     */
-    public boolean isValidUserId() {
-        return mUserId != UserHandle.USER_NULL;
-    }
-
-    /**
-     * Get challenge
-     */
-    public long getChallenge() {
-        return mChallenge;
-    }
-
-    /**
-     * Set challenge
-     */
-    public void setChallenge(long value) {
-        mUpdateChallengeMillis = mClock.millis();
-        mChallenge = value;
-    }
-
-    /**
-     * Check challenge is valid or not
-     */
-    public boolean isValidChallenge() {
-        return mChallenge != INVALID_CHALLENGE;
-    }
-
-    /**
-     * Get challenge token
-     */
-    @Nullable
-    public byte[] getToken() {
-        return mToken;
-    }
-
-    /**
-     * Set challenge token
-     */
-    public void setToken(@Nullable byte[] value) {
-        mUpdateTokenMillis = mClock.millis();
-        mToken = value;
-    }
-
-    /**
-     * Check challengeToken is valid or not
-     */
-    public boolean isValidToken() {
-        return mToken != null;
-    }
-
-    /**
-     * Get gatekeeper password handle
-     */
-    public long getGkPwHandle() {
-        return mGkPwHandle;
-    }
-
-    /**
-     * Clear gatekeeper password handle data
-     */
-    public void clearGkPwHandle() {
-        mClearGkPwHandleMillis = mClock.millis();
-        mGkPwHandle = INVALID_GK_PW_HANDLE;
-    }
-
-    /**
-     * Check gkPwHandle is valid or not
-     */
-    public boolean isValidGkPwHandle() {
-        return mGkPwHandle != INVALID_GK_PW_HANDLE;
-    }
-
-    /**
-     * Returns a string representation of the object
-     */
-    @Override
-    public String toString() {
-        final int gkPwHandleLen = ("" + mGkPwHandle).length();
-        final int tokenLen = mToken == null ? 0 : mToken.length;
-        final int challengeLen = ("" + mChallenge).length();
-        return getClass().getSimpleName() + ":{initMillis:" + mInitMillis
-                + ", userId:" + mUserId
-                + ", challenge:{len:" + challengeLen
-                + ", updateMillis:" + mUpdateChallengeMillis + "}"
-                + ", token:{len:" + tokenLen + ", isValid:" + isValidToken()
-                + ", updateMillis:" + mUpdateTokenMillis + "}"
-                + ", gkPwHandle:{len:" + gkPwHandleLen + ", isValid:" + isValidGkPwHandle()
-                + ", clearMillis:" + mClearGkPwHandleMillis + "}"
-                + " }";
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt b/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt
new file mode 100644
index 0000000..5350733
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/model/CredentialModel.kt
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.model
+
+import android.content.Intent.EXTRA_USER_ID
+import android.os.Bundle
+import android.os.UserHandle
+import androidx.annotation.VisibleForTesting
+import com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE
+import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN
+import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
+import java.time.Clock
+
+/**
+ * Secret credential data including
+ * 1. userId
+ * 2. challenge
+ * 3. token
+ * 4. gkPwHandle
+ */
+class CredentialModel(bundle: Bundle?, private val clock: Clock) {
+
+    private val mInitMillis = clock.millis()
+
+    /** userId for this credential */
+    val userId: Int = (bundle ?: Bundle()).getInt(EXTRA_USER_ID, UserHandle.myUserId())
+
+    private var clearGkPwHandleMillis: Long? = null
+
+    /** Gatekeeper password handle */
+    var gkPwHandle: Long = (bundle ?: Bundle()).getLong(EXTRA_KEY_GK_PW_HANDLE, INVALID_GK_PW_HANDLE)
+        private set
+
+    val isValidGkPwHandle: Boolean
+        get() = gkPwHandle != INVALID_GK_PW_HANDLE
+
+    /** Clear gatekeeper password handle data */
+    fun clearGkPwHandle() {
+        clearGkPwHandleMillis = clock.millis()
+        gkPwHandle = INVALID_GK_PW_HANDLE
+    }
+
+    /** Check user id is valid or not */
+    val isValidUserId: Boolean
+        get() = userId != UserHandle.USER_NULL
+
+    private var updateChallengeMillis: Long? = null
+
+    var challenge: Long = (bundle ?: Bundle()).getLong(EXTRA_KEY_CHALLENGE, INVALID_CHALLENGE)
+        set(value) {
+            updateChallengeMillis = clock.millis()
+            field = value
+        }
+
+    val isValidChallenge: Boolean
+        get() = challenge != INVALID_CHALLENGE
+
+    private var updateTokenMillis: Long? = null
+
+    /** Challenge token */
+    var token: ByteArray? = (bundle ?: Bundle()).getByteArray(EXTRA_KEY_CHALLENGE_TOKEN)
+        set(value) {
+            updateTokenMillis = clock.millis()
+            field = value
+        }
+
+    val isValidToken: Boolean
+        get() = token != null
+
+    /** Returns a string representation of the object */
+    override fun toString(): String {
+        val gkPwHandleLen = "$gkPwHandle".length
+        val tokenLen = token?.size ?: 0
+        val challengeLen = "$challenge".length
+        return (javaClass.simpleName + ":{initMillis:$mInitMillis"
+                + ", userId:$userId"
+                + ", challenge:{len:$challengeLen"
+                + ", updateMillis:$updateChallengeMillis}"
+                + ", token:{len:$tokenLen, isValid:$isValidToken"
+                + ", updateMillis:$updateTokenMillis}"
+                + ", gkPwHandle:{len:$gkPwHandleLen, isValid:$isValidGkPwHandle"
+                + ", clearMillis:$clearGkPwHandleMillis}"
+                + " }")
+    }
+
+    companion object {
+        /** Default value for an invalid challenge */
+        @VisibleForTesting
+        const val INVALID_CHALLENGE = -1L
+
+        /** Default value if GkPwHandle is invalid */
+        @VisibleForTesting
+        const val INVALID_GK_PW_HANDLE = 0L
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.java b/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.java
deleted file mode 100644
index c62d670..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.model;
-
-/**
- * Biometric Enrollment progress
- */
-public final class EnrollmentProgress {
-
-    public static final int INITIAL_STEPS = -1;
-    public static final int INITIAL_REMAINING = 0;
-
-    private final int mSteps;
-    private final int mRemaining;
-
-    public EnrollmentProgress(int steps, int remaining) {
-        mSteps = steps;
-        mRemaining = remaining;
-    }
-
-    public int getSteps() {
-        return mSteps;
-    }
-
-    public int getRemaining() {
-        return mRemaining;
-    }
-
-    public boolean isInitialStep() {
-        return mSteps == INITIAL_STEPS;
-    }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "@" + Integer.toHexString(hashCode())
-                + "{steps:" + mSteps + ", remaining:" + mRemaining + "}";
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt
new file mode 100644
index 0000000..7b35a68
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/model/EnrollmentProgress.kt
@@ -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.
+ */
+package com.android.settings.biometrics2.ui.model
+
+/** Biometric Enrollment progress */
+class EnrollmentProgress(val steps: Int, val remaining: Int) {
+
+    val isInitialStep: Boolean
+        get() = steps == INITIAL_STEPS
+
+    override fun toString(): String {
+        return ("${javaClass.simpleName}@${Integer.toHexString(hashCode())}"
+                + "{steps:$steps, remaining:$remaining}")
+    }
+
+    companion object {
+        const val INITIAL_STEPS = -1
+        const val INITIAL_REMAINING = 0
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.java b/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.java
deleted file mode 100644
index 4849b5e..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.model;
-
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;
-
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-
-import com.android.settings.SetupWizardUtils;
-import com.android.settings.biometrics.BiometricEnrollActivity;
-
-import com.google.android.setupcompat.util.WizardManagerHelper;
-
-/**
- * Biometric enrollment generic intent data, which includes
- * 1. isSuw
- * 2. isAfterSuwOrSuwSuggestedAction
- * 3. theme
- * 4. isFromSettingsSummery
- * 5. isSkipIntro
- * 6. isSkipFindSensor
- * 7. a helper method, getSetupWizardExtras
- */
-public final class EnrollmentRequest {
-
-    public static final String EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor";
-
-    private final boolean mIsSuw;
-    private final boolean mIsAfterSuwOrSuwSuggestedAction;
-    private final boolean mIsFromSettingsSummery;
-    private final boolean mIsSkipIntro;
-    private final boolean mIsSkipFindSensor;
-    private final int mTheme;
-    private final Bundle mSuwExtras;
-
-    public EnrollmentRequest(@NonNull Intent intent, @NonNull Context context) {
-        mIsSuw = WizardManagerHelper.isAnySetupWizard(intent);
-        mIsAfterSuwOrSuwSuggestedAction = WizardManagerHelper.isDeferredSetupWizard(intent)
-                || WizardManagerHelper.isPortalSetupWizard(intent)
-                || intent.getBooleanExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false);
-        mSuwExtras = getSuwExtras(mIsSuw, intent);
-        mIsFromSettingsSummery = intent.getBooleanExtra(EXTRA_FROM_SETTINGS_SUMMARY, false);
-        mIsSkipIntro = intent.getBooleanExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, false);
-        mIsSkipFindSensor = intent.getBooleanExtra(EXTRA_SKIP_FIND_SENSOR, false);
-        mTheme = SetupWizardUtils.getTheme(context, intent);
-    }
-
-    public boolean isSuw() {
-        return mIsSuw;
-    }
-
-    public boolean isAfterSuwOrSuwSuggestedAction() {
-        return mIsAfterSuwOrSuwSuggestedAction;
-    }
-
-    public boolean isFromSettingsSummery() {
-        return mIsFromSettingsSummery;
-    }
-
-    public boolean isSkipIntro() {
-        return mIsSkipIntro;
-    }
-
-    public boolean isSkipFindSensor() {
-        return mIsSkipFindSensor;
-    }
-
-    public int getTheme() {
-        return mTheme;
-    }
-
-    @NonNull
-    public Bundle getSuwExtras() {
-        return new Bundle(mSuwExtras);
-    }
-
-    /**
-     * Returns a string representation of the object
-     */
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + ":{isSuw:" + mIsSuw
-                + ", isAfterSuwOrSuwSuggestedAction:" + mIsAfterSuwOrSuwSuggestedAction
-                + ", isFromSettingsSummery:" + mIsFromSettingsSummery
-                + "}";
-    }
-
-    @NonNull
-    private static Bundle getSuwExtras(boolean isSuw, @NonNull Intent intent) {
-        final Intent toIntent = new Intent();
-        if (isSuw) {
-            SetupWizardUtils.copySetupExtras(intent, toIntent);
-        }
-        return toIntent.getExtras() != null ? toIntent.getExtras() : new Bundle();
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.kt
new file mode 100644
index 0000000..4696c62
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/model/EnrollmentRequest.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.biometrics2.ui.model
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import com.android.settings.SetupWizardUtils
+import com.android.settings.biometrics.BiometricEnrollActivity.EXTRA_SKIP_INTRO
+import com.google.android.setupcompat.util.WizardManagerHelper
+import com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW
+
+/**
+ * Biometric enrollment generic intent data, which includes
+ * 1. isSuw
+ * 2. isAfterSuwOrSuwSuggestedAction
+ * 3. theme
+ * 4. isFromSettingsSummery
+ * 5. isSkipIntro
+ * 6. isSkipFindSensor
+ * 7. a helper method, getSetupWizardExtras
+ */
+class EnrollmentRequest(
+    intent: Intent,
+    context: Context,
+    isSetupActivity: Boolean
+) {
+    val isSuw: Boolean = isSetupActivity && WizardManagerHelper.isAnySetupWizard(intent)
+
+    val isAfterSuwOrSuwSuggestedAction = (isSetupActivity
+            && (WizardManagerHelper.isDeferredSetupWizard(intent)
+            || WizardManagerHelper.isPortalSetupWizard(intent)
+            || intent.getBooleanExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false)))
+
+    private val _suwExtras = getSuwExtras(isSuw, intent)
+
+    val isSkipIntro = intent.getBooleanExtra(EXTRA_SKIP_INTRO, false)
+
+    val isSkipFindSensor = intent.getBooleanExtra(EXTRA_SKIP_FIND_SENSOR, false)
+
+    val theme = SetupWizardUtils.getTheme(context, intent)
+
+    val suwExtras: Bundle
+        get() = Bundle(_suwExtras)
+
+    /**
+     * Returns a string representation of the object
+     */
+    override fun toString(): String {
+        return (javaClass.simpleName + ":{isSuw:" + isSuw
+                + ", isAfterSuwOrSuwSuggestedAction:" + isAfterSuwOrSuwSuggestedAction
+                + "}")
+    }
+
+    companion object {
+        const val EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor"
+        private fun getSuwExtras(isSuw: Boolean, intent: Intent): Bundle {
+            val toIntent = Intent()
+            if (isSuw) {
+                SetupWizardUtils.copySetupExtras(intent, toIntent)
+            }
+            return toIntent.extras ?: Bundle()
+        }
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.java b/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.java
deleted file mode 100644
index 184e1d1..0000000
--- a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.model;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-/**
- * Enrolling status message (help or error)
- */
-public final class EnrollmentStatusMessage {
-
-    private final int mMsgId;
-    @NonNull private final CharSequence mStr;
-
-    public EnrollmentStatusMessage(int msgId, @Nullable CharSequence str) {
-        mMsgId = msgId;
-        mStr = str != null ? str : "";
-    }
-
-    public int getMsgId() {
-        return mMsgId;
-    }
-
-    @Override
-    public String toString() {
-        return getClass().getSimpleName() + "@" + Integer.toHexString(hashCode())
-                + "{id:" + mMsgId + ", str:" + mStr + "}";
-    }
-
-    /**
-     * Gets status string
-     */
-    @NonNull
-    public CharSequence getStr() {
-        return mStr;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt b/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt
new file mode 100644
index 0000000..6dd0c5c
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/model/EnrollmentStatusMessage.kt
@@ -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.
+ */
+package com.android.settings.biometrics2.ui.model
+
+/** Enrolling status message (help or error) */
+class EnrollmentStatusMessage(val msgId: Int, string: CharSequence?) {
+
+    /** Status string */
+    val str: CharSequence = string ?: ""
+
+    override fun toString(): String {
+        return "${javaClass.simpleName}@${Integer.toHexString(hashCode())}{id:$msgId, str:$str}"
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.java b/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.java
deleted file mode 100644
index b5e462e..0000000
--- a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.model;
-
-import android.annotation.IntDef;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Fingerprint onboarding introduction page data, it contains following information which needs
- * to be passed from view model to view.
- * 1. mEnrollableStatus: User is allowed to enroll a new fingerprint or not.
- * 2. mHasScrollToBottom: User has scrolled to the bottom of this page or not.
- */
-public final class FingerprintEnrollIntroStatus {
-
-    /**
-     * Unconfirmed case, it means that this value is invalid, and view shall bypass this value.
-     */
-    public static final int FINGERPRINT_ENROLLABLE_UNKNOWN = -1;
-
-    /**
-     * User is allowed to enrolled a new fingerprint.
-     */
-    public static final int FINGERPRINT_ENROLLABLE_OK = 0;
-
-    /**
-     * User is not allowed to enrolled a new fingerprint because the number of enrolled fingerprint
-     * has reached maximum.
-     */
-    public static final int FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX = 1;
-
-    @IntDef(prefix = {"FINGERPRINT_ENROLLABLE_"}, value = {
-            FINGERPRINT_ENROLLABLE_UNKNOWN,
-            FINGERPRINT_ENROLLABLE_OK,
-            FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FingerprintEnrollableStatus {
-    }
-
-    private final boolean mHasScrollToBottom;
-
-    @FingerprintEnrollableStatus
-    private final int mEnrollableStatus;
-
-    public FingerprintEnrollIntroStatus(boolean hasScrollToBottom, int enrollableStatus) {
-        mEnrollableStatus = enrollableStatus;
-        mHasScrollToBottom = hasScrollToBottom;
-    }
-
-    /**
-     * Get enrollable status. It means that user is allowed to enroll a new fingerprint or not.
-     */
-    @FingerprintEnrollableStatus
-    public int getEnrollableStatus() {
-        return mEnrollableStatus;
-    }
-
-    /**
-     * Get info for this onboarding introduction page has scrolled to bottom or not
-     */
-    public boolean hasScrollToBottom() {
-        return mHasScrollToBottom;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt b/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt
new file mode 100644
index 0000000..4cbaffa
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/model/FingerprintEnrollIntroStatus.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.model
+
+
+enum class FingerprintEnrollable {
+    // Unconfirmed case, this value is invalid, and view shall bypass this value
+    FINGERPRINT_ENROLLABLE_UNKNOWN,
+    // User is allowed to enrolled a new fingerprint
+    FINGERPRINT_ENROLLABLE_OK,
+    // User is not allowed to enroll because the number has reached maximum
+    FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+}
+
+/**
+ * Fingerprint onboarding introduction page data, it contains following information which needs
+ * to be passed from view model to view.
+ * 1. mEnrollableStatus: User is allowed to enroll a new fingerprint or not.
+ * 2. mHasScrollToBottom: User has scrolled to the bottom of this page or not.
+ */
+class FingerprintEnrollIntroStatus(
+    private val mHasScrollToBottom: Boolean,
+    /** Enrollable status. It means that user is allowed to enroll a new fingerprint or not. */
+    val enrollableStatus: FingerprintEnrollable
+) {
+    /** Get info for this onboarding introduction page has scrolled to bottom or not */
+    fun hasScrollToBottom(): Boolean {
+        return mHasScrollToBottom
+    }
+
+    override fun toString(): String {
+        return ("${javaClass.simpleName}@${Integer.toHexString(hashCode())}"
+                + "{scrollToBottom:$mHasScrollToBottom"
+                + ", enrollableStatus:$enrollableStatus}")
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.java
deleted file mode 100644
index ad34e74..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 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.biometrics2.ui.view;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.ErrorDialogData;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
-
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.hardware.biometrics.BiometricConstants;
-import android.os.Bundle;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-
-/**
- * Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment.
- */
-public class FingerprintEnrollEnrollingErrorDialog extends InstrumentedDialogFragment {
-
-    private FingerprintEnrollEnrollingViewModel mViewModel;
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
-        final ErrorDialogData data = mViewModel.getErrorDialogLiveData().getValue();
-        final int errMsgId = data.getErrMsgId();
-        final boolean canAssumeUdfps = mViewModel.canAssumeUdfps();
-        final boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
-
-        builder.setTitle(data.getErrTitle())
-                .setMessage(data.getErrMsg())
-                .setCancelable(false);
-        if (wasTimeout && canAssumeUdfps) {
-            builder.setPositiveButton(
-                    R.string.security_settings_fingerprint_enroll_dialog_try_again,
-                    (dialog, which) -> {
-                            dialog.dismiss();
-                            mViewModel.onErrorDialogAction(FINGERPRINT_ERROR_DIALOG_ACTION_RESTART);
-                    });
-            builder.setNegativeButton(
-                    R.string.security_settings_fingerprint_enroll_dialog_ok,
-                    (dialog, which) -> {
-                            dialog.dismiss();
-                            mViewModel.onErrorDialogAction(
-                                    FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT);
-                    });
-        } else {
-            builder.setPositiveButton(
-                    R.string.security_settings_fingerprint_enroll_dialog_ok,
-                    (dialog, which) -> {
-                        dialog.dismiss();
-                        mViewModel.onErrorDialogAction(wasTimeout
-                                ? FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
-                                : FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH);
-                    });
-        }
-        final AlertDialog dialog = builder.create();
-        dialog.setCanceledOnTouchOutside(false);
-        return dialog;
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.DIALOG_FINGERPINT_ERROR;
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        mViewModel = new ViewModelProvider(getActivity()).get(
-                FingerprintEnrollEnrollingViewModel.class);
-        super.onAttach(context);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java
deleted file mode 100644
index f4fe7ff..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.os.Bundle;
-
-import androidx.appcompat.app.AlertDialog;
-
-import com.android.settings.R;
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-
-/**
- * Icon Touch dialog
- */
-public class FingerprintEnrollEnrollingIconTouchDialog extends InstrumentedDialogFragment {
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
-                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());
-        return builder.create();
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.DIALOG_FINGERPRINT_ICON_TOUCH;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt
new file mode 100644
index 0000000..9f99d17
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingIconTouchDialog.kt
@@ -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.biometrics2.ui.view
+
+import android.app.Dialog
+import android.content.Context
+import android.content.DialogInterface
+import android.os.Bundle
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import com.android.settings.R
+
+/**
+ * Icon Touch dialog
+ */
+class FingerprintEnrollEnrollingIconTouchDialog : DialogFragment() {
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
+        requireActivity().bindFingerprintEnrollEnrollingIconTouchDialog()
+}
+
+fun Context.bindFingerprintEnrollEnrollingIconTouchDialog(): AlertDialog =
+    AlertDialog.Builder(this, R.style.Theme_AlertDialog)
+        .setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
+        .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
+        .setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok) {
+            dialog: DialogInterface?, _: Int -> dialog?.dismiss()
+        }
+        .create()
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.java
deleted file mode 100644
index 8a4ed63..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.java
+++ /dev/null
@@ -1,464 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-
-import android.animation.Animator;
-import android.animation.ObjectAnimator;
-import android.app.Activity;
-import android.content.Context;
-import android.graphics.PorterDuff;
-import android.graphics.drawable.Animatable2;
-import android.graphics.drawable.AnimatedVectorDrawable;
-import android.graphics.drawable.Drawable;
-import android.graphics.drawable.LayerDrawable;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-
-import androidx.activity.OnBackPressedCallback;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-
-/**
- * Fragment is used to handle enrolling process for rfps
- */
-public class FingerprintEnrollEnrollingRfpsFragment extends Fragment {
-
-    private static final String TAG = FingerprintEnrollEnrollingRfpsFragment.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private static final int PROGRESS_BAR_MAX = 10000;
-    private static final long ANIMATION_DURATION = 250L;
-    private static final long ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN = 500;
-    private static final int ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3;
-
-    /**
-     * If we don't see progress during this time, we show an error message to remind the users that
-     * they need to lift the finger and touch again.
-     */
-    private static final int HINT_TIMEOUT_DURATION = 2500;
-
-    private FingerprintEnrollEnrollingViewModel mEnrollingViewModel;
-    private FingerprintEnrollProgressViewModel mProgressViewModel;
-
-    private Interpolator mFastOutSlowInInterpolator;
-    private Interpolator mLinearOutSlowInInterpolator;
-    private Interpolator mFastOutLinearInInterpolator;
-    private boolean mAnimationCancelled;
-
-    private GlifLayout mView;
-    private ProgressBar mProgressBar;
-    private ObjectAnimator mProgressAnim;
-    private TextView mErrorText;
-    private AnimatedVectorDrawable mIconAnimationDrawable;
-    private AnimatedVectorDrawable mIconBackgroundBlinksDrawable;
-    private int mIconTouchCount;
-
-    private final View.OnClickListener mOnSkipClickListener = v -> {
-        mEnrollingViewModel.setOnSkipPressed();
-        cancelEnrollment();
-    };
-
-    private final Observer<EnrollmentProgress> mProgressObserver = progress -> {
-        if (DEBUG) {
-            Log.d(TAG, "mProgressObserver(" + progress + ")");
-        }
-        if (progress != null && progress.getSteps() >= 0) {
-            onEnrollmentProgressChange(progress);
-        }
-    };
-
-    private final Observer<EnrollmentStatusMessage> mHelpMessageObserver = helpMessage -> {
-        if (DEBUG) {
-            Log.d(TAG, "mHelpMessageObserver(" + helpMessage + ")");
-        }
-        if (helpMessage != null) {
-            onEnrollmentHelp(helpMessage);
-        }
-    };
-
-    private final Observer<EnrollmentStatusMessage> mErrorMessageObserver = errorMessage -> {
-        if (DEBUG) {
-            Log.d(TAG, "mErrorMessageObserver(" + errorMessage + ")");
-        }
-        if (errorMessage != null) {
-            onEnrollmentError(errorMessage);
-        }
-    };
-
-    private final OnBackPressedCallback mOnBackPressedCallback = new OnBackPressedCallback(true) {
-        @Override
-        public void handleOnBackPressed() {
-            setEnabled(false);
-            mEnrollingViewModel.setOnBackPressed();
-            cancelEnrollment();
-        }
-    };
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        final FragmentActivity activity = getActivity();
-        final ViewModelProvider provider = new ViewModelProvider(activity);
-        mEnrollingViewModel = provider.get(FingerprintEnrollEnrollingViewModel.class);
-        mProgressViewModel = provider.get(FingerprintEnrollProgressViewModel.class);
-        super.onAttach(context);
-        activity.getOnBackPressedDispatcher().addCallback(mOnBackPressedCallback);
-    }
-
-    @Override
-    public void onDetach() {
-        mOnBackPressedCallback.setEnabled(false);
-        super.onDetach();
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        mView = initRfpsLayout(inflater, container);
-        return mView;
-    }
-
-    private GlifLayout initRfpsLayout(LayoutInflater inflater, ViewGroup container) {
-        final GlifLayout containView = (GlifLayout) inflater.inflate(
-                R.layout.fingerprint_enroll_enrolling, container, false);
-
-        final Activity activity = getActivity();
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(activity, containView);
-        glifLayoutHelper.setDescriptionText(getString(
-                R.string.security_settings_fingerprint_enroll_start_message));
-        glifLayoutHelper.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title);
-
-        mErrorText = containView.findViewById(R.id.error_text);
-        mProgressBar = containView.findViewById(R.id.fingerprint_progress_bar);
-        containView.getMixin(FooterBarMixin.class).setSecondaryButton(
-                new FooterButton.Builder(activity)
-                        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-                        .setListener(mOnSkipClickListener)
-                        .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
-                        .build()
-        );
-
-        final LayerDrawable fingerprintDrawable = (LayerDrawable) mProgressBar.getBackground();
-        mIconAnimationDrawable = (AnimatedVectorDrawable)
-                fingerprintDrawable.findDrawableByLayerId(R.id.fingerprint_animation);
-        mIconBackgroundBlinksDrawable = (AnimatedVectorDrawable)
-                fingerprintDrawable.findDrawableByLayerId(R.id.fingerprint_background);
-        mIconAnimationDrawable.registerAnimationCallback(mIconAnimationCallback);
-
-        mFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(
-                activity, android.R.interpolator.fast_out_slow_in);
-        mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(
-                activity, android.R.interpolator.linear_out_slow_in);
-        mFastOutLinearInInterpolator = AnimationUtils.loadInterpolator(
-                activity, android.R.interpolator.fast_out_linear_in);
-
-        mProgressBar.setProgressBackgroundTintMode(PorterDuff.Mode.SRC);
-        mProgressBar.setOnTouchListener((v, event) -> {
-            if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
-                mIconTouchCount++;
-                if (mIconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
-                    showIconTouchDialog();
-                } else {
-                    mProgressBar.postDelayed(mShowDialogRunnable,
-                            ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN);
-                }
-            } else if (event.getActionMasked() == MotionEvent.ACTION_CANCEL
-                    || event.getActionMasked() == MotionEvent.ACTION_UP) {
-                mProgressBar.removeCallbacks(mShowDialogRunnable);
-            }
-            return true;
-        });
-
-        return containView;
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        mAnimationCancelled = false;
-        startIconAnimation();
-        startEnrollment();
-        updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue());
-        updateTitleAndDescription();
-    }
-
-    private void startIconAnimation() {
-        if (mIconAnimationDrawable != null) {
-            mIconAnimationDrawable.start();
-        }
-    }
-
-    private void stopIconAnimation() {
-        mAnimationCancelled = true;
-        if (mIconAnimationDrawable != null) {
-            mIconAnimationDrawable.stop();
-        }
-    }
-
-    @Override
-    public void onStop() {
-        stopIconAnimation();
-        removeEnrollmentObservers();
-        if (!getActivity().isChangingConfigurations() && mProgressViewModel.isEnrolling()) {
-            mProgressViewModel.cancelEnrollment();
-        }
-        super.onStop();
-    }
-
-    private void removeEnrollmentObservers() {
-        preRemoveEnrollmentObservers();
-        mProgressViewModel.getErrorMessageLiveData().removeObserver(mErrorMessageObserver);
-    }
-
-    private void preRemoveEnrollmentObservers() {
-        mProgressViewModel.getProgressLiveData().removeObserver(mProgressObserver);
-        mProgressViewModel.getHelpMessageLiveData().removeObserver(mHelpMessageObserver);
-    }
-
-    private void cancelEnrollment() {
-        preRemoveEnrollmentObservers();
-        mProgressViewModel.cancelEnrollment();
-    }
-
-    private void startEnrollment() {
-        final boolean startResult = mProgressViewModel.startEnrollment(ENROLL_ENROLL);
-        if (!startResult) {
-            Log.e(TAG, "startEnrollment(), failed");
-        }
-        mProgressViewModel.getProgressLiveData().observe(this, mProgressObserver);
-        mProgressViewModel.getHelpMessageLiveData().observe(this, mHelpMessageObserver);
-        mProgressViewModel.getErrorMessageLiveData().observe(this, mErrorMessageObserver);
-    }
-
-    private void onEnrollmentHelp(@NonNull EnrollmentStatusMessage helpMessage) {
-        final CharSequence helpStr = helpMessage.getStr();
-        if (!TextUtils.isEmpty(helpStr)) {
-            mErrorText.removeCallbacks(mTouchAgainRunnable);
-            showError(helpStr);
-        }
-    }
-
-    private void onEnrollmentError(@NonNull EnrollmentStatusMessage errorMessage) {
-        stopIconAnimation();
-        removeEnrollmentObservers();
-
-        if (mEnrollingViewModel.getOnBackPressed()
-                && errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            mEnrollingViewModel.onCancelledDueToOnBackPressed();
-        } else if (mEnrollingViewModel.getOnSkipPressed()
-                && errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            mEnrollingViewModel.onCancelledDueToOnSkipPressed();
-        } else {
-            final int errMsgId = errorMessage.getMsgId();
-            mEnrollingViewModel.showErrorDialog(
-                    new FingerprintEnrollEnrollingViewModel.ErrorDialogData(
-                            mView.getContext().getString(
-                                    FingerprintErrorDialog.getErrorMessage(errMsgId)),
-                            mView.getContext().getString(
-                                    FingerprintErrorDialog.getErrorTitle(errMsgId)),
-                            errMsgId
-                    ));
-            mProgressViewModel.cancelEnrollment();
-        }
-    }
-
-    private void onEnrollmentProgressChange(@NonNull EnrollmentProgress progress) {
-        updateProgress(true /* animate */, progress);
-        updateTitleAndDescription();
-        animateFlash();
-        mErrorText.removeCallbacks(mTouchAgainRunnable);
-        mErrorText.postDelayed(mTouchAgainRunnable, HINT_TIMEOUT_DURATION);
-    }
-
-    private void updateProgress(boolean animate, @NonNull EnrollmentProgress enrollmentProgress) {
-        if (!mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "Enrollment not started yet");
-            return;
-        }
-
-        final int progress = getProgress(enrollmentProgress);
-        // Only clear the error when progress has been made.
-        // TODO (b/234772728) Add tests.
-        if (mProgressBar != null && mProgressBar.getProgress() < progress) {
-            clearError();
-        }
-
-        if (animate) {
-            animateProgress(progress);
-        } else {
-            if (mProgressBar != null) {
-                mProgressBar.setProgress(progress);
-            }
-            if (progress >= PROGRESS_BAR_MAX) {
-                mDelayedFinishRunnable.run();
-            }
-        }
-    }
-
-    private int getProgress(@NonNull EnrollmentProgress progress) {
-        if (progress.getSteps() == -1) {
-            return 0;
-        }
-        int displayProgress = Math.max(0, progress.getSteps() + 1 - progress.getRemaining());
-        return PROGRESS_BAR_MAX * displayProgress / (progress.getSteps() + 1);
-    }
-
-    private void showError(CharSequence error) {
-        mErrorText.setText(error);
-        if (mErrorText.getVisibility() == View.INVISIBLE) {
-            mErrorText.setVisibility(View.VISIBLE);
-            mErrorText.setTranslationY(mView.getContext().getResources().getDimensionPixelSize(
-                    R.dimen.fingerprint_error_text_appear_distance));
-            mErrorText.setAlpha(0f);
-            mErrorText.animate()
-                    .alpha(1f)
-                    .translationY(0f)
-                    .setDuration(200)
-                    .setInterpolator(mLinearOutSlowInInterpolator)
-                    .start();
-        } else {
-            mErrorText.animate().cancel();
-            mErrorText.setAlpha(1f);
-            mErrorText.setTranslationY(0f);
-        }
-        if (isResumed() && mEnrollingViewModel.isAccessibilityEnabled()) {
-            mEnrollingViewModel.vibrateError(getClass().getSimpleName() + "::showError");
-        }
-    }
-
-    private void clearError() {
-        if (mErrorText.getVisibility() == View.VISIBLE) {
-            mErrorText.animate()
-                    .alpha(0f)
-                    .translationY(getResources().getDimensionPixelSize(
-                            R.dimen.fingerprint_error_text_disappear_distance))
-                    .setDuration(100)
-                    .setInterpolator(mFastOutLinearInInterpolator)
-                    .withEndAction(() -> mErrorText.setVisibility(View.INVISIBLE))
-                    .start();
-        }
-    }
-
-    private void animateProgress(int progress) {
-        if (mProgressAnim != null) {
-            mProgressAnim.cancel();
-        }
-        ObjectAnimator anim = ObjectAnimator.ofInt(mProgressBar, "progress",
-                mProgressBar.getProgress(), progress);
-        anim.addListener(mProgressAnimationListener);
-        anim.setInterpolator(mFastOutSlowInInterpolator);
-        anim.setDuration(ANIMATION_DURATION);
-        anim.start();
-        mProgressAnim = anim;
-    }
-
-    private final Runnable mTouchAgainRunnable = new Runnable() {
-        @Override
-        public void run() {
-            // Use mView to getString to prevent activity is missing during rotation
-            showError(mView.getContext().getString(
-                    R.string.security_settings_fingerprint_enroll_lift_touch_again));
-        }
-    };
-
-    private void animateFlash() {
-        if (mIconBackgroundBlinksDrawable != null) {
-            mIconBackgroundBlinksDrawable.start();
-        }
-    }
-
-    private void updateTitleAndDescription() {
-        final EnrollmentProgress progressLiveData =
-                mProgressViewModel.getProgressLiveData().getValue();
-        new GlifLayoutHelper(getActivity(), mView).setDescriptionText(mView.getContext().getString(
-                progressLiveData == null || progressLiveData.getSteps() == -1
-                ? R.string.security_settings_fingerprint_enroll_start_message
-                : R.string.security_settings_fingerprint_enroll_repeat_message));
-    }
-
-    private void showIconTouchDialog() {
-        mIconTouchCount = 0;
-        mEnrollingViewModel.showIconTouchDialog();
-    }
-
-    private final Runnable mShowDialogRunnable = () -> showIconTouchDialog();
-
-    private final Animator.AnimatorListener mProgressAnimationListener =
-            new Animator.AnimatorListener() {
-
-                @Override
-                public void onAnimationStart(Animator animation) {
-                    startIconAnimation();
-                }
-
-                @Override
-                public void onAnimationRepeat(Animator animation) { }
-
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    stopIconAnimation();
-                    if (mProgressBar.getProgress() >= PROGRESS_BAR_MAX) {
-                        mProgressBar.postDelayed(mDelayedFinishRunnable, ANIMATION_DURATION);
-                    }
-                }
-
-                @Override
-                public void onAnimationCancel(Animator animation) { }
-            };
-
-    // Give the user a chance to see progress completed before jumping to the next stage.
-    private final Runnable mDelayedFinishRunnable = () -> mEnrollingViewModel.onEnrollingDone();
-
-    private final Animatable2.AnimationCallback mIconAnimationCallback =
-            new Animatable2.AnimationCallback() {
-                @Override
-                public void onAnimationEnd(Drawable d) {
-                    if (mAnimationCancelled) {
-                        return;
-                    }
-
-                    // Start animation after it has ended.
-                    mProgressBar.post(() -> startIconAnimation());
-                }
-            };
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt
new file mode 100644
index 0000000..2530628
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingRfpsFragment.kt
@@ -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.biometrics2.ui.view
+
+import android.animation.Animator
+import android.animation.ObjectAnimator
+import android.content.Context
+import android.graphics.PorterDuff
+import android.graphics.drawable.Animatable2
+import android.graphics.drawable.AnimatedVectorDrawable
+import android.graphics.drawable.Drawable
+import android.graphics.drawable.LayerDrawable
+import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
+import android.os.Bundle
+import android.text.TextUtils
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
+import android.view.animation.AnimationUtils.loadInterpolator
+import android.view.animation.Interpolator
+import android.widget.ProgressBar
+import android.widget.TextView
+import androidx.activity.OnBackPressedCallback
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.model.EnrollmentProgress
+import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import kotlinx.coroutines.launch
+
+/**
+ * Fragment is used to handle enrolling process for rfps
+ */
+class FingerprintEnrollEnrollingRfpsFragment : Fragment() {
+
+    private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
+    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
+        get() = _enrollingViewModel!!
+
+    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
+    private val progressViewModel: FingerprintEnrollProgressViewModel
+        get() = _progressViewModel!!
+
+    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
+    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
+        get() = _errorDialogViewModel!!
+
+    private var fastOutSlowInInterpolator: Interpolator? = null
+    private var linearOutSlowInInterpolator: Interpolator? = null
+    private var fastOutLinearInInterpolator: Interpolator? = null
+
+    private var isAnimationCancelled = false
+
+    private var enrollingView: GlifLayout? = null
+    private val progressBar: ProgressBar
+        get() = enrollingView!!.findViewById(R.id.fingerprint_progress_bar)!!
+
+    private var progressAnim: ObjectAnimator? = null
+
+    private val errorText: TextView
+        get() = enrollingView!!.findViewById(R.id.error_text)!!
+
+    private val iconAnimationDrawable: AnimatedVectorDrawable?
+        get() = (progressBar.background as LayerDrawable)
+            .findDrawableByLayerId(R.id.fingerprint_animation) as AnimatedVectorDrawable?
+
+    private val iconBackgroundBlinksDrawable: AnimatedVectorDrawable?
+        get() = (progressBar.background as LayerDrawable)
+            .findDrawableByLayerId(R.id.fingerprint_background) as AnimatedVectorDrawable?
+
+    private var iconTouchCount = 0
+
+    private val touchAgainRunnable = Runnable {
+        showError(
+            // Use enrollingView to getString to prevent activity is missing during rotation
+            enrollingView!!.context.getString(
+                R.string.security_settings_fingerprint_enroll_lift_touch_again
+            )
+        )
+    }
+
+    private val onSkipClickListener = View.OnClickListener { _: View? ->
+        enrollingViewModel.setOnSkipPressed()
+        cancelEnrollment(true)
+    }
+
+    private var enrollingCancelSignal: Any? = null
+
+    private val progressObserver = Observer { progress: EnrollmentProgress? ->
+        if (progress != null && progress.steps >= 0) {
+            onEnrollmentProgressChange(progress)
+        }
+    }
+
+    private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
+        helpMessage?.let { onEnrollmentHelp(it) }
+    }
+
+    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
+        Log.d(TAG, "errorMessageObserver($errorMessage)")
+        errorMessage?.let { onEnrollmentError(it) }
+   }
+
+    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
+        canceledSignal?.let { onEnrollmentCanceled(it) }
+    }
+
+    private val onBackPressedCallback: OnBackPressedCallback =
+        object : OnBackPressedCallback(true) {
+            override fun handleOnBackPressed() {
+                isEnabled = false
+                enrollingViewModel.setOnBackPressed()
+                cancelEnrollment(true)
+            }
+        }
+
+    override fun onAttach(context: Context) {
+        ViewModelProvider(requireActivity()).let { provider ->
+            _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
+            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
+            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
+        }
+        super.onAttach(context)
+        requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
+    }
+
+    override fun onDetach() {
+        onBackPressedCallback.isEnabled = false
+        super.onDetach()
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        enrollingView = inflater.inflate(
+                R.layout.fingerprint_enroll_enrolling, container, false
+        ) as GlifLayout
+        return enrollingView!!
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+
+        iconAnimationDrawable!!.registerAnimationCallback(iconAnimationCallback)
+
+        progressBar.setOnTouchListener { _: View?, event: MotionEvent ->
+            if (event.actionMasked == MotionEvent.ACTION_DOWN) {
+                iconTouchCount++
+                if (iconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
+                    showIconTouchDialog()
+                } else {
+                    progressBar.postDelayed(
+                        showDialogRunnable,
+                        ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN
+                    )
+                }
+            } else if (event.actionMasked == MotionEvent.ACTION_CANCEL
+                || event.actionMasked == MotionEvent.ACTION_UP
+            ) {
+                progressBar.removeCallbacks(showDialogRunnable)
+            }
+            true
+        }
+
+        requireActivity().bindFingerprintEnrollEnrollingRfpsView(
+            view = enrollingView!!,
+            onSkipClickListener = onSkipClickListener
+        )
+
+        fastOutSlowInInterpolator =
+            loadInterpolator(requireContext(), android.R.interpolator.fast_out_slow_in)
+        linearOutSlowInInterpolator =
+            loadInterpolator(requireContext(), android.R.interpolator.linear_out_slow_in)
+        fastOutLinearInInterpolator =
+            loadInterpolator(requireContext(), android.R.interpolator.fast_out_linear_in)
+
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
+            }
+        }
+    }
+
+    private fun retryEnrollment() {
+        isAnimationCancelled = false
+        startIconAnimation()
+        startEnrollment()
+
+        clearError()
+        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
+        updateTitleAndDescription()
+    }
+
+    override fun onStart() {
+        super.onStart()
+
+        val isEnrolling = progressViewModel.isEnrolling
+        val isErrorDialogShown = errorDialogViewModel.isDialogShown
+        Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
+        if (!isErrorDialogShown) {
+            isAnimationCancelled = false
+            startIconAnimation()
+            startEnrollment()
+        }
+
+        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
+        updateTitleAndDescription()
+    }
+
+    private fun startIconAnimation() {
+        iconAnimationDrawable?.start()
+    }
+
+    private fun stopIconAnimation() {
+        isAnimationCancelled = true
+        iconAnimationDrawable?.stop()
+    }
+
+    override fun onStop() {
+        stopIconAnimation()
+        removeEnrollmentObservers()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isConfigChange = requireActivity().isChangingConfigurations
+        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
+        if (isEnrolling && !isConfigChange) {
+            cancelEnrollment(false)
+        }
+        super.onStop()
+    }
+
+    private fun removeEnrollmentObservers() {
+        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
+        progressViewModel.progressLiveData.removeObserver(progressObserver)
+        progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
+    }
+
+    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
+            return
+        }
+        removeEnrollmentObservers()
+        if (waitForLastCancelErrMsg) {
+            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
+        } else {
+            enrollingCancelSignal = null
+        }
+        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
+        if (!cancelResult) {
+            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
+        }
+    }
+
+    private fun startEnrollment() {
+        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
+        if (enrollingCancelSignal == null) {
+            Log.e(TAG, "startEnrollment(), failed")
+        } else {
+            Log.d(TAG, "startEnrollment(), success")
+        }
+        progressViewModel.progressLiveData.observe(this, progressObserver)
+        progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
+        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
+    }
+
+    private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
+        Log.d(TAG, "onEnrollmentHelp($helpMessage)")
+        val helpStr: CharSequence = helpMessage.str
+        if (!TextUtils.isEmpty(helpStr)) {
+            errorText.removeCallbacks(touchAgainRunnable)
+            showError(helpStr)
+        }
+    }
+
+    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
+        stopIconAnimation()
+
+        cancelEnrollment(true)
+        lifecycleScope.launch {
+            Log.d(TAG, "newDialog $errorMessage")
+            errorDialogViewModel.newDialog(errorMessage.msgId)
+        }
+    }
+
+    private fun onEnrollmentCanceled(canceledSignal: Any) {
+        Log.d(
+            TAG,
+            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
+        )
+        if (enrollingCancelSignal === canceledSignal) {
+            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
+            progressViewModel.clearProgressLiveData()
+            if (enrollingViewModel.onBackPressed) {
+                enrollingViewModel.onCancelledDueToOnBackPressed()
+            } else if (enrollingViewModel.onSkipPressed) {
+                enrollingViewModel.onCancelledDueToOnSkipPressed()
+            }
+        }
+    }
+
+    private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
+        updateProgress(true /* animate */, progress)
+        updateTitleAndDescription()
+        animateFlash()
+        errorText.removeCallbacks(touchAgainRunnable)
+        errorText.postDelayed(touchAgainRunnable, HINT_TIMEOUT_DURATION.toLong())
+    }
+
+    private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
+        val progress = getProgress(enrollmentProgress)
+        Log.d(TAG, "updateProgress($animate, $enrollmentProgress), old:${progressBar.progress}"
+                + ", new:$progress")
+
+        // Only clear the error when progress has been made.
+        // TODO (b/234772728) Add tests.
+        if (progressBar.progress < progress) {
+            clearError()
+        }
+        if (animate) {
+            animateProgress(progress)
+        } else {
+            progressBar.progress = progress
+            if (progress >= PROGRESS_BAR_MAX) {
+                delayedFinishRunnable.run()
+            }
+        }
+    }
+
+    private fun getProgress(progress: EnrollmentProgress): Int {
+        if (progress.steps == -1) {
+            return 0
+        }
+        val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
+        return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
+    }
+
+    private fun showError(error: CharSequence) {
+        errorText.text = error
+        if (errorText.visibility == View.INVISIBLE) {
+            errorText.visibility = View.VISIBLE
+            errorText.translationY = enrollingView!!.context.resources.getDimensionPixelSize(
+                R.dimen.fingerprint_error_text_appear_distance
+            ).toFloat()
+            errorText.alpha = 0f
+            errorText.animate()
+                .alpha(1f)
+                .translationY(0f)
+                .setDuration(200)
+                .setInterpolator(linearOutSlowInInterpolator)
+                .start()
+        } else {
+            errorText.animate().cancel()
+            errorText.alpha = 1f
+            errorText.translationY = 0f
+        }
+        if (isResumed && enrollingViewModel.isAccessibilityEnabled) {
+            enrollingViewModel.vibrateError(javaClass.simpleName + "::showError")
+        }
+    }
+
+    private fun clearError() {
+        if (errorText.visibility == View.VISIBLE) {
+            errorText.animate()
+                .alpha(0f)
+                .translationY(
+                    resources.getDimensionPixelSize(
+                        R.dimen.fingerprint_error_text_disappear_distance
+                    ).toFloat()
+                )
+                .setDuration(100)
+                .setInterpolator(fastOutLinearInInterpolator)
+                .withEndAction { errorText.visibility = View.INVISIBLE }
+                .start()
+        }
+    }
+
+    private fun animateProgress(progress: Int) {
+        progressAnim?.cancel()
+        val anim = ObjectAnimator.ofInt(
+            progressBar /* target */,
+            "progress" /* propertyName */,
+            progressBar.progress /* values[0] */,
+            progress /* values[1] */
+        )
+        anim.addListener(progressAnimationListener)
+        anim.interpolator = fastOutSlowInInterpolator
+        anim.setDuration(ANIMATION_DURATION)
+        anim.start()
+        progressAnim = anim
+    }
+
+    private fun animateFlash() {
+        iconBackgroundBlinksDrawable?.start()
+    }
+
+    private fun updateTitleAndDescription() {
+        val progressLiveData: EnrollmentProgress = progressViewModel.progressLiveData.value!!
+        GlifLayoutHelper(activity!!, enrollingView!!).setDescriptionText(
+            enrollingView!!.context.getString(
+                if (progressLiveData.steps == -1)
+                    R.string.security_settings_fingerprint_enroll_start_message
+                else
+                    R.string.security_settings_fingerprint_enroll_repeat_message
+            )
+        )
+    }
+
+    private fun showIconTouchDialog() {
+        iconTouchCount = 0
+        enrollingViewModel.showIconTouchDialog()
+    }
+
+    private val showDialogRunnable = Runnable { showIconTouchDialog() }
+
+    private val progressAnimationListener: Animator.AnimatorListener =
+        object : Animator.AnimatorListener {
+            override fun onAnimationStart(animation: Animator) {
+                startIconAnimation()
+            }
+
+            override fun onAnimationRepeat(animation: Animator) {}
+            override fun onAnimationEnd(animation: Animator) {
+                stopIconAnimation()
+                if (progressBar.progress >= PROGRESS_BAR_MAX) {
+                    progressBar.postDelayed(delayedFinishRunnable, ANIMATION_DURATION)
+                }
+            }
+
+            override fun onAnimationCancel(animation: Animator) {}
+        }
+
+    // Give the user a chance to see progress completed before jumping to the next stage.
+    private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
+
+    private val iconAnimationCallback: Animatable2.AnimationCallback =
+        object : Animatable2.AnimationCallback() {
+            override fun onAnimationEnd(d: Drawable) {
+                if (isAnimationCancelled) {
+                    return
+                }
+
+                // Start animation after it has ended.
+                progressBar.post { startIconAnimation() }
+            }
+        }
+
+    companion object {
+        private const val DEBUG = false
+        private const val TAG = "FingerprintEnrollEnrollingRfpsFragment"
+        private const val PROGRESS_BAR_MAX = 10000
+        private const val ANIMATION_DURATION = 250L
+        private const val ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN: Long = 500
+        private const val ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3
+
+        /**
+         * If we don't see progress during this time, we show an error message to remind the users that
+         * they need to lift the finger and touch again.
+         */
+        private const val HINT_TIMEOUT_DURATION = 2500
+    }
+}
+
+fun FragmentActivity.bindFingerprintEnrollEnrollingRfpsView(
+    view: GlifLayout,
+    onSkipClickListener: View.OnClickListener
+) {
+    GlifLayoutHelper(this, view).let {
+        it.setDescriptionText(
+            getString(
+                R.string.security_settings_fingerprint_enroll_start_message
+            )
+        )
+        it.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
+    }
+
+    view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!
+        .progressBackgroundTintMode = PorterDuff.Mode.SRC
+
+    view.getMixin(FooterBarMixin::class.java).secondaryButton =
+        FooterButton.Builder(this)
+            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+            .setListener(onSkipClickListener)
+            .setButtonType(FooterButton.ButtonType.SKIP)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+            .build()
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.java
deleted file mode 100644
index f2dad238..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.java
+++ /dev/null
@@ -1,597 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-
-import android.animation.Animator;
-import android.animation.ObjectAnimator;
-import android.annotation.RawRes;
-import android.app.Activity;
-import android.content.Context;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewGroup;
-import android.view.animation.AccelerateDecelerateInterpolator;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.widget.ProgressBar;
-import android.widget.RelativeLayout;
-
-import androidx.activity.OnBackPressedCallback;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.airbnb.lottie.LottieCompositionFactory;
-import com.airbnb.lottie.LottieProperty;
-import com.airbnb.lottie.model.KeyPath;
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-import com.google.android.setupdesign.template.DescriptionMixin;
-import com.google.android.setupdesign.template.HeaderMixin;
-
-/**
- * Fragment is used to handle enrolling process for sfps
- */
-public class FingerprintEnrollEnrollingSfpsFragment extends Fragment {
-
-    private static final String TAG = FingerprintEnrollEnrollingSfpsFragment.class.getSimpleName();
-    private static final boolean DEBUG = false;
-
-    private static final int PROGRESS_BAR_MAX = 10000;
-    private static final long ANIMATION_DURATION = 250L;
-    private static final long ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN = 500;
-    private static final int ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3;
-
-    private static final int STAGE_UNKNOWN = -1;
-    private static final int SFPS_STAGE_NO_ANIMATION = 0;
-    private static final int SFPS_STAGE_CENTER = 1;
-    private static final int SFPS_STAGE_FINGERTIP = 2;
-    private static final int SFPS_STAGE_LEFT_EDGE = 3;
-    private static final int SFPS_STAGE_RIGHT_EDGE = 4;
-
-    private FingerprintEnrollEnrollingViewModel mEnrollingViewModel;
-    private FingerprintEnrollProgressViewModel mProgressViewModel;
-
-    private Interpolator mFastOutSlowInInterpolator;
-
-    private GlifLayout mView;
-    private ProgressBar mProgressBar;
-    private ObjectAnimator mProgressAnim;
-
-    private LottieAnimationView mIllustrationLottie;
-
-    private boolean mHaveShownSfpsNoAnimationLottie;
-    private boolean mHaveShownSfpsCenterLottie;
-    private boolean mHaveShownSfpsTipLottie;
-    private boolean mHaveShownSfpsLeftEdgeLottie;
-    private boolean mHaveShownSfpsRightEdgeLottie;
-    private ObjectAnimator mHelpAnimation;
-    private int mIconTouchCount;
-
-    private final View.OnClickListener mOnSkipClickListener =
-            (v) -> mEnrollingViewModel.onCancelledDueToOnSkipPressed();
-
-    private final Observer<EnrollmentProgress> mProgressObserver = progress -> {
-        if (DEBUG) {
-            Log.d(TAG, "mProgressObserver(" + progress + ")");
-        }
-        if (progress != null && progress.getSteps() >= 0) {
-            onEnrollmentProgressChange(progress);
-        }
-    };
-
-    private final Observer<EnrollmentStatusMessage> mHelpMessageObserver = helpMessage -> {
-        if (DEBUG) {
-            Log.d(TAG, "mHelpMessageObserver(" + helpMessage + ")");
-        }
-        if (helpMessage != null) {
-            onEnrollmentHelp(helpMessage);
-        }
-    };
-
-    private final Observer<EnrollmentStatusMessage> mErrorMessageObserver = errorMessage -> {
-        if (DEBUG) {
-            Log.d(TAG, "mErrorMessageObserver(" + errorMessage + ")");
-        }
-        if (errorMessage != null) {
-            onEnrollmentError(errorMessage);
-        }
-    };
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        final FragmentActivity activity = getActivity();
-        final ViewModelProvider provider = new ViewModelProvider(activity);
-        mEnrollingViewModel = provider.get(FingerprintEnrollEnrollingViewModel.class);
-        mProgressViewModel = provider.get(FingerprintEnrollProgressViewModel.class);
-        super.onAttach(context);
-        requireActivity().getOnBackPressedDispatcher().addCallback(new OnBackPressedCallback(true) {
-            @Override
-            public void handleOnBackPressed() {
-                setEnabled(false);
-                mEnrollingViewModel.setOnBackPressed();
-                cancelEnrollment();
-            }
-        });
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        mView = initSfpsLayout(inflater, container);
-        maybeHideSfpsText(getActivity().getResources().getConfiguration());
-        return mView;
-    }
-
-    private GlifLayout initSfpsLayout(LayoutInflater inflater, ViewGroup container) {
-        final GlifLayout containView = (GlifLayout) inflater.inflate(R.layout.sfps_enroll_enrolling,
-                container, false);
-        final Activity activity = getActivity();
-
-        new GlifLayoutHelper(activity, containView).setDescriptionText(
-                getString(R.string.security_settings_fingerprint_enroll_start_message));
-
-        // setHelpAnimation()
-        final float translationX = 40;
-        final int duration = 550;
-        final RelativeLayout progressLottieLayout = containView.findViewById(R.id.progress_lottie);
-        mHelpAnimation = ObjectAnimator.ofFloat(progressLottieLayout,
-                "translationX" /* propertyName */,
-                0, translationX, -1 * translationX, translationX, 0f);
-        mHelpAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
-        mHelpAnimation.setDuration(duration);
-        mHelpAnimation.setAutoCancel(false);
-
-        mIllustrationLottie = containView.findViewById(R.id.illustration_lottie);
-
-        mProgressBar = containView.findViewById(R.id.fingerprint_progress_bar);
-        final FooterBarMixin footerBarMixin = containView.getMixin(FooterBarMixin.class);
-        footerBarMixin.setSecondaryButton(
-                new FooterButton.Builder(activity)
-                        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-                        .setListener(mOnSkipClickListener)
-                        .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
-                        .build()
-        );
-
-        mFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(
-                activity, android.R.interpolator.fast_out_slow_in);
-
-        mProgressBar.setProgressBackgroundTintMode(PorterDuff.Mode.SRC);
-        mProgressBar.setOnTouchListener((v, event) -> {
-            if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
-                mIconTouchCount++;
-                if (mIconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
-                    showIconTouchDialog();
-                } else {
-                    mProgressBar.postDelayed(mShowDialogRunnable,
-                            ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN);
-                }
-            } else if (event.getActionMasked() == MotionEvent.ACTION_CANCEL
-                    || event.getActionMasked() == MotionEvent.ACTION_UP) {
-                mProgressBar.removeCallbacks(mShowDialogRunnable);
-            }
-            return true;
-        });
-
-        return containView;
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        startEnrollment();
-        updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue());
-        final EnrollmentStatusMessage msg = mProgressViewModel.getHelpMessageLiveData().getValue();
-        if (msg != null) {
-            onEnrollmentHelp(msg);
-        } else {
-            clearError();
-            updateTitleAndDescription();
-        }
-    }
-
-    @Override
-    public void onStop() {
-        removeEnrollmentObservers();
-        if (!getActivity().isChangingConfigurations() && mProgressViewModel.isEnrolling()) {
-            mProgressViewModel.cancelEnrollment();
-        }
-        super.onStop();
-    }
-
-    private void removeEnrollmentObservers() {
-        preRemoveEnrollmentObservers();
-        mProgressViewModel.getErrorMessageLiveData().removeObserver(mErrorMessageObserver);
-    }
-
-    private void preRemoveEnrollmentObservers() {
-        mProgressViewModel.getProgressLiveData().removeObserver(mProgressObserver);
-        mProgressViewModel.getHelpMessageLiveData().removeObserver(mHelpMessageObserver);
-    }
-
-    private void cancelEnrollment() {
-        preRemoveEnrollmentObservers();
-        mProgressViewModel.cancelEnrollment();
-    }
-
-    private void startEnrollment() {
-        final boolean startResult = mProgressViewModel.startEnrollment(ENROLL_ENROLL);
-        if (!startResult) {
-            Log.e(TAG, "startEnrollment(), failed");
-        }
-        mProgressViewModel.getProgressLiveData().observe(this, mProgressObserver);
-        mProgressViewModel.getHelpMessageLiveData().observe(this, mHelpMessageObserver);
-        mProgressViewModel.getErrorMessageLiveData().observe(this, mErrorMessageObserver);
-    }
-
-    private void configureEnrollmentStage(CharSequence description, @RawRes int lottie) {
-        new GlifLayoutHelper(getActivity(), mView).setDescriptionText(description);
-        LottieCompositionFactory.fromRawRes(getActivity(), lottie)
-                .addListener((c) -> {
-                    mIllustrationLottie.setComposition(c);
-                    mIllustrationLottie.setVisibility(View.VISIBLE);
-                    mIllustrationLottie.playAnimation();
-                });
-    }
-
-    private int getCurrentSfpsStage() {
-        EnrollmentProgress progressLiveData = mProgressViewModel.getProgressLiveData().getValue();
-
-        if (progressLiveData == null) {
-            return STAGE_UNKNOWN;
-        }
-
-        final int progressSteps = progressLiveData.getSteps() - progressLiveData.getRemaining();
-        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;
-        }
-    }
-
-    private void onEnrollmentHelp(@NonNull EnrollmentStatusMessage helpMessage) {
-        final CharSequence helpStr = helpMessage.getStr();
-        if (!TextUtils.isEmpty(helpStr)) {
-            showError(helpStr);
-        }
-    }
-
-    private void onEnrollmentError(@NonNull EnrollmentStatusMessage errorMessage) {
-        removeEnrollmentObservers();
-
-        if (mEnrollingViewModel.getOnBackPressed()
-                && errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            mEnrollingViewModel.onCancelledDueToOnBackPressed();
-        } else if (mEnrollingViewModel.getOnSkipPressed()
-                && errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            mEnrollingViewModel.onCancelledDueToOnSkipPressed();
-        } else {
-            final int errMsgId = errorMessage.getMsgId();
-            mEnrollingViewModel.showErrorDialog(
-                    new FingerprintEnrollEnrollingViewModel.ErrorDialogData(
-                            getString(FingerprintErrorDialog.getErrorMessage(errMsgId)),
-                            getString(FingerprintErrorDialog.getErrorTitle(errMsgId)),
-                            errMsgId
-                    ));
-            mProgressViewModel.cancelEnrollment();
-        }
-    }
-
-    private void announceEnrollmentProgress(CharSequence announcement) {
-        mEnrollingViewModel.sendAccessibilityEvent(announcement);
-    }
-
-    private void onEnrollmentProgressChange(@NonNull EnrollmentProgress progress) {
-        updateProgress(true /* animate */, progress);
-        if (mEnrollingViewModel.isAccessibilityEnabled()) {
-            final int percent = (int) (((float) (progress.getSteps() - progress.getRemaining())
-                    / (float) progress.getSteps()) * 100);
-
-            CharSequence announcement = getString(
-                    R.string.security_settings_sfps_enroll_progress_a11y_message, percent);
-            announceEnrollmentProgress(announcement);
-
-            mIllustrationLottie.setContentDescription(
-                    getString(R.string.security_settings_sfps_animation_a11y_label, percent)
-            );
-        }
-        updateTitleAndDescription();
-    }
-
-    private void updateProgress(boolean animate, @NonNull EnrollmentProgress enrollmentProgress) {
-        if (!mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "Enrollment not started yet");
-            return;
-        }
-
-        final int progress = getProgress(enrollmentProgress);
-        // Only clear the error when progress has been made.
-        // TODO (b/234772728) Add tests.
-        if (mProgressBar != null && mProgressBar.getProgress() < progress) {
-            clearError();
-        }
-
-        if (animate) {
-            animateProgress(progress);
-        } else {
-            if (mProgressBar != null) {
-                mProgressBar.setProgress(progress);
-            }
-            if (progress >= PROGRESS_BAR_MAX) {
-                mDelayedFinishRunnable.run();
-            }
-        }
-    }
-
-    private int getProgress(@NonNull EnrollmentProgress progress) {
-        if (progress.getSteps() == -1) {
-            return 0;
-        }
-        int displayProgress = Math.max(0, progress.getSteps() + 1 - progress.getRemaining());
-        return PROGRESS_BAR_MAX * displayProgress / (progress.getSteps() + 1);
-    }
-
-    private void showError(CharSequence error) {
-        mView.setHeaderText(error);
-        mView.getHeaderTextView().setContentDescription(error);
-        new GlifLayoutHelper(getActivity(), mView).setDescriptionText("");
-        if (isResumed() && !mHelpAnimation.isRunning()) {
-            mHelpAnimation.start();
-        }
-        applySfpsErrorDynamicColors(true);
-        if (isResumed() && mEnrollingViewModel.isAccessibilityEnabled()) {
-            mEnrollingViewModel.vibrateError(getClass().getSimpleName() + "::showError");
-        }
-    }
-
-    private void clearError() {
-        applySfpsErrorDynamicColors(false);
-    }
-
-    private void animateProgress(int progress) {
-        if (mProgressAnim != null) {
-            mProgressAnim.cancel();
-        }
-        ObjectAnimator anim = ObjectAnimator.ofInt(mProgressBar, "progress",
-                mProgressBar.getProgress(), progress);
-        anim.addListener(mProgressAnimationListener);
-        anim.setInterpolator(mFastOutSlowInInterpolator);
-        anim.setDuration(ANIMATION_DURATION);
-        anim.start();
-        mProgressAnim = anim;
-    }
-
-    /**
-     * Applies dynamic colors corresponding to showing or clearing errors on the progress bar
-     * and finger lottie for SFPS
-     */
-    private void applySfpsErrorDynamicColors(boolean isError) {
-        applyProgressBarDynamicColor(isError);
-        applyLottieDynamicColor(isError);
-    }
-
-    private void applyProgressBarDynamicColor(boolean isError) {
-        final Context context = getActivity().getApplicationContext();
-        int error_color = context.getColor(R.color.sfps_enrollment_progress_bar_error_color);
-        int progress_bar_fill_color = context.getColor(
-                R.color.sfps_enrollment_progress_bar_fill_color);
-        ColorStateList fillColor = ColorStateList.valueOf(
-                isError ? error_color : progress_bar_fill_color);
-        mProgressBar.setProgressTintList(fillColor);
-        mProgressBar.setProgressTintMode(PorterDuff.Mode.SRC);
-        mProgressBar.invalidate();
-    }
-
-    private void applyLottieDynamicColor(boolean isError) {
-        final Context context = getActivity().getApplicationContext();
-        int error_color = context.getColor(R.color.sfps_enrollment_fp_error_color);
-        int fp_captured_color = context.getColor(R.color.sfps_enrollment_fp_captured_color);
-        int color = isError ? error_color : fp_captured_color;
-        mIllustrationLottie.addValueCallback(
-                new KeyPath(".blue100", "**"),
-                LottieProperty.COLOR_FILTER,
-                frameInfo -> new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP)
-        );
-        mIllustrationLottie.invalidate();
-    }
-
-    private int getStageThresholdSteps(int index) {
-        final EnrollmentProgress progressLiveData =
-                mProgressViewModel.getProgressLiveData().getValue();
-
-        if (progressLiveData == null || progressLiveData.getSteps() == -1) {
-            Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet");
-            return 1;
-        }
-        return Math.round(progressLiveData.getSteps()
-                * mEnrollingViewModel.getEnrollStageThreshold(index));
-    }
-
-    private void updateTitleAndDescription() {
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(getActivity(), mView);
-        if (mEnrollingViewModel.isAccessibilityEnabled()) {
-            mEnrollingViewModel.clearTalkback();
-            glifLayoutHelper.getGlifLayout().getDescriptionTextView().setAccessibilityLiveRegion(
-                    View.ACCESSIBILITY_LIVE_REGION_POLITE);
-        }
-        final int stage = getCurrentSfpsStage();
-        if (DEBUG) {
-            Log.d(TAG, "updateTitleAndDescription, stage:" + stage
-                    + ", noAnimation:" + mHaveShownSfpsNoAnimationLottie
-                    + ", center:" + mHaveShownSfpsCenterLottie
-                    + ", tip:" + mHaveShownSfpsTipLottie
-                    + ", leftEdge:" + mHaveShownSfpsLeftEdgeLottie
-                    + ", rightEdge:" + mHaveShownSfpsRightEdgeLottie);
-        }
-        switch (stage) {
-            case SFPS_STAGE_NO_ANIMATION:
-                glifLayoutHelper.setHeaderText(
-                        R.string.security_settings_fingerprint_enroll_repeat_title);
-                if (!mHaveShownSfpsNoAnimationLottie) {
-                    mHaveShownSfpsNoAnimationLottie = true;
-                    mIllustrationLottie.setContentDescription(
-                            getString(
-                                    R.string.security_settings_sfps_animation_a11y_label,
-                                    0
-                            )
-                    );
-                    configureEnrollmentStage(
-                            getString(R.string.security_settings_sfps_enroll_start_message),
-                            R.raw.sfps_lottie_no_animation
-                    );
-                }
-                break;
-
-            case SFPS_STAGE_CENTER:
-                glifLayoutHelper.setHeaderText(
-                        R.string.security_settings_sfps_enroll_finger_center_title);
-                if (!mHaveShownSfpsCenterLottie) {
-                    mHaveShownSfpsCenterLottie = true;
-                    configureEnrollmentStage(
-                            getString(R.string.security_settings_sfps_enroll_start_message),
-                            R.raw.sfps_lottie_pad_center
-                    );
-                }
-                break;
-
-            case SFPS_STAGE_FINGERTIP:
-                glifLayoutHelper.setHeaderText(
-                        R.string.security_settings_sfps_enroll_fingertip_title);
-                if (!mHaveShownSfpsTipLottie) {
-                    mHaveShownSfpsTipLottie = true;
-                    configureEnrollmentStage("", R.raw.sfps_lottie_tip);
-                }
-                break;
-
-            case SFPS_STAGE_LEFT_EDGE:
-                glifLayoutHelper.setHeaderText(
-                        R.string.security_settings_sfps_enroll_left_edge_title);
-                if (!mHaveShownSfpsLeftEdgeLottie) {
-                    mHaveShownSfpsLeftEdgeLottie = true;
-                    configureEnrollmentStage("", R.raw.sfps_lottie_left_edge);
-                }
-                break;
-
-            case SFPS_STAGE_RIGHT_EDGE:
-                glifLayoutHelper.setHeaderText(
-                        R.string.security_settings_sfps_enroll_right_edge_title);
-                if (!mHaveShownSfpsRightEdgeLottie) {
-                    mHaveShownSfpsRightEdgeLottie = true;
-                    configureEnrollmentStage("", R.raw.sfps_lottie_right_edge);
-                }
-                break;
-
-            case STAGE_UNKNOWN:
-            default:
-                // Don't use BiometricEnrollBase#setHeaderText, since that invokes setTitle,
-                // which gets announced for a11y upon entering the page. For SFPS, we want to
-                // announce a different string for a11y upon entering the page.
-                glifLayoutHelper.setHeaderText(
-                        R.string.security_settings_sfps_enroll_find_sensor_title);
-                glifLayoutHelper.setDescriptionText(getString(
-                        R.string.security_settings_sfps_enroll_start_message));
-                final CharSequence description = getString(
-                        R.string.security_settings_sfps_enroll_find_sensor_message);
-                glifLayoutHelper.getGlifLayout().getHeaderTextView().setContentDescription(
-                        description);
-                glifLayoutHelper.getActivity().setTitle(description);
-                break;
-
-        }
-    }
-
-    private void showIconTouchDialog() {
-        mIconTouchCount = 0;
-        mEnrollingViewModel.showIconTouchDialog();
-    }
-
-    private final Runnable mShowDialogRunnable = () -> showIconTouchDialog();
-
-    private final Animator.AnimatorListener mProgressAnimationListener =
-            new Animator.AnimatorListener() {
-
-                @Override
-                public void onAnimationStart(Animator animation) { }
-
-                @Override
-                public void onAnimationRepeat(Animator animation) { }
-
-                @Override
-                public void onAnimationEnd(Animator animation) {
-                    if (mProgressBar.getProgress() >= PROGRESS_BAR_MAX) {
-                        mProgressBar.postDelayed(mDelayedFinishRunnable, ANIMATION_DURATION);
-                    }
-                }
-
-                @Override
-                public void onAnimationCancel(Animator animation) { }
-            };
-
-    // Give the user a chance to see progress completed before jumping to the next stage.
-    private final Runnable mDelayedFinishRunnable = () -> mEnrollingViewModel.onEnrollingDone();
-
-    private void maybeHideSfpsText(@NonNull Configuration newConfig) {
-        final HeaderMixin headerMixin = ((GlifLayout) mView).getMixin(HeaderMixin.class);
-        final DescriptionMixin descriptionMixin = ((GlifLayout) mView).getMixin(
-                DescriptionMixin.class);
-        final boolean isLandscape = newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE;
-
-        if (isLandscape) {
-            headerMixin.setAutoTextSizeEnabled(true);
-            headerMixin.getTextView().setMinLines(0);
-            headerMixin.getTextView().setMaxLines(10);
-            descriptionMixin.getTextView().setMinLines(0);
-            descriptionMixin.getTextView().setMaxLines(10);
-        } else {
-            headerMixin.setAutoTextSizeEnabled(false);
-            headerMixin.getTextView().setLines(4);
-            // hide the description
-            descriptionMixin.getTextView().setLines(0);
-        }
-
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt
new file mode 100644
index 0000000..7faeeac
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingSfpsFragment.kt
@@ -0,0 +1,669 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.animation.Animator
+import android.animation.ObjectAnimator
+import android.annotation.RawRes
+import android.content.Context
+import android.content.res.ColorStateList
+import android.content.res.Configuration
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffColorFilter
+import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.MotionEvent
+import android.view.View
+import android.view.ViewGroup
+import android.view.animation.AccelerateDecelerateInterpolator
+import android.view.animation.AnimationUtils
+import android.view.animation.Interpolator
+import android.widget.ProgressBar
+import android.widget.RelativeLayout
+import androidx.activity.OnBackPressedCallback
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import com.airbnb.lottie.LottieAnimationView
+import com.airbnb.lottie.LottieComposition
+import com.airbnb.lottie.LottieCompositionFactory
+import com.airbnb.lottie.LottieProperty
+import com.airbnb.lottie.model.KeyPath
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.model.EnrollmentProgress
+import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import com.google.android.setupdesign.template.DescriptionMixin
+import com.google.android.setupdesign.template.HeaderMixin
+import kotlin.math.roundToInt
+import kotlinx.coroutines.launch
+
+/**
+ * Fragment is used to handle enrolling process for sfps
+ */
+class FingerprintEnrollEnrollingSfpsFragment : Fragment() {
+
+    private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
+    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
+        get() = _enrollingViewModel!!
+
+    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
+    private val progressViewModel: FingerprintEnrollProgressViewModel
+        get() = _progressViewModel!!
+
+    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
+    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
+        get() = _errorDialogViewModel!!
+
+    private val fastOutSlowInInterpolator: Interpolator
+        get() = AnimationUtils.loadInterpolator(
+            activity,
+            androidx.appcompat.R.interpolator.fast_out_slow_in,
+        )
+
+    private var enrollingView: GlifLayout? = null
+
+    private val progressBar: ProgressBar
+        get() = enrollingView!!.findViewById(R.id.fingerprint_progress_bar)!!
+
+    private var progressAnim: ObjectAnimator? = null
+
+    private val progressAnimationListener: Animator.AnimatorListener =
+        object : Animator.AnimatorListener {
+            override fun onAnimationStart(animation: Animator) {}
+            override fun onAnimationRepeat(animation: Animator) {}
+            override fun onAnimationEnd(animation: Animator) {
+                if (progressBar.progress >= PROGRESS_BAR_MAX) {
+                    progressBar.postDelayed(delayedFinishRunnable, PROGRESS_ANIMATION_DURATION)
+                }
+            }
+
+            override fun onAnimationCancel(animation: Animator) {}
+        }
+
+    private val illustrationLottie: LottieAnimationView
+        get() = enrollingView!!.findViewById(R.id.illustration_lottie)!!
+
+    private var haveShownSfpsNoAnimationLottie = false
+    private var haveShownSfpsCenterLottie = false
+    private var haveShownSfpsTipLottie = false
+    private var haveShownSfpsLeftEdgeLottie = false
+    private var haveShownSfpsRightEdgeLottie = false
+
+    private var helpAnimation: ObjectAnimator? = null
+
+    private var iconTouchCount = 0
+
+    private val showIconTouchDialogRunnable = Runnable { showIconTouchDialog() }
+
+    private var enrollingCancelSignal: Any? = null
+
+    // Give the user a chance to see progress completed before jumping to the next stage.
+    private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
+
+    private val onSkipClickListener = View.OnClickListener { _: View? ->
+        enrollingViewModel.setOnSkipPressed()
+        cancelEnrollment(true)
+    }
+
+    private val progressObserver = Observer { progress: EnrollmentProgress? ->
+        if (progress != null && progress.steps >= 0) {
+            onEnrollmentProgressChange(progress)
+        }
+    }
+
+    private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
+        helpMessage?.let { onEnrollmentHelp(it) }
+    }
+
+    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
+        Log.d(TAG, "errorMessageObserver($errorMessage)")
+        errorMessage?.let { onEnrollmentError(it) }
+    }
+
+    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
+        Log.d(TAG, "canceledSignalObserver($canceledSignal)")
+        canceledSignal?.let { onEnrollmentCanceled(it) }
+    }
+
+    private val onBackPressedCallback: OnBackPressedCallback =
+        object : OnBackPressedCallback(true) {
+            override fun handleOnBackPressed() {
+                isEnabled = false
+                enrollingViewModel.setOnBackPressed()
+                cancelEnrollment(true)
+            }
+        }
+
+    override fun onAttach(context: Context) {
+        ViewModelProvider(requireActivity()).let { provider ->
+            _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
+            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
+            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
+        }
+        super.onAttach(context)
+        requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
+    }
+
+    override fun onDetach() {
+        onBackPressedCallback.isEnabled = false
+        super.onDetach()
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        enrollingView = inflater.inflate(
+            R.layout.sfps_enroll_enrolling,
+            container, false
+        ) as GlifLayout
+        return enrollingView
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+
+        requireActivity().bindFingerprintEnrollEnrollingSfpsView(
+            view = enrollingView!!,
+            onSkipClickListener = onSkipClickListener
+        )
+
+        // setHelpAnimation()
+        helpAnimation = ObjectAnimator.ofFloat(
+            enrollingView!!.findViewById<RelativeLayout>(R.id.progress_lottie)!!,
+            "translationX" /* propertyName */,
+            0f,
+            HELP_ANIMATION_TRANSLATION_X,
+            -1 * HELP_ANIMATION_TRANSLATION_X,
+            HELP_ANIMATION_TRANSLATION_X,
+            0f
+        ).also {
+            it.interpolator = AccelerateDecelerateInterpolator()
+            it.setDuration(HELP_ANIMATION_DURATION)
+            it.setAutoCancel(false)
+        }
+
+        progressBar.setOnTouchListener { _: View?, event: MotionEvent ->
+            if (event.actionMasked == MotionEvent.ACTION_DOWN) {
+                iconTouchCount++
+                if (iconTouchCount == ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN) {
+                    showIconTouchDialog()
+                } else {
+                    progressBar.postDelayed(
+                        showIconTouchDialogRunnable,
+                        ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN
+                    )
+                }
+            } else if (event.actionMasked == MotionEvent.ACTION_CANCEL
+                || event.actionMasked == MotionEvent.ACTION_UP
+            ) {
+                progressBar.removeCallbacks(showIconTouchDialogRunnable)
+            }
+            true
+        }
+
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
+            }
+        }
+    }
+
+    private fun retryEnrollment() {
+        startEnrollment()
+        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
+    }
+
+    override fun onStart() {
+        super.onStart()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isErrorDialogShown = errorDialogViewModel.isDialogShown
+        Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
+        if (!isErrorDialogShown) {
+            startEnrollment()
+        }
+
+        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
+        progressViewModel.helpMessageLiveData.value.let {
+            if (it != null) {
+                onEnrollmentHelp(it)
+            } else {
+                clearError()
+                updateTitleAndDescription()
+            }
+        }
+    }
+
+    override fun onStop() {
+        removeEnrollmentObservers()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isConfigChange = requireActivity().isChangingConfigurations
+        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
+        if (isEnrolling && !isConfigChange) {
+            cancelEnrollment(false)
+        }
+        super.onStop()
+    }
+
+    private fun removeEnrollmentObservers() {
+        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
+        progressViewModel.progressLiveData.removeObserver(progressObserver)
+        progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
+    }
+
+    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
+            return
+        }
+        removeEnrollmentObservers()
+        if (waitForLastCancelErrMsg) {
+            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
+        } else {
+            enrollingCancelSignal = null
+        }
+        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
+        if (!cancelResult) {
+            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
+        }
+    }
+
+    private fun startEnrollment() {
+        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
+        if (enrollingCancelSignal == null) {
+            Log.e(TAG, "startEnrollment(), failed")
+        } else {
+            Log.d(TAG, "startEnrollment(), success")
+        }
+        progressViewModel.progressLiveData.observe(this, progressObserver)
+        progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
+        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
+    }
+
+    private fun configureEnrollmentStage(description: CharSequence, @RawRes lottie: Int) {
+        GlifLayoutHelper(requireActivity(), enrollingView!!).setDescriptionText(description)
+        LottieCompositionFactory.fromRawRes(activity, lottie)
+            .addListener { c: LottieComposition ->
+                illustrationLottie.setComposition(c)
+                illustrationLottie.visibility = View.VISIBLE
+                illustrationLottie.playAnimation()
+            }
+    }
+
+    private val currentSfpsStage: Int
+        get() {
+            val progressLiveData: EnrollmentProgress =
+                progressViewModel.progressLiveData.value
+                    ?: return STAGE_UNKNOWN
+            val progressSteps: Int = progressLiveData.steps - progressLiveData.remaining
+            return if (progressSteps < getStageThresholdSteps(0)) {
+                SFPS_STAGE_NO_ANIMATION
+            } else if (progressSteps < getStageThresholdSteps(1)) {
+                SFPS_STAGE_CENTER
+            } else if (progressSteps < getStageThresholdSteps(2)) {
+                SFPS_STAGE_FINGERTIP
+            } else if (progressSteps < getStageThresholdSteps(3)) {
+                SFPS_STAGE_LEFT_EDGE
+            } else {
+                SFPS_STAGE_RIGHT_EDGE
+            }
+        }
+
+    private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
+        Log.d(TAG, "onEnrollmentHelp($helpMessage)")
+        val helpStr: CharSequence = helpMessage.str
+        if (helpStr.isNotEmpty()) {
+            showError(helpStr)
+        }
+    }
+
+    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
+        cancelEnrollment(true)
+        lifecycleScope.launch {
+            Log.d(TAG, "newDialog $errorMessage")
+            errorDialogViewModel.newDialog(errorMessage.msgId)
+        }
+    }
+
+    private fun onEnrollmentCanceled(canceledSignal: Any) {
+        Log.d(
+            TAG,
+            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
+        )
+        if (enrollingCancelSignal === canceledSignal) {
+            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
+            progressViewModel.clearProgressLiveData()
+            if (enrollingViewModel.onBackPressed) {
+                enrollingViewModel.onCancelledDueToOnBackPressed()
+            } else if (enrollingViewModel.onSkipPressed) {
+                enrollingViewModel.onCancelledDueToOnSkipPressed()
+            }
+        }
+    }
+
+    private fun announceEnrollmentProgress(announcement: CharSequence) {
+        enrollingViewModel.sendAccessibilityEvent(announcement)
+    }
+
+    private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
+        updateProgress(true /* animate */, progress)
+        if (enrollingViewModel.isAccessibilityEnabled) {
+            val percent: Int =
+                ((progress.steps - progress.remaining).toFloat() / progress.steps.toFloat() * 100).toInt()
+            val announcement: CharSequence = getString(
+                R.string.security_settings_sfps_enroll_progress_a11y_message, percent
+            )
+            announceEnrollmentProgress(announcement)
+            illustrationLottie.contentDescription =
+                getString(R.string.security_settings_sfps_animation_a11y_label, percent)
+        }
+        updateTitleAndDescription()
+    }
+
+    private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "Enrollment not started yet")
+            return
+        }
+
+        val progress = getProgress(enrollmentProgress)
+        Log.d(TAG, "updateProgress($animate, $enrollmentProgress), old:${progressBar.progress}"
+                + ", new:$progress")
+
+        // Only clear the error when progress has been made.
+        // TODO (b/234772728) Add tests.
+        if (progressBar.progress < progress) {
+            clearError()
+        }
+        if (animate) {
+            animateProgress(progress)
+        } else {
+            progressBar.progress = progress
+            if (progress >= PROGRESS_BAR_MAX) {
+                delayedFinishRunnable.run()
+            }
+        }
+    }
+
+    private fun getProgress(progress: EnrollmentProgress): Int {
+        if (progress.steps == -1) {
+            return 0
+        }
+        val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
+        return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
+    }
+
+    private fun showError(error: CharSequence) {
+        enrollingView!!.let {
+            it.headerText = error
+            it.headerTextView.contentDescription = error
+            GlifLayoutHelper(requireActivity(), it).setDescriptionText("")
+        }
+
+        if (isResumed && !helpAnimation!!.isRunning) {
+            helpAnimation!!.start()
+        }
+        applySfpsErrorDynamicColors(true)
+        if (isResumed && enrollingViewModel.isAccessibilityEnabled) {
+            enrollingViewModel.vibrateError(javaClass.simpleName + "::showError")
+        }
+    }
+
+    private fun clearError() {
+        applySfpsErrorDynamicColors(false)
+    }
+
+    private fun animateProgress(progress: Int) {
+        progressAnim?.cancel()
+        progressAnim = ObjectAnimator.ofInt(
+            progressBar,
+            "progress",
+            progressBar.progress,
+            progress
+        ).also {
+            it.addListener(progressAnimationListener)
+            it.interpolator = fastOutSlowInInterpolator
+            it.setDuration(PROGRESS_ANIMATION_DURATION)
+            it.start()
+        }
+    }
+
+    /**
+     * Applies dynamic colors corresponding to showing or clearing errors on the progress bar
+     * and finger lottie for SFPS
+     */
+    private fun applySfpsErrorDynamicColors(isError: Boolean) {
+        progressBar.applyProgressBarDynamicColor(requireContext(), isError)
+        illustrationLottie.applyLottieDynamicColor(requireContext(), isError)
+    }
+
+    private fun getStageThresholdSteps(index: Int): Int {
+        val progressLiveData: EnrollmentProgress? =
+            progressViewModel.progressLiveData.value
+        if (progressLiveData == null || progressLiveData.steps == -1) {
+            Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet")
+            return 1
+        }
+        return (progressLiveData.steps
+                * enrollingViewModel.getEnrollStageThreshold(index)).roundToInt()
+    }
+
+    private fun updateTitleAndDescription() {
+        val helper = GlifLayoutHelper(requireActivity(), enrollingView!!)
+        if (enrollingViewModel.isAccessibilityEnabled) {
+            enrollingViewModel.clearTalkback()
+            helper.glifLayout.descriptionTextView.accessibilityLiveRegion =
+                View.ACCESSIBILITY_LIVE_REGION_POLITE
+        }
+        val stage = currentSfpsStage
+        if (DEBUG) {
+            Log.d(
+                TAG, "updateTitleAndDescription, stage:" + stage
+                        + ", noAnimation:" + haveShownSfpsNoAnimationLottie
+                        + ", center:" + haveShownSfpsCenterLottie
+                        + ", tip:" + haveShownSfpsTipLottie
+                        + ", leftEdge:" + haveShownSfpsLeftEdgeLottie
+                        + ", rightEdge:" + haveShownSfpsRightEdgeLottie
+            )
+        }
+        when (stage) {
+            SFPS_STAGE_NO_ANIMATION -> {
+                helper.setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title)
+                if (!haveShownSfpsNoAnimationLottie) {
+                    haveShownSfpsNoAnimationLottie = true
+                    illustrationLottie.contentDescription =
+                        getString(R.string.security_settings_sfps_animation_a11y_label, 0)
+                    configureEnrollmentStage(
+                        getString(R.string.security_settings_sfps_enroll_start_message),
+                        R.raw.sfps_lottie_no_animation
+                    )
+                }
+            }
+
+            SFPS_STAGE_CENTER -> {
+                helper.setHeaderText(R.string.security_settings_sfps_enroll_finger_center_title)
+                if (!haveShownSfpsCenterLottie) {
+                    haveShownSfpsCenterLottie = true
+                    configureEnrollmentStage(
+                        getString(R.string.security_settings_sfps_enroll_start_message),
+                        R.raw.sfps_lottie_pad_center
+                    )
+                }
+            }
+
+            SFPS_STAGE_FINGERTIP -> {
+                helper.setHeaderText(R.string.security_settings_sfps_enroll_fingertip_title)
+                if (!haveShownSfpsTipLottie) {
+                    haveShownSfpsTipLottie = true
+                    configureEnrollmentStage("", R.raw.sfps_lottie_tip)
+                }
+            }
+
+            SFPS_STAGE_LEFT_EDGE -> {
+                helper.setHeaderText(R.string.security_settings_sfps_enroll_left_edge_title)
+                if (!haveShownSfpsLeftEdgeLottie) {
+                    haveShownSfpsLeftEdgeLottie = true
+                    configureEnrollmentStage("", R.raw.sfps_lottie_left_edge)
+                }
+            }
+
+            SFPS_STAGE_RIGHT_EDGE -> {
+                helper.setHeaderText(R.string.security_settings_sfps_enroll_right_edge_title)
+                if (!haveShownSfpsRightEdgeLottie) {
+                    haveShownSfpsRightEdgeLottie = true
+                    configureEnrollmentStage("", R.raw.sfps_lottie_right_edge)
+                }
+            }
+
+            STAGE_UNKNOWN -> {
+                // Don't use BiometricEnrollBase#setHeaderText, since that invokes setTitle,
+                // which gets announced for a11y upon entering the page. For SFPS, we want to
+                // announce a different string for a11y upon entering the page.
+                helper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
+                helper.setDescriptionText(
+                    getString(R.string.security_settings_sfps_enroll_start_message)
+                )
+                val description: CharSequence = getString(
+                    R.string.security_settings_sfps_enroll_find_sensor_message
+                )
+                helper.glifLayout.headerTextView.contentDescription = description
+                helper.activity.title = description
+            }
+
+            else -> {
+                helper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
+                helper.setDescriptionText(
+                    getString(R.string.security_settings_sfps_enroll_start_message)
+                )
+                val description: CharSequence = getString(
+                    R.string.security_settings_sfps_enroll_find_sensor_message
+                )
+                helper.glifLayout.headerTextView.contentDescription = description
+                helper.activity.title = description
+            }
+        }
+    }
+
+    private fun showIconTouchDialog() {
+        iconTouchCount = 0
+        enrollingViewModel.showIconTouchDialog()
+    }
+
+    companion object {
+        private val TAG = FingerprintEnrollEnrollingSfpsFragment::class.java.simpleName
+        private const val DEBUG = false
+        private const val PROGRESS_BAR_MAX = 10000
+        private const val HELP_ANIMATION_DURATION = 550L
+        private const val HELP_ANIMATION_TRANSLATION_X = 40f
+        private const val PROGRESS_ANIMATION_DURATION = 250L
+        private const val ICON_TOUCH_DURATION_UNTIL_DIALOG_SHOWN: Long = 500
+        private const val ICON_TOUCH_COUNT_SHOW_UNTIL_DIALOG_SHOWN = 3
+        private const val STAGE_UNKNOWN = -1
+        private const val SFPS_STAGE_NO_ANIMATION = 0
+        private const val SFPS_STAGE_CENTER = 1
+        private const val SFPS_STAGE_FINGERTIP = 2
+        private const val SFPS_STAGE_LEFT_EDGE = 3
+        private const val SFPS_STAGE_RIGHT_EDGE = 4
+    }
+}
+
+fun FragmentActivity.bindFingerprintEnrollEnrollingSfpsView(
+    view: GlifLayout,
+    onSkipClickListener: View.OnClickListener
+) {
+    GlifLayoutHelper(this, view).setDescriptionText(
+        getString(R.string.security_settings_fingerprint_enroll_start_message)
+    )
+
+    view.getMixin(FooterBarMixin::class.java).secondaryButton = FooterButton.Builder(this)
+        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+        .setListener(onSkipClickListener)
+        .setButtonType(FooterButton.ButtonType.SKIP)
+        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+        .build()
+
+    view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!.progressBackgroundTintMode =
+        PorterDuff.Mode.SRC
+
+    view.findViewById<ProgressBar>(R.id.fingerprint_progress_bar)!!
+        .applyProgressBarDynamicColor(this, false)
+
+    view.findViewById<LottieAnimationView>(R.id.illustration_lottie)!!
+        .applyLottieDynamicColor(this, false)
+
+    view.maybeHideSfpsText(resources.configuration.orientation)
+}
+
+private fun ProgressBar.applyProgressBarDynamicColor(context: Context, isError: Boolean) {
+    progressTintList = ColorStateList.valueOf(
+        context.getColor(
+            if (isError)
+                R.color.sfps_enrollment_progress_bar_error_color
+            else
+                R.color.sfps_enrollment_progress_bar_fill_color
+        )
+    )
+    progressTintMode = PorterDuff.Mode.SRC
+    invalidate()
+}
+
+fun LottieAnimationView.applyLottieDynamicColor(context: Context, isError: Boolean) {
+    addValueCallback(
+        KeyPath(".blue100", "**"),
+        LottieProperty.COLOR_FILTER
+    ) {
+        PorterDuffColorFilter(
+            context.getColor(
+                if (isError)
+                    R.color.sfps_enrollment_fp_error_color
+                else
+                    R.color.sfps_enrollment_fp_captured_color
+            ),
+            PorterDuff.Mode.SRC_ATOP
+        )
+    }
+    invalidate()
+}
+
+fun GlifLayout.maybeHideSfpsText(@Configuration.Orientation orientation: Int) {
+    val headerMixin: HeaderMixin = getMixin(HeaderMixin::class.java)
+    val descriptionMixin: DescriptionMixin = getMixin(DescriptionMixin::class.java)
+
+    val isLandscape = (orientation == Configuration.ORIENTATION_LANDSCAPE)
+    headerMixin.setAutoTextSizeEnabled(isLandscape)
+    if (isLandscape) {
+        headerMixin.textView.minLines = 0
+        headerMixin.textView.maxLines = 10
+        descriptionMixin.textView.minLines = 0
+        descriptionMixin.textView.maxLines = 10
+    } else {
+        headerMixin.textView.setLines(4)
+        // hide the description
+        descriptionMixin.textView.setLines(0)
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.java
deleted file mode 100644
index 40d5713..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.java
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
-
-import android.annotation.RawRes;
-import android.app.Activity;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.text.TextUtils;
-import android.util.DisplayMetrics;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Surface;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.RelativeLayout;
-import android.widget.TextView;
-
-import androidx.activity.OnBackPressedCallback;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.BiometricUtils;
-import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-import com.android.settings.biometrics2.ui.widget.UdfpsEnrollView;
-import com.android.settingslib.display.DisplayDensityUtils;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.airbnb.lottie.LottieCompositionFactory;
-
-/**
- * Fragment is used to handle enrolling process for udfps
- */
-public class FingerprintEnrollEnrollingUdfpsFragment extends Fragment {
-
-    private static final String TAG = FingerprintEnrollEnrollingUdfpsFragment.class.getSimpleName();
-
-    private static final int PROGRESS_BAR_MAX = 10000;
-
-    private 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;
-
-    private FingerprintEnrollEnrollingViewModel mEnrollingViewModel;
-    private DeviceRotationViewModel mRotationViewModel;
-    private FingerprintEnrollProgressViewModel mProgressViewModel;
-
-    private LottieAnimationView mIllustrationLottie;
-    private boolean mHaveShownUdfpsTipLottie;
-    private boolean mHaveShownUdfpsLeftEdgeLottie;
-    private boolean mHaveShownUdfpsRightEdgeLottie;
-    private boolean mHaveShownUdfpsCenterLottie;
-    private boolean mHaveShownUdfpsGuideLottie;
-
-    private TextView mTitleText;
-    private TextView mSubTitleText;
-    private UdfpsEnrollView mUdfpsEnrollView;
-    private Button mSkipBtn;
-    private ImageView mIcon;
-
-    private boolean mShouldShowLottie;
-    private boolean mIsAccessibilityEnabled;
-
-    private int mRotation = -1;
-
-    private final View.OnClickListener mOnSkipClickListener =
-            (v) -> mEnrollingViewModel.onCancelledDueToOnSkipPressed();
-
-    private final Observer<EnrollmentProgress> mProgressObserver = progress -> {
-        if (progress != null) {
-            onEnrollmentProgressChange(progress);
-        }
-    };
-    private final Observer<EnrollmentStatusMessage> mHelpMessageObserver = helpMessage -> {
-        if (helpMessage != null) {
-            onEnrollmentHelp(helpMessage);
-        }
-    };
-    private final Observer<EnrollmentStatusMessage> mErrorMessageObserver = errorMessage -> {
-        if (errorMessage != null) {
-            onEnrollmentError(errorMessage);
-        }
-    };
-    private final Observer<Boolean> mAcquireObserver = isAcquiredGood -> {
-        if (isAcquiredGood != null) {
-            onAcquired(isAcquiredGood);
-        }
-    };
-    private final Observer<Integer> mPointerDownObserver = sensorId -> {
-        if (sensorId != null) {
-            onPointerDown(sensorId);
-        }
-    };
-    private final Observer<Integer> mPointerUpObserver = sensorId -> {
-        if (sensorId != null) {
-            onPointerUp(sensorId);
-        }
-    };
-
-    private final Observer<Integer> mRotationObserver = rotation -> {
-        if (rotation != null) {
-            onRotationChanged(rotation);
-        }
-    };
-
-    private final OnBackPressedCallback mOnBackPressedCallback = new OnBackPressedCallback(true) {
-        @Override
-        public void handleOnBackPressed() {
-            setEnabled(false);
-            mEnrollingViewModel.setOnBackPressed();
-            cancelEnrollment();
-        }
-    };
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        final FragmentActivity activity = getActivity();
-        final ViewModelProvider provider = new ViewModelProvider(activity);
-        mEnrollingViewModel = provider.get(FingerprintEnrollEnrollingViewModel.class);
-        mRotationViewModel = provider.get(DeviceRotationViewModel.class);
-        mProgressViewModel = provider.get(FingerprintEnrollProgressViewModel.class);
-        super.onAttach(context);
-        activity.getOnBackPressedDispatcher().addCallback(mOnBackPressedCallback);
-    }
-
-    @Override
-    public void onDetach() {
-        mOnBackPressedCallback.setEnabled(false);
-        super.onDetach();
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        mIsAccessibilityEnabled = mEnrollingViewModel.isAccessibilityEnabled();
-    }
-
-    @Override
-    public View onCreateView(LayoutInflater inflater, ViewGroup container,
-            Bundle savedInstanceState) {
-        final RelativeLayout containView = (RelativeLayout) inflater.inflate(
-                R.layout.udfps_enroll_enrolling_v2, container, false);
-
-        final Activity activity = getActivity();
-        mIcon = containView.findViewById(R.id.sud_layout_icon);
-        mTitleText = containView.findViewById(R.id.suc_layout_title);
-        mSubTitleText = containView.findViewById(R.id.sud_layout_subtitle);
-        mSkipBtn = containView.findViewById(R.id.skip_btn);
-        mSkipBtn.setOnClickListener(mOnSkipClickListener);
-        mUdfpsEnrollView = containView.findViewById(R.id.udfps_animation_view);
-        mUdfpsEnrollView.setSensorProperties(
-                mEnrollingViewModel.getFirstFingerprintSensorPropertiesInternal());
-        mShouldShowLottie = shouldShowLottie();
-        final boolean isLandscape = BiometricUtils.isReverseLandscape(activity)
-                || BiometricUtils.isLandscape(activity);
-        updateOrientation(containView, (isLandscape
-                ? Configuration.ORIENTATION_LANDSCAPE : Configuration.ORIENTATION_PORTRAIT));
-
-        mRotation = mRotationViewModel.getLiveData().getValue();
-        configLayout(mRotation);
-        return containView;
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-        startEnrollment();
-        updateProgress(false /* animate */, mProgressViewModel.getProgressLiveData().getValue());
-        final EnrollmentStatusMessage msg = mProgressViewModel.getHelpMessageLiveData().getValue();
-        if (msg != null) {
-            onEnrollmentHelp(msg);
-        } else {
-            updateTitleAndDescription();
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        mRotationViewModel.getLiveData().observe(this, mRotationObserver);
-    }
-
-    @Override
-    public void onPause() {
-        mRotationViewModel.getLiveData().removeObserver(mRotationObserver);
-        super.onPause();
-    }
-
-    @Override
-    public void onStop() {
-        removeEnrollmentObservers();
-        if (!getActivity().isChangingConfigurations() && mProgressViewModel.isEnrolling()) {
-            mProgressViewModel.cancelEnrollment();
-        }
-        super.onStop();
-    }
-
-    private void removeEnrollmentObservers() {
-        preRemoveEnrollmentObservers();
-        mProgressViewModel.getErrorMessageLiveData().removeObserver(mErrorMessageObserver);
-    }
-
-    private void preRemoveEnrollmentObservers() {
-        mProgressViewModel.getProgressLiveData().removeObserver(mProgressObserver);
-        mProgressViewModel.getHelpMessageLiveData().removeObserver(mHelpMessageObserver);
-        mProgressViewModel.getAcquireLiveData().removeObserver(mAcquireObserver);
-        mProgressViewModel.getPointerDownLiveData().removeObserver(mPointerDownObserver);
-        mProgressViewModel.getPointerUpLiveData().removeObserver(mPointerUpObserver);
-    }
-
-    private void cancelEnrollment() {
-        preRemoveEnrollmentObservers();
-        mProgressViewModel.cancelEnrollment();
-    }
-
-    private void startEnrollment() {
-        final boolean startResult = mProgressViewModel.startEnrollment(ENROLL_ENROLL);
-        if (!startResult) {
-            Log.e(TAG, "startEnrollment(), failed");
-        }
-        mProgressViewModel.getProgressLiveData().observe(this, mProgressObserver);
-        mProgressViewModel.getHelpMessageLiveData().observe(this, mHelpMessageObserver);
-        mProgressViewModel.getErrorMessageLiveData().observe(this, mErrorMessageObserver);
-        mProgressViewModel.getAcquireLiveData().observe(this, mAcquireObserver);
-        mProgressViewModel.getPointerDownLiveData().observe(this, mPointerDownObserver);
-        mProgressViewModel.getPointerUpLiveData().observe(this, mPointerUpObserver);
-    }
-
-    private void updateProgress(boolean animate, @NonNull EnrollmentProgress enrollmentProgress) {
-        if (!mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "Enrollment not started yet");
-            return;
-        }
-
-        final int progress = getProgress(enrollmentProgress);
-
-        if (mProgressViewModel.getProgressLiveData().getValue().getSteps() != -1) {
-            mUdfpsEnrollView.onEnrollmentProgress(enrollmentProgress.getRemaining(),
-                    enrollmentProgress.getSteps());
-        }
-
-        if (animate) {
-            animateProgress(progress);
-        } else if (progress >= PROGRESS_BAR_MAX) {
-            mDelayedFinishRunnable.run();
-        }
-    }
-
-    private int getProgress(@NonNull EnrollmentProgress progress) {
-        if (progress.getSteps() == -1) {
-            return 0;
-        }
-        int displayProgress = Math.max(0, progress.getSteps() + 1 - progress.getRemaining());
-        return PROGRESS_BAR_MAX * displayProgress / (progress.getSteps() + 1);
-    }
-
-    private void animateProgress(int progress) {
-        // UDFPS animations are owned by SystemUI
-        if (progress >= PROGRESS_BAR_MAX) {
-            // Wait for any animations in SysUI to finish, then proceed to next page
-            getActivity().getMainThreadHandler().postDelayed(mDelayedFinishRunnable, 400L);
-        }
-    }
-
-    private void updateTitleAndDescription() {
-        switch (getCurrentStage()) {
-            case STAGE_CENTER:
-                mTitleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title);
-                if (mIsAccessibilityEnabled || mIllustrationLottie == null) {
-                    mSubTitleText.setText(R.string.security_settings_udfps_enroll_start_message);
-                } else if (!mHaveShownUdfpsCenterLottie) {
-                    mHaveShownUdfpsCenterLottie = true;
-                    // Note: Update string reference when differentiate in between udfps & sfps
-                    mIllustrationLottie.setContentDescription(
-                            getString(R.string.security_settings_sfps_enroll_finger_center_title)
-                    );
-                    configureEnrollmentStage(R.raw.udfps_center_hint_lottie);
-                }
-                break;
-
-            case STAGE_GUIDED:
-                mTitleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title);
-                if (mIsAccessibilityEnabled || mIllustrationLottie == null) {
-                    mSubTitleText.setText(
-                            R.string.security_settings_udfps_enroll_repeat_a11y_message);
-                } else if (!mHaveShownUdfpsGuideLottie) {
-                    mHaveShownUdfpsGuideLottie = true;
-                    mIllustrationLottie.setContentDescription(
-                            getString(R.string.security_settings_fingerprint_enroll_repeat_message)
-                    );
-                    // TODO(b/228100413) Could customize guided lottie animation
-                    configureEnrollmentStage(R.raw.udfps_center_hint_lottie);
-                }
-                break;
-            case STAGE_FINGERTIP:
-                mTitleText.setText(R.string.security_settings_udfps_enroll_fingertip_title);
-                if (!mHaveShownUdfpsTipLottie && mIllustrationLottie != null) {
-                    mHaveShownUdfpsTipLottie = true;
-                    mIllustrationLottie.setContentDescription(
-                            getString(R.string.security_settings_udfps_tip_fingerprint_help)
-                    );
-                    configureEnrollmentStage(R.raw.udfps_tip_hint_lottie);
-                }
-                break;
-            case STAGE_LEFT_EDGE:
-                mTitleText.setText(R.string.security_settings_udfps_enroll_left_edge_title);
-                if (!mHaveShownUdfpsLeftEdgeLottie && mIllustrationLottie != null) {
-                    mHaveShownUdfpsLeftEdgeLottie = true;
-                    mIllustrationLottie.setContentDescription(
-                            getString(R.string.security_settings_udfps_side_fingerprint_help)
-                    );
-                    configureEnrollmentStage(R.raw.udfps_left_edge_hint_lottie);
-                } else if (mIllustrationLottie == null) {
-                    if (isStageHalfCompleted()) {
-                        mSubTitleText.setText(
-                                R.string.security_settings_fingerprint_enroll_repeat_message);
-                    } else {
-                        mSubTitleText.setText(R.string.security_settings_udfps_enroll_edge_message);
-                    }
-                }
-                break;
-            case STAGE_RIGHT_EDGE:
-                mTitleText.setText(R.string.security_settings_udfps_enroll_right_edge_title);
-                if (!mHaveShownUdfpsRightEdgeLottie && mIllustrationLottie != null) {
-                    mHaveShownUdfpsRightEdgeLottie = true;
-                    mIllustrationLottie.setContentDescription(
-                            getString(R.string.security_settings_udfps_side_fingerprint_help)
-                    );
-                    configureEnrollmentStage(R.raw.udfps_right_edge_hint_lottie);
-
-                } else if (mIllustrationLottie == null) {
-                    if (isStageHalfCompleted()) {
-                        mSubTitleText.setText(
-                                R.string.security_settings_fingerprint_enroll_repeat_message);
-                    } else {
-                        mSubTitleText.setText(R.string.security_settings_udfps_enroll_edge_message);
-                    }
-                }
-                break;
-
-            case STAGE_UNKNOWN:
-            default:
-                mTitleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title);
-                mSubTitleText.setText(R.string.security_settings_udfps_enroll_start_message);
-                final CharSequence description = getString(
-                        R.string.security_settings_udfps_enroll_a11y);
-                getActivity().setTitle(description);
-                break;
-        }
-    }
-
-    private boolean shouldShowLottie() {
-        DisplayDensityUtils displayDensity = new DisplayDensityUtils(getContext());
-        int currentDensityIndex = displayDensity.getCurrentIndexForDefaultDisplay();
-        final int currentDensity = displayDensity.getDefaultDisplayDensityValues()
-                [currentDensityIndex];
-        final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay();
-        return defaultDensity == currentDensity;
-    }
-
-    private void updateOrientation(@NonNull RelativeLayout content, int orientation) {
-        switch (orientation) {
-            case Configuration.ORIENTATION_LANDSCAPE: {
-                mIllustrationLottie = null;
-                break;
-            }
-            case Configuration.ORIENTATION_PORTRAIT: {
-                if (mShouldShowLottie) {
-                    mIllustrationLottie = content.findViewById(R.id.illustration_lottie);
-                }
-                break;
-            }
-            default:
-                Log.e(TAG, "Error unhandled configuration change");
-                break;
-        }
-    }
-
-    private int getCurrentStage() {
-        EnrollmentProgress progressLiveData = mProgressViewModel.getProgressLiveData().getValue();
-
-        if (progressLiveData == null || progressLiveData.getSteps() == -1) {
-            return STAGE_UNKNOWN;
-        }
-
-        final int progressSteps = progressLiveData.getSteps() - progressLiveData.getRemaining();
-        if (progressSteps < getStageThresholdSteps(0)) {
-            return STAGE_CENTER;
-        } else if (progressSteps < getStageThresholdSteps(1)) {
-            return STAGE_GUIDED;
-        } else if (progressSteps < getStageThresholdSteps(2)) {
-            return STAGE_FINGERTIP;
-        } else if (progressSteps < getStageThresholdSteps(3)) {
-            return STAGE_LEFT_EDGE;
-        } else {
-            return STAGE_RIGHT_EDGE;
-        }
-    }
-
-    private boolean isStageHalfCompleted() {
-        EnrollmentProgress progressLiveData = mProgressViewModel.getProgressLiveData().getValue();
-        if (progressLiveData == null || progressLiveData.getSteps() == -1) {
-            return false;
-        }
-
-        final int progressSteps = progressLiveData.getSteps() - progressLiveData.getRemaining();
-        int prevThresholdSteps = 0;
-        for (int i = 0; i < mEnrollingViewModel.getEnrollStageCount(); i++) {
-            final int thresholdSteps = getStageThresholdSteps(i);
-            if (progressSteps >= prevThresholdSteps && progressSteps < thresholdSteps) {
-                final int adjustedProgress = progressSteps - prevThresholdSteps;
-                final int adjustedThreshold = thresholdSteps - prevThresholdSteps;
-                return adjustedProgress >= adjustedThreshold / 2;
-            }
-            prevThresholdSteps = thresholdSteps;
-        }
-
-        // After last enrollment step.
-        return true;
-    }
-
-    private int getStageThresholdSteps(int index) {
-
-        EnrollmentProgress progressLiveData = mProgressViewModel.getProgressLiveData().getValue();
-
-        if (progressLiveData == null || progressLiveData.getSteps() == -1) {
-            Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet");
-            return 1;
-        }
-        return Math.round(progressLiveData.getSteps()
-                * mEnrollingViewModel.getEnrollStageThreshold(index));
-    }
-
-    private void configureEnrollmentStage(@RawRes int lottie) {
-        mSubTitleText.setText("");
-        LottieCompositionFactory.fromRawRes(getActivity(), lottie)
-                .addListener((c) -> {
-                    mIllustrationLottie.setComposition(c);
-                    mIllustrationLottie.setVisibility(View.VISIBLE);
-                    mIllustrationLottie.playAnimation();
-                });
-    }
-
-    private void onEnrollmentProgressChange(@NonNull EnrollmentProgress progress) {
-        updateProgress(true /* animate */, progress);
-
-        updateTitleAndDescription();
-
-        if (mIsAccessibilityEnabled) {
-            final int steps = progress.getSteps();
-            final int remaining = progress.getRemaining();
-            final int percent = (int) (((float) (steps - remaining) / (float) steps) * 100);
-            CharSequence announcement = getActivity().getString(
-                    R.string.security_settings_udfps_enroll_progress_a11y_message, percent);
-            mEnrollingViewModel.sendAccessibilityEvent(announcement);
-        }
-
-    }
-
-    private void onEnrollmentHelp(@NonNull EnrollmentStatusMessage helpMessage) {
-        final CharSequence helpStr = helpMessage.getStr();
-        if (!TextUtils.isEmpty(helpStr)) {
-            showError(helpStr);
-            mUdfpsEnrollView.onEnrollmentHelp();
-        }
-    }
-    private void onEnrollmentError(@NonNull EnrollmentStatusMessage errorMessage) {
-        removeEnrollmentObservers();
-
-        if (mEnrollingViewModel.getOnBackPressed()
-                && errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            mEnrollingViewModel.onCancelledDueToOnBackPressed();
-        } else if (mEnrollingViewModel.getOnSkipPressed()
-                && errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            mEnrollingViewModel.onCancelledDueToOnSkipPressed();
-        } else {
-            final int errMsgId = errorMessage.getMsgId();
-            mEnrollingViewModel.showErrorDialog(
-                    new FingerprintEnrollEnrollingViewModel.ErrorDialogData(
-                            getString(FingerprintErrorDialog.getErrorMessage(errMsgId)),
-                            getString(FingerprintErrorDialog.getErrorTitle(errMsgId)),
-                            errMsgId
-                    ));
-            mProgressViewModel.cancelEnrollment();
-        }
-    }
-
-    private void onAcquired(boolean isAcquiredGood) {
-        if (mUdfpsEnrollView != null) {
-            mUdfpsEnrollView.onAcquired(isAcquiredGood);
-        }
-    }
-
-    private void onPointerDown(int sensorId) {
-        if (mUdfpsEnrollView != null) {
-            mUdfpsEnrollView.onPointerDown(sensorId);
-        }
-    }
-
-    private void onPointerUp(int sensorId) {
-        if (mUdfpsEnrollView != null) {
-            mUdfpsEnrollView.onPointerUp(sensorId);
-        }
-    }
-
-    private void showError(CharSequence error) {
-        mTitleText.setText(error);
-        mTitleText.setContentDescription(error);
-        mSubTitleText.setContentDescription("");
-    }
-
-    private void onRotationChanged(int newRotation) {
-        if( (newRotation +2) % 4 == mRotation) {
-            mRotation = newRotation;
-            configLayout(newRotation);
-        }
-    }
-
-    private void configLayout(int newRotation) {
-        final Activity activity = getActivity();
-        if (newRotation == Surface.ROTATION_270) {
-            RelativeLayout.LayoutParams iconLP = new RelativeLayout.LayoutParams(-2, -2);
-            iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            iconLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view);
-            iconLP.topMargin = (int) convertDpToPixel(76.64f, activity);
-            iconLP.leftMargin = (int) convertDpToPixel(151.54f, activity);
-            mIcon.setLayoutParams(iconLP);
-
-            RelativeLayout.LayoutParams titleLP = new RelativeLayout.LayoutParams(-1, -2);
-            titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            titleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view);
-            titleLP.topMargin = (int) convertDpToPixel(138f, activity);
-            titleLP.leftMargin = (int) convertDpToPixel(144f, activity);
-            mTitleText.setLayoutParams(titleLP);
-
-            RelativeLayout.LayoutParams subtitleLP = new RelativeLayout.LayoutParams(-1, -2);
-            subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            subtitleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view);
-            subtitleLP.topMargin = (int) convertDpToPixel(198f, activity);
-            subtitleLP.leftMargin = (int) convertDpToPixel(144f, activity);
-            mSubTitleText.setLayoutParams(subtitleLP);
-        } else if (newRotation == Surface.ROTATION_90) {
-            DisplayMetrics metrics = activity.getResources().getDisplayMetrics();
-            RelativeLayout.LayoutParams iconLP = new RelativeLayout.LayoutParams(-2, -2);
-            iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            iconLP.addRule(RelativeLayout.ALIGN_PARENT_START);
-            iconLP.topMargin = (int) convertDpToPixel(76.64f, activity);
-            iconLP.leftMargin = (int) convertDpToPixel(71.99f, activity);
-            mIcon.setLayoutParams(iconLP);
-
-            RelativeLayout.LayoutParams titleLP = new RelativeLayout.LayoutParams(
-                    metrics.widthPixels / 2, -2);
-            titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            titleLP.addRule(RelativeLayout.ALIGN_PARENT_START, R.id.udfps_animation_view);
-            titleLP.topMargin = (int) convertDpToPixel(138f, activity);
-            titleLP.leftMargin = (int) convertDpToPixel(66f, activity);
-            mTitleText.setLayoutParams(titleLP);
-
-            RelativeLayout.LayoutParams subtitleLP = new RelativeLayout.LayoutParams(
-                    metrics.widthPixels / 2, -2);
-            subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP);
-            subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_START);
-            subtitleLP.topMargin = (int) convertDpToPixel(198f, activity);
-            subtitleLP.leftMargin = (int) convertDpToPixel(66f, activity);
-            mSubTitleText.setLayoutParams(subtitleLP);
-        }
-
-        if (newRotation == Surface.ROTATION_90 || newRotation == Surface.ROTATION_270) {
-            RelativeLayout.LayoutParams skipBtnLP =
-                    (RelativeLayout.LayoutParams) mSkipBtn.getLayoutParams();
-            skipBtnLP.topMargin = (int) convertDpToPixel(26f, activity);
-            skipBtnLP.leftMargin = (int) convertDpToPixel(54f, activity);
-            mSkipBtn.requestLayout();
-        }
-    }
-
-    private float convertDpToPixel(float dp, Context context) {
-        return dp * getDensity(context);
-    }
-
-    private float getDensity(Context context) {
-        DisplayMetrics metrics = context.getResources().getDisplayMetrics();
-        return metrics.density;
-    }
-
-    // Give the user a chance to see progress completed before jumping to the next stage.
-    private final Runnable mDelayedFinishRunnable = () -> mEnrollingViewModel.onEnrollingDone();
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt
new file mode 100644
index 0000000..7e754ac
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingUdfpsFragment.kt
@@ -0,0 +1,707 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.annotation.RawRes
+import android.content.Context
+import android.hardware.biometrics.BiometricFingerprintConstants
+import android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL
+import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.Surface
+import android.view.Surface.ROTATION_270
+import android.view.Surface.ROTATION_90
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Button
+import android.widget.ImageView
+import android.widget.RelativeLayout
+import android.widget.TextView
+import androidx.activity.OnBackPressedCallback
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import com.airbnb.lottie.LottieAnimationView
+import com.airbnb.lottie.LottieComposition
+import com.airbnb.lottie.LottieCompositionFactory
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.model.EnrollmentProgress
+import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
+import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
+import com.android.settings.biometrics2.ui.widget.UdfpsEnrollView
+import com.android.settingslib.display.DisplayDensityUtils
+import kotlinx.coroutines.launch
+import kotlin.math.roundToInt
+
+/**
+ * Fragment is used to handle enrolling process for udfps
+ */
+class FingerprintEnrollEnrollingUdfpsFragment : Fragment() {
+
+    private var _enrollingViewModel: FingerprintEnrollEnrollingViewModel? = null
+    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel
+        get() = _enrollingViewModel!!
+
+    private var _rotationViewModel: DeviceRotationViewModel? = null
+    private val rotationViewModel: DeviceRotationViewModel
+        get() = _rotationViewModel!!
+
+    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
+    private val progressViewModel: FingerprintEnrollProgressViewModel
+        get() = _progressViewModel!!
+
+    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
+    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
+        get() = _errorDialogViewModel!!
+
+    private var illustrationLottie: LottieAnimationView? = null
+
+    private var haveShownTipLottie = false
+    private var haveShownLeftEdgeLottie = false
+    private var haveShownRightEdgeLottie = false
+    private var haveShownCenterLottie = false
+    private var haveShownGuideLottie = false
+
+    private var enrollingView: RelativeLayout? = null
+
+    private val titleText: TextView
+        get() = enrollingView!!.findViewById(R.id.suc_layout_title)!!
+
+    private val subTitleText: TextView
+        get() = enrollingView!!.findViewById(R.id.sud_layout_subtitle)!!
+
+    private val udfpsEnrollView: UdfpsEnrollView
+        get() = enrollingView!!.findViewById(R.id.udfps_animation_view)!!
+
+    private val skipBtn: Button
+        get() = enrollingView!!.findViewById(R.id.skip_btn)!!
+
+    private val icon: ImageView
+        get() = enrollingView!!.findViewById(R.id.sud_layout_icon)!!
+
+    private val shouldShowLottie: Boolean
+        get() {
+            val displayDensity = DisplayDensityUtils(requireContext())
+            val currentDensityIndex: Int = displayDensity.currentIndexForDefaultDisplay
+            val currentDensity: Int =
+                displayDensity.defaultDisplayDensityValues[currentDensityIndex]
+            val defaultDensity: Int = displayDensity.defaultDensityForDefaultDisplay
+            return defaultDensity == currentDensity
+        }
+
+    private val isAccessibilityEnabled
+        get() = enrollingViewModel.isAccessibilityEnabled
+
+    private var rotation = -1
+
+    private var enrollingCancelSignal: Any? = null
+
+    private val onSkipClickListener = View.OnClickListener { _: View? ->
+        enrollingViewModel.setOnSkipPressed()
+        cancelEnrollment(true) // TODO Add test after b/273640000 fixed
+    }
+
+    private val progressObserver = Observer { progress: EnrollmentProgress? ->
+        if (progress != null && progress.steps >= 0) {
+            onEnrollmentProgressChange(progress)
+        }
+    }
+
+    private val helpMessageObserver = Observer { helpMessage: EnrollmentStatusMessage? ->
+        Log.d(TAG, "helpMessageObserver($helpMessage)")
+        helpMessage?.let { onEnrollmentHelp(it) }
+    }
+
+    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
+        Log.d(TAG, "errorMessageObserver($errorMessage)")
+        errorMessage?.let { onEnrollmentError(it) }
+    }
+
+    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
+        Log.d(TAG, "canceledSignalObserver($canceledSignal)")
+        canceledSignal?.let { onEnrollmentCanceled(it) }
+    }
+
+    private val acquireObserver =
+        Observer { isAcquiredGood: Boolean? -> isAcquiredGood?.let { onAcquired(it) } }
+
+    private val pointerDownObserver =
+        Observer { sensorId: Int? -> sensorId?.let { onPointerDown(it) } }
+
+    private val pointerUpObserver =
+        Observer { sensorId: Int? -> sensorId?.let { onPointerUp(it) } }
+
+    private val rotationObserver =
+        Observer { rotation: Int? -> rotation?.let { onRotationChanged(it) } }
+
+    private val onBackPressedCallback: OnBackPressedCallback =
+        object : OnBackPressedCallback(true) {
+            override fun handleOnBackPressed() {
+                isEnabled = false
+                enrollingViewModel.setOnBackPressed()
+                cancelEnrollment(true)
+            }
+        }
+
+    // Give the user a chance to see progress completed before jumping to the next stage.
+    private val delayedFinishRunnable = Runnable { enrollingViewModel.onEnrollingDone() }
+
+    override fun onAttach(context: Context) {
+        ViewModelProvider(requireActivity()).let { provider ->
+            _enrollingViewModel = provider[FingerprintEnrollEnrollingViewModel::class.java]
+            _rotationViewModel = provider[DeviceRotationViewModel::class.java]
+            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
+            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
+        }
+        super.onAttach(context)
+        requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback)
+    }
+
+    override fun onDetach() {
+        onBackPressedCallback.isEnabled = false
+        super.onDetach()
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View = (inflater.inflate(
+        R.layout.udfps_enroll_enrolling_v2, container, false
+    ) as RelativeLayout).also {
+        enrollingView = it
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        rotation = rotationViewModel.liveData.value!!
+        updateIllustrationLottie(rotation)
+
+        requireActivity().bindFingerprintEnrollEnrollingUdfpsView(
+            view = enrollingView!!,
+            sensorProperties = enrollingViewModel.firstFingerprintSensorPropertiesInternal!!,
+            rotation = rotation,
+            onSkipClickListener = onSkipClickListener,
+        )
+
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.triggerRetryFlow.collect { retryEnrollment() }
+            }
+        }
+    }
+
+    private fun retryEnrollment() {
+        reattachUdfpsEnrollView()
+
+        startEnrollment()
+
+        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
+        progressViewModel.helpMessageLiveData.value.let {
+            if (it != null) {
+                onEnrollmentHelp(it)
+            } else {
+                updateTitleAndDescription()
+            }
+        }
+    }
+
+    override fun onStart() {
+        super.onStart()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isErrorDialogShown = errorDialogViewModel.isDialogShown
+        Log.d(TAG, "onStart(), isEnrolling:$isEnrolling, isErrorDialog:$isErrorDialogShown")
+        if (!isErrorDialogShown) {
+            startEnrollment()
+        }
+
+        updateProgress(false /* animate */, progressViewModel.progressLiveData.value!!)
+        progressViewModel.helpMessageLiveData.value.let {
+            if (it != null) {
+                onEnrollmentHelp(it)
+            } else {
+                updateTitleAndDescription()
+            }
+        }
+    }
+
+    private fun reattachUdfpsEnrollView() {
+        enrollingView!!.let {
+            val newUdfpsView = LayoutInflater.from(requireActivity()).inflate(
+                R.layout.udfps_enroll_enrolling_v2_udfps_view,
+                null
+            )
+            val index = it.indexOfChild(udfpsEnrollView)
+            val lp = udfpsEnrollView.layoutParams
+
+            it.removeView(udfpsEnrollView)
+            it.addView(newUdfpsView, index, lp)
+            udfpsEnrollView.setSensorProperties(
+                enrollingViewModel.firstFingerprintSensorPropertiesInternal
+            )
+        }
+
+        // Clear lottie status
+        haveShownTipLottie = false
+        haveShownLeftEdgeLottie = false
+        haveShownRightEdgeLottie = false
+        haveShownCenterLottie = false
+        haveShownGuideLottie = false
+        illustrationLottie?.let {
+            it.contentDescription = ""
+            it.visibility = View.GONE
+        }
+    }
+
+    override fun onResume() {
+        super.onResume()
+        rotationViewModel.liveData.observe(this, rotationObserver)
+    }
+
+    override fun onPause() {
+        rotationViewModel.liveData.removeObserver(rotationObserver)
+        super.onPause()
+    }
+
+    override fun onStop() {
+        removeEnrollmentObservers()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isConfigChange = requireActivity().isChangingConfigurations
+        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
+        if (isEnrolling && !isConfigChange) {
+            cancelEnrollment(false)
+        }
+        super.onStop()
+    }
+
+    private fun removeEnrollmentObservers() {
+        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
+        progressViewModel.progressLiveData.removeObserver(progressObserver)
+        progressViewModel.helpMessageLiveData.removeObserver(helpMessageObserver)
+        progressViewModel.acquireLiveData.removeObserver(acquireObserver)
+        progressViewModel.pointerDownLiveData.removeObserver(pointerDownObserver)
+        progressViewModel.pointerUpLiveData.removeObserver(pointerUpObserver)
+    }
+
+    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
+            return
+        }
+        removeEnrollmentObservers()
+        if (waitForLastCancelErrMsg) {
+            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
+        } else {
+            enrollingCancelSignal = null
+        }
+        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
+        if (!cancelResult) {
+            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
+        }
+    }
+
+    private fun startEnrollment() {
+        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_ENROLL)
+        if (enrollingCancelSignal == null) {
+            Log.e(TAG, "startEnrollment(), failed")
+        } else {
+            Log.d(TAG, "startEnrollment(), success")
+        }
+        progressViewModel.progressLiveData.observe(this, progressObserver)
+        progressViewModel.helpMessageLiveData.observe(this, helpMessageObserver)
+        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
+        progressViewModel.acquireLiveData.observe(this, acquireObserver)
+        progressViewModel.pointerDownLiveData.observe(this, pointerDownObserver)
+        progressViewModel.pointerUpLiveData.observe(this, pointerUpObserver)
+    }
+
+    private fun updateProgress(animate: Boolean, enrollmentProgress: EnrollmentProgress) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "Enrollment not started yet")
+            return
+        }
+
+        val progress = getProgress(enrollmentProgress)
+        Log.d(TAG, "updateProgress($animate, $enrollmentProgress), progress:$progress")
+
+        if (enrollmentProgress.steps != -1) {
+            udfpsEnrollView.onEnrollmentProgress(
+                enrollmentProgress.remaining,
+                enrollmentProgress.steps
+            )
+        }
+
+        if (progress >= PROGRESS_BAR_MAX) {
+            if (animate) {
+                // Wait animations to finish, then proceed to next page
+                activity!!.mainThreadHandler.postDelayed(delayedFinishRunnable, 400L)
+            } else {
+                delayedFinishRunnable.run()
+            }
+        }
+    }
+
+    private fun getProgress(progress: EnrollmentProgress): Int {
+        if (progress.steps == -1) {
+            return 0
+        }
+        val displayProgress = 0.coerceAtLeast(progress.steps + 1 - progress.remaining)
+        return PROGRESS_BAR_MAX * displayProgress / (progress.steps + 1)
+    }
+
+    private fun updateTitleAndDescription() {
+        Log.d(TAG, "updateTitleAndDescription($currentStage)")
+        when (currentStage) {
+            STAGE_CENTER -> {
+                titleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title)
+                if (isAccessibilityEnabled || illustrationLottie == null) {
+                    subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
+                } else if (!haveShownCenterLottie) {
+                    haveShownCenterLottie = true
+                    // Note: Update string reference when differentiate in between udfps & sfps
+                    illustrationLottie!!.contentDescription = getString(R.string.security_settings_sfps_enroll_finger_center_title)
+                    configureEnrollmentStage(R.raw.udfps_center_hint_lottie)
+                }
+            }
+
+            STAGE_GUIDED -> {
+                titleText.setText(R.string.security_settings_fingerprint_enroll_repeat_title)
+                if (isAccessibilityEnabled || illustrationLottie == null) {
+                    subTitleText.setText(
+                        R.string.security_settings_udfps_enroll_repeat_a11y_message
+                    )
+                } else if (!haveShownGuideLottie) {
+                    haveShownGuideLottie = true
+                    illustrationLottie!!.contentDescription =
+                        getString(R.string.security_settings_fingerprint_enroll_repeat_message)
+                    // TODO(b/228100413) Could customize guided lottie animation
+                    configureEnrollmentStage(R.raw.udfps_center_hint_lottie)
+                }
+            }
+
+            STAGE_FINGERTIP -> {
+                titleText.setText(R.string.security_settings_udfps_enroll_fingertip_title)
+                if (!haveShownTipLottie && illustrationLottie != null) {
+                    haveShownTipLottie = true
+                    illustrationLottie!!.contentDescription =
+                        getString(R.string.security_settings_udfps_tip_fingerprint_help)
+                    configureEnrollmentStage(R.raw.udfps_tip_hint_lottie)
+                }
+            }
+
+            STAGE_LEFT_EDGE -> {
+                titleText.setText(R.string.security_settings_udfps_enroll_left_edge_title)
+                if (!haveShownLeftEdgeLottie && illustrationLottie != null) {
+                    haveShownLeftEdgeLottie = true
+                    illustrationLottie!!.contentDescription =
+                        getString(R.string.security_settings_udfps_side_fingerprint_help)
+                    configureEnrollmentStage(R.raw.udfps_left_edge_hint_lottie)
+                } else if (illustrationLottie == null) {
+                    if (isStageHalfCompleted) {
+                        subTitleText.setText(
+                            R.string.security_settings_fingerprint_enroll_repeat_message
+                        )
+                    } else {
+                        subTitleText.setText(R.string.security_settings_udfps_enroll_edge_message)
+                    }
+                }
+            }
+
+            STAGE_RIGHT_EDGE -> {
+                titleText.setText(R.string.security_settings_udfps_enroll_right_edge_title)
+                if (!haveShownRightEdgeLottie && illustrationLottie != null) {
+                    haveShownRightEdgeLottie = true
+                    illustrationLottie!!.contentDescription =
+                        getString(R.string.security_settings_udfps_side_fingerprint_help)
+                    configureEnrollmentStage(R.raw.udfps_right_edge_hint_lottie)
+                } else if (illustrationLottie == null) {
+                    if (isStageHalfCompleted) {
+                        subTitleText.setText(
+                            R.string.security_settings_fingerprint_enroll_repeat_message
+                        )
+                    } else {
+                        subTitleText.setText(R.string.security_settings_udfps_enroll_edge_message)
+                    }
+                }
+            }
+
+            STAGE_UNKNOWN -> {
+                titleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title)
+                subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
+                val description: CharSequence = getString(
+                    R.string.security_settings_udfps_enroll_a11y
+                )
+                requireActivity().title = description
+            }
+
+            else -> {
+                titleText.setText(R.string.security_settings_fingerprint_enroll_udfps_title)
+                subTitleText.setText(R.string.security_settings_udfps_enroll_start_message)
+                val description: CharSequence = getString(
+                    R.string.security_settings_udfps_enroll_a11y
+                )
+                requireActivity().title = description
+            }
+        }
+    }
+
+    private fun updateIllustrationLottie(@Surface.Rotation rotation: Int) {
+        if (rotation == ROTATION_90 || rotation == ROTATION_270) {
+            illustrationLottie = null
+        } else if (shouldShowLottie) {
+            illustrationLottie =
+                enrollingView!!.findViewById(R.id.illustration_lottie)
+        }
+    }
+
+    private val currentStage: Int
+        get() {
+            val progress = progressViewModel.progressLiveData.value!!
+            if (progress.steps == -1) {
+                return STAGE_UNKNOWN
+            }
+            val progressSteps: Int = progress.steps - progress.remaining
+            return if (progressSteps < getStageThresholdSteps(0)) {
+                STAGE_CENTER
+            } else if (progressSteps < getStageThresholdSteps(1)) {
+                STAGE_GUIDED
+            } else if (progressSteps < getStageThresholdSteps(2)) {
+                STAGE_FINGERTIP
+            } else if (progressSteps < getStageThresholdSteps(3)) {
+                STAGE_LEFT_EDGE
+            } else {
+                STAGE_RIGHT_EDGE
+            }
+        }
+
+    private val isStageHalfCompleted: Boolean
+        get() {
+            val progress: EnrollmentProgress = progressViewModel.progressLiveData.value!!
+            if (progress.steps == -1) {
+                return false
+            }
+            val progressSteps: Int = progress.steps - progress.remaining
+            var prevThresholdSteps = 0
+            for (i in 0 until enrollingViewModel.getEnrollStageCount()) {
+                val thresholdSteps = getStageThresholdSteps(i)
+                if (progressSteps in prevThresholdSteps until thresholdSteps) {
+                    val adjustedProgress = progressSteps - prevThresholdSteps
+                    val adjustedThreshold = thresholdSteps - prevThresholdSteps
+                    return adjustedProgress >= adjustedThreshold / 2
+                }
+                prevThresholdSteps = thresholdSteps
+            }
+
+            // After last enrollment step.
+            return true
+        }
+
+    private fun getStageThresholdSteps(index: Int): Int {
+        val progress: EnrollmentProgress = progressViewModel.progressLiveData.value!!
+        if (progress.steps == -1) {
+            Log.w(TAG, "getStageThresholdSteps: Enrollment not started yet")
+            return 1
+        }
+        return (progress.steps * enrollingViewModel.getEnrollStageThreshold(index)).roundToInt()
+    }
+
+    private fun configureEnrollmentStage(@RawRes lottie: Int) {
+        subTitleText.text = ""
+        LottieCompositionFactory.fromRawRes(activity, lottie)
+            .addListener { c: LottieComposition ->
+                illustrationLottie?.let {
+                    it.setComposition(c)
+                    it.visibility = View.VISIBLE
+                    it.playAnimation()
+                }
+            }
+    }
+
+    private fun onEnrollmentProgressChange(progress: EnrollmentProgress) {
+        updateProgress(true /* animate */, progress)
+        updateTitleAndDescription()
+        if (isAccessibilityEnabled) {
+            val steps: Int = progress.steps
+            val remaining: Int = progress.remaining
+            val percent = ((steps - remaining).toFloat() / steps.toFloat() * 100).toInt()
+            val announcement: CharSequence = activity!!.getString(
+                R.string.security_settings_udfps_enroll_progress_a11y_message, percent
+            )
+            enrollingViewModel.sendAccessibilityEvent(announcement)
+        }
+    }
+
+    private fun onEnrollmentHelp(helpMessage: EnrollmentStatusMessage) {
+        Log.d(TAG, "onEnrollmentHelp($helpMessage)")
+        val helpStr: CharSequence = helpMessage.str
+        if (helpStr.isNotEmpty()) {
+            showError(helpStr)
+            udfpsEnrollView.onEnrollmentHelp()
+        }
+    }
+
+    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
+        cancelEnrollment(true)
+        lifecycleScope.launch {
+            Log.d(TAG, "newDialog $errorMessage")
+            errorDialogViewModel.newDialog(errorMessage.msgId)
+        }
+    }
+
+    private fun onEnrollmentCanceled(canceledSignal: Any) {
+        Log.d(
+            TAG,
+            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
+        )
+        if (enrollingCancelSignal === canceledSignal) {
+            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
+            progressViewModel.clearProgressLiveData()
+            if (enrollingViewModel.onBackPressed) {
+                enrollingViewModel.onCancelledDueToOnBackPressed()
+            } else if (enrollingViewModel.onSkipPressed) {
+                enrollingViewModel.onCancelledDueToOnSkipPressed()
+            }
+        }
+    }
+
+    private fun onAcquired(isAcquiredGood: Boolean) {
+        udfpsEnrollView.onAcquired(isAcquiredGood)
+    }
+
+    private fun onPointerDown(sensorId: Int) {
+        udfpsEnrollView.onPointerDown(sensorId)
+    }
+
+    private fun onPointerUp(sensorId: Int) {
+        udfpsEnrollView.onPointerUp(sensorId)
+    }
+
+    private fun showError(error: CharSequence) {
+        titleText.text = error
+        titleText.contentDescription = error
+        subTitleText.contentDescription = ""
+    }
+
+    private fun onRotationChanged(newRotation: Int) {
+        if ((newRotation + 2) % 4 == rotation) {
+            rotation = newRotation
+            requireContext().configLayout(newRotation, titleText, subTitleText, icon, skipBtn)
+        }
+    }
+
+    companion object {
+        private val TAG = "FingerprintEnrollEnrollingUdfpsFragment"
+        private const val PROGRESS_BAR_MAX = 10000
+        private const val STAGE_UNKNOWN = -1
+        private const val STAGE_CENTER = 0
+        private const val STAGE_GUIDED = 1
+        private const val STAGE_FINGERTIP = 2
+        private const val STAGE_LEFT_EDGE = 3
+        private const val STAGE_RIGHT_EDGE = 4
+    }
+}
+
+
+fun FragmentActivity.bindFingerprintEnrollEnrollingUdfpsView(
+    view: RelativeLayout,
+    sensorProperties: FingerprintSensorPropertiesInternal,
+    @Surface.Rotation rotation: Int,
+    onSkipClickListener: View.OnClickListener
+) {
+    view.findViewById<UdfpsEnrollView>(R.id.udfps_animation_view)!!.setSensorProperties(
+        sensorProperties
+    )
+
+    val titleText = view.findViewById<TextView>(R.id.suc_layout_title)!!
+    val subTitleText = view.findViewById<TextView>(R.id.sud_layout_subtitle)!!
+    val icon = view.findViewById<ImageView>(R.id.sud_layout_icon)!!
+    val skipBtn = view.findViewById<Button>(R.id.skip_btn)!!.also {
+        it.setOnClickListener(onSkipClickListener)
+    }
+    configLayout(rotation, titleText, subTitleText, icon, skipBtn)
+}
+
+private fun Context.configLayout(
+    @Surface.Rotation newRotation: Int,
+    titleText: TextView,
+    subTitleText: TextView,
+    icon: ImageView,
+    skipBtn: Button
+) {
+    if (newRotation == ROTATION_270) {
+        val iconLP = RelativeLayout.LayoutParams(-2, -2)
+        iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
+        iconLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
+        iconLP.topMargin = convertDpToPixel(76.64f)
+        iconLP.leftMargin = convertDpToPixel(151.54f)
+        icon.layoutParams = iconLP
+        val titleLP = RelativeLayout.LayoutParams(-1, -2)
+        titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
+        titleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
+        titleLP.topMargin = convertDpToPixel(138f)
+        titleLP.leftMargin = convertDpToPixel(144f)
+        titleText.layoutParams = titleLP
+        val subtitleLP = RelativeLayout.LayoutParams(-1, -2)
+        subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
+        subtitleLP.addRule(RelativeLayout.END_OF, R.id.udfps_animation_view)
+        subtitleLP.topMargin = convertDpToPixel(198f)
+        subtitleLP.leftMargin = convertDpToPixel(144f)
+        subTitleText.layoutParams = subtitleLP
+    } else if (newRotation == ROTATION_90) {
+        val metrics = resources.displayMetrics
+        val iconLP = RelativeLayout.LayoutParams(-2, -2)
+        iconLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
+        iconLP.addRule(RelativeLayout.ALIGN_PARENT_START)
+        iconLP.topMargin = convertDpToPixel(76.64f)
+        iconLP.leftMargin = convertDpToPixel(71.99f)
+        icon.layoutParams = iconLP
+        val titleLP = RelativeLayout.LayoutParams(
+            metrics.widthPixels / 2, -2
+        )
+        titleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
+        titleLP.addRule(RelativeLayout.ALIGN_PARENT_START, R.id.udfps_animation_view)
+        titleLP.topMargin = convertDpToPixel(138f)
+        titleLP.leftMargin = convertDpToPixel(66f)
+        titleText.layoutParams = titleLP
+        val subtitleLP = RelativeLayout.LayoutParams(
+            metrics.widthPixels / 2, -2
+        )
+        subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_TOP)
+        subtitleLP.addRule(RelativeLayout.ALIGN_PARENT_START)
+        subtitleLP.topMargin = convertDpToPixel(198f)
+        subtitleLP.leftMargin = convertDpToPixel(66f)
+        subTitleText.layoutParams = subtitleLP
+    }
+    if (newRotation == ROTATION_90 || newRotation == ROTATION_270) {
+        val skipBtnLP = skipBtn.layoutParams as RelativeLayout.LayoutParams
+        skipBtnLP.topMargin = convertDpToPixel(26f)
+        skipBtnLP.leftMargin = convertDpToPixel(54f)
+        skipBtn.requestLayout()
+    }
+}
+
+fun Context.convertDpToPixel(dp: Float): Int {
+    return (dp * resources.displayMetrics.density).toInt()
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt
new file mode 100644
index 0000000..882cbcf
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollErrorDialog.kt
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.app.Dialog
+import android.content.Context
+import android.content.DialogInterface
+import android.hardware.biometrics.BiometricConstants
+import android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_UNABLE_TO_PROCESS
+import android.hardware.fingerprint.FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE
+import android.os.Bundle
+import android.util.Log
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getErrorMessage
+import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getErrorTitle
+import com.android.settings.biometrics.fingerprint.FingerprintErrorDialog.getSetupErrorMessage
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
+import kotlinx.coroutines.launch
+
+/**
+ * Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment.
+ */
+class FingerprintEnrollErrorDialog : DialogFragment() {
+
+    private val viewModel: FingerprintEnrollErrorDialogViewModel?
+        get() = activity?.let {
+            ViewModelProvider(it)[FingerprintEnrollErrorDialogViewModel::class.java]
+        }
+
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+        val errorMsgId: Int = requireArguments().getInt(KEY_ERROR_MSG_ID)
+        val okButtonSetResultAction =
+            if (errorMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT)
+                FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
+            else
+                FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
+        return requireActivity().bindFingerprintEnrollEnrollingErrorDialog(
+                errorMsgId = errorMsgId,
+                isSuw = viewModel!!.isSuw,
+                tryAgainButtonClickListener = { dialog: DialogInterface?, _: Int ->
+                    activity?.lifecycleScope?.launch {
+                        Log.d(TAG, "tryAgain flow")
+                        viewModel?.triggerRetry()
+                        dialog?.dismiss()
+                    }
+                },
+                okButtonClickListener = { dialog: DialogInterface?, _: Int ->
+                    activity?.lifecycleScope?.launch {
+                        Log.d(TAG, "ok flow as $okButtonSetResultAction")
+                        viewModel?.setResultAndFinish(okButtonSetResultAction)
+                        dialog?.dismiss()
+                    }
+                }
+            )
+    }
+
+    companion object {
+        private const val TAG = "FingerprintEnrollErrorDialog"
+        private const val KEY_ERROR_MSG_ID = "error_msg_id"
+
+        fun newInstance(errorMsgId: Int): FingerprintEnrollErrorDialog {
+            val dialog = FingerprintEnrollErrorDialog()
+            val args = Bundle()
+            args.putInt(KEY_ERROR_MSG_ID, errorMsgId)
+            dialog.arguments = args
+            return dialog
+        }
+    }
+}
+
+fun Context.bindFingerprintEnrollEnrollingErrorDialog(
+    errorMsgId: Int,
+    isSuw: Boolean,
+    tryAgainButtonClickListener: DialogInterface.OnClickListener,
+    okButtonClickListener: DialogInterface.OnClickListener
+): AlertDialog = AlertDialog.Builder(this)
+    .setTitle(getString(getErrorTitle(errorMsgId)))
+    .setMessage(
+        getString(
+            if (isSuw)
+                getSetupErrorMessage(errorMsgId)
+            else
+                getErrorMessage(errorMsgId)
+        )
+    )
+    .setCancelable(false).apply {
+        if (errorMsgId == FINGERPRINT_ERROR_UNABLE_TO_PROCESS) {
+            setPositiveButton(
+                R.string.security_settings_fingerprint_enroll_dialog_try_again,
+                tryAgainButtonClickListener
+            )
+            setNegativeButton(
+                R.string.security_settings_fingerprint_enroll_dialog_ok,
+                okButtonClickListener
+            )
+        } else {
+            setPositiveButton(
+                R.string.security_settings_fingerprint_enroll_dialog_ok,
+                okButtonClickListener
+            )
+        }
+    }
+    .create()
+    .apply { setCanceledOnTouchOutside(false) }
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.java
deleted file mode 100644
index 61f8e82..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR;
-import static android.view.View.OnClickListener;
-
-import android.app.Activity;
-import android.content.Context;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Surface;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics.fingerprint.FingerprintFindSensorAnimation;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-
-/**
- * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
- * It interacts with ProgressViewModel, and FingerprintFindSensorAnimation.
- * <pre>
- | Has                 | UDFPS | SFPS | Other (Rear FPS) |
- |---------------------|-------|------|------------------|
- | Primary button      | Yes   | No   | No               |
- | Illustration Lottie | Yes   | Yes  | No               |
- | Animation           | No    | No   | Depend on layout |
- | Progress ViewModel  | No    | Yes  | Yes              |
- | Orientation detect  | No    | Yes  | No               |
- | Foldable detect     | No    | Yes  | No               |
- </pre>
- */
-public class FingerprintEnrollFindRfpsFragment extends Fragment {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "FingerprintEnrollFindRfpsFragment";
-
-    private FingerprintEnrollFindSensorViewModel mViewModel;
-    private FingerprintEnrollProgressViewModel mProgressViewModel;
-    private DeviceRotationViewModel mRotationViewModel;
-
-    private View mView;
-    private GlifLayout mGlifLayout;
-    private FooterBarMixin mFooterBarMixin;
-    private final OnClickListener mOnSkipClickListener = (v) -> mViewModel.onSkipButtonClick();
-    @Nullable private FingerprintFindSensorAnimation mAnimation;
-    @Surface.Rotation private int mLastRotation = -1;
-
-    private final Observer<Integer> mRotationObserver = rotation -> {
-        if (DEBUG) {
-            Log.d(TAG, "rotationObserver " + rotation);
-        }
-        if (rotation != null) {
-            onRotationChanged(rotation);
-        }
-    };
-
-    private final Observer<EnrollmentProgress> mProgressObserver = progress -> {
-        if (DEBUG) {
-            Log.d(TAG, "mProgressObserver(" + progress + ")");
-        }
-        if (progress != null && !progress.isInitialStep()) {
-            stopLookingForFingerprint(true);
-        }
-    };
-
-    private final Observer<EnrollmentStatusMessage> mLastCancelMessageObserver = errorMessage -> {
-        if (DEBUG) {
-            Log.d(TAG, "mLastCancelMessageObserver(" + errorMessage + ")");
-        }
-        if (errorMessage != null) {
-            onLastCancelMessage(errorMessage);
-        }
-    };
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        final Context context = inflater.getContext();
-        mView = inflater.inflate(R.layout.fingerprint_enroll_find_sensor, container, false);
-        mGlifLayout = mView.findViewById(R.id.setup_wizard_layout);
-        mFooterBarMixin = mGlifLayout.getMixin(FooterBarMixin.class);
-        mFooterBarMixin.setSecondaryButton(
-                new FooterButton.Builder(context)
-                        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-                        .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
-                        .build()
-        );
-        View animationView = mView.findViewById(R.id.fingerprint_sensor_location_animation);
-        if (animationView instanceof FingerprintFindSensorAnimation) {
-            mAnimation = (FingerprintFindSensorAnimation) animationView;
-        }
-        return mView;
-    }
-
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        final Activity activity = getActivity();
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(activity, mGlifLayout);
-        glifLayoutHelper.setHeaderText(
-                R.string.security_settings_fingerprint_enroll_find_sensor_title);
-        glifLayoutHelper.setDescriptionText(
-                getText(R.string.security_settings_fingerprint_enroll_find_sensor_message));
-        mFooterBarMixin.getSecondaryButton().setOnClickListener(mOnSkipClickListener);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        if (DEBUG) {
-            Log.d(TAG, "onStart(), start looking for fingerprint, animation exist:"
-                    + (mAnimation != null));
-        }
-        startLookingForFingerprint();
-    }
-
-    @Override
-    public void onResume() {
-        final LiveData<Integer> rotationLiveData = mRotationViewModel.getLiveData();
-        mLastRotation = rotationLiveData.getValue();
-        rotationLiveData.observe(this, mRotationObserver);
-
-        if (mAnimation != null) {
-            if (DEBUG) {
-                Log.d(TAG, "onResume(), start animation");
-            }
-            mAnimation.startAnimation();
-        }
-        super.onResume();
-    }
-
-    @Override
-    public void onPause() {
-        if (mAnimation != null) {
-            if (DEBUG) {
-                Log.d(TAG, "onPause(), pause animation");
-            }
-            mAnimation.pauseAnimation();
-        }
-        super.onPause();
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        final boolean isEnrolling = mProgressViewModel.isEnrolling();
-        if (DEBUG) {
-            Log.d(TAG, "onStop(), current enrolling: " + isEnrolling + ", animation exist:"
-                    + (mAnimation != null));
-        }
-        if (isEnrolling) {
-            stopLookingForFingerprint(false);
-        }
-    }
-
-    private void startLookingForFingerprint() {
-        if (mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "startLookingForFingerprint(), failed because isEnrolling is true before"
-                    + " starting");
-            return;
-        }
-
-        final boolean startResult = mProgressViewModel.startEnrollment(ENROLL_FIND_SENSOR);
-        if (!startResult) {
-            Log.e(TAG, "startLookingForFingerprint(), failed to start enrollment");
-        }
-        mProgressViewModel.getProgressLiveData().observe(this, mProgressObserver);
-    }
-
-    private void stopLookingForFingerprint(boolean waitForLastCancelErrMsg) {
-        if (!mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "stopLookingForFingerprint(), failed because isEnrolling is false before"
-                    + " stopping");
-            return;
-        }
-
-        if (waitForLastCancelErrMsg) {
-            mProgressViewModel.clearErrorMessageLiveData(); // Prevent got previous error message
-            mProgressViewModel.getErrorMessageLiveData().observe(this,
-                    mLastCancelMessageObserver);
-        }
-
-        mProgressViewModel.getProgressLiveData().removeObserver(mProgressObserver);
-        final boolean cancelResult = mProgressViewModel.cancelEnrollment();
-        if (!cancelResult) {
-            Log.e(TAG, "stopLookingForFingerprint(), failed to cancel enrollment");
-        }
-    }
-
-    private void onRotationChanged(@Surface.Rotation int newRotation) {
-        if (DEBUG) {
-            Log.d(TAG, "onRotationChanged() from " + mLastRotation + " to " + newRotation);
-        }
-        if (newRotation % 2 != mLastRotation % 2) {
-            // Fragment is going to be recreated, just stopLookingForFingerprint() here.
-            stopLookingForFingerprint(true);
-        }
-    }
-
-    private void onLastCancelMessage(@NonNull EnrollmentStatusMessage errorMessage) {
-        if (errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            final EnrollmentProgress progress = mProgressViewModel.getProgressLiveData().getValue();
-            mProgressViewModel.clearProgressLiveData();
-            mProgressViewModel.getErrorMessageLiveData().removeObserver(mLastCancelMessageObserver);
-            if (progress != null && !progress.isInitialStep()) {
-                mViewModel.onStartButtonClick();
-            }
-        } else {
-            Log.e(TAG, "mErrorMessageObserver(" + errorMessage + ")");
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        if (mAnimation != null) {
-            if (DEBUG) {
-                Log.d(TAG, "onDestroy(), stop animation");
-            }
-            mAnimation.stopAnimation();
-        }
-        super.onDestroy();
-    }
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        final FragmentActivity activity = getActivity();
-        final ViewModelProvider provider = new ViewModelProvider(activity);
-        mViewModel = provider.get(FingerprintEnrollFindSensorViewModel.class);
-        mProgressViewModel = provider.get(FingerprintEnrollProgressViewModel.class);
-        mRotationViewModel = provider.get(DeviceRotationViewModel.class);
-        super.onAttach(context);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt
new file mode 100644
index 0000000..be24fc6
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindRfpsFragment.kt
@@ -0,0 +1,295 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.content.Context
+import android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.Surface
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint.FingerprintFindSensorAnimation
+import com.android.settings.biometrics2.ui.model.EnrollmentProgress
+import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
+import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import kotlinx.coroutines.launch
+
+/**
+ * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
+ * It interacts with ProgressViewModel, and FingerprintFindSensorAnimation.
+ * <pre>
+ * | Has                 | UDFPS | SFPS | Other (Rear FPS) |
+ * |---------------------|-------|------|------------------|
+ * | Primary button      | Yes   | No   | No               |
+ * | Illustration Lottie | Yes   | Yes  | No               |
+ * | Animation           | No    | No   | Depend on layout |
+ * | Progress ViewModel  | No    | Yes  | Yes              |
+ * | Orientation detect  | No    | Yes  | No               |
+ * | Foldable detect     | No    | Yes  | No               |
+ * </pre>
+ */
+class FingerprintEnrollFindRfpsFragment : Fragment() {
+
+    private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
+    private val viewModel: FingerprintEnrollFindSensorViewModel
+        get() = _viewModel!!
+
+    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
+    private val progressViewModel: FingerprintEnrollProgressViewModel
+        get() = _progressViewModel!!
+
+    private var _rotationViewModel: DeviceRotationViewModel? = null
+    private val rotationViewModel: DeviceRotationViewModel
+        get() = _rotationViewModel!!
+
+    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
+    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
+        get() = _errorDialogViewModel!!
+
+    private var findRfpsView: GlifLayout? = null
+
+    private val onSkipClickListener =
+        View.OnClickListener { _: View? -> viewModel.onSkipButtonClick() }
+
+    private var animation: FingerprintFindSensorAnimation? = null
+
+    private var enrollingCancelSignal: Any? = null
+
+    @Surface.Rotation
+    private var lastRotation = -1
+
+    private val progressObserver = Observer { progress: EnrollmentProgress? ->
+        if (progress != null && !progress.isInitialStep) {
+            cancelEnrollment(true)
+        }
+    }
+
+    private val errorMessageObserver = Observer { errorMessage: EnrollmentStatusMessage? ->
+        Log.d(TAG, "errorMessageObserver($errorMessage)")
+        errorMessage?.let { onEnrollmentError(it) }
+    }
+
+    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
+        canceledSignal?.let { onEnrollmentCanceled(it) }
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        findRfpsView = inflater.inflate(
+            R.layout.fingerprint_enroll_find_sensor,
+            container,
+            false
+        ) as GlifLayout
+
+        val animationView = findRfpsView!!.findViewById<View>(
+            R.id.fingerprint_sensor_location_animation
+        )
+        if (animationView is FingerprintFindSensorAnimation) {
+            animation = animationView
+        }
+
+        return findRfpsView!!
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        requireActivity().bindFingerprintEnrollFindRfpsView(
+            view = findRfpsView!!,
+            onSkipClickListener = onSkipClickListener
+        )
+
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.triggerRetryFlow.collect { retryLookingForFingerprint() }
+            }
+        }
+    }
+
+    private fun retryLookingForFingerprint() {
+        startEnrollment()
+        animation?.let {
+            Log.d(TAG, "retry, start animation")
+            it.startAnimation()
+        }
+    }
+
+    override fun onStart() {
+        super.onStart()
+        val isErrorDialogShown = errorDialogViewModel.isDialogShown
+        Log.d(TAG, "onStart(), isEnrolling:${progressViewModel.isEnrolling}"
+                + ", isErrorDialog:$isErrorDialogShown")
+        if (!isErrorDialogShown) {
+            startEnrollment()
+        }
+    }
+
+    override fun onResume() {
+        val rotationLiveData: LiveData<Int> = rotationViewModel.liveData
+        lastRotation = rotationLiveData.value!!
+        if (!errorDialogViewModel.isDialogShown) {
+            animation?.let {
+                Log.d(TAG, "onResume(), start animation")
+                it.startAnimation()
+            }
+        }
+        super.onResume()
+    }
+
+    override fun onPause() {
+        animation?.let {
+            if (DEBUG) {
+                Log.d(TAG, "onPause(), pause animation")
+            }
+            it.pauseAnimation()
+        }
+        super.onPause()
+    }
+
+    override fun onStop() {
+        super.onStop()
+        removeEnrollmentObservers()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isConfigChange = requireActivity().isChangingConfigurations
+        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
+        if (isEnrolling && !isConfigChange) {
+            cancelEnrollment(false)
+        }
+    }
+
+    private fun removeEnrollmentObservers() {
+        progressViewModel.progressLiveData.removeObserver(progressObserver)
+        progressViewModel.helpMessageLiveData.removeObserver(errorMessageObserver)
+    }
+
+    private fun startEnrollment() {
+        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_FIND_SENSOR)
+        if (enrollingCancelSignal == null) {
+            Log.e(TAG, "startEnrollment(), failed to start enrollment")
+        } else {
+            Log.d(TAG, "startEnrollment(), success")
+        }
+        progressViewModel.progressLiveData.observe(this, progressObserver)
+        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
+    }
+
+    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
+            return
+        }
+        removeEnrollmentObservers()
+        if (waitForLastCancelErrMsg) {
+            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
+        } else {
+            enrollingCancelSignal = null
+        }
+        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
+        if (!cancelResult) {
+            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
+        }
+    }
+
+    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
+        cancelEnrollment(false)
+        lifecycleScope.launch {
+            Log.d(TAG, "newDialogFlow as $errorMessage")
+            errorDialogViewModel.newDialog(errorMessage.msgId)
+        }
+    }
+
+    private fun onEnrollmentCanceled(canceledSignal: Any) {
+        Log.d(
+            TAG,
+            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
+        )
+        if (enrollingCancelSignal === canceledSignal) {
+            val progress: EnrollmentProgress? = progressViewModel.progressLiveData.value
+            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
+            progressViewModel.clearProgressLiveData()
+            if (progress != null && !progress.isInitialStep) {
+                viewModel.onStartButtonClick()
+            }
+        }
+    }
+
+    override fun onDestroy() {
+        animation?.let {
+            if (DEBUG) {
+                Log.d(TAG, "onDestroy(), stop animation")
+            }
+            it.stopAnimation()
+        }
+        super.onDestroy()
+    }
+
+    override fun onAttach(context: Context) {
+        ViewModelProvider(requireActivity()).let { provider ->
+            _viewModel = provider[FingerprintEnrollFindSensorViewModel::class.java]
+            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
+            _rotationViewModel = provider[DeviceRotationViewModel::class.java]
+            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
+        }
+        super.onAttach(context)
+    }
+
+    companion object {
+        private const val DEBUG = false
+        private const val TAG = "FingerprintEnrollFindRfpsFragment"
+    }
+}
+
+fun FragmentActivity.bindFingerprintEnrollFindRfpsView(
+    view: GlifLayout,
+    onSkipClickListener: View.OnClickListener,
+) {
+    GlifLayoutHelper(this, view).let {
+        it.setHeaderText(
+            R.string.security_settings_fingerprint_enroll_find_sensor_title
+        )
+        it.setDescriptionText(
+            getText(R.string.security_settings_fingerprint_enroll_find_sensor_message)
+        )
+    }
+
+    view.getMixin(FooterBarMixin::class.java).secondaryButton =
+        FooterButton.Builder(this)
+            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+            .setButtonType(FooterButton.ButtonType.SKIP)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+            .build()
+            .also {
+                it.setOnClickListener(onSkipClickListener)
+            }
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.java
deleted file mode 100644
index 75207ca..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR;
-
-import android.app.Activity;
-import android.content.Context;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Surface;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.RawRes;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
-import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-import com.android.settingslib.widget.LottieColorUtils;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-
-/**
- * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
- * It interacts with ProgressViewModel, FoldCallback (for different lottie), and
- * LottieAnimationView.
- * <pre>
- | Has                 | UDFPS | SFPS | Other (Rear FPS) |
- |---------------------|-------|------|------------------|
- | Primary button      | Yes   | No   | No               |
- | Illustration Lottie | Yes   | Yes  | No               |
- | Animation           | No    | No   | Depend on layout |
- | Progress ViewModel  | No    | Yes  | Yes              |
- | Orientation detect  | No    | Yes  | No               |
- | Foldable detect     | No    | Yes  | No               |
- </pre>
- */
-public class FingerprintEnrollFindSfpsFragment extends Fragment {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "FingerprintEnrollFindSfpsFragment";
-
-    private FingerprintEnrollFindSensorViewModel mViewModel;
-    private FingerprintEnrollProgressViewModel mProgressViewModel;
-    private DeviceRotationViewModel mRotationViewModel;
-    private DeviceFoldedViewModel mFoldedViewModel;
-
-    private GlifLayout mView;
-    private FooterBarMixin mFooterBarMixin;
-    private final OnClickListener mOnSkipClickListener = (v) -> mViewModel.onSkipButtonClick();
-    private LottieAnimationView mIllustrationLottie;
-    @Surface.Rotation private int mAnimationRotation = -1;
-
-    private final Observer<Integer> mRotationObserver = rotation -> {
-        if (DEBUG) {
-            Log.d(TAG, "rotationObserver " + rotation);
-        }
-        if (rotation != null) {
-            onRotationChanged(rotation);
-        }
-    };
-
-    private final Observer<EnrollmentProgress> mProgressObserver = progress -> {
-        if (DEBUG) {
-            Log.d(TAG, "mProgressObserver(" + progress + ")");
-        }
-        if (progress != null && !progress.isInitialStep()) {
-            stopLookingForFingerprint(true);
-        }
-    };
-
-    private final Observer<EnrollmentStatusMessage> mLastCancelMessageObserver = errorMessage -> {
-        if (DEBUG) {
-            Log.d(TAG, "mLastCancelMessageObserver(" + errorMessage + ")");
-        }
-        if (errorMessage != null) {
-            onLastCancelMessage(errorMessage);
-        }
-    };
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        final Context context = inflater.getContext();
-        mView = (GlifLayout) inflater.inflate(R.layout.sfps_enroll_find_sensor_layout, container,
-                false);
-        mIllustrationLottie = mView.findViewById(R.id.illustration_lottie);
-        mFooterBarMixin = mView.getMixin(FooterBarMixin.class);
-        mFooterBarMixin.setSecondaryButton(
-                new FooterButton.Builder(context)
-                        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-                        .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
-                        .build()
-        );
-        return mView;
-    }
-
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        final Activity activity = getActivity();
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(activity, mView);
-        glifLayoutHelper.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title);
-        glifLayoutHelper.setDescriptionText(
-                getText(R.string.security_settings_sfps_enroll_find_sensor_message));
-        mFooterBarMixin.getSecondaryButton().setOnClickListener(mOnSkipClickListener);
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        final boolean isEnrolling = mProgressViewModel.isEnrolling();
-        if (DEBUG) {
-            Log.d(TAG, "onStart(), isEnrolling:" + isEnrolling);
-        }
-        if (!isEnrolling) {
-            startLookingForFingerprint();
-        }
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        final LiveData<Integer> rotationLiveData = mRotationViewModel.getLiveData();
-        playLottieAnimation(rotationLiveData.getValue());
-        rotationLiveData.observe(this, mRotationObserver);
-    }
-
-    @Override
-    public void onPause() {
-        mRotationViewModel.getLiveData().removeObserver(mRotationObserver);
-        super.onPause();
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
-        final boolean isEnrolling = mProgressViewModel.isEnrolling();
-        if (DEBUG) {
-            Log.d(TAG, "onStop(), isEnrolling:" + isEnrolling);
-        }
-        if (isEnrolling) {
-            stopLookingForFingerprint(false);
-        }
-    }
-
-    private void startLookingForFingerprint() {
-        if (mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "startLookingForFingerprint(), failed because isEnrolling is true before"
-                    + " starting");
-            return;
-        }
-
-        mProgressViewModel.clearProgressLiveData();
-        mProgressViewModel.getProgressLiveData().observe(this, mProgressObserver);
-        final boolean startResult = mProgressViewModel.startEnrollment(ENROLL_FIND_SENSOR);
-        if (!startResult) {
-            Log.e(TAG, "startLookingForFingerprint(), failed to start enrollment");
-        }
-    }
-
-    private void stopLookingForFingerprint(boolean waitForLastCancelErrMsg) {
-        if (!mProgressViewModel.isEnrolling()) {
-            Log.d(TAG, "stopLookingForFingerprint(), failed because isEnrolling is false before"
-                    + " stopping");
-            return;
-        }
-
-        if (waitForLastCancelErrMsg) {
-            mProgressViewModel.clearErrorMessageLiveData(); // Prevent got previous error message
-            mProgressViewModel.getErrorMessageLiveData().observe(this,
-                    mLastCancelMessageObserver);
-        }
-
-        mProgressViewModel.getProgressLiveData().removeObserver(mProgressObserver);
-        final boolean cancelResult = mProgressViewModel.cancelEnrollment();
-        if (!cancelResult) {
-            Log.e(TAG, "stopLookingForFingerprint(), failed to cancel enrollment");
-        }
-    }
-
-    private void onRotationChanged(@Surface.Rotation int newRotation) {
-        if (DEBUG) {
-            Log.d(TAG, "onRotationChanged() from " + mAnimationRotation + " to " + newRotation);
-        }
-        if ((newRotation + 2) % 4 == mAnimationRotation) {
-            // Fragment not changed, we just need to play correct rotation animation
-            playLottieAnimation(newRotation);
-        } else if (newRotation % 2 != mAnimationRotation % 2) {
-            // Fragment is going to be recreated, just stopLookingForFingerprint() here.
-            stopLookingForFingerprint(true);
-        }
-    }
-
-    private void onLastCancelMessage(@NonNull EnrollmentStatusMessage errorMessage) {
-        if (errorMessage.getMsgId() == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
-            final EnrollmentProgress progress = mProgressViewModel.getProgressLiveData().getValue();
-            mProgressViewModel.clearProgressLiveData();
-            mProgressViewModel.getErrorMessageLiveData().removeObserver(mLastCancelMessageObserver);
-            if (progress != null && !progress.isInitialStep()) {
-                mViewModel.onStartButtonClick();
-            }
-        } else {
-            Log.e(TAG, "mErrorMessageObserver(" + errorMessage + ")");
-        }
-    }
-
-    private void playLottieAnimation(@Surface.Rotation int rotation) {
-        @RawRes final int animationRawRes = getSfpsLottieAnimationRawRes(rotation);
-        if (DEBUG) {
-            Log.d(TAG, "play lottie animation " + animationRawRes
-                    + ", previous rotation:" + mAnimationRotation + ", new rotation:" + rotation);
-        }
-
-        mAnimationRotation = rotation;
-        mIllustrationLottie.setAnimation(animationRawRes);
-        LottieColorUtils.applyDynamicColors(getActivity(), mIllustrationLottie);
-        mIllustrationLottie.setVisibility(View.VISIBLE);
-        mIllustrationLottie.playAnimation();
-    }
-
-    @RawRes
-    private int getSfpsLottieAnimationRawRes(@Surface.Rotation int rotation) {
-        final boolean isFolded = !Boolean.FALSE.equals(mFoldedViewModel.getLiveData().getValue());
-        switch (rotation) {
-            case Surface.ROTATION_90:
-                return isFolded ? R.raw.fingerprint_edu_lottie_folded_top_left
-                        : R.raw.fingerprint_edu_lottie_portrait_top_left;
-            case Surface.ROTATION_180 :
-                return isFolded ? R.raw.fingerprint_edu_lottie_folded_bottom_left
-                        : R.raw.fingerprint_edu_lottie_landscape_bottom_left;
-            case Surface.ROTATION_270 :
-                return isFolded ? R.raw.fingerprint_edu_lottie_folded_bottom_right
-                        : R.raw.fingerprint_edu_lottie_portrait_bottom_right;
-            default :
-                return isFolded ? R.raw.fingerprint_edu_lottie_folded_top_right
-                        : R.raw.fingerprint_edu_lottie_landscape_top_right;
-        }
-    }
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        final FragmentActivity activity = getActivity();
-        final ViewModelProvider provider = new ViewModelProvider(activity);
-        mViewModel = provider.get(FingerprintEnrollFindSensorViewModel.class);
-        mProgressViewModel = provider.get(FingerprintEnrollProgressViewModel.class);
-        mRotationViewModel = provider.get(DeviceRotationViewModel.class);
-        mFoldedViewModel = provider.get(DeviceFoldedViewModel.class);
-        super.onAttach(context);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt
new file mode 100644
index 0000000..7455be1
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindSfpsFragment.kt
@@ -0,0 +1,319 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.content.Context
+import android.hardware.fingerprint.FingerprintManager.ENROLL_FIND_SENSOR
+import android.os.Bundle
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.Surface
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.RawRes
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import com.airbnb.lottie.LottieAnimationView
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.model.EnrollmentProgress
+import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage
+import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel
+import com.android.settings.biometrics2.ui.viewmodel.DeviceRotationViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
+import com.android.settingslib.widget.LottieColorUtils
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import kotlinx.coroutines.launch
+
+/**
+ * Fragment explaining the side fingerprint sensor location for fingerprint enrollment.
+ * It interacts with ProgressViewModel, FoldCallback (for different lottie), and
+ * LottieAnimationView.
+ * <pre>
+ * | Has                 | UDFPS | SFPS | Other (Rear FPS) |
+ * |---------------------|-------|------|------------------|
+ * | Primary button      | Yes   | No   | No               |
+ * | Illustration Lottie | Yes   | Yes  | No               |
+ * | Animation           | No    | No   | Depend on layout |
+ * | Progress ViewModel  | No    | Yes  | Yes              |
+ * | Orientation detect  | No    | Yes  | No               |
+ * | Foldable detect     | No    | Yes  | No               |
+ * </pre>
+ */
+class FingerprintEnrollFindSfpsFragment : Fragment() {
+
+    private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
+    private val viewModel: FingerprintEnrollFindSensorViewModel
+        get() = _viewModel!!
+
+    private var _progressViewModel: FingerprintEnrollProgressViewModel? = null
+    private val progressViewModel: FingerprintEnrollProgressViewModel
+        get() = _progressViewModel!!
+
+    private var _rotationViewModel: DeviceRotationViewModel? = null
+    private val rotationViewModel: DeviceRotationViewModel
+        get() = _rotationViewModel!!
+
+    private var _foldedViewModel: DeviceFoldedViewModel? = null
+    private val foldedViewModel: DeviceFoldedViewModel
+        get() = _foldedViewModel!!
+
+    private var _errorDialogViewModel: FingerprintEnrollErrorDialogViewModel? = null
+    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel
+        get() = _errorDialogViewModel!!
+
+    private var findSfpsView: GlifLayout? = null
+
+    private val onSkipClickListener =
+        View.OnClickListener { _: View? -> viewModel.onSkipButtonClick() }
+
+    private val illustrationLottie: LottieAnimationView
+        get() = findSfpsView!!.findViewById(R.id.illustration_lottie)!!
+
+    private var enrollingCancelSignal: Any? = null
+
+    @Surface.Rotation
+    private var animationRotation = -1
+
+    private val rotationObserver = Observer { rotation: Int? ->
+        rotation?.let { onRotationChanged(it) }
+    }
+
+    private val progressObserver = Observer { progress: EnrollmentProgress? ->
+        if (progress != null && !progress.isInitialStep) {
+            cancelEnrollment(true)
+        }
+    }
+
+    private val errorMessageObserver = Observer{ errorMessage: EnrollmentStatusMessage? ->
+        Log.d(TAG, "errorMessageObserver($errorMessage)")
+        errorMessage?.let { onEnrollmentError(it) }
+    }
+
+    private val canceledSignalObserver = Observer { canceledSignal: Any? ->
+        canceledSignal?.let { onEnrollmentCanceled(it) }
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View = (inflater.inflate(
+        R.layout.sfps_enroll_find_sensor_layout,
+        container,
+        false
+    ) as GlifLayout).also {
+        findSfpsView = it
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        requireActivity().bindFingerprintEnrollFindSfpsView(
+            view = findSfpsView!!,
+            onSkipClickListener = onSkipClickListener
+        )
+
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.triggerRetryFlow.collect { startEnrollment() }
+            }
+        }
+    }
+
+    override fun onStart() {
+        super.onStart()
+        val isErrorDialogShown = errorDialogViewModel.isDialogShown
+        Log.d(TAG, "onStart(), isEnrolling:${progressViewModel.isEnrolling}"
+                + ", isErrorDialog:$isErrorDialogShown")
+        if (!isErrorDialogShown) {
+            startEnrollment()
+        }
+    }
+
+    override fun onResume() {
+        super.onResume()
+        val rotationLiveData: LiveData<Int> = rotationViewModel.liveData
+        playLottieAnimation(rotationLiveData.value!!)
+        rotationLiveData.observe(this, rotationObserver)
+    }
+
+    override fun onPause() {
+        rotationViewModel.liveData.removeObserver(rotationObserver)
+        super.onPause()
+    }
+
+    override fun onStop() {
+        super.onStop()
+        val isEnrolling = progressViewModel.isEnrolling
+        val isConfigChange = requireActivity().isChangingConfigurations
+        Log.d(TAG, "onStop(), enrolling:$isEnrolling isConfigChange:$isConfigChange")
+        if (isEnrolling && !isConfigChange) {
+            cancelEnrollment(false)
+        }
+    }
+
+    private fun removeEnrollmentObservers() {
+        progressViewModel.errorMessageLiveData.removeObserver(errorMessageObserver)
+        progressViewModel.progressLiveData.removeObserver(progressObserver)
+    }
+
+    private fun startEnrollment() {
+        enrollingCancelSignal = progressViewModel.startEnrollment(ENROLL_FIND_SENSOR)
+        if (enrollingCancelSignal == null) {
+            Log.e(TAG, "startEnrollment(), failed to start enrollment")
+        } else {
+            Log.d(TAG, "startEnrollment(), success")
+        }
+        progressViewModel.progressLiveData.observe(this, progressObserver)
+        progressViewModel.errorMessageLiveData.observe(this, errorMessageObserver)
+    }
+
+    private fun cancelEnrollment(waitForLastCancelErrMsg: Boolean) {
+        if (!progressViewModel.isEnrolling) {
+            Log.d(TAG, "cancelEnrollment(), failed because isEnrolling is false")
+            return
+        }
+        removeEnrollmentObservers()
+        if (waitForLastCancelErrMsg) {
+            progressViewModel.canceledSignalLiveData.observe(this, canceledSignalObserver)
+        } else {
+            enrollingCancelSignal = null
+        }
+        val cancelResult: Boolean = progressViewModel.cancelEnrollment()
+        if (!cancelResult) {
+            Log.e(TAG, "cancelEnrollment(), failed to cancel enrollment")
+        }
+    }
+
+    private fun onRotationChanged(@Surface.Rotation newRotation: Int) {
+        if (DEBUG) {
+            Log.d(TAG, "onRotationChanged() from $animationRotation to $newRotation")
+        }
+        if ((newRotation + 2) % 4 == animationRotation) {
+            // Fragment not changed, we just need to play correct rotation animation
+            playLottieAnimation(newRotation)
+        }
+    }
+
+    private fun onEnrollmentError(errorMessage: EnrollmentStatusMessage) {
+        progressViewModel.cancelEnrollment()
+        lifecycleScope.launch {
+            Log.d(TAG, "newDialogFlow as $errorMessage")
+            errorDialogViewModel.newDialog(errorMessage.msgId)
+        }
+    }
+
+    private fun onEnrollmentCanceled(canceledSignal: Any) {
+        Log.d(
+            TAG,
+            "onEnrollmentCanceled enrolling:$enrollingCancelSignal, canceled:$canceledSignal"
+        )
+        if (enrollingCancelSignal === canceledSignal) {
+            val progress: EnrollmentProgress? = progressViewModel.progressLiveData.value
+            progressViewModel.canceledSignalLiveData.removeObserver(canceledSignalObserver)
+            progressViewModel.clearProgressLiveData()
+            if (progress != null && !progress.isInitialStep) {
+                viewModel.onStartButtonClick()
+            }
+        }
+    }
+
+    private fun playLottieAnimation(@Surface.Rotation rotation: Int) {
+        @RawRes val animationRawRes = getSfpsLottieAnimationRawRes(rotation)
+        Log.d(
+            TAG,
+            "play lottie animation $animationRawRes, previous rotation:$animationRotation"
+                    + ", new rotation:" + rotation
+        )
+        animationRotation = rotation
+        illustrationLottie.setAnimation(animationRawRes)
+        LottieColorUtils.applyDynamicColors(activity, illustrationLottie)
+        illustrationLottie.visibility = View.VISIBLE
+        illustrationLottie.playAnimation()
+    }
+
+    @RawRes
+    private fun getSfpsLottieAnimationRawRes(@Surface.Rotation rotation: Int): Int {
+        val isFolded = java.lang.Boolean.FALSE != foldedViewModel.liveData.value
+        return when (rotation) {
+            Surface.ROTATION_90 ->
+                if (isFolded)
+                    R.raw.fingerprint_edu_lottie_folded_top_left
+                else
+                    R.raw.fingerprint_edu_lottie_portrait_top_left
+            Surface.ROTATION_180 ->
+                if (isFolded)
+                    R.raw.fingerprint_edu_lottie_folded_bottom_left
+                else
+                    R.raw.fingerprint_edu_lottie_landscape_bottom_left
+            Surface.ROTATION_270 ->
+                if (isFolded)
+                    R.raw.fingerprint_edu_lottie_folded_bottom_right
+                else
+                    R.raw.fingerprint_edu_lottie_portrait_bottom_right
+            else ->
+                if (isFolded)
+                    R.raw.fingerprint_edu_lottie_folded_top_right
+                else
+                    R.raw.fingerprint_edu_lottie_landscape_top_right
+        }
+    }
+
+    override fun onAttach(context: Context) {
+        ViewModelProvider(requireActivity()).let { provider ->
+            _viewModel = provider[FingerprintEnrollFindSensorViewModel::class.java]
+            _progressViewModel = provider[FingerprintEnrollProgressViewModel::class.java]
+            _rotationViewModel = provider[DeviceRotationViewModel::class.java]
+            _foldedViewModel = provider[DeviceFoldedViewModel::class.java]
+            _errorDialogViewModel = provider[FingerprintEnrollErrorDialogViewModel::class.java]
+        }
+        super.onAttach(context)
+    }
+
+    companion object {
+        private const val DEBUG = false
+        private const val TAG = "FingerprintEnrollFindSfpsFragment"
+    }
+}
+
+fun FragmentActivity.bindFingerprintEnrollFindSfpsView(
+    view: GlifLayout,
+    onSkipClickListener: View.OnClickListener
+) {
+    view.getMixin(FooterBarMixin::class.java).let {
+        it.secondaryButton = FooterButton.Builder(this)
+            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+            .setButtonType(FooterButton.ButtonType.SKIP)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+            .build()
+        it.secondaryButton.setOnClickListener(onSkipClickListener)
+    }
+
+    GlifLayoutHelper(this, view).let {
+        it.setHeaderText(R.string.security_settings_sfps_enroll_find_sensor_title)
+        it.setDescriptionText(
+            getText(R.string.security_settings_sfps_enroll_find_sensor_message)
+        )
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.java
deleted file mode 100644
index 565f017..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.view.View.OnClickListener;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-
-/**
- * Fragment explaining the under-display fingerprint sensor location for fingerprint enrollment.
- * It interacts with Primary button, and LottieAnimationView.
- * <pre>
- | Has                 | UDFPS | SFPS | Other (Rear FPS) |
- |---------------------|-------|------|------------------|
- | Primary button      | Yes   | No   | No               |
- | Illustration Lottie | Yes   | Yes  | No               |
- | Animation           | No    | No   | Depend on layout |
- | Progress ViewModel  | No    | Yes  | Yes              |
- | Orientation detect  | No    | Yes  | No               |
- | Foldable detect     | No    | Yes  | No               |
- </pre>
- */
-public class FingerprintEnrollFindUdfpsFragment extends Fragment {
-
-    private FingerprintEnrollFindSensorViewModel mViewModel;
-
-    private View mView;
-    private GlifLayout mGlifLayout;
-    private FooterBarMixin mFooterBarMixin;
-    private final OnClickListener mOnSkipClickListener = (v) -> mViewModel.onSkipButtonClick();
-    private final OnClickListener mOnStartClickListener = (v) -> mViewModel.onStartButtonClick();
-    private LottieAnimationView mIllustrationLottie;
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-        final Context context = inflater.getContext();
-        mView = inflater.inflate(R.layout.udfps_enroll_find_sensor_layout, container, false);
-        mGlifLayout = mView.findViewById(R.id.setup_wizard_layout);
-        mIllustrationLottie = mView.findViewById(R.id.illustration_lottie);
-        mFooterBarMixin = mGlifLayout.getMixin(FooterBarMixin.class);
-        mFooterBarMixin.setSecondaryButton(
-                new FooterButton.Builder(context)
-                        .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
-                        .setButtonType(FooterButton.ButtonType.SKIP)
-                        .setTheme(R.style.SudGlifButton_Secondary)
-                        .build()
-        );
-        mFooterBarMixin.setPrimaryButton(
-                new FooterButton.Builder(context)
-                        .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
-                        .setButtonType(FooterButton.ButtonType.NEXT)
-                        .setTheme(R.style.SudGlifButton_Primary)
-                        .build()
-        );
-        return mView;
-    }
-
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        final Activity activity = getActivity();
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(activity, mGlifLayout);
-        glifLayoutHelper.setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title);
-        glifLayoutHelper.setDescriptionText(
-                getText(R.string.security_settings_udfps_enroll_find_sensor_message));
-        mFooterBarMixin.getSecondaryButton().setOnClickListener(mOnSkipClickListener);
-        mFooterBarMixin.getPrimaryButton().setOnClickListener(mOnStartClickListener);
-        mIllustrationLottie.setOnClickListener(mOnStartClickListener);
-
-        if (mViewModel.isAccessibilityEnabled()) {
-            mIllustrationLottie.setAnimation(R.raw.udfps_edu_a11y_lottie);
-        }
-    }
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        mViewModel = new ViewModelProvider(getActivity()).get(
-                FingerprintEnrollFindSensorViewModel.class);
-        super.onAttach(context);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt
new file mode 100644
index 0000000..3dce99c
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFindUdfpsFragment.kt
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.ViewModelProvider
+import com.airbnb.lottie.LottieAnimationView
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+
+/**
+ * Fragment explaining the under-display fingerprint sensor location for fingerprint enrollment.
+ * It interacts with Primary button, and LottieAnimationView.
+ * <pre>
+ * | Has                 | UDFPS | SFPS | Other (Rear FPS) |
+ * |---------------------|-------|------|------------------|
+ * | Primary button      | Yes   | No   | No               |
+ * | Illustration Lottie | Yes   | Yes  | No               |
+ * | Animation           | No    | No   | Depend on layout |
+ * | Progress ViewModel  | No    | Yes  | Yes              |
+ * | Orientation detect  | No    | Yes  | No               |
+ * | Foldable detect     | No    | Yes  | No               |
+ * </pre>
+ */
+class FingerprintEnrollFindUdfpsFragment : Fragment() {
+
+    private var _viewModel: FingerprintEnrollFindSensorViewModel? = null
+    private val mViewModel: FingerprintEnrollFindSensorViewModel
+        get() = _viewModel!!
+
+    private var findUdfpsView: GlifLayout? = null
+
+    private val mOnSkipClickListener =
+        View.OnClickListener { _: View? -> mViewModel.onSkipButtonClick() }
+
+    private val mOnStartClickListener =
+        View.OnClickListener { _: View? -> mViewModel.onStartButtonClick() }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View = (inflater.inflate(
+        R.layout.udfps_enroll_find_sensor_layout,
+        container,
+        false
+    ) as GlifLayout).also {
+        findUdfpsView = it
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        requireActivity().bindFingerprintEnrollFindUdfpsView(
+            view = findUdfpsView!!,
+            isAccessibilityEnabled = mViewModel.isAccessibilityEnabled,
+            onSkipClickListener = mOnSkipClickListener,
+            onStartClickListener = mOnStartClickListener
+        )
+    }
+
+    override fun onAttach(context: Context) {
+        _viewModel = ViewModelProvider(requireActivity())[
+            FingerprintEnrollFindSensorViewModel::class.java
+        ]
+        super.onAttach(context)
+    }
+}
+
+fun FragmentActivity.bindFingerprintEnrollFindUdfpsView(
+    view: GlifLayout,
+    isAccessibilityEnabled: Boolean,
+    onSkipClickListener: View.OnClickListener,
+    onStartClickListener: View.OnClickListener,
+) {
+    GlifLayoutHelper(this, view).let { helper ->
+        helper.setHeaderText(R.string.security_settings_udfps_enroll_find_sensor_title)
+        helper.setDescriptionText(
+            getText(R.string.security_settings_udfps_enroll_find_sensor_message)
+        )
+    }
+
+    view.getMixin(FooterBarMixin::class.java)!!.let {
+        it.secondaryButton = FooterButton.Builder(this)
+            .setText(R.string.security_settings_fingerprint_enroll_enrolling_skip)
+            .setButtonType(FooterButton.ButtonType.SKIP)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+            .build()
+        it.secondaryButton.setOnClickListener(onSkipClickListener)
+
+        it.primaryButton = FooterButton.Builder(this)
+            .setText(R.string.security_settings_udfps_enroll_find_sensor_start_button)
+            .setButtonType(FooterButton.ButtonType.NEXT)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+        it.primaryButton.setOnClickListener(onStartClickListener)
+    }
+
+    view.findViewById<LottieAnimationView>(R.id.illustration_lottie)!!.let {
+        it.setOnClickListener(onStartClickListener)
+        if (isAccessibilityEnabled) {
+            it.setAnimation(R.raw.udfps_edu_a11y_lottie)
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.java
deleted file mode 100644
index e0b991a..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import android.app.Activity;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel;
-
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-
-/**
- * Fragment which concludes fingerprint enrollment.
- */
-public class FingerprintEnrollFinishFragment extends Fragment {
-
-    private FingerprintEnrollFinishViewModel mViewModel;
-
-    private final View.OnClickListener mAddButtonClickListener =
-            (v) -> mViewModel.onAddButtonClick();
-    private final View.OnClickListener mNextButtonClickListener =
-            (v) -> mViewModel.onNextButtonClick();
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        super.onAttach(context);
-        final ViewModelProvider provider = new ViewModelProvider(getActivity());
-        mViewModel = provider.get(FingerprintEnrollFinishViewModel.class);
-    }
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-
-        GlifLayout view = (GlifLayout) inflater.inflate(
-                mViewModel.canAssumeSfps()
-                        ? R.layout.sfps_enroll_finish
-                        : R.layout.fingerprint_enroll_finish,
-                container,
-                false);
-
-        final Activity activity = getActivity();
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(activity, view);
-
-        glifLayoutHelper.setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title);
-        if (mViewModel.canAssumeSfps() && mViewModel.isAnotherFingerprintEnrollable()) {
-            glifLayoutHelper.setDescriptionText(getString(R.string
-                    .security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message));
-        } else {
-            glifLayoutHelper.setDescriptionText(getString(
-                    R.string.security_settings_fingerprint_enroll_finish_v2_message));
-        }
-
-        final FooterBarMixin footerBarMixin = view.getMixin(FooterBarMixin.class);
-        footerBarMixin.setPrimaryButton(
-                new FooterButton.Builder(activity)
-                        .setText(mViewModel.getRequest().isSuw()
-                                ? R.string.next_label
-                                : R.string.security_settings_fingerprint_enroll_done)
-                        .setListener(mNextButtonClickListener)
-                        .setButtonType(FooterButton.ButtonType.NEXT)
-                        .setTheme(R.style.SudGlifButton_Primary)
-                        .build()
-        );
-        if (mViewModel.isAnotherFingerprintEnrollable()) {
-            footerBarMixin.setSecondaryButton(new FooterButton.Builder(activity)
-                    .setText(R.string.fingerprint_enroll_button_add)
-                    .setListener(mAddButtonClickListener)
-                    .setButtonType(FooterButton.ButtonType.SKIP)
-                    .setTheme(R.style.SudGlifButton_Secondary)
-                    .build());
-        }
-
-        return view;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt
new file mode 100644
index 0000000..2af2dee
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollFinishFragment.kt
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.content.Context
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+
+/**
+ * Fragment which concludes fingerprint enrollment.
+ */
+class FingerprintEnrollFinishFragment : Fragment() {
+
+    private var _viewModel: FingerprintEnrollFinishViewModel? = null
+    private val viewModel: FingerprintEnrollFinishViewModel
+        get() = _viewModel!!
+
+    private val addButtonClickListener =
+        View.OnClickListener { _: View? -> viewModel.onAddButtonClick() }
+
+    private val nextButtonClickListener =
+        View.OnClickListener { _: View? -> viewModel.onNextButtonClick() }
+    override fun onAttach(context: Context) {
+        super.onAttach(context)
+        _viewModel = ViewModelProvider(requireActivity())[
+            FingerprintEnrollFinishViewModel::class.java
+        ]
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ) : View = (inflater.inflate(
+            if (viewModel.canAssumeSfps())
+                R.layout.sfps_enroll_finish
+            else
+                R.layout.fingerprint_enroll_finish,
+            container,
+            false
+        ) as GlifLayout).also {
+            requireActivity().bindFingerprintEnrollFinishFragment(
+                view = it,
+                isSuw = viewModel.request.isSuw,
+                canAssumeSfps = viewModel.canAssumeSfps(),
+                isAnotherFingerprintEnrollable = viewModel.isAnotherFingerprintEnrollable,
+                nextButtonClickListener = nextButtonClickListener,
+                addButtonClickListener = addButtonClickListener
+            )
+        }
+}
+
+fun FragmentActivity.bindFingerprintEnrollFinishFragment(
+    view: GlifLayout,
+    isSuw: Boolean,
+    canAssumeSfps: Boolean,
+    isAnotherFingerprintEnrollable: Boolean,
+    nextButtonClickListener: View.OnClickListener,
+    addButtonClickListener: View.OnClickListener
+) {
+    GlifLayoutHelper(this, view).apply {
+        setHeaderText(R.string.security_settings_fingerprint_enroll_finish_title)
+        setDescriptionText(
+            getString(
+                if (canAssumeSfps && isAnotherFingerprintEnrollable)
+                    R.string.security_settings_fingerprint_enroll_finish_v2_add_fingerprint_message
+                else
+                    R.string.security_settings_fingerprint_enroll_finish_v2_message
+            )
+        )
+    }
+
+    view.getMixin(FooterBarMixin::class.java).also { footer ->
+        footer.primaryButton = FooterButton.Builder(this)
+            .setText(
+                if (isSuw)
+                    R.string.next_label
+                else
+                    R.string.security_settings_fingerprint_enroll_done
+            )
+            .setListener(nextButtonClickListener)
+            .setButtonType(FooterButton.ButtonType.NEXT)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+        if (isAnotherFingerprintEnrollable) {
+            footer.secondaryButton = FooterButton.Builder(this)
+                .setText(R.string.fingerprint_enroll_button_add)
+                .setListener(addButtonClickListener)
+                .setButtonType(FooterButton.ButtonType.SKIP)
+                .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+                .build()
+        }
+    }
+
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.java
deleted file mode 100644
index be1f0bd..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED;
-
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX;
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_OK;
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_UNKNOWN;
-
-import static com.google.android.setupdesign.util.DynamicColorPalette.ColorType.ACCENT;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
-import android.os.Bundle;
-import android.text.Html;
-import android.text.method.LinkMovementMethod;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.StringRes;
-import androidx.fragment.app.Fragment;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel;
-
-import com.google.android.setupcompat.template.FooterBarMixin;
-import com.google.android.setupcompat.template.FooterButton;
-import com.google.android.setupdesign.GlifLayout;
-import com.google.android.setupdesign.template.RequireScrollMixin;
-import com.google.android.setupdesign.util.DeviceHelper;
-import com.google.android.setupdesign.util.DynamicColorPalette;
-
-/**
- * Fingerprint intro onboarding page fragment implementation
- */
-public class FingerprintEnrollIntroFragment extends Fragment {
-
-    private static final String TAG = "FingerprintEnrollIntroFragment";
-
-    private FingerprintEnrollIntroViewModel mViewModel = null;
-
-    private View mView = null;
-    private FooterButton mPrimaryFooterButton = null;
-    private FooterButton mSecondaryFooterButton = null;
-    private final OnClickListener mOnNextClickListener = (v) -> mViewModel.onNextButtonClick();
-    private final OnClickListener mOnSkipOrCancelClickListener =
-            (v) -> mViewModel.onSkipOrCancelButtonClick();
-    private ImageView mIconShield = null;
-    private TextView mFooterMessage6 = null;
-    @Nullable private PorterDuffColorFilter mIconColorFilter;
-
-    @Nullable
-    @Override
-    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
-            @Nullable Bundle savedInstanceState) {
-
-        final Context context = inflater.getContext();
-        mView = inflater.inflate(R.layout.fingerprint_enroll_introduction, container, false);
-
-        final ImageView iconFingerprint = mView.findViewById(R.id.icon_fingerprint);
-        final ImageView iconDeviceLocked = mView.findViewById(R.id.icon_device_locked);
-        final ImageView iconTrashCan = mView.findViewById(R.id.icon_trash_can);
-        final ImageView iconInfo = mView.findViewById(R.id.icon_info);
-        mIconShield = mView.findViewById(R.id.icon_shield);
-        final ImageView iconLink = mView.findViewById(R.id.icon_link);
-        iconFingerprint.getDrawable().setColorFilter(getIconColorFilter(context));
-        iconDeviceLocked.getDrawable().setColorFilter(getIconColorFilter(context));
-        iconTrashCan.getDrawable().setColorFilter(getIconColorFilter(context));
-        iconInfo.getDrawable().setColorFilter(getIconColorFilter(context));
-        mIconShield.getDrawable().setColorFilter(getIconColorFilter(context));
-        iconLink.getDrawable().setColorFilter(getIconColorFilter(context));
-
-        final TextView footerMessage2 = mView.findViewById(R.id.footer_message_2);
-        final TextView footerMessage3 = mView.findViewById(R.id.footer_message_3);
-        final TextView footerMessage4 = mView.findViewById(R.id.footer_message_4);
-        final TextView footerMessage5 = mView.findViewById(R.id.footer_message_5);
-        mFooterMessage6 = mView.findViewById(R.id.footer_message_6);
-        footerMessage2.setText(
-                R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_2);
-        footerMessage3.setText(
-                R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_3);
-        footerMessage4.setText(
-                R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_4);
-        footerMessage5.setText(
-                R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_5);
-        mFooterMessage6.setText(
-                R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_6);
-
-        final TextView footerTitle1 = mView.findViewById(R.id.footer_title_1);
-        final TextView footerTitle2 = mView.findViewById(R.id.footer_title_2);
-        footerTitle1.setText(
-                R.string.security_settings_fingerprint_enroll_introduction_footer_title_1);
-        footerTitle2.setText(
-                R.string.security_settings_fingerprint_enroll_introduction_footer_title_2);
-
-        final TextView footerLink = mView.findViewById(R.id.footer_learn_more);
-        footerLink.setMovementMethod(LinkMovementMethod.getInstance());
-        final String footerLinkStr = getContext().getString(
-                R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more,
-                Html.FROM_HTML_MODE_LEGACY);
-        footerLink.setText(Html.fromHtml(footerLinkStr));
-
-        // footer buttons
-        mPrimaryFooterButton = new FooterButton.Builder(context)
-                .setText(R.string.security_settings_fingerprint_enroll_introduction_agree)
-                .setButtonType(FooterButton.ButtonType.OPT_IN)
-                .setTheme(R.style.SudGlifButton_Primary)
-                .build();
-        mSecondaryFooterButton = new FooterButton.Builder(context)
-                .setButtonType(FooterButton.ButtonType.NEXT)
-                .setTheme(R.style.SudGlifButton_Primary)
-                .build();
-        getFooterBarMixin().setPrimaryButton(mPrimaryFooterButton);
-        getFooterBarMixin().setSecondaryButton(mSecondaryFooterButton, true /* usePrimaryStyle */);
-
-        return mView;
-    }
-
-    @Override
-    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-
-        final Context context = view.getContext();
-
-        mPrimaryFooterButton.setOnClickListener(mOnNextClickListener);
-        mSecondaryFooterButton.setOnClickListener(mOnSkipOrCancelClickListener);
-
-        if (mViewModel.canAssumeUdfps()) {
-            mFooterMessage6.setVisibility(View.VISIBLE);
-            mIconShield.setVisibility(View.VISIBLE);
-        } else {
-            mFooterMessage6.setVisibility(View.GONE);
-            mIconShield.setVisibility(View.GONE);
-        }
-        mSecondaryFooterButton.setText(context,
-                mViewModel.getRequest().isAfterSuwOrSuwSuggestedAction()
-                ? R.string.security_settings_fingerprint_enroll_introduction_cancel
-                : R.string.security_settings_fingerprint_enroll_introduction_no_thanks);
-
-        final GlifLayoutHelper glifLayoutHelper = new GlifLayoutHelper(getActivity(), getLayout());
-        if (mViewModel.isBiometricUnlockDisabledByAdmin()
-                && !mViewModel.isParentalConsentRequired()) {
-            glifLayoutHelper.setHeaderText(
-                    R.string.security_settings_fingerprint_enroll_introduction_title_unlock_disabled
-            );
-            glifLayoutHelper.setDescriptionText(getDescriptionDisabledByAdmin(context));
-        } else {
-            glifLayoutHelper.setHeaderText(
-                    R.string.security_settings_fingerprint_enroll_introduction_title);
-            glifLayoutHelper.setDescriptionText(getString(
-                    R.string.security_settings_fingerprint_enroll_introduction_v3_message,
-                    DeviceHelper.getDeviceName(context)));
-        }
-        observePageStatusLiveDataIfNeed();
-    }
-
-    private void observePageStatusLiveDataIfNeed() {
-        final LiveData<FingerprintEnrollIntroStatus> statusLiveData =
-                mViewModel.getPageStatusLiveData();
-        final FingerprintEnrollIntroStatus status = statusLiveData.getValue();
-        if (status != null && status.hasScrollToBottom()) {
-            // Do not requireScrollWithButton() again when "I agree" or "Done" button is visible,
-            // because if we requireScrollWithButton() again, it will become "More" after scroll-up.
-            return;
-        }
-
-        final RequireScrollMixin requireScrollMixin = getLayout()
-                .getMixin(RequireScrollMixin.class);
-        requireScrollMixin.requireScrollWithButton(getActivity(), mPrimaryFooterButton,
-                getMoreButtonTextRes(), mOnNextClickListener);
-
-        // Always set true to setHasScrolledToBottom() before registering listener through
-        // setOnRequireScrollStateChangedListener(), because listener will not be called if first
-        // scrollNeeded is true
-        mViewModel.setHasScrolledToBottom(true);
-        requireScrollMixin.setOnRequireScrollStateChangedListener(
-                scrollNeeded -> mViewModel.setHasScrolledToBottom(!scrollNeeded));
-        statusLiveData.observe(this, this::updateFooterButtons);
-    }
-
-    @Override
-    public void onAttach(@NonNull Context context) {
-        mViewModel = new ViewModelProvider(getActivity())
-                .get(FingerprintEnrollIntroViewModel.class);
-        super.onAttach(context);
-    }
-
-    @NonNull
-    private PorterDuffColorFilter getIconColorFilter(@NonNull Context context) {
-        if (mIconColorFilter == null) {
-            mIconColorFilter = new PorterDuffColorFilter(
-                    DynamicColorPalette.getColor(context, ACCENT),
-                    PorterDuff.Mode.SRC_IN);
-        }
-        return mIconColorFilter;
-    }
-
-    private GlifLayout getLayout() {
-        return mView.findViewById(R.id.setup_wizard_layout);
-    }
-
-    @NonNull
-    private FooterBarMixin getFooterBarMixin() {
-        final GlifLayout layout = getLayout();
-        return layout.getMixin(FooterBarMixin.class);
-    }
-
-    @NonNull
-    private String getDescriptionDisabledByAdmin(@NonNull Context context) {
-        final int defaultStrId =
-                R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled;
-
-        final DevicePolicyManager devicePolicyManager = getActivity()
-                .getSystemService(DevicePolicyManager.class);
-        if (devicePolicyManager != null) {
-            return devicePolicyManager.getResources().getString(FINGERPRINT_UNLOCK_DISABLED,
-                    () -> context.getString(defaultStrId));
-        } else {
-            Log.w(TAG, "getDescriptionDisabledByAdmin, null device policy manager res");
-            return "";
-        }
-    }
-
-    void updateFooterButtons(@NonNull FingerprintEnrollIntroStatus status) {
-        @StringRes final int scrollToBottomPrimaryResId =
-                status.getEnrollableStatus() == FINGERPRINT_ENROLLABLE_OK
-                        ? R.string.security_settings_fingerprint_enroll_introduction_agree
-                        : R.string.done;
-
-        mPrimaryFooterButton.setText(getContext(),
-                status.hasScrollToBottom() ? scrollToBottomPrimaryResId : getMoreButtonTextRes());
-        mSecondaryFooterButton.setVisibility(
-                status.hasScrollToBottom() ? View.VISIBLE : View.INVISIBLE);
-
-        final TextView errorTextView = mView.findViewById(R.id.error_text);
-        switch (status.getEnrollableStatus()) {
-            case FINGERPRINT_ENROLLABLE_OK:
-                errorTextView.setText(null);
-                errorTextView.setVisibility(View.GONE);
-                break;
-            case FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX:
-                errorTextView.setText(R.string.fingerprint_intro_error_max);
-                errorTextView.setVisibility(View.VISIBLE);
-                break;
-            case FINGERPRINT_ENROLLABLE_UNKNOWN:
-                // default case, do nothing.
-        }
-    }
-
-    @StringRes
-    private int getMoreButtonTextRes() {
-        return R.string.security_settings_face_enroll_introduction_more;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt
new file mode 100644
index 0000000..d1b3799
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollIntroFragment.kt
@@ -0,0 +1,329 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.app.admin.DevicePolicyManager
+import android.app.admin.DevicePolicyResources.Strings.Settings.FINGERPRINT_UNLOCK_DISABLED
+import android.content.Context
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffColorFilter
+import android.os.Bundle
+import android.text.Html
+import android.text.method.LinkMovementMethod
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.ScrollView
+import android.widget.TextView
+import androidx.annotation.StringRes
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_UNKNOWN
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import com.google.android.setupdesign.template.RequireScrollMixin
+import com.google.android.setupdesign.util.DeviceHelper
+import com.google.android.setupdesign.util.DynamicColorPalette
+import com.google.android.setupdesign.util.DynamicColorPalette.ColorType.ACCENT
+import java.util.function.Supplier
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.launch
+
+/**
+ * Fingerprint intro onboarding page fragment implementation
+ */
+class FingerprintEnrollIntroFragment : Fragment() {
+
+    private val viewModelProvider: ViewModelProvider
+        get() = ViewModelProvider(requireActivity())
+
+    private var _viewModel: FingerprintEnrollIntroViewModel? = null
+    private val viewModel: FingerprintEnrollIntroViewModel
+        get() = _viewModel!!
+
+    private var introView: GlifLayout? = null
+
+    private var primaryFooterButton: FooterButton? = null
+
+    private var secondaryFooterButton: FooterButton? = null
+
+    private val onNextClickListener =
+        View.OnClickListener { _: View? ->
+            activity?.lifecycleScope?.let {
+                viewModel.onNextButtonClick(it)
+            }
+        }
+
+    private val onSkipOrCancelClickListener =
+        View.OnClickListener { _: View? ->
+            activity?.lifecycleScope?.let {
+                viewModel.onSkipOrCancelButtonClick(it)
+            }
+        }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        introView = inflater.inflate(
+            R.layout.fingerprint_enroll_introduction,
+            container,
+            false
+        ) as GlifLayout
+        return introView!!
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        requireActivity().bindFingerprintEnrollIntroView(
+            view = introView!!,
+            canAssumeUdfps = viewModel.canAssumeUdfps,
+            isBiometricUnlockDisabledByAdmin = viewModel.isBiometricUnlockDisabledByAdmin,
+            isParentalConsentRequired = viewModel.isParentalConsentRequired,
+            descriptionDisabledByAdminSupplier = { getDescriptionDisabledByAdmin(view.context) }
+        )
+    }
+
+    override fun onStart() {
+        val context: Context = requireContext()
+        val footerBarMixin: FooterBarMixin = footerBarMixin
+        viewModel.updateEnrollableStatus(lifecycleScope)
+        initPrimaryFooterButton(context, footerBarMixin)
+        initSecondaryFooterButton(context, footerBarMixin)
+        collectPageStatusFlowIfNeed()
+        super.onStart()
+    }
+
+    private fun initPrimaryFooterButton(
+        context: Context,
+        footerBarMixin: FooterBarMixin
+    ) {
+        if (footerBarMixin.primaryButton != null) {
+            return
+        }
+        primaryFooterButton = FooterButton.Builder(context)
+            .setText(R.string.security_settings_fingerprint_enroll_introduction_agree)
+            .setButtonType(FooterButton.ButtonType.OPT_IN)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+            .also {
+                it.setOnClickListener(onNextClickListener)
+                footerBarMixin.primaryButton = it
+            }
+    }
+
+    private fun initSecondaryFooterButton(
+        context: Context,
+        footerBarMixin: FooterBarMixin
+    ) {
+        if (footerBarMixin.secondaryButton != null) {
+            return
+        }
+        secondaryFooterButton = FooterButton.Builder(context)
+            .setText(
+                if (viewModel.request.isAfterSuwOrSuwSuggestedAction)
+                    R.string.security_settings_fingerprint_enroll_introduction_cancel
+                else
+                    R.string.security_settings_fingerprint_enroll_introduction_no_thanks
+            )
+            .setButtonType(FooterButton.ButtonType.NEXT)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+            .also {
+                it.setOnClickListener(onSkipOrCancelClickListener)
+                footerBarMixin.setSecondaryButton(it, true /* usePrimaryStyle */)
+            }
+    }
+
+    private fun collectPageStatusFlowIfNeed() {
+        lifecycleScope.launch {
+            val status = viewModel.pageStatusFlow.first()
+            Log.d(TAG, "collectPageStatusFlowIfNeed status:$status")
+            if (status.hasScrollToBottom()
+                || status.enrollableStatus === FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+            ) {
+                // Update once and do not requireScrollWithButton() again when page has
+                // scrolled to bottom or User has enrolled at least a fingerprint, because if
+                // we requireScrollWithButton() again, primary button will become "More" after
+                // scrolling.
+                updateFooterButtons(status)
+            } else {
+                introView!!.getMixin(RequireScrollMixin::class.java).let {
+                    it.requireScrollWithButton(
+                        requireActivity(),
+                        primaryFooterButton!!,
+                        moreButtonTextRes,
+                        onNextClickListener
+                    )
+                    it.setOnRequireScrollStateChangedListener { scrollNeeded: Boolean ->
+                        viewModel.setHasScrolledToBottom(!scrollNeeded, lifecycleScope)
+                    }
+                }
+                repeatOnLifecycle(Lifecycle.State.STARTED) {
+                    viewModel.pageStatusFlow.collect(
+                        this@FingerprintEnrollIntroFragment::updateFooterButtons
+                    )
+                }
+            }
+        }
+    }
+
+    override fun onAttach(context: Context) {
+        _viewModel = viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
+        super.onAttach(context)
+    }
+
+    private val footerBarMixin: FooterBarMixin
+        get() = introView!!.getMixin(FooterBarMixin::class.java)
+
+    private fun getDescriptionDisabledByAdmin(context: Context): String? {
+        val defaultStrId: Int =
+            R.string.security_settings_fingerprint_enroll_introduction_message_unlock_disabled
+        val devicePolicyManager: DevicePolicyManager =
+            checkNotNull(requireActivity().getSystemService(DevicePolicyManager::class.java))
+
+        return devicePolicyManager.resources.getString(FINGERPRINT_UNLOCK_DISABLED) {
+            context.getString(defaultStrId)
+        }
+    }
+
+    private fun updateFooterButtons(status: FingerprintEnrollIntroStatus) {
+        if (DEBUG) {
+            Log.d(TAG, "updateFooterButtons($status)")
+        }
+        primaryFooterButton!!.setText(
+            context,
+            if (status.enrollableStatus === FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
+                R.string.done
+            else if (status.hasScrollToBottom())
+                R.string.security_settings_fingerprint_enroll_introduction_agree
+            else
+                moreButtonTextRes
+        )
+        secondaryFooterButton!!.visibility =
+            if (status.hasScrollToBottom()
+                && status.enrollableStatus !== FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+                )
+                View.VISIBLE
+            else
+                View.INVISIBLE
+
+        view!!.requireViewById<TextView>(R.id.error_text).let {
+            when (status.enrollableStatus) {
+                FINGERPRINT_ENROLLABLE_OK -> {
+                    it.text = null
+                    it.visibility = View.GONE
+                }
+
+                FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX -> {
+                    it.setText(R.string.fingerprint_intro_error_max)
+                    it.visibility = View.VISIBLE
+                }
+
+                FINGERPRINT_ENROLLABLE_UNKNOWN -> {}
+            }
+        }
+    }
+
+    @get:StringRes
+    private val moreButtonTextRes: Int
+        get() = R.string.security_settings_face_enroll_introduction_more
+
+    companion object {
+        private const val TAG = "FingerprintEnrollIntroFragment"
+        private const val DEBUG = false
+    }
+}
+
+fun FragmentActivity.bindFingerprintEnrollIntroView(
+    view: GlifLayout,
+    canAssumeUdfps: Boolean,
+    isBiometricUnlockDisabledByAdmin: Boolean,
+    isParentalConsentRequired: Boolean,
+    descriptionDisabledByAdminSupplier: Supplier<String?>
+) {
+    val context = view.context
+
+    val iconFingerprint = view.findViewById<ImageView>(R.id.icon_fingerprint)!!
+    val iconDeviceLocked = view.findViewById<ImageView>(R.id.icon_device_locked)!!
+    val iconTrashCan = view.findViewById<ImageView>(R.id.icon_trash_can)!!
+    val iconInfo = view.findViewById<ImageView>(R.id.icon_info)!!
+    val iconShield = view.findViewById<ImageView>(R.id.icon_shield)!!
+    val iconLink = view.findViewById<ImageView>(R.id.icon_link)!!
+    val footerMessage6 = view.findViewById<TextView>(R.id.footer_message_6)!!
+
+    PorterDuffColorFilter(
+        DynamicColorPalette.getColor(context, ACCENT),
+        PorterDuff.Mode.SRC_IN
+    ).let { colorFilter ->
+        iconFingerprint.drawable.colorFilter = colorFilter
+        iconDeviceLocked.drawable.colorFilter = colorFilter
+        iconTrashCan.drawable.colorFilter = colorFilter
+        iconInfo.drawable.colorFilter = colorFilter
+        iconShield.drawable.colorFilter = colorFilter
+        iconLink.drawable.colorFilter = colorFilter
+    }
+
+    view.findViewById<TextView>(R.id.footer_learn_more)!!.let { learnMore ->
+        learnMore.movementMethod = LinkMovementMethod.getInstance()
+        val footerLinkStr: String = context.getString(
+            R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more,
+            Html.FROM_HTML_MODE_LEGACY
+        )
+        learnMore.text = Html.fromHtml(footerLinkStr)
+    }
+
+    if (canAssumeUdfps) {
+        footerMessage6.visibility = View.VISIBLE
+        iconShield.visibility = View.VISIBLE
+    } else {
+        footerMessage6.visibility = View.GONE
+        iconShield.visibility = View.GONE
+    }
+    val glifLayoutHelper = GlifLayoutHelper(this, view)
+    if (isBiometricUnlockDisabledByAdmin && !isParentalConsentRequired) {
+        glifLayoutHelper.setHeaderText(
+            R.string.security_settings_fingerprint_enroll_introduction_title_unlock_disabled
+        )
+        glifLayoutHelper.setDescriptionText(descriptionDisabledByAdminSupplier.get())
+    } else {
+        glifLayoutHelper.setHeaderText(
+            R.string.security_settings_fingerprint_enroll_introduction_title
+        )
+        glifLayoutHelper.setDescriptionText(
+            getString(
+                R.string.security_settings_fingerprint_enroll_introduction_v3_message,
+                DeviceHelper.getDeviceName(context)
+            )
+        )
+    }
+
+    view.findViewById<ScrollView>(com.google.android.setupdesign.R.id.sud_scroll_view)
+        ?.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java
deleted file mode 100644
index 4a09eb9..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.java
+++ /dev/null
@@ -1,628 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult;
-import static androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY;
-
-import static com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CHALLENGE_GENERATOR_KEY;
-import static com.android.settings.biometrics2.factory.BiometricsViewModelFactory.ENROLLMENT_REQUEST_KEY;
-import static com.android.settings.biometrics2.factory.BiometricsViewModelFactory.USER_ID_KEY;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_IS_GENERATING_CHALLENGE;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_VALID;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.ErrorDialogData;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingAction;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintErrorDialogAction;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorAction;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FingerprintEnrollFinishAction;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FingerprintEnrollIntroAction;
-
-import android.annotation.StyleRes;
-import android.app.Application;
-import android.content.Intent;
-import android.content.res.ColorStateList;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.graphics.Color;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.util.Log;
-
-import androidx.activity.result.ActivityResult;
-import androidx.activity.result.ActivityResultCallback;
-import androidx.activity.result.ActivityResultLauncher;
-import androidx.annotation.ColorInt;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-import androidx.lifecycle.viewmodel.CreationExtras;
-import androidx.lifecycle.viewmodel.MutableCreationExtras;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.biometrics.BiometricEnrollBase;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.factory.BiometricsViewModelFactory;
-import com.android.settings.biometrics2.ui.model.CredentialModel;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.FingerprintChallengeGenerator;
-import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel;
-import com.android.settings.overlay.FeatureFactory;
-
-import com.google.android.setupdesign.util.ThemeHelper;
-
-/**
- * Fingerprint enrollment activity implementation
- */
-public class FingerprintEnrollmentActivity extends FragmentActivity {
-
-    private static final boolean DEBUG = false;
-    private static final String TAG = "FingerprintEnrollmentActivity";
-
-    private static final String INTRO_TAG = "intro";
-    private static final String FIND_UDFPS_TAG = "find-udfps";
-    private static final String FIND_SFPS_TAG = "find-sfps";
-    private static final String FIND_RFPS_TAG = "find-rfps";
-    private static final String ENROLLING_UDFPS_TAG = "enrolling-udfps";
-    private static final String ENROLLING_SFPS_TAG = "enrolling-sfps";
-    private static final String ENROLLING_RFPS_TAG = "enrolling-rfps";
-    private static final String FINISH_TAG = "finish";
-    private static final String SKIP_SETUP_FIND_FPS_DIALOG_TAG = "skip-setup-dialog";
-    private static final String ENROLLING_ERROR_DIALOG_TAG = "enrolling-error-dialog";
-
-    protected static final int LAUNCH_CONFIRM_LOCK_ACTIVITY = 1;
-
-    // This flag is used for addBackStack(), we do not save it in ViewModel because it is just used
-    // during FragmentManager calls
-    private boolean mIsFirstFragmentAdded = false;
-
-    private ViewModelProvider mViewModelProvider;
-    private FingerprintEnrollmentViewModel mViewModel;
-    private AutoCredentialViewModel mAutoCredentialViewModel;
-    private final Observer<Integer> mIntroActionObserver = action -> {
-        if (DEBUG) {
-            Log.d(TAG, "mIntroActionObserver(" + action + ")");
-        }
-        if (action != null) {
-            onIntroAction(action);
-        }
-    };
-    private final Observer<Integer> mFindSensorActionObserver = action -> {
-        if (DEBUG) {
-            Log.d(TAG, "mFindSensorActionObserver(" + action + ")");
-        }
-        if (action != null) {
-            onFindSensorAction(action);
-        }
-    };
-    private final Observer<Integer> mEnrollingActionObserver = action -> {
-        if (DEBUG) {
-            Log.d(TAG, "mEnrollingActionObserver(" + action + ")");
-        }
-        if (action != null) {
-            onEnrollingAction(action);
-        }
-    };
-    private final Observer<ErrorDialogData> mEnrollingErrorDialogObserver = data -> {
-        if (DEBUG) {
-            Log.d(TAG, "mEnrollingErrorDialogObserver(" + data + ")");
-        }
-        if (data != null) {
-            new FingerprintEnrollEnrollingErrorDialog().show(getSupportFragmentManager(),
-                    ENROLLING_ERROR_DIALOG_TAG);
-        }
-    };
-    private final Observer<Integer> mEnrollingErrorDialogActionObserver = action -> {
-        if (DEBUG) {
-            Log.d(TAG, "mEnrollingErrorDialogActionObserver(" + action + ")");
-        }
-        if (action != null) {
-            onEnrollingErrorDialogAction(action);
-        }
-    };
-    private final Observer<Integer> mFinishActionObserver = action -> {
-        if (DEBUG) {
-            Log.d(TAG, "mFinishActionObserver(" + action + ")");
-        }
-        if (action != null) {
-            onFinishAction(action);
-        }
-    };
-    private final ActivityResultCallback<ActivityResult> mChooseLockResultCallback =
-            result -> onChooseOrConfirmLockResult(true /* isChooseLock */, result);
-    private final ActivityResultLauncher<Intent> mChooseLockLauncher =
-            registerForActivityResult(new StartActivityForResult(), mChooseLockResultCallback);
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        mViewModelProvider = new ViewModelProvider(this);
-
-        mViewModel = mViewModelProvider.get(FingerprintEnrollmentViewModel.class);
-        mViewModel.setSavedInstanceState(savedInstanceState);
-
-        mAutoCredentialViewModel = mViewModelProvider.get(AutoCredentialViewModel.class);
-        mAutoCredentialViewModel.setCredentialModel(savedInstanceState, getIntent());
-
-        // Theme
-        setTheme(mViewModel.getRequest().getTheme());
-        ThemeHelper.trySetDynamicColor(this);
-        getWindow().setStatusBarColor(android.graphics.Color.TRANSPARENT);
-
-        // fragment
-        setContentView(R.layout.biometric_enrollment_container);
-
-        final Fragment fragment = getSupportFragmentManager().findFragmentById(
-                R.id.fragment_container_view);
-        if (DEBUG) {
-            Log.d(TAG, "onCreate() has savedInstance:" + (savedInstanceState != null)
-                    + ", fragment:" + fragment);
-        }
-        if (fragment == null) {
-            checkCredential();
-            final EnrollmentRequest request = mViewModel.getRequest();
-            if (request.isSkipFindSensor()) {
-                startEnrollingFragment();
-            } else if (request.isSkipIntro()) {
-                startFindSensorFragment();
-            } else {
-                startIntroFragment();
-            }
-        } else {
-            final String tag = fragment.getTag();
-            if (INTRO_TAG.equals(tag)) {
-                attachIntroViewModel();
-            } else if (FIND_UDFPS_TAG.equals(tag) || FIND_SFPS_TAG.equals(tag)
-                    || FIND_RFPS_TAG.equals(tag)) {
-                attachFindSensorViewModel();
-                attachIntroViewModel();
-            } else if (ENROLLING_UDFPS_TAG.equals(tag) || ENROLLING_SFPS_TAG.equals(tag)
-                    || ENROLLING_RFPS_TAG.equals(tag)) {
-                attachEnrollingViewModel();
-                attachFindSensorViewModel();
-                attachIntroViewModel();
-            } else if (FINISH_TAG.equals(tag)) {
-                attachFinishViewModel();
-                attachFindSensorViewModel();
-                attachIntroViewModel();
-            } else {
-                Log.e(TAG, "fragment tag " + tag + " not found");
-                finish();
-                return;
-            }
-        }
-
-        // observe LiveData
-        mViewModel.getSetResultLiveData().observe(this, this::onSetActivityResult);
-
-        mAutoCredentialViewModel.getGenerateChallengeFailedLiveData().observe(this,
-                this::onGenerateChallengeFailed);
-    }
-
-    private void startFragment(@NonNull Class<? extends Fragment> fragmentClass,
-            @NonNull String tag) {
-        if (!mIsFirstFragmentAdded) {
-            getSupportFragmentManager().beginTransaction()
-                    .setReorderingAllowed(true)
-                    .replace(R.id.fragment_container_view, fragmentClass, null, tag)
-                    .commit();
-            mIsFirstFragmentAdded = true;
-        } else {
-            getSupportFragmentManager().beginTransaction()
-                    .setReorderingAllowed(true)
-                    .setCustomAnimations(R.anim.shared_x_axis_activity_open_enter_dynamic_color,
-                            R.anim.shared_x_axis_activity_open_exit,
-                            R.anim.shared_x_axis_activity_close_enter_dynamic_color,
-                            R.anim.shared_x_axis_activity_close_exit)
-                    .replace(R.id.fragment_container_view, fragmentClass, null, tag)
-                    .addToBackStack(tag)
-                    .commit();
-        }
-    }
-
-    private void startIntroFragment() {
-        attachIntroViewModel();
-        startFragment(FingerprintEnrollIntroFragment.class, INTRO_TAG);
-    }
-
-    private void attachIntroViewModel() {
-        final EnrollmentRequest request = mViewModel.getRequest();
-        if (request.isSkipIntro() || request.isSkipFindSensor()) {
-            return;
-        }
-
-        final FingerprintEnrollIntroViewModel introViewModel =
-                mViewModelProvider.get(FingerprintEnrollIntroViewModel.class);
-
-        // Clear ActionLiveData in FragmentViewModel to prevent getting previous action during
-        // recreate, like press 'Agree' then press 'back' in FingerprintEnrollFindSensor activity.
-        introViewModel.clearActionLiveData();
-        introViewModel.getActionLiveData().observe(this, mIntroActionObserver);
-    }
-
-    // We need to make sure token is valid before entering find sensor page
-    private void startFindSensorFragment() {
-        // Always setToken into progressViewModel even it is not necessary action for UDFPS
-        mViewModelProvider.get(FingerprintEnrollProgressViewModel.class)
-                .setToken(mAutoCredentialViewModel.getToken());
-
-        attachFindSensorViewModel();
-
-        final String tag;
-        final Class<? extends Fragment> fragmentClass;
-        if (mViewModel.canAssumeUdfps()) {
-            tag = FIND_UDFPS_TAG;
-            fragmentClass = FingerprintEnrollFindUdfpsFragment.class;
-        } else if (mViewModel.canAssumeSfps()) {
-            tag = FIND_SFPS_TAG;
-            fragmentClass = FingerprintEnrollFindSfpsFragment.class;
-        } else {
-            tag = FIND_RFPS_TAG;
-            fragmentClass = FingerprintEnrollFindRfpsFragment.class;
-        }
-        startFragment(fragmentClass, tag);
-    }
-
-    private void attachFindSensorViewModel() {
-        if (mViewModel.getRequest().isSkipFindSensor()) {
-            return;
-        }
-
-        final FingerprintEnrollFindSensorViewModel findSensorViewModel =
-                mViewModelProvider.get(FingerprintEnrollFindSensorViewModel.class);
-
-        // Clear ActionLiveData in FragmentViewModel to prevent getting previous action during
-        // recreate, like press 'Start' then press 'back' in FingerprintEnrollEnrolling activity.
-        findSensorViewModel.clearActionLiveData();
-        findSensorViewModel.getActionLiveData().observe(this, mFindSensorActionObserver);
-    }
-
-    private void startEnrollingFragment() {
-        // Always setToken into progressViewModel even it is not necessary action for SFPS or RFPS
-        mViewModelProvider.get(FingerprintEnrollProgressViewModel.class)
-                .setToken(mAutoCredentialViewModel.getToken());
-
-        attachEnrollingViewModel();
-
-        final String tag;
-        final Class<? extends Fragment> fragmentClass;
-        if (mViewModel.canAssumeUdfps()) {
-            tag = ENROLLING_UDFPS_TAG;
-            fragmentClass = FingerprintEnrollEnrollingUdfpsFragment.class;
-        } else if (mViewModel.canAssumeSfps()) {
-            tag = ENROLLING_SFPS_TAG;
-            fragmentClass = FingerprintEnrollEnrollingSfpsFragment.class;
-        } else {
-            tag = ENROLLING_RFPS_TAG;
-            fragmentClass = FingerprintEnrollEnrollingRfpsFragment.class;
-        }
-        startFragment(fragmentClass, tag);
-    }
-
-    private void attachEnrollingViewModel() {
-        final FingerprintEnrollEnrollingViewModel enrollingViewModel =
-                mViewModelProvider.get(FingerprintEnrollEnrollingViewModel.class);
-        enrollingViewModel.clearActionLiveData();
-        enrollingViewModel.getActionLiveData().observe(this, mEnrollingActionObserver);
-        enrollingViewModel.getErrorDialogLiveData().observe(this, mEnrollingErrorDialogObserver);
-        enrollingViewModel.getErrorDialogActionLiveData().observe(this,
-                mEnrollingErrorDialogActionObserver);
-    }
-
-    private void startFinishFragment() {
-        mViewModel.setIsNewFingerprintAdded();
-        attachFinishViewModel();
-
-        getSupportFragmentManager().popBackStack();
-        if (getSupportFragmentManager().getBackStackEntryCount() == 0) {
-            // Replace enrolling page
-            getSupportFragmentManager().beginTransaction()
-                    .setReorderingAllowed(true)
-                    .setCustomAnimations(R.anim.shared_x_axis_activity_open_enter_dynamic_color,
-                            R.anim.shared_x_axis_activity_open_exit,
-                            R.anim.shared_x_axis_activity_close_enter_dynamic_color,
-                            R.anim.shared_x_axis_activity_close_exit)
-                    .replace(R.id.fragment_container_view, FingerprintEnrollFinishFragment.class,
-                            null, FINISH_TAG)
-                    .commit();
-        } else {
-            // Remove Enrolling page from backstack, and add Finish page. Latest backstack will
-            // be changed from Intro->FindSensor->Enrolling to Intro->FindSensor->Finish
-            getSupportFragmentManager().beginTransaction()
-                    .setReorderingAllowed(true)
-                    .setCustomAnimations(R.anim.shared_x_axis_activity_open_enter_dynamic_color,
-                            R.anim.shared_x_axis_activity_open_exit,
-                            R.anim.shared_x_axis_activity_close_enter_dynamic_color,
-                            R.anim.shared_x_axis_activity_close_exit)
-                    .replace(R.id.fragment_container_view, FingerprintEnrollFinishFragment.class,
-                            null, FINISH_TAG)
-                    .addToBackStack(FINISH_TAG)
-                    .commit();
-        }
-    }
-
-    private void attachFinishViewModel() {
-        final FingerprintEnrollFinishViewModel viewModel =
-                mViewModelProvider.get(FingerprintEnrollFinishViewModel.class);
-        viewModel.clearActionLiveData();
-        viewModel.getActionLiveData().observe(this, mFinishActionObserver);
-    }
-
-    private void onGenerateChallengeFailed(@NonNull Boolean ignoredBoolean) {
-        onSetActivityResult(new ActivityResult(RESULT_CANCELED, null));
-    }
-
-    private void onSetActivityResult(@NonNull ActivityResult result) {
-        final Bundle challengeExtras = mAutoCredentialViewModel.createGeneratingChallengeExtras();
-        final ActivityResult overrideResult = mViewModel.getOverrideActivityResult(
-                result, challengeExtras);
-        if (DEBUG) {
-            Log.d(TAG, "onSetActivityResult(" + result + "), override:" + overrideResult
-                    + ") challengeExtras:" + challengeExtras);
-        }
-        setResult(overrideResult.getResultCode(), overrideResult.getData());
-        finish();
-    }
-
-    private void checkCredential() {
-        switch (mAutoCredentialViewModel.checkCredential()) {
-            case CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK: {
-                final Intent intent = mAutoCredentialViewModel.createChooseLockIntent(this,
-                        mViewModel.getRequest().isSuw(), mViewModel.getRequest().getSuwExtras());
-                if (!mViewModel.isWaitingActivityResult().compareAndSet(false, true)) {
-                    Log.w(TAG, "chooseLock, fail to set isWaiting flag to true");
-                }
-                mChooseLockLauncher.launch(intent);
-                return;
-            }
-            case CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK: {
-                final boolean launched = mAutoCredentialViewModel.createConfirmLockLauncher(
-                        this,
-                        LAUNCH_CONFIRM_LOCK_ACTIVITY,
-                        getString(R.string.security_settings_fingerprint_preference_title)
-                ).launch();
-                if (!launched) {
-                    // This shouldn't happen, as we should only end up at this step if a lock thingy
-                    // is already set.
-                    Log.e(TAG, "confirmLock, launched is true");
-                    finish();
-                } else if (!mViewModel.isWaitingActivityResult().compareAndSet(false, true)) {
-                    Log.w(TAG, "confirmLock, fail to set isWaiting flag to true");
-                }
-                return;
-            }
-            case CREDENTIAL_VALID:
-            case CREDENTIAL_IS_GENERATING_CHALLENGE: {
-                // Do nothing
-            }
-        }
-    }
-
-    private void onChooseOrConfirmLockResult(boolean isChooseLock,
-            @NonNull ActivityResult activityResult) {
-        if (!mViewModel.isWaitingActivityResult().compareAndSet(true, false)) {
-            Log.w(TAG, "isChooseLock:" + isChooseLock + ", fail to unset waiting flag");
-        }
-        if (mAutoCredentialViewModel.checkNewCredentialFromActivityResult(
-                isChooseLock, activityResult)) {
-            overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
-        } else {
-            onSetActivityResult(activityResult);
-        }
-    }
-
-    private void onIntroAction(@FingerprintEnrollIntroAction int action) {
-        switch (action) {
-            case FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH: {
-                onSetActivityResult(
-                        new ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null));
-                return;
-            }
-            case FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL: {
-                onSetActivityResult(
-                        new ActivityResult(BiometricEnrollBase.RESULT_SKIP, null));
-                return;
-            }
-            case FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL: {
-                startFindSensorFragment();
-            }
-        }
-    }
-
-    private void onFindSensorAction(@FingerprintEnrollFindSensorAction int action) {
-        switch (action) {
-            case FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP: {
-                onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_SKIP, null));
-                return;
-            }
-            case FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG: {
-                new SkipSetupFindFpsDialog().show(getSupportFragmentManager(),
-                        SKIP_SETUP_FIND_FPS_DIALOG_TAG);
-                return;
-            }
-            case FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START: {
-                startEnrollingFragment();
-            }
-        }
-    }
-
-    private void onEnrollingAction(@FingerprintEnrollEnrollingAction int action) {
-        switch (action) {
-            case FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE: {
-                startFinishFragment();
-                break;
-            }
-            case FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP: {
-                onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_SKIP, null));
-                break;
-            }
-            case FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG: {
-                new FingerprintEnrollEnrollingIconTouchDialog().show(getSupportFragmentManager(),
-                        SKIP_SETUP_FIND_FPS_DIALOG_TAG);
-                break;
-            }
-            case FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED: {
-                if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
-                    getSupportFragmentManager().popBackStack();
-                } else {
-                    onSetActivityResult(new ActivityResult(RESULT_CANCELED, null));
-                }
-                break;
-            }
-        }
-    }
-
-    private void onEnrollingErrorDialogAction(@FingerprintErrorDialogAction int action) {
-        switch (action) {
-            case FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH:
-                onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null));
-                break;
-            case FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT:
-                onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null));
-                break;
-        }
-    }
-
-    private void onFinishAction(@FingerprintEnrollFinishAction int action) {
-        switch (action) {
-            case FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK: {
-                startEnrollingFragment();
-                break;
-            }
-            case FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK: {
-                final Intent data;
-                if (mViewModel.getRequest().isSuw()) {
-                    data = new Intent();
-                    data.putExtras(mViewModel.getSuwFingerprintCountExtra(
-                            mAutoCredentialViewModel.getUserId()));
-                } else {
-                    data = null;
-                }
-                onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_FINISHED, data));
-                break;
-            }
-        }
-    }
-
-    @Override
-    protected void onPause() {
-        super.onPause();
-        mViewModel.checkFinishActivityDuringOnPause(isFinishing(), isChangingConfigurations());
-    }
-
-    @Override
-    protected void onDestroy() {
-        mViewModel.updateFingerprintSuggestionEnableState(mAutoCredentialViewModel.getUserId());
-        super.onDestroy();
-    }
-
-    @Override
-    protected void onApplyThemeResource(Resources.Theme theme, @StyleRes int resid, boolean first) {
-        theme.applyStyle(R.style.SetupWizardPartnerResource, true);
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    @Override
-    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
-        if (requestCode == LAUNCH_CONFIRM_LOCK_ACTIVITY) {
-            onChooseOrConfirmLockResult(false, new ActivityResult(resultCode, data));
-            return;
-        }
-        super.onActivityResult(requestCode, resultCode, data);
-    }
-
-    @NonNull
-    @Override
-    public CreationExtras getDefaultViewModelCreationExtras() {
-        final Application application =
-                super.getDefaultViewModelCreationExtras().get(APPLICATION_KEY);
-        final MutableCreationExtras ret = new MutableCreationExtras();
-        ret.set(APPLICATION_KEY, application);
-
-        final FingerprintRepository repository = FeatureFactory.getFactory(application)
-                .getBiometricsRepositoryProvider().getFingerprintRepository(application);
-        ret.set(CHALLENGE_GENERATOR_KEY, new FingerprintChallengeGenerator(repository));
-
-        ret.set(ENROLLMENT_REQUEST_KEY, new EnrollmentRequest(getIntent(),
-                getApplicationContext()));
-
-        Bundle extras = getIntent().getExtras();
-        final CredentialModel credentialModel = new CredentialModel(extras,
-                SystemClock.elapsedRealtimeClock());
-        ret.set(USER_ID_KEY, credentialModel.getUserId());
-
-        return ret;
-    }
-
-    @NonNull
-    @Override
-    public ViewModelProvider.Factory getDefaultViewModelProviderFactory() {
-        return new BiometricsViewModelFactory();
-    }
-
-    @Override
-    public void onAttachedToWindow() {
-        super.onAttachedToWindow();
-        getWindow().setStatusBarColor(getBackgroundColor());
-    }
-
-    @ColorInt
-    private int getBackgroundColor() {
-        final ColorStateList stateList = Utils.getColorAttr(this, android.R.attr.windowBackground);
-        return stateList != null ? stateList.getDefaultColor() : Color.TRANSPARENT;
-    }
-
-    @Override
-    public void onConfigurationChanged(@NonNull Configuration newConfig) {
-        mViewModelProvider.get(DeviceFoldedViewModel.class).onConfigurationChanged(newConfig);
-        super.onConfigurationChanged(newConfig);
-    }
-
-    @Override
-    protected void onSaveInstanceState(@NonNull Bundle outState) {
-        super.onSaveInstanceState(outState);
-        mViewModel.onSaveInstanceState(outState);
-        mAutoCredentialViewModel.onSaveInstanceState(outState);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt
new file mode 100644
index 0000000..ec96597
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivity.kt
@@ -0,0 +1,633 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.annotation.StyleRes
+import android.content.Intent
+import android.content.res.ColorStateList
+import android.content.res.Configuration
+import android.content.res.Resources.Theme
+import android.graphics.Color
+import android.os.Bundle
+import android.os.SystemClock
+import android.util.Log
+import androidx.activity.result.ActivityResult
+import androidx.activity.result.ActivityResultCallback
+import androidx.activity.result.ActivityResultLauncher
+import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
+import androidx.annotation.ColorInt
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.fragment.app.FragmentManager.POP_BACK_STACK_INCLUSIVE
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.lifecycle.viewmodel.CreationExtras
+import androidx.lifecycle.viewmodel.MutableCreationExtras
+import com.android.settings.R
+import com.android.settings.Utils
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics2.factory.BiometricsViewModelFactory
+import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CHALLENGE_GENERATOR_KEY
+import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.CREDENTIAL_MODEL_KEY
+import com.android.settings.biometrics2.factory.BiometricsViewModelFactory.ENROLLMENT_REQUEST_KEY
+import com.android.settings.biometrics2.ui.model.CredentialModel
+import com.android.settings.biometrics2.ui.model.EnrollmentRequest
+import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel
+import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.FingerprintChallengeGenerator
+import com.android.settings.biometrics2.ui.viewmodel.CredentialAction
+import com.android.settings.biometrics2.ui.viewmodel.DeviceFoldedViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingAction
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollErrorDialogViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorAction
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFinishViewModel.FingerprintEnrollFinishAction
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollProgressViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.google.android.setupdesign.util.ThemeHelper
+import kotlinx.coroutines.launch
+
+/**
+ * Fingerprint enrollment activity implementation
+ */
+open class FingerprintEnrollmentActivity : FragmentActivity() {
+    /** SetupWizard activity*/
+    class SetupActivity : FingerprintEnrollmentActivity()
+
+    /** Internal activity for FingerprintSettings */
+    class InternalActivity : FingerprintEnrollmentActivity()
+
+    private val viewModelProvider: ViewModelProvider by lazy {
+        ViewModelProvider(this)
+    }
+
+    private val viewModel: FingerprintEnrollmentViewModel by lazy {
+        viewModelProvider[FingerprintEnrollmentViewModel::class.java]
+    }
+
+    private val autoCredentialViewModel: AutoCredentialViewModel by lazy {
+        viewModelProvider[AutoCredentialViewModel::class.java]
+    }
+
+    private val introViewModel: FingerprintEnrollIntroViewModel by lazy {
+        viewModelProvider[FingerprintEnrollIntroViewModel::class.java]
+    }
+
+    private val findSensorViewModel: FingerprintEnrollFindSensorViewModel by lazy {
+        viewModelProvider[FingerprintEnrollFindSensorViewModel::class.java]
+    }
+
+    private val progressViewModel: FingerprintEnrollProgressViewModel by lazy {
+        viewModelProvider[FingerprintEnrollProgressViewModel::class.java]
+    }
+
+    private val enrollingViewModel: FingerprintEnrollEnrollingViewModel by lazy {
+        viewModelProvider[FingerprintEnrollEnrollingViewModel::class.java]
+    }
+
+    private val finishViewModel: FingerprintEnrollFinishViewModel by lazy {
+        viewModelProvider[FingerprintEnrollFinishViewModel::class.java]
+    }
+
+    private val errorDialogViewModel: FingerprintEnrollErrorDialogViewModel by lazy {
+        viewModelProvider[FingerprintEnrollErrorDialogViewModel::class.java]
+    }
+
+    private var isFirstFragmentAdded = false
+
+    private val findSensorActionObserver = Observer<Int?> { action ->
+        if (DEBUG) {
+            Log.d(TAG, "findSensorActionObserver($action)")
+        }
+        action?.let { onFindSensorAction(it) }
+    }
+
+    private val enrollingActionObserver = Observer<Int?> { action ->
+        if (DEBUG) {
+            Log.d(TAG, "enrollingActionObserver($action)")
+        }
+        action?.let { onEnrollingAction(it) }
+    }
+
+    private val finishActionObserver = Observer<Int?> { action ->
+        if (DEBUG) {
+            Log.d(TAG, "finishActionObserver($action)")
+        }
+        action?.let { onFinishAction(it) }
+    }
+
+    private val chooseLockResultCallback: ActivityResultCallback<ActivityResult> =
+        ActivityResultCallback { result ->
+            onChooseOrConfirmLockResult(true /* isChooseLock */, result)
+        }
+
+    private val chooseLockLauncher: ActivityResultLauncher<Intent> =
+        registerForActivityResult(StartActivityForResult(), chooseLockResultCallback)
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        // Theme
+        setTheme(viewModel.request.theme)
+        ThemeHelper.trySetDynamicColor(this)
+        window.statusBarColor = Color.TRANSPARENT
+
+        // fragment
+        setContentView(R.layout.biometric_enrollment_container)
+        val fragment: Fragment? = supportFragmentManager.findFragmentById(
+            R.id.fragment_container_view
+        )
+        Log.d(
+            TAG,
+            "onCreate() has savedInstance:$(savedInstanceState != null), fragment:$fragment"
+        )
+
+        isFirstFragmentAdded = (savedInstanceState != null)
+        if (fragment == null) {
+            checkCredential()
+            if (viewModel.request.isSkipFindSensor) {
+                startEnrollingFragment()
+            } else if (viewModel.request.isSkipIntro) {
+                startFindSensorFragment()
+            } else {
+                startIntroFragment()
+            }
+        } else {
+            val tag: String? = fragment.tag
+            if (INTRO_TAG == tag) {
+                attachIntroViewModel()
+            } else if (FIND_SENSOR_TAG == tag) {
+                attachFindSensorViewModel()
+                attachIntroViewModel()
+            } else if (ENROLLING_TAG == tag) {
+                attachEnrollingViewModel()
+                attachFindSensorViewModel()
+                attachIntroViewModel()
+            } else if (FINISH_TAG == tag) {
+                attachFinishViewModel()
+                attachFindSensorViewModel()
+                attachIntroViewModel()
+            } else {
+                Log.e(TAG, "fragment tag $tag not found")
+                finish()
+                return
+            }
+        }
+
+        collectFlows()
+    }
+
+    private fun collectFlows() {
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                viewModel.setResultFlow.collect {
+                    Log.d(TAG, "setResultLiveData($it)")
+                    onSetActivityResult(it)
+                }
+            }
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                autoCredentialViewModel.generateChallengeFailedFlow.collect {
+                    Log.d(TAG, "generateChallengeFailedFlow($it)")
+                    onSetActivityResult(ActivityResult(RESULT_CANCELED, null))
+                }
+            }
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.newDialogFlow.collect {
+                    Log.d(TAG, "newErrorDialogFlow($it)")
+                    FingerprintEnrollErrorDialog.newInstance(it).show(
+                        supportFragmentManager,
+                        ERROR_DIALOG_TAG
+                    )
+                }
+            }
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                errorDialogViewModel.setResultFlow.collect {
+                    Log.d(TAG, "errorDialogSetResultFlow($it)")
+                    when (it) {
+                        FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH -> onSetActivityResult(
+                            ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null)
+                        )
+
+                        FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT -> onSetActivityResult(
+                            ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null)
+                        )
+                    }
+                }
+            }
+        }
+    }
+
+    private fun startFragment(fragmentClass: Class<out Fragment>, tag: String) {
+        if (!isFirstFragmentAdded) {
+            supportFragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
+                .replace(R.id.fragment_container_view, fragmentClass, null, tag)
+                .commit()
+            isFirstFragmentAdded = true
+        } else {
+            supportFragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
+                .setCustomAnimations(
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
+                )
+                .replace(R.id.fragment_container_view, fragmentClass, null, tag)
+                .addToBackStack(tag)
+                .commit()
+        }
+    }
+
+    private fun startIntroFragment() {
+        attachIntroViewModel()
+        startFragment(FingerprintEnrollIntroFragment::class.java, INTRO_TAG)
+    }
+
+    private fun attachIntroViewModel() {
+        val request: EnrollmentRequest = viewModel.request
+        if (request.isSkipIntro || request.isSkipFindSensor) {
+            return
+        }
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                introViewModel.actionFlow.collect(this@FingerprintEnrollmentActivity::onIntroAction)
+            }
+        }
+    }
+
+    // We need to make sure token is valid before entering find sensor page
+    private fun startFindSensorFragment() {
+        // Always setToken into progressViewModel even it is not necessary action for UDFPS
+        progressViewModel.setToken(autoCredentialViewModel.token)
+        attachFindSensorViewModel()
+        val fragmentClass: Class<out Fragment> = if (viewModel.canAssumeUdfps) {
+            FingerprintEnrollFindUdfpsFragment::class.java
+        } else if (viewModel.canAssumeSfps) {
+            FingerprintEnrollFindSfpsFragment::class.java
+        } else {
+            FingerprintEnrollFindRfpsFragment::class.java
+        }
+        startFragment(fragmentClass, FIND_SENSOR_TAG)
+    }
+
+    private fun attachFindSensorViewModel() {
+        if (viewModel.request.isSkipFindSensor) {
+            return
+        }
+        findSensorViewModel.let {
+            // Clear ActionLiveData in FragmentViewModel to prevent getting previous action during
+            // recreate, like press 'Start' then press 'back' in FingerprintEnrollEnrolling
+            // activity.
+            it.clearActionLiveData()
+            it.actionLiveData.observe(this, findSensorActionObserver)
+        }
+    }
+
+    private fun startEnrollingFragment() {
+        // Always setToken into progressViewModel even it is not necessary action for SFPS or RFPS
+        progressViewModel.setToken(autoCredentialViewModel.token)
+        attachEnrollingViewModel()
+        val fragmentClass: Class<out Fragment> = if (viewModel.canAssumeUdfps) {
+            FingerprintEnrollEnrollingUdfpsFragment::class.java
+        } else if (viewModel.canAssumeSfps) {
+            FingerprintEnrollEnrollingSfpsFragment::class.java
+        } else {
+            FingerprintEnrollEnrollingRfpsFragment::class.java
+        }
+        startFragment(fragmentClass, ENROLLING_TAG)
+    }
+
+    private fun attachEnrollingViewModel() {
+        enrollingViewModel.let {
+            it.clearActionLiveData()
+            it.actionLiveData.observe(this, enrollingActionObserver)
+        }
+    }
+
+    private fun startFinishFragment() {
+        viewModel.isNewFingerprintAdded = true
+        attachFinishViewModel()
+        if (viewModel.request.isSkipFindSensor) {
+            // Set page to Finish
+            supportFragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
+                .setCustomAnimations(
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
+                )
+                .replace(
+                    R.id.fragment_container_view,
+                    FingerprintEnrollFinishFragment::class.java,
+                    null,
+                    FINISH_TAG
+                )
+                .commit()
+        } else {
+            // Remove Enrolling page
+            supportFragmentManager.popBackStack()
+
+            // Remove old Finish page if any
+            if (supportFragmentManager.findFragmentByTag(FINISH_TAG) != null) {
+                supportFragmentManager.popBackStack(FINISH_TAG, POP_BACK_STACK_INCLUSIVE)
+            }
+
+            // Remove FindSensor page if maxEnrolled
+            if (viewModel.isMaxEnrolledReached(autoCredentialViewModel.userId)
+                && supportFragmentManager.findFragmentByTag(FIND_SENSOR_TAG) != null
+            ) {
+                supportFragmentManager.popBackStack(FIND_SENSOR_TAG, POP_BACK_STACK_INCLUSIVE)
+            }
+
+            // Add Finish page
+            supportFragmentManager.beginTransaction()
+                .setReorderingAllowed(true)
+                .setCustomAnimations(
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_enter_dynamic_color,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_open_exit,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_enter_dynamic_color,
+                    com.google.android.setupdesign.R.anim.shared_x_axis_activity_close_exit
+                )
+                .replace(
+                    R.id.fragment_container_view,
+                    FingerprintEnrollFinishFragment::class.java,
+                    null,
+                    FINISH_TAG
+                )
+                .addToBackStack(FINISH_TAG)
+                .commit()
+        }
+    }
+
+    private fun attachFinishViewModel() {
+        finishViewModel.let {
+            it.clearActionLiveData()
+            it.actionLiveData.observe(this, finishActionObserver)
+        }
+    }
+
+    private fun onSetActivityResult(result: ActivityResult) {
+        val challengeExtras: Bundle? = autoCredentialViewModel.createGeneratingChallengeExtras()
+        val overrideResult: ActivityResult = viewModel.getOverrideActivityResult(
+            result, challengeExtras
+        )
+        if (DEBUG) {
+            Log.d(
+                TAG, "onSetActivityResult(" + result + "), override:" + overrideResult
+                        + ") challengeExtras:" + challengeExtras
+            )
+        }
+        setResult(overrideResult.resultCode, overrideResult.data)
+        finish()
+    }
+
+    private fun checkCredential() {
+        when (autoCredentialViewModel.checkCredential(lifecycleScope)) {
+            CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK -> {
+                val intent: Intent = autoCredentialViewModel.createChooseLockIntent(
+                    this,
+                    viewModel.request.isSuw,
+                    viewModel.request.suwExtras
+                )
+                if (!viewModel.isWaitingActivityResult.compareAndSet(false, true)) {
+                    Log.w(TAG, "chooseLock, fail to set isWaiting flag to true")
+                }
+                chooseLockLauncher.launch(intent)
+                return
+            }
+
+            CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK -> {
+                val launched: Boolean = autoCredentialViewModel.createConfirmLockLauncher(
+                    this,
+                    LAUNCH_CONFIRM_LOCK_ACTIVITY,
+                    getString(R.string.security_settings_fingerprint_preference_title)
+                ).launch()
+                if (!launched) {
+                    // This shouldn't happen, as we should only end up at this step if a lock thingy
+                    // is already set.
+                    Log.e(TAG, "confirmLock, launched is true")
+                    finish()
+                } else if (!viewModel.isWaitingActivityResult.compareAndSet(false, true)) {
+                    Log.w(TAG, "confirmLock, fail to set isWaiting flag to true")
+                }
+                return
+            }
+
+            CredentialAction.CREDENTIAL_VALID,
+            CredentialAction.IS_GENERATING_CHALLENGE -> {}
+        }
+    }
+
+    private fun onChooseOrConfirmLockResult(
+        isChooseLock: Boolean,
+        activityResult: ActivityResult
+    ) {
+        if (!viewModel.isWaitingActivityResult.compareAndSet(true, false)) {
+            Log.w(TAG, "isChooseLock:$isChooseLock, fail to unset waiting flag")
+        }
+        if (!autoCredentialViewModel.generateChallengeAsCredentialActivityResult(
+                isChooseLock,
+                activityResult,
+                lifecycleScope
+            )
+        ) {
+            onSetActivityResult(activityResult)
+        }
+    }
+
+    private fun onIntroAction(action: FingerprintEnrollIntroAction) {
+        Log.d(TAG, "onIntroAction($action)")
+        when (action) {
+            FingerprintEnrollIntroAction.DONE_AND_FINISH -> {
+                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_FINISHED, null))
+                return
+            }
+
+            FingerprintEnrollIntroAction.SKIP_OR_CANCEL -> {
+                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
+                return
+            }
+
+            FingerprintEnrollIntroAction.CONTINUE_ENROLL -> {
+                startFindSensorFragment()
+            }
+        }
+    }
+
+    private fun onFindSensorAction(@FingerprintEnrollFindSensorAction action: Int) {
+        when (action) {
+            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP -> {
+                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
+                return
+            }
+
+            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG -> {
+                SkipSetupFindFpsDialog().show(
+                    supportFragmentManager,
+                    SKIP_SETUP_FIND_FPS_DIALOG_TAG
+                )
+                return
+            }
+
+            FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START -> {
+                startEnrollingFragment()
+            }
+        }
+    }
+
+    private fun onEnrollingAction(@FingerprintEnrollEnrollingAction action: Int) {
+        when (action) {
+            FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE -> {
+                startFinishFragment()
+            }
+
+            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP -> {
+                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_SKIP, null))
+            }
+
+            FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG -> {
+                FingerprintEnrollEnrollingIconTouchDialog().show(
+                    supportFragmentManager,
+                    SKIP_SETUP_FIND_FPS_DIALOG_TAG
+                )
+            }
+
+            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED -> {
+                if (supportFragmentManager.backStackEntryCount > 0) {
+                    supportFragmentManager.popBackStack()
+                } else {
+                    onSetActivityResult(ActivityResult(RESULT_CANCELED, null))
+                }
+            }
+        }
+    }
+
+    private fun onFinishAction(@FingerprintEnrollFinishAction action: Int) {
+        when (action) {
+            FINGERPRINT_ENROLL_FINISH_ACTION_ADD_BUTTON_CLICK -> {
+                startEnrollingFragment()
+            }
+
+            FINGERPRINT_ENROLL_FINISH_ACTION_NEXT_BUTTON_CLICK -> {
+                val data: Intent? = if (viewModel.request.isSuw) {
+                    Intent().also {
+                        it.putExtras(
+                            viewModel.getSuwFingerprintCountExtra(
+                                autoCredentialViewModel.userId
+                            )
+                        )
+                    }
+                } else {
+                    null
+                }
+                onSetActivityResult(ActivityResult(BiometricEnrollBase.RESULT_FINISHED, data))
+            }
+        }
+    }
+
+    override fun onPause() {
+        super.onPause()
+        viewModel.checkFinishActivityDuringOnPause(
+            isFinishing,
+            isChangingConfigurations,
+            lifecycleScope
+        )
+    }
+
+    override fun onDestroy() {
+        viewModel.updateFingerprintSuggestionEnableState(autoCredentialViewModel.userId)
+        super.onDestroy()
+    }
+
+    override fun onApplyThemeResource(theme: Theme, @StyleRes resid: Int, first: Boolean) {
+        theme.applyStyle(R.style.SetupWizardPartnerResource, true)
+        super.onApplyThemeResource(theme, resid, first)
+    }
+
+    @Deprecated("Deprecated in Java")
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        if (requestCode == LAUNCH_CONFIRM_LOCK_ACTIVITY) {
+            onChooseOrConfirmLockResult(false, ActivityResult(resultCode, data))
+            return
+        }
+        super.onActivityResult(requestCode, resultCode, data)
+    }
+
+    override val defaultViewModelCreationExtras: CreationExtras
+        get() = MutableCreationExtras(super.defaultViewModelCreationExtras).also {
+            it[CHALLENGE_GENERATOR_KEY] = FingerprintChallengeGenerator(
+                featureFactory.biometricsRepositoryProvider.getFingerprintRepository(application)!!
+            )
+            it[ENROLLMENT_REQUEST_KEY] =
+                EnrollmentRequest(intent, applicationContext, this is SetupActivity)
+            it[CREDENTIAL_MODEL_KEY] =
+                CredentialModel(intent.extras, SystemClock.elapsedRealtimeClock())
+        }
+
+    override val defaultViewModelProviderFactory: ViewModelProvider.Factory
+        get() = BiometricsViewModelFactory()
+
+    override fun onAttachedToWindow() {
+        super.onAttachedToWindow()
+        window.statusBarColor = backgroundColor
+    }
+
+    @get:ColorInt
+    private val backgroundColor: Int
+        get() {
+            val stateList: ColorStateList? =
+                Utils.getColorAttr(this, android.R.attr.windowBackground)
+            return stateList?.defaultColor ?: Color.TRANSPARENT
+        }
+
+    override fun onConfigurationChanged(newConfig: Configuration) {
+        viewModelProvider[DeviceFoldedViewModel::class.java].onConfigurationChanged(newConfig)
+        super.onConfigurationChanged(newConfig)
+    }
+
+    companion object {
+        private const val DEBUG = false
+        private const val TAG = "FingerprintEnrollmentActivity"
+        protected const val LAUNCH_CONFIRM_LOCK_ACTIVITY = 1
+
+        private const val INTRO_TAG = "intro"
+        private const val FIND_SENSOR_TAG = "find-sensor"
+        private const val ENROLLING_TAG = "enrolling"
+        private const val FINISH_TAG = "finish"
+        private const val SKIP_SETUP_FIND_FPS_DIALOG_TAG = "skip-setup-dialog"
+        private const val ERROR_DIALOG_TAG = "error-dialog"
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.java b/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.java
deleted file mode 100644
index 6af4928..0000000
--- a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import android.app.Activity;
-import android.text.TextUtils;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.StringRes;
-
-import com.google.android.setupdesign.GlifLayout;
-
-/**
- * Utils class for GlifLayout
- */
-public class GlifLayoutHelper {
-
-    @NonNull private final Activity mActivity;
-    @NonNull private final GlifLayout mGlifLayout;
-
-    public GlifLayoutHelper(@NonNull Activity activity, @NonNull GlifLayout glifLayout) {
-        mActivity = activity;
-        mGlifLayout = glifLayout;
-    }
-
-    /**
-     * Sets header text to GlifLayout
-     */
-    public void setHeaderText(@StringRes int textResId) {
-        TextView layoutTitle = mGlifLayout.getHeaderTextView();
-        CharSequence previousTitle = layoutTitle.getText();
-        CharSequence title = mActivity.getText(textResId);
-        if (previousTitle != title) {
-            if (!TextUtils.isEmpty(previousTitle)) {
-                layoutTitle.setAccessibilityLiveRegion(View.ACCESSIBILITY_LIVE_REGION_POLITE);
-            }
-            mGlifLayout.setHeaderText(title);
-            mGlifLayout.getHeaderTextView().setContentDescription(title);
-            mActivity.setTitle(title);
-        }
-        mGlifLayout.getHeaderTextView().setContentDescription(title);
-    }
-
-    /**
-     * Sets description text to GlifLayout
-     */
-    public void setDescriptionText(CharSequence description) {
-        CharSequence previousDescription = mGlifLayout.getDescriptionText();
-        // Prevent a11y for re-reading the same string
-        if (!TextUtils.equals(previousDescription, description)) {
-            mGlifLayout.setDescriptionText(description);
-        }
-    }
-
-    @NonNull
-    public Activity getActivity() {
-        return mActivity;
-    }
-
-    @NonNull
-    public GlifLayout getGlifLayout() {
-        return mGlifLayout;
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt b/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt
new file mode 100644
index 0000000..756f309
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/GlifLayoutHelper.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.app.Activity
+import android.text.TextUtils
+import android.view.View
+import androidx.annotation.StringRes
+import com.google.android.setupdesign.GlifLayout
+
+/**
+ * Utils class for GlifLayout
+ */
+class GlifLayoutHelper(val activity: Activity, val glifLayout: GlifLayout) {
+
+    /**
+     * Sets header text to GlifLayout
+     */
+    fun setHeaderText(@StringRes textResId: Int) {
+        val layoutTitle = glifLayout.headerTextView
+        val previousTitle = layoutTitle.text
+        val title = activity.getText(textResId)
+        if (previousTitle !== title) {
+            if (!TextUtils.isEmpty(previousTitle)) {
+                layoutTitle.accessibilityLiveRegion = View.ACCESSIBILITY_LIVE_REGION_POLITE
+            }
+            glifLayout.headerText = title
+            glifLayout.headerTextView.contentDescription = title
+            activity.title = title
+        }
+    }
+
+    /**
+     * Sets description text to GlifLayout
+     */
+    fun setDescriptionText(description: CharSequence?) {
+        val previousDescription = glifLayout.descriptionText
+        // Prevent a11y for re-reading the same string
+        if (!TextUtils.equals(previousDescription, description)) {
+            glifLayout.descriptionText = description
+        }
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.java b/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.java
deleted file mode 100644
index b011267..0000000
--- a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static android.content.DialogInterface.OnClickListener;
-
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.appcompat.app.AlertDialog;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.android.settings.R;
-import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel;
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-
-/**
- * Skip dialog which shows when user clicks "Do it later" button in FingerprintFindSensor page.
- */
-public class SkipSetupFindFpsDialog extends InstrumentedDialogFragment {
-
-    private FingerprintEnrollFindSensorViewModel mViewModel;
-    private final OnClickListener mOnSkipClickListener =
-            (d, w) -> mViewModel.onSkipDialogButtonClick();
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.DIALOG_FINGERPRINT_SKIP_SETUP;
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        return onCreateDialogBuilder().create();
-    }
-
-    /**
-     * Returns builder for this dialog
-     */
-    @NonNull
-    private AlertDialog.Builder onCreateDialogBuilder() {
-        return new AlertDialog.Builder(getActivity(), R.style.Theme_AlertDialog)
-                .setTitle(R.string.setup_fingerprint_enroll_skip_title)
-                .setPositiveButton(R.string.skip_anyway_button_label, mOnSkipClickListener)
-                .setNegativeButton(R.string.go_back_button_label, null)
-                .setMessage(R.string.setup_fingerprint_enroll_skip_after_adding_lock_text);
-    }
-
-    @Override
-    public void onAttach(Context context) {
-        mViewModel = new ViewModelProvider(getActivity()).get(
-                FingerprintEnrollFindSensorViewModel.class);
-        super.onAttach(context);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt b/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt
new file mode 100644
index 0000000..bb74e36
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/SkipSetupFindFpsDialog.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.app.Dialog
+import android.content.Context
+import android.content.DialogInterface
+import android.os.Bundle
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.R
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel
+
+/**
+ * Skip dialog which shows when user clicks "Do it later" button in FingerprintFindSensor page.
+ */
+class SkipSetupFindFpsDialog : DialogFragment() {
+
+    private var mViewModel: FingerprintEnrollFindSensorViewModel? = null
+
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog =
+        requireActivity().bindSkipSetupFindFpsDialog {
+            _: DialogInterface?, _: Int -> mViewModel?.onSkipDialogButtonClick()
+        }
+
+    override fun onAttach(context: Context) {
+        mViewModel = ViewModelProvider(requireActivity())[
+            FingerprintEnrollFindSensorViewModel::class.java
+        ]
+        super.onAttach(context)
+    }
+}
+
+fun Context.bindSkipSetupFindFpsDialog(
+    positiveButtonClickListener: DialogInterface.OnClickListener
+): AlertDialog =
+    AlertDialog.Builder(this, R.style.Theme_AlertDialog)
+        .setTitle(R.string.setup_fingerprint_enroll_skip_title)
+        .setPositiveButton(R.string.skip_anyway_button_label, positiveButtonClickListener)
+        .setNegativeButton(R.string.go_back_button_label, null)
+        .setMessage(R.string.setup_fingerprint_enroll_skip_after_adding_lock_text)
+        .create()
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.java
deleted file mode 100644
index 7e48f82..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.java
+++ /dev/null
@@ -1,393 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
-import static com.android.settings.biometrics2.ui.model.CredentialModel.INVALID_GK_PW_HANDLE;
-import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
-
-import android.annotation.IntDef;
-import android.app.Activity;
-import android.app.Application;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.util.Log;
-
-import androidx.activity.result.ActivityResult;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.internal.widget.VerifyCredentialResponse;
-import com.android.settings.biometrics.BiometricUtils;
-import com.android.settings.biometrics.BiometricUtils.GatekeeperCredentialNotMatchException;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.CredentialModel;
-import com.android.settings.password.ChooseLockGeneric;
-import com.android.settings.password.ChooseLockPattern;
-import com.android.settings.password.ChooseLockSettingsHelper;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * AutoCredentialViewModel which uses CredentialModel to determine next actions for activity, like
- * start ChooseLockActivity, start ConfirmLockActivity, GenerateCredential, or do nothing.
- */
-public class AutoCredentialViewModel extends AndroidViewModel {
-
-    private static final String TAG = "AutoCredentialViewModel";
-
-    @VisibleForTesting
-    static final String KEY_CREDENTIAL_MODEL = "credential_model";
-
-    @VisibleForTesting
-    static final String KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL =
-            "is_generating_challenge_during_checking_credential";
-
-    private static final boolean DEBUG = false;
-
-    /**
-     * Valid credential, activity does nothing.
-     */
-    public static final int CREDENTIAL_VALID = 0;
-
-    /**
-     * This credential looks good, but still need to run generateChallenge().
-     */
-    public static final int CREDENTIAL_IS_GENERATING_CHALLENGE = 1;
-
-    /**
-     * Need activity to run choose lock
-     */
-    public static final int CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK = 2;
-
-    /**
-     * Need activity to run confirm lock
-     */
-    public static final int CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK = 3;
-
-    @IntDef(prefix = { "CREDENTIAL_" }, value = {
-            CREDENTIAL_VALID,
-            CREDENTIAL_IS_GENERATING_CHALLENGE,
-            CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK,
-            CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface CredentialAction {}
-
-    /**
-     * Generic callback for FingerprintManager#generateChallenge or FaceManager#generateChallenge
-     */
-    public interface GenerateChallengeCallback {
-        /**
-         * Generic generateChallenge method for FingerprintManager or FaceManager
-         */
-        void onChallengeGenerated(int sensorId, int userId, long challenge);
-    }
-
-    /**
-     * A generic interface class for calling different generateChallenge from FingerprintManager or
-     * FaceManager
-     */
-    public interface ChallengeGenerator {
-        /**
-         * Get callback that will be called later after challenge generated
-         */
-        @Nullable
-        GenerateChallengeCallback getCallback();
-
-        /**
-         * Set callback that will be called later after challenge generated
-         */
-        void setCallback(@Nullable GenerateChallengeCallback callback);
-
-        /**
-         * Method for generating challenge from FingerprintManager or FaceManager
-         */
-        void generateChallenge(int userId);
-    }
-
-    /**
-     * Used to generate challenge through FingerprintRepository
-     */
-    public static class FingerprintChallengeGenerator implements ChallengeGenerator {
-
-        private static final String TAG = "FingerprintChallengeGenerator";
-
-        @NonNull
-        private final FingerprintRepository mFingerprintRepository;
-
-        @Nullable
-        private GenerateChallengeCallback mCallback = null;
-
-        public FingerprintChallengeGenerator(@NonNull FingerprintRepository fingerprintRepository) {
-            mFingerprintRepository = fingerprintRepository;
-        }
-
-        @Nullable
-        @Override
-        public GenerateChallengeCallback getCallback() {
-            return mCallback;
-        }
-
-        @Override
-        public void setCallback(@Nullable GenerateChallengeCallback callback) {
-            mCallback = callback;
-        }
-
-        @Override
-        public void generateChallenge(int userId) {
-            final GenerateChallengeCallback callback = mCallback;
-            if (callback == null) {
-                Log.e(TAG, "generateChallenge, null callback");
-                return;
-            }
-            mFingerprintRepository.generateChallenge(userId, callback::onChallengeGenerated);
-        }
-    }
-
-    @NonNull private final LockPatternUtils mLockPatternUtils;
-    @NonNull private final ChallengeGenerator mChallengeGenerator;
-    private CredentialModel mCredentialModel = null;
-    @NonNull private final MutableLiveData<Boolean> mGenerateChallengeFailedLiveData =
-            new MutableLiveData<>();
-
-    // flag if token is generating through checkCredential()'s generateChallenge()
-    private boolean mIsGeneratingChallengeDuringCheckingCredential;
-
-    public AutoCredentialViewModel(
-            @NonNull Application application,
-            @NonNull LockPatternUtils lockPatternUtils,
-            @NonNull ChallengeGenerator challengeGenerator) {
-        super(application);
-        mLockPatternUtils = lockPatternUtils;
-        mChallengeGenerator = challengeGenerator;
-    }
-
-    /**
-     * Set CredentialModel, the source is coming from savedInstanceState or activity intent
-     */
-    public void setCredentialModel(@Nullable Bundle savedInstanceState, @NonNull Intent intent) {
-        final Bundle bundle;
-        if (savedInstanceState != null) {
-            bundle = savedInstanceState.getBundle(KEY_CREDENTIAL_MODEL);
-            mIsGeneratingChallengeDuringCheckingCredential = savedInstanceState.getBoolean(
-                    KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL);
-        } else {
-            bundle = intent.getExtras();
-        }
-        mCredentialModel = new CredentialModel(bundle, SystemClock.elapsedRealtimeClock());
-
-        if (DEBUG) {
-            Log.d(TAG, "setCredentialModel " + mCredentialModel + ", savedInstanceState exist:"
-                    + (savedInstanceState != null));
-        }
-    }
-
-    /**
-     * Handle onSaveInstanceState from activity
-     */
-    public void onSaveInstanceState(@NonNull Bundle outState) {
-        outState.putBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL,
-                mIsGeneratingChallengeDuringCheckingCredential);
-        outState.putBundle(KEY_CREDENTIAL_MODEL, mCredentialModel.getBundle());
-    }
-
-    @NonNull
-    public LiveData<Boolean> getGenerateChallengeFailedLiveData() {
-        return mGenerateChallengeFailedLiveData;
-    }
-
-    /**
-     * Get bundle which passing back to FingerprintSettings for late generateChallenge()
-     */
-    @Nullable
-    public Bundle createGeneratingChallengeExtras() {
-        if (!mIsGeneratingChallengeDuringCheckingCredential
-                || !mCredentialModel.isValidToken()
-                || !mCredentialModel.isValidChallenge()) {
-            return null;
-        }
-
-        Bundle bundle = new Bundle();
-        bundle.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
-                mCredentialModel.getToken());
-        bundle.putLong(EXTRA_KEY_CHALLENGE, mCredentialModel.getChallenge());
-        return bundle;
-    }
-
-    /**
-     * Check credential status for biometric enrollment.
-     */
-    @CredentialAction
-    public int checkCredential() {
-        if (isValidCredential()) {
-            return CREDENTIAL_VALID;
-        }
-        if (isUnspecifiedPassword()) {
-            return CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK;
-        } else if (mCredentialModel.isValidGkPwHandle()) {
-            final long gkPwHandle = mCredentialModel.getGkPwHandle();
-            mCredentialModel.clearGkPwHandle();
-            // GkPwHandle is got through caller activity, we shall not revoke it after
-            // generateChallenge(). Let caller activity to make decision.
-            generateChallenge(gkPwHandle, false /* revokeGkPwHandle */);
-            mIsGeneratingChallengeDuringCheckingCredential = true;
-            return CREDENTIAL_IS_GENERATING_CHALLENGE;
-        } else {
-            return CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK;
-        }
-    }
-
-    private void generateChallenge(long gkPwHandle, boolean revokeGkPwHandle) {
-        mChallengeGenerator.setCallback((sensorId, userId, challenge) -> {
-            try {
-                final byte[] newToken = requestGatekeeperHat(gkPwHandle, challenge, userId);
-                mCredentialModel.setChallenge(challenge);
-                mCredentialModel.setToken(newToken);
-            } catch (IllegalStateException e) {
-                Log.e(TAG, "generateChallenge, IllegalStateException", e);
-                mGenerateChallengeFailedLiveData.postValue(true);
-                return;
-            }
-
-            if (revokeGkPwHandle) {
-                mLockPatternUtils.removeGatekeeperPasswordHandle(gkPwHandle);
-            }
-
-            if (DEBUG) {
-                Log.d(TAG, "generateChallenge(), model:" + mCredentialModel
-                        + ", revokeGkPwHandle:" + revokeGkPwHandle);
-            }
-
-            // Check credential again
-            if (!isValidCredential()) {
-                Log.w(TAG, "generateChallenge, invalid Credential");
-                mGenerateChallengeFailedLiveData.postValue(true);
-            }
-        });
-        mChallengeGenerator.generateChallenge(getUserId());
-    }
-
-    private boolean isValidCredential() {
-        return !isUnspecifiedPassword() && mCredentialModel.isValidToken();
-    }
-
-    private boolean isUnspecifiedPassword() {
-        return mLockPatternUtils.getActivePasswordQuality(getUserId())
-                == PASSWORD_QUALITY_UNSPECIFIED;
-    }
-
-    /**
-     * Handle activity result from ChooseLockGeneric, ConfirmLockPassword, or ConfirmLockPattern
-     * @param isChooseLock true if result is coming from ChooseLockGeneric. False if result is
-     *                     coming from ConfirmLockPassword or ConfirmLockPattern
-     * @param result activity result
-     * @return if it is a valid result
-     */
-    public boolean checkNewCredentialFromActivityResult(boolean isChooseLock,
-            @NonNull ActivityResult result) {
-        if ((isChooseLock && result.getResultCode() == ChooseLockPattern.RESULT_FINISHED)
-                || (!isChooseLock && result.getResultCode() == Activity.RESULT_OK)) {
-            final Intent data = result.getData();
-            if (data != null) {
-                final long gkPwHandle = result.getData().getLongExtra(
-                        EXTRA_KEY_GK_PW_HANDLE, INVALID_GK_PW_HANDLE);
-                // Revoke self requested GkPwHandle because it shall only used once inside this
-                // activity lifecycle.
-                generateChallenge(gkPwHandle, true /* revokeGkPwHandle */);
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Get userId for this credential
-     */
-    public int getUserId() {
-        return mCredentialModel.getUserId();
-    }
-
-    /**
-     * Get userId for this credential
-     */
-    @Nullable
-    public byte[] getToken() {
-        return mCredentialModel.getToken();
-    }
-
-    @Nullable
-    private byte[] requestGatekeeperHat(long gkPwHandle, long challenge, int userId)
-            throws IllegalStateException {
-        final VerifyCredentialResponse response = mLockPatternUtils
-                .verifyGatekeeperPasswordHandle(gkPwHandle, challenge, userId);
-        if (!response.isMatched()) {
-            throw new GatekeeperCredentialNotMatchException("Unable to request Gatekeeper HAT");
-        }
-        return response.getGatekeeperHAT();
-    }
-
-    /**
-     * Create Intent for choosing lock
-     */
-    @NonNull
-    public Intent createChooseLockIntent(@NonNull Context context, boolean isSuw,
-            @NonNull Bundle suwExtras) {
-        final Intent intent = BiometricUtils.getChooseLockIntent(context, isSuw,
-                suwExtras);
-        intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS,
-                true);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true);
-
-        if (mCredentialModel.isValidUserId()) {
-            intent.putExtra(Intent.EXTRA_USER_ID, mCredentialModel.getUserId());
-        }
-        return intent;
-    }
-
-    /**
-     * Create ConfirmLockLauncher
-     */
-    @NonNull
-    public ChooseLockSettingsHelper createConfirmLockLauncher(@NonNull Activity activity,
-            int requestCode, @NonNull String title) {
-        final ChooseLockSettingsHelper.Builder builder =
-                new ChooseLockSettingsHelper.Builder(activity);
-        builder.setRequestCode(requestCode)
-                .setTitle(title)
-                .setRequestGatekeeperPasswordHandle(true)
-                .setForegroundOnly(true)
-                .setReturnCredentials(true);
-
-        if (mCredentialModel.isValidUserId()) {
-            builder.setUserId(mCredentialModel.getUserId());
-        }
-        return builder.build();
-    }
-
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt
new file mode 100644
index 0000000..95aee4b
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModel.kt
@@ -0,0 +1,283 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Activity
+import android.app.Application
+import android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.util.Log
+import androidx.activity.result.ActivityResult
+import androidx.lifecycle.AndroidViewModel
+import com.android.internal.widget.LockPatternUtils
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics.BiometricUtils
+import com.android.settings.biometrics.BiometricUtils.GatekeeperCredentialNotMatchException
+import com.android.settings.biometrics2.data.repository.FingerprintRepository
+import com.android.settings.biometrics2.ui.model.CredentialModel
+import com.android.settings.password.ChooseLockGeneric
+import com.android.settings.password.ChooseLockPattern
+import com.android.settings.password.ChooseLockSettingsHelper
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.SharedFlow
+import kotlinx.coroutines.flow.asSharedFlow
+import kotlinx.coroutines.launch
+
+/**
+ * AutoCredentialViewModel which uses CredentialModel to determine next actions for activity, like
+ * start ChooseLockActivity, start ConfirmLockActivity, GenerateCredential, or do nothing.
+ */
+class AutoCredentialViewModel(
+    application: Application,
+    private val lockPatternUtils: LockPatternUtils,
+    private val challengeGenerator: ChallengeGenerator,
+    private val credentialModel: CredentialModel
+) : AndroidViewModel(application) {
+
+    /**
+     * Generic callback for FingerprintManager#generateChallenge or FaceManager#generateChallenge
+     */
+    interface GenerateChallengeCallback {
+        /** Generic generateChallenge method for FingerprintManager or FaceManager */
+        fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long)
+    }
+
+    /**
+     * A generic interface class for calling different generateChallenge from FingerprintManager or
+     * FaceManager
+     */
+    interface ChallengeGenerator {
+
+        /** Callback that will be called later after challenge generated */
+        var callback: GenerateChallengeCallback?
+
+        /** Method for generating challenge from FingerprintManager or FaceManager */
+        fun generateChallenge(userId: Int)
+    }
+
+    /** Used to generate challenge through FingerprintRepository */
+    class FingerprintChallengeGenerator(
+        private val fingerprintRepository: FingerprintRepository
+    ) : ChallengeGenerator {
+
+        override var callback: GenerateChallengeCallback? = null
+
+        override fun generateChallenge(userId: Int) {
+            callback?.let {
+                fingerprintRepository.generateChallenge(userId) {
+                        sensorId: Int, uid: Int, challenge: Long ->
+                    it.onChallengeGenerated(sensorId, uid, challenge)
+                }
+            } ?:run {
+                Log.e(TAG, "generateChallenge, null callback")
+            }
+        }
+
+        companion object {
+            private const val TAG = "FingerprintChallengeGenerator"
+        }
+    }
+
+    private val _generateChallengeFailedFlow = MutableSharedFlow<Boolean>()
+    val generateChallengeFailedFlow: SharedFlow<Boolean>
+        get() = _generateChallengeFailedFlow.asSharedFlow()
+
+
+    // flag if token is generating through checkCredential()'s generateChallenge()
+    private var isGeneratingChallengeDuringCheckingCredential = false
+
+    /** Get bundle which passing back to FingerprintSettings for late generateChallenge() */
+    fun createGeneratingChallengeExtras(): Bundle? {
+        if (!isGeneratingChallengeDuringCheckingCredential
+            || !credentialModel.isValidToken
+            || !credentialModel.isValidChallenge
+        ) {
+            return null
+        }
+        val bundle = Bundle()
+        bundle.putByteArray(
+            ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN,
+            credentialModel.token
+        )
+        bundle.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, credentialModel.challenge)
+        return bundle
+    }
+
+    /** Check credential status for biometric enrollment. */
+    fun checkCredential(scope: CoroutineScope): CredentialAction {
+        return if (isValidCredential) {
+            CredentialAction.CREDENTIAL_VALID
+        } else if (isUnspecifiedPassword) {
+            CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK
+        } else if (credentialModel.isValidGkPwHandle) {
+            val gkPwHandle = credentialModel.gkPwHandle
+            credentialModel.clearGkPwHandle()
+            // GkPwHandle is got through caller activity, we shall not revoke it after
+            // generateChallenge(). Let caller activity to make decision.
+            generateChallenge(gkPwHandle, false, scope)
+            isGeneratingChallengeDuringCheckingCredential = true
+            CredentialAction.IS_GENERATING_CHALLENGE
+        } else {
+            CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK
+        }
+    }
+
+    private fun generateChallenge(
+        gkPwHandle: Long,
+        revokeGkPwHandle: Boolean,
+        scope: CoroutineScope
+    ) {
+        challengeGenerator.callback = object : GenerateChallengeCallback {
+            override fun onChallengeGenerated(sensorId: Int, userId: Int, challenge: Long) {
+                var illegalStateExceptionCaught = false
+                try {
+                    val newToken = requestGatekeeperHat(gkPwHandle, challenge, userId)
+                    credentialModel.challenge = challenge
+                    credentialModel.token = newToken
+                } catch (e: IllegalStateException) {
+                    Log.e(TAG, "generateChallenge, IllegalStateException", e)
+                    illegalStateExceptionCaught = true
+                } finally {
+                    if (revokeGkPwHandle) {
+                        lockPatternUtils.removeGatekeeperPasswordHandle(gkPwHandle)
+                    }
+                    Log.d(
+                        TAG,
+                        "generateChallenge(), model:$credentialModel"
+                                + ", revokeGkPwHandle:$revokeGkPwHandle"
+                    )
+                    // Check credential again
+                    if (!isValidCredential || illegalStateExceptionCaught) {
+                        Log.w(TAG, "generateChallenge, invalid Credential or IllegalStateException")
+                        scope.launch {
+                            _generateChallengeFailedFlow.emit(true)
+                        }
+                    }
+                }
+            }
+        }
+        challengeGenerator.generateChallenge(userId)
+    }
+
+    private val isValidCredential: Boolean
+        get() = !isUnspecifiedPassword && credentialModel.isValidToken
+
+    private val isUnspecifiedPassword: Boolean
+        get() = lockPatternUtils.getActivePasswordQuality(userId) == PASSWORD_QUALITY_UNSPECIFIED
+
+    /**
+     * Handle activity result from ChooseLockGeneric, ConfirmLockPassword, or ConfirmLockPattern
+     * @param isChooseLock true if result is coming from ChooseLockGeneric. False if result is
+     * coming from ConfirmLockPassword or ConfirmLockPattern
+     * @param result activity result
+     * @return if it is a valid result and viewModel is generating challenge
+     */
+    fun generateChallengeAsCredentialActivityResult(
+        isChooseLock: Boolean,
+        result: ActivityResult,
+        scope: CoroutineScope
+    ): Boolean {
+        if ((isChooseLock && result.resultCode == ChooseLockPattern.RESULT_FINISHED) ||
+            (!isChooseLock && result.resultCode == Activity.RESULT_OK)) {
+            result.data?.let {
+                val gkPwHandle = it.getLongExtra(
+                    ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE,
+                    CredentialModel.INVALID_GK_PW_HANDLE
+                )
+                // Revoke self requested GkPwHandle because it shall only used once inside this
+                // activity lifecycle.
+                generateChallenge(gkPwHandle, true, scope)
+                return true
+            }
+        }
+        return false
+    }
+
+    val userId: Int
+        get() = credentialModel.userId
+
+    val token: ByteArray?
+        get() = credentialModel.token
+
+    @Throws(IllegalStateException::class)
+    private fun requestGatekeeperHat(gkPwHandle: Long, challenge: Long, userId: Int): ByteArray? {
+        val response = lockPatternUtils
+            .verifyGatekeeperPasswordHandle(gkPwHandle, challenge, userId)
+        if (!response.isMatched) {
+            throw GatekeeperCredentialNotMatchException("Unable to request Gatekeeper HAT")
+        }
+        return response.gatekeeperHAT
+    }
+
+    /** Create Intent for choosing lock */
+    fun createChooseLockIntent(
+        context: Context, isSuw: Boolean,
+        suwExtras: Bundle
+    ): Intent {
+        val intent = BiometricUtils.getChooseLockIntent(
+            context, isSuw,
+            suwExtras
+        )
+        intent.putExtra(
+            ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS,
+            true
+        )
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
+        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, true)
+        if (credentialModel.isValidUserId) {
+            intent.putExtra(Intent.EXTRA_USER_ID, credentialModel.userId)
+        }
+        return intent
+    }
+
+    /** Create ConfirmLockLauncher */
+    fun createConfirmLockLauncher(
+        activity: Activity,
+        requestCode: Int, title: String
+    ): ChooseLockSettingsHelper {
+        val builder = ChooseLockSettingsHelper.Builder(activity)
+        builder.setRequestCode(requestCode)
+            .setTitle(title)
+            .setRequestGatekeeperPasswordHandle(true)
+            .setForegroundOnly(true)
+            .setReturnCredentials(true)
+        if (credentialModel.isValidUserId) {
+            builder.setUserId(credentialModel.userId)
+        }
+        return builder.build()
+    }
+
+    companion object {
+        private const val TAG = "AutoCredentialViewModel"
+    }
+}
+
+enum class CredentialAction {
+
+    CREDENTIAL_VALID,
+
+    /** Valid credential, activity does nothing. */
+    IS_GENERATING_CHALLENGE,
+
+    /** This credential looks good, but still need to run generateChallenge(). */
+    FAIL_NEED_TO_CHOOSE_LOCK,
+
+    /** Need activity to run confirm lock */
+    FAIL_NEED_TO_CONFIRM_LOCK
+}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
index 3bed9fb..07fe275 100644
--- a/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/DeviceRotationViewModel.java
@@ -59,9 +59,7 @@
         @Override
         public void onDisplayChanged(int displayId) {
             final int rotation = getRotation();
-            if (DEBUG) {
-                Log.d(TAG, "onDisplayChanged(" + displayId + "), rotation:" + rotation);
-            }
+            Log.d(TAG, "onDisplayChanged(" + displayId + "), rotation:" + rotation);
             mLiveData.postValue(rotation);
         }
     };
@@ -98,10 +96,11 @@
      * Returns RotationLiveData
      */
     public LiveData<Integer> getLiveData() {
-        if (mLiveData.getValue() == null) {
-            // Init data here because if we set it through getDisplay().getRotation() or through
-            // getDisplay().getDisplayInfo() in constructor(), we always get incorrect value.
-            mLiveData.setValue(getRotation());
+        final Integer lastRotation = mLiveData.getValue();
+        @Surface.Rotation int newRotation = getRotation();
+        if (lastRotation == null || lastRotation != newRotation) {
+            Log.d(TAG, "getLiveData, update rotation from " + lastRotation + " to " + newRotation);
+            mLiveData.setValue(newRotation);
         }
         return mLiveData;
     }
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
index 12584ee..eba6a15 100644
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
@@ -73,35 +73,11 @@
     @IntDef(prefix = { "FINGERPRINT_ENROLL_ENROLLING_ACTION_" }, value = {
             FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE,
             FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG,
-            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP,
-            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED
+            FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP
     })
     @Retention(RetentionPolicy.SOURCE)
     public @interface FingerprintEnrollEnrollingAction {}
 
-    /**
-     * Enrolling skipped
-     */
-    public static final int FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH = 0;
-
-    /**
-     * Enrolling finished
-     */
-    public static final int FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT = 1;
-
-    /**
-     * Icon touch dialog show
-     */
-    public static final int FINGERPRINT_ERROR_DIALOG_ACTION_RESTART = 2;
-
-    @IntDef(prefix = { "FINGERPRINT_ERROR_DIALOG_ACTION_" }, value = {
-            FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
-            FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT,
-            FINGERPRINT_ERROR_DIALOG_ACTION_RESTART
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FingerprintErrorDialogAction {}
-
     private final int mUserId;
     private boolean mOnBackPressed;
     private boolean mOnSkipPressed;
@@ -110,11 +86,12 @@
     private final Vibrator mVibrator;
 
     private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-    private final MutableLiveData<ErrorDialogData> mErrorDialogLiveData = new MutableLiveData<>();
-    private final MutableLiveData<Integer> mErrorDialogActionLiveData = new MutableLiveData<>();
 
-    public FingerprintEnrollEnrollingViewModel(@NonNull Application application,
-            int userId, @NonNull FingerprintRepository fingerprintRepository) {
+    public FingerprintEnrollEnrollingViewModel(
+            @NonNull Application application,
+            int userId,
+            @NonNull FingerprintRepository fingerprintRepository
+    ) {
         super(application);
         mUserId = userId;
         mFingerprintRepository = fingerprintRepository;
@@ -122,21 +99,6 @@
         mVibrator = application.getSystemService(Vibrator.class);
     }
 
-    /**
-     * Notifies activity to show error dialog
-     */
-    public void showErrorDialog(@NonNull ErrorDialogData errorDialogData) {
-        mErrorDialogLiveData.postValue(errorDialogData);
-    }
-
-    public LiveData<ErrorDialogData> getErrorDialogLiveData() {
-        return mErrorDialogLiveData;
-    }
-
-    public LiveData<Integer> getErrorDialogActionLiveData() {
-        return mErrorDialogActionLiveData;
-    }
-
     public LiveData<Integer> getActionLiveData() {
         return mActionLiveData;
     }
@@ -148,16 +110,6 @@
         mActionLiveData.setValue(null);
     }
 
-    /**
-     * Saves new user dialog action to mErrorDialogActionLiveData
-     */
-    public void onErrorDialogAction(@FingerprintErrorDialogAction int action) {
-        if (DEBUG) {
-            Log.d(TAG, "onErrorDialogAction(" + action + ")");
-        }
-        mErrorDialogActionLiveData.postValue(action);
-    }
-
     public boolean getOnSkipPressed() {
         return mOnSkipPressed;
     }
@@ -170,7 +122,7 @@
     }
 
     /**
-     * Enrolling is cacelled because user clicks skip
+     * Enrolling is cancelled because user clicks skip
      */
     public void onCancelledDueToOnSkipPressed() {
         final int action = FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
@@ -293,45 +245,4 @@
     public FingerprintSensorPropertiesInternal getFirstFingerprintSensorPropertiesInternal() {
         return mFingerprintRepository.getFirstFingerprintSensorPropertiesInternal();
     }
-
-    /**
-     * The first sensor type is UDFPS sensor or not
-     */
-    public boolean canAssumeUdfps() {
-        return mFingerprintRepository.canAssumeUdfps();
-    }
-
-    /**
-     * Data for passing to FingerprintEnrollEnrollingErrorDialog
-     */
-    public static class ErrorDialogData {
-        @NonNull private final CharSequence mErrMsg;
-        @NonNull private final CharSequence mErrTitle;
-        @NonNull private final int mErrMsgId;
-
-        public ErrorDialogData(@NonNull CharSequence errMsg, @NonNull CharSequence errTitle,
-                int errMsgId) {
-            mErrMsg = errMsg;
-            mErrTitle = errTitle;
-            mErrMsgId = errMsgId;
-        }
-
-        public CharSequence getErrMsg() {
-            return mErrMsg;
-        }
-
-        public CharSequence getErrTitle() {
-            return mErrTitle;
-        }
-
-        public int getErrMsgId() {
-            return mErrMsgId;
-        }
-
-        @Override
-        public String toString() {
-            return getClass().getSimpleName() + "@" + Integer.toHexString(hashCode())
-                    + "{id:" + mErrMsgId + "}";
-        }
-    }
 }
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt
new file mode 100644
index 0000000..b154fe7
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModel.kt
@@ -0,0 +1,51 @@
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import kotlinx.atomicfu.AtomicBoolean
+import kotlinx.atomicfu.atomic
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.SharedFlow
+import kotlinx.coroutines.flow.asSharedFlow
+
+class FingerprintEnrollErrorDialogViewModel(
+    application: Application,
+    val isSuw: Boolean
+): AndroidViewModel(application) {
+
+    private val _isDialogShown: AtomicBoolean = atomic(false)
+    val isDialogShown: Boolean
+        get() = _isDialogShown.value
+
+    private val _newDialogFlow = MutableSharedFlow<Int>()
+    val newDialogFlow: SharedFlow<Int>
+        get() = _newDialogFlow.asSharedFlow()
+
+    private val _triggerRetryFlow = MutableSharedFlow<Any>()
+    val triggerRetryFlow: SharedFlow<Any>
+        get() = _triggerRetryFlow.asSharedFlow()
+
+    private val _setResultFlow = MutableSharedFlow<FingerprintErrorDialogSetResultAction>()
+    val setResultFlow: SharedFlow<FingerprintErrorDialogSetResultAction>
+        get() = _setResultFlow.asSharedFlow()
+
+    suspend fun newDialog(errorMsgId: Int) {
+        _isDialogShown.compareAndSet(expect = false, update = true)
+        _newDialogFlow.emit(errorMsgId)
+    }
+
+    suspend fun triggerRetry() {
+        _isDialogShown.compareAndSet(expect = true, update = false)
+        _triggerRetryFlow.emit(Any())
+    }
+
+    suspend fun setResultAndFinish(action: FingerprintErrorDialogSetResultAction) {
+        _isDialogShown.compareAndSet(expect = true, update = false)
+        _setResultFlow.emit(action)
+    }
+}
+
+enum class FingerprintErrorDialogSetResultAction {
+    FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
+    FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
+}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.java
deleted file mode 100644
index a9ca7b4..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX;
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_OK;
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_UNKNOWN;
-
-import android.annotation.IntDef;
-import android.app.Application;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MediatorLiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Fingerprint intro onboarding page view model implementation
- */
-public class FingerprintEnrollIntroViewModel extends AndroidViewModel {
-
-    private static final String TAG = "FingerprintEnrollIntroViewModel";
-    private static final boolean HAS_SCROLLED_TO_BOTTOM_DEFAULT = false;
-    private static final int ENROLLABLE_STATUS_DEFAULT = FINGERPRINT_ENROLLABLE_UNKNOWN;
-
-    /**
-     * User clicks 'Done' button on this page
-     */
-    public static final int FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH = 0;
-
-    /**
-     * User clicks 'Agree' button on this page
-     */
-    public static final int FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL = 1;
-
-    /**
-     * User clicks 'Skip' button on this page
-     */
-    public static final int FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL = 2;
-
-    @IntDef(prefix = { "FINGERPRINT_ENROLL_INTRO_ACTION_" }, value = {
-            FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH,
-            FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL,
-            FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface FingerprintEnrollIntroAction {}
-
-    @NonNull private final FingerprintRepository mFingerprintRepository;
-
-    private final MutableLiveData<Boolean> mHasScrolledToBottomLiveData =
-            new MutableLiveData<>(HAS_SCROLLED_TO_BOTTOM_DEFAULT);
-    private final MutableLiveData<Integer> mEnrollableStatusLiveData =
-            new MutableLiveData<>(ENROLLABLE_STATUS_DEFAULT);
-    private final MediatorLiveData<FingerprintEnrollIntroStatus> mPageStatusLiveData =
-            new MediatorLiveData<>();
-    private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
-    private final int mUserId;
-    @NonNull private final EnrollmentRequest mRequest;
-
-    public FingerprintEnrollIntroViewModel(@NonNull Application application,
-            @NonNull FingerprintRepository fingerprintRepository,
-            @NonNull EnrollmentRequest request, int userId) {
-        super(application);
-        mFingerprintRepository = fingerprintRepository;
-        mRequest = request;
-        mUserId = userId;
-
-        mPageStatusLiveData.addSource(
-                mEnrollableStatusLiveData,
-                enrollable -> {
-                    final Boolean toBottomValue = mHasScrolledToBottomLiveData.getValue();
-                    final FingerprintEnrollIntroStatus status = new FingerprintEnrollIntroStatus(
-                            toBottomValue != null ? toBottomValue : HAS_SCROLLED_TO_BOTTOM_DEFAULT,
-                            enrollable);
-                    mPageStatusLiveData.setValue(status);
-                });
-        mPageStatusLiveData.addSource(
-                mHasScrolledToBottomLiveData,
-                hasScrolledToBottom -> {
-                    final Integer enrollableValue = mEnrollableStatusLiveData.getValue();
-                    final FingerprintEnrollIntroStatus status = new FingerprintEnrollIntroStatus(
-                            hasScrolledToBottom,
-                            enrollableValue != null ? enrollableValue : ENROLLABLE_STATUS_DEFAULT);
-                    mPageStatusLiveData.setValue(status);
-                });
-
-        updateEnrollableStatus();
-    }
-
-    /**
-     * Get enrollment request
-     */
-    public EnrollmentRequest getRequest() {
-        return mRequest;
-    }
-
-    private void updateEnrollableStatus() {
-        final int num = mFingerprintRepository.getNumOfEnrolledFingerprintsSize(mUserId);
-        final int max =
-                mRequest.isSuw() && !mRequest.isAfterSuwOrSuwSuggestedAction()
-                ? mFingerprintRepository.getMaxFingerprintsInSuw(getApplication().getResources())
-                : mFingerprintRepository.getMaxFingerprints();
-        mEnrollableStatusLiveData.postValue(num >= max
-                ? FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-                : FINGERPRINT_ENROLLABLE_OK);
-    }
-
-    /**
-     * Get enrollable status and hasScrollToBottom live data
-     */
-    public LiveData<FingerprintEnrollIntroStatus> getPageStatusLiveData() {
-        return mPageStatusLiveData;
-    }
-
-    /**
-     * Clear user's action live data
-     */
-    public void clearActionLiveData() {
-        mActionLiveData.setValue(null);
-    }
-
-    /**
-     * Get user's action live data (like clicking Agree, Skip, or Done)
-     */
-    public LiveData<Integer> getActionLiveData() {
-        return mActionLiveData;
-    }
-
-    /**
-     * The first sensor type is UDFPS sensor or not
-     */
-    public boolean canAssumeUdfps() {
-        return mFingerprintRepository.canAssumeUdfps();
-    }
-
-    /**
-     * Update onboarding intro page has scrolled to bottom
-     */
-    public void setHasScrolledToBottom(boolean value) {
-        mHasScrolledToBottomLiveData.postValue(value);
-    }
-
-    /**
-     * Get parental consent required or not during enrollment process
-     */
-    public boolean isParentalConsentRequired() {
-        return mFingerprintRepository.isParentalConsentRequired(getApplication());
-    }
-
-    /**
-     * Get fingerprint is disable by admin or not
-     */
-    public boolean isBiometricUnlockDisabledByAdmin() {
-        return mFingerprintRepository.isDisabledByAdmin(getApplication(), mUserId);
-    }
-
-    /**
-     * User clicks next button
-     */
-    public void onNextButtonClick() {
-        final Integer status = mEnrollableStatusLiveData.getValue();
-        switch (status != null ? status : ENROLLABLE_STATUS_DEFAULT) {
-            case FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX:
-                mActionLiveData.postValue(FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH);
-                break;
-            case FINGERPRINT_ENROLLABLE_OK:
-                mActionLiveData.postValue(FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL);
-                break;
-            default:
-                Log.w(TAG, "fail to click next, enrolled:" + status);
-        }
-    }
-
-    /**
-     * User clicks skip/cancel button
-     */
-    public void onSkipOrCancelButtonClick() {
-        mActionLiveData.postValue(FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL);
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt
new file mode 100644
index 0000000..98137b4
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModel.kt
@@ -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.biometrics2.ui.viewmodel
+
+import android.app.Application
+import android.util.Log
+import androidx.lifecycle.AndroidViewModel
+import com.android.settings.biometrics2.data.repository.FingerprintRepository
+import com.android.settings.biometrics2.ui.model.EnrollmentRequest
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollable
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.CONTINUE_ENROLL
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.DONE_AND_FINISH
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.SKIP_OR_CANCEL
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharedFlow
+import kotlinx.coroutines.flow.asSharedFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.launch
+
+/** Fingerprint intro onboarding page view model implementation */
+class FingerprintEnrollIntroViewModel(
+    application: Application,
+    private val fingerprintRepository: FingerprintRepository,
+    val request: EnrollmentRequest,
+    private val userId: Int
+) : AndroidViewModel(application) {
+
+    /** User's action flow (like clicking Agree, Skip, or Done) */
+    private val _actionFlow = MutableSharedFlow<FingerprintEnrollIntroAction>()
+    val actionFlow: SharedFlow<FingerprintEnrollIntroAction>
+        get() = _actionFlow.asSharedFlow()
+
+    private fun getEnrollableStatus(): FingerprintEnrollable {
+        val num = fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId)
+        val max =
+            if (request.isSuw && !request.isAfterSuwOrSuwSuggestedAction)
+                fingerprintRepository.getMaxFingerprintsInSuw(
+                    getApplication<Application>().resources
+                )
+            else
+                fingerprintRepository.maxFingerprints
+        return if (num >= max)
+            FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+        else
+            FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
+    }
+
+    private val hasScrolledToBottomFlow = MutableStateFlow(HAS_SCROLLED_TO_BOTTOM_DEFAULT)
+    private val enrollableStatusFlow = MutableStateFlow(getEnrollableStatus())
+
+    /** Enrollable status and hasScrollToBottom live data */
+    val pageStatusFlow: Flow<FingerprintEnrollIntroStatus> =
+        hasScrolledToBottomFlow.combine(enrollableStatusFlow) {
+            hasScrolledToBottom: Boolean, enrollableStatus: FingerprintEnrollable ->
+            FingerprintEnrollIntroStatus(hasScrolledToBottom, enrollableStatus)
+        }
+
+    fun updateEnrollableStatus(scope: CoroutineScope) {
+        scope.launch {
+            enrollableStatusFlow.emit(getEnrollableStatus())
+        }
+    }
+
+    /** The first sensor type is UDFPS sensor or not */
+    val canAssumeUdfps: Boolean
+        get() = fingerprintRepository.canAssumeUdfps()
+
+    /** Update onboarding intro page has scrolled to bottom */
+    fun setHasScrolledToBottom(value: Boolean, scope: CoroutineScope) {
+        scope.launch {
+            hasScrolledToBottomFlow.emit(value)
+        }
+    }
+
+    /** Get parental consent required or not during enrollment process */
+    val isParentalConsentRequired: Boolean
+        get() = fingerprintRepository.isParentalConsentRequired(getApplication())
+
+    /** Get fingerprint is disable by admin or not */
+    val isBiometricUnlockDisabledByAdmin: Boolean
+        get() = fingerprintRepository.isDisabledByAdmin(getApplication(), userId)
+
+    /**
+     * User clicks next button
+     */
+    fun onNextButtonClick(scope: CoroutineScope) {
+        scope.launch {
+            when (val status = enrollableStatusFlow.value) {
+                FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX ->
+                    _actionFlow.emit(DONE_AND_FINISH)
+
+                FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK ->
+                    _actionFlow.emit(CONTINUE_ENROLL)
+
+                else -> Log.w(TAG, "fail to click next, enrolled:$status")
+            }
+        }
+    }
+
+    /** User clicks skip/cancel button */
+    fun onSkipOrCancelButtonClick(scope: CoroutineScope) {
+        scope.launch {
+            _actionFlow.emit(SKIP_OR_CANCEL)
+        }
+    }
+
+    companion object {
+        private const val TAG = "FingerprintEnrollIntroViewModel"
+        private const val HAS_SCROLLED_TO_BOTTOM_DEFAULT = false
+        private val ENROLLABLE_STATUS_DEFAULT = FingerprintEnrollable.FINGERPRINT_ENROLLABLE_UNKNOWN
+    }
+}
+
+enum class FingerprintEnrollIntroAction {
+    /** User clicks 'Done' button on this page */
+    DONE_AND_FINISH,
+    /** User clicks 'Agree' button on this page */
+    CONTINUE_ENROLL,
+    /** User clicks 'Skip' button on this page */
+    SKIP_OR_CANCEL
+}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
index 7074288..9b25ee8 100644
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModel.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.biometrics2.ui.viewmodel;
 
+import static android.hardware.biometrics.BiometricFingerprintConstants.FINGERPRINT_ERROR_CANCELED;
 import static android.hardware.fingerprint.FingerprintManager.ENROLL_ENROLL;
 
 import static com.android.settings.biometrics2.ui.model.EnrollmentProgress.INITIAL_REMAINING;
@@ -41,6 +42,8 @@
 import com.android.settings.biometrics2.ui.model.EnrollmentProgress;
 import com.android.settings.biometrics2.ui.model.EnrollmentStatusMessage;
 
+import java.util.LinkedList;
+
 /**
  * Progress ViewModel handles the state around biometric enrollment. It manages the state of
  * enrollment throughout the activity lifecycle so the app can continue after an event like
@@ -57,6 +60,7 @@
             new MutableLiveData<>();
     private final MutableLiveData<EnrollmentStatusMessage> mErrorMessageLiveData =
             new MutableLiveData<>();
+    private final MutableLiveData<Object> mCanceledSignalLiveData = new MutableLiveData<>();
     private final MutableLiveData<Boolean> mAcquireLiveData = new MutableLiveData<>();
     private final MutableLiveData<Integer> mPointerDownLiveData = new MutableLiveData<>();
     private final MutableLiveData<Integer> mPointerUpLiveData = new MutableLiveData<>();
@@ -66,6 +70,8 @@
 
     private final FingerprintUpdater mFingerprintUpdater;
     @Nullable private CancellationSignal mCancellationSignal = null;
+    @NonNull private final LinkedList<CancellationSignal> mCancelingSignalQueue =
+            new LinkedList<>();
     private final EnrollmentCallback mEnrollmentCallback = new EnrollmentCallback() {
 
         @Override
@@ -91,10 +97,13 @@
 
         @Override
         public void onEnrollmentError(int errMsgId, CharSequence errString) {
-            if (DEBUG) {
-                Log.d(TAG, "onEnrollmentError(" + errMsgId + ", " + errString + ")");
+            Log.d(TAG, "onEnrollmentError(" + errMsgId + ", " + errString
+                    + "), cancelingQueueSize:" + mCancelingSignalQueue.size());
+            if (FINGERPRINT_ERROR_CANCELED == errMsgId && mCancelingSignalQueue.size() > 0) {
+                mCanceledSignalLiveData.postValue(mCancelingSignalQueue.poll());
+            } else {
+                mErrorMessageLiveData.postValue(new EnrollmentStatusMessage(errMsgId, errString));
             }
-            mErrorMessageLiveData.postValue(new EnrollmentStatusMessage(errMsgId, errString));
         }
 
         @Override
@@ -152,6 +161,10 @@
         return mErrorMessageLiveData;
     }
 
+    public LiveData<Object> getCanceledSignalLiveData() {
+        return mCanceledSignalLiveData;
+    }
+
     public LiveData<Boolean> getAcquireLiveData() {
         return mAcquireLiveData;
     }
@@ -167,14 +180,14 @@
     /**
      * Starts enrollment and return latest isEnrolling() result
      */
-    public boolean startEnrollment(@EnrollReason int reason) {
+    public Object startEnrollment(@EnrollReason int reason) {
         if (mToken == null) {
             Log.e(TAG, "Null hardware auth token for enroll");
-            return false;
+            return null;
         }
         if (mCancellationSignal != null) {
-            Log.w(TAG, "Enrolling has started, shall not start again");
-            return true;
+            Log.w(TAG, "Enrolling is running, shall not start again");
+            return mCancellationSignal;
         }
         if (DEBUG) {
             Log.e(TAG, "startEnrollment(" + reason + ")");
@@ -204,7 +217,7 @@
             mFingerprintUpdater.enroll(mToken, mCancellationSignal, mUserId, mEnrollmentCallback,
                     reason);
         }
-        return true;
+        return mCancellationSignal;
     }
 
     /**
@@ -212,13 +225,17 @@
      */
     public boolean cancelEnrollment() {
         final CancellationSignal cancellationSignal = mCancellationSignal;
+        mCancellationSignal = null;
+
         if (cancellationSignal == null) {
             Log.e(TAG, "Fail to cancel enrollment, has cancelled or not start");
             return false;
+        } else {
+            Log.d(TAG, "enrollment cancelled");
         }
-
-        mCancellationSignal = null;
+        mCancelingSignalQueue.add(cancellationSignal);
         cancellationSignal.cancel();
+
         return true;
     }
 
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.java
deleted file mode 100644
index 3c779c9..0000000
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish.FINGERPRINT_SUGGESTION_ACTIVITY;
-import static com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction.EXTRA_FINGERPRINT_ENROLLED_COUNT;
-
-import android.app.Application;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import android.util.Log;
-
-import androidx.activity.result.ActivityResult;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.AndroidViewModel;
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-
-import com.android.settings.biometrics.BiometricEnrollBase;
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-/**
- * Fingerprint enrollment view model implementation
- */
-public class FingerprintEnrollmentViewModel extends AndroidViewModel {
-
-    private static final String TAG = "FingerprintEnrollmentViewModel";
-
-    @VisibleForTesting
-    static final String SAVED_STATE_IS_WAITING_ACTIVITY_RESULT = "is_waiting_activity_result";
-
-    @VisibleForTesting
-    static final String SAVED_STATE_IS_NEW_FINGERPRINT_ADDED = "is_new_fingerprint_added";
-
-    @NonNull private final FingerprintRepository mFingerprintRepository;
-
-    private final AtomicBoolean mIsWaitingActivityResult = new AtomicBoolean(false);
-    private final MutableLiveData<ActivityResult> mSetResultLiveData = new MutableLiveData<>();
-    @NonNull private final EnrollmentRequest mRequest;
-    private boolean mIsNewFingerprintAdded = false;
-
-    public FingerprintEnrollmentViewModel(
-            @NonNull Application application,
-            @NonNull FingerprintRepository fingerprintRepository,
-            @NonNull EnrollmentRequest request) {
-        super(application);
-        mFingerprintRepository = fingerprintRepository;
-        mRequest = request;
-    }
-
-    /**
-     * Get EnrollmentRequest
-     */
-    @NonNull
-    public EnrollmentRequest getRequest() {
-        return mRequest;
-    }
-
-    /**
-     * Get override activity result as current ViewModel status.
-     *
-     * FingerprintEnrollmentActivity supports user enrolls 2nd fingerprint or starts a new flow
-     * through Deferred-SUW, Portal-SUW, or SUW Suggestion. Use a method to get override activity
-     * result instead of putting these if-else on every setResult(), .
-     */
-    @NonNull
-    public ActivityResult getOverrideActivityResult(@NonNull ActivityResult result,
-            @Nullable Bundle generatingChallengeExtras) {
-        // TODO write tests
-        final int newResultCode = mIsNewFingerprintAdded
-                ? BiometricEnrollBase.RESULT_FINISHED
-                : (mRequest.isAfterSuwOrSuwSuggestedAction()
-                        ? BiometricEnrollBase.RESULT_CANCELED
-                        : result.getResultCode());
-
-        Intent newData = result.getData();
-        if (newResultCode == BiometricEnrollBase.RESULT_FINISHED
-                && generatingChallengeExtras != null) {
-            if (newData == null) {
-                newData = new Intent();
-            }
-            newData.putExtras(generatingChallengeExtras);
-        }
-        return new ActivityResult(newResultCode, newData);
-    }
-
-    /**
-     * Activity calls this method during onPause() to finish itself when back to background.
-     *
-     * @param isActivityFinishing Activity has called finish() or not
-     * @param isChangingConfigurations Activity is finished because of configuration changed or not.
-     */
-    public void checkFinishActivityDuringOnPause(boolean isActivityFinishing,
-            boolean isChangingConfigurations) {
-        if (isChangingConfigurations || isActivityFinishing || mRequest.isSuw()
-                || isWaitingActivityResult().get()) {
-            return;
-        }
-
-        mSetResultLiveData.postValue(
-                new ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null));
-    }
-
-    /**
-     * Get Suw fingerprint count extra for statistics
-     */
-    @NonNull
-    public Bundle getSuwFingerprintCountExtra(int userId) {
-        final Bundle bundle = new Bundle();
-        bundle.putInt(EXTRA_FINGERPRINT_ENROLLED_COUNT,
-                mFingerprintRepository.getNumOfEnrolledFingerprintsSize(userId));
-        return bundle;
-    }
-
-    @NonNull
-    public LiveData<ActivityResult> getSetResultLiveData() {
-        return mSetResultLiveData;
-    }
-
-    @NonNull
-    public AtomicBoolean isWaitingActivityResult() {
-        return mIsWaitingActivityResult;
-    }
-
-    /**
-     * Handle savedInstanceState from activity onCreated()
-     */
-    public void setSavedInstanceState(@Nullable Bundle savedInstanceState) {
-        if (savedInstanceState == null) {
-            return;
-        }
-        mIsWaitingActivityResult.set(
-                savedInstanceState.getBoolean(SAVED_STATE_IS_WAITING_ACTIVITY_RESULT, false)
-        );
-        mIsNewFingerprintAdded = savedInstanceState.getBoolean(
-                SAVED_STATE_IS_NEW_FINGERPRINT_ADDED, false);
-    }
-
-    /**
-     * Handle onSaveInstanceState from activity
-     */
-    public void onSaveInstanceState(@NonNull Bundle outState) {
-        outState.putBoolean(SAVED_STATE_IS_WAITING_ACTIVITY_RESULT, mIsWaitingActivityResult.get());
-        outState.putBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED, mIsNewFingerprintAdded);
-    }
-
-    /**
-     * The first sensor type is UDFPS sensor or not
-     */
-    public boolean canAssumeUdfps() {
-        return mFingerprintRepository.canAssumeUdfps();
-    }
-
-    /**
-     * The first sensor type is side fps sensor or not
-     */
-    public boolean canAssumeSfps() {
-        return mFingerprintRepository.canAssumeSfps();
-    }
-
-    /**
-     * Sets mIsNewFingerprintAdded to true
-     */
-    public void setIsNewFingerprintAdded() {
-        mIsNewFingerprintAdded = true;
-    }
-
-    /**
-     * Update FINGERPRINT_SUGGESTION_ACTIVITY into package manager
-     */
-    public void updateFingerprintSuggestionEnableState(int userId) {
-        final int enrolled = mFingerprintRepository.getNumOfEnrolledFingerprintsSize(userId);
-
-        // Only show "Add another fingerprint" if the user already enrolled one.
-        // "Add fingerprint" will be shown in the main flow if the user hasn't enrolled any
-        // fingerprints. If the user already added more than one fingerprint, they already know
-        // to add multiple fingerprints so we don't show the suggestion.
-        final int flag = (enrolled == 1) ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
-                : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
-
-        ComponentName componentName = new ComponentName(getApplication(),
-                FINGERPRINT_SUGGESTION_ACTIVITY);
-        getApplication().getPackageManager().setComponentEnabledSetting(componentName, flag,
-                PackageManager.DONT_KILL_APP);
-        Log.d(TAG, FINGERPRINT_SUGGESTION_ACTIVITY + " enabled state = " + (enrolled == 1));
-    }
-}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt
new file mode 100644
index 0000000..37b0052
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModel.kt
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Application
+import android.content.ComponentName
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.os.Bundle
+import android.util.Log
+import androidx.activity.result.ActivityResult
+import androidx.lifecycle.AndroidViewModel
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics.fingerprint.FingerprintEnrollFinish.FINGERPRINT_SUGGESTION_ACTIVITY
+import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction
+import com.android.settings.biometrics2.data.repository.FingerprintRepository
+import com.android.settings.biometrics2.ui.model.EnrollmentRequest
+import kotlinx.atomicfu.AtomicBoolean
+import kotlinx.atomicfu.atomic
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.flow.MutableSharedFlow
+import kotlinx.coroutines.flow.SharedFlow
+import kotlinx.coroutines.flow.asSharedFlow
+import kotlinx.coroutines.launch
+
+/**
+ * Fingerprint enrollment view model implementation
+ */
+class FingerprintEnrollmentViewModel(
+    application: Application,
+    private val fingerprintRepository: FingerprintRepository,
+    val request: EnrollmentRequest
+) : AndroidViewModel(application) {
+
+    val isWaitingActivityResult: AtomicBoolean = atomic(false)
+
+    private val _setResultFlow = MutableSharedFlow<ActivityResult>()
+    val setResultFlow: SharedFlow<ActivityResult>
+        get() = _setResultFlow.asSharedFlow()
+
+    var isNewFingerprintAdded = false
+        set(value) {
+            // Only allow changing this value from false to true
+            if (!field) {
+                field = value
+            }
+        }
+
+    /**
+     * Get override activity result as current ViewModel status.
+     *
+     * FingerprintEnrollmentActivity supports user enrolls 2nd fingerprint or starts a new flow
+     * through Deferred-SUW, Portal-SUW, or SUW Suggestion. Use a method to get override activity
+     * result instead of putting these if-else on every setResult(), .
+     */
+    fun getOverrideActivityResult(
+        result: ActivityResult,
+        generatingChallengeExtras: Bundle?
+    ): ActivityResult {
+        val newResultCode = if (isNewFingerprintAdded)
+            BiometricEnrollBase.RESULT_FINISHED
+        else if (request.isAfterSuwOrSuwSuggestedAction)
+            BiometricEnrollBase.RESULT_CANCELED
+        else
+            result.resultCode
+
+        var newData = result.data
+        if (newResultCode == BiometricEnrollBase.RESULT_FINISHED
+            && generatingChallengeExtras != null
+        ) {
+            if (newData == null) {
+                newData = Intent()
+            }
+            newData.putExtras(generatingChallengeExtras)
+        }
+        return ActivityResult(newResultCode, newData)
+    }
+
+    /**
+     * Activity calls this method during onPause() to finish itself when back to background.
+     *
+     * @param isActivityFinishing Activity has called finish() or not
+     * @param isChangingConfigurations Activity is finished because of configuration changed or not.
+     */
+    fun checkFinishActivityDuringOnPause(
+        isActivityFinishing: Boolean,
+        isChangingConfigurations: Boolean,
+        scope: CoroutineScope
+    ) {
+        if (isChangingConfigurations || isActivityFinishing || request.isSuw
+            || isWaitingActivityResult.value
+        ) {
+            return
+        }
+        scope.launch {
+            _setResultFlow.emit(ActivityResult(BiometricEnrollBase.RESULT_TIMEOUT, null))
+        }
+    }
+
+    /**
+     * Get Suw fingerprint count extra for statistics
+     */
+    fun getSuwFingerprintCountExtra(userId: Int) = Bundle().also {
+        it.putInt(
+            SetupFingerprintEnrollIntroduction.EXTRA_FINGERPRINT_ENROLLED_COUNT,
+            fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId)
+        )
+    }
+
+    /**
+     * Gets the result about fingerprint enrollable
+     */
+    fun isMaxEnrolledReached(userId: Int): Boolean = with(fingerprintRepository) {
+        maxFingerprints <= getNumOfEnrolledFingerprintsSize(userId)
+    }
+
+    val canAssumeUdfps: Boolean
+        get() = fingerprintRepository.canAssumeUdfps()
+
+    val canAssumeSfps: Boolean
+        get() = fingerprintRepository.canAssumeSfps()
+
+    /**
+     * Update FINGERPRINT_SUGGESTION_ACTIVITY into package manager
+     */
+    fun updateFingerprintSuggestionEnableState(userId: Int) {
+        // Only show "Add another fingerprint" if the user already enrolled one.
+        // "Add fingerprint" will be shown in the main flow if the user hasn't enrolled any
+        // fingerprints. If the user already added more than one fingerprint, they already know
+        // to add multiple fingerprints so we don't show the suggestion.
+        val state = if (fingerprintRepository.getNumOfEnrolledFingerprintsSize(userId) == 1)
+            PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+        else
+            PackageManager.COMPONENT_ENABLED_STATE_DISABLED
+        getApplication<Application>().packageManager.setComponentEnabledSetting(
+            ComponentName(
+                getApplication(),
+                FINGERPRINT_SUGGESTION_ACTIVITY
+            ),
+            state,
+            PackageManager.DONT_KILL_APP
+        )
+        Log.d(TAG, "$FINGERPRINT_SUGGESTION_ACTIVITY enabled state: $state")
+    }
+
+    companion object {
+        private const val TAG = "FingerprintEnrollmentViewModel"
+    }
+}
diff --git a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
index 518397a..c99cb2d 100644
--- a/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
+++ b/src/com/android/settings/biometrics2/ui/widget/UdfpsEnrollView.java
@@ -23,6 +23,7 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.util.RotationUtils;
 import android.view.DisplayInfo;
 import android.view.Surface;
@@ -36,8 +37,8 @@
 import androidx.annotation.Nullable;
 
 import com.android.settings.R;
-import com.android.settingslib.udfps.UdfpsOverlayParams;
-import com.android.settingslib.udfps.UdfpsUtils;
+import com.android.systemui.biometrics.UdfpsUtils;
+import com.android.systemui.biometrics.shared.model.UdfpsOverlayParams;
 
 /**
  * View corresponding with udfps_enroll_view.xml
@@ -130,18 +131,26 @@
         onFingerUp();
     }
 
+    private final ViewTreeObserver.OnDrawListener mOnDrawListener = this::updateOverlayParams;
+
     /**
      * setup SensorProperties
      */
     public void setSensorProperties(FingerprintSensorPropertiesInternal properties) {
         mSensorProperties = properties;
-        ((ViewGroup) getParent()).getViewTreeObserver().addOnDrawListener(
-                new ViewTreeObserver.OnDrawListener() {
-                    @Override
-                    public void onDraw() {
-                        updateOverlayParams();
-                    }
-                });
+        ((ViewGroup) getParent()).getViewTreeObserver().addOnDrawListener(mOnDrawListener);
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        final ViewGroup parent = (ViewGroup) getParent();
+        if (parent != null) {
+            final ViewTreeObserver observer = parent.getViewTreeObserver();
+            if (observer != null) {
+                observer.removeOnDrawListener(mOnDrawListener);
+            }
+        }
+        super.onDetachedFromWindow();
     }
 
     private void onSensorRectUpdated() {
@@ -168,6 +177,10 @@
         }
 
         RelativeLayout parent = ((RelativeLayout) getParent());
+        if (parent == null) {
+            Log.e(TAG, "Fail to updateDimensions for " + this + ", parent null");
+            return;
+        }
         final int[] coords = parent.getLocationOnScreen();
         final int parentLeft = coords[0];
         final int parentTop = coords[1];
@@ -247,8 +260,8 @@
                 displayInfo.getNaturalWidth(),
                 displayInfo.getNaturalHeight(),
                 scaleFactor,
-                displayInfo.rotation);
-
+                displayInfo.rotation,
+                mSensorProperties.sensorType);
 
         post(() -> {
             mProgressBarRadius =
diff --git a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
index ebaa2fa..1326831 100644
--- a/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.bluetooth;
 
+import static com.android.settings.bluetooth.Utils.preloadAndRun;
+
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.content.ContentResolver;
@@ -55,9 +57,13 @@
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.LayoutPreference;
 
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+
 import java.io.IOException;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
@@ -167,6 +173,10 @@
     }
 
     private void registerBluetoothDevice() {
+        if (mBluetoothAdapter == null) {
+            Log.d(TAG, "No mBluetoothAdapter");
+            return;
+        }
         if (mBluetoothDevices == null) {
             mBluetoothDevices = new HashSet<>();
         }
@@ -180,86 +190,139 @@
             }
         });
         if (mBluetoothDevices.isEmpty()) {
-            Log.d(TAG, "No BT devcie to register.");
+            Log.d(TAG, "No BT device to register.");
             return;
         }
         mCachedDevice.registerCallback(this);
-        mBluetoothDevices.forEach(bd ->
-                mBluetoothAdapter.addOnMetadataChangedListener(bd,
-                        mContext.getMainExecutor(), mMetadataListener));
+        Set<BluetoothDevice> errorDevices = new HashSet<>();
+        mBluetoothDevices.forEach(bd -> {
+            try {
+                boolean isSuccess = mBluetoothAdapter.addOnMetadataChangedListener(bd,
+                        mContext.getMainExecutor(), mMetadataListener);
+                if (!isSuccess) {
+                    Log.e(TAG, bd.getAnonymizedAddress() + ": add into Listener failed");
+                    errorDevices.add(bd);
+                }
+            } catch (NullPointerException e) {
+                errorDevices.add(bd);
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            } catch (IllegalArgumentException e) {
+                errorDevices.add(bd);
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            }
+        });
+        for (BluetoothDevice errorDevice : errorDevices) {
+            mBluetoothDevices.remove(errorDevice);
+            Log.d(TAG, "mBluetoothDevices remove " + errorDevice.getAnonymizedAddress());
+        }
     }
 
     private void unRegisterBluetoothDevice() {
+        if (mBluetoothAdapter == null) {
+            Log.d(TAG, "No mBluetoothAdapter");
+            return;
+        }
         if (mBluetoothDevices == null || mBluetoothDevices.isEmpty()) {
-            Log.d(TAG, "No BT devcie to unregister.");
+            Log.d(TAG, "No BT device to unregister.");
             return;
         }
         mCachedDevice.unregisterCallback(this);
-        mBluetoothDevices.forEach(bd -> mBluetoothAdapter.removeOnMetadataChangedListener(bd,
-                mMetadataListener));
+        mBluetoothDevices.forEach(bd -> {
+            try {
+                mBluetoothAdapter.removeOnMetadataChangedListener(bd, mMetadataListener);
+            } catch (NullPointerException e) {
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            } catch (IllegalArgumentException e) {
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            }
+        });
         mBluetoothDevices.clear();
     }
 
     @VisibleForTesting
     void refresh() {
         if (mLayoutPreference != null && mCachedDevice != null) {
-            final TextView title = mLayoutPreference.findViewById(R.id.entity_header_title);
-            title.setText(mCachedDevice.getName());
-            final TextView summary = mLayoutPreference.findViewById(R.id.entity_header_summary);
+            Supplier<String> deviceName = Suppliers.memoize(() -> mCachedDevice.getName());
+            Supplier<Boolean> disconnected =
+                    Suppliers.memoize(() -> !mCachedDevice.isConnected() || mCachedDevice.isBusy());
+            Supplier<Boolean> isUntetheredHeadset =
+                    Suppliers.memoize(() -> isUntetheredHeadset(mCachedDevice.getDevice()));
+            Supplier<String> summaryText =
+                    Suppliers.memoize(
+                            () -> {
+                                if (disconnected.get() || isUntetheredHeadset.get()) {
+                                    return mCachedDevice.getConnectionSummary(
+                                            /* shortSummary= */ true);
+                                }
+                                return mCachedDevice.getConnectionSummary(
+                                        BluetoothUtils.getIntMetaData(
+                                                        mCachedDevice.getDevice(),
+                                                        BluetoothDevice.METADATA_MAIN_BATTERY)
+                                                != BluetoothUtils.META_INT_ERROR);
+                            });
+            preloadAndRun(
+                    List.of(deviceName, disconnected, isUntetheredHeadset, summaryText),
+                    () -> {
+                        final TextView title =
+                                mLayoutPreference.findViewById(R.id.entity_header_title);
+                        title.setText(deviceName.get());
+                        final TextView summary =
+                                mLayoutPreference.findViewById(R.id.entity_header_summary);
 
-            if (!mCachedDevice.isConnected() || mCachedDevice.isBusy()) {
-                summary.setText(mCachedDevice.getConnectionSummary(true /* shortSummary */));
-                updateDisconnectLayout();
-                return;
-            }
-            final BluetoothDevice device = mCachedDevice.getDevice();
-            final String deviceType = BluetoothUtils.getStringMetaData(device,
-                    BluetoothDevice.METADATA_DEVICE_TYPE);
-            if (TextUtils.equals(deviceType,
-                    BluetoothDevice.DEVICE_TYPE_UNTETHERED_HEADSET)
-                    || BluetoothUtils.getBooleanMetaData(device,
-                    BluetoothDevice.METADATA_IS_UNTETHERED_HEADSET)) {
-                summary.setText(mCachedDevice.getConnectionSummary(true /* shortSummary */));
-                updateSubLayout(mLayoutPreference.findViewById(R.id.layout_left),
-                        BluetoothDevice.METADATA_UNTETHERED_LEFT_ICON,
-                        BluetoothDevice.METADATA_UNTETHERED_LEFT_BATTERY,
-                        BluetoothDevice.METADATA_UNTETHERED_LEFT_LOW_BATTERY_THRESHOLD,
-                        BluetoothDevice.METADATA_UNTETHERED_LEFT_CHARGING,
-                        R.string.bluetooth_left_name,
-                        LEFT_DEVICE_ID);
+                        if (disconnected.get()) {
+                            summary.setText(summaryText.get());
+                            updateDisconnectLayout();
+                            return;
+                        }
+                        if (isUntetheredHeadset.get()) {
+                            summary.setText(summaryText.get());
+                            updateSubLayout(
+                                    mLayoutPreference.findViewById(R.id.layout_left),
+                                    BluetoothDevice.METADATA_UNTETHERED_LEFT_ICON,
+                                    BluetoothDevice.METADATA_UNTETHERED_LEFT_BATTERY,
+                                    BluetoothDevice.METADATA_UNTETHERED_LEFT_LOW_BATTERY_THRESHOLD,
+                                    BluetoothDevice.METADATA_UNTETHERED_LEFT_CHARGING,
+                                    R.string.bluetooth_left_name,
+                                    LEFT_DEVICE_ID);
 
-                updateSubLayout(mLayoutPreference.findViewById(R.id.layout_middle),
-                        BluetoothDevice.METADATA_UNTETHERED_CASE_ICON,
-                        BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY,
-                        BluetoothDevice.METADATA_UNTETHERED_CASE_LOW_BATTERY_THRESHOLD,
-                        BluetoothDevice.METADATA_UNTETHERED_CASE_CHARGING,
-                        R.string.bluetooth_middle_name,
-                        CASE_DEVICE_ID);
+                            updateSubLayout(
+                                    mLayoutPreference.findViewById(R.id.layout_middle),
+                                    BluetoothDevice.METADATA_UNTETHERED_CASE_ICON,
+                                    BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY,
+                                    BluetoothDevice.METADATA_UNTETHERED_CASE_LOW_BATTERY_THRESHOLD,
+                                    BluetoothDevice.METADATA_UNTETHERED_CASE_CHARGING,
+                                    R.string.bluetooth_middle_name,
+                                    CASE_DEVICE_ID);
 
-                updateSubLayout(mLayoutPreference.findViewById(R.id.layout_right),
-                        BluetoothDevice.METADATA_UNTETHERED_RIGHT_ICON,
-                        BluetoothDevice.METADATA_UNTETHERED_RIGHT_BATTERY,
-                        BluetoothDevice.METADATA_UNTETHERED_RIGHT_LOW_BATTERY_THRESHOLD,
-                        BluetoothDevice.METADATA_UNTETHERED_RIGHT_CHARGING,
-                        R.string.bluetooth_right_name,
-                        RIGHT_DEVICE_ID);
+                            updateSubLayout(
+                                    mLayoutPreference.findViewById(R.id.layout_right),
+                                    BluetoothDevice.METADATA_UNTETHERED_RIGHT_ICON,
+                                    BluetoothDevice.METADATA_UNTETHERED_RIGHT_BATTERY,
+                                    BluetoothDevice.METADATA_UNTETHERED_RIGHT_LOW_BATTERY_THRESHOLD,
+                                    BluetoothDevice.METADATA_UNTETHERED_RIGHT_CHARGING,
+                                    R.string.bluetooth_right_name,
+                                    RIGHT_DEVICE_ID);
 
-                showBothDevicesBatteryPredictionIfNecessary();
-            } else {
-                mLayoutPreference.findViewById(R.id.layout_left).setVisibility(View.GONE);
-                mLayoutPreference.findViewById(R.id.layout_right).setVisibility(View.GONE);
+                            showBothDevicesBatteryPredictionIfNecessary();
+                        } else {
+                            mLayoutPreference
+                                    .findViewById(R.id.layout_left)
+                                    .setVisibility(View.GONE);
+                            mLayoutPreference
+                                    .findViewById(R.id.layout_right)
+                                    .setVisibility(View.GONE);
 
-                summary.setText(mCachedDevice.getConnectionSummary(
-                        BluetoothUtils.getIntMetaData(device, BluetoothDevice.METADATA_MAIN_BATTERY)
-                                != BluetoothUtils.META_INT_ERROR));
-                updateSubLayout(mLayoutPreference.findViewById(R.id.layout_middle),
-                        BluetoothDevice.METADATA_MAIN_ICON,
-                        BluetoothDevice.METADATA_MAIN_BATTERY,
-                        BluetoothDevice.METADATA_MAIN_LOW_BATTERY_THRESHOLD,
-                        BluetoothDevice.METADATA_MAIN_CHARGING,
-                        /* titleResId */ 0,
-                        MAIN_DEVICE_ID);
-            }
+                            summary.setText(summaryText.get());
+                            updateSubLayout(
+                                    mLayoutPreference.findViewById(R.id.layout_middle),
+                                    BluetoothDevice.METADATA_MAIN_ICON,
+                                    BluetoothDevice.METADATA_MAIN_BATTERY,
+                                    BluetoothDevice.METADATA_MAIN_LOW_BATTERY_THRESHOLD,
+                                    BluetoothDevice.METADATA_MAIN_CHARGING,
+                                    /* titleResId= */ 0,
+                                    MAIN_DEVICE_ID);
+                        }
+                    });
         }
     }
 
@@ -267,7 +330,7 @@
     Drawable createBtBatteryIcon(Context context, int level, boolean charging) {
         final BatteryMeterView.BatteryMeterDrawable drawable =
                 new BatteryMeterView.BatteryMeterDrawable(context,
-                        context.getColor(R.color.meter_background_color),
+                        context.getColor(com.android.settingslib.R.color.meter_background_color),
                         context.getResources().getDimensionPixelSize(
                                 R.dimen.advanced_bluetooth_battery_meter_width),
                         context.getResources().getDimensionPixelSize(
@@ -282,13 +345,87 @@
         return drawable;
     }
 
-    private void updateSubLayout(LinearLayout linearLayout, int iconMetaKey, int batteryMetaKey,
-            int lowBatteryMetaKey, int chargeMetaKey, int titleResId, int deviceId) {
+    private void updateSubLayout(
+            LinearLayout linearLayout,
+            int iconMetaKey,
+            int batteryMetaKey,
+            int lowBatteryMetaKey,
+            int chargeMetaKey,
+            int titleResId,
+            int deviceId) {
         if (linearLayout == null) {
             return;
         }
+        BluetoothDevice bluetoothDevice = mCachedDevice.getDevice();
+        Supplier<String> iconUri =
+                Suppliers.memoize(
+                        () -> BluetoothUtils.getStringMetaData(bluetoothDevice, iconMetaKey));
+        Supplier<Integer> batteryLevel =
+                Suppliers.memoize(
+                        () -> BluetoothUtils.getIntMetaData(bluetoothDevice, batteryMetaKey));
+        Supplier<Boolean> charging =
+                Suppliers.memoize(
+                        () -> BluetoothUtils.getBooleanMetaData(bluetoothDevice, chargeMetaKey));
+        Supplier<Integer> lowBatteryLevel =
+                Suppliers.memoize(
+                        () -> {
+                            int level =
+                                    BluetoothUtils.getIntMetaData(
+                                            bluetoothDevice, lowBatteryMetaKey);
+                            if (level == BluetoothUtils.META_INT_ERROR) {
+                                if (batteryMetaKey
+                                        == BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY) {
+                                    level = CASE_LOW_BATTERY_LEVEL;
+                                } else {
+                                    level = LOW_BATTERY_LEVEL;
+                                }
+                            }
+                            return level;
+                        });
+        Supplier<Boolean> isUntethered =
+                Suppliers.memoize(() -> isUntetheredHeadset(bluetoothDevice));
+        Supplier<Integer> nativeBatteryLevel = Suppliers.memoize(bluetoothDevice::getBatteryLevel);
+        preloadAndRun(
+                List.of(
+                        iconUri,
+                        batteryLevel,
+                        charging,
+                        lowBatteryLevel,
+                        isUntethered,
+                        nativeBatteryLevel),
+                () ->
+                        updateSubLayoutUi(
+                                linearLayout,
+                                iconMetaKey,
+                                batteryMetaKey,
+                                lowBatteryMetaKey,
+                                chargeMetaKey,
+                                titleResId,
+                                deviceId,
+                                iconUri,
+                                batteryLevel,
+                                charging,
+                                lowBatteryLevel,
+                                isUntethered,
+                                nativeBatteryLevel));
+    }
+
+    private void updateSubLayoutUi(
+            LinearLayout linearLayout,
+            int iconMetaKey,
+            int batteryMetaKey,
+            int lowBatteryMetaKey,
+            int chargeMetaKey,
+            int titleResId,
+            int deviceId,
+            Supplier<String> preloadedIconUri,
+            Supplier<Integer> preloadedBatteryLevel,
+            Supplier<Boolean> preloadedCharging,
+            Supplier<Integer> preloadedLowBatteryLevel,
+            Supplier<Boolean> preloadedIsUntethered,
+            Supplier<Integer> preloadedNativeBatteryLevel) {
         final BluetoothDevice bluetoothDevice = mCachedDevice.getDevice();
-        final String iconUri = BluetoothUtils.getStringMetaData(bluetoothDevice, iconMetaKey);
+        final String iconUri = preloadedIconUri.get();
         final ImageView imageView = linearLayout.findViewById(R.id.header_icon);
         if (iconUri != null) {
             updateIcon(imageView, iconUri);
@@ -298,17 +435,9 @@
             imageView.setImageDrawable(pair.first);
             imageView.setContentDescription(pair.second);
         }
-        final int batteryLevel = BluetoothUtils.getIntMetaData(bluetoothDevice, batteryMetaKey);
-        final boolean charging = BluetoothUtils.getBooleanMetaData(bluetoothDevice, chargeMetaKey);
-        int lowBatteryLevel = BluetoothUtils.getIntMetaData(bluetoothDevice,
-                lowBatteryMetaKey);
-        if (lowBatteryLevel == BluetoothUtils.META_INT_ERROR) {
-            if (batteryMetaKey == BluetoothDevice.METADATA_UNTETHERED_CASE_BATTERY) {
-                lowBatteryLevel = CASE_LOW_BATTERY_LEVEL;
-            } else {
-                lowBatteryLevel = LOW_BATTERY_LEVEL;
-            }
-        }
+        final int batteryLevel = preloadedBatteryLevel.get();
+        final boolean charging = preloadedCharging.get();
+        int lowBatteryLevel = preloadedLowBatteryLevel.get();
 
         Log.d(TAG, "buletoothDevice: " + bluetoothDevice.getAnonymizedAddress()
                 + ", updateSubLayout() icon : " + iconMetaKey + ", battery : " + batteryMetaKey
@@ -320,7 +449,7 @@
             showBatteryPredictionIfNecessary(linearLayout, deviceId, batteryLevel);
         }
         final TextView batterySummaryView = linearLayout.findViewById(R.id.bt_battery_summary);
-        if (isUntetheredHeadset(bluetoothDevice)) {
+        if (preloadedIsUntethered.get()) {
             if (batteryLevel != BluetoothUtils.META_INT_ERROR) {
                 linearLayout.setVisibility(View.VISIBLE);
                 batterySummaryView.setText(
@@ -331,7 +460,7 @@
                 if (deviceId == MAIN_DEVICE_ID) {
                     linearLayout.setVisibility(View.VISIBLE);
                     linearLayout.findViewById(R.id.bt_battery_icon).setVisibility(View.GONE);
-                    int level = bluetoothDevice.getBatteryLevel();
+                    int level = preloadedNativeBatteryLevel.get();
                     if (level != BluetoothDevice.BATTERY_LEVEL_UNKNOWN
                             && level != BluetoothDevice.BATTERY_LEVEL_BLUETOOTH_OFF) {
                         batterySummaryView.setText(
diff --git a/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
index 99ebd7b..23ba4f6 100644
--- a/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
@@ -23,11 +23,11 @@
 import androidx.preference.Preference;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
 
-/**
- * Controller to maintain available media Bluetooth devices
- */
+/** Controller to maintain available media Bluetooth devices */
 public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
         implements Preference.OnPreferenceClickListener {
 
@@ -37,11 +37,15 @@
     private static final String PREF_KEY = "available_media_bt";
 
     private final AudioManager mAudioManager;
+    private final LocalBluetoothManager mLocalBtManager;
 
-    public AvailableMediaBluetoothDeviceUpdater(Context context,
-            DevicePreferenceCallback devicePreferenceCallback, int metricsCategory) {
+    public AvailableMediaBluetoothDeviceUpdater(
+            Context context,
+            DevicePreferenceCallback devicePreferenceCallback,
+            int metricsCategory) {
         super(context, devicePreferenceCallback, metricsCategory);
         mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        mLocalBtManager = Utils.getLocalBtManager(context);
     }
 
     @Override
@@ -66,17 +70,32 @@
 
         boolean isFilterMatched = false;
         if (isDeviceConnected(cachedDevice) && isDeviceInCachedDevicesList(cachedDevice)) {
-            if (DBG) {
-                Log.d(TAG, "isFilterMatched() current audio profile : " + currentAudioProfile);
-            }
-            // If device is Hearing Aid or LE Audio, it is compatible with HFP and A2DP.
+            Log.d(TAG, "isFilterMatched() current audio profile : " + currentAudioProfile);
+
+            // If device is Hearing Aid, it is compatible with HFP and A2DP.
             // It would show in Available Devices group.
-            if (cachedDevice.isConnectedAshaHearingAidDevice()
-                    || cachedDevice.isConnectedLeAudioDevice()) {
-                Log.d(TAG, "isFilterMatched() device : " +
-                        cachedDevice.getName() + ", the profile is connected.");
+            if (cachedDevice.isConnectedAshaHearingAidDevice()) {
+                Log.d(
+                        TAG,
+                        "isFilterMatched() device : "
+                                + cachedDevice.getName()
+                                + ", the Hearing Aid profile is connected.");
                 return true;
             }
+            // If device is LE Audio, it is compatible with HFP and A2DP.
+            // It would show in Available Devices group if the audio sharing flag is disabled or
+            // the device is not in the audio sharing session.
+            if (cachedDevice.isConnectedLeAudioDevice()) {
+                if (!AudioSharingUtils.isFeatureEnabled()
+                        || !AudioSharingUtils.hasBroadcastSource(cachedDevice, mLocalManager)) {
+                    Log.d(
+                            TAG,
+                            "isFilterMatched() device : "
+                                    + cachedDevice.getName()
+                                    + ", the LE Audio profile is connected and not in sharing.");
+                    return true;
+                }
+            }
             // According to the current audio profile type,
             // this page will show the bluetooth device that have corresponding profile.
             // For example:
@@ -91,10 +110,12 @@
                     isFilterMatched = cachedDevice.isConnectedHfpDevice();
                     break;
             }
-            if (DBG) {
-                Log.d(TAG, "isFilterMatched() device : " +
-                        cachedDevice.getName() + ", isFilterMatched : " + isFilterMatched);
-            }
+            Log.d(
+                    TAG,
+                    "isFilterMatched() device : "
+                            + cachedDevice.getName()
+                            + ", isFilterMatched : "
+                            + isFilterMatched);
         }
         return isFilterMatched;
     }
@@ -102,8 +123,15 @@
     @Override
     public boolean onPreferenceClick(Preference preference) {
         mMetricsFeatureProvider.logClickedPreference(preference, mMetricsCategory);
-        final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
-                .getBluetoothDevice();
+        final CachedBluetoothDevice device =
+                ((BluetoothDevicePreference) preference).getBluetoothDevice();
+        if (AudioSharingUtils.isFeatureEnabled()
+                && AudioSharingUtils.isBroadcasting(mLocalBtManager)) {
+            if (DBG) {
+                Log.d(TAG, "onPreferenceClick stop broadcasting.");
+            }
+            AudioSharingUtils.stopBroadcasting(mLocalBtManager);
+        }
         return device.setActive();
     }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java b/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java
index 7fa63b0..2914cf4 100644
--- a/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothBroadcastDialog.java
@@ -113,7 +113,7 @@
         });
 
         mAlertDialog = new AlertDialog.Builder(mContext,
-                com.android.settingslib.R.style.Theme_AlertDialog_SettingsLib)
+                com.android.settingslib.widget.theme.R.style.Theme_AlertDialog_SettingsLib)
             .setView(layout)
             .create();
 
diff --git a/src/com/android/settings/bluetooth/BluetoothBroadcastSourcePreference.java b/src/com/android/settings/bluetooth/BluetoothBroadcastSourcePreference.java
index 9904e8b..d0fabc6 100644
--- a/src/com/android/settings/bluetooth/BluetoothBroadcastSourcePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothBroadcastSourcePreference.java
@@ -42,7 +42,8 @@
 class BluetoothBroadcastSourcePreference extends Preference {
 
     private static final int RESOURCE_ID_UNKNOWN_PROGRAM_INFO = R.string.device_info_default;
-    private static final int RESOURCE_ID_ICON = R.drawable.settings_input_antenna;
+    private static final int RESOURCE_ID_ICON =
+            com.android.settingslib.R.drawable.settings_input_antenna;
 
     private BluetoothLeBroadcastMetadata mBluetoothLeBroadcastMetadata;
     private BluetoothLeBroadcastReceiveState mBluetoothLeBroadcastReceiveState;
@@ -59,16 +60,19 @@
     @Override
     public void onBindViewHolder(final PreferenceViewHolder view) {
         super.onBindViewHolder(view);
-        view.findViewById(R.id.two_target_divider).setVisibility(View.INVISIBLE);
-        final ImageButton imageButton = (ImageButton) view.findViewById(R.id.icon_button);
+        view.findViewById(com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider)
+                .setVisibility(View.INVISIBLE);
+        final ImageButton imageButton =
+                (ImageButton) view.findViewById(com.android.settingslib.R.id.icon_button);
         imageButton.setVisibility(View.GONE);
-        mFrictionImageView = (ImageView) view.findViewById(R.id.friction_icon);
+        mFrictionImageView =
+                (ImageView) view.findViewById(com.android.settingslib.R.id.friction_icon);
         updateStatusButton();
     }
 
     private void initUi() {
-        setLayoutResource(R.layout.preference_access_point);
-        setWidgetLayoutResource(R.layout.access_point_friction_widget);
+        setLayoutResource(com.android.settingslib.R.layout.preference_access_point);
+        setWidgetLayoutResource(com.android.settingslib.R.layout.access_point_friction_widget);
         mTitle = getContext().getString(RESOURCE_ID_UNKNOWN_PROGRAM_INFO);
         mStatus = false;
         final Drawable drawable = getContext().getDrawable(RESOURCE_ID_ICON);
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
index 9571767..d62543b 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
@@ -23,6 +23,7 @@
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_OTHER;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
+import static android.media.audio.Flags.automaticBtDeviceType;
 
 import android.content.Context;
 import android.media.AudioManager;
@@ -106,9 +107,15 @@
                     final int index = pref.findIndexOfValue(value);
                     if (index >= 0) {
                         pref.setSummary(pref.getEntries()[index]);
-                        mAudioManager.setBluetoothAudioDeviceCategory(mCachedDevice.getAddress(),
-                                mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE,
-                                Integer.parseInt(value));
+                        if (automaticBtDeviceType()) {
+                            mAudioManager.setBluetoothAudioDeviceCategory(
+                                    mCachedDevice.getAddress(), Integer.parseInt(value));
+                        } else {
+                            mAudioManager.setBluetoothAudioDeviceCategory_legacy(
+                                    mCachedDevice.getAddress(),
+                                    mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE,
+                                    Integer.parseInt(value));
+                        }
                         mCachedDevice.onAudioDeviceCategoryChanged();
                     }
                 }
@@ -163,9 +170,15 @@
                 Integer.toString(AUDIO_DEVICE_CATEGORY_OTHER),
         });
 
-        @AudioDeviceCategory final int deviceCategory =
-                mAudioManager.getBluetoothAudioDeviceCategory(mCachedDevice.getAddress(),
-                        mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE);
+        @AudioDeviceCategory int deviceCategory;
+        if (automaticBtDeviceType()) {
+            deviceCategory = mAudioManager.getBluetoothAudioDeviceCategory(
+                    mCachedDevice.getAddress());
+        } else {
+            deviceCategory = mAudioManager.getBluetoothAudioDeviceCategory_legacy(
+                    mCachedDevice.getAddress(),
+                    mCachedDevice.getDevice().getType() == DEVICE_TYPE_LE);
+        }
         if (DEBUG) {
             Log.v(TAG, "getBluetoothAudioDeviceCategory() device: "
                     + mCachedDevice.getDevice().getAnonymizedAddress()
@@ -173,6 +186,12 @@
         }
         mAudioDeviceTypePreference.setValue(Integer.toString(deviceCategory));
 
+        if (automaticBtDeviceType()) {
+            if (mAudioManager.isBluetoothAudioDeviceCategoryFixed(mCachedDevice.getAddress())) {
+                mAudioDeviceTypePreference.setEnabled(false);
+            }
+        }
+
         mAudioDeviceTypePreference.setSummary(mAudioDeviceTypePreference.getEntry());
         mAudioDeviceTypePreference.setOnPreferenceChangeListener(this);
     }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java
index e3f0f09..ad65ce4 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsController.java
@@ -185,7 +185,7 @@
     public void updatePreferences(Context context,
             String address, PreferenceCategory container) {
         // If the device is FastPair, remove CDM companion apps.
-        final BluetoothFeatureProvider bluetoothFeatureProvider = FeatureFactory.getFactory(context)
+        final BluetoothFeatureProvider bluetoothFeatureProvider = FeatureFactory.getFeatureFactory()
                 .getBluetoothFeatureProvider();
         final boolean sliceEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
                 SettingsUIDeviceConfig.BT_SLICE_SETTINGS_ENABLED, true);
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsController.java
index 5444f68..3338fe9 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsController.java
@@ -51,7 +51,7 @@
         mFragment = fragment;
         mCachedDevice = device;
         lifecycle.addObserver(this);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java b/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java
index 0d74f3c..1f63993 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncController.java
@@ -20,13 +20,13 @@
 import android.companion.CompanionDeviceManager;
 import android.companion.datatransfer.PermissionSyncRequest;
 import android.content.Context;
-import android.provider.Settings;
 
 import androidx.preference.Preference;
 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;
@@ -69,7 +69,7 @@
                 a -> Objects.equal(mCachedDevice.getAddress(),
                         a.getDeviceMacAddress().toString().toUpperCase())).max(
                 Comparator.comparingLong(AssociationInfo::getTimeApprovedMs)).ifPresent(
-                    a -> mAssociationId = a.getId());
+                a -> mAssociationId = a.getId());
     }
 
     @Override
@@ -82,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()) {
@@ -91,7 +91,7 @@
                 mCompanionDeviceManager.disablePermissionsSync(mAssociationId);
             }
         }
-        return true;
+        return false;
     }
 
     @Override
@@ -107,7 +107,7 @@
 
     @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);
@@ -133,13 +133,11 @@
     }
 
     @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,
-                mCachedDevice.getName(),
-                Settings.Global.getString(context.getContentResolver(), "device_name")));
+        pref.setSummary(context.getString(R.string.bluetooth_details_permissions_sync_summary));
         pref.setOnPreferenceClickListener(this);
         return pref;
     }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsExtraOptionsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsExtraOptionsController.java
new file mode 100644
index 0000000..ddaf5e5
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsExtraOptionsController.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.content.Context;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.utils.ThreadUtils;
+
+import dagger.internal.Preconditions;
+
+import java.util.List;
+
+public class BluetoothDetailsExtraOptionsController extends BluetoothDetailsController {
+
+    private static final String KEY_BLUETOOTH_EXTRA_OPTIONS = "bt_extra_options";
+
+    @VisibleForTesting @Nullable
+    PreferenceCategory mOptionsContainer;
+    @Nullable PreferenceScreen mPreferenceScreen;
+
+    public BluetoothDetailsExtraOptionsController(
+            Context context,
+            PreferenceFragmentCompat fragment,
+            CachedBluetoothDevice device,
+            Lifecycle lifecycle) {
+        super(context, fragment, device, lifecycle);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_BLUETOOTH_EXTRA_OPTIONS;
+    }
+
+    @Override
+    protected void init(PreferenceScreen screen) {
+        mPreferenceScreen = screen;
+        mOptionsContainer = screen.findPreference(getPreferenceKey());
+        refresh();
+    }
+
+    @Override
+    protected void refresh() {
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    List<Preference> options =
+                            FeatureFactory.getFeatureFactory()
+                                    .getBluetoothFeatureProvider()
+                                    .getBluetoothExtraOptions(mContext, mCachedDevice);
+                    ThreadUtils.postOnMainThread(
+                            () -> {
+                                if (mOptionsContainer != null) {
+                                    mOptionsContainer.removeAll();
+                                    for (Preference option : options) {
+                                        mOptionsContainer.addPreference(option);
+                                    }
+                                    setVisible(
+                                            Preconditions.checkNotNull(mPreferenceScreen),
+                                            getPreferenceKey(),
+                                            !options.isEmpty());
+                                }
+                            });
+                });
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
index 8f90b28..5ffa8cf 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
@@ -29,8 +29,6 @@
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.LayoutPreference;
 
@@ -41,15 +39,10 @@
     private static final String KEY_DEVICE_HEADER = "bluetooth_device_header";
 
     private EntityHeaderController mHeaderController;
-    private LocalBluetoothManager mLocalManager;
-    private CachedBluetoothDeviceManager mDeviceManager;
 
     public BluetoothDetailsHeaderController(Context context, PreferenceFragmentCompat fragment,
-            CachedBluetoothDevice device, Lifecycle lifecycle,
-            LocalBluetoothManager bluetoothManager) {
+            CachedBluetoothDevice device, Lifecycle lifecycle) {
         super(context, fragment, device, lifecycle);
-        mLocalManager = bluetoothManager;
-        mDeviceManager = mLocalManager.getCachedDeviceManager();
     }
 
     @Override
@@ -87,7 +80,7 @@
     protected void refresh() {
         if (isAvailable()) {
             setHeaderProperties();
-            mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
+            mHeaderController.done(true /* rebindActions */);
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHearingDeviceControlsController.java
index c4a4221..3d85ca2 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;
@@ -39,7 +38,8 @@
 public class BluetoothDetailsHearingDeviceControlsController extends BluetoothDetailsController
         implements Preference.OnPreferenceClickListener {
 
-    private static final String KEY_DEVICE_CONTROLS_GENERAL_GROUP = "device_controls_general";
+    @VisibleForTesting
+    static final String KEY_DEVICE_CONTROLS_GENERAL_GROUP = "device_controls_general";
     @VisibleForTesting
     static final String KEY_HEARING_DEVICE_CONTROLS = "hearing_device_controls";
 
@@ -51,8 +51,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/BluetoothDetailsMacAddressController.java b/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java
index d80512e..9943013 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsMacAddressController.java
@@ -59,6 +59,12 @@
                 title.append("\n").append(member.getIdentityAddress());
             }
             mFooterPreference.setTitle(title);
+        } else if (mCachedDevice.getSubDevice() != null) {
+            StringBuilder title = new StringBuilder(mContext.getString(
+                    R.string.bluetooth_multuple_devices_mac_address,
+                    mCachedDevice.getIdentityAddress()));
+            title.append("\n").append(mCachedDevice.getSubDevice().getIdentityAddress());
+            mFooterPreference.setTitle(title);
         } else {
             mFooterPreference.setTitle(mContext.getString(
                     R.string.bluetooth_device_mac_address, mCachedDevice.getIdentityAddress()));
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java b/src/com/android/settings/bluetooth/BluetoothDetailsPairOtherController.java
index 188b4ad..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;
@@ -31,6 +32,8 @@
 
 import com.google.common.annotations.VisibleForTesting;
 
+import java.util.Set;
+
 /**
  * This class handles button preference logic to display for hearing aid device.
  */
@@ -73,7 +76,6 @@
     protected void refresh() {
         updateButtonPreferenceTitle(mPreference);
         setPreferencesVisibility(getButtonPreferenceVisibility(mCachedDevice));
-
     }
 
     private void updateButtonPreferenceTitle(ButtonPreference preference) {
@@ -91,7 +93,11 @@
     }
 
     private boolean getButtonPreferenceVisibility(CachedBluetoothDevice cachedDevice) {
-        return isBinauralMode(cachedDevice) && isOnlyOneSideConnected(cachedDevice);
+        // The device is not connected yet. Don't show the button.
+        if (!cachedDevice.isConnectedHearingAidDevice()) {
+            return false;
+        }
+        return isBinauralMode(cachedDevice) && !isOtherSideBonded(cachedDevice);
     }
 
     private void launchPairingDetail() {
@@ -106,16 +112,16 @@
         return cachedDevice.getDeviceMode() == HearingAidInfo.DeviceMode.MODE_BINAURAL;
     }
 
-    private boolean isOnlyOneSideConnected(CachedBluetoothDevice cachedDevice) {
-        if (!cachedDevice.isConnectedAshaHearingAidDevice()) {
-            return false;
-        }
-
+    private boolean isOtherSideBonded(CachedBluetoothDevice cachedDevice) {
         final CachedBluetoothDevice subDevice = cachedDevice.getSubDevice();
-        if (subDevice != null && subDevice.isConnectedAshaHearingAidDevice()) {
-            return false;
-        }
+        final boolean subDeviceBonded =
+                subDevice != null && subDevice.getBondState() == BluetoothDevice.BOND_BONDED;
 
-        return true;
+        final Set<CachedBluetoothDevice> memberDevice = cachedDevice.getMemberDevice();
+        final boolean allMemberDevicesBonded =
+                !memberDevice.isEmpty() && memberDevice.stream().allMatch(
+                        device -> device.getBondState() == BluetoothDevice.BOND_BONDED);
+
+        return subDeviceBonded || allMemberDevicesBonded;
     }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java b/src/com/android/settings/bluetooth/BluetoothDetailsProfilesController.java
index e76b92e..943d99b 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,15 @@
 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.settings.flags.Flags;
+import com.android.settings.overlay.FeatureFactory;
 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;
@@ -44,11 +51,14 @@
 import com.android.settingslib.bluetooth.PanProfile;
 import com.android.settingslib.bluetooth.PbapServerProfile;
 import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.utils.ThreadUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * This class adds switches for toggling the individual profiles that a Bluetooth device
@@ -68,11 +78,14 @@
 
     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";
 
+    private final AtomicReference<Set<String>> mInvisiblePreferenceKey = new AtomicReference<>();
+
     private LocalBluetoothManager mManager;
     private LocalBluetoothProfileManager mProfileManager;
     private CachedBluetoothDevice mCachedDevice;
@@ -107,29 +120,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();
@@ -158,6 +190,7 @@
         } else if (profile instanceof PbapServerProfile) {
             profilePref.setChecked(device.getPhonebookAccessPermission()
                     == BluetoothDevice.ACCESS_ALLOWED);
+            profilePref.setSummary(profile.getSummaryResourceForDevice(mCachedDevice.getDevice()));
         } else if (profile instanceof PanProfile) {
             profilePref.setChecked(profile.getConnectionStatus(device) ==
                     BluetoothProfile.STATE_CONNECTED);
@@ -167,8 +200,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);
@@ -253,7 +286,7 @@
                 return false;
             }
         }
-        SwitchPreference profilePref = (SwitchPreference) preference;
+        TwoStatePreference profilePref = (TwoStatePreference) preference;
         if (profilePref.isChecked()) {
             enableProfile(profile);
         } else {
@@ -327,15 +360,23 @@
         }
 
         LocalBluetoothProfile asha = mProfileManager.getHearingAidProfile();
+        LocalBluetoothProfile broadcastAssistant =
+                mProfileManager.getLeAudioBroadcastAssistantProfile();
 
         for (CachedBluetoothDevice leAudioDevice : mProfileDeviceMap.get(profile.toString())) {
             Log.d(TAG,
                     "device:" + leAudioDevice.getDevice().getAnonymizedAddress()
-                            + "disable LE profile");
+                            + " disable LE profile");
             profile.setEnabled(leAudioDevice.getDevice(), false);
             if (asha != null) {
                 asha.setEnabled(leAudioDevice.getDevice(), true);
             }
+            if (broadcastAssistant != null) {
+                Log.d(TAG,
+                        "device:" + leAudioDevice.getDevice().getAnonymizedAddress()
+                                + " disable LE broadcast assistant profile");
+                broadcastAssistant.setEnabled(leAudioDevice.getDevice(), false);
+            }
         }
 
         if (!SystemProperties.getBoolean(ENABLE_DUAL_MODE_AUDIO, false)) {
@@ -362,15 +403,23 @@
             disableProfileBeforeUserEnablesLeAudio(mProfileManager.getHeadsetProfile());
         }
         LocalBluetoothProfile asha = mProfileManager.getHearingAidProfile();
+        LocalBluetoothProfile broadcastAssistant =
+                mProfileManager.getLeAudioBroadcastAssistantProfile();
 
         for (CachedBluetoothDevice leAudioDevice : mProfileDeviceMap.get(profile.toString())) {
             Log.d(TAG,
                     "device:" + leAudioDevice.getDevice().getAnonymizedAddress()
-                            + "enable LE profile");
+                            + " enable LE profile");
             profile.setEnabled(leAudioDevice.getDevice(), true);
             if (asha != null) {
                 asha.setEnabled(leAudioDevice.getDevice(), false);
             }
+            if (broadcastAssistant != null) {
+                Log.d(TAG,
+                        "device:" + leAudioDevice.getDevice().getAnonymizedAddress()
+                                + " enable LE broadcast assistant profile");
+                broadcastAssistant.setEnabled(leAudioDevice.getDevice(), true);
+            }
         }
     }
 
@@ -432,12 +481,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;
             });
@@ -468,12 +517,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
@@ -505,12 +554,27 @@
      */
     @Override
     protected void refresh() {
+        if (Flags.enableBluetoothProfileToggleVisibilityChecker()) {
+            ThreadUtils.postOnBackgroundThread(
+                    () -> {
+                        mInvisiblePreferenceKey.set(
+                                FeatureFactory.getFeatureFactory()
+                                        .getBluetoothFeatureProvider()
+                                        .getInvisibleProfilePreferenceKeys(
+                                                mContext, mCachedDevice.getDevice()));
+                        ThreadUtils.postOnMainThread(this::refreshUi);
+                    });
+        } else {
+            refreshUi();
+        }
+    }
+
+    private void refreshUi() {
         for (LocalBluetoothProfile profile : getProfiles()) {
             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);
@@ -519,8 +583,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);
             }
@@ -536,6 +600,16 @@
             preference.setSelectable(false);
             mProfilesContainer.addPreference(preference);
         }
+
+        if (Flags.enableBluetoothProfileToggleVisibilityChecker()) {
+            Set<String> invisibleKeys = mInvisiblePreferenceKey.get();
+            if (invisibleKeys != null) {
+                for (int i = 0; i < mProfilesContainer.getPreferenceCount(); ++i) {
+                    Preference pref = mProfilesContainer.getPreference(i);
+                    pref.setVisible(pref.isVisible() && !invisibleKeys.contains(pref.getKey()));
+                }
+            }
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsRelatedToolsController.java b/src/com/android/settings/bluetooth/BluetoothDetailsRelatedToolsController.java
index bfaea85..dc5a91a 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsRelatedToolsController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsRelatedToolsController.java
@@ -75,8 +75,8 @@
             mPreferenceCategory.removePreference(liveCaptionPreference);
         }
 
-        final List<ComponentName> relatedToolsList = FeatureFactory.getFactory(
-                mContext).getBluetoothFeatureProvider().getRelatedTools();
+        final List<ComponentName> relatedToolsList =
+                FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider().getRelatedTools();
         if (!CollectionUtils.isEmpty(relatedToolsList)) {
             addAccessibilityInstalledRelatedPreference(relatedToolsList);
         }
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
index c431cee..e5fb365 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
@@ -21,7 +21,6 @@
 import android.content.Context;
 import android.media.AudioDeviceAttributes;
 import android.media.AudioDeviceInfo;
-import android.media.AudioManager;
 import android.media.Spatializer;
 import android.text.TextUtils;
 import android.util.Log;
@@ -31,11 +30,16 @@
 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.overlay.FeatureFactory;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /**
  * The controller of the Spatial audio setting in the bluetooth detail settings.
@@ -55,14 +59,16 @@
     @VisibleForTesting
     AudioDeviceAttributes mAudioDevice = null;
 
+    AtomicBoolean mHasHeadTracker = new AtomicBoolean(false);
+
     public BluetoothDetailsSpatialAudioController(
             Context context,
             PreferenceFragmentCompat fragment,
             CachedBluetoothDevice device,
             Lifecycle lifecycle) {
         super(context, fragment, device, lifecycle);
-        AudioManager audioManager = context.getSystemService(AudioManager.class);
-        mSpatializer = audioManager.getSpatializer();
+        mSpatializer = FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider()
+                .getSpatializer(context);
     }
 
     @Override
@@ -72,11 +78,17 @@
 
     @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());
-            refreshSpatialAudioEnabled(switchPreference);
+            ThreadUtils.postOnBackgroundThread(
+                    () -> {
+                        mHasHeadTracker.set(
+                                mAudioDevice != null && mSpatializer.hasHeadTracker(mAudioDevice));
+                        mContext.getMainExecutor()
+                                .execute(() -> refreshSpatialAudioEnabled(switchPreference));
+                    });
             return true;
         } else if (TextUtils.equals(key, KEY_HEAD_TRACKING)) {
             updateSpatializerHeadTracking(switchPreference.isChecked());
@@ -123,8 +135,16 @@
         if (mAudioDevice == null) {
             getAvailableDevice();
         }
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    mHasHeadTracker.set(
+                            mAudioDevice != null && mSpatializer.hasHeadTracker(mAudioDevice));
+                    mContext.getMainExecutor().execute(this::refreshUi);
+                });
+    }
 
-        SwitchPreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO);
+    private void refreshUi() {
+        TwoStatePreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO);
         if (spatialAudioPref == null && mAudioDevice != null) {
             spatialAudioPref = createSpatialAudioPreference(mProfilesContainer.getContext());
             mProfilesContainer.addPreference(spatialAudioPref);
@@ -132,7 +152,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 +164,13 @@
         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,11 +178,10 @@
         refreshHeadTracking(spatialAudioPref, headTrackingPref);
     }
 
-    private void refreshHeadTracking(SwitchPreference spatialAudioPref,
-                                     SwitchPreference headTrackingPref) {
-        boolean isHeadTrackingAvailable =
-                spatialAudioPref.isChecked() && mSpatializer.hasHeadTracker(mAudioDevice);
-        Log.d(TAG, "refresh() has head tracker : " + mSpatializer.hasHeadTracker(mAudioDevice));
+    private void refreshHeadTracking(TwoStatePreference spatialAudioPref,
+            TwoStatePreference headTrackingPref) {
+        boolean isHeadTrackingAvailable = spatialAudioPref.isChecked() && mHasHeadTracker.get();
+        Log.d(TAG, "refresh() has head tracker : " + mHasHeadTracker.get());
         headTrackingPref.setVisible(isHeadTrackingAvailable);
         if (isHeadTrackingAvailable) {
             headTrackingPref.setChecked(mSpatializer.isHeadTrackerEnabled(mAudioDevice));
@@ -169,8 +189,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 +199,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/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index ae022aa..9c68c9c 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -22,6 +22,7 @@
 import android.app.settings.SettingsEnums;
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
+import android.content.Intent;
 import android.content.res.TypedArray;
 import android.hardware.input.InputManager;
 import android.net.Uri;
@@ -53,6 +54,7 @@
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
@@ -173,8 +175,8 @@
         use(LeAudioBluetoothDetailsHeaderController.class).init(mCachedDevice, mManager);
         use(KeyboardSettingsPreferenceController.class).init(mCachedDevice);
 
-        final BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory(
-                context).getBluetoothFeatureProvider();
+        final BluetoothFeatureProvider featureProvider =
+                FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider();
         final boolean sliceEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
                 SettingsUIDeviceConfig.BT_SLICE_SETTINGS_ENABLED, true);
 
@@ -184,8 +186,8 @@
     }
 
     private void updateExtraControlUri(int viewWidth) {
-        BluetoothFeatureProvider featureProvider = FeatureFactory.getFactory(
-                getContext()).getBluetoothFeatureProvider();
+        BluetoothFeatureProvider featureProvider =
+                FeatureFactory.getFeatureFactory().getBluetoothFeatureProvider();
         boolean sliceEnabled = DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_SETTINGS_UI,
                 SettingsUIDeviceConfig.BT_SLICE_SETTINGS_ENABLED, true);
         Uri controlUri = null;
@@ -203,6 +205,16 @@
         slicePreferenceController.setSliceUri(sliceEnabled ? controlUri : null);
         slicePreferenceController.onStart();
         slicePreferenceController.displayPreference(getPreferenceScreen());
+
+        // Temporarily fix the issue that the page will be automatically scrolled to a wrong
+        // position when entering the page. This will make sure the bluetooth header is shown on top
+        // of the page.
+        use(LeAudioBluetoothDetailsHeaderController.class).displayPreference(
+                getPreferenceScreen());
+        use(AdvancedBluetoothDetailsHeaderController.class).displayPreference(
+                getPreferenceScreen());
+        use(BluetoothDetailsHeaderController.class).displayPreference(
+                getPreferenceScreen());
     }
 
     private final ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener =
@@ -295,7 +307,7 @@
         if (mCachedDevice != null) {
             Lifecycle lifecycle = getSettingsLifecycle();
             controllers.add(new BluetoothDetailsHeaderController(context, this, mCachedDevice,
-                    lifecycle, mManager));
+                    lifecycle));
             controllers.add(new BluetoothDetailsButtonsController(context, this, mCachedDevice,
                     lifecycle));
             controllers.add(new BluetoothDetailsCompanionAppsController(context, this,
@@ -314,10 +326,16 @@
                     lifecycle));
             controllers.add(new BluetoothDetailsPairOtherController(context, this, mCachedDevice,
                     lifecycle));
-            controllers.add(new BluetoothDetailsHearingDeviceControlsController(context, this,
-                    mCachedDevice, lifecycle));
+            // Don't need to show hearing device again when launched from the same page.
+            if (!isLaunchFromHearingDevicePage()) {
+                controllers.add(new BluetoothDetailsHearingDeviceControlsController(context, this,
+                        mCachedDevice, lifecycle));
+            }
             controllers.add(new BluetoothDetailsDataSyncController(context, this,
                     mCachedDevice, lifecycle));
+            controllers.add(
+                    new BluetoothDetailsExtraOptionsController(
+                            context, this, mCachedDevice, lifecycle));
         }
         return controllers;
     }
@@ -335,6 +353,16 @@
         return width;
     }
 
+    private boolean isLaunchFromHearingDevicePage() {
+        final Intent intent = getIntent();
+        if (intent == null) {
+            return false;
+        }
+
+        return intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
+                SettingsEnums.PAGE_UNKNOWN) == SettingsEnums.ACCESSIBILITY_HEARING_AID_SETTINGS;
+    }
+
     @VisibleForTesting
     void setTitleForInputDevice() {
         if (StylusDevicesController.isDeviceStylus(mInputDevice, mCachedDevice)) {
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBase.java b/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBase.java
index f2bc6fc..67c32ed 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBase.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBase.java
@@ -99,8 +99,8 @@
             return;
         } else if (bondState == BluetoothDevice.BOND_BONDING) {
             // Set the bond entry where binding process starts for logging hearing aid device info
-            final int pageId = FeatureFactory.getFactory(
-                    getContext()).getMetricsFeatureProvider().getAttribution(getActivity());
+            final int pageId = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+                    .getAttribution(getActivity());
             final int bondEntry = AccessibilityStatsLogUtils.convertToHearingAidInfoBondEntry(
                     pageId);
             HearingAidStatsLogUtils.setBondEntryForDevice(bondEntry, cachedDevice);
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
index 039080b..ac0c63b 100644
--- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
+++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java
@@ -156,7 +156,7 @@
         return R.layout.preference_widget_gear;
     }
 
-    CachedBluetoothDevice getCachedDevice() {
+    public CachedBluetoothDevice getCachedDevice() {
         return mCachedDevice;
     }
 
@@ -196,6 +196,10 @@
     }
 
     private void registerMetadataChangedListener() {
+        if (mBluetoothAdapter == null) {
+            Log.d(TAG, "No mBluetoothAdapter");
+            return;
+        }
         if (mBluetoothDevices == null) {
             mBluetoothDevices = new HashSet<>();
         }
@@ -210,18 +214,47 @@
             Log.d(TAG, "No BT device to register.");
             return;
         }
-        mBluetoothDevices.forEach(bd ->
-                mBluetoothAdapter.addOnMetadataChangedListener(bd,
-                        getContext().getMainExecutor(), mMetadataListener));
+        Set<BluetoothDevice> errorDevices = new HashSet<>();
+        mBluetoothDevices.forEach(bd -> {
+            try {
+                boolean isSuccess = mBluetoothAdapter.addOnMetadataChangedListener(bd,
+                        getContext().getMainExecutor(), mMetadataListener);
+                if (!isSuccess) {
+                    Log.e(TAG, bd.getAnonymizedAddress() + ": add into Listener failed");
+                    errorDevices.add(bd);
+                }
+            } catch (NullPointerException e) {
+                errorDevices.add(bd);
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            } catch (IllegalArgumentException e) {
+                errorDevices.add(bd);
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            }
+        });
+        for (BluetoothDevice errorDevice : errorDevices) {
+            mBluetoothDevices.remove(errorDevice);
+            Log.d(TAG, "mBluetoothDevices remove " + errorDevice.getAnonymizedAddress());
+        }
     }
 
     private void unregisterMetadataChangedListener() {
+        if (mBluetoothAdapter == null) {
+            Log.d(TAG, "No mBluetoothAdapter");
+            return;
+        }
         if (mBluetoothDevices == null || mBluetoothDevices.isEmpty()) {
             Log.d(TAG, "No BT device to unregister.");
             return;
         }
-        mBluetoothDevices.forEach(
-                bd -> mBluetoothAdapter.removeOnMetadataChangedListener(bd, mMetadataListener));
+        mBluetoothDevices.forEach(bd -> {
+            try {
+                mBluetoothAdapter.removeOnMetadataChangedListener(bd, mMetadataListener);
+            } catch (NullPointerException e) {
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            } catch (IllegalArgumentException e) {
+                Log.e(TAG, bd.getAnonymizedAddress() + ":" + e.toString());
+            }
+        });
         mBluetoothDevices.clear();
     }
 
@@ -329,12 +362,16 @@
         }
     }
 
-    void onClicked() {
+    /**
+     * Performs different actions according to the device connected and bonded state after
+     * clicking on the preference.
+     */
+    public void onClicked() {
         Context context = getContext();
         int bondState = mCachedDevice.getBondState();
 
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         if (mCachedDevice.isConnected()) {
             metricsFeatureProvider.action(context,
@@ -378,7 +415,7 @@
     private void pair() {
         if (!mCachedDevice.startPairing()) {
             Utils.showError(getContext(), mCachedDevice.getName(),
-                    R.string.bluetooth_pairing_error_message);
+                    com.android.settingslib.R.string.bluetooth_pairing_error_message);
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
index e8751dc..4c70b95 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceController.java
@@ -38,7 +38,7 @@
      */
     public BluetoothDeviceRenamePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
index 2935c67..4b21b2e 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
@@ -82,7 +82,7 @@
         mPreferenceMap = new HashMap<>();
         mLocalManager = localManager;
         mMetricsCategory = metricsCategory;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     /**
@@ -183,10 +183,8 @@
 
     @Override
     public void onAclConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) {
-        if (DBG) {
-            Log.d(getLogTag(), "onAclConnectionStateChanged() device: " + cachedDevice.getName()
-                    + ", state: " + state);
-        }
+        Log.d(getLogTag(), "onAclConnectionStateChanged() device: " + cachedDevice.getName()
+                + ", state: " + state);
         update(cachedDevice);
     }
 
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/BluetoothFeatureProvider.java b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
index 648ca30..1751082 100644
--- a/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
+++ b/src/com/android/settings/bluetooth/BluetoothFeatureProvider.java
@@ -18,9 +18,16 @@
 
 import android.bluetooth.BluetoothDevice;
 import android.content.ComponentName;
+import android.content.Context;
+import android.media.Spatializer;
 import android.net.Uri;
 
+import androidx.preference.Preference;
+
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+
 import java.util.List;
+import java.util.Set;
 
 /**
  * Provider for bluetooth related features.
@@ -50,4 +57,31 @@
      * @return list of {@link ComponentName}
      */
     List<ComponentName> getRelatedTools();
+
+    /**
+     * Gets the instance of {@link Spatializer}.
+     *
+     * @param context Context
+     * @return the Spatializer instance
+     */
+    Spatializer getSpatializer(Context context);
+
+    /**
+     * Gets bluetooth device extra options
+     *
+     * @param context Context
+     * @param device the bluetooth device
+     * @return the extra bluetooth preference list
+     */
+    List<Preference> getBluetoothExtraOptions(Context context, CachedBluetoothDevice device);
+
+    /**
+     * Gets the bluetooth profile preference keys which should be hidden in the device details page.
+     *
+     * @param context         Context
+     * @param bluetoothDevice the bluetooth device
+     * @return the profiles which should be hidden
+     */
+    Set<String> getInvisibleProfilePreferenceKeys(
+            Context context, BluetoothDevice bluetoothDevice);
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
index 5ddf062..2d4ac49 100644
--- a/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
+++ b/src/com/android/settings/bluetooth/BluetoothFeatureProviderImpl.java
@@ -19,19 +19,26 @@
 import android.bluetooth.BluetoothDevice;
 import android.content.ComponentName;
 import android.content.Context;
+import android.media.AudioManager;
+import android.media.Spatializer;
 import android.net.Uri;
 
+import androidx.preference.Preference;
+
 import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 
 import java.util.List;
+import java.util.Set;
 
 /**
  * Impl of {@link BluetoothFeatureProvider}
  */
 public class BluetoothFeatureProviderImpl implements BluetoothFeatureProvider {
 
-    public BluetoothFeatureProviderImpl(Context context) {}
-
     @Override
     public Uri getBluetoothDeviceSettingsUri(BluetoothDevice bluetoothDevice) {
         final byte[] uriByte = bluetoothDevice.getMetadata(
@@ -48,4 +55,22 @@
     public List<ComponentName> getRelatedTools() {
         return null;
     }
+
+    @Override
+    public Spatializer getSpatializer(Context context) {
+        AudioManager audioManager = context.getSystemService(AudioManager.class);
+        return audioManager.getSpatializer();
+    }
+
+    @Override
+    public List<Preference> getBluetoothExtraOptions(Context context,
+            CachedBluetoothDevice device) {
+        return ImmutableList.of();
+    }
+
+    @Override
+    public Set<String> getInvisibleProfilePreferenceKeys(
+            Context context, BluetoothDevice bluetoothDevice) {
+        return ImmutableSet.of();
+    }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragment.java b/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragment.java
index f9d083d..cffd68c 100644
--- a/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragment.java
@@ -30,10 +30,16 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.Spanned;
+import android.text.TextWatcher;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.WindowManager;
+import android.widget.Button;
 import android.widget.EditText;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -474,9 +480,64 @@
                 .create();
 
         alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
+        addTextWatcher(alertDialog, editText);
         alertDialog.show();
+        updateBtnState(alertDialog, false);
     }
 
+    private void addTextWatcher(AlertDialog alertDialog, EditText editText) {
+        if (alertDialog == null || editText == null) {
+            return;
+        }
+        final InputFilter[] filter = new InputFilter[] {mInputFilter};
+        editText.setFilters(filter);
+        editText.setInputType(InputType.TYPE_CLASS_TEXT
+                | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
+        TextWatcher bCodeTextWatcher = new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+                // Do nothing
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+                // Do nothing
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                boolean breakBroadcastCodeRuleTextLengthLessThanMin =
+                        s.length() > 0 && s.toString().getBytes().length < 4;
+                boolean breakBroadcastCodeRuleTextLengthMoreThanMax =
+                        s.toString().getBytes().length > 16;
+                boolean breakRule = breakBroadcastCodeRuleTextLengthLessThanMin
+                        || breakBroadcastCodeRuleTextLengthMoreThanMax;
+                updateBtnState(alertDialog, !breakRule);
+            }
+        };
+        editText.addTextChangedListener(bCodeTextWatcher);
+    }
+
+    private void updateBtnState(AlertDialog alertDialog, boolean isEnable) {
+        Button positiveBtn = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
+        if (positiveBtn != null) {
+            positiveBtn.setEnabled(isEnable ? true : false);
+        }
+    }
+
+    private InputFilter mInputFilter = new InputFilter() {
+        @Override
+        public CharSequence filter(CharSequence source, int start, int end,
+                Spanned dest, int dstart, int dend) {
+            byte[] bytes = source.toString().getBytes(StandardCharsets.UTF_8);
+            if (bytes.length == source.length()) {
+                return source;
+            } else {
+                return "";
+            }
+        }
+    };
+
     private void handleSearchStarted() {
         cacheRemoveAllPrefs(mBroadcastSourceListCategory);
         addConnectedSourcePreference();
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
index 0cd36d0..d5b4211 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -16,7 +16,8 @@
 
 package com.android.settings.bluetooth;
 
-import android.annotation.Nullable;
+import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
+
 import android.bluetooth.BluetoothDevice;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -24,11 +25,10 @@
 import android.content.IntentFilter;
 import android.os.Bundle;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.FragmentActivity;
 
-import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
-
 /**
  * BluetoothPairingDialog asks the user to enter a PIN / Passkey / simple confirmation
  * for pairing with a remote Bluetooth device. It is an activity that appears as a dialog.
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
index e11c275..33e6fc3 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
@@ -32,6 +32,7 @@
 import android.view.inputmethod.InputMethodManager;
 import android.widget.Button;
 import android.widget.CheckBox;
+import android.widget.CompoundButton;
 import android.widget.EditText;
 import android.widget.TextView;
 
@@ -300,8 +301,10 @@
         mBuilder.setTitle(getString(R.string.bluetooth_pairing_request,
                 mPairingController.getDeviceName()));
         mBuilder.setView(createView());
-        mBuilder.setPositiveButton(getString(R.string.bluetooth_pairing_accept), this);
-        mBuilder.setNegativeButton(getString(R.string.bluetooth_pairing_decline), this);
+        mBuilder.setPositiveButton(
+                getString(com.android.settingslib.R.string.bluetooth_pairing_accept), this);
+        mBuilder.setNegativeButton(
+                getString(com.android.settingslib.R.string.bluetooth_pairing_decline), this);
         AlertDialog dialog = mBuilder.create();
         return dialog;
     }
@@ -339,11 +342,9 @@
         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);
-        CheckBox contactSharing = (CheckBox) view.findViewById(
-                R.id.phonebook_sharing_message_confirm_pin);
-        contactSharing.setText(getString(R.string.bluetooth_pairing_shares_phonebook));
-
-        contactSharing.setVisibility(
+        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();
         contactSharing.setChecked(mPairingController.getContactSharingState());
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/bluetooth/BluetoothSummaryUpdater.java b/src/com/android/settings/bluetooth/BluetoothSummaryUpdater.java
index 6e82649..4587fba 100644
--- a/src/com/android/settings/bluetooth/BluetoothSummaryUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothSummaryUpdater.java
@@ -80,9 +80,9 @@
             case BluetoothAdapter.STATE_CONNECTED:
                 return getConnectedDeviceSummary();
             case BluetoothAdapter.STATE_CONNECTING:
-                return mContext.getString(R.string.bluetooth_connecting);
+                return mContext.getString(com.android.settingslib.R.string.bluetooth_connecting);
             case BluetoothAdapter.STATE_DISCONNECTING:
-                return mContext.getString(R.string.bluetooth_disconnecting);
+                return mContext.getString(com.android.settingslib.R.string.bluetooth_disconnecting);
             default:
                 return mContext.getString(R.string.disconnected);
         }
diff --git a/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java b/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java
index 5c3af9b..6fd5070 100644
--- a/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceController.java
@@ -68,7 +68,7 @@
 
         mBluetoothEnabler = new BluetoothEnabler(context,
                 switchController,
-                FeatureFactory.getFactory(context).getMetricsFeatureProvider(),
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider(),
                 SettingsEnums.ACTION_SETTINGS_MASTER_SWITCH_BLUETOOTH_TOGGLE,
                 mRestrictionUtils);
         mBluetoothEnabler.setToggleCallback(this);
diff --git a/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java
index 489c095..012220c 100644
--- a/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdater.java
@@ -24,6 +24,8 @@
 import androidx.preference.Preference;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 
 /**
@@ -95,6 +97,15 @@
                         cachedDevice.getName() + ", isFilterMatched : " + isFilterMatched);
             }
         }
+        if (Flags.enableHideExclusivelyManagedBluetoothDevice()) {
+            if (BluetoothUtils.isExclusivelyManagedBluetoothDevice(mContext,
+                    cachedDevice.getDevice())) {
+                if (DBG) {
+                    Log.d(TAG, "isFilterMatched() hide BluetoothDevice with exclusive manager");
+                }
+                return false;
+            }
+        }
         return isFilterMatched;
     }
 
diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt
index f18ae46..77a80b8 100644
--- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt
+++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.kt
@@ -55,7 +55,12 @@
 abstract class DeviceListPreferenceFragment(restrictedKey: String?) :
     RestrictedDashboardFragment(restrictedKey), BluetoothCallback {
 
-    private var filter: BluetoothDeviceFilter.Filter? = BluetoothDeviceFilter.ALL_FILTER
+    enum class ScanType {
+        CLASSIC, LE
+    }
+
+    private var scanType = ScanType.CLASSIC
+    private var filter: BluetoothDeviceFilter.Filter = BluetoothDeviceFilter.ALL_FILTER
     private var leScanFilters: List<ScanFilter>? = null
 
     @JvmField
@@ -91,7 +96,8 @@
     private var showDevicesWithoutNames = false
 
     protected fun setFilter(filterType: Int) {
-        filter = BluetoothDeviceFilter.getFilter(filterType)
+        this.scanType = ScanType.CLASSIC
+        this.filter = BluetoothDeviceFilter.getFilter(filterType)
     }
 
     /**
@@ -101,7 +107,7 @@
      * @param leScanFilters list of settings to filter scan result
      */
     fun setFilter(leScanFilters: List<ScanFilter>?) {
-        filter = null
+        this.scanType = ScanType.LE
         this.leScanFilters = leScanFilters
     }
 
@@ -191,11 +197,14 @@
 
     private suspend fun addDevice(cachedDevice: CachedBluetoothDevice) =
         withContext(Dispatchers.Default) {
-            // TODO(b/289189853): Replace checking if `filter` is null or not to decide which type
-            // of Bluetooth scanning method will be used
-            val filterMatched = filter == null || filter!!.matches(cachedDevice.device) == true
-            // Prevent updates while the list shows one of the state messages
-            if (mBluetoothAdapter!!.state == BluetoothAdapter.STATE_ON && filterMatched) {
+            if (mBluetoothAdapter!!.state != BluetoothAdapter.STATE_ON) {
+                // Prevent updates while the list shows one of the state messages
+                return@withContext
+            }
+            // LE filters was already applied at scan time. We just need to check if the classic
+            // filter matches
+            if (scanType == ScanType.LE
+                || (scanType == ScanType.CLASSIC && filter.matches(cachedDevice.device) == true)) {
                 createDevicePreference(cachedDevice)
             }
         }
@@ -277,19 +286,19 @@
 
     @VisibleForTesting
     open fun startScanning() {
-        if (filter != null) {
-            startClassicScanning()
-        } else if (leScanFilters != null) {
+        if (scanType == ScanType.LE) {
             startLeScanning()
+        } else {
+            startClassicScanning()
         }
     }
 
     @VisibleForTesting
     open fun stopScanning() {
-        if (filter != null) {
-            stopClassicScanning()
-        } else if (leScanFilters != null) {
+        if (scanType == ScanType.LE) {
             stopLeScanning()
+        } else {
+            stopClassicScanning()
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/HearingAidPairingDialogFragment.java b/src/com/android/settings/bluetooth/HearingAidPairingDialogFragment.java
index acbfd92..3a16e3e 100644
--- a/src/com/android/settings/bluetooth/HearingAidPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/HearingAidPairingDialogFragment.java
@@ -28,8 +28,11 @@
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.settings.R;
+import com.android.settings.accessibility.HearingDevicePairingDetail;
+import com.android.settings.accessibility.HearingDevicePairingFragment;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.HearingAidInfo;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -41,6 +44,8 @@
         CachedBluetoothDevice.Callback {
     public static final String TAG = "HearingAidPairingDialogFragment";
     private static final String KEY_DEVICE_ADDRESS = "device_address";
+    private static final String KEY_LAUNCH_PAGE = "launch_page";
+
     private LocalBluetoothManager mLocalBluetoothManager;
     private CachedBluetoothDevice mDevice;
 
@@ -50,11 +55,17 @@
      *
      * @param deviceAddress The remote Bluetooth device address, that needs to be a hearing aid
      *                      device.
+     * @param launchPage The id of the page where this dialog launch from. Should be one of
+     *                   {@link SettingsEnums#ACCESSIBILITY},
+     *                   {@link SettingsEnums#ACCESSIBILITY_HEARING_AID_SETTINGS}, or
+     *                   {@link SettingsEnums#SETTINGS_CONNECTED_DEVICE_CATEGORY}
      * @return a DialogFragment
      */
-    public static HearingAidPairingDialogFragment newInstance(String deviceAddress) {
+    public static HearingAidPairingDialogFragment newInstance(String deviceAddress,
+            int launchPage) {
         Bundle args = new Bundle(1);
         args.putString(KEY_DEVICE_ADDRESS, deviceAddress);
+        args.putInt(KEY_LAUNCH_PAGE, launchPage);
         final HearingAidPairingDialogFragment fragment = new HearingAidPairingDialogFragment();
         fragment.setArguments(args);
         return fragment;
@@ -111,8 +122,17 @@
     }
 
     private void positiveButtonListener() {
+        final int launchPage = getArguments().getInt(KEY_LAUNCH_PAGE);
+        final boolean launchFromA11y = (launchPage == SettingsEnums.ACCESSIBILITY)
+                || (launchPage == SettingsEnums.ACCESSIBILITY_HEARING_AID_SETTINGS);
+        final String a11yDestination = Flags.newHearingDevicePairingPage()
+                ? HearingDevicePairingFragment.class.getName()
+                : HearingDevicePairingDetail.class.getName();
+        final String destination = launchFromA11y
+                ? a11yDestination
+                : BluetoothPairingDetail.class.getName();
         new SubSettingLauncher(getActivity())
-                .setDestination(BluetoothPairingDetail.class.getName())
+                .setDestination(destination)
                 .setSourceMetricsCategory(getMetricsCategory())
                 .launch();
     }
diff --git a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
index f72494f..a64874d 100644
--- a/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/LeAudioBluetoothDetailsHeaderController.java
@@ -192,7 +192,7 @@
     Drawable createBtBatteryIcon(Context context, int level) {
         final BatteryMeterView.BatteryMeterDrawable drawable =
                 new BatteryMeterView.BatteryMeterDrawable(context,
-                        context.getColor(R.color.meter_background_color),
+                        context.getColor(com.android.settingslib.R.color.meter_background_color),
                         context.getResources().getDimensionPixelSize(
                                 R.dimen.advanced_bluetooth_battery_meter_width),
                         context.getResources().getDimensionPixelSize(
@@ -287,7 +287,8 @@
                     com.android.settings.Utils.formatPercentage(batteryLevel);
             batterySummaryView.setText(batteryLevelPercentageString);
             batterySummaryView.setContentDescription(mContext.getString(
-                    R.string.bluetooth_battery_level, batteryLevelPercentageString));
+                    com.android.settingslib.R.string.bluetooth_battery_level,
+                    batteryLevelPercentageString));
             batterySummaryView.setCompoundDrawablesRelativeWithIntrinsicBounds(
                     createBtBatteryIcon(mContext, batteryLevel), /* top */ null,
                     /* end */ null, /* bottom */ null);
diff --git a/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java b/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
index ebca342..6dd1105 100644
--- a/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
+++ b/src/com/android/settings/bluetooth/LocalBluetoothPreferences.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.bluetooth;
 
-import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
@@ -26,6 +25,8 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
+
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 
 /**
diff --git a/src/com/android/settings/bluetooth/OWNERS b/src/com/android/settings/bluetooth/OWNERS
index e7fbbd1..0a3dec9 100644
--- a/src/com/android/settings/bluetooth/OWNERS
+++ b/src/com/android/settings/bluetooth/OWNERS
@@ -3,7 +3,9 @@
 timhypeng@google.com
 siyuanh@google.com
 robertluo@google.com
-changbetty@google.com
-songferngwang@google.com
+yiyishen@google.com
+yqian@google.com
+chelseahao@google.com
+hahong@google.com
 
 # Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/bluetooth/QrCodeScanModeBaseActivity.java b/src/com/android/settings/bluetooth/QrCodeScanModeBaseActivity.java
index 4af75ad..30e5c7b 100644
--- a/src/com/android/settings/bluetooth/QrCodeScanModeBaseActivity.java
+++ b/src/com/android/settings/bluetooth/QrCodeScanModeBaseActivity.java
@@ -42,8 +42,8 @@
 
         int defaultTheme =
                 ThemeHelper.isSetupWizardDayNightEnabled(this)
-                        ? R.style.SudThemeGlifV3_DayNight
-                        : R.style.SudThemeGlifV3_Light;
+                        ? 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)
diff --git a/src/com/android/settings/bluetooth/RequestPermissionActivity.java b/src/com/android/settings/bluetooth/RequestPermissionActivity.java
index 32ca277..d670554 100644
--- a/src/com/android/settings/bluetooth/RequestPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/RequestPermissionActivity.java
@@ -18,7 +18,6 @@
 
 import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
 
-import android.annotation.NonNull;
 import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
@@ -37,6 +36,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.settings.R;
diff --git a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
index 43bc4f3..1db90fa 100644
--- a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
@@ -25,6 +25,8 @@
 import androidx.preference.Preference;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 
@@ -38,7 +40,6 @@
         implements Preference.OnPreferenceClickListener {
 
     private static final String TAG = "SavedBluetoothDeviceUpdater";
-    private static final boolean DBG = Log.isLoggable(BluetoothDeviceUpdater.TAG, Log.DEBUG);
 
     private static final String PREF_KEY = "saved_bt";
 
@@ -100,14 +101,22 @@
     @Override
     public boolean isFilterMatched(CachedBluetoothDevice cachedDevice) {
         final BluetoothDevice device = cachedDevice.getDevice();
-        if (DBG) {
-            Log.d(TAG, "isFilterMatched() device name : " + cachedDevice.getName() +
-                    ", is connected : " + device.isConnected() + ", is profile connected : "
-                    + cachedDevice.isConnected());
+        boolean isExclusivelyManaged = BluetoothUtils.isExclusivelyManagedBluetoothDevice(mContext,
+                cachedDevice.getDevice());
+        Log.d(TAG, "isFilterMatched() device name : " + cachedDevice.getName()
+                + ", is connected : " + device.isConnected() + ", is profile connected : "
+                + cachedDevice.isConnected() + ", is exclusively managed : "
+                + isExclusivelyManaged);
+        if (Flags.enableHideExclusivelyManagedBluetoothDevice()) {
+            return device.getBondState() == BluetoothDevice.BOND_BONDED
+                    && (mShowConnectedDevice || (!device.isConnected()
+                    && isDeviceInCachedDevicesList(cachedDevice)))
+                    && !isExclusivelyManaged;
+        } else {
+            return device.getBondState() == BluetoothDevice.BOND_BONDED
+                    && (mShowConnectedDevice || (!device.isConnected()
+                    && isDeviceInCachedDevicesList(cachedDevice)));
         }
-        return device.getBondState() == BluetoothDevice.BOND_BONDED
-                && (mShowConnectedDevice || (!device.isConnected() && isDeviceInCachedDevicesList(
-                cachedDevice)));
     }
 
     @Override
diff --git a/src/com/android/settings/bluetooth/Utils.java b/src/com/android/settings/bluetooth/Utils.java
index f1d6b20..f6288b2 100644
--- a/src/com/android/settings/bluetooth/Utils.java
+++ b/src/com/android/settings/bluetooth/Utils.java
@@ -37,12 +37,16 @@
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.BluetoothUtils.ErrorListener;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothManager.BluetoothManagerCallback;
+import com.android.settingslib.utils.ThreadUtils;
+
+import com.google.common.base.Supplier;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -67,13 +71,13 @@
     public static int getConnectionStateSummary(int connectionState) {
         switch (connectionState) {
             case BluetoothProfile.STATE_CONNECTED:
-                return R.string.bluetooth_connected;
+                return com.android.settingslib.R.string.bluetooth_connected;
             case BluetoothProfile.STATE_CONNECTING:
-                return R.string.bluetooth_connecting;
+                return com.android.settingslib.R.string.bluetooth_connecting;
             case BluetoothProfile.STATE_DISCONNECTED:
-                return R.string.bluetooth_disconnected;
+                return com.android.settingslib.R.string.bluetooth_disconnected;
             case BluetoothProfile.STATE_DISCONNECTING:
-                return R.string.bluetooth_disconnecting;
+                return com.android.settingslib.R.string.bluetooth_disconnecting;
             default:
                 return 0;
         }
@@ -106,7 +110,7 @@
 
     @VisibleForTesting
     static void showConnectingError(Context context, String name, LocalBluetoothManager manager) {
-        FeatureFactory.getFactory(context).getMetricsFeatureProvider().visible(context,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().visible(context,
                 SettingsEnums.PAGE_UNKNOWN, SettingsEnums.ACTION_SETTINGS_BLUETOOTH_CONNECT_ERROR,
                 0);
         showError(context, name, R.string.bluetooth_connecting_error_message, manager);
@@ -272,4 +276,22 @@
                 + " , deviceList = " + cachedBluetoothDevices);
         return cachedBluetoothDevices;
     }
+
+    /**
+     * Preloads the values and run the Runnable afterwards.
+     * @param suppliers the value supplier, should be a memoized supplier
+     * @param runnable the runnable to be run after value is preloaded
+     */
+    public static void preloadAndRun(List<Supplier<?>> suppliers, Runnable runnable) {
+        if (!Flags.enableOffloadBluetoothOperationsToBackgroundThread()) {
+            runnable.run();
+            return;
+        }
+        ThreadUtils.postOnBackgroundThread(() -> {
+            for (Supplier<?> supplier : suppliers) {
+                supplier.get();
+            }
+            ThreadUtils.postOnMainThread(runnable);
+        });
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/AddDevicePreferenceController.java b/src/com/android/settings/connecteddevice/AddDevicePreferenceController.java
index d2bc319..ef44843 100644
--- a/src/com/android/settings/connecteddevice/AddDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/AddDevicePreferenceController.java
@@ -15,18 +15,25 @@
  */
 package com.android.settings.connecteddevice;
 
+import static com.android.settings.accessibility.AccessibilityHearingAidsFragment.KEY_HEARING_DEVICE_ADD_BT_DEVICES;
+
 import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
+import android.text.TextUtils;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.accessibility.HearingDevicePairingDetail;
+import com.android.settings.accessibility.HearingDevicePairingFragment;
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.flags.Flags;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -76,6 +83,21 @@
     }
 
     @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (TextUtils.equals(preference.getKey(), KEY_HEARING_DEVICE_ADD_BT_DEVICES)) {
+            String destination = Flags.newHearingDevicePairingPage()
+                    ? HearingDevicePairingFragment.class.getName()
+                    : HearingDevicePairingDetail.class.getName();
+            new SubSettingLauncher(preference.getContext())
+                    .setDestination(destination)
+                    .setSourceMetricsCategory(getMetricsCategory())
+                    .launch();
+            return true;
+        }
+        return super.handlePreferenceTreeClick(preference);
+    }
+
+    @Override
     public int getAvailabilityStatus() {
         return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
                 ? AVAILABLE
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/AvailableMediaDeviceGroupController.java b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
index a340015..fc3493c 100644
--- a/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupController.java
@@ -17,11 +17,16 @@
 
 import static com.android.settingslib.Utils.isAudioModeOngoingCall;
 
+import android.bluetooth.BluetoothDevice;
+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.annotation.VisibleForTesting;
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
@@ -33,36 +38,94 @@
 import com.android.settings.bluetooth.AvailableMediaBluetoothDeviceUpdater;
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
 /**
- * Controller to maintain the {@link androidx.preference.PreferenceGroup} for all
- * available media devices. It uses {@link DevicePreferenceCallback}
- * to add/remove {@link Preference}
+ * Controller to maintain the {@link androidx.preference.PreferenceGroup} for all available media
+ * devices. It uses {@link DevicePreferenceCallback} to add/remove {@link Preference}
  */
 public class AvailableMediaDeviceGroupController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback, BluetoothCallback {
+    private static final boolean DEBUG = BluetoothUtils.D;
 
     private static final String TAG = "AvailableMediaDeviceGroupController";
     private static final String KEY = "available_device_list";
 
-    @VisibleForTesting
-    PreferenceGroup mPreferenceGroup;
-    @VisibleForTesting
-    LocalBluetoothManager mLocalBluetoothManager;
+    @VisibleForTesting PreferenceGroup mPreferenceGroup;
+    @VisibleForTesting LocalBluetoothManager mLocalBluetoothManager;
+    private final Executor mExecutor;
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
     private FragmentManager mFragmentManager;
+    private BluetoothLeBroadcastAssistant.Callback mAssistantCallback =
+            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) {
+                    mBluetoothDeviceUpdater.forceUpdate();
+                }
+
+                @Override
+                public void onSourceAddFailed(
+                        @NonNull BluetoothDevice sink,
+                        @NonNull BluetoothLeBroadcastMetadata source,
+                        int 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) {
+                    mBluetoothDeviceUpdater.forceUpdate();
+                }
+
+                @Override
+                public void onSourceRemoveFailed(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onReceiveStateChanged(
+                        BluetoothDevice sink,
+                        int sourceId,
+                        BluetoothLeBroadcastReceiveState state) {}
+            };
 
     public AvailableMediaDeviceGroupController(Context context) {
         super(context, KEY);
         mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
+        mExecutor = Executors.newSingleThreadExecutor();
     }
 
     @Override
@@ -71,6 +134,18 @@
             Log.e(TAG, "onStart() Bluetooth is not supported on this device");
             return;
         }
+        if (AudioSharingUtils.isFeatureEnabled()) {
+            LocalBluetoothLeBroadcastAssistant assistant =
+                    mLocalBluetoothManager
+                            .getProfileManager()
+                            .getLeAudioBroadcastAssistantProfile();
+            if (assistant != null) {
+                if (DEBUG) {
+                    Log.d(TAG, "onStart() Register callbacks for assistant.");
+                }
+                assistant.registerServiceCallBack(mExecutor, mAssistantCallback);
+            }
+        }
         mBluetoothDeviceUpdater.registerCallback();
         mLocalBluetoothManager.getEventManager().registerCallback(this);
         mBluetoothDeviceUpdater.refreshPreference();
@@ -82,6 +157,18 @@
             Log.e(TAG, "onStop() Bluetooth is not supported on this device");
             return;
         }
+        if (AudioSharingUtils.isFeatureEnabled()) {
+            LocalBluetoothLeBroadcastAssistant assistant =
+                    mLocalBluetoothManager
+                            .getProfileManager()
+                            .getLeAudioBroadcastAssistantProfile();
+            if (assistant != null) {
+                if (DEBUG) {
+                    Log.d(TAG, "onStop() Register callbacks for assistant.");
+                }
+                assistant.unregisterServiceCallBack(mAssistantCallback);
+            }
+        }
         mBluetoothDeviceUpdater.unregisterCallback();
         mLocalBluetoothManager.getEventManager().unregisterCallback(this);
     }
@@ -130,8 +217,16 @@
 
     public void init(DashboardFragment fragment) {
         mFragmentManager = fragment.getParentFragmentManager();
-        mBluetoothDeviceUpdater = new AvailableMediaBluetoothDeviceUpdater(fragment.getContext(),
-                AvailableMediaDeviceGroupController.this, fragment.getMetricsCategory());
+        mBluetoothDeviceUpdater =
+                new AvailableMediaBluetoothDeviceUpdater(
+                        fragment.getContext(),
+                        AvailableMediaDeviceGroupController.this,
+                        fragment.getMetricsCategory());
+    }
+
+    @VisibleForTesting
+    public void setFragmentManager(FragmentManager fragmentManager) {
+        mFragmentManager = fragmentManager;
     }
 
     @VisibleForTesting
@@ -152,19 +247,20 @@
         }
 
         if (bluetoothProfile == BluetoothProfile.HEARING_AID) {
-            HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, activeDevice);
+            HearingAidUtils.launchHearingAidPairingDialog(
+                    mFragmentManager, activeDevice, getMetricsCategory());
         }
     }
 
     private void updateTitle() {
         if (isAudioModeOngoingCall(mContext)) {
             // in phone call
-            mPreferenceGroup.
-                    setTitle(mContext.getString(R.string.connected_device_call_device_title));
+            mPreferenceGroup.setTitle(
+                    mContext.getString(R.string.connected_device_call_device_title));
         } else {
             // without phone call
-            mPreferenceGroup.
-                    setTitle(mContext.getString(R.string.connected_device_media_device_title));
+            mPreferenceGroup.setTitle(
+                    mContext.getString(R.string.connected_device_media_device_title));
         }
     }
 }
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 9286b81..27001d6 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -15,8 +15,6 @@
  */
 package com.android.settings.connecteddevice;
 
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.net.Uri;
@@ -29,10 +27,15 @@
 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.connecteddevice.audiosharing.AudioSharingUtils;
 import com.android.settings.core.SettingsUIDeviceConfig;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.overlay.SurveyFeatureProvider;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.slices.SlicePreferenceController;
+import com.android.settingslib.bluetooth.HearingAidStatsLogUtils;
 import com.android.settingslib.search.SearchIndexable;
 
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
@@ -42,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() {
@@ -70,35 +71,56 @@
     @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 (AudioSharingUtils.isFeatureEnabled()) {
+            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));
+
+        // Show hearing devices survey if user is categorized as one of interested category
+        final String category = HearingAidStatsLogUtils.getUserCategory(context);
+        if (category != null && !category.isEmpty()) {
+            SurveyFeatureProvider provider =
+                    FeatureFactory.getFeatureFactory().getSurveyFeatureProvider(context);
+            if (provider != null) {
+                provider.sendActivityIfAvailable(category);
+            }
+        }
     }
 
     @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/ConnectedDeviceGroupController.java b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
index f7517b4..5be761e 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceGroupController.java
@@ -180,7 +180,7 @@
     public void init(DashboardFragment fragment) {
         final Context context = fragment.getContext();
         DockUpdaterFeatureProvider dockUpdaterFeatureProvider =
-                FeatureFactory.getFactory(context).getDockUpdaterFeatureProvider();
+                FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider();
         final DockUpdater connectedDockUpdater =
                 dockUpdaterFeatureProvider.getConnectedDockUpdater(context, this);
         init(hasBluetoothFeature()
diff --git a/src/com/android/settings/connecteddevice/OWNERS b/src/com/android/settings/connecteddevice/OWNERS
index 3546796..5215a8f 100644
--- a/src/com/android/settings/connecteddevice/OWNERS
+++ b/src/com/android/settings/connecteddevice/OWNERS
@@ -2,7 +2,9 @@
 hughchen@google.com
 timhypeng@google.com
 robertluo@google.com
-changbetty@google.com
-songferngwang@google.com
+yiyishen@google.com
+yqian@google.com
+chelseahao@google.com
+hahong@google.com
 
 # Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
index 5c906fd..33f8b73 100644
--- a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
@@ -17,6 +17,7 @@
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -36,13 +37,16 @@
 import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 public class PreviouslyConnectedDevicePreferenceController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback {
@@ -56,11 +60,12 @@
 
     private final List<Preference> mDevicesList = new ArrayList<>();
     private final List<Preference> mDockDevicesList = new ArrayList<>();
+    private final Map<BluetoothDevice, Preference> mDevicePreferenceMap = new HashMap<>();
+    private final BluetoothAdapter mBluetoothAdapter;
 
     private PreferenceGroup mPreferenceGroup;
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
     private DockUpdater mSavedDockUpdater;
-    private BluetoothAdapter mBluetoothAdapter;
 
     @VisibleForTesting
     Preference mSeeAllPreference;
@@ -78,10 +83,14 @@
     public PreviouslyConnectedDevicePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
 
-        mSavedDockUpdater = FeatureFactory.getFactory(
-                context).getDockUpdaterFeatureProvider().getSavedDockUpdater(context, this);
+        mSavedDockUpdater = FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider()
+                .getSavedDockUpdater(context, this);
         mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
-        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
+        } else {
+            mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        }
     }
 
     @Override
@@ -114,6 +123,9 @@
         mContext.registerReceiver(mReceiver, mIntentFilter,
                 Context.RECEIVER_EXPORTED_UNAUDITED);
         mBluetoothDeviceUpdater.refreshPreference();
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            updatePreferenceGroup();
+        }
     }
 
     @Override
@@ -131,19 +143,37 @@
 
     @Override
     public void onDeviceAdded(Preference preference) {
-        final List<BluetoothDevice> bluetoothDevices =
-                mBluetoothAdapter.getMostRecentlyConnectedDevices();
-        final int index = preference instanceof BluetoothDevicePreference
-                ? bluetoothDevices.indexOf(((BluetoothDevicePreference) preference)
-                .getBluetoothDevice().getDevice()) : DOCK_DEVICE_INDEX;
-        if (DEBUG) {
-            Log.d(TAG, "onDeviceAdded() " + preference.getTitle() + ", index of : " + index);
-            for (BluetoothDevice device : bluetoothDevices) {
-                Log.d(TAG, "onDeviceAdded() most recently device : " + device.getName());
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            if (preference instanceof BluetoothDevicePreference) {
+                mDevicePreferenceMap.put(
+                        ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+                        preference);
+            } else {
+                mDockDevicesList.add(preference);
             }
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceAdded() " + preference.getTitle());
+            }
+            updatePreferenceGroup();
+        } else {
+            final List<BluetoothDevice> bluetoothDevices =
+                    mBluetoothAdapter.getMostRecentlyConnectedDevices();
+            final int index =
+                    preference instanceof BluetoothDevicePreference
+                            ? bluetoothDevices.indexOf(
+                                    ((BluetoothDevicePreference) preference)
+                                            .getBluetoothDevice()
+                                            .getDevice())
+                            : DOCK_DEVICE_INDEX;
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceAdded() " + preference.getTitle() + ", index of : " + index);
+                for (BluetoothDevice device : bluetoothDevices) {
+                    Log.d(TAG, "onDeviceAdded() most recently device : " + device.getName());
+                }
+            }
+            addPreference(index, preference);
+            updatePreferenceVisibility();
         }
-        addPreference(index, preference);
-        updatePreferenceVisibility();
     }
 
     private void addPreference(int index, Preference preference) {
@@ -194,13 +224,57 @@
 
     @Override
     public void onDeviceRemoved(Preference preference) {
-        if (preference instanceof BluetoothDevicePreference) {
-            mDevicesList.remove(preference);
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            if (preference instanceof BluetoothDevicePreference) {
+                mDevicePreferenceMap.remove(
+                        ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+                        preference);
+            } else {
+                mDockDevicesList.remove(preference);
+            }
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceRemoved() " + preference.getTitle());
+            }
+            updatePreferenceGroup();
         } else {
-            mDockDevicesList.remove(preference);
-        }
+            if (preference instanceof BluetoothDevicePreference) {
+                mDevicesList.remove(preference);
+            } else {
+                mDockDevicesList.remove(preference);
+            }
 
-        addPreference();
+            addPreference();
+            updatePreferenceVisibility();
+        }
+    }
+
+    /** Sort the preferenceGroup by most recently used. */
+    public void updatePreferenceGroup() {
+        mPreferenceGroup.removeAll();
+        mPreferenceGroup.addPreference(mSeeAllPreference);
+        if (mBluetoothAdapter != null && mBluetoothAdapter.isEnabled()) {
+            // Bluetooth is supported
+            int order = 0;
+            for (BluetoothDevice device : mBluetoothAdapter.getMostRecentlyConnectedDevices()) {
+                Preference preference = mDevicePreferenceMap.getOrDefault(device, null);
+                if (preference != null) {
+                    preference.setOrder(order);
+                    mPreferenceGroup.addPreference(preference);
+                    order += 1;
+                }
+                if (order == MAX_DEVICE_NUM) {
+                    break;
+                }
+            }
+            for (Preference preference : mDockDevicesList) {
+                if (order == MAX_DEVICE_NUM) {
+                    break;
+                }
+                preference.setOrder(order);
+                mPreferenceGroup.addPreference(preference);
+                order += 1;
+            }
+        }
         updatePreferenceVisibility();
     }
 
diff --git a/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java b/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java
index 3034e2f..c73481d 100644
--- a/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java
+++ b/src/com/android/settings/connecteddevice/SavedDeviceGroupController.java
@@ -15,6 +15,9 @@
  */
 package com.android.settings.connecteddevice;
 
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
 
@@ -23,18 +26,25 @@
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.bluetooth.BluetoothDevicePreference;
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
 import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.overlay.DockUpdaterFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * Controller to maintain the {@link PreferenceGroup} for all
  * saved devices. It uses {@link DevicePreferenceCallback} to add/remove {@link Preference}
@@ -45,6 +55,10 @@
 
     private static final String KEY = "saved_device_list";
 
+    private final Map<BluetoothDevice, Preference> mDevicePreferenceMap = new HashMap<>();
+    private final List<Preference> mDockDevicesList = new ArrayList<>();
+    private final BluetoothAdapter mBluetoothAdapter;
+
     @VisibleForTesting
     PreferenceGroup mPreferenceGroup;
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -54,9 +68,10 @@
         super(context, KEY);
 
         DockUpdaterFeatureProvider dockUpdaterFeatureProvider =
-                FeatureFactory.getFactory(context).getDockUpdaterFeatureProvider();
+                FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider();
         mSavedDockUpdater =
                 dockUpdaterFeatureProvider.getSavedDockUpdater(context, this);
+        mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
     }
 
     @Override
@@ -64,6 +79,9 @@
         mBluetoothDeviceUpdater.registerCallback();
         mSavedDockUpdater.registerCallback();
         mBluetoothDeviceUpdater.refreshPreference();
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            updatePreferenceGroup();
+        }
     }
 
     @Override
@@ -101,17 +119,63 @@
 
     @Override
     public void onDeviceAdded(Preference preference) {
-        if (mPreferenceGroup.getPreferenceCount() == 0) {
-            mPreferenceGroup.setVisible(true);
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            mPreferenceGroup.addPreference(preference);
+            if (preference instanceof BluetoothDevicePreference) {
+                mDevicePreferenceMap.put(
+                        ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+                        preference);
+            } else {
+                mDockDevicesList.add(preference);
+            }
+            updatePreferenceGroup();
+        } else {
+            if (mPreferenceGroup.getPreferenceCount() == 0) {
+                mPreferenceGroup.setVisible(true);
+            }
+            mPreferenceGroup.addPreference(preference);
         }
-        mPreferenceGroup.addPreference(preference);
     }
 
     @Override
     public void onDeviceRemoved(Preference preference) {
-        mPreferenceGroup.removePreference(preference);
-        if (mPreferenceGroup.getPreferenceCount() == 0) {
+        if (Flags.enableSavedDevicesOrderByRecency()) {
+            mPreferenceGroup.removePreference(preference);
+            if (preference instanceof BluetoothDevicePreference) {
+                mDevicePreferenceMap.remove(
+                        ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
+                        preference);
+            } else {
+                mDockDevicesList.remove(preference);
+            }
+            updatePreferenceGroup();
+        } else {
+            mPreferenceGroup.removePreference(preference);
+            if (mPreferenceGroup.getPreferenceCount() == 0) {
+                mPreferenceGroup.setVisible(false);
+            }
+        }
+    }
+
+    /** Sort the preferenceGroup by most recently used. */
+    public void updatePreferenceGroup() {
+        if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) {
+            // Bluetooth is unsupported or disabled
             mPreferenceGroup.setVisible(false);
+        } else {
+            mPreferenceGroup.setVisible(true);
+            int order = 0;
+            for (BluetoothDevice device : mBluetoothAdapter.getMostRecentlyConnectedDevices()) {
+                Preference preference = mDevicePreferenceMap.getOrDefault(device, null);
+                if (preference != null) {
+                    preference.setOrder(order);
+                    order += 1;
+                }
+            }
+            for (Preference preference : mDockDevicesList) {
+                preference.setOrder(order);
+                order += 1;
+            }
         }
     }
 
@@ -130,4 +194,9 @@
     public void setSavedDockUpdater(DockUpdater savedDockUpdater) {
         mSavedDockUpdater = savedDockUpdater;
     }
+
+    @VisibleForTesting
+    void setPreferenceGroup(PreferenceGroup preferenceGroup) {
+        mPreferenceGroup = preferenceGroup;
+    }
 }
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..8497c9d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBasePreferenceController.java
@@ -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.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+public abstract class AudioSharingBasePreferenceController extends BasePreferenceController
+        implements DefaultLifecycleObserver {
+    private final BluetoothAdapter mBluetoothAdapter;
+    private final LocalBluetoothManager mBtManager;
+    protected final LocalBluetoothLeBroadcast mBroadcast;
+    protected Preference mPreference;
+
+    public AudioSharingBasePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        mBtManager = Utils.getLocalBtManager(context);
+        mBroadcast =
+                mBtManager == null
+                        ? null
+                        : mBtManager.getProfileManager().getLeAudioBroadcastProfile();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (isAvailable()) {
+            updateVisibility();
+        }
+    }
+
+    /** Update the visibility of the preference. */
+    protected void updateVisibility() {
+        if (mPreference != null) {
+            var unused =
+                    ThreadUtils.postOnBackgroundThread(
+                            () -> {
+                                boolean isVisible = isBroadcasting() && isBluetoothStateOn();
+                                ThreadUtils.postOnMainThread(
+                                        () -> mPreference.setVisible(isVisible));
+                            });
+        }
+    }
+
+    protected boolean isBroadcasting() {
+        return mBroadcast != null && mBroadcast.isEnabled(null);
+    }
+
+    protected boolean isBluetoothStateOn() {
+        return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled();
+    }
+}
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..59393ad
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingBluetoothDeviceUpdater.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.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.LocalBluetoothManager;
+
+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()
+                    && AudioSharingUtils.hasBroadcastSource(cachedDevice, mLocalBluetoothManager)) {
+                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();
+    }
+
+    @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/AudioSharingCompatibilityPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
new file mode 100644
index 0000000..c39257d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingCompatibilityPreferenceController.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingCompatibilityPreferenceController extends TogglePreferenceController
+        implements DefaultLifecycleObserver {
+
+    private static final String TAG = "AudioSharingCompatibilityPrefController";
+
+    private static final String PREF_KEY = "audio_sharing_stream_compatibility";
+    private static final String SHARING_OFF_SUMMARY =
+            "Helps some devices like hearing aids connect by reducing audio quality";
+    private static final String SHARING_ON_SUMMARY =
+            "Turns off the audio sharing to config the compatibility";
+
+    private final LocalBluetoothManager mBtManager;
+    private final Executor mExecutor;
+    private final LocalBluetoothLeBroadcast mBroadcast;
+    @Nullable private TwoStatePreference mPreference;
+
+    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+            new BluetoothLeBroadcast.Callback() {
+                @Override
+                public void onBroadcastStarted(int reason, int broadcastId) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastStarted(), reason = "
+                                    + reason
+                                    + ", broadcastId = "
+                                    + broadcastId);
+                    updateEnabled();
+                }
+
+                @Override
+                public void onBroadcastStartFailed(int reason) {}
+
+                @Override
+                public void onBroadcastMetadataChanged(
+                        int broadcastId, @NonNull BluetoothLeBroadcastMetadata metadata) {}
+
+                @Override
+                public void onBroadcastStopped(int reason, int broadcastId) {
+                    Log.d(
+                            TAG,
+                            "onBroadcastStopped(), reason = "
+                                    + reason
+                                    + ", broadcastId = "
+                                    + broadcastId);
+                    updateEnabled();
+                }
+
+                @Override
+                public void onBroadcastStopFailed(int reason) {}
+
+                @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) {}
+            };
+
+    public AudioSharingCompatibilityPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mBtManager = Utils.getLocalBtManager(context);
+        mBroadcast = mBtManager.getProfileManager().getLeAudioBroadcastProfile();
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mBroadcast != null) {
+            mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mBroadcast != null) {
+            mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        updateEnabled();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return mBroadcast != null && mBroadcast.getImproveCompatibility();
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        if (mBroadcast == null || mBroadcast.getImproveCompatibility() == isChecked) {
+            Log.d(
+                    TAG,
+                    "Skip setting improveCompatibility, unchanged = "
+                            + (mBroadcast.getImproveCompatibility() == isChecked));
+            return false;
+        }
+        mBroadcast.setImproveCompatibility(isChecked);
+        // TODO: call updateBroadcast once framework change ready.
+        return true;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return 0;
+    }
+
+    private void updateEnabled() {
+        mContext.getMainExecutor()
+                .execute(
+                        () -> {
+                            if (mPreference != null) {
+                                boolean isBroadcasting =
+                                        AudioSharingUtils.isBroadcasting(mBtManager);
+                                mPreference.setEnabled(!isBroadcasting);
+                                mPreference.setSummary(
+                                        isBroadcasting ? SHARING_ON_SUMMARY : SHARING_OFF_SUMMARY);
+                            }
+                        });
+    }
+}
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..7a7f337
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDashboardFragment.java
@@ -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.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.connecteddevice.audiosharing.audiostreams.AudioStreamsCategoryController;
+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 AudioSharingDeviceVolumeGroupController mAudioSharingDeviceVolumeGroupController;
+    private CallsAndAlarmsPreferenceController mCallsAndAlarmsPreferenceController;
+    private AudioSharingPlaySoundPreferenceController mAudioSharingPlaySoundPreferenceController;
+    private AudioStreamsCategoryController mAudioStreamsCategoryController;
+
+    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);
+        mAudioSharingDeviceVolumeGroupController =
+                use(AudioSharingDeviceVolumeGroupController.class);
+        mAudioSharingDeviceVolumeGroupController.init(this);
+        mCallsAndAlarmsPreferenceController = use(CallsAndAlarmsPreferenceController.class);
+        mCallsAndAlarmsPreferenceController.init(this);
+        mAudioSharingPlaySoundPreferenceController =
+                use(AudioSharingPlaySoundPreferenceController.class);
+        mAudioStreamsCategoryController = use(AudioStreamsCategoryController.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() {
+        updateVisibilityForAttachedPreferences();
+    }
+
+    private void updateVisibilityForAttachedPreferences() {
+        mAudioSharingDeviceVolumeGroupController.updateVisibility();
+        mCallsAndAlarmsPreferenceController.updateVisibility();
+        mAudioSharingPlaySoundPreferenceController.updateVisibility();
+        mAudioStreamsCategoryController.updateVisibility();
+    }
+}
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..a5f5adb
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.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.connecteddevice.audiosharing;
+
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+
+import androidx.recyclerview.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;
+    private final String mPrefix;
+
+    public AudioSharingDeviceAdapter(
+            ArrayList<AudioSharingDeviceItem> devices, OnClickListener listener, String prefix) {
+        mDevices = devices;
+        mOnClickListener = listener;
+        mPrefix = prefix;
+    }
+
+    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(mPrefix + 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..3fd5127
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDevicePreferenceController.java
@@ -0,0 +1,608 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.Fragment;
+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.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+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 com.android.settingslib.utils.ThreadUtils;
+
+import com.google.common.collect.ImmutableList;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+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 boolean DEBUG = BluetoothUtils.D;
+
+    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);
+                    AudioSharingUtils.toastMessage(
+                            mContext,
+                            String.format(
+                                    Locale.US,
+                                    "Fail to add source to %s reason %d",
+                                    sink.getAddress(),
+                                    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);
+                    AudioSharingUtils.toastMessage(
+                            mContext,
+                            String.format(
+                                    Locale.US,
+                                    "Fail to remove source from %s reason %d",
+                                    sink.getAddress(),
+                                    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);
+        if (DEBUG) {
+            Log.d(TAG, "onStart() Register callbacks for broadcast and assistant.");
+        }
+        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);
+        if (DEBUG) {
+            Log.d(TAG, "onStop() Unregister callbacks for broadcast and assistant.");
+        }
+        mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+        mAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+        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 AudioSharingUtils.isFeatureEnabled() && mBluetoothDeviceUpdater != null
+                ? 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;
+        }
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> handleOnProfileStateChanged(cachedDevice, bluetoothProfile));
+    }
+
+    /**
+     * 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 void handleOnProfileStateChanged(
+            @NonNull CachedBluetoothDevice cachedDevice, int bluetoothProfile) {
+        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 (DEBUG) {
+            Log.d(
+                    TAG,
+                    "Start handling onProfileConnectionStateChanged for "
+                            + cachedDevice.getDevice().getAnonymizedAddress());
+        }
+        if (!isLeAudioSupported) {
+            // Handle connected ineligible (non LE audio) remote device
+            handleOnProfileStateChangedForNonLeAudioDevice(cachedDevice);
+        } else {
+            // Handle connected eligible (LE audio) remote device
+            handleOnProfileStateChangedForLeAudioDevice(cachedDevice);
+        }
+    }
+
+    private void handleOnProfileStateChangedForNonLeAudioDevice(
+            @NonNull CachedBluetoothDevice cachedDevice) {
+        if (isBroadcasting()) {
+            // Show stop audio sharing dialog when an ineligible (non LE audio) remote device
+            // connected during a sharing session.
+            postOnMainThread(
+                    () -> {
+                        closeOpeningDialogs();
+                        AudioSharingStopDialogFragment.show(
+                                mFragment,
+                                cachedDevice.getName(),
+                                () -> mBroadcast.stopBroadcast(mBroadcast.getLatestBroadcastId()));
+                    });
+        } else {
+            // Do nothing for ineligible (non LE audio) remote device when no sharing session.
+            if (DEBUG) {
+                Log.d(
+                        TAG,
+                        "Ignore onProfileConnectionStateChanged for non LE audio without"
+                                + " sharing session");
+            }
+        }
+    }
+
+    private void handleOnProfileStateChangedForLeAudioDevice(
+            @NonNull CachedBluetoothDevice cachedDevice) {
+        Map<Integer, List<CachedBluetoothDevice>> groupedDevices =
+                AudioSharingUtils.fetchConnectedDevicesByGroupId(mLocalBtManager);
+        if (isBroadcasting()) {
+            int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+            if (groupedDevices.containsKey(groupId)
+                    && groupedDevices.get(groupId).stream()
+                            .anyMatch(
+                                    device ->
+                                            AudioSharingUtils.hasBroadcastSource(
+                                                    device, mLocalBtManager))) {
+                Log.d(
+                        TAG,
+                        "Automatically add another device within the same group to the sharing: "
+                                + cachedDevice.getDevice().getAnonymizedAddress());
+                addSourceToTargetDevices(ImmutableList.of(cachedDevice.getDevice()));
+                return;
+            }
+            // Show audio sharing switch or join dialog according to device count in the sharing
+            // session.
+            ArrayList<AudioSharingDeviceItem> deviceItemsInSharingSession =
+                    AudioSharingUtils.buildOrderedConnectedLeadAudioSharingDeviceItem(
+                            mLocalBtManager, groupedDevices, /* filterByInSharing= */ true);
+            // Show audio sharing switch dialog when the third eligible (LE audio) remote device
+            // connected during a sharing session.
+            if (deviceItemsInSharingSession.size() >= 2) {
+                postOnMainThread(
+                        () -> {
+                            closeOpeningDialogs();
+                            AudioSharingDisconnectDialogFragment.show(
+                                    mFragment,
+                                    deviceItemsInSharingSession,
+                                    cachedDevice.getName(),
+                                    (AudioSharingDeviceItem item) -> {
+                                        // Remove all sources from the device user clicked
+                                        if (groupedDevices.containsKey(item.getGroupId())) {
+                                            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.
+                postOnMainThread(
+                        () -> {
+                            closeOpeningDialogs();
+                            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 (AudioSharingUtils.getGroupId(device)
+                        == AudioSharingUtils.getGroupId(cachedDevice)) {
+                    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) {
+                postOnMainThread(
+                        () -> {
+                            closeOpeningDialogs();
+                            AudioSharingJoinDialogFragment.show(
+                                    mFragment,
+                                    deviceItems,
+                                    cachedDevice.getName(),
+                                    () -> {
+                                        mTargetSinks = new ArrayList<>();
+                                        for (List<CachedBluetoothDevice> devices :
+                                                groupedDevices.values()) {
+                                            for (CachedBluetoothDevice device : devices) {
+                                                mTargetSinks.add(device.getDevice());
+                                            }
+                                        }
+                                        mBroadcast.startPrivateBroadcast();
+                                    });
+                        });
+            }
+        }
+    }
+
+    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);
+        }
+    }
+
+    private void closeOpeningDialogs() {
+        if (mFragment == null) return;
+        List<Fragment> fragments = mFragment.getChildFragmentManager().getFragments();
+        for (Fragment fragment : fragments) {
+            if (fragment instanceof DialogFragment) {
+                Log.d(TAG, "Remove staled opening dialog " + fragment.getTag());
+                ((DialogFragment) fragment).dismiss();
+            }
+        }
+    }
+
+    private void postOnMainThread(@NonNull Runnable runnable) {
+        mContext.getMainExecutor().execute(runnable);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
new file mode 100644
index 0000000..5c0a90a
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeControlUpdater.java
@@ -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.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothDevice;
+import android.content.Context;
+import android.util.Log;
+import android.widget.SeekBar;
+
+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.LocalBluetoothManager;
+
+public class AudioSharingDeviceVolumeControlUpdater extends BluetoothDeviceUpdater
+        implements Preference.OnPreferenceClickListener {
+
+    private static final String TAG = "AudioSharingDeviceVolumeControlUpdater";
+
+    private static final String PREF_KEY = "audio_sharing_volume_control";
+
+    private final LocalBluetoothManager mLocalBtManager;
+
+    public AudioSharingDeviceVolumeControlUpdater(
+            Context context,
+            DevicePreferenceCallback devicePreferenceCallback,
+            int metricsCategory) {
+        super(context, devicePreferenceCallback, metricsCategory);
+        mLocalBtManager = Utils.getLocalBluetoothManager(context);
+    }
+
+    @Override
+    public boolean isFilterMatched(CachedBluetoothDevice cachedDevice) {
+        boolean isFilterMatched = false;
+        if (isDeviceConnected(cachedDevice) && isDeviceInCachedDevicesList(cachedDevice)) {
+            // If device is LE audio device and in a sharing session on current sharing device,
+            // it would show in volume control group.
+            if (cachedDevice.isConnectedLeAudioDevice()
+                    && AudioSharingUtils.isBroadcasting(mLocalBtManager)
+                    && AudioSharingUtils.hasBroadcastSource(cachedDevice, mLocalBtManager)) {
+                isFilterMatched = true;
+            }
+        }
+        Log.d(
+                TAG,
+                "isFilterMatched() device : "
+                        + cachedDevice.getName()
+                        + ", isFilterMatched : "
+                        + isFilterMatched);
+        return isFilterMatched;
+    }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        return true;
+    }
+
+    @Override
+    protected void addPreference(CachedBluetoothDevice cachedDevice) {
+        if (cachedDevice == null) return;
+        final BluetoothDevice device = cachedDevice.getDevice();
+        if (!mPreferenceMap.containsKey(device)) {
+            SeekBar.OnSeekBarChangeListener listener =
+                    new SeekBar.OnSeekBarChangeListener() {
+                        @Override
+                        public void onProgressChanged(
+                                SeekBar seekBar, int progress, boolean fromUser) {}
+
+                        @Override
+                        public void onStartTrackingTouch(SeekBar seekBar) {}
+
+                        @Override
+                        public void onStopTrackingTouch(SeekBar seekBar) {
+                            if (mLocalBtManager != null
+                                    && mLocalBtManager.getProfileManager().getVolumeControlProfile()
+                                            != null) {
+                                mLocalBtManager
+                                        .getProfileManager()
+                                        .getVolumeControlProfile()
+                                        .setDeviceVolume(
+                                                cachedDevice.getDevice(),
+                                                seekBar.getProgress(),
+                                                /* isGroupOp= */ true);
+                            }
+                        }
+                    };
+            AudioSharingDeviceVolumePreference vPreference =
+                    new AudioSharingDeviceVolumePreference(mPrefContext, cachedDevice);
+            vPreference.initialize();
+            vPreference.setOnSeekBarChangeListener(listener);
+            vPreference.setKey(getPreferenceKey());
+            vPreference.setIcon(com.android.settingslib.R.drawable.ic_bt_untethered_earbuds);
+            vPreference.setTitle(cachedDevice.getName());
+            mPreferenceMap.put(device, vPreference);
+            mDevicePreferenceCallback.onDeviceAdded(vPreference);
+        }
+    }
+
+    @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);
+    }
+
+    @Override
+    protected void addPreference(
+            CachedBluetoothDevice cachedDevice, @BluetoothDevicePreference.SortType int type) {}
+
+    @Override
+    protected void launchDeviceDetails(Preference preference) {}
+
+    @Override
+    public void refreshPreference() {}
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
new file mode 100644
index 0000000..edd1caf
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumeGroupController.java
@@ -0,0 +1,345 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.IntRange;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothVolumeControl;
+import android.content.Context;
+import android.media.AudioManager;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.FragmentManager;
+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.dashboard.DashboardFragment;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.VolumeControlProfile;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingDeviceVolumeGroupController extends AudioSharingBasePreferenceController
+        implements DevicePreferenceCallback {
+    private static final String TAG = "AudioSharingDeviceVolumeGroupController";
+    private static final String KEY = "audio_sharing_device_volume_group";
+
+    private final LocalBluetoothManager mLocalBtManager;
+    private final LocalBluetoothLeBroadcastAssistant mAssistant;
+    private final Executor mExecutor;
+    private VolumeControlProfile mVolumeControl;
+    private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
+    private FragmentManager mFragmentManager;
+    private PreferenceGroup mPreferenceGroup;
+    private List<AudioSharingDeviceVolumePreference> mVolumePreferences = new ArrayList<>();
+    private Map<Integer, Integer> mValueMap = new HashMap<Integer, Integer>();
+
+    private BluetoothVolumeControl.Callback mVolumeControlCallback =
+            new BluetoothVolumeControl.Callback() {
+                @Override
+                public void onVolumeOffsetChanged(
+                        @NonNull BluetoothDevice device, int volumeOffset) {}
+
+                @Override
+                public void onDeviceVolumeChanged(
+                        @NonNull BluetoothDevice device,
+                        @IntRange(from = -255, to = 255) int volume) {
+                    CachedBluetoothDevice cachedDevice =
+                            mLocalBtManager.getCachedDeviceManager().findDevice(device);
+                    if (cachedDevice == null) return;
+                    int groupId = AudioSharingUtils.getGroupId(cachedDevice);
+                    mValueMap.put(groupId, volume);
+                    for (AudioSharingDeviceVolumePreference preference : mVolumePreferences) {
+                        if (preference.getCachedDevice() != null
+                                && AudioSharingUtils.getGroupId(preference.getCachedDevice())
+                                        == groupId) {
+                            // If the callback return invalid volume, try to
+                            // get the volume from AudioManager.STREAM_MUSIC
+                            int finalVolume = getAudioVolumeIfNeeded(volume);
+                            Log.d(
+                                    TAG,
+                                    "onDeviceVolumeChanged: set volume to "
+                                            + finalVolume
+                                            + " for "
+                                            + device.getAnonymizedAddress());
+                            mContext.getMainExecutor()
+                                    .execute(() -> preference.setProgress(finalVolume));
+                            break;
+                        }
+                    }
+                }
+            };
+
+    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 AudioSharingDeviceVolumeGroupController(Context context) {
+        super(context, KEY);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        mAssistant = mLocalBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        mExecutor = Executors.newSingleThreadExecutor();
+        if (mLocalBtManager != null) {
+            mVolumeControl = mLocalBtManager.getProfileManager().getVolumeControlProfile();
+        }
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        super.onStart(owner);
+        if (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;
+        }
+        mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+        mBluetoothDeviceUpdater.registerCallback();
+        if (mVolumeControl != null) {
+            Log.d(TAG, "onStart() Registered volume control callback");
+            mVolumeControl.registerCallback(mExecutor, mVolumeControlCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        super.onStop(owner);
+        if (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;
+        }
+        mAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+        mBluetoothDeviceUpdater.unregisterCallback();
+        if (mVolumeControl != null) {
+            Log.d(TAG, "onStop() Unregistered volume control callback");
+            mVolumeControl.unregisterCallback(mVolumeControlCallback);
+            mValueMap.clear();
+        }
+    }
+
+    @Override
+    public void onDestroy(@NonNull LifecycleOwner owner) {
+        mVolumePreferences.clear();
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        mPreferenceGroup = screen.findPreference(KEY);
+        mPreferenceGroup.setVisible(false);
+
+        if (isAvailable() && mBluetoothDeviceUpdater != null) {
+            mBluetoothDeviceUpdater.setPrefContext(screen.getContext());
+            mBluetoothDeviceUpdater.forceUpdate();
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void onDeviceAdded(Preference preference) {
+        if (mPreferenceGroup.getPreferenceCount() == 0) {
+            mPreferenceGroup.setVisible(true);
+        }
+        mPreferenceGroup.addPreference(preference);
+        if (preference instanceof AudioSharingDeviceVolumePreference) {
+            var volumePref = (AudioSharingDeviceVolumePreference) preference;
+            mVolumePreferences.add(volumePref);
+            if (volumePref.getProgress() > 0) return;
+            CachedBluetoothDevice device = volumePref.getCachedDevice();
+            if (device == null) return;
+            int volume = mValueMap.getOrDefault(AudioSharingUtils.getGroupId(device), -1);
+            // If the volume is invalid, try to get the volume from AudioManager.STREAM_MUSIC
+            int finalVolume = getAudioVolumeIfNeeded(volume);
+            Log.d(
+                    TAG,
+                    "onDeviceAdded: set volume to "
+                            + finalVolume
+                            + " for "
+                            + device.getDevice().getAnonymizedAddress());
+            mContext.getMainExecutor().execute(() -> volumePref.setProgress(finalVolume));
+        }
+    }
+
+    @Override
+    public void onDeviceRemoved(Preference preference) {
+        mPreferenceGroup.removePreference(preference);
+        if (mPreferenceGroup.getPreferenceCount() == 0) {
+            mPreferenceGroup.setVisible(false);
+        }
+        if (preference instanceof AudioSharingDeviceVolumePreference) {
+            var volumePref = (AudioSharingDeviceVolumePreference) preference;
+            if (mVolumePreferences.contains(volumePref)) {
+                mVolumePreferences.remove(volumePref);
+            }
+            CachedBluetoothDevice device = volumePref.getCachedDevice();
+            Log.d(
+                    TAG,
+                    "onDeviceRemoved: "
+                            + (device == null
+                                    ? "null"
+                                    : device.getDevice().getAnonymizedAddress()));
+        }
+    }
+
+    @Override
+    public void updateVisibility() {
+        if (mPreferenceGroup != null) {
+            mPreferenceGroup.setVisible(false);
+            if (mPreferenceGroup.getPreferenceCount() > 0) {
+                super.updateVisibility();
+            }
+        }
+    }
+
+    /**
+     * 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) {
+        mBluetoothDeviceUpdater =
+                new AudioSharingDeviceVolumeControlUpdater(
+                        fragment.getContext(),
+                        AudioSharingDeviceVolumeGroupController.this,
+                        fragment.getMetricsCategory());
+    }
+
+    private int getAudioVolumeIfNeeded(int volume) {
+        if (volume >= 0) return volume;
+        try {
+            AudioManager audioManager = mContext.getSystemService(AudioManager.class);
+            int max = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
+            int min = audioManager.getStreamMinVolume(AudioManager.STREAM_MUSIC);
+            return Math.round(
+                    audioManager.getStreamVolume(AudioManager.STREAM_MUSIC) * 255f / (max - min));
+        } catch (RuntimeException e) {
+            Log.e(TAG, "Fail to fetch current music stream volume, error = " + e);
+            return volume;
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
new file mode 100644
index 0000000..9dd9fb0
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceVolumePreference.java
@@ -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.connecteddevice.audiosharing;
+
+import android.content.Context;
+import android.widget.SeekBar;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.widget.SeekBarPreference;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+
+public class AudioSharingDeviceVolumePreference extends SeekBarPreference {
+    public static final int MIN_VOLUME = 0;
+    public static final int MAX_VOLUME = 255;
+
+    protected SeekBar mSeekBar;
+    private final CachedBluetoothDevice mCachedDevice;
+
+    public AudioSharingDeviceVolumePreference(
+            Context context, @NonNull CachedBluetoothDevice device) {
+        super(context);
+        setLayoutResource(R.layout.preference_volume_slider);
+        mCachedDevice = device;
+    }
+
+    @Nullable
+    public CachedBluetoothDevice getCachedDevice() {
+        return mCachedDevice;
+    }
+
+    /**
+     * Initialize {@link AudioSharingDeviceVolumePreference}.
+     * Need to be called after creating the preference.
+     */
+    public void initialize() {
+        setMax(MAX_VOLUME);
+        setMin(MIN_VOLUME);
+    }
+}
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..32cd2f8
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragment.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.ImageView;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+import com.google.common.collect.Iterables;
+
+import java.util.ArrayList;
+import java.util.stream.Collectors;
+
+public class AudioSharingDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioSharingDialog";
+
+    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 for 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_START_AUDIO_SHARING;
+    }
+
+    /**
+     * Display the {@link AudioSharingDialogFragment} dialog.
+     *
+     * @param host The Fragment this dialog will be hosted.
+     * @param deviceItems The connected device items eligible for audio sharing.
+     * @param listener The callback to handle the user action on this dialog.
+     */
+    public static void show(
+            Fragment host,
+            ArrayList<AudioSharingDeviceItem> deviceItems,
+            DialogEventListener listener) {
+        if (!AudioSharingUtils.isFeatureEnabled()) 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()).setCancelable(false);
+        LayoutInflater inflater = LayoutInflater.from(builder.getContext());
+        View customTitle = inflater.inflate(R.layout.dialog_custom_title_audio_sharing, null);
+        ImageView icon = customTitle.findViewById(R.id.title_icon);
+        icon.setImageResource(R.drawable.ic_bt_audio_sharing);
+        TextView title = customTitle.findViewById(R.id.title_text);
+        View rootView = inflater.inflate(R.layout.dialog_audio_sharing, /* parent= */ null);
+        TextView subTitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        TextView subTitle2 = rootView.findViewById(R.id.share_audio_subtitle2);
+        RecyclerView recyclerView = rootView.findViewById(R.id.btn_list);
+        Button shareBtn = rootView.findViewById(R.id.share_btn);
+        Button cancelBtn = rootView.findViewById(R.id.cancel_btn);
+        if (deviceItems.isEmpty()) {
+            title.setText("Share your audio");
+            subTitle2.setText(
+                    "To start sharing audio, "
+                            + "connect two pairs of headphones that support LE Audio");
+            ImageView image = rootView.findViewById(R.id.share_audio_guidance);
+            image.setVisibility(View.VISIBLE);
+            builder.setNegativeButton("Close", null);
+        } else if (deviceItems.size() == 1) {
+            title.setText("Share your audio");
+            subTitle1.setText(
+                    deviceItems.stream()
+                            .map(AudioSharingDeviceItem::getName)
+                            .collect(Collectors.joining(" and ")));
+            subTitle2.setText(
+                    "This device's music and videos will play on both pairs of headphones");
+            shareBtn.setText("Share audio");
+            shareBtn.setOnClickListener(
+                    v -> {
+                        sListener.onItemClick(Iterables.getOnlyElement(deviceItems));
+                        dismiss();
+                    });
+            cancelBtn.setOnClickListener(v -> dismiss());
+            subTitle1.setVisibility(View.VISIBLE);
+            shareBtn.setVisibility(View.VISIBLE);
+            cancelBtn.setVisibility(View.VISIBLE);
+        } else {
+            title.setText("Share audio with another device");
+            subTitle2.setText(
+                    "This device's music and videos will play on the headphones you connect");
+            recyclerView.setAdapter(
+                    new AudioSharingDeviceAdapter(
+                            deviceItems,
+                            (AudioSharingDeviceItem item) -> {
+                                sListener.onItemClick(item);
+                                dismiss();
+                            },
+                            "Connect "));
+            recyclerView.setLayoutManager(
+                    new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
+            recyclerView.setVisibility(View.VISIBLE);
+            cancelBtn.setOnClickListener(v -> dismiss());
+            cancelBtn.setVisibility(View.VISIBLE);
+        }
+        AlertDialog dialog = builder.setCustomTitle(customTitle).setView(rootView).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..a2b1824
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragment.java
@@ -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.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.ImageView;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+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.
+     * @param deviceItems The existing connected device items in audio sharing session.
+     * @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 (!AudioSharingUtils.isFeatureEnabled()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        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);
+        final AlertDialog.Builder builder =
+                new AlertDialog.Builder(getActivity()).setCancelable(false);
+        LayoutInflater inflater = LayoutInflater.from(builder.getContext());
+        View customTitle = inflater.inflate(R.layout.dialog_custom_title_audio_sharing, null);
+        ImageView icon = customTitle.findViewById(R.id.title_icon);
+        icon.setImageResource(R.drawable.ic_bt_audio_sharing);
+        TextView title = customTitle.findViewById(R.id.title_text);
+        title.setText("Choose a device to disconnect");
+        View rootView =
+                inflater.inflate(R.layout.dialog_audio_sharing_disconnect, /* parent= */ null);
+        TextView subTitle = rootView.findViewById(R.id.share_audio_disconnect_description);
+        subTitle.setText("Only 2 devices can share audio at a time");
+        RecyclerView recyclerView = rootView.findViewById(R.id.device_btn_list);
+        recyclerView.setAdapter(
+                new AudioSharingDeviceAdapter(
+                        deviceItems,
+                        (AudioSharingDeviceItem item) -> {
+                            sListener.onItemClick(item);
+                            dismiss();
+                        },
+                        "Disconnect "));
+        recyclerView.setLayoutManager(
+                new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
+        Button cancelBtn = rootView.findViewById(R.id.cancel_btn);
+        cancelBtn.setOnClickListener(
+                v -> {
+                    dismiss();
+                });
+        AlertDialog dialog = builder.setCustomTitle(customTitle).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..f3f0fe4
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragment.java
@@ -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.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.ImageView;
+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 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;
+
+    @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 (!AudioSharingUtils.isFeatureEnabled()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        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()).setCancelable(false);
+        LayoutInflater inflater = LayoutInflater.from(builder.getContext());
+        View customTitle =
+                inflater.inflate(R.layout.dialog_custom_title_audio_sharing, /* parent= */ null);
+        ImageView icon = customTitle.findViewById(R.id.title_icon);
+        icon.setImageResource(R.drawable.ic_bt_audio_sharing);
+        TextView title = customTitle.findViewById(R.id.title_text);
+        title.setText("Share your audio");
+        View rootView = inflater.inflate(R.layout.dialog_audio_sharing_join, /* parent= */ null);
+        TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        TextView subtitle2 = rootView.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("This device's music and videos will play on both pairs of headphones");
+        Button shareBtn = rootView.findViewById(R.id.share_btn);
+        Button cancelBtn = rootView.findViewById(R.id.cancel_btn);
+        shareBtn.setOnClickListener(
+                v -> {
+                    sListener.onShareClick();
+                    dismiss();
+                });
+        shareBtn.setText("Share audio");
+        cancelBtn.setOnClickListener(v -> dismiss());
+        Dialog dialog = builder.setCustomTitle(customTitle).setView(rootView).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..44c947d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreference.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.connecteddevice.audiosharing;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+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";
+    private boolean mShowQrCodeIcon = false;
+
+    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);
+    }
+
+    void setShowQrCodeIcon(boolean show) {
+        mShowQrCodeIcon = show;
+        notifyChanged();
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        ImageButton shareButton = (ImageButton) holder.findViewById(R.id.button_icon);
+        View divider =
+                holder.findViewById(
+                        com.android.settingslib.widget.preference.twotarget.R.id
+                                .two_target_divider);
+
+        if (shareButton != null && divider != null) {
+            if (mShowQrCodeIcon) {
+                configureVisibleStateForQrCodeIcon(shareButton, divider);
+            } else {
+                configureInvisibleStateForQrCodeIcon(shareButton, divider);
+            }
+        } else {
+            Log.w(TAG, "onBindViewHolder() : shareButton or divider is null!");
+        }
+    }
+
+    private void configureVisibleStateForQrCodeIcon(ImageButton shareButton, View divider) {
+        divider.setVisibility(View.VISIBLE);
+        shareButton.setVisibility(View.VISIBLE);
+        shareButton.setImageDrawable(getContext().getDrawable(R.drawable.ic_qrcode_24dp));
+        shareButton.setOnClickListener(unused -> launchAudioSharingQrCodeFragment());
+    }
+
+    private void configureInvisibleStateForQrCodeIcon(ImageButton shareButton, View divider) {
+        divider.setVisibility(View.INVISIBLE);
+        shareButton.setVisibility(View.INVISIBLE);
+        shareButton.setOnClickListener(null);
+    }
+
+    private void launchAudioSharingQrCodeFragment() {
+        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..644e05e
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNamePreferenceController.java
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.android.settings.connecteddevice.audiosharing.AudioSharingUtils.isBroadcasting;
+
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingNamePreferenceController extends BasePreferenceController
+        implements ValidatedEditTextPreference.Validator,
+                Preference.OnPreferenceChangeListener,
+                DefaultLifecycleObserver {
+
+    private static final String TAG = "AudioSharingNamePreferenceController";
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private static final String PREF_KEY = "audio_sharing_stream_name";
+
+    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+            new BluetoothLeBroadcast.Callback() {
+                @Override
+                public void onBroadcastMetadataChanged(
+                        int broadcastId, BluetoothLeBroadcastMetadata metadata) {
+                    if (DEBUG) {
+                        Log.d(
+                                TAG,
+                                "onBroadcastMetadataChanged() broadcastId : "
+                                        + broadcastId
+                                        + " metadata: "
+                                        + metadata);
+                    }
+                    updateQrCodeIcon(true);
+                }
+
+                @Override
+                public void onBroadcastStartFailed(int reason) {}
+
+                @Override
+                public void onBroadcastStarted(int reason, int broadcastId) {}
+
+                @Override
+                public void onBroadcastStopFailed(int reason) {}
+
+                @Override
+                public void onBroadcastStopped(int reason, int broadcastId) {
+                    if (DEBUG) {
+                        Log.d(
+                                TAG,
+                                "onBroadcastStopped() reason : "
+                                        + reason
+                                        + " broadcastId: "
+                                        + broadcastId);
+                    }
+                    updateQrCodeIcon(false);
+                }
+
+                @Override
+                public void onBroadcastUpdateFailed(int reason, int broadcastId) {
+                    Log.w(TAG, "onBroadcastUpdateFailed() reason : " + reason);
+                    // Do nothing if update failed.
+                }
+
+                @Override
+                public void onBroadcastUpdated(int reason, int broadcastId) {
+                    if (DEBUG) {
+                        Log.d(TAG, "onBroadcastUpdated() reason : " + reason);
+                    }
+                    updateBroadcastName();
+                }
+
+                @Override
+                public void onPlaybackStarted(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStopped(int reason, int broadcastId) {}
+            };
+
+    @Nullable private final LocalBluetoothManager mLocalBtManager;
+    @Nullable private final LocalBluetoothLeBroadcast mBroadcast;
+    private final Executor mExecutor;
+    private final AudioSharingNameTextValidator mAudioSharingNameTextValidator;
+    @Nullable private AudioSharingNamePreference mPreference;
+
+    public AudioSharingNamePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mLocalBtManager = Utils.getLocalBluetoothManager(context);
+        mBroadcast =
+                (mLocalBtManager != null)
+                        ? mLocalBtManager.getProfileManager().getLeAudioBroadcastProfile()
+                        : null;
+        mAudioSharingNameTextValidator = new AudioSharingNameTextValidator();
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mBroadcast != null) {
+            mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mBroadcast != null) {
+            mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        if (mPreference != null) {
+            mPreference.setValidator(this);
+            updateBroadcastName();
+            updateQrCodeIcon(isBroadcasting(mLocalBtManager));
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (mPreference != null
+                && mPreference.getSummary() != null
+                && ((String) newValue).contentEquals(mPreference.getSummary())) {
+            return false;
+        }
+
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            if (mBroadcast != null) {
+                                mBroadcast.setProgramInfo((String) newValue);
+                                if (isBroadcasting(mLocalBtManager)) {
+                                    // Update broadcast, UI update will be handled after callback
+                                    mBroadcast.updateBroadcast();
+                                } else {
+                                    // Directly update UI if no ongoing broadcast
+                                    updateBroadcastName();
+                                }
+                            }
+                        });
+        return true;
+    }
+
+    private void updateBroadcastName() {
+        if (mPreference != null) {
+            var unused =
+                    ThreadUtils.postOnBackgroundThread(
+                            () -> {
+                                if (mBroadcast != null) {
+                                    String name = mBroadcast.getProgramInfo();
+                                    ThreadUtils.postOnMainThread(
+                                            () -> {
+                                                if (mPreference != null) {
+                                                    mPreference.setText(name);
+                                                    mPreference.setSummary(name);
+                                                }
+                                            });
+                                }
+                            });
+        }
+    }
+
+    private void updateQrCodeIcon(boolean show) {
+        if (mPreference != null) {
+            ThreadUtils.postOnMainThread(
+                    () -> {
+                        if (mPreference != null) {
+                            mPreference.setShowQrCodeIcon(show);
+                        }
+                    });
+        }
+    }
+
+    @Override
+    public boolean isTextValid(String value) {
+        return mAudioSharingNameTextValidator.isTextValid(value);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidator.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidator.java
new file mode 100644
index 0000000..2022eb2
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingNameTextValidator.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.connecteddevice.audiosharing;
+
+import com.android.settings.widget.ValidatedEditTextPreference;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Validator for Audio Sharing Name, which should be a UTF-8 encoded string containing a minimum of
+ * 4 characters and a maximum of 32 human-readable characters.
+ */
+public class AudioSharingNameTextValidator implements ValidatedEditTextPreference.Validator {
+    private static final int MIN_LENGTH = 4;
+    private static final int MAX_LENGTH = 32;
+
+    @Override
+    public boolean isTextValid(String value) {
+        if (value == null || value.length() < MIN_LENGTH || value.length() > MAX_LENGTH) {
+            return false;
+        }
+        return isValidUTF8(value);
+    }
+
+    private static boolean isValidUTF8(String value) {
+        byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
+        String reconstructedString = new String(bytes, StandardCharsets.UTF_8);
+        return value.equals(reconstructedString);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
new file mode 100644
index 0000000..da0eb2e
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordPreferenceController.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.widget.ValidatedEditTextPreference;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingPasswordPreferenceController extends BasePreferenceController
+        implements ValidatedEditTextPreference.Validator,
+                Preference.OnPreferenceChangeListener,
+                DefaultLifecycleObserver {
+    private static final String PREF_KEY = "audio_sharing_stream_password";
+
+    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+            new BluetoothLeBroadcast.Callback() {
+                @Override
+                public void onBroadcastMetadataChanged(
+                        int broadcastId, BluetoothLeBroadcastMetadata metadata) {}
+
+                @Override
+                public void onBroadcastStartFailed(int reason) {}
+
+                @Override
+                public void onBroadcastStarted(int reason, int broadcastId) {}
+
+                @Override
+                public void onBroadcastStopFailed(int reason) {}
+
+                @Override
+                public void onBroadcastStopped(int reason, int broadcastId) {}
+
+                @Override
+                public void onBroadcastUpdateFailed(int reason, int broadcastId) {}
+
+                @Override
+                public void onBroadcastUpdated(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStarted(int reason, int broadcastId) {}
+
+                @Override
+                public void onPlaybackStopped(int reason, int broadcastId) {}
+            };
+    @Nullable private final LocalBluetoothLeBroadcast mBroadcast;
+    private final Executor mExecutor;
+    private final AudioSharingPasswordValidator mAudioSharingPasswordValidator;
+    @Nullable private ValidatedEditTextPreference mPreference;
+
+    public AudioSharingPasswordPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mBroadcast =
+                Utils.getLocalBtManager(context).getProfileManager().getLeAudioBroadcastProfile();
+        mAudioSharingPasswordValidator = new AudioSharingPasswordValidator();
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mBroadcast != null) {
+            mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mBroadcast != null) {
+            mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        if (mPreference != null) {
+            mPreference.setValidator(this);
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        // TODO(chelseahao): implement
+        return true;
+    }
+
+    @Override
+    public boolean isTextValid(String value) {
+        return mAudioSharingPasswordValidator.isTextValid(value);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordValidator.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordValidator.java
new file mode 100644
index 0000000..dbb40ec
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPasswordValidator.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import com.android.settings.widget.ValidatedEditTextPreference;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * Validator for Audio Sharing Password, which should be a UTF-8 string that has at least 4 octets
+ * and should not exceed 16 octets.
+ */
+public class AudioSharingPasswordValidator implements ValidatedEditTextPreference.Validator {
+    private static final int MIN_OCTETS = 4;
+    private static final int MAX_OCTETS = 16;
+
+    @Override
+    public boolean isTextValid(String value) {
+        if (value == null
+                || getOctetsCount(value) < MIN_OCTETS
+                || getOctetsCount(value) > MAX_OCTETS) {
+            return false;
+        }
+
+        return isValidUTF8(value);
+    }
+
+    private static int getOctetsCount(String value) {
+        return value.getBytes(StandardCharsets.UTF_8).length;
+    }
+
+    private static boolean isValidUTF8(String value) {
+        byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
+        String reconstructedString = new String(bytes, StandardCharsets.UTF_8);
+        return value.equals(reconstructedString);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
new file mode 100644
index 0000000..6722219
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPlaySoundPreferenceController.java
@@ -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.connecteddevice.audiosharing;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+
+public class AudioSharingPlaySoundPreferenceController
+        extends AudioSharingBasePreferenceController {
+
+    private static final String TAG = "AudioSharingPlaySoundPreferenceController";
+
+    private static final String PREF_KEY = "audio_sharing_play_sound";
+
+    private final Ringtone mRingtone;
+
+    public AudioSharingPlaySoundPreferenceController(Context context) {
+        super(context, PREF_KEY);
+        mRingtone = RingtoneManager.getRingtone(context, getMediaVolumeUri());
+        if (mRingtone != null) {
+            mRingtone.setStreamType(AudioManager.STREAM_MUSIC);
+        }
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference.setVisible(mRingtone != null);
+        mPreference.setOnPreferenceClickListener(
+                (v) -> {
+                    if (mRingtone == null) {
+                        Log.d(TAG, "Skip onClick due to ringtone is null");
+                        return true;
+                    }
+                    try {
+                        mRingtone.setAudioAttributes(
+                                new AudioAttributes.Builder(mRingtone.getAudioAttributes())
+                                        .setFlags(AudioAttributes.FLAG_BYPASS_MUTE)
+                                        .addTag("VX_AOSP_SAMPLESOUND")
+                                        .build());
+                        if (!mRingtone.isPlaying()) {
+                            mRingtone.play();
+                        }
+                    } catch (Throwable e) {
+                        Log.w(TAG, "Fail to play sample, error = " + e);
+                    }
+                    return true;
+                });
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        super.onStop(owner);
+        if (mRingtone != null && mRingtone.isPlaying()) {
+            mRingtone.stop();
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    private Uri getMediaVolumeUri() {
+        return Uri.parse(
+                ContentResolver.SCHEME_ANDROID_RESOURCE
+                        + "://"
+                        + mContext.getPackageName()
+                        + "/"
+                        + R.raw.media_volume);
+    }
+}
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..16c9888
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceController.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.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioSharingPreferenceController extends BasePreferenceController
+        implements DefaultLifecycleObserver, BluetoothCallback {
+    private static final String TAG = "AudioSharingPreferenceController";
+
+    private final LocalBluetoothManager mLocalBtManager;
+    private final Executor mExecutor;
+    @Nullable private LocalBluetoothLeBroadcast mBroadcast = null;
+    @Nullable private Preference mPreference;
+
+    private final BluetoothLeBroadcast.Callback mBroadcastCallback =
+            new BluetoothLeBroadcast.Callback() {
+                @Override
+                public void onBroadcastStarted(int reason, int broadcastId) {
+                    if (mPreference != null) {
+                        refreshSummary(mPreference);
+                    }
+                }
+
+                @Override
+                public void onBroadcastStartFailed(int reason) {}
+
+                @Override
+                public void onBroadcastMetadataChanged(
+                        int broadcastId, @NonNull BluetoothLeBroadcastMetadata metadata) {}
+
+                @Override
+                public void onBroadcastStopped(int reason, int broadcastId) {
+                    if (mPreference != null) {
+                        refreshSummary(mPreference);
+                    }
+                }
+
+                @Override
+                public void onBroadcastStopFailed(int reason) {}
+
+                @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) {}
+            };
+
+    public AudioSharingPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mLocalBtManager = Utils.getLocalBtManager(context);
+        if (mLocalBtManager != null) {
+            mBroadcast = mLocalBtManager.getProfileManager().getLeAudioBroadcastProfile();
+        }
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().registerCallback(this);
+        }
+        if (mBroadcast != null) {
+            mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().unregisterCallback(this);
+        }
+        if (mBroadcast != null) {
+            mBroadcast.unregisterServiceCallBack(mBroadcastCallback);
+        }
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        return AudioSharingUtils.isBroadcasting(mLocalBtManager) ? "On" : "Off";
+    }
+
+    @Override
+    public void onBluetoothStateChanged(@AdapterState int bluetoothState) {
+        if (mPreference != null) {
+            refreshSummary(mPreference);
+        }
+    }
+}
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..1454f76
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragment.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.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.ImageView;
+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;
+
+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.
+     * @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, String newDeviceName, DialogEventListener listener) {
+        if (!AudioSharingUtils.isFeatureEnabled()) return;
+        final FragmentManager manager = host.getChildFragmentManager();
+        sListener = listener;
+        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()).setCancelable(false);
+        LayoutInflater inflater = LayoutInflater.from(builder.getContext());
+        View customTitle =
+                inflater.inflate(R.layout.dialog_custom_title_audio_sharing, /* parent= */ null);
+        ImageView icon = customTitle.findViewById(R.id.title_icon);
+        icon.setImageResource(R.drawable.ic_warning_24dp);
+        TextView title = customTitle.findViewById(R.id.title_text);
+        title.setText("Stop sharing audio?");
+        builder.setMessage(
+                newDeviceName + " wants to connect, headphones in audio sharing will disconnect.");
+        builder.setPositiveButton(
+                "Stop sharing", (dialog, which) -> sListener.onStopSharingClick());
+        builder.setNegativeButton("Cancel", (dialog, which) -> dismiss());
+        AlertDialog dialog = builder.setCustomTitle(customTitle).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..b82c94d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarController.java
@@ -0,0 +1,395 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.util.Log;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+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.widget.SettingsMainSwitchBar;
+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 com.google.common.collect.ImmutableList;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
+
+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();
+    }
+
+    private final SettingsMainSwitchBar mSwitchBar;
+    private final BluetoothAdapter mBluetoothAdapter;
+    private final LocalBluetoothManager mBtManager;
+    private final LocalBluetoothLeBroadcast mBroadcast;
+    private final LocalBluetoothLeBroadcastAssistant mAssistant;
+    private final Executor mExecutor;
+    private final OnSwitchBarChangedListener mListener;
+    private DashboardFragment mFragment;
+    private Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+    private List<BluetoothDevice> mTargetActiveSinks = new ArrayList<>();
+    private ArrayList<AudioSharingDeviceItem> mDeviceItemsForSharing = new ArrayList<>();
+    @VisibleForTesting IntentFilter mIntentFilter;
+
+    @VisibleForTesting
+    BroadcastReceiver mReceiver =
+            new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    if (!BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) return;
+                    int adapterState =
+                            intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothDevice.ERROR);
+                    mSwitchBar.setChecked(isBroadcasting());
+                    mSwitchBar.setEnabled(adapterState == BluetoothAdapter.STATE_ON);
+                    mListener.onSwitchBarChanged();
+                }
+            };
+
+    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.getBroadcastName());
+                    addSourceToTargetSinks(mTargetActiveSinks);
+                    if (mFragment == null) {
+                        Log.w(TAG, "Dialog fail to show due to null fragment.");
+                        return;
+                    }
+                    ThreadUtils.postOnMainThread(
+                            () -> {
+                                AudioSharingDialogFragment.show(
+                                        mFragment,
+                                        mDeviceItemsForSharing,
+                                        item -> {
+                                            addSourceToTargetSinks(
+                                                    mGroupedConnectedDevices
+                                                            .getOrDefault(
+                                                                    item.getGroupId(),
+                                                                    ImmutableList.of())
+                                                            .stream()
+                                                            .map(CachedBluetoothDevice::getDevice)
+                                                            .collect(Collectors.toList()));
+                                        });
+                            });
+                }
+
+                @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);
+                    AudioSharingUtils.toastMessage(
+                            mContext,
+                            String.format(
+                                    Locale.US,
+                                    "Fail to add source to %s reason %d",
+                                    sink.getAddress(),
+                                    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;
+        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
+        mBtManager = Utils.getLocalBtManager(context);
+        mBroadcast = mBtManager.getProfileManager().getLeAudioBroadcastProfile();
+        mAssistant = mBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        mSwitchBar.addOnSwitchChangeListener(this);
+        mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED);
+        if (mBroadcast != null) {
+            mBroadcast.registerServiceCallBack(mExecutor, mBroadcastCallback);
+        }
+        if (mAssistant != null) {
+            mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+        }
+        if (isAvailable()) {
+            mSwitchBar.setChecked(isBroadcasting());
+            mSwitchBar.setEnabled(mBluetoothAdapter != null && mBluetoothAdapter.isEnabled());
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        mSwitchBar.removeOnSwitchChangeListener(this);
+        mContext.unregisterReceiver(mReceiver);
+        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 AudioSharingUtils.isFeatureEnabled() ? 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;
+        }
+        mGroupedConnectedDevices = AudioSharingUtils.fetchConnectedDevicesByGroupId(mBtManager);
+        ArrayList<AudioSharingDeviceItem> deviceItems =
+                AudioSharingUtils.buildOrderedConnectedLeadAudioSharingDeviceItem(
+                        mBtManager, mGroupedConnectedDevices, /* filterByInSharing= */ false);
+        // deviceItems is ordered. The active device is the first place if exits.
+        mDeviceItemsForSharing = new ArrayList<>(deviceItems);
+        if (!deviceItems.isEmpty() && deviceItems.get(0).isActive()) {
+            for (CachedBluetoothDevice device :
+                    mGroupedConnectedDevices.getOrDefault(
+                            deviceItems.get(0).getGroupId(), ImmutableList.of())) {
+                // If active device exists for audio sharing, share to it
+                // automatically once the broadcast is started.
+                mTargetActiveSinks.add(device.getDevice());
+            }
+            mDeviceItemsForSharing.remove(0);
+        }
+        mBroadcast.startPrivateBroadcast();
+    }
+
+    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() {
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            boolean isBroadcasting = isBroadcasting();
+                            ThreadUtils.postOnMainThread(
+                                    () -> {
+                                        if (mSwitchBar.isChecked() != isBroadcasting) {
+                                            mSwitchBar.setChecked(isBroadcasting);
+                                        }
+                                        mSwitchBar.setEnabled(true);
+                                        mListener.onSwitchBarChanged();
+                                    });
+                        });
+    }
+
+    private boolean isBroadcasting() {
+        return mBroadcast != null && mBroadcast.isEnabled(null);
+    }
+
+    private void addSourceToTargetSinks(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..f489e9c
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingUtils.java
@@ -0,0 +1,408 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.BluetoothCsipSetCoordinator;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothStatusCodes;
+import android.content.Context;
+import android.provider.Settings;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+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 com.android.settingslib.bluetooth.LocalBluetoothProfile;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import javax.annotation.Nullable;
+
+public class AudioSharingUtils {
+    private static final String TAG = "AudioSharingUtils";
+    private static final boolean DEBUG = BluetoothUtils.D;
+
+    /**
+     * 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<>();
+        if (localBtManager == null) {
+            Log.d(TAG, "Skip fetchConnectedDevicesByGroupId due to bt manager is null");
+            return groupedDevices;
+        }
+        LocalBluetoothLeBroadcastAssistant assistant =
+                localBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        if (assistant == null) {
+            Log.d(TAG, "Skip fetchConnectedDevicesByGroupId due to assistant profile is null");
+            return groupedDevices;
+        }
+        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 = getGroupId(cachedDevice);
+            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);
+        }
+        if (DEBUG) {
+            Log.d(TAG, "fetchConnectedDevicesByGroupId: " + groupedDevices);
+        }
+        return groupedDevices;
+    }
+
+    /**
+     * Fetch a list of ordered connected lead {@link CachedBluetoothDevice}s eligible for audio
+     * sharing. The active device is placed in the first place if it exists. The devices can be
+     * filtered by whether it is already in the audio sharing session.
+     *
+     * @param localBtManager The BT manager to provide BT functions. *
+     * @param groupedConnectedDevices devices connected to broadcast assistant grouped by CSIP group
+     *     id.
+     * @param filterByInSharing Whether to filter the device by if is already in the sharing
+     *     session.
+     * @return A list of ordered connected devices eligible for the audio sharing. The active device
+     *     is placed in the first place if it exists.
+     */
+    public static List<CachedBluetoothDevice> buildOrderedConnectedLeadDevices(
+            LocalBluetoothManager localBtManager,
+            Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+            boolean filterByInSharing) {
+        List<CachedBluetoothDevice> orderedDevices = new ArrayList<>();
+        for (List<CachedBluetoothDevice> devices : groupedConnectedDevices.values()) {
+            @Nullable CachedBluetoothDevice leadDevice = getLeadDevice(devices);
+            if (leadDevice == null) {
+                Log.d(TAG, "Skip due to no lead device");
+                continue;
+            }
+            if (filterByInSharing && !hasBroadcastSource(leadDevice, localBtManager)) {
+                Log.d(
+                        TAG,
+                        "Filtered the device due to not in sharing session: "
+                                + leadDevice.getDevice().getAnonymizedAddress());
+                continue;
+            }
+            orderedDevices.add(leadDevice);
+        }
+        orderedDevices.sort(
+                (CachedBluetoothDevice d1, CachedBluetoothDevice d2) -> {
+                    // Active above not inactive
+                    int comparison =
+                            (isActiveLeAudioDevice(d2) ? 1 : 0)
+                                    - (isActiveLeAudioDevice(d1) ? 1 : 0);
+                    if (comparison != 0) return comparison;
+                    // Bonded above not bonded
+                    comparison =
+                            (d2.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0)
+                                    - (d1.getBondState() == BluetoothDevice.BOND_BONDED ? 1 : 0);
+                    if (comparison != 0) return comparison;
+                    // Bond timestamp available above unavailable
+                    comparison =
+                            (d2.getBondTimestamp() != null ? 1 : 0)
+                                    - (d1.getBondTimestamp() != null ? 1 : 0);
+                    if (comparison != 0) return comparison;
+                    // Order by bond timestamp if it is available
+                    // Otherwise order by device name
+                    return d1.getBondTimestamp() != null
+                            ? d1.getBondTimestamp().compareTo(d2.getBondTimestamp())
+                            : d1.getName().compareTo(d2.getName());
+                });
+        return orderedDevices;
+    }
+
+    /**
+     * Get the lead device from a list of devices with same group id.
+     *
+     * @param devices A list of devices with same group id.
+     * @return The lead device
+     */
+    @Nullable
+    public static CachedBluetoothDevice getLeadDevice(
+            @NonNull List<CachedBluetoothDevice> devices) {
+        if (devices.isEmpty()) return null;
+        for (CachedBluetoothDevice device : devices) {
+            if (!device.getMemberDevice().isEmpty()) {
+                return device;
+            }
+        }
+        CachedBluetoothDevice leadDevice = devices.get(0);
+        Log.d(
+                TAG,
+                "No lead device in the group, pick arbitrary device as the lead: "
+                        + leadDevice.getDevice().getAnonymizedAddress());
+        return leadDevice;
+    }
+
+    /**
+     * Fetch a list of ordered connected lead {@link AudioSharingDeviceItem}s eligible for audio
+     * sharing. The active device is placed in the first place if it exists. The devices can be
+     * filtered by whether it is already in the audio sharing session.
+     *
+     * @param localBtManager The BT manager to provide BT functions. *
+     * @param groupedConnectedDevices devices connected to broadcast assistant grouped by CSIP group
+     *     id.
+     * @param filterByInSharing Whether to filter the device by if is already in the sharing
+     *     session.
+     * @return A list of ordered connected devices eligible for the audio sharing. The active device
+     *     is placed in the first place if it exists.
+     */
+    public static ArrayList<AudioSharingDeviceItem> buildOrderedConnectedLeadAudioSharingDeviceItem(
+            LocalBluetoothManager localBtManager,
+            Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices,
+            boolean filterByInSharing) {
+        return buildOrderedConnectedLeadDevices(
+                        localBtManager, groupedConnectedDevices, filterByInSharing)
+                .stream()
+                .map(device -> buildAudioSharingDeviceItem(device))
+                .collect(Collectors.toCollection(ArrayList::new));
+    }
+
+    /** Build {@link AudioSharingDeviceItem} from {@link CachedBluetoothDevice}. */
+    public static AudioSharingDeviceItem buildAudioSharingDeviceItem(
+            CachedBluetoothDevice cachedDevice) {
+        return new AudioSharingDeviceItem(
+                cachedDevice.getName(),
+                getGroupId(cachedDevice),
+                isActiveLeAudioDevice(cachedDevice));
+    }
+
+    /**
+     * Check if {@link CachedBluetoothDevice} is in an audio sharing session.
+     *
+     * @param cachedDevice The cached bluetooth device to check.
+     * @param localBtManager The BT manager to provide BT functions.
+     * @return Whether the device is in an audio sharing session.
+     */
+    public static boolean hasBroadcastSource(
+            CachedBluetoothDevice cachedDevice, LocalBluetoothManager localBtManager) {
+        if (localBtManager == null) {
+            Log.d(TAG, "Skip check hasBroadcastSource due to bt manager is null");
+            return false;
+        }
+        LocalBluetoothLeBroadcastAssistant assistant =
+                localBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        if (assistant == null) {
+            Log.d(TAG, "Skip check hasBroadcastSource due to assistant profile is null");
+            return false;
+        }
+        List<BluetoothLeBroadcastReceiveState> sourceList =
+                assistant.getAllSources(cachedDevice.getDevice());
+        if (!sourceList.isEmpty()) {
+            Log.d(
+                    TAG,
+                    "Lead device has broadcast source, device = "
+                            + cachedDevice.getDevice().getAnonymizedAddress());
+            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()) {
+                Log.d(
+                        TAG,
+                        "Member device has broadcast source, device = "
+                                + device.getDevice().getAnonymizedAddress());
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * Check if {@link CachedBluetoothDevice} is an active le audio device.
+     *
+     * @param cachedDevice The cached bluetooth device to check.
+     * @return Whether the device is an active le audio device.
+     */
+    public static boolean isActiveLeAudioDevice(CachedBluetoothDevice cachedDevice) {
+        return BluetoothUtils.isActiveLeAudioDevice(cachedDevice);
+    }
+
+    /**
+     * Retrieves the one and only active Bluetooth LE Audio sink device, regardless if the device is
+     * currently in an audio sharing session.
+     *
+     * @param manager The LocalBluetoothManager instance used to fetch connected devices.
+     * @return An Optional containing the active LE Audio device, or an empty Optional if not found.
+     */
+    public static Optional<CachedBluetoothDevice> getActiveSinkOnAssistant(
+            @Nullable LocalBluetoothManager manager) {
+        if (manager == null) {
+            Log.w(TAG, "getActiveSinksOnAssistant(): LocalBluetoothManager is null!");
+            return Optional.empty();
+        }
+        var groupedDevices = fetchConnectedDevicesByGroupId(manager);
+        var leadDevices = buildOrderedConnectedLeadDevices(manager, groupedDevices, false);
+
+        if (!leadDevices.isEmpty() && isActiveLeAudioDevice(leadDevices.get(0))) {
+            return Optional.of(leadDevices.get(0));
+        } else {
+            Log.w(TAG, "getActiveSinksOnAssistant(): No active lead device!");
+        }
+        return Optional.empty();
+    }
+
+    /** Toast message on main thread. */
+    public static void toastMessage(Context context, String message) {
+        context.getMainExecutor()
+                .execute(() -> Toast.makeText(context, message, Toast.LENGTH_LONG).show());
+    }
+
+    /** Returns if the le audio sharing is enabled. */
+    public static boolean isFeatureEnabled() {
+        BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
+        return Flags.enableLeAudioSharing()
+                && adapter.isLeAudioBroadcastSourceSupported()
+                        == BluetoothStatusCodes.FEATURE_SUPPORTED
+                && adapter.isLeAudioBroadcastAssistantSupported()
+                        == BluetoothStatusCodes.FEATURE_SUPPORTED;
+    }
+
+    /** Automatically update active device if needed. */
+    public static void updateActiveDeviceIfNeeded(LocalBluetoothManager localBtManager) {
+        if (localBtManager == null) {
+            Log.d(TAG, "Skip updateActiveDeviceIfNeeded due to bt manager is null");
+            return;
+        }
+        Map<Integer, List<CachedBluetoothDevice>> groupedConnectedDevices =
+                fetchConnectedDevicesByGroupId(localBtManager);
+        List<CachedBluetoothDevice> devicesInSharing =
+                buildOrderedConnectedLeadDevices(
+                        localBtManager, groupedConnectedDevices, /* filterByInSharing= */ true);
+        if (devicesInSharing.isEmpty()) return;
+        List<BluetoothDevice> devices =
+                BluetoothAdapter.getDefaultAdapter().getMostRecentlyConnectedDevices();
+        CachedBluetoothDevice targetDevice = null;
+        // Find the earliest connected device in sharing session.
+        int targetDeviceIdx = -1;
+        for (CachedBluetoothDevice device : devicesInSharing) {
+            if (devices.contains(device.getDevice())) {
+                int idx = devices.indexOf(device.getDevice());
+                if (idx > targetDeviceIdx) {
+                    targetDeviceIdx = idx;
+                    targetDevice = device;
+                }
+            }
+        }
+        if (targetDevice != null && !isActiveLeAudioDevice(targetDevice)) {
+            Log.d(
+                    TAG,
+                    "updateActiveDeviceIfNeeded, set active device: "
+                            + targetDevice.getDevice().getAnonymizedAddress());
+            targetDevice.setActive();
+        } else {
+            Log.d(
+                    TAG,
+                    "updateActiveDeviceIfNeeded, skip set active device: "
+                            + (targetDevice == null
+                                    ? "null"
+                                    : (targetDevice.getDevice().getAnonymizedAddress()
+                                            + " is already active")));
+        }
+    }
+
+    /** Returns if the broadcast is on-going. */
+    public static boolean isBroadcasting(@Nullable LocalBluetoothManager manager) {
+        if (manager == null) return false;
+        LocalBluetoothLeBroadcast broadcast =
+                manager.getProfileManager().getLeAudioBroadcastProfile();
+        return broadcast != null && broadcast.isEnabled(null);
+    }
+
+    /** Stops the latest broadcast. */
+    public static void stopBroadcasting(LocalBluetoothManager manager) {
+        if (manager == null) {
+            Log.d(TAG, "Skip stop broadcasting due to bt manager is null");
+            return;
+        }
+        LocalBluetoothLeBroadcast broadcast =
+                manager.getProfileManager().getLeAudioBroadcastProfile();
+        if (broadcast == null) {
+            Log.d(TAG, "Skip stop broadcasting due to broadcast profile is null");
+        }
+        broadcast.stopBroadcast(broadcast.getLatestBroadcastId());
+    }
+
+    /**
+     * Get CSIP group id for {@link CachedBluetoothDevice}.
+     *
+     * <p>If CachedBluetoothDevice#getGroupId is invalid, fetch group id from
+     * LeAudioProfile#getGroupId.
+     */
+    public static int getGroupId(CachedBluetoothDevice cachedDevice) {
+        int groupId = cachedDevice.getGroupId();
+        String anonymizedAddress = cachedDevice.getDevice().getAnonymizedAddress();
+        if (groupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
+            Log.d(TAG, "getGroupId by CSIP profile for device: " + anonymizedAddress);
+            return groupId;
+        }
+        for (LocalBluetoothProfile profile : cachedDevice.getProfiles()) {
+            if (profile instanceof LeAudioProfile) {
+                Log.d(TAG, "getGroupId by LEA profile for device: " + anonymizedAddress);
+                return ((LeAudioProfile) profile).getGroupId(cachedDevice.getDevice());
+            }
+        }
+        Log.d(TAG, "getGroupId return invalid id for device: " + anonymizedAddress);
+        return BluetoothCsipSetCoordinator.GROUP_ID_INVALID;
+    }
+
+    /** Get the fallback active group id from SettingsProvider. */
+    public static int getFallbackActiveGroupId(@NonNull Context context) {
+        return Settings.Secure.getInt(
+                context.getContentResolver(),
+                "bluetooth_le_broadcast_fallback_active_group_id",
+                BluetoothCsipSetCoordinator.GROUP_ID_INVALID);
+    }
+
+    /** Post the runnable to main thread. */
+    public static void postOnMainThread(@NonNull Context context, @NonNull Runnable runnable) {
+        context.getMainExecutor().execute(runnable);
+    }
+}
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..9d346d3
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragment.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.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 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 (!AudioSharingUtils.isFeatureEnabled()) 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;
+        for (AudioSharingDeviceItem item : deviceItems) {
+            int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(getContext());
+            if (item.getGroupId() == fallbackActiveGroupId) {
+                checkedItem = deviceItems.indexOf(item);
+            }
+        }
+        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..2a538d5
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceController.java
@@ -0,0 +1,261 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.BluetoothCsipSetCoordinator;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.LifecycleOwner;
+import 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.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+/** PreferenceController to control the dialog to choose the active device for calls and alarms */
+public class CallsAndAlarmsPreferenceController extends AudioSharingBasePreferenceController
+        implements BluetoothCallback {
+
+    private static final String TAG = "CallsAndAlarmsPreferenceController";
+    private static final String PREF_KEY = "calls_and_alarms";
+
+    private final LocalBluetoothManager mLocalBtManager;
+    private final Executor mExecutor;
+    @Nullable private LocalBluetoothLeBroadcastAssistant mAssistant = null;
+    private DashboardFragment mFragment;
+    Map<Integer, List<CachedBluetoothDevice>> mGroupedConnectedDevices = new HashMap<>();
+    private ArrayList<AudioSharingDeviceItem> mDeviceItemsInSharingSession = new ArrayList<>();
+
+    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");
+                    updatePreference();
+                }
+
+                @Override
+                public void onSourceAddFailed(
+                        @NonNull BluetoothDevice sink,
+                        @NonNull BluetoothLeBroadcastMetadata source,
+                        int 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");
+                    updatePreference();
+                }
+
+                @Override
+                public void onSourceRemoveFailed(
+                        @NonNull BluetoothDevice sink, int sourceId, int reason) {}
+
+                @Override
+                public void onReceiveStateChanged(
+                        BluetoothDevice sink,
+                        int sourceId,
+                        BluetoothLeBroadcastReceiveState state) {}
+            };
+
+    public CallsAndAlarmsPreferenceController(Context context) {
+        super(context, PREF_KEY);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        if (mLocalBtManager != null) {
+            mAssistant = mLocalBtManager.getProfileManager().getLeAudioBroadcastAssistantProfile();
+        }
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return PREF_KEY;
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference.setOnPreferenceClickListener(
+                preference -> {
+                    if (mFragment == null) {
+                        Log.w(TAG, "Dialog fail to show due to null host.");
+                        return true;
+                    }
+                    updateDeviceItemsInSharingSession();
+                    if (mDeviceItemsInSharingSession.size() >= 1) {
+                        CallsAndAlarmsDialogFragment.show(
+                                mFragment,
+                                mDeviceItemsInSharingSession,
+                                (AudioSharingDeviceItem item) -> {
+                                    if (!mGroupedConnectedDevices.containsKey(item.getGroupId())) {
+                                        return;
+                                    }
+                                    List<CachedBluetoothDevice> devices =
+                                            mGroupedConnectedDevices.get(item.getGroupId());
+                                    @Nullable
+                                    CachedBluetoothDevice lead =
+                                            AudioSharingUtils.getLeadDevice(devices);
+                                    if (lead != null) {
+                                        Log.d(
+                                                TAG,
+                                                "Set fallback active device: "
+                                                        + lead.getDevice().getAnonymizedAddress());
+                                        lead.setActive();
+                                        updatePreference();
+                                    } else {
+                                        Log.w(
+                                                TAG,
+                                                "Fail to set fallback active device: no lead"
+                                                        + " device");
+                                    }
+                                });
+                    }
+                    return true;
+                });
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        super.onStart(owner);
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().registerCallback(this);
+        }
+        if (mAssistant != null) {
+            mAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        super.onStop(owner);
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().unregisterCallback(this);
+        }
+        if (mAssistant != null) {
+            mAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+        }
+    }
+
+    @Override
+    public void updateVisibility() {
+        if (mPreference == null) return;
+        var unused = ThreadUtils.postOnBackgroundThread(() -> updatePreference());
+    }
+
+    private void updatePreference() {
+        boolean isVisible = isBroadcasting() && isBluetoothStateOn();
+        if (!isVisible) {
+            AudioSharingUtils.postOnMainThread(mContext, () -> mPreference.setVisible(false));
+            return;
+        }
+        updateDeviceItemsInSharingSession();
+        int fallbackActiveGroupId = AudioSharingUtils.getFallbackActiveGroupId(mContext);
+        Log.d(TAG, "updatePreference: get fallback active group " + fallbackActiveGroupId);
+        if (fallbackActiveGroupId != BluetoothCsipSetCoordinator.GROUP_ID_INVALID) {
+            for (AudioSharingDeviceItem item : mDeviceItemsInSharingSession) {
+                if (item.getGroupId() == fallbackActiveGroupId) {
+                    AudioSharingUtils.postOnMainThread(
+                            mContext,
+                            () -> {
+                                mPreference.setSummary(item.getName());
+                                mPreference.setVisible(true);
+                            });
+                    return;
+                }
+            }
+        }
+        AudioSharingUtils.postOnMainThread(
+                mContext,
+                () -> {
+                    mPreference.setSummary("No active device in sharing");
+                    mPreference.setVisible(true);
+                });
+    }
+
+    @Override
+    public void onProfileConnectionStateChanged(
+            @NonNull CachedBluetoothDevice cachedDevice,
+            @ConnectionState int state,
+            int bluetoothProfile) {
+        if (state == BluetoothAdapter.STATE_DISCONNECTED
+                && bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+            // The fallback active device could be updated if the previous fallback device is
+            // disconnected.
+            updatePreference();
+        }
+    }
+
+    /**
+     * 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.buildOrderedConnectedLeadAudioSharingDeviceItem(
+                        mLocalBtManager, mGroupedConnectedDevices, /* filterByInSharing= */ true);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
new file mode 100644
index 0000000..f62183d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/StreamSettingsCategoryController.java
@@ -0,0 +1,98 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class StreamSettingsCategoryController extends BasePreferenceController
+        implements DefaultLifecycleObserver {
+    private static final String TAG = "StreamSettingsCategoryController";
+    private final BluetoothAdapter mBluetoothAdapter;
+    private final IntentFilter mIntentFilter;
+    private @Nullable Preference mPreference;
+    private BroadcastReceiver mReceiver =
+            new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    if (!BluetoothAdapter.ACTION_STATE_CHANGED.equals(intent.getAction())) return;
+                    int adapterState =
+                            intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothDevice.ERROR);
+                    mContext.getMainExecutor()
+                            .execute(
+                                    () -> {
+                                        if (mPreference == null) {
+                                            Log.w(
+                                                    TAG,
+                                                    "Skip BT state change due to mPreference "
+                                                            + "is null");
+                                        } else {
+                                            mPreference.setVisible(
+                                                    adapterState == BluetoothAdapter.STATE_ON);
+                                        }
+                                    });
+                }
+            };
+
+    public StreamSettingsCategoryController(Context context, String key) {
+        super(context, key);
+        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        mContext.registerReceiver(mReceiver, mIntentFilter, Context.RECEIVER_EXPORTED_UNAUDITED);
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        mContext.unregisterReceiver(mReceiver);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        if (mPreference != null) {
+            mPreference.setVisible(isBluetoothStateOn());
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AudioSharingUtils.isFeatureEnabled() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    private boolean isBluetoothStateOn() {
+        return mBluetoothAdapter != null && mBluetoothAdapter.isEnabled();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java
new file mode 100644
index 0000000..47597cf
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamButtonController.java
@@ -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.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.content.Context;
+import android.util.Log;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.widget.ActionButtonsPreference;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioStreamButtonController extends BasePreferenceController
+        implements DefaultLifecycleObserver {
+    private static final String TAG = "AudioStreamButtonController";
+    private static final String KEY = "audio_stream_button";
+    private final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+            new AudioStreamsBroadcastAssistantCallback() {
+                @Override
+                public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
+                    super.onSourceRemoved(sink, sourceId, reason);
+                    updateButton();
+                }
+
+                @Override
+                public void onSourceRemoveFailed(BluetoothDevice sink, int sourceId, int reason) {
+                    super.onSourceRemoveFailed(sink, sourceId, reason);
+                    updateButton();
+                }
+
+                @Override
+                public void onReceiveStateChanged(
+                        BluetoothDevice sink,
+                        int sourceId,
+                        BluetoothLeBroadcastReceiveState state) {
+                    super.onReceiveStateChanged(sink, sourceId, state);
+                    if (mAudioStreamsHelper.isConnected(state)) {
+                        updateButton();
+                    }
+                }
+
+                @Override
+                public void onSourceAddFailed(
+                        BluetoothDevice sink, BluetoothLeBroadcastMetadata source, int reason) {
+                    super.onSourceAddFailed(sink, source, reason);
+                    updateButton();
+                }
+
+                @Override
+                public void onSourceLost(int broadcastId) {
+                    super.onSourceLost(broadcastId);
+                    updateButton();
+                }
+            };
+
+    private final AudioStreamsRepository mAudioStreamsRepository =
+            AudioStreamsRepository.getInstance();
+    private final Executor mExecutor;
+    private final AudioStreamsHelper mAudioStreamsHelper;
+    private final @Nullable LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
+    private @Nullable ActionButtonsPreference mPreference;
+    private int mBroadcastId = -1;
+
+    public AudioStreamButtonController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mExecutor = Executors.newSingleThreadExecutor();
+        mAudioStreamsHelper = new AudioStreamsHelper(Utils.getLocalBtManager(context));
+        mLeBroadcastAssistant = mAudioStreamsHelper.getLeBroadcastAssistant();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "onStart(): LeBroadcastAssistant is null!");
+            return;
+        }
+        mLeBroadcastAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "onStop(): LeBroadcastAssistant is null!");
+            return;
+        }
+        mLeBroadcastAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+    }
+
+    @Override
+    public final void displayPreference(PreferenceScreen screen) {
+        mPreference = screen.findPreference(getPreferenceKey());
+        updateButton();
+        super.displayPreference(screen);
+    }
+
+    private void updateButton() {
+        if (mPreference != null) {
+            if (mAudioStreamsHelper.getAllConnectedSources().stream()
+                    .map(BluetoothLeBroadcastReceiveState::getBroadcastId)
+                    .anyMatch(connectedBroadcastId -> connectedBroadcastId == mBroadcastId)) {
+                ThreadUtils.postOnMainThread(
+                        () -> {
+                            if (mPreference != null) {
+                                mPreference.setButton1Enabled(true);
+                                mPreference
+                                        .setButton1Text(
+                                                R.string.bluetooth_device_context_disconnect)
+                                        .setButton1Icon(R.drawable.ic_settings_close)
+                                        .setButton1OnClickListener(
+                                                unused -> {
+                                                    if (mPreference != null) {
+                                                        mPreference.setButton1Enabled(false);
+                                                    }
+                                                    mAudioStreamsHelper.removeSource(mBroadcastId);
+                                                });
+                            }
+                        });
+            } else {
+                View.OnClickListener clickToRejoin =
+                        unused ->
+                                ThreadUtils.postOnBackgroundThread(
+                                        () -> {
+                                            var metadata =
+                                                    mAudioStreamsRepository.getSavedMetadata(
+                                                            mContext, mBroadcastId);
+                                            if (metadata != null) {
+                                                mAudioStreamsHelper.addSource(metadata);
+                                                ThreadUtils.postOnMainThread(
+                                                        () -> {
+                                                            if (mPreference != null) {
+                                                                mPreference.setButton1Enabled(
+                                                                        false);
+                                                            }
+                                                        });
+                                            }
+                                        });
+                ThreadUtils.postOnMainThread(
+                        () -> {
+                            if (mPreference != null) {
+                                mPreference.setButton1Enabled(true);
+                                mPreference
+                                        .setButton1Text(R.string.bluetooth_device_context_connect)
+                                        .setButton1Icon(R.drawable.ic_add_24dp)
+                                        .setButton1OnClickListener(clickToRejoin);
+                            }
+                        });
+            }
+        } else {
+            Log.w(TAG, "updateButton(): preference is null!");
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    /** Initialize with broadcast id */
+    void init(int broadcastId) {
+        mBroadcastId = broadcastId;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
new file mode 100644
index 0000000..131c8f6
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamConfirmDialog.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import android.app.Activity;
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeFragment;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+
+import com.google.common.base.Strings;
+
+public class AudioStreamConfirmDialog extends InstrumentedDialogFragment {
+    public static final String KEY_BROADCAST_METADATA = "key_broadcast_metadata";
+    private static final String TAG = "AudioStreamConfirmDialog";
+    private Activity mActivity;
+    private String mBroadcastMetadataStr;
+    private BluetoothLeBroadcastMetadata mBroadcastMetadata;
+    private boolean mIsRequestValid = false;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setShowsDialog(true);
+        mActivity = getActivity();
+        if (mActivity == null) {
+            Log.w(TAG, "onCreate() mActivity is null!");
+            return;
+        }
+        mBroadcastMetadataStr =
+                mActivity.getIntent().getStringExtra(QrCodeScanModeFragment.KEY_BROADCAST_METADATA);
+        if (Strings.isNullOrEmpty(mBroadcastMetadataStr)) {
+            Log.w(TAG, "onCreate() mBroadcastMetadataStr is null or empty!");
+            return;
+        }
+        mBroadcastMetadata =
+                BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(
+                        mBroadcastMetadataStr);
+        if (mBroadcastMetadata == null) {
+            Log.w(TAG, "onCreate() mBroadcastMetadata is null!");
+        } else {
+            // Warm up LE_AUDIO_BROADCAST_ASSISTANT service
+            Utils.getLocalBluetoothManager(mActivity);
+            mIsRequestValid = true;
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        return mIsRequestValid ? getConfirmDialog() : getErrorDialog();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        // TODO(chelseahao): update metrics id
+        return 0;
+    }
+
+    private Dialog getConfirmDialog() {
+        return new AudioStreamsDialogFragment.DialogBuilder(mActivity)
+                .setTitle("Listen to audio stream")
+                .setSubTitle1(mBroadcastMetadata.getBroadcastName())
+                .setSubTitle2(
+                        "The audio stream will play on the active LE audio device. Use this device"
+                                + " to control the volume.")
+                .setLeftButtonText("Cancel")
+                .setLeftButtonOnClickListener(
+                        unused -> {
+                            dismiss();
+                            mActivity.finish();
+                        })
+                .setRightButtonText("Listen")
+                .setRightButtonOnClickListener(
+                        unused -> {
+                            launchAudioStreamsActivity();
+                            dismiss();
+                            mActivity.finish();
+                        })
+                .build();
+    }
+
+    private Dialog getErrorDialog() {
+        return new AudioStreamsDialogFragment.DialogBuilder(mActivity)
+                .setTitle("Can't listen to audio stream")
+                .setSubTitle2("Can't play this audio stream. Learn more")
+                .setRightButtonText("Close")
+                .setRightButtonOnClickListener(
+                        unused -> {
+                            dismiss();
+                            mActivity.finish();
+                        })
+                .build();
+    }
+
+    private void launchAudioStreamsActivity() {
+        Bundle bundle = new Bundle();
+        bundle.putString(KEY_BROADCAST_METADATA, mBroadcastMetadataStr);
+
+        new SubSettingLauncher(mActivity)
+                .setTitleRes(R.string.bluetooth_find_broadcast_title)
+                .setDestination(AudioStreamsDashboardFragment.class.getName())
+                .setArguments(bundle)
+                .setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
+                .launch();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragment.java
new file mode 100644
index 0000000..e1dc228
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamDetailsFragment.java
@@ -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.connecteddevice.audiosharing.audiostreams;
+
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+
+public class AudioStreamDetailsFragment extends DashboardFragment {
+    static final String BROADCAST_NAME_ARG = "broadcast_name";
+    static final String BROADCAST_ID_ARG = "broadcast_id";
+    private static final String TAG = "AudioStreamDetailsFragment";
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        Bundle arguments = getArguments();
+        if (arguments != null) {
+            use(AudioStreamHeaderController.class)
+                    .init(
+                            this,
+                            arguments.getString(BROADCAST_NAME_ARG),
+                            arguments.getInt(BROADCAST_ID_ARG));
+            use(AudioStreamButtonController.class).init(arguments.getInt(BROADCAST_ID_ARG));
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        // TODO(chelseahao): update metrics id
+        return 0;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.audio_stream_details_fragment;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.java
new file mode 100644
index 0000000..3524543
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamHeaderController.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.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+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.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.widget.LayoutPreference;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+import javax.annotation.Nullable;
+
+public class AudioStreamHeaderController extends BasePreferenceController
+        implements DefaultLifecycleObserver {
+    private static final String TAG = "AudioStreamHeaderController";
+    private static final String KEY = "audio_stream_header";
+    private final Executor mExecutor;
+    private final AudioStreamsHelper mAudioStreamsHelper;
+    @Nullable private final LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
+    private final BluetoothLeBroadcastAssistant.Callback mBroadcastAssistantCallback =
+            new AudioStreamsBroadcastAssistantCallback() {
+                @Override
+                public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
+                    super.onSourceRemoved(sink, sourceId, reason);
+                    updateSummary();
+                }
+
+                @Override
+                public void onSourceLost(int broadcastId) {
+                    super.onSourceLost(broadcastId);
+                    updateSummary();
+                }
+
+                @Override
+                public void onReceiveStateChanged(
+                        BluetoothDevice sink,
+                        int sourceId,
+                        BluetoothLeBroadcastReceiveState state) {
+                    super.onReceiveStateChanged(sink, sourceId, state);
+                    if (mAudioStreamsHelper.isConnected(state)) {
+                        updateSummary();
+                    }
+                }
+            };
+
+    private @Nullable EntityHeaderController mHeaderController;
+    private @Nullable DashboardFragment mFragment;
+    private String mBroadcastName = "";
+    private int mBroadcastId = -1;
+
+    public AudioStreamHeaderController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mExecutor = Executors.newSingleThreadExecutor();
+        mAudioStreamsHelper = new AudioStreamsHelper(Utils.getLocalBtManager(context));
+        mLeBroadcastAssistant = mAudioStreamsHelper.getLeBroadcastAssistant();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "onStart(): LeBroadcastAssistant is null!");
+            return;
+        }
+        mLeBroadcastAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "onStop(): LeBroadcastAssistant is null!");
+            return;
+        }
+        mLeBroadcastAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+    }
+
+    @Override
+    public final void displayPreference(PreferenceScreen screen) {
+        LayoutPreference headerPreference = screen.findPreference(KEY);
+        if (headerPreference != null && mFragment != null) {
+            mHeaderController =
+                    EntityHeaderController.newInstance(
+                            mFragment.getActivity(),
+                            mFragment,
+                            headerPreference.findViewById(R.id.entity_header));
+            if (mBroadcastName != null) {
+                mHeaderController.setLabel(mBroadcastName);
+            }
+            mHeaderController.setIcon(
+                    screen.getContext().getDrawable(R.drawable.ic_bt_audio_sharing));
+            screen.addPreference(headerPreference);
+            updateSummary();
+        }
+        super.displayPreference(screen);
+    }
+
+    private void updateSummary() {
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            var latestSummary =
+                                    mAudioStreamsHelper.getAllConnectedSources().stream()
+                                                    .map(
+                                                            BluetoothLeBroadcastReceiveState
+                                                                    ::getBroadcastId)
+                                                    .anyMatch(
+                                                            connectedBroadcastId ->
+                                                                    connectedBroadcastId
+                                                                            == mBroadcastId)
+                                            ? "Listening now"
+                                            : "";
+                            ThreadUtils.postOnMainThread(
+                                    () -> {
+                                        if (mHeaderController != null) {
+                                            mHeaderController.setSummary(latestSummary);
+                                            mHeaderController.done(true);
+                                        }
+                                    });
+                        });
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    /** Initialize with {@link AudioStreamDetailsFragment} and broadcast name and id */
+    void init(
+            AudioStreamDetailsFragment audioStreamDetailsFragment,
+            String broadcastName,
+            int broadcastId) {
+        mFragment = audioStreamDetailsFragment;
+        mBroadcastName = broadcastName;
+        mBroadcastId = broadcastId;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
new file mode 100644
index 0000000..c2e1178
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamPreference.java
@@ -0,0 +1,195 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.BluetoothLeAudioContentMetadata;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.widget.TwoTargetPreference;
+
+import com.google.common.base.Strings;
+
+/**
+ * Custom preference class for managing audio stream preferences with an optional lock icon. Extends
+ * {@link TwoTargetPreference}.
+ */
+class AudioStreamPreference extends TwoTargetPreference {
+    private boolean mIsConnected = false;
+    private AudioStream mAudioStream;
+
+    /**
+     * Update preference UI based on connection status
+     *
+     * @param isConnected Is this stream connected
+     * @param summary Summary text
+     * @param onPreferenceClickListener Click listener for the preference
+     */
+    void setIsConnected(
+            boolean isConnected,
+            String summary,
+            @Nullable OnPreferenceClickListener onPreferenceClickListener) {
+        if (mIsConnected == isConnected
+                && getSummary() == summary
+                && getOnPreferenceClickListener() == onPreferenceClickListener) {
+            // Nothing to update.
+            return;
+        }
+        mIsConnected = isConnected;
+        setSummary(summary);
+        setOnPreferenceClickListener(onPreferenceClickListener);
+        notifyChanged();
+    }
+
+    AudioStreamPreference(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
+        setIcon(R.drawable.ic_bt_audio_sharing);
+    }
+
+    void setAudioStreamState(AudioStreamsProgressCategoryController.AudioStreamState state) {
+        mAudioStream.setState(state);
+    }
+
+    void setAudioStreamMetadata(BluetoothLeBroadcastMetadata metadata) {
+        mAudioStream.setMetadata(metadata);
+    }
+
+    int getAudioStreamBroadcastId() {
+        return mAudioStream.getBroadcastId();
+    }
+
+    int getAudioStreamRssi() {
+        return mAudioStream.getRssi();
+    }
+
+    @Nullable
+    BluetoothLeBroadcastMetadata getAudioStreamMetadata() {
+        return mAudioStream.getMetadata();
+    }
+
+    AudioStreamsProgressCategoryController.AudioStreamState getAudioStreamState() {
+        return mAudioStream.getState();
+    }
+
+    @Override
+    protected boolean shouldHideSecondTarget() {
+        return mIsConnected;
+    }
+
+    @Override
+    protected int getSecondTargetResId() {
+        return R.layout.preference_widget_lock;
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+        View divider =
+                holder.findViewById(
+                        com.android.settingslib.widget.preference.twotarget.R.id
+                                .two_target_divider);
+        if (divider != null) {
+            divider.setVisibility(View.GONE);
+        }
+    }
+
+    static AudioStreamPreference fromMetadata(
+            Context context, BluetoothLeBroadcastMetadata source) {
+        AudioStreamPreference preference = new AudioStreamPreference(context, /* attrs= */ null);
+        preference.setTitle(getBroadcastName(source));
+        preference.setAudioStream(new AudioStream(source));
+        return preference;
+    }
+
+    static AudioStreamPreference fromReceiveState(
+            Context context, BluetoothLeBroadcastReceiveState receiveState) {
+        AudioStreamPreference preference = new AudioStreamPreference(context, /* attrs= */ null);
+        preference.setTitle(getBroadcastName(receiveState));
+        preference.setAudioStream(new AudioStream(receiveState));
+        return preference;
+    }
+
+    private void setAudioStream(AudioStream audioStream) {
+        mAudioStream = audioStream;
+    }
+
+    private static String getBroadcastName(BluetoothLeBroadcastMetadata source) {
+        return source.getSubgroups().stream()
+                .map(s -> s.getContentMetadata().getProgramInfo())
+                .filter(i -> !Strings.isNullOrEmpty(i))
+                .findFirst()
+                .orElse("Broadcast Id: " + source.getBroadcastId());
+    }
+
+    private static String getBroadcastName(BluetoothLeBroadcastReceiveState state) {
+        return state.getSubgroupMetadata().stream()
+                .map(BluetoothLeAudioContentMetadata::getProgramInfo)
+                .filter(i -> !Strings.isNullOrEmpty(i))
+                .findFirst()
+                .orElse("Broadcast Id: " + state.getBroadcastId());
+    }
+
+    private static final class AudioStream {
+        private static final int UNAVAILABLE = -1;
+        @Nullable private BluetoothLeBroadcastMetadata mMetadata;
+        @Nullable private BluetoothLeBroadcastReceiveState mReceiveState;
+        private AudioStreamsProgressCategoryController.AudioStreamState mState =
+                AudioStreamsProgressCategoryController.AudioStreamState.UNKNOWN;
+
+        private AudioStream(BluetoothLeBroadcastMetadata metadata) {
+            mMetadata = metadata;
+        }
+
+        private AudioStream(BluetoothLeBroadcastReceiveState receiveState) {
+            mReceiveState = receiveState;
+        }
+
+        private int getBroadcastId() {
+            return mMetadata != null
+                    ? mMetadata.getBroadcastId()
+                    : mReceiveState != null ? mReceiveState.getBroadcastId() : UNAVAILABLE;
+        }
+
+        private int getRssi() {
+            return mMetadata != null ? mMetadata.getRssi() : Integer.MAX_VALUE;
+        }
+
+        private AudioStreamsProgressCategoryController.AudioStreamState getState() {
+            return mState;
+        }
+
+        @Nullable
+        private BluetoothLeBroadcastMetadata getMetadata() {
+            return mMetadata;
+        }
+
+        private void setState(AudioStreamsProgressCategoryController.AudioStreamState state) {
+            mState = state;
+        }
+
+        private void setMetadata(BluetoothLeBroadcastMetadata metadata) {
+            mMetadata = metadata;
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceController.java
new file mode 100644
index 0000000..d001409
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceController.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 androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class AudioStreamsActiveDeviceController extends BasePreferenceController
+        implements AudioStreamsActiveDeviceSummaryUpdater.OnSummaryChangeListener,
+                DefaultLifecycleObserver {
+
+    public static final String KEY = "audio_streams_active_device";
+    private final AudioStreamsActiveDeviceSummaryUpdater mSummaryHelper;
+    private Preference mPreference;
+
+    public AudioStreamsActiveDeviceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mSummaryHelper = new AudioStreamsActiveDeviceSummaryUpdater(mContext, this);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(KEY);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void onSummaryChanged(String summary) {
+        mPreference.setSummary(summary);
+    }
+
+    @Override
+    public void onResume(@NonNull LifecycleOwner owner) {
+        mSummaryHelper.register(true);
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        mSummaryHelper.register(false);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.java
new file mode 100644
index 0000000..b2e6fb2
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsActiveDeviceSummaryUpdater.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.audiostreams;
+
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+public class AudioStreamsActiveDeviceSummaryUpdater implements BluetoothCallback {
+    private static final String TAG = "AudioStreamsActiveDeviceSummaryUpdater";
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private final LocalBluetoothManager mBluetoothManager;
+    private String mSummary;
+    private OnSummaryChangeListener mListener;
+
+    public AudioStreamsActiveDeviceSummaryUpdater(
+            Context context, OnSummaryChangeListener listener) {
+        mBluetoothManager = Utils.getLocalBluetoothManager(context);
+        mListener = listener;
+    }
+
+    @Override
+    public void onActiveDeviceChanged(
+            @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
+        if (DEBUG) {
+            Log.d(
+                    TAG,
+                    "onActiveDeviceChanged() with activeDevice : "
+                            + (activeDevice == null ? "null" : activeDevice.getAddress())
+                            + " on profile : "
+                            + bluetoothProfile);
+        }
+        if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+            notifyChangeIfNeeded();
+        }
+    }
+
+    void register(boolean register) {
+        if (register) {
+            notifyChangeIfNeeded();
+            mBluetoothManager.getEventManager().registerCallback(this);
+        } else {
+            mBluetoothManager.getEventManager().unregisterCallback(this);
+        }
+    }
+
+    private void notifyChangeIfNeeded() {
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    String summary = getSummary();
+                    if (!TextUtils.equals(mSummary, summary)) {
+                        mSummary = summary;
+                        ThreadUtils.postOnMainThread(() -> mListener.onSummaryChanged(summary));
+                    }
+                });
+    }
+
+    private String getSummary() {
+        var activeSink = AudioSharingUtils.getActiveSinkOnAssistant(mBluetoothManager);
+        if (activeSink.isEmpty()) {
+            return "No active LE Audio device";
+        }
+        return activeSink.get().getName();
+    }
+
+    /** Interface definition for a callback to be invoked when the summary has been changed. */
+    interface OnSummaryChangeListener {
+        /**
+         * Called when summary has changed.
+         *
+         * @param summary The new summary.
+         */
+        void onSummaryChanged(String summary);
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java
new file mode 100644
index 0000000..9fb5b21
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsBroadcastAssistantCallback.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.util.Log;
+
+import com.android.settingslib.bluetooth.BluetoothUtils;
+
+public class AudioStreamsBroadcastAssistantCallback
+        implements BluetoothLeBroadcastAssistant.Callback {
+
+    private static final String TAG = "AudioStreamsBroadcastAssistantCallback";
+    private static final boolean DEBUG = BluetoothUtils.D;
+
+    @Override
+    public void onReceiveStateChanged(
+            BluetoothDevice sink, int sourceId, BluetoothLeBroadcastReceiveState state) {
+        if (DEBUG) {
+            Log.d(
+                    TAG,
+                    "onReceiveStateChanged() sink : "
+                            + sink.getAddress()
+                            + " sourceId: "
+                            + sourceId
+                            + " state: "
+                            + state);
+        }
+    }
+
+    @Override
+    public void onSearchStartFailed(int reason) {
+        Log.w(TAG, "onSearchStartFailed() reason : " + reason);
+    }
+
+    @Override
+    public void onSearchStarted(int reason) {
+        if (DEBUG) {
+            Log.d(TAG, "onSearchStarted() reason : " + reason);
+        }
+    }
+
+    @Override
+    public void onSearchStopFailed(int reason) {
+        Log.w(TAG, "onSearchStopFailed() reason : " + reason);
+    }
+
+    @Override
+    public void onSearchStopped(int reason) {
+        if (DEBUG) {
+            Log.d(TAG, "onSearchStopped() reason : " + reason);
+        }
+    }
+
+    @Override
+    public void onSourceAddFailed(
+            BluetoothDevice sink, BluetoothLeBroadcastMetadata source, int reason) {
+        if (DEBUG) {
+            Log.d(
+                    TAG,
+                    "onSourceAddFailed() sink : "
+                            + sink.getAddress()
+                            + " source: "
+                            + source
+                            + " reason: "
+                            + reason);
+        }
+    }
+
+    @Override
+    public void onSourceAdded(BluetoothDevice sink, int sourceId, int reason) {
+        if (DEBUG) {
+            Log.d(
+                    TAG,
+                    "onSourceAdded() sink : "
+                            + sink.getAddress()
+                            + " sourceId: "
+                            + sourceId
+                            + " reason: "
+                            + reason);
+        }
+    }
+
+    @Override
+    public void onSourceFound(BluetoothLeBroadcastMetadata source) {
+        if (DEBUG) {
+            Log.d(TAG, "onSourceFound() broadcastId : " + source.getBroadcastId());
+        }
+    }
+
+    @Override
+    public void onSourceLost(int broadcastId) {
+        if (DEBUG) {
+            Log.d(TAG, "onSourceLost() broadcastId : " + broadcastId);
+        }
+    }
+
+    @Override
+    public void onSourceModified(BluetoothDevice sink, int sourceId, int reason) {}
+
+    @Override
+    public void onSourceModifyFailed(BluetoothDevice sink, int sourceId, int reason) {}
+
+    @Override
+    public void onSourceRemoveFailed(BluetoothDevice sink, int sourceId, int reason) {
+        Log.w(TAG, "onSourceRemoveFailed() sourceId : " + sourceId + " reason : " + reason);
+    }
+
+    @Override
+    public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
+        if (DEBUG) {
+            Log.d(TAG, "onSourceRemoved() sourceId : " + sourceId + " reason : " + reason);
+        }
+    }
+}
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..56d0fa7
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsCategoryController.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.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingBasePreferenceController;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+public class AudioStreamsCategoryController extends AudioSharingBasePreferenceController {
+    private static final String TAG = "AudioStreamsCategoryController";
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private final LocalBluetoothManager mLocalBtManager;
+    private final Executor mExecutor;
+    private final BluetoothCallback mBluetoothCallback =
+            new BluetoothCallback() {
+                @Override
+                public void onActiveDeviceChanged(
+                        @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
+                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+                        updateVisibility();
+                    }
+                }
+            };
+
+    public AudioStreamsCategoryController(Context context, String key) {
+        super(context, key);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        mExecutor = Executors.newSingleThreadExecutor();
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        super.onStart(owner);
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().registerCallback(mBluetoothCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        super.onStop(owner);
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().unregisterCallback(mBluetoothCallback);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.enableLeAudioQrCodePrivateBroadcastSharing()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void updateVisibility() {
+        if (mPreference == null) return;
+        mExecutor.execute(
+                () -> {
+                    boolean hasActiveLe =
+                            AudioSharingUtils.getActiveSinkOnAssistant(mLocalBtManager).isPresent();
+                    boolean isBroadcasting = isBroadcasting();
+                    boolean isBluetoothOn = isBluetoothStateOn();
+                    if (DEBUG) {
+                        Log.d(
+                                TAG,
+                                "updateVisibility() isBroadcasting : "
+                                        + isBroadcasting
+                                        + " hasActiveLe : "
+                                        + hasActiveLe
+                                        + " is BT on : "
+                                        + isBluetoothOn);
+                    }
+                    ThreadUtils.postOnMainThread(
+                            () ->
+                                    mPreference.setVisible(
+                                            isBluetoothOn && hasActiveLe && !isBroadcasting));
+                });
+    }
+}
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..bddbb61
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDashboardFragment.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.audiostreams;
+
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController.REQUEST_SCAN_BT_BROADCAST_QR_CODE;
+
+import android.app.Activity;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeFragment;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+
+import com.google.common.base.Strings;
+
+public class AudioStreamsDashboardFragment extends DashboardFragment {
+    private static final String TAG = "AudioStreamsDashboardFrag";
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private AudioStreamsProgressCategoryController mAudioStreamsProgressCategoryController;
+
+    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);
+        use(AudioStreamsScanQrCodeController.class).setFragment(this);
+        mAudioStreamsProgressCategoryController = use(AudioStreamsProgressCategoryController.class);
+        mAudioStreamsProgressCategoryController.setFragment(this);
+
+        if (getArguments() != null) {
+            String broadcastMetadataStr =
+                    getArguments().getString(AudioStreamConfirmDialog.KEY_BROADCAST_METADATA);
+            if (!Strings.isNullOrEmpty(broadcastMetadataStr)) {
+                BluetoothLeBroadcastMetadata broadcastMetadata =
+                        BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(
+                                broadcastMetadataStr);
+                if (broadcastMetadata == null) {
+                    Log.w(TAG, "onAttach() broadcastMetadata is null!");
+                } else {
+                    mAudioStreamsProgressCategoryController.setSourceFromQrCode(broadcastMetadata);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (DEBUG) {
+            Log.d(
+                    TAG,
+                    "onActivityResult() requestCode : "
+                            + requestCode
+                            + " resultCode : "
+                            + resultCode);
+        }
+        if (requestCode == REQUEST_SCAN_BT_BROADCAST_QR_CODE) {
+            if (resultCode == Activity.RESULT_OK) {
+                String broadcastMetadata =
+                        data.getStringExtra(QrCodeScanModeFragment.KEY_BROADCAST_METADATA);
+                BluetoothLeBroadcastMetadata source =
+                        BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(
+                                broadcastMetadata);
+                if (source == null) {
+                    Log.w(TAG, "onActivityResult() source is null!");
+                    return;
+                }
+                if (DEBUG) {
+                    Log.d(TAG, "onActivityResult() broadcastId : " + source.getBroadcastId());
+                }
+                if (mAudioStreamsProgressCategoryController == null) {
+                    Log.w(
+                            TAG,
+                            "onActivityResult() AudioStreamsProgressCategoryController is null!");
+                    return;
+                }
+                mAudioStreamsProgressCategoryController.setSourceFromQrCode(source);
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragment.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragment.java
new file mode 100644
index 0000000..c7d7f16
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsDialogFragment.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+import com.google.common.base.Strings;
+
+import java.util.function.Consumer;
+
+public class AudioStreamsDialogFragment extends InstrumentedDialogFragment {
+    private static final String TAG = "AudioStreamsDialogFragment";
+    private final DialogBuilder mDialogBuilder;
+
+    AudioStreamsDialogFragment(DialogBuilder dialogBuilder) {
+        mDialogBuilder = dialogBuilder;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        // TODO(chelseahao): update metrics id
+        return 0;
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        return mDialogBuilder.build();
+    }
+
+    static void show(Fragment host, DialogBuilder dialogBuilder) {
+        FragmentManager manager = host.getChildFragmentManager();
+        (new AudioStreamsDialogFragment(dialogBuilder)).show(manager, TAG);
+    }
+
+    static class DialogBuilder {
+        private final Context mContext;
+        private final AlertDialog.Builder mBuilder;
+        private String mTitle;
+        private String mSubTitle1;
+        private String mSubTitle2;
+        private String mLeftButtonText;
+        private String mRightButtonText;
+        private Consumer<AlertDialog> mLeftButtonOnClickListener;
+        private Consumer<AlertDialog> mRightButtonOnClickListener;
+
+        DialogBuilder(Context context) {
+            mContext = context;
+            mBuilder = new AlertDialog.Builder(context);
+        }
+
+        DialogBuilder setTitle(String title) {
+            mTitle = title;
+            return this;
+        }
+
+        DialogBuilder setSubTitle1(String subTitle1) {
+            mSubTitle1 = subTitle1;
+            return this;
+        }
+
+        DialogBuilder setSubTitle2(String subTitle2) {
+            mSubTitle2 = subTitle2;
+            return this;
+        }
+
+        DialogBuilder setLeftButtonText(String text) {
+            mLeftButtonText = text;
+            return this;
+        }
+
+        DialogBuilder setLeftButtonOnClickListener(Consumer<AlertDialog> listener) {
+            mLeftButtonOnClickListener = listener;
+            return this;
+        }
+
+        DialogBuilder setRightButtonText(String text) {
+            mRightButtonText = text;
+            return this;
+        }
+
+        DialogBuilder setRightButtonOnClickListener(Consumer<AlertDialog> listener) {
+            mRightButtonOnClickListener = listener;
+            return this;
+        }
+
+        AlertDialog build() {
+            View rootView =
+                    LayoutInflater.from(mContext)
+                            .inflate(R.xml.bluetooth_audio_streams_dialog, /* parent= */ null);
+
+            AlertDialog dialog = mBuilder.setView(rootView).setCancelable(false).create();
+            dialog.setCanceledOnTouchOutside(false);
+
+            TextView title = rootView.requireViewById(R.id.dialog_title);
+            title.setText(mTitle);
+
+            if (!Strings.isNullOrEmpty(mSubTitle1)) {
+                TextView subTitle1 = rootView.requireViewById(R.id.dialog_subtitle);
+                subTitle1.setText(mSubTitle1);
+                subTitle1.setVisibility(View.VISIBLE);
+            }
+            if (!Strings.isNullOrEmpty(mSubTitle2)) {
+                TextView subTitle2 = rootView.requireViewById(R.id.dialog_subtitle_2);
+                subTitle2.setText(mSubTitle2);
+                subTitle2.setVisibility(View.VISIBLE);
+            }
+            if (!Strings.isNullOrEmpty(mLeftButtonText)) {
+                Button leftButton = rootView.requireViewById(R.id.left_button);
+                leftButton.setText(mLeftButtonText);
+                leftButton.setVisibility(View.VISIBLE);
+                leftButton.setOnClickListener(unused -> mLeftButtonOnClickListener.accept(dialog));
+            }
+            if (!Strings.isNullOrEmpty(mRightButtonText)) {
+                Button rightButton = rootView.requireViewById(R.id.right_button);
+                rightButton.setText(mRightButtonText);
+                rightButton.setVisibility(View.VISIBLE);
+                rightButton.setOnClickListener(
+                        unused -> mRightButtonOnClickListener.accept(dialog));
+            }
+
+            return dialog;
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
new file mode 100644
index 0000000..2c6eedb
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsHelper.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import static java.util.Collections.emptyList;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.util.Log;
+
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.List;
+import java.util.stream.Stream;
+
+import javax.annotation.Nullable;
+
+/**
+ * A helper class that adds, removes and retrieves LE broadcast sources for all active sink devices.
+ */
+class AudioStreamsHelper {
+
+    private static final String TAG = "AudioStreamsHelper";
+    private static final boolean DEBUG = BluetoothUtils.D;
+
+    private final @Nullable LocalBluetoothManager mBluetoothManager;
+    private final @Nullable LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
+
+    AudioStreamsHelper(@Nullable LocalBluetoothManager bluetoothManager) {
+        mBluetoothManager = bluetoothManager;
+        mLeBroadcastAssistant = getLeBroadcastAssistant(mBluetoothManager);
+    }
+
+    /**
+     * Adds the specified LE broadcast source to all active sinks.
+     *
+     * @param source The LE broadcast metadata representing the audio source.
+     */
+    void addSource(BluetoothLeBroadcastMetadata source) {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "addSource(): LeBroadcastAssistant is null!");
+            return;
+        }
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            for (var sink : getActiveSinksOnAssistant(mBluetoothManager)) {
+                                if (DEBUG) {
+                                    Log.d(
+                                            TAG,
+                                            "addSource(): join broadcast broadcastId"
+                                                    + " : "
+                                                    + source.getBroadcastId()
+                                                    + " sink : "
+                                                    + sink.getAddress());
+                                }
+                                mLeBroadcastAssistant.addSource(sink, source, false);
+                            }
+                        });
+    }
+
+    /** Removes sources from LE broadcasts associated for all active sinks based on broadcast Id. */
+    void removeSource(int broadcastId) {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "removeSource(): LeBroadcastAssistant is null!");
+            return;
+        }
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            for (var sink : getActiveSinksOnAssistant(mBluetoothManager)) {
+                                if (DEBUG) {
+                                    Log.d(
+                                            TAG,
+                                            "removeSource(): remove all sources with broadcast id :"
+                                                    + broadcastId
+                                                    + " from sink : "
+                                                    + sink.getAddress());
+                                }
+                                mLeBroadcastAssistant.getAllSources(sink).stream()
+                                        .filter(state -> state.getBroadcastId() == broadcastId)
+                                        .forEach(
+                                                state ->
+                                                        mLeBroadcastAssistant.removeSource(
+                                                                sink, state.getSourceId()));
+                            }
+                        });
+    }
+
+    /** Retrieves a list of all LE broadcast receive states from active sinks. */
+    List<BluetoothLeBroadcastReceiveState> getAllConnectedSources() {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "getAllSources(): LeBroadcastAssistant is null!");
+            return emptyList();
+        }
+        return getActiveSinksOnAssistant(mBluetoothManager).stream()
+                .flatMap(sink -> mLeBroadcastAssistant.getAllSources(sink).stream())
+                .filter(this::isConnected)
+                .toList();
+    }
+
+    @Nullable
+    LocalBluetoothLeBroadcastAssistant getLeBroadcastAssistant() {
+        return mLeBroadcastAssistant;
+    }
+
+    boolean isConnected(BluetoothLeBroadcastReceiveState state) {
+        return state.getPaSyncState() == BluetoothLeBroadcastReceiveState.PA_SYNC_STATE_SYNCHRONIZED
+                && state.getBigEncryptionState()
+                        == BluetoothLeBroadcastReceiveState.BIG_ENCRYPTION_STATE_DECRYPTING;
+    }
+
+    private static List<BluetoothDevice> getActiveSinksOnAssistant(
+            @Nullable LocalBluetoothManager manager) {
+        if (manager == null) {
+            Log.w(TAG, "getActiveSinksOnAssistant(): LocalBluetoothManager is null!");
+            return emptyList();
+        }
+        return AudioSharingUtils.getActiveSinkOnAssistant(manager)
+                .map(
+                        cachedBluetoothDevice ->
+                                Stream.concat(
+                                                Stream.of(cachedBluetoothDevice.getDevice()),
+                                                cachedBluetoothDevice.getMemberDevice().stream()
+                                                        .map(CachedBluetoothDevice::getDevice))
+                                        .toList())
+                .orElse(emptyList());
+    }
+
+    private static @Nullable LocalBluetoothLeBroadcastAssistant getLeBroadcastAssistant(
+            @Nullable LocalBluetoothManager manager) {
+        if (manager == null) {
+            Log.w(TAG, "getLeBroadcastAssistant(): LocalBluetoothManager is null!");
+            return null;
+        }
+
+        LocalBluetoothProfileManager profileManager = manager.getProfileManager();
+        if (profileManager == null) {
+            Log.w(TAG, "getLeBroadcastAssistant(): LocalBluetoothProfileManager is null!");
+            return null;
+        }
+
+        return profileManager.getLeAudioBroadcastAssistantProfile();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
new file mode 100644
index 0000000..34ffc91
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryCallback.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.util.Log;
+
+import java.util.Locale;
+
+public class AudioStreamsProgressCategoryCallback extends AudioStreamsBroadcastAssistantCallback {
+    private static final String TAG = "AudioStreamsProgressCategoryCallback";
+
+    private final AudioStreamsProgressCategoryController mCategoryController;
+
+    public AudioStreamsProgressCategoryCallback(
+            AudioStreamsProgressCategoryController audioStreamsProgressCategoryController) {
+        mCategoryController = audioStreamsProgressCategoryController;
+    }
+
+    @Override
+    public void onReceiveStateChanged(
+            BluetoothDevice sink, int sourceId, BluetoothLeBroadcastReceiveState state) {
+        super.onReceiveStateChanged(sink, sourceId, state);
+        mCategoryController.handleSourceConnected(state);
+    }
+
+    @Override
+    public void onSearchStartFailed(int reason) {
+        super.onSearchStartFailed(reason);
+        mCategoryController.showToast(
+                String.format(Locale.US, "Failed to start scanning, reason %d", reason));
+    }
+
+    @Override
+    public void onSearchStarted(int reason) {
+        super.onSearchStarted(reason);
+        if (mCategoryController == null) {
+            Log.w(TAG, "onSearchStarted() : mCategoryController is null!");
+            return;
+        }
+        mCategoryController.setScanning(true);
+    }
+
+    @Override
+    public void onSearchStopFailed(int reason) {
+        super.onSearchStopFailed(reason);
+        mCategoryController.showToast(
+                String.format(Locale.US, "Failed to stop scanning, reason %d", reason));
+    }
+
+    @Override
+    public void onSearchStopped(int reason) {
+        super.onSearchStopped(reason);
+        if (mCategoryController == null) {
+            Log.w(TAG, "onSearchStopped() : mCategoryController is null!");
+            return;
+        }
+        mCategoryController.setScanning(false);
+    }
+
+    @Override
+    public void onSourceAddFailed(
+            BluetoothDevice sink, BluetoothLeBroadcastMetadata source, int reason) {
+        super.onSourceAddFailed(sink, source, reason);
+        mCategoryController.showToast(
+                String.format(Locale.US, "Failed to join broadcast, reason %d", reason));
+    }
+
+    @Override
+    public void onSourceFound(BluetoothLeBroadcastMetadata source) {
+        super.onSourceFound(source);
+        if (mCategoryController == null) {
+            Log.w(TAG, "onSourceFound() : mCategoryController is null!");
+            return;
+        }
+        mCategoryController.handleSourceFound(source);
+    }
+
+    @Override
+    public void onSourceLost(int broadcastId) {
+        super.onSourceLost(broadcastId);
+        mCategoryController.handleSourceLost(broadcastId);
+    }
+
+    @Override
+    public void onSourceRemoveFailed(BluetoothDevice sink, int sourceId, int reason) {
+        super.onSourceRemoveFailed(sink, sourceId, reason);
+        mCategoryController.showToast(
+                String.format(
+                        Locale.US,
+                        "Failed to remove source %d for sink %s",
+                        sourceId,
+                        sink.getAddress()));
+    }
+
+    @Override
+    public void onSourceRemoved(BluetoothDevice sink, int sourceId, int reason) {
+        super.onSourceRemoved(sink, sourceId, reason);
+        mCategoryController.handleSourceRemoved();
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
new file mode 100644
index 0000000..c6f342a
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryController.java
@@ -0,0 +1,641 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import static com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamsScanQrCodeController.REQUEST_SCAN_BT_BROADCAST_QR_CODE;
+
+import static java.util.Collections.emptyList;
+
+import android.app.AlertDialog;
+import android.app.settings.SettingsEnums;
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothProfile;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.CountDownTimer;
+import android.provider.Settings;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeActivity;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.SubSettingLauncher;
+import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.nio.charset.StandardCharsets;
+import java.util.Comparator;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
+import javax.annotation.Nullable;
+
+public class AudioStreamsProgressCategoryController extends BasePreferenceController
+        implements DefaultLifecycleObserver {
+    private static final String TAG = "AudioStreamsProgressCategoryController";
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private final BluetoothCallback mBluetoothCallback =
+            new BluetoothCallback() {
+                @Override
+                public void onActiveDeviceChanged(
+                        @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
+                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+                        mExecutor.execute(() -> init(activeDevice != null));
+                    }
+                }
+            };
+
+    private final Preference.OnPreferenceClickListener mAddSourceOrShowDialog =
+            preference -> {
+                var p = (AudioStreamPreference) preference;
+                if (DEBUG) {
+                    Log.d(
+                            TAG,
+                            "preferenceClicked(): attempt to join broadcast id : "
+                                    + p.getAudioStreamBroadcastId());
+                }
+                var source = p.getAudioStreamMetadata();
+                if (source != null) {
+                    if (source.isEncrypted()) {
+                        ThreadUtils.postOnMainThread(() -> launchPasswordDialog(source, p));
+                    } else {
+                        moveToState(p, AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE);
+                    }
+                }
+                return true;
+            };
+
+    private final Preference.OnPreferenceClickListener mLaunchDetailFragment =
+            preference -> {
+                var p = (AudioStreamPreference) preference;
+                Bundle broadcast = new Bundle();
+                broadcast.putString(
+                        AudioStreamDetailsFragment.BROADCAST_NAME_ARG, (String) p.getTitle());
+                broadcast.putInt(
+                        AudioStreamDetailsFragment.BROADCAST_ID_ARG, p.getAudioStreamBroadcastId());
+
+                new SubSettingLauncher(mContext)
+                        .setTitleText("Audio stream details")
+                        .setDestination(AudioStreamDetailsFragment.class.getName())
+                        // TODO(chelseahao): Add logging enum
+                        .setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
+                        .setArguments(broadcast)
+                        .launch();
+                return true;
+            };
+
+    private final AudioStreamsRepository mAudioStreamsRepository =
+            AudioStreamsRepository.getInstance();
+
+    enum AudioStreamState {
+        UNKNOWN,
+        // When mTimedSourceFromQrCode is present and this source has not been synced.
+        WAIT_FOR_SYNC,
+        // When source has been synced but not added to any sink.
+        SYNCED,
+        // When addSource is called for this source and waiting for response.
+        ADD_SOURCE_WAIT_FOR_RESPONSE,
+        // Source is added to active sink.
+        SOURCE_ADDED,
+    }
+
+    private final Comparator<AudioStreamPreference> mComparator =
+            Comparator.<AudioStreamPreference, Boolean>comparing(
+                            p ->
+                                    p.getAudioStreamState()
+                                            == AudioStreamsProgressCategoryController
+                                                    .AudioStreamState.SOURCE_ADDED)
+                    .thenComparingInt(AudioStreamPreference::getAudioStreamRssi)
+                    .reversed();
+
+    private final Executor mExecutor;
+    private final AudioStreamsProgressCategoryCallback mBroadcastAssistantCallback;
+    private final AudioStreamsHelper mAudioStreamsHelper;
+    private final @Nullable LocalBluetoothLeBroadcastAssistant mLeBroadcastAssistant;
+    private final @Nullable LocalBluetoothManager mBluetoothManager;
+    private final ConcurrentHashMap<Integer, AudioStreamPreference> mBroadcastIdToPreferenceMap =
+            new ConcurrentHashMap<>();
+    private @Nullable TimedSourceFromQrCode mTimedSourceFromQrCode;
+    private AudioStreamsProgressCategoryPreference mCategoryPreference;
+    private AudioStreamsDashboardFragment mFragment;
+
+    public AudioStreamsProgressCategoryController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mExecutor = Executors.newSingleThreadExecutor();
+        mBluetoothManager = Utils.getLocalBtManager(mContext);
+        mAudioStreamsHelper = new AudioStreamsHelper(mBluetoothManager);
+        mLeBroadcastAssistant = mAudioStreamsHelper.getLeBroadcastAssistant();
+        mBroadcastAssistantCallback = new AudioStreamsProgressCategoryCallback(this);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mCategoryPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mBluetoothManager != null) {
+            mBluetoothManager.getEventManager().registerCallback(mBluetoothCallback);
+        }
+        mExecutor.execute(
+                () -> {
+                    boolean hasActive =
+                            AudioSharingUtils.getActiveSinkOnAssistant(mBluetoothManager)
+                                    .isPresent();
+                    init(hasActive);
+                });
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mBluetoothManager != null) {
+            mBluetoothManager.getEventManager().unregisterCallback(mBluetoothCallback);
+        }
+        mExecutor.execute(this::stopScanning);
+    }
+
+    void setFragment(AudioStreamsDashboardFragment fragment) {
+        mFragment = fragment;
+    }
+
+    void setSourceFromQrCode(BluetoothLeBroadcastMetadata source) {
+        mTimedSourceFromQrCode =
+                new TimedSourceFromQrCode(source, () -> handleSourceLost(source.getBroadcastId()));
+    }
+
+    void setScanning(boolean isScanning) {
+        ThreadUtils.postOnMainThread(
+                () -> {
+                    if (mCategoryPreference != null) mCategoryPreference.setProgress(isScanning);
+                });
+    }
+
+    void handleSourceFound(BluetoothLeBroadcastMetadata source) {
+        var broadcastIdFound = source.getBroadcastId();
+        mBroadcastIdToPreferenceMap.compute(
+                broadcastIdFound,
+                (k, v) -> {
+                    if (v == null) {
+                        // No existing preference for this source founded, add one and set initial
+                        // state to SYNCED.
+                        return addNewPreference(source, AudioStreamState.SYNCED);
+                    }
+                    var fromState = v.getAudioStreamState();
+                    if (fromState == AudioStreamState.WAIT_FOR_SYNC
+                            && mTimedSourceFromQrCode != null) {
+                        var pendingSource = mTimedSourceFromQrCode.get();
+                        if (pendingSource == null) {
+                            Log.w(
+                                    TAG,
+                                    "handleSourceFound(): unexpected state with null pendingSource:"
+                                            + fromState
+                                            + " for broadcastId : "
+                                            + broadcastIdFound);
+                            v.setAudioStreamMetadata(source);
+                            moveToState(v, AudioStreamState.SYNCED);
+                            return v;
+                        }
+                        // A preference with source founded is existed from a QR code scan. As the
+                        // source is now synced, we update the preference with pendingSource from QR
+                        // code scan and add source with it (since it has the password).
+                        v.setAudioStreamMetadata(pendingSource);
+                        moveToState(v, AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE);
+                    } else {
+                        // A preference with source founded existed either because it's already
+                        // connected (SOURCE_ADDED), or other unexpected reason. We update the
+                        // preference with this source and won't change it's state.
+                        v.setAudioStreamMetadata(source);
+                        if (fromState != AudioStreamState.SOURCE_ADDED) {
+                            Log.w(
+                                    TAG,
+                                    "handleSourceFound(): unexpected state : "
+                                            + fromState
+                                            + " for broadcastId : "
+                                            + broadcastIdFound);
+                        }
+                    }
+                    return v;
+                });
+    }
+
+    private void handleSourceFromQrCodeIfExists() {
+        if (mTimedSourceFromQrCode == null || mTimedSourceFromQrCode.get() == null) {
+            return;
+        }
+        var metadataFromQrCode = mTimedSourceFromQrCode.get();
+        mBroadcastIdToPreferenceMap.compute(
+                metadataFromQrCode.getBroadcastId(),
+                (k, v) -> {
+                    if (v == null) {
+                        // No existing preference for this source from the QR code scan, add one and
+                        // set initial state to WAIT_FOR_SYNC.
+                        return addNewPreference(metadataFromQrCode, AudioStreamState.WAIT_FOR_SYNC);
+                    }
+                    var fromState = v.getAudioStreamState();
+                    if (fromState == AudioStreamState.SYNCED) {
+                        // A preference with source from the QR code is existed because it has been
+                        // founded during scanning, now we have the password, we can add source.
+                        v.setAudioStreamMetadata(metadataFromQrCode);
+                        moveToState(v, AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE);
+                    } else {
+                        v.setAudioStreamMetadata(metadataFromQrCode);
+                        Log.w(
+                                TAG,
+                                "handleSourceFromQrCode(): unexpected state : "
+                                        + fromState
+                                        + " for broadcastId : "
+                                        + metadataFromQrCode.getBroadcastId());
+                    }
+                    return v;
+                });
+    }
+
+    void handleSourceLost(int broadcastId) {
+        var toRemove = mBroadcastIdToPreferenceMap.remove(broadcastId);
+        if (toRemove != null) {
+            ThreadUtils.postOnMainThread(
+                    () -> {
+                        if (mCategoryPreference != null) {
+                            mCategoryPreference.removePreference(toRemove);
+                        }
+                    });
+        }
+        mAudioStreamsHelper.removeSource(broadcastId);
+    }
+
+    void handleSourceRemoved() {
+        for (var entry : mBroadcastIdToPreferenceMap.entrySet()) {
+            var preference = entry.getValue();
+
+            // Look for preference has SOURCE_ADDED state, re-check if they are still connected. If
+            // not, means the source is removed from the sink, we move back the preference to SYNCED
+            // state.
+            if (preference.getAudioStreamState() == AudioStreamState.SOURCE_ADDED
+                    && mAudioStreamsHelper.getAllConnectedSources().stream()
+                            .noneMatch(
+                                    connected ->
+                                            connected.getBroadcastId()
+                                                    == preference.getAudioStreamBroadcastId())) {
+
+                ThreadUtils.postOnMainThread(
+                        () -> {
+                            var metadata = preference.getAudioStreamMetadata();
+
+                            if (metadata != null) {
+                                moveToState(preference, AudioStreamState.SYNCED);
+                            } else {
+                                handleSourceLost(preference.getAudioStreamBroadcastId());
+                            }
+                        });
+
+                return;
+            }
+        }
+    }
+
+    void handleSourceConnected(BluetoothLeBroadcastReceiveState receiveState) {
+        if (!mAudioStreamsHelper.isConnected(receiveState)) {
+            return;
+        }
+        var broadcastIdConnected = receiveState.getBroadcastId();
+        mBroadcastIdToPreferenceMap.compute(
+                broadcastIdConnected,
+                (k, v) -> {
+                    if (v == null) {
+                        // No existing preference for this source even if it's already connected,
+                        // add one and set initial state to SOURCE_ADDED. This could happen because
+                        // we retrieves the connected source during onStart() from
+                        // AudioStreamsHelper#getAllConnectedSources() even before the source is
+                        // founded by scanning.
+                        return addNewPreference(receiveState, AudioStreamState.SOURCE_ADDED);
+                    }
+                    var fromState = v.getAudioStreamState();
+                    if (fromState == AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE
+                            || fromState == AudioStreamState.SYNCED
+                            || fromState == AudioStreamState.WAIT_FOR_SYNC
+                            || fromState == AudioStreamState.SOURCE_ADDED) {
+                        // Expected state, do nothing
+                    } else {
+                        Log.w(
+                                TAG,
+                                "handleSourceConnected(): unexpected state : "
+                                        + fromState
+                                        + " for broadcastId : "
+                                        + broadcastIdConnected);
+                    }
+                    moveToState(v, AudioStreamState.SOURCE_ADDED);
+                    return v;
+                });
+    }
+
+    void showToast(String msg) {
+        AudioSharingUtils.toastMessage(mContext, msg);
+    }
+
+    private void init(boolean hasActive) {
+        mBroadcastIdToPreferenceMap.clear();
+        ThreadUtils.postOnMainThread(
+                () -> {
+                    if (mCategoryPreference != null) {
+                        mCategoryPreference.removeAudioStreamPreferences();
+                        mCategoryPreference.setVisible(hasActive);
+                    }
+                });
+        if (hasActive) {
+            startScanning();
+        } else {
+            stopScanning();
+            ThreadUtils.postOnMainThread(
+                    () -> AudioStreamsDialogFragment.show(mFragment, getNoLeDeviceDialog()));
+        }
+    }
+
+    private void startScanning() {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "startScanning(): LeBroadcastAssistant is null!");
+            return;
+        }
+        if (mLeBroadcastAssistant.isSearchInProgress()) {
+            showToast("Failed to start scanning, please try again.");
+            return;
+        }
+        if (DEBUG) {
+            Log.d(TAG, "startScanning()");
+        }
+        mLeBroadcastAssistant.registerServiceCallBack(mExecutor, mBroadcastAssistantCallback);
+
+        // Handle QR code scan and display currently connected streams
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            handleSourceFromQrCodeIfExists();
+                            mAudioStreamsHelper
+                                    .getAllConnectedSources()
+                                    .forEach(this::handleSourceConnected);
+                            mLeBroadcastAssistant.startSearchingForSources(emptyList());
+                        });
+    }
+
+    private void stopScanning() {
+        if (mLeBroadcastAssistant == null) {
+            Log.w(TAG, "stopScanning(): LeBroadcastAssistant is null!");
+            return;
+        }
+        if (mLeBroadcastAssistant.isSearchInProgress()) {
+            if (DEBUG) {
+                Log.d(TAG, "stopScanning()");
+            }
+            mLeBroadcastAssistant.stopSearchingForSources();
+        }
+        mLeBroadcastAssistant.unregisterServiceCallBack(mBroadcastAssistantCallback);
+        if (mTimedSourceFromQrCode != null) {
+            mTimedSourceFromQrCode.cleanup();
+            mTimedSourceFromQrCode = null;
+        }
+    }
+
+    private AudioStreamPreference addNewPreference(
+            BluetoothLeBroadcastReceiveState receiveState, AudioStreamState state) {
+        var preference = AudioStreamPreference.fromReceiveState(mContext, receiveState);
+        moveToState(preference, state);
+        return preference;
+    }
+
+    private AudioStreamPreference addNewPreference(
+            BluetoothLeBroadcastMetadata metadata, AudioStreamState state) {
+        var preference = AudioStreamPreference.fromMetadata(mContext, metadata);
+        moveToState(preference, state);
+        return preference;
+    }
+
+    private void moveToState(AudioStreamPreference preference, AudioStreamState state) {
+        if (preference.getAudioStreamState() == state) {
+            return;
+        }
+        preference.setAudioStreamState(state);
+
+        // Perform action according to the new state
+        if (state == AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE) {
+            if (mTimedSourceFromQrCode != null) {
+                mTimedSourceFromQrCode.consumed(preference.getAudioStreamBroadcastId());
+            }
+            var metadata = preference.getAudioStreamMetadata();
+            if (metadata != null) {
+                mAudioStreamsHelper.addSource(metadata);
+                // Cache the metadata that used for add source, if source is added successfully, we
+                // will save it persistently.
+                mAudioStreamsRepository.cacheMetadata(metadata);
+            }
+        } else if (state == AudioStreamState.SOURCE_ADDED) {
+            if (mTimedSourceFromQrCode != null) {
+                mTimedSourceFromQrCode.consumed(preference.getAudioStreamBroadcastId());
+            }
+            // Saved connected metadata for user to re-join this broadcast later.
+            var cached =
+                    mAudioStreamsRepository.getCachedMetadata(
+                            preference.getAudioStreamBroadcastId());
+            if (cached != null) {
+                mAudioStreamsRepository.saveMetadata(mContext, cached);
+            }
+        } else if (state == AudioStreamState.WAIT_FOR_SYNC) {
+            if (mTimedSourceFromQrCode != null) {
+                mTimedSourceFromQrCode.waitForConsume();
+            }
+        }
+
+        // Get preference click listener according to the new state
+        Preference.OnPreferenceClickListener listener;
+        if (state == AudioStreamState.SYNCED) {
+            listener = mAddSourceOrShowDialog;
+        } else if (state == AudioStreamState.SOURCE_ADDED) {
+            listener = mLaunchDetailFragment;
+        } else {
+            listener = null;
+        }
+
+        // Get preference summary according to the new state
+        String summary;
+        if (state == AudioStreamState.WAIT_FOR_SYNC) {
+            summary = "Scanning...";
+        } else if (state == AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE) {
+            summary = "Connecting...";
+        } else if (state == AudioStreamState.SOURCE_ADDED) {
+            summary = "Listening now";
+        } else {
+            summary = "";
+        }
+
+        // Update UI
+        ThreadUtils.postOnMainThread(
+                () -> {
+                    preference.setIsConnected(
+                            state == AudioStreamState.SOURCE_ADDED, summary, listener);
+                    if (mCategoryPreference != null) {
+                        mCategoryPreference.addAudioStreamPreference(preference, mComparator);
+                    }
+                });
+    }
+
+    private void launchPasswordDialog(
+            BluetoothLeBroadcastMetadata source, AudioStreamPreference preference) {
+        View layout =
+                LayoutInflater.from(mContext)
+                        .inflate(R.layout.bluetooth_find_broadcast_password_dialog, null);
+        ((TextView) layout.requireViewById(R.id.broadcast_name_text))
+                .setText(preference.getTitle());
+        AlertDialog alertDialog =
+                new AlertDialog.Builder(mContext)
+                        .setTitle(R.string.find_broadcast_password_dialog_title)
+                        .setView(layout)
+                        .setNeutralButton(android.R.string.cancel, null)
+                        .setPositiveButton(
+                                R.string.bluetooth_connect_access_dialog_positive,
+                                (dialog, which) -> {
+                                    var code =
+                                            ((EditText)
+                                                            layout.requireViewById(
+                                                                    R.id.broadcast_edit_text))
+                                                    .getText()
+                                                    .toString();
+                                    var metadata =
+                                            new BluetoothLeBroadcastMetadata.Builder(source)
+                                                    .setBroadcastCode(
+                                                            code.getBytes(StandardCharsets.UTF_8))
+                                                    .build();
+                                    // Update the metadata after user entered the password
+                                    preference.setAudioStreamMetadata(metadata);
+                                    moveToState(
+                                            preference,
+                                            AudioStreamState.ADD_SOURCE_WAIT_FOR_RESPONSE);
+                                })
+                        .create();
+        alertDialog.show();
+    }
+
+    private AudioStreamsDialogFragment.DialogBuilder getNoLeDeviceDialog() {
+        return new AudioStreamsDialogFragment.DialogBuilder(mContext)
+                .setTitle("Connect compatible headphones")
+                .setSubTitle2(
+                        "To listen to an audio stream, first connect headphones that support LE"
+                                + " Audio to this device. Learn more")
+                .setLeftButtonText("Close")
+                .setLeftButtonOnClickListener(AlertDialog::dismiss)
+                .setRightButtonText("Connect a device")
+                .setRightButtonOnClickListener(
+                        dialog -> {
+                            mContext.startActivity(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS));
+                            dialog.dismiss();
+                        });
+    }
+
+    private AudioStreamsDialogFragment.DialogBuilder getBroadcastUnavailableDialog(
+            String broadcastName) {
+        return new AudioStreamsDialogFragment.DialogBuilder(mContext)
+                .setTitle("Audio stream isn't available")
+                .setSubTitle1(broadcastName)
+                .setSubTitle2("This audio stream isn't playing anything right now")
+                .setLeftButtonText("Close")
+                .setLeftButtonOnClickListener(AlertDialog::dismiss)
+                .setRightButtonText("Retry")
+                .setRightButtonOnClickListener(
+                        dialog -> {
+                            if (mFragment != null) {
+                                Intent intent = new Intent(mContext, QrCodeScanModeActivity.class);
+                                intent.setAction(
+                                        BluetoothBroadcastUtils
+                                                .ACTION_BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER);
+                                mFragment.startActivityForResult(
+                                        intent, REQUEST_SCAN_BT_BROADCAST_QR_CODE);
+                                dialog.dismiss();
+                            }
+                        });
+    }
+
+    private class TimedSourceFromQrCode {
+        private static final int WAIT_FOR_SYNC_TIMEOUT_MILLIS = 15000;
+        private final CountDownTimer mTimer;
+        private BluetoothLeBroadcastMetadata mSourceFromQrCode;
+
+        private TimedSourceFromQrCode(
+                BluetoothLeBroadcastMetadata sourceFromQrCode, Runnable timeoutAction) {
+            mSourceFromQrCode = sourceFromQrCode;
+            mTimer =
+                    new CountDownTimer(WAIT_FOR_SYNC_TIMEOUT_MILLIS, 1000) {
+                        @Override
+                        public void onTick(long millisUntilFinished) {}
+
+                        @Override
+                        public void onFinish() {
+                            timeoutAction.run();
+                            ThreadUtils.postOnMainThread(
+                                    () ->
+                                            AudioStreamsDialogFragment.show(
+                                                    mFragment,
+                                                    getBroadcastUnavailableDialog(
+                                                            sourceFromQrCode.getBroadcastName())));
+                        }
+                    };
+        }
+
+        private void waitForConsume() {
+            mTimer.start();
+        }
+
+        private void cleanup() {
+            mTimer.cancel();
+            mSourceFromQrCode = null;
+        }
+
+        private void consumed(int broadcastId) {
+            if (mSourceFromQrCode == null || broadcastId != mSourceFromQrCode.getBroadcastId()) {
+                return;
+            }
+            cleanup();
+        }
+
+        private BluetoothLeBroadcastMetadata get() {
+            return mSourceFromQrCode;
+        }
+    }
+}
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..33adc31
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsProgressCategoryPreference.java
@@ -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.connecteddevice.audiosharing.audiostreams;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.ProgressCategory;
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
+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();
+    }
+
+    void addAudioStreamPreference(
+            @NonNull AudioStreamPreference preference,
+            Comparator<AudioStreamPreference> comparator) {
+        super.addPreference(preference);
+
+        List<AudioStreamPreference> preferences = getAllAudioStreamPreferences();
+        preferences.sort(comparator);
+        for (int i = 0; i < preferences.size(); i++) {
+            // setOrder to i + 1, since the order 0 preference should always be the
+            // "audio_streams_scan_qr_code"
+            preferences.get(i).setOrder(i + 1);
+        }
+    }
+
+    void removeAudioStreamPreferences() {
+        List<AudioStreamPreference> streams = getAllAudioStreamPreferences();
+        for (var toRemove : streams) {
+            removePreference(toRemove);
+        }
+    }
+
+    private List<AudioStreamPreference> getAllAudioStreamPreferences() {
+        List<AudioStreamPreference> streams = new ArrayList<>();
+        for (int i = 0; i < getPreferenceCount(); i++) {
+            if (getPreference(i) instanceof AudioStreamPreference) {
+                streams.add((AudioStreamPreference) getPreference(i));
+            }
+        }
+        return streams;
+    }
+
+    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..2366e70
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsQrCodeFragment.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.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 android.widget.TextView;
+
+import androidx.annotation.Nullable;
+
+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.nio.charset.StandardCharsets;
+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);
+
+        BluetoothLeBroadcastMetadata broadcastMetadata = getBroadcastMetadata();
+
+        if (broadcastMetadata != null) {
+            getQrCodeBitmap(broadcastMetadata)
+                    .ifPresent(
+                            bm -> {
+                                ((ImageView) view.requireViewById(R.id.qrcode_view))
+                                        .setImageBitmap(bm);
+                                ((TextView) view.requireViewById(R.id.password))
+                                        .setText(
+                                                "Password: "
+                                                        + new String(
+                                                                broadcastMetadata
+                                                                        .getBroadcastCode(),
+                                                                StandardCharsets.UTF_8));
+                            });
+        }
+        return view;
+    }
+
+    private Optional<Bitmap> getQrCodeBitmap(@Nullable BluetoothLeBroadcastMetadata metadata) {
+        if (metadata == null) {
+            Log.d(TAG, "onCreateView: broadcastMetadata is empty!");
+            return Optional.empty();
+        }
+        String metadataStr = BluetoothLeBroadcastMetadataExt.INSTANCE.toQrCodeString(metadata);
+        if (metadataStr.isEmpty()) {
+            Log.d(TAG, "onCreateView: metadataStr is empty!");
+            return Optional.empty();
+        }
+        Log.d("chelsea", metadataStr);
+        try {
+            int qrcodeSize = getContext().getResources().getDimensionPixelSize(R.dimen.qrcode_size);
+            Bitmap bitmap = QrCodeGenerator.encodeQrCode(metadataStr, qrcodeSize);
+            return Optional.of(bitmap);
+        } catch (WriterException e) {
+            Log.d(
+                    TAG,
+                    "onCreateView: broadcastMetadata "
+                            + metadata
+                            + " qrCode generation exception "
+                            + e);
+        }
+
+        return Optional.empty();
+    }
+
+    @Nullable
+    private BluetoothLeBroadcastMetadata getBroadcastMetadata() {
+        LocalBluetoothLeBroadcast localBluetoothLeBroadcast =
+                Utils.getLocalBtManager(getActivity())
+                        .getProfileManager()
+                        .getLeAudioBroadcastProfile();
+        if (localBluetoothLeBroadcast == null) {
+            Log.d(TAG, "getBroadcastMetadataQrCode: localBluetoothLeBroadcast is null!");
+            return null;
+        }
+
+        BluetoothLeBroadcastMetadata metadata =
+                localBluetoothLeBroadcast.getLatestBluetoothLeBroadcastMetadata();
+        if (metadata == null) {
+            Log.d(TAG, "getBroadcastMetadataQrCode: metadata is null!");
+            return null;
+        }
+
+        return metadata;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsRepository.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsRepository.java
new file mode 100644
index 0000000..65245ac
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsRepository.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing.audiostreams;
+
+import android.bluetooth.BluetoothLeBroadcastMetadata;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.util.Log;
+
+import com.android.settingslib.bluetooth.BluetoothLeBroadcastMetadataExt;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+import javax.annotation.Nullable;
+
+/** Manages the caching and storage of Bluetooth audio stream metadata. */
+public class AudioStreamsRepository {
+
+    private static final String TAG = "AudioStreamsRepository";
+    private static final boolean DEBUG = BluetoothUtils.D;
+
+    private static final String PREF_KEY = "bluetooth_audio_stream_pref";
+    private static final String METADATA_KEY = "bluetooth_audio_stream_metadata";
+
+    @Nullable
+    private static AudioStreamsRepository sInstance = null;
+
+    private AudioStreamsRepository() {}
+
+    /**
+     * Gets the single instance of AudioStreamsRepository.
+     *
+     * @return The AudioStreamsRepository instance.
+     */
+    public static synchronized AudioStreamsRepository getInstance() {
+        if (sInstance == null) {
+            sInstance = new AudioStreamsRepository();
+        }
+        return sInstance;
+    }
+
+    private final ConcurrentHashMap<Integer, BluetoothLeBroadcastMetadata>
+            mBroadcastIdToMetadataCacheMap = new ConcurrentHashMap<>();
+
+    /**
+     * Caches BluetoothLeBroadcastMetadata in a local cache.
+     *
+     * @param metadata The BluetoothLeBroadcastMetadata to be cached.
+     */
+    void cacheMetadata(BluetoothLeBroadcastMetadata metadata) {
+        if (DEBUG) {
+            Log.d(
+                    TAG,
+                    "cacheMetadata(): broadcastId "
+                            + metadata.getBroadcastId()
+                            + " saved in local cache.");
+        }
+        mBroadcastIdToMetadataCacheMap.put(metadata.getBroadcastId(), metadata);
+    }
+
+    /**
+     * Gets cached BluetoothLeBroadcastMetadata by broadcastId.
+     *
+     * @param broadcastId The broadcastId to look up in the cache.
+     * @return The cached BluetoothLeBroadcastMetadata or null if not found.
+     */
+    @Nullable
+    BluetoothLeBroadcastMetadata getCachedMetadata(int broadcastId) {
+        var metadata = mBroadcastIdToMetadataCacheMap.get(broadcastId);
+        if (metadata == null) {
+            Log.w(
+                    TAG,
+                    "getCachedMetadata(): broadcastId not found in"
+                            + " mBroadcastIdToMetadataCacheMap.");
+            return null;
+        }
+        return metadata;
+    }
+
+    /**
+     * Saves metadata to SharedPreferences asynchronously.
+     *
+     * @param context The context.
+     * @param metadata The BluetoothLeBroadcastMetadata to be saved.
+     */
+    void saveMetadata(Context context, BluetoothLeBroadcastMetadata metadata) {
+        var unused =
+                ThreadUtils.postOnBackgroundThread(
+                        () -> {
+                            SharedPreferences sharedPref =
+                                    context.getSharedPreferences(PREF_KEY, Context.MODE_PRIVATE);
+                            if (sharedPref != null) {
+                                SharedPreferences.Editor editor = sharedPref.edit();
+                                editor.putString(
+                                        METADATA_KEY,
+                                        BluetoothLeBroadcastMetadataExt.INSTANCE.toQrCodeString(
+                                                metadata));
+                                editor.apply();
+                                if (DEBUG) {
+                                    Log.d(
+                                            TAG,
+                                            "saveMetadata(): broadcastId "
+                                                    + metadata.getBroadcastId()
+                                                    + " metadata saved in storage.");
+                                }
+                            }
+                        });
+    }
+
+    /**
+     * Gets saved metadata from SharedPreferences.
+     *
+     * @param context The context.
+     * @param broadcastId The broadcastId to retrieve metadata for.
+     * @return The saved BluetoothLeBroadcastMetadata or null if not found.
+     */
+    @Nullable
+    BluetoothLeBroadcastMetadata getSavedMetadata(Context context, int broadcastId) {
+        SharedPreferences sharedPref = context.getSharedPreferences(PREF_KEY, Context.MODE_PRIVATE);
+        if (sharedPref != null) {
+            String savedMetadataStr = sharedPref.getString(METADATA_KEY, null);
+            if (savedMetadataStr == null) {
+                Log.w(TAG, "getSavedMetadata(): savedMetadataStr is null");
+                return null;
+            }
+            var savedMetadata =
+                    BluetoothLeBroadcastMetadataExt.INSTANCE.convertToBroadcastMetadata(
+                            savedMetadataStr);
+            if (savedMetadata == null || savedMetadata.getBroadcastId() != broadcastId) {
+                Log.w(TAG, "getSavedMetadata(): savedMetadata doesn't match broadcast Id.");
+                return null;
+            }
+            if (DEBUG) {
+                Log.d(
+                        TAG,
+                        "getSavedMetadata(): broadcastId "
+                                + savedMetadata.getBroadcastId()
+                                + " metadata found in storage.");
+            }
+            return savedMetadata;
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
new file mode 100644
index 0000000..24e1ca3
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/AudioStreamsScanQrCodeController.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.BluetoothProfile;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.connecteddevice.audiosharing.AudioSharingUtils;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.qrcode.QrCodeScanModeActivity;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.bluetooth.BluetoothBroadcastUtils;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothUtils;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.utils.ThreadUtils;
+
+public class AudioStreamsScanQrCodeController extends BasePreferenceController
+        implements DefaultLifecycleObserver {
+    static final int REQUEST_SCAN_BT_BROADCAST_QR_CODE = 0;
+    private static final String TAG = "AudioStreamsProgressCategoryController";
+    private static final boolean DEBUG = BluetoothUtils.D;
+    private static final String KEY = "audio_streams_scan_qr_code";
+    private final BluetoothCallback mBluetoothCallback =
+            new BluetoothCallback() {
+                @Override
+                public void onActiveDeviceChanged(
+                        @Nullable CachedBluetoothDevice activeDevice, int bluetoothProfile) {
+                    if (bluetoothProfile == BluetoothProfile.LE_AUDIO) {
+                        updateVisibility();
+                    }
+                }
+            };
+
+    private final LocalBluetoothManager mLocalBtManager;
+    private AudioStreamsDashboardFragment mFragment;
+    private Preference mPreference;
+
+    public AudioStreamsScanQrCodeController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+    }
+
+    public void setFragment(AudioStreamsDashboardFragment fragment) {
+        mFragment = fragment;
+    }
+
+    @Override
+    public void onStart(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().registerCallback(mBluetoothCallback);
+        }
+    }
+
+    @Override
+    public void onStop(@NonNull LifecycleOwner owner) {
+        if (mLocalBtManager != null) {
+            mLocalBtManager.getEventManager().unregisterCallback(mBluetoothCallback);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        if (mPreference == null) {
+            Log.w(TAG, "displayPreference() mPreference is null!");
+            return;
+        }
+        mPreference.setOnPreferenceClickListener(
+                preference -> {
+                    if (mFragment == null) {
+                        Log.w(TAG, "displayPreference() mFragment is null!");
+                        return false;
+                    }
+                    if (preference.getKey().equals(KEY)) {
+                        Intent intent = new Intent(mContext, QrCodeScanModeActivity.class);
+                        intent.setAction(
+                                BluetoothBroadcastUtils.ACTION_BLUETOOTH_LE_AUDIO_QR_CODE_SCANNER);
+                        mFragment.startActivityForResult(intent, REQUEST_SCAN_BT_BROADCAST_QR_CODE);
+                        if (DEBUG) {
+                            Log.w(TAG, "displayPreference() sent intent : " + intent);
+                        }
+                        return true;
+                    }
+                    return false;
+                });
+    }
+
+    private void updateVisibility() {
+        ThreadUtils.postOnBackgroundThread(
+                () -> {
+                    boolean hasActiveLe =
+                            AudioSharingUtils.getActiveSinkOnAssistant(mLocalBtManager).isPresent();
+                    ThreadUtils.postOnMainThread(() -> mPreference.setVisible(hasActiveLe));
+                });
+    }
+}
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..091ebcb
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeActivity.java
@@ -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.connecteddevice.audiosharing.audiostreams.qrcode;
+
+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";
+
+    @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");
+        }
+
+        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..378128d
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/audiosharing/audiostreams/qrcode/QrCodeScanModeFragment.java
@@ -0,0 +1,269 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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);
+        mTextureView.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/dock/DockUpdater.java b/src/com/android/settings/connecteddevice/dock/DockUpdater.java
index 99ac124..1bc3c56 100644
--- a/src/com/android/settings/connecteddevice/dock/DockUpdater.java
+++ b/src/com/android/settings/connecteddevice/dock/DockUpdater.java
@@ -15,9 +15,10 @@
  */
 package com.android.settings.connecteddevice.dock;
 
-import android.annotation.NonNull;
 import android.content.Context;
 
+import androidx.annotation.NonNull;
+
 /**
  * Update the dock devices. It notifies the upper level whether to add/remove the preference
  * through {@link DevicePreferenceCallback}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceDashboardFragment.java
new file mode 100644
index 0000000..2c6c112
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceDashboardFragment.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fastpair;
+
+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;
+
+/** This fragment contains list of available FastPair device */
+@SearchIndexable(forTarget = SearchIndexable.MOBILE)
+public class FastPairDeviceDashboardFragment extends DashboardFragment {
+
+    private static final String TAG = "FastPairDeviceFrag";
+
+    @Override
+    public int getHelpResource() {
+        return R.string.help_url_connected_devices_fast_pair_devices;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.fast_pair_devices;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.FAST_PAIR_DEVICES;
+    }
+
+    /** For Search. */
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.fast_pair_devices);
+}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java
new file mode 100644
index 0000000..52ad91c
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupController.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fastpair;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+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;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.flags.Flags;
+import com.android.settings.overlay.FeatureFactory;
+
+/**
+ * Controller to maintain the {@link PreferenceGroup} for all Fast Pair devices. It uses {@link
+ * DevicePreferenceCallback} to add/remove {@link Preference}
+ */
+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;
+    private final BluetoothAdapter mBluetoothAdapter;
+    @VisibleForTesting IntentFilter mIntentFilter;
+
+    @VisibleForTesting
+    BroadcastReceiver mReceiver =
+            new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    updatePreferenceVisibility();
+                }
+            };
+
+    public FastPairDeviceGroupController(Context context) {
+        super(context, KEY);
+        if (Flags.enableSubsequentPairSettingsIntegration()) {
+            FastPairFeatureProvider fastPairFeatureProvider =
+                    FeatureFactory.getFeatureFactory().getFastPairFeatureProvider();
+            mFastPairDeviceUpdater =
+                    fastPairFeatureProvider.getFastPairDeviceUpdater(context, this);
+        } else {
+            Log.d(TAG, "Flag disabled. Ignored.");
+            mFastPairDeviceUpdater = null;
+        }
+        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+        mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
+    }
+
+    @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);
+    }
+
+    @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);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        mPreferenceGroup = screen.findPreference(KEY);
+        mPreferenceGroup.setVisible(false);
+
+        if (isAvailable()) {
+            final Context context = screen.getContext();
+            mFastPairDeviceUpdater.setPreferenceContext(context);
+            mFastPairDeviceUpdater.forceUpdate();
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
+                        && mFastPairDeviceUpdater != null)
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void onDeviceAdded(Preference preference) {
+        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) {
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceRemoved receives null preference. Ignore.");
+            }
+            return;
+        }
+        mPreferenceGroup.removePreference(preference);
+        updatePreferenceVisibility();
+    }
+
+    private void updatePreferenceVisibility() {
+        mPreferenceGroup.setVisible(
+                mBluetoothAdapter != null
+                        && mBluetoothAdapter.isEnabled()
+                        && mPreferenceGroup.getPreferenceCount() > 0);
+    }
+
+    @VisibleForTesting
+    public void setPreferenceGroup(PreferenceGroup preferenceGroup) {
+        mPreferenceGroup = preferenceGroup;
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java
new file mode 100644
index 0000000..a1c6d18
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceController.java
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fastpair;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+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;
+import androidx.lifecycle.DefaultLifecycleObserver;
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
+import com.android.settings.overlay.FeatureFactory;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Controller to maintain the {@link PreferenceGroup} for all Fast Pair devices and a "See all"
+ * Preference. It uses {@link DevicePreferenceCallback} to add/remove {@link Preference}.
+ */
+public class FastPairDevicePreferenceController extends BasePreferenceController
+        implements DefaultLifecycleObserver, DevicePreferenceCallback {
+
+    private static final String TAG = "FastPairDevicePrefCtr";
+    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+
+    private static final int MAX_DEVICE_NUM = 3;
+    private static final String KEY_SEE_ALL = "fast_pair_devices_see_all";
+
+    private final List<Preference> mPreferenceList = new ArrayList<>();
+
+    private PreferenceGroup mPreferenceGroup;
+    private FastPairDeviceUpdater mFastPairDeviceUpdater;
+    private BluetoothAdapter mBluetoothAdapter;
+
+    @VisibleForTesting Preference mSeeAllPreference;
+    @VisibleForTesting IntentFilter mIntentFilter;
+
+    @VisibleForTesting
+    BroadcastReceiver mReceiver =
+            new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    updatePreferenceVisibility();
+                }
+            };
+
+    public FastPairDevicePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+
+        if (Flags.enableSubsequentPairSettingsIntegration()) {
+            FastPairFeatureProvider fastPairFeatureProvider =
+                    FeatureFactory.getFeatureFactory().getFastPairFeatureProvider();
+            mFastPairDeviceUpdater =
+                    fastPairFeatureProvider.getFastPairDeviceUpdater(context, this);
+        } else {
+            Log.d(TAG, "Flag disabled. Ignore.");
+            mFastPairDeviceUpdater = null;
+        }
+        mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
+        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+    }
+
+    @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);
+    }
+
+    @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);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreferenceGroup = screen.findPreference(getPreferenceKey());
+        mSeeAllPreference = mPreferenceGroup.findPreference(KEY_SEE_ALL);
+        updatePreferenceVisibility();
+        if (isAvailable()) {
+            final Context context = screen.getContext();
+            mFastPairDeviceUpdater.setPreferenceContext(context);
+            mFastPairDeviceUpdater.forceUpdate();
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return (mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)
+                        && mFastPairDeviceUpdater != null)
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void onDeviceAdded(Preference preference) {
+        if (preference == null) {
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceAdd receives null preference. Ignore.");
+            }
+            return;
+        }
+
+        // Keep showing the latest MAX_DEVICE_NUM devices.
+        // The preference for the latest device has top preference order.
+        int idx = Collections.binarySearch(mPreferenceList, preference);
+        // Binary search returns the index of the search key if it is contained in the list;
+        // otherwise, (-(insertion point) - 1).
+        // The insertion point is defined as the point at which the key would be inserted into the
+        // list: the index of the first element greater than the key, or list.size() if all elements
+        // in the list are less than the specified key.
+        if (idx >= 0) {
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceAdd receives duplicate preference. Ignore.");
+            }
+            return;
+        }
+        idx = -1 * (idx + 1);
+        mPreferenceList.add(idx, preference);
+        if (idx < MAX_DEVICE_NUM) {
+            if (mPreferenceList.size() > MAX_DEVICE_NUM) {
+                mPreferenceGroup.removePreference(mPreferenceList.get(MAX_DEVICE_NUM));
+            }
+            mPreferenceGroup.addPreference(preference);
+        }
+        updatePreferenceVisibility();
+    }
+
+    @Override
+    public void onDeviceRemoved(Preference preference) {
+        if (preference == null) {
+            if (DEBUG) {
+                Log.d(TAG, "onDeviceRemoved receives null preference. Ignore.");
+            }
+            return;
+        }
+
+        // Keep showing the latest MAX_DEVICE_NUM devices.
+        // The preference for the latest device has top preference order.
+        final int idx = mPreferenceList.indexOf(preference);
+        mPreferenceList.remove(preference);
+        if (idx < MAX_DEVICE_NUM) {
+            mPreferenceGroup.removePreference(preference);
+            if (mPreferenceList.size() >= MAX_DEVICE_NUM) {
+                mPreferenceGroup.addPreference(mPreferenceList.get(MAX_DEVICE_NUM - 1));
+            }
+        }
+        updatePreferenceVisibility();
+    }
+
+    @VisibleForTesting
+    void setPreferenceGroup(PreferenceGroup preferenceGroup) {
+        mPreferenceGroup = preferenceGroup;
+    }
+
+    @VisibleForTesting
+    void updatePreferenceVisibility() {
+        if (mBluetoothAdapter != null
+                && mBluetoothAdapter.isEnabled()
+                && mPreferenceList.size() > 0) {
+            mPreferenceGroup.setVisible(true);
+            mSeeAllPreference.setVisible(mPreferenceList.size() > MAX_DEVICE_NUM);
+        } else {
+            mPreferenceGroup.setVisible(false);
+            mSeeAllPreference.setVisible(false);
+        }
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java
new file mode 100644
index 0000000..5d30f7e
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceUpdater.java
@@ -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.connecteddevice.fastpair;
+
+import android.content.Context;
+
+import androidx.annotation.Nullable;
+
+/**
+ * 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() {}
+
+    /** Unregisters the Fast Pair event callback */
+    default void unregisterCallback() {}
+
+    /** 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(@Nullable Context preferenceContext) {}
+}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProvider.java b/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProvider.java
new file mode 100644
index 0000000..4673e7b
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProvider.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.connecteddevice.fastpair;
+
+import android.content.Context;
+
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+
+/**
+ * Feature provider for the Fast Pair device updater.
+ */
+public interface FastPairFeatureProvider {
+    /**
+     * Returns the FastPairDeviceUpdater of the account associated Fast Pair device
+     */
+    FastPairDeviceUpdater getFastPairDeviceUpdater(
+            Context context, DevicePreferenceCallback devicePreferenceCallback);
+}
diff --git a/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProviderImpl.java b/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProviderImpl.java
new file mode 100644
index 0000000..ef6f3b5
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProviderImpl.java
@@ -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.
+ */
+
+package com.android.settings.connecteddevice.fastpair;
+
+import android.content.Context;
+
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+
+/**
+ * Default implementation for {@link FastPairFeatureProvider}
+ */
+public class FastPairFeatureProviderImpl implements FastPairFeatureProvider {
+    @Override
+    public FastPairDeviceUpdater getFastPairDeviceUpdater(
+            Context context, DevicePreferenceCallback devicePreferenceCallback) {
+        return new FastPairDeviceUpdater() {
+        };
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdater.java b/src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdater.java
index 1187c59..5bf97ab 100644
--- a/src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdater.java
+++ b/src/com/android/settings/connecteddevice/stylus/StylusDeviceUpdater.java
@@ -71,7 +71,7 @@
         mFragment = fragment;
         mRegisteredBatteryCallbackIds = new ArrayList<>();
         mDevicePreferenceCallback = devicePreferenceCallback;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mContext = context;
         mInputManager = context.getSystemService(InputManager.class);
     }
diff --git a/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java b/src/com/android/settings/connecteddevice/stylus/StylusDevicesController.java
index 985c8b7..d8e8887 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,17 @@
             return null;
         }
 
+        // Check if the connected stylus supports the tail button. A connected device is when input
+        // device is available (mInputDevice != null). For a cached device (mInputDevice == null)
+        // there isn't way to check if the device supports the button so assume it does.
+        if (mInputDevice != 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 +170,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 +211,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/stylus/StylusFeatureProvider.java b/src/com/android/settings/connecteddevice/stylus/StylusFeatureProvider.java
index 7ca35d8..106ad70 100644
--- a/src/com/android/settings/connecteddevice/stylus/StylusFeatureProvider.java
+++ b/src/com/android/settings/connecteddevice/stylus/StylusFeatureProvider.java
@@ -25,7 +25,7 @@
 
 import javax.annotation.Nullable;
 
-/** FeatureProvider for USB settings */
+/** FeatureProvider for USB settings **/
 public interface StylusFeatureProvider {
 
     /**
diff --git a/src/com/android/settings/connecteddevice/stylus/StylusFeatureProviderImpl.java b/src/com/android/settings/connecteddevice/stylus/StylusFeatureProviderImpl.java
index be5ae40..9166c13 100644
--- a/src/com/android/settings/connecteddevice/stylus/StylusFeatureProviderImpl.java
+++ b/src/com/android/settings/connecteddevice/stylus/StylusFeatureProviderImpl.java
@@ -23,7 +23,8 @@
 
 import java.util.List;
 
-/** Default implementation for StylusFeatureProvider */
+
+/** Default implementation for StylusFeatureProvider **/
 public class StylusFeatureProviderImpl implements StylusFeatureProvider {
     @Override
     public boolean isUsbFirmwareUpdateEnabled(UsbDevice usbDevice) {
diff --git a/src/com/android/settings/connecteddevice/stylus/StylusUsbFirmwareController.java b/src/com/android/settings/connecteddevice/stylus/StylusUsbFirmwareController.java
index 9c567a4..a89925e 100644
--- a/src/com/android/settings/connecteddevice/stylus/StylusUsbFirmwareController.java
+++ b/src/com/android/settings/connecteddevice/stylus/StylusUsbFirmwareController.java
@@ -35,7 +35,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-/** Preference controller for stylus firmware updates via USB */
+/** Preference controller for stylus firmware updates via USB **/
 public class StylusUsbFirmwareController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop {
     private static final String TAG = StylusUsbFirmwareController.class.getSimpleName();
@@ -85,8 +85,8 @@
             mPreferenceScreen.removePreference(mPreference);
         }
         if (hasUsbStylusFirmwareUpdateFeature(mStylusUsbDevice)) {
-            StylusFeatureProvider featureProvider = FeatureFactory.getFactory(
-                    mContext).getStylusFeatureProvider();
+            StylusFeatureProvider featureProvider =
+                    FeatureFactory.getFeatureFactory().getStylusFeatureProvider();
             List<Preference> preferences =
                     featureProvider.getUsbFirmwareUpdatePreferences(mContext, mStylusUsbDevice);
 
@@ -134,8 +134,8 @@
     static boolean hasUsbStylusFirmwareUpdateFeature(UsbDevice usbDevice) {
         if (usbDevice == null) return false;
 
-        StylusFeatureProvider featureProvider = FeatureFactory.getFactory(
-                FeatureFactory.getAppContext()).getStylusFeatureProvider();
+        StylusFeatureProvider featureProvider =
+                FeatureFactory.getFeatureFactory().getStylusFeatureProvider();
 
         return featureProvider.isUsbFirmwareUpdateEnabled(usbDevice);
     }
diff --git a/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java b/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
index 41d88d2..10b875f 100644
--- a/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
+++ b/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
@@ -23,7 +23,7 @@
 import android.hardware.usb.UsbDevice;
 import android.hardware.usb.UsbManager;
 
-/** Broadcast receiver for styluses connected via USB */
+/** Broadcast receiver for styluses connected via USB **/
 public class UsbStylusBroadcastReceiver extends BroadcastReceiver {
     private Context mContext;
     private UsbStylusConnectionListener mUsbConnectionListener;
@@ -35,7 +35,7 @@
         mUsbConnectionListener = usbConnectionListener;
     }
 
-    /** Registers the receiver. */
+    /** Registers the receiver. **/
     public void register() {
         if (!mListeningToUsbEvents) {
             final IntentFilter intentFilter = new IntentFilter();
@@ -50,7 +50,7 @@
         }
     }
 
-    /** Unregisters the receiver. */
+    /** Unregisters the receiver. **/
     public void unregister() {
         if (mListeningToUsbEvents) {
             mContext.unregisterReceiver(this);
diff --git a/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java b/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java
index d76ac69..221aab5 100644
--- a/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java
+++ b/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdater.java
@@ -78,8 +78,7 @@
         mUsbBackend = usbBackend;
         mUsbReceiver = new UsbConnectionBroadcastReceiver(context,
                 mUsbConnectionListener, mUsbBackend);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(mFragment.getContext())
-                .getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     public void registerCallback() {
diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
index 2f8b5c3..d194499 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
@@ -22,7 +22,6 @@
 import static android.service.usb.UsbPortStatusProto.DATA_ROLE_NONE;
 import static android.service.usb.UsbPortStatusProto.POWER_ROLE_SINK;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.hardware.usb.UsbManager;
@@ -32,6 +31,7 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import java.util.List;
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsController.java
index 1219211..488de19 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsController.java
@@ -23,6 +23,8 @@
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.flags.Flags;
+import com.android.settings.wifi.dpp.WifiDppUtils;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 /**
@@ -61,4 +63,16 @@
      */
     @UiThread
     protected abstract void refresh(boolean connected, long functions, int powerRole, int dataRole);
+
+    /** Protects given action with an auth challenge. */
+    protected final void requireAuthAndExecute(Runnable action) {
+        if (Flags.enableAuthChallengeForUsbPreferences() && !mFragment.isUserAuthenticated()) {
+            WifiDppUtils.showLockScreen(mContext, () -> {
+                mFragment.setUserAuthenticated(true);
+                action.run();
+            });
+        } else {
+            action.run();
+        }
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
index 6d455a6..8782c79 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
@@ -98,17 +98,19 @@
 
     @Override
     public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
-        int role = UsbBackend.dataRoleFromString(preference.getKey());
-        if (role != mUsbBackend.getDataRole() && mNextRolePref == null
-                && !Utils.isMonkeyRunning()) {
-            mUsbBackend.setDataRole(role);
-            mNextRolePref = preference;
-            preference.setSummary(R.string.usb_switching);
+        requireAuthAndExecute(() -> {
+            int role = UsbBackend.dataRoleFromString(preference.getKey());
+            if (role != mUsbBackend.getDataRole() && mNextRolePref == null
+                    && !Utils.isMonkeyRunning()) {
+                mUsbBackend.setDataRole(role);
+                mNextRolePref = preference;
+                preference.setSummary(R.string.usb_switching);
 
-            mHandler.postDelayed(mFailureCallback,
-                    mUsbBackend.areAllRolesSupported() ? UsbBackend.PD_ROLE_SWAP_TIMEOUT_MS
-                            : UsbBackend.NONPD_ROLE_SWAP_TIMEOUT_MS);
-        }
+                mHandler.postDelayed(mFailureCallback,
+                        mUsbBackend.areAllRolesSupported() ? UsbBackend.PD_ROLE_SWAP_TIMEOUT_MS
+                                : UsbBackend.NONPD_ROLE_SWAP_TIMEOUT_MS);
+            }
+        });
     }
 
     @Override
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
index 0c94d19..f8cabbc 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
@@ -45,6 +45,7 @@
 
     private List<UsbDetailsController> mControllers;
     private UsbBackend mUsbBackend;
+    private boolean mUserAuthenticated = false;
 
     @VisibleForTesting
     UsbConnectionBroadcastReceiver mUsbReceiver;
@@ -56,6 +57,20 @@
                 }
             };
 
+    boolean isUserAuthenticated() {
+        return mUserAuthenticated;
+    }
+
+    void setUserAuthenticated(boolean userAuthenticated) {
+        mUserAuthenticated = userAuthenticated;
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        mUserAuthenticated = false;
+    }
+
     @Override
     public void onViewCreated(View view, Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
index 88e20b6..04fab7d 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java
@@ -130,37 +130,39 @@
 
     @Override
     public void onRadioButtonClicked(SelectorWithWidgetPreference preference) {
-        final long function = UsbBackend.usbFunctionsFromString(preference.getKey());
-        final long previousFunction = mUsbBackend.getCurrentFunctions();
-        if (DEBUG) {
-            Log.d(TAG, "onRadioButtonClicked() function : " + function + ", toString() : "
-                    + UsbManager.usbFunctionsToString(function) + ", previousFunction : "
-                    + previousFunction + ", toString() : "
-                    + UsbManager.usbFunctionsToString(previousFunction));
-        }
-        if (function != previousFunction && !Utils.isMonkeyRunning()
-                && !isClickEventIgnored(function, previousFunction)) {
-            mPreviousFunction = previousFunction;
-
-            //Update the UI in advance to make it looks smooth
-            final SelectorWithWidgetPreference prevPref =
-                    (SelectorWithWidgetPreference) mProfilesContainer.findPreference(
-                            UsbBackend.usbFunctionsToString(mPreviousFunction));
-            if (prevPref != null) {
-                prevPref.setChecked(false);
-                preference.setChecked(true);
+        requireAuthAndExecute(() -> {
+            final long function = UsbBackend.usbFunctionsFromString(preference.getKey());
+            final long previousFunction = mUsbBackend.getCurrentFunctions();
+            if (DEBUG) {
+                Log.d(TAG, "onRadioButtonClicked() function : " + function + ", toString() : "
+                        + UsbManager.usbFunctionsToString(function) + ", previousFunction : "
+                        + previousFunction + ", toString() : "
+                        + UsbManager.usbFunctionsToString(previousFunction));
             }
+            if (function != previousFunction && !Utils.isMonkeyRunning()
+                    && !isClickEventIgnored(function, previousFunction)) {
+                mPreviousFunction = previousFunction;
 
-            if (function == UsbManager.FUNCTION_RNDIS || function == UsbManager.FUNCTION_NCM) {
-                // We need to have entitlement check for usb tethering, so use API in
-                // TetheringManager.
-                mTetheringManager.startTethering(
-                        TetheringManager.TETHERING_USB, new HandlerExecutor(mHandler),
-                        mOnStartTetheringCallback);
-            } else {
-                mUsbBackend.setCurrentFunctions(function);
+                //Update the UI in advance to make it looks smooth
+                final SelectorWithWidgetPreference prevPref =
+                        (SelectorWithWidgetPreference) mProfilesContainer.findPreference(
+                                UsbBackend.usbFunctionsToString(mPreviousFunction));
+                if (prevPref != null) {
+                    prevPref.setChecked(false);
+                    preference.setChecked(true);
+                }
+
+                if (function == UsbManager.FUNCTION_RNDIS || function == UsbManager.FUNCTION_NCM) {
+                    // We need to have entitlement check for usb tethering, so use API in
+                    // TetheringManager.
+                    mTetheringManager.startTethering(
+                            TetheringManager.TETHERING_USB, new HandlerExecutor(mHandler),
+                            mOnStartTetheringCallback);
+                } else {
+                    mUsbBackend.setCurrentFunctions(function);
+                }
             }
-        }
+        });
     }
 
     private boolean isClickEventIgnored(long function, long previousFunction) {
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
index e151258..39d7c75 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
@@ -50,7 +50,7 @@
     protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
         mHeaderController.setLabel(mContext.getString(R.string.usb_pref));
         mHeaderController.setIcon(mContext.getDrawable(R.drawable.ic_usb));
-        mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
+        mHeaderController.done(true /* rebindActions */);
     }
 
     @Override
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..a023171 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);
@@ -77,13 +78,15 @@
 
     @Override
     public boolean onPreferenceClick(Preference preference) {
-        SystemProperties.set(TRANSCODE_MTP_SYS_PROP_KEY,
-                Boolean.toString(mSwitchPreference.isChecked()));
+        requireAuthAndExecute(() -> {
+            SystemProperties.set(TRANSCODE_MTP_SYS_PROP_KEY,
+                    Boolean.toString(mSwitchPreference.isChecked()));
 
-        final long previousFunctions = mUsbBackend.getCurrentFunctions();
-        // Toggle the MTP connection to reload file sizes for files shared via MTP clients
-        mUsbBackend.setCurrentFunctions(previousFunctions & ~UsbManager.FUNCTION_MTP);
-        mUsbBackend.setCurrentFunctions(previousFunctions);
+            final long previousFunctions = mUsbBackend.getCurrentFunctions();
+            // Toggle the MTP connection to reload file sizes for files shared via MTP clients
+            mUsbBackend.setCurrentFunctions(previousFunctions & ~UsbManager.FUNCTION_MTP);
+            mUsbBackend.setCurrentFunctions(previousFunctions);
+        });
 
         return true;
     }
diff --git a/src/com/android/settings/core/CategoryMixin.java b/src/com/android/settings/core/CategoryMixin.java
index 151ed7b..5f9fc00 100644
--- a/src/com/android/settings/core/CategoryMixin.java
+++ b/src/com/android/settings/core/CategoryMixin.java
@@ -19,7 +19,6 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
 import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
 
-import android.annotation.Nullable;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -30,6 +29,7 @@
 import android.util.ArraySet;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 1a97ca9..3c17e6e 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -22,8 +22,6 @@
 public class FeatureFlags {
     public static final String AUDIO_SWITCHER_SETTINGS = "settings_audio_switcher";
     public static final String HEARING_AID_SETTINGS = "settings_bluetooth_hearing_aid";
-    public static final String WIFI_DETAILS_DATAUSAGE_HEADER =
-            "settings_wifi_details_datausage_header";
     public static final String CONTROLLER_ENHANCEMENT = "settings_controller_loading_enhancement";
     public static final String CONDITIONAL_CARDS = "settings_conditionals";
     public static final String TETHER_ALL_IN_ONE = "settings_tether_all_in_one";
diff --git a/src/com/android/settings/core/InstrumentedActivity.java b/src/com/android/settings/core/InstrumentedActivity.java
index be350a8..a0849a8 100644
--- a/src/com/android/settings/core/InstrumentedActivity.java
+++ b/src/com/android/settings/core/InstrumentedActivity.java
@@ -33,6 +33,6 @@
         super.onCreate(savedInstanceState);
         // Mixin that logs visibility change for activity.
         getSettingsLifecycle().addObserver(new VisibilityLoggerMixin(getMetricsCategory(),
-                FeatureFactory.getFactory(this).getMetricsFeatureProvider()));
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()));
     }
 }
diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java
index c4ceb4a..b98c270 100644
--- a/src/com/android/settings/core/InstrumentedFragment.java
+++ b/src/com/android/settings/core/InstrumentedFragment.java
@@ -33,7 +33,7 @@
 
     @Override
     public void onAttach(Context context) {
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mVisibilityLoggerMixin = new VisibilityLoggerMixin(getMetricsCategory(),
                 mMetricsFeatureProvider);
         // Mixin that logs visibility change for activity.
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
index bff405b..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;
@@ -57,7 +57,7 @@
 
     @Override
     public void onAttach(Context context) {
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         // Mixin that logs visibility change for activity.
         mVisibilityLoggerMixin = new VisibilityLoggerMixin(getMetricsCategory(),
                 mMetricsFeatureProvider);
@@ -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/PreferenceControllerListHelper.java b/src/com/android/settings/core/PreferenceControllerListHelper.java
index 6d450fe..f37140e 100644
--- a/src/com/android/settings/core/PreferenceControllerListHelper.java
+++ b/src/com/android/settings/core/PreferenceControllerListHelper.java
@@ -20,13 +20,14 @@
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_FOR_WORK;
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
 
-import android.annotation.NonNull;
 import android.annotation.XmlRes;
 import android.content.Context;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
 import com.android.settingslib.core.AbstractPreferenceController;
 
diff --git a/src/com/android/settings/core/PreferenceXmlParserUtils.java b/src/com/android/settings/core/PreferenceXmlParserUtils.java
index a1a8d67..df3cd92 100644
--- a/src/com/android/settings/core/PreferenceXmlParserUtils.java
+++ b/src/com/android/settings/core/PreferenceXmlParserUtils.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.core;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.XmlRes;
 import android.content.Context;
 import android.content.res.TypedArray;
@@ -26,11 +24,10 @@
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
-import android.util.TypedValue;
 import android.util.Xml;
 
 import androidx.annotation.IntDef;
-import androidx.annotation.VisibleForTesting;
+import androidx.annotation.NonNull;
 
 import com.android.settings.R;
 
@@ -50,10 +47,9 @@
 public class PreferenceXmlParserUtils {
 
     private static final String TAG = "PreferenceXmlParserUtil";
-    @VisibleForTesting
-    static final String PREF_SCREEN_TAG = "PreferenceScreen";
+    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;
@@ -71,10 +67,13 @@
             MetadataFlag.FLAG_NEED_PREF_TITLE,
             MetadataFlag.FLAG_NEED_PREF_SUMMARY,
             MetadataFlag.FLAG_NEED_PREF_ICON,
+            MetadataFlag.FLAG_NEED_KEYWORDS,
             MetadataFlag.FLAG_NEED_SEARCHABLE,
+            MetadataFlag.FLAG_NEED_PREF_APPEND,
             MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE,
             MetadataFlag.FLAG_FOR_WORK,
-            MetadataFlag.FLAG_NEED_HIGHLIGHTABLE_MENU_KEY})
+            MetadataFlag.FLAG_NEED_HIGHLIGHTABLE_MENU_KEY,
+            MetadataFlag.FLAG_NEED_USER_RESTRICTION})
     @Retention(RetentionPolicy.SOURCE)
     public @interface MetadataFlag {
 
@@ -91,6 +90,7 @@
         int FLAG_UNAVAILABLE_SLICE_SUBTITLE = 1 << 11;
         int FLAG_FOR_WORK = 1 << 12;
         int FLAG_NEED_HIGHLIGHTABLE_MENU_KEY = 1 << 13;
+        int FLAG_NEED_USER_RESTRICTION = 1 << 14;
     }
 
     public static final String METADATA_PREF_TYPE = "type";
@@ -105,70 +105,7 @@
     public static final String METADATA_UNAVAILABLE_SLICE_SUBTITLE = "unavailable_slice_subtitle";
     public static final String METADATA_FOR_WORK = "for_work";
     public static final String METADATA_HIGHLIGHTABLE_MENU_KEY = "highlightable_menu_key";
-
-    private static final String ENTRIES_SEPARATOR = "|";
-
-    /**
-     * Call {@link #extractMetadata(Context, int, int)} with {@link #METADATA_KEY} instead.
-     */
-    @Deprecated
-    public static String getDataKey(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs,
-                com.android.internal.R.styleable.Preference,
-                com.android.internal.R.styleable.Preference_key);
-    }
-
-    /**
-     * Call {@link #extractMetadata(Context, int, int)} with {@link #METADATA_TITLE} instead.
-     */
-    @Deprecated
-    public static String getDataTitle(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs,
-                com.android.internal.R.styleable.Preference,
-                com.android.internal.R.styleable.Preference_title);
-    }
-
-    /**
-     * Call {@link #extractMetadata(Context, int, int)} with {@link #METADATA_SUMMARY} instead.
-     */
-    @Deprecated
-    public static String getDataSummary(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs,
-                com.android.internal.R.styleable.Preference,
-                com.android.internal.R.styleable.Preference_summary);
-    }
-
-    public static String getDataSummaryOn(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs,
-                com.android.internal.R.styleable.CheckBoxPreference,
-                com.android.internal.R.styleable.CheckBoxPreference_summaryOn);
-    }
-
-    public static String getDataSummaryOff(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs,
-                com.android.internal.R.styleable.CheckBoxPreference,
-                com.android.internal.R.styleable.CheckBoxPreference_summaryOff);
-    }
-
-    public static String getDataEntries(Context context, AttributeSet attrs) {
-        return getDataEntries(context, attrs,
-                com.android.internal.R.styleable.ListPreference,
-                com.android.internal.R.styleable.ListPreference_entries);
-    }
-
-    public static String getDataKeywords(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs, R.styleable.Preference,
-                R.styleable.Preference_keywords);
-    }
-
-    /**
-     * Call {@link #extractMetadata(Context, int, int)} with {@link #METADATA_CONTROLLER} instead.
-     */
-    @Deprecated
-    public static String getController(Context context, AttributeSet attrs) {
-        return getStringData(context, attrs, R.styleable.Preference,
-                R.styleable.Preference_controller);
-    }
+    public static final String METADATA_USER_RESTRICTION = "userRestriction";
 
     /**
      * Extracts metadata from preference xml and put them into a {@link Bundle}.
@@ -257,54 +194,26 @@
                 preferenceMetadata.putString(METADATA_HIGHLIGHTABLE_MENU_KEY,
                         getHighlightableMenuKey(preferenceAttributes));
             }
+            if (hasFlag(flags, MetadataFlag.FLAG_NEED_USER_RESTRICTION)) {
+                preferenceMetadata.putString(METADATA_USER_RESTRICTION,
+                        getUserRestriction(context, attrs));
+            }
             metadata.add(preferenceMetadata);
 
             preferenceAttributes.recycle();
+            if (preferenceScreenAttributes != null) {
+                preferenceScreenAttributes.recycle();
+            }
         } while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
                 && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth));
         parser.close();
         return metadata;
     }
 
-    /**
-     * Call {@link #extractMetadata(Context, int, int)} with a {@link MetadataFlag} instead.
-     */
-    @Deprecated
-    @Nullable
-    private static String getStringData(Context context, AttributeSet set, int[] attrs, int resId) {
-        final TypedArray ta = context.obtainStyledAttributes(set, attrs);
-        String data = ta.getString(resId);
-        ta.recycle();
-        return data;
-    }
-
     private static boolean hasFlag(int flags, @MetadataFlag int flag) {
         return (flags & flag) != 0;
     }
 
-    private static String getDataEntries(Context context, AttributeSet set, int[] attrs,
-            int resId) {
-        final TypedArray sa = context.obtainStyledAttributes(set, attrs);
-        final TypedValue tv = sa.peekValue(resId);
-        sa.recycle();
-        String[] data = null;
-        if (tv != null && tv.type == TypedValue.TYPE_REFERENCE) {
-            if (tv.resourceId != 0) {
-                data = context.getResources().getStringArray(tv.resourceId);
-            }
-        }
-        final int count = (data == null) ? 0 : data.length;
-        if (count == 0) {
-            return null;
-        }
-        final StringBuilder result = new StringBuilder();
-        for (int n = 0; n < count; n++) {
-            result.append(data[n]);
-            result.append(ENTRIES_SEPARATOR);
-        }
-        return result.toString();
-    }
-
     private static String getKey(TypedArray styledAttributes) {
         return styledAttributes.getString(com.android.internal.R.styleable.Preference_key);
     }
@@ -351,4 +260,13 @@
         return styledAttributes.getBoolean(
                 R.styleable.Preference_forWork, false);
     }
+
+    private static String getUserRestriction(Context context, AttributeSet attrs) {
+        TypedArray preferenceAttributes = context.obtainStyledAttributes(attrs,
+                com.android.settingslib.R.styleable.RestrictedPreference);
+        String userRestriction = preferenceAttributes.getString(
+                com.android.settingslib.R.styleable.RestrictedPreference_userRestriction);
+        preferenceAttributes.recycle();
+        return userRestriction;
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index ff84a3f..e43772e 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -110,8 +110,10 @@
         }
 
         if (isToolbarEnabled() && !isAnySetupWizard) {
-            super.setContentView(R.layout.collapsing_toolbar_base_layout);
-            mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar);
+            super.setContentView(
+                    com.android.settingslib.collapsingtoolbar.R.layout.collapsing_toolbar_base_layout);
+            mCollapsingToolbarLayout =
+                    findViewById(com.android.settingslib.collapsingtoolbar.R.id.collapsing_toolbar);
             mAppBarLayout = findViewById(R.id.app_bar);
             if (mCollapsingToolbarLayout != null) {
                 mCollapsingToolbarLayout.setLineSpacingMultiplier(TOOLBAR_LINE_SPACING_MULTIPLIER);
@@ -162,9 +164,12 @@
         final int transitionType = getTransitionType(intent);
         super.startActivityForResult(intent, requestCode, options);
         if (transitionType == TransitionType.TRANSITION_SLIDE) {
-            overridePendingTransition(R.anim.sud_slide_next_in, R.anim.sud_slide_next_out);
+            overridePendingTransition(
+                    com.google.android.setupdesign.R.anim.sud_slide_next_in,
+                    com.google.android.setupdesign.R.anim.sud_slide_next_out);
         } else if (transitionType == TransitionType.TRANSITION_FADE) {
-            overridePendingTransition(android.R.anim.fade_in, R.anim.sud_stay);
+            overridePendingTransition(
+                    android.R.anim.fade_in, com.google.android.setupdesign.R.anim.sud_stay);
         }
     }
 
@@ -172,7 +177,8 @@
     protected void onPause() {
         // For accessibility activities launched from setup wizard.
         if (getTransitionType(getIntent()) == TransitionType.TRANSITION_FADE) {
-            overridePendingTransition(R.anim.sud_stay, android.R.anim.fade_out);
+            overridePendingTransition(
+                    com.google.android.setupdesign.R.anim.sud_stay, android.R.anim.fade_out);
         }
         super.onPause();
     }
diff --git a/src/com/android/settings/core/TogglePreferenceController.java b/src/com/android/settings/core/TogglePreferenceController.java
index f14e0b2..459312a 100644
--- a/src/com/android/settings/core/TogglePreferenceController.java
+++ b/src/com/android/settings/core/TogglePreferenceController.java
@@ -21,6 +21,7 @@
 
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.slices.SliceData;
+import com.android.settings.onboarding.OnboardingFeatureProvider;
 import com.android.settings.widget.TwoStateButtonPreference;
 import com.android.settingslib.PrimarySwitchPreference;
 import com.android.settingslib.core.instrumentation.SettingsJankMonitor;
@@ -81,9 +82,14 @@
         // TwoStatePreference is a regular preference and can be handled by DashboardFragment
         if (preference instanceof PrimarySwitchPreference
                 || preference instanceof TwoStateButtonPreference) {
-            FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .logClickedPreference(preference, getMetricsCategory());
         }
+        OnboardingFeatureProvider onboardingFeatureProvider =
+                FeatureFactory.getFeatureFactory().getOnboardingFeatureProvider();
+        if (onboardingFeatureProvider != null) {
+            onboardingFeatureProvider.markPreferenceHasChanged(mContext, mPreferenceKey);
+        }
         return setChecked((boolean) newValue);
     }
 
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 7b1abaf..e3131f7 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -16,11 +16,11 @@
 
 package com.android.settings.core.gateway;
 
-import com.android.settings.AllInOneTetherSettings;
 import com.android.settings.DisplaySettings;
 import com.android.settings.IccLockSettings;
 import com.android.settings.MainClear;
 import com.android.settings.MainClearConfirm;
+import com.android.settings.ResetNetwork;
 import com.android.settings.Settings;
 import com.android.settings.TestingSettings;
 import com.android.settings.TrustedCredentialsSettings;
@@ -34,6 +34,8 @@
 import com.android.settings.accessibility.ToggleColorInversionPreferenceFragment;
 import com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment;
 import com.android.settings.accessibility.ToggleReduceBrightColorsPreferenceFragment;
+import com.android.settings.accessibility.VibrationIntensitySettingsFragment;
+import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
 import com.android.settings.accounts.AccountDashboardFragment;
 import com.android.settings.accounts.AccountSyncSettings;
 import com.android.settings.accounts.ChooseAccountFragment;
@@ -73,7 +75,7 @@
 import com.android.settings.biometrics.combination.CombinedBiometricSettings;
 import com.android.settings.biometrics.face.FaceSettings;
 import com.android.settings.biometrics.fingerprint.FingerprintSettings;
-import com.android.settings.biometrics.fingerprint2.ui.fragment.FingerprintSettingsV2Fragment;
+import com.android.settings.biometrics.fingerprint2.ui.settings.fragment.FingerprintSettingsV2Fragment;
 import com.android.settings.bluetooth.BluetoothBroadcastDialog;
 import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
 import com.android.settings.bluetooth.BluetoothFindBroadcastsFragment;
@@ -84,6 +86,7 @@
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.connecteddevice.NfcAndPaymentFragment;
 import com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment;
+import com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamConfirmDialog;
 import com.android.settings.connecteddevice.stylus.StylusUsiDetailsFragment;
 import com.android.settings.connecteddevice.usb.UsbDetailsFragment;
 import com.android.settings.datausage.DataSaverSummary;
@@ -101,6 +104,7 @@
 import com.android.settings.deviceinfo.legal.ModuleLicensesDashboard;
 import com.android.settings.display.AutoBrightnessSettings;
 import com.android.settings.display.NightDisplaySettings;
+import com.android.settings.display.ScreenTimeoutSettings;
 import com.android.settings.display.SmartAutoRotatePreferenceFragment;
 import com.android.settings.display.darkmode.DarkModeSettingsFragment;
 import com.android.settings.dream.DreamSettings;
@@ -109,7 +113,6 @@
 import com.android.settings.fuelgauge.batterysaver.BatterySaverScheduleSettings;
 import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
 import com.android.settings.fuelgauge.batteryusage.PowerUsageSummary;
-import com.android.settings.gestures.AssistGestureSettings;
 import com.android.settings.gestures.ButtonNavigationSettingsFragment;
 import com.android.settings.gestures.DoubleTapPowerSettings;
 import com.android.settings.gestures.DoubleTapScreenSettings;
@@ -143,8 +146,8 @@
 import com.android.settings.network.apn.ApnSettings;
 import com.android.settings.network.telephony.MobileNetworkSettings;
 import com.android.settings.network.telephony.NetworkSelectSettings;
+import com.android.settings.network.telephony.SatelliteSetting;
 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;
@@ -167,6 +170,9 @@
 import com.android.settings.print.PrintSettingsFragment;
 import com.android.settings.privacy.PrivacyControlsFragment;
 import com.android.settings.privacy.PrivacyDashboardFragment;
+import com.android.settings.privatespace.delete.PrivateSpaceDeleteFragment;
+import com.android.settings.privatespace.delete.PrivateSpaceDeletionProgressFragment;
+import com.android.settings.privatespace.onelock.PrivateSpaceBiometricSettings;
 import com.android.settings.regionalpreferences.RegionalPreferencesEntriesFragment;
 import com.android.settings.safetycenter.MoreSecurityPrivacyFragment;
 import com.android.settings.security.LockscreenDashboardFragment;
@@ -187,7 +193,6 @@
 import com.android.settings.wifi.ConfigureWifiSettings;
 import com.android.settings.wifi.WifiAPITest;
 import com.android.settings.wifi.WifiInfo;
-import com.android.settings.wifi.WifiSettings;
 import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment;
 import com.android.settings.wifi.calling.WifiCallingSettings;
 import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
@@ -205,11 +210,9 @@
             AdvancedConnectedDeviceDashboardFragment.class.getName(),
             CreateShortcut.class.getName(),
             BluetoothPairingDetail.class.getName(),
-            WifiSettings.class.getName(),
             WifiNetworkDetailsFragment.class.getName(),
             ConfigureWifiSettings.class.getName(),
             SavedAccessPointsWifiSettings2.class.getName(),
-            AllInOneTetherSettings.class.getName(),
             TetherSettings.class.getName(),
             SmartAutoRotatePreferenceFragment.class.getName(),
             WifiP2pSettings.class.getName(),
@@ -251,6 +254,7 @@
             AccessibilityDetailsSettingsFragment.class.getName(),
             AccessibilitySettings.class.getName(),
             AccessibilitySettingsForSetupWizard.class.getName(),
+            EditShortcutsPreferenceFragment.class.getName(),
             TextReadingPreferenceFragment.class.getName(),
             TextReadingPreferenceFragmentForSetupWizard.class.getName(),
             CaptioningPropertiesFragment.class.getName(),
@@ -261,16 +265,17 @@
             PrivateVolumeForget.class.getName(),
             PublicVolumeSettings.class.getName(),
             DevelopmentSettingsDashboardFragment.class.getName(),
-            AndroidBeam.class.getName(),
             WifiDisplaySettings.class.getName(),
             PowerUsageSummary.class.getName(),
             AccountSyncSettings.class.getName(),
-            AssistGestureSettings.class.getName(),
             FaceSettings.class.getName(),
             FingerprintSettings.FingerprintSettingsFragment.class.getName(),
             FingerprintSettingsV2Fragment.class.getName(),
             CombinedBiometricSettings.class.getName(),
             CombinedBiometricProfileSettings.class.getName(),
+            PrivateSpaceBiometricSettings.class.getName(),
+            PrivateSpaceDeleteFragment.class.getName(),
+            PrivateSpaceDeletionProgressFragment.class.getName(),
             SwipeToNotificationSettings.class.getName(),
             DoubleTapPowerSettings.class.getName(),
             DoubleTapScreenSettings.class.getName(),
@@ -304,6 +309,7 @@
             AppNotificationSettings.class.getName(),
             NotificationAssistantPicker.class.getName(),
             ChannelNotificationSettings.class.getName(),
+            SatelliteSetting.class.getName(),
             ApnSettings.class.getName(),
             ApnEditor.class.getName(),
             WifiCallingSettings.class.getName(),
@@ -353,6 +359,7 @@
             DataUsageList.class.getName(),
             ToggleBackupSettingFragment.class.getName(),
             PreviouslyConnectedDeviceDashboardFragment.class.getName(),
+            AudioStreamConfirmDialog.class.getName(),
             BatterySaverScheduleSettings.class.getName(),
             MobileNetworkListFragment.class.getName(),
             PowerMenuSettings.class.getName(),
@@ -377,7 +384,10 @@
             LongBackgroundTasksDetails.class.getName(),
             RegionalPreferencesEntriesFragment.class.getName(),
             BatteryInfoFragment.class.getName(),
-            UserAspectRatioDetails.class.getName()
+            UserAspectRatioDetails.class.getName(),
+            ScreenTimeoutSettings.class.getName(),
+            ResetNetwork.class.getName(),
+            VibrationIntensitySettingsFragment.class.getName(),
     };
 
     public static final String[] SETTINGS_FOR_RESTRICTED = {
diff --git a/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java b/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java
index 0a214f1..9f92537 100644
--- a/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java
+++ b/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java
@@ -46,7 +46,7 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context)
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory()
                 .getMetricsFeatureProvider();
         mLifecycle.addObserver(new VisibilityLoggerMixin(getMetricsCategory(),
                 mMetricsFeatureProvider));
diff --git a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java b/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
deleted file mode 100644
index 86ee3d6..0000000
--- a/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriter.java
+++ /dev/null
@@ -1,211 +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.core.instrumentation;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.Process;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.text.format.DateUtils;
-import android.util.Log;
-import android.util.Pair;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.R;
-import com.android.settings.intelligence.LogProto.SettingsLog;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.LogWriter;
-
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
-import java.util.LinkedList;
-import java.util.List;
-
-public class SettingsIntelligenceLogWriter implements LogWriter {
-    private static final String TAG = "IntelligenceLogWriter";
-
-    private static final String LOG = "logs";
-    private static final long MESSAGE_DELAY = DateUtils.MINUTE_IN_MILLIS; // 1 minute
-    // Based on the exp, 99.5% users collect less than 150 data in 1 minute.
-    private static final int CACHE_LOG_THRESHOLD = 150;
-
-    private List<SettingsLog> mSettingsLogList;
-    private SendLogHandler mLogHandler;
-
-    public SettingsIntelligenceLogWriter() {
-        mSettingsLogList = new LinkedList<>();
-        final HandlerThread workerThread = new HandlerThread("SettingsIntelligenceLogWriter",
-                Process.THREAD_PRIORITY_BACKGROUND);
-        workerThread.start();
-        mLogHandler = new SendLogHandler(workerThread.getLooper());
-    }
-
-    @Override
-    public void visible(Context context, int attribution, int pageId, int latency) {
-        action(attribution /* from pageId */,
-                SettingsEnums.PAGE_VISIBLE /* action */,
-                pageId /* target pageId */,
-                "" /* changedPreferenceKey */,
-                latency /* changedPreferenceIntValue */);
-    }
-
-    @Override
-    public void hidden(Context context, int pageId, int visibleTime) {
-        action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
-                SettingsEnums.PAGE_HIDE /* action */,
-                pageId /* pageId */,
-                "" /* changedPreferenceKey */,
-                visibleTime /* changedPreferenceIntValue */);
-    }
-
-    @Override
-    public void clicked(int sourceCategory, String key) {
-    }
-
-    @Override
-    public void changed(int category, String key, int value) {
-    }
-
-    @Override
-    public void action(Context context, int action, Pair<Integer, Object>... taggedData) {
-        action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
-                action,
-                SettingsEnums.PAGE_UNKNOWN /* pageId */,
-                "" /* changedPreferenceKey */,
-                0 /* changedPreferenceIntValue */);
-    }
-
-    @Override
-    public void action(Context context, int action, int value) {
-        action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
-                action,
-                SettingsEnums.PAGE_UNKNOWN /* pageId */,
-                "" /* changedPreferenceKey */,
-                value /* changedPreferenceIntValue */);
-    }
-
-    @Override
-    public void action(Context context, int action, boolean value) {
-        action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
-                action,
-                SettingsEnums.PAGE_UNKNOWN /* pageId */,
-                "" /* changedPreferenceKey */,
-                value ? 1 : 0 /* changedPreferenceIntValue */);
-    }
-
-    @Override
-    public void action(Context context, int action, String pkg) {
-        action(SettingsEnums.PAGE_UNKNOWN /* attribution */,
-                action,
-                SettingsEnums.PAGE_UNKNOWN /* pageId */,
-                pkg /* changedPreferenceKey */,
-                1 /* changedPreferenceIntValue */);
-    }
-
-    @Override
-    public void action(int attribution, int action, int pageId, String key, int value) {
-        final ZonedDateTime now = ZonedDateTime.now(ZoneId.systemDefault());
-        final SettingsLog settingsLog = SettingsLog.newBuilder()
-                .setAttribution(attribution)
-                .setAction(action)
-                .setPageId(pageId)
-                .setChangedPreferenceKey(key != null ? key : "")
-                .setChangedPreferenceIntValue(value)
-                .setTimestamp(now.toString())
-                .build();
-        mLogHandler.post(() -> {
-            mSettingsLogList.add(settingsLog);
-        });
-        if (action == SettingsEnums.ACTION_CONTEXTUAL_CARD_DISMISS
-                || mSettingsLogList.size() >= CACHE_LOG_THRESHOLD) {
-            // Directly send this event to notify SI instantly that the card is dismissed
-            mLogHandler.sendLog();
-        } else {
-            mLogHandler.scheduleSendLog();
-        }
-    }
-
-    @VisibleForTesting
-    static byte[] serialize(List<SettingsLog> settingsLogs) {
-        final int size = settingsLogs.size();
-        final ByteArrayOutputStream bout = new ByteArrayOutputStream();
-        final DataOutputStream output = new DataOutputStream(bout);
-        // The data format is "size, length, byte array, length, byte array ..."
-        try {
-            output.writeInt(size);
-            for (SettingsLog settingsLog : settingsLogs) {
-                final byte[] data = settingsLog.toByteArray();
-                output.writeInt(data.length);
-                output.write(data);
-            }
-            return bout.toByteArray();
-        } catch (Exception e) {
-            Log.e(TAG, "serialize error", e);
-            return null;
-        } finally {
-            try {
-                output.close();
-            } catch (Exception e) {
-                Log.e(TAG, "close error", e);
-            }
-        }
-    }
-
-    private class SendLogHandler extends Handler {
-
-        SendLogHandler(Looper looper) {
-            super(looper);
-        }
-
-        void scheduleSendLog() {
-            removeCallbacks(mSendLogsRunnable);
-            postDelayed(mSendLogsRunnable, MESSAGE_DELAY);
-        }
-
-        void sendLog() {
-            removeCallbacks(mSendLogsRunnable);
-            post(mSendLogsRunnable);
-        }
-    }
-
-    private final Runnable mSendLogsRunnable = () -> {
-        final Context context = FeatureFactory.getAppContext();
-        if (context == null) {
-            Log.e(TAG, "context is null");
-            return;
-        }
-        final String action = context.getString(R.string
-                .config_settingsintelligence_log_action);
-        if (!TextUtils.isEmpty(action) && !mSettingsLogList.isEmpty()) {
-            final Intent intent = new Intent();
-            intent.setPackage(context.getString(R.string
-                    .config_settingsintelligence_package_name));
-            intent.setAction(action);
-            intent.putExtra(LOG, serialize(mSettingsLogList));
-            context.sendBroadcastAsUser(intent, UserHandle.CURRENT);
-            mSettingsLogList.clear();
-        }
-    };
-}
diff --git a/src/com/android/settings/core/instrumentation/SettingsMetricsFeatureProvider.java b/src/com/android/settings/core/instrumentation/SettingsMetricsFeatureProvider.java
index 01927fd..bfe3185 100644
--- a/src/com/android/settings/core/instrumentation/SettingsMetricsFeatureProvider.java
+++ b/src/com/android/settings/core/instrumentation/SettingsMetricsFeatureProvider.java
@@ -29,7 +29,6 @@
     protected void installLogWriters() {
         mLoggerWriters.add(new StatsLogWriter());
         mLoggerWriters.add(new SettingsEventLogWriter());
-        mLoggerWriters.add(new SettingsIntelligenceLogWriter());
     }
 
     /**
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 578493a..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;
@@ -100,7 +100,7 @@
     public DashboardFeatureProviderImpl(Context context) {
         mContext = context.getApplicationContext();
         mCategoryManager = CategoryManager.get(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mPackageManager = context.getPackageManager();
     }
 
@@ -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 d4acfa1..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;
@@ -94,8 +94,8 @@
         super.onAttach(context);
         mSuppressInjectedTileKeys = Arrays.asList(context.getResources().getStringArray(
                 R.array.config_suppress_injected_tile_keys));
-        mDashboardFeatureProvider = FeatureFactory.getFactory(context).
-                getDashboardFeatureProvider(context);
+        mDashboardFeatureProvider =
+                FeatureFactory.getFeatureFactory().getDashboardFeatureProvider();
         // Load preference controllers from code
         final List<AbstractPreferenceController> controllersFromCode =
                 createPreferenceControllers(context);
@@ -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/SummaryProvider.java b/src/com/android/settings/dashboard/SummaryProvider.java
deleted file mode 100644
index 6acc663..0000000
--- a/src/com/android/settings/dashboard/SummaryProvider.java
+++ /dev/null
@@ -1,91 +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.dashboard;
-
-import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY;
-
-import android.content.ContentProvider;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.pm.UserInfo;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.os.UserManager;
-
-import com.android.settings.R;
-import com.android.settings.backup.BackupSettingsHelper;
-
-/** Provide preference summary for injected items. */
-public class SummaryProvider extends ContentProvider {
-    private static final String BACKUP = "backup";
-    private static final String USER = "user";
-
-    @Override
-    public Bundle call(String method, String uri, Bundle extras) {
-        final Bundle bundle = new Bundle();
-        switch (method) {
-            case BACKUP:
-                bundle.putString(META_DATA_PREFERENCE_SUMMARY,
-                        new BackupSettingsHelper(getContext()).getSummary());
-                break;
-            case USER:
-                final Context context = getContext();
-                final UserInfo info = context.getSystemService(UserManager.class).getUserInfo(
-                        UserHandle.myUserId());
-                bundle.putString(META_DATA_PREFERENCE_SUMMARY,
-                        context.getString(R.string.users_summary,
-                                info.name));
-                break;
-            default:
-                throw new IllegalArgumentException("Unknown Uri format: " + uri);
-        }
-        return bundle;
-    }
-
-    @Override
-    public boolean onCreate() {
-        return true;
-    }
-
-    @Override
-    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
-            String sortOrder) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public String getType(Uri uri) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public Uri insert(Uri uri, ContentValues values) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public int delete(Uri uri, String selection, String[] selectionArgs) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
-        throw new UnsupportedOperationException();
-    }
-}
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 58a51cb..4df1fdd 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectDialog.java
@@ -25,6 +25,7 @@
 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.UserHandle;
 import android.os.UserManager;
@@ -130,14 +131,14 @@
         final UserHandle user = mSelectedTile.userHandle.get(position);
         if (!mSelectedTile.hasPendingIntent()) {
             final Intent intent = new Intent(mSelectedTile.getIntent());
-            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .logStartedIntentWithProfile(intent, mSourceMetricCategory,
                             position == 1 /* isWorkProfile */);
             intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
             getActivity().startActivityAsUser(intent, user);
         } else {
             PendingIntent pendingIntent = mSelectedTile.pendingIntentMap.get(user);
-            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .logSettingsTileClickWithProfile(mSelectedTile.getKey(getContext()),
                             mSourceMetricCategory,
                             position == 1 /* isWorkProfile */);
@@ -183,7 +184,9 @@
         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()
+                    || shouldHideUserInQuietMode(userHandles.get(i), userManager)) {
                 if (DEBUG) {
                     Log.d(TAG, "Delete the user: " + userHandles.get(i).getIdentifier());
                 }
@@ -214,7 +217,9 @@
         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()
+                    || shouldHideUserInQuietMode(userHandle, userManager)) {
                 if (DEBUG) {
                     Log.d(TAG, "Delete the user: " + userHandle.getIdentifier());
                 }
@@ -223,4 +228,11 @@
             }
         }
     }
+
+    private static boolean shouldHideUserInQuietMode(
+            UserHandle userHandle, UserManager userManager) {
+        UserProperties userProperties = userManager.getUserProperties(userHandle);
+        return userProperties.getShowInQuietMode() == UserProperties.SHOW_IN_QUIET_MODE_HIDDEN
+                && userManager.isQuietModeEnabled(userHandle);
+    }
 }
diff --git a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
index 9be2177..8279588 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectFragment.java
@@ -17,23 +17,32 @@
 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.fragment.app.FragmentManager;
+import androidx.lifecycle.Lifecycle;
 import androidx.recyclerview.widget.RecyclerView;
 import androidx.viewpager2.adapter.FragmentStateAdapter;
 import androidx.viewpager2.widget.ViewPager2;
@@ -42,12 +51,15 @@
 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;
+import java.util.List;
 
 /**
  * Base fragment class for profile settings.
@@ -77,9 +89,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 +114,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;
@@ -110,7 +132,6 @@
         if (titleResId > 0) {
             activity.setTitle(titleResId);
         }
-        final int selectedTab = getTabId(activity, getArguments());
 
         final View tabContainer = mContentView.findViewById(R.id.tab_container);
         mViewPager = tabContainer.findViewById(R.id.view_pager);
@@ -129,6 +150,7 @@
                 }
         );
         tabContainer.setVisibility(View.VISIBLE);
+        final int selectedTab = getTabId(activity, getArguments());
         final TabLayout.Tab tab = tabs.getTabAt(selectedTab);
         tab.select();
 
@@ -208,19 +230,27 @@
         if (bundle != null) {
             final int extraTab = bundle.getInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, -1);
             if (extraTab != -1) {
-                return extraTab;
+                return ((ViewPagerAdapter) mViewPager.getAdapter()).getTabForPosition(extraTab);
             }
             final int userId = bundle.getInt(EXTRA_USER_ID, UserHandle.SYSTEM.getIdentifier());
             final boolean isWorkProfile = UserManager.get(activity).isManagedProfile(userId);
             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 +259,119 @@
         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(R.string.category_work));
+                    () -> 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() {});
+    }
+
+    /**
+     * 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) {
+        Fragment[] result = new Fragment[0];
+        ArrayList<Fragment> fragments = new ArrayList<>();
+
+        try {
+            UserManager userManager = context.getSystemService(UserManager.class);
+            List<UserInfo> userInfos = userManager.getProfiles(UserHandle.myUserId());
+
+            for (UserInfo userInfo : userInfos) {
+                if (userInfo.getUserHandle().isSystem()) {
+                    fragments.add(createAndGetFragment(
+                            ProfileType.PERSONAL,
+                            bundle != null ? bundle : new Bundle(),
+                            personalFragmentConstructor));
+                } else if (userInfo.isManagedProfile()) {
+                    fragments.add(createAndGetFragment(
+                            ProfileType.WORK,
+                            bundle != null ? bundle.deepCopy() : new Bundle(),
+                            workFragmentConstructor));
+                } else if (Flags.allowPrivateProfile() && userInfo.isPrivateProfile()) {
+                    if (!privateSpaceInfoProvider.isPrivateSpaceLocked(context)) {
+                        fragments.add(createAndGetFragment(
+                                ProfileType.PRIVATE,
+                                bundle != null ? bundle.deepCopy() : new Bundle(),
+                                privateFragmentConstructor));
+                    }
+                } else {
+                    Log.d(TAG, "Not showing tab for unsupported user");
+                }
+            }
+
+            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(R.string.category_personal));
+        return result;
+    }
+
+    private static Fragment createAndGetFragment(
+            @ProfileType int profileType, Bundle bundle, FragmentConstructor fragmentConstructor) {
+        bundle.putInt(EXTRA_PROFILE, profileType);
+        final Fragment fragment = fragmentConstructor.constructAndGetFragment();
+        fragment.setArguments(bundle);
+        return fragment;
+    }
+
+    @VisibleForTesting
+    void setViewPager(ViewPager2 viewPager) {
+        mViewPager = viewPager;
+    }
+
+    interface FragmentConstructor {
+        Fragment constructAndGetFragment();
+    }
+
+    interface PrivateSpaceInfoProvider {
+        default boolean isPrivateSpaceLocked(Context context) {
+            return PrivateSpaceMaintainer.getInstance(context).isPrivateSpaceLocked();
+        }
     }
 
     static class ViewPagerAdapter extends FragmentStateAdapter {
@@ -247,6 +383,15 @@
             mChildFragments = fragment.getFragments();
         }
 
+        @VisibleForTesting
+        ViewPagerAdapter(
+                @NonNull FragmentManager fragmentManager,
+                @NonNull Lifecycle lifecycle,
+                ProfileSelectFragment profileSelectFragment) {
+            super(fragmentManager, lifecycle);
+            mChildFragments = profileSelectFragment.getFragments();
+        }
+
         @Override
         public Fragment createFragment(int position) {
             return mChildFragments[position];
@@ -256,5 +401,23 @@
         public int getItemCount() {
             return mChildFragments.length;
         }
+
+        @VisibleForTesting
+        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..2caf8db 100644
--- a/src/com/android/settings/dashboard/profileselector/ProfileSelectPhysicalKeyboardFragment.java
+++ b/src/com/android/settings/dashboard/profileselector/ProfileSelectPhysicalKeyboardFragment.java
@@ -51,22 +51,13 @@
 
     @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
-        };
+        Bundle bundle = new Bundle();
+        bundle.putParcelable(Settings.EXTRA_INPUT_DEVICE_IDENTIFIER, mInputDeviceIdentifier);
+        return ProfileSelectFragment.getFragments(
+                getContext(),
+                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 f7cda69..c9e49f1 100644
--- a/src/com/android/settings/dashboard/profileselector/UserAdapter.java
+++ b/src/com/android/settings/dashboard/profileselector/UserAdapter.java
@@ -17,6 +17,7 @@
 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 android.app.ActivityManager;
@@ -27,6 +28,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -47,18 +49,21 @@
  * Adapter for a spinner that shows a list of users.
  */
 public class UserAdapter extends BaseAdapter {
+    private static final String TAG = "UserAdapter";
 
     /** 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);
+                    com.android.internal.R.attr.materialColorPrimary);
             if (userInfo.isManagedProfile()) {
                 mIcon = context.getPackageManager().getUserBadgeForDensityNoBackground(
                         userHandle, /* density= */ 0);
@@ -73,15 +78,22 @@
             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(R.string.category_personal));
-            } else {
+                        () -> context.getString(
+                                com.android.settingslib.R.string.category_personal));
+            } else if (mUserManager.isManagedProfile(userId)) {
                 return resources.getString(WORK_CATEGORY_HEADER,
-                        () -> context.getString(R.string.category_work));
+                        () -> context.getString(com.android.settingslib.R.string.category_work));
+            } else if (android.os.Flags.allowPrivateProfile()
+                    && mUserManager.getUserInfo(userId).isPrivateProfile()) {
+                return resources.getString(PRIVATE_CATEGORY_HEADER,
+                        () -> context.getString(com.android.settingslib.R.string.category_private));
             }
+            Log.w(TAG, "title requested for unexpected user id " + userId);
+            return resources.getString(PERSONAL_CATEGORY_HEADER,
+                    () -> context.getString(com.android.settingslib.R.string.category_personal));
         }
     }
 
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionStateProvider.java b/src/com/android/settings/dashboard/suggestions/SuggestionStateProvider.java
index e9a1e8d..3995db6 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionStateProvider.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionStateProvider.java
@@ -83,7 +83,7 @@
                 isComplete = true;
             } else {
                 final Context context = getContext();
-                isComplete = FeatureFactory.getFactory(context)
+                isComplete = FeatureFactory.getFeatureFactory()
                         .getSuggestionFeatureProvider()
                         .isSuggestionComplete(context, cn);
             }
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index e15cead..dbc0bc7 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -16,47 +16,48 @@
 
 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.view.View;
-import android.widget.AdapterView;
 
+import androidx.annotation.NonNull;
 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;
 
 public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceChangeListener,
@@ -72,37 +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;
 
-    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;
@@ -129,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);
@@ -149,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();
 
@@ -174,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);
@@ -189,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);
@@ -223,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.
@@ -244,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();
     }
 
@@ -261,7 +221,7 @@
     }
 
     @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
+    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
         if (preference == mRestrictBackground) {
             mDataSaverBackend.setIsDenylisted(mAppItem.key, mPackageName, !(Boolean) newValue);
             updatePrefs();
@@ -274,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;
     }
@@ -304,14 +253,17 @@
         return new UidDetailProvider(mContext);
     }
 
-    private void initCycle() {
-        mCycle = findPreference(KEY_CYCLE);
-        mCycleAdapter = new CycleAdapter(mContext, mCycle, mCycleListener);
+    @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);
         }
     }
 
@@ -337,8 +289,9 @@
             return;
         }
         setBackPreferenceListAnimatorIfLoaded();
-        final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
-                mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
+        final EnforcedAdmin admin = RestrictedLockUtilsInternal
+                .checkIfMeteredDataUsageUserControlDisabled(mContext, mPackageName,
+                        UserHandle.getUserId(mAppItem.key));
         if (mRestrictBackground != null) {
             mRestrictBackground.setChecked(!restrictBackground);
             mRestrictBackground.setDisabledByAdmin(admin);
@@ -355,41 +308,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) {
-            for (int i = 0; i < packages.length; i++) {
-                mPackages.add(packages[i]);
-            }
+            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() {
@@ -417,7 +356,6 @@
         final Activity activity = getActivity();
         final Preference pref = EntityHeaderController
                 .newInstance(activity, this, null /* header */)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setUid(uid)
                 .setHasAppInfoLink(showInfoButton)
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
@@ -425,7 +363,7 @@
                 .setIcon(mIcon)
                 .setLabel(mLabel)
                 .setPackageName(pkg)
-                .done(activity, getPrefContext());
+                .done(getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
@@ -434,89 +372,6 @@
         return SettingsEnums.APP_DATA_USAGE;
     }
 
-    private 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<List<NetworkCycleDataForUid>>() {
-            @Override
-            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(Loader<List<NetworkCycleDataForUid>> loader,
-                    List<NetworkCycleDataForUid> data) {
-                mUsageData = data;
-                mCycleAdapter.updateCycleList(data);
-                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(Loader<List<NetworkCycleDataForUid>> loader) {
-            }
-        };
-
-    private final LoaderManager.LoaderCallbacks<ArraySet<Preference>> mAppPrefCallbacks =
-        new LoaderManager.LoaderCallbacks<ArraySet<Preference>>() {
-            @Override
-            public Loader<ArraySet<Preference>> onCreateLoader(int i, Bundle bundle) {
-                return new AppPrefLoader(getPrefContext(), mPackages, getPackageManager());
-            }
-
-            @Override
-            public void onLoadFinished(Loader<ArraySet<Preference>> loader,
-                    ArraySet<Preference> preferences) {
-                if (preferences != null && mAppList != null) {
-                    for (Preference preference : preferences) {
-                        mAppList.addPreference(preference);
-                    }
-                }
-            }
-
-            @Override
-            public void onLoaderReset(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/AppDataUsagePreference.java b/src/com/android/settings/datausage/AppDataUsagePreference.java
index 2805819..d8c7392 100644
--- a/src/com/android/settings/datausage/AppDataUsagePreference.java
+++ b/src/com/android/settings/datausage/AppDataUsagePreference.java
@@ -38,6 +38,7 @@
     public AppDataUsagePreference(Context context, AppItem item, int percent,
             UidDetailProvider provider) {
         super(context);
+        setKey("app_data_usage_" + item.key);
         mItem = item;
         mPercent = percent;
 
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.java b/src/com/android/settings/datausage/BillingCyclePreference.java
deleted file mode 100644
index 1bd2be8..0000000
--- a/src/com/android/settings/datausage/BillingCyclePreference.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.os.RemoteException;
-import android.telephony.TelephonyManager;
-import android.telephony.data.ApnSetting;
-import android.util.AttributeSet;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.network.MobileDataEnabledListener;
-
-/**
- * Preference which displays billing cycle of subscription
- */
-public class BillingCyclePreference extends Preference
-        implements TemplatePreference, MobileDataEnabledListener.Client {
-
-    private NetworkTemplate mTemplate;
-    private NetworkServices mServices;
-    private int mSubId;
-    private MobileDataEnabledListener mListener;
-
-    /**
-     * Preference constructor
-     *
-     * @param context Context of preference
-     * @param arrts The attributes of the XML tag that is inflating the preference
-     */
-    public BillingCyclePreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        mListener = new MobileDataEnabledListener(context, this);
-    }
-
-    @Override
-    public void onAttached() {
-        super.onAttached();
-        mListener.start(mSubId);
-    }
-
-    @Override
-    public void onDetached() {
-        mListener.stop();
-        super.onDetached();
-    }
-
-    @Override
-    public void setTemplate(NetworkTemplate template, int subId,
-            NetworkServices services) {
-        mTemplate = template;
-        mSubId = subId;
-        mServices = services;
-        setSummary(null);
-
-        setIntent(getIntent());
-    }
-
-    private void updateEnabled() {
-        try {
-            setEnabled(mServices.mNetworkService.isBandwidthControlEnabled()
-                    && mServices.mTelephonyManager.createForSubscriptionId(mSubId)
-                            .isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
-                    && mServices.mUserManager.isAdminUser());
-        } catch (RemoteException e) {
-            setEnabled(false);
-        }
-    }
-
-    @Override
-    public Intent getIntent() {
-        final Bundle args = new Bundle();
-        args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
-        return new SubSettingLauncher(getContext())
-                .setDestination(BillingCycleSettings.class.getName())
-                .setArguments(args)
-                .setTitleRes(R.string.billing_cycle)
-                .setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
-                .toIntent();
-    }
-
-    /**
-     * Implementation of {@code MobileDataEnabledListener.Client}
-     */
-    public void onMobileDataEnabledChange() {
-        updateEnabled();
-    }
-}
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.kt b/src/com/android/settings/datausage/BillingCyclePreference.kt
new file mode 100644
index 0000000..a6904bc
--- /dev/null
+++ b/src/com/android/settings/datausage/BillingCyclePreference.kt
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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.app.settings.SettingsEnums
+import android.content.Context
+import android.net.NetworkTemplate
+import android.os.Bundle
+import android.util.AttributeSet
+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.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
+ *
+ * @param context Context of preference
+ * @param attrs   The attributes of the XML tag that is inflating the preference
+ */
+class BillingCyclePreference @JvmOverloads constructor(
+    context: Context,
+    attrs: AttributeSet?,
+    private val repository: BillingCycleRepository = BillingCycleRepository(context),
+) : ComposePreference(context, attrs), TemplatePreference {
+
+    override fun setTemplate(template: NetworkTemplate, subId: Int) {
+        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) }
+            })
+        }
+    }
+
+    private fun launchBillingCycleSettings(template: NetworkTemplate) {
+        val args = Bundle().apply {
+            putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, template)
+        }
+        SubSettingLauncher(context).apply {
+            setDestination(BillingCycleSettings::class.java.name)
+            setArguments(args)
+            setTitleRes(R.string.billing_cycle)
+            setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN)
+        }.launch()
+    }
+}
diff --git a/src/com/android/settings/datausage/BillingCyclePreferenceController.java b/src/com/android/settings/datausage/BillingCyclePreferenceController.java
index 73216ab..8b55585 100644
--- a/src/com/android/settings/datausage/BillingCyclePreferenceController.java
+++ b/src/com/android/settings/datausage/BillingCyclePreferenceController.java
@@ -17,20 +17,12 @@
 package com.android.settings.datausage;
 
 import android.content.Context;
-import android.net.NetworkPolicyManager;
 import android.net.NetworkTemplate;
-import android.os.INetworkManagementService;
-import android.os.ServiceManager;
-import android.os.UserManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.datausage.DataUsageUtils;
 import com.android.settings.datausage.lib.DataUsageLib;
-import com.android.settingslib.NetworkPolicyEditor;
 
 public class BillingCyclePreferenceController extends BasePreferenceController {
     private int mSubscriptionId;
@@ -48,18 +40,9 @@
         super.displayPreference(screen);
         BillingCyclePreference preference = screen.findPreference(getPreferenceKey());
 
-        TemplatePreference.NetworkServices services = new TemplatePreference.NetworkServices();
-        services.mNetworkService = INetworkManagementService.Stub.asInterface(
-                ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
-        services.mPolicyManager = mContext.getSystemService(NetworkPolicyManager.class);
-        services.mPolicyEditor = new NetworkPolicyEditor(services.mPolicyManager);
-        services.mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
-        services.mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
-        services.mUserManager = mContext.getSystemService(UserManager.class);
-
         NetworkTemplate template = DataUsageLib.getMobileTemplate(mContext, mSubscriptionId);
 
-        preference.setTemplate(template, mSubscriptionId, services);
+        preference.setTemplate(template, mSubscriptionId);
     }
 
     @Override
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 0e47bc4..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);
     }
 
@@ -99,7 +96,7 @@
     }
 
     @Override
-    public void setTemplate(NetworkTemplate template, int subId, NetworkServices services) {
+    public void setTemplate(NetworkTemplate template, int subId) {
         if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             throw new IllegalArgumentException("CellDataPreference needs a SubscriptionInfo");
         }
@@ -138,7 +135,7 @@
     @Override
     protected void performClick(View view) {
         final Context context = getContext();
-        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .action(context, SettingsEnums.ACTION_CELL_DATA_TOGGLE, !mChecked);
         final SubscriptionInfo currentSir = getActiveSubscriptionInfo(mSubId);
         final SubscriptionInfo nextSir = getActiveSubscriptionInfo(
@@ -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 12fb03b..e8e2109 100644
--- a/src/com/android/settings/datausage/ChartDataUsagePreference.java
+++ b/src/com/android/settings/datausage/ChartDataUsagePreference.java
@@ -26,15 +26,17 @@
 import android.util.DataUnit;
 import android.util.SparseIntArray;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
+import com.android.settings.datausage.lib.NetworkCycleChartData;
+import com.android.settings.datausage.lib.NetworkUsageData;
 import com.android.settings.widget.UsageView;
-import com.android.settingslib.net.NetworkCycleChartData;
-import com.android.settingslib.net.NetworkCycleData;
 
 import java.util.ArrayList;
 import java.util.Comparator;
@@ -51,13 +53,11 @@
     private final int mWarningColor;
     private final int mLimitColor;
 
-    private Resources mResources;
-    private NetworkPolicy mPolicy;
+    private final Resources mResources;
+    @Nullable private NetworkPolicy mPolicy;
     private long mStart;
     private long mEnd;
     private NetworkCycleChartData mNetworkCycleChartData;
-    private int mSecondaryColor;
-    private int mSeriesColor;
 
     public ChartDataUsagePreference(Context context, AttributeSet attrs) {
         super(context, attrs);
@@ -69,18 +69,16 @@
     }
 
     @Override
-    public void onBindViewHolder(PreferenceViewHolder holder) {
+    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
-        final UsageView chart = (UsageView) holder.findViewById(R.id.data_usage);
-        if (mNetworkCycleChartData == null) {
-            return;
-        }
-
+        final UsageView chart = holder.itemView.requireViewById(R.id.data_usage);
         final int top = getTop();
         chart.clearPaths();
         chart.configureGraph(toInt(mEnd - mStart), top);
-        calcPoints(chart, mNetworkCycleChartData.getUsageBuckets());
-        setupContentDescription(chart, mNetworkCycleChartData.getUsageBuckets());
+        if (mNetworkCycleChartData != null) {
+            calcPoints(chart, mNetworkCycleChartData.getDailyUsage());
+            setupContentDescription(chart, mNetworkCycleChartData.getDailyUsage());
+        }
         chart.setBottomLabels(new CharSequence[] {
                 Utils.formatDateRange(getContext(), mStart, mStart),
                 Utils.formatDateRange(getContext(), mEnd, mEnd),
@@ -90,23 +88,21 @@
     }
 
     public int getTop() {
-        final long totalData = mNetworkCycleChartData.getTotalUsage();
+        final long totalData =
+                mNetworkCycleChartData != null ? mNetworkCycleChartData.getTotal().getUsage() : 0;
         final long policyMax =
             mPolicy != null ? Math.max(mPolicy.limitBytes, mPolicy.warningBytes) : 0;
         return (int) (Math.max(totalData, policyMax) / RESOLUTION);
     }
 
     @VisibleForTesting
-    void calcPoints(UsageView chart, List<NetworkCycleData> usageSummary) {
-        if (usageSummary == null) {
-            return;
-        }
+    void calcPoints(UsageView chart, @NonNull List<NetworkUsageData> usageSummary) {
         final SparseIntArray points = new SparseIntArray();
         points.put(0, 0);
 
         final long now = System.currentTimeMillis();
         long totalData = 0;
-        for (NetworkCycleData data : usageSummary) {
+        for (NetworkUsageData data : usageSummary) {
             final long startTime = data.getStartTime();
             if (startTime > now) {
                 break;
@@ -114,11 +110,8 @@
             final long endTime = data.getEndTime();
 
             // increment by current bucket total
-            totalData += data.getTotalUsage();
+            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));
         }
@@ -127,7 +120,8 @@
         }
     }
 
-    private void setupContentDescription(UsageView chart, List<NetworkCycleData> usageSummary) {
+    private void setupContentDescription(
+            UsageView chart, @NonNull List<NetworkUsageData> usageSummary) {
         final Context context = getContext();
         final StringBuilder contentDescription = new StringBuilder();
         final int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_MONTH;
@@ -139,7 +133,7 @@
                 .getString(R.string.data_usage_chart_brief_content_description, startDate, endDate);
         contentDescription.append(briefContentDescription);
 
-        if (usageSummary == null || usageSummary.isEmpty()) {
+        if (usageSummary.isEmpty()) {
             final String noDataContentDescription = mResources
                     .getString(R.string.data_usage_chart_no_data_content_description);
             contentDescription.append(noDataContentDescription);
@@ -172,17 +166,17 @@
      * Collect the date of the same percentage, e.g., Aug 2 to Aug 22: 0%; Aug 23: 2%.
      */
     @VisibleForTesting
-    List<DataUsageSummaryNode> getDensedStatsData(List<NetworkCycleData> usageSummary) {
+    List<DataUsageSummaryNode> getDensedStatsData(@NonNull List<NetworkUsageData> usageSummary) {
         final List<DataUsageSummaryNode> dataUsageSummaryNodes = new ArrayList<>();
         final long overallDataUsage = Math.max(1L, usageSummary.stream()
-                .mapToLong(NetworkCycleData::getTotalUsage).sum());
+                .mapToLong(NetworkUsageData::getUsage).sum());
         long cumulatedDataUsage = 0L;
-        int cumulatedDataUsagePercentage = 0;
 
         // Collect List of DataUsageSummaryNode for data usage percentage information.
-        for (NetworkCycleData data : usageSummary) {
-            cumulatedDataUsage += data.getTotalUsage();
-            cumulatedDataUsagePercentage = (int) ((cumulatedDataUsage * 100) / overallDataUsage);
+        for (NetworkUsageData data : usageSummary) {
+            cumulatedDataUsage += data.getUsage();
+            int cumulatedDataUsagePercentage =
+                    (int) ((cumulatedDataUsage * 100) / overallDataUsage);
 
             final DataUsageSummaryNode node = new DataUsageSummaryNode(data.getStartTime(),
                     data.getEndTime(), cumulatedDataUsagePercentage);
@@ -270,8 +264,9 @@
         }
 
         if (policy.warningBytes != NetworkPolicy.WARNING_DISABLED) {
-            chart.setDividerLoc((int) (policy.warningBytes / RESOLUTION));
-            float weight = policy.warningBytes / RESOLUTION / (float) top;
+            int dividerLoc = (int) (policy.warningBytes / RESOLUTION);
+            chart.setDividerLoc(dividerLoc);
+            float weight = dividerLoc / (float) top;
             float above = 1 - weight;
             chart.setSideLabelWeights(above, weight);
             middleVisibility = mWarningColor;
@@ -291,29 +286,21 @@
         return new SpannableStringBuilder().append(label, new ForegroundColorSpan(mLimitColor), 0);
     }
 
-    public void setNetworkPolicy(NetworkPolicy policy) {
+    /** Sets network policy. */
+    public void setNetworkPolicy(@Nullable NetworkPolicy policy) {
         mPolicy = policy;
         notifyChanged();
     }
 
-    public long getInspectStart() {
-        return mStart;
-    }
-
-    public long getInspectEnd() {
-        return mEnd;
+    /** Sets time. */
+    public void setTime(long start, long end) {
+        mStart = start;
+        mEnd = end;
+        notifyChanged();
     }
 
     public void setNetworkCycleData(NetworkCycleChartData data) {
         mNetworkCycleChartData = data;
-        mStart = data.getStartTime();
-        mEnd = data.getEndTime();
-        notifyChanged();
-    }
-
-    public void setColors(int seriesColor, int secondaryColor) {
-        mSeriesColor = seriesColor;
-        mSecondaryColor = secondaryColor;
         notifyChanged();
     }
 }
diff --git a/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt b/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt
new file mode 100644
index 0000000..34dcb4d
--- /dev/null
+++ b/src/com/android/settings/datausage/ChartDataUsagePreferenceController.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.net.NetworkTemplate
+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
+
+class ChartDataUsagePreferenceController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+
+    private lateinit var repository: INetworkCycleDataRepository
+    private lateinit var preference: ChartDataUsagePreference
+
+    fun init(template: NetworkTemplate) {
+        this.repository = NetworkCycleDataRepository(mContext, template)
+    }
+
+    override fun getAvailabilityStatus() = AVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    /**
+     * Sets whether billing cycle modifiable.
+     *
+     * Don't bind warning / limit sweeps if not modifiable.
+     */
+    fun setBillingCycleModifiable(isModifiable: Boolean) {
+        preference.setNetworkPolicy(
+            if (isModifiable) repository.getPolicy() else null
+        )
+    }
+
+    /** Updates chart to show selected cycle. */
+    fun update(chartData: NetworkCycleChartData) {
+        preference.setTime(chartData.total.startTime, chartData.total.endTime)
+        preference.setNetworkCycleData(chartData)
+    }
+}
diff --git a/src/com/android/settings/datausage/CycleAdapter.java b/src/com/android/settings/datausage/CycleAdapter.java
index 2af4012..7cff05e 100644
--- a/src/com/android/settings/datausage/CycleAdapter.java
+++ b/src/com/android/settings/datausage/CycleAdapter.java
@@ -14,10 +14,9 @@
 package com.android.settings.datausage;
 
 import android.content.Context;
-import android.widget.AdapterView;
+import android.util.Range;
 
 import com.android.settings.Utils;
-import com.android.settingslib.net.NetworkCycleData;
 import com.android.settingslib.widget.SettingsSpinnerAdapter;
 
 import java.util.List;
@@ -25,13 +24,10 @@
 public class CycleAdapter extends SettingsSpinnerAdapter<CycleAdapter.CycleItem> {
 
     private final SpinnerInterface mSpinner;
-    private final AdapterView.OnItemSelectedListener mListener;
 
-    public CycleAdapter(Context context, SpinnerInterface spinner,
-            AdapterView.OnItemSelectedListener listener) {
+    public CycleAdapter(Context context, SpinnerInterface spinner) {
         super(context);
         mSpinner = spinner;
-        mListener = listener;
         mSpinner.setAdapter(this);
     }
 
@@ -66,16 +62,15 @@
      * Rebuild list based on network data. Always selects the newest item,
      * updating the inspection range on chartData.
      */
-    public void updateCycleList(List<? extends NetworkCycleData> cycleData) {
-        mSpinner.setOnItemSelectedListener(mListener);
+    public void updateCycleList(List<Range<Long>> cycleData) {
         // stash away currently selected cycle to try restoring below
         final CycleAdapter.CycleItem previousItem = (CycleAdapter.CycleItem)
                 mSpinner.getSelectedItem();
         clear();
 
         final Context context = getContext();
-        for (NetworkCycleData data : cycleData) {
-            add(new CycleAdapter.CycleItem(context, data.getStartTime(), data.getEndTime()));
+        for (Range<Long> cycle : cycleData) {
+            add(new CycleAdapter.CycleItem(context, cycle.getLower(), cycle.getUpper()));
         }
 
         // force pick the current cycle (first item)
@@ -122,8 +117,6 @@
     public interface SpinnerInterface {
         void setAdapter(CycleAdapter cycleAdapter);
 
-        void setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener);
-
         Object getSelectedItem();
 
         void setSelection(int position);
diff --git a/src/com/android/settings/datausage/DataPlanInfo.kt b/src/com/android/settings/datausage/DataPlanInfo.kt
new file mode 100644
index 0000000..51eb592
--- /dev/null
+++ b/src/com/android/settings/datausage/DataPlanInfo.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage
+
+data class DataPlanInfo(
+
+    /** The number of registered plans, [0, N] */
+    val dataPlanCount: Int,
+
+    /**
+     * The size of the first registered plan if one exists or the size of the warning if it is set.
+     *
+     * Set to -1 if no plan information is available.
+     */
+    val dataPlanSize: Long,
+
+    /**
+     * The "size" of the data usage bar, i.e. the amount of data its rhs end represents.
+     *
+     * Set to -1 if not display a data usage bar.
+     */
+    val dataBarSize: Long,
+
+    /** The number of bytes used since the start of the cycle. */
+    val dataPlanUse: Long,
+
+    /**
+     * The ending time of the billing cycle in ms since the epoch.
+     *
+     * Set to `null` if no cycle information is available.
+     */
+    val cycleEnd: Long?,
+
+    /** The time of the last update in milliseconds since the epoch, or -1 if unknown. */
+    val snapshotTime: Long,
+)
diff --git a/src/com/android/settings/datausage/DataPlanRepository.kt b/src/com/android/settings/datausage/DataPlanRepository.kt
new file mode 100644
index 0000000..9d34200
--- /dev/null
+++ b/src/com/android/settings/datausage/DataPlanRepository.kt
@@ -0,0 +1,75 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage
+
+import android.net.NetworkPolicy
+import android.telephony.SubscriptionPlan
+import com.android.settings.datausage.lib.INetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkCycleDataRepository.Companion.getCycles
+import com.android.settings.datausage.lib.NetworkStatsRepository
+
+interface DataPlanRepository {
+    fun getDataPlanInfo(policy: NetworkPolicy, plans: List<SubscriptionPlan>): DataPlanInfo
+}
+
+class DataPlanRepositoryImpl(
+    private val networkCycleDataRepository: INetworkCycleDataRepository,
+) : DataPlanRepository {
+    override fun getDataPlanInfo(
+        policy: NetworkPolicy,
+        plans: List<SubscriptionPlan>,
+    ): DataPlanInfo {
+        getPrimaryPlan(plans)?.let { primaryPlan ->
+            val dataPlanSize = when (primaryPlan.dataLimitBytes) {
+                SubscriptionPlan.BYTES_UNLIMITED -> SubscriptionPlan.BYTES_UNKNOWN
+                else -> primaryPlan.dataLimitBytes
+            }
+            return DataPlanInfo(
+                dataPlanCount = plans.size,
+                dataPlanSize = dataPlanSize,
+                dataBarSize = dataPlanSize,
+                dataPlanUse = primaryPlan.dataUsageBytes,
+                cycleEnd = primaryPlan.cycleRule.end?.toInstant()?.toEpochMilli(),
+                snapshotTime = primaryPlan.dataUsageTime,
+            )
+        }
+
+        val cycle = policy.getCycles().firstOrNull()
+        val dataUsage = networkCycleDataRepository.queryUsage(
+            cycle ?: NetworkStatsRepository.AllTimeRange
+        ).usage
+        return DataPlanInfo(
+            dataPlanCount = 0,
+            dataPlanSize = SubscriptionPlan.BYTES_UNKNOWN,
+            dataBarSize = maxOf(dataUsage, policy.limitBytes, policy.warningBytes),
+            dataPlanUse = dataUsage,
+            cycleEnd = cycle?.upper,
+            snapshotTime = SubscriptionPlan.TIME_UNKNOWN,
+        )
+    }
+
+    companion object {
+        private const val PETA = 1_000_000_000_000_000L
+
+        private fun getPrimaryPlan(plans: List<SubscriptionPlan>): SubscriptionPlan? =
+            plans.firstOrNull()?.takeIf { plan ->
+                plan.dataLimitBytes > 0 && validSize(plan.dataUsageBytes) && plan.cycleRule != null
+            }
+
+        private fun validSize(value: Long): Boolean = value in 0L until PETA
+    }
+}
diff --git a/src/com/android/settings/datausage/DataSaverBackend.java b/src/com/android/settings/datausage/DataSaverBackend.java
index 6a39234..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;
@@ -48,8 +50,9 @@
     public DataSaverBackend(@NotNull Context context) {
         // TODO(b/246537614):Use fragment context to DataSaverBackend class will caused memory leak
         mContext = context.getApplicationContext();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+        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/DataUsageBaseFragment.java b/src/com/android/settings/datausage/DataUsageBaseFragment.java
index eee3228..5ddbab8 100644
--- a/src/com/android/settings/datausage/DataUsageBaseFragment.java
+++ b/src/com/android/settings/datausage/DataUsageBaseFragment.java
@@ -15,23 +15,13 @@
 package com.android.settings.datausage;
 
 import android.content.Context;
-import android.net.NetworkPolicy;
 import android.net.NetworkPolicyManager;
 import android.os.Bundle;
-import android.os.INetworkManagementService;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.UserManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
 
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settingslib.NetworkPolicyEditor;
 
 public abstract class DataUsageBaseFragment extends DashboardFragment {
-    private static final String TAG = "DataUsageBase";
-    private static final String ETHERNET = "ethernet";
 
     protected final TemplatePreference.NetworkServices services =
             new TemplatePreference.NetworkServices();
@@ -41,16 +31,10 @@
         super.onCreate(icicle);
         Context context = getContext();
 
-        services.mNetworkService = INetworkManagementService.Stub.asInterface(
-                ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
         services.mPolicyManager = (NetworkPolicyManager) context
                 .getSystemService(Context.NETWORK_POLICY_SERVICE);
 
         services.mPolicyEditor = new NetworkPolicyEditor(services.mPolicyManager);
-
-        services.mTelephonyManager = context.getSystemService(TelephonyManager.class);
-        services.mSubscriptionManager = SubscriptionManager.from(context);
-        services.mUserManager = UserManager.get(context);
     }
 
     @Override
@@ -58,33 +42,4 @@
         super.onResume();
         services.mPolicyEditor.read();
     }
-
-    protected boolean isAdmin() {
-        return services.mUserManager.isAdminUser();
-    }
-
-    protected boolean isMobileDataAvailable(int subId) {
-        return services.mSubscriptionManager.getActiveSubscriptionInfo(subId) != null;
-    }
-
-    protected boolean isNetworkPolicyModifiable(NetworkPolicy policy, int subId) {
-        return policy != null && isBandwidthControlEnabled() && services.mUserManager.isAdminUser()
-                && isDataEnabled(subId);
-    }
-
-    private boolean isDataEnabled(int subId) {
-        if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            return true;
-        }
-        return services.mTelephonyManager.getDataEnabled(subId);
-    }
-
-    protected boolean isBandwidthControlEnabled() {
-        try {
-            return services.mNetworkService.isBandwidthControlEnabled();
-        } catch (RemoteException e) {
-            Log.w(TAG, "problem talking with INetworkManagementService: ", e);
-            return false;
-        }
-    }
 }
diff --git a/src/com/android/settings/datausage/DataUsageInfoController.java b/src/com/android/settings/datausage/DataUsageInfoController.java
index a471c39..380322b 100644
--- a/src/com/android/settings/datausage/DataUsageInfoController.java
+++ b/src/com/android/settings/datausage/DataUsageInfoController.java
@@ -14,8 +14,6 @@
 
 package com.android.settings.datausage;
 
-import android.net.NetworkPolicy;
-
 import com.android.settingslib.net.DataUsageController.DataUsageInfo;
 
 /**
@@ -23,21 +21,6 @@
  */
 public class DataUsageInfoController {
     /**
-     * Take the cached data usage values in the NetworkPolicy to update DataUsageInfo.
-     */
-    public void updateDataLimit(DataUsageInfo info, NetworkPolicy policy) {
-        if (info == null || policy == null) {
-            return;
-        }
-        if (policy.warningBytes >= 0) {
-            info.warningLevel = policy.warningBytes;
-        }
-        if (policy.limitBytes >= 0) {
-            info.limitLevel = policy.limitBytes;
-        }
-    }
-
-    /**
      * @returns the most appropriate limit for the data usage summary. Use the total usage when it
      * is higher than the limit and warning level. Use the limit when it is set and less than usage.
      * Otherwise use warning level.
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
deleted file mode 100644
index dd8312c..0000000
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ /dev/null
@@ -1,676 +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.datausage;
-
-import static android.app.usage.NetworkStats.Bucket.UID_REMOVED;
-import static android.app.usage.NetworkStats.Bucket.UID_TETHERING;
-import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
-
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.app.settings.SettingsEnums;
-import android.app.usage.NetworkStats;
-import android.app.usage.NetworkStats.Bucket;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.UserInfo;
-import android.graphics.Color;
-import android.net.ConnectivityManager;
-import android.net.NetworkPolicy;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.os.Process;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.util.EventLog;
-import android.util.Log;
-import android.util.SparseArray;
-import android.view.View;
-import android.view.View.AccessibilityDelegate;
-import android.view.accessibility.AccessibilityEvent;
-import android.widget.AdapterView;
-import android.widget.AdapterView.OnItemSelectedListener;
-import android.widget.ImageView;
-import android.widget.Spinner;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.loader.app.LoaderManager.LoaderCallbacks;
-import androidx.loader.content.Loader;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
-
-import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
-import com.android.settings.network.MobileDataEnabledListener;
-import com.android.settings.network.MobileNetworkRepository;
-import com.android.settings.network.ProxySubscriptionManager;
-import com.android.settings.widget.LoadingViewController;
-import com.android.settingslib.AppItem;
-import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.net.NetworkCycleChartData;
-import com.android.settingslib.net.NetworkCycleChartDataLoader;
-import com.android.settingslib.net.NetworkStatsSummaryLoader;
-import com.android.settingslib.net.UidDetail;
-import com.android.settingslib.net.UidDetailProvider;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
-
-/**
- * Panel showing data usage history across various networks, including options
- * to inspect based on usage cycle and control through {@link NetworkPolicy}.
- */
-public class DataUsageList extends DataUsageBaseFragment
-        implements MobileDataEnabledListener.Client {
-
-    static final String EXTRA_SUB_ID = "sub_id";
-    static final String EXTRA_NETWORK_TEMPLATE = "network_template";
-    static final String EXTRA_NETWORK_TYPE = "network_type";
-
-    private static final String TAG = "DataUsageList";
-    private static final boolean LOGD = false;
-
-    private static final String KEY_USAGE_AMOUNT = "usage_amount";
-    private static final String KEY_CHART_DATA = "chart_data";
-    private static final String KEY_APPS_GROUP = "apps_group";
-    private static final String KEY_TEMPLATE = "template";
-    private static final String KEY_APP = "app";
-
-    @VisibleForTesting
-    static final int LOADER_CHART_DATA = 2;
-    @VisibleForTesting
-    static final int LOADER_SUMMARY = 3;
-
-    @VisibleForTesting
-    MobileDataEnabledListener mDataStateListener;
-
-    @VisibleForTesting
-    NetworkTemplate mTemplate;
-    @VisibleForTesting
-    int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-    @VisibleForTesting
-    int mNetworkType;
-    @VisibleForTesting
-    Spinner mCycleSpinner;
-    @VisibleForTesting
-    LoadingViewController mLoadingViewController;
-
-    private ChartDataUsagePreference mChart;
-    private List<NetworkCycleChartData> mCycleData;
-    // Caches the cycles for startAppDataUsage usage, which need be cleared when resumed.
-    private ArrayList<Long> mCycles;
-    // Spinner will keep the selected cycle even after paused, this only keeps the displayed cycle,
-    // which need be cleared when resumed.
-    private CycleAdapter.CycleItem mLastDisplayedCycle;
-    private UidDetailProvider mUidDetailProvider;
-    private CycleAdapter mCycleAdapter;
-    private Preference mUsageAmount;
-    private PreferenceGroup mApps;
-    private View mHeader;
-    private MobileNetworkRepository mMobileNetworkRepository;
-    private SubscriptionInfoEntity mSubscriptionInfoEntity;
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.DATA_USAGE_LIST;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        if (isGuestUser(getContext())) {
-            Log.e(TAG, "This setting isn't available for guest user");
-            EventLog.writeEvent(0x534e4554, "262741858", -1 /* UID */, "Guest user");
-            finish();
-            return;
-        }
-
-        final Activity activity = getActivity();
-        if (!isBandwidthControlEnabled()) {
-            Log.w(TAG, "No bandwidth control; leaving");
-            activity.finish();
-            return;
-        }
-
-        mUidDetailProvider = new UidDetailProvider(activity);
-        mUsageAmount = findPreference(KEY_USAGE_AMOUNT);
-        mChart = findPreference(KEY_CHART_DATA);
-        mApps = findPreference(KEY_APPS_GROUP);
-
-        final Preference unnecessaryWarningPreference = findPreference("operator_warning");
-        if (unnecessaryWarningPreference != null) {
-            unnecessaryWarningPreference.setVisible(false);
-        }
-
-        processArgument();
-        updateSubscriptionInfoEntity();
-        mDataStateListener = new MobileDataEnabledListener(activity, this);
-    }
-
-    @Override
-    public void onViewCreated(View v, Bundle savedInstanceState) {
-        super.onViewCreated(v, savedInstanceState);
-
-        mHeader = setPinnedHeaderView(R.layout.apps_filter_spinner);
-        mHeader.findViewById(R.id.filter_settings).setOnClickListener(btn -> {
-            final Bundle args = new Bundle();
-            args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
-            new SubSettingLauncher(getContext())
-                    .setDestination(BillingCycleSettings.class.getName())
-                    .setTitleRes(R.string.billing_cycle)
-                    .setSourceMetricsCategory(getMetricsCategory())
-                    .setArguments(args)
-                    .launch();
-        });
-        mCycleSpinner = mHeader.findViewById(R.id.filter_spinner);
-        mCycleSpinner.setVisibility(View.GONE);
-        mCycleAdapter = new CycleAdapter(mCycleSpinner.getContext(), new SpinnerInterface() {
-            @Override
-            public void setAdapter(CycleAdapter cycleAdapter) {
-                mCycleSpinner.setAdapter(cycleAdapter);
-            }
-
-            @Override
-            public void setOnItemSelectedListener(OnItemSelectedListener listener) {
-                mCycleSpinner.setOnItemSelectedListener(listener);
-            }
-
-            @Override
-            public Object getSelectedItem() {
-                return mCycleSpinner.getSelectedItem();
-            }
-
-            @Override
-            public void setSelection(int position) {
-                mCycleSpinner.setSelection(position);
-            }
-        }, mCycleListener);
-        mCycleSpinner.setAccessibilityDelegate(new AccessibilityDelegate() {
-            @Override
-            public void sendAccessibilityEvent(View host, int eventType) {
-                if (eventType == AccessibilityEvent.TYPE_VIEW_SELECTED) {
-                    // Ignore TYPE_VIEW_SELECTED or TalkBack will speak for it at onResume.
-                    return;
-                }
-                super.sendAccessibilityEvent(host, eventType);
-            }
-        });
-
-        mLoadingViewController = new LoadingViewController(
-                getView().findViewById(R.id.loading_container), getListView());
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-        mLoadingViewController.showLoadingViewDelayed();
-        mDataStateListener.start(mSubId);
-        mCycles = null;
-        mLastDisplayedCycle = null;
-
-        // kick off loader for network history
-        // TODO: consider chaining two loaders together instead of reloading
-        // network history when showing app detail.
-        getLoaderManager().restartLoader(LOADER_CHART_DATA,
-                buildArgs(mTemplate), mNetworkCycleDataCallbacks);
-
-        updateBody();
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        mDataStateListener.stop();
-
-        getLoaderManager().destroyLoader(LOADER_CHART_DATA);
-        getLoaderManager().destroyLoader(LOADER_SUMMARY);
-    }
-
-    @Override
-    public void onDestroy() {
-        if (mUidDetailProvider != null) {
-            mUidDetailProvider.clearCache();
-            mUidDetailProvider = null;
-        }
-        super.onDestroy();
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.data_usage_list;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    void processArgument() {
-        final Bundle args = getArguments();
-        if (args != null) {
-            mSubId = args.getInt(EXTRA_SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-            mTemplate = args.getParcelable(EXTRA_NETWORK_TEMPLATE);
-            mNetworkType = args.getInt(EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_MOBILE);
-        }
-        if (mTemplate == null && mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            final Intent intent = getIntent();
-            mSubId = intent.getIntExtra(Settings.EXTRA_SUB_ID,
-                    SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-            mTemplate = intent.getParcelableExtra(Settings.EXTRA_NETWORK_TEMPLATE);
-
-            if (mTemplate == null) {
-                Optional<NetworkTemplate> mobileNetworkTemplateFromSim =
-                        DataUsageUtils.getMobileNetworkTemplateFromSubId(getContext(), getIntent());
-                if (mobileNetworkTemplateFromSim.isPresent()) {
-                    mTemplate = mobileNetworkTemplateFromSim.get();
-                }
-            }
-        }
-    }
-
-    @VisibleForTesting
-    void updateSubscriptionInfoEntity() {
-        mMobileNetworkRepository = MobileNetworkRepository.getInstance(getContext());
-        ThreadUtils.postOnBackgroundThread(() -> {
-            mSubscriptionInfoEntity = mMobileNetworkRepository.getSubInfoById(
-                    String.valueOf(mSubId));
-        });
-    }
-
-    /**
-     * Implementation of {@code MobileDataEnabledListener.Client}
-     */
-    public void onMobileDataEnabledChange() {
-        updatePolicy();
-    }
-
-    /**
-     * Update body content based on current tab. Loads network cycle data from system, and
-     * binds them to visible controls.
-     */
-    private void updateBody() {
-        if (!isAdded()) return;
-
-        final Context context = getActivity();
-
-        // detail mode can change visible menus, invalidate
-        getActivity().invalidateOptionsMenu();
-
-        int seriesColor = context.getColor(R.color.sim_noitification);
-        if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
-            final SubscriptionInfo sir = ProxySubscriptionManager.getInstance(context)
-                    .getActiveSubscriptionInfo(mSubId);
-
-            if (sir != null) {
-                seriesColor = sir.getIconTint();
-            }
-        }
-
-        final int secondaryColor = Color.argb(127, Color.red(seriesColor), Color.green(seriesColor),
-                Color.blue(seriesColor));
-        mChart.setColors(seriesColor, secondaryColor);
-    }
-
-    private Bundle buildArgs(NetworkTemplate template) {
-        final Bundle args = new Bundle();
-        args.putParcelable(KEY_TEMPLATE, template);
-        args.putParcelable(KEY_APP, null);
-        return args;
-    }
-
-    /**
-     * Update chart sweeps and cycle list to reflect {@link NetworkPolicy} for
-     * current {@link #mTemplate}.
-     */
-    @VisibleForTesting
-    void updatePolicy() {
-        final NetworkPolicy policy = services.mPolicyEditor.getPolicy(mTemplate);
-        final View configureButton = mHeader.findViewById(R.id.filter_settings);
-        //SUB SELECT
-        if (isNetworkPolicyModifiable(policy, mSubId) && isMobileDataAvailable(mSubId)) {
-            mChart.setNetworkPolicy(policy);
-            configureButton.setVisibility(View.VISIBLE);
-            ((ImageView) configureButton).setColorFilter(android.R.color.white);
-        } else {
-            // controls are disabled; don't bind warning/limit sweeps
-            mChart.setNetworkPolicy(null);
-            configureButton.setVisibility(View.GONE);
-        }
-
-        // generate cycle list based on policy and available history
-        mCycleAdapter.updateCycleList(mCycleData);
-        updateSelectedCycle();
-    }
-
-    /**
-     * Updates the chart and detail data when initial loaded or selected cycle changed.
-     */
-    private void updateSelectedCycle() {
-        // Avoid from updating UI after #onStop.
-        if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
-            return;
-        }
-
-        // Avoid from updating UI when async query still on-going.
-        // This could happen when a request from #onMobileDataEnabledChange.
-        if (mCycleData == null) {
-            return;
-        }
-
-        final int position = mCycleSpinner.getSelectedItemPosition();
-        if (mCycleAdapter.getCount() == 0 || position < 0) {
-            return;
-        }
-        final CycleAdapter.CycleItem cycle = mCycleAdapter.getItem(position);
-        if (Objects.equals(cycle, mLastDisplayedCycle)) {
-            // Avoid duplicate update to avoid page flash.
-            return;
-        }
-        mLastDisplayedCycle = cycle;
-
-        if (LOGD) {
-            Log.d(TAG, "showing cycle " + cycle + ", [start=" + cycle.start + ", end="
-                    + cycle.end + "]");
-        }
-
-        // update chart to show selected cycle, and update detail data
-        // to match updated sweep bounds.
-        mChart.setNetworkCycleData(mCycleData.get(position));
-
-        updateDetailData();
-    }
-
-    /**
-     * Update details based on {@link #mChart} inspection range depending on
-     * current mode. Updates {@link #mAdapter} with sorted list
-     * of applications data usage.
-     */
-    private void updateDetailData() {
-        if (LOGD) Log.d(TAG, "updateDetailData()");
-
-        // kick off loader for detailed stats
-        getLoaderManager().restartLoader(LOADER_SUMMARY, null /* args */,
-                mNetworkStatsDetailCallbacks);
-
-        final long totalBytes = mCycleData != null && !mCycleData.isEmpty()
-            ? mCycleData.get(mCycleSpinner.getSelectedItemPosition()).getTotalUsage() : 0;
-        final CharSequence totalPhrase = DataUsageUtils.formatDataUsage(getActivity(), totalBytes);
-        mUsageAmount.setTitle(getString(R.string.data_used_template, totalPhrase));
-    }
-
-    /**
-     * Bind the given {@link NetworkStats}, or {@code null} to clear list.
-     */
-    private void bindStats(NetworkStats stats, int[] restrictedUids) {
-        mApps.removeAll();
-        if (stats == null) {
-            if (LOGD) {
-                Log.d(TAG, "No network stats data. App list cleared.");
-            }
-            return;
-        }
-
-        final ArrayList<AppItem> items = new ArrayList<>();
-        long largest = 0;
-
-        final int currentUserId = ActivityManager.getCurrentUser();
-        final UserManager userManager = UserManager.get(getContext());
-        final List<UserHandle> profiles = userManager.getUserProfiles();
-        final SparseArray<AppItem> knownItems = new SparseArray<AppItem>();
-
-        final Bucket bucket = new Bucket();
-        while (stats.hasNextBucket() && stats.getNextBucket(bucket)) {
-            // Decide how to collapse items together
-            final int uid = bucket.getUid();
-            final int collapseKey;
-            final int category;
-            final int userId = UserHandle.getUserId(uid);
-            if (UserHandle.isApp(uid) || Process.isSdkSandboxUid(uid)) {
-                if (profiles.contains(new UserHandle(userId))) {
-                    if (userId != currentUserId) {
-                        // Add to a managed user item.
-                        final int managedKey = UidDetailProvider.buildKeyForUser(userId);
-                        largest = accumulate(managedKey, knownItems, bucket,
-                            AppItem.CATEGORY_USER, items, largest);
-                    }
-                    // Map SDK sandbox back to its corresponding app
-                    if (Process.isSdkSandboxUid(uid)) {
-                        collapseKey = Process.getAppUidForSdkSandboxUid(uid);
-                    } else {
-                        collapseKey = uid;
-                    }
-                    category = AppItem.CATEGORY_APP;
-                } else {
-                    // If it is a removed user add it to the removed users' key
-                    final UserInfo info = userManager.getUserInfo(userId);
-                    if (info == null) {
-                        collapseKey = UID_REMOVED;
-                        category = AppItem.CATEGORY_APP;
-                    } else {
-                        // Add to other user item.
-                        collapseKey = UidDetailProvider.buildKeyForUser(userId);
-                        category = AppItem.CATEGORY_USER;
-                    }
-                }
-            } else if (uid == UID_REMOVED || uid == UID_TETHERING
-                    || uid == Process.OTA_UPDATE_UID) {
-                collapseKey = uid;
-                category = AppItem.CATEGORY_APP;
-            } else {
-                collapseKey = android.os.Process.SYSTEM_UID;
-                category = AppItem.CATEGORY_APP;
-            }
-            largest = accumulate(collapseKey, knownItems, bucket, category, items, largest);
-        }
-        stats.close();
-
-        final int restrictedUidsMax = restrictedUids.length;
-        for (int i = 0; i < restrictedUidsMax; ++i) {
-            final int uid = restrictedUids[i];
-            // Only splice in restricted state for current user or managed users
-            if (!profiles.contains(new UserHandle(UserHandle.getUserId(uid)))) {
-                continue;
-            }
-
-            AppItem item = knownItems.get(uid);
-            if (item == null) {
-                item = new AppItem(uid);
-                item.total = -1;
-                item.addUid(uid);
-                items.add(item);
-                knownItems.put(item.key, item);
-            }
-            item.restricted = true;
-        }
-
-        Collections.sort(items);
-        final List<String> packageNames = Arrays.asList(getContext().getResources().getStringArray(
-                R.array.datausage_hiding_carrier_service_package_names));
-        // 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.
-        boolean shouldHidePackageName = mSubscriptionInfoEntity != null
-                ? Arrays.stream(getContext().getResources().getIntArray(
-                        R.array.datausage_hiding_carrier_service_carrier_id))
-                .anyMatch(carrierId -> (carrierId == mSubscriptionInfoEntity.carrierId))
-                : true;
-
-        for (int i = 0; i < items.size(); i++) {
-            UidDetail detail = mUidDetailProvider.getUidDetail(items.get(i).key, true);
-            // Do not show carrier service package in data usage list if it should be hidden for
-            // the carrier.
-            if (detail != null && shouldHidePackageName && packageNames.contains(
-                    detail.packageName)) {
-                continue;
-            }
-
-            final int percentTotal = largest != 0 ? (int) (items.get(i).total * 100 / largest) : 0;
-            final AppDataUsagePreference preference = new AppDataUsagePreference(getContext(),
-                    items.get(i), percentTotal, mUidDetailProvider);
-            preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
-                @Override
-                public boolean onPreferenceClick(Preference preference) {
-                    AppDataUsagePreference pref = (AppDataUsagePreference) preference;
-                    AppItem item = pref.getItem();
-                    startAppDataUsage(item);
-                    return true;
-                }
-            });
-            mApps.addPreference(preference);
-        }
-    }
-
-    @VisibleForTesting
-    void startAppDataUsage(AppItem item) {
-        final Bundle args = new Bundle();
-        args.putParcelable(AppDataUsage.ARG_APP_ITEM, item);
-        args.putParcelable(AppDataUsage.ARG_NETWORK_TEMPLATE, mTemplate);
-        if (mCycles == null) {
-            mCycles = new ArrayList<>();
-            for (NetworkCycleChartData data : mCycleData) {
-                if (mCycles.isEmpty()) {
-                    mCycles.add(data.getEndTime());
-                }
-                mCycles.add(data.getStartTime());
-            }
-        }
-        args.putSerializable(AppDataUsage.ARG_NETWORK_CYCLES, mCycles);
-        args.putLong(AppDataUsage.ARG_SELECTED_CYCLE,
-            mCycleData.get(mCycleSpinner.getSelectedItemPosition()).getEndTime());
-
-        new SubSettingLauncher(getContext())
-                .setDestination(AppDataUsage.class.getName())
-                .setTitleRes(R.string.data_usage_app_summary_title)
-                .setArguments(args)
-                .setSourceMetricsCategory(getMetricsCategory())
-                .launch();
-    }
-
-    /**
-     * Accumulate data usage of a network stats entry for the item mapped by the collapse key.
-     * Creates the item if needed.
-     *
-     * @param collapseKey  the collapse key used to map the item.
-     * @param knownItems   collection of known (already existing) items.
-     * @param bucket       the network stats bucket to extract data usage from.
-     * @param itemCategory the item is categorized on the list view by this category. Must be
-     */
-    private static long accumulate(int collapseKey, final SparseArray<AppItem> knownItems,
-            Bucket bucket, int itemCategory, ArrayList<AppItem> items, long largest) {
-        final int uid = bucket.getUid();
-        AppItem item = knownItems.get(collapseKey);
-        if (item == null) {
-            item = new AppItem(collapseKey);
-            item.category = itemCategory;
-            items.add(item);
-            knownItems.put(item.key, item);
-        }
-        item.addUid(uid);
-        item.total += bucket.getRxBytes() + bucket.getTxBytes();
-        return Math.max(largest, item.total);
-    }
-
-    private final OnItemSelectedListener mCycleListener = new OnItemSelectedListener() {
-        @Override
-        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-            updateSelectedCycle();
-        }
-
-        @Override
-        public void onNothingSelected(AdapterView<?> parent) {
-            // ignored
-        }
-    };
-
-    @VisibleForTesting
-    final LoaderCallbacks<List<NetworkCycleChartData>> mNetworkCycleDataCallbacks =
-            new LoaderCallbacks<List<NetworkCycleChartData>>() {
-        @Override
-        public Loader<List<NetworkCycleChartData>> onCreateLoader(int id, Bundle args) {
-            return NetworkCycleChartDataLoader.builder(getContext())
-                    .setNetworkTemplate(mTemplate)
-                    .build();
-        }
-
-        @Override
-        public void onLoadFinished(Loader<List<NetworkCycleChartData>> loader,
-                List<NetworkCycleChartData> data) {
-            mLoadingViewController.showContent(false /* animate */);
-            mCycleData = data;
-            // calculate policy cycles based on available data
-            updatePolicy();
-            mCycleSpinner.setVisibility(View.VISIBLE);
-        }
-
-        @Override
-        public void onLoaderReset(Loader<List<NetworkCycleChartData>> loader) {
-            mCycleData = null;
-        }
-    };
-
-    private final LoaderCallbacks<NetworkStats> mNetworkStatsDetailCallbacks =
-            new LoaderCallbacks<NetworkStats>() {
-        @Override
-        public Loader<NetworkStats> onCreateLoader(int id, Bundle args) {
-            return new NetworkStatsSummaryLoader.Builder(getContext())
-                    .setStartTime(mChart.getInspectStart())
-                    .setEndTime(mChart.getInspectEnd())
-                    .setNetworkTemplate(mTemplate)
-                    .build();
-        }
-
-        @Override
-        public void onLoadFinished(Loader<NetworkStats> loader, NetworkStats data) {
-            final int[] restrictedUids = services.mPolicyManager.getUidsWithPolicy(
-                    POLICY_REJECT_METERED_BACKGROUND);
-            bindStats(data, restrictedUids);
-            updateEmptyVisible();
-        }
-
-        @Override
-        public void onLoaderReset(Loader<NetworkStats> loader) {
-            bindStats(null, new int[0]);
-            updateEmptyVisible();
-        }
-
-        private void updateEmptyVisible() {
-            if ((mApps.getPreferenceCount() != 0) !=
-                    (getPreferenceScreen().getPreferenceCount() != 0)) {
-                if (mApps.getPreferenceCount() != 0) {
-                    getPreferenceScreen().addPreference(mUsageAmount);
-                    getPreferenceScreen().addPreference(mApps);
-                } else {
-                    getPreferenceScreen().removeAll();
-                }
-            }
-        }
-    };
-
-    private static boolean isGuestUser(Context context) {
-        if (context == null) return false;
-        final UserManager userManager = context.getSystemService(UserManager.class);
-        if (userManager == null) return false;
-        return userManager.isGuestUser();
-    }
-}
diff --git a/src/com/android/settings/datausage/DataUsageList.kt b/src/com/android/settings/datausage/DataUsageList.kt
new file mode 100644
index 0000000..3083fb7
--- /dev/null
+++ b/src/com/android/settings/datausage/DataUsageList.kt
@@ -0,0 +1,192 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.app.settings.SettingsEnums
+import android.net.NetworkPolicy
+import android.net.NetworkTemplate
+import android.os.Bundle
+import android.provider.Settings
+import android.telephony.SubscriptionManager
+import android.util.EventLog
+import android.util.Log
+import android.view.View
+import androidx.annotation.OpenForTesting
+import androidx.annotation.VisibleForTesting
+import androidx.fragment.app.viewModels
+import androidx.preference.Preference
+import com.android.settings.R
+import com.android.settings.dashboard.DashboardFragment
+import com.android.settings.datausage.lib.BillingCycleRepository
+import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settings.network.MobileNetworkRepository
+import com.android.settings.network.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
+
+/**
+ * Panel showing data usage history across various networks, including options
+ * to inspect based on usage cycle and control through [NetworkPolicy].
+ */
+@OpenForTesting
+open class DataUsageList : DashboardFragment() {
+    @VisibleForTesting
+    var template: NetworkTemplate? = null
+        private set
+
+    @VisibleForTesting
+    var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+        private set
+
+    private lateinit var billingCycleRepository: BillingCycleRepository
+
+    private var usageAmount: Preference? = null
+    private var subscriptionInfoEntity: SubscriptionInfoEntity? = null
+    private var dataUsageListAppsController: DataUsageListAppsController? = null
+    private var chartDataUsagePreferenceController: ChartDataUsagePreferenceController? = null
+    private var dataUsageListHeaderController: DataUsageListHeaderController? = null
+
+    private val viewModel: DataUsageListViewModel by viewModels()
+
+    override fun getMetricsCategory() = SettingsEnums.DATA_USAGE_LIST
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        billingCycleRepository = BillingCycleRepository(requireContext())
+        if (requireContext().userManager.isGuestUser) {
+            Log.e(TAG, "This setting isn't available for guest user")
+            EventLog.writeEvent(0x534e4554, "262741858", -1 /* UID */, "Guest user")
+            finish()
+            return
+        }
+        if (!billingCycleRepository.isBandwidthControlEnabled()) {
+            Log.w(TAG, "No bandwidth control; leaving")
+            finish()
+            return
+        }
+        usageAmount = findPreference(KEY_USAGE_AMOUNT)
+        processArgument()
+        val template = template
+        if (template == null) {
+            Log.e(TAG, "No template; leaving")
+            finish()
+            return
+        }
+        updateSubscriptionInfoEntity()
+        dataUsageListAppsController = use(DataUsageListAppsController::class.java).apply {
+            init(template)
+        }
+        chartDataUsagePreferenceController = use(ChartDataUsagePreferenceController::class.java)
+            .apply { init(template) }
+    }
+
+    override fun onViewCreated(v: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(v, savedInstanceState)
+
+        requireContext().mobileDataEnabledFlow(subId)
+            .collectLatestWithLifecycle(viewLifecycleOwner) { updatePolicy() }
+
+        val template = template ?: return
+        viewModel.templateFlow.value = template
+        dataUsageListHeaderController = DataUsageListHeaderController(
+            setPinnedHeaderView(R.layout.apps_filter_spinner),
+            template,
+            metricsCategory,
+            viewLifecycleOwner,
+            viewModel.cyclesFlow,
+            ::updateSelectedCycle,
+        )
+        viewModel.cyclesFlow.collectLatestWithLifecycle(viewLifecycleOwner) { cycles ->
+            dataUsageListAppsController?.updateCycles(cycles)
+        }
+        viewModel.chartDataFlow.collectLatestWithLifecycle(viewLifecycleOwner) { chartData ->
+            chartDataUsagePreferenceController?.update(chartData)
+        }
+    }
+
+    override fun getPreferenceScreenResId() = R.xml.data_usage_list
+
+    override fun getLogTag() = TAG
+
+    private fun processArgument() {
+        arguments?.let {
+            subId = it.getInt(EXTRA_SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+            template = it.getParcelable(EXTRA_NETWORK_TEMPLATE, NetworkTemplate::class.java)
+        }
+        if (template == null && subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            subId = intent.getIntExtra(
+                Settings.EXTRA_SUB_ID,
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+            )
+            template = intent.getParcelableExtra(
+                Settings.EXTRA_NETWORK_TEMPLATE,
+                NetworkTemplate::class.java,
+            ) ?: DataUsageUtils.getMobileNetworkTemplateFromSubId(context, intent).getOrNull()
+        }
+    }
+
+    private fun updateSubscriptionInfoEntity() {
+        ThreadUtils.postOnBackgroundThread {
+            subscriptionInfoEntity =
+                MobileNetworkRepository.getInstance(context).getSubInfoById(subId.toString())
+        }
+    }
+
+    /** Update chart sweeps and cycle list to reflect [NetworkPolicy] for current [template]. */
+    private fun updatePolicy() {
+        val isBillingCycleModifiable = isBillingCycleModifiable()
+        dataUsageListHeaderController?.setConfigButtonVisible(isBillingCycleModifiable)
+        chartDataUsagePreferenceController?.setBillingCycleModifiable(isBillingCycleModifiable)
+    }
+
+    private fun isBillingCycleModifiable(): Boolean =
+        billingCycleRepository.isModifiable(subId) &&
+            requireContext().getSystemService(SubscriptionManager::class.java)!!
+                .getActiveSubscriptionInfo(subId) != null
+
+    /**
+     * Updates the chart and detail data when initial loaded or selected cycle changed.
+     */
+    private fun updateSelectedCycle(usageData: NetworkUsageData) {
+        Log.d(TAG, "showing cycle $usageData")
+
+        usageAmount?.title = usageData.getDataUsedString(requireContext())
+        viewModel.selectedCycleFlow.value = usageData
+
+        updateApps(usageData)
+    }
+
+    /** Updates applications data usage. */
+    private fun updateApps(usageData: NetworkUsageData) {
+        dataUsageListAppsController?.update(
+            carrierId = subscriptionInfoEntity?.carrierId,
+            startTime = usageData.startTime,
+            endTime = usageData.endTime,
+        )
+    }
+
+    companion object {
+        const val EXTRA_SUB_ID = "sub_id"
+        const val EXTRA_NETWORK_TEMPLATE = "network_template"
+
+        private const val TAG = "DataUsageList"
+        private const val KEY_USAGE_AMOUNT = "usage_amount"
+    }
+}
diff --git a/src/com/android/settings/datausage/DataUsageListAppsController.kt b/src/com/android/settings/datausage/DataUsageListAppsController.kt
new file mode 100644
index 0000000..93623f4
--- /dev/null
+++ b/src/com/android/settings/datausage/DataUsageListAppsController.kt
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.app.ActivityManager
+import android.content.Context
+import android.net.NetworkTemplate
+import android.os.Bundle
+import androidx.annotation.OpenForTesting
+import androidx.annotation.VisibleForTesting
+import androidx.lifecycle.LifecycleCoroutineScope
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.PreferenceGroup
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.datausage.lib.AppDataUsageRepository
+import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settingslib.AppItem
+import com.android.settingslib.net.UidDetailProvider
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+@OpenForTesting
+open class DataUsageListAppsController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+
+    private val uidDetailProvider = UidDetailProvider(context)
+    private lateinit var template: NetworkTemplate
+    private lateinit var repository: AppDataUsageRepository
+    private lateinit var preference: PreferenceGroup
+    private lateinit var lifecycleScope: LifecycleCoroutineScope
+
+    private var cycleData: List<NetworkUsageData>? = null
+
+    open fun init(template: NetworkTemplate) {
+        this.template = template
+        repository = AppDataUsageRepository(
+            context = mContext,
+            currentUserId = ActivityManager.getCurrentUser(),
+            template = template,
+        ) { appItem: AppItem -> uidDetailProvider.getUidDetail(appItem.key, true).packageName }
+    }
+
+    override fun getAvailabilityStatus() = AVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        lifecycleScope = viewLifecycleOwner.lifecycleScope
+    }
+
+    fun updateCycles(cycleData: List<NetworkUsageData>) {
+        this.cycleData = cycleData
+    }
+
+    fun update(carrierId: Int?, startTime: Long, endTime: Long) = lifecycleScope.launch {
+        val apps = withContext(Dispatchers.Default) {
+            repository.getAppPercent(carrierId, startTime, endTime).map { (appItem, percent) ->
+                AppDataUsagePreference(mContext, appItem, percent, uidDetailProvider).apply {
+                    setOnPreferenceClickListener {
+                        startAppDataUsage(appItem, endTime)
+                        true
+                    }
+                }
+            }
+        }
+        preference.removeAll()
+        for (app in apps) {
+            preference.addPreference(app)
+        }
+    }
+
+    @VisibleForTesting
+    fun startAppDataUsage(item: AppItem, endTime: Long) {
+        val cycleData = cycleData ?: return
+        val args = Bundle().apply {
+            putParcelable(AppDataUsage.ARG_APP_ITEM, item)
+            putParcelable(AppDataUsage.ARG_NETWORK_TEMPLATE, template)
+            val cycles = ArrayList<Long>().apply {
+                for (data in cycleData) {
+                    if (isEmpty()) add(data.endTime)
+                    add(data.startTime)
+                }
+            }
+            putSerializable(AppDataUsage.ARG_NETWORK_CYCLES, cycles)
+            putLong(AppDataUsage.ARG_SELECTED_CYCLE, endTime)
+        }
+        SubSettingLauncher(mContext).apply {
+            setDestination(AppDataUsage::class.java.name)
+            setTitleRes(R.string.data_usage_app_summary_title)
+            setArguments(args)
+            setSourceMetricsCategory(metricsCategory)
+        }.launch()
+    }
+}
diff --git a/src/com/android/settings/datausage/DataUsageListHeaderController.kt b/src/com/android/settings/datausage/DataUsageListHeaderController.kt
new file mode 100644
index 0000000..ade891a
--- /dev/null
+++ b/src/com/android/settings/datausage/DataUsageListHeaderController.kt
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.net.NetworkTemplate
+import android.os.Bundle
+import android.util.Range
+import android.view.View
+import android.view.accessibility.AccessibilityEvent
+import android.widget.AdapterView
+import android.widget.Spinner
+import androidx.annotation.OpenForTesting
+import androidx.lifecycle.LifecycleOwner
+import com.android.settings.R
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.datausage.CycleAdapter.SpinnerInterface
+import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.flow.Flow
+
+@OpenForTesting
+open class DataUsageListHeaderController(
+    header: View,
+    template: NetworkTemplate,
+    sourceMetricsCategory: Int,
+    viewLifecycleOwner: LifecycleOwner,
+    cyclesFlow: Flow<List<NetworkUsageData>>,
+    private val updateSelectedCycle: (usageData: NetworkUsageData) -> Unit,
+) {
+    private val context = header.context
+
+    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
+        }
+
+        override fun getSelectedItem() = cycleSpinner.selectedItem
+
+        override fun setSelection(position: Int) {
+            cycleSpinner.setSelection(position)
+            if (cycleSpinner.onItemSelectedListener == null) {
+                cycleSpinner.onItemSelectedListener = cycleListener
+            } else {
+                setSelectedCycle(position)
+            }
+        }
+    })
+
+    private var cycles: List<NetworkUsageData> = emptyList()
+
+    init {
+        configureButton.setOnClickListener {
+            val args = Bundle().apply {
+                putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, template)
+            }
+            SubSettingLauncher(context).apply {
+                setDestination(BillingCycleSettings::class.java.name)
+                setTitleRes(R.string.billing_cycle)
+                setSourceMetricsCategory(sourceMetricsCategory)
+                setArguments(args)
+            }.launch()
+        }
+        cycleSpinner.visibility = View.GONE
+        cycleSpinner.accessibilityDelegate = object : View.AccessibilityDelegate() {
+            override fun sendAccessibilityEvent(host: View, eventType: Int) {
+                // Ignore TYPE_VIEW_SELECTED or TalkBack will speak for it at onResume.
+                if (eventType == AccessibilityEvent.TYPE_VIEW_SELECTED) return
+                super.sendAccessibilityEvent(host, eventType)
+            }
+        }
+
+        cyclesFlow.collectLatestWithLifecycle(viewLifecycleOwner) {
+            cycles = it
+            updateCycleData()
+        }
+    }
+
+    open fun setConfigButtonVisible(visible: Boolean) {
+        configureButton.visibility = if (visible) View.VISIBLE else View.GONE
+    }
+
+    private fun updateCycleData() {
+        cycleAdapter.updateCycleList(cycles.map { Range(it.startTime, it.endTime) })
+        cycleSpinner.visibility = View.VISIBLE
+    }
+
+    private fun setSelectedCycle(position: Int) {
+        cycles.getOrNull(position)?.let(updateSelectedCycle)
+    }
+}
diff --git a/src/com/android/settings/datausage/DataUsageListViewModel.kt b/src/com/android/settings/datausage/DataUsageListViewModel.kt
new file mode 100644
index 0000000..7d7a1d6
--- /dev/null
+++ b/src/com/android/settings/datausage/DataUsageListViewModel.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.datausage
+
+import android.app.Application
+import android.net.NetworkTemplate
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import com.android.settings.datausage.lib.NetworkCycleBucketRepository
+import com.android.settings.datausage.lib.NetworkStatsRepository
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.filterTime
+import com.android.settings.datausage.lib.NetworkUsageData
+import kotlinx.coroutines.Dispatchers
+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.stateIn
+import kotlinx.coroutines.plus
+
+data class SelectedBuckets(
+    val selectedCycle: NetworkUsageData,
+    val buckets: List<Bucket>,
+)
+
+class DataUsageListViewModel(application: Application) : AndroidViewModel(application) {
+    private val scope = viewModelScope + Dispatchers.Default
+
+    val templateFlow = MutableStateFlow<NetworkTemplate?>(null)
+
+    private val bucketsFlow = templateFlow.filterNotNull().map { template ->
+        NetworkStatsRepository(getApplication(), template).queryDetailsForDevice()
+    }.stateIn(scope, SharingStarted.WhileSubscribed(), emptyList())
+
+    val cyclesFlow = combine(templateFlow.filterNotNull(), bucketsFlow) { template, buckets ->
+        NetworkCycleBucketRepository(application, template, buckets).loadCycles()
+    }.flowOn(Dispatchers.Default)
+
+    val selectedCycleFlow = MutableStateFlow<NetworkUsageData?>(null)
+
+    private val selectedBucketsFlow =
+        combine(selectedCycleFlow.filterNotNull(), bucketsFlow) { selectedCycle, buckets ->
+            SelectedBuckets(
+                selectedCycle = selectedCycle,
+                buckets = buckets.filterTime(selectedCycle.startTime, selectedCycle.endTime),
+            )
+        }.flowOn(Dispatchers.Default)
+
+    val chartDataFlow =
+        combine(templateFlow.filterNotNull(), selectedBucketsFlow) { template, selectedBuckets ->
+            NetworkCycleBucketRepository(application, template, selectedBuckets.buckets)
+                .queryChartData(selectedBuckets.selectedCycle)
+        }.flowOn(Dispatchers.Default)
+}
diff --git a/src/com/android/settings/datausage/DataUsagePreference.java b/src/com/android/settings/datausage/DataUsagePreference.java
index 0ed0ad3..07368c7 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -18,7 +18,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.TypedArray;
-import android.net.ConnectivityManager;
 import android.net.NetworkTemplate;
 import android.os.Bundle;
 import android.util.AttributeSet;
@@ -49,7 +48,7 @@
     }
 
     @Override
-    public void setTemplate(NetworkTemplate template, int subId, NetworkServices services) {
+    public void setTemplate(NetworkTemplate template, int subId) {
         mTemplate = template;
         mSubId = subId;
         final DataUsageController controller = getDataUsageController();
@@ -78,9 +77,6 @@
         final SubSettingLauncher launcher;
         args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mTemplate);
         args.putInt(DataUsageList.EXTRA_SUB_ID, mSubId);
-        args.putInt(DataUsageList.EXTRA_NETWORK_TYPE, mTemplate.getMatchRule()
-                == NetworkTemplate.MATCH_MOBILE
-                ? ConnectivityManager.TYPE_MOBILE : ConnectivityManager.TYPE_WIFI);
         launcher = new SubSettingLauncher(getContext())
             .setArguments(args)
             .setDestination(DataUsageList.class.getName())
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 25fc49b..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,21 +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";
-    public static final String KEY_MOBILE_DATA_USAGE_TOGGLE = "data_usage_enable";
-    public static final String KEY_MOBILE_DATA_USAGE = "cellular_data_usage";
-    public static final String KEY_MOBILE_BILLING_CYCLE = "billing_preference";
 
-    // Wifi keys
-    public static final String KEY_WIFI_USAGE_TITLE = "wifi_category";
-    public static final String KEY_WIFI_DATA_USAGE = "wifi_data_usage";
-
-    private DataUsageSummaryPreference mSummaryPreference;
-    private DataUsageSummaryPreferenceController mSummaryController;
-    private NetworkTemplate mDefaultTemplate;
     private ProxySubscriptionManager mProxySubscriptionMgr;
 
     @Override
@@ -107,10 +95,8 @@
         if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
             hasMobileData = false;
         }
-        mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, defaultSubId);
-        mSummaryPreference = findPreference(KEY_STATUS_HEADER);
 
-        if (!hasMobileData || !isAdmin()) {
+        if (!hasMobileData || !UserManager.get(context).isAdminUser()) {
             removePreference(KEY_RESTRICT_BACKGROUND);
         }
         boolean hasWifiRadio = DataUsageUtils.hasWifiRadio(context);
@@ -134,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;
     }
@@ -160,11 +137,9 @@
             MobileNetworkUtils.isMobileNetworkUserRestricted(context)) {
             return controllers;
         }
-        mSummaryController =
-                new DataUsageSummaryPreferenceController(activity, getSettingsLifecycle(), this,
-                        DataUsageUtils.getDefaultSubscriptionId(activity));
+        final var mSummaryController = new DataUsageSummaryPreferenceController(activity,
+                DataUsageUtils.getDefaultSubscriptionId(activity));
         controllers.add(mSummaryController);
-        getSettingsLifecycle().addObserver(mSummaryController);
         return controllers;
     }
 
@@ -191,9 +166,8 @@
     private void addMobileSection(int subId, SubscriptionInfo subInfo) {
         TemplatePreferenceCategory category = (TemplatePreferenceCategory)
                 inflatePreferences(R.xml.data_usage_cellular);
-        category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId),
-                subId, services);
-        category.pushTemplates(services);
+        category.setTemplate(DataUsageLib.getMobileTemplate(getContext(), subId), subId);
+        category.pushTemplates();
         final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName(
                 subInfo, getContext());
         if (subInfo != null && !TextUtils.isEmpty(displayName)) {
@@ -206,15 +180,14 @@
     void addWifiSection() {
         TemplatePreferenceCategory category = (TemplatePreferenceCategory)
                 inflatePreferences(R.xml.data_usage_wifi);
-        category.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build(),
-                0, services);
+        category.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build(), 0);
     }
 
     private void addEthernetSection() {
         TemplatePreferenceCategory category = (TemplatePreferenceCategory)
                 inflatePreferences(R.xml.data_usage_ethernet);
-        category.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_ETHERNET).build(),
-                0, services);
+        category.setTemplate(
+                new NetworkTemplate.Builder(NetworkTemplate.MATCH_ETHERNET).build(), 0);
     }
 
     private Preference inflatePreferences(int resId) {
@@ -267,10 +240,10 @@
     private void updateState() {
         PreferenceScreen screen = getPreferenceScreen();
         for (int i = 1; i < screen.getPreferenceCount(); i++) {
-          Preference currentPreference = screen.getPreference(i);
-          if (currentPreference instanceof TemplatePreferenceCategory) {
-            ((TemplatePreferenceCategory) currentPreference).pushTemplates(services);
-          }
+            Preference currentPreference = screen.getPreference(i);
+            if (currentPreference instanceof TemplatePreferenceCategory) {
+                ((TemplatePreferenceCategory) currentPreference).pushTemplates();
+            }
         }
     }
 
@@ -279,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/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 86e01ed..93d930c 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -17,14 +17,9 @@
 package com.android.settings.datausage;
 
 import android.annotation.AttrRes;
-import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.content.Intent;
 import android.graphics.Typeface;
 import android.icu.text.MessageFormat;
-import android.net.ConnectivityManager;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.TextUtils;
@@ -32,19 +27,18 @@
 import android.text.style.AbsoluteSizeSpan;
 import android.util.AttributeSet;
 import android.view.View;
-import android.widget.Button;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
-import com.android.settings.core.SubSettingLauncher;
 import com.android.settingslib.Utils;
-import com.android.settingslib.net.DataUsageController;
 import com.android.settingslib.utils.StringUtil;
 
 import java.util.HashMap;
@@ -67,27 +61,18 @@
     private CharSequence mStartLabel;
     private CharSequence mEndLabel;
 
-    /** large vs small size is 36/16 ~ 2.25 */
-    private static final float LARGER_FONT_RATIO = 2.25f;
-    private static final float SMALLER_FONT_RATIO = 1.0f;
-
-    private boolean mDefaultTextColorSet;
-    private int mDefaultTextColor;
     private int mNumPlans;
-    /** The specified un-initialized value for cycle time */
-    private final long CYCLE_TIME_UNINITIAL_VALUE = 0;
     /** The ending time of the billing cycle in milliseconds since epoch. */
-    private long mCycleEndTimeMs;
+    @Nullable
+    private Long mCycleEndTimeMs;
     /** The time of the last update in standard milliseconds since the epoch */
     private long mSnapshotTimeMs;
     /** Name of carrier, or null if not available */
     private CharSequence mCarrierName;
     private CharSequence mLimitInfoText;
-    private Intent mLaunchIntent;
 
     /** Progress to display on ProgressBar */
     private float mProgress;
-    private boolean mHasMobileData;
 
     /**
      * The size of the first registered plan if one exists or the size of the warning if it is set.
@@ -98,11 +83,6 @@
     /** The number of bytes used since the start of the cycle. */
     private long mDataplanUse;
 
-    /** WiFi only mode */
-    private boolean mWifiMode;
-    private String mUsagePeriod;
-    private boolean mSingleWifi;    // Shows only one specified WiFi network usage
-
     public DataUsageSummaryPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
         setLayoutResource(R.layout.data_usage_summary_preference);
@@ -120,13 +100,15 @@
         notifyChanged();
     }
 
-    public void setUsageInfo(long cycleEnd, long snapshotTime, CharSequence carrierName,
-            int numPlans, Intent launchIntent) {
+    /**
+     * Sets the usage info.
+     */
+    public void setUsageInfo(@Nullable Long cycleEnd, long snapshotTime, CharSequence carrierName,
+            int numPlans) {
         mCycleEndTimeMs = cycleEnd;
         mSnapshotTimeMs = snapshotTime;
         mCarrierName = carrierName;
         mNumPlans = numPlans;
-        mLaunchIntent = launchIntent;
         notifyChanged();
     }
 
@@ -143,22 +125,17 @@
         notifyChanged();
     }
 
-    void setUsageNumbers(long used, long dataPlanSize, boolean hasMobileData) {
+    /**
+     * Sets the usage numbers.
+     */
+    public void setUsageNumbers(long used, long dataPlanSize) {
         mDataplanUse = used;
         mDataplanSize = dataPlanSize;
-        mHasMobileData = hasMobileData;
-        notifyChanged();
-    }
-
-    void setWifiMode(boolean isWifiMode, String usagePeriod, boolean isSingleWifi) {
-        mWifiMode = isWifiMode;
-        mUsagePeriod = usagePeriod;
-        mSingleWifi = isSingleWifi;
         notifyChanged();
     }
 
     @Override
-    public void onBindViewHolder(PreferenceViewHolder holder) {
+    public void onBindViewHolder(@NonNull PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
 
         ProgressBar bar = getProgressBar(holder);
@@ -177,66 +154,13 @@
 
         TextView usageTitle = getUsageTitle(holder);
         TextView carrierInfo = getCarrierInfo(holder);
-        Button launchButton = getLaunchButton(holder);
         TextView limitInfo = getDataLimits(holder);
 
-        if (mWifiMode && mSingleWifi) {
-            updateCycleTimeText(holder);
-
-            usageTitle.setVisibility(View.GONE);
-            launchButton.setVisibility(View.GONE);
-            carrierInfo.setVisibility(View.GONE);
-
-            limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
-            limitInfo.setText(mLimitInfoText);
-        } else if (mWifiMode) {
-            usageTitle.setText(R.string.data_usage_wifi_title);
-            usageTitle.setVisibility(View.VISIBLE);
-            TextView cycleTime = getCycleTime(holder);
-            cycleTime.setText(mUsagePeriod);
-            carrierInfo.setVisibility(View.GONE);
-            limitInfo.setVisibility(View.GONE);
-
-            final long usageLevel = getHistoricalUsageLevel();
-            if (usageLevel > 0L) {
-                launchButton.setOnClickListener((view) -> {
-                    launchWifiDataUsage(getContext());
-                });
-            } else {
-                launchButton.setEnabled(false);
-            }
-            launchButton.setText(R.string.launch_wifi_text);
-            launchButton.setVisibility(View.VISIBLE);
-        } else {
-            usageTitle.setVisibility(mNumPlans > 1 ? View.VISIBLE : View.GONE);
-            updateCycleTimeText(holder);
-            updateCarrierInfo(carrierInfo);
-            if (mLaunchIntent != null) {
-                launchButton.setOnClickListener((view) -> {
-                    getContext().startActivity(mLaunchIntent);
-                });
-                launchButton.setVisibility(View.VISIBLE);
-            } else {
-                launchButton.setVisibility(View.GONE);
-            }
-            limitInfo.setVisibility(
-                    TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
-            limitInfo.setText(mLimitInfoText);
-        }
-    }
-
-    @VisibleForTesting
-    static void launchWifiDataUsage(Context context) {
-        final Bundle args = new Bundle(1);
-        args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
-                new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-        args.putInt(DataUsageList.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_WIFI);
-        final SubSettingLauncher launcher = new SubSettingLauncher(context)
-                .setArguments(args)
-                .setDestination(DataUsageList.class.getName())
-                .setSourceMetricsCategory(SettingsEnums.PAGE_UNKNOWN);
-        launcher.setTitleRes(R.string.wifi_data_usage);
-        launcher.launch();
+        usageTitle.setVisibility(mNumPlans > 1 ? View.VISIBLE : View.GONE);
+        updateCycleTimeText(holder);
+        updateCarrierInfo(carrierInfo);
+        limitInfo.setVisibility(TextUtils.isEmpty(mLimitInfoText) ? View.GONE : View.VISIBLE);
+        limitInfo.setText(mLimitInfoText);
     }
 
     private void updateDataUsageLabels(PreferenceViewHolder holder) {
@@ -257,7 +181,7 @@
 
         final MeasurableLinearLayout layout = getLayout(holder);
 
-        if (mHasMobileData && mNumPlans >= 0 && mDataplanSize > 0L) {
+        if (mDataplanSize > 0L) {
             TextView usageRemainingField = getDataRemaining(holder);
             long dataRemaining = mDataplanSize - mDataplanUse;
             if (dataRemaining >= 0) {
@@ -283,7 +207,7 @@
         TextView cycleTime = getCycleTime(holder);
 
         // Takes zero as a special case which value is never set.
-        if (mCycleEndTimeMs == CYCLE_TIME_UNINITIAL_VALUE) {
+        if (mCycleEndTimeMs == null) {
             cycleTime.setVisibility(View.GONE);
             return;
         }
@@ -307,7 +231,7 @@
 
 
     private void updateCarrierInfo(TextView carrierInfo) {
-        if (mNumPlans > 0 && mSnapshotTimeMs >= 0L) {
+        if (mSnapshotTimeMs >= 0L) {
             carrierInfo.setVisibility(View.VISIBLE);
             long updateAgeMillis = calculateTruncatedUpdateAge();
 
@@ -373,13 +297,6 @@
     }
 
     @VisibleForTesting
-    protected long getHistoricalUsageLevel() {
-        final DataUsageController controller = new DataUsageController(getContext());
-        return controller.getHistoricalUsageLevel(
-                new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-    }
-
-    @VisibleForTesting
     protected TextView getUsageTitle(PreferenceViewHolder holder) {
         return (TextView) holder.findViewById(R.id.usage_title);
     }
@@ -410,11 +327,6 @@
     }
 
     @VisibleForTesting
-    protected Button getLaunchButton(PreferenceViewHolder holder) {
-        return (Button) holder.findViewById(R.id.launch_mdp_app_button);
-    }
-
-    @VisibleForTesting
     protected LinearLayout getLabelBar(PreferenceViewHolder holder) {
         return (LinearLayout) holder.findViewById(R.id.label_bar);
     }
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
deleted file mode 100644
index fe20a01..0000000
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ /dev/null
@@ -1,398 +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.datausage;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.net.INetworkPolicyManager;
-import android.net.NetworkPolicyManager;
-import android.net.NetworkTemplate;
-import android.os.ServiceManager;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.SubscriptionPlan;
-import android.text.TextUtils;
-import android.util.Log;
-import android.util.RecurrenceRule;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.internal.util.CollectionUtils;
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.datausage.lib.DataUsageLib;
-import com.android.settings.network.ProxySubscriptionManager;
-import com.android.settings.network.telephony.TelephonyBasePreferenceController;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.NetworkPolicyEditor;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.net.DataUsageController;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.List;
-import java.util.concurrent.Future;
-
-/**
- * This is the controller for a data usage header that retrieves carrier data from the new
- * subscriptions framework API if available. The controller reads subscription information from the
- * framework and falls back to legacy usage data if none are available.
- */
-public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenceController
-        implements PreferenceControllerMixin, LifecycleObserver, OnStart {
-
-    private static final String TAG = "DataUsageController";
-    private static final String KEY = "status_header";
-    private static final long PETA = 1000000000000000L;
-    private static final float RELATIVE_SIZE_LARGE = 1.25f * 1.25f;  // (1/0.8)^2
-    private static final float RELATIVE_SIZE_SMALL = 1.0f / RELATIVE_SIZE_LARGE;  // 0.8^2
-
-    private EntityHeaderController mEntityHeaderController;
-    private final Lifecycle mLifecycle;
-    private final PreferenceFragmentCompat mFragment;
-    protected DataUsageController mDataUsageController;
-    protected DataUsageInfoController mDataInfoController;
-    private NetworkTemplate mDefaultTemplate;
-    protected NetworkPolicyEditor mPolicyEditor;
-    private int mDataUsageTemplate;
-    private boolean mHasMobileData;
-
-    /** Name of the carrier, or null if not available */
-    private CharSequence mCarrierName;
-
-    /** The number of registered plans, [0,N] */
-    private int mDataplanCount;
-
-    /** The time of the last update in milliseconds since the epoch, or -1 if unknown */
-    private long mSnapshotTime;
-
-    /**
-     * The size of the first registered plan if one exists or the size of the warning if it is set.
-     * -1 if no information is available.
-     */
-    private long mDataplanSize;
-    /** The "size" of the data usage bar, i.e. the amount of data its rhs end represents */
-    private long mDataBarSize;
-    /** The number of bytes used since the start of the cycle. */
-    private long mDataplanUse;
-    /** The starting time of the billing cycle in ms since the epoch */
-    private long mCycleStart;
-    /** The ending time of the billing cycle in ms since the epoch */
-    private long mCycleEnd;
-
-    private Intent mManageSubscriptionIntent;
-
-    private Future<Long> mHistoricalUsageLevel;
-
-    public DataUsageSummaryPreferenceController(Activity activity,
-            Lifecycle lifecycle, PreferenceFragmentCompat fragment, int subscriptionId) {
-        super(activity, KEY);
-
-        mLifecycle = lifecycle;
-        mFragment = fragment;
-        init(subscriptionId);
-    }
-
-    /**
-     * Initialize based on subscription ID provided
-     * @param subscriptionId is the target subscriptionId
-     */
-    public void init(int subscriptionId) {
-        mSubId = subscriptionId;
-        mHasMobileData = DataUsageUtils.hasMobileData(mContext);
-        mDataUsageController = null;
-    }
-
-    protected void updateConfiguration(Context context,
-            int subscriptionId, SubscriptionInfo subInfo) {
-        final NetworkPolicyManager policyManager =
-                context.getSystemService(NetworkPolicyManager.class);
-        mPolicyEditor = new NetworkPolicyEditor(policyManager);
-
-        mDataUsageController = createDataUsageController(context);
-        mDataUsageController.setSubscriptionId(subscriptionId);
-        mDataInfoController = new DataUsageInfoController();
-
-        if (subInfo != null) {
-            mDataUsageTemplate = R.string.cell_data_template;
-            mDefaultTemplate = DataUsageLib.getMobileTemplate(context, subscriptionId);
-        } else if (DataUsageUtils.hasWifiRadio(context)) {
-            mDataUsageTemplate = R.string.wifi_data_template;
-            mDefaultTemplate = new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build();
-        } else {
-            mDataUsageTemplate = R.string.ethernet_data_template;
-            mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, subscriptionId);
-        }
-    }
-
-    @VisibleForTesting
-    DataUsageController createDataUsageController(Context context) {
-        return new DataUsageController(context);
-    }
-
-    @VisibleForTesting
-    DataUsageSummaryPreferenceController(
-            DataUsageController dataUsageController,
-            DataUsageInfoController dataInfoController,
-            NetworkTemplate defaultTemplate,
-            NetworkPolicyEditor policyEditor,
-            int dataUsageTemplate,
-            Activity activity,
-            Lifecycle lifecycle,
-            EntityHeaderController entityHeaderController,
-            PreferenceFragmentCompat fragment,
-            int subscriptionId) {
-        super(activity, KEY);
-        mDataUsageController = dataUsageController;
-        mDataInfoController = dataInfoController;
-        mDefaultTemplate = defaultTemplate;
-        mPolicyEditor = policyEditor;
-        mDataUsageTemplate = dataUsageTemplate;
-        mHasMobileData = true;
-        mLifecycle = lifecycle;
-        mEntityHeaderController = entityHeaderController;
-        mFragment = fragment;
-        mSubId = subscriptionId;
-    }
-
-    @Override
-    public void onStart() {
-        if (mEntityHeaderController == null) {
-            mEntityHeaderController =
-                    EntityHeaderController.newInstance((Activity) mContext, mFragment, null);
-        }
-        RecyclerView view = mFragment.getListView();
-        mEntityHeaderController.setRecyclerView(view, mLifecycle);
-    }
-
-    @VisibleForTesting
-    List<SubscriptionPlan> getSubscriptionPlans(int subscriptionId) {
-        return ProxySubscriptionManager.getInstance(mContext).get()
-                .getSubscriptionPlans(subscriptionId);
-    }
-
-    protected SubscriptionInfo getSubscriptionInfo(int subscriptionId) {
-        if (!mHasMobileData) {
-            return null;
-        }
-        return ProxySubscriptionManager.getInstance(mContext)
-                .getAccessibleSubscriptionInfo(subscriptionId);
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        return (getSubscriptionInfo(subId) != null)
-                || DataUsageUtils.hasWifiRadio(mContext) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        DataUsageSummaryPreference summaryPreference = (DataUsageSummaryPreference) preference;
-
-        final SubscriptionInfo subInfo = getSubscriptionInfo(mSubId);
-        if (mDataUsageController == null) {
-            updateConfiguration(mContext, mSubId, subInfo);
-        }
-
-        mHistoricalUsageLevel = ThreadUtils.postOnBackgroundThread(() ->
-                mDataUsageController.getHistoricalUsageLevel(mDefaultTemplate));
-
-        final DataUsageController.DataUsageInfo info =
-                mDataUsageController.getDataUsageInfo(mDefaultTemplate);
-
-        long usageLevel = info.usageLevel;
-
-        if (subInfo != null) {
-            mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
-            summaryPreference.setWifiMode(/* isWifiMode */ false,
-                    /* usagePeriod */ null, /* isSingleWifi */ false);
-        } else {
-            summaryPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
-                    info.period, /* isSingleWifi */ false);
-            summaryPreference.setLimitInfo(null);
-            summaryPreference.setUsageNumbers(displayUsageLevel(usageLevel),
-                    /* dataPlanSize */ -1L,
-                    /* hasMobileData */ true);
-            summaryPreference.setChartEnabled(false);
-            summaryPreference.setUsageInfo(info.cycleEnd,
-                    /* snapshotTime */ -1L,
-                    /* carrierName */ null,
-                    /* numPlans */ 0,
-                    /* launchIntent */ null);
-            return;
-        }
-
-        refreshDataplanInfo(info, subInfo);
-
-        if (info.warningLevel > 0 && info.limitLevel > 0) {
-            summaryPreference.setLimitInfo(TextUtils.expandTemplate(
-                    mContext.getText(R.string.cell_data_warning_and_limit),
-                    DataUsageUtils.formatDataUsage(mContext, info.warningLevel),
-                    DataUsageUtils.formatDataUsage(mContext, info.limitLevel)));
-        } else if (info.warningLevel > 0) {
-            summaryPreference.setLimitInfo(TextUtils.expandTemplate(
-                    mContext.getText(R.string.cell_data_warning),
-                    DataUsageUtils.formatDataUsage(mContext, info.warningLevel)));
-        } else if (info.limitLevel > 0) {
-            summaryPreference.setLimitInfo(TextUtils.expandTemplate(
-                    mContext.getText(R.string.cell_data_limit),
-                    DataUsageUtils.formatDataUsage(mContext, info.limitLevel)));
-        } else {
-            summaryPreference.setLimitInfo(null);
-        }
-
-        if ((mDataplanUse <= 0L) && (mSnapshotTime < 0)) {
-            Log.d(TAG, "Display data usage from history");
-            mDataplanUse = displayUsageLevel(usageLevel);
-            mSnapshotTime = -1L;
-        }
-
-        summaryPreference.setUsageNumbers(mDataplanUse, mDataplanSize, mHasMobileData);
-
-        if (mDataBarSize <= 0) {
-            summaryPreference.setChartEnabled(false);
-        } else {
-            summaryPreference.setChartEnabled(true);
-            summaryPreference.setLabels(DataUsageUtils.formatDataUsage(mContext, 0 /* sizeBytes */),
-                    DataUsageUtils.formatDataUsage(mContext, mDataBarSize));
-            summaryPreference.setProgress(mDataplanUse / (float) mDataBarSize);
-        }
-        summaryPreference.setUsageInfo(mCycleEnd, mSnapshotTime, mCarrierName,
-                mDataplanCount, mManageSubscriptionIntent);
-    }
-
-    private long displayUsageLevel(long usageLevel) {
-        if (usageLevel > 0) {
-            return usageLevel;
-        }
-        try {
-            usageLevel = mHistoricalUsageLevel.get();
-        } catch (Exception ex) {
-        }
-        return usageLevel;
-    }
-
-    // TODO(b/70950124) add test for this method once the robolectric shadow run script is
-    // completed (b/3526807)
-    private void refreshDataplanInfo(DataUsageController.DataUsageInfo info,
-            SubscriptionInfo subInfo) {
-        // reset data before overwriting
-        mCarrierName = null;
-        mDataplanCount = 0;
-        mDataplanSize = -1L;
-        mDataBarSize = mDataInfoController.getSummaryLimit(info);
-        mDataplanUse = info.usageLevel;
-        mCycleStart = info.cycleStart;
-        mCycleEnd = info.cycleEnd;
-        mSnapshotTime = -1L;
-
-        if (subInfo != null && mHasMobileData) {
-            mCarrierName = subInfo.getCarrierName();
-            final List<SubscriptionPlan> plans = getSubscriptionPlans(mSubId);
-            final SubscriptionPlan primaryPlan = getPrimaryPlan(plans);
-
-            if (primaryPlan != null) {
-                mDataplanCount = plans.size();
-                mDataplanSize = primaryPlan.getDataLimitBytes();
-                if (unlimited(mDataplanSize)) {
-                    mDataplanSize = -1L;
-                }
-                mDataBarSize = mDataplanSize;
-                mDataplanUse = primaryPlan.getDataUsageBytes();
-
-                RecurrenceRule rule = primaryPlan.getCycleRule();
-                if (rule != null && rule.start != null && rule.end != null) {
-                    mCycleStart = rule.start.toEpochSecond() * 1000L;
-                    mCycleEnd = rule.end.toEpochSecond() * 1000L;
-                }
-                mSnapshotTime = primaryPlan.getDataUsageTime();
-            }
-        }
-        // Temporarily return null, since no current users of SubscriptionPlan have this intent set.
-        // TODO (b/170330084): Remove after refactoring 5G SubscriptionPlan logic.
-        // mManageSubscriptionIntent = createManageSubscriptionIntent(mSubId);
-        mManageSubscriptionIntent = null;
-        Log.i(TAG, "Have " + mDataplanCount + " plans, dflt sub-id " + mSubId
-                + ", intent " + mManageSubscriptionIntent);
-    }
-
-    /**
-     * Create an {@link Intent} that can be launched towards the carrier app
-     * that is currently defining the billing relationship plan through
-     * {@link INetworkPolicyManager#setSubscriptionPlans(int, SubscriptionPlan [], String)}.
-     *
-     * @return ready to launch Intent targeted towards the carrier app, or
-     *         {@code null} if no carrier app is defined, or if the defined
-     *         carrier app provides no management activity.
-     */
-    @VisibleForTesting
-    Intent createManageSubscriptionIntent(int subId) {
-        final INetworkPolicyManager iNetPolicyManager = INetworkPolicyManager.Stub.asInterface(
-                ServiceManager.getService(Context.NETWORK_POLICY_SERVICE));
-        String owner = "";
-        try {
-            owner = iNetPolicyManager.getSubscriptionPlansOwner(subId);
-        } catch (Exception ex) {
-            Log.w(TAG, "Fail to get subscription plan owner for subId " + subId, ex);
-        }
-
-        if (TextUtils.isEmpty(owner)) {
-            return null;
-        }
-
-        final List<SubscriptionPlan> plans = getSubscriptionPlans(subId);
-        if (plans.isEmpty()) {
-            return null;
-        }
-
-        final Intent intent = new Intent(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
-        intent.setPackage(owner);
-        intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, subId);
-
-        if (mContext.getPackageManager().queryIntentActivities(intent,
-                PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
-            return null;
-        }
-
-        return intent;
-    }
-
-    private static SubscriptionPlan getPrimaryPlan(List<SubscriptionPlan> plans) {
-        if (CollectionUtils.isEmpty(plans)) {
-            return null;
-        }
-        // First plan in the list is the primary plan
-        SubscriptionPlan plan = plans.get(0);
-        return plan.getDataLimitBytes() > 0
-                && validSize(plan.getDataUsageBytes())
-                && plan.getCycleRule() != null ? plan : null;
-    }
-
-    private static boolean validSize(long value) {
-        return value >= 0L && value < PETA;
-    }
-
-    public static boolean unlimited(long size) {
-        return size == SubscriptionPlan.BYTES_UNLIMITED;
-    }
-}
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.kt b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.kt
new file mode 100644
index 0000000..8b31f67
--- /dev/null
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.kt
@@ -0,0 +1,159 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage
+
+import android.content.Context
+import android.net.NetworkPolicy
+import android.net.NetworkTemplate
+import android.text.TextUtils
+import android.util.Log
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.datausage.lib.DataUsageLib.getMobileTemplate
+import com.android.settings.datausage.lib.INetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkCycleDataRepository
+import com.android.settings.network.ProxySubscriptionManager
+import com.android.settings.network.telephony.TelephonyBasePreferenceController
+import kotlin.math.max
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * This is the controller for a data usage header that retrieves carrier data from the new
+ * subscriptions framework API if available. The controller reads subscription information from the
+ * framework and falls back to legacy usage data if none are available.
+ */
+open class DataUsageSummaryPreferenceController @JvmOverloads constructor(
+    context: Context,
+    subId: Int,
+    private val proxySubscriptionManager: ProxySubscriptionManager =
+        ProxySubscriptionManager.getInstance(context),
+    private val networkCycleDataRepositoryFactory: (
+        template: NetworkTemplate,
+    ) -> INetworkCycleDataRepository = { NetworkCycleDataRepository(context, it) },
+    private val dataPlanRepositoryFactory: (
+        networkCycleDataRepository: INetworkCycleDataRepository,
+    ) -> DataPlanRepository = { DataPlanRepositoryImpl(it) }
+) : TelephonyBasePreferenceController(context, KEY) {
+
+    init {
+        mSubId = subId
+    }
+
+    private val subInfo by lazy {
+        if (DataUsageUtils.hasMobileData(mContext)) {
+            proxySubscriptionManager.getAccessibleSubscriptionInfo(mSubId)
+        } else null
+    }
+    private val networkCycleDataRepository by lazy {
+        networkCycleDataRepositoryFactory(getMobileTemplate(mContext, mSubId))
+    }
+    private val policy by lazy { networkCycleDataRepository.getPolicy() }
+    private lateinit var preference: DataUsageSummaryPreference
+
+    override fun getAvailabilityStatus(subId: Int) =
+        if (subInfo != null && policy != null) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+        policy?.let {
+            preference.setLimitInfo(it.getLimitInfo())
+            val dataBarSize = max(it.limitBytes, it.warningBytes)
+            if (dataBarSize > NetworkPolicy.WARNING_DISABLED) {
+                setDataBarSize(dataBarSize)
+            }
+        }
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                update()
+            }
+        }
+    }
+
+    private suspend fun update() {
+        val policy = policy ?: return
+        val dataPlanInfo = withContext(Dispatchers.Default) {
+            dataPlanRepositoryFactory(networkCycleDataRepository).getDataPlanInfo(
+                policy = policy,
+                plans = proxySubscriptionManager.get().getSubscriptionPlans(mSubId),
+            )
+        }
+        Log.d(TAG, "dataPlanInfo: $dataPlanInfo")
+        preference.setUsageNumbers(dataPlanInfo.dataPlanUse, dataPlanInfo.dataPlanSize)
+        if (dataPlanInfo.dataBarSize > 0) {
+            preference.setChartEnabled(true)
+            setDataBarSize(dataPlanInfo.dataBarSize)
+            preference.setProgress(dataPlanInfo.dataPlanUse / dataPlanInfo.dataBarSize.toFloat())
+        } else {
+            preference.setChartEnabled(false)
+        }
+
+        preference.setUsageInfo(
+            dataPlanInfo.cycleEnd,
+            dataPlanInfo.snapshotTime,
+            subInfo?.carrierName,
+            dataPlanInfo.dataPlanCount,
+        )
+    }
+
+    private fun setDataBarSize(dataBarSize: Long) {
+        preference.setLabels(
+            DataUsageUtils.formatDataUsage(mContext, /* byteValue = */ 0),
+            DataUsageUtils.formatDataUsage(mContext, dataBarSize)
+        )
+    }
+
+    private fun NetworkPolicy.getLimitInfo(): CharSequence? = when {
+        warningBytes > 0 && limitBytes > 0 -> {
+            TextUtils.expandTemplate(
+                mContext.getText(R.string.cell_data_warning_and_limit),
+                DataUsageUtils.formatDataUsage(mContext, warningBytes),
+                DataUsageUtils.formatDataUsage(mContext, limitBytes),
+            )
+        }
+
+        warningBytes > 0 -> {
+            TextUtils.expandTemplate(
+                mContext.getText(R.string.cell_data_warning),
+                DataUsageUtils.formatDataUsage(mContext, warningBytes),
+            )
+        }
+
+        limitBytes > 0 -> {
+            TextUtils.expandTemplate(
+                mContext.getText(R.string.cell_data_limit),
+                DataUsageUtils.formatDataUsage(mContext, limitBytes),
+            )
+        }
+
+        else -> null
+    }
+
+    companion object {
+        private const val TAG = "DataUsageSummaryPC"
+        private const val KEY = "status_header"
+    }
+}
diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java
index cce7ca1..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;
@@ -46,10 +45,9 @@
 /**
  * Utility methods for data usage classes.
  */
-public final class DataUsageUtils extends com.android.settingslib.net.DataUsageUtils {
+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/MeasurableLinearLayout.java b/src/com/android/settings/datausage/MeasurableLinearLayout.java
index f165be7..7fd392c 100644
--- a/src/com/android/settings/datausage/MeasurableLinearLayout.java
+++ b/src/com/android/settings/datausage/MeasurableLinearLayout.java
@@ -1,11 +1,12 @@
 package com.android.settings.datausage;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.LinearLayout;
 
+import androidx.annotation.Nullable;
+
 public class MeasurableLinearLayout extends LinearLayout {
     private View mFixedView;
     private View mDisposableView;
diff --git a/src/com/android/settings/datausage/NetworkRestrictionsPreference.java b/src/com/android/settings/datausage/NetworkRestrictionsPreference.java
deleted file mode 100644
index 9afc0c3..0000000
--- a/src/com/android/settings/datausage/NetworkRestrictionsPreference.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF 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.net.NetworkTemplate;
-import android.util.AttributeSet;
-
-import androidx.preference.Preference;
-
-public class NetworkRestrictionsPreference extends Preference implements TemplatePreference {
-
-    public NetworkRestrictionsPreference(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
-
-    @Override
-    public void setTemplate(NetworkTemplate template, int subId,
-            NetworkServices services) {
-        // TODO: Summary
-    }
-}
diff --git a/src/com/android/settings/datausage/OWNERS b/src/com/android/settings/datausage/OWNERS
index d71b165..1ad5b2d 100644
--- a/src/com/android/settings/datausage/OWNERS
+++ b/src/com/android/settings/datausage/OWNERS
@@ -2,6 +2,5 @@
 andychou@google.com
 bonianchen@google.com
 changbetty@google.com
-goldmanj@google.com
 songferngwang@google.com
 wengsu@google.com
diff --git a/src/com/android/settings/datausage/SpinnerPreference.java b/src/com/android/settings/datausage/SpinnerPreference.java
index c6b5f9f..febdead 100644
--- a/src/com/android/settings/datausage/SpinnerPreference.java
+++ b/src/com/android/settings/datausage/SpinnerPreference.java
@@ -14,13 +14,13 @@
 
 package com.android.settings.datausage;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.Spinner;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 
@@ -47,7 +47,6 @@
         notifyChanged();
     }
 
-    @Override
     public void setOnItemSelectedListener(AdapterView.OnItemSelectedListener listener) {
         mListener = listener;
     }
@@ -95,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/TemplatePreference.java b/src/com/android/settings/datausage/TemplatePreference.java
index 43dda0a..8e780db 100644
--- a/src/com/android/settings/datausage/TemplatePreference.java
+++ b/src/com/android/settings/datausage/TemplatePreference.java
@@ -16,23 +16,16 @@
 
 import android.net.NetworkPolicyManager;
 import android.net.NetworkTemplate;
-import android.os.INetworkManagementService;
-import android.os.UserManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
 
 import com.android.settingslib.NetworkPolicyEditor;
 
 public interface TemplatePreference {
 
-    void setTemplate(NetworkTemplate template, int subId, NetworkServices services);
+    /** Sets the network template. */
+    void setTemplate(NetworkTemplate template, int subId);
 
     class NetworkServices {
-        INetworkManagementService mNetworkService;
         NetworkPolicyManager mPolicyManager;
-        TelephonyManager mTelephonyManager;
-        SubscriptionManager mSubscriptionManager;
-        UserManager mUserManager;
         NetworkPolicyEditor mPolicyEditor;
     }
 
diff --git a/src/com/android/settings/datausage/TemplatePreferenceCategory.java b/src/com/android/settings/datausage/TemplatePreferenceCategory.java
index d26b9b1..9173676 100644
--- a/src/com/android/settings/datausage/TemplatePreferenceCategory.java
+++ b/src/com/android/settings/datausage/TemplatePreferenceCategory.java
@@ -31,8 +31,7 @@
     }
 
     @Override
-    public void setTemplate(NetworkTemplate template, int subId,
-            NetworkServices services) {
+    public void setTemplate(NetworkTemplate template, int subId) {
         mTemplate = template;
         mSubId = subId;
     }
@@ -46,12 +45,13 @@
         return super.addPreference(preference);
     }
 
-    public void pushTemplates(NetworkServices services) {
+    /** Pushes the templates. */
+    public void pushTemplates() {
         if (mTemplate == null) {
             throw new RuntimeException("null mTemplate for " + getKey());
         }
         for (int i = 0; i < getPreferenceCount(); i++) {
-            ((TemplatePreference) getPreference(i)).setTemplate(mTemplate, mSubId, services);
+            ((TemplatePreference) getPreference(i)).setTemplate(mTemplate, mSubId);
         }
     }
 
diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccessPreference.java b/src/com/android/settings/datausage/UnrestrictedDataAccessPreference.java
index 1fea84c..7a7eb8c 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccessPreference.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccessPreference.java
@@ -13,7 +13,7 @@
  */
 package com.android.settings.datausage;
 
-import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfMeteredDataRestricted;
+import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfMeteredDataUsageUserControlDisabled;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
@@ -56,8 +56,8 @@
         mApplicationsState = applicationsState;
         mDataSaverBackend = dataSaverBackend;
         mParentFragment = parentFragment;
-        setDisabledByAdmin(checkIfMeteredDataRestricted(context, entry.info.packageName,
-                UserHandle.getUserId(entry.info.uid)));
+        setDisabledByAdmin(checkIfMeteredDataUsageUserControlDisabled(
+                context, entry.info.packageName, UserHandle.getUserId(entry.info.uid)));
         updateState();
         setKey(generateKey(mEntry));
 
@@ -176,7 +176,7 @@
         if (mDataUsageState != null) {
             setChecked(mDataUsageState.isDataSaverAllowlisted);
             if (isDisabledByAdmin()) {
-                setSummary(R.string.disabled_by_admin);
+                setSummary(com.android.settingslib.widget.restricted.R.string.disabled_by_admin);
             } else if (mDataUsageState.isDataSaverDenylisted) {
                 setSummary(R.string.restrict_background_blocklisted);
             } else {
diff --git a/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java b/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java
index 438ed0d..fd2fcda 100644
--- a/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java
+++ b/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceController.java
@@ -13,7 +13,7 @@
  */
 package com.android.settings.datausage;
 
-import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfMeteredDataRestricted;
+import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfMeteredDataUsageUserControlDisabled;
 
 import android.app.Application;
 import android.app.settings.SettingsEnums;
@@ -149,7 +149,7 @@
                 preference.setOnPreferenceChangeListener(this);
                 mScreen.addPreference(preference);
             } else {
-                preference.setDisabledByAdmin(checkIfMeteredDataRestricted(mContext,
+                preference.setDisabledByAdmin(checkIfMeteredDataUsageUserControlDisabled(mContext,
                         entry.info.packageName, UserHandle.getUserId(entry.info.uid)));
                 preference.updateState();
             }
@@ -233,7 +233,7 @@
     void logSpecialPermissionChange(boolean allowlisted, String packageName) {
         final int logCategory = allowlisted ? SettingsEnums.APP_SPECIAL_PERMISSION_UNL_DATA_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_UNL_DATA_DENY;
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider().action(mContext,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(mContext,
                 logCategory, packageName);
     }
 
diff --git a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
deleted file mode 100644
index 4d2dd00..0000000
--- a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
+++ /dev/null
@@ -1,71 +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.datausage;
-
-import android.app.Activity;
-import android.net.NetworkTemplate;
-import android.telephony.SubscriptionManager;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.net.DataUsageController;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * The controller displays a data usage chart for the specified Wi-Fi network.
- */
-public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPreferenceController {
-    final Set<String> mAllNetworkKeys;
-
-    public WifiDataUsageSummaryPreferenceController(Activity activity, Lifecycle lifecycle,
-            PreferenceFragmentCompat fragment, Set<String> allNetworkKeys) {
-        super(activity, lifecycle, fragment, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        mAllNetworkKeys = new HashSet<>(allNetworkKeys);
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        if (preference == null) {
-            return;
-        }
-
-        final DataUsageSummaryPreference mPreference = (DataUsageSummaryPreference) preference;
-        final NetworkTemplate template = new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI)
-                .setWifiNetworkKeys(mAllNetworkKeys).build();
-        if (mDataUsageController == null) {
-            updateConfiguration(mContext, mSubId, getSubscriptionInfo(mSubId));
-        }
-        final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
-                template);
-        mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(template));
-
-        mPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
-                info.period, /* isSingleWifi */ true);
-        mPreference.setChartEnabled(true);
-        // Treats Wi-Fi network as unlimited network, which has same usage level and limited level.
-        mPreference.setUsageNumbers(info.usageLevel, info.usageLevel, /* hasMobileData */ false);
-
-        // TODO(b/126142293): Passpoint Wi-Fi should have limit of data usage and time remaining
-        mPreference.setProgress(100);
-        mPreference.setLabels(DataUsageUtils.formatDataUsage(mContext, /* sizeBytes */ 0),
-                DataUsageUtils.formatDataUsage(mContext, info.usageLevel));
-    }
-}
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
new file mode 100644
index 0000000..1844a7a
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/AppDataUsageRepository.kt
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.NetworkPolicyManager
+import android.net.NetworkTemplate
+import android.os.Process
+import android.os.UserHandle
+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
+
+class AppDataUsageRepository(
+    private val context: Context,
+    private val currentUserId: Int,
+    template: NetworkTemplate,
+    private val getPackageName: (AppItem) -> String?,
+) {
+    private val networkStatsRepository = NetworkStatsRepository(context, template)
+
+    fun getAppPercent(carrierId: Int?, startTime: Long, endTime: Long): List<Pair<AppItem, Int>> {
+        val buckets = networkStatsRepository.queryBuckets(startTime, endTime)
+        return getAppPercent(carrierId, buckets)
+    }
+
+    @VisibleForTesting
+    fun getAppPercent(carrierId: Int?, buckets: List<Bucket>): List<Pair<AppItem, Int>> {
+        val items = ArrayList<AppItem>()
+        val knownItems = SparseArray<AppItem>()
+        val profiles = context.userManager.userProfiles
+        bindStats(buckets, profiles, knownItems, items)
+        val restrictedUids = context.getSystemService(NetworkPolicyManager::class.java)!!
+            .getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND)
+        for (uid in restrictedUids) {
+            // Only splice in restricted state for current user or managed users
+            if (!profiles.contains(UserHandle.getUserHandleForUid(uid))) {
+                continue
+            }
+            var item = knownItems[uid]
+            if (item == null) {
+                item = AppItem(uid)
+                item.total = 0
+                item.addUid(uid)
+                items.add(item)
+                knownItems.put(item.key, item)
+            }
+            item.restricted = true
+        }
+
+        val filteredItems = filterItems(carrierId, items).sorted()
+        val largest: Long = filteredItems.maxOfOrNull { it.total } ?: 0
+        return filteredItems.map { item ->
+            val percentTotal = if (largest > 0) (item.total * 100 / largest).toInt() else 0
+            item to percentTotal
+        }
+    }
+
+    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.
+        if (carrierId != null && carrierId !in context.resources.getIntArray(
+                R.array.datausage_hiding_carrier_service_carrier_id
+            )
+        ) {
+            return items
+        }
+        val hiddenPackageNames = context.resources.getStringArray(
+            R.array.datausage_hiding_carrier_service_package_names
+        )
+        return items.filter { item ->
+            // Do not show carrier service package in data usage list if it should be hidden for
+            // the carrier.
+            getPackageName(item) !in hiddenPackageNames
+        }
+    }
+
+    private fun bindStats(
+        buckets: List<Bucket>,
+        profiles: List<UserHandle>,
+        knownItems: SparseArray<AppItem>,
+        items: ArrayList<AppItem>,
+    ) {
+        for (bucket in buckets) {
+            // Decide how to collapse items together
+            val uid = bucket.uid
+            val collapseKey: Int
+            val category: Int
+            val userId = UserHandle.getUserId(uid)
+            if (UserHandle.isApp(uid) || Process.isSdkSandboxUid(uid)) {
+                if (profiles.contains(UserHandle(userId))) {
+                    if (userId != currentUserId) {
+                        // Add to a managed user item.
+                        accumulate(
+                            collapseKey = UidDetailProvider.buildKeyForUser(userId),
+                            knownItems = knownItems,
+                            bucket = bucket,
+                            itemCategory = AppItem.CATEGORY_USER,
+                            items = items,
+                        )
+                    }
+                    collapseKey = getAppUid(uid)
+                    category = AppItem.CATEGORY_APP
+                } else {
+                    // If it is a removed user add it to the removed users' key
+                    if (context.userManager.getUserInfo(userId) == null) {
+                        collapseKey = NetworkStats.Bucket.UID_REMOVED
+                        category = AppItem.CATEGORY_APP
+                    } else {
+                        // Add to other user item.
+                        collapseKey = UidDetailProvider.buildKeyForUser(userId)
+                        category = AppItem.CATEGORY_USER
+                    }
+                }
+            } else if (uid == NetworkStats.Bucket.UID_REMOVED ||
+                uid == NetworkStats.Bucket.UID_TETHERING ||
+                uid == Process.OTA_UPDATE_UID
+            ) {
+                collapseKey = uid
+                category = AppItem.CATEGORY_APP
+            } else {
+                collapseKey = Process.SYSTEM_UID
+                category = AppItem.CATEGORY_APP
+            }
+            accumulate(
+                collapseKey = collapseKey,
+                knownItems = knownItems,
+                bucket = bucket,
+                itemCategory = category,
+                items = items,
+            )
+        }
+    }
+
+    /**
+     * Accumulate data usage of a network stats entry for the item mapped by the collapse key.
+     * Creates the item if needed.
+     *
+     * @param collapseKey  the collapse key used to map the item.
+     * @param knownItems   collection of known (already existing) items.
+     * @param bucket       the network stats bucket to extract data usage from.
+     * @param itemCategory the item is categorized on the list view by this category. Must be
+     */
+    private fun accumulate(
+        collapseKey: Int,
+        knownItems: SparseArray<AppItem>,
+        bucket: Bucket,
+        itemCategory: Int,
+        items: ArrayList<AppItem>,
+    ) {
+        var item = knownItems[collapseKey]
+        if (item == null) {
+            item = AppItem(collapseKey)
+            item.category = itemCategory
+            items.add(item)
+            knownItems.put(item.key, item)
+        }
+        item.addUid(bucket.uid)
+        item.total += bucket.bytes
+    }
+
+    companion object {
+        @JvmStatic
+        fun getAppUidList(uids: SparseBooleanArray) =
+            uids.keyIterator().asSequence().map { getAppUid(it) }.distinct().toList()
+
+        @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
+        }
+
+        /**
+         * 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 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..3bfb24a
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/AppPreferenceRepository.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.datausage.lib
+
+import android.content.Context
+import android.content.pm.PackageManager
+import android.os.UserHandle
+import android.util.IconDrawableFactory
+import androidx.preference.Preference
+
+class AppPreferenceRepository(
+    private val context: Context,
+    private val iconDrawableFactory: IconDrawableFactory = IconDrawableFactory.newInstance(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 = iconDrawableFactory.getBadgedIcon(app)
+            title = app.loadLabel(packageManager)
+            isSelectable = false
+        }
+    } catch (e: PackageManager.NameNotFoundException) {
+        null
+    }
+}
diff --git a/src/com/android/settings/datausage/lib/BillingCycleRepository.kt b/src/com/android/settings/datausage/lib/BillingCycleRepository.kt
new file mode 100644
index 0000000..bd6aa27
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/BillingCycleRepository.kt
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.os.INetworkManagementService
+import android.os.ServiceManager
+import android.telephony.TelephonyManager
+import android.util.Log
+import androidx.annotation.OpenForTesting
+import com.android.settingslib.spaprivileged.framework.common.userManager
+
+@OpenForTesting
+open class BillingCycleRepository @JvmOverloads constructor(
+    context: Context,
+    private val networkService: INetworkManagementService =
+        INetworkManagementService.Stub.asInterface(
+            ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE)
+        ),
+) {
+    private val userManager = context.userManager
+    private val telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
+
+    fun isModifiable(subId: Int): Boolean =
+        isBandwidthControlEnabled() && userManager.isAdminUser && isDataEnabled(subId)
+
+    open fun isBandwidthControlEnabled(): Boolean = try {
+        networkService.isBandwidthControlEnabled
+    } catch (e: Exception) {
+        Log.w(TAG, "problem talking with INetworkManagementService: ", e)
+        false
+    }
+
+    private fun isDataEnabled(subId: Int): Boolean =
+        telephonyManager.createForSubscriptionId(subId)
+            .isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
+
+    companion object {
+        private const val TAG = "BillingCycleRepository"
+    }
+}
diff --git a/src/com/android/settings/datausage/lib/DataUsageLib.java b/src/com/android/settings/datausage/lib/DataUsageLib.java
deleted file mode 100644
index b3f7e79..0000000
--- a/src/com/android/settings/datausage/lib/DataUsageLib.java
+++ /dev/null
@@ -1,115 +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.lib;
-
-import android.content.Context;
-import android.net.NetworkStats;
-import android.net.NetworkTemplate;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.ArraySet;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-
-import com.android.internal.util.ArrayUtils;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-
-/**
- * Lib class for data usage
- */
-public class DataUsageLib {
-    private static final String TAG = "DataUsageLib";
-
-    /**
-     * Return mobile NetworkTemplate based on {@code subId}
-     */
-    public static NetworkTemplate getMobileTemplate(Context context, int subId) {
-        final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
-        final int mobileDefaultSubId = telephonyManager.getSubscriptionId();
-
-        final SubscriptionManager subscriptionManager =
-                context.getSystemService(SubscriptionManager.class);
-        final List<SubscriptionInfo> subInfoList =
-                subscriptionManager.getAvailableSubscriptionInfoList();
-        if (subInfoList == null) {
-            Log.i(TAG, "Subscription is not inited: " + subId);
-            return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId);
-        }
-
-        for (SubscriptionInfo subInfo : subInfoList) {
-            if ((subInfo != null) && (subInfo.getSubscriptionId() == subId)) {
-                return getNormalizedMobileTemplate(telephonyManager, subId);
-            }
-        }
-        Log.i(TAG, "Subscription is not active: " + subId);
-        return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId);
-    }
-
-    private static NetworkTemplate getNormalizedMobileTemplate(
-            TelephonyManager telephonyManager, int subId) {
-        final NetworkTemplate mobileTemplate = getMobileTemplateForSubId(telephonyManager, subId);
-        final String[] mergedSubscriberIds = telephonyManager
-                .createForSubscriptionId(subId).getMergedImsisFromGroup();
-        if (ArrayUtils.isEmpty(mergedSubscriberIds)) {
-            Log.i(TAG, "mergedSubscriberIds is null.");
-            return mobileTemplate;
-        }
-
-        return normalizeMobileTemplate(mobileTemplate, mergedSubscriberIds);
-    }
-
-    private static NetworkTemplate normalizeMobileTemplate(
-            @NonNull NetworkTemplate template, @NonNull String[] merged) {
-        if (template.getSubscriberIds().isEmpty()) return template;
-        // The input template should have at most 1 subscriberId.
-        final String subscriberId = template.getSubscriberIds().iterator().next();
-        // In some rare cases (e.g. b/243015487), merged subscriberId list might contain
-        // duplicated items. Deduplication for better error handling.
-        final ArraySet mergedSet = new ArraySet(merged);
-        if (mergedSet.size() != merged.length) {
-            Log.wtf(TAG, "Duplicated merged list detected: " + Arrays.toString(merged));
-        }
-        if (mergedSet.contains(subscriberId)) {
-            // Requested template subscriber is part of the merge group; return
-            // a template that matches all merged subscribers.
-            return new NetworkTemplate.Builder(template.getMatchRule())
-                    .setSubscriberIds(mergedSet)
-                    .setMeteredness(template.getMeteredness()).build();
-        }
-
-        return template;
-    }
-
-    public static NetworkTemplate getMobileTemplateForSubId(
-            TelephonyManager telephonyManager, int subId) {
-        // Create template that matches any mobile network when the subscriberId is null.
-        String subscriberId = telephonyManager.getSubscriberId(subId);
-        return subscriberId != null
-                ? new NetworkTemplate.Builder(NetworkTemplate.MATCH_CARRIER)
-                .setSubscriberIds(Set.of(subscriberId))
-                .setMeteredness(NetworkStats.METERED_YES)
-                .build()
-                : new NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE)
-                        .setMeteredness(NetworkStats.METERED_YES)
-                        .build();
-    }
-}
diff --git a/src/com/android/settings/datausage/lib/DataUsageLib.kt b/src/com/android/settings/datausage/lib/DataUsageLib.kt
new file mode 100644
index 0000000..9e94aba
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/DataUsageLib.kt
@@ -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.datausage.lib
+
+import android.content.Context
+import android.net.NetworkStats
+import android.net.NetworkTemplate
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.util.Log
+
+/**
+ * Lib class for data usage
+ */
+object DataUsageLib {
+    private const val TAG = "DataUsageLib"
+
+    /**
+     * Return mobile NetworkTemplate based on `subId`
+     */
+    @JvmStatic
+    fun getMobileTemplate(context: Context, subId: Int): NetworkTemplate {
+        val telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
+        val mobileDefaultSubId = telephonyManager.subscriptionId
+        val subscriptionManager = context.getSystemService(SubscriptionManager::class.java)!!
+        val subInfoList = subscriptionManager.availableSubscriptionInfoList
+        if (subInfoList == null) {
+            Log.i(TAG, "Subscription is not inited: $subId")
+            return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId)
+        }
+        for (subInfo in subInfoList) {
+            if (subInfo?.subscriptionId == subId) {
+                return getNormalizedMobileTemplate(telephonyManager, subId)
+            }
+        }
+        Log.i(TAG, "Subscription is not active: $subId")
+        return getMobileTemplateForSubId(telephonyManager, mobileDefaultSubId)
+    }
+
+    private fun getNormalizedMobileTemplate(
+        telephonyManager: TelephonyManager,
+        subId: Int,
+    ): NetworkTemplate {
+        val mobileTemplate = getMobileTemplateForSubId(telephonyManager, subId)
+        val mergedSubscriberIds =
+            telephonyManager.createForSubscriptionId(subId).mergedImsisFromGroup
+        if (mergedSubscriberIds.isNullOrEmpty()) {
+            Log.i(TAG, "mergedSubscriberIds is empty.")
+            return mobileTemplate
+        }
+        return normalizeMobileTemplate(mobileTemplate, mergedSubscriberIds)
+    }
+
+    private fun normalizeMobileTemplate(
+        template: NetworkTemplate,
+        merged: Array<String?>,
+    ): NetworkTemplate {
+        val subscriberId = template.subscriberIds.firstOrNull() ?: return template
+        // In some rare cases (e.g. b/243015487), merged subscriberId list might contain
+        // duplicated items. Deduplication for better error handling.
+        val mergedSet = merged.toSet()
+        if (mergedSet.size != merged.size) {
+            Log.wtf(TAG, "Duplicated merged list detected: " + merged.contentToString())
+        }
+        return if (mergedSet.contains(subscriberId)) {
+            // Requested template subscriber is part of the merge group; return
+            // a template that matches all merged subscribers.
+            NetworkTemplate.Builder(template.matchRule)
+                .setSubscriberIds(mergedSet)
+                .setMeteredness(template.meteredness)
+                .build()
+        } else template
+    }
+
+    @JvmStatic
+    fun getMobileTemplateForSubId(telephonyManager: TelephonyManager, subId: Int): NetworkTemplate {
+        // Create template that matches any mobile network when the subscriberId is null.
+        val subscriberId = telephonyManager.getSubscriberId(subId)
+        return when (subscriberId) {
+            null -> NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE)
+            else -> NetworkTemplate.Builder(NetworkTemplate.MATCH_CARRIER)
+                .setSubscriberIds(setOf(subscriberId))
+        }.setMeteredness(NetworkStats.METERED_YES).build()
+    }
+}
diff --git a/src/com/android/settings/datausage/lib/NetworkCycleBucketRepository.kt b/src/com/android/settings/datausage/lib/NetworkCycleBucketRepository.kt
new file mode 100644
index 0000000..7e3e183
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkCycleBucketRepository.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.datausage.lib
+
+import android.content.Context
+import android.net.NetworkTemplate
+import android.text.format.DateUtils
+import android.util.Range
+import com.android.settings.datausage.lib.NetworkCycleDataRepository.Companion.bucketRange
+import com.android.settings.datausage.lib.NetworkCycleDataRepository.Companion.getCycles
+import com.android.settings.datausage.lib.NetworkCycleDataRepository.Companion.reverseBucketRange
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.aggregate
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.filterTime
+
+class NetworkCycleBucketRepository(
+    context: Context,
+    networkTemplate: NetworkTemplate,
+    private val buckets: List<Bucket>,
+    private val networkCycleDataRepository: NetworkCycleDataRepository =
+        NetworkCycleDataRepository(context, networkTemplate)
+) {
+
+    fun loadCycles(): List<NetworkUsageData> =
+        getCycles().map { aggregateUsage(it) }.filter { it.usage > 0 }
+
+    private fun getCycles(): List<Range<Long>> =
+        networkCycleDataRepository.getPolicy()?.getCycles() ?: queryCyclesAsFourWeeks()
+
+    private fun queryCyclesAsFourWeeks(): List<Range<Long>> {
+        val timeRange = buckets.aggregate()?.timeRange ?: return emptyList()
+        return reverseBucketRange(
+            startTime = timeRange.lower,
+            endTime = timeRange.upper,
+            step = DateUtils.WEEK_IN_MILLIS * 4,
+        )
+    }
+
+    fun queryChartData(usageData: NetworkUsageData) = NetworkCycleChartData(
+        total = usageData,
+        dailyUsage = bucketRange(
+            startTime = usageData.startTime,
+            endTime = usageData.endTime,
+            step = NetworkCycleChartData.BUCKET_DURATION.inWholeMilliseconds,
+        ).map { aggregateUsage(it) },
+    )
+
+    private fun aggregateUsage(range: Range<Long>) = NetworkUsageData(
+        startTime = range.lower,
+        endTime = range.upper,
+        usage = buckets.filterTime(range.lower, range.upper).aggregate()?.usage ?: 0,
+    )
+}
diff --git a/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt b/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt
new file mode 100644
index 0000000..fd3c504
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkCycleChartData.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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 kotlin.time.Duration.Companion.days
+
+/**
+ * Usage data in a billing cycle with daily data for plotting the usage chart.
+ */
+data class NetworkCycleChartData(
+    val total: NetworkUsageData,
+    val dailyUsage: List<NetworkUsageData>,
+) {
+    companion object {
+        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
new file mode 100644
index 0000000..31052ef
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkCycleDataRepository.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.NetworkPolicy
+import android.net.NetworkPolicyManager
+import android.net.NetworkTemplate
+import android.text.format.DateUtils
+import android.util.Range
+import com.android.settingslib.NetworkPolicyEditor
+
+interface INetworkCycleDataRepository {
+    fun getCycles(): List<Range<Long>>
+    fun getPolicy(): NetworkPolicy?
+    fun queryUsage(range: Range<Long>): NetworkUsageData
+}
+
+class NetworkCycleDataRepository(
+    context: Context,
+    private val networkTemplate: NetworkTemplate,
+    private val networkStatsRepository: NetworkStatsRepository =
+        NetworkStatsRepository(context, networkTemplate),
+) : INetworkCycleDataRepository {
+
+    private val policyManager = context.getSystemService(NetworkPolicyManager::class.java)!!
+
+    fun loadFirstCycle(): NetworkUsageData? = getCycles().firstOrNull()?.let { queryUsage(it) }
+
+    override fun getCycles(): List<Range<Long>> =
+        getPolicy()?.getCycles() ?: queryCyclesAsFourWeeks()
+
+    private fun queryCyclesAsFourWeeks(): List<Range<Long>> {
+        val timeRange = networkStatsRepository.getTimeRange() ?: return emptyList()
+        return reverseBucketRange(
+            startTime = timeRange.lower,
+            endTime = timeRange.upper,
+            step = DateUtils.WEEK_IN_MILLIS * 4,
+        )
+    }
+
+    override fun getPolicy(): NetworkPolicy? =
+        with(NetworkPolicyEditor(policyManager)) {
+            read()
+            getPolicy(networkTemplate)
+        }
+
+
+    override fun queryUsage(range: Range<Long>) = NetworkUsageData(
+        startTime = range.lower,
+        endTime = range.upper,
+        usage = networkStatsRepository.querySummaryForDevice(range.lower, range.upper),
+    )
+
+    companion object {
+        fun NetworkPolicy.getCycles() = cycleIterator().asSequence().map {
+            Range(it.lower.toInstant().toEpochMilli(), it.upper.toInstant().toEpochMilli())
+        }.toList()
+
+        fun bucketRange(startTime: Long, endTime: Long, step: Long): List<Range<Long>> =
+            (startTime..endTime step step).zipWithNext(::Range)
+
+        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..56b1931
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkStatsRepository.kt
@@ -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.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,
+        ).convertToBuckets().aggregate()
+    } catch (e: Exception) {
+        Log.e(TAG, "Exception queryDetailsForUidTagState", e)
+        null
+    }
+
+    fun queryDetailsForDevice(): List<Bucket> = try {
+        networkStatsManager.queryDetailsForDevice(template, Long.MIN_VALUE, Long.MAX_VALUE)
+            .convertToBuckets()
+    } catch (e: Exception) {
+        Log.e(TAG, "Exception queryDetailsForDevice", e)
+        emptyList()
+    }
+
+    fun getTimeRange(): Range<Long>? = queryDetailsForDevice().aggregate()?.timeRange
+
+    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,
+            val startTimeStamp: Long,
+            val endTimeStamp: Long,
+        )
+
+        fun List<Bucket>.aggregate(): NetworkUsageData? = when {
+            isEmpty() -> null
+            else -> NetworkUsageData(
+                startTime = minOf { it.startTimeStamp },
+                endTime = maxOf { it.endTimeStamp },
+                usage = sumOf { it.bytes },
+            )
+        }
+
+        fun List<Bucket>.filterTime(startTime: Long, endTime: Long): List<Bucket> = filter {
+            it.startTimeStamp >= startTime && it.endTimeStamp <= endTime
+        }
+
+        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,
+                    startTimeStamp = bucket.startTimeStamp,
+                    endTimeStamp = bucket.endTimeStamp,
+                )
+            }
+            buckets
+        }
+
+        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
new file mode 100644
index 0000000..f9d83d5
--- /dev/null
+++ b/src/com/android/settings/datausage/lib/NetworkUsageData.kt
@@ -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.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.
+ */
+data class NetworkUsageData(
+    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..44e7cc6 100644
--- a/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeFormatPreferenceController.java
@@ -19,54 +19,33 @@
 import android.content.Context;
 import android.provider.Settings;
 import android.provider.Settings.System;
-import android.text.TextUtils;
 import android.text.format.DateFormat;
 
-import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-import androidx.preference.TwoStatePreference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
 
 import java.util.Locale;
 
-public class AutoTimeFormatPreferenceController extends AbstractPreferenceController
-          implements PreferenceControllerMixin {
+public class AutoTimeFormatPreferenceController extends TogglePreferenceController {
 
-    private static final String KEY_AUTO_24_HOUR = "auto_24hour";
-
-    public AutoTimeFormatPreferenceController(Context context, UpdateTimeAndDateCallback callback) {
-        super(context);
+    public AutoTimeFormatPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
     }
 
     @Override
-    public boolean isAvailable() {
-        return true;
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
     }
 
     @Override
-    public String getPreferenceKey() {
-        return KEY_AUTO_24_HOUR;
+    public boolean isChecked() {
+        return isAutoTimeFormatSelection(mContext);
     }
 
     @Override
-    public void updateState(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
-            return;
-        }
-        ((SwitchPreference) preference).setChecked(isAutoTimeFormatSelection(mContext));
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!(preference instanceof TwoStatePreference)
-            || !TextUtils.equals(KEY_AUTO_24_HOUR, preference.getKey())) {
-            return false;
-        }
-        boolean auto24HourEnabled = ((SwitchPreference) preference).isChecked();
+    public boolean setChecked(boolean isChecked) {
         Boolean is24Hour;
-        if (auto24HourEnabled) {
+        if (isChecked) {
             is24Hour = null;
         } else {
             is24Hour = is24HourLocale(mContext.getResources().getConfiguration().locale);
@@ -75,6 +54,11 @@
         return true;
     }
 
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_system;
+    }
+
     boolean is24HourLocale(Locale locale) {
         return DateFormat.is24HourLocale(locale);
     }
diff --git a/src/com/android/settings/datetime/AutoTimePreferenceController.java b/src/com/android/settings/datetime/AutoTimePreferenceController.java
index 2b158e0..434eba9 100644
--- a/src/com/android/settings/datetime/AutoTimePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimePreferenceController.java
@@ -27,28 +27,26 @@
 import android.app.time.TimeManager;
 import android.content.Context;
 
-import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
 
-public class AutoTimePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+public class AutoTimePreferenceController extends TogglePreferenceController {
 
-    private static final String KEY_AUTO_TIME = "auto_time";
-    private final UpdateTimeAndDateCallback mCallback;
+    private UpdateTimeAndDateCallback mCallback;
     private final TimeManager mTimeManager;
 
-    public AutoTimePreferenceController(Context context, UpdateTimeAndDateCallback callback) {
-        super(context);
+    public AutoTimePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         mTimeManager = context.getSystemService(TimeManager.class);
+    }
+
+    public void setDateAndTimeCallback(UpdateTimeAndDateCallback callback) {
         mCallback = callback;
     }
 
     @Override
-    public boolean isAvailable() {
+    public int getAvailabilityStatus() {
         TimeCapabilities timeCapabilities =
                 getTimeCapabilitiesAndConfig().getCapabilities();
         int capability = timeCapabilities.getConfigureAutoDetectionEnabledCapability();
@@ -57,43 +55,31 @@
         // This method handles the "is visible?" check.
         switch (capability) {
             case CAPABILITY_NOT_SUPPORTED:
-                return false;
+                return DISABLED_DEPENDENT_SETTING;
             case CAPABILITY_POSSESSED:
-                return true;
             case CAPABILITY_NOT_ALLOWED:
                 // This case is expected for enterprise restrictions, where the toggle should be
                 // present but disabled. Disabling is handled declaratively via the
                 // settings:userRestriction attribute in .xml. The client-side logic is expected to
                 // concur with the capabilities logic in the system server.
-                return true;
             case CAPABILITY_NOT_APPLICABLE:
                 // CAPABILITY_NOT_APPLICABLE is not currently expected, so this is return value is
                 // arbitrary.
-                return true;
+                return AVAILABLE;
             default:
                 throw new IllegalStateException("Unknown capability=" + capability);
         }
     }
 
     @Override
-    public void updateState(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
-            return;
-        }
-
-        ((SwitchPreference) preference).setChecked(isEnabled());
+    public boolean isChecked() {
+        return isEnabled();
     }
 
     @Override
-    public String getPreferenceKey() {
-        return KEY_AUTO_TIME;
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        boolean autoTimeEnabled = (Boolean) newValue;
+    public boolean setChecked(boolean isChecked) {
         TimeConfiguration configuration = new TimeConfiguration.Builder()
-                .setAutoDetectionEnabled(autoTimeEnabled)
+                .setAutoDetectionEnabled(isChecked)
                 .build();
         boolean result = mTimeManager.updateTimeConfiguration(configuration);
 
@@ -101,6 +87,11 @@
         return result;
     }
 
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_system;
+    }
+
     /** Returns whether the preference should be "checked", i.e. set to the "on" position. */
     @VisibleForTesting
     public boolean isEnabled() {
diff --git a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
index 7d1c1b6..011cc97 100644
--- a/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/AutoTimeZonePreferenceController.java
@@ -27,36 +27,42 @@
 import android.app.time.TimeZoneConfiguration;
 import android.content.Context;
 
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.TogglePreferenceController;
 
-public class AutoTimeZonePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+public class AutoTimeZonePreferenceController extends TogglePreferenceController {
 
-    private static final String KEY_AUTO_TIME_ZONE = "auto_zone";
-
-    private final boolean mIsFromSUW;
-    private final UpdateTimeAndDateCallback mCallback;
+    private boolean mIsFromSUW;
+    private UpdateTimeAndDateCallback mCallback;
     private final TimeManager mTimeManager;
 
-    public AutoTimeZonePreferenceController(Context context, UpdateTimeAndDateCallback callback,
-            boolean isFromSUW) {
-        super(context);
+    public AutoTimeZonePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         mTimeManager = context.getSystemService(TimeManager.class);
+    }
+
+    /**
+     * Set the Time and Date callback
+     */
+    public AutoTimeZonePreferenceController setTimeAndDateCallback(
+            UpdateTimeAndDateCallback callback) {
         mCallback = callback;
+        return this;
+    }
+
+    /**
+     * Set if current fragment is launched via SUW
+     */
+    public AutoTimeZonePreferenceController setFromSUW(boolean isFromSUW) {
         mIsFromSUW = isFromSUW;
+        return this;
     }
 
     @Override
-    public boolean isAvailable() {
+    public int getAvailabilityStatus() {
         if (mIsFromSUW) {
-            return false;
+            return DISABLED_DEPENDENT_SETTING;
         }
 
         TimeZoneCapabilities timeZoneCapabilities =
@@ -67,43 +73,31 @@
         // This method handles the "is visible?" check.
         switch (capability) {
             case CAPABILITY_NOT_SUPPORTED:
-                return false;
+                return DISABLED_DEPENDENT_SETTING;
             case CAPABILITY_POSSESSED:
-                return true;
             case CAPABILITY_NOT_ALLOWED:
                 // This case is expected for enterprise restrictions, where the toggle should be
                 // present but disabled. Disabling is handled declaratively via the
                 // settings:userRestriction attribute in .xml. The client-side logic is expected to
                 // concur with the capabilities logic in the system server.
-                return true;
             case CAPABILITY_NOT_APPLICABLE:
                 // CAPABILITY_NOT_APPLICABLE is not currently expected, so this is return value is
                 // arbitrary.
-                return true;
+                return AVAILABLE;
             default:
                 throw new IllegalStateException("Unknown capability=" + capability);
         }
     }
 
     @Override
-    public String getPreferenceKey() {
-        return KEY_AUTO_TIME_ZONE;
+    public boolean isChecked() {
+        return isEnabled();
     }
 
     @Override
-    public void updateState(Preference preference) {
-        if (!(preference instanceof SwitchPreference)) {
-            return;
-        }
-
-        ((SwitchPreference) preference).setChecked(isEnabled());
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        boolean autoZoneEnabled = (Boolean) newValue;
+    public boolean setChecked(boolean isChecked) {
         TimeZoneConfiguration configuration = new TimeZoneConfiguration.Builder()
-                .setAutoDetectionEnabled(autoZoneEnabled)
+                .setAutoDetectionEnabled(isChecked)
                 .build();
         boolean result = mTimeManager.updateTimeZoneConfiguration(configuration);
 
@@ -112,6 +106,11 @@
     }
 
     @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_system;
+    }
+
+    @Override
     public CharSequence getSummary() {
         // If auto time zone cannot enable telephony fallback and is capable of location, then auto
         // time zone must use location.
@@ -124,12 +123,6 @@
         return "";
     }
 
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        refreshSummary(screen.findPreference(getPreferenceKey()));
-    }
-
     @VisibleForTesting
     boolean isEnabled() {
         TimeZoneConfiguration config = getTimeZoneCapabilitiesAndConfig().getConfiguration();
diff --git a/src/com/android/settings/datetime/DatePreferenceController.java b/src/com/android/settings/datetime/DatePreferenceController.java
index eef5526..02aba6e 100644
--- a/src/com/android/settings/datetime/DatePreferenceController.java
+++ b/src/com/android/settings/datetime/DatePreferenceController.java
@@ -33,14 +33,12 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.BasePreferenceController;
 
 import java.util.Calendar;
 
-public class DatePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, DatePickerDialog.OnDateSetListener {
+public class DatePreferenceController extends BasePreferenceController
+        implements DatePickerDialog.OnDateSetListener {
 
     public interface DatePreferenceHost extends UpdateTimeAndDateCallback {
         void showDatePicker();
@@ -49,38 +47,39 @@
     public static final int DIALOG_DATEPICKER = 0;
 
     private static final String TAG = "DatePreferenceController";
-    private static final String KEY_DATE = "date";
 
-    private final DatePreferenceHost mHost;
+    private DatePreferenceHost mHost;
     private final TimeManager mTimeManager;
 
-    public DatePreferenceController(Context context, DatePreferenceHost host) {
-        super(context);
-        mHost = host;
+    public DatePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         mTimeManager = context.getSystemService(TimeManager.class);
     }
 
+    public void setHost(DatePreferenceHost host) {
+        mHost = host;
+    }
+
     @Override
-    public boolean isAvailable() {
-        return true;
+    public int getAvailabilityStatus() {
+        return isEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
     }
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof RestrictedPreference)) {
-            return;
-        }
-        final Calendar now = Calendar.getInstance();
-        preference.setSummary(DateFormat.getLongDateFormat(mContext).format(now.getTime()));
-        if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
-            boolean enableManualDateSelection = isEnabled();
-            preference.setEnabled(enableManualDateSelection);
-        }
+        super.updateState(preference);
+        preference.setEnabled(isEnabled());
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        Calendar now = Calendar.getInstance();
+        return DateFormat.getLongDateFormat(mContext).format(now.getTime());
     }
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!TextUtils.equals(preference.getKey(), KEY_DATE)) {
+        if (!TextUtils.equals(getPreferenceKey(), preference.getKey())) {
             return false;
         }
         mHost.showDatePicker();
@@ -88,11 +87,6 @@
     }
 
     @Override
-    public String getPreferenceKey() {
-        return KEY_DATE;
-    }
-
-    @Override
     public void onDateSet(DatePicker view, int year, int month, int day) {
         setDate(year, month, day);
         mHost.updateTimeAndDateDisplay(mContext);
diff --git a/src/com/android/settings/datetime/DateTimeSettings.java b/src/com/android/settings/datetime/DateTimeSettings.java
index 367146b..fb1dd19 100644
--- a/src/com/android/settings/datetime/DateTimeSettings.java
+++ b/src/com/android/settings/datetime/DateTimeSettings.java
@@ -16,21 +16,17 @@
 
 package com.android.settings.datetime;
 
-import android.app.Activity;
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
 import android.app.timedetector.TimeDetectorHelper;
 import android.content.Context;
-import android.content.Intent;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 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;
+import com.google.android.setupcompat.util.WizardManagerHelper;
 
 @SearchIndexable
 public class DateTimeSettings extends DashboardFragment implements
@@ -59,40 +55,19 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
+        boolean isFromSUW = WizardManagerHelper.isAnySetupWizard(getIntent());
         getSettingsLifecycle().addObserver(new TimeChangeListenerMixin(context, this));
         use(LocationTimeZoneDetectionPreferenceController.class).setFragment(this);
-    }
+        use(AutoTimePreferenceController.class).setDateAndTimeCallback(this);
+        use(DatePreferenceController.class).setHost(this);
+        use(TimePreferenceController.class).setHost(this);
+        use(AutoTimeZonePreferenceController.class)
+                .setTimeAndDateCallback(this)
+                .setFromSUW(isFromSUW);
+        use(TimeFormatPreferenceController.class)
+                .setTimeAndDateCallback(this)
+                .setFromSUW(isFromSUW);
 
-    @Override
-    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        final Activity activity = getActivity();
-        final Intent intent = activity.getIntent();
-        final boolean isFromSUW = intent.getBooleanExtra(EXTRA_IS_FROM_SUW, false);
-
-        final AutoTimePreferenceController autoTimePreferenceController =
-                new AutoTimePreferenceController(
-                        activity, this /* UpdateTimeAndDateCallback */);
-        controllers.add(autoTimePreferenceController);
-        DatePreferenceController datePreferenceController = new DatePreferenceController(
-                activity, this /* UpdateTimeAndDateCallback */);
-        controllers.add(datePreferenceController);
-        controllers.add(new TimePreferenceController(
-                activity, this /* UpdateTimeAndDateCallback */, datePreferenceController));
-
-        final AutoTimeZonePreferenceController autoTimeZonePreferenceController =
-                new AutoTimeZonePreferenceController(
-                        activity, this /* UpdateTimeAndDateCallback */, isFromSUW);
-        controllers.add(autoTimeZonePreferenceController);
-        controllers.add(new TimeZonePreferenceController(activity));
-
-        final AutoTimeFormatPreferenceController autoTimeFormatPreferenceController =
-                new AutoTimeFormatPreferenceController(
-                        activity, this /* UpdateTimeAndDateCallback */);
-        controllers.add(autoTimeFormatPreferenceController);
-        controllers.add(new TimeFormatPreferenceController(
-                activity, this /* UpdateTimeAndDateCallback */, isFromSUW));
-        return controllers;
     }
 
     @Override
diff --git a/src/com/android/settings/datetime/TimeFormatPreferenceController.java b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
index 900ec7a..22f7509 100644
--- a/src/com/android/settings/datetime/TimeFormatPreferenceController.java
+++ b/src/com/android/settings/datetime/TimeFormatPreferenceController.java
@@ -19,78 +19,93 @@
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
-import android.text.TextUtils;
 import android.text.format.DateFormat;
 
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-import androidx.preference.TwoStatePreference;
 
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
 
 import java.util.Calendar;
 import java.util.Date;
 
-public class TimeFormatPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
+public class TimeFormatPreferenceController extends TogglePreferenceController {
 
     static final String HOURS_12 = "12";
     static final String HOURS_24 = "24";
 
-    private static final String KEY_TIME_FORMAT = "24 hour";
-
     // Used for showing the current date format, which looks like "12/31/2010", "2010/12/13", etc.
     // The date value is stubs (independent of actual date).
     private final Calendar mDummyDate;
-    private final boolean mIsFromSUW;
-    private final UpdateTimeAndDateCallback mUpdateTimeAndDateCallback;
+    private boolean mIsFromSUW;
+    private UpdateTimeAndDateCallback mUpdateTimeAndDateCallback;
 
-    public TimeFormatPreferenceController(Context context, UpdateTimeAndDateCallback callback,
-            boolean isFromSUW) {
-        super(context);
-        mIsFromSUW = isFromSUW;
+    public TimeFormatPreferenceController(Context context, String key) {
+        super(context, key);
         mDummyDate = Calendar.getInstance();
+    }
+
+    /**
+     * Set the Time and Date callback
+     */
+    public TimeFormatPreferenceController setTimeAndDateCallback(
+            UpdateTimeAndDateCallback callback) {
         mUpdateTimeAndDateCallback = callback;
+        return this;
+    }
+
+    /**
+     * Set if current fragment is launched via SUW
+     */
+    public TimeFormatPreferenceController setFromSUW(boolean isFromSUW) {
+        mIsFromSUW = isFromSUW;
+        return this;
     }
 
     @Override
-    public boolean isAvailable() {
-        return !mIsFromSUW;
+    public int getAvailabilityStatus() {
+        if (mIsFromSUW) {
+            return DISABLED_DEPENDENT_SETTING;
+        }
+        if (AutoTimeFormatPreferenceController.isAutoTimeFormatSelection(mContext)) {
+            return DISABLED_DEPENDENT_SETTING;
+        }
+        return AVAILABLE;
     }
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof TwoStatePreference)) {
-            return;
-        }
-        preference.setEnabled(
-            !AutoTimeFormatPreferenceController.isAutoTimeFormatSelection(mContext));
-        ((TwoStatePreference) preference).setChecked(is24Hour());
+        super.updateState(preference);
+        preference.setEnabled(getAvailabilityStatus() == AVAILABLE);
+        refreshSummary(preference);
+    }
+
+    @Override
+    public boolean isChecked() {
+        return is24Hour();
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        update24HourFormat(mContext, isChecked);
+        mUpdateTimeAndDateCallback.updateTimeAndDateDisplay(mContext);
+        return true;
+    }
+
+    @Override
+    public CharSequence getSummary() {
         final Calendar now = Calendar.getInstance();
         mDummyDate.setTimeZone(now.getTimeZone());
         // We use December 31st because it's unambiguous when demonstrating the date format.
         // We use 13:00 so we can demonstrate the 12/24 hour options.
         mDummyDate.set(now.get(Calendar.YEAR), 11, 31, 13, 0, 0);
         final Date dummyDate = mDummyDate.getTime();
-        preference.setSummary(DateFormat.getTimeFormat(mContext).format(dummyDate));
+        return DateFormat.getTimeFormat(mContext).format(dummyDate);
     }
 
     @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!(preference instanceof TwoStatePreference)
-                || !TextUtils.equals(KEY_TIME_FORMAT, preference.getKey())) {
-            return false;
-        }
-        final boolean is24Hour = ((SwitchPreference) preference).isChecked();
-        update24HourFormat(mContext, is24Hour);
-        mUpdateTimeAndDateCallback.updateTimeAndDateDisplay(mContext);
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_TIME_FORMAT;
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_system;
     }
 
     private boolean is24Hour() {
diff --git a/src/com/android/settings/datetime/TimePreferenceController.java b/src/com/android/settings/datetime/TimePreferenceController.java
index 09950fc..1923d55 100644
--- a/src/com/android/settings/datetime/TimePreferenceController.java
+++ b/src/com/android/settings/datetime/TimePreferenceController.java
@@ -16,7 +16,11 @@
 
 package com.android.settings.datetime;
 
+import static android.app.time.Capabilities.CAPABILITY_POSSESSED;
+
 import android.app.TimePickerDialog;
+import android.app.time.TimeCapabilities;
+import android.app.time.TimeManager;
 import android.app.timedetector.ManualTimeSuggestion;
 import android.app.timedetector.TimeDetector;
 import android.content.Context;
@@ -27,14 +31,12 @@
 
 import androidx.preference.Preference;
 
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.BasePreferenceController;
 
 import java.util.Calendar;
 
-public class TimePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, TimePickerDialog.OnTimeSetListener {
+public class TimePreferenceController extends BasePreferenceController
+        implements TimePickerDialog.OnTimeSetListener {
 
     public interface TimePreferenceHost extends UpdateTimeAndDateCallback {
         void showTimePicker();
@@ -43,41 +45,39 @@
     public static final int DIALOG_TIMEPICKER = 1;
 
     private static final String TAG = "TimePreferenceController";
-    private static final String KEY_TIME = "time";
 
-    private final DatePreferenceController mDatePreferenceController;
-    private final TimePreferenceHost mHost;
+    private TimePreferenceHost mHost;
+    private TimeManager mTimeManager;
 
+    public TimePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mTimeManager = context.getSystemService(TimeManager.class);
+    }
 
-    public TimePreferenceController(Context context,
-            TimePreferenceHost callback,
-            DatePreferenceController datePreferenceController) {
-        super(context);
-        mHost = callback;
-        mDatePreferenceController = datePreferenceController;
+    public void setHost(TimePreferenceHost host) {
+        mHost = host;
     }
 
     @Override
-    public boolean isAvailable() {
-        return true;
+    public int getAvailabilityStatus() {
+        return isEnabled() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
     }
 
     @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof RestrictedPreference)) {
-            return;
-        }
-        final Calendar now = Calendar.getInstance();
-        preference.setSummary(DateFormat.getTimeFormat(mContext).format(now.getTime()));
-        if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
-            boolean enableManualTimeSelection = mDatePreferenceController.isEnabled();
-            preference.setEnabled(enableManualTimeSelection);
-        }
+        super.updateState(preference);
+        preference.setEnabled(isEnabled());
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        Calendar now = Calendar.getInstance();
+        return DateFormat.getTimeFormat(mContext).format(now.getTime());
     }
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!TextUtils.equals(KEY_TIME, preference.getKey())) {
+        if (!TextUtils.equals(getPreferenceKey(), preference.getKey())) {
             return false;
         }
         mHost.showTimePicker();
@@ -85,11 +85,6 @@
     }
 
     @Override
-    public String getPreferenceKey() {
-        return KEY_TIME;
-    }
-
-    @Override
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
         if (mContext != null) {
             setTime(hourOfDay, minute);
@@ -132,4 +127,16 @@
             Log.w(TAG, "Unable to set time with suggestion=" + manualTimeSuggestion);
         }
     }
+
+    /**
+     * Returns whether selecting the preference should prompt for the user to enter the date
+     * manually. Exposed as public so that the time controller can easily share the same logic as
+     * the rules are identical for time.
+     */
+    public boolean isEnabled() {
+        TimeCapabilities timeZoneCapabilities =
+                mTimeManager.getTimeCapabilitiesAndConfig().getCapabilities();
+        int suggestManualTimeCapability = timeZoneCapabilities.getSetManualTimeCapability();
+        return suggestManualTimeCapability == CAPABILITY_POSSESSED;
+    }
 }
diff --git a/src/com/android/settings/datetime/TimeZonePreferenceController.java b/src/com/android/settings/datetime/TimeZonePreferenceController.java
index cb9c38a..d45173f 100644
--- a/src/com/android/settings/datetime/TimeZonePreferenceController.java
+++ b/src/com/android/settings/datetime/TimeZonePreferenceController.java
@@ -25,45 +25,41 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
-import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.datetime.ZoneGetter;
 
 import java.util.Calendar;
 
-public class TimeZonePreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
-
-    private static final String KEY_TIMEZONE = "timezone";
+public class TimeZonePreferenceController extends BasePreferenceController {
 
     private final TimeManager mTimeManager;
 
-    public TimeZonePreferenceController(Context context) {
-        super(context);
+    public TimeZonePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         mTimeManager = context.getSystemService(TimeManager.class);
     }
 
     @Override
+    public CharSequence getSummary() {
+        return getTimeZoneOffsetAndName();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return shouldEnableManualTimeZoneSelection() ? AVAILABLE : DISABLED_DEPENDENT_SETTING;
+    }
+
+    @Override
     public void updateState(Preference preference) {
-        if (!(preference instanceof RestrictedPreference)) {
+        super.updateState(preference);
+
+        if (preference instanceof RestrictedPreference
+                && ((RestrictedPreference) preference).isDisabledByAdmin()) {
             return;
         }
-        preference.setSummary(getTimeZoneOffsetAndName());
-        if (!((RestrictedPreference) preference).isDisabledByAdmin()) {
-            boolean enableManualTimeZoneSelection = shouldEnableManualTimeZoneSelection();
-            preference.setEnabled(enableManualTimeZoneSelection);
-        }
-    }
 
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_TIMEZONE;
+        preference.setEnabled(shouldEnableManualTimeZoneSelection());
     }
 
     @VisibleForTesting
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/AbstractBluetoothA2dpPreferenceController.java b/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java
index 7514577..09f3871 100644
--- a/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java
+++ b/src/com/android/settings/development/AbstractBluetoothA2dpPreferenceController.java
@@ -30,7 +30,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -45,7 +44,8 @@
         OnDestroy {
 
     @VisibleForTesting
-    static final int STREAMING_LABEL_ID = R.string.bluetooth_select_a2dp_codec_streaming_label;
+    static final int STREAMING_LABEL_ID =
+            com.android.settingslib.R.string.bluetooth_select_a2dp_codec_streaming_label;
 
     protected final BluetoothA2dpConfigStore mBluetoothA2dpConfigStore;
     protected BluetoothA2dp mBluetoothA2dp;
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/AdbDeviceDetailsActionController.java b/src/com/android/settings/development/AdbDeviceDetailsActionController.java
index da4430d..1faf36f 100644
--- a/src/com/android/settings/development/AdbDeviceDetailsActionController.java
+++ b/src/com/android/settings/development/AdbDeviceDetailsActionController.java
@@ -70,7 +70,7 @@
         mButtonsPref = ((ActionButtonsPreference) screen.findPreference(getPreferenceKey()))
                 .setButton1Visible(false)
                 .setButton2Icon(R.drawable.ic_settings_delete)
-                .setButton2Text(R.string.adb_device_forget)
+                .setButton2Text(com.android.settingslib.R.string.adb_device_forget)
                 .setButton2OnClickListener(view -> forgetDevice());
     }
 
diff --git a/src/com/android/settings/development/AdbDeviceDetailsFingerprintController.java b/src/com/android/settings/development/AdbDeviceDetailsFingerprintController.java
index 3aa92f1..e4bb737 100644
--- a/src/com/android/settings/development/AdbDeviceDetailsFingerprintController.java
+++ b/src/com/android/settings/development/AdbDeviceDetailsFingerprintController.java
@@ -23,7 +23,6 @@
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.widget.FooterPreference;
 
@@ -71,7 +70,7 @@
         mFingerprintCategory = (PreferenceCategory) screen.findPreference(getPreferenceKey());
         mFingerprintPref = new FooterPreference(mFingerprintCategory.getContext());
         final CharSequence titleFormat = mContext.getText(
-                R.string.adb_device_fingerprint_title_format);
+                com.android.settingslib.R.string.adb_device_fingerprint_title_format);
         mFingerprintPref.setTitle(String.format(
                 titleFormat.toString(), mPairedDevice.guid));
         mFingerprintCategory.addPreference(mFingerprintPref);
diff --git a/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java b/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java
index 7830bb9..1bb4f3c 100644
--- a/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java
+++ b/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java
@@ -82,7 +82,7 @@
         mEntityHeaderController
                 .setIcon(mContext.getDrawable(com.android.internal.R.drawable.ic_bt_laptop))
                 .setLabel(mPairedDevice.name)
-                .done(mFragment.getActivity(), true);
+                .done(true);
     }
 }
 
diff --git a/src/com/android/settings/development/AdbIpAddressPreferenceController.java b/src/com/android/settings/development/AdbIpAddressPreferenceController.java
index ce5a851..36d1b99 100644
--- a/src/com/android/settings/development/AdbIpAddressPreferenceController.java
+++ b/src/com/android/settings/development/AdbIpAddressPreferenceController.java
@@ -29,7 +29,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.deviceinfo.AbstractConnectivityPreferenceController;
 
@@ -110,13 +109,13 @@
         if (ipAddress != null) {
             int port = getPort();
             if (port <= 0) {
-                mAdbIpAddrPref.setSummary(R.string.status_unavailable);
+                mAdbIpAddrPref.setSummary(com.android.settingslib.R.string.status_unavailable);
             } else {
                 ipAddress += ":" + port;
             }
             mAdbIpAddrPref.setSummary(ipAddress);
         } else {
-            mAdbIpAddrPref.setSummary(R.string.status_unavailable);
+            mAdbIpAddrPref.setSummary(com.android.settingslib.R.string.status_unavailable);
         }
     }
 
diff --git a/src/com/android/settings/development/AdbPairedDevicePreference.java b/src/com/android/settings/development/AdbPairedDevicePreference.java
index 5d30428..9cc85bc 100644
--- a/src/com/android/settings/development/AdbPairedDevicePreference.java
+++ b/src/com/android/settings/development/AdbPairedDevicePreference.java
@@ -75,11 +75,11 @@
         gearNoBg.setVisibility(View.VISIBLE);
     }
 
-    static void setTitle(AdbPairedDevicePreference preference,
-                         PairDevice pairedDevice) {
+    static void setTitle(AdbPairedDevicePreference preference, PairDevice pairedDevice) {
         preference.setTitle(pairedDevice.name);
         preference.setSummary(pairedDevice.connected
-                ? preference.getContext().getText(R.string.adb_wireless_device_connected_summary)
+                ? preference.getContext()
+                .getText(com.android.settingslib.R.string.adb_wireless_device_connected_summary)
                 : "");
     }
 
diff --git a/src/com/android/settings/development/AdbQrcodeScannerFragment.java b/src/com/android/settings/development/AdbQrcodeScannerFragment.java
index afbb8e4..ca44747 100644
--- a/src/com/android/settings/development/AdbQrcodeScannerFragment.java
+++ b/src/com/android/settings/development/AdbQrcodeScannerFragment.java
@@ -177,7 +177,7 @@
         mVerifyingTextView = view.findViewById(R.id.verifying_textview);
 
         setHeaderTitle(R.string.wifi_dpp_scan_qr_code);
-        mSummary.setText(R.string.adb_wireless_qrcode_pairing_description);
+        mSummary.setText(com.android.settingslib.R.string.adb_wireless_qrcode_pairing_description);
 
         mErrorMessage = view.findViewById(R.id.error_message);
     }
diff --git a/src/com/android/settings/development/AdbWirelessDialogController.java b/src/com/android/settings/development/AdbWirelessDialogController.java
index 136c7b3..35471b9 100644
--- a/src/com/android/settings/development/AdbWirelessDialogController.java
+++ b/src/com/android/settings/development/AdbWirelessDialogController.java
@@ -59,22 +59,26 @@
 
         switch (mMode) {
             case AdbWirelessDialogUiBase.MODE_PAIRING:
-                String title = res.getString(R.string.adb_pairing_device_dialog_title);
+                String title = res.getString(
+                        com.android.settingslib.R.string.adb_pairing_device_dialog_title);
                 mUi.setTitle(title);
                 mView.findViewById(R.id.l_pairing_six_digit).setVisibility(View.VISIBLE);
                 mUi.setCancelButton(res.getString(R.string.cancel));
                 mUi.setCanceledOnTouchOutside(false);
                 break;
             case AdbWirelessDialogUiBase.MODE_PAIRING_FAILED:
-                String msg = res.getString(R.string.adb_pairing_device_dialog_failed_msg);
-                mUi.setTitle(R.string.adb_pairing_device_dialog_failed_title);
+                String msg = res.getString(
+                        com.android.settingslib.R.string.adb_pairing_device_dialog_failed_msg);
+                mUi.setTitle(
+                        com.android.settingslib.R.string.adb_pairing_device_dialog_failed_title);
                 mView.findViewById(R.id.l_pairing_failed).setVisibility(View.VISIBLE);
                 mFailedMsg = (TextView) mView.findViewById(R.id.pairing_failed_label);
                 mFailedMsg.setText(msg);
                 mUi.setSubmitButton(res.getString(R.string.okay));
                 break;
             case AdbWirelessDialogUiBase.MODE_QRCODE_FAILED:
-                mUi.setTitle(R.string.adb_pairing_device_dialog_failed_title);
+                mUi.setTitle(
+                        com.android.settingslib.R.string.adb_pairing_device_dialog_failed_title);
                 mView.findViewById(R.id.l_qrcode_pairing_failed).setVisibility(View.VISIBLE);
                 mUi.setSubmitButton(res.getString(R.string.okay));
                 break;
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/AnimatorDurationScalePreferenceController.java b/src/com/android/settings/development/AnimatorDurationScalePreferenceController.java
index 766352a..114b121 100644
--- a/src/com/android/settings/development/AnimatorDurationScalePreferenceController.java
+++ b/src/com/android/settings/development/AnimatorDurationScalePreferenceController.java
@@ -25,7 +25,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -48,9 +47,10 @@
 
         mWindowManager = IWindowManager.Stub.asInterface(
                 ServiceManager.getService(Context.WINDOW_SERVICE));
-        mListValues = context.getResources().getStringArray(R.array.animator_duration_scale_values);
+        mListValues = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.animator_duration_scale_values);
         mListSummaries = context.getResources().getStringArray(
-                R.array.animator_duration_scale_entries);
+                com.android.settingslib.R.array.animator_duration_scale_entries);
     }
 
     @Override
diff --git a/src/com/android/settings/development/AppPicker.java b/src/com/android/settings/development/AppPicker.java
index 51215a1..8f478b5 100644
--- a/src/com/android/settings/development/AppPicker.java
+++ b/src/com/android/settings/development/AppPicker.java
@@ -32,8 +32,6 @@
 import android.widget.ArrayAdapter;
 import android.widget.ListView;
 
-import com.android.settings.R;
-
 import java.text.Collator;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -168,7 +166,7 @@
             Collections.sort(mPackageInfoList, sDisplayNameComparator);
             if (mIncludeNothing) {
                 MyApplicationInfo info = new MyApplicationInfo();
-                info.label = context.getText(R.string.no_application);
+                info.label = context.getText(com.android.settingslib.R.string.no_application);
                 mPackageInfoList.add(0, info);
             }
             addAll(mPackageInfoList);
diff --git a/src/com/android/settings/development/AppViewHolder.java b/src/com/android/settings/development/AppViewHolder.java
index 4deef90..6bdf454 100644
--- a/src/com/android/settings/development/AppViewHolder.java
+++ b/src/com/android/settings/development/AppViewHolder.java
@@ -21,7 +21,6 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.android.settings.R;
 import com.android.settingslib.applications.ApplicationsState;
 
 // View Holder used when displaying views
@@ -36,7 +35,8 @@
 
     static public AppViewHolder createOrRecycle(LayoutInflater inflater, View convertView) {
         if (convertView == null) {
-            convertView = inflater.inflate(R.layout.preference_app, null);
+            convertView =
+                    inflater.inflate(com.android.settingslib.widget.preference.app.R.layout.preference_app, null);
 
             // Creates a ViewHolder and store references to the two children views
             // we want to bind data to.
@@ -45,7 +45,8 @@
             holder.appName = convertView.findViewById(android.R.id.title);
             holder.appIcon = convertView.findViewById(android.R.id.icon);
             holder.summary = convertView.findViewById(android.R.id.summary);
-            holder.disabled = convertView.findViewById(R.id.appendix);
+            holder.disabled =
+                    convertView.findViewById(com.android.settingslib.widget.preference.app.R.id.appendix);
             holder.widget = convertView.findViewById(android.R.id.widget_frame);
             convertView.setTag(holder);
             return holder;
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..09af27a 100644
--- a/src/com/android/settings/development/BackAnimationPreferenceController.java
+++ b/src/com/android/settings/development/BackAnimationPreferenceController.java
@@ -16,18 +16,19 @@
 
 package com.android.settings.development;
 
+import static com.android.window.flags.Flags.predictiveBackSystemAnims;
+
 import android.content.Context;
 import android.provider.Settings;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
+import androidx.preference.TwoStatePreference;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
-import java.util.Objects;
-
 /**
  * PreferenceController for enabling/disabling animation related to back button and back gestures.
  */
@@ -49,13 +50,17 @@
 
 
     public BackAnimationPreferenceController(Context context,
-            DevelopmentSettingsDashboardFragment fragment) {
+            @Nullable DevelopmentSettingsDashboardFragment fragment) {
         super(context);
-        Objects.requireNonNull(fragment);
         mFragment = fragment;
     }
 
     @Override
+    public boolean isAvailable() {
+        return !predictiveBackSystemAnims();
+    }
+
+    @Override
     public String getPreferenceKey() {
         return BACK_NAVIGATION_ANIMATION_KEY;
     }
@@ -76,7 +81,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 +89,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/BackAnimationPreferenceDialog.java b/src/com/android/settings/development/BackAnimationPreferenceDialog.java
index 8347e8d..9715075 100644
--- a/src/com/android/settings/development/BackAnimationPreferenceDialog.java
+++ b/src/com/android/settings/development/BackAnimationPreferenceDialog.java
@@ -27,7 +27,6 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 
-import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 /**
@@ -66,8 +65,8 @@
     @NonNull
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         return new AlertDialog.Builder(getActivity())
-                .setTitle(R.string.back_navigation_animation)
-                .setMessage(R.string.back_navigation_animation_dialog)
+                .setTitle(com.android.settingslib.R.string.back_navigation_animation)
+                .setMessage(com.android.settingslib.R.string.back_navigation_animation_dialog)
                 .setPositiveButton(android.R.string.ok, this /* onClickListener */)
                 .create();
     }
diff --git a/src/com/android/settings/development/BackgroundProcessLimitPreferenceController.java b/src/com/android/settings/development/BackgroundProcessLimitPreferenceController.java
index 690d079..7a7d6fa 100644
--- a/src/com/android/settings/development/BackgroundProcessLimitPreferenceController.java
+++ b/src/com/android/settings/development/BackgroundProcessLimitPreferenceController.java
@@ -25,8 +25,8 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.R;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 public class BackgroundProcessLimitPreferenceController extends
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/BluetoothAvrcpVersionPreferenceController.java b/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceController.java
index 8c307a6..0bf94de 100644
--- a/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceController.java
@@ -24,8 +24,8 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.R;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 public class BluetoothAvrcpVersionPreferenceController extends DeveloperOptionsPreferenceController
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/BluetoothLeAudioModePreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioModePreferenceController.java
new file mode 100644
index 0000000..06cfe65
--- /dev/null
+++ b/src/com/android/settings/development/BluetoothLeAudioModePreferenceController.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothManager;
+import android.bluetooth.BluetoothStatusCodes;
+import android.content.Context;
+import android.os.SystemProperties;
+import android.sysprop.BluetoothProperties;
+import android.text.TextUtils;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+
+/**
+ * Preference controller to control Bluetooth LE audio mode
+ */
+public class BluetoothLeAudioModePreferenceController
+        extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    private static final String PREFERENCE_KEY = "bluetooth_leaudio_mode";
+
+    static final String LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY =
+            "persist.bluetooth.leaudio_dynamic_switcher.mode";
+
+    @Nullable private final DevelopmentSettingsDashboardFragment mFragment;
+
+    private final String[] mListValues;
+    private final String[] mListSummaries;
+    @VisibleForTesting
+    @Nullable String mNewMode;
+    @VisibleForTesting
+    BluetoothAdapter mBluetoothAdapter;
+
+    boolean mChanged = false;
+
+    public BluetoothLeAudioModePreferenceController(@NonNull Context context,
+            @Nullable DevelopmentSettingsDashboardFragment fragment) {
+        super(context);
+        mFragment = fragment;
+        mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
+
+        mListValues = context.getResources().getStringArray(R.array.bluetooth_leaudio_mode_values);
+        mListSummaries = context.getResources().getStringArray(R.array.bluetooth_leaudio_mode);
+    }
+
+    @Override
+    @NonNull public String getPreferenceKey() {
+        return PREFERENCE_KEY;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return BluetoothProperties.isProfileBapBroadcastSourceEnabled().orElse(false);
+    }
+
+    @Override
+    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
+        if (mFragment == null) {
+            return false;
+        }
+
+        BluetoothRebootDialog.show(mFragment);
+        mChanged = true;
+        mNewMode = newValue.toString();
+        return false;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        if (mBluetoothAdapter == null) {
+            return;
+        }
+
+        if (mBluetoothAdapter.isLeAudioBroadcastSourceSupported()
+                == BluetoothStatusCodes.FEATURE_SUPPORTED) {
+            SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, "broadcast");
+        } else if (mBluetoothAdapter.isLeAudioSupported()
+                == BluetoothStatusCodes.FEATURE_SUPPORTED) {
+            SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, "unicast");
+        } else {
+            SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, "disabled");
+        }
+
+        final String currentValue = SystemProperties.get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY);
+        int index = 0;
+        for (int i = 0; i < mListValues.length; i++) {
+            if (TextUtils.equals(currentValue, mListValues[i])) {
+                index = i;
+                break;
+            }
+        }
+
+        final ListPreference listPreference = (ListPreference) preference;
+        listPreference.setValue(mListValues[index]);
+        listPreference.setSummary(mListSummaries[index]);
+    }
+
+    /**
+     * Called when the RebootDialog confirm is clicked.
+     */
+    public void onRebootDialogConfirmed() {
+        if (!mChanged) {
+            return;
+        }
+        SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mNewMode);
+    }
+
+    /**
+     * Called when the RebootDialog cancel is clicked.
+     */
+    public void onRebootDialogCanceled() {
+        mChanged = false;
+    }
+}
diff --git a/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java b/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java
index 9cbbc7f..2a544f2 100644
--- a/src/com/android/settings/development/BluetoothLeAudioPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothLeAudioPreferenceController.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;
@@ -65,6 +66,12 @@
     }
 
     @Override
+    public boolean isAvailable() {
+        return BluetoothProperties.isProfileBapUnicastClientEnabled().orElse(false)
+                && !BluetoothProperties.isProfileBapBroadcastSourceEnabled().orElse(false);
+    }
+
+    @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         BluetoothRebootDialog.show(mFragment);
         mChanged = true;
@@ -84,7 +91,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/BluetoothMapVersionPreferenceController.java b/src/com/android/settings/development/BluetoothMapVersionPreferenceController.java
index ac20627..b91a8ba 100644
--- a/src/com/android/settings/development/BluetoothMapVersionPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothMapVersionPreferenceController.java
@@ -24,8 +24,8 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.R;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 /**
diff --git a/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceController.java b/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceController.java
index 8ace9bb..607b672 100644
--- a/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceController.java
@@ -56,10 +56,12 @@
         super(context);
         mListValues =
                 context.getResources()
-                        .getStringArray(R.array.bt_hci_snoop_log_profile_filter_values);
+                        .getStringArray(com.android.settingslib.R
+                                .array.bt_hci_snoop_log_profile_filter_values);
         mListEntries =
                 context.getResources()
-                        .getStringArray(R.array.bt_hci_snoop_log_profile_filter_entries);
+                        .getStringArray(com.android.settingslib.R
+                                .array.bt_hci_snoop_log_profile_filter_entries);
         mProfilesFilterDisabledEntry =
                 context.getResources()
                         .getString(R.string.bt_hci_snoop_log_filtered_mode_disabled_summary);
diff --git a/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceController.java b/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceController.java
index c17291c..1816011 100644
--- a/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceController.java
@@ -56,10 +56,12 @@
         super(context);
         mListValues =
                 context.getResources()
-                        .getStringArray(R.array.bt_hci_snoop_log_profile_filter_values);
+                        .getStringArray(com.android.settingslib.R
+                                .array.bt_hci_snoop_log_profile_filter_values);
         mListEntries =
                 context.getResources()
-                        .getStringArray(R.array.bt_hci_snoop_log_profile_filter_entries);
+                        .getStringArray(com.android.settingslib.R
+                                .array.bt_hci_snoop_log_profile_filter_entries);
         mProfilesFilterDisabledEntry =
                 context.getResources()
                         .getString(R.string.bt_hci_snoop_log_filtered_mode_disabled_summary);
diff --git a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java
index 31ed652..1ef4810 100644
--- a/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothSnoopLogPreferenceController.java
@@ -26,7 +26,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -48,8 +47,10 @@
     public BluetoothSnoopLogPreferenceController(
             Context context, DevelopmentSettingsDashboardFragment fragment) {
         super(context);
-        mListValues = context.getResources().getStringArray(R.array.bt_hci_snoop_log_values);
-        mListEntries = context.getResources().getStringArray(R.array.bt_hci_snoop_log_entries);
+        mListValues = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.bt_hci_snoop_log_values);
+        mListEntries = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.bt_hci_snoop_log_entries);
         mFragment = fragment;
     }
 
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/CachedAppsFreezerPreferenceController.java b/src/com/android/settings/development/CachedAppsFreezerPreferenceController.java
index e57a3d7..5142a78 100644
--- a/src/com/android/settings/development/CachedAppsFreezerPreferenceController.java
+++ b/src/com/android/settings/development/CachedAppsFreezerPreferenceController.java
@@ -29,7 +29,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -46,9 +45,10 @@
     public CachedAppsFreezerPreferenceController(Context context) {
         super(context);
 
-        mListValues = context.getResources().getStringArray(R.array.cached_apps_freezer_values);
+        mListValues = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.cached_apps_freezer_values);
         mListSummaries = context.getResources().getStringArray(
-                R.array.cached_apps_freezer_entries);
+                com.android.settingslib.R.array.cached_apps_freezer_entries);
     }
 
     @Override
@@ -76,7 +76,8 @@
 
         if (!newValue.equals(currentValue)) {
             final AlertDialog dialog = new AlertDialog.Builder(mContext)
-                    .setMessage(R.string.cached_apps_freezer_reboot_dialog_text)
+                    .setMessage(
+                            com.android.settingslib.R.string.cached_apps_freezer_reboot_dialog_text)
                     .setPositiveButton(android.R.string.ok, getRebootDialogOkListener(newValue))
                     .setNegativeButton(android.R.string.cancel, getRebootDialogCancelListener())
                     .create();
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/ClearAdbKeysPreferenceController.java b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java
index b39d874..69e6c69 100644
--- a/src/com/android/settings/development/ClearAdbKeysPreferenceController.java
+++ b/src/com/android/settings/development/ClearAdbKeysPreferenceController.java
@@ -52,6 +52,9 @@
 
     @Override
     public boolean isAvailable() {
+        // If the build is insecure (any -user build, 'ro.adb.secure=0'), adbd does not
+        // requests/store authorizations. There is no need for a "revoke authorizations"
+        // button.
         return AdbProperties.secure().orElse(false);
     }
 
diff --git a/src/com/android/settings/development/ClearAdbKeysWarningDialog.java b/src/com/android/settings/development/ClearAdbKeysWarningDialog.java
index cdf8a95..129f26a 100644
--- a/src/com/android/settings/development/ClearAdbKeysWarningDialog.java
+++ b/src/com/android/settings/development/ClearAdbKeysWarningDialog.java
@@ -25,7 +25,6 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 
-import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 public class ClearAdbKeysWarningDialog extends InstrumentedDialogFragment implements
@@ -51,7 +50,7 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         return new AlertDialog.Builder(getActivity())
-                .setMessage(R.string.adb_keys_warning_message)
+                .setMessage(com.android.settingslib.R.string.adb_keys_warning_message)
                 .setPositiveButton(android.R.string.ok, this /* onClickListener */)
                 .setNegativeButton(android.R.string.cancel, null /* onClickListener */)
                 .create();
diff --git a/src/com/android/settings/development/ColorModePreference.java b/src/com/android/settings/development/ColorModePreference.java
index 9e5666e..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.settings.R;
+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/DebugGpuOverdrawPreferenceController.java b/src/com/android/settings/development/DebugGpuOverdrawPreferenceController.java
index da4b94b..e53ab20 100644
--- a/src/com/android/settings/development/DebugGpuOverdrawPreferenceController.java
+++ b/src/com/android/settings/development/DebugGpuOverdrawPreferenceController.java
@@ -24,7 +24,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 import com.android.settingslib.development.SystemPropPoker;
@@ -41,8 +40,10 @@
     public DebugGpuOverdrawPreferenceController(Context context) {
         super(context);
 
-        mListValues = context.getResources().getStringArray(R.array.debug_hw_overdraw_values);
-        mListSummaries = context.getResources().getStringArray(R.array.debug_hw_overdraw_entries);
+        mListValues = context.getResources().getStringArray(
+                com.android.settingslib.R.array.debug_hw_overdraw_values);
+        mListSummaries = context.getResources().getStringArray(
+                com.android.settingslib.R.array.debug_hw_overdraw_entries);
     }
 
     @Override
diff --git a/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceController.java b/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceController.java
index 8f15c86..fc74206 100644
--- a/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceController.java
+++ b/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceController.java
@@ -24,7 +24,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 import com.android.settingslib.development.SystemPropPoker;
@@ -41,8 +40,10 @@
     public DebugNonRectClipOperationsPreferenceController(Context context) {
         super(context);
 
-        mListValues = context.getResources().getStringArray(R.array.show_non_rect_clip_values);
-        mListSummaries = context.getResources().getStringArray(R.array.show_non_rect_clip_entries);
+        mListValues = context.getResources().getStringArray(
+                com.android.settingslib.R.array.show_non_rect_clip_values);
+        mListSummaries = context.getResources().getStringArray(
+                com.android.settingslib.R.array.show_non_rect_clip_entries);
     }
 
     @Override
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/DevelopmentAppPicker.java b/src/com/android/settings/development/DevelopmentAppPicker.java
new file mode 100644
index 0000000..7ef0869
--- /dev/null
+++ b/src/com/android/settings/development/DevelopmentAppPicker.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.development;
+
+import static android.app.Activity.RESULT_OK;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Process;
+import android.os.UserHandle;
+
+import com.android.settings.R;
+import com.android.settings.applications.defaultapps.DefaultAppPickerFragment;
+import com.android.settingslib.applications.DefaultAppInfo;
+
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+public class DevelopmentAppPicker extends DefaultAppPickerFragment {
+    public static final String EXTRA_REQUESTING_PERMISSION = "REQUESTING_PERMISSION";
+    public static final String EXTRA_DEBUGGABLE = "DEBUGGABLE";
+    public static final String EXTRA_SELECTING_APP = "SELECTING_APP";
+
+    private String mPermissionName;
+    private boolean mDebuggableOnly;
+    private String mSelectingApp;
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        Bundle arguments = getArguments();
+        if (arguments == null) {
+            return;
+        }
+        mPermissionName = arguments.getString(EXTRA_REQUESTING_PERMISSION);
+        mDebuggableOnly = arguments.getBoolean(EXTRA_DEBUGGABLE);
+        mSelectingApp = arguments.getString(EXTRA_SELECTING_APP);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DEVELOPMENT_APP_PICKER;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.development_app_picker;
+    }
+
+    @Override
+    protected boolean shouldShowItemNone() {
+        return true;
+    }
+
+    @Override
+    protected List<DefaultAppInfo> getCandidates() {
+        List<DefaultAppInfo> packageInfoList = new ArrayList<DefaultAppInfo>();
+        Context context = getContext();
+        List<ApplicationInfo> installedApps = mPm.getInstalledApplications(0);
+        for (ApplicationInfo ai : installedApps) {
+            if (ai.uid == Process.SYSTEM_UID) {
+                continue;
+            }
+            // Filter out apps that are not debuggable if required.
+            if (mDebuggableOnly) {
+                // On a user build, we only allow debugging of apps that
+                // are marked as debuggable, otherwise (for platform development)
+                // we allow all apps.
+                if ((ai.flags & ApplicationInfo.FLAG_DEBUGGABLE) == 0
+                        && "user".equals(Build.TYPE)) {
+                    continue;
+                }
+            }
+
+            // Filter out apps that do not request the permission if required.
+            if (mPermissionName != null) {
+                boolean requestsPermission = false;
+                try {
+                    PackageInfo pi = mPm.getPackageInfo(ai.packageName,
+                            PackageManager.GET_PERMISSIONS);
+                    if (pi.requestedPermissions == null) {
+                        continue;
+                    }
+                    for (String requestedPermission : pi.requestedPermissions) {
+                        if (requestedPermission.equals(mPermissionName)) {
+                            requestsPermission = true;
+                            break;
+                        }
+                    }
+                    if (!requestsPermission) {
+                        continue;
+                    }
+                } catch (PackageManager.NameNotFoundException e) {
+                    continue;
+                }
+            }
+            DefaultAppInfo appInfo = new DefaultAppInfo(context, mPm, UserHandle.myUserId(), ai);
+            packageInfoList.add(appInfo);
+        }
+        Collections.sort(packageInfoList, sLabelComparator);
+        return packageInfoList;
+    }
+
+    @Override
+    protected String getDefaultKey() {
+        return mSelectingApp;
+    }
+
+    @Override
+    protected boolean setDefaultKey(String key) {
+        DefaultAppInfo appInfo = (DefaultAppInfo) getCandidate(key);
+        Intent intent = new Intent();
+        if (appInfo != null && appInfo.packageItemInfo != null) {
+            intent.setAction(appInfo.packageItemInfo.packageName);
+        }
+        setResult(RESULT_OK, intent);
+        finish();
+        return true;
+    }
+
+    private static final Comparator<DefaultAppInfo> sLabelComparator =
+            new Comparator<DefaultAppInfo>() {
+                public int compare(DefaultAppInfo a, DefaultAppInfo b) {
+                    return Collator.getInstance().compare(a.loadLabel(), b.loadLabel());
+                }
+            };
+}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 047b219..504eda8 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -45,8 +45,11 @@
 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 android.widget.Toast;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.localbroadcastmanager.content.LocalBroadcastManager;
 
@@ -80,7 +83,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 +91,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,
@@ -230,6 +232,19 @@
             getActivity().finish();
             return;
         }
+        Context context = requireContext();
+        UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
+
+        if (!um.isAdminUser()) {
+            Toast.makeText(context, R.string.dev_settings_available_to_admin_only_warning,
+                            Toast.LENGTH_SHORT)
+                    .show();
+            finish();
+        } else if (!DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(context)) {
+            Toast.makeText(context, R.string.dev_settings_disabled_warning, Toast.LENGTH_SHORT)
+                    .show();
+            finish();
+        }
     }
 
     @Override
@@ -243,7 +258,8 @@
             mIsAvailable = false;
             // Show error message
             if (!isUiRestrictedByOnlyAdmin()) {
-                getEmptyTextView().setText(R.string.development_settings_not_available);
+                getEmptyTextView().setText(
+                        com.android.settingslib.R.string.development_settings_not_available);
             }
             getPreferenceScreen().removeAll();
             return;
@@ -332,10 +348,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) {
@@ -371,8 +384,8 @@
                     DisableDevSettingsDialogFragment.show(this /* host */);
                 }
             }
-            FeatureFactory.getFactory(
-                    getContext()).getSearchFeatureProvider().sendPreIndexIntent(getContext());
+            FeatureFactory.getFeatureFactory().getSearchFeatureProvider()
+                    .sendPreIndexIntent(getContext());
         }
     }
 
@@ -442,10 +455,10 @@
                         BluetoothLeAudioPreferenceController.class);
         leAudioFeatureController.onRebootDialogConfirmed();
 
-        final BluetoothLeAudioAllowListPreferenceController leAudioAllowListController =
+        final BluetoothLeAudioModePreferenceController leAudioModeController =
                 getDevelopmentOptionsController(
-                    BluetoothLeAudioAllowListPreferenceController.class);
-        leAudioAllowListController.onRebootDialogConfirmed();
+                        BluetoothLeAudioModePreferenceController.class);
+        leAudioModeController.onRebootDialogConfirmed();
     }
 
     @Override
@@ -464,10 +477,10 @@
                         BluetoothLeAudioPreferenceController.class);
         leAudioFeatureController.onRebootDialogCanceled();
 
-        final BluetoothLeAudioAllowListPreferenceController leAudioAllowListController =
+        final BluetoothLeAudioModePreferenceController leAudioModeController =
                 getDevelopmentOptionsController(
-                    BluetoothLeAudioAllowListPreferenceController.class);
-        leAudioAllowListController.onRebootDialogCanceled();
+                        BluetoothLeAudioModePreferenceController.class);
+        leAudioModeController.onRebootDialogCanceled();
     }
 
     @Override
@@ -611,8 +624,9 @@
     }
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
-            Activity activity, Lifecycle lifecycle, DevelopmentSettingsDashboardFragment fragment,
-            BluetoothA2dpConfigStore bluetoothA2dpConfigStore) {
+            @Nullable Activity activity, @Nullable Lifecycle lifecycle,
+            @Nullable DevelopmentSettingsDashboardFragment fragment,
+            @Nullable BluetoothA2dpConfigStore bluetoothA2dpConfigStore) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new MemoryUsagePreferenceController(context));
         controllers.add(new BugReportPreferenceController(context));
@@ -628,6 +642,7 @@
         controllers.add(new BluetoothSnoopLogFilterProfilePbapPreferenceController(context));
         controllers.add(new BluetoothSnoopLogFilterProfileMapPreferenceController(context));
         controllers.add(new OemUnlockPreferenceController(context, activity, fragment));
+        controllers.add(new Enable16kPagesPreferenceController(context, fragment));
         controllers.add(new PictureColorModePreferenceController(context, lifecycle));
         controllers.add(new WebViewAppPreferenceController(context));
         controllers.add(new CoolColorTemperaturePreferenceController(context));
@@ -665,6 +680,7 @@
         controllers.add(new BluetoothAvrcpVersionPreferenceController(context));
         controllers.add(new BluetoothMapVersionPreferenceController(context));
         controllers.add(new BluetoothLeAudioPreferenceController(context, fragment));
+        controllers.add(new BluetoothLeAudioModePreferenceController(context, fragment));
         controllers.add(new BluetoothLeAudioDeviceDetailsPreferenceController(context));
         controllers.add(new BluetoothLeAudioAllowListPreferenceController(context, fragment));
         controllers.add(new BluetoothA2dpHwOffloadPreferenceController(context, fragment));
@@ -678,6 +694,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));
@@ -690,6 +707,7 @@
         controllers.add(new HardwareLayersUpdatesPreferenceController(context));
         controllers.add(new DebugGpuOverdrawPreferenceController(context));
         controllers.add(new DebugNonRectClipOperationsPreferenceController(context));
+        controllers.add(new GameDefaultFrameRatePreferenceController(context));
         controllers.add(new ForceDarkPreferenceController(context));
         controllers.add(new EnableBlursPreferenceController(context));
         controllers.add(new ForceMSAAPreferenceController(context));
@@ -744,6 +762,7 @@
         controllers.add(new ContrastPreferenceController(
                 context, context.getSystemService(UiModeManager.class)));
         controllers.add(new ForceEnableNotesRolePreferenceController(context));
+        controllers.add(new GrammaticalGenderPreferenceController(context));
 
         return controllers;
     }
diff --git a/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java b/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
deleted file mode 100644
index 9ea24da..0000000
--- a/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
+++ /dev/null
@@ -1,32 +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.development;
-
-import android.app.Activity;
-import android.os.Bundle;
-import android.widget.Toast;
-
-import com.android.settings.R;
-
-public class DevelopmentSettingsDisabledActivity extends Activity {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        Toast.makeText(this, R.string.dev_settings_disabled_warning, Toast.LENGTH_SHORT).show();
-        finish();
-    }
-}
diff --git a/src/com/android/settings/development/DevelopmentSystemPropertiesWrapper.java b/src/com/android/settings/development/DevelopmentSystemPropertiesWrapper.java
new file mode 100644
index 0000000..e8a64d2
--- /dev/null
+++ b/src/com/android/settings/development/DevelopmentSystemPropertiesWrapper.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.development;
+
+import android.annotation.NonNull;
+import android.os.SystemProperties;
+/**
+ * Wrapper interface to access {@link SystemProperties}.
+ *
+ * @hide
+ */
+
+public interface DevelopmentSystemPropertiesWrapper {
+    /**
+     * Get the String value for the given {@code key}.
+     *
+     * @param key the key to lookup
+     * @param def the default value in case the property is not set or empty
+     * @return if the {@code key} isn't found, return {@code def} if it isn't null, or an empty
+     * string otherwise
+     */
+    @NonNull
+    String get(@NonNull String key, @NonNull String def);
+    /**
+     * Set the value for the given {@code key} to {@code val}.
+     *
+     * @throws IllegalArgumentException if the {@code val} exceeds 91 characters
+     * @throws RuntimeException if the property cannot be set, for example, if it was blocked by
+     * SELinux. libc will log the underlying reason.
+     */
+    void set(@NonNull String key, @NonNull String val);
+
+    /**
+     * Get the Integer value for the given {@code key}.
+     *
+     * @param key the key to lookup
+     * @param def the default value in case the property is not set or empty
+     * @return if the {@code key} isn't found, return {@code def} if it isn't null, not parsable
+     * or an empty string otherwise
+     */
+    @NonNull
+    int getInt(@NonNull String key, @NonNull int def);
+
+    /**
+     * Get the boolean value for the given {@code key}.
+     *
+     * @param key the key to lookup
+     * @param def the default value in case the property is not set or empty
+     * @return if the {@code key} isn't found, return {@code def}.
+     */
+    boolean getBoolean(@NonNull String key, @NonNull boolean def);
+}
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/DisableDevSettingsDialogFragment.java b/src/com/android/settings/development/DisableDevSettingsDialogFragment.java
index 224768b..4355f27 100644
--- a/src/com/android/settings/development/DisableDevSettingsDialogFragment.java
+++ b/src/com/android/settings/development/DisableDevSettingsDialogFragment.java
@@ -29,6 +29,8 @@
 import androidx.fragment.app.FragmentManager;
 
 import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.applications.ProcessStatsSummary;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 public class DisableDevSettingsDialogFragment extends InstrumentedDialogFragment
@@ -42,7 +44,7 @@
         return dialog;
     }
 
-    public static void show(DevelopmentSettingsDashboardFragment host) {
+    public static void show(SettingsPreferenceFragment host) {
         final DisableDevSettingsDialogFragment dialog = new DisableDevSettingsDialogFragment();
         dialog.setTargetFragment(host, 0 /* requestCode */);
         // We need to handle data changes and switch state based on which button user clicks,
@@ -75,18 +77,31 @@
     @Override
     public void onClick(DialogInterface dialog, int which) {
         Fragment fragment = getTargetFragment();
-        if (!(fragment instanceof DevelopmentSettingsDashboardFragment)){
+        if (!(fragment instanceof DevelopmentSettingsDashboardFragment)
+                && !(fragment instanceof ProcessStatsSummary)) {
             Log.e(TAG, "getTargetFragment return unexpected type");
         }
 
-        final DevelopmentSettingsDashboardFragment host =
-                (DevelopmentSettingsDashboardFragment) fragment;
-        if (which == DialogInterface.BUTTON_POSITIVE) {
-            host.onDisableDevelopmentOptionsConfirmed();
-            PowerManager pm = getContext().getSystemService(PowerManager.class);
-            pm.reboot(null);
-        } else {
-            host.onDisableDevelopmentOptionsRejected();
+        if (fragment instanceof DevelopmentSettingsDashboardFragment) {
+            final DevelopmentSettingsDashboardFragment host =
+                    (DevelopmentSettingsDashboardFragment) fragment;
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                host.onDisableDevelopmentOptionsConfirmed();
+                PowerManager pm = getContext().getSystemService(PowerManager.class);
+                pm.reboot(null);
+            } else {
+                host.onDisableDevelopmentOptionsRejected();
+            }
+        } else if (fragment instanceof ProcessStatsSummary) {
+            final ProcessStatsSummary host =
+                    (ProcessStatsSummary) fragment;
+            if (which == DialogInterface.BUTTON_POSITIVE) {
+                host.onRebootDialogConfirmed();
+                PowerManager pm = getContext().getSystemService(PowerManager.class);
+                pm.reboot(null);
+            } else {
+                host.onRebootDialogCanceled();
+            }
         }
     }
 }
diff --git a/src/com/android/settings/development/DisableLogPersistWarningDialog.java b/src/com/android/settings/development/DisableLogPersistWarningDialog.java
index 4514b1b..6f7adf0 100644
--- a/src/com/android/settings/development/DisableLogPersistWarningDialog.java
+++ b/src/com/android/settings/development/DisableLogPersistWarningDialog.java
@@ -25,7 +25,6 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 
-import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 public class DisableLogPersistWarningDialog extends InstrumentedDialogFragment implements
@@ -55,8 +54,8 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         return new AlertDialog.Builder(getActivity())
-                .setTitle(R.string.dev_logpersist_clear_warning_title)
-                .setMessage(R.string.dev_logpersist_clear_warning_message)
+                .setTitle(com.android.settingslib.R.string.dev_logpersist_clear_warning_title)
+                .setMessage(com.android.settingslib.R.string.dev_logpersist_clear_warning_message)
                 .setPositiveButton(android.R.string.ok, this /* onClickListener */)
                 .setNegativeButton(android.R.string.cancel, this /* onClickListener */)
                 .create();
diff --git a/src/com/android/settings/development/Enable16kPagesPreferenceController.java b/src/com/android/settings/development/Enable16kPagesPreferenceController.java
new file mode 100644
index 0000000..3f9da57
--- /dev/null
+++ b/src/com/android/settings/development/Enable16kPagesPreferenceController.java
@@ -0,0 +1,360 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.ParcelFileDescriptor;
+import android.os.PersistableBundle;
+import android.os.PowerManager;
+import android.os.SystemProperties;
+import android.os.SystemUpdateManager;
+import android.os.UpdateEngine;
+import android.os.UpdateEngineStable;
+import android.os.UpdateEngineStableCallback;
+import android.provider.Settings;
+import android.util.Log;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AlertDialog;
+import androidx.core.content.ContextCompat;
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.common.util.concurrent.MoreExecutors;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.concurrent.Executors;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+/** Controller for 16K pages developer option */
+public class Enable16kPagesPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener,
+                PreferenceControllerMixin,
+                Enable16kbPagesDialogHost {
+
+    private static final String TAG = "Enable16kPages";
+    private static final String REBOOT_REASON = "toggle16k";
+    private static final String ENABLE_16K_PAGES = "enable_16k_pages";
+
+    @VisibleForTesting
+    static final String DEV_OPTION_PROPERTY = "ro.product.build.16k_page.enabled";
+
+    private static final int ENABLE_4K_PAGE_SIZE = 0;
+    private static final int ENABLE_16K_PAGE_SIZE = 1;
+
+    private static final String OTA_16K_PATH = "/system/boot_otas/boot_ota_16k.zip";
+    private static final String OTA_4K_PATH = "/system/boot_otas/boot_ota_4k.zip";
+    private static final String PAYLOAD_BINARY_FILE_NAME = "payload.bin";
+    private static final String PAYLOAD_PROPERTIES_FILE_NAME = "payload_properties.txt";
+    private static final int OFFSET_TO_FILE_NAME = 30;
+    public static final String EXPERIMENTAL_UPDATE_TITLE = "Android 16K Kernel Experimental Update";
+
+    private @Nullable DevelopmentSettingsDashboardFragment mFragment = null;
+    private boolean mEnable16k;
+
+    private final ListeningExecutorService mExecutorService =
+            MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor());
+
+    private AlertDialog mProgressDialog;
+
+    public Enable16kPagesPreferenceController(
+            @NonNull Context context, @Nullable DevelopmentSettingsDashboardFragment fragment) {
+        super(context);
+        mFragment = fragment;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return SystemProperties.getBoolean(DEV_OPTION_PROPERTY, false);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return ENABLE_16K_PAGES;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        mEnable16k = (Boolean) newValue;
+        Enable16kPagesWarningDialog.show(mFragment, this, mEnable16k);
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final int optionValue =
+                Settings.Global.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Global.ENABLE_16K_PAGES,
+                        ENABLE_4K_PAGE_SIZE /* default */);
+
+        ((SwitchPreference) mPreference).setChecked(optionValue == ENABLE_16K_PAGE_SIZE);
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        // TODO(295035851) : Revert kernel when dev option turned off
+        super.onDeveloperOptionsSwitchDisabled();
+        Settings.Global.putInt(
+                mContext.getContentResolver(),
+                Settings.Global.ENABLE_16K_PAGES,
+                ENABLE_4K_PAGE_SIZE);
+        ((SwitchPreference) mPreference).setChecked(false);
+    }
+
+    /** Called when user confirms reboot dialog */
+    @Override
+    public void on16kPagesDialogConfirmed() {
+        // Show progress bar
+        mProgressDialog = makeProgressDialog();
+        mProgressDialog.show();
+
+        // Apply update in background
+        ListenableFuture future = mExecutorService.submit(() -> installUpdate());
+        Futures.addCallback(
+                future,
+                new FutureCallback<>() {
+
+                    @Override
+                    public void onSuccess(@NonNull Object result) {
+                        // This means UpdateEngineStable is working on applying update in
+                        // background.
+                        // Result of that operation will be provided by separate callback.
+                        Log.i(TAG, "applyPayload call to UpdateEngineStable succeeded.");
+                    }
+
+                    @Override
+                    public void onFailure(Throwable t) {
+                        hideProgressDialog();
+                        Log.e(TAG, "Failed to call applyPayload of UpdateEngineStable!");
+                        displayToast(mContext.getString(R.string.toast_16k_update_failed_text));
+                    }
+                },
+                ContextCompat.getMainExecutor(mContext));
+    }
+
+    /** Called when user dismisses to reboot dialog */
+    @Override
+    public void on16kPagesDialogDismissed() {}
+
+    private void installUpdate() {
+        // Check if there is any pending system update
+        SystemUpdateManager manager = mContext.getSystemService(SystemUpdateManager.class);
+        Bundle data = manager.retrieveSystemUpdateInfo();
+        int status = data.getInt(SystemUpdateManager.KEY_STATUS);
+        if (status != SystemUpdateManager.STATUS_UNKNOWN
+                && status != SystemUpdateManager.STATUS_IDLE) {
+            throw new RuntimeException("System has pending update!");
+        }
+
+        // Publish system update info
+        PersistableBundle info = createUpdateInfo(SystemUpdateManager.STATUS_IN_PROGRESS);
+        manager.updateSystemUpdateInfo(info);
+
+        String updateFilePath = mEnable16k ? OTA_16K_PATH : OTA_4K_PATH;
+        try {
+            File updateFile = new File(updateFilePath);
+            applyUpdateFile(updateFile);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @VisibleForTesting
+    void applyUpdateFile(@NonNull File updateFile) throws IOException, FileNotFoundException {
+        boolean payloadFound = false;
+        boolean propertiesFound = false;
+        long payloadOffset = 0;
+        long payloadSize = 0;
+
+        List<String> properties = new ArrayList<>();
+        try (ZipFile zip = new ZipFile(updateFile)) {
+            Enumeration<? extends ZipEntry> entries = zip.entries();
+            long offset = 0;
+            while (entries.hasMoreElements()) {
+                ZipEntry zipEntry = entries.nextElement();
+                String fileName = zipEntry.getName();
+                long extraSize = zipEntry.getExtra() == null ? 0 : zipEntry.getExtra().length;
+                offset += OFFSET_TO_FILE_NAME + fileName.length() + extraSize;
+
+                if (zipEntry.isDirectory()) {
+                    continue;
+                }
+
+                long length = zipEntry.getCompressedSize();
+                if (PAYLOAD_BINARY_FILE_NAME.equals(fileName)) {
+                    if (zipEntry.getMethod() != ZipEntry.STORED) {
+                        throw new IOException("Unknown compression method.");
+                    }
+                    payloadFound = true;
+                    payloadOffset = offset;
+                    payloadSize = length;
+                } else if (PAYLOAD_PROPERTIES_FILE_NAME.equals(fileName)) {
+                    propertiesFound = true;
+                    InputStream inputStream = zip.getInputStream(zipEntry);
+                    if (inputStream != null) {
+                        BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
+                        String line;
+                        while ((line = br.readLine()) != null) {
+                            properties.add(line);
+                        }
+                    }
+                }
+                offset += length;
+            }
+        }
+
+        if (!payloadFound) {
+            throw new FileNotFoundException(
+                    "Failed to find payload in zip: " + updateFile.getAbsolutePath());
+        }
+
+        if (!propertiesFound) {
+            throw new FileNotFoundException(
+                    "Failed to find payload properties in zip: " + updateFile.getAbsolutePath());
+        }
+
+        if (payloadSize == 0) {
+            throw new IOException("Found empty payload in zip: " + updateFile.getAbsolutePath());
+        }
+
+        applyPayload(updateFile, payloadOffset, payloadSize, properties);
+    }
+
+    private void hideProgressDialog() {
+        // Hide progress bar
+        if (mProgressDialog != null && mProgressDialog.isShowing()) {
+            mProgressDialog.hide();
+        }
+    }
+
+    @VisibleForTesting
+    void applyPayload(
+            @NonNull File updateFile,
+            long payloadOffset,
+            long payloadSize,
+            @NonNull List<String> properties)
+            throws FileNotFoundException {
+        String[] header = properties.stream().toArray(String[]::new);
+        UpdateEngineStable updateEngineStable = new UpdateEngineStable();
+        try {
+            ParcelFileDescriptor pfd =
+                    ParcelFileDescriptor.open(updateFile, ParcelFileDescriptor.MODE_READ_ONLY);
+            updateEngineStable.bind(
+                    new OtaUpdateCallback(updateEngineStable),
+                    new Handler(mContext.getMainLooper()));
+            updateEngineStable.applyPayloadFd(pfd, payloadOffset, payloadSize, header);
+        } finally {
+            Log.e(TAG, "Failure while applying an update using update engine");
+        }
+    }
+
+    private void displayToast(String message) {
+        Toast.makeText(mContext, message, Toast.LENGTH_SHORT).show();
+    }
+
+    private class OtaUpdateCallback extends UpdateEngineStableCallback {
+        UpdateEngineStable mUpdateEngineStable;
+
+        OtaUpdateCallback(@NonNull UpdateEngineStable engine) {
+            mUpdateEngineStable = engine;
+        }
+
+        @Override
+        public void onStatusUpdate(int status, float percent) {}
+
+        @Override
+        public void onPayloadApplicationComplete(int errorCode) {
+            Log.i(TAG, "Callback from update engine stable received. unbinding..");
+            // unbind the callback from update engine
+            mUpdateEngineStable.unbind();
+
+            // Hide progress bar
+            hideProgressDialog();
+
+            if (errorCode == UpdateEngine.ErrorCodeConstants.SUCCESS) {
+                Log.i(TAG, "applyPayload successful");
+
+                // Save changed preference
+                Settings.Global.putInt(
+                        mContext.getContentResolver(),
+                        Settings.Global.ENABLE_16K_PAGES,
+                        mEnable16k ? ENABLE_16K_PAGE_SIZE : ENABLE_4K_PAGE_SIZE);
+
+                // Publish system update info
+                SystemUpdateManager manager = mContext.getSystemService(SystemUpdateManager.class);
+                PersistableBundle info =
+                        createUpdateInfo(SystemUpdateManager.STATUS_WAITING_REBOOT);
+                manager.updateSystemUpdateInfo(info);
+
+                // Restart device to complete update
+                PowerManager pm = mContext.getSystemService(PowerManager.class);
+                pm.reboot(REBOOT_REASON);
+            } else {
+                Log.e(TAG, "applyPayload failed, error code: " + errorCode);
+                displayToast(mContext.getString(R.string.toast_16k_update_failed_text));
+            }
+        }
+    }
+
+    private AlertDialog makeProgressDialog() {
+        AlertDialog.Builder builder = new AlertDialog.Builder(mFragment.getActivity());
+        builder.setTitle(R.string.progress_16k_ota_title);
+
+        final ProgressBar progressBar = new ProgressBar(mFragment.getActivity());
+        LinearLayout.LayoutParams params =
+                new LinearLayout.LayoutParams(
+                        LinearLayout.LayoutParams.WRAP_CONTENT,
+                        LinearLayout.LayoutParams.WRAP_CONTENT);
+        progressBar.setLayoutParams(params);
+        builder.setView(progressBar);
+        builder.setCancelable(false);
+        return builder.create();
+    }
+
+    private PersistableBundle createUpdateInfo(int status) {
+        PersistableBundle infoBundle = new PersistableBundle();
+        infoBundle.putInt(SystemUpdateManager.KEY_STATUS, status);
+        infoBundle.putBoolean(SystemUpdateManager.KEY_IS_SECURITY_UPDATE, false);
+        infoBundle.putString(SystemUpdateManager.KEY_TITLE, EXPERIMENTAL_UPDATE_TITLE);
+        return infoBundle;
+    }
+}
diff --git a/src/com/android/settings/development/Enable16kPagesWarningDialog.java b/src/com/android/settings/development/Enable16kPagesWarningDialog.java
new file mode 100644
index 0000000..5c27b3f
--- /dev/null
+++ b/src/com/android/settings/development/Enable16kPagesWarningDialog.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.content.DialogInterface;
+import android.os.Bundle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+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;
+
+/** Dialog when user interacts 16K pages developer option */
+public class Enable16kPagesWarningDialog extends InstrumentedDialogFragment
+        implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener {
+
+    public static final String TAG = "Enable16KDialog";
+    private static final String DIALOG_BUNDLE_KEY = "SHOW_16K_DIALOG";
+
+    private Enable16kbPagesDialogHost mHost;
+
+    private void setHost(@NonNull Enable16kbPagesDialogHost host) {
+        mHost = host;
+    }
+
+    /** This method is used to show warning dialog to apply 16K update and reboot */
+    public static void show(
+            @NonNull Fragment hostFragment,
+            @NonNull Enable16kbPagesDialogHost dialogHost,
+            boolean enable16k) {
+        final FragmentManager manager = hostFragment.getActivity().getSupportFragmentManager();
+        Fragment existingFragment = manager.findFragmentByTag(TAG);
+        if (existingFragment == null) {
+            existingFragment = new Enable16kPagesWarningDialog();
+        }
+
+        if (existingFragment instanceof Enable16kPagesWarningDialog) {
+            Bundle bundle = new Bundle();
+            bundle.putBoolean(DIALOG_BUNDLE_KEY, enable16k);
+            existingFragment.setArguments(bundle);
+            existingFragment.setTargetFragment(hostFragment, 0 /* requestCode */);
+            ((Enable16kPagesWarningDialog) existingFragment).setHost(dialogHost);
+            ((Enable16kPagesWarningDialog) existingFragment).show(manager, TAG);
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.DIALOG_ENABLE_16K_PAGES;
+    }
+
+    @NonNull
+    @Override
+    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+        final Bundle bundle = getArguments();
+        boolean is16kDialog = bundle.getBoolean(DIALOG_BUNDLE_KEY);
+        return new AlertDialog.Builder(getActivity())
+                .setTitle(
+                        is16kDialog
+                                ? R.string.confirm_enable_16k_pages_title
+                                : R.string.confirm_enable_4k_pages_title)
+                .setMessage(
+                        is16kDialog
+                                ? R.string.confirm_enable_16k_pages_text
+                                : R.string.confirm_enable_4k_pages_text)
+                .setPositiveButton(android.R.string.ok, this /* onClickListener */)
+                .setNegativeButton(android.R.string.cancel, this /* onClickListener */)
+                .create();
+    }
+
+    @Override
+    public void onClick(@NonNull DialogInterface dialog, int buttonId) {
+        if (buttonId == DialogInterface.BUTTON_POSITIVE) {
+            mHost.on16kPagesDialogConfirmed();
+        } else {
+            mHost.on16kPagesDialogDismissed();
+        }
+    }
+
+    @Override
+    public void onDismiss(@NonNull DialogInterface dialog) {
+        super.onDismiss(dialog);
+        mHost.on16kPagesDialogDismissed();
+    }
+}
diff --git a/src/com/android/settings/development/Enable16kbPagesDialogHost.java b/src/com/android/settings/development/Enable16kbPagesDialogHost.java
new file mode 100644
index 0000000..fc54bd4
--- /dev/null
+++ b/src/com/android/settings/development/Enable16kbPagesDialogHost.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+/** Interface for Enable16kbPagesDialogHost callbacks. */
+public interface Enable16kbPagesDialogHost {
+    /** Callback when the user presses ok the warning dialog. */
+    void on16kPagesDialogConfirmed();
+
+    /** Callback when the user cancels or dismisses the warning dialog. */
+    void on16kPagesDialogDismissed();
+}
diff --git a/src/com/android/settings/development/EnableAdbWarningDialog.java b/src/com/android/settings/development/EnableAdbWarningDialog.java
index 5204130..0b65be2 100644
--- a/src/com/android/settings/development/EnableAdbWarningDialog.java
+++ b/src/com/android/settings/development/EnableAdbWarningDialog.java
@@ -25,7 +25,6 @@
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 
-import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 
 public class EnableAdbWarningDialog extends InstrumentedDialogFragment implements
@@ -50,8 +49,8 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         return new AlertDialog.Builder(getActivity())
-                .setTitle(R.string.adb_warning_title)
-                .setMessage(R.string.adb_warning_message)
+                .setTitle(com.android.settingslib.R.string.adb_warning_title)
+                .setMessage(com.android.settingslib.R.string.adb_warning_message)
                 .setPositiveButton(android.R.string.ok, this /* onClickListener */)
                 .setNegativeButton(android.R.string.cancel, this /* onClickListener */)
                 .create();
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/EnableDevelopmentSettingWarningDialog.java b/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java
index 6b84cdc..497d7d6 100644
--- a/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java
+++ b/src/com/android/settings/development/EnableDevelopmentSettingWarningDialog.java
@@ -24,8 +24,8 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentManager;
 
-import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.R;
 
 public class EnableDevelopmentSettingWarningDialog extends InstrumentedDialogFragment
         implements DialogInterface.OnClickListener {
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/EnableOemUnlockSettingWarningDialog.java b/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java
index 9bfe9d2..0375acc 100644
--- a/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java
+++ b/src/com/android/settings/development/EnableOemUnlockSettingWarningDialog.java
@@ -51,8 +51,8 @@
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         return new AlertDialog.Builder(getActivity())
-                .setTitle(R.string.confirm_enable_oem_unlock_title)
-                .setMessage(R.string.confirm_enable_oem_unlock_text)
+                .setTitle(com.android.settingslib.R.string.confirm_enable_oem_unlock_title)
+                .setMessage(com.android.settingslib.R.string.confirm_enable_oem_unlock_text)
                 .setPositiveButton(R.string.enable_text, this /* onClickListener */)
                 .setNegativeButton(android.R.string.cancel, this /* onClickListener */)
                 .create();
diff --git a/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java b/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java
index f13143d..ab65139 100644
--- a/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java
+++ b/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceController.java
@@ -16,16 +16,16 @@
 
 package com.android.settings.development;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.hardware.dumpstate.V1_0.IDumpstateDevice;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 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..abeb949 100644
--- a/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/development/ForcePeakRefreshRatePreferenceController.java
@@ -16,17 +16,19 @@
 
 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.server.display.feature.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
@@ -35,9 +37,6 @@
         implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
 
     @VisibleForTesting
-    static float DEFAULT_REFRESH_RATE = 60f;
-
-    @VisibleForTesting
     static float NO_CONFIG = 0f;
 
     @VisibleForTesting
@@ -48,17 +47,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 +73,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        ((SwitchPreference) mPreference).setChecked(isForcePeakRefreshRateEnabled());
+        ((TwoStatePreference) mPreference).setChecked(isForcePeakRefreshRateEnabled());
     }
 
     @Override
@@ -102,12 +91,14 @@
         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 valueIfEnabled = Flags.backUpSmoothDisplayAndForcePeakRefreshRate()
+                ? Float.POSITIVE_INFINITY : mPeakRefreshRate;
+        final float peakRefreshRate = enable ? valueIfEnabled : NO_CONFIG;
         Settings.System.putFloat(mContext.getContentResolver(),
             Settings.System.MIN_REFRESH_RATE, peakRefreshRate);
     }
@@ -116,17 +107,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/GameDefaultFrameRatePreferenceController.java b/src/com/android/settings/development/GameDefaultFrameRatePreferenceController.java
new file mode 100644
index 0000000..00001fb
--- /dev/null
+++ b/src/com/android/settings/development/GameDefaultFrameRatePreferenceController.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.development;
+
+
+import android.app.IGameManagerService;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.SystemProperties;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class GameDefaultFrameRatePreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin  {
+    private static final String TAG = "GameDefFrameRatePrefCtr";
+    private static final String DISABLE_GAME_DEFAULT_FRAME_RATE_KEY =
+            "disable_game_default_frame_rate";
+    private final IGameManagerService mGameManagerService;
+    static final String PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED =
+            "debug.graphics.game_default_frame_rate.disabled";
+
+    private final DevelopmentSystemPropertiesWrapper mSysProps;
+    private int mGameDefaultFrameRateValue;
+
+    @VisibleForTesting
+    static class Injector {
+        public DevelopmentSystemPropertiesWrapper createSystemPropertiesWrapper() {
+            return new DevelopmentSystemPropertiesWrapper() {
+                @Override
+                public String get(String key, String def) {
+                    return SystemProperties.get(key, def);
+                }
+                @Override
+                public boolean getBoolean(String key, boolean def) {
+                    return SystemProperties.getBoolean(key, def);
+                }
+
+                @Override
+                public int getInt(String key, int def) {
+                    return SystemProperties.getInt(key, def);
+                }
+
+                @Override
+                public void set(String key, String val) {
+                    SystemProperties.set(key, val);
+                }
+            };
+        }
+    }
+
+    public GameDefaultFrameRatePreferenceController(Context context) {
+        super(context);
+        mGameManagerService = IGameManagerService.Stub.asInterface(
+                ServiceManager.getService(Context.GAME_SERVICE));
+
+        mSysProps = new Injector().createSystemPropertiesWrapper();
+
+        mGameDefaultFrameRateValue = mSysProps.getInt(
+                "ro.surface_flinger.game_default_frame_rate_override", 60);
+    }
+
+    @VisibleForTesting
+    GameDefaultFrameRatePreferenceController(Context context,
+                                             IGameManagerService gameManagerService,
+                                             Injector injector) {
+        super(context);
+        mGameManagerService = gameManagerService;
+        mSysProps = injector.createSystemPropertiesWrapper();
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return DISABLE_GAME_DEFAULT_FRAME_RATE_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean isDisabled = (Boolean) newValue;
+        try {
+            mGameManagerService.toggleGameDefaultFrameRate(!isDisabled);
+            updateGameDefaultPreferenceSetting();
+        } catch (RemoteException e) {
+            // intentional no-op
+        }
+        return true;
+    }
+
+    private void updateGameDefaultPreferenceSetting() {
+        final boolean isDisabled =
+                mSysProps.getBoolean(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED,
+                        false);
+        ((TwoStatePreference) mPreference).setChecked(isDisabled);
+        mPreference.setSummary(mContext.getString(
+                R.string.disable_game_default_frame_rate_summary,
+                mGameDefaultFrameRateValue));
+    }
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        updateGameDefaultPreferenceSetting();
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return Flags.developmentGameDefaultFrameRate();
+    }
+
+    @Override
+    protected void onDeveloperOptionsSwitchDisabled() {
+        super.onDeveloperOptionsSwitchDisabled();
+        final TwoStatePreference preference = (TwoStatePreference) mPreference;
+        if (preference.isChecked()) {
+            // When the developer option is disabled, we should set everything
+            // to off, that is, enabling game default frame rate.
+            try {
+                mGameManagerService.toggleGameDefaultFrameRate(true);
+            } catch (RemoteException e) {
+                // intentional no-op
+            }
+        }
+        preference.setChecked(false);
+    }
+
+}
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/GrammaticalGenderPreferenceController.java b/src/com/android/settings/development/GrammaticalGenderPreferenceController.java
new file mode 100644
index 0000000..0540974
--- /dev/null
+++ b/src/com/android/settings/development/GrammaticalGenderPreferenceController.java
@@ -0,0 +1,103 @@
+/*
+ * 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.development;
+
+import android.app.ActivityManager;
+import android.app.IActivityManager;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+/**
+ * Preference controller to control Grammatical Gender
+ */
+public class GrammaticalGenderPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+    private static final String GRAMMATICAL_GENDER_KEY =
+            "grammatical_gender";
+    @VisibleForTesting
+    static final String GRAMMATICAL_GENDER_PROPERTY = "persist.sys.grammatical_gender";
+    private final String[] mListValues;
+    private final String[] mListSummaries;
+
+    private IActivityManager mActivityManager;
+
+    public GrammaticalGenderPreferenceController(Context context) {
+        this(context, ActivityManager.getService());
+    }
+
+    @VisibleForTesting
+    GrammaticalGenderPreferenceController(Context context,
+            IActivityManager activityManager) {
+        super(context);
+
+        mListValues = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.grammatical_gender_values);
+        mListSummaries = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.grammatical_gender_entries);
+        mActivityManager = activityManager;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return GRAMMATICAL_GENDER_KEY;
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        SystemProperties.set(GRAMMATICAL_GENDER_PROPERTY, newValue.toString());
+        updateState(mPreference);
+        try {
+            Configuration config = mActivityManager.getConfiguration();
+            config.setGrammaticalGender(Integer.parseInt(newValue.toString()));
+            mActivityManager.updatePersistentConfiguration(config);
+        } catch (RemoteException ex) {
+            // intentional no-op
+        }
+        return true;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final ListPreference listPreference = (ListPreference) preference;
+        final String currentValue = SystemProperties.get(GRAMMATICAL_GENDER_PROPERTY);
+        int index = 0; // Defaults to Not Selected
+        for (int i = 0; i < mListValues.length; i++) {
+            if (TextUtils.equals(currentValue, mListValues[i])) {
+                index = i;
+                break;
+            }
+        }
+        listPreference.setValue(mListValues[index]);
+        listPreference.setSummary(mListSummaries[index]);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return android.app.Flags.systemTermsOfAddressEnabled();
+    }
+}
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/HdcpCheckingPreferenceController.java b/src/com/android/settings/development/HdcpCheckingPreferenceController.java
index 52fe8e0..f3afcc2 100644
--- a/src/com/android/settings/development/HdcpCheckingPreferenceController.java
+++ b/src/com/android/settings/development/HdcpCheckingPreferenceController.java
@@ -25,8 +25,8 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.R;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 import com.android.settingslib.development.SystemPropPoker;
 
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/LocalBackupPasswordPreferenceController.java b/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java
index d970f42..2303a91 100644
--- a/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java
+++ b/src/com/android/settings/development/LocalBackupPasswordPreferenceController.java
@@ -25,8 +25,8 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.R;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 public class LocalBackupPasswordPreferenceController extends DeveloperOptionsPreferenceController
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/MemoryUsagePreferenceController.java b/src/com/android/settings/development/MemoryUsagePreferenceController.java
index 1b20e70..ca8effa 100644
--- a/src/com/android/settings/development/MemoryUsagePreferenceController.java
+++ b/src/com/android/settings/development/MemoryUsagePreferenceController.java
@@ -17,6 +17,8 @@
 package com.android.settings.development;
 
 import android.content.Context;
+import android.os.Flags;
+import android.provider.Settings;
 import android.text.format.Formatter;
 
 import androidx.annotation.VisibleForTesting;
@@ -65,9 +67,13 @@
                     (long) memInfo.realUsedRam);
             final String totalResult = Formatter.formatShortFileSize(mContext,
                     (long) memInfo.realTotalRam);
-            ThreadUtils.postOnMainThread(
-                    () -> mPreference.setSummary(mContext.getString(R.string.memory_summary,
-                            usedResult, totalResult)));
+            boolean displayMemorySummary = !Flags.removeAppProfilerPssCollection();
+            displayMemorySummary |= Settings.Global.getInt(mContext.getContentResolver(),
+                    Settings.Global.FORCE_ENABLE_PSS_PROFILING, 0) == 1;
+            String summary = displayMemorySummary
+                    ? mContext.getString(R.string.memory_summary, usedResult, totalResult)
+                    : mContext.getString(R.string.pss_profiling_disabled);
+            ThreadUtils.postOnMainThread(() -> mPreference.setSummary(summary));
         });
     }
 
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/MockLocationAppPreferenceController.java b/src/com/android/settings/development/MockLocationAppPreferenceController.java
index 6b0ed03..d927c31 100644
--- a/src/com/android/settings/development/MockLocationAppPreferenceController.java
+++ b/src/com/android/settings/development/MockLocationAppPreferenceController.java
@@ -21,17 +21,20 @@
 import android.Manifest;
 import android.app.Activity;
 import android.app.AppOpsManager;
+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.os.Bundle;
+import android.provider.Settings;
 import android.text.TextUtils;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 import java.util.List;
@@ -65,10 +68,26 @@
         if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
             return false;
         }
-        final Intent intent = new Intent(mContext, AppPicker.class);
-        intent.putExtra(AppPicker.EXTRA_REQUESTIING_PERMISSION,
-                Manifest.permission.ACCESS_MOCK_LOCATION);
-        mFragment.startActivityForResult(intent, REQUEST_MOCK_LOCATION_APP);
+        if (Flags.deprecateListActivity()) {
+            final Bundle args = new Bundle();
+            args.putString(DevelopmentAppPicker.EXTRA_REQUESTING_PERMISSION,
+                    Manifest.permission.ACCESS_MOCK_LOCATION);
+            final String debugApp = Settings.Global.getString(
+                    mContext.getContentResolver(), Settings.Global.DEBUG_APP);
+            args.putString(DevelopmentAppPicker.EXTRA_SELECTING_APP, debugApp);
+            new SubSettingLauncher(mContext)
+                    .setDestination(DevelopmentAppPicker.class.getName())
+                    .setSourceMetricsCategory(SettingsEnums.DEVELOPMENT)
+                    .setArguments(args)
+                    .setTitleRes(com.android.settingslib.R.string.select_application)
+                    .setResultListener(mFragment, REQUEST_MOCK_LOCATION_APP)
+                    .launch();
+        } else {
+            final Intent intent = new Intent(mContext, AppPicker.class);
+            intent.putExtra(AppPicker.EXTRA_REQUESTIING_PERMISSION,
+                    Manifest.permission.ACCESS_MOCK_LOCATION);
+            mFragment.startActivityForResult(intent, REQUEST_MOCK_LOCATION_APP);
+        }
         return true;
     }
 
@@ -98,11 +117,13 @@
 
         if (!TextUtils.isEmpty(mockLocationApp)) {
             mPreference.setSummary(
-                    mContext.getResources().getString(R.string.mock_location_app_set,
-                            getAppLabel(mockLocationApp)));
+                    mContext.getResources()
+                            .getString(com.android.settingslib.R.string.mock_location_app_set,
+                                    getAppLabel(mockLocationApp)));
         } else {
             mPreference.setSummary(
-                    mContext.getResources().getString(R.string.mock_location_app_not_set));
+                    mContext.getResources()
+                            .getString(com.android.settingslib.R.string.mock_location_app_not_set));
         }
     }
 
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..09a4914
--- /dev/null
+++ b/src/com/android/settings/development/OWNERS
@@ -0,0 +1,8 @@
+# GameDefaultFrameRatePreferenceController
+per-file GameDefaultFrameRatePreferenceController.java=file:platform/frameworks/base:/GAME_MANAGER_OWNERS
+
+# 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/OemUnlockPreferenceController.java b/src/com/android/settings/development/OemUnlockPreferenceController.java
index 118312a..9076f9a 100644
--- a/src/com/android/settings/development/OemUnlockPreferenceController.java
+++ b/src/com/android/settings/development/OemUnlockPreferenceController.java
@@ -159,7 +159,7 @@
     }
 
     private void updateOemUnlockSettingDescription() {
-        int oemUnlockSummary = R.string.oem_unlock_enable_summary;
+        int oemUnlockSummary = com.android.settingslib.R.string.oem_unlock_enable_summary;
         if (isBootloaderUnlocked()) {
             oemUnlockSummary = R.string.oem_unlock_enable_disabled_summary_bootloader_unlocked;
         } else if (isSimLockedDevice()) {
@@ -203,7 +203,7 @@
         final ChooseLockSettingsHelper.Builder builder =
                 new ChooseLockSettingsHelper.Builder(mActivity, mFragment);
         return builder.setRequestCode(requestCode)
-                .setTitle(resources.getString(R.string.oem_unlock_enable))
+                .setTitle(resources.getString(com.android.settingslib.R.string.oem_unlock_enable))
                 .show();
     }
 
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/ProfileGpuRenderingPreferenceController.java b/src/com/android/settings/development/ProfileGpuRenderingPreferenceController.java
index 52e730b..2a0c1d6 100644
--- a/src/com/android/settings/development/ProfileGpuRenderingPreferenceController.java
+++ b/src/com/android/settings/development/ProfileGpuRenderingPreferenceController.java
@@ -24,7 +24,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 import com.android.settingslib.development.SystemPropPoker;
@@ -40,8 +39,10 @@
     public ProfileGpuRenderingPreferenceController(Context context) {
         super(context);
 
-        mListValues = context.getResources().getStringArray(R.array.track_frame_time_values);
-        mListSummaries = context.getResources().getStringArray(R.array.track_frame_time_entries);
+        mListValues = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.track_frame_time_values);
+        mListSummaries = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.track_frame_time_entries);
     }
 
     @Override
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/SecondaryDisplayPreferenceController.java b/src/com/android/settings/development/SecondaryDisplayPreferenceController.java
index 3e1653d..572013c 100644
--- a/src/com/android/settings/development/SecondaryDisplayPreferenceController.java
+++ b/src/com/android/settings/development/SecondaryDisplayPreferenceController.java
@@ -23,8 +23,8 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.R;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 public class SecondaryDisplayPreferenceController extends DeveloperOptionsPreferenceController
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/SelectDebugAppPreferenceController.java b/src/com/android/settings/development/SelectDebugAppPreferenceController.java
index b882c70..d691149 100644
--- a/src/com/android/settings/development/SelectDebugAppPreferenceController.java
+++ b/src/com/android/settings/development/SelectDebugAppPreferenceController.java
@@ -19,17 +19,20 @@
 import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes.REQUEST_CODE_DEBUG_APP;
 
 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.os.Bundle;
 import android.provider.Settings;
+import android.text.TextUtils;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.SubSettingLauncher;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
 public class SelectDebugAppPreferenceController extends DeveloperOptionsPreferenceController
@@ -54,13 +57,29 @@
 
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
-        if (DEBUG_APP_KEY.equals(preference.getKey())) {
+        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            return false;
+        }
+
+        if (Flags.deprecateListActivity()) {
+            final Bundle args = new Bundle();
+            args.putBoolean(DevelopmentAppPicker.EXTRA_DEBUGGABLE, true /* value */);
+            final String debugApp = Settings.Global.getString(
+                    mContext.getContentResolver(), Settings.Global.DEBUG_APP);
+            args.putString(DevelopmentAppPicker.EXTRA_SELECTING_APP, debugApp);
+            new SubSettingLauncher(mContext)
+                    .setDestination(DevelopmentAppPicker.class.getName())
+                    .setSourceMetricsCategory(SettingsEnums.DEVELOPMENT)
+                    .setArguments(args)
+                    .setTitleRes(com.android.settingslib.R.string.select_application)
+                    .setResultListener(mFragment, REQUEST_CODE_DEBUG_APP)
+                    .launch();
+        } else {
             final Intent intent = getActivityStartIntent();
             intent.putExtra(AppPicker.EXTRA_DEBUGGABLE, true /* value */);
             mFragment.startActivityForResult(intent, REQUEST_CODE_DEBUG_APP);
-            return true;
         }
-        return false;
+        return true;
     }
 
     @Override
@@ -82,7 +101,8 @@
     @Override
     protected void onDeveloperOptionsSwitchDisabled() {
         super.onDeveloperOptionsSwitchDisabled();
-        mPreference.setSummary(mContext.getResources().getString(R.string.debug_app_not_set));
+        mPreference.setSummary(mContext.getResources()
+                .getString(com.android.settingslib.R.string.debug_app_not_set));
     }
 
     @VisibleForTesting
@@ -94,10 +114,12 @@
         final String debugApp = Settings.Global.getString(
                 mContext.getContentResolver(), Settings.Global.DEBUG_APP);
         if (debugApp != null && debugApp.length() > 0) {
-            mPreference.setSummary(mContext.getResources().getString(R.string.debug_app_set,
-                    getAppLabel(debugApp)));
+            mPreference.setSummary(mContext.getResources()
+                    .getString(com.android.settingslib.R.string.debug_app_set,
+                            getAppLabel(debugApp)));
         } else {
-            mPreference.setSummary(mContext.getResources().getString(R.string.debug_app_not_set));
+            mPreference.setSummary(mContext.getResources()
+                    .getString(com.android.settingslib.R.string.debug_app_not_set));
         }
     }
 
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/SimulateColorSpacePreferenceController.java b/src/com/android/settings/development/SimulateColorSpacePreferenceController.java
index 56fa76d..bff2494 100644
--- a/src/com/android/settings/development/SimulateColorSpacePreferenceController.java
+++ b/src/com/android/settings/development/SimulateColorSpacePreferenceController.java
@@ -26,7 +26,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -83,8 +82,10 @@
             if (index < 0) {
                 final Resources res = mContext.getResources();
                 // We're using a mode controlled by accessibility preferences.
-                listPreference.setSummary(res.getString(R.string.daltonizer_type_overridden,
-                        res.getString(R.string.accessibility_display_daltonizer_preference_title)));
+                listPreference.setSummary(
+                        res.getString(com.android.settingslib.R.string.daltonizer_type_overridden,
+                        res.getString(com.android.settingslib.R
+                                .string.accessibility_display_daltonizer_preference_title)));
             } else {
                 listPreference.setSummary("%s");
             }
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/TransitionAnimationScalePreferenceController.java b/src/com/android/settings/development/TransitionAnimationScalePreferenceController.java
index 0a8e941..ac68364 100644
--- a/src/com/android/settings/development/TransitionAnimationScalePreferenceController.java
+++ b/src/com/android/settings/development/TransitionAnimationScalePreferenceController.java
@@ -25,7 +25,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -50,9 +49,9 @@
         mWindowManager = IWindowManager.Stub.asInterface(
                 ServiceManager.getService(Context.WINDOW_SERVICE));
         mListValues = context.getResources().getStringArray(
-                R.array.transition_animation_scale_values);
+                com.android.settingslib.R.array.transition_animation_scale_values);
         mListSummaries = context.getResources().getStringArray(
-                R.array.transition_animation_scale_entries);
+                com.android.settingslib.R.array.transition_animation_scale_entries);
     }
 
     @Override
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/WindowAnimationScalePreferenceController.java b/src/com/android/settings/development/WindowAnimationScalePreferenceController.java
index 70b2e2d..d8575a0 100644
--- a/src/com/android/settings/development/WindowAnimationScalePreferenceController.java
+++ b/src/com/android/settings/development/WindowAnimationScalePreferenceController.java
@@ -25,7 +25,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -49,9 +48,10 @@
 
         mWindowManager = IWindowManager.Stub.asInterface(
                 ServiceManager.getService(Context.WINDOW_SERVICE));
-        mListValues = context.getResources().getStringArray(R.array.window_animation_scale_values);
+        mListValues = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.window_animation_scale_values);
         mListSummaries = context.getResources().getStringArray(
-                R.array.window_animation_scale_entries);
+                com.android.settingslib.R.array.window_animation_scale_entries);
     }
 
     @Override
diff --git a/src/com/android/settings/development/WirelessDebuggingEnabler.java b/src/com/android/settings/development/WirelessDebuggingEnabler.java
index 8fec233..d4e4fc7 100644
--- a/src/com/android/settings/development/WirelessDebuggingEnabler.java
+++ b/src/com/android/settings/development/WirelessDebuggingEnabler.java
@@ -26,7 +26,6 @@
 import android.util.Log;
 import android.widget.Toast;
 
-import com.android.settings.R;
 import com.android.settings.widget.SwitchWidgetController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -125,8 +124,8 @@
     public boolean onSwitchToggled(boolean isChecked) {
         if (isChecked && !WirelessDebuggingPreferenceController.isWifiConnected(mContext)) {
             // No connected Wi-Fi network. Reset the switch to off.
-            Toast.makeText(
-                    mContext, R.string.adb_wireless_no_network_msg, Toast.LENGTH_LONG)
+            Toast.makeText(mContext, com.android.settingslib.R.string.adb_wireless_no_network_msg,
+                            Toast.LENGTH_LONG)
                     .show();
             mSwitchWidget.setChecked(false);
             return false;
diff --git a/src/com/android/settings/development/WirelessDebuggingFragment.java b/src/com/android/settings/development/WirelessDebuggingFragment.java
index 7c60069..8be8d91 100644
--- a/src/com/android/settings/development/WirelessDebuggingFragment.java
+++ b/src/com/android/settings/development/WirelessDebuggingFragment.java
@@ -211,7 +211,8 @@
 
         mOffMessagePreference =
                 new FooterPreference(mFooterCategory.getContext());
-        final CharSequence title = getText(R.string.adb_wireless_list_empty_off);
+        final CharSequence title =
+                getText(com.android.settingslib.R.string.adb_wireless_list_empty_off);
         mOffMessagePreference.setTitle(title);
         mFooterCategory.addPreference(mOffMessagePreference);
     }
@@ -418,7 +419,7 @@
         // For sending to the device details fragment.
         p.savePairedDeviceToExtras(p.getExtras());
         new SubSettingLauncher(getContext())
-                .setTitleRes(R.string.adb_wireless_device_details_title)
+                .setTitleRes(com.android.settingslib.R.string.adb_wireless_device_details_title)
                 .setDestination(AdbDeviceDetailsFragment.class.getName())
                 .setArguments(p.getExtras())
                 .setSourceMetricsCategory(getMetricsCategory())
diff --git a/src/com/android/settings/development/WirelessDebuggingPreferenceController.java b/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
index f637ae1..b9171ac 100644
--- a/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
+++ b/src/com/android/settings/development/WirelessDebuggingPreferenceController.java
@@ -34,7 +34,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.PrimarySwitchPreference;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -163,7 +162,8 @@
         if (enabled && !isWifiConnected(mContext)) {
             // Cannot enable ADB over Wi-Fi if we're not connected to wifi.
             Toast.makeText(
-                    mContext, R.string.adb_wireless_no_network_msg, Toast.LENGTH_LONG)
+                    mContext, com.android.settingslib.R.string.adb_wireless_no_network_msg,
+                            Toast.LENGTH_LONG)
                     .show();
             return false;
         }
diff --git a/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreference.java b/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreference.java
index 39e2276..b0c60a8 100644
--- a/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreference.java
+++ b/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreference.java
@@ -103,7 +103,8 @@
             // View will be invisible when all options are enabled.
             helpTextView.setVisibility(View.GONE);
         } else {
-            helpTextView.setText(R.string.bluetooth_select_a2dp_codec_type_help_info);
+            helpTextView.setText(
+                    com.android.settingslib.R.string.bluetooth_select_a2dp_codec_type_help_info);
             helpTextView.setVisibility(View.VISIBLE);
         }
     }
@@ -135,7 +136,8 @@
         }
         return index == getDefaultIndex() ? mSummaryStrings.get(getDefaultIndex()) :
                 String.format(getContext().getResources().getString(
-                        R.string.bluetooth_select_a2dp_codec_streaming_label),
+                        com.android.settingslib.R
+                                .string.bluetooth_select_a2dp_codec_streaming_label),
                         mSummaryStrings.get(index));
     }
 
diff --git a/src/com/android/settings/development/bluetooth/BluetoothBitPerSampleDialogPreference.java b/src/com/android/settings/development/bluetooth/BluetoothBitPerSampleDialogPreference.java
index 480c208..99eb730 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothBitPerSampleDialogPreference.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothBitPerSampleDialogPreference.java
@@ -61,12 +61,12 @@
         mRadioButtonIds.add(R.id.bluetooth_audio_bit_per_sample_24);
         mRadioButtonIds.add(R.id.bluetooth_audio_bit_per_sample_32);
         String[] stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_bits_per_sample_titles);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_bits_per_sample_titles);
         for (int i = 0; i < stringArray.length; i++) {
             mRadioButtonStrings.add(stringArray[i]);
         }
         stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_bits_per_sample_summaries);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_bits_per_sample_summaries);
         for (int i = 0; i < stringArray.length; i++) {
             mSummaryStrings.add(stringArray[i]);
         }
diff --git a/src/com/android/settings/development/bluetooth/BluetoothChannelModeDialogPreference.java b/src/com/android/settings/development/bluetooth/BluetoothChannelModeDialogPreference.java
index a878f32..4a4191a 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothChannelModeDialogPreference.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothChannelModeDialogPreference.java
@@ -60,12 +60,12 @@
         mRadioButtonIds.add(R.id.bluetooth_audio_channel_mode_mono);
         mRadioButtonIds.add(R.id.bluetooth_audio_channel_mode_stereo);
         String[] stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_channel_mode_titles);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_channel_mode_titles);
         for (int i = 0; i < stringArray.length; i++) {
             mRadioButtonStrings.add(stringArray[i]);
         }
         stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_channel_mode_summaries);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_channel_mode_summaries);
         for (int i = 0; i < stringArray.length; i++) {
             mSummaryStrings.add(stringArray[i]);
         }
diff --git a/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreference.java b/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreference.java
index 929a6d0..11cfd34 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreference.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothCodecDialogPreference.java
@@ -64,11 +64,12 @@
         mRadioButtonIds.add(R.id.bluetooth_audio_codec_lc3);
         mRadioButtonIds.add(R.id.bluetooth_audio_codec_opus);
         String[] stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_titles);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_titles);
         for (int i = 0; i < stringArray.length; i++) {
             mRadioButtonStrings.add(stringArray[i]);
         }
-        stringArray = context.getResources().getStringArray(R.array.bluetooth_a2dp_codec_summaries);
+        stringArray = context.getResources()
+                .getStringArray(com.android.settingslib.R.array.bluetooth_a2dp_codec_summaries);
         for (int i = 0; i < stringArray.length; i++) {
             mSummaryStrings.add(stringArray[i]);
         }
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/bluetooth/BluetoothQualityDialogPreference.java b/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreference.java
index a7d6a11..796cbe8 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreference.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothQualityDialogPreference.java
@@ -65,12 +65,13 @@
         mRadioButtonIds.add(R.id.bluetooth_audio_quality_optimized_connection);
         mRadioButtonIds.add(R.id.bluetooth_audio_quality_best_effort);
         String[] stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_ldac_playback_quality_titles);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_ldac_playback_quality_titles);
         for (int i = 0; i < stringArray.length; i++) {
             mRadioButtonStrings.add(stringArray[i]);
         }
         stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_ldac_playback_quality_summaries);
+                com.android.settingslib.R
+                        .array.bluetooth_a2dp_codec_ldac_playback_quality_summaries);
         for (int i = 0; i < stringArray.length; i++) {
             mSummaryStrings.add(stringArray[i]);
         }
diff --git a/src/com/android/settings/development/bluetooth/BluetoothSampleRateDialogPreference.java b/src/com/android/settings/development/bluetooth/BluetoothSampleRateDialogPreference.java
index 622c47a..71eda79 100644
--- a/src/com/android/settings/development/bluetooth/BluetoothSampleRateDialogPreference.java
+++ b/src/com/android/settings/development/bluetooth/BluetoothSampleRateDialogPreference.java
@@ -62,12 +62,12 @@
         mRadioButtonIds.add(R.id.bluetooth_audio_sample_rate_882);
         mRadioButtonIds.add(R.id.bluetooth_audio_sample_rate_960);
         String[] stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_sample_rate_titles);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_sample_rate_titles);
         for (int i = 0; i < stringArray.length; i++) {
             mRadioButtonStrings.add(stringArray[i]);
         }
         stringArray = context.getResources().getStringArray(
-                R.array.bluetooth_a2dp_codec_sample_rate_summaries);
+                com.android.settingslib.R.array.bluetooth_a2dp_codec_sample_rate_summaries);
         for (int i = 0; i < stringArray.length; i++) {
             mSummaryStrings.add(stringArray[i]);
         }
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/graphicsdriver/GraphicsDriverSystemPropertiesWrapper.java b/src/com/android/settings/development/graphicsdriver/GraphicsDriverSystemPropertiesWrapper.java
index 9684282..33badd1 100644
--- a/src/com/android/settings/development/graphicsdriver/GraphicsDriverSystemPropertiesWrapper.java
+++ b/src/com/android/settings/development/graphicsdriver/GraphicsDriverSystemPropertiesWrapper.java
@@ -14,9 +14,11 @@
  * limitations under the License.
  */
 package com.android.settings.development.graphicsdriver;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
+
 import android.os.SystemProperties;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 /**
  * Wrapper interface to access {@link SystemProperties}.
  *
diff --git a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
index 079195c..0ca189d 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTileConfigFragment.java
@@ -18,21 +18,26 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.provider.SearchIndexableResource;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.content.pm.ServiceInfo;
+import android.os.SystemProperties;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.Indexable;
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
 import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.search.SearchIndexableRaw;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @SearchIndexable
 public class DevelopmentTileConfigFragment extends DashboardFragment {
     private static final String TAG = "DevelopmentTileConfig";
+    private static final String QS_TILE_PERF = "develop_qs_tile";
 
     @Override
     protected String getLogTag() {
@@ -56,5 +61,61 @@
                 protected boolean isPageSearchEnabled(Context context) {
                     return DevelopmentSettingsEnabler.isDevelopmentSettingsEnabled(context);
                 }
+
+                @Override
+                public List<SearchIndexableRaw> getRawDataToIndex(Context context,
+                        boolean enabled) {
+                    List<SearchIndexableRaw> result = new ArrayList<>();
+                    // Save the query system property for getNonIndexableKeys to avoid
+                    // getTitleServiceList multiple times
+                    SharedPreferences sharedPref = context.getSharedPreferences(QS_TILE_PERF,
+                            Context.MODE_PRIVATE);
+
+                    List<ServiceInfo> services =
+                            DevelopmentTilePreferenceController.getTileServiceList(context);
+                    PackageManager pm = context.getPackageManager();
+                    SharedPreferences.Editor editor = sharedPref.edit();
+                    for (ServiceInfo sInfo : services) {
+                        SearchIndexableRaw data = new SearchIndexableRaw(context);
+                        data.title = sInfo.loadLabel(pm).toString();
+                        data.key = sInfo.name;
+                        result.add(data);
+
+                        if (sInfo.metaData == null) {
+                            continue;
+                        }
+                        String flag = sInfo.metaData.getString(
+                                DevelopmentTiles.META_DATA_REQUIRES_SYSTEM_PROPERTY);
+                        if (flag == null) {
+                            continue;
+                        }
+                        editor.putString(sInfo.name, flag);
+                    }
+                    editor.apply();
+
+                    return result;
+                }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+
+                    SharedPreferences sharedPref = context.getSharedPreferences(QS_TILE_PERF,
+                            Context.MODE_PRIVATE);
+                    Map<String, ?> map = sharedPref.getAll();
+                    for (Map.Entry<String, ?> entry : map.entrySet()) {
+                        if (entry.getValue() == null) {
+                            continue;
+                        }
+                        String key = entry.getKey();
+                        String flag = entry.getValue().toString();
+
+                        if (!SystemProperties.getBoolean(flag, false)) {
+                            keys.add(key);
+                        }
+                    }
+
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
index 4f506b0..7fc9d9e 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTilePreferenceController.java
@@ -31,11 +31,13 @@
 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;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public class DevelopmentTilePreferenceController extends BasePreferenceController {
@@ -59,13 +61,9 @@
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         final Context context = screen.getContext();
-        final Intent intent = new Intent(TileService.ACTION_QS_TILE)
-                .setPackage(context.getPackageName());
-        final List<ResolveInfo> resolveInfos = mPackageManager.queryIntentServices(intent,
-                PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.GET_META_DATA);
-        for (ResolveInfo info : resolveInfos) {
-            ServiceInfo sInfo = info.serviceInfo;
+        List<ServiceInfo> serviceInfos = getTileServiceList(context);
 
+        for (ServiceInfo sInfo : serviceInfos) {
             // Check if the tile requires a flag. If it does, hide tile if flag is off.
             if (sInfo.metaData != null) {
                 String flag = sInfo.metaData.getString(
@@ -85,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);
@@ -95,6 +93,24 @@
         }
     }
 
+    /**
+     * Get Quick Settings services from PackageManager
+     */
+    public static List<ServiceInfo> getTileServiceList(Context context) {
+        Intent intent = new Intent(TileService.ACTION_QS_TILE)
+                .setPackage(context.getPackageName());
+        PackageManager packageManager = context.getPackageManager();
+        List<ResolveInfo> resolveInfos = packageManager.queryIntentServices(intent,
+                PackageManager.MATCH_DISABLED_COMPONENTS | PackageManager.GET_META_DATA);
+
+        List<ServiceInfo> servicesInfos = new ArrayList<>();
+        for (ResolveInfo info : resolveInfos) {
+            ServiceInfo sInfo = info.serviceInfo;
+            servicesInfos.add(sInfo);
+        }
+        return servicesInfos;
+    }
+
     @VisibleForTesting
     static class OnChangeHandler implements Preference.OnPreferenceChangeListener {
 
diff --git a/src/com/android/settings/development/qstile/DevelopmentTiles.java b/src/com/android/settings/development/qstile/DevelopmentTiles.java
index 3b6c646..cf0d4d1 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTiles.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTiles.java
@@ -29,9 +29,7 @@
 import android.hardware.SensorPrivacyManager;
 import android.net.Uri;
 import android.os.Handler;
-import android.os.IBinder;
 import android.os.Looper;
-import android.os.Parcel;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemProperties;
@@ -45,12 +43,8 @@
 import android.view.WindowManagerGlobal;
 import android.widget.Toast;
 
-import androidx.annotation.VisibleForTesting;
-
 import com.android.internal.app.LocalePicker;
-import com.android.internal.inputmethod.ImeTracing;
 import com.android.internal.statusbar.IStatusBarService;
-import com.android.settings.R;
 import com.android.settings.development.WirelessDebuggingPreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -205,173 +199,6 @@
     }
 
     /**
-     * Tile to toggle Winscope trace which consists of Window and Layer traces.
-     */
-    public static class WinscopeTrace extends DevelopmentTiles {
-        @VisibleForTesting
-        static final int SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE = 1025;
-        @VisibleForTesting
-        static final int SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE = 1026;
-        private static final String VIEW_CAPTURE_ENABLED = "view_capture_enabled";
-        private IBinder mSurfaceFlinger;
-        private IWindowManager mWindowManager;
-        private ImeTracing mImeTracing;
-        private Toast mToast;
-
-        @Override
-        public void onCreate() {
-            super.onCreate();
-            mWindowManager = WindowManagerGlobal.getWindowManagerService();
-            mSurfaceFlinger = ServiceManager.getService("SurfaceFlinger");
-            mImeTracing = ImeTracing.getInstance();
-            Context context = getApplicationContext();
-            CharSequence text = "Trace files written to /data/misc/wmtrace";
-            mToast = Toast.makeText(context, text, Toast.LENGTH_LONG);
-        }
-
-        private boolean isWindowTraceEnabled() {
-            try {
-                return mWindowManager.isWindowTraceEnabled();
-            } catch (RemoteException e) {
-                Log.e(TAG,
-                        "Could not get window trace status, defaulting to false." + e.toString());
-            }
-            return false;
-        }
-
-        private boolean isLayerTraceEnabled() {
-            boolean layerTraceEnabled = false;
-            Parcel reply = null;
-            Parcel data = null;
-            try {
-                if (mSurfaceFlinger != null) {
-                    reply = Parcel.obtain();
-                    data = Parcel.obtain();
-                    data.writeInterfaceToken("android.ui.ISurfaceComposer");
-                    mSurfaceFlinger.transact(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE,
-                            data, reply, 0 /* flags */);
-                    layerTraceEnabled = reply.readBoolean();
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Could not get layer trace status, defaulting to false." + e.toString());
-            } finally {
-                if (data != null) {
-                    data.recycle();
-                    reply.recycle();
-                }
-            }
-            return layerTraceEnabled;
-        }
-
-        private boolean isSystemUiTracingEnabled() {
-            try {
-                final IStatusBarService statusBarService = IStatusBarService.Stub.asInterface(
-                        ServiceManager.checkService(Context.STATUS_BAR_SERVICE));
-                if (statusBarService != null) {
-                    return statusBarService.isTracing();
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Could not get system ui tracing status." + e.toString());
-            }
-            return false;
-        }
-
-        private boolean isImeTraceEnabled() {
-            return mImeTracing.isEnabled();
-        }
-
-        private boolean isViewCaptureEnabled() {
-            // Add null checking to avoid test case failure.
-            if (getApplicationContext() != null) {
-                return Settings.Global.getInt(getApplicationContext().getContentResolver(),
-                    VIEW_CAPTURE_ENABLED, 0) != 0;
-            }
-            return false;
-        }
-
-        @Override
-        protected boolean isEnabled() {
-            return isWindowTraceEnabled() || isLayerTraceEnabled() || isSystemUiTracingEnabled()
-                    || isImeTraceEnabled() || isViewCaptureEnabled();
-        }
-
-        private void setWindowTraceEnabled(boolean isEnabled) {
-            try {
-                if (isEnabled) {
-                    mWindowManager.startWindowTrace();
-                } else {
-                    mWindowManager.stopWindowTrace();
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Could not set window trace status." + e.toString());
-            }
-        }
-
-        private void setLayerTraceEnabled(boolean isEnabled) {
-            Parcel data = null;
-            try {
-                if (mSurfaceFlinger != null) {
-                    data = Parcel.obtain();
-                    data.writeInterfaceToken("android.ui.ISurfaceComposer");
-                    data.writeInt(isEnabled ? 1 : 0);
-                    mSurfaceFlinger.transact(SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE,
-                            data, null, 0 /* flags */);
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Could not set layer tracing." + e.toString());
-            } finally {
-                if (data != null) {
-                    data.recycle();
-                }
-            }
-        }
-
-        private void setSystemUiTracing(boolean isEnabled) {
-            try {
-                final IStatusBarService statusBarService = IStatusBarService.Stub.asInterface(
-                        ServiceManager.checkService(Context.STATUS_BAR_SERVICE));
-                if (statusBarService != null) {
-                    if (isEnabled) {
-                        statusBarService.startTracing();
-                    } else {
-                        statusBarService.stopTracing();
-                    }
-                }
-            } catch (RemoteException e) {
-                Log.e(TAG, "Could not set system ui tracing." + e.toString());
-            }
-        }
-
-        private void setImeTraceEnabled(boolean isEnabled) {
-            if (isEnabled) {
-                mImeTracing.startImeTrace();
-            } else {
-                mImeTracing.stopImeTrace();
-            }
-        }
-
-        private void setViewCaptureEnabled(boolean isEnabled) {
-            // Add null checking to avoid test case failure.
-            if (getApplicationContext() != null) {
-                Settings.Global.putInt(getApplicationContext()
-                        .getContentResolver(), VIEW_CAPTURE_ENABLED, isEnabled ? 1 : 0);
-            }
-        }
-
-        @Override
-        protected void setIsEnabled(boolean isEnabled) {
-            setWindowTraceEnabled(isEnabled);
-            setLayerTraceEnabled(isEnabled);
-            setSystemUiTracing(isEnabled);
-            setImeTraceEnabled(isEnabled);
-            setViewCaptureEnabled(isEnabled);
-            if (!isEnabled) {
-                mToast.show();
-            }
-        }
-    }
-
-    /**
      * Tile to toggle sensors off to control camera, mic, and sensors managed by the SensorManager.
      */
     public static class SensorsOff extends DevelopmentTiles {
@@ -388,8 +215,8 @@
             mSensorPrivacyManager = (SensorPrivacyManager) mContext.getSystemService(
                     Context.SENSOR_PRIVACY_SERVICE);
             mIsEnabled = mSensorPrivacyManager.isAllSensorPrivacyEnabled();
-            mMetricsFeatureProvider = FeatureFactory.getFactory(
-                    mContext).getMetricsFeatureProvider();
+            mMetricsFeatureProvider = FeatureFactory.getFeatureFactory()
+                    .getMetricsFeatureProvider();
             mKeyguardManager = (KeyguardManager) mContext.getSystemService(
                     Context.KEYGUARD_SERVICE);
         }
@@ -401,8 +228,8 @@
 
         @Override
         public void setIsEnabled(boolean isEnabled) {
-            // Don't allow sensors to be reenabled from the lock screen.
-            if (mIsEnabled && mKeyguardManager.isKeyguardLocked()) {
+            // Don't allow sensors to be toggled from the lock screen.
+            if (mKeyguardManager.isKeyguardLocked()) {
                 return;
             }
             mMetricsFeatureProvider.action(getApplicationContext(), SettingsEnums.QS_SENSOR_PRIVACY,
@@ -433,7 +260,8 @@
             mContext = getApplicationContext();
             mKeyguardManager = (KeyguardManager) mContext.getSystemService(
                     Context.KEYGUARD_SERVICE);
-            mToast = Toast.makeText(mContext, R.string.adb_wireless_no_network_msg,
+            mToast = Toast.makeText(mContext,
+                    com.android.settingslib.R.string.adb_wireless_no_network_msg,
                     Toast.LENGTH_LONG);
         }
 
@@ -511,77 +339,4 @@
                 Settings.System.SHOW_TOUCHES, isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
         }
     }
-
-    /**
-     * Tile to enable desktop mode
-     */
-    public static class DesktopMode extends DevelopmentTiles {
-
-        private static final int SETTING_VALUE_ON = 1;
-        private static final int SETTING_VALUE_OFF = 0;
-        private Context mContext;
-
-        @Override
-        public void onCreate() {
-            super.onCreate();
-            mContext = getApplicationContext();
-        }
-
-        @Override
-        protected boolean isEnabled() {
-            return Settings.System.getInt(mContext.getContentResolver(),
-                    Settings.System.DESKTOP_MODE, SETTING_VALUE_OFF) == SETTING_VALUE_ON;
-        }
-
-        private boolean isDesktopModeFlagEnabled() {
-            return SystemProperties.getBoolean("persist.wm.debug.desktop_mode", false);
-        }
-
-        private boolean isFreeformFlagEnabled() {
-            return Settings.Global.getInt(mContext.getContentResolver(),
-                    Settings.Global.DEVELOPMENT_ENABLE_FREEFORM_WINDOWS_SUPPORT, SETTING_VALUE_OFF)
-                    == SETTING_VALUE_ON;
-        }
-
-        private boolean isCaptionOnShellEnabled() {
-            return SystemProperties.getBoolean("persist.wm.debug.caption_on_shell", false);
-        }
-
-        @Override
-        protected void setIsEnabled(boolean isEnabled) {
-            if (isEnabled) {
-                // Check that all required features are enabled
-                if (!isDesktopModeFlagEnabled()) {
-                    closeShade();
-                    showMessage(
-                            "Enable 'Desktop Windowing Proto 1' from the Flag Flipper app");
-                    return;
-                }
-                if (!isCaptionOnShellEnabled()) {
-                    closeShade();
-                    showMessage("Enable 'Captions in Shell' from the Flag Flipper app");
-                    return;
-                }
-                if (!isFreeformFlagEnabled()) {
-                    closeShade();
-                    showMessage(
-                            "Enable freeform windows from developer settings");
-                    return;
-                }
-            }
-
-            Settings.System.putInt(mContext.getContentResolver(),
-                    Settings.System.DESKTOP_MODE,
-                    isEnabled ? SETTING_VALUE_ON : SETTING_VALUE_OFF);
-            closeShade();
-        }
-
-        private void closeShade() {
-            sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
-        }
-
-        private void showMessage(String message) {
-            Toast.makeText(mContext, message, Toast.LENGTH_LONG).show();
-        }
-    }
 }
diff --git a/src/com/android/settings/development/quarantine/OWNERS b/src/com/android/settings/development/quarantine/OWNERS
new file mode 100644
index 0000000..d4de31a
--- /dev/null
+++ b/src/com/android/settings/development/quarantine/OWNERS
@@ -0,0 +1,4 @@
+# Bug component: 316234
+
+sudheersai@google.com
+yamasani@google.com
\ No newline at end of file
diff --git a/src/com/android/settings/development/quarantine/QuarantinedAppPreference.java b/src/com/android/settings/development/quarantine/QuarantinedAppPreference.java
new file mode 100644
index 0000000..6ad1f86
--- /dev/null
+++ b/src/com/android/settings/development/quarantine/QuarantinedAppPreference.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.development.quarantine;
+
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+import com.android.settingslib.applications.AppUtils;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.widget.AppSwitchPreference;
+
+public class QuarantinedAppPreference extends AppSwitchPreference {
+    private final AppEntry mEntry;
+    private Drawable mCacheIcon;
+
+    public QuarantinedAppPreference(Context context, AppEntry entry) {
+        super(context);
+        mEntry = entry;
+        mCacheIcon = AppUtils.getIconFromCache(mEntry);
+
+        mEntry.ensureLabel(context);
+        setKey(generateKey(mEntry));
+        if (mCacheIcon != null) {
+            setIcon(mCacheIcon);
+        } else {
+            setIcon(R.drawable.empty_icon);
+        }
+        updateState();
+    }
+
+    static String generateKey(AppEntry entry) {
+        return entry.info.packageName + "|" + entry.info.uid;
+    }
+
+    public AppEntry getEntry() {
+        return mEntry;
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        if (mCacheIcon == null) {
+            ThreadUtils.postOnBackgroundThread(() -> {
+                final Drawable icon = AppUtils.getIcon(getContext(), mEntry);
+                ThreadUtils.postOnMainThread(() -> {
+                    setIcon(icon);
+                    mCacheIcon = icon;
+                });
+            });
+        }
+        super.onBindViewHolder(holder);
+    }
+
+    void updateState() {
+        setTitle(mEntry.label);
+        setChecked((boolean) mEntry.extraInfo);
+        notifyChanged();
+    }
+}
diff --git a/src/com/android/settings/development/quarantine/QuarantinedAppStateBridge.java b/src/com/android/settings/development/quarantine/QuarantinedAppStateBridge.java
new file mode 100644
index 0000000..206b922
--- /dev/null
+++ b/src/com/android/settings/development/quarantine/QuarantinedAppStateBridge.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.development.quarantine;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserHandle;
+
+import com.android.settings.applications.AppStateBaseBridge;
+import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+
+import java.util.ArrayList;
+
+public class QuarantinedAppStateBridge extends AppStateBaseBridge {
+    private Context mContext;
+
+    public QuarantinedAppStateBridge(Context context,
+            ApplicationsState appState, Callback callback) {
+        super(appState, callback);
+        mContext = context;
+    }
+
+    @Override
+    protected void loadAllExtraInfo() {
+        final ArrayList<AppEntry> apps = mAppSession.getAllApps();
+        for (int i = 0; i < apps.size(); i++) {
+            final AppEntry app = apps.get(i);
+            updateExtraInfo(app, app.info.packageName, app.info.uid);
+        }
+    }
+
+    @Override
+    protected void updateExtraInfo(AppEntry app, String pkg, int uid) {
+        app.extraInfo = isPackageQuarantined(pkg, uid);
+    }
+
+    private boolean isPackageQuarantined(String pkg, int uid) {
+        final PackageManager pm = mContext.createContextAsUser(
+                UserHandle.getUserHandleForUid(uid), 0).getPackageManager();
+        try {
+            return pm.isPackageQuarantined(pkg);
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+    }
+}
diff --git a/src/com/android/settings/development/quarantine/QuarantinedAppsFragment.java b/src/com/android/settings/development/quarantine/QuarantinedAppsFragment.java
new file mode 100644
index 0000000..985e962
--- /dev/null
+++ b/src/com/android/settings/development/quarantine/QuarantinedAppsFragment.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.development.quarantine;
+
+import static android.view.MenuItem.SHOW_AS_ACTION_ALWAYS;
+import static android.view.MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW;
+
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.widget.SearchView;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.applications.AppIconCacheManager;
+import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.applications.ApplicationsState.AppFilter;
+import com.android.settingslib.search.SearchIndexable;
+
+import com.google.android.material.appbar.AppBarLayout;
+
+// TODO: b/297934650 - Update this to use SPA framework
+@SearchIndexable
+public class QuarantinedAppsFragment extends DashboardFragment implements
+        SearchView.OnQueryTextListener, SearchView.OnCloseListener,
+        MenuItem.OnActionExpandListener {
+    private static final String TAG = "QuarantinedApps";
+
+    private static final int MENU_SEARCH_APPS = Menu.FIRST + 42;
+    private static final int MENU_SHOW_SYSTEM = Menu.FIRST + 43;
+    private static final String EXTRA_SHOW_SYSTEM = "show_system";
+
+    private boolean mShowSystem;
+    private SearchView mSearchView;
+    private String mCurQuery;
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        mShowSystem = icicle != null && icicle.getBoolean(EXTRA_SHOW_SYSTEM);
+        use(QuarantinedAppsScreenController.class).setFilter(mCustomFilter);
+        use(QuarantinedAppsScreenController.class).setSession(getSettingsLifecycle());
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        mSearchView = new SearchView(getContext());
+        mSearchView.setOnQueryTextListener(this);
+        mSearchView.setOnCloseListener(this);
+        mSearchView.setIconifiedByDefault(true);
+
+        menu.add(Menu.NONE, MENU_SEARCH_APPS, Menu.NONE, R.string.search_settings)
+                .setIcon(R.drawable.ic_find_in_page_24px)
+                .setActionView(mSearchView)
+                .setOnActionExpandListener(this)
+                .setShowAsAction(SHOW_AS_ACTION_ALWAYS | SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
+        menu.add(Menu.NONE, MENU_SHOW_SYSTEM, Menu.NONE,
+                mShowSystem ? R.string.menu_hide_system : R.string.menu_show_system);
+        super.onCreateOptionsMenu(menu, inflater);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == MENU_SHOW_SYSTEM) {
+            mShowSystem = !mShowSystem;
+            item.setTitle(mShowSystem ? R.string.menu_hide_system : R.string.menu_show_system);
+            use(QuarantinedAppsScreenController.class).setFilter(mCustomFilter);
+            use(QuarantinedAppsScreenController.class).rebuild();
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    public boolean onQueryTextChange(String newText) {
+        mCurQuery = !TextUtils.isEmpty(newText) ? newText : null;
+        use(QuarantinedAppsScreenController.class).rebuild();
+        return true;
+    }
+
+    @Override
+    public boolean onQueryTextSubmit(String query) {
+        // Don't care about this.
+        return true;
+    }
+
+    @Override
+    public boolean onClose() {
+        if (!TextUtils.isEmpty(mSearchView.getQuery())) {
+            mSearchView.setQuery(null, true);
+        }
+        return true;
+    }
+
+    public final AppFilter mCustomFilter = new AppFilter() {
+        @Override
+        public void init() {
+        }
+
+        @Override
+        public boolean filterApp(ApplicationsState.AppEntry entry) {
+            final AppFilter defaultFilter = mShowSystem ? ApplicationsState.FILTER_ALL_ENABLED
+                    : ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER;
+            return defaultFilter.filterApp(entry) && (mCurQuery == null
+                    || entry.label.toLowerCase().contains(mCurQuery.toLowerCase()));
+        }
+    };
+
+    @Override
+    public boolean onMenuItemActionExpand(MenuItem item) {
+        final AppBarLayout mAppBarLayout = getActivity().findViewById(R.id.app_bar);
+        // To prevent a large space on tool bar.
+        mAppBarLayout.setExpanded(false /*expanded*/, false /*animate*/);
+        return true;
+    }
+
+    @Override
+    public boolean onMenuItemActionCollapse(MenuItem item) {
+        final AppBarLayout mAppBarLayout = getActivity().findViewById(R.id.app_bar);
+        // To prevent a large space on tool bar.
+        mAppBarLayout.setExpanded(false /*expanded*/, false /*animate*/);
+        return true;
+    }
+
+    @Override
+    public int getPreferenceScreenResId() {
+        return R.xml.quarantined_apps;
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putBoolean(EXTRA_SHOW_SYSTEM, mShowSystem);
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.QUARANTINED_APPS_DEV_CONTROL;
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+        AppIconCacheManager.getInstance().release();
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.quarantined_apps);
+}
diff --git a/src/com/android/settings/development/quarantine/QuarantinedAppsPreferenceController.java b/src/com/android/settings/development/quarantine/QuarantinedAppsPreferenceController.java
new file mode 100644
index 0000000..de3b18b
--- /dev/null
+++ b/src/com/android/settings/development/quarantine/QuarantinedAppsPreferenceController.java
@@ -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.
+ */
+
+package com.android.settings.development.quarantine;
+
+import android.content.Context;
+import android.content.pm.Flags;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class QuarantinedAppsPreferenceController extends BasePreferenceController {
+    public QuarantinedAppsPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.quarantinedEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+}
diff --git a/src/com/android/settings/development/quarantine/QuarantinedAppsScreenController.java b/src/com/android/settings/development/quarantine/QuarantinedAppsScreenController.java
new file mode 100644
index 0000000..4d4834b
--- /dev/null
+++ b/src/com/android/settings/development/quarantine/QuarantinedAppsScreenController.java
@@ -0,0 +1,232 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.quarantine;
+
+import android.app.Application;
+import android.content.Context;
+import android.content.pm.Flags;
+import android.content.pm.PackageManager;
+import android.content.pm.SuspendDialogInfo;
+import android.os.UserHandle;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.applications.AppStateBaseBridge;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.applications.AppUtils;
+import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+import com.android.settingslib.applications.ApplicationsState.AppFilter;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnDestroy;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+import java.util.ArrayList;
+import java.util.Set;
+import java.util.TreeSet;
+
+public class QuarantinedAppsScreenController extends BasePreferenceController implements
+        LifecycleObserver, OnStart, OnStop, OnDestroy,
+        ApplicationsState.Callbacks, Preference.OnPreferenceChangeListener,
+        AppStateBaseBridge.Callback {
+    private final ApplicationsState mApplicationsState;
+    private final QuarantinedAppStateBridge mQuarantinedAppStateBridge;
+    private ApplicationsState.Session mSession;
+    private PreferenceScreen mScreen;
+    private AppFilter mFilter;
+    private boolean mExtraLoaded;
+
+    public QuarantinedAppsScreenController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mApplicationsState = ApplicationsState.getInstance(
+                (Application) context.getApplicationContext());
+        mQuarantinedAppStateBridge = new QuarantinedAppStateBridge(context,
+                mApplicationsState, this);
+    }
+
+    @Override
+    public void onStart() {
+        mQuarantinedAppStateBridge.resume(true /* forceLoadAllApps */);
+    }
+
+    @Override
+    public void onStop() {
+        mQuarantinedAppStateBridge.pause();
+    }
+
+    @Override
+    public void onDestroy() {
+        mQuarantinedAppStateBridge.release();
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mScreen = screen;
+    }
+
+    public void setFilter(AppFilter filter) {
+        mFilter = filter;
+    }
+
+    public void setSession(Lifecycle lifecycle) {
+        mSession = mApplicationsState.newSession(this, lifecycle);
+    }
+
+    @Override
+    public void onExtraInfoUpdated() {
+        mExtraLoaded = true;
+        rebuild();
+    }
+
+    public void rebuild() {
+        if (!mExtraLoaded || mSession == null) {
+            return;
+        }
+
+        final ArrayList<AppEntry> apps = mSession.rebuild(mFilter,
+                ApplicationsState.ALPHA_COMPARATOR);
+        if (apps != null) {
+            onRebuildComplete(apps);
+        }
+    }
+
+    @Override
+    public void onRebuildComplete(ArrayList<AppEntry> apps) {
+        if (apps == null) {
+            return;
+        }
+
+        // Preload top visible icons of app list.
+        AppUtils.preloadTopIcons(mContext, apps,
+                mContext.getResources().getInteger(R.integer.config_num_visible_app_icons));
+
+        // Create apps key set for removing useless preferences
+        final Set<String> appsKeySet = new TreeSet<>();
+        // Add or update preferences
+        final int count = apps.size();
+        for (int i = 0; i < count; i++) {
+            final AppEntry entry = apps.get(i);
+            if (!shouldAddPreference(entry)) {
+                continue;
+            }
+            final String prefkey = QuarantinedAppPreference.generateKey(entry);
+            appsKeySet.add(prefkey);
+            QuarantinedAppPreference preference = mScreen.findPreference(prefkey);
+            if (preference == null) {
+                preference = new QuarantinedAppPreference(mScreen.getContext(), entry);
+                preference.setOnPreferenceChangeListener(this);
+                mScreen.addPreference(preference);
+            } else {
+                preference.updateState();
+            }
+            preference.setOrder(i);
+        }
+
+        // Remove useless preferences
+        removeUselessPrefs(appsKeySet);
+    }
+
+    private void removeUselessPrefs(final Set<String> appsKeySet) {
+        final int prefCount = mScreen.getPreferenceCount();
+        String prefKey;
+        if (prefCount > 0) {
+            for (int i = prefCount - 1; i >= 0; i--) {
+                final Preference pref = mScreen.getPreference(i);
+                prefKey = pref.getKey();
+                if (!appsKeySet.isEmpty() && appsKeySet.contains(prefKey)) {
+                    continue;
+                }
+                mScreen.removePreference(pref);
+            }
+        }
+    }
+
+    @VisibleForTesting
+    static boolean shouldAddPreference(AppEntry app) {
+        return app != null && UserHandle.isApp(app.info.uid);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        if (preference instanceof QuarantinedAppPreference) {
+            final QuarantinedAppPreference quarantinedPreference =
+                    (QuarantinedAppPreference) preference;
+            final boolean quarantined = newValue == Boolean.TRUE;
+            setPackageQuarantined(quarantinedPreference.getEntry().info.packageName,
+                    quarantinedPreference.getEntry().info.uid, quarantined);
+            quarantinedPreference.getEntry().extraInfo = quarantined;
+            return true;
+        }
+        return false;
+    }
+
+    private void setPackageQuarantined(String pkg, int uid, boolean quarantined) {
+        final PackageManager pm = mContext.createContextAsUser(
+                UserHandle.getUserHandleForUid(uid), 0).getPackageManager();
+        final SuspendDialogInfo dialogInfo;
+        if (quarantined) {
+            dialogInfo = new SuspendDialogInfo.Builder()
+                    .setNeutralButtonText(R.string.unquarantine_app_button)
+                    .setNeutralButtonAction(SuspendDialogInfo.BUTTON_ACTION_UNSUSPEND)
+                    .build();
+        } else {
+            dialogInfo = null;
+        }
+        pm.setPackagesSuspended(new String[] {pkg}, quarantined, null /* appExtras */,
+                null /* launcherExtras */, dialogInfo,
+                PackageManager.FLAG_SUSPEND_QUARANTINED);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return Flags.quarantinedEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void onRunningStateChanged(boolean running) {
+    }
+
+    @Override
+    public void onPackageListChanged() {
+    }
+
+    @Override
+    public void onPackageIconChanged() {
+    }
+
+    @Override
+    public void onPackageSizeChanged(String packageName) {
+    }
+
+    @Override
+    public void onAllSizesComputed() {
+    }
+
+    @Override
+    public void onLauncherInfoChanged() {
+    }
+
+    @Override
+    public void onLoadEntriesCompleted() {
+    }
+}
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/snooplogger/SnoopLoggerFiltersPreferenceController.java b/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceController.java
index 8262182..b32d161 100644
--- a/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceController.java
+++ b/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceController.java
@@ -22,7 +22,6 @@
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
 /** A {@link BasePreferenceController} used in {@link SnoopLoggerFiltersDashboard} */
@@ -35,9 +34,11 @@
     public SnoopLoggerFiltersPreferenceController(Context context, String key) {
         super(context, key);
         mListValues =
-                context.getResources().getStringArray(R.array.bt_hci_snoop_log_filters_values);
+                context.getResources().getStringArray(
+                        com.android.settingslib.R.array.bt_hci_snoop_log_filters_values);
         mListEntries =
-                context.getResources().getStringArray(R.array.bt_hci_snoop_log_filters_entries);
+                context.getResources().getStringArray(
+                        com.android.settingslib.R.array.bt_hci_snoop_log_filters_entries);
     }
 
     @Override
diff --git a/src/com/android/settings/development/storage/BlobInfoListView.java b/src/com/android/settings/development/storage/BlobInfoListView.java
index d3c7033..36d6c7a 100644
--- a/src/com/android/settings/development/storage/BlobInfoListView.java
+++ b/src/com/android/settings/development/storage/BlobInfoListView.java
@@ -83,7 +83,8 @@
         super.onActivityResult(requestCode, resultCode, data);
         if (requestCode == SharedDataUtils.LEASE_VIEW_REQUEST_CODE
                 && resultCode == SharedDataUtils.LEASE_VIEW_RESULT_CODE_FAILURE) {
-            Toast.makeText(this, R.string.shared_data_delete_failure_text, Toast.LENGTH_LONG)
+            Toast.makeText(this, com.android.settingslib.R.string.shared_data_delete_failure_text,
+                            Toast.LENGTH_LONG)
                     .show();
         }
         // do nothing on LEASE_VIEW_RESULT_CODE_SUCCESS since data is updated in onResume()
@@ -103,7 +104,7 @@
 
     private void showDeleteBlobDialog(BlobInfo blob) {
         final AlertDialog dialog = new AlertDialog.Builder(mContext)
-                .setMessage(R.string.shared_data_no_accessors_dialog_text)
+                .setMessage(com.android.settingslib.R.string.shared_data_no_accessors_dialog_text)
                 .setPositiveButton(android.R.string.ok, getDialogOnClickListener(blob))
                 .setNegativeButton(android.R.string.cancel, null)
                 .create();
@@ -116,7 +117,9 @@
                 mBlobStoreManager.deleteBlob(blob);
             } catch (IOException e) {
                 Log.e(TAG, "Unable to delete blob: " + e.getMessage());
-                Toast.makeText(this, R.string.shared_data_delete_failure_text, Toast.LENGTH_LONG)
+                Toast.makeText(this,
+                                com.android.settingslib.R.string.shared_data_delete_failure_text,
+                                Toast.LENGTH_LONG)
                         .show();
             }
             queryBlobsAndUpdateList();
@@ -128,7 +131,8 @@
             mAdapter.updateList(mBlobStoreManager.queryBlobsForUser(UserHandle.CURRENT));
         } catch (IOException e) {
             Log.e(TAG, "Unable to fetch blobs for current user: " + e.getMessage());
-            Toast.makeText(this, R.string.shared_data_query_failure_text, Toast.LENGTH_LONG).show();
+            Toast.makeText(this, com.android.settingslib.R.string.shared_data_query_failure_text,
+                    Toast.LENGTH_LONG).show();
             finish();
         }
     }
@@ -155,7 +159,8 @@
 
             final BlobInfo blob = getItem(position);
             holder.blobLabel.setText(blob.getLabel());
-            holder.blobId.setText(getString(R.string.blob_id_text, blob.getId()));
+            holder.blobId.setText(
+                    getString(com.android.settingslib.R.string.blob_id_text, blob.getId()));
             holder.blobExpiry.setText(formatExpiryTime(blob.getExpiryTimeMs()));
             holder.blobSize.setText(SharedDataUtils.formatSize(blob.getSizeBytes()));
             return convertView;
@@ -165,7 +170,8 @@
             if (expiryTimeMs == 0) {
                 return getString(R.string.blob_never_expires_text);
             }
-            return getString(R.string.blob_expires_text, SharedDataUtils.formatTime(expiryTimeMs));
+            return getString(com.android.settingslib.R.string.blob_expires_text,
+                    SharedDataUtils.formatTime(expiryTimeMs));
         }
     }
 }
diff --git a/src/com/android/settings/development/storage/LeaseInfoListView.java b/src/com/android/settings/development/storage/LeaseInfoListView.java
index 597e155..bc97119 100644
--- a/src/com/android/settings/development/storage/LeaseInfoListView.java
+++ b/src/com/android/settings/development/storage/LeaseInfoListView.java
@@ -100,7 +100,7 @@
 
         blobLabel.setText(mBlobInfo.getLabel());
         blobLabel.setTypeface(Typeface.DEFAULT_BOLD);
-        blobId.setText(getString(R.string.blob_id_text, mBlobInfo.getId()));
+        blobId.setText(getString(com.android.settingslib.R.string.blob_id_text, mBlobInfo.getId()));
         blobExpiry.setVisibility(View.GONE);
         blobSize.setText(SharedDataUtils.formatSize(mBlobInfo.getSizeBytes()));
         return headerView;
@@ -110,7 +110,7 @@
         final Button deleteButton = new Button(this);
         deleteButton.setLayoutParams(
                 new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
-        deleteButton.setText(R.string.delete_blob_text);
+        deleteButton.setText(com.android.settingslib.R.string.delete_blob_text);
         deleteButton.setOnClickListener(getButtonOnClickListener());
         return deleteButton;
     }
@@ -118,7 +118,7 @@
     private View.OnClickListener getButtonOnClickListener() {
         return v -> {
             final AlertDialog dialog = new AlertDialog.Builder(mContext)
-                    .setMessage(R.string.delete_blob_confirmation_text)
+                    .setMessage(com.android.settingslib.R.string.delete_blob_confirmation_text)
                     .setPositiveButton(android.R.string.ok, getDialogOnClickListener())
                     .setNegativeButton(android.R.string.cancel, null)
                     .create();
@@ -185,7 +185,8 @@
                 }
             } finally {
                 if (TextUtils.isEmpty(description)) {
-                    description = getString(R.string.accessor_no_description_text);
+                    description = getString(
+                            com.android.settingslib.R.string.accessor_no_description_text);
                 }
             }
             return description;
@@ -195,7 +196,7 @@
             if (expiryTimeMillis == 0) {
                 return getString(R.string.accessor_never_expires_text);
             }
-            return getString(R.string.accessor_expires_text,
+            return getString(com.android.settingslib.R.string.accessor_expires_text,
                     SharedDataUtils.formatTime(expiryTimeMillis));
         }
     }
diff --git a/src/com/android/settings/development/storage/SharedDataPreferenceController.java b/src/com/android/settings/development/storage/SharedDataPreferenceController.java
index 5d94dc8..88f317b 100644
--- a/src/com/android/settings/development/storage/SharedDataPreferenceController.java
+++ b/src/com/android/settings/development/storage/SharedDataPreferenceController.java
@@ -23,7 +23,6 @@
 
 import androidx.preference.Preference;
 
-import com.android.settings.R;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settingslib.development.DeveloperOptionsPreferenceController;
 
@@ -52,12 +51,13 @@
             final boolean showPref = mBlobStoreManager != null
                     && !mBlobStoreManager.queryBlobsForUser(UserHandle.CURRENT).isEmpty();
             preference.setEnabled(showPref);
-            preference.setSummary(showPref ? R.string.shared_data_summary
-                                           : R.string.shared_data_no_blobs_text);
+            preference.setSummary(
+                    showPref ? com.android.settingslib.R.string.shared_data_summary
+                            : com.android.settingslib.R.string.shared_data_no_blobs_text);
         } catch (IOException e) {
             Log.e(TAG, "Unable to fetch blobs for current user: " + e.getMessage());
             preference.setEnabled(false);
-            preference.setSummary(R.string.shared_data_no_blobs_text);
+            preference.setSummary(com.android.settingslib.R.string.shared_data_no_blobs_text);
         }
     }
 }
diff --git a/src/com/android/settings/development/tare/AlarmManagerFragment.java b/src/com/android/settings/development/tare/AlarmManagerFragment.java
index 9b9eded..b55c7cf 100644
--- a/src/com/android/settings/development/tare/AlarmManagerFragment.java
+++ b/src/com/android/settings/development/tare/AlarmManagerFragment.java
@@ -15,7 +15,6 @@
  */
 package com.android.settings.development.tare;
 
-import android.annotation.Nullable;
 import android.app.Fragment;
 import android.app.tare.EconomyManager;
 import android.content.res.Resources;
@@ -26,6 +25,8 @@
 import android.widget.ExpandableListView;
 import android.widget.ExpandableListView.OnChildClickListener;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 
 /**
diff --git a/src/com/android/settings/development/tare/JobSchedulerFragment.java b/src/com/android/settings/development/tare/JobSchedulerFragment.java
index e3b36a5..7f5e663 100644
--- a/src/com/android/settings/development/tare/JobSchedulerFragment.java
+++ b/src/com/android/settings/development/tare/JobSchedulerFragment.java
@@ -15,7 +15,6 @@
  */
 package com.android.settings.development.tare;
 
-import android.annotation.Nullable;
 import android.app.Fragment;
 import android.app.tare.EconomyManager;
 import android.content.res.Resources;
@@ -26,6 +25,8 @@
 import android.widget.ExpandableListView;
 import android.widget.ExpandableListView.OnChildClickListener;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 
 /**
diff --git a/src/com/android/settings/development/tare/TareFactorController.java b/src/com/android/settings/development/tare/TareFactorController.java
index b5dd6ea..3407b7b 100644
--- a/src/com/android/settings/development/tare/TareFactorController.java
+++ b/src/com/android/settings/development/tare/TareFactorController.java
@@ -25,7 +25,6 @@
 import static android.provider.Settings.Global.TARE_ALARM_MANAGER_CONSTANTS;
 import static android.provider.Settings.Global.TARE_JOB_SCHEDULER_CONSTANTS;
 
-import android.annotation.NonNull;
 import android.app.tare.EconomyManager;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -40,6 +39,8 @@
 import android.util.KeyValueListParser;
 import android.util.Slog;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.R;
 
 /**
diff --git a/src/com/android/settings/development/tare/TareFactorDialogFragment.java b/src/com/android/settings/development/tare/TareFactorDialogFragment.java
index 6d2f5ca..269e209 100644
--- a/src/com/android/settings/development/tare/TareFactorDialogFragment.java
+++ b/src/com/android/settings/development/tare/TareFactorDialogFragment.java
@@ -18,7 +18,6 @@
 
 import static android.app.tare.EconomyManager.CAKE_IN_ARC;
 
-import android.annotation.NonNull;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.DialogFragment;
@@ -33,6 +32,8 @@
 import android.widget.EditText;
 import android.widget.Spinner;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.R;
 import com.android.settings.Utils;
 
diff --git a/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java b/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java
index 79b7d41..9c78d06 100644
--- a/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java
+++ b/src/com/android/settings/development/tare/TareFactorExpandableListAdapter.java
@@ -18,7 +18,6 @@
 
 import static android.app.tare.EconomyManager.CAKE_IN_ARC;
 
-import android.annotation.NonNull;
 import android.annotation.SuppressLint;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -26,6 +25,8 @@
 import android.widget.BaseExpandableListAdapter;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.R;
 
 /**
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/BrandedAccountPreferenceController.java b/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java
index f00a327..13aac5c 100644
--- a/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BrandedAccountPreferenceController.java
@@ -19,14 +19,13 @@
 import android.accounts.Account;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.os.Bundle;
 import android.text.TextUtils;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.accounts.AccountDetailDashboardFragment;
+import com.android.settings.accounts.AccountDashboardFragment;
 import com.android.settings.accounts.AccountFeatureProvider;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.SubSettingLauncher;
@@ -38,7 +37,7 @@
 
     public BrandedAccountPreferenceController(Context context, String key) {
         super(context, key);
-        mAccountFeatureProvider = FeatureFactory.getFactory(mContext).getAccountFeatureProvider();
+        mAccountFeatureProvider = FeatureFactory.getFeatureFactory().getAccountFeatureProvider();
         mAccounts = mAccountFeatureProvider.getAccounts(mContext);
     }
 
@@ -63,7 +62,11 @@
             return;
         }
 
-        accountPreference.setSummary(mAccounts[0].name);
+        if (mAccounts.length == 1) {
+            accountPreference.setSummary(mAccounts[0].name);
+        } else {
+            accountPreference.setSummary(getAccountSummary(mAccounts.length));
+        }
     }
 
     @Override
@@ -72,18 +75,9 @@
             return false;
         }
 
-        final Bundle args = new Bundle();
-        args.putParcelable(AccountDetailDashboardFragment.KEY_ACCOUNT,
-                mAccounts[0]);
-        args.putParcelable(AccountDetailDashboardFragment.KEY_USER_HANDLE,
-                android.os.Process.myUserHandle());
-        args.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_TYPE,
-                mAccountFeatureProvider.getAccountType());
-
         new SubSettingLauncher(mContext)
-                .setDestination(AccountDetailDashboardFragment.class.getName())
-                .setTitleRes(R.string.account_sync_title)
-                .setArguments(args)
+                .setDestination(AccountDashboardFragment.class.getName())
+                .setTitleRes(R.string.account_dashboard_title)
                 .setSourceMetricsCategory(SettingsEnums.DEVICEINFO)
                 .launch();
         return true;
@@ -97,4 +91,9 @@
             preference.setVisible(false);
         }
     }
+
+    private String getAccountSummary(int accountNo) {
+        return mContext.getResources()
+            .getString(R.string.my_device_info_account_preference_summary, accountNo);
+    }
 }
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 55b38af..6fe3ca4 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -46,8 +46,8 @@
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
-
 import com.android.settingslib.utils.StringUtil;
+
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
 public class BuildNumberPreferenceController extends BasePreferenceController implements
@@ -70,7 +70,7 @@
     public BuildNumberPreferenceController(Context context, String key) {
         super(context, key);
         mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     public void setHost(InstrumentedPreferenceFragment fragment) {
@@ -241,7 +241,7 @@
                 Toast.LENGTH_LONG);
         mDevHitToast.show();
 
-        FeatureFactory.getFactory(mContext).getSearchFeatureProvider().sendPreIndexIntent(mContext);
+        FeatureFactory.getFeatureFactory().getSearchFeatureProvider().sendPreIndexIntent(mContext);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/deviceinfo/OWNERS b/src/com/android/settings/deviceinfo/OWNERS
index 68cee36..110402f 100644
--- a/src/com/android/settings/deviceinfo/OWNERS
+++ b/src/com/android/settings/deviceinfo/OWNERS
@@ -2,7 +2,6 @@
 allenwtsu@google.com
 andychou@google.com
 bonianchen@google.com
-goldmanj@google.com
 songferngwang@google.com
 
 # Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index d1bf808..8e583fd 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -56,28 +56,6 @@
     }
 
     @Override
-    public CharSequence getSummary() {
-        return mContext.getString(R.string.device_info_protected_single_press);
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        String prefKey = preference.getKey();
-        if (prefKey.startsWith(KEY_PHONE_NUMBER)) {
-            int simSlotNumber = 0;
-            if (!TextUtils.equals(prefKey, KEY_PHONE_NUMBER)) {
-                // Get multisim slot number from preference key.
-                // Multisim preference key is KEY_PHONE_NUMBER + simSlotNumber
-                simSlotNumber = Integer.parseInt(
-                        prefKey.replaceAll("[^0-9]", ""));
-            }
-            final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
-            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
-        }
-        return super.handlePreferenceTreeClick(preference);
-    }
-
-    @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
         if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
@@ -105,7 +83,7 @@
         for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
             final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
             simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
-            simStatusPreference.setSummary(getSummary());
+            simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
         }
     }
 
@@ -155,7 +133,7 @@
     }
 
     @VisibleForTesting
-    protected CharSequence getFormattedPhoneNumber(SubscriptionInfo subscriptionInfo) {
+    protected String getFormattedPhoneNumber(SubscriptionInfo subscriptionInfo) {
         final String phoneNumber = SubscriptionUtil.getBidiFormattedPhoneNumber(mContext,
                 subscriptionInfo);
         return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default)
@@ -164,6 +142,6 @@
 
     @VisibleForTesting
     protected Preference createNewPreference(Context context) {
-        return new PhoneNumberSummaryPreference(context);
+        return new Preference(context);
     }
 }
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/StorageWizardBase.java b/src/com/android/settings/deviceinfo/StorageWizardBase.java
index ad3c2c5..bb9a781 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardBase.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardBase.java
@@ -20,7 +20,6 @@
 import static android.os.storage.VolumeInfo.EXTRA_VOLUME_ID;
 
 import android.annotation.LayoutRes;
-import android.annotation.NonNull;
 import android.content.Intent;
 import android.content.res.Resources.Theme;
 import android.graphics.drawable.Drawable;
@@ -38,6 +37,7 @@
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.settings.R;
@@ -116,7 +116,7 @@
                 .setText(R.string.wizard_back)
                 .setListener(this::onNavigateBack)
                 .setButtonType(FooterButton.ButtonType.OTHER)
-                .setTheme(R.style.SudGlifButton_Secondary)
+                .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                 .build()
         );
         mFooterBarMixin.setPrimaryButton(
@@ -124,7 +124,7 @@
                 .setText(R.string.wizard_next)
                 .setListener(this::onNavigateNext)
                 .setButtonType(FooterButton.ButtonType.NEXT)
-                .setTheme(R.style.SudGlifButton_Primary)
+                .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                 .build()
         );
         mBack = mFooterBarMixin.getSecondaryButton();
diff --git a/src/com/android/settings/deviceinfo/StorageWizardFormatSlow.java b/src/com/android/settings/deviceinfo/StorageWizardFormatSlow.java
index 79f97de..b59d169 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardFormatSlow.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardFormatSlow.java
@@ -57,7 +57,7 @@
 
     @Override
     public void onNavigateBack(View view) {
-        FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                 SettingsEnums.ACTION_STORAGE_BENCHMARK_SLOW_ABORT);
 
         final Intent intent = new Intent(this, StorageWizardInit.class);
@@ -69,11 +69,11 @@
     public void onNavigateNext(View view) {
         if (view != null) {
             // User made an explicit choice to continue when slow
-            FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                     SettingsEnums.ACTION_STORAGE_BENCHMARK_SLOW_CONTINUE);
         } else {
             // User made an implicit choice to continue when fast
-            FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                     SettingsEnums.ACTION_STORAGE_BENCHMARK_FAST_CONTINUE);
         }
 
diff --git a/src/com/android/settings/deviceinfo/StorageWizardInit.java b/src/com/android/settings/deviceinfo/StorageWizardInit.java
index 8d04983..b912ffe 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardInit.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardInit.java
@@ -133,7 +133,7 @@
     public void onNavigateExternal(View view) {
         if (view != null) {
             // User made an explicit choice for external
-            FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                 SettingsEnums.ACTION_STORAGE_INIT_EXTERNAL);
         }
         StorageWizardFormatConfirm.showPublic(this, mDisk.getId());
@@ -142,7 +142,7 @@
     public void onNavigateInternal(View view) {
         if (view != null) {
             // User made an explicit choice for internal
-            FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                 SettingsEnums.ACTION_STORAGE_INIT_INTERNAL);
         }
         StorageWizardFormatConfirm.showPrivate(this, mDisk.getId());
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
index f65dd24..0b88657 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;
@@ -82,7 +83,7 @@
 
     @Override
     public void onNavigateBack(View view) {
-        FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                 SettingsEnums.ACTION_STORAGE_MIGRATE_LATER);
 
         if (mDisk != null) {
@@ -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.isCeStorageUnlocked(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 =
@@ -142,7 +152,7 @@
             return;
         }
 
-        FeatureFactory.getFactory(this).getMetricsFeatureProvider().action(this,
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
                 SettingsEnums.ACTION_STORAGE_MIGRATE_NOW);
 
         final Intent intent = new Intent(this, StorageWizardMigrateProgress.class);
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
index da96104..f55f822 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.isCeStorageUnlocked(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/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
index 5e5e2ab..50b6097 100644
--- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
@@ -183,7 +183,6 @@
         final Bundle bundle = getArguments();
         final EntityHeaderController controller = EntityHeaderController
                 .newInstance(context, this, headerView)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE);
 
@@ -199,7 +198,7 @@
                     com.android.settingslib.Utils.getUserIcon(getActivity(), userManager, info));
         }
 
-        controller.done(context, true /* rebindActions */);
+        controller.done(true /* rebindActions */);
     }
 
     @Override
diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java
index 6c7a743..0b75099 100644
--- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceController.java
@@ -38,8 +38,8 @@
 
     public BatteryFirstUseDatePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mBatterySettingsFeatureProvider = FeatureFactory.getFactory(
-                context).getBatterySettingsFeatureProvider();
+        mBatterySettingsFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getBatterySettingsFeatureProvider();
         mBatteryManager = mContext.getSystemService(BatteryManager.class);
     }
 
diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragment.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragment.java
index 1731212..c017022 100644
--- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragment.java
@@ -17,15 +17,15 @@
 package com.android.settings.deviceinfo.batteryinfo;
 
 import android.app.settings.SettingsEnums;
+import android.content.Context;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
 
-/**
- * A fragment that shows battery hardware information.
- */
+/** A fragment that shows battery hardware information. */
 @SearchIndexable
 public class BatteryInfoFragment extends DashboardFragment {
 
@@ -47,5 +47,12 @@
     }
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.battery_info);
+            new BaseSearchIndexProvider(R.xml.battery_info) {
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    return FeatureFactory.getFeatureFactory()
+                            .getBatterySettingsFeatureProvider()
+                            .isBatteryInfoEnabled(context);
+                }
+            };
 }
diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoPreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoPreferenceController.java
new file mode 100644
index 0000000..d285801
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoPreferenceController.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.deviceinfo.batteryinfo;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
+
+/** Controller to enter battery information page. */
+public class BatteryInfoPreferenceController extends BasePreferenceController {
+
+    private final BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
+
+    public BatteryInfoPreferenceController(Context context, String key) {
+        super(context, key);
+        mBatterySettingsFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getBatterySettingsFeatureProvider();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return mBatterySettingsFeatureProvider.isBatteryInfoEnabled(mContext) ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java b/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java
index ff54c77..15d6b28 100644
--- a/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceController.java
@@ -38,8 +38,8 @@
 
     public BatteryManufactureDatePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mBatterySettingsFeatureProvider = FeatureFactory.getFactory(
-                context).getBatterySettingsFeatureProvider();
+        mBatterySettingsFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getBatterySettingsFeatureProvider();
         mBatteryManager = mContext.getSystemService(BatteryManager.class);
     }
 
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
index fb17eca..fa71c34 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceController.java
@@ -28,6 +28,7 @@
 import androidx.preference.Preference;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.flags.Flags;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -40,10 +41,6 @@
 
 public class MainlineModuleVersionPreferenceController extends BasePreferenceController {
 
-    private static final String TAG = "MainlineModuleControl";
-    private static final List<String> VERSION_NAME_DATE_PATTERNS = Arrays.asList("yyyy-MM-dd",
-            "yyyy-MM");
-
     @VisibleForTesting
     static final Intent MODULE_UPDATE_INTENT =
             new Intent("android.settings.MODULE_UPDATE_SETTINGS");
@@ -51,6 +48,10 @@
     static final Intent MODULE_UPDATE_V2_INTENT =
             new Intent("android.settings.MODULE_UPDATE_VERSIONS");
 
+    private static final String TAG = "MainlineModuleControl";
+    private static final List<String> VERSION_NAME_DATE_PATTERNS = Arrays.asList("yyyy-MM-dd",
+            "yyyy-MM");
+
     private final PackageManager mPackageManager;
 
     private String mModuleVersion;
@@ -58,6 +59,12 @@
     public MainlineModuleVersionPreferenceController(Context context, String key) {
         super(context, key);
         mPackageManager = mContext.getPackageManager();
+        if (Flags.mainlineModuleExplicitIntent()) {
+            String packageName = mContext
+                    .getString(com.android.settings.R.string.config_mainline_module_update_package);
+            MODULE_UPDATE_INTENT.setPackage(packageName);
+            MODULE_UPDATE_V2_INTENT.setPackage(packageName);
+        }
         initModules();
     }
 
diff --git a/src/com/android/settings/deviceinfo/hardwareinfo/ManufacturedYearPreferenceController.kt b/src/com/android/settings/deviceinfo/hardwareinfo/ManufacturedYearPreferenceController.kt
index 0b0eeb7..92d7733 100644
--- a/src/com/android/settings/deviceinfo/hardwareinfo/ManufacturedYearPreferenceController.kt
+++ b/src/com/android/settings/deviceinfo/hardwareinfo/ManufacturedYearPreferenceController.kt
@@ -17,13 +17,12 @@
 
 import android.content.Context
 import com.android.settings.core.BasePreferenceController
-import com.android.settings.overlay.FeatureFactory
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 
 /** Preference controller for Manufactured Year. */
 class ManufacturedYearPreferenceController(context: Context, preferenceKey: String) :
     BasePreferenceController(context, preferenceKey) {
-    private val year: String? =
-        FeatureFactory.getFactory(context).hardwareInfoFeatureProvider.manufacturedYear
+    private val year: String? = featureFactory.hardwareInfoFeatureProvider.manufacturedYear
 
     override fun getAvailabilityStatus(): Int =
         if (!year.isNullOrEmpty()) AVAILABLE else UNSUPPORTED_ON_DEVICE
diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
index 2045b96..ff55184 100644
--- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
@@ -33,7 +33,6 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.deviceinfo.PhoneNumberSummaryPreference;
 import com.android.settings.deviceinfo.simstatus.SlotSimStatus;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settingslib.Utils;
@@ -103,6 +102,7 @@
             multiImeiPreference.setKey(DEFAULT_KEY + (1 + simSlotNumber));
             multiImeiPreference.setEnabled(true);
             multiImeiPreference.setCopyingEnabled(true);
+
             category.addPreference(multiImeiPreference);
        }
     }
@@ -112,11 +112,6 @@
         updatePreference(preference, keyToSlotIndex(preference.getKey()));
     }
 
-    @Override
-    public CharSequence getSummary() {
-        return mContext.getString(R.string.device_info_protected_single_press);
-    }
-
     private CharSequence getSummary(int simSlot) {
         final int phoneType = getPhoneType(simSlot);
         return phoneType == PHONE_TYPE_CDMA ? mTelephonyManager.getMeid(simSlot)
@@ -150,8 +145,12 @@
 
     @VisibleForTesting
     protected void updatePreference(Preference preference, int simSlot) {
+        if (simSlot < 0) {
+            preference.setVisible(false);
+            return;
+        }
         preference.setTitle(getTitle(simSlot));
-        preference.setSummary(getSummary());
+        preference.setSummary(getSummary(simSlot));
     }
 
     private CharSequence getTitleForGsmPhone(int simSlot, boolean isPrimaryImei) {
@@ -195,6 +194,6 @@
 
     @VisibleForTesting
     Preference createNewPreference(Context context) {
-        return new PhoneNumberSummaryPreference(context);
+        return new Preference(context);
     }
 }
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
index 996f31f..f765d8c 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
+++ b/src/com/android/settings/deviceinfo/simstatus/SimEidPreferenceController.kt
@@ -92,6 +92,7 @@
             }
             preference.title = title
             preference.dialogTitle = title
+            preference.summary = eid
             updateDialog()
         }
     }
@@ -125,14 +126,11 @@
             WindowManager.LayoutParams.FLAG_SECURE
         )
         dialog.setCanceledOnTouchOutside(false)
-        val textView = dialog.findViewById<TextView>(R.id.esim_id_value)
+        val textView = dialog.requireViewById<TextView>(R.id.esim_id_value)
         textView.text = PhoneNumberUtil.expandByTts(eid)
 
-        val qrCodeView = dialog.findViewById<ImageView>(R.id.esim_id_qrcode)
+        val qrCodeView = dialog.requireViewById<ImageView>(R.id.esim_id_qrcode)
         qrCodeView.setImageBitmap(getEidQrCode(eid))
-
-        // After "Tap to show", eid is displayed on preference.
-        preference.summary = textView.text
     }
 
     override fun handlePreferenceTreeClick(preference: Preference): Boolean {
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index d3058ce..6ac0d26 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -18,7 +18,6 @@
 
 import static androidx.lifecycle.Lifecycle.Event;
 
-import android.annotation.Nullable;
 import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
@@ -54,6 +53,7 @@
 import android.util.Log;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
@@ -630,24 +630,24 @@
         @Override
         public void onRegistered(@AccessNetworkConstants.TransportType int imsTransportType) {
             mDialog.setText(IMS_REGISTRATION_STATE_VALUE_ID, mRes.getString(
-                    R.string.ims_reg_status_registered));
+                    com.android.settingslib.R.string.ims_reg_status_registered));
         }
         @Override
         public void onRegistering(@AccessNetworkConstants.TransportType int imsTransportType) {
             mDialog.setText(IMS_REGISTRATION_STATE_VALUE_ID, mRes.getString(
-                    R.string.ims_reg_status_not_registered));
+                    com.android.settingslib.R.string.ims_reg_status_not_registered));
         }
         @Override
         public void onUnregistered(@Nullable ImsReasonInfo info) {
             mDialog.setText(IMS_REGISTRATION_STATE_VALUE_ID, mRes.getString(
-                    R.string.ims_reg_status_not_registered));
+                    com.android.settingslib.R.string.ims_reg_status_not_registered));
         }
         @Override
         public void onTechnologyChangeFailed(
                 @AccessNetworkConstants.TransportType int imsTransportType,
                 @Nullable ImsReasonInfo info) {
             mDialog.setText(IMS_REGISTRATION_STATE_VALUE_ID, mRes.getString(
-                    R.string.ims_reg_status_not_registered));
+                    com.android.settingslib.R.string.ims_reg_status_not_registered));
         }
     };
 
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/AutomaticStorageManagementSwitchPreferenceController.java b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
index 84d88e3..b98fbda 100644
--- a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
@@ -50,7 +50,7 @@
 
     public AutomaticStorageManagementSwitchPreferenceController(Context context, String key) {
         super(context, key);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     public AutomaticStorageManagementSwitchPreferenceController setFragmentManager(
diff --git a/src/com/android/settings/deviceinfo/storage/ManageStoragePreferenceController.java b/src/com/android/settings/deviceinfo/storage/ManageStoragePreferenceController.java
index 9613b55..442531b 100644
--- a/src/com/android/settings/deviceinfo/storage/ManageStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/ManageStoragePreferenceController.java
@@ -71,7 +71,7 @@
         }
 
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         metricsFeatureProvider.action(mContext, SettingsEnums.STORAGE_FREE_UP_SPACE_NOW);
 
         final Intent intent = new Intent(StorageManager.ACTION_MANAGE_STORAGE);
diff --git a/src/com/android/settings/deviceinfo/storage/StorageEntry.java b/src/com/android/settings/deviceinfo/storage/StorageEntry.java
index b419370..38b2c33 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageEntry.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageEntry.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.deviceinfo.storage;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -26,6 +25,8 @@
 import android.os.storage.VolumeRecord;
 import android.text.TextUtils;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.R;
 
 import java.io.File;
diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
index d2471b7..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,16 +145,25 @@
     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;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mProfileType = profileType;
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mUserId = getCurrentUserId();
         mIsDocumentsPrefShown = isDocumentsPrefShown();
         mStorageCacheHelper = new StorageCacheHelper(mContext, mUserId);
@@ -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/devicelock/DeviceLockPreferenceController.java b/src/com/android/settings/devicelock/DeviceLockPreferenceController.java
index 4b6fe88..cf54c87 100644
--- a/src/com/android/settings/devicelock/DeviceLockPreferenceController.java
+++ b/src/com/android/settings/devicelock/DeviceLockPreferenceController.java
@@ -47,6 +47,11 @@
     @Override
     public void updateState(Preference preference) {
         super.updateState(preference);
+        if (mDeviceLockManager == null) {
+            Log.w(TAG, "DeviceLockManager is not available");
+            preference.setVisible(false);
+            return;
+        }
         mDeviceLockManager.getKioskApps(mContext.getMainExecutor(),
                 result -> {
                     // if kiosk apps present on the device, the device is provisioned by Device Lock
diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
index b21c6ac..725b956 100644
--- a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
@@ -62,7 +62,7 @@
     public AdaptiveSleepPreferenceController(Context context, RestrictionUtils restrictionUtils) {
         mContext = context;
         mRestrictionUtils = restrictionUtils;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mPrivacyManager = SensorPrivacyManager.getInstance(context);
         mPowerManager = context.getSystemService(PowerManager.class);
         mPackageManager = context.getPackageManager();
diff --git a/src/com/android/settings/display/AlwaysOnDisplaySlice.java b/src/com/android/settings/display/AlwaysOnDisplaySlice.java
index 003c603..7a9f2f9 100644
--- a/src/com/android/settings/display/AlwaysOnDisplaySlice.java
+++ b/src/com/android/settings/display/AlwaysOnDisplaySlice.java
@@ -36,8 +36,6 @@
 
 import com.android.settings.R;
 import com.android.settings.Utils;
-import com.android.settings.aware.AwareFeatureProvider;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settings.slices.CustomSliceable;
 
@@ -59,12 +57,10 @@
 
     private final Context mContext;
     private final AmbientDisplayConfiguration mConfig;
-    private final AwareFeatureProvider mFeatureProvider;
 
     public AlwaysOnDisplaySlice(Context context) {
         mContext = context;
         mConfig = new AmbientDisplayConfiguration(mContext);
-        mFeatureProvider = FeatureFactory.getFactory(context).getAwareFeatureProvider();
     }
 
     @Override
@@ -107,12 +103,9 @@
         final boolean isChecked = intent.getBooleanExtra(android.app.slice.Slice.EXTRA_TOGGLE_STATE,
                 false);
         final ContentResolver resolver = mContext.getContentResolver();
-        final boolean isAwareSupported = mFeatureProvider.isSupported(mContext);
-        final boolean isAwareEnabled = mFeatureProvider.isEnabled(mContext);
 
         Settings.Secure.putInt(resolver, DOZE_ALWAYS_ON, isChecked ? 1 : 0);
-        Settings.Secure.putInt(resolver, DOZE_WAKE_DISPLAY_GESTURE,
-                (isAwareEnabled && isAwareSupported && isChecked) ? 1 : 0);
+        Settings.Secure.putInt(resolver, DOZE_WAKE_DISPLAY_GESTURE, 0);
     }
 
     @Override
diff --git a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
index a5b0aeb..71d431a 100644
--- a/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
+++ b/src/com/android/settings/display/AmbientDisplayNotificationsPreferenceController.java
@@ -45,7 +45,7 @@
 
     public AmbientDisplayNotificationsPreferenceController(Context context, String key) {
         super(context, key);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     /**
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/AutoRotatePreferenceController.java b/src/com/android/settings/display/AutoRotatePreferenceController.java
index 90423fb..ec2592d 100644
--- a/src/com/android/settings/display/AutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/AutoRotatePreferenceController.java
@@ -39,7 +39,7 @@
 
     public AutoRotatePreferenceController(Context context, String key) {
         super(context, key);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -103,7 +103,8 @@
         final boolean isLocked = !isChecked;
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK,
                 isLocked);
-        RotationPolicy.setRotationLock(mContext, isLocked);
+        RotationPolicy.setRotationLock(mContext, isLocked,
+                /* caller= */ "AutoRotatePreferenceController#setChecked");
         return true;
     }
 }
diff --git a/src/com/android/settings/display/AutoRotateSwitchBarController.java b/src/com/android/settings/display/AutoRotateSwitchBarController.java
index d76104a..e6fc2e3 100644
--- a/src/com/android/settings/display/AutoRotateSwitchBarController.java
+++ b/src/com/android/settings/display/AutoRotateSwitchBarController.java
@@ -39,7 +39,7 @@
 
     public AutoRotateSwitchBarController(Context context, String key) {
         super(context, key);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -82,7 +82,8 @@
         final boolean isLocked = !isChecked;
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATE_ROTATE_MASTER_TOGGLE,
                 isLocked);
-        RotationPolicy.setRotationLock(mContext, isLocked);
+        RotationPolicy.setRotationLock(mContext, isLocked,
+                /* caller= */ "AutoRotateSwitchBarController#setChecked");
         return true;
     }
 
diff --git a/src/com/android/settings/display/BatteryPercentagePreferenceController.java b/src/com/android/settings/display/BatteryPercentagePreferenceController.java
index 448fb2b..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;
@@ -67,9 +67,11 @@
     @Override
     public void updateState(Preference preference) {
         int setting = Settings.System.getInt(mContext.getContentResolver(),
-                SHOW_BATTERY_PERCENT, 0);
+                SHOW_BATTERY_PERCENT,
+                mContext.getResources().getBoolean(
+                R.bool.config_defaultBatteryPercentageSetting) ? 1 : 0);
 
-        ((SwitchPreference) preference).setChecked(setting == 1);
+        ((TwoStatePreference) preference).setChecked(setting == 1);
     }
 
     @Override
@@ -77,7 +79,7 @@
         boolean showPercentage = (Boolean) newValue;
         Settings.System.putInt(mContext.getContentResolver(), SHOW_BATTERY_PERCENT,
                 showPercentage ? 1 : 0);
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .action(mContext, SettingsEnums.OPEN_BATTERY_PERCENTAGE, showPercentage);
         return true;
     }
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/ControlsPrivacyPreferenceController.java b/src/com/android/settings/display/ControlsPrivacyPreferenceController.java
index 5b5b900..b9a2bfa 100644
--- a/src/com/android/settings/display/ControlsPrivacyPreferenceController.java
+++ b/src/com/android/settings/display/ControlsPrivacyPreferenceController.java
@@ -88,7 +88,7 @@
     }
 
     private boolean isSecure() {
-        final LockPatternUtils utils = FeatureFactory.getFactory(mContext)
+        final LockPatternUtils utils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(mContext);
         final int userId = UserHandle.myUserId();
diff --git a/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java b/src/com/android/settings/display/DeviceStateAutoRotateSettingController.java
index beefc05..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;
@@ -67,7 +68,7 @@
     public DeviceStateAutoRotateSettingController(Context context, int deviceState,
             String deviceStateDescription, int order) {
         this(context, deviceState, deviceStateDescription, order,
-                FeatureFactory.getFactory(context).getMetricsFeatureProvider());
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider());
     }
 
     void init(Lifecycle lifecycle) {
@@ -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/FoldLockBehaviorPreferenceController.java b/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java
index 88e78e8..bee3a22 100644
--- a/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java
+++ b/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java
@@ -24,12 +24,13 @@
 import static com.android.settings.display.FoldLockBehaviorSettings.SETTING_VALUE_STAY_AWAKE_ON_FOLD;
 
 import android.content.Context;
-import android.content.res.Resources;
 import android.os.UserHandle;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
 
+import com.android.internal.foldables.FoldGracePeriodProvider;
+import com.android.internal.foldables.FoldLockSettingAvailabilityProvider;
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
@@ -45,28 +46,35 @@
  */
 public class FoldLockBehaviorPreferenceController extends BasePreferenceController {
 
-    private final Resources mResources;
-
-    private static Map<String, String> KEY_TO_TEXT = new HashMap<>();
+    private static final Map<String, String> KEY_TO_TEXT = new HashMap<>();
+    private final FoldLockSettingAvailabilityProvider mFoldLockSettingAvailabilityProvider;
 
     public FoldLockBehaviorPreferenceController(Context context, String key) {
-        this(context, key, context.getResources());
+        this(context, key, new FoldLockSettingAvailabilityProvider(context.getResources()));
     }
 
-    public FoldLockBehaviorPreferenceController(Context context, String key, Resources resources) {
+    public FoldLockBehaviorPreferenceController(Context context, String key,
+            FoldLockSettingAvailabilityProvider foldLockSettingAvailabilityProvider) {
         super(context, key);
-        mResources = resources;
+        mFoldLockSettingAvailabilityProvider = foldLockSettingAvailabilityProvider;
         KEY_TO_TEXT.put(SETTING_VALUE_STAY_AWAKE_ON_FOLD,
                 resourceToString(R.string.stay_awake_on_fold_title));
-        KEY_TO_TEXT.put(SETTING_VALUE_SELECTIVE_STAY_AWAKE,
-                resourceToString(R.string.selective_stay_awake_title));
+        if (new FoldGracePeriodProvider().isEnabled()) {
+            KEY_TO_TEXT.put(SETTING_VALUE_SELECTIVE_STAY_AWAKE,
+                    resourceToString(R.string.stay_awake_on_lockscreen_title));
+        } else {
+            KEY_TO_TEXT.put(SETTING_VALUE_SELECTIVE_STAY_AWAKE,
+                    resourceToString(R.string.selective_stay_awake_title));
+        }
         KEY_TO_TEXT.put(SETTING_VALUE_SLEEP_ON_FOLD,
                 resourceToString(R.string.sleep_on_fold_title));
     }
 
     @Override
     public int getAvailabilityStatus() {
-        return mResources.getBoolean(com.android.internal.R.bool.config_fold_lock_behavior)
+        boolean isFoldLockBehaviorAvailable =
+                mFoldLockSettingAvailabilityProvider.isFoldLockBehaviorAvailable();
+        return isFoldLockBehaviorAvailable
                 ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
diff --git a/src/com/android/settings/display/FoldLockBehaviorSettings.java b/src/com/android/settings/display/FoldLockBehaviorSettings.java
index beda52e..889a7dd 100644
--- a/src/com/android/settings/display/FoldLockBehaviorSettings.java
+++ b/src/com/android/settings/display/FoldLockBehaviorSettings.java
@@ -24,6 +24,7 @@
 import android.provider.Settings;
 import android.util.Log;
 
+import com.android.internal.foldables.FoldGracePeriodProvider;
 import com.android.settings.R;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settings.utils.CandidateInfoExtra;
@@ -48,18 +49,19 @@
     public static final String SETTING_VALUE_STAY_AWAKE_ON_FOLD = "stay_awake_on_fold_key";
     public static final String SETTING_VALUE_SELECTIVE_STAY_AWAKE = "selective_stay_awake_key";
     public static final String SETTING_VALUE_SLEEP_ON_FOLD = "sleep_on_fold_key";
-    private static final String SETTING_VALUE_DEFAULT = SETTING_VALUE_SELECTIVE_STAY_AWAKE;
     public static final String TAG = "FoldLockBehaviorSetting";
     public static final HashSet<String> SETTING_VALUES = new HashSet<>(
             Set.of(SETTING_VALUE_STAY_AWAKE_ON_FOLD, SETTING_VALUE_SELECTIVE_STAY_AWAKE,
                     SETTING_VALUE_SLEEP_ON_FOLD));
-
+    private static final String SETTING_VALUE_DEFAULT = SETTING_VALUE_SELECTIVE_STAY_AWAKE;
     private Context mContext;
+    private final FoldGracePeriodProvider mFoldGracePeriodProvider = new FoldGracePeriodProvider();
 
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
         mContext = context;
+        setIllustrationLottieAnimation(getDefaultKey());
     }
 
     @Override
@@ -69,10 +71,17 @@
                 resourceToString(R.string.stay_awake_on_fold_title),
                 resourceToString(R.string.stay_awake_on_fold_summary),
                 SETTING_VALUE_STAY_AWAKE_ON_FOLD, /* enabled */ true));
-        candidates.add(new CandidateInfoExtra(
-                resourceToString(R.string.selective_stay_awake_title),
-                resourceToString(R.string.selective_stay_awake_summary),
-                SETTING_VALUE_SELECTIVE_STAY_AWAKE, /* enabled */ true));
+        if (mFoldGracePeriodProvider.isEnabled()) {
+            candidates.add(new CandidateInfoExtra(
+                    resourceToString(R.string.stay_awake_on_lockscreen_title),
+                    resourceToString(R.string.stay_awake_on_lockscreen_summary),
+                    SETTING_VALUE_SELECTIVE_STAY_AWAKE, /* enabled */ true));
+        } else {
+            candidates.add(new CandidateInfoExtra(
+                    resourceToString(R.string.selective_stay_awake_title),
+                    resourceToString(R.string.selective_stay_awake_summary),
+                    SETTING_VALUE_SELECTIVE_STAY_AWAKE, /* enabled */ true));
+        }
         candidates.add(new CandidateInfoExtra(
                 resourceToString(R.string.sleep_on_fold_title),
                 resourceToString(R.string.sleep_on_fold_summary),
@@ -136,6 +145,36 @@
                 UserHandle.USER_CURRENT);
     }
 
+    @Override
+    protected void onSelectionPerformed(boolean success) {
+        if (success) {
+            setIllustrationLottieAnimation(getDefaultKey());
+            updateCandidates();
+        }
+    }
+
+    private void setIllustrationLottieAnimation(String foldSettingValue) {
+        switch (foldSettingValue) {
+            case SETTING_VALUE_STAY_AWAKE_ON_FOLD:
+                setIllustration(R.raw.fold_setting_stay_awake_on_fold_lottie,
+                        IllustrationType.LOTTIE_ANIMATION);
+                break;
+            case SETTING_VALUE_SELECTIVE_STAY_AWAKE:
+                if (mFoldGracePeriodProvider.isEnabled()) {
+                    setIllustration(R.raw.fold_setting_grace_period_selective_stay_awake_lottie,
+                            IllustrationType.LOTTIE_ANIMATION);
+                } else {
+                    setIllustration(R.raw.fold_setting_selective_stay_awake_lottie,
+                            IllustrationType.LOTTIE_ANIMATION);
+                }
+                break;
+            case SETTING_VALUE_SLEEP_ON_FOLD:
+                setIllustration(R.raw.fold_setting_sleep_on_fold_lottie,
+                        IllustrationType.LOTTIE_ANIMATION);
+                break;
+        }
+    }
+
     private String resourceToString(int resource) {
         return mContext.getText(resource).toString();
     }
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 d0d4822..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;
@@ -47,7 +47,7 @@
 
         mColorDisplayManager = context.getSystemService(ColorDisplayManager.class);
         mTimeFormatter = new NightDisplayTimeFormatter(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -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..17d763a 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -16,18 +16,21 @@
 
 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;
 import androidx.preference.PreferenceScreen;
 
+import com.android.server.display.feature.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -39,8 +42,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 +49,7 @@
 
     private final Handler mHandler;
     private final IDeviceConfigChange mOnDeviceConfigChange;
-    private final DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
+    private DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
     private Preference mPreference;
 
     private interface IDeviceConfigChange {
@@ -65,17 +66,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 = Math.round(findHighestRefreshRateForDefaultDisplay(context));
         Log.d(
                 TAG,
                 "DEFAULT_REFRESH_RATE : "
@@ -111,12 +102,15 @@
                         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 valueIfChecked = Flags.backUpSmoothDisplayAndForcePeakRefreshRate()
+                ? Float.POSITIVE_INFINITY : mPeakRefreshRate;
+        final float peakRefreshRate = isChecked ? valueIfChecked : DEFAULT_REFRESH_RATE;
         Log.d(TAG, "setChecked to : " + peakRefreshRate);
 
         return Settings.System.putFloat(
@@ -139,17 +133,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/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java
index daf1793..a2ad25f 100644
--- a/src/com/android/settings/display/ScreenResolutionFragment.java
+++ b/src/com/android/settings/display/ScreenResolutionFragment.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.display;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.res.Resources;
@@ -30,6 +29,7 @@
 import android.view.accessibility.AccessibilityEvent;
 import android.view.accessibility.AccessibilityManager;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
 
@@ -107,7 +107,8 @@
         final FooterPreference footerPreference = new FooterPreference(screen.getContext());
         footerPreference.setTitle(R.string.screen_resolution_footer);
         footerPreference.setSelectable(false);
-        footerPreference.setLayoutResource(R.layout.preference_footer);
+        footerPreference.setLayoutResource(
+                com.android.settingslib.widget.preference.footer.R.layout.preference_footer);
         screen.addPreference(footerPreference);
     }
 
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 8ca8e0e..1c99d5f 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -37,10 +37,12 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.support.actionbar.HelpResourceProvider;
 import com.android.settings.widget.RadioButtonPickerFragment;
+import com.android.settings.wifi.dpp.WifiDppUtils;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -55,13 +57,12 @@
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * Fragment that is used to control screen timeout.
- */
+/** Fragment that is used to control screen timeout. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements
-        HelpResourceProvider {
+public class ScreenTimeoutSettings extends RadioButtonPickerFragment
+        implements HelpResourceProvider {
     private static final String TAG = "ScreenTimeout";
+
     /** If there is no setting in the provider, use this. */
     public static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
 
@@ -72,25 +73,27 @@
     private FooterPreference mPrivacyPreference;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private SensorPrivacyManager mPrivacyManager;
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            mAdaptiveSleepBatterySaverPreferenceController.updateVisibility();
-            mAdaptiveSleepController.updatePreference();
-        }
-    };
+    private final BroadcastReceiver mReceiver =
+            new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    mAdaptiveSleepBatterySaverPreferenceController.updateVisibility();
+                    mAdaptiveSleepController.updatePreference();
+                }
+            };
 
     private DevicePolicyManager mDevicePolicyManager;
     private SensorPrivacyManager.OnSensorPrivacyChangedListener mPrivacyChangedListener;
+    private boolean mIsUserAuthenticated = false;
+
+    @VisibleForTesting Context mContext;
+
+    @VisibleForTesting RestrictedLockUtils.EnforcedAdmin mAdmin;
+
+    @VisibleForTesting FooterPreference mDisableOptionsPreference;
 
     @VisibleForTesting
-    Context mContext;
-
-    @VisibleForTesting
-    RestrictedLockUtils.EnforcedAdmin mAdmin;
-
-    @VisibleForTesting
-    FooterPreference mDisableOptionsPreference;
+    FooterPreference mPowerConsumptionPreference;
 
     @VisibleForTesting
     AdaptiveSleepPermissionPreferenceController mAdaptiveSleepPermissionController;
@@ -98,16 +101,14 @@
     @VisibleForTesting
     AdaptiveSleepCameraStatePreferenceController mAdaptiveSleepCameraStatePreferenceController;
 
-    @VisibleForTesting
-    AdaptiveSleepPreferenceController mAdaptiveSleepController;
+    @VisibleForTesting AdaptiveSleepPreferenceController mAdaptiveSleepController;
 
     @VisibleForTesting
     AdaptiveSleepBatterySaverPreferenceController mAdaptiveSleepBatterySaverPreferenceController;
 
     public ScreenTimeoutSettings() {
         super();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(getContext())
-                .getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -118,8 +119,8 @@
         mInitialEntries = getResources().getStringArray(R.array.screen_timeout_entries);
         mInitialValues = getResources().getStringArray(R.array.screen_timeout_values);
         mAdaptiveSleepController = new AdaptiveSleepPreferenceController(context);
-        mAdaptiveSleepPermissionController = new AdaptiveSleepPermissionPreferenceController(
-                context);
+        mAdaptiveSleepPermissionController =
+                new AdaptiveSleepPermissionPreferenceController(context);
         mAdaptiveSleepCameraStatePreferenceController =
                 new AdaptiveSleepCameraStatePreferenceController(context, getLifecycle());
         mAdaptiveSleepBatterySaverPreferenceController =
@@ -128,7 +129,8 @@
         mPrivacyPreference.setIcon(R.drawable.ic_privacy_shield_24dp);
         mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy);
         mPrivacyPreference.setSelectable(false);
-        mPrivacyPreference.setLayoutResource(R.layout.preference_footer);
+        mPrivacyPreference.setLayoutResource(
+                com.android.settingslib.widget.preference.footer.R.layout.preference_footer);
         mPrivacyManager = SensorPrivacyManager.getInstance(context);
         mPrivacyChangedListener = (sensor, enabled) -> mAdaptiveSleepController.updatePreference();
     }
@@ -140,8 +142,9 @@
         if (mInitialValues != null) {
             for (int i = 0; i < mInitialValues.length; ++i) {
                 if (Long.parseLong(mInitialValues[i].toString()) <= maxTimeout) {
-                    candidates.add(new TimeoutCandidateInfo(mInitialEntries[i],
-                            mInitialValues[i].toString(), true));
+                    candidates.add(
+                            new TimeoutCandidateInfo(
+                                    mInitialEntries[i], mInitialValues[i].toString(), true));
                 }
             }
         } else {
@@ -157,9 +160,10 @@
         mAdaptiveSleepCameraStatePreferenceController.updateVisibility();
         mAdaptiveSleepBatterySaverPreferenceController.updateVisibility();
         mAdaptiveSleepController.updatePreference();
-        mContext.registerReceiver(mReceiver,
-                new IntentFilter(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED));
+        mContext.registerReceiver(
+                mReceiver, new IntentFilter(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED));
         mPrivacyManager.addSensorPrivacyListener(CAMERA, mPrivacyChangedListener);
+        mIsUserAuthenticated = false;
     }
 
     @Override
@@ -181,19 +185,21 @@
         }
 
         for (CandidateInfo info : candidateList) {
-            SelectorWithWidgetPreference pref =
-                    new SelectorWithWidgetPreference(getPrefContext());
+            ProtectedSelectorWithWidgetPreference pref =
+                    new ProtectedSelectorWithWidgetPreference(
+                            getPrefContext(), info.getKey(), this);
             bindPreference(pref, info.getKey(), info, defaultKey);
             screen.addPreference(pref);
         }
 
-        final long selectedTimeout = Long.parseLong(defaultKey);
+        final long selectedTimeout = getTimeoutFromKey(defaultKey);
         final long maxTimeout = getMaxScreenTimeout(getContext());
         if (!candidateList.isEmpty() && (selectedTimeout > maxTimeout)) {
             // The selected time out value is longer than the max timeout allowed by the admin.
             // Select the largest value from the list by default.
-            final SelectorWithWidgetPreference preferenceWithLargestTimeout =
-                    (SelectorWithWidgetPreference) screen.getPreference(candidateList.size() - 1);
+            final ProtectedSelectorWithWidgetPreference preferenceWithLargestTimeout =
+                    (ProtectedSelectorWithWidgetPreference)
+                            screen.getPreference(candidateList.size() - 1);
             preferenceWithLargestTimeout.setChecked(true);
         }
 
@@ -201,7 +207,8 @@
         mPrivacyPreference.setIcon(R.drawable.ic_privacy_shield_24dp);
         mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy);
         mPrivacyPreference.setSelectable(false);
-        mPrivacyPreference.setLayoutResource(R.layout.preference_footer);
+        mPrivacyPreference.setLayoutResource(
+                com.android.settingslib.widget.preference.footer.R.layout.preference_footer);
 
         if (isScreenAttentionAvailable(getContext())) {
             mAdaptiveSleepPermissionController.addToScreen(screen);
@@ -214,28 +221,57 @@
         if (mAdmin != null) {
             setupDisabledFooterPreference();
             screen.addPreference(mDisableOptionsPreference);
+        } else {
+            setupPowerConsumptionFooterPreference();
+            screen.addPreference(mPowerConsumptionPreference);
         }
     }
 
+    boolean isUserAuthenticated() {
+        return mIsUserAuthenticated;
+    }
+
+    void setUserAuthenticated(boolean isUserAuthenticated) {
+        mIsUserAuthenticated = isUserAuthenticated;
+    }
+
     @VisibleForTesting
     void setupDisabledFooterPreference() {
-        final String textDisabledByAdmin = mDevicePolicyManager.getResources().getString(
-                OTHER_OPTIONS_DISABLED_BY_ADMIN, () -> getResources().getString(
-                        R.string.admin_disabled_other_options));
+        final String textDisabledByAdmin =
+                mDevicePolicyManager
+                        .getResources()
+                        .getString(
+                                OTHER_OPTIONS_DISABLED_BY_ADMIN,
+                                () ->
+                                        getResources()
+                                                .getString(R.string.admin_disabled_other_options));
         final String textMoreDetails = getResources().getString(R.string.admin_more_details);
 
         mDisableOptionsPreference = new FooterPreference(getContext());
         mDisableOptionsPreference.setTitle(textDisabledByAdmin);
         mDisableOptionsPreference.setSelectable(false);
         mDisableOptionsPreference.setLearnMoreText(textMoreDetails);
-        mDisableOptionsPreference.setLearnMoreAction(v -> {
-            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), mAdmin);
-        });
+        mDisableOptionsPreference.setLearnMoreAction(
+                v -> {
+                    RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), mAdmin);
+                });
         mDisableOptionsPreference.setIcon(R.drawable.ic_info_outline_24dp);
 
         // The 'disabled by admin' preference should always be at the end of the setting page.
-        mDisableOptionsPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
         mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
+        mDisableOptionsPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
+    }
+
+    @VisibleForTesting
+    void setupPowerConsumptionFooterPreference() {
+        mPowerConsumptionPreference = new FooterPreference(getContext());
+        mPowerConsumptionPreference.setTitle(R.string.power_consumption_footer_summary);
+        mPowerConsumptionPreference.setSelectable(false);
+        mPowerConsumptionPreference.setIcon(R.drawable.ic_info_outline_24dp);
+
+        // The 'Longer screen timeout' preference should always be at the end of the setting page.
+        mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
+        mPowerConsumptionPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
     }
 
     @Override
@@ -283,17 +319,20 @@
         if (context == null) {
             return Long.toString(FALLBACK_SCREEN_TIMEOUT_VALUE);
         } else {
-            return Long.toString(Settings.System.getLong(context.getContentResolver(),
-                    SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE));
+            return Long.toString(
+                    Settings.System.getLong(
+                            context.getContentResolver(),
+                            SCREEN_OFF_TIMEOUT,
+                            FALLBACK_SCREEN_TIMEOUT_VALUE));
         }
     }
 
     private void setCurrentSystemScreenTimeout(Context context, String key) {
         try {
             if (context != null) {
-                final long value = Long.parseLong(key);
-                mMetricsFeatureProvider.action(context, SettingsEnums.ACTION_SCREEN_TIMEOUT_CHANGED,
-                        (int) value);
+                final long value = getTimeoutFromKey(key);
+                mMetricsFeatureProvider.action(
+                        context, SettingsEnums.ACTION_SCREEN_TIMEOUT_CHANGED, (int) value);
                 Settings.System.putLong(context.getContentResolver(), SCREEN_OFF_TIMEOUT, value);
             }
         } catch (NumberFormatException e) {
@@ -305,7 +344,12 @@
         return AdaptiveSleepPreferenceController.isAdaptiveSleepSupported(context);
     }
 
-    private static class TimeoutCandidateInfo extends CandidateInfo {
+    private static long getTimeoutFromKey(String key) {
+        return Long.parseLong(key);
+    }
+
+    @VisibleForTesting
+    static class TimeoutCandidateInfo extends CandidateInfo {
         private final CharSequence mLabel;
         private final String mKey;
 
@@ -331,10 +375,42 @@
         }
     }
 
+    @VisibleForTesting
+    static class ProtectedSelectorWithWidgetPreference
+            extends SelectorWithWidgetPreference {
+
+        private final long mTimeoutMs;
+        private final ScreenTimeoutSettings mScreenTimeoutSettings;
+
+        ProtectedSelectorWithWidgetPreference(
+                Context context, String key, ScreenTimeoutSettings screenTimeoutSettings) {
+            super(context);
+            mTimeoutMs = getTimeoutFromKey(key);
+            mScreenTimeoutSettings = screenTimeoutSettings;
+        }
+
+        @Override
+        public void onClick() {
+            if (Flags.protectScreenTimeoutWithAuth()
+                    && !mScreenTimeoutSettings.isUserAuthenticated()
+                    && !isChecked()
+                    && mTimeoutMs > getTimeoutFromKey(mScreenTimeoutSettings.getDefaultKey())) {
+                WifiDppUtils.showLockScreen(
+                        getContext(),
+                        () -> {
+                            mScreenTimeoutSettings.setUserAuthenticated(true);
+                            super.onClick();
+                        });
+            } else {
+                super.onClick();
+            }
+        }
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.screen_timeout_settings) {
-                public List<SearchIndexableRaw> getRawDataToIndex(Context context,
-                        boolean enabled) {
+                public List<SearchIndexableRaw> getRawDataToIndex(
+                        Context context, boolean enabled) {
                     if (!isScreenAttentionAvailable(context)) {
                         return null;
                     }
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/SmartAutoRotateController.java b/src/com/android/settings/display/SmartAutoRotateController.java
index 768a6c1..b5e3af2 100644
--- a/src/com/android/settings/display/SmartAutoRotateController.java
+++ b/src/com/android/settings/display/SmartAutoRotateController.java
@@ -81,7 +81,7 @@
 
     public SmartAutoRotateController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mPrivacyManager = SensorPrivacyManager.getInstance(context);
         mPowerManager = context.getSystemService(PowerManager.class);
         mDeviceStateAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(
diff --git a/src/com/android/settings/display/SmartAutoRotatePreferenceController.java b/src/com/android/settings/display/SmartAutoRotatePreferenceController.java
index 3747f06..a5c15b6 100644
--- a/src/com/android/settings/display/SmartAutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/SmartAutoRotatePreferenceController.java
@@ -79,7 +79,7 @@
         super(context, preferenceKey);
         mPrivacyManager = SensorPrivacyManager.getInstance(context);
         mPowerManager = context.getSystemService(PowerManager.class);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
@@ -169,7 +169,8 @@
         final boolean isLocked = !isChecked;
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ROTATION_LOCK,
                 isLocked);
-        RotationPolicy.setRotationLock(mContext, isLocked);
+        RotationPolicy.setRotationLock(mContext, isLocked,
+                /* caller= */ "SmartAutoRotatePreferenceController#setChecked");
         return true;
     }
 
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/ThemePreferenceController.java b/src/com/android/settings/display/ThemePreferenceController.java
index 1dbf87f..25c6b69 100644
--- a/src/com/android/settings/display/ThemePreferenceController.java
+++ b/src/com/android/settings/display/ThemePreferenceController.java
@@ -59,7 +59,7 @@
         super(context);
         mOverlayService = overlayManager;
         mPackageManager = context.getPackageManager();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/display/TwilightLocationPreferenceController.java b/src/com/android/settings/display/TwilightLocationPreferenceController.java
index af93047..9e35fc6 100644
--- a/src/com/android/settings/display/TwilightLocationPreferenceController.java
+++ b/src/com/android/settings/display/TwilightLocationPreferenceController.java
@@ -39,7 +39,7 @@
     public TwilightLocationPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mLocationManager = context.getSystemService(LocationManager.class);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/display/WalletPrivacyPreferenceController.java b/src/com/android/settings/display/WalletPrivacyPreferenceController.java
index f40e838..77fa079 100644
--- a/src/com/android/settings/display/WalletPrivacyPreferenceController.java
+++ b/src/com/android/settings/display/WalletPrivacyPreferenceController.java
@@ -89,7 +89,7 @@
     }
 
     private boolean isSecure() {
-        final LockPatternUtils utils = FeatureFactory.getFactory(mContext)
+        final LockPatternUtils utils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(mContext);
         int userId = UserHandle.myUserId();
diff --git a/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java b/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceController.java
index 66ab2d3..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;
@@ -47,7 +47,7 @@
         super(context, preferenceKey);
         mUiModeManager = context.getSystemService(UiModeManager.class);
         mFormat = new TimeFormatter(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     public DarkModeActivationPreferenceController(Context context, String preferenceKey,
@@ -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/DreamPickerController.java b/src/com/android/settings/dream/DreamPickerController.java
index d7003e6..3eb1fb1 100644
--- a/src/com/android/settings/dream/DreamPickerController.java
+++ b/src/com/android/settings/dream/DreamPickerController.java
@@ -61,7 +61,7 @@
         mBackend = backend;
         mDreamInfos = mBackend.getDreamInfos();
         mActiveDream = getActiveDreamInfo(mDreamInfos);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java
index 824aa15..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";
@@ -224,9 +224,6 @@
         mPreviewButton.setOnClickListener(v -> dreamBackend.preview(dreamBackend.getActiveDream()));
 
         mRecyclerView = super.onCreateRecyclerView(inflater, parent, bundle);
-        // The enable/disable status change of the nested RecyclerView(Dream Picker) causes the
-        // focus moving. Make the RecyclerView unfocusable to prevent the unexpected scrolling when
-        // the focus changes in the TalkBack mode.
         mRecyclerView.setFocusable(false);
         updatePaddingForPreviewButton();
         return mRecyclerView;
@@ -249,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/emergency/MoreSettingsPreferenceController.java b/src/com/android/settings/emergency/MoreSettingsPreferenceController.java
index d945b21..4771f5a 100644
--- a/src/com/android/settings/emergency/MoreSettingsPreferenceController.java
+++ b/src/com/android/settings/emergency/MoreSettingsPreferenceController.java
@@ -111,7 +111,7 @@
 
     @Override
     public void onClick(View v) {
-        FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .logClickedPreference(mPreference, getMetricsCategory());
         final Intent intent = new Intent(mIntent)
                 .addCategory(Intent.CATEGORY_LAUNCHER)
diff --git a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
index 2376c80..9fc51ac 100644
--- a/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
+++ b/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelper.java
@@ -18,12 +18,12 @@
 
 import static android.app.admin.DevicePolicyResources.Strings.Settings.DISABLED_BY_IT_ADMIN_TITLE;
 
-import android.annotation.NonNull;
 import android.annotation.UserIdInt;
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.os.Process;
 import android.os.UserHandle;
 import android.view.LayoutInflater;
@@ -32,6 +32,7 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 
@@ -88,10 +89,11 @@
 
     public AlertDialog.Builder prepareDialogBuilder(String restriction,
             EnforcedAdmin enforcedAdmin) {
+        DialogInterface.OnClickListener listener = mActionDisabledByAdminController
+                .getPositiveButtonListener(mActivity, enforcedAdmin);
         AlertDialog.Builder builder = new AlertDialog.Builder(mActivity)
-                .setPositiveButton(R.string.suggestion_button_close,
-                        mActionDisabledByAdminController
-                                .getPositiveButtonListener(mActivity, enforcedAdmin))
+                .setPositiveButton(listener == null
+                        ? R.string.suggestion_button_close : R.string.okay, listener)
                 .setView(mDialogView);
         prepareDialogBuilder(builder, restriction, enforcedAdmin);
         return builder;
diff --git a/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
index cf1b8a3..bdbdce9 100644
--- a/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/AdminActionPreferenceControllerBase.java
@@ -36,8 +36,8 @@
 
     public AdminActionPreferenceControllerBase(Context context) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
     }
 
     protected abstract Date getAdminActionTimestamp();
diff --git a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
index 65ee5e0..de14689 100644
--- a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
@@ -38,8 +38,8 @@
             String[] permissions) {
         super(context);
         mPermissions = permissions;
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getApplicationFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getApplicationFeatureProvider();
         mAsync = async;
         mHasApps = false;
     }
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
index f1f9a61..b602791 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
@@ -35,8 +35,8 @@
 
     public AlwaysOnVpnCurrentUserPreferenceController(Context context) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
         mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
     }
 
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
index a23af0c..c545a28 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
@@ -27,8 +27,8 @@
 
     public AlwaysOnVpnManagedProfilePreferenceController(Context context) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/enterprise/ApplicationListFragment.java b/src/com/android/settings/enterprise/ApplicationListFragment.java
index 38a5c6f..10707ba 100644
--- a/src/com/android/settings/enterprise/ApplicationListFragment.java
+++ b/src/com/android/settings/enterprise/ApplicationListFragment.java
@@ -79,7 +79,7 @@
         @Override
         public void buildApplicationList(Context context,
                 ApplicationFeatureProvider.ListOfAppsCallback callback) {
-            FeatureFactory.getFactory(context).getApplicationFeatureProvider(context)
+            FeatureFactory.getFeatureFactory().getApplicationFeatureProvider()
                     .listAppsWithAdminGrantedPermissions(mPermissions, callback);
         }
 
@@ -120,8 +120,8 @@
         @Override
         public void buildApplicationList(Context context,
                 ApplicationFeatureProvider.ListOfAppsCallback callback) {
-            FeatureFactory.getFactory(context).getApplicationFeatureProvider(context).
-                    listPolicyInstalledApps(callback);
+            FeatureFactory.getFeatureFactory()
+                    .getApplicationFeatureProvider().listPolicyInstalledApps(callback);
         }
     }
 }
diff --git a/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java b/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java
index 936df25..2e87cb9 100644
--- a/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/CaCertsPreferenceControllerBase.java
@@ -31,8 +31,8 @@
 
     public CaCertsPreferenceControllerBase(Context context) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
index 91ebeff..141116f 100644
--- a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
@@ -34,8 +34,8 @@
 
     public EnterpriseInstalledPackagesPreferenceController(Context context, boolean async) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getApplicationFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getApplicationFeatureProvider();
         mAsync = async;
     }
 
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
index a154ded..da1cb45 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
@@ -168,8 +168,8 @@
     }
 
     public static boolean isPageEnabled(Context context) {
-        return FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context)
+        return FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider()
                 .hasDeviceOwner();
     }
 
diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java
index 3e83523..d72cd8f 100644
--- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceController.java
@@ -69,10 +69,10 @@
         super(context);
         mPm = packageManager;
         mParent = parent;
-        final FeatureFactory factory = FeatureFactory.getFactory(context);
-        mApplicationFeatureProvider = factory.getApplicationFeatureProvider(context);
-        mEnterprisePrivacyFeatureProvider = factory.getEnterprisePrivacyFeatureProvider(context);
-        mUserFeatureProvider = factory.getUserFeatureProvider(context);
+        final FeatureFactory factory = FeatureFactory.getFeatureFactory();
+        mApplicationFeatureProvider = factory.getApplicationFeatureProvider();
+        mEnterprisePrivacyFeatureProvider = factory.getEnterprisePrivacyFeatureProvider();
+        mUserFeatureProvider = factory.getUserFeatureProvider();
         buildAppList();
     }
 
@@ -137,11 +137,13 @@
                 if (userInfo.isManagedProfile()) {
                     category.setTitle(devicePolicyManager.getResources().getString(
                             WORK_CATEGORY_HEADER,
-                            () -> mContext.getString(R.string.category_work)));
+                            () -> mContext.getString(
+                                    com.android.settingslib.R.string.category_work)));
                 } else {
                     category.setTitle(devicePolicyManager.getResources().getString(
                             PERSONAL_CATEGORY_HEADER,
-                            () -> mContext.getString(R.string.category_personal)));
+                            () -> mContext.getString(
+                                    com.android.settingslib.R.string.category_personal)));
                 }
                 category.setOrder(i);
                 createPreferences(prefContext, category, mApps.get(i));
diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
index 32abcc4..72a06fe 100644
--- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
@@ -37,9 +37,9 @@
 
     public EnterpriseSetDefaultAppsPreferenceController(Context context) {
         super(context);
-        final FeatureFactory factory = FeatureFactory.getFactory(context);
-        mApplicationFeatureProvider = factory.getApplicationFeatureProvider(context);
-        mUserFeatureProvider = factory.getUserFeatureProvider(context);
+        final FeatureFactory factory = FeatureFactory.getFeatureFactory();
+        mApplicationFeatureProvider = factory.getApplicationFeatureProvider();
+        mUserFeatureProvider = factory.getUserFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
index f008b18..6bade7c 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
@@ -31,8 +31,8 @@
 
     public FailedPasswordWipePreferenceControllerBase(Context context) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
     }
 
     protected abstract int getMaximumFailedPasswordsBeforeWipe();
diff --git a/src/com/android/settings/enterprise/ImePreferenceController.java b/src/com/android/settings/enterprise/ImePreferenceController.java
index 2adf52c..ae47d21 100644
--- a/src/com/android/settings/enterprise/ImePreferenceController.java
+++ b/src/com/android/settings/enterprise/ImePreferenceController.java
@@ -34,8 +34,8 @@
 
     public ImePreferenceController(Context context) {
         super(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java b/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java
index 90a1a1e..4b301d5 100644
--- a/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java
+++ b/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceController.java
@@ -31,8 +31,8 @@
 
     public ManageDeviceAdminPreferenceController(Context context, String key) {
         super(context, key);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
         mDevicePolicyManager =
                 mContext.getSystemService(DevicePolicyManager.class);
     }
diff --git a/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java b/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java
index e582fb0..e54fbcb 100644
--- a/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java
+++ b/src/com/android/settings/enterprise/PrivacyPreferenceControllerHelper.java
@@ -39,8 +39,8 @@
 
     PrivacyPreferenceControllerHelper(Context context) {
         mContext = Objects.requireNonNull(context);
-        mFeatureProvider = FeatureFactory.getFactory(context)
-                .getEnterprisePrivacyFeatureProvider(context);
+        mFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getEnterprisePrivacyFeatureProvider();
         mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
     }
 
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index d38dede..3df6b1a 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,21 +61,24 @@
 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";
     public static final String EXTRA_FOREGROUND_TIME = "extra_foreground_time";
     public static final String EXTRA_BACKGROUND_TIME = "extra_background_time";
     public static final String EXTRA_SCREEN_ON_TIME = "extra_screen_on_time";
+    public static final String EXTRA_ANOMALY_HINT_PREF_KEY = "extra_anomaly_hint_pref_key";
+    public static final String EXTRA_ANOMALY_HINT_TEXT = "extra_anomaly_hint_text";
+    public static final String EXTRA_SHOW_TIME_INFO = "extra_show_time_info";
     public static final String EXTRA_SLOT_TIME = "extra_slot_time";
     public static final String EXTRA_LABEL = "extra_label";
     public static final String EXTRA_ICON_ID = "extra_icon_id";
@@ -82,44 +86,27 @@
     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 {
@@ -127,29 +114,28 @@
         private String mPackageName;
         private String mAppLabel;
         private String mSlotInformation;
+        private String mAnomalyHintText;
+        private String mAnomalyHintPrefKey;
         private int mUid;
         private int mIconId;
         private int mConsumedPower;
         private long mForegroundTimeMs;
         private long mBackgroundTimeMs;
         private long mScreenOnTimeMs;
+        private boolean mShowTimeInformation;
         private boolean mIsUserEntry;
     }
 
-    /** Launches battery details page for an individual battery consumer. */
-    public static void startBatteryDetailPage(
-            Activity caller, InstrumentedPreferenceFragment fragment,
-            BatteryDiffEntry diffEntry, String usagePercent, String slotInformation) {
-        startBatteryDetailPage(
-                caller, fragment.getMetricsCategory(), diffEntry, usagePercent, slotInformation,
-                /*showTimeInformation=*/ true);
-    }
-
     /** 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) {
+            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;
@@ -159,18 +145,25 @@
         launchArgs.mUid = (int) diffEntry.mUid;
         launchArgs.mIconId = diffEntry.getAppIconId();
         launchArgs.mConsumedPower = (int) diffEntry.mConsumePower;
-        if (showTimeInformation) {
+        launchArgs.mShowTimeInformation = showTimeInformation;
+        if (launchArgs.mShowTimeInformation) {
             launchArgs.mForegroundTimeMs = diffEntry.mForegroundUsageTimeInMs;
-            launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs;
+            launchArgs.mBackgroundTimeMs =
+                    diffEntry.mBackgroundUsageTimeInMs + diffEntry.mForegroundServiceUsageTimeInMs;
             launchArgs.mScreenOnTimeMs = diffEntry.mScreenOnTimeInMs;
+            launchArgs.mAnomalyHintPrefKey = anomalyHintPrefKey;
+            launchArgs.mAnomalyHintText = anomalyHintText;
         }
         launchArgs.mIsUserEntry = isUserConsumer(diffEntry.mConsumerType);
         startBatteryDetailPage(context, sourceMetricsCategory, launchArgs);
     }
 
     /** 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;
@@ -180,6 +173,7 @@
         launchArgs.mIconId = entry.mIconId;
         launchArgs.mConsumedPower = (int) entry.getConsumedPower();
         launchArgs.mIsUserEntry = entry.isUserEntry();
+        launchArgs.mShowTimeInformation = false;
         startBatteryDetailPage(caller, fragment.getMetricsCategory(), launchArgs);
     }
 
@@ -203,8 +197,13 @@
         args.putString(EXTRA_SLOT_TIME, launchArgs.mSlotInformation);
         args.putString(EXTRA_POWER_USAGE_PERCENT, launchArgs.mUsagePercent);
         args.putInt(EXTRA_POWER_USAGE_AMOUNT, launchArgs.mConsumedPower);
-        final int userId = launchArgs.mIsUserEntry ? ActivityManager.getCurrentUser()
-            : UserHandle.getUserId(launchArgs.mUid);
+        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);
 
         new SubSettingLauncher(context)
                 .setDestination(AdvancedPowerUsageDetail.class.getName())
@@ -215,11 +214,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();
@@ -252,7 +251,7 @@
         super.onCreate(icicle);
 
         final String packageName = getArguments().getString(EXTRA_PACKAGE_NAME);
-        onCreateForTriState(packageName);
+        onCreateBackgroundUsageState(packageName);
         mHeaderPreference = findPreference(KEY_PREF_HEADER);
 
         if (packageName != null) {
@@ -266,16 +265,19 @@
 
         initHeader();
         mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
-        initPreferenceForTriState(getContext());
-        mExecutor.execute(() -> {
-            String packageName =
-                    getLoggingPackageName(getContext(), mBatteryOptimizeUtils.getPackageName());
-            FeatureFactory.getFactory(getContext()).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);
     }
 
@@ -283,28 +285,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();
         }
     }
@@ -314,11 +316,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)
-                .setRecyclerView(getListView(), getSettingsLifecycle())
-                .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));
@@ -336,38 +338,45 @@
             controller.setIsInstantApp(AppUtils.isInstant(mAppEntry.info));
         }
 
-        controller.setSummary(getHeaderSummary(bundle));
-        controller.done(context, true /* rebindActions */);
+        if (mPowerUsageTimeController != null) {
+            final String slotTime = bundle.getString(EXTRA_SLOT_TIME);
+            final long screenOnTimeInMs = bundle.getLong(EXTRA_SCREEN_ON_TIME);
+            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);
+        }
+        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
@@ -392,13 +401,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;
     }
@@ -419,97 +436,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.getFactory(getContext()).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.LEAVE_APP_BATTERY_USAGE,
+                                    /* action */ finalMetricCategory,
+                                    /* pageId */ SettingsEnums.FUELGAUGE_POWER_USAGE_DETAIL,
+                                    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 CharSequence getHeaderSummary(Bundle bundle) {
-        final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
-        final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
-        final long screenOnTimeInMs = bundle.getLong(EXTRA_SCREEN_ON_TIME);
-        final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
-        final String usageSummary = BatteryUtils.buildBatteryUsageTimeSummary(getContext(),
-                /* isSystem= */ false, foregroundTimeMs, backgroundTimeMs, screenOnTimeInMs);
-
-        if (usageSummary.isEmpty()) {
-            return getText(R.string.battery_usage_without_time);
-        } else {
-            CharSequence slotSummary = slotTime == null
-                    ? getText(R.string.battery_usage_since_last_full_charge) : slotTime;
-            return String.format("%s\n(%s)", usageSummary, slotSummary);
-        }
-    }
-
-    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..52cec795
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.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.fuelgauge;
+
+import android.content.Context;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.widget.MainSwitchPreference;
+
+/** Controller to update the app background usage state */
+public class AllowBackgroundPreferenceController extends AbstractPreferenceController
+        implements PreferenceControllerMixin {
+
+    private static final String TAG = "AllowBackgroundPreferenceController";
+
+    @VisibleForTesting static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+
+    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
+
+    public AllowBackgroundPreferenceController(Context context, int uid, String packageName) {
+        super(context);
+        mBatteryOptimizeUtils = new BatteryOptimizeUtils(context, uid, packageName);
+    }
+
+    private void setChecked(Preference preference, boolean checked) {
+        if (preference instanceof PrimarySwitchPreference) {
+            ((PrimarySwitchPreference) preference).setChecked(checked);
+        } else if (preference instanceof MainSwitchPreference) {
+            ((MainSwitchPreference) preference).setChecked(checked);
+        }
+    }
+
+    private void setEnabled(Preference preference, boolean enabled) {
+        if (preference instanceof PrimarySwitchPreference) {
+            ((PrimarySwitchPreference) preference).setEnabled(enabled);
+            ((PrimarySwitchPreference) preference).setSwitchEnabled(enabled);
+        } else if (preference instanceof MainSwitchPreference) {
+            ((MainSwitchPreference) preference).setEnabled(enabled);
+        }
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        setEnabled(preference, mBatteryOptimizeUtils.isOptimizeModeMutable());
+
+        final boolean isAllowBackground =
+                mBatteryOptimizeUtils.getAppOptimizationMode()
+                        != BatteryOptimizeUtils.MODE_RESTRICTED;
+        setChecked(preference, isAllowBackground);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ALLOW_BACKGROUND_USAGE;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        return getPreferenceKey().equals(preference.getKey());
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java b/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java
index 26fd398..318f230 100644
--- a/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AutoRestrictionPreferenceController.java
@@ -19,25 +19,23 @@
 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;
-    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
+    private final PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
     public AutoRestrictionPreferenceController(Context context) {
         super(context, KEY_SMART_BATTERY);
-        mPowerUsageFeatureProvider = FeatureFactory.getFactory(
-                context).getPowerUsageFeatureProvider(context);
+        mPowerUsageFeatureProvider =
+                FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
     }
 
     @Override
@@ -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..969bf63 100644
--- a/src/com/android/settings/fuelgauge/BatteryActiveView.java
+++ b/src/com/android/settings/fuelgauge/BatteryActiveView.java
@@ -14,7 +14,6 @@
 
 package com.android.settings.fuelgauge;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.Paint;
@@ -22,6 +21,8 @@
 import android.util.SparseIntArray;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+
 public class BatteryActiveView extends View {
 
     private final Paint mPaint = new Paint();
@@ -63,13 +64,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 50f1b90..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;
@@ -111,8 +107,8 @@
         writeBackupData(data, KEY_BUILD_MANUFACTURER, Build.MANUFACTURER);
         writeBackupData(data, KEY_BUILD_FINGERPRINT, Build.FINGERPRINT);
         // Add customized device build metadata fields.
-        final PowerUsageFeatureProvider provider = FeatureFactory.getFactory(mContext)
-                .getPowerUsageFeatureProvider(mContext);
+        final PowerUsageFeatureProvider provider =
+                FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
         writeBackupData(data, KEY_BUILD_METADATA_1, provider.getBuildMetadata1(mContext));
         writeBackupData(data, KEY_BUILD_METADATA_2, provider.getBuildMetadata2(mContext));
 
@@ -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;
     }
 
@@ -260,15 +267,15 @@
         if (mOptimizationModeBytes == null || mOptimizationModeBytes.length == 0) {
             return;
         }
-        final PowerUsageFeatureProvider provider = FeatureFactory.getFactory(mContext)
-                .getPowerUsageFeatureProvider(mContext);
+        final PowerUsageFeatureProvider provider =
+                FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
         if (!provider.isValidToRestoreOptimizationMode(mDeviceBuildInfoMap)) {
             return;
         }
         // 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 c910e69..6a65dc0 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -15,10 +15,8 @@
 
 package com.android.settings.fuelgauge;
 
-import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
 import android.icu.text.NumberFormat;
 import android.os.BatteryManager;
 import android.os.PowerManager;
@@ -26,7 +24,6 @@
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
-import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
@@ -34,53 +31,28 @@
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.Utils;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
 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, LifecycleObserver, OnStart,
-        BatteryPreferenceController {
+        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 Activity mActivity;
-    private PreferenceFragmentCompat mHost;
-    private Lifecycle mLifecycle;
     private BatteryTip mBatteryTip;
     private final PowerManager mPowerManager;
 
     public BatteryHeaderPreferenceController(Context context, String key) {
         super(context, key);
         mPowerManager = context.getSystemService(PowerManager.class);
-        mBatteryStatusFeatureProvider = FeatureFactory.getFactory(context)
-                .getBatteryStatusFeatureProvider(context);
-    }
-
-    public void setActivity(Activity activity) {
-        mActivity = activity;
-    }
-
-    public void setFragment(PreferenceFragmentCompat fragment) {
-        mHost = fragment;
-    }
-
-    public void setLifecycle(Lifecycle lifecycle) {
-        mLifecycle = lifecycle;
+        mBatteryStatusFeatureProvider =
+                FeatureFactory.getFeatureFactory().getBatteryStatusFeatureProvider();
     }
 
     @Override
@@ -103,17 +75,13 @@
         return AVAILABLE_UNSEARCHABLE;
     }
 
-    @Override
-    public void onStart() {
-        EntityHeaderController.newInstance(mActivity, mHost, null /* header view */)
-                .setRecyclerView(mHost.getListView(), mLifecycle);
-    }
-
     private CharSequence generateLabel(BatteryInfo info) {
         if (Utils.containsIncompatibleChargers(mContext, TAG)) {
-            return mContext.getString(R.string.battery_info_status_not_charging);
+            return mContext.getString(
+                    com.android.settingslib.R.string.battery_info_status_not_charging);
         } else if (BatteryUtils.isBatteryDefenderOn(info)) {
-            return null;
+            return mContext.getString(
+                    com.android.settingslib.R.string.battery_info_status_charging_on_hold);
         } else if (info.remainingLabel == null
                 || info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
             // Present status only if no remaining time or status anomalous
@@ -124,12 +92,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(
@@ -150,9 +117,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);
@@ -160,8 +125,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;
@@ -170,9 +135,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;
 
@@ -182,7 +145,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 27d7154..ea8ef8d 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -24,6 +24,7 @@
 import android.os.BatteryStatsManager;
 import android.os.BatteryUsageStats;
 import android.os.SystemClock;
+import android.provider.Settings;
 import android.text.format.Formatter;
 import android.util.Log;
 import android.util.SparseIntArray;
@@ -33,7 +34,6 @@
 import androidx.annotation.WorkerThread;
 
 import com.android.internal.os.BatteryStatsHistoryIterator;
-import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.UsageView;
@@ -68,87 +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.getFactory(context)
-                            .getPowerUsageFeatureProvider(context);
-                    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(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(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);
     }
 
-    public static void getBatteryInfo(final Context context, final Callback callback,
+    static long getSettingsChargeTimeRemaining(final Context context) {
+        return Settings.Global.getLong(
+                context.getContentResolver(),
+                com.android.settingslib.fuelgauge.BatteryUtils.GLOBAL_TIME_TO_FULL_MILLIS,
+                -1);
+    }
+
+    /** Gets battery info */
+    public static void getBatteryInfo(
+            final Context context,
+            final Callback callback,
             @Nullable final BatteryUsageStats batteryUsageStats,
             boolean shortString) {
         new AsyncTask<Void, Void, BatteryInfo>() {
@@ -160,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);
@@ -169,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();
@@ -190,66 +213,89 @@
         }.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.getFactory(context).getPowerUsageFeatureProvider(context);
-        final long elapsedRealtimeUs =
-                PowerUtil.convertMsToUs(SystemClock.elapsedRealtime());
+                FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
+        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;
 
-        if (discharging && provider != null
-                && provider.isEnhancedBatteryPredictionEnabled(context)) {
+        if (discharging && provider.isEnhancedBatteryPredictionEnabled(context)) {
             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);
@@ -257,78 +303,111 @@
         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();
-        final int status = batteryBroadcast.getIntExtra(BatteryManager.EXTRA_STATUS,
-                BatteryManager.BATTERY_STATUS_UNKNOWN);
+        if (getSettingsChargeTimeRemaining(context) != chargeTimeMs) {
+            Settings.Global.putLong(
+                    context.getContentResolver(),
+                    com.android.settingslib.fuelgauge.BatteryUtils.GLOBAL_TIME_TO_FULL_MILLIS,
+                    chargeTimeMs);
+        }
+
+        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 = R.string.power_charging_limited;
+            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 */);
-            int resId = R.string.power_charging_duration;
-            info.remainingLabel = chargeTimeMs <= 0 ? null : context.getString(
-                    R.string.power_remaining_charging_duration_only, timeString);
-            info.chargeLabel = chargeTimeMs <= 0 ? info.batteryPercentString
-                    : context.getString(resId, info.batteryPercentString, timeString);
+            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);
         } else if (dockDefenderMode == BatteryUtils.DockDefenderMode.FUTURE_BYPASS) {
             // Dock defender will be triggered in the future, charging will be optimized.
-            info.chargeLabel = context.getString(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(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;
@@ -347,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;
@@ -370,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
@@ -433,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 4a0dc1d..a041a31 100644
--- a/src/com/android/settings/fuelgauge/BatteryMeterView.java
+++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java
@@ -16,12 +16,12 @@
 
 package com.android.settings.fuelgauge;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.ColorFilter;
 import android.util.AttributeSet;
 import android.widget.ImageView;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
@@ -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);
@@ -49,13 +45,17 @@
     public BatteryMeterView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
 
-        final int frameColor = context.getColor(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));
+        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));
         mDrawable = new BatteryMeterDrawable(context, frameColor);
         mDrawable.setColorFilter(mAccentColorFilter);
         setImageDrawable(mDrawable);
@@ -107,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..dc4aade 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 {}
 
@@ -106,16 +112,37 @@
 
     /** Gets the {@link OptimizationMode} for associated app. */
     @OptimizationMode
-    public int getAppOptimizationMode() {
-        refreshState();
+    public int getAppOptimizationMode(boolean refreshList) {
+        if (refreshList) {
+            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));
         return getAppOptimizationMode(mMode, mAllowListed);
     }
 
+    /** Gets the {@link OptimizationMode} for associated app. */
+    @OptimizationMode
+    public int getAppOptimizationMode() {
+        return getAppOptimizationMode(true);
+    }
+
     /** 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 +157,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 +189,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 +203,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 +225,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 +262,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 +314,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 +350,14 @@
             Log.e(TAG, "set OPTIMIZATION MODE failed for " + packageName, e);
         }
         BatteryOptimizeLogUtils.writeLog(
-                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));
+                context, action, packageNameKey, createLogEvent(appStandbyMode, allowListed));
     }
 
     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 260fde0..62be5df 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProvider.java
@@ -18,6 +18,11 @@
 
 import android.content.Context;
 
+import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+
+import java.util.List;
+
 /** Feature provider for battery settings usage. */
 public interface BatterySettingsFeatureProvider {
 
@@ -26,4 +31,14 @@
 
     /** Returns true if first use date should be shown */
     boolean isFirstUseDateAvailable(Context context, long firstUseDateMs);
+
+    /** 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> batteryTips,
+            BatteryInfo batteryInfo,
+            BatteryTipPolicy batteryTipPolicy);
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
index 6b456b7..f398373 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImpl.java
@@ -18,6 +18,12 @@
 
 import android.content.Context;
 
+import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
+import com.android.settings.fuelgauge.batterytip.detectors.LowBatteryDetector;
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+
+import java.util.List;
+
 /** Feature provider implementation for battery settings usage. */
 public class BatterySettingsFeatureProviderImpl implements BatterySettingsFeatureProvider {
 
@@ -30,4 +36,18 @@
     public boolean isFirstUseDateAvailable(Context context, long firstUseDateMs) {
         return false;
     }
+
+    @Override
+    public boolean isBatteryInfoEnabled(Context context) {
+        return false;
+    }
+
+    @Override
+    public void addBatteryTipDetector(
+            Context context,
+            List<BatteryTip> batteryTips,
+            BatteryInfo batteryInfo,
+            BatteryTipPolicy batteryTipPolicy) {
+        batteryTips.add(new LowBatteryDetector(context, batteryTipPolicy, batteryInfo).detect());
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java b/src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java
index 8697e43..066e0fc 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,60 @@
     static void verifyConfiguration(Context context) {
         context = context.getApplicationContext();
         verifySaverConfiguration(context);
-        verifyOptimizationModes(context);
+        verifyBatteryOptimizeModes(context);
+        DynamicDenylistManager.getInstance(context).onBootComplete();
     }
 
     /** 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 1f7e3ec..f846a6c 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -22,17 +22,14 @@
 import android.content.pm.InstallSourceInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.os.BatteryManager;
 import android.os.BatteryStats;
 import android.os.BatteryStatsManager;
 import android.os.BatteryUsageStats;
 import android.os.BatteryUsageStatsQuery;
 import android.os.Build;
-import android.os.Process;
 import android.os.SystemClock;
 import android.os.UidBatteryConsumer;
-import android.os.UserHandle;
 import android.provider.Settings;
 import android.text.TextUtils;
 import android.text.format.DateUtils;
@@ -47,14 +44,11 @@
 import com.android.internal.util.ArrayUtils;
 import com.android.settings.R;
 import com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper;
-import com.android.settings.fuelgauge.batterytip.AnomalyInfo;
 import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager;
-import com.android.settings.fuelgauge.batterytip.StatsManagerConfig;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.fuelgauge.Estimate;
 import com.android.settingslib.fuelgauge.EstimateKt;
-import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
 import com.android.settingslib.utils.PowerUtil;
 import com.android.settingslib.utils.StringUtil;
 import com.android.settingslib.utils.ThreadUtils;
@@ -68,16 +62,16 @@
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 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 +81,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 +93,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 +113,7 @@
 
     private AppOpsManager mAppOpsManager;
     private Context mContext;
-    @VisibleForTesting
-    PowerUsageFeatureProvider mPowerUsageFeatureProvider;
+    @VisibleForTesting PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
     public static BatteryUtils getInstance(Context context) {
         if (sInstance == null || sInstance.isDataCorrupted()) {
@@ -135,12 +127,18 @@
         mContext = context;
         mPackageManager = context.getPackageManager();
         mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
-        mPowerUsageFeatureProvider = FeatureFactory.getFactory(context)
-                .getPowerUsageFeatureProvider(context);
+        mPowerUsageFeatureProvider =
+                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 +182,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 +198,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 +216,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 +240,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 +259,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 +276,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 +287,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 +314,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 +323,33 @@
      * 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;
+        }
+    }
+
+    /**
+     * Find package uid from package name
+     *
+     * @param packageName used to find the uid
+     * @param userId The user handle identifier to look up the package under
+     * @return uid for packageName, or {@link #UID_NULL} if exception happens or {@code packageName}
+     *     is null
+     */
+    public int getPackageUidAsUser(String packageName, int userId) {
+        try {
+            return packageName == null
+                    ? UID_NULL
+                    : mPackageManager.getPackageUidAsUser(
+                            packageName, PackageManager.GET_META_DATA, userId);
         } catch (PackageManager.NameNotFoundException e) {
             return UID_NULL;
         }
@@ -359,16 +369,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 +389,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 +424,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 +442,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 +479,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 +516,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) {
@@ -518,80 +542,13 @@
     }
 
     /**
-     * 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)
-                || (isSystemApp(mPackageManager, packageNames) && !hasLauncherEntry(packageNames))
-                || (isExcessiveBackgroundAnomaly(anomalyInfo) && !isPreOApp(packageNames));
-    }
-
-    private boolean isExcessiveBackgroundAnomaly(AnomalyInfo anomalyInfo) {
-        return anomalyInfo.anomalyType
-                == StatsManagerConfig.AnomalyType.EXCESSIVE_BACKGROUND_SERVICE;
-    }
-
-    private boolean isSystemUid(int uid) {
-        final int appUid = UserHandle.getAppId(uid);
-        return appUid >= Process.ROOT_UID && appUid < Process.FIRST_APPLICATION_UID;
-    }
-
-    private boolean isSystemApp(PackageManager packageManager, String[] packageNames) {
-        for (String packageName : packageNames) {
-            try {
-                final ApplicationInfo info = packageManager.getApplicationInfo(packageName,
-                        0 /* flags */);
-                if ((info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
-                    return true;
-                }
-            } catch (PackageManager.NameNotFoundException e) {
-                Log.e(TAG, "Package not found: " + packageName, e);
-            }
-        }
-
-        return false;
-    }
-
-    private boolean hasLauncherEntry(String[] packageNames) {
-        final Intent launchIntent = new Intent(Intent.ACTION_MAIN, null);
-        launchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
-
-        // If we do not specify MATCH_DIRECT_BOOT_AWARE or
-        // MATCH_DIRECT_BOOT_UNAWARE, system will derive and update the flags
-        // according to the user's lock state. When the user is locked,
-        // 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);
-        for (int i = 0, size = resolveInfos.size(); i < size; i++) {
-            final ResolveInfo resolveInfo = resolveInfos.get(i);
-            if (ArrayUtils.contains(packageNames, resolveInfo.activityInfo.packageName)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
      * Return version number of an app represented by {@code packageName}, and return -1 if not
      * found.
      */
     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 +572,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 +587,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.getFactory(context)
-                    .getPowerUsageFeatureProvider(context)
-                    .isExtraDefend()) {
+            } else if (batteryInfo.isBatteryDefender
+                    && FeatureFactory.getFeatureFactory()
+                            .getPowerUsageFeatureProvider()
+                            .isExtraDefend()) {
                 return DockDefenderMode.ACTIVE;
             } else if (!batteryInfo.isBatteryDefender) {
                 return DockDefenderMode.FUTURE_BYPASS;
@@ -637,59 +603,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 62f2780..a68a4de 100644
--- a/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java
+++ b/src/com/android/settings/fuelgauge/DebugEstimatesLoader.java
@@ -40,40 +40,48 @@
     }
 
     @Override
-    protected void onDiscardResult(List<BatteryInfo> result) {
-
-    }
+    protected void onDiscardResult(List<BatteryInfo> result) {}
 
     @Override
     public List<BatteryInfo> loadInBackground() {
         Context context = getContext();
         PowerUsageFeatureProvider powerUsageFeatureProvider =
-                FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context);
+                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 f3a188f..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.getFactory(context).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 284e5be..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;
@@ -71,7 +72,7 @@
 
         mUsageStats = getActivity().getSystemService(UsageStatsManager.class);
         addPreferencesFromResource(R.xml.placeholder_preference_screen);
-        getActivity().setTitle(R.string.inactive_apps_title);
+        getActivity().setTitle(com.android.settingslib.R.string.inactive_apps_title);
     }
 
     @Override
@@ -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,12 +156,13 @@
         final Resources res = getActivity().getResources();
         final int appBucket = mUsageStats.getAppStandbyBucket(p.getKey());
         final String bucketName = bucketToName(appBucket);
-        p.setSummary(res.getString(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..2bf4d96
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
@@ -0,0 +1,350 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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_POWER_USAGE_MANAGE_BACKGROUND,
+                                    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
+                                            .LEAVE_POWER_USAGE_MANAGE_BACKGROUND,
+                                    /* action */ finalMetricCategory,
+                                    /* pageId */ SettingsEnums
+                                            .FUELGAUGE_POWER_USAGE_MANAGE_BACKGROUND,
+                                    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..0bc6176 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -22,25 +22,20 @@
 import android.util.ArrayMap;
 import android.util.SparseIntArray;
 
+import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType;
 import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
 import com.android.settingslib.fuelgauge.Estimate;
 
 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 +43,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 +71,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 +92,52 @@
      */
     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
-     */
-    void insertSettingsData(Context context, double displayDrain);
+    /** Returns {@link Bundle} for settings anomaly detection result */
+    PowerAnomalyEventList detectSettingsAnomaly(
+            Context context, double displayDrain, DetectRequestSourceType detectRequestSourceType);
 
-    /**
-     * 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..a8a2f75 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -27,6 +27,7 @@
 import android.util.SparseIntArray;
 
 import com.android.internal.util.ArrayUtils;
+import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType;
 import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
 import com.android.settingslib.fuelgauge.Estimate;
 
@@ -39,8 +40,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 +139,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
@@ -167,10 +169,8 @@
     }
 
     @Override
-    public void insertSettingsData(Context context, double displayDrain) {}
-
-    @Override
-    public PowerAnomalyEventList detectSettingsAnomaly(Context context, double displayDrain) {
+    public PowerAnomalyEventList detectSettingsAnomaly(
+            Context context, double displayDrain, DetectRequestSourceType detectRequestSourceType) {
         return null;
     }
 
diff --git a/src/com/android/settings/fuelgauge/PowerUsageTimeController.java b/src/com/android/settings/fuelgauge/PowerUsageTimeController.java
new file mode 100644
index 0000000..0dfdd5d
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/PowerUsageTimeController.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.fuelgauge;
+
+import static com.android.settings.fuelgauge.BatteryUtils.formatElapsedTimeWithoutComma;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.text.format.DateUtils;
+
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class PowerUsageTimeController extends BasePreferenceController {
+    private static final String TAG = "PowerUsageTimeController";
+
+    private static final String KEY_POWER_USAGE_TIME = "battery_usage_time_category";
+    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;
+
+    public PowerUsageTimeController(Context context) {
+        super(context, KEY_POWER_USAGE_TIME);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPowerUsageTimeCategory = screen.findPreference(KEY_POWER_USAGE_TIME);
+        mScreenTimePreference = screen.findPreference(KEY_SCREEN_TIME_PREF);
+        mBackgroundTimePreference = screen.findPreference(KEY_BACKGROUND_TIME_PREF);
+        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);
+        if (isShowScreenOnTime || isShowBackgroundTime) {
+            showCategoryTitle(slotTime);
+        }
+    }
+
+    boolean showTimePreference(
+            PowerUsageTimePreference preference,
+            int titleResId,
+            long summaryTimeMs,
+            String anomalyHintKey,
+            String anomalyHintText) {
+        if (preference == null
+                || (summaryTimeMs == 0 && !TextUtils.equals(anomalyHintKey, preference.getKey()))) {
+            return false;
+        }
+        preference.setTimeTitle(mContext.getString(titleResId));
+        preference.setTimeSummary(getPowerUsageTimeInfo(summaryTimeMs));
+        if (TextUtils.equals(anomalyHintKey, preference.getKey())) {
+            preference.setAnomalyHint(anomalyHintText);
+        }
+        preference.setVisible(true);
+        return true;
+    }
+
+    private CharSequence getPowerUsageTimeInfo(long timeInMs) {
+        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);
+    }
+
+    @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.setVisible(true);
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java b/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java
new file mode 100644
index 0000000..16c7770
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/PowerUsageTimePreference.java
@@ -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.fuelgauge;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+/** 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;
+
+    public PowerUsageTimePreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setLayoutResource(R.layout.power_usage_time);
+    }
+
+    void setTimeTitle(CharSequence timeTitle) {
+        if (!TextUtils.equals(mTimeTitle, timeTitle)) {
+            mTimeTitle = timeTitle;
+            notifyChanged();
+        }
+    }
+
+    void setTimeSummary(CharSequence timeSummary) {
+        if (!TextUtils.equals(mTimeSummary, timeSummary)) {
+            mTimeSummary = timeSummary;
+            notifyChanged();
+        }
+    }
+
+    void setAnomalyHint(CharSequence anomalyHintText) {
+        if (!TextUtils.equals(mAnomalyHintText, anomalyHintText)) {
+            mAnomalyHintText = anomalyHintText;
+            notifyChanged();
+        }
+    }
+
+    private void showAnomalyHint(PreferenceViewHolder view) {
+        if (TextUtils.isEmpty(mAnomalyHintText)) {
+            return;
+        }
+        final View anomalyHintView = view.findViewById(R.id.anomaly_hints);
+        if (anomalyHintView == null) {
+            return;
+        }
+        final TextView warningInfo = anomalyHintView.findViewById(R.id.warning_info);
+        if (warningInfo == null) {
+            return;
+        }
+        warningInfo.setText(mAnomalyHintText);
+        anomalyHintView.setVisibility(View.VISIBLE);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder view) {
+        super.onBindViewHolder(view);
+
+        ((TextView) view.findViewById(R.id.time_title)).setText(mTimeTitle);
+        ((TextView) view.findViewById(R.id.time_summary)).setText(mTimeSummary);
+
+        showAnomalyHint(view);
+    }
+}
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 d43a488..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.getFactory(mContext).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 77eaa23..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.getFactory(getContext()).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 26c0ab9..ba292f2 100644
--- a/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/SmartBatteryPreferenceController.java
@@ -22,27 +22,25 @@
 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;
     private static final int OFF = 0;
-    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
+    private final PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
     public SmartBatteryPreferenceController(Context context) {
         super(context, KEY_SMART_BATTERY);
-        mPowerUsageFeatureProvider = FeatureFactory.getFactory(context)
-                .getPowerUsageFeatureProvider(context);
+        mPowerUsageFeatureProvider =
+                FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
     }
 
     @Override
@@ -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 e08f4ba..08d49f1 100644
--- a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
@@ -28,21 +28,19 @@
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.Utils;
 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.Utils;
 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.getFactory(context)
-                .getBatteryStatusFeatureProvider(context);
+        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,24 +128,36 @@
     }
 
     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) {
         if (Utils.containsIncompatibleChargers(mContext, TAG)) {
-            return mContext.getString(R.string.battery_info_status_not_charging);
+            return mContext.getString(
+                    com.android.settingslib.R.string.power_incompatible_charging_settings_home_page,
+                    info.batteryPercentString);
+        }
+        if (BatteryUtils.isBatteryDefenderOn(info)) {
+            return mContext.getString(
+                    com.android.settingslib.R.string.power_charging_on_hold_settings_home_page,
+                    info.batteryPercentString);
         }
         if (info.batteryStatus == BatteryManager.BATTERY_STATUS_NOT_CHARGING) {
             // Present status only if no remaining time or status anomalous
@@ -148,15 +167,14 @@
         } else if (info.remainingLabel == null) {
             return info.batteryPercentString;
         } else {
-            return mContext.getString(R.string.power_remaining_settings_home_page,
+            return mContext.getString(
+                    com.android.settingslib.R.string.power_remaining_settings_home_page,
                     info.batteryPercentString,
                     info.remainingLabel);
         }
     }
 
-    /**
-     * 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 1a7fdaf..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.getFactory(mContext).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
deleted file mode 100644
index bb73142..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobService.java
+++ /dev/null
@@ -1,80 +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.fuelgauge.batterytip;
-
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.app.job.JobService;
-import android.content.ComponentName;
-import android.content.Context;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.R;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.concurrent.TimeUnit;
-
-/** A JobService to clean up obsolete data in anomaly database */
-public class AnomalyCleanupJobService extends JobService {
-    private static final String TAG = "AnomalyCleanUpJobService";
-
-    @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);
-
-        final ComponentName component = new ComponentName(context, AnomalyCleanupJobService.class);
-        final JobInfo.Builder jobBuilder =
-                new JobInfo.Builder(R.integer.job_anomaly_clean_up, component)
-                        .setPeriodic(CLEAN_UP_FREQUENCY_MS)
-                        .setRequiresDeviceIdle(true)
-                        .setRequiresCharging(true)
-                        .setPersisted(true);
-        final JobInfo pending = jobScheduler.getPendingJob(R.integer.job_anomaly_clean_up);
-
-        // 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) {
-            Log.i(TAG, "Anomaly clean up job service schedule failed.");
-        }
-    }
-
-    @Override
-    public boolean onStartJob(JobParameters params) {
-        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 */);
-        });
-
-        return true;
-    }
-
-    @Override
-    public boolean onStopJob(JobParameters jobParameters) {
-        return false;
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java
deleted file mode 100644
index ad02c3a..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobService.java
+++ /dev/null
@@ -1,128 +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.fuelgauge.batterytip;
-
-import android.app.StatsManager;
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.app.job.JobService;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.Base64;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import com.android.settings.R;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.concurrent.TimeUnit;
-
-/** A JobService check whether to update the anomaly config periodically */
-public class AnomalyConfigJobService extends JobService {
-    private static final String TAG = "AnomalyConfigJobService";
-
-    public static final String PREF_DB = "anomaly_pref";
-    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);
-
-    public static void scheduleConfigUpdate(Context context) {
-        final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
-
-        final ComponentName component = new ComponentName(context, AnomalyConfigJobService.class);
-        final JobInfo.Builder jobBuilder =
-                new JobInfo.Builder(R.integer.job_anomaly_config_update, component)
-                        .setPeriodic(CONFIG_UPDATE_FREQUENCY_MS)
-                        .setRequiresDeviceIdle(true)
-                        .setRequiresCharging(true)
-                        .setPersisted(true);
-        final JobInfo pending = jobScheduler.getPendingJob(R.integer.job_anomaly_config_update);
-
-        // 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) {
-            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 */);
-        });
-
-        return true;
-    }
-
-    @Override
-    public boolean onStopJob(JobParameters jobParameters) {
-        return false;
-    }
-
-    @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);
-        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);
-            }
-            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);
-                    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);
-                }
-            }
-        }
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
deleted file mode 100644
index 369e613..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigReceiver.java
+++ /dev/null
@@ -1,52 +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.fuelgauge.batterytip;
-
-import android.app.StatsManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-
-/**
- * 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";
-
-    @Override
-    public void onReceive(Context context, Intent intent) {
-        if (StatsManager.ACTION_STATSD_STARTED.equals(intent.getAction())
-                || Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
-            final StatsManager statsManager = context.getSystemService(StatsManager.class);
-
-            // Check whether to update the config
-            AnomalyConfigJobService.scheduleConfigUpdate(context);
-
-            try {
-                BatteryTipUtils.uploadAnomalyPendingIntent(context, statsManager);
-            } catch (StatsManager.StatsUnavailableException e) {
-                Log.w(TAG, "Failed to uploadAnomalyPendingIntent.", e);
-            }
-
-            if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
-                AnomalyCleanupJobService.scheduleCleanUp(context);
-            }
-        }
-    }
-}
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
deleted file mode 100644
index 93a95f3..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobService.java
+++ /dev/null
@@ -1,237 +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.fuelgauge.batterytip;
-
-import static android.os.StatsDimensionsValue.INT_VALUE_TYPE;
-import static android.os.StatsDimensionsValue.TUPLE_VALUE_TYPE;
-
-import android.app.AppOpsManager;
-import android.app.StatsManager;
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.app.job.JobService;
-import android.app.job.JobWorkItem;
-import android.app.settings.SettingsEnums;
-import android.content.ComponentName;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.StatsDimensionsValue;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.util.Log;
-
-import androidx.annotation.GuardedBy;
-import androidx.annotation.VisibleForTesting;
-
-import com.android.internal.util.ArrayUtils;
-import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-/** A JobService to store anomaly data to anomaly database */
-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);
-
-    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 JobInfo.Builder jobBuilder =
-                new JobInfo.Builder(R.integer.job_anomaly_detection, component)
-                        .setOverrideDeadline(MAX_DELAY_MS);
-
-        if (jobScheduler.enqueue(jobBuilder.build(), new JobWorkItem(intent))
-                != JobScheduler.RESULT_SUCCESS) {
-            Log.i(TAG, "Anomaly detection job service enqueue failed.");
-        }
-    }
-
-    @Override
-    public boolean onStartJob(JobParameters params) {
-        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
-                    .getFactory(this).getPowerUsageFeatureProvider(this);
-            final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory
-                    .getFactory(this).getMetricsFeatureProvider();
-
-            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);
-            }
-        });
-
-        return true;
-    }
-
-    @Override
-    public boolean onStopJob(JobParameters jobParameters) {
-        synchronized (mLock) {
-            mIsJobCanceled = true;
-        }
-        return true; // Need to reschedule
-    }
-
-    @VisibleForTesting
-    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) : "");
-        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 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,
-                        SettingsEnums.ACTION_ANOMALY_IGNORED,
-                        SettingsEnums.PAGE_UNKNOWN,
-                        versionedPackage,
-                        anomalyInfo.anomalyType);
-            } else {
-                if (autoFeatureOn && anomalyInfo.autoRestriction) {
-                    // Auto restrict this app
-                    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,
-                            AnomalyDatabaseHelper.State.NEW,
-                            timeMs);
-                }
-                metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
-                        SettingsEnums.ACTION_ANOMALY_TRIGGERED,
-                        SettingsEnums.PAGE_UNKNOWN,
-                        versionedPackage,
-                        anomalyInfo.anomalyType);
-            }
-
-        } catch (NullPointerException | IndexOutOfBoundsException e) {
-            Log.e(TAG, "Parse stats dimensions value error.", e);
-        }
-    }
-
-    /**
-     * 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|}|}|}
-     */
-    @VisibleForTesting
-    int extractUidFromStatsDimensionsValue(StatsDimensionsValue statsDimensionsValue) {
-        if (statsDimensionsValue == null) {
-            return UID_NULL;
-        }
-        if (statsDimensionsValue.isValueType(INT_VALUE_TYPE)
-                && statsDimensionsValue.getField() == STATSD_UID_FILED) {
-            // Find out the real uid
-            return statsDimensionsValue.getIntValue();
-        }
-        if (statsDimensionsValue.isValueType(TUPLE_VALUE_TYPE)) {
-            final List<StatsDimensionsValue> values = statsDimensionsValue.getTupleValueList();
-            for (int i = 0, size = values.size(); i < size; i++) {
-                int uid = extractUidFromStatsDimensionsValue(values.get(i));
-                if (uid != UID_NULL) {
-                    return uid;
-                }
-            }
-        }
-
-        return UID_NULL;
-    }
-
-    @VisibleForTesting
-    JobWorkItem dequeueWork(JobParameters parameters) {
-        synchronized (mLock) {
-            if (mIsJobCanceled) {
-                return null;
-            }
-
-            return parameters.dequeueWork();
-        }
-    }
-
-    @VisibleForTesting
-    void completeWork(JobParameters parameters, JobWorkItem item) {
-        synchronized (mLock) {
-            if (mIsJobCanceled) {
-                return;
-            }
-
-            parameters.completeWork(item);
-        }
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java
deleted file mode 100644
index b1bb73a..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionReceiver.java
+++ /dev/null
@@ -1,51 +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.fuelgauge.batterytip;
-
-import android.app.StatsManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.Log;
-
-/**
- * Receive the anomaly info from {@link StatsManager}
- */
-public class AnomalyDetectionReceiver extends BroadcastReceiver {
-    private static final String TAG = "SettingsAnomalyReceiver";
-
-    public static final String KEY_ANOMALY_TIMESTAMP = "key_anomaly_timestamp";
-
-    @Override
-    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 Bundle bundle = intent.getExtras();
-        if (bundle == null) {
-            return;
-        }
-        bundle.putLong(KEY_ANOMALY_TIMESTAMP, System.currentTimeMillis());
-
-        AnomalyDetectionJobService.scheduleAnomalyDetection(context, intent);
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java b/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
deleted file mode 100644
index fc15706..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/AnomalyInfo.java
+++ /dev/null
@@ -1,41 +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.fuelgauge.batterytip;
-
-import android.util.KeyValueListParser;
-import android.util.Log;
-
-/**
- * Model class to parse and store anomaly info from statsd.
- */
-public class AnomalyInfo {
-    private static final String TAG = "AnomalyInfo";
-
-    private static final String KEY_ANOMALY_TYPE = "anomaly_type";
-    private static final String KEY_AUTO_RESTRICTION = "auto_restriction";
-    public final Integer anomalyType;
-    public final boolean autoRestriction;
-
-    public AnomalyInfo(String info) {
-        Log.i(TAG, "anomalyInfo: " + info);
-        KeyValueListParser parser = new KeyValueListParser(',');
-        parser.setString(info);
-        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..d68bf39 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipLoader.java
@@ -18,21 +18,16 @@
 
 import android.content.Context;
 import android.os.BatteryUsageStats;
-import android.os.PowerManager;
 
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.fuelgauge.batterytip.detectors.BatteryDefenderDetector;
-import com.android.settings.fuelgauge.batterytip.detectors.DockDefenderDetector;
 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 +42,8 @@
     private static final String TAG = "BatteryTipLoader";
 
     private BatteryUsageStats mBatteryUsageStats;
-    @VisibleForTesting
-    BatteryUtils mBatteryUtils;
+
+    @VisibleForTesting BatteryUtils mBatteryUtils;
 
     public BatteryTipLoader(Context context, BatteryUsageStats batteryUsageStats) {
         super(context);
@@ -59,22 +54,22 @@
     @Override
     public List<BatteryTip> loadInBackground() {
         final List<BatteryTip> tips = new ArrayList<>();
-        final BatteryTipPolicy policy = new BatteryTipPolicy(getContext());
+        final BatteryTipPolicy batteryTipPolicy = new BatteryTipPolicy(getContext());
         final BatteryInfo batteryInfo = mBatteryUtils.getBatteryInfo(TAG);
         final Context context = getContext().getApplicationContext();
-        final boolean isPowerSaveMode =
-                context.getSystemService(PowerManager.class).isPowerSaveMode();
 
-        tips.add(new LowBatteryDetector(context, policy, batteryInfo, isPowerSaveMode).detect());
-        tips.add(new HighUsageDetector(context, policy, mBatteryUsageStats, batteryInfo).detect());
+        tips.add(
+                new HighUsageDetector(context, batteryTipPolicy, mBatteryUsageStats, batteryInfo)
+                        .detect());
         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, batteryInfo, batteryTipPolicy);
         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 b041003..31cec6a 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -16,12 +16,13 @@
 
 package com.android.settings.fuelgauge.batterytip;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.os.BadParcelableException;
 import android.os.Bundle;
+import android.util.ArrayMap;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -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,16 +55,14 @@
     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<>();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        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..7dc993c 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
@@ -17,8 +17,6 @@
 package com.android.settings.fuelgauge.batterytip;
 
 import android.app.AppOpsManager;
-import android.app.PendingIntent;
-import android.app.StatsManager;
 import android.content.Context;
 import android.content.Intent;
 import android.os.UserHandle;
@@ -48,15 +46,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 +65,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 +86,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);
@@ -110,29 +109,8 @@
         }
     }
 
-    /**
-     * 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);
-    }
-
-    /**
-     * 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);
-        // Remove it if it doesn't have label or been restricted
-        highUsageApps.removeIf(AppLabelPredicate.getInstance(context)
-                .or(AppRestrictionPredicate.getInstance(context)));
-
-        return highUsageApps;
+        return new ArrayList<>();
     }
 }
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 0ae2c14..66f9c44 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/BatteryTipAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/BatteryTipAction.java
@@ -30,11 +30,9 @@
 
     public BatteryTipAction(Context context) {
         mContext = context;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        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 8b7d4c1..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.getFactory(mContext).getPowerUsageFeatureProvider(mContext)
-                .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
deleted file mode 100644
index 8a839d3..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetector.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batterytip.detectors;
-
-import android.content.Context;
-
-import com.android.settings.fuelgauge.BatteryInfo;
-import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
-import com.android.settings.fuelgauge.batterytip.tips.DockDefenderTip;
-
-/**
- * Detect whether the dock defender mode is enabled.
- */
-public class DockDefenderDetector implements BatteryTipDetector {
-    private final BatteryInfo mBatteryInfo;
-    private final Context mContext;
-
-    public DockDefenderDetector(BatteryInfo batteryInfo, Context context) {
-        mBatteryInfo = batteryInfo;
-        mContext = context;
-    }
-
-    @Override
-    public BatteryTip detect() {
-        int mode = BatteryUtils.getCurrentDockDefenderMode(mContext, mBatteryInfo);
-        return new DockDefenderTip(
-                mode != BatteryUtils.DockDefenderMode.DISABLED
-                        ? BatteryTip.StateType.NEW
-                        : 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..b1a1562 100644
--- a/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
+++ b/src/com/android/settings/fuelgauge/batterytip/detectors/LowBatteryDetector.java
@@ -17,45 +17,43 @@
 package com.android.settings.fuelgauge.batterytip.detectors;
 
 import android.content.Context;
+import android.os.PowerManager;
 
 import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
 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 BatteryTipPolicy mBatteryTipPolicy;
     private final boolean mIsPowerSaveMode;
     private final int mWarningLevel;
 
-
-    public LowBatteryDetector(Context context, BatteryTipPolicy policy, BatteryInfo batteryInfo,
-            boolean isPowerSaveMode) {
-        mPolicy = policy;
+    public LowBatteryDetector(
+            Context context, BatteryTipPolicy batteryTipPolicy, BatteryInfo batteryInfo) {
+        mBatteryTipPolicy = batteryTipPolicy;
         mBatteryInfo = batteryInfo;
-        mWarningLevel = context.getResources().getInteger(
-                com.android.internal.R.integer.config_lowBatteryWarningLevel);
-        mIsPowerSaveMode = isPowerSaveMode;
+        mWarningLevel =
+                context.getResources()
+                        .getInteger(com.android.internal.R.integer.config_lowBatteryWarningLevel);
+        mIsPowerSaveMode = context.getSystemService(PowerManager.class).isPowerSaveMode();
     }
 
     @Override
     public BatteryTip detect() {
         final boolean lowBattery = mBatteryInfo.batteryLevel <= mWarningLevel;
-        final boolean lowBatteryEnabled = mPolicy.lowBatteryEnabled && !mIsPowerSaveMode;
+        final boolean lowBatteryEnabled = mBatteryTipPolicy.lowBatteryEnabled && !mIsPowerSaveMode;
         final boolean dischargingLowBatteryState =
-                mPolicy.testLowBatteryTip || (mBatteryInfo.discharging && lowBattery);
-
-        int state = BatteryTip.StateType.INVISIBLE;
+                mBatteryTipPolicy.testLowBatteryTip || (mBatteryInfo.discharging && lowBattery);
 
         // Show it as new if in test or in discharging low battery state,
         // dismiss it if battery saver is on or disabled by config.
-        if (lowBatteryEnabled && dischargingLowBatteryState) {
-            state = BatteryTip.StateType.NEW;
-        }
+        final int state =
+                lowBatteryEnabled && dischargingLowBatteryState
+                        ? BatteryTip.StateType.NEW
+                        : BatteryTip.StateType.INVISIBLE;
 
         return new LowBatteryTip(state, mIsPowerSaveMode);
     }
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 4a8f98b..319ba7a 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
@@ -16,12 +16,14 @@
 
 package com.android.settings.fuelgauge.batterytip.tips;
 
+import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Parcel;
 import android.util.Log;
 
+import androidx.core.app.ActivityCompat;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
@@ -30,9 +32,9 @@
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
-/**
- * Tip to show current battery is overheated
- */
+import kotlin.Unit;
+
+/** Tip to show current battery is overheated */
 public class BatteryDefenderTip extends BatteryTip {
 
     private static final String TAG = "BatteryDefenderTip";
@@ -70,8 +72,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
@@ -86,31 +87,45 @@
         }
 
         cardPreference.setSelectable(false);
-        cardPreference.setPrimaryButtonText(
+        cardPreference.setIconResId(getIconId());
+        cardPreference.setPrimaryButtonText(context.getString(R.string.learn_more));
+        cardPreference.setPrimaryButtonAction(
+                () -> {
+                    var helpIntent =
+                            HelpUtils.getHelpIntent(
+                                    context,
+                                    context.getString(R.string.help_url_battery_defender),
+                                    /* backupContext= */ "");
+                    ActivityCompat.startActivityForResult(
+                            (Activity) preference.getContext(),
+                            helpIntent,
+                            /* requestCode= */ 0,
+                            /* options= */ null);
+
+                    return Unit.INSTANCE;
+                });
+        cardPreference.setPrimaryButtonVisibility(true);
+        cardPreference.setPrimaryButtonContentDescription(
+                context.getString(
+                        R.string.battery_tip_limited_temporarily_sec_button_content_description));
+
+        cardPreference.setSecondaryButtonText(
                 context.getString(R.string.battery_tip_charge_to_full_button));
-        cardPreference.setPrimaryButtonClickListener(
-                unused -> {
+        cardPreference.setSecondaryButtonAction(
+                () -> {
                     resumeCharging(context);
                     preference.setVisible(false);
-                });
-        cardPreference.setPrimaryButtonVisible(mIsPluggedIn);
 
-        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));
-        cardPreference.setSecondaryButtonVisible(true);
-        cardPreference.setSecondaryButtonContentDescription(context.getString(
-                R.string.battery_tip_limited_temporarily_sec_button_content_description));
+                    return Unit.INSTANCE;
+                });
+        cardPreference.setSecondaryButtonVisibility(mIsPluggedIn);
+        cardPreference.buildContent();
     }
 
     private void resumeCharging(Context context) {
         final Intent intent =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
+                FeatureFactory.getFeatureFactory()
+                        .getPowerUsageFeatureProvider()
                         .getResumeChargeIntent(false);
         if (intent != null) {
             context.sendBroadcast(intent);
@@ -119,13 +134,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
deleted file mode 100644
index 327f974..0000000
--- a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batterytip.tips;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Parcel;
-import android.util.Log;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.fuelgauge.BatteryUtils.DockDefenderMode;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.CardPreference;
-import com.android.settingslib.HelpUtils;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-/**
- * Tip to show dock defender status
- */
-public class DockDefenderTip extends BatteryTip {
-    private static final String TAG = "DockDefenderTip";
-    private int mMode;
-
-    public DockDefenderTip(@StateType int state, @DockDefenderMode int mode) {
-        super(TipType.DOCK_DEFENDER, state, false);
-        mMode = mode;
-    }
-
-    private DockDefenderTip(Parcel in) {
-        super(in);
-    }
-
-    public int getMode() {
-        return mMode;
-    }
-
-    @Override
-    public CharSequence getTitle(Context context) {
-        switch (mMode) {
-            case DockDefenderMode.FUTURE_BYPASS:
-                return context.getString(R.string.battery_tip_dock_defender_future_bypass_title);
-            case DockDefenderMode.ACTIVE:
-                return context.getString(R.string.battery_tip_dock_defender_active_title);
-            case DockDefenderMode.TEMPORARILY_BYPASSED:
-                return context.getString(
-                        R.string.battery_tip_dock_defender_temporarily_bypassed_title);
-            default:
-                return null;
-        }
-    }
-
-    @Override
-    public CharSequence getSummary(Context context) {
-        switch (mMode) {
-            case DockDefenderMode.FUTURE_BYPASS:
-                return context.getString(R.string.battery_tip_dock_defender_future_bypass_summary);
-            case DockDefenderMode.ACTIVE:
-                return context.getString(R.string.battery_tip_dock_defender_active_summary);
-            case DockDefenderMode.TEMPORARILY_BYPASSED:
-                return context.getString(
-                        R.string.battery_tip_dock_defender_temporarily_bypassed_summary);
-            default:
-                return null;
-        }
-    }
-
-    @Override
-    public int getIconId() {
-        return mMode == DockDefenderMode.ACTIVE ? R.drawable.ic_battery_status_protected_24dp :
-                R.drawable.ic_battery_dock_defender_untriggered_24dp;
-    }
-
-    @Override
-    public void updateState(BatteryTip tip) {
-        mState = tip.mState;
-        if (tip instanceof DockDefenderTip) {
-            mMode = ((DockDefenderTip) tip).mMode;
-        }
-    }
-
-    @Override
-    public void log(Context context, MetricsFeatureProvider metricsFeatureProvider) {
-        metricsFeatureProvider.action(context, SettingsEnums.ACTION_DOCK_DEFENDER_TIP,
-                mState);
-    }
-
-    @Override
-    public void updatePreference(Preference preference) {
-        super.updatePreference(preference);
-        final Context context = preference.getContext();
-
-        CardPreference cardPreference = castToCardPreferenceSafely(preference);
-        if (cardPreference == null) {
-            Log.e(TAG, "cast Preference to CardPreference failed");
-            return;
-        }
-
-        cardPreference.setSelectable(false);
-        switch (mMode) {
-            case DockDefenderMode.FUTURE_BYPASS:
-            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.setPrimaryButtonVisible(true);
-                break;
-            case DockDefenderMode.TEMPORARILY_BYPASSED:
-                cardPreference.setPrimaryButtonVisible(false);
-                break;
-            default:
-                cardPreference.setVisible(false);
-                return;
-        }
-
-        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));
-        cardPreference.setSecondaryButtonVisible(true);
-        cardPreference.setSecondaryButtonContentDescription(context.getString(
-                R.string.battery_tip_limited_temporarily_sec_button_content_description));
-
-    }
-
-    private void resumeCharging(Context context) {
-        final Intent intent =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
-                        .getResumeChargeIntent(true);
-        if (intent != null) {
-            context.sendBroadcast(intent);
-        }
-
-        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 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..c9ff864 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
@@ -16,11 +16,13 @@
 
 package com.android.settings.fuelgauge.batterytip.tips;
 
+import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.os.Parcel;
 import android.util.Log;
 
+import androidx.core.app.ActivityCompat;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
@@ -28,6 +30,8 @@
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
+import kotlin.Unit;
+
 /** Tip to show incompatible charger state */
 public final class IncompatibleChargerTip extends BatteryTip {
     private static final String TAG = "IncompatibleChargerTip";
@@ -52,7 +56,7 @@
 
     @Override
     public int getIconId() {
-        return R.drawable.ic_battery_charger;
+        return R.drawable.ic_battery_incompatible_charger;
     }
 
     @Override
@@ -62,8 +66,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
@@ -77,25 +81,37 @@
         }
 
         cardPreference.setSelectable(false);
+        cardPreference.setIconResId(getIconId());
         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));
-        cardPreference.setPrimaryButtonVisible(true);
-        cardPreference.setPrimaryButtonContentDescription(context.getString(
-                R.string.battery_tip_incompatible_charging_content_description));
+        cardPreference.setPrimaryButtonAction(
+                () -> {
+                    var helpIntent =
+                            HelpUtils.getHelpIntent(
+                                    context,
+                                    context.getString(R.string.help_url_incompatible_charging),
+                                    /* backupContext */ "");
+                    ActivityCompat.startActivityForResult(
+                            (Activity) context,
+                            helpIntent,
+                            /* requestCode= */ 0,
+                            /* options= */ null);
+
+                    return Unit.INSTANCE;
+                });
+        cardPreference.setPrimaryButtonVisibility(true);
+        cardPreference.setPrimaryButtonContentDescription(
+                context.getString(R.string.battery_tip_incompatible_charging_content_description));
+        cardPreference.buildContent();
     }
 
-    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 d535490..8924a0b 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,13 +83,18 @@
         }
         final String[] stringArray = mContext.getResources().getStringArray(resourceId);
         return (resourceIndex >= 0 && resourceIndex < stringArray.length)
-                ? stringArray[resourceIndex] : null;
+                ? stringArray[resourceIndex]
+                : null;
     }
 
     void setRelatedBatteryDiffEntry(BatteryDiffEntry batteryDiffEntry) {
         mRelatedBatteryDiffEntry = batteryDiffEntry;
     }
 
+    int getAnomalyKeyNumber() {
+        return mPowerAnomalyEvent.getKey().getNumber();
+    }
+
     String getEventId() {
         return mPowerAnomalyEvent.hasEventId() ? mPowerAnomalyEvent.getEventId() : null;
     }
@@ -98,13 +108,13 @@
     }
 
     String getTitleString() {
-        final String protoTitleString = getInfo(WarningBannerInfo::getTitleString,
-                WarningItemInfo::getTitleString);
-        if (!TextUtils.isEmpty(protoTitleString)) {
-            return protoTitleString;
+        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,19 +125,31 @@
     }
 
     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() {
-        return getStringFromArrayResource(R.array.power_anomaly_hint_messages, mResourceIndex);
+        final String anomalyHintStringFromProto =
+                getInfo(null, WarningItemInfo::getWarningInfoString);
+        return TextUtils.isEmpty(anomalyHintStringFromProto)
+                ? getStringFromArrayResource(R.array.power_anomaly_hint_messages, mResourceIndex)
+                : anomalyHintStringFromProto;
+    }
+
+    String getAnomalyHintPrefKey() {
+        return getInfo(null, WarningItemInfo::getAnomalyHintPrefKey);
     }
 
     String getDismissRecordKey() {
@@ -140,8 +162,9 @@
 
     String getAnomalyEntryKey() {
         return mPowerAnomalyEvent.hasWarningItemInfo()
-                && mPowerAnomalyEvent.getWarningItemInfo().hasItemKey()
-                ? mPowerAnomalyEvent.getWarningItemInfo().getItemKey() : null;
+                        && mPowerAnomalyEvent.getWarningItemInfo().hasItemKey()
+                ? mPowerAnomalyEvent.getWarningItemInfo().getItemKey()
+                : null;
     }
 
     boolean hasSubSettingLauncher() {
@@ -155,23 +178,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;
     }
@@ -191,13 +215,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
@@ -214,7 +238,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 844241e..51dce26 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -35,6 +35,7 @@
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
 import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -55,8 +56,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 +78,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 +97,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 +114,7 @@
         super(context);
         mActivity = activity;
         mIs24HourFormat = DateFormat.is24HourFormat(context);
-        mMetricsFeatureProvider =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
@@ -128,12 +125,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 +147,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 +159,7 @@
         if (mActivity == null || mActivity.isChangingConfigurations()) {
             BatteryDiffEntry.clearCache();
         }
-        mHandler.removeCallbacksAndMessages(/*token=*/ null);
+        mHandler.removeCallbacksAndMessages(/* token= */ null);
     }
 
     @Override
@@ -204,19 +205,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 +252,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,63 +278,76 @@
         }
         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();
     }
 
     // Show empty hourly chart view only if there is no valid battery usage data.
     void showEmptyChart() {
+        if (mDailyChartView == null || mHourlyChartView == null) {
+            // Chart views are not initialized.
+            return;
+        }
         setChartSummaryVisible(true);
         mDailyChartView.setVisibility(View.GONE);
         mHourlyChartView.setVisibility(View.VISIBLE);
@@ -367,18 +388,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);
         }
     }
@@ -397,8 +418,8 @@
             return selectedDayText;
         }
 
-        final String selectedHourText = mHourlyViewModels.get(mDailyChartIndex).getFullText(
-                mHourlyChartIndex);
+        final String selectedHourText =
+                mHourlyViewModels.get(mDailyChartIndex).getFullText(mHourlyChartIndex);
         if (isBatteryLevelDataInOneDay()) {
             return selectedHourText;
         }
@@ -407,18 +428,43 @@
                 R.string.battery_usage_day_and_hour, selectedDayText, selectedHourText);
     }
 
+    @VisibleForTesting
+    String getBatteryLevelPercentageInfo() {
+        if (mDailyViewModel == null || mHourlyViewModels == null) {
+            // No data
+            return "";
+        }
+
+        if (mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL
+                || mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL) {
+            return mDailyViewModel.getSlotBatteryLevelText(mDailyChartIndex);
+        }
+
+        return mHourlyViewModels.get(mDailyChartIndex).getSlotBatteryLevelText(mHourlyChartIndex);
+    }
+
     private String getAccessibilityAnnounceMessage() {
         final String slotInformation = getSlotInformation();
-        return slotInformation == null
-                ? mPrefContext.getString(
-                        R.string.battery_usage_breakdown_title_since_last_full_charge)
-                : mPrefContext.getString(
-                        R.string.battery_usage_breakdown_title_for_slot, slotInformation);
+        final String slotInformationMessage =
+                slotInformation == null
+                        ? mPrefContext.getString(
+                                R.string.battery_usage_breakdown_title_since_last_full_charge)
+                        : mPrefContext.getString(
+                                R.string.battery_usage_breakdown_title_for_slot, slotInformation);
+        final String batteryLevelPercentageMessage = getBatteryLevelPercentageInfo();
+
+        return mPrefContext.getString(
+                R.string.battery_usage_time_info_and_battery_level,
+                slotInformationMessage,
+                batteryLevelPercentageMessage);
     }
 
     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();
         }
     }
@@ -431,13 +477,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)
@@ -463,6 +511,7 @@
                     mHourlyChartView.setVisibility(visibility);
                 }
             }
+
             @Override
             public void onAnimationCancel(Animator animation) {
                 super.onAnimationCancel(animation);
@@ -479,7 +528,7 @@
 
     private boolean isAllSelected() {
         return (isBatteryLevelDataInOneDay()
-                || mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL)
+                        || mDailyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL)
                 && mHourlyChartIndex == BatteryChartViewModel.SELECTED_INDEX_ALL;
     }
 
@@ -489,8 +538,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}. */
@@ -501,17 +551,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();
     }
 
@@ -542,23 +596,45 @@
         return null;
     }
 
-    private final class DailyChartLabelTextGenerator implements
-            BatteryChartViewModel.LabelTextGenerator {
+    private abstract class BaseLabelTextGenerator
+            implements BatteryChartViewModel.LabelTextGenerator {
+        @Override
+        public String generateSlotBatteryLevelText(List<Integer> levels, int index) {
+            final int fromBatteryLevelIndex =
+                    index == BatteryChartViewModel.SELECTED_INDEX_ALL ? 0 : index;
+            final int toBatteryLevelIndex =
+                    index == BatteryChartViewModel.SELECTED_INDEX_ALL
+                            ? levels.size() - 1
+                            : index + 1;
+            return mPrefContext.getString(
+                    R.string.battery_level_percentage,
+                    generateBatteryLevelText(levels.get(fromBatteryLevelIndex)),
+                    generateBatteryLevelText(levels.get(toBatteryLevelIndex)));
+        }
+
+        @VisibleForTesting
+        private static String generateBatteryLevelText(Integer level) {
+            return Utils.formatPercentage(level);
+        }
+    }
+
+    private final class DailyChartLabelTextGenerator extends BaseLabelTextGenerator
+            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 extends BaseLabelTextGenerator
+            implements BatteryChartViewModel.LabelTextGenerator {
         private static final int FULL_CHARGE_BATTERY_LEVEL = 100;
 
         private boolean mIsFromFullCharge;
@@ -589,8 +665,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(
@@ -600,8 +678,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..111a5a1 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 {
@@ -757,10 +784,16 @@
             }
             final AccessibilityNodeInfo childInfo =
                     new AccessibilityNodeInfo(BatteryChartView.this, index);
+            final String slotTimeInfo = mViewModel.getFullText(index);
+            final String batteryLevelInfo = mViewModel.getSlotBatteryLevelText(index);
             onInitializeAccessibilityNodeInfo(childInfo);
             childInfo.setClickable(isValidToDraw(mViewModel, index));
-            childInfo.setText(mViewModel.getFullText(index));
-            childInfo.setContentDescription(mViewModel.getFullText(index));
+            childInfo.setText(slotTimeInfo);
+            childInfo.setContentDescription(
+                    mContext.getString(
+                            R.string.battery_usage_time_info_and_battery_level,
+                            slotTimeInfo,
+                            batteryLevelInfo));
 
             final Rect bounds = new Rect();
             getBoundsOnScreen(bounds, true);
@@ -772,8 +805,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 +815,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..86890d5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartViewModel.java
@@ -40,11 +40,14 @@
     }
 
     interface LabelTextGenerator {
-        /** Generate the label text. The text may be abbreviated to save space. */
+        /** Generates the label text. The text may be abbreviated to save space. */
         String generateText(List<Long> timestamps, int index);
 
-        /** Generate the full text for accessibility. */
+        /** Generates the full text for accessibility. */
         String generateFullText(List<Long> timestamps, int index);
+
+        /** Generates the battery level text of a slot for accessibility.*/
+        String generateSlotBatteryLevelText(List<Integer> levels, int index);
     }
 
     private final List<Integer> mLevels;
@@ -53,24 +56,31 @@
     private final LabelTextGenerator mLabelTextGenerator;
     private final String[] mTexts;
     private final String[] mFullTexts;
+    private final String[] mBatteryLevelTexts;
 
     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;
         mLabelTextGenerator = labelTextGenerator;
         mTexts = new String[size()];
         mFullTexts = new String[size()];
+        // Last one for SELECTED_INDEX_ALL
+        mBatteryLevelTexts = new String[size() + 1];
     }
 
     public int size() {
@@ -95,6 +105,15 @@
         return mFullTexts[index];
     }
 
+    public String getSlotBatteryLevelText(int index) {
+        final int textIndex = index != SELECTED_INDEX_ALL ? index : size();
+        if (mBatteryLevelTexts[textIndex] == null) {
+            mBatteryLevelTexts[textIndex] =
+                    mLabelTextGenerator.generateSlotBatteryLevelText(mLevels, index);
+        }
+        return mBatteryLevelTexts[textIndex];
+    }
+
     public AxisLabelPosition axisLabelPosition() {
         return mAxisLabelPosition;
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index 53861e3..eebf1f5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -67,7 +67,7 @@
 
         if (!isAccumulated) {
             final PowerUsageFeatureProvider featureProvider =
-                    FeatureFactory.getFactory(context).getPowerUsageFeatureProvider(context);
+                    FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
             purgeBatteryDiffData(featureProvider);
             combineBatteryDiffEntry(
                     context, featureProvider, systemAppsPackageNames, systemAppsUids);
@@ -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..5b05e34 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;
@@ -69,6 +92,7 @@
     public String mLegacyLabel;
     public int mConsumerType;
     public long mForegroundUsageTimeInMs;
+    public long mForegroundServiceUsageTimeInMs;
     public long mBackgroundUsageTimeInMs;
     public long mScreenOnTimeInMs;
     public double mConsumePower;
@@ -85,16 +109,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,
@@ -107,6 +126,7 @@
             String legacyLabel,
             int consumerType,
             long foregroundUsageTimeInMs,
+            long foregroundServiceUsageTimeInMs,
             long backgroundUsageTimeInMs,
             long screenOnTimeInMs,
             double consumePower,
@@ -124,6 +144,7 @@
         mLegacyLabel = legacyLabel;
         mConsumerType = consumerType;
         mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
+        mForegroundServiceUsageTimeInMs = foregroundServiceUsageTimeInMs;
         mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
         mScreenOnTimeInMs = screenOnTimeInMs;
         mConsumePower = consumePower;
@@ -135,19 +156,31 @@
     }
 
     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,
+                /* foregroundServiceUsageTimeInMs= */ 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 +206,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. */
@@ -190,6 +236,7 @@
                 this.mLegacyLabel,
                 this.mConsumerType,
                 this.mForegroundUsageTimeInMs,
+                this.mForegroundServiceUsageTimeInMs,
                 this.mBackgroundUsageTimeInMs,
                 this.mScreenOnTimeInMs,
                 this.mConsumePower,
@@ -222,8 +269,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 +278,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 +303,50 @@
         }
     }
 
+    /** 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).getPackageUidAsUser(packageName, (int) mUserId);
+        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 +358,33 @@
 
         // 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(
-                            getKey(),
-                            new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /*iconId=*/ 0));
+                    putResourceCache(
+                            getKey(), 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 +392,7 @@
                         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 +404,8 @@
                 // Adds badge icon into app icon for work profile.
                 mAppIcon = getBadgeIconForUser(mAppIcon);
                 if (mAppLabel != null || mAppIcon != null) {
-                    sResourceCache.put(
-                            getKey(),
-                            new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /*iconId=*/ 0));
+                    putResourceCache(
+                            getKey(), new NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
                 }
                 break;
         }
@@ -354,29 +430,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 +490,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 +507,87 @@
             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",
+        final StringBuilder builder = new StringBuilder();
+        builder.append("BatteryDiffEntry{");
+        builder.append(
+                String.format("\n\tname=%s restrictable=%b", mAppLabel, mValidForRestriction));
+        builder.append(
+                String.format(
+                        "\n\tconsume=%.2f%% %f/%f",
+                        mPercentage, mConsumePower, mTotalConsumePower));
+        builder.append(
+                String.format(
+                        "\n\tconsume power= foreground:%f foregroundService:%f",
+                        mForegroundUsageConsumePower, mForegroundServiceUsageConsumePower));
+        builder.append(
+                String.format(
+                        "\n\tconsume power= background:%f cached:%f",
+                        mBackgroundUsageConsumePower, mCachedUsageConsumePower));
+        builder.append(
+                String.format(
+                        "\n\ttime= foreground:%s foregroundService:%s "
+                                + "background:%s screen-on:%s",
+                        StringUtil.formatElapsedTime(
+                                mContext,
+                                (double) mForegroundUsageTimeInMs,
+                                /* withSeconds= */ true,
+                                /* collapseTimeUnit= */ false),
+                        StringUtil.formatElapsedTime(
+                                mContext,
+                                (double) mForegroundServiceUsageTimeInMs,
+                                /* withSeconds= */ true,
+                                /* collapseTimeUnit= */ false),
+                        StringUtil.formatElapsedTime(
+                                mContext,
+                                (double) mBackgroundUsageTimeInMs,
+                                /* withSeconds= */ true,
+                                /* collapseTimeUnit= */ false),
+                        StringUtil.formatElapsedTime(
+                                mContext,
+                                (double) mScreenOnTimeInMs,
+                                /* withSeconds= */ true,
+                                /* collapseTimeUnit= */ false)));
+        builder.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 86538ee..4b65cc9 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,12 +107,11 @@
     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 mTimeInForegroundServiceMs;
     private long mTimeInBackgroundMs;
 
     public String mName;
@@ -131,13 +131,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 +168,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,29 +181,42 @@
                             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;
                 }
             }
             mTimeInForegroundMs =
-                    uidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_FOREGROUND);
+                    uidBatteryConsumer.getTimeInProcessStateMs(
+                            UidBatteryConsumer.PROCESS_STATE_FOREGROUND);
+            mTimeInForegroundServiceMs =
+                    uidBatteryConsumer.getTimeInProcessStateMs(
+                            UidBatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE);
             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]);
+                    uidBatteryConsumer.getTimeInProcessStateMs(
+                            UidBatteryConsumer.PROCESS_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]);
         } 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 +225,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 +240,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 +249,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 +299,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 +310,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 +331,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 +349,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 +370,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 +393,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,41 +426,35 @@
     }
 
     /**
-     * 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;
     }
 
     /** Returns foreground time/ms that is attributed to this entry. */
     public long getTimeInForegroundMs() {
-        if (mBatteryConsumer instanceof UidBatteryConsumer) {
-            return mTimeInForegroundMs;
-        } else {
-            return mUsageDurationMs;
-        }
+        return (mBatteryConsumer instanceof UidBatteryConsumer)
+                ? mTimeInForegroundMs
+                : mUsageDurationMs;
+    }
+
+    /** Returns foreground service time/ms that is attributed to this entry. */
+    public long getTimeInForegroundServiceMs() {
+        return (mBatteryConsumer instanceof UidBatteryConsumer) ? mTimeInForegroundServiceMs : 0;
     }
 
     /** Returns background activity time/ms that is attributed to this entry. */
     public long getTimeInBackgroundMs() {
-        if (mBatteryConsumer instanceof UidBatteryConsumer) {
-            return mTimeInBackgroundMs;
-        } else {
-            return 0;
-        }
+        return (mBatteryConsumer instanceof UidBatteryConsumer) ? mTimeInBackgroundMs : 0;
     }
 
-    /**
-     * 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 +507,35 @@
     }
 
     /**
-     * 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.getTimeInProcessStateMs(
+                            UidBatteryConsumer.PROCESS_STATE_FOREGROUND);
+            mTimeInForegroundServiceMs +=
+                    uidBatteryConsumer.getTimeInProcessStateMs(
+                            UidBatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE);
+            mTimeInBackgroundMs +=
+                    uidBatteryConsumer.getTimeInProcessStateMs(
+                            UidBatteryConsumer.PROCESS_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 +543,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,26 +553,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(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 */);
@@ -530,12 +585,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;
@@ -543,11 +598,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;
@@ -555,25 +610,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..b42d373 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
@@ -20,8 +20,6 @@
 import android.os.BatteryConsumer;
 import android.util.Log;
 
-import java.time.Duration;
-
 /** A container class to carry data from {@link ContentValues}. */
 public class BatteryHistEntry {
     private static final boolean DEBUG = false;
@@ -29,6 +27,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";
@@ -56,11 +55,10 @@
     public final double mCachedUsageConsumePower;
     public final double mPercentOfTotal;
     public final long mForegroundUsageTimeInMs;
+    public final long mForegroundServiceUsageTimeInMs;
     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;
@@ -90,6 +88,7 @@
         mCachedUsageConsumePower = batteryInformation.getCachedUsageConsumePower();
         mPercentOfTotal = batteryInformation.getPercentOfTotal();
         mForegroundUsageTimeInMs = batteryInformation.getForegroundUsageTimeInMs();
+        mForegroundServiceUsageTimeInMs = batteryInformation.getForegroundServiceUsageTimeInMs();
         mBackgroundUsageTimeInMs = batteryInformation.getBackgroundUsageTimeInMs();
         mDrainType = batteryInformation.getDrainType();
         final DeviceBatteryState deviceBatteryState = batteryInformation.getDeviceBatteryState();
@@ -119,6 +118,7 @@
         mCachedUsageConsumePower = batteryInformation.getCachedUsageConsumePower();
         mPercentOfTotal = batteryInformation.getPercentOfTotal();
         mForegroundUsageTimeInMs = batteryInformation.getForegroundUsageTimeInMs();
+        mForegroundServiceUsageTimeInMs = batteryInformation.getForegroundServiceUsageTimeInMs();
         mBackgroundUsageTimeInMs = batteryInformation.getBackgroundUsageTimeInMs();
         mDrainType = batteryInformation.getDrainType();
         final DeviceBatteryState deviceBatteryState = batteryInformation.getDeviceBatteryState();
@@ -138,6 +138,7 @@
             double backgroundUsageConsumePower,
             double cachedUsageConsumePower,
             long foregroundUsageTimeInMs,
+            long foregroundServiceUsageTimeInMs,
             long backgroundUsageTimeInMs,
             int batteryLevel) {
         mUid = fromEntry.mUid;
@@ -156,6 +157,7 @@
         mCachedUsageConsumePower = cachedUsageConsumePower;
         mPercentOfTotal = fromEntry.mPercentOfTotal;
         mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
+        mForegroundServiceUsageTimeInMs = foregroundServiceUsageTimeInMs;
         mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
         mDrainType = fromEntry.mDrainType;
         mConsumerType = fromEntry.mConsumerType;
@@ -190,24 +192,39 @@
     @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}",
+        final StringBuilder builder = new StringBuilder();
+        builder.append("\nBatteryHistEntry{");
+        builder.append(
+                String.format(
+                        "\n\tpackage=%s|label=%s|uid=%d|userId=%d|isHidden=%b",
+                        mPackageName, mAppLabel, mUid, mUserId, mIsHidden));
+        builder.append(
+                String.format(
+                        "\n\ttimestamp=%s|zoneId=%s|bootTimestamp=%d",
+                        recordAtDateTime, mZoneId, TimestampUtils.getSeconds(mBootTimestamp)));
+        builder.append(
+                String.format(
+                        "\n\tusage=%f|total=%f|consume=%f",
+                        mPercentOfTotal, mTotalPower, mConsumePower));
+        builder.append(
+                String.format(
+                        "\n\tforeground=%f|foregroundService=%f",
+                        mForegroundUsageConsumePower, mForegroundServiceUsageConsumePower));
+        builder.append(
+                String.format(
+                        "\n\tbackground=%f|cached=%f",
+                        mBackgroundUsageConsumePower, mCachedUsageConsumePower));
+        builder.append(
+                String.format(
+                        "\n\telapsedTime,fg=%d|fgs=%d|bg=%d",
+                        TimestampUtils.getSeconds(mBackgroundUsageTimeInMs),
+                        TimestampUtils.getSeconds(mForegroundServiceUsageTimeInMs),
+                        TimestampUtils.getSeconds(mBackgroundUsageTimeInMs)));
+        builder.append(
+                String.format("\n\tdrainType=%d|consumerType=%d", mDrainType, mConsumerType));
+        builder.append(
+                String.format(
+                        "\n\tbattery=%d|status=%d|health=%d\n}",
                         mBatteryLevel, mBatteryStatus, mBatteryHealth));
         return builder.toString();
     }
@@ -270,65 +287,83 @@
             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(
+                        (lowerHistEntry == null ? 0 : lowerHistEntry.mForegroundUsageTimeInMs),
+                        upperHistEntry.mForegroundUsageTimeInMs,
+                        ratio);
+        final double foregroundServiceUsageTimeInMs =
+                interpolate(
+                        (lowerHistEntry == null
+                                ? 0
+                                : lowerHistEntry.mForegroundServiceUsageTimeInMs),
+                        upperHistEntry.mForegroundServiceUsageTimeInMs,
+                        ratio);
+        final double backgroundUsageTimeInMs =
+                interpolate(
+                        (lowerHistEntry == null ? 0 : lowerHistEntry.mBackgroundUsageTimeInMs),
+                        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.mForegroundServiceUsageTimeInMs < foregroundServiceUsageTimeInMs
                 || 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,
@@ -336,6 +371,7 @@
                 backgroundUsageConsumePower,
                 cachedUsageConsumePower,
                 Math.round(foregroundUsageTimeInMs),
+                Math.round(foregroundServiceUsageTimeInMs),
                 Math.round(backgroundUsageTimeInMs),
                 (int) Math.round(batteryLevel));
     }
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 47d2ac3..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.getFactory(context);
-        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 39ed0dc..8fa7b90 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
@@ -51,16 +51,13 @@
     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);
-        final FeatureFactory featureFactory = FeatureFactory.getFactory(context);
+        final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
         mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
     }
 
@@ -94,8 +91,11 @@
         }
         mCardPreference.setVisible(false);
         mMetricsFeatureProvider.action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
-                mAnomalyEventWrapper.getEventId());
+                /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                /* key= */ mAnomalyEventWrapper.getEventId(),
+                /* value= */ mAnomalyEventWrapper.getAnomalyKeyNumber());
     }
 
     void handleBatteryTipsCardUpdated(
@@ -107,8 +107,8 @@
             return;
         }
 
-        // Get card preference strings and navigate fragment info
         final String eventId = mAnomalyEventWrapper.getEventId();
+        final int anomalyKeyNumber = mAnomalyEventWrapper.getAnomalyKeyNumber();
 
         // Update card & buttons preference
         if (!mAnomalyEventWrapper.updateTipsCardPreference(mCardPreference)) {
@@ -117,31 +117,46 @@
         }
 
         // 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(
+                                /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                                /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                                /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                                /* key= */ eventId,
+                                /* value= */ anomalyKeyNumber);
+                    }
+                });
+        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(
+                            /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                            /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
+                            /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                            /* key= */ eventId,
+                            /* value= */ anomalyKeyNumber);
+                });
 
         mCardPreference.setVisible(true);
         mMetricsFeatureProvider.action(
-                mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, eventId);
+                /* attribution= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                /* action= */ SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                /* pageId= */ SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                /* key= */ eventId,
+                /* value= */ anomalyKeyNumber);
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index b237ef6..0ffd090 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,43 +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 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.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
@@ -131,7 +121,7 @@
 
     @Override
     public void onDestroy() {
-        mHandler.removeCallbacksAndMessages(/*token=*/ null);
+        mHandler.removeCallbacksAndMessages(/* token= */ null);
         mPreferenceCache.clear();
         mAppListPreferenceGroup.removeAll();
     }
@@ -146,10 +136,18 @@
         return false;
     }
 
-    private String getActionKey(String packageName) {
-        final String actionKey = TextUtils.isEmpty(packageName)
-                ? PACKAGE_NAME_NONE : packageName;
-        return mAnomalyEventId == null ? actionKey : actionKey + "|"  + mAnomalyEventId;
+    private boolean isAnomalyBatteryDiffEntry(BatteryDiffEntry entry) {
+        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;
     }
 
     @Override
@@ -159,19 +157,32 @@
         }
         final PowerGaugePreference powerPref = (PowerGaugePreference) preference;
         final BatteryDiffEntry diffEntry = powerPref.getBatteryDiffEntry();
-        final String packageName = diffEntry.getPackageName();
         mMetricsFeatureProvider.action(
                 /* attribution */ SettingsEnums.OPEN_BATTERY_USAGE,
                 /* action */ diffEntry.isSystemEntry()
                         ? SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM
                         : SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
                 /* pageId */ SettingsEnums.OPEN_BATTERY_USAGE,
-                getActionKey(packageName),
+                getActionKey(diffEntry),
                 (int) Math.round(diffEntry.getPercentage()));
-        Log.d(TAG, String.format("handleClick() label=%s key=%s package=%s",
-                diffEntry.getAppLabel(), diffEntry.getKey(), packageName));
+        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, diffEntry, powerPref.getPercentage(), mSlotTimestamp);
+                mActivity,
+                mFragment.getMetricsCategory(),
+                diffEntry,
+                powerPref.getPercentage(),
+                mSlotTimestamp,
+                /* showTimeInformation= */ true,
+                anomalyHintPrefKey,
+                anomalyHintText);
         return true;
     }
 
@@ -183,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
@@ -199,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;
@@ -236,12 +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;
+            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);
@@ -250,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() {
@@ -324,9 +346,7 @@
             pref.setOrder(prefIndex);
             pref.setSingleLineTitle(true);
             // Updates App item preference style
-            pref.setAnomalyHint(mIsHighlightSlot && mAnomalyEntryKey != null
-                    && mAnomalyEntryKey.equals(entry.getKey())
-                    ? mAnomalyHintString : null);
+            pref.setAnomalyHint(isAnomalyBatteryDiffEntry(entry) ? mAnomalyHintString : null);
             // Sets the BatteryDiffEntry to preference for launching detailed page.
             pref.setBatteryDiffEntry(entry);
             pref.setSelectable(entry.validForRestriction());
@@ -337,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
@@ -361,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
@@ -372,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.mForegroundServiceUsageTimeInMs,
                         entry.mScreenOnTimeInMs));
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBroadcastReceiver.java
index 952b83f..bfa501c 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 (com.android.settingslib.fuelgauge.BatteryUtils.isWorkProfile(context)) {
+            Log.w(TAG, "do nothing for work profile action=" + action);
+            return;
+        }
         DatabaseUtils.recordDateTime(context, action);
-        final String fullChargeIntentAction = FeatureFactory.getFactory(context)
-                .getPowerUsageFeatureProvider(context)
-                .getFullChargeIntentAction();
+        final String fullChargeIntentAction =
+                FeatureFactory.getFeatureFactory()
+                        .getPowerUsageFeatureProvider()
+                        .getFullChargeIntentAction();
         switch (action) {
             case Intent.ACTION_BATTERY_LEVEL_CHANGED:
                 // Only when fullChargeIntentAction is ACTION_BATTERY_LEVEL_CHANGED,
@@ -107,19 +112,22 @@
         }
 
         final boolean delayHourlyJobWhenBooting =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
+                FeatureFactory.getFeatureFactory()
+                        .getPowerUsageFeatureProvider()
                         .delayHourlyJobWhenBooting();
         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..095a65a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
@@ -37,6 +37,7 @@
 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 com.android.settingslib.fuelgauge.BatteryUtils;
 
 import java.time.Clock;
 import java.time.Duration;
@@ -53,6 +54,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 +69,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;
@@ -108,7 +110,7 @@
 
     @Override
     public boolean onCreate() {
-        if (DatabaseUtils.isWorkProfile(getContext())) {
+        if (BatteryUtils.isWorkProfile(getContext())) {
             Log.w(TAG, "do not create provider for work profile");
             return false;
         }
@@ -177,7 +179,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 +210,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 +226,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 +243,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 +280,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 55ef937..fb5b9a1 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,31 @@
     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.getFactory(context).getPowerUsageFeatureProvider(context)
-                                .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,
+                                                DetectRequestSourceType.TYPE_DATA_LOADER);
+                            }
+                        });
         if (batteryLevelData == null) {
             Log.d(TAG, "preprocessBatteryUsageSlots() no new battery usage data.");
             return;
@@ -133,9 +148,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 +165,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 6d14e1c..e407c63 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiver.java
@@ -26,16 +26,14 @@
 import com.android.settings.core.instrumentation.ElapsedTimeUtils;
 import com.android.settings.fuelgauge.BatteryUsageHistoricalLogEntry.Action;
 import com.android.settings.fuelgauge.batteryusage.bugreport.BatteryUsageLogUtils;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.fuelgauge.BatteryUtils;
 
 import java.time.Duration;
 
 /** Receives broadcasts to start or stop the periodic fetching job. */
 public final class BootBroadcastReceiver extends BroadcastReceiver {
     private static final String TAG = "BootBroadcastReceiver";
-    private static final long RESCHEDULE_FOR_BOOT_ACTION_WITH_DELAY =
-            Duration.ofMinutes(40).toMillis();
-    private static final long RESCHEDULE_FOR_BOOT_ACTION_WITHOUT_DELAY =
+    private static final long RESCHEDULE_FOR_BOOT_ACTION_DELAY_MILLIS =
             Duration.ofSeconds(6).toMillis();
 
     private final Handler mHandler = new Handler(Looper.getMainLooper());
@@ -56,7 +54,7 @@
     @Override
     public void onReceive(Context context, Intent intent) {
         final String action = intent == null ? "" : intent.getAction();
-        if (DatabaseUtils.isWorkProfile(context)) {
+        if (BatteryUtils.isWorkProfile(context)) {
             Log.w(TAG, "do not start job for work profile action=" + action);
             return;
         }
@@ -70,8 +68,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, intent);
                 break;
             default:
                 Log.w(TAG, "receive unsupported action=" + action);
@@ -81,7 +78,7 @@
         if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
             final Intent recheckIntent = new Intent(ACTION_PERIODIC_JOB_RECHECK);
             recheckIntent.setClass(context, BootBroadcastReceiver.class);
-            final long delayedTime = getRescheduleTimeForBootAction(context);
+            final long delayedTime = RESCHEDULE_FOR_BOOT_ACTION_DELAY_MILLIS;
             mHandler.postDelayed(() -> context.sendBroadcast(recheckIntent), delayedTime);
 
             // Refreshes the usage source from UsageStatsManager when booting.
@@ -93,17 +90,7 @@
         }
     }
 
-    private long getRescheduleTimeForBootAction(Context context) {
-        final boolean delayHourlyJobWhenBooting =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
-                        .delayHourlyJobWhenBooting();
-        return delayHourlyJobWhenBooting
-                ? RESCHEDULE_FOR_BOOT_ACTION_WITH_DELAY
-                : RESCHEDULE_FOR_BOOT_ACTION_WITHOUT_DELAY;
-    }
-
     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..df9f063 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
@@ -16,7 +16,6 @@
 package com.android.settings.fuelgauge.batteryusage;
 
 import android.annotation.IntDef;
-import android.annotation.Nullable;
 import android.app.usage.IUsageStatsManager;
 import android.app.usage.UsageEvents.Event;
 import android.app.usage.UsageStatsManager;
@@ -34,6 +33,7 @@
 import android.util.Log;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.fuelgauge.BatteryUtils;
@@ -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) {
@@ -463,22 +479,29 @@
         }
     }
 
-    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);
+
+    @VisibleForTesting
+    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)
+                        .setForegroundServiceUsageTime(
+                                batteryDiffEntry.mForegroundServiceUsageTimeInMs)
+                        .setBackgroundUsageTime(batteryDiffEntry.mBackgroundUsageTimeInMs)
+                        .setScreenOnTime(batteryDiffEntry.mScreenOnTimeInMs);
         if (batteryDiffEntry.mKey != null) {
             builder.setKey(batteryDiffEntry.mKey);
         }
@@ -496,12 +519,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));
         }
@@ -524,6 +548,7 @@
                 batteryUsageDiff.getLabel(),
                 batteryUsageDiff.getConsumerType(),
                 batteryUsageDiff.getForegroundUsageTime(),
+                batteryUsageDiff.getForegroundServiceUsageTime(),
                 batteryUsageDiff.getBackgroundUsageTime(),
                 batteryUsageDiff.getScreenOnTime(),
                 batteryUsageDiff.getConsumePower(),
@@ -557,7 +582,7 @@
                 systemDiffEntries,
                 systemAppsPackageNames,
                 systemAppsUids,
-                /*isAccumulated=*/ false);
+                /* isAccumulated= */ false);
     }
 
     private static BatteryInformation constructBatteryInformation(
@@ -568,15 +593,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());
@@ -594,6 +617,7 @@
                     .setPercentOfTotal(entry.mPercent)
                     .setDrainType(entry.getPowerComponentId())
                     .setForegroundUsageTimeInMs(entry.getTimeInForegroundMs())
+                    .setForegroundServiceUsageTimeInMs(entry.getTimeInForegroundServiceMs())
                     .setBackgroundUsageTimeInMs(entry.getTimeInBackgroundMs());
         }
 
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 925cb3a..2ef12f1 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,24 +304,26 @@
                 // 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<>();
         long numEventsFetched = 0;
         long numAllEventsFetched = 0;
         final Set<String> ignoreScreenOnTimeTaskRootSet =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
+                FeatureFactory.getFeatureFactory()
+                        .getPowerUsageFeatureProvider()
                         .getIgnoreScreenOnTimeTaskRootSet();
         for (final long userId : usageEventsMap.keySet()) {
             final UsageEvents usageEvents = usageEventsMap.get(userId);
@@ -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,56 @@
             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.mForegroundServiceUsageTimeInMs,
+                                entry.mBackgroundUsageTimeInMs,
+                                /* screenOnTimeInMs= */ 0,
+                                entry.mConsumePower,
+                                entry.mForegroundUsageConsumePower,
+                                entry.mForegroundServiceUsageConsumePower,
+                                entry.mBackgroundUsageConsumePower,
+                                entry.mCachedUsageConsumePower);
                 if (currentBatteryDiffEntry.isSystemEntry()) {
                     systemEntries.add(currentBatteryDiffEntry);
                 } else {
@@ -670,26 +690,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 +755,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 +782,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 +841,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 +869,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 +881,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 +904,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 +929,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 +955,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 +1017,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 +1033,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 +1045,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 +1103,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 +1134,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 +1233,7 @@
                     BatteryHistEntry.interpolate(
                             currentSlot,
                             upperTimestamp,
-                            /*ratio=*/ timestampDiff / timestampLength,
+                            /* ratio= */ timestampDiff / timestampLength,
                             lowerEntry,
                             upperEntry);
             newHistEntryMap.put(entryKey, newEntry);
@@ -1203,8 +1251,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 +1314,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 +1354,7 @@
                     }
                 }
             }
-            slotScreenOnTime =
-                    Math.min(slotDuration, getScreenOnTime(flatAppUsagePeriodList));
+            slotScreenOnTime = Math.min(slotDuration, getScreenOnTime(flatAppUsagePeriodList));
         }
 
         final List<BatteryDiffEntry> appEntries = new ArrayList<>();
@@ -1318,7 +1367,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,14 +1404,16 @@
             }
 
             // Not show other users' battery usage data.
-            final boolean isFromOtherUsers = isConsumedFromOtherUsers(
-                    currentUserId, workProfileUserId, selectedBatteryEntry);
+            final boolean isFromOtherUsers =
+                    isConsumedFromOtherUsers(
+                            currentUserId, workProfileUserId, selectedBatteryEntry);
             if (isFromOtherUsers) {
                 continue;
             }
 
             // Cumulative values is a specific time slot for a specific app.
             long foregroundUsageTimeInMs = 0;
+            long foregroundServiceUsageTimeInMs = 0;
             long backgroundUsageTimeInMs = 0;
             double consumePower = 0;
             double foregroundUsageConsumePower = 0;
@@ -1365,14 +1427,15 @@
                         getDiffValue(
                                 currentEntry.mForegroundUsageTimeInMs,
                                 nextEntry.mForegroundUsageTimeInMs);
+                foregroundServiceUsageTimeInMs +=
+                        getDiffValue(
+                                currentEntry.mForegroundServiceUsageTimeInMs,
+                                nextEntry.mForegroundServiceUsageTimeInMs);
                 backgroundUsageTimeInMs +=
                         getDiffValue(
                                 currentEntry.mBackgroundUsageTimeInMs,
                                 nextEntry.mBackgroundUsageTimeInMs);
-                consumePower +=
-                        getDiffValue(
-                                currentEntry.mConsumePower,
-                                nextEntry.mConsumePower);
+                consumePower += getDiffValue(currentEntry.mConsumePower, nextEntry.mConsumePower);
                 foregroundUsageConsumePower +=
                         getDiffValue(
                                 currentEntry.mForegroundUsageConsumePower,
@@ -1397,6 +1460,7 @@
             }
             // Excludes entry since we don't have enough data to calculate.
             if (foregroundUsageTimeInMs == 0
+                    && foregroundServiceUsageTimeInMs == 0
                     && backgroundUsageTimeInMs == 0
                     && consumePower == 0) {
                 continue;
@@ -1404,19 +1468,24 @@
             // Forces refine the cumulative value since it may introduce deviation error since we
             // will apply the interpolation arithmetic.
             final float totalUsageTimeInMs =
-                    foregroundUsageTimeInMs + backgroundUsageTimeInMs;
+                    foregroundUsageTimeInMs
+                            + backgroundUsageTimeInMs
+                            + foregroundServiceUsageTimeInMs;
             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|%d for:\n%s",
+                                    Duration.ofMillis(foregroundUsageTimeInMs).getSeconds(),
+                                    Duration.ofMillis(foregroundServiceUsageTimeInMs).getSeconds(),
+                                    Duration.ofMillis(backgroundUsageTimeInMs).getSeconds(),
+                                    selectedBatteryEntry));
                 }
-                foregroundUsageTimeInMs =
-                        Math.round(foregroundUsageTimeInMs * ratio);
-                backgroundUsageTimeInMs =
-                        Math.round(backgroundUsageTimeInMs * ratio);
+                foregroundUsageTimeInMs = Math.round(foregroundUsageTimeInMs * ratio);
+                foregroundServiceUsageTimeInMs = Math.round(foregroundServiceUsageTimeInMs * ratio);
+                backgroundUsageTimeInMs = Math.round(backgroundUsageTimeInMs * ratio);
                 consumePower = consumePower * ratio;
                 foregroundUsageConsumePower = foregroundUsageConsumePower * ratio;
                 foregroundServiceUsageConsumePower = foregroundServiceUsageConsumePower * ratio;
@@ -1425,48 +1494,59 @@
             }
 
             // Compute the screen on time and make sure it won't exceed the threshold.
-            final long screenOnTime = Math.min(
-                    (long) slotDuration,
-                    getScreenOnTime(
-                            appUsageMap,
+            final long screenOnTime =
+                    Math.min(
+                            (long) slotDuration,
+                            getScreenOnTime(
+                                    appUsageMap,
+                                    selectedBatteryEntry.mUserId,
+                                    selectedBatteryEntry.mPackageName));
+            // Ensure the following value will not exceed the threshold.
+            // value = background + foregroundService + screen-on
+            backgroundUsageTimeInMs =
+                    Math.min(backgroundUsageTimeInMs, (long) slotDuration - screenOnTime);
+            foregroundServiceUsageTimeInMs =
+                    Math.min(
+                            foregroundServiceUsageTimeInMs,
+                            (long) slotDuration - screenOnTime - backgroundUsageTimeInMs);
+            final BatteryDiffEntry currentBatteryDiffEntry =
+                    new BatteryDiffEntry(
+                            context,
+                            selectedBatteryEntry.mUid,
                             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);
+                            selectedBatteryEntry.getKey(),
+                            selectedBatteryEntry.mIsHidden,
+                            selectedBatteryEntry.mDrainType,
+                            selectedBatteryEntry.mPackageName,
+                            selectedBatteryEntry.mAppLabel,
+                            selectedBatteryEntry.mConsumerType,
+                            foregroundUsageTimeInMs,
+                            foregroundServiceUsageTimeInMs,
+                            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 +1643,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 +1666,15 @@
             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.mForegroundServiceUsageTimeInMs +=
+                    entry.mForegroundServiceUsageTimeInMs;
+            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 +1683,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 +1695,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 +1715,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 +1732,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 +1750,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 +1813,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 +1850,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 +1866,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 +1894,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..a41e9bd 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -15,6 +15,9 @@
  */
 
 package com.android.settings.fuelgauge.batteryusage;
+
+import static android.content.Intent.FLAG_RECEIVER_REPLACE_PENDING;
+
 import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
 
 import android.app.usage.IUsageStatsManager;
@@ -53,6 +56,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 +68,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 +82,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 +128,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 +136,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 +144,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()
@@ -134,18 +153,14 @@
                     .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() {
-    }
-
-    /** Returns true if current user is a work profile user. */
-    public static boolean isWorkProfile(Context context) {
-        final UserManager userManager = context.getSystemService(UserManager.class);
-        return userManager.isManagedProfile();
-    }
+    private DatabaseUtils() {}
 
     /** Returns the latest timestamp current user data in app usage event table. */
     public static long getAppUsageStartTimestampOfUser(
@@ -157,15 +172,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 +201,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 +238,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 +268,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 +279,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 +303,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 +326,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 +355,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 +377,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,36 +421,63 @@
 
     /** 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);
-            }
-        });
+        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, Intent intent) {
+        if ((intent.getFlags() & FLAG_RECEIVER_REPLACE_PENDING) != 0) {
+            BatteryUsageLogUtils.writeLog(
+                    context,
+                    Action.TIME_UPDATED,
+                    "Database is not cleared because the time change intent is only"
+                            + " for the existing pending receiver.");
+            return;
+        }
+        AsyncTask.execute(
+                () -> {
+                    try {
+                        clearDataAfterTimeChangedIfNeededInternal(context);
+                    } catch (RuntimeException e) {
+                        Log.e(TAG, "clearDataAfterTimeChangedIfNeeded() failed", e);
+                        BatteryUsageLogUtils.writeLog(
+                                context,
+                                Action.TIME_UPDATED,
+                                "clearDataAfterTimeChangedIfNeeded() failed" + e);
+                    }
+                });
     }
 
     /** Returns the timestamp for 00:00 6 days before the calendar date. */
@@ -422,12 +494,12 @@
 
     /** Returns the context with profile parent identity when current user is work profile. */
     public static Context getParentContext(Context context) {
-        if (isWorkProfile(context)) {
+        if (com.android.settingslib.fuelgauge.BatteryUtils.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 +516,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 +529,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 +555,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 +570,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 +583,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 +604,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 +617,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,41 +646,51 @@
             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();
 
         // Creates the ContentValues list to insert them into provider.
         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)));
+            for (BatteryEntry entry : batteryEntryList) {
+                final long foregroundMs = entry.getTimeInForegroundMs();
+                final long foregroundServiceMs = entry.getTimeInForegroundServiceMs();
+                final long backgroundMs = entry.getTimeInBackgroundMs();
+                if (entry.getConsumedPower() == 0
+                        && (foregroundMs != 0 || foregroundServiceMs != 0 || backgroundMs != 0)) {
+                    Log.w(
+                            TAG,
+                            String.format(
+                                    "no consumed power but has running time for %s"
+                                            + " time=%d|%d|%d",
+                                    entry.getLabel(),
+                                    foregroundMs,
+                                    foregroundServiceMs,
+                                    backgroundMs));
+                }
+                if (entry.getConsumedPower() == 0
+                        && foregroundMs == 0
+                        && foregroundServiceMs == 0
+                        && backgroundMs == 0) {
+                    continue;
+                }
+                valuesList.add(
+                        ConvertUtils.convertBatteryEntryToContentValues(
+                                entry,
+                                batteryUsageStats,
+                                batteryLevel,
+                                batteryStatus,
+                                batteryHealth,
+                                snapshotBootTimestamp,
+                                snapshotTimestamp,
+                                isFullChargeStart));
+            }
         }
 
         int size = 1;
@@ -599,8 +702,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 +713,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 +723,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 +749,31 @@
 
     /** 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);
+        writeStringSet(
+                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 +791,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 +827,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 +850,66 @@
         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 void clearDataAfterTimeChangedIfNeededInternal(Context context) {
+        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);
         }
     }
 
     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()) {
@@ -764,9 +922,22 @@
     private static void writeString(
             Context context, PrintWriter writer, String prefix, String key) {
         final SharedPreferences sharedPreferences = getSharedPreferences(context);
-        if (sharedPreferences != null) {
-            final String content = sharedPreferences.getString(key, "");
-            writer.println(String.format("\t\t%s: %s", prefix, content));
+        if (sharedPreferences == null) {
+            return;
+        }
+        final String content = sharedPreferences.getString(key, "");
+        writer.println(String.format("\t\t%s: %s", prefix, content));
+    }
+
+    private static void writeStringSet(
+            Context context, PrintWriter writer, String prefix, String key) {
+        final SharedPreferences sharedPreferences = getSharedPreferences(context);
+        if (sharedPreferences == null) {
+            return;
+        }
+        final Set<String> results = sharedPreferences.getStringSet(key, new ArraySet<>());
+        if (results != null) {
+            writer.println(String.format("\t\t%s: %s", prefix, results.toString()));
         }
     }
 
@@ -775,11 +946,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 43cd69d..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);
     }
@@ -99,8 +101,8 @@
     static long getTriggerAtMillis(Context context, Clock clock, final boolean fromBoot) {
         long currentTimeMillis = clock.millis();
         final boolean delayHourlyJobWhenBooting =
-                FeatureFactory.getFactory(context)
-                        .getPowerUsageFeatureProvider(context)
+                FeatureFactory.getFeatureFactory()
+                        .getPowerUsageFeatureProvider()
                         .delayHourlyJobWhenBooting();
         // Rounds to the previous nearest time slot and shifts to the next one.
         long timeSlotUnit = Duration.ofMinutes(DATA_FETCH_INTERVAL_MINUTE).toMillis();
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index dccca43..5c73adb 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -24,6 +24,7 @@
 
 import com.android.settings.fuelgauge.BatteryUsageHistoricalLogEntry.Action;
 import com.android.settings.fuelgauge.batteryusage.bugreport.BatteryUsageLogUtils;
+import com.android.settingslib.fuelgauge.BatteryUtils;
 
 /** Receives the periodic alarm {@link PendingIntent} callback. */
 public final class PeriodicJobReceiver extends BroadcastReceiver {
@@ -36,7 +37,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));
         }
     }
@@ -47,16 +50,16 @@
             Log.w(TAG, "receive unexpected action=" + action);
             return;
         }
-        if (DatabaseUtils.isWorkProfile(context)) {
-            BatteryUsageLogUtils.writeLog(context, Action.SCHEDULE_JOB,
-                    "do not refresh job for work profile");
+        if (BatteryUtils.isWorkProfile(context)) {
+            BatteryUsageLogUtils.writeLog(
+                    context, Action.SCHEDULE_JOB, "do not refresh job for work profile");
             Log.w(TAG, "do not refresh job for work profile action=" + action);
             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 fb92a76..1482117 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,31 +237,37 @@
         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.getFactory(getContext())
-                            .getPowerUsageFeatureProvider(getContext());
-            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,
+                                    DetectRequestSourceType.TYPE_USAGE_UI);
+                    mHandler.post(() -> onAnomalyDetected(anomalyEventList));
+                });
     }
 
     private void onAnomalyDetected(PowerAnomalyEventList anomalyEventList) {
@@ -280,9 +287,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);
     }
 
@@ -299,8 +309,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));
@@ -309,23 +321,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(
@@ -335,7 +354,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) {
@@ -343,8 +363,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;
@@ -368,7 +390,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() {
@@ -402,21 +424,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 =
@@ -433,12 +456,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;
                 }
@@ -455,20 +482,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 40fd3f4..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
@@ -140,9 +128,6 @@
         final SettingsActivity activity = (SettingsActivity) getActivity();
 
         mBatteryHeaderPreferenceController = use(BatteryHeaderPreferenceController.class);
-        mBatteryHeaderPreferenceController.setActivity(activity);
-        mBatteryHeaderPreferenceController.setFragment(this);
-        mBatteryHeaderPreferenceController.setLifecycle(getSettingsLifecycle());
 
         mBatteryTipPreferenceController = use(BatteryTipPreferenceController.class);
         mBatteryTipPreferenceController.setActivity(activity);
@@ -173,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
@@ -216,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;
@@ -233,17 +218,14 @@
 
     @VisibleForTesting
     void initFeatureProvider() {
-        final Context context = getContext();
-        mPowerFeatureProvider = FeatureFactory.getFactory(context)
-                .getPowerUsageFeatureProvider(context);
+        mPowerFeatureProvider = FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
     }
 
     @VisibleForTesting
     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 ac3e26d..2bcc7bf 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);
@@ -84,14 +81,19 @@
             return;
         }
         if (!(state instanceof SavedState)) {
+            // To avoid the IllegalArgumentException, return the BaseSavedState.EMPTY_STATE.
+            super.onRestoreInstanceState(BaseSavedState.EMPTY_STATE);
             return;
         }
         SavedState savedState = (SavedState) state;
         super.onRestoreInstanceState(savedState.getSuperState());
         mSavedSpinnerPosition = savedState.getSpinnerPosition();
         if (mOnItemSelectedListener != null) {
-            mOnItemSelectedListener.onItemSelected(/* parent= */null, /* view= */null,
-                    savedState.getSpinnerPosition(), /* id= */ 0);
+            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/TimestampUtils.java b/src/com/android/settings/fuelgauge/batteryusage/TimestampUtils.java
index 594a0ef..41a2254 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/TimestampUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/TimestampUtils.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+import java.time.Duration;
 import java.util.Calendar;
 
 /** A utility class for timestamp operations. */
@@ -48,6 +49,10 @@
         return calendar.getTimeInMillis();
     }
 
+    static long getSeconds(final long timeInMs) {
+        return Duration.ofMillis(timeInMs).getSeconds();
+    }
+
     static boolean isMidnight(final long timestamp) {
         final Calendar calendar = Calendar.getInstance();
         calendar.setTimeInMillis(timestamp);
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..ff953e7 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
@@ -23,7 +23,7 @@
 import android.net.Uri;
 import android.util.Log;
 
-import com.android.settings.fuelgauge.batteryusage.DatabaseUtils;
+import com.android.settingslib.fuelgauge.BatteryUtils;
 
 import java.io.FileDescriptor;
 import java.io.PrintWriter;
@@ -39,18 +39,26 @@
 
     @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;
         }
-        if (DatabaseUtils.isWorkProfile(context)) {
+        context = context.getApplicationContext();
+        if (context == null) {
+            Log.w(TAG, "failed to dump BatteryUsage state: null application context");
+            return;
+        }
+        if (BatteryUtils.isWorkProfile(context)) {
             Log.w(TAG, "ignore battery usage states dump in the work profile");
             return;
         }
         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..49ed63c
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManager.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.content.pm.PackageManager;
+import android.net.NetworkPolicyManager;
+import android.util.ArraySet;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+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) {
+        Log.i(TAG, "setUidPolicyLocked: uid=" + uid + " policy=" + 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) {
+        if (denylistTargetUids == null) {
+            return;
+        }
+        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;
+        }
+
+        final ArraySet<Integer> failedUids = new ArraySet<>();
+        synchronized (mLock) {
+            // Set new added UIDs into REJECT policy.
+            for (int uid : denylistTargetUids) {
+                if (!lastDynamicDenylistUids.contains(uid)) {
+                    try {
+                        mNetworkPolicyManager.setUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
+                    } catch (Exception e) {
+                        Log.e(TAG, "failed to setUidPolicy(REJECT) for " + uid, e);
+                        failedUids.add(uid);
+                    }
+                }
+            }
+            // Unset removed UIDs back to NONE policy.
+            for (int uid : lastDynamicDenylistUids) {
+                if (!denylistTargetUids.contains(uid)) {
+                    try {
+                        mNetworkPolicyManager.setUidPolicy(uid, POLICY_NONE);
+                    } catch (Exception e) {
+                        Log.e(TAG, "failed to setUidPolicy(NONE) for " + uid, e);
+                    }
+                }
+            }
+        }
+
+        // Store target denied uids into DynamicDenylistPref.
+        final SharedPreferences.Editor editor = getDynamicDenylistPref().edit();
+        editor.clear();
+        denylistTargetUids.forEach(uid -> {
+            if (!failedUids.contains(uid)) {
+                editor.putInt(String.valueOf(uid), POLICY_REJECT_METERED_BACKGROUND);
+            }
+        });
+        editor.apply();
+    }
+
+    /** 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)) {
+            Log.w(TAG, "resetDenylistIfNeeded: invalid conditions");
+            return;
+        }
+        synchronized (mLock) {
+            final int[] uids = mNetworkPolicyManager
+                    .getUidsWithPolicy(POLICY_REJECT_METERED_BACKGROUND);
+            if (uids != null && uids.length != 0) {
+                Log.i(TAG, "resetDenylistIfNeeded: " + Arrays.toString(uids));
+                for (int uid : uids) {
+                    if (!getDenylistAllUids(getManualDenylistPref()).contains(uid)) {
+                        mNetworkPolicyManager.setUidPolicy(uid, POLICY_NONE);
+                    }
+                }
+            } else {
+                Log.w(TAG, "resetDenylistIfNeeded: there is no valid UIDs");
+            }
+        }
+        clearSharedPreferences();
+    }
+
+    /** Reset the POLICY_REJECT_METERED uids when device is boot completed. */
+    public void onBootComplete() {
+        resetDenylistIfNeeded(/* packageName= */ null, /* force= */ true);
+        syncPolicyIfNeeded();
+    }
+
+    /** Dump the data stored in the {@link SharedPreferences}. */
+    public void dump(PrintWriter writer) {
+        writer.println("Dump of DynamicDenylistManager:");
+        final List<String> manualDenyList =
+                getPackageNames(mContext, getDenylistAllUids(getManualDenylistPref()));
+        writer.println("\tManualDenylist:");
+        if (manualDenyList != null) {
+            manualDenyList.forEach(packageName -> writer.println("\t\t" + packageName));
+            writer.flush();
+        }
+
+        final List<String> dynamicDenyList =
+                getPackageNames(mContext, getDenylistAllUids(getDynamicDenylistPref()));
+        writer.println("\tDynamicDenylist:");
+        if (dynamicDenyList != null) {
+            dynamicDenyList.forEach(packageName -> writer.println("\t\t" + packageName));
+            writer.flush();
+        }
+    }
+
+    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() {
+        Log.i(TAG, "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);
+    }
+
+    private static List<String> getPackageNames(Context context, Set<Integer> uids) {
+        if (uids == null || uids.isEmpty()) {
+            return null;
+        }
+        final PackageManager pm = context.getPackageManager();
+        final List<String> packageNames = new ArrayList<>(uids.size());
+        uids.forEach(uid -> packageNames.add(pm.getNameForUid(uid)));
+        return packageNames;
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
index 5bc1a3e..7f67770 100644
--- a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
+++ b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
@@ -31,4 +31,5 @@
   optional int64 foreground_usage_time = 14;
   optional int64 background_usage_time = 15;
   optional int64 screen_on_time = 16;
+  optional int64 foreground_service_usage_time = 17;
 }
diff --git a/src/com/android/settings/fuelgauge/protos/fuelgauge_usage_state.proto b/src/com/android/settings/fuelgauge/protos/fuelgauge_usage_state.proto
index b9b05a3..d53b814 100644
--- a/src/com/android/settings/fuelgauge/protos/fuelgauge_usage_state.proto
+++ b/src/com/android/settings/fuelgauge/protos/fuelgauge_usage_state.proto
@@ -36,4 +36,5 @@
   optional double foreground_service_usage_consume_power = 17;
   optional double background_usage_consume_power = 18;
   optional double cached_usage_consume_power = 19;
+  optional int64 foreground_service_usage_time_in_ms = 20;
 }
\ No newline at end of file
diff --git a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
index caa9c35..3c0705f 100644
--- a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
+++ b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
@@ -21,18 +21,12 @@
   optional string dismiss_record_key = 8;
 }
 
-// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
-// The enum value will be used to decide the tips card style like icons and colors.
-//
 // Next id: 2
 enum PowerAnomalyType{
   TYPE_SETTINGS_BANNER = 0;
   TYPE_APPS_ITEM = 1;
 }
 
-// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
-// The enum value will be used to decide pre-defined title and button labels.
-//
 // Next id: 8
 enum PowerAnomalyKey{
   KEY_BRIGHTNESS = 0;
@@ -45,6 +39,13 @@
   KEY_APP_FOREGROUND_HIGHER_THAN_USUAL = 7;
 }
 
+// Next id: 3
+enum DetectRequestSourceType{
+  TYPE_UNKNOWN_SOURCE = 0;
+  TYPE_USAGE_UI = 1;
+  TYPE_DATA_LOADER = 2;
+}
+
 message WarningBannerInfo {
   optional string title_string = 1;
   optional string description_string = 2;
@@ -67,4 +68,6 @@
   optional string main_button_string = 6;
   optional string cancel_button_string = 7;
   optional string item_key = 8;
+  optional string warning_info_string = 9;
+  optional string anomaly_hint_pref_key = 10;
 }
diff --git a/src/com/android/settings/gestures/AssistGestureFeatureProvider.java b/src/com/android/settings/gestures/AssistGestureFeatureProvider.java
deleted file mode 100644
index bc87ffe..0000000
--- a/src/com/android/settings/gestures/AssistGestureFeatureProvider.java
+++ /dev/null
@@ -1,38 +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.gestures;
-
-import android.content.Context;
-
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import java.util.List;
-
-/** Feature provider for the assist gesture. */
-public interface AssistGestureFeatureProvider {
-
-    /** Returns true if the assist gesture is supported. */
-    boolean isSupported(Context context);
-
-    /** Returns true if the sensor is available. */
-    boolean isSensorAvailable(Context context);
-
-    /** Returns a list of additional preference controllers */
-    List<AbstractPreferenceController> getControllers(Context context, Lifecycle lifecycle);
-
-}
diff --git a/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java b/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java
deleted file mode 100644
index 11c6b22..0000000
--- a/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java
+++ /dev/null
@@ -1,44 +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.gestures;
-
-import android.content.Context;
-
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class AssistGestureFeatureProviderImpl implements AssistGestureFeatureProvider {
-
-    @Override
-    public boolean isSupported(Context context) {
-        return false;
-    }
-
-    @Override
-    public boolean isSensorAvailable(Context context) {
-        return false;
-    }
-
-    @Override
-    public List<AbstractPreferenceController> getControllers(Context context, Lifecycle lifecycle) {
-        return new ArrayList<>();
-    }
-
-}
diff --git a/src/com/android/settings/gestures/AssistGestureSettings.java b/src/com/android/settings/gestures/AssistGestureSettings.java
deleted file mode 100644
index f56416c..0000000
--- a/src/com/android/settings/gestures/AssistGestureSettings.java
+++ /dev/null
@@ -1,95 +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.gestures;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.provider.SearchIndexableResource;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.core.AbstractPreferenceController;
-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
-public class AssistGestureSettings extends DashboardFragment {
-
-    private static final String TAG = "AssistGesture";
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.SETTINGS_ASSIST_GESTURE;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.assist_gesture_settings;
-    }
-
-    @Override
-    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        return buildPreferenceControllers(context, getSettingsLifecycle());
-    }
-
-    private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
-            Lifecycle lifecycle) {
-        final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        controllers.addAll(FeatureFactory.getFactory(context).getAssistGestureFeatureProvider()
-                .getControllers(context, lifecycle));
-
-        return controllers;
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.assist_gesture_settings;
-                    return Arrays.asList(sir);
-                }
-
-                @Override
-                public List<AbstractPreferenceController> createPreferenceControllers(
-                        Context context) {
-                    return buildPreferenceControllers(context, null /* lifecycle */);
-                }
-
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    AssistGestureSettingsPreferenceController controller =
-                            new AssistGestureSettingsPreferenceController(context,
-                                    "gesture_assist_input_summary");
-                    controller.setAssistOnly(false);
-                    return controller.isAvailable();
-                }
-            };
-}
-
diff --git a/src/com/android/settings/gestures/AssistGestureSettingsPreferenceController.java b/src/com/android/settings/gestures/AssistGestureSettingsPreferenceController.java
deleted file mode 100644
index 49a9de6..0000000
--- a/src/com/android/settings/gestures/AssistGestureSettingsPreferenceController.java
+++ /dev/null
@@ -1,139 +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.gestures;
-
-import static android.provider.Settings.Secure.ASSIST_GESTURE_ENABLED;
-import static android.provider.Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED;
-
-import android.content.Context;
-import android.provider.Settings;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
-
-public class AssistGestureSettingsPreferenceController extends GesturePreferenceController {
-
-    private static final String TAG = "AssistGesture";
-    private static final String PREF_KEY_VIDEO = "gesture_assist_video";
-
-    private static final String SECURE_KEY_ASSIST = ASSIST_GESTURE_ENABLED;
-    private static final String SECURE_KEY_SILENCE = ASSIST_GESTURE_SILENCE_ALERTS_ENABLED;
-    private static final int ON = 1;
-    private static final int OFF = 0;
-
-    private final AssistGestureFeatureProvider mFeatureProvider;
-    private boolean mWasAvailable;
-
-    private PreferenceScreen mScreen;
-    private Preference mPreference;
-
-    @VisibleForTesting
-    boolean mAssistOnly;
-
-    public AssistGestureSettingsPreferenceController(Context context, String key) {
-        super(context, key);
-        mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
-        mWasAvailable = isAvailable();
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        final boolean isSupported = mFeatureProvider.isSupported(mContext);
-        final boolean isSensorAvailable = mFeatureProvider.isSensorAvailable(mContext);
-        final boolean isAvailable = mAssistOnly ? isSupported : isSensorAvailable;
-        Log.d(TAG, "mAssistOnly:" + mAssistOnly + ", isSupported:" + isSupported
-                + ", isSensorAvailable:" + isSensorAvailable);
-        return isAvailable ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        mScreen = screen;
-        mPreference = screen.findPreference(getPreferenceKey());
-        super.displayPreference(screen);
-    }
-
-    @Override
-    public void onStart() {
-        if (mWasAvailable != isAvailable()) {
-            // Only update the preference visibility if the availability has changed -- otherwise
-            // the preference may be incorrectly added to screens with collapsed sections.
-            updatePreference();
-            mWasAvailable = isAvailable();
-        }
-    }
-
-    public AssistGestureSettingsPreferenceController setAssistOnly(boolean assistOnly) {
-        mAssistOnly = assistOnly;
-        return this;
-    }
-
-    private void updatePreference() {
-        if (mPreference == null) {
-            return;
-        }
-
-        if (isAvailable()) {
-            if (mScreen.findPreference(getPreferenceKey()) == null) {
-                mScreen.addPreference(mPreference);
-            }
-        } else {
-            mScreen.removePreference(mPreference);
-        }
-    }
-
-    private boolean isAssistGestureEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                SECURE_KEY_ASSIST, ON) != 0;
-    }
-
-    private boolean isSilenceGestureEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                SECURE_KEY_SILENCE, ON) != 0;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY_ASSIST,
-                isChecked ? ON : OFF);
-    }
-
-    @Override
-    protected String getVideoPrefKey() {
-        return PREF_KEY_VIDEO;
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        boolean isEnabled = isAssistGestureEnabled() && mFeatureProvider.isSupported(mContext);
-        if (!mAssistOnly) {
-            isEnabled = isEnabled || isSilenceGestureEnabled();
-        }
-        return mContext.getText(
-                isEnabled ? R.string.gesture_setting_on : R.string.gesture_setting_off);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return Settings.Secure.getInt(mContext.getContentResolver(), SECURE_KEY_ASSIST, OFF) == ON;
-    }
-}
diff --git a/src/com/android/settings/gestures/BackGestureIndicatorDrawable.java b/src/com/android/settings/gestures/BackGestureIndicatorDrawable.java
index 2d09e6b..b3a72d0 100644
--- a/src/com/android/settings/gestures/BackGestureIndicatorDrawable.java
+++ b/src/com/android/settings/gestures/BackGestureIndicatorDrawable.java
@@ -18,8 +18,6 @@
 
 import android.animation.TimeAnimator;
 import android.annotation.IntRange;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.graphics.ColorFilter;
@@ -30,6 +28,9 @@
 import android.os.Looper;
 import android.os.Message;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index 1ca6ea5..577758d 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -39,7 +39,7 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
     }
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 9759130..5eea3d6 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -40,7 +40,7 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
 
diff --git a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
index 9f2e9e7..2785483 100644
--- a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
+++ b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
@@ -43,7 +43,7 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
     }
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index d82cb10..8532b16 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -53,7 +53,6 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        use(AssistGestureSettingsPreferenceController.class).setAssistOnly(false);
         use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
         use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
     }
diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
index ff069ab..e8c4b93 100644
--- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
+++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
@@ -21,26 +21,19 @@
 
 import androidx.annotation.NonNull;
 
-import com.android.settings.aware.AwareFeatureProvider;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public class GesturesSettingPreferenceController extends BasePreferenceController {
-    private final AssistGestureFeatureProvider mFeatureProvider;
-    private final AwareFeatureProvider mAwareFeatureProvider;
     private List<AbstractPreferenceController> mGestureControllers;
 
-    private static final String KEY_GESTURES_SETTINGS = "gesture_settings";
     private static final String FAKE_PREF_KEY = "fake_key_only_for_get_available";
 
-    public GesturesSettingPreferenceController(Context context) {
-        super(context, KEY_GESTURES_SETTINGS);
-        mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
-        mAwareFeatureProvider = FeatureFactory.getFactory(context).getAwareFeatureProvider();
+    public GesturesSettingPreferenceController(Context context, String key) {
+        super(context, key);
     }
 
     @Override
@@ -67,8 +60,6 @@
                 new AmbientDisplayConfiguration(context);
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
 
-        controllers.add(new AssistGestureSettingsPreferenceController(context, FAKE_PREF_KEY)
-                .setAssistOnly(false));
         controllers.add(new SwipeToNotificationPreferenceController(context, FAKE_PREF_KEY));
         controllers.add(new DoubleTwistPreferenceController(context, FAKE_PREF_KEY));
         controllers.add(new DoubleTapPowerPreferenceController(context, FAKE_PREF_KEY));
diff --git a/src/com/android/settings/gestures/GlobalActionsPanelPreferenceController.java b/src/com/android/settings/gestures/GlobalActionsPanelPreferenceController.java
deleted file mode 100644
index 32a7ba5..0000000
--- a/src/com/android/settings/gestures/GlobalActionsPanelPreferenceController.java
+++ /dev/null
@@ -1,73 +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.gestures;
-
-import android.content.Context;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-public class GlobalActionsPanelPreferenceController extends GesturePreferenceController {
-    private static final String PREF_KEY_VIDEO = "global_actions_panel_video";
-
-    @VisibleForTesting
-    protected static final String ENABLED_SETTING = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
-    @VisibleForTesting
-    protected static final String AVAILABLE_SETTING =
-            Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
-
-    @VisibleForTesting
-    protected static final String TOGGLE_KEY = "gesture_global_actions_panel_switch";
-
-    public GlobalActionsPanelPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        int enabled = Settings.Secure.getInt(mContext.getContentResolver(), AVAILABLE_SETTING, 0);
-        return enabled == 1 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return Settings.Secure.putInt(mContext.getContentResolver(), ENABLED_SETTING,
-                isChecked ? 1 : 0);
-    }
-
-    @Override
-    protected String getVideoPrefKey() {
-        return PREF_KEY_VIDEO;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return TextUtils.equals(getPreferenceKey(), TOGGLE_KEY);
-    }
-
-    @Override
-    public boolean isPublicSlice() {
-        return true;
-    }
-
-    @Override
-    public boolean isChecked() {
-        int enabled = Settings.Secure.getInt(mContext.getContentResolver(), ENABLED_SETTING, 0);
-        return enabled == 1;
-    }
-}
diff --git a/src/com/android/settings/gestures/OneHandedSettings.java b/src/com/android/settings/gestures/OneHandedSettings.java
index 53cc48f..c84b9ea 100644
--- a/src/com/android/settings/gestures/OneHandedSettings.java
+++ b/src/com/android/settings/gestures/OneHandedSettings.java
@@ -29,6 +29,7 @@
 import com.android.settings.accessibility.AccessibilityShortcutPreferenceFragment;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
 import com.android.settingslib.widget.IllustrationPreference;
 import com.android.settingslib.widget.MainSwitchPreference;
 
@@ -38,6 +39,7 @@
  * <p>The child {@link AccessibilityShortcutPreferenceFragment} shows the actual UI for
  * providing basic accessibility shortcut service setup.
  */
+@SearchIndexable(forTarget = SearchIndexable.MOBILE)
 public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
 
     private static final String TAG = "OneHandedSettings";
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index 2a28ed3..bfda405 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -40,7 +40,7 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
 
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/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index f3d0008..953603a 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -39,7 +39,7 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
     }
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 0d25190..c6b1bdb 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -41,6 +41,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.accessibility.common.ShortcutConstants;
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityGestureNavigationTutorial;
 import com.android.settings.core.SubSettingLauncher;
@@ -116,7 +117,7 @@
         super.onAttach(context);
 
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
 
@@ -353,7 +354,7 @@
     private boolean isAnyServiceSupportAccessibilityButton() {
         final AccessibilityManager ams = getContext().getSystemService(AccessibilityManager.class);
         final List<String> targets = ams.getAccessibilityShortcutTargets(
-                AccessibilityManager.ACCESSIBILITY_BUTTON);
+                ShortcutConstants.UserShortcutType.SOFTWARE);
         return !targets.isEmpty();
     }
 
@@ -403,6 +404,7 @@
                         SearchIndexableRaw data = new SearchIndexableRaw(context);
                         data.title = res.getString(R.string.legacy_navigation_title);
                         data.key = KEY_SYSTEM_NAV_3BUTTONS;
+                        data.keywords = res.getString(R.string.keywords_3_button_navigation);
                         result.add(data);
                     }
 
diff --git a/src/com/android/settings/gestures/TapScreenGestureSettings.java b/src/com/android/settings/gestures/TapScreenGestureSettings.java
index 98439d6..773ef0e 100644
--- a/src/com/android/settings/gestures/TapScreenGestureSettings.java
+++ b/src/com/android/settings/gestures/TapScreenGestureSettings.java
@@ -39,7 +39,7 @@
     public void onAttach(Context context) {
         super.onAttach(context);
         SuggestionFeatureProvider suggestionFeatureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
         prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
 
diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java
index 829a89c..5510301 100644
--- a/src/com/android/settings/homepage/SettingsHomepageActivity.java
+++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java
@@ -50,6 +50,7 @@
 
 import androidx.annotation.VisibleForTesting;
 import androidx.core.graphics.Insets;
+import androidx.core.util.Consumer;
 import androidx.core.view.ViewCompat;
 import androidx.core.view.WindowCompat;
 import androidx.core.view.WindowInsetsCompat;
@@ -57,7 +58,10 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
+import androidx.window.embedding.SplitController;
+import androidx.window.embedding.SplitInfo;
 import androidx.window.embedding.SplitRule;
+import androidx.window.java.embedding.SplitControllerCallbackAdapter;
 
 import com.android.settings.R;
 import com.android.settings.Settings;
@@ -77,6 +81,7 @@
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
 import java.net.URISyntaxException;
+import java.util.List;
 import java.util.Set;
 
 /** Settings homepage activity */
@@ -112,6 +117,10 @@
     // A regular layout shows icons on homepage, whereas a simplified layout doesn't.
     private boolean mIsRegularLayout = true;
 
+    private SplitControllerCallbackAdapter mSplitControllerAdapter;
+    private SplitInfoCallback mCallback;
+    private boolean mAllowUpdateSuggestion = true;
+
     /** A listener receiving homepage loaded events. */
     public interface HomepageLoadedListener {
         /** Called when the homepage is loaded. */
@@ -147,15 +156,18 @@
      * to avoid the flicker caused by the suggestion suddenly appearing/disappearing.
      */
     public void showHomepageWithSuggestion(boolean showSuggestion) {
+        if (mAllowUpdateSuggestion) {
+            Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion);
+            mAllowUpdateSuggestion = false;
+            mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
+            mTwoPaneSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
+        }
+
         if (mHomepageView == null) {
             return;
         }
-        Log.i(TAG, "showHomepageWithSuggestion: " + showSuggestion);
         final View homepageView = mHomepageView;
-        mSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
-        mTwoPaneSuggestionView.setVisibility(showSuggestion ? View.VISIBLE : View.GONE);
         mHomepageView = null;
-
         mLoadedListeners.forEach(listener -> listener.onHomepageLoaded());
         mLoadedListeners.clear();
         homepageView.setVisibility(View.VISIBLE);
@@ -175,6 +187,12 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
+        if (!isTaskRoot() && !isSingleTask()) {
+            Log.i(TAG, "Not task root nor single task, finish");
+            finish();
+            return;
+        }
+
         mIsEmbeddingActivityEnabled = ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);
         if (mIsEmbeddingActivityEnabled) {
             final UserManager um = getSystemService(UserManager.class);
@@ -259,6 +277,23 @@
     protected void onStart() {
         ((SettingsApplication) getApplication()).setHomeActivity(this);
         super.onStart();
+        if (mIsEmbeddingActivityEnabled) {
+            final SplitController splitController = SplitController.getInstance(this);
+            mSplitControllerAdapter = new SplitControllerCallbackAdapter(splitController);
+            mCallback = new SplitInfoCallback(this);
+            mSplitControllerAdapter.addSplitListener(this, Runnable::run, mCallback);
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        mAllowUpdateSuggestion = true;
+        if (mSplitControllerAdapter != null && mCallback != null) {
+            mSplitControllerAdapter.removeSplitListener(mCallback);
+            mCallback = null;
+            mSplitControllerAdapter = null;
+        }
     }
 
     @Override
@@ -281,21 +316,19 @@
     @Override
     public void onConfigurationChanged(Configuration newConfig) {
         super.onConfigurationChanged(newConfig);
-        final boolean newTwoPaneState = ActivityEmbeddingUtils.isAlreadyEmbedded(this);
-        if (mIsTwoPane != newTwoPaneState) {
-            mIsTwoPane = newTwoPaneState;
-            updateHomepageAppBar();
-            updateHomepageBackground();
-            updateHomepagePaddings();
-        }
-        updateSplitLayout();
+        updateHomepageUI();
+    }
+
+    private boolean isSingleTask() {
+        ActivityInfo info = getIntent().resolveActivityInfo(getPackageManager(),
+                PackageManager.MATCH_DEFAULT_ONLY);
+        return info.launchMode == ActivityInfo.LAUNCH_SINGLE_TASK;
     }
 
     private void updateSplitLayout() {
         if (!mIsEmbeddingActivityEnabled) {
             return;
         }
-
         if (mIsTwoPane) {
             if (mIsRegularLayout == ActivityEmbeddingUtils.isRegularHomepageLayout(this)) {
                 // Layout unchanged
@@ -340,12 +373,12 @@
 
     private void initSearchBarView() {
         final Toolbar toolbar = findViewById(R.id.search_action_bar);
-        FeatureFactory.getFactory(this).getSearchFeatureProvider()
+        FeatureFactory.getFeatureFactory().getSearchFeatureProvider()
                 .initSearchToolbar(this /* activity */, toolbar, SettingsEnums.SETTINGS_HOMEPAGE);
 
         if (mIsEmbeddingActivityEnabled) {
             final Toolbar toolbarTwoPaneVersion = findViewById(R.id.search_action_bar_two_pane);
-            FeatureFactory.getFactory(this).getSearchFeatureProvider()
+            FeatureFactory.getFeatureFactory().getSearchFeatureProvider()
                     .initSearchToolbar(this /* activity */, toolbarTwoPaneVersion,
                             SettingsEnums.SETTINGS_HOMEPAGE);
         }
@@ -365,6 +398,17 @@
         }
     }
 
+    private void updateHomepageUI() {
+        final boolean newTwoPaneState = ActivityEmbeddingUtils.isAlreadyEmbedded(this);
+        if (mIsTwoPane != newTwoPaneState) {
+            mIsTwoPane = newTwoPaneState;
+            updateHomepageAppBar();
+            updateHomepageBackground();
+            updateHomepagePaddings();
+        }
+        updateSplitLayout();
+    }
+
     private void updateHomepageBackground() {
         if (!mIsEmbeddingActivityEnabled) {
             return;
@@ -383,7 +427,7 @@
     }
 
     private void showSuggestionFragment(boolean scrollNeeded) {
-        final Class<? extends Fragment> fragmentClass = FeatureFactory.getFactory(this)
+        final Class<? extends Fragment> fragmentClass = FeatureFactory.getFeatureFactory()
                 .getSuggestionFeatureProvider().getContextualSuggestionFragment();
         if (fragmentClass == null) {
             return;
@@ -733,4 +777,24 @@
             }
         }
     }
+
+    /** The callback invoked while AE splitting. */
+    private static class SplitInfoCallback implements Consumer<List<SplitInfo>> {
+        private final SettingsHomepageActivity mActivity;
+
+        private boolean mIsSplitUpdatedUI = false;
+
+        SplitInfoCallback(SettingsHomepageActivity activity) {
+            mActivity = activity;
+        }
+
+        @Override
+        public void accept(List<SplitInfo> splitInfoList) {
+            if (!splitInfoList.isEmpty() && !mIsSplitUpdatedUI && !mActivity.isFinishing()
+                    && ActivityEmbeddingUtils.isAlreadyEmbedded(mActivity)) {
+                mIsSplitUpdatedUI = true;
+                mActivity.updateHomepageUI();
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java
index ace667f..d1fa760 100644
--- a/src/com/android/settings/homepage/TopLevelSettings.java
+++ b/src/com/android/settings/homepage/TopLevelSettings.java
@@ -178,7 +178,7 @@
     public void onStart() {
         if (mFirstStarted) {
             mFirstStarted = false;
-            FeatureFactory.getFactory(getContext()).getSearchFeatureProvider().sendPreIndexIntent(
+            FeatureFactory.getFeatureFactory().getSearchFeatureProvider().sendPreIndexIntent(
                     getContext());
         } else if (mIsEmbeddingActivityEnabled && isOnlyOneActivityInTask()
                 && !isActivityEmbedded()) {
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
index e4a644c..ebafbaf 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardLoader.java
@@ -18,7 +18,6 @@
 
 import static com.android.settings.intelligence.ContextualCardProto.ContextualCard.Category.STICKY_VALUE;
 import static com.android.settings.slices.CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI;
-import static com.android.settings.slices.CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -158,7 +157,7 @@
 
         if (!CardContentProvider.DELETE_CARD_URI.equals(mNotifyUri)) {
             final MetricsFeatureProvider metricsFeatureProvider =
-                    FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
             metricsFeatureProvider.action(mContext,
                     SettingsEnums.ACTION_CONTEXTUAL_CARD_NOT_SHOW,
@@ -178,7 +177,7 @@
     @VisibleForTesting
     Cursor getContextualCardsFromProvider() {
         final ContextualCardFeatureProvider cardFeatureProvider =
-                FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext);
+                FeatureFactory.getFeatureFactory().getContextualCardFeatureProvider(mContext);
         return cardFeatureProvider.getContextualCards();
     }
 
@@ -225,8 +224,7 @@
     }
 
     private boolean isLargeCard(ContextualCard card) {
-        return card.getSliceUri().equals(CONTEXTUAL_WIFI_SLICE_URI)
-                || card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
+        return card.getSliceUri().equals(BLUETOOTH_DEVICES_SLICE_URI);
     }
 
     public interface CardContentLoaderListener {
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
index f5d0e66..8b8b33f 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java
@@ -235,7 +235,7 @@
         final List<ContextualCard> cardsToKeep = getCardsToKeep(cards);
 
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         //navigate back to the homepage, screen rotate or after card dismissal
         if (!mIsFirstLaunch) {
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
index fb879ba..a66e066 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
@@ -66,7 +66,7 @@
         super.onCreate(savedInstanceState);
         final Context context = getContext();
         if (savedInstanceState == null) {
-            FeatureFactory.getFactory(context).getSlicesFeatureProvider().newUiSession();
+            FeatureFactory.getFeatureFactory().getSlicesFeatureProvider().newUiSession();
             BluetoothUpdateWorker.initLocalBtManager(getContext());
         }
         mContextualCardManager = new ContextualCardManager(context, getSettingsLifecycle(),
@@ -154,7 +154,7 @@
     private void resetSession(Context context) {
         sRestartLoaderNeeded = true;
         unregisterScreenOffReceiver();
-        FeatureFactory.getFactory(context).getSlicesFeatureProvider().newUiSession();
+        FeatureFactory.getFeatureFactory().getSlicesFeatureProvider().newUiSession();
     }
 
     /**
diff --git a/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java b/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
index f556018..57e6d6f 100644
--- a/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
+++ b/src/com/android/settings/homepage/contextualcards/ControllerRendererPool.java
@@ -16,10 +16,10 @@
 
 package com.android.settings.homepage.contextualcards;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.collection.ArraySet;
 import androidx.lifecycle.LifecycleOwner;
 
diff --git a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
index f98d795..fb7ab89 100644
--- a/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
+++ b/src/com/android/settings/homepage/contextualcards/EligibleCardChecker.java
@@ -56,7 +56,7 @@
     public ContextualCard call() {
         final long startTime = System.currentTimeMillis();
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         ContextualCard result;
 
         if (isCardEligibleToDisplay(mCard)) {
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
index 81142c2..509014c 100644
--- a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.homepage.contextualcards;
 
-import android.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import com.android.settings.intelligence.ContextualCardProto.ContextualCard;
 import com.android.settings.intelligence.ContextualCardProto.ContextualCardList;
@@ -32,12 +32,6 @@
     @Override
     @Nullable
     public ContextualCardList getContextualCards() {
-        final ContextualCard wifiCard =
-                ContextualCard.newBuilder()
-                        .setSliceUri(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString())
-                        .setCardName(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString())
-                        .setCardCategory(ContextualCard.Category.IMPORTANT)
-                        .build();
         final ContextualCard connectedDeviceCard =
                 ContextualCard.newBuilder()
                         .setSliceUri(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI.toString())
@@ -71,7 +65,6 @@
                         .setCardCategory(ContextualCard.Category.IMPORTANT)
                         .build();
         final ContextualCardList cards = ContextualCardList.newBuilder()
-                .addCard(wifiCard)
                 .addCard(connectedDeviceCard)
                 .addCard(lowStorageCard)
                 .addCard(contextualAdaptiveSleepCard)
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
index ccfb732..732ec73 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionContextualCardRenderer.java
@@ -61,8 +61,8 @@
     public void bindView(RecyclerView.ViewHolder holder, ContextualCard contextualCard) {
         final ConditionalCardHolder view = (ConditionalCardHolder) holder;
         final ConditionalContextualCard card = (ConditionalContextualCard) contextualCard;
-        final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory.getFactory(
-                mContext).getMetricsFeatureProvider();
+        final MetricsFeatureProvider metricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         metricsFeatureProvider.visible(mContext, SettingsEnums.SETTINGS_HOMEPAGE,
                 card.getMetricsConstant(), 0);
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardRenderer.java
index 2944cc8..83f7ede 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardRenderer.java
@@ -50,8 +50,8 @@
 
     @Override
     public void bindView(RecyclerView.ViewHolder holder, ContextualCard card) {
-        final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory.getFactory(
-                mContext).getMetricsFeatureProvider();
+        final MetricsFeatureProvider metricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         holder.itemView.setOnClickListener(v -> {
             metricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
                     SettingsEnums.ACTION_SETTINGS_CONDITION_EXPAND,
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRenderer.java
index 6fba85e..25a444f 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardRenderer.java
@@ -56,8 +56,8 @@
         final ConditionHeaderContextualCard headerCard =
                 (ConditionHeaderContextualCard) contextualCard;
         final ConditionHeaderCardHolder view = (ConditionHeaderCardHolder) holder;
-        final MetricsFeatureProvider metricsFeatureProvider = FeatureFactory.getFactory(
-                mContext).getMetricsFeatureProvider();
+        final MetricsFeatureProvider metricsFeatureProvider =
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         view.icons.removeAllViews();
         headerCard.getConditionalCards().forEach(card -> {
             final ImageView icon = (ImageView) LayoutInflater.from(mContext).inflate(
diff --git a/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java b/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
index 4d79a01..e69a336 100644
--- a/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/conditional/DndConditionCardController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.homepage.contextualcards.conditional;
 
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
 import android.content.BroadcastReceiver;
@@ -86,7 +87,12 @@
 
     @Override
     public void onActionClick() {
-        mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_OFF, null, TAG);
+        if (Flags.modesApi()) {
+            mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_OFF, null, TAG,
+                    /* fromUser= */ true);
+        } else {
+            mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_OFF, null, TAG);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java
index 1ddb935..b0061fa 100644
--- a/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardController.java
@@ -64,7 +64,7 @@
             return;
         }
         final ComponentName suggestionServiceComponent =
-                FeatureFactory.getFactory(mContext).getSuggestionFeatureProvider()
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider()
                         .getSuggestionServiceComponent();
         mSuggestionController = new SuggestionController(
                 mContext, suggestionServiceComponent, this /* listener */);
diff --git a/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java b/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java
index 96924e4..974af9f 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSlice.java
@@ -74,7 +74,7 @@
 
     @Override
     public Slice getSlice() {
-        final long currentUiSession = FeatureFactory.getFactory(mContext)
+        final long currentUiSession = FeatureFactory.getFeatureFactory()
                 .getSlicesFeatureProvider().getUiSessionToken();
         if (currentUiSession != sActiveUiSession) {
             sActiveUiSession = currentUiSession;
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java
index ced3f8d..b348d3a 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardController.java
@@ -69,13 +69,13 @@
     public void onDismissed(ContextualCard card) {
         ThreadUtils.postOnBackgroundThread(() -> {
             final ContextualCardFeatureProvider cardFeatureProvider =
-                    FeatureFactory.getFactory(mContext).getContextualCardFeatureProvider(mContext);
+                    FeatureFactory.getFeatureFactory().getContextualCardFeatureProvider(mContext);
             cardFeatureProvider.markCardAsDismissed(mContext, card.getName());
         });
         showFeedbackDialog(card);
 
         final MetricsFeatureProvider metricsFeatureProvider =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         metricsFeatureProvider.action(mContext,
                 SettingsEnums.ACTION_CONTEXTUAL_CARD_DISMISS,
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
index fd60959..ff3f0fd 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceFullCardRendererHelper.java
@@ -57,7 +57,7 @@
                     eventInfo.actionType, cardHolder.getAdapterPosition());
 
             final MetricsFeatureProvider metricsFeatureProvider =
-                    FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
             metricsFeatureProvider.action(mContext,
                     SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log);
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java b/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java
index f774542..c881232 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceHalfCardRendererHelper.java
@@ -69,7 +69,7 @@
                     EventInfo.ACTION_TYPE_CONTENT, view.getAdapterPosition());
 
             final MetricsFeatureProvider metricsFeatureProvider =
-                    FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
             metricsFeatureProvider.action(mContext,
                     SettingsEnums.ACTION_CONTEXTUAL_CARD_CLICK, log);
diff --git a/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java b/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragment.java
index 3ec879c..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);
@@ -155,7 +165,7 @@
         final Context prefContext = getPrefContext();
         final List<InputMethodInfo> imis = mInputMethodSettingValues.getInputMethodList();
         final List<InputMethodInfo> enabledImis = getContext().getSystemService(
-                InputMethodManager.class).getEnabledInputMethodListAsUser(mUserId);
+                InputMethodManager.class).getEnabledInputMethodListAsUser(UserHandle.of(mUserId));
         final int numImis = (imis == null ? 0 : imis.size());
         for (int i = 0; i < numImis; ++i) {
             final InputMethodInfo imi = imis.get(i);
diff --git a/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java b/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java
index 94f0757..54c608c 100644
--- a/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java
+++ b/src/com/android/settings/inputmethod/KeyboardLayoutDialogFragment.java
@@ -215,7 +215,7 @@
     private void updateSwitchHintVisibility() {
         AlertDialog dialog = (AlertDialog)getDialog();
         if (dialog != null) {
-            View customPanel = dialog.findViewById(R.id.customPanel);
+            View customPanel = dialog.findViewById(com.google.android.material.R.id.customPanel);
             customPanel.setVisibility(mAdapter.getCount() > 1 ? View.VISIBLE : View.GONE);
         }
     }
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 076173a..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(
@@ -91,7 +94,8 @@
         super.onCreateDialog(savedInstanceState);
 
         mActivity = getActivity();
-        FeatureFactory featureFactory = FeatureFactory.getFactory(mActivity);
+        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/ModifierKeysPreferenceController.java b/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java
index 77def48..5a5b69e 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysPreferenceController.java
@@ -90,7 +90,7 @@
         mIm = context.getSystemService(InputManager.class);
         Objects.requireNonNull(mIm, "InputManager service cannot be null");
         KeyboardSettingsFeatureProvider featureProvider =
-                FeatureFactory.getFactory(context).getKeyboardSettingsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getKeyboardSettingsFeatureProvider();
         mDrawable = featureProvider.getActionKeyIcon(context);
     }
 
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/ModifierKeysSettings.java b/src/com/android/settings/inputmethod/ModifierKeysSettings.java
index 2353c2c..f174598 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysSettings.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysSettings.java
@@ -58,7 +58,8 @@
                 protected boolean isPageSearchEnabled(Context context) {
                     return FeatureFlagUtils
                             .isEnabled(
-                                    context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY);
+                                    context, FeatureFlagUtils.SETTINGS_NEW_KEYBOARD_MODIFIER_KEY)
+                            && !PhysicalKeyboardFragment.getHardKeyboards(context).isEmpty();
                 }
             };
 }
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutEnabledLocalesFragment.java
index 08b8fd0..05dc5be 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();
@@ -96,8 +105,13 @@
     public void onActivityCreated(final Bundle icicle) {
         super.onActivityCreated(icicle);
         Bundle arguments = getArguments();
+        if (arguments == null) {
+            Log.e(TAG, "Arguments should not be null");
+            return;
+        }
         mInputDeviceIdentifier =
-                arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_DEVICE_IDENTIFIER);
+                arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_DEVICE_IDENTIFIER,
+                        InputDeviceIdentifier.class);
         if (mInputDeviceIdentifier == null) {
             Log.e(TAG, "The inputDeviceIdentifier should not be null");
             return;
@@ -119,6 +133,7 @@
         InputDevice inputDevice =
                 NewKeyboardSettingsUtils.getInputDevice(mIm, mInputDeviceIdentifier);
         if (inputDevice == null) {
+            Log.e(TAG, "Unable to start: input device is null");
             getActivity().finish();
             return;
         }
@@ -145,7 +160,8 @@
 
         PreferenceScreen preferenceScreen = getPreferenceScreen();
         preferenceScreen.removeAll();
-        List<InputMethodInfo> infoList = mImm.getEnabledInputMethodListAsUser(mUserId);
+        List<InputMethodInfo> infoList =
+                mImm.getEnabledInputMethodListAsUser(UserHandle.of(mUserId));
         Collections.sort(infoList, new Comparator<InputMethodInfo>() {
             public int compare(InputMethodInfo o1, InputMethodInfo o2) {
                 String s1 = o1.loadLabel(mContext.getPackageManager()).toString();
@@ -157,7 +173,8 @@
         for (InputMethodInfo info : infoList) {
             mKeyboardInfoList.clear();
             List<InputMethodSubtype> subtypes =
-                    mImm.getEnabledInputMethodSubtypeListAsUser(info.getId(), true, mUserId);
+                    mImm.getEnabledInputMethodSubtypeListAsUser(info.getId(), true,
+                            UserHandle.of(mUserId));
             for (InputMethodSubtype subtype : subtypes) {
                 if (subtype.isSuitableForPhysicalKeyboardLayoutMapping()) {
                     mapLanguageWithLayout(info, subtype);
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerContent.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerContent.java
index 11740ec..e934964 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerContent.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerContent.java
@@ -27,6 +27,20 @@
 public class NewKeyboardLayoutPickerContent extends DashboardFragment {
 
     private static final String TAG = "KeyboardLayoutPicker";
+    private NewKeyboardLayoutPickerController mNewKeyboardLayoutPickerController;
+    private ControllerUpdateCallback mControllerUpdateCallback;
+
+    public interface ControllerUpdateCallback {
+        /**
+         * Called when mNewKeyBoardLayoutPickerController been initialized.
+         */
+        void onControllerUpdated(NewKeyboardLayoutPickerController
+                newKeyboardLayoutPickerController);
+    }
+
+    public void setControllerUpdateCallback(ControllerUpdateCallback controllerUpdateCallback) {
+        this.mControllerUpdateCallback = controllerUpdateCallback;
+    }
 
     @Override
     public void onAttach(Context context) {
@@ -40,7 +54,11 @@
             getActivity().finish();
             return;
         }
-        use(NewKeyboardLayoutPickerController.class).initialize(this);
+        mNewKeyboardLayoutPickerController = use(NewKeyboardLayoutPickerController.class);
+        mNewKeyboardLayoutPickerController.initialize(this);
+        if (mControllerUpdateCallback != null) {
+            mControllerUpdateCallback.onControllerUpdated(mNewKeyboardLayoutPickerController);
+        }
     }
 
     @Override
@@ -56,4 +74,8 @@
     protected int getPreferenceScreenResId() {
         return R.xml.new_keyboard_layout_picker_fragment;
     }
+
+    public NewKeyboardLayoutPickerController getController() {
+        return mNewKeyboardLayoutPickerController;
+    }
 }
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
index e63d7d1..ac8037f 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,17 @@
     private KeyboardLayout[] mKeyboardLayouts;
     private PreferenceScreen mScreen;
     private String mPreviousSelection;
+    private String mFinalSelectedLayout;
     private String mLayout;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+    private KeyboardLayoutSelectedCallback mKeyboardLayoutSelectedCallback;
 
     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,8 +81,10 @@
         mInputMethodSubtype =
                 arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE);
         mLayout = getSelectedLayoutLabel();
+        mFinalSelectedLayout = mLayout;
         mKeyboardLayouts = mIm.getKeyboardLayoutListForInputDevice(
                 mInputDeviceIdentifier, mUserId, mInputMethodInfo, mInputMethodSubtype);
+        NewKeyboardSettingsUtils.sortKeyboardLayoutsByLabel(mKeyboardLayouts);
         parent.getActivity().setTitle(mTitle);
     }
 
@@ -92,6 +101,11 @@
 
     @Override
     public void onStop() {
+        if (mLayout != null && !mLayout.equals(mFinalSelectedLayout)) {
+            String change = "From:" + mLayout + ", to:" + mFinalSelectedLayout;
+            mMetricsFeatureProvider.action(
+                    mContext, SettingsEnums.ACTION_PK_LAYOUT_CHANGED, change);
+        }
         mIm.unregisterInputDeviceListener(this);
         mInputDeviceId = -1;
     }
@@ -108,6 +122,14 @@
         return AVAILABLE;
     }
 
+    /**
+     * Registers {@link KeyboardLayoutSelectedCallback} and get updated.
+     */
+    public void registerKeyboardSelectedCallback(KeyboardLayoutSelectedCallback
+            keyboardLayoutSelectedCallback) {
+        this.mKeyboardLayoutSelectedCallback = keyboardLayoutSelectedCallback;
+    }
+
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (!(preference instanceof TickButtonPreference)) {
@@ -115,6 +137,9 @@
         }
 
         final TickButtonPreference pref = (TickButtonPreference) preference;
+        if (mKeyboardLayoutSelectedCallback != null && mPreferenceMap.containsKey(preference)) {
+            mKeyboardLayoutSelectedCallback.onSelected(mPreferenceMap.get(preference));
+        }
         pref.setSelected(true);
         if (mPreviousSelection != null && !mPreviousSelection.equals(preference.getKey())) {
             TickButtonPreference preSelectedPref = mScreen.findPreference(mPreviousSelection);
@@ -122,6 +147,7 @@
         }
         setLayout(pref);
         mPreviousSelection = preference.getKey();
+        mFinalSelectedLayout = pref.getTitle().toString();
         return true;
     }
 
@@ -152,6 +178,9 @@
             pref.setTitle(layout.getLabel());
 
             if (mLayout.equals(layout.getLabel())) {
+                if (mKeyboardLayoutSelectedCallback != null) {
+                    mKeyboardLayoutSelectedCallback.onSelected(layout);
+                }
                 pref.setSelected(true);
                 mPreviousSelection = layout.getDescriptor();
             }
@@ -186,4 +215,11 @@
         }
         return label;
     }
+
+    public interface KeyboardLayoutSelectedCallback {
+        /**
+         * Called when KeyboardLayout been selected.
+         */
+        void onSelected(KeyboardLayout keyboardLayout);
+    }
 }
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
index 88cacd2..85ba5fb 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerFragment.java
@@ -16,35 +16,98 @@
 
 package com.android.settings.inputmethod;
 
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
+import android.graphics.drawable.Drawable;
+import android.hardware.input.InputManager;
+import android.hardware.input.KeyboardLayout;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
 
 import androidx.fragment.app.Fragment;
 
+import com.android.hardware.input.Flags;
 import com.android.settings.R;
 
+//TODO: b/316243168 - [Physical Keyboard Setting] Refactor NewKeyboardLayoutPickerFragment
 public class NewKeyboardLayoutPickerFragment extends Fragment {
+    private static final int DEFAULT_KEYBOARD_PREVIEW_WIDTH = 1630;
+    private static final int DEFAULT_KEYBOARD_PREVIEW_HEIGHT = 540;
+
+    private ImageView mKeyboardLayoutPreview;
+    private TextView mKeyboardLayoutPreviewText;
+    private InputManager mInputManager;
+    private final NewKeyboardLayoutPickerController.KeyboardLayoutSelectedCallback
+            mKeyboardLayoutSelectedCallback =
+            new NewKeyboardLayoutPickerController.KeyboardLayoutSelectedCallback() {
+                @Override
+                public void onSelected(KeyboardLayout keyboardLayout) {
+                    if (mInputManager != null
+                            && mKeyboardLayoutPreview != null
+                            && mKeyboardLayoutPreviewText != null && keyboardLayout != null) {
+                        Drawable previewDrawable = mInputManager.getKeyboardLayoutPreview(
+                                keyboardLayout,
+                                DEFAULT_KEYBOARD_PREVIEW_WIDTH, DEFAULT_KEYBOARD_PREVIEW_HEIGHT);
+                        mKeyboardLayoutPreview.setVisibility(
+                                previewDrawable == null ? GONE : VISIBLE);
+                        mKeyboardLayoutPreviewText.setVisibility(
+                                previewDrawable == null ? GONE : VISIBLE);
+                        if (previewDrawable != null) {
+                            mKeyboardLayoutPreviewText.setText(keyboardLayout.getLabel());
+                            mKeyboardLayoutPreview.setImageDrawable(previewDrawable);
+                        }
+                    }
+                }
+            };
+
+    private final NewKeyboardLayoutPickerContent.ControllerUpdateCallback
+            mControllerUpdateCallback =
+                    newKeyboardLayoutPickerController -> {
+                        if (newKeyboardLayoutPickerController != null) {
+                            newKeyboardLayoutPickerController.registerKeyboardSelectedCallback(
+                                    mKeyboardLayoutSelectedCallback);
+                        }
+                    };
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState) {
-
+        mInputManager = requireContext().getSystemService(InputManager.class);
         ViewGroup fragmentView = (ViewGroup) inflater.inflate(
                 R.layout.keyboard_layout_picker, container, false);
+        mKeyboardLayoutPreview = fragmentView.findViewById(R.id.keyboard_layout_preview);
+        mKeyboardLayoutPreviewText = fragmentView.findViewById(R.id.keyboard_layout_preview_name);
+        if (!Flags.keyboardLayoutPreviewFlag()) {
+            updateViewMarginForPreviewFlagOff(fragmentView);
+        }
         getActivity().getSupportFragmentManager()
                 .beginTransaction()
                 .replace(R.id.keyboard_layout_title, new NewKeyboardLayoutPickerTitle())
                 .commit();
 
         NewKeyboardLayoutPickerContent fragment = new NewKeyboardLayoutPickerContent();
+        fragment.setControllerUpdateCallback(mControllerUpdateCallback);
         fragment.setArguments(getArguments());
         getActivity().getSupportFragmentManager()
                 .beginTransaction()
                 .replace(R.id.keyboard_layouts, fragment)
                 .commit();
-
         return fragmentView;
     }
+
+    private void updateViewMarginForPreviewFlagOff(ViewGroup fragmentView) {
+        LinearLayout previewContainer = fragmentView.findViewById(
+                R.id.keyboard_layout_picker_container);
+        FrameLayout.LayoutParams previewContainerLayoutParams =
+                (FrameLayout.LayoutParams) previewContainer.getLayoutParams();
+        previewContainerLayoutParams.setMargins(0, 0, 0, 0);
+        previewContainer.setLayoutParams(previewContainerLayoutParams);
+    }
 }
diff --git a/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java b/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java
index ad68c43..a927165 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardSettingsUtils.java
@@ -20,12 +20,15 @@
 import android.hardware.input.InputDeviceIdentifier;
 import android.hardware.input.InputManager;
 import android.hardware.input.KeyboardLayout;
+import android.os.UserHandle;
 import android.view.InputDevice;
 import android.view.inputmethod.InputMethodInfo;
 import android.view.inputmethod.InputMethodManager;
 import android.view.inputmethod.InputMethodSubtype;
 
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
 import java.util.List;
 
 /**
@@ -55,7 +58,7 @@
 
     static List<String> getSuitableImeLabels(Context context, InputMethodManager imm, int userId) {
         List<String> suitableInputMethodInfoLabels = new ArrayList<>();
-        List<InputMethodInfo> infoList = imm.getEnabledInputMethodListAsUser(userId);
+        List<InputMethodInfo> infoList = imm.getEnabledInputMethodListAsUser(UserHandle.of(userId));
         for (InputMethodInfo info : infoList) {
             List<InputMethodSubtype> subtypes =
                     imm.getEnabledInputMethodSubtypeList(info, true);
@@ -109,7 +112,8 @@
     }
 
     static InputDevice getInputDevice(InputManager im, InputDeviceIdentifier identifier) {
-        return im.getInputDeviceByDescriptor(identifier.getDescriptor());
+        return identifier == null ? null : im.getInputDeviceByDescriptor(
+                identifier.getDescriptor());
     }
 
     static KeyboardLayout[] getKeyboardLayouts(InputManager inputManager, int userId,
@@ -121,4 +125,11 @@
             InputDeviceIdentifier identifier, InputMethodInfo info, InputMethodSubtype subtype) {
         return inputManager.getKeyboardLayoutForInputDevice(identifier, userId, info, subtype);
     }
+
+    static void sortKeyboardLayoutsByLabel(KeyboardLayout[] keyboardLayouts) {
+        Arrays.sort(
+                keyboardLayouts,
+                Comparator.comparing(KeyboardLayout::getLabel)
+        );
+    }
 }
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 9cfa4cd..b06edb2 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;
@@ -26,7 +24,9 @@
 import android.database.ContentObserver;
 import android.hardware.input.InputDeviceIdentifier;
 import android.hardware.input.InputManager;
+import android.hardware.input.InputSettings;
 import android.hardware.input.KeyboardLayout;
+import android.net.Uri;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.UserHandle;
@@ -37,11 +37,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;
@@ -65,10 +67,22 @@
         KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener {
 
     private static final String KEYBOARD_OPTIONS_CATEGORY = "keyboard_options_category";
+    private static final String KEYBOARD_A11Y_CATEGORY = "keyboard_a11y_category";
     private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
+    private static final String ACCESSIBILITY_BOUNCE_KEYS = "accessibility_bounce_keys";
+    private static final String ACCESSIBILITY_SLOW_KEYS = "accessibility_slow_keys";
+    private static final String ACCESSIBILITY_STICKY_KEYS = "accessibility_sticky_keys";
     private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
     private static final String MODIFIER_KEYS_SETTINGS = "modifier_keys_settings";
     private static final String EXTRA_AUTO_SELECTION = "auto_selection";
+    private static final Uri sVirtualKeyboardSettingsUri = Secure.getUriFor(
+            Secure.SHOW_IME_WITH_HARD_KEYBOARD);
+    private static final Uri sAccessibilityBounceKeysUri = Secure.getUriFor(
+            Secure.ACCESSIBILITY_BOUNCE_KEYS);
+    private static final Uri sAccessibilitySlowKeysUri = Secure.getUriFor(
+            Secure.ACCESSIBILITY_SLOW_KEYS);
+    private static final Uri sAccessibilityStickyKeysUri = Secure.getUriFor(
+            Secure.ACCESSIBILITY_STICKY_KEYS);
 
     @NonNull
     private final ArrayList<HardKeyboardDeviceInfo> mLastHardKeyboards = new ArrayList<>();
@@ -79,8 +93,17 @@
     private KeyboardSettingsFeatureProvider mFeatureProvider;
     @NonNull
     private PreferenceCategory mKeyboardAssistanceCategory;
-    @NonNull
-    private SwitchPreference mShowVirtualKeyboardSwitch;
+    @Nullable
+    private PreferenceCategory mKeyboardA11yCategory = null;
+    @Nullable
+    private TwoStatePreference mShowVirtualKeyboardSwitch = null;
+    @Nullable
+    private TwoStatePreference mAccessibilityBounceKeys = null;
+    @Nullable
+    private TwoStatePreference mAccessibilitySlowKeys = null;
+    @Nullable
+    private TwoStatePreference mAccessibilityStickyKeys = null;
+
 
     private Intent mIntentWaitingForResult;
     private boolean mIsNewKeyboardSettings;
@@ -102,12 +125,20 @@
         mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class));
         mImm = Preconditions.checkNotNull(activity.getSystemService(InputMethodManager.class));
         mKeyboardAssistanceCategory = Preconditions.checkNotNull(
-                (PreferenceCategory) findPreference(KEYBOARD_OPTIONS_CATEGORY));
-        mShowVirtualKeyboardSwitch = Preconditions.checkNotNull(
-                (SwitchPreference) mKeyboardAssistanceCategory.findPreference(
-                        SHOW_VIRTUAL_KEYBOARD_SWITCH));
+                findPreference(KEYBOARD_OPTIONS_CATEGORY));
+        mShowVirtualKeyboardSwitch = Objects.requireNonNull(
+                mKeyboardAssistanceCategory.findPreference(SHOW_VIRTUAL_KEYBOARD_SWITCH));
 
-        FeatureFactory featureFactory = FeatureFactory.getFactory(getContext());
+        mKeyboardA11yCategory = Objects.requireNonNull(findPreference(KEYBOARD_A11Y_CATEGORY));
+        mAccessibilityBounceKeys = Objects.requireNonNull(
+                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_BOUNCE_KEYS));
+        mAccessibilitySlowKeys = Objects.requireNonNull(
+                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_SLOW_KEYS));
+        mAccessibilityStickyKeys = Objects.requireNonNull(
+                mKeyboardA11yCategory.findPreference(ACCESSIBILITY_STICKY_KEYS));
+
+        FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
+        mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
         mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
         mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
         if (mSupportsFirmwareUpdate) {
@@ -120,10 +151,24 @@
         if (!isModifierKeySettingsEnabled) {
             mKeyboardAssistanceCategory.removePreference(findPreference(MODIFIER_KEYS_SETTINGS));
         }
+        if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
+            mKeyboardA11yCategory.removePreference(mAccessibilityBounceKeys);
+        }
+        if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+            mKeyboardA11yCategory.removePreference(mAccessibilitySlowKeys);
+        }
+        if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
+            mKeyboardA11yCategory.removePreference(mAccessibilityStickyKeys);
+        }
         InputDeviceIdentifier inputDeviceIdentifier = activity.getIntent().getParcelableExtra(
-                KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
+                KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
+                InputDeviceIdentifier.class);
         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;
         }
@@ -134,7 +179,8 @@
     }
 
     private static boolean isAutoSelection(Bundle bundle, InputDeviceIdentifier identifier) {
-        if (bundle != null && bundle.getParcelable(EXTRA_AUTO_SELECTION) != null) {
+        if (bundle != null && bundle.getParcelable(EXTRA_AUTO_SELECTION,
+                InputDeviceIdentifier.class) != null) {
             return false;
         }
         return identifier != null;
@@ -156,9 +202,15 @@
         mLastHardKeyboards.clear();
         scheduleUpdateHardKeyboards();
         mIm.registerInputDeviceListener(this, null);
-        mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener(
+        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(
                 mShowVirtualKeyboardSwitchPreferenceChangeListener);
-        registerShowVirtualKeyboardSettingsObserver();
+        Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(
+                mAccessibilityBounceKeysSwitchPreferenceChangeListener);
+        Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(
+                mAccessibilitySlowKeysSwitchPreferenceChangeListener);
+        Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(
+                mAccessibilityStickyKeysSwitchPreferenceChangeListener);
+        registerSettingsObserver();
     }
 
     @Override
@@ -166,8 +218,11 @@
         super.onPause();
         mLastHardKeyboards.clear();
         mIm.unregisterInputDeviceListener(this);
-        mShowVirtualKeyboardSwitch.setOnPreferenceChangeListener(null);
-        unregisterShowVirtualKeyboardSettingsObserver();
+        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setOnPreferenceChangeListener(null);
+        Objects.requireNonNull(mAccessibilityBounceKeys).setOnPreferenceChangeListener(null);
+        Objects.requireNonNull(mAccessibilitySlowKeys).setOnPreferenceChangeListener(null);
+        Objects.requireNonNull(mAccessibilityStickyKeys).setOnPreferenceChangeListener(null);
+        unregisterSettingsObserver();
     }
 
     @Override
@@ -254,6 +309,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);
@@ -261,6 +326,16 @@
             mFeatureProvider.addFirmwareUpdateCategory(getPrefContext(), preferenceScreen);
         }
         updateShowVirtualKeyboardSwitch();
+
+        if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()
+                || InputSettings.isAccessibilityStickyKeysFeatureEnabled()
+                || InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+            Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
+            preferenceScreen.addPreference(mKeyboardA11yCategory);
+            updateAccessibilityBounceKeysSwitch();
+            updateAccessibilitySlowKeysSwitch();
+            updateAccessibilityStickyKeysSwitch();
+        }
     }
 
     private void showKeyboardLayoutDialog(InputDeviceIdentifier inputDeviceIdentifier) {
@@ -281,25 +356,74 @@
                 .launch();
     }
 
-    private void registerShowVirtualKeyboardSettingsObserver() {
-        unregisterShowVirtualKeyboardSettingsObserver();
-        getActivity().getContentResolver().registerContentObserver(
-                Secure.getUriFor(Secure.SHOW_IME_WITH_HARD_KEYBOARD),
+    private void registerSettingsObserver() {
+        unregisterSettingsObserver();
+        ContentResolver contentResolver = getActivity().getContentResolver();
+        contentResolver.registerContentObserver(
+                sVirtualKeyboardSettingsUri,
                 false,
                 mContentObserver,
                 UserHandle.myUserId());
+        if (InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
+            contentResolver.registerContentObserver(
+                    sAccessibilityBounceKeysUri,
+                    false,
+                    mContentObserver,
+                    UserHandle.myUserId());
+        }
+        if (InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+            contentResolver.registerContentObserver(
+                    sAccessibilitySlowKeysUri,
+                    false,
+                    mContentObserver,
+                    UserHandle.myUserId());
+        }
+        if (InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
+            contentResolver.registerContentObserver(
+                    sAccessibilityStickyKeysUri,
+                    false,
+                    mContentObserver,
+                    UserHandle.myUserId());
+        }
         updateShowVirtualKeyboardSwitch();
+        updateAccessibilityBounceKeysSwitch();
+        updateAccessibilitySlowKeysSwitch();
+        updateAccessibilityStickyKeysSwitch();
     }
 
-    private void unregisterShowVirtualKeyboardSettingsObserver() {
+    private void unregisterSettingsObserver() {
         getActivity().getContentResolver().unregisterContentObserver(mContentObserver);
     }
 
     private void updateShowVirtualKeyboardSwitch() {
-        mShowVirtualKeyboardSwitch.setChecked(
+        Objects.requireNonNull(mShowVirtualKeyboardSwitch).setChecked(
                 Secure.getInt(getContentResolver(), Secure.SHOW_IME_WITH_HARD_KEYBOARD, 0) != 0);
     }
 
+    private void updateAccessibilityBounceKeysSwitch() {
+        if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
+            return;
+        }
+        Objects.requireNonNull(mAccessibilityBounceKeys).setChecked(
+                InputSettings.isAccessibilityBounceKeysEnabled(getContext()));
+    }
+
+    private void updateAccessibilitySlowKeysSwitch() {
+        if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
+            return;
+        }
+        Objects.requireNonNull(mAccessibilitySlowKeys).setChecked(
+                InputSettings.isAccessibilitySlowKeysEnabled(getContext()));
+    }
+
+    private void updateAccessibilityStickyKeysSwitch() {
+        if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
+            return;
+        }
+        Objects.requireNonNull(mAccessibilityStickyKeys).setChecked(
+                InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
+    }
+
     private void toggleKeyboardShortcutsMenu() {
         getActivity().requestShowKeyboardShortcuts();
     }
@@ -313,10 +437,38 @@
                 return true;
             };
 
+    private final OnPreferenceChangeListener
+            mAccessibilityBounceKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
+                InputSettings.setAccessibilityBounceKeysThreshold(getContext(),
+                        ((Boolean) newValue) ? 500 : 0);
+                return true;
+            };
+
+    private final OnPreferenceChangeListener
+            mAccessibilitySlowKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
+                InputSettings.setAccessibilitySlowKeysThreshold(getContext(),
+                        ((Boolean) newValue) ? 500 : 0);
+                return true;
+            };
+
+    private final OnPreferenceChangeListener
+            mAccessibilityStickyKeysSwitchPreferenceChangeListener = (preference, newValue) -> {
+                InputSettings.setAccessibilityStickyKeysEnabled(getContext(), (Boolean) newValue);
+                return true;
+            };
+
     private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
         @Override
-        public void onChange(boolean selfChange) {
-            updateShowVirtualKeyboardSwitch();
+        public void onChange(boolean selfChange, Uri uri) {
+            if (sVirtualKeyboardSettingsUri.equals(uri)) {
+                updateShowVirtualKeyboardSwitch();
+            } else if (sAccessibilityBounceKeysUri.equals(uri)) {
+                updateAccessibilityBounceKeysSwitch();
+            } else if (sAccessibilitySlowKeysUri.equals(uri)) {
+                updateAccessibilitySlowKeysSwitch();
+            } else if (sAccessibilityStickyKeysUri.equals(uri)) {
+                updateAccessibilityStickyKeysSwitch();
+            }
         }
     };
 
@@ -336,7 +488,8 @@
 
         if (mIntentWaitingForResult != null) {
             InputDeviceIdentifier inputDeviceIdentifier = mIntentWaitingForResult
-                    .getParcelableExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
+                    .getParcelableExtra(KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER,
+                            InputDeviceIdentifier.class);
             mIntentWaitingForResult = null;
             showKeyboardLayoutDialog(inputDeviceIdentifier);
         }
@@ -374,7 +527,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 +558,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
@@ -449,5 +612,10 @@
                     sir.xmlResId = R.xml.physical_keyboard_settings;
                     return Arrays.asList(sir);
                 }
+
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    return !getHardKeyboards(context).isEmpty();
+                }
             };
 }
diff --git a/src/com/android/settings/inputmethod/SpellCheckerPreference.java b/src/com/android/settings/inputmethod/SpellCheckerPreference.java
index 116f1c7..b8028fe 100644
--- a/src/com/android/settings/inputmethod/SpellCheckerPreference.java
+++ b/src/com/android/settings/inputmethod/SpellCheckerPreference.java
@@ -25,6 +25,7 @@
 import android.view.View.OnClickListener;
 import android.view.textservice.SpellCheckerInfo;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog.Builder;
 import androidx.preference.PreferenceViewHolder;
 
@@ -41,12 +42,19 @@
 class SpellCheckerPreference extends CustomListPreference {
 
     private final SpellCheckerInfo[] mScis;
-    private Intent mIntent;
+    @VisibleForTesting
+    Intent mIntent;
 
     public SpellCheckerPreference(final Context context, final SpellCheckerInfo[] scis) {
         super(context, null);
         mScis = scis;
+        setLayoutResource(
+                com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target);
+
         setWidgetLayoutResource(R.layout.preference_widget_gear);
+        if (scis == null) {
+            return;
+        }
         CharSequence[] labels = new CharSequence[scis.length];
         CharSequence[] values = new CharSequence[scis.length];
         for (int i = 0 ; i < scis.length; i++) {
@@ -105,14 +113,26 @@
     @Override
     public void onBindViewHolder(PreferenceViewHolder view) {
         super.onBindViewHolder(view);
+        final View divider = view.findViewById(
+                com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
+        final View widgetFrame = view.findViewById(android.R.id.widget_frame);
+        if (divider != null) {
+            divider.setVisibility(mIntent != null ? View.VISIBLE : View.GONE);
+        }
+        if (widgetFrame != null) {
+            widgetFrame.setVisibility(mIntent != null ? View.VISIBLE : View.GONE);
+        }
+
         View settingsButton = view.findViewById(R.id.settings_button);
-        settingsButton.setVisibility(mIntent != null ? View.VISIBLE : View.INVISIBLE);
-        settingsButton.setOnClickListener(new OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                onSettingsButtonClicked();
-            }
-        });
+        if (settingsButton != null) {
+            settingsButton.setVisibility(mIntent != null ? View.VISIBLE : View.INVISIBLE);
+            settingsButton.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    onSettingsButtonClicked();
+                }
+            });
+        }
     }
 
     private void onSettingsButtonClicked() {
diff --git a/src/com/android/settings/inputmethod/SpellCheckersSettings.java b/src/com/android/settings/inputmethod/SpellCheckersSettings.java
index 99f7a4e..b4d7570 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();
@@ -133,6 +133,7 @@
             if (preference instanceof SpellCheckerPreference) {
                 final SpellCheckerPreference pref = (SpellCheckerPreference) preference;
                 pref.setSelected(mCurrentSci);
+                pref.setEnabled(mEnabledScis != null);
             }
         }
         mSpellCheckerLanaguagePref.setEnabled(isSpellCheckerEnabled && mCurrentSci != null);
@@ -144,7 +145,8 @@
             return getString(R.string.spell_checker_not_selected);
         }
         if (subtype == null) {
-            return getString(R.string.use_system_language_to_select_input_method_subtypes);
+            return getString(com.android.settingslib.R
+                    .string.use_system_language_to_select_input_method_subtypes);
         }
         return subtype.getDisplayName(
                 getActivity(), sci.getPackageName(), sci.getServiceInfo().applicationInfo);
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/TrackpadSettings.java b/src/com/android/settings/inputmethod/TrackpadSettings.java
index 9be610f..4955933 100644
--- a/src/com/android/settings/inputmethod/TrackpadSettings.java
+++ b/src/com/android/settings/inputmethod/TrackpadSettings.java
@@ -23,7 +23,9 @@
 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 TrackpadSettings extends DashboardFragment {
 
     private static final String TAG = "TrackpadSettings";
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/inputmethod/TrackpadTouchGestureSettings.java b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
index 5e92caf..44d77a3 100644
--- a/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
+++ b/src/com/android/settings/inputmethod/TrackpadTouchGestureSettings.java
@@ -23,7 +23,9 @@
 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 TrackpadTouchGestureSettings extends DashboardFragment {
 
     private static final String TAG = "TrackpadTouchGestureSettings";
diff --git a/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java b/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java
index e0c016f..bb8174e 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryCursorLoader.java
@@ -94,6 +94,8 @@
             hashSet.add(hash);
             result.addRow(new Object[]{id, word, shortcut});
         }
+        // The cursor needs to be closed after use, otherwise it will cause resource leakage
+        candidate.close();
         return result;
     }
 }
diff --git a/src/com/android/settings/inputmethod/UserDictionarySettings.java b/src/com/android/settings/inputmethod/UserDictionarySettings.java
index f51629d..16a2299 100644
--- a/src/com/android/settings/inputmethod/UserDictionarySettings.java
+++ b/src/com/android/settings/inputmethod/UserDictionarySettings.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.inputmethod;
 
-import android.annotation.Nullable;
 import android.app.ActionBar;
 import android.app.settings.SettingsEnums;
 import android.content.ContentResolver;
@@ -39,6 +38,7 @@
 import android.widget.SimpleCursorAdapter;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.fragment.app.ListFragment;
 import androidx.loader.app.LoaderManager;
 import androidx.loader.content.Loader;
@@ -76,7 +76,7 @@
         super.onCreate(savedInstanceState);
 
         mVisibilityLoggerMixin = new VisibilityLoggerMixin(getMetricsCategory(),
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider());
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider());
 
         final Intent intent = getActivity().getIntent();
         final String localeFromIntent =
diff --git a/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceController.java b/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceController.java
index 61e6a42..e6de7a5 100644
--- a/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceController.java
+++ b/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceController.java
@@ -61,7 +61,7 @@
     public void updateState(Preference preference) {
         final List<InputMethodInfo> imis = mImm.getEnabledInputMethodList();
         if (imis == null) {
-            preference.setSummary(R.string.summary_empty);
+            preference.setSummary(com.android.settingslib.R.string.summary_empty);
             return;
         }
 
@@ -77,7 +77,7 @@
             labels.add(imi.loadLabel(mPm).toString());
         }
         if (labels.isEmpty()) {
-            preference.setSummary(R.string.summary_empty);
+            preference.setSummary(com.android.settingslib.R.string.summary_empty);
             return;
         }
 
diff --git a/src/com/android/settings/language/PhoneLanguagePreferenceController.java b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
index 0d5aa37..3a382e4 100644
--- a/src/com/android/settings/language/PhoneLanguagePreferenceController.java
+++ b/src/com/android/settings/language/PhoneLanguagePreferenceController.java
@@ -49,7 +49,7 @@
         if (preference == null) {
             return;
         }
-        final String localeNames = FeatureFactory.getFactory(mContext)
+        final String localeNames = FeatureFactory.getFeatureFactory()
                 .getLocaleFeatureProvider().getLocaleNames();
         preference.setSummary(localeNames);
     }
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
index 092207b..b284c8d 100644
--- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -16,12 +16,20 @@
 
 package com.android.settings.localepicker;
 
+import static com.android.settings.flags.Flags.localeNotificationEnabled;
+
 import android.app.FragmentTransaction;
 import android.app.LocaleManager;
+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;
 import android.os.Bundle;
 import android.os.LocaleList;
+import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.MenuItem;
@@ -29,6 +37,7 @@
 import android.widget.FrameLayout;
 import android.widget.ListView;
 
+import androidx.core.app.NotificationCompat;
 import androidx.core.view.ViewCompat;
 
 import com.android.internal.app.LocalePickerWithRegion;
@@ -37,15 +46,27 @@
 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";
 
     private String mPackageName;
     private LocalePickerWithRegion mLocalePickerWithRegion;
     private AppLocaleDetails mAppLocaleDetails;
     private View mAppLocaleDetailContainer;
+    private NotificationController mNotificationController;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -71,6 +92,8 @@
 
         setTitle(R.string.app_locale_picker_title);
         getActionBar().setDisplayHomeAsUpEnabled(true);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        mNotificationController = NotificationController.getInstance(this);
 
         mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
                 this,
@@ -99,7 +122,9 @@
         if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
             setAppDefaultLocale("");
         } else {
+            logLocaleSource(localeInfo);
             setAppDefaultLocale(localeInfo.getLocale().toLanguageTag());
+            broadcastAppLocaleChange(localeInfo);
         }
         finish();
     }
@@ -131,6 +156,85 @@
         localeManager.setApplicationLocales(mPackageName, LocaleList.forLanguageTags(languageTag));
     }
 
+    private void broadcastAppLocaleChange(LocaleStore.LocaleInfo localeInfo) {
+        if (!localeNotificationEnabled()) {
+            Log.w(TAG, "Locale notification is not enabled");
+            return;
+        }
+        if (localeInfo.isAppCurrentLocale()) {
+            return;
+        }
+        try {
+            String localeTag = localeInfo.getLocale().toLanguageTag();
+            int uid = getPackageManager().getApplicationInfo(mPackageName,
+                    PackageManager.GET_META_DATA).uid;
+            boolean launchNotification = mNotificationController.shouldTriggerNotification(
+                    uid, localeTag);
+            if (launchNotification) {
+                triggerNotification(
+                        mNotificationController.getNotificationId(localeTag),
+                        getString(R.string.title_system_locale_addition,
+                                localeInfo.getFullNameNative()),
+                        getString(R.string.desc_system_locale_addition),
+                        localeTag);
+                mMetricsFeatureProvider.action(this,
+                        SettingsEnums.ACTION_NOTIFICATION_FOR_SYSTEM_LOCALE);
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+            Log.e(TAG, "Unable to find info for package: " + mPackageName);
+        }
+    }
+
+    private void triggerNotification(
+            int notificationId,
+            String title,
+            String description,
+            String localeTag) {
+        NotificationManager notificationManager = getSystemService(NotificationManager.class);
+        final boolean channelExist =
+                notificationManager.getNotificationChannel(CHANNEL_ID_SUGGESTION) != null;
+
+        // Create an alert channel if it does not exist
+        if (!channelExist) {
+            NotificationChannel channel =
+                    new NotificationChannel(
+                            CHANNEL_ID_SUGGESTION,
+                            CHANNEL_ID_SUGGESTION_TO_USER,
+                            NotificationManager.IMPORTANCE_DEFAULT);
+            channel.setSound(/* sound */ null, /* audioAttributes */ null); // silent notification
+            notificationManager.createNotificationChannel(channel);
+        }
+        final NotificationCompat.Builder builder =
+                new NotificationCompat.Builder(this, CHANNEL_ID_SUGGESTION)
+                        .setSmallIcon(R.drawable.ic_settings_language)
+                        .setAutoCancel(true)
+                        .setContentTitle(title)
+                        .setContentText(description)
+                        .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
+                        .setContentIntent(
+                                createPendingIntent(localeTag, notificationId, false))
+                        .setDeleteIntent(
+                                createPendingIntent(localeTag, notificationId, true));
+        notificationManager.notify(notificationId, builder.build());
+    }
+
+    private PendingIntent createPendingIntent(String locale, int notificationId,
+            boolean isDeleteIntent) {
+        Intent intent = isDeleteIntent
+                ? new Intent(this, NotificationCancelReceiver.class)
+                : new Intent(this, NotificationActionActivity.class)
+                        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+
+        intent.putExtra(EXTRA_APP_LOCALE, locale)
+                .putExtra(EXTRA_NOTIFICATION_ID, notificationId);
+        int flag = PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT;
+        int elapsedTime = (int) SystemClock.elapsedRealtimeNanos();
+
+        return isDeleteIntent
+                ? PendingIntent.getBroadcast(this, elapsedTime, intent, flag)
+                : PendingIntent.getActivity(this, elapsedTime, intent, flag);
+    }
+
     private View launchAppLocaleDetailsPage() {
         FrameLayout appLocaleDetailsContainer = new FrameLayout(this);
         appLocaleDetailsContainer.setId(R.id.layout_app_locale_details);
@@ -177,4 +281,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/LocaleDialogFragment.java b/src/com/android/settings/localepicker/LocaleDialogFragment.java
index 2457e79..91cbc87 100644
--- a/src/com/android/settings/localepicker/LocaleDialogFragment.java
+++ b/src/com/android/settings/localepicker/LocaleDialogFragment.java
@@ -51,6 +51,7 @@
 
     static final int DIALOG_CONFIRM_SYSTEM_DEFAULT = 1;
     static final int DIALOG_NOT_AVAILABLE_LOCALE = 2;
+    static final int DIALOG_ADD_SYSTEM_LOCALE = 3;
 
     static final String ARG_DIALOG_TYPE = "arg_dialog_type";
     static final String ARG_TARGET_LOCALE = "arg_target_locale";
@@ -95,7 +96,8 @@
             mShouldKeepDialog = savedInstanceState.getBoolean(ARG_SHOW_DIALOG, false);
             // Keep the dialog if user rotates the device, otherwise close the confirm system
             // default dialog only when user changes the locale.
-            if (type == DIALOG_CONFIRM_SYSTEM_DEFAULT && !mShouldKeepDialog) {
+            if ((type == DIALOG_CONFIRM_SYSTEM_DEFAULT || type == DIALOG_ADD_SYSTEM_LOCALE)
+                    && !mShouldKeepDialog) {
                 dismiss();
             }
         }
@@ -185,14 +187,15 @@
             Bundle arguments = dialogFragment.getArguments();
             mDialogType = arguments.getInt(ARG_DIALOG_TYPE);
             mLocaleInfo = (LocaleStore.LocaleInfo) arguments.getSerializable(ARG_TARGET_LOCALE);
-            mMetricsFeatureProvider = FeatureFactory.getFactory(
-                    mContext).getMetricsFeatureProvider();
+            mMetricsFeatureProvider =
+                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
             mParent = parentFragment;
         }
 
         @Override
         public void onClick(DialogInterface dialog, int which) {
-            if (mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
+            if (mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT
+                    || mDialogType == DIALOG_ADD_SYSTEM_LOCALE) {
                 int result = Activity.RESULT_CANCELED;
                 boolean changed = false;
                 if (which == DialogInterface.BUTTON_POSITIVE) {
@@ -201,9 +204,12 @@
                 }
                 Intent intent = new Intent();
                 Bundle bundle = new Bundle();
-                bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT);
+                bundle.putInt(ARG_DIALOG_TYPE, mDialogType);
+                bundle.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, mLocaleInfo);
                 intent.putExtras(bundle);
-                mParent.onActivityResult(DIALOG_CONFIRM_SYSTEM_DEFAULT, result, intent);
+                mParent.onActivityResult(mDialogType, result, intent);
+                mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE,
+                        changed);
             }
             mShouldKeepDialog = false;
         }
@@ -227,6 +233,15 @@
                     dialogContent.mMessage = mContext.getString(R.string.desc_unavailable_locale);
                     dialogContent.mPositiveButton = mContext.getString(R.string.okay);
                     break;
+                case DIALOG_ADD_SYSTEM_LOCALE:
+                    dialogContent.mTitle = String.format(mContext.getString(
+                                    R.string.title_system_locale_addition),
+                            mLocaleInfo.getFullNameNative());
+                    dialogContent.mMessage = mContext.getString(
+                            R.string.desc_system_locale_addition);
+                    dialogContent.mPositiveButton = mContext.getString(R.string.add);
+                    dialogContent.mNegativeButton = mContext.getString(R.string.cancel);
+                    break;
                 default:
                     break;
             }
diff --git a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
index bfe0749..24d9927 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,11 @@
                     "Negative position in onItemMove %d -> %d", fromPosition, toPosition));
         }
 
+        if (fromPosition != toPosition) {
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+                    .action(mContext, SettingsEnums.ACTION_REORDER_LANGUAGE);
+        }
+
         notifyItemChanged(fromPosition); // to update the numbers
         notifyItemChanged(toPosition);
         notifyItemMoved(fromPosition, toPosition);
@@ -260,10 +270,14 @@
     void removeChecked() {
         int itemCount = mFeedItemList.size();
         LocaleStore.LocaleInfo localeInfo;
+        NotificationController controller = NotificationController.getInstance(mContext);
         for (int i = itemCount - 1; i >= 0; i--) {
             localeInfo = mFeedItemList.get(i);
             if (localeInfo.getChecked()) {
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
+                        .action(mContext, SettingsEnums.ACTION_REMOVE_LANGUAGE);
                 mFeedItemList.remove(i);
+                controller.removeNotificationInfo(localeInfo.getLocale().toLanguageTag());
             }
         }
         notifyDataSetChanged();
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 a9ea42c..b09e22c 100644
--- a/src/com/android/settings/localepicker/LocaleListEditor.java
+++ b/src/com/android/settings/localepicker/LocaleListEditor.java
@@ -18,6 +18,9 @@
 
 import static android.os.UserManager.DISALLOW_CONFIG_LOCALE;
 
+import static com.android.settings.flags.Flags.localeNotificationEnabled;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.LocaleDialogFragment.DIALOG_ADD_SYSTEM_LOCALE;
 import static com.android.settings.localepicker.LocaleDialogFragment.DIALOG_CONFIRM_SYSTEM_DEFAULT;
 
 import android.app.Activity;
@@ -30,6 +33,7 @@
 import android.os.LocaleList;
 import android.provider.Settings;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -65,28 +69,36 @@
  */
 @SearchIndexable
 public class LocaleListEditor extends RestrictedSettingsFragment implements View.OnTouchListener {
-
     protected static final String INTENT_LOCALE_KEY = "localeInfo";
+    protected static final String EXTRA_SYSTEM_LOCALE_DIALOG_TYPE = "system_locale_dialog_type";
+    protected static final String LOCALE_SUGGESTION = "locale_suggestion";
+
+    private static final String TAG = LocaleListEditor.class.getSimpleName();
     private static final String CFGKEY_REMOVE_MODE = "localeRemoveMode";
     private static final String CFGKEY_REMOVE_DIALOG = "showingLocaleRemoveDialog";
-    private static final int MENU_ID_REMOVE = Menu.FIRST + 1;
-    private static final int REQUEST_LOCALE_PICKER = 0;
-
+    private static final String CFGKEY_ADD_LOCALE = "localeAdded";
     private static final String INDEX_KEY_ADD_LANGUAGE = "add_language";
     private static final String KEY_LANGUAGES_PICKER = "languages_picker";
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
     private static final String TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT = "dialog_confirm_system_default";
     private static final String TAG_DIALOG_NOT_AVAILABLE = "dialog_not_available_locale";
+    private static final String TAG_DIALOG_ADD_SYSTEM_LOCALE = "dialog_add_system_locale";
+    private static final int MENU_ID_REMOVE = Menu.FIRST + 1;
+    private static final int REQUEST_LOCALE_PICKER = 0;
 
     private LocaleDragAndDropAdapter mAdapter;
     private Menu mMenu;
     private View mAddLanguage;
+    private AlertDialog mSuggestionDialog = null;
     private boolean mRemoveMode;
     private boolean mShowingRemoveDialog;
+    private boolean mLocaleAdditionMode = false;
     private boolean mIsUiRestricted;
 
     private LayoutPreference mLocalePickerPreference;
     private LocaleHelperPreferenceController mLocaleHelperPreferenceController;
     private FragmentManager mFragmentManager;
+    private TermsOfAddressCategoryController mTermsOfAddressCategoryController;
 
     public LocaleListEditor() {
         super(DISALLOW_CONFIG_LOCALE);
@@ -108,6 +120,9 @@
         final PreferenceScreen screen = getPreferenceScreen();
         mLocalePickerPreference = screen.findPreference(KEY_LANGUAGES_PICKER);
         mLocaleHelperPreferenceController.displayPreference(screen);
+        mTermsOfAddressCategoryController = new TermsOfAddressCategoryController(activity,
+                KEY_CATEGORY_TERMS_OF_ADDRESS);
+        mTermsOfAddressCategoryController.displayPreference(screen);
 
         LocaleStore.fillCache(this.getContext());
         final List<LocaleStore.LocaleInfo> feedsList = getUserLocaleList();
@@ -146,6 +161,7 @@
         if (savedInstanceState != null) {
             mRemoveMode = savedInstanceState.getBoolean(CFGKEY_REMOVE_MODE, false);
             mShowingRemoveDialog = savedInstanceState.getBoolean(CFGKEY_REMOVE_DIALOG, false);
+            mLocaleAdditionMode = savedInstanceState.getBoolean(CFGKEY_ADD_LOCALE, false);
         }
         setRemoveMode(mRemoveMode);
 
@@ -161,6 +177,11 @@
         if (mShowingRemoveDialog) {
             showRemoveLocaleWarningDialog();
         }
+        Log.d(TAG, "LocaleAdditionMode:" + mLocaleAdditionMode);
+        if (!mLocaleAdditionMode && shouldShowConfirmationDialog()) {
+            showDialogForAddedLocale();
+            mLocaleAdditionMode = true;
+        }
     }
 
     @Override
@@ -168,6 +189,7 @@
         super.onSaveInstanceState(outState);
         outState.putBoolean(CFGKEY_REMOVE_MODE, mRemoveMode);
         outState.putBoolean(CFGKEY_REMOVE_DIALOG, mShowingRemoveDialog);
+        outState.putBoolean(CFGKEY_ADD_LOCALE, mLocaleAdditionMode);
         mAdapter.saveState(outState);
     }
 
@@ -202,6 +224,7 @@
             localeInfo = mayAppendUnicodeTags(localeInfo, preferencesTags);
             mAdapter.addLocale(localeInfo);
             updateVisibilityOfRemoveMenu();
+            mMetricsFeatureProvider.action(getContext(), SettingsEnums.ACTION_ADD_LANGUAGE);
         } else if (requestCode == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
             localeInfo = mAdapter.getFeedItemList().get(0);
             if (resultCode == Activity.RESULT_OK) {
@@ -215,13 +238,24 @@
                     localeDialogFragment.setArguments(args);
                     localeDialogFragment.show(mFragmentManager, TAG_DIALOG_NOT_AVAILABLE);
                     mMetricsFeatureProvider.action(getContext(),
-                            SettingsEnums.ACTION_NOT_SUPPORTED_SYSTEM_LANGUAGE,
-                            localeInfo.getLocale().toLanguageTag());
+                            SettingsEnums.ACTION_NOT_SUPPORTED_SYSTEM_LANGUAGE);
                 }
             } else {
                 mAdapter.notifyListChanged(localeInfo);
             }
             mAdapter.setCacheItemList();
+        } else if (requestCode == DIALOG_ADD_SYSTEM_LOCALE) {
+            int action = SettingsEnums.ACTION_CANCEL_SYSTEM_LOCALE_FROM_RECOMMENDATION;
+            if (resultCode == Activity.RESULT_OK) {
+                localeInfo = (LocaleStore.LocaleInfo) data.getExtras().getSerializable(
+                        LocaleDialogFragment.ARG_TARGET_LOCALE);
+                String preferencesTags = Settings.System.getString(
+                        getContext().getContentResolver(),
+                        Settings.System.LOCALE_PREFERENCES);
+                mAdapter.addLocale(mayAppendUnicodeTags(localeInfo, preferencesTags));
+                action = SettingsEnums.ACTION_ADD_SYSTEM_LOCALE_FROM_RECOMMENDATION;
+            }
+            mMetricsFeatureProvider.action(getContext(), action);
         }
         super.onActivityResult(requestCode, resultCode, data);
     }
@@ -250,6 +284,81 @@
         updateVisibilityOfRemoveMenu();
     }
 
+    private boolean shouldShowConfirmationDialog() {
+        Intent intent = this.getIntent();
+        String dialogType = intent.getStringExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE);
+        String localeTag = intent.getStringExtra(EXTRA_APP_LOCALE);
+        String callingPackage = getActivity().getCallingPackage();
+        if (!localeNotificationEnabled()
+                || !getContext().getPackageName().equals(callingPackage)
+                || !isValidDialogType(dialogType)
+                || !isValidLocale(localeTag)
+                || LocaleUtils.isInSystemLocale(localeTag)) {
+            return false;
+        }
+        return true;
+    }
+
+    @VisibleForTesting
+    NotificationController getNotificationController() {
+        return NotificationController.getInstance(getContext());
+    }
+
+    private boolean isValidDialogType(String type) {
+        return LOCALE_SUGGESTION.equals(type);
+    }
+
+    private boolean isValidLocale(String tag) {
+        if (TextUtils.isEmpty(tag)) {
+            return false;
+        }
+        String[] systemLocales = getSupportedLocales();
+        for (String systemTag : systemLocales) {
+            if (systemTag.equals(tag)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @VisibleForTesting
+    String[] getSupportedLocales() {
+        return LocalePicker.getSupportedLocales(getContext());
+    }
+
+    private void showDialogForAddedLocale() {
+        Log.d(TAG, "show confirmation dialog");
+        Intent intent = this.getIntent();
+        String dialogType = intent.getStringExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE);
+        String appLocaleTag = intent.getStringExtra(EXTRA_APP_LOCALE);
+
+        LocaleStore.LocaleInfo localeInfo = LocaleStore.getLocaleInfo(
+                Locale.forLanguageTag(appLocaleTag));
+        final LocaleDialogFragment localeDialogFragment =
+                LocaleDialogFragment.newInstance();
+        Bundle args = new Bundle();
+        args.putInt(LocaleDialogFragment.ARG_DIALOG_TYPE, DIALOG_ADD_SYSTEM_LOCALE);
+        args.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, localeInfo);
+        localeDialogFragment.setArguments(args);
+        localeDialogFragment.show(mFragmentManager, TAG_DIALOG_ADD_SYSTEM_LOCALE);
+    }
+
+    private void customizeLayout(AlertDialog.Builder dialogBuilder, String language) {
+        View dialogView = getLocaleDialogView();
+        dialogBuilder.setView(dialogView);
+        TextView title = dialogView.findViewById(R.id.dialog_title);
+        title.setText(
+                String.format(getContext().getResources().getString(
+                        R.string.title_system_locale_addition), language));
+        TextView message = dialogView.findViewById(R.id.dialog_msg);
+        message.setText(R.string.desc_system_locale_addition);
+    }
+
+    protected View getLocaleDialogView() {
+        LayoutInflater inflater = this.getLayoutInflater();
+        return inflater.inflate(R.layout.locale_dialog, null);
+    }
+
     // Show the appropriate warning when the user tries to remove locales.
     // Shows no warning if there is no locale checked, shows a warning
     // about removing all the locales if all of them are checked, and
@@ -364,6 +473,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);
@@ -377,7 +487,7 @@
         mAddLanguage.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                         .logSettingsTileClick(INDEX_KEY_ADD_LANGUAGE, getMetricsCategory());
 
                 final Intent intent = new Intent(getActivity(),
@@ -397,7 +507,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
new file mode 100644
index 0000000..0e89366
--- /dev/null
+++ b/src/com/android/settings/localepicker/LocaleNotificationDataManager.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.google.gson.Gson;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A data manager that manages the {@link SharedPreferences} for the locale notification
+ * information.
+ */
+public class LocaleNotificationDataManager {
+    public static final String LOCALE_NOTIFICATION = "locale_notification";
+    private Context mContext;
+
+    /**
+     * Constructor
+     *
+     * @param context The context
+     */
+    public LocaleNotificationDataManager(Context context) {
+        this.mContext = context;
+    }
+
+    private static SharedPreferences getSharedPreferences(Context context) {
+        return context.getSharedPreferences(LOCALE_NOTIFICATION, Context.MODE_PRIVATE);
+    }
+
+    /**
+     * Adds one entry with the corresponding locale and {@link NotificationInfo} to the
+     * {@link SharedPreferences}.
+     *
+     * @param locale A locale which the application sets to
+     * @param info   The notification metadata
+     */
+    public void putNotificationInfo(String locale, NotificationInfo info) {
+        Gson gson = new Gson();
+        String json = gson.toJson(info);
+        SharedPreferences.Editor editor = getSharedPreferences(mContext).edit();
+        editor.putString(locale, json);
+        editor.apply();
+    }
+
+    /**
+     * Removes one entry with the corresponding locale from the {@link SharedPreferences}.
+     *
+     * @param locale A locale which the application sets to
+     */
+    public void removeNotificationInfo(String locale) {
+        SharedPreferences.Editor editor = getSharedPreferences(mContext).edit();
+        editor.remove(locale);
+        editor.apply();
+    }
+
+    /**
+     * Gets the {@link NotificationInfo} with the associated locale from the
+     * {@link SharedPreferences}.
+     *
+     * @param locale A locale which the application sets to
+     * @return {@link NotificationInfo}
+     */
+    public NotificationInfo getNotificationInfo(String locale) {
+        Gson gson = new Gson();
+        String json = getSharedPreferences(mContext).getString(locale, "");
+        return json.isEmpty() ? null : gson.fromJson(json, NotificationInfo.class);
+    }
+
+    /**
+     * Gets the locale notification map.
+     *
+     * @return A map which maps the locale to the corresponding {@link NotificationInfo}
+     */
+    public Map<String, NotificationInfo> getLocaleNotificationInfoMap() {
+        Gson gson = new Gson();
+        Map<String, String> map = (Map<String, String>) getSharedPreferences(mContext).getAll();
+        Map<String, NotificationInfo> result = new HashMap<>(map.size());
+        map.forEach((key, value) -> {
+            result.put(key, gson.fromJson(value, NotificationInfo.class));
+        });
+        return result;
+    }
+
+    /**
+     * Clears the locale notification map.
+     */
+    @VisibleForTesting
+    void clearLocaleNotificationMap() {
+        getSharedPreferences(mContext).edit().clear().apply();
+    }
+}
diff --git a/src/com/android/settings/localepicker/LocaleUtils.java b/src/com/android/settings/localepicker/LocaleUtils.java
new file mode 100644
index 0000000..a84d0be
--- /dev/null
+++ b/src/com/android/settings/localepicker/LocaleUtils.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.os.LocaleList;
+
+import androidx.annotation.NonNull;
+
+import java.util.Locale;
+
+/**
+ * A locale utility class.
+ */
+public class LocaleUtils {
+    /**
+     * Checks if the languageTag is in the system locale. Since in the current design, the system
+     * language list would not show two locales with the same language and region but different
+     * numbering system. So, the u extension has to be stripped out in the process of comparison.
+     *
+     * @param languageTag A language tag
+     * @return true if the locale is in the system locale. Otherwise, false.
+     */
+    public static boolean isInSystemLocale(@NonNull String languageTag) {
+        LocaleList systemLocales = LocaleList.getDefault();
+        Locale localeWithoutUextension =
+                new Locale.Builder()
+                        .setLocale(Locale.forLanguageTag(languageTag))
+                        .clearExtensions()
+                        .build();
+        for (int i = 0; i < systemLocales.size(); i++) {
+            Locale sysLocaleWithoutUextension =
+                    new Locale.Builder().setLocale(systemLocales.get(i)).clearExtensions().build();
+            if (localeWithoutUextension.equals(sysLocaleWithoutUextension)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}
diff --git a/src/com/android/settings/localepicker/NotificationActionActivity.java b/src/com/android/settings/localepicker/NotificationActionActivity.java
new file mode 100644
index 0000000..c15de13
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationActionActivity.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.localepicker;
+
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+import static com.android.settings.localepicker.LocaleListEditor.EXTRA_SYSTEM_LOCALE_DIALOG_TYPE;
+import static com.android.settings.localepicker.LocaleListEditor.LOCALE_SUGGESTION;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.android.settings.overlay.FeatureFactory;
+
+/**
+ * An Activity that launches the system locale settings page.
+ */
+public class NotificationActionActivity extends AppCompatActivity {
+    private static final String TAG = "NotificationActionActivity";
+    private static final int INVALID_NOTIFICATION_ID = -1;
+    private final ActivityResultLauncher<Intent> mStartForResult =
+            registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
+                    result -> {
+                    });
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Intent intent = getIntent();
+        int notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, INVALID_NOTIFICATION_ID);
+        String appLocale = intent.getStringExtra(EXTRA_APP_LOCALE);
+        if (TextUtils.isEmpty(appLocale) || notificationId == INVALID_NOTIFICATION_ID) {
+            finish();
+            return;
+        }
+        int savedNotificationID = getNotificationController(this).getNotificationId(appLocale);
+        if (savedNotificationID == notificationId) {
+            Intent actionIntent = new Intent(Settings.ACTION_LOCALE_SETTINGS);
+            actionIntent.putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, LOCALE_SUGGESTION);
+            actionIntent.putExtra(EXTRA_APP_LOCALE, appLocale);
+            actionIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
+            getLauncher().launch(actionIntent);
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(this,
+                    SettingsEnums.ACTION_NOTIFICATION_CLICK_FOR_SYSTEM_LOCALE);
+            finish();
+            return;
+        }
+    }
+
+    @VisibleForTesting
+    protected NotificationController getNotificationController(Context context) {
+        return NotificationController.getInstance(context);
+    }
+
+    @VisibleForTesting
+    protected ActivityResultLauncher<Intent> getLauncher() {
+        return mStartForResult;
+    }
+}
diff --git a/src/com/android/settings/localepicker/NotificationCancelReceiver.java b/src/com/android/settings/localepicker/NotificationCancelReceiver.java
new file mode 100644
index 0000000..f89376b
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationCancelReceiver.java
@@ -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.localepicker;
+
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+
+import android.app.settings.SettingsEnums;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.android.settings.overlay.FeatureFactory;
+
+/**
+ * A Broadcast receiver that handles the locale notification which is swiped away.
+ */
+public class NotificationCancelReceiver extends BroadcastReceiver {
+    private static final String TAG = NotificationCancelReceiver.class.getSimpleName();
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String appLocale = intent.getExtras().getString(EXTRA_APP_LOCALE);
+        int notificationId = intent.getExtras().getInt(EXTRA_NOTIFICATION_ID, -1);
+        int savedNotificationID = getNotificationController(context).getNotificationId(
+                appLocale);
+        Log.i(TAG, "Locale notification is swiped away.");
+        if (savedNotificationID == notificationId) {
+            getNotificationController(context).incrementDismissCount(appLocale);
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(context,
+                    SettingsEnums.ACTION_NOTIFICATION_SWIPE_FOR_SYSTEM_LOCALE);
+        }
+    }
+
+    @VisibleForTesting
+    NotificationController getNotificationController(Context context) {
+        return NotificationController.getInstance(context);
+    }
+}
diff --git a/src/com/android/settings/localepicker/NotificationController.java b/src/com/android/settings/localepicker/NotificationController.java
new file mode 100644
index 0000000..4096705
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationController.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.content.Context;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+
+import java.util.Calendar;
+import java.util.Set;
+
+/**
+ * A controller that evaluates whether the notification can be triggered and update the
+ * SharedPreference.
+ */
+public class NotificationController {
+    private static final String TAG = NotificationController.class.getSimpleName();
+    private static final int DISMISS_COUNT_THRESHOLD = 2;
+    private static final int NOTIFICATION_COUNT_THRESHOLD = 2;
+    private static final int MULTIPLE_BASE = 2;
+    // seven days: 7 * 24 * 60
+    private static final int MIN_DURATION_BETWEEN_NOTIFICATIONS_MIN = 10080;
+    private static final String PROPERTY_MIN_DURATION =
+            "android.localenotification.duration.threshold";
+
+    private static NotificationController sInstance = null;
+
+    private final LocaleNotificationDataManager mDataManager;
+
+    /**
+     * Get {@link NotificationController} instance.
+     *
+     * @param context The context
+     * @return {@link NotificationController} instance
+     */
+    public static synchronized NotificationController getInstance(@NonNull Context context) {
+        if (sInstance == null) {
+            sInstance = new NotificationController(context);
+        }
+        return sInstance;
+    }
+
+    private NotificationController(Context context) {
+        mDataManager = new LocaleNotificationDataManager(context);
+    }
+
+    @VisibleForTesting
+    LocaleNotificationDataManager getDataManager() {
+        return mDataManager;
+    }
+
+    /**
+     * Increment the dismissCount of the notification.
+     *
+     * @param locale A locale used to query the {@link NotificationInfo}
+     */
+    public void incrementDismissCount(@NonNull String locale) {
+        NotificationInfo currentInfo = mDataManager.getNotificationInfo(locale);
+        NotificationInfo newInfo = new NotificationInfo(currentInfo.getUidCollection(),
+                currentInfo.getNotificationCount(),
+                currentInfo.getDismissCount() + 1,
+                currentInfo.getLastNotificationTimeMs(),
+                currentInfo.getNotificationId());
+        mDataManager.putNotificationInfo(locale, newInfo);
+    }
+
+    /**
+     * Whether the notification can be triggered or not.
+     *
+     * @param uid     The application's uid.
+     * @param locale  The application's locale which the user updated to.
+     * @return true if the notification needs to be triggered. Otherwise, false.
+     */
+    public boolean shouldTriggerNotification(int uid, @NonNull String locale) {
+        if (LocaleUtils.isInSystemLocale(locale)) {
+            return false;
+        } else {
+            // Add the uid into the locale's uid list and update the notification count if the
+            // notification can be triggered.
+            return updateLocaleNotificationInfo(uid, locale);
+        }
+    }
+
+    /**
+     * Get the notification id
+     *
+     * @param locale The locale which the application sets to
+     * @return the notification id
+     */
+    public int getNotificationId(@NonNull String locale) {
+        NotificationInfo info = mDataManager.getNotificationInfo(locale);
+        return (info != null) ? info.getNotificationId() : -1;
+    }
+
+    /**
+     * Remove the {@link NotificationInfo} with the corresponding locale
+     *
+     * @param locale The locale which the application sets to
+     */
+    public void removeNotificationInfo(@NonNull String locale) {
+        mDataManager.removeNotificationInfo(locale);
+    }
+
+    private boolean updateLocaleNotificationInfo(int uid, String locale) {
+        NotificationInfo info = mDataManager.getNotificationInfo(locale);
+        if (info == null) {
+            // Create an empty record with the uid and update the SharedPreference.
+            NotificationInfo emptyInfo = new NotificationInfo(Set.of(uid), 0, 0, 0, 0);
+            mDataManager.putNotificationInfo(locale, emptyInfo);
+            return false;
+        }
+        Set uidCollection = info.getUidCollection();
+        if (uidCollection.contains(uid)) {
+            return false;
+        }
+
+        NotificationInfo newInfo =
+                createNotificationInfoWithNewUidAndCount(uidCollection, uid, info);
+        mDataManager.putNotificationInfo(locale, newInfo);
+        return newInfo.getNotificationCount() > info.getNotificationCount();
+    }
+
+    private NotificationInfo createNotificationInfoWithNewUidAndCount(
+            Set<Integer> uidSet, int uid, NotificationInfo info) {
+        int dismissCount = info.getDismissCount();
+        int notificationCount = info.getNotificationCount();
+        long lastNotificationTime = info.getLastNotificationTimeMs();
+        int notificationId = info.getNotificationId();
+        if (dismissCount < DISMISS_COUNT_THRESHOLD
+                && notificationCount < NOTIFICATION_COUNT_THRESHOLD) {
+            // Add the uid into the locale's uid list
+            uidSet.add(uid);
+            // Notification should fire on multiples of 2 apps using the locale.
+            if (uidSet.size() % MULTIPLE_BASE == 0
+                    && !isNotificationFrequent(lastNotificationTime)) {
+                // Increment the count because the notification can be triggered.
+                notificationCount = info.getNotificationCount() + 1;
+                lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+                Log.i(TAG, "notificationCount:" + notificationCount);
+                if (notificationCount == 1) {
+                    notificationId = (int) SystemClock.uptimeMillis();
+                }
+            }
+        }
+        return new NotificationInfo(uidSet, notificationCount, dismissCount, lastNotificationTime,
+                notificationId);
+    }
+
+    /**
+     * Evaluates if the notification is triggered frequently.
+     *
+     * @param lastNotificationTime The timestamp that the last notification was triggered.
+     * @return true if the duration of the two continuous notifications is smaller than the
+     * threshold.
+     * Otherwise, false.
+     */
+    private boolean isNotificationFrequent(long lastNotificationTime) {
+        Calendar time = Calendar.getInstance();
+        int threshold = SystemProperties.getInt(PROPERTY_MIN_DURATION,
+                MIN_DURATION_BETWEEN_NOTIFICATIONS_MIN);
+        time.add(Calendar.MINUTE, threshold * -1);
+        return time.getTimeInMillis() < lastNotificationTime;
+    }
+}
diff --git a/src/com/android/settings/localepicker/NotificationInfo.java b/src/com/android/settings/localepicker/NotificationInfo.java
new file mode 100644
index 0000000..8390826
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationInfo.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.localepicker;
+
+import java.util.Objects;
+import java.util.Set;
+
+class NotificationInfo {
+    private Set<Integer> mUidCollection;
+    private int mNotificationCount;
+    private int mDismissCount;
+    private long mLastNotificationTimeMs;
+    private int mNotificationId;
+
+    private NotificationInfo() {
+    }
+
+    NotificationInfo(Set<Integer> uidCollection, int notificationCount, int dismissCount,
+            long lastNotificationTimeMs, int notificationId) {
+        this.mUidCollection = uidCollection;
+        this.mNotificationCount = notificationCount;
+        this.mDismissCount = dismissCount;
+        this.mLastNotificationTimeMs = lastNotificationTimeMs;
+        this.mNotificationId = notificationId;
+    }
+
+    public Set<Integer> getUidCollection() {
+        return mUidCollection;
+    }
+
+    public int getNotificationCount() {
+        return mNotificationCount;
+    }
+
+    public int getDismissCount() {
+        return mDismissCount;
+    }
+
+    public long getLastNotificationTimeMs() {
+        return mLastNotificationTimeMs;
+    }
+
+    public int getNotificationId() {
+        return mNotificationId;
+    }
+
+    public void setUidCollection(Set<Integer> uidCollection) {
+        this.mUidCollection = uidCollection;
+    }
+
+    public void setNotificationCount(int notificationCount) {
+        this.mNotificationCount = notificationCount;
+    }
+
+    public void setDismissCount(int dismissCount) {
+        this.mDismissCount = dismissCount;
+    }
+
+    public void setLastNotificationTimeMs(long lastNotificationTimeMs) {
+        this.mLastNotificationTimeMs = lastNotificationTimeMs;
+    }
+
+    public void setNotificationId(int notificationId) {
+        this.mNotificationId = notificationId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == null) return false;
+        if (this == o) return true;
+        if (!(o instanceof NotificationInfo)) return false;
+        NotificationInfo that = (NotificationInfo) o;
+        return (mUidCollection.equals(that.mUidCollection))
+                && (mDismissCount == that.mDismissCount)
+                && (mNotificationCount == that.mNotificationCount)
+                && (mLastNotificationTimeMs == that.mLastNotificationTimeMs)
+                && (mNotificationId == that.mNotificationId);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(mUidCollection, mDismissCount, mNotificationCount,
+                mLastNotificationTimeMs, mNotificationId);
+    }
+}
diff --git a/src/com/android/settings/localepicker/OWNERS b/src/com/android/settings/localepicker/OWNERS
index 12ab32f..9d3f260 100644
--- a/src/com/android/settings/localepicker/OWNERS
+++ b/src/com/android/settings/localepicker/OWNERS
@@ -1,7 +1,6 @@
-allenwtsu@google.com

-calvinpan@google.com

-danielwbhuang@google.com

-goldmanj@google.com

-jamescflin@google.com

-joshhou@google.com

-tomhsu@google.com
\ No newline at end of file
+allenwtsu@google.com
+calvinpan@google.com
+danielwbhuang@google.com
+goldmanj@google.com
+joshhou@google.com
+zoeychen@google.com
diff --git a/src/com/android/settings/localepicker/TermsOfAddressBaseController.java b/src/com/android/settings/localepicker/TermsOfAddressBaseController.java
new file mode 100644
index 0000000..34c502f
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressBaseController.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.localepicker;
+
+import android.app.GrammaticalInflectionManager;
+import android.content.Context;
+
+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;
+
+public abstract class TermsOfAddressBaseController extends BasePreferenceController {
+
+    private PreferenceScreen mPreferenceScreen;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+    private TickButtonPreference mPreference;
+    private GrammaticalInflectionManager mGrammaticalInflectionManager;
+
+    public TermsOfAddressBaseController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        mGrammaticalInflectionManager = context.getSystemService(
+                GrammaticalInflectionManager.class);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreferenceScreen = screen;
+        mPreference = screen.findPreference(getPreferenceKey());
+        mPreference.setOnPreferenceClickListener(clickedPref -> {
+            mGrammaticalInflectionManager.setSystemWideGrammaticalGender(
+                    getGrammaticalGenderType());
+            setSelected(mPreference);
+            mMetricsFeatureProvider.action(mContext, getMetricsActionKey());
+            return true;
+        });
+        updatePreferences();
+    }
+
+    private void setSelected(TickButtonPreference preference) {
+        for (int i = 1; i < mPreferenceScreen.getPreferenceCount(); i++) {
+            TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(i);
+            pref.setSelected(pref.getKey().equals(preference.getKey()));
+        }
+    }
+
+    private void updatePreferences() {
+        if (mPreference == null) {
+            return;
+        }
+        mPreference.setSelected(
+                mGrammaticalInflectionManager.getSystemGrammaticalGender()
+                        == getGrammaticalGenderType());
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    protected abstract int getMetricsActionKey();
+
+    protected abstract int getGrammaticalGenderType();
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressCategoryController.java b/src/com/android/settings/localepicker/TermsOfAddressCategoryController.java
new file mode 100644
index 0000000..518f670
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressCategoryController.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.localepicker;
+
+import static com.android.settings.flags.Flags.termsOfAddressEnabled;
+
+import android.content.Context;
+import android.os.LocaleList;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.app.LocaleStore;
+import com.android.settings.R;
+import com.android.settings.widget.PreferenceCategoryController;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+public class TermsOfAddressCategoryController extends PreferenceCategoryController {
+
+    private static final String TAG = "TermsOfAddressCategoryController";
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
+    private static final String KEY_TERMS_OF_ADDRESS = "key_terms_of_address";
+
+    public TermsOfAddressCategoryController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        PreferenceCategory category = screen.findPreference(KEY_CATEGORY_TERMS_OF_ADDRESS);
+        if (category == null) {
+            Log.d(TAG, "displayPreference(), can not find the category.");
+            return;
+        }
+
+        boolean isAvailable = isAvailable();
+        if (isAvailable) {
+            TermsOfAddressController termsOfAddressController = new TermsOfAddressController(
+                    mContext, KEY_TERMS_OF_ADDRESS);
+            termsOfAddressController.displayPreference(screen);
+        }
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+
+        if (!termsOfAddressEnabled()) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
+
+        // If language is not available for system language, or if ToA does not apply to
+        // system language, we will hide it.
+        final Locale defaultLocale = Locale.getDefault();
+        LocaleStore.LocaleInfo localeInfo = LocaleStore.getLocaleInfo(defaultLocale);
+        final List<String> supportedLanguageList = Arrays.asList(
+                mContext.getResources().getStringArray(
+                        R.array.terms_of_address_supported_languages));
+        final List<String> notSupportedLocaleList = Arrays.asList(
+                mContext.getResources().getStringArray(
+                        R.array.terms_of_address_unsupported_locales));
+
+        final Locale locale = localeInfo.getLocale();
+        final String language = locale.getLanguage();
+        final String localeTag = locale.toLanguageTag();
+        Log.d(TAG, "current language: " + language);
+        Log.d(TAG, "current locale tag: " + localeTag);
+
+        // Supported locales:
+        // 1. All French is supported except fr-CA.
+        // 2. QA language en-XA (LTR pseudo locale), ar_XB (RTL pseudo locale).
+        if ((supportedLanguageList.contains(language)
+                && !notSupportedLocaleList.contains(localeTag))
+                || LocaleList.isPseudoLocale(locale)) {
+            return AVAILABLE;
+        }
+
+        return CONDITIONALLY_UNAVAILABLE;
+    }
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressController.java b/src/com/android/settings/localepicker/TermsOfAddressController.java
new file mode 100644
index 0000000..18fa3ef
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressController.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.localepicker;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.app.LocaleStore;
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+public class TermsOfAddressController extends BasePreferenceController {
+
+    private static final String TAG = "TermsOfAddressController";
+    private static final String KEY = "key_terms_of_address";
+
+    private Preference mPreference;
+
+    public TermsOfAddressController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+        mPreference.setFragment(TermsOfAddressFragment.class.getCanonicalName());
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressFeminineController.java b/src/com/android/settings/localepicker/TermsOfAddressFeminineController.java
new file mode 100644
index 0000000..9a46872
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressFeminineController.java
@@ -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.localepicker;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Configuration;
+
+public class TermsOfAddressFeminineController extends TermsOfAddressBaseController {
+
+    private static final String KEY_FEMININE = "key_terms_of_address_feminine";
+
+    public TermsOfAddressFeminineController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_FEMININE;
+    }
+
+    @Override
+    protected int getMetricsActionKey() {
+        return SettingsEnums.ACTION_TERMS_OF_ADDRESS_FEMININE;
+    }
+
+    @Override
+    protected int getGrammaticalGenderType() {
+        return Configuration.GRAMMATICAL_GENDER_FEMININE;
+    }
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressFragment.java b/src/com/android/settings/localepicker/TermsOfAddressFragment.java
new file mode 100644
index 0000000..9484846a
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressFragment.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+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.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TermsOfAddressFragment extends DashboardFragment {
+
+    private static final String LOG_TAG = "TermsOfAddressFragment";
+    private static final String KEY_NOT_SPECIFIED = "key_terms_of_address_not_specified";
+    private static final String KEY_FEMININE = "key_terms_of_address_feminine";
+    private static final String KEY_MASCULINE = "key_terms_of_address_masculine";
+    private static final String KEY_NEUTRAL = "key_terms_of_address_neutral";
+
+    @Override
+    protected String getLogTag() {
+        return LOG_TAG;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.TERMS_OF_ADDRESS;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.terms_of_address;
+    }
+
+    @Override
+    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
+        controllers.add(new TermsOfAddressNotSpecifiedController(context, KEY_NOT_SPECIFIED));
+        controllers.add(new TermsOfAddressFeminineController(context, KEY_FEMININE));
+        controllers.add(new TermsOfAddressMasculineController(context, KEY_MASCULINE));
+        controllers.add(new TermsOfAddressNeutralController(context, KEY_NEUTRAL));
+        return controllers;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.terms_of_address);
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressMasculineController.java b/src/com/android/settings/localepicker/TermsOfAddressMasculineController.java
new file mode 100644
index 0000000..cb39df0
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressMasculineController.java
@@ -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.localepicker;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Configuration;
+
+public class TermsOfAddressMasculineController extends TermsOfAddressBaseController {
+
+    private static final String KEY_MASCULINE = "key_terms_of_address_masculine";
+
+    public TermsOfAddressMasculineController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_MASCULINE;
+    }
+
+    @Override
+    protected int getMetricsActionKey() {
+        return SettingsEnums.ACTION_TERMS_OF_ADDRESS_MASCULINE;
+    }
+
+    @Override
+    protected int getGrammaticalGenderType() {
+        return Configuration.GRAMMATICAL_GENDER_MASCULINE;
+    }
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressNeutralController.java b/src/com/android/settings/localepicker/TermsOfAddressNeutralController.java
new file mode 100644
index 0000000..e0693b5
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressNeutralController.java
@@ -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.localepicker;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Configuration;
+
+public class TermsOfAddressNeutralController extends TermsOfAddressBaseController {
+
+    private static final String KEY_NEUTRAL = "key_terms_of_address_neutral";
+
+    public TermsOfAddressNeutralController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_NEUTRAL;
+    }
+
+    @Override
+    protected int getMetricsActionKey() {
+        return SettingsEnums.ACTION_TERMS_OF_ADDRESS_NEUTRAL;
+    }
+
+    @Override
+    protected int getGrammaticalGenderType() {
+        return Configuration.GRAMMATICAL_GENDER_NEUTRAL;
+    }
+}
diff --git a/src/com/android/settings/localepicker/TermsOfAddressNotSpecifiedController.java b/src/com/android/settings/localepicker/TermsOfAddressNotSpecifiedController.java
new file mode 100644
index 0000000..4e2e450
--- /dev/null
+++ b/src/com/android/settings/localepicker/TermsOfAddressNotSpecifiedController.java
@@ -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.localepicker;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Configuration;
+
+public class TermsOfAddressNotSpecifiedController extends TermsOfAddressBaseController {
+
+    private static final String KEY_NOT_SPECIFIED = "key_terms_of_address_not_specified";
+
+    public TermsOfAddressNotSpecifiedController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_NOT_SPECIFIED;
+    }
+
+    @Override
+    protected int getMetricsActionKey() {
+        return SettingsEnums.ACTION_TERMS_OF_ADDRESS_NOT_SPECIFIED;
+    }
+
+    @Override
+    protected int getGrammaticalGenderType() {
+        return Configuration.GRAMMATICAL_GENDER_NOT_SPECIFIED;
+    }
+}
diff --git a/src/com/android/settings/location/AppSettingsInjector.java b/src/com/android/settings/location/AppSettingsInjector.java
index 7bea999..e012b09 100644
--- a/src/com/android/settings/location/AppSettingsInjector.java
+++ b/src/com/android/settings/location/AppSettingsInjector.java
@@ -40,7 +40,7 @@
     public AppSettingsInjector(Context context, int metricsCategory) {
         super(context);
         mMetricsCategory = metricsCategory;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
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/LocationServicesPreferenceController.java b/src/com/android/settings/location/LocationServicesPreferenceController.java
index 53150a8..bab8bc8 100644
--- a/src/com/android/settings/location/LocationServicesPreferenceController.java
+++ b/src/com/android/settings/location/LocationServicesPreferenceController.java
@@ -32,7 +32,7 @@
 
     @AvailabilityStatus
     public int getAvailabilityStatus() {
-        return mContext.getResources().getBoolean(R.bool.config_show_location_scanning)
+        return mContext.getResources().getBoolean(R.bool.config_show_location_services)
                 ? AVAILABLE
                 : UNSUPPORTED_ON_DEVICE;
     }
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index ff8b4be..7bb0228 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -25,7 +25,9 @@
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
+import android.os.SystemProperties;
 import android.provider.Settings;
+import android.util.Log;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceGroup;
@@ -72,6 +74,13 @@
     private RecentLocationAccessPreferenceController mController;
     private ContentObserver mContentObserver;
 
+    /**
+     * Read-only boot property used to enable/disable geolocation toggle as part of privacy hub
+     * feature for chrome.
+     */
+    private static final String RO_BOOT_ENABLE_PRIVACY_HUB_FOR_CHROME =
+            "ro.boot.enable_privacy_hub_for_chrome";
+
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.LOCATION;
@@ -83,6 +92,7 @@
         final SettingsActivity activity = (SettingsActivity) getActivity();
         final SettingsMainSwitchBar switchBar = activity.getSwitchBar();
         switchBar.setTitle(getContext().getString(R.string.location_settings_primary_switch_title));
+        updateChromeSwitchBarPreference(switchBar);
         switchBar.show();
         mSwitchBarController = new LocationSwitchBarController(activity, switchBar,
                 getSettingsLifecycle());
@@ -161,4 +171,17 @@
      */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.location_settings);
+
+    /**
+     * Update switchbar config in case of Chrome devices and location is managed by chrome.
+     */
+    private void updateChromeSwitchBarPreference(final SettingsMainSwitchBar switchBar) {
+        if (getContext().getResources().getBoolean(R.bool.config_disable_location_toggle_for_chrome)
+                && SystemProperties.getBoolean(RO_BOOT_ENABLE_PRIVACY_HUB_FOR_CHROME, false)) {
+            Log.i(TAG, "Disabling location toggle for chrome devices");
+            switchBar.setClickable(false);
+            switchBar.setTooltipText(getResources().getString(
+                    R.string.location_settings_tooltip_text_for_chrome));
+        }
+    }
 }
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/RecentLocationAccessSeeAllPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java
index d658667..998e6f3 100644
--- a/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java
+++ b/src/com/android/settings/location/RecentLocationAccessSeeAllPreferenceController.java
@@ -57,7 +57,7 @@
             : false;
 
         mRecentLocationAccesses = RecentAppOpsAccess.createForLocation(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
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/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index d267971..d4aef47 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -23,6 +23,7 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.media.AudioManager;
+import android.media.MediaRouter2Manager;
 import android.media.RoutingSessionInfo;
 import android.net.Uri;
 import android.os.UserHandle;
@@ -39,7 +40,6 @@
 import com.android.settingslib.media.MediaDevice;
 import com.android.settingslib.utils.ThreadUtils;
 
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -59,6 +59,8 @@
     protected final Collection<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
     private final DevicesChangedBroadcastReceiver mReceiver;
     private final String mPackageName;
+    @VisibleForTesting
+    MediaRouter2Manager mManager;
 
     private boolean mIsTouched;
     private MediaDevice mTopDevice;
@@ -82,6 +84,11 @@
             mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
         }
 
+        // Delaying initialization to allow mocking in Roboelectric tests.
+        if (mManager == null) {
+            mManager = MediaRouter2Manager.getInstance(mContext);
+        }
+
         mLocalMediaManager.registerCallback(this);
         final IntentFilter intentFilter = new IntentFilter(STREAM_DEVICES_CHANGED_ACTION);
         mContext.registerReceiver(mReceiver, intentFilter);
@@ -216,18 +223,8 @@
         return mLocalMediaManager.getSessionName();
     }
 
-    List<RoutingSessionInfo> getActiveRemoteMediaDevice() {
-        final List<RoutingSessionInfo> sessionInfos = new ArrayList<>();
-        for (RoutingSessionInfo info : mLocalMediaManager.getActiveMediaSession()) {
-            if (!info.isSystemSession()) {
-                if (DEBUG) {
-                    Log.d(TAG, "getActiveRemoteMediaDevice() info : " + info.toString()
-                            + ", package name : " + info.getClientPackageName());
-                }
-                sessionInfos.add(info);
-            }
-        }
-        return sessionInfos;
+    List<RoutingSessionInfo> getActiveRemoteMediaDevices() {
+        return mLocalMediaManager.getRemoteRoutingSessions();
     }
 
     /**
@@ -239,7 +236,7 @@
      */
     public void adjustVolume(MediaDevice device, int volume) {
         ThreadUtils.postOnBackgroundThread(() -> {
-            device.requestSetVolume(volume);
+            mLocalMediaManager.adjustDeviceVolume(device, volume);
         });
     }
 
@@ -259,7 +256,9 @@
     }
 
     boolean shouldDisableMediaOutput(String packageName) {
-        return mLocalMediaManager.shouldDisableMediaOutput(packageName);
+        // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term
+        //  solution in SettingsLib.
+        return mManager.getTransferableRoutes(packageName).isEmpty();
     }
 
     boolean shouldEnableVolumeSeekBar(RoutingSessionInfo sessionInfo) {
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index e2232e7..bb075c2 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -17,6 +17,7 @@
 package com.android.settings.media;
 
 import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
+import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting;
 
 import android.annotation.ColorInt;
 import android.content.Context;
@@ -58,7 +59,12 @@
         }
         final IconCompat icon = IconCompat.createWithResource(mContext,
                 com.android.internal.R.drawable.ic_settings_bluetooth);
-        final CharSequence title = mContext.getString(R.string.media_output_label_title,
+        final int stringRes = enableOutputSwitcherForSystemRouting()
+                ? (getWorker().getActiveLocalMediaController() != null
+                        ? R.string.media_output_label_title
+                        : R.string.media_output_title_without_playing)
+                : R.string.media_output_label_title;
+        final CharSequence title = mContext.getString(stringRes,
                 Utils.getApplicationLabel(mContext, getWorker().getPackageName()));
         final SliceAction primarySliceAction = SliceAction.create(
                 getBroadcastIntent(mContext), icon, ListBuilder.ICON_IMAGE, title);
@@ -117,28 +123,36 @@
         // 2. worker is not null
         // 3. Available devices are more than 0
         // 4. The local media session is active and the state is playing.
+        //    - if !enableOutputSwitcherForSystemRouting(), (4) will be bypass.
         return getWorker() != null
                 && !com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)
                 && getWorker().getMediaDevices().size() > 0
-                && getWorker().getActiveLocalMediaController() != null;
+                && (enableOutputSwitcherForSystemRouting()
+                        ? true : getWorker().getActiveLocalMediaController() != null);
     }
 
     @Override
     public void onNotifyChange(Intent intent) {
         final MediaController mediaController = getWorker().getActiveLocalMediaController();
 
-        if (mediaController == null) {
+        // Launch media output dialog
+        if (enableOutputSwitcherForSystemRouting() && mediaController == null) {
+            mContext.sendBroadcast(new Intent()
+                    .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
+                    .setAction(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG));
+        } else if (mediaController != null) {
+            mContext.sendBroadcast(new Intent()
+                    .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
+                    .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
+                    .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
+                            mediaController.getSessionToken())
+                    .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
+                            mediaController.getPackageName()));
+        } else {
             Log.d(TAG, "No active local media controller");
             return;
         }
-        // Launch media output dialog
-        mContext.sendBroadcast(new Intent()
-                .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
-                .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
-                .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
-                        mediaController.getSessionToken())
-                .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
-                        mediaController.getPackageName()));
+
         // Dismiss volume panel
         mContext.sendBroadcast(new Intent()
                 .setPackage(MediaOutputConstants.SETTINGS_PACKAGE_NAME)
diff --git a/src/com/android/settings/media/MediaOutputIndicatorWorker.java b/src/com/android/settings/media/MediaOutputIndicatorWorker.java
index 159efa0..6e56153 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorWorker.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorWorker.java
@@ -157,7 +157,11 @@
         return mMediaDevices;
     }
 
+    @Nullable
     public MediaDevice getCurrentConnectedMediaDevice() {
+        if (mLocalMediaManager == null) {
+            return null;
+        }
         return mLocalMediaManager.getCurrentConnectedDevice();
     }
 
diff --git a/src/com/android/settings/media/RemoteMediaSlice.java b/src/com/android/settings/media/RemoteMediaSlice.java
index f856188..cebc14f 100644
--- a/src/com/android/settings/media/RemoteMediaSlice.java
+++ b/src/com/android/settings/media/RemoteMediaSlice.java
@@ -25,7 +25,6 @@
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
-import android.media.MediaRouter2Manager;
 import android.media.RoutingSessionInfo;
 import android.net.Uri;
 import android.text.SpannableString;
@@ -33,7 +32,6 @@
 import android.text.style.ForegroundColorSpan;
 import android.util.Log;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.core.graphics.drawable.IconCompat;
 import androidx.slice.Slice;
 import androidx.slice.builders.ListBuilder;
@@ -67,9 +65,6 @@
 
     private MediaDeviceUpdateWorker mWorker;
 
-    @VisibleForTesting
-    MediaRouter2Manager mRouterManager;
-
     public RemoteMediaSlice(Context context) {
         mContext = context;
     }
@@ -105,18 +100,16 @@
             Log.e(TAG, "Unable to get the slice worker.");
             return listBuilder.build();
         }
-        if (mRouterManager == null) {
-            mRouterManager = MediaRouter2Manager.getInstance(mContext);
-        }
+
         // Only displaying remote devices
-        final List<RoutingSessionInfo> infos = getWorker().getActiveRemoteMediaDevice();
+        final List<RoutingSessionInfo> infos = getWorker().getActiveRemoteMediaDevices();
         if (infos.isEmpty()) {
             Log.d(TAG, "No active remote media device");
             return listBuilder.build();
         }
         final CharSequence castVolume = mContext.getText(R.string.remote_media_volume_option_title);
         final IconCompat icon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_volume_remote);
+                com.android.settingslib.R.drawable.ic_volume_remote);
         // To create an empty icon to indent the row
         final IconCompat emptyIcon = createEmptyIcon();
         for (RoutingSessionInfo info : infos) {
@@ -206,7 +199,8 @@
                 PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
         final SliceAction primarySliceAction = SliceAction.createDeeplink(
                 primaryBroadcastIntent,
-                IconCompat.createWithResource(mContext, R.drawable.ic_volume_remote),
+                IconCompat.createWithResource(
+                        mContext, com.android.settingslib.R.drawable.ic_volume_remote),
                 ListBuilder.ICON_IMAGE,
                 mContext.getString(R.string.media_output_label_title,
                         Utils.getApplicationLabel(mContext, info.getClientPackageName())));
diff --git a/src/com/android/settings/network/ActiveSubscriptionsListener.java b/src/com/android/settings/network/ActiveSubscriptionsListener.java
index dce441b..284cbb3 100644
--- a/src/com/android/settings/network/ActiveSubscriptionsListener.java
+++ b/src/com/android/settings/network/ActiveSubscriptionsListener.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.network;
 
-import android.annotation.NonNull;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -30,6 +29,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.internal.telephony.TelephonyIntents;
@@ -174,7 +174,8 @@
      */
     public SubscriptionManager getSubscriptionManager() {
         if (mSubscriptionManager == null) {
-            mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
+            mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class)
+                    .createForAllUserProfiles();
         }
         return mSubscriptionManager;
     }
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/AllInOneTetherPreferenceController.java b/src/com/android/settings/network/AllInOneTetherPreferenceController.java
deleted file mode 100644
index 7baa917..0000000
--- a/src/com/android/settings/network/AllInOneTetherPreferenceController.java
+++ /dev/null
@@ -1,246 +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 android.os.UserManager.DISALLOW_CONFIG_TETHERING;
-
-import static com.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_OFF;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;
-import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfRestrictionEnforced;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.UserHandle;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.Lifecycle.Event;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.widget.GenericSwitchController;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.TetherUtil;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * This controller helps to manage the switch state and visibility of "Hotspot & tethering" switch
- * preference. It updates the preference summary text based on tethering state.
- */
-public class AllInOneTetherPreferenceController extends BasePreferenceController implements
-        LifecycleObserver, TetherEnabler.OnTetherStateUpdateListener {
-    private static final String TAG = "AllInOneTetherPreferenceController";
-
-    private int mTetheringState;
-
-    private final boolean mAdminDisallowedTetherConfig;
-    private final AtomicReference<BluetoothPan> mBluetoothPan;
-    private final BluetoothAdapter mBluetoothAdapter;
-    @VisibleForTesting
-    final BluetoothProfile.ServiceListener mBtProfileServiceListener =
-            new BluetoothProfile.ServiceListener() {
-                @Override
-                public void onServiceConnected(int profile, BluetoothProfile proxy) {
-                    if (mBluetoothPan.get() == null) {
-                        mBluetoothPan.set((BluetoothPan) proxy);
-                    }
-                }
-
-                @Override
-                public void onServiceDisconnected(int profile) { /* Do nothing */ }
-            };
-
-    private PrimarySwitchPreference mPreference;
-    private TetherEnabler mTetherEnabler;
-    private BroadcastReceiver mBluetoothStateReceiver;
-
-    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-    AllInOneTetherPreferenceController() {
-        super(null /*context*/, "test");
-        mAdminDisallowedTetherConfig = false;
-        mBluetoothPan = new AtomicReference<>();
-        mBluetoothAdapter = null;
-    }
-
-    public AllInOneTetherPreferenceController(Context context, String key) {
-        super(context, key);
-        mBluetoothPan = new AtomicReference<>();
-        mAdminDisallowedTetherConfig = checkIfRestrictionEnforced(
-                context, DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()) != null;
-        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(mPreferenceKey);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        if (!TetherUtil.isTetherAvailable(mContext)
-                || !FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)) {
-            return CONDITIONALLY_UNAVAILABLE;
-        } else {
-            return AVAILABLE;
-        }
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        switch (mTetheringState) {
-            case TETHERING_OFF:
-                return mContext.getString(R.string.tether_settings_summary_off);
-            case TETHERING_WIFI_ON:
-                return mContext.getString(R.string.tether_settings_summary_hotspot_only);
-            case TETHERING_USB_ON:
-                return mContext.getString(R.string.tether_settings_summary_usb_tethering_only);
-            case TETHERING_BLUETOOTH_ON:
-                return mContext.getString(
-                        R.string.tether_settings_summary_bluetooth_tethering_only);
-            case TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.tether_settings_summary_ethernet_tethering_only);
-            case TETHERING_WIFI_ON | TETHERING_USB_ON:
-                return mContext.getString(R.string.tether_settings_summary_hotspot_and_usb);
-            case TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON:
-                return mContext.getString(R.string.tether_settings_summary_hotspot_and_bluetooth);
-            case TETHERING_WIFI_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.tether_settings_summary_hotspot_and_ethernet);
-            case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON:
-                return mContext.getString(R.string.tether_settings_summary_usb_and_bluetooth);
-            case TETHERING_USB_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.tether_settings_summary_usb_and_ethernet);
-            case TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.tether_settings_summary_bluetooth_and_ethernet);
-            case TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON:
-                return mContext.getString(
-                        R.string.tether_settings_summary_hotspot_and_usb_and_bluetooth);
-            case TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(
-                        R.string.tether_settings_summary_hotspot_and_usb_and_ethernet);
-            case TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(
-                        R.string.tether_settings_summary_hotspot_and_bluetooth_and_ethernet);
-            case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(
-                        R.string.tether_settings_summary_usb_and_bluetooth_and_ethernet);
-            case TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON
-                    | TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.tether_settings_summary_all);
-            default:
-                Log.e(TAG, "Unknown tethering state");
-                return mContext.getString(R.string.summary_placeholder);
-        }
-    }
-
-    @OnLifecycleEvent(Event.ON_CREATE)
-    public void onCreate() {
-        if (mBluetoothAdapter != null
-                && mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
-            mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
-                        BluetoothProfile.PAN);
-        }
-        if (mBluetoothStateReceiver == null) {
-            mBluetoothStateReceiver = new BluetoothStateReceiver();
-            mContext.registerReceiver(
-                    mBluetoothStateReceiver,
-                            new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
-        }
-    }
-
-    @OnLifecycleEvent(Event.ON_RESUME)
-    public void onResume() {
-        if (mTetherEnabler != null) {
-            mTetherEnabler.addListener(this);
-        }
-    }
-
-    @OnLifecycleEvent(Event.ON_PAUSE)
-    public void onPause() {
-        if (mTetherEnabler != null) {
-            mTetherEnabler.removeListener(this);
-        }
-    }
-
-    @OnLifecycleEvent(Event.ON_DESTROY)
-    public void onDestroy() {
-        final BluetoothProfile profile = mBluetoothPan.getAndSet(null);
-        if (profile != null && mBluetoothAdapter != null) {
-            mBluetoothAdapter.closeProfileProxy(BluetoothProfile.PAN, profile);
-        }
-        if (mBluetoothStateReceiver != null) {
-            mContext.unregisterReceiver(mBluetoothStateReceiver);
-            mBluetoothStateReceiver = null;
-        }
-    }
-
-    void initEnabler(Lifecycle lifecycle) {
-        if (mPreference != null) {
-            mTetherEnabler = new TetherEnabler(
-                    mContext, new GenericSwitchController(mPreference), mBluetoothPan);
-            if (lifecycle != null) {
-                lifecycle.addObserver(mTetherEnabler);
-            }
-        } else {
-            Log.e(TAG, "TetherEnabler is not initialized");
-        }
-    }
-
-    @Override
-    public void onTetherStateUpdated(@TetherEnabler.TetheringState int state) {
-        mTetheringState = state;
-        updateState(mPreference);
-    }
-
-    private class BluetoothStateReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            final String action = intent.getAction();
-            Log.i(TAG, "onReceive: action: " + action);
-
-            if (TextUtils.equals(action, BluetoothAdapter.ACTION_STATE_CHANGED)) {
-                final int state =
-                        intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
-                Log.i(TAG, "onReceive: state: " + BluetoothAdapter.nameForState(state));
-                final BluetoothProfile profile = mBluetoothPan.get();
-                switch(state) {
-                    case BluetoothAdapter.STATE_ON:
-                        if (profile == null && mBluetoothAdapter != null) {
-                            mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
-                                    BluetoothProfile.PAN);
-                        }
-                        break;
-                }
-            }
-        }
-    }
-}
diff --git a/src/com/android/settings/network/AllowedNetworkTypesListener.java b/src/com/android/settings/network/AllowedNetworkTypesListener.java
index 3d93664..38c5871 100644
--- a/src/com/android/settings/network/AllowedNetworkTypesListener.java
+++ b/src/com/android/settings/network/AllowedNetworkTypesListener.java
@@ -27,7 +27,11 @@
 
 /**
  * {@link TelephonyCallback} to listen to Allowed Network Types changed
+ *
+ * @deprecated Please use {@link com.android.settings.network.telephony.AllowedNetworkTypesFlowKt}
+ * instead.
  */
+@Deprecated
 public class AllowedNetworkTypesListener extends TelephonyCallback implements
         TelephonyCallback.AllowedNetworkTypesListener {
     private static final String LOG_TAG = "NetworkModeListener";
diff --git a/src/com/android/settings/network/BluetoothTetherPreferenceController.java b/src/com/android/settings/network/BluetoothTetherPreferenceController.java
deleted file mode 100644
index 96d39e3..0000000
--- a/src/com/android/settings/network/BluetoothTetherPreferenceController.java
+++ /dev/null
@@ -1,93 +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.bluetooth.BluetoothAdapter;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.net.ConnectivityManager;
-import android.text.TextUtils;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.google.common.annotations.VisibleForTesting;
-
-/**
- * This controller helps to manage the switch state and visibility of bluetooth tether switch
- * preference.
- */
-public final class BluetoothTetherPreferenceController extends TetherBasePreferenceController {
-    private int mBluetoothState;
-
-    public BluetoothTetherPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_START)
-    public void onStart() {
-        mBluetoothState = BluetoothAdapter.getDefaultAdapter().getState();
-        mContext.registerReceiver(mBluetoothChangeReceiver,
-                new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
-    public void onStop() {
-        mContext.unregisterReceiver(mBluetoothChangeReceiver);
-    }
-
-    @Override
-    public boolean shouldEnable() {
-        switch (mBluetoothState) {
-            case BluetoothAdapter.STATE_ON:
-            case BluetoothAdapter.STATE_OFF:
-                // fall through.
-            case BluetoothAdapter.ERROR:
-                return true;
-            case BluetoothAdapter.STATE_TURNING_OFF:
-            case BluetoothAdapter.STATE_TURNING_ON:
-                // fall through.
-            default:
-                return false;
-        }
-    }
-
-    @Override
-    public boolean shouldShow() {
-        final String[] bluetoothRegexs = mTm.getTetherableBluetoothRegexs();
-        return bluetoothRegexs != null && bluetoothRegexs.length != 0;
-    }
-
-    @Override
-    public int getTetherType() {
-        return ConnectivityManager.TETHERING_BLUETOOTH;
-    }
-
-    @VisibleForTesting
-    final BroadcastReceiver mBluetoothChangeReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            if (TextUtils.equals(BluetoothAdapter.ACTION_STATE_CHANGED, intent.getAction())) {
-                mBluetoothState =
-                        intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
-                updateState(mPreference);
-            }
-        }
-    };
-}
diff --git a/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.java b/src/com/android/settings/network/BluetoothWiFiResetPreferenceController.java
deleted file mode 100644
index 6eb470b..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.getFactory(mContext)
-                .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/CarrierConfigCache.java b/src/com/android/settings/network/CarrierConfigCache.java
index 30374f5..35b65c8 100644
--- a/src/com/android/settings/network/CarrierConfigCache.java
+++ b/src/com/android/settings/network/CarrierConfigCache.java
@@ -20,7 +20,6 @@
 import static android.telephony.SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX;
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
-import android.annotation.NonNull;
 import android.annotation.TestApi;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -32,6 +31,7 @@
 import android.util.Log;
 
 import androidx.annotation.GuardedBy;
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 
 import java.util.Map;
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/EraseEuiccDataDialogFragment.java b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
index 0200e52..3bf9db3 100644
--- a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
+++ b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
@@ -32,7 +32,6 @@
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.network.helper.ConfirmationSimDeletionPredicate;
 import com.android.settings.system.ResetDashboardFragment;
 import com.android.settings.wifi.dpp.WifiDppUtils;
 
@@ -76,14 +75,7 @@
 
         if (which == DialogInterface.BUTTON_POSITIVE) {
             Context context = getContext();
-            if (ConfirmationSimDeletionPredicate.getSingleton().test(context)) {
-                // Create a "verify it's you" verification over keyguard
-                // when "erase" button been pressed.
-                // This might protect from erasing by some automation process.
-                WifiDppUtils.showLockScreen(context, () -> runAsyncWipe(context));
-            } else {
-                runAsyncWipe(context);
-            }
+            WifiDppUtils.showLockScreen(context, () -> runAsyncWipe(context));
         }
     }
 
diff --git a/src/com/android/settings/network/EthernetTetherPreferenceController.java b/src/com/android/settings/network/EthernetTetherPreferenceController.java
deleted file mode 100644
index 2fd92f3..0000000
--- a/src/com/android/settings/network/EthernetTetherPreferenceController.java
+++ /dev/null
@@ -1,99 +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 android.content.Context;
-import android.net.EthernetManager;
-import android.net.TetheringManager;
-import android.os.Handler;
-import android.os.Looper;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.Utils;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.HashSet;
-
-/**
- * This controller helps to manage the switch state and visibility of ethernet tether switch
- * preference.
- */
-public final class EthernetTetherPreferenceController extends TetherBasePreferenceController {
-
-    private final HashSet<String> mAvailableInterfaces = new HashSet<>();
-    private final EthernetManager mEthernetManager;
-
-    @VisibleForTesting
-    EthernetManager.InterfaceStateListener mEthernetListener;
-
-    public EthernetTetherPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-        mEthernetManager = context.getSystemService(EthernetManager.class);
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_START)
-    public void onStart() {
-        mEthernetListener = (iface, state, role, configuration) -> {
-            if (state != EthernetManager.STATE_ABSENT) {
-                mAvailableInterfaces.add(iface);
-            } else {
-                mAvailableInterfaces.remove(iface);
-            }
-            updateState(mPreference);
-        };
-        final Handler handler = new Handler(Looper.getMainLooper());
-        // Executor will execute to post the updateState event to a new handler which is created
-        // from the main looper when the {@link EthernetManager.Listener.onAvailabilityChanged}
-        // is triggerd.
-        if (mEthernetManager != null) {
-            mEthernetManager.addInterfaceStateListener(r -> handler.post(r), mEthernetListener);
-        }
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
-    public void onStop() {
-        if (mEthernetManager != null) {
-            mEthernetManager.removeInterfaceStateListener(mEthernetListener);
-        }
-    }
-
-    @Override
-    public boolean shouldEnable() {
-        ThreadUtils.ensureMainThread();
-        String[] available = mTm.getTetherableIfaces();
-        for (String s : available) {
-            if (mAvailableInterfaces.contains(s)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    @Override
-    public boolean shouldShow() {
-        return mEthernetManager != null && !Utils.isMonkeyRunning();
-    }
-
-    @Override
-    public int getTetherType() {
-        return TetheringManager.TETHERING_ETHERNET;
-    }
-
-}
diff --git a/src/com/android/settings/network/InternetPreferenceController.java b/src/com/android/settings/network/InternetPreferenceController.java
index bc2e71e..1f5042f 100644
--- a/src/com/android/settings/network/InternetPreferenceController.java
+++ b/src/com/android/settings/network/InternetPreferenceController.java
@@ -24,6 +24,7 @@
 import static com.android.settings.network.InternetUpdater.INTERNET_NETWORKS_AVAILABLE;
 import static com.android.settings.network.InternetUpdater.INTERNET_OFF;
 import static com.android.settings.network.InternetUpdater.INTERNET_WIFI;
+import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
@@ -40,11 +41,16 @@
 
 import com.android.settings.R;
 import com.android.settings.widget.SummaryUpdater;
+import com.android.settings.wifi.WifiPickerTrackerHelper;
 import com.android.settings.wifi.WifiSummaryUpdater;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
 import com.android.settingslib.Utils;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
 import com.android.settingslib.utils.ThreadUtils;
+import com.android.wifitrackerlib.HotspotNetworkEntry;
+import com.android.wifitrackerlib.WifiEntry;
+import com.android.wifitrackerlib.WifiPickerTracker;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -57,12 +63,14 @@
 public class InternetPreferenceController extends AbstractPreferenceController implements
         LifecycleObserver, SummaryUpdater.OnSummaryChangeListener,
         InternetUpdater.InternetChangeListener, MobileNetworkRepository.MobileNetworkCallback,
-        DefaultSubscriptionReceiver.DefaultSubscriptionListener {
+        DefaultSubscriptionReceiver.DefaultSubscriptionListener,
+        WifiPickerTracker.WifiPickerTrackerCallback {
 
     public static final String KEY = "internet_settings";
 
     private Preference mPreference;
-    private final WifiSummaryUpdater mSummaryHelper;
+    @VisibleForTesting
+    WifiSummaryUpdater mSummaryHelper;
     private InternetUpdater mInternetUpdater;
     private @InternetUpdater.InternetType int mInternetType;
     private LifecycleOwner mLifecycleOwner;
@@ -70,6 +78,9 @@
     private List<SubscriptionInfoEntity> mSubInfoEntityList = new ArrayList<>();
     private int mDefaultDataSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private DefaultSubscriptionReceiver mDataSubscriptionChangedReceiver;
+    private boolean mIsHotspotNetworkEnabled = SharedConnectivityRepository.isDeviceConfigEnabled();
+    @VisibleForTesting
+    WifiPickerTrackerHelper mWifiPickerTrackerHelper;
 
     @VisibleForTesting
     static Map<Integer, Integer> sIconMap = new HashMap<>();
@@ -102,6 +113,9 @@
         mLifecycleOwner = lifecycleOwner;
         mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
         mDataSubscriptionChangedReceiver = new DefaultSubscriptionReceiver(context, this);
+        if (mIsHotspotNetworkEnabled) {
+            mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, context, this);
+        }
         lifecycle.addObserver(this);
     }
 
@@ -111,20 +125,27 @@
         mPreference = screen.findPreference(KEY);
     }
 
+    private void drawIcon(int iconResId) {
+        Drawable drawable = mContext.getDrawable(iconResId);
+        if (drawable != null) {
+            drawable.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorControlNormal));
+            mPreference.setIcon(drawable);
+        }
+    }
+
     @Override
     public void updateState(Preference preference) {
         if (mPreference == null) {
             return;
         }
 
+        if (mInternetType == INTERNET_WIFI && updateHotspotNetwork()) {
+            return;
+        }
+
         final @IdRes int icon = sIconMap.get(mInternetType);
         if (icon != 0) {
-            final Drawable drawable = mContext.getDrawable(icon);
-            if (drawable != null) {
-                drawable.setTintList(
-                        Utils.getColorAttr(mContext, android.R.attr.colorControlNormal));
-                mPreference.setIcon(drawable);
-            }
+            drawIcon(icon);
         }
 
         if (mInternetType == INTERNET_WIFI) {
@@ -143,6 +164,20 @@
         }
     }
 
+    @VisibleForTesting
+    boolean updateHotspotNetwork() {
+        if (mWifiPickerTrackerHelper == null) {
+            return false;
+        }
+        WifiEntry entry = mWifiPickerTrackerHelper.getWifiPickerTracker().getConnectedWifiEntry();
+        if (!(entry instanceof HotspotNetworkEntry)) {
+            return false;
+        }
+        drawIcon(getHotspotIconResource(((HotspotNetworkEntry) entry).getDeviceType()));
+        mPreference.setSummary(((HotspotNetworkEntry) entry).getAlternateSummary());
+        return true;
+    }
+
     @Override
     public boolean isAvailable() {
         return true;
@@ -200,8 +235,8 @@
 
     @Override
     public void onSummaryChanged(String summary) {
-        if (mInternetType == INTERNET_WIFI && mPreference != null) {
-            mPreference.setSummary(summary);
+        if (mInternetType == INTERNET_WIFI) {
+            updateState(mPreference);
         }
     }
 
@@ -256,4 +291,26 @@
         mDefaultDataSubId = defaultDataSubId;
         updateState(mPreference);
     }
+
+    @Override
+    public void onWifiEntriesChanged() {
+        if (mInternetType == INTERNET_WIFI) {
+            updateState(mPreference);
+        }
+    }
+
+    @Override
+    public void onWifiStateChanged() {
+        // Do nothing
+    }
+
+    @Override
+    public void onNumSavedNetworksChanged() {
+        // Do nothing
+    }
+
+    @Override
+    public void onNumSavedSubscriptionsChanged() {
+        // Do nothing
+    }
 }
diff --git a/src/com/android/settings/network/InternetUpdater.java b/src/com/android/settings/network/InternetUpdater.java
index bc24f86..11e9edd 100644
--- a/src/com/android/settings/network/InternetUpdater.java
+++ b/src/com/android/settings/network/InternetUpdater.java
@@ -24,7 +24,6 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
 import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
 
-import android.annotation.NonNull;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -37,6 +36,7 @@
 import android.net.wifi.WifiManager;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleObserver;
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..e722866
--- /dev/null
+++ b/src/com/android/settings/network/MobileNetworkListFragment.kt
@@ -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.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.flags.Flags
+import com.android.settings.network.telephony.MobileNetworkUtils
+import com.android.settings.search.BaseSearchIndexProvider
+import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
+import com.android.settings.spa.network.NetworkCellularGroupProvider
+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 onCreate(icicle: Bundle?) {
+        super.onCreate(icicle)
+
+        if (Flags.isDualSimOnboardingEnabled()) {
+            context?.startSpaActivity(NetworkCellularGroupProvider.name);
+            finish()
+        }
+    }
+
+    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 7d88821..b0c85fc 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -18,7 +18,6 @@
 import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;
 import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
 
-import android.annotation.NonNull;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.database.ContentObserver;
@@ -38,8 +37,10 @@
 import android.util.Log;
 
 import androidx.annotation.GuardedBy;
+import androidx.annotation.NonNull;
 import androidx.lifecycle.LifecycleOwner;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.network.telephony.MobileNetworkUtils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -120,7 +121,7 @@
     private MobileNetworkRepository(Context context) {
         mContext = context;
         mMobileNetworkDatabase = MobileNetworkDatabase.getInstance(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_MOBILE_NETWORK_DB_CREATED);
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mSubscriptionInfoDao = mMobileNetworkDatabase.mSubscriptionInfoDao();
@@ -225,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) {
@@ -377,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();
@@ -415,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);
@@ -425,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);
+             }
         }
     }
 
@@ -497,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);
@@ -655,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");
                 }
@@ -671,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)) {
@@ -685,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.
@@ -703,9 +743,11 @@
                         Log.d(TAG, "insert subInfo to subInfoEntity, subInfo = " + subInfo);
                     }
                     if (subInfo.isEmbedded()
-                            && subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING) {
+                        && (subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                            || (Flags.oemEnabledSatelliteFlag()
+                            && subInfo.isOnlyNonTerrestrialNetwork()))) {
                         if (DEBUG) {
-                            Log.d(TAG, "Do not insert the provision eSIM");
+                            Log.d(TAG, "Do not insert the provisioning or satellite eSIM");
                         }
                         continue;
                     }
diff --git a/src/com/android/settings/network/MobileNetworkSummaryController.java b/src/com/android/settings/network/MobileNetworkSummaryController.java
index f924636..15c1494 100644
--- a/src/com/android/settings/network/MobileNetworkSummaryController.java
+++ b/src/com/android/settings/network/MobileNetworkSummaryController.java
@@ -84,7 +84,7 @@
     public MobileNetworkSummaryController(Context context, Lifecycle lifecycle,
             LifecycleOwner lifecycleOwner) {
         super(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mUserManager = context.getSystemService(UserManager.class);
         mLifecycleOwner = lifecycleOwner;
         mMobileNetworkRepository = MobileNetworkRepository.getInstance(context);
diff --git a/src/com/android/settings/network/MobilePlanPreferenceController.java b/src/com/android/settings/network/MobilePlanPreferenceController.java
deleted file mode 100644
index d8963ad..0000000
--- a/src/com/android/settings/network/MobilePlanPreferenceController.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF 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 android.content.Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT;
-import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
-import static android.os.UserHandle.myUserId;
-import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS;
-
-import static com.android.settingslib.RestrictedLockUtilsInternal.hasBaseUserRestriction;
-
-import android.content.ActivityNotFoundException;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.net.ConnectivityManager;
-import android.net.NetworkInfo;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.UserManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.Utils;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnCreate;
-import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
-
-import java.util.List;
-
-public class MobilePlanPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnSaveInstanceState {
-
-    public interface MobilePlanPreferenceHost {
-        void showMobilePlanMessageDialog();
-    }
-
-    public static final int MANAGE_MOBILE_PLAN_DIALOG_ID = 1;
-
-    private static final String TAG = "MobilePlanPrefContr";
-    private static final String KEY_MANAGE_MOBILE_PLAN = "manage_mobile_plan";
-    private static final String SAVED_MANAGE_MOBILE_PLAN_MSG = "mManageMobilePlanMessage";
-
-    private final UserManager mUserManager;
-    private final boolean mIsSecondaryUser;
-    private final MobilePlanPreferenceHost mHost;
-
-    private ConnectivityManager mCm;
-    private TelephonyManager mTm;
-
-    private String mMobilePlanDialogMessage;
-
-    public MobilePlanPreferenceController(Context context,
-            MobilePlanPreferenceHost host) {
-        super(context);
-        mHost = host;
-        mCm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
-        mTm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
-        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        mIsSecondaryUser = !mUserManager.isAdminUser();
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (mHost != null && KEY_MANAGE_MOBILE_PLAN.equals(preference.getKey())) {
-            mMobilePlanDialogMessage = null;
-            onManageMobilePlanClick();
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        if (savedInstanceState != null) {
-            mMobilePlanDialogMessage = savedInstanceState.getString(SAVED_MANAGE_MOBILE_PLAN_MSG);
-        }
-        Log.d(TAG, "onCreate: mMobilePlanDialogMessage=" + mMobilePlanDialogMessage);
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        if (!TextUtils.isEmpty(mMobilePlanDialogMessage)) {
-            outState.putString(SAVED_MANAGE_MOBILE_PLAN_MSG, mMobilePlanDialogMessage);
-        }
-    }
-
-    public String getMobilePlanDialogMessage() {
-        return mMobilePlanDialogMessage;
-    }
-
-    public void setMobilePlanDialogMessage(String messasge) {
-        mMobilePlanDialogMessage = messasge;
-    }
-
-    @Override
-    public boolean isAvailable() {
-        final boolean isPrefAllowedOnDevice = mContext.getResources().getBoolean(
-                com.android.settings.R.bool.config_show_mobile_plan);
-        final boolean isPrefAllowedForUser = !mIsSecondaryUser
-                && !Utils.isWifiOnly(mContext)
-                && !hasBaseUserRestriction(mContext, DISALLOW_CONFIG_MOBILE_NETWORKS, myUserId());
-        return isPrefAllowedForUser && isPrefAllowedOnDevice;
-    }
-    @Override
-    public String getPreferenceKey() {
-        return KEY_MANAGE_MOBILE_PLAN;
-    }
-
-    private void onManageMobilePlanClick() {
-        Resources resources = mContext.getResources();
-        NetworkInfo ni = mCm.getActiveNetworkInfo();
-        if (mTm.hasIccCard() && (ni != null)) {
-            // Check for carrier apps that can handle provisioning first
-            Intent provisioningIntent = new Intent(Intent.ACTION_CARRIER_SETUP);
-            List<String> carrierPackages =
-                    mTm.getCarrierPackageNamesForIntent(provisioningIntent);
-            if (carrierPackages != null && !carrierPackages.isEmpty()) {
-                if (carrierPackages.size() != 1) {
-                    Log.w(TAG, "Multiple matching carrier apps found, launching the first.");
-                }
-                provisioningIntent.setPackage(carrierPackages.get(0));
-                mContext.startActivity(provisioningIntent);
-                return;
-            }
-
-            // Get provisioning URL
-            String url = mTm.getMobileProvisioningUrl();
-            if (!TextUtils.isEmpty(url)) {
-                Intent intent = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN,
-                        Intent.CATEGORY_APP_BROWSER);
-                intent.setData(Uri.parse(url));
-                intent.setFlags(FLAG_ACTIVITY_BROUGHT_TO_FRONT | FLAG_ACTIVITY_NEW_TASK);
-                try {
-                    mContext.startActivity(intent);
-                } catch (ActivityNotFoundException e) {
-                    Log.w(TAG, "onManageMobilePlanClick: startActivity failed" + e);
-                }
-            } else {
-                // No provisioning URL
-                String operatorName = mTm.getSimOperatorName();
-                if (TextUtils.isEmpty(operatorName)) {
-                    // Use NetworkOperatorName as second choice in case there is no
-                    // SPN (Service Provider Name on the SIM). Such as with T-mobile.
-                    operatorName = mTm.getNetworkOperatorName();
-                    if (TextUtils.isEmpty(operatorName)) {
-                        mMobilePlanDialogMessage =
-                                resources.getString(R.string.mobile_unknown_sim_operator);
-                    } else {
-                        mMobilePlanDialogMessage = resources.getString(
-                                R.string.mobile_no_provisioning_url, operatorName);
-                    }
-                } else {
-                    mMobilePlanDialogMessage =
-                            resources.getString(R.string.mobile_no_provisioning_url, operatorName);
-                }
-            }
-        } else if (mTm.hasIccCard() == false) {
-            // No sim card
-            mMobilePlanDialogMessage = resources.getString(R.string.mobile_insert_sim_card);
-        } else {
-            // NetworkInfo is null, there is no connection
-            mMobilePlanDialogMessage = resources.getString(R.string.mobile_connect_to_internet);
-        }
-        if (!TextUtils.isEmpty(mMobilePlanDialogMessage)) {
-            Log.d(TAG, "onManageMobilePlanClick: message=" + mMobilePlanDialogMessage);
-            if (mHost != null) {
-                mHost.showMobilePlanMessageDialog();
-            } else {
-                Log.d(TAG, "Missing host fragment, cannot show message dialog.");
-            }
-        }
-    }
-}
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index 4ea3464..323d935 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -15,40 +15,27 @@
  */
 package com.android.settings.network;
 
-import static com.android.settings.network.MobilePlanPreferenceController.MANAGE_MOBILE_PLAN_DIALOG_ID;
-
-import android.app.Dialog;
 import android.app.settings.SettingsEnums;
 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;
-import androidx.fragment.app.Fragment;
 import androidx.lifecycle.LifecycleOwner;
 
 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
 public class NetworkDashboardFragment extends DashboardFragment implements
-        MobilePlanPreferenceHost, OnActivityResultListener {
+        OnActivityResultListener {
 
     private static final String TAG = "NetworkDashboardFrag";
 
@@ -72,13 +59,7 @@
         super.onAttach(context);
 
         use(AirplaneModePreferenceController.class).setFragment(this);
-        getSettingsLifecycle().addObserver(use(AllInOneTetherPreferenceController.class));
-    }
-
-    @Override
-    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-        super.onCreatePreferences(savedInstanceState, rootKey);
-        use(AllInOneTetherPreferenceController.class).initEnabler(getSettingsLifecycle());
+        use(NetworkProviderCallsSmsController.class).init(this);
     }
 
     @Override
@@ -88,15 +69,12 @@
 
     @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        return buildPreferenceControllers(context, getSettingsLifecycle(), mMetricsFeatureProvider,
-                this /* fragment */, this /* mobilePlanHost */, this /* LifecycleOwner */);
+        return buildPreferenceControllers(context, getSettingsLifecycle(),
+                this /* LifecycleOwner */);
     }
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
-            Lifecycle lifecycle, MetricsFeatureProvider metricsFeatureProvider, Fragment fragment,
-            MobilePlanPreferenceHost mobilePlanHost, LifecycleOwner lifecycleOwner) {
-        final MobilePlanPreferenceController mobilePlanPreferenceController =
-                new MobilePlanPreferenceController(context, mobilePlanHost);
+            Lifecycle lifecycle, LifecycleOwner lifecycleOwner) {
         final InternetPreferenceController internetPreferenceController =
                 new InternetPreferenceController(context, lifecycle, lifecycleOwner);
 
@@ -106,7 +84,6 @@
                 new PrivateDnsPreferenceController(context);
 
         if (lifecycle != null) {
-            lifecycle.addObserver(mobilePlanPreferenceController);
             lifecycle.addObserver(vpnPreferenceController);
             lifecycle.addObserver(privateDnsPreferenceController);
         }
@@ -114,15 +91,11 @@
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
 
         controllers.add(new MobileNetworkSummaryController(context, lifecycle, lifecycleOwner));
-        controllers.add(new TetherPreferenceController(context, lifecycle));
         controllers.add(vpnPreferenceController);
-        controllers.add(new ProxyPreferenceController(context));
-        controllers.add(mobilePlanPreferenceController);
         if (internetPreferenceController != null) {
             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);
@@ -131,36 +104,6 @@
         return controllers;
     }
 
-    @Override
-    public void showMobilePlanMessageDialog() {
-        showDialog(MANAGE_MOBILE_PLAN_DIALOG_ID);
-    }
-
-    @Override
-    public Dialog onCreateDialog(int dialogId) {
-        Log.d(TAG, "onCreateDialog: dialogId=" + dialogId);
-        switch (dialogId) {
-            case MANAGE_MOBILE_PLAN_DIALOG_ID:
-                final MobilePlanPreferenceController controller =
-                        use(MobilePlanPreferenceController.class);
-                return new AlertDialog.Builder(getActivity())
-                        .setMessage(controller.getMobilePlanDialogMessage())
-                        .setCancelable(false)
-                        .setPositiveButton(com.android.internal.R.string.ok,
-                                (dialog, id) -> controller.setMobilePlanDialogMessage(null))
-                        .create();
-        }
-        return super.onCreateDialog(dialogId);
-    }
-
-    @Override
-    public int getDialogMetricsCategory(int dialogId) {
-        if (MANAGE_MOBILE_PLAN_DIALOG_ID == dialogId) {
-            return SettingsEnums.DIALOG_MANAGE_MOBILE_PLAN;
-        }
-        return 0;
-    }
-
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
 
@@ -178,8 +121,7 @@
                 public List<AbstractPreferenceController> createPreferenceControllers(Context
                         context) {
                     return buildPreferenceControllers(context, null /* lifecycle */,
-                            null /* metricsFeatureProvider */, null /* fragment */,
-                            null /* mobilePlanHost */, null /* LifecycleOwner */);
+                            null /* LifecycleOwner */);
                 }
             };
 }
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..67247c1
--- /dev/null
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.kt
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.IntentFilter
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import androidx.annotation.VisibleForTesting
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.LifecycleOwner
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.flags.Flags
+import com.android.settingslib.RestrictedPreference
+import com.android.settingslib.Utils
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+import com.android.settingslib.spaprivileged.framework.common.userManager
+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,
+) : BasePreferenceController(context, preferenceKey) {
+
+    private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
+    private lateinit var preference: RestrictedPreference
+
+    fun init(fragment: Fragment) {
+        lazyViewModel = fragment.viewModels()
+    }
+
+    override fun getAvailabilityStatus() = when {
+        Flags.isDualSimOnboardingEnabled() -> UNSUPPORTED_ON_DEVICE
+        !SubscriptionUtil.isSimHardwareVisible(mContext) -> UNSUPPORTED_ON_DEVICE
+        !mContext.userManager.isAdminUser -> DISABLED_FOR_USER
+        else -> AVAILABLE
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        val viewModel by lazyViewModel
+
+        summaryFlow(viewModel.subscriptionInfoListFlow)
+            .collectLatestWithLifecycle(viewLifecycleOwner) { preference.summary = it }
+
+        viewModel.subscriptionInfoListFlow
+            .collectLatestWithLifecycle(viewLifecycleOwner) { subscriptionInfoList ->
+                if (!preference.isDisabledByAdmin) {
+                    preference.isEnabled = subscriptionInfoList.isNotEmpty()
+                }
+            }
+    }
+
+    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/NetworkProviderCallsSmsFragment.java b/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
index b5ad65a..ffe5b05 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsFragment.java
@@ -24,6 +24,7 @@
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.telephony.CallsDefaultSubscriptionController;
 import com.android.settings.network.telephony.NetworkProviderWifiCallingPreferenceController;
 import com.android.settings.network.telephony.SmsDefaultSubscriptionController;
@@ -91,8 +92,9 @@
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    return SubscriptionUtil.isSimHardwareVisible(context) &&
-                            context.getSystemService(UserManager.class).isAdminUser();
+                    return !Flags.isDualSimOnboardingEnabled()
+                            && SubscriptionUtil.isSimHardwareVisible(context)
+                            && context.getSystemService(UserManager.class).isAdminUser();
                 }
             };
 }
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index e285a91..0da1034 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;
@@ -40,7 +39,6 @@
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.EventLog;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
@@ -50,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;
@@ -62,7 +62,6 @@
 import com.android.settings.AirplaneModeEnabler;
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.datausage.DataUsagePreference;
 import com.android.settings.datausage.DataUsageUtils;
@@ -74,7 +73,6 @@
 import com.android.settings.wifi.ConnectedWifiEntryPreference;
 import com.android.settings.wifi.LongPressWifiEntryPreference;
 import com.android.settings.wifi.WifiConfigUiBase2;
-import com.android.settings.wifi.WifiConnectListener;
 import com.android.settings.wifi.WifiDialog2;
 import com.android.settings.wifi.WifiPickerTrackerHelper;
 import com.android.settings.wifi.WifiUtils;
@@ -91,6 +89,7 @@
 import com.android.settingslib.widget.LayoutPreference;
 import com.android.settingslib.wifi.WifiEnterpriseRestrictionUtils;
 import com.android.settingslib.wifi.WifiSavedConfigUtils;
+import com.android.wifi.flags.Flags;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
 import com.android.wifitrackerlib.WifiPickerTracker;
@@ -138,6 +137,8 @@
     @VisibleForTesting
     static final String PREF_KEY_FIRST_ACCESS_POINTS = "first_access_points";
     private static final String PREF_KEY_ACCESS_POINTS = "access_points";
+    @VisibleForTesting
+    static final String PREF_KEY_ADD_WIFI_NETWORK = "add_wifi_network";
     private static final String PREF_KEY_CONFIGURE_NETWORK_SETTINGS = "configure_network_settings";
     private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
     @VisibleForTesting
@@ -174,10 +175,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 = () -> {
@@ -187,11 +184,13 @@
         }
     };
 
-    private boolean mIsWifiEntryListStale = true;
     @VisibleForTesting
     final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
         updateWifiEntryPreferences();
-        getView().postDelayed(mRemoveLoadingRunnable, 10);
+        View view = getView();
+        if (view != null) {
+            view.postDelayed(mRemoveLoadingRunnable, 10);
+        }
     };
     @VisibleForTesting
     final Runnable mHideProgressBarRunnable = () -> {
@@ -199,9 +198,7 @@
     };
 
     protected WifiManager mWifiManager;
-    private WifiManager.ActionListener mConnectListener;
     private WifiManager.ActionListener mSaveListener;
-    private WifiManager.ActionListener mForgetListener;
 
     protected InternetResetHelper mInternetResetHelper;
 
@@ -249,6 +246,8 @@
     ConnectedEthernetNetworkController mConnectedEthernetNetworkController;
     @VisibleForTesting
     FooterPreference mWifiStatusMessagePreference;
+    @VisibleForTesting
+    MenuProvider mMenuProvider;
 
     /**
      * Mobile networks list for provider model
@@ -274,7 +273,7 @@
             return;
         }
 
-        setPinnedHeaderView(R.layout.progress_header);
+        setPinnedHeaderView(com.android.settingslib.widget.progressbar.R.layout.progress_header);
         setProgressBarVisible(false);
 
         if (hasWifiManager()) {
@@ -306,6 +305,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() {
@@ -325,11 +362,14 @@
         mWifiEntryPreferenceCategory = findPreference(PREF_KEY_ACCESS_POINTS);
         mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_NETWORK_SETTINGS);
         mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
-        mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext());
+        mAddWifiNetworkPreference = findPreference(PREF_KEY_ADD_WIFI_NETWORK);
+        // Hide mAddWifiNetworkPreference by default. updateWifiEntryPreferences() will add it back
+        // later when appropriate.
+        mWifiEntryPreferenceCategory.removePreference(mAddWifiNetworkPreference);
         mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
         mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
         mDataUsagePreference.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI)
-                        .build(), 0 /*subId*/, null /*service*/);
+                        .build(), 0 /*subId*/);
         mResetInternetPreference = findPreference(PREF_KEY_RESET_INTERNET);
         if (mResetInternetPreference != null) {
             mResetInternetPreference.setVisible(false);
@@ -407,8 +447,6 @@
         }
         mInternetUpdater = new InternetUpdater(getContext(), getSettingsLifecycle(), this);
 
-        mConnectListener = new WifiConnectListener(getActivity());
-
         mSaveListener = new WifiManager.ActionListener() {
             @Override
             public void onSuccess() {
@@ -425,23 +463,6 @@
             }
         };
 
-        mForgetListener = new WifiManager.ActionListener() {
-            @Override
-            public void onSuccess() {
-            }
-
-            @Override
-            public void onFailure(int reason) {
-                Activity activity = getActivity();
-                if (activity != null) {
-                    Toast.makeText(activity,
-                            R.string.wifi_failed_forget_message,
-                            Toast.LENGTH_SHORT).show();
-                }
-            }
-        };
-        setHasOptionsMenu(true);
-
         if (savedInstanceState != null) {
             mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
             mDialogWifiEntryKey = savedInstanceState.getString(SAVE_DIALOG_WIFIENTRY_KEY);
@@ -459,12 +480,13 @@
         if (mNetworkMobileProviderController != null) {
             mNetworkMobileProviderController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
         }
+
+        requireActivity().addMenuProvider(mMenuProvider);
     }
 
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-
     }
 
     @Override
@@ -513,7 +535,6 @@
 
     @Override
     public void onStop() {
-        mIsWifiEntryListStale = true;
         getView().removeCallbacks(mRemoveLoadingRunnable);
         getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable);
         getView().removeCallbacks(mHideProgressBarRunnable);
@@ -767,15 +788,11 @@
 
     @Override
     public Dialog onCreateDialog(int dialogId) {
-        switch (dialogId) {
-            case WIFI_DIALOG_ID:
-                // modify network
-                mDialog = WifiDialog2
-                        .createModal(getActivity(), this, mDialogWifiEntry, mDialogMode);
-                return mDialog;
-            default:
-                return super.onCreateDialog(dialogId);
+        if (dialogId == WIFI_DIALOG_ID) {  // modify network
+            mDialog = new WifiDialog2(requireContext(), this, mDialogWifiEntry, mDialogMode);
+            return mDialog;
         }
+        return super.onCreateDialog(dialogId);
     }
 
     @Override
@@ -817,7 +834,7 @@
         }
         final int wifiState = mWifiPickerTracker.getWifiState();
 
-        if (isVerboseLoggingEnabled()) {
+        if (mWifiPickerTracker.isVerboseLoggingEnabled()) {
             Log.i(TAG, "onWifiStateChanged called with wifi state: " + wifiState);
         }
 
@@ -826,6 +843,11 @@
             return;
         }
 
+        if (isAdded()) {
+            // update the menu item
+            requireActivity().invalidateMenu();
+        }
+
         switch (wifiState) {
             case WifiManager.WIFI_STATE_ENABLED:
                 setWifiScanMessage(/* isWifiEnabled */ true);
@@ -854,6 +876,11 @@
         }
     }
 
+    @Override
+    public void onScanRequested() {
+        setProgressBarVisible(true);
+    }
+
     @VisibleForTesting
     void setWifiScanMessage(boolean isWifiEnabled) {
         final Context context = getContext();
@@ -884,12 +911,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);
@@ -926,24 +951,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) {
@@ -1026,16 +1033,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++);
@@ -1067,17 +1070,13 @@
     @VisibleForTesting
     void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) {
         final WifiEntry wifiEntry = pref.getWifiEntry();
-        final Context context = getContext();
-        final CharSequence title =
-                FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER)
-                        ? wifiEntry.getTitle()
-                        : context.getText(R.string.pref_title_network_details);
+        final Context context = requireContext();
 
         final Bundle bundle = new Bundle();
         bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey());
 
         new SubSettingLauncher(context)
-                .setTitleText(title)
+                .setTitleText(context.getText(R.string.pref_title_network_details))
                 .setDestination(WifiNetworkDetailsFragment.class.getName())
                 .setArguments(bundle)
                 .setSourceMetricsCategory(getMetricsCategory())
@@ -1259,8 +1258,19 @@
 
         // If it's an unsaved secure WifiEntry, it will callback
         // ConnectCallback#onConnectResult with ConnectCallback#CONNECT_STATUS_FAILURE_NO_CONFIG
-        wifiEntry.connect(new WifiEntryConnectCallback(wifiEntry, editIfNoConfig,
-                fullScreenEdit));
+        WifiEntryConnectCallback callback =
+                new WifiEntryConnectCallback(wifiEntry, editIfNoConfig, fullScreenEdit);
+
+        if (Flags.wepUsage() && wifiEntry.getSecurityTypes().contains(WifiEntry.SECURITY_WEP)) {
+            WepNetworkDialogActivity.checkWepAllowed(
+                    getContext(), getViewLifecycleOwner(), wifiEntry.getSsid(), () -> {
+                        wifiEntry.connect(callback);
+                        return null;
+                    });
+            return;
+        }
+
+        wifiEntry.connect(callback);
     }
 
     private class WifiConnectActionListener implements WifiManager.ActionListener {
@@ -1312,6 +1322,9 @@
             if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) {
                 keys.add(PREF_KEY_SAVED_NETWORKS);
             }
+            if (wifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
+                keys.add(PREF_KEY_ADD_WIFI_NETWORK);
+            }
 
             if (!DataUsageUtils.hasWifiRadio(context)) {
                 keys.add(PREF_KEY_DATA_USAGE);
@@ -1417,29 +1430,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());
@@ -1482,6 +1472,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/OWNERS b/src/com/android/settings/network/OWNERS
index ee5b494..a63a825 100644
--- a/src/com/android/settings/network/OWNERS
+++ b/src/com/android/settings/network/OWNERS
@@ -3,7 +3,6 @@
 andychou@google.com
 bonianchen@google.com
 changbetty@google.com
-goldmanj@google.com
 leechou@google.com
 songferngwang@google.com
 tomhsu@google.com
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 5c7c54e..3b99777 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -155,12 +155,13 @@
 
         // Initial radio button text
         final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off);
-        offRadioButton.setText(R.string.private_dns_mode_off);
+        offRadioButton.setText(com.android.settingslib.R.string.private_dns_mode_off);
         final RadioButton opportunisticRadioButton =
                 view.findViewById(R.id.private_dns_mode_opportunistic);
-        opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic);
+        opportunisticRadioButton.setText(
+                com.android.settingslib.R.string.private_dns_mode_opportunistic);
         final RadioButton providerRadioButton = view.findViewById(R.id.private_dns_mode_provider);
-        providerRadioButton.setText(R.string.private_dns_mode_provider);
+        providerRadioButton.setText(com.android.settingslib.R.string.private_dns_mode_provider);
 
         final TextView helpTextView = view.findViewById(R.id.private_dns_help_info);
         helpTextView.setMovementMethod(LinkMovementMethod.getInstance());
@@ -187,7 +188,7 @@
                         mEditText.getText().toString());
             }
 
-            FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(context,
                     SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode);
             ConnectivitySettingsManager.setPrivateDnsMode(context, mMode);
         }
diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java
index 4f727b1..21e4926 100644
--- a/src/com/android/settings/network/PrivateDnsPreferenceController.java
+++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java
@@ -128,14 +128,16 @@
         final boolean dnsesResolved = !ArrayUtils.isEmpty(dnses);
         switch (mode) {
             case PRIVATE_DNS_MODE_OFF:
-                return res.getString(R.string.private_dns_mode_off);
+                return res.getString(com.android.settingslib.R.string.private_dns_mode_off);
             case PRIVATE_DNS_MODE_OPPORTUNISTIC:
                 return dnsesResolved ? res.getString(R.string.private_dns_mode_on)
-                        : res.getString(R.string.private_dns_mode_opportunistic);
+                        : res.getString(
+                                com.android.settingslib.R.string.private_dns_mode_opportunistic);
             case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:
                 return dnsesResolved
                         ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr)
-                        : res.getString(R.string.private_dns_mode_provider_failure);
+                        : res.getString(
+                                com.android.settingslib.R.string.private_dns_mode_provider_failure);
         }
         return "";
     }
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/ProxyPreferenceController.java b/src/com/android/settings/network/ProxyPreferenceController.java
deleted file mode 100644
index 8f26bfb..0000000
--- a/src/com/android/settings/network/ProxyPreferenceController.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF 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.admin.DevicePolicyManager;
-import android.content.Context;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-
-public class ProxyPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
-
-    private static final String KEY_PROXY_SETTINGS = "proxy_settings";
-
-    public ProxyPreferenceController(Context context) {
-        super(context);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        // proxy UI disabled until we have better app support
-        return false;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        // Enable Proxy selector settings if allowed.
-        final Preference pref = screen.findPreference(KEY_PROXY_SETTINGS);
-        if (pref != null) {
-            final DevicePolicyManager dpm = (DevicePolicyManager)
-                    mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
-            pref.setEnabled(dpm.getGlobalProxyAdmin() == null);
-        }
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_PROXY_SETTINGS;
-    }
-}
diff --git a/src/com/android/settings/network/ProxySubscriptionManager.java b/src/com/android/settings/network/ProxySubscriptionManager.java
index 51fafb1..7e276e8 100644
--- a/src/com/android/settings/network/ProxySubscriptionManager.java
+++ b/src/com/android/settings/network/ProxySubscriptionManager.java
@@ -20,7 +20,6 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_START;
 import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.os.Looper;
 import android.provider.Settings;
@@ -29,6 +28,7 @@
 import android.util.Log;
 
 import androidx.annotation.Keep;
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleObserver;
diff --git a/src/com/android/settings/network/ResetNetworkOperationBuilder.java b/src/com/android/settings/network/ResetNetworkOperationBuilder.java
index 3583d06..ac07897 100644
--- a/src/com/android/settings/network/ResetNetworkOperationBuilder.java
+++ b/src/com/android/settings/network/ResetNetworkOperationBuilder.java
@@ -33,6 +33,9 @@
 import android.telephony.TelephonyManager;
 import android.util.Log;
 
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.ResetNetworkRequest;
 import com.android.settings.network.apn.ApnSettings;
 
 import java.util.ArrayList;
@@ -49,6 +52,13 @@
 
     private static final boolean DRY_RUN = false;
 
+    // TelephonyContentProvider method to restart phone process
+    @VisibleForTesting
+    static final String METHOD_RESTART_PHONE_PROCESS = "restartPhoneProcess";
+    // TelephonyContentProvider method to restart RILD
+    @VisibleForTesting
+    static final String METHOD_RESTART_RILD = "restartRild";
+
     private Context mContext;
     private List<Runnable> mResetSequence = new ArrayList<Runnable>();
 
@@ -213,6 +223,72 @@
     }
 
     /**
+     * Append a step of resetting IMS stack.
+     *
+     * @return this
+     */
+    public ResetNetworkOperationBuilder resetIms(int subId) {
+        attachSystemServiceWork(Context.TELEPHONY_SERVICE,
+                (Consumer<TelephonyManager>) tm -> {
+                    if (subId == ResetNetworkRequest.INVALID_SUBSCRIPTION_ID) {
+                        // Do nothing
+                        return;
+                    }
+                    if (subId == ResetNetworkRequest.ALL_SUBSCRIPTION_ID) {
+                        // Reset IMS for all slots
+                        for (int slotIndex = 0; slotIndex < tm.getActiveModemCount(); slotIndex++) {
+                            tm.resetIms(slotIndex);
+                            Log.i(TAG, "IMS was reset for slot " + slotIndex);
+                        }
+                    } else {
+                        // Reset IMS for the slot specified by the sucriptionId.
+                        final int slotIndex = SubscriptionManager.getSlotIndex(subId);
+                        tm.resetIms(slotIndex);
+                        Log.i(TAG, "IMS was reset for slot " + slotIndex);
+                    }
+                });
+        return this;
+    }
+
+    /**
+     * Append a step to restart phone process by the help of TelephonyContentProvider.
+     * It's a no-op if TelephonyContentProvider doesn't exist.
+     * @return this
+     */
+    public ResetNetworkOperationBuilder restartPhoneProcess() {
+        try {
+            mContext.getContentResolver().call(
+                    getResetTelephonyContentProviderAuthority(),
+                    METHOD_RESTART_PHONE_PROCESS,
+                    /* arg= */ null,
+                    /* extras= */ null);
+            Log.i(TAG, "Phone process was restarted.");
+        } catch (IllegalArgumentException iae) {
+            Log.w(TAG, "Fail to restart phone process: " + iae);
+        }
+        return this;
+    }
+
+    /**
+     * Append a step to restart RILD by the help of TelephonyContentProvider.
+     * It's a no-op if TelephonyContentProvider doesn't exist.
+     * @return this
+     */
+    public ResetNetworkOperationBuilder restartRild() {
+        try {
+            mContext.getContentResolver().call(
+                    getResetTelephonyContentProviderAuthority(),
+                    METHOD_RESTART_RILD,
+                    /* arg= */ null,
+                    /* extras= */ null);
+            Log.i(TAG, "RILD was restarted.");
+        } catch (IllegalArgumentException iae) {
+            Log.w(TAG, "Fail to restart RILD: " + iae);
+        }
+        return this;
+    }
+
+    /**
      * Construct a Runnable containing all operations appended.
      * @return Runnable
      */
@@ -235,4 +311,14 @@
         };
         mResetSequence.add(runnable);
     }
+
+    /**
+     * @return the authority of the telephony content provider that support methods
+     * resetPhoneProcess and resetRild.
+     */
+    @VisibleForTesting
+    String getResetTelephonyContentProviderAuthority() {
+        return mContext.getResources().getString(
+                R.string.reset_telephony_stack_content_provider_authority);
+    }
 }
diff --git a/src/com/android/settings/network/SimOnboardingService.kt b/src/com/android/settings/network/SimOnboardingService.kt
new file mode 100644
index 0000000..1b3994e
--- /dev/null
+++ b/src/com/android/settings/network/SimOnboardingService.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.content.Context
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.UiccCardInfo
+import android.telephony.UiccSlotInfo
+import android.util.Log
+import com.android.settingslib.utils.ThreadUtils
+
+
+private const val TAG = "SimOnboardingService"
+private const val INVALID = -1
+
+class SimOnboardingService {
+    var subscriptionManager:SubscriptionManager? = null
+    var telephonyManager:TelephonyManager? = null
+
+    var targetSubId: Int = INVALID
+    var targetSubInfo: SubscriptionInfo? = null
+    var availableSubInfoList: List<SubscriptionInfo> = listOf()
+    var activeSubInfoList: List<SubscriptionInfo> = listOf()
+    var slotInfoList: List<UiccSlotInfo> = listOf()
+    var uiccCardInfoList: List<UiccCardInfo> = listOf()
+    var selectedSubInfoList: MutableList<SubscriptionInfo> = mutableListOf()
+    var targetPrimarySimCalls: Int = -1
+    var targetPrimarySimTexts: Int = -1
+    var targetPrimarySimMobileData: Int = -1
+    var isMultipleEnabledProfilesSupported: Boolean = false
+        get() {
+            if (uiccCardInfoList.isEmpty()) {
+                Log.w(TAG, "UICC cards info list is empty.")
+                return false
+            }
+            return uiccCardInfoList.stream()
+                .anyMatch { cardInfo: UiccCardInfo -> cardInfo.isMultipleEnabledProfilesSupported }
+        }
+    var renameMutableMap : MutableMap<Int, String> = mutableMapOf()
+
+    fun isValid(): Boolean {
+        return targetSubId != INVALID
+            && targetSubInfo != null
+            && activeSubInfoList.isNotEmpty()
+            && slotInfoList.isNotEmpty()
+            && selectedSubInfoList.isNotEmpty()
+    }
+
+    fun clear() {
+        targetSubId = -1
+        targetSubInfo = null
+        availableSubInfoList = listOf()
+        activeSubInfoList = listOf()
+        slotInfoList = listOf()
+        uiccCardInfoList = listOf()
+        selectedSubInfoList = mutableListOf()
+        targetPrimarySimCalls = -1
+        targetPrimarySimTexts = -1
+        targetPrimarySimMobileData = -1
+        renameMutableMap.clear()
+    }
+
+    fun initData(inputTargetSubId:Int,context: Context) {
+        targetSubId = inputTargetSubId
+        subscriptionManager = context.getSystemService(SubscriptionManager::class.java)
+        telephonyManager = context.getSystemService(TelephonyManager::class.java)
+
+        ThreadUtils.postOnBackgroundThread {
+            activeSubInfoList = SubscriptionUtil.getActiveSubscriptions(subscriptionManager)
+            availableSubInfoList = SubscriptionUtil.getAvailableSubscriptions(context)
+            targetSubInfo = availableSubInfoList.find { subInfo -> subInfo.subscriptionId == targetSubId }
+            Log.d(
+                TAG, "targetSubId: $targetSubId" + ", targetSubInfo: $targetSubInfo" +
+                    ". activeSubInfoList: $activeSubInfoList"
+            )
+            slotInfoList = telephonyManager?.uiccSlotsInfo?.toList() ?: listOf()
+            Log.d(TAG, "slotInfoList: $slotInfoList.")
+            uiccCardInfoList = telephonyManager?.uiccCardsInfo!!
+            Log.d(TAG, "uiccCardInfoList: $uiccCardInfoList")
+
+            Log.d(TAG, "isMultipleEnabledProfilesSupported: $isMultipleEnabledProfilesSupported")
+        }
+    }
+
+    fun getSelectableSubscriptionInfo(): List<SubscriptionInfo> {
+        var list: MutableList<SubscriptionInfo> = mutableListOf()
+        list.addAll(activeSubInfoList)
+        if (!list.contains(targetSubInfo)) {
+            targetSubInfo?.let { list.add(it) }
+        }
+
+        Log.d(TAG, "list: $list")
+        return list.toList()
+    }
+
+    fun addItemForRenaming(subInfo: SubscriptionInfo, newName: String) {
+        if (subInfo.displayName == newName) {
+            return
+        }
+        renameMutableMap[subInfo.subscriptionId] = newName
+    }
+
+    fun getSubscriptionInfoDisplayName(subInfo: SubscriptionInfo): String {
+        return renameMutableMap[subInfo.subscriptionId] ?: subInfo.displayName.toString()
+    }
+
+    fun startActivatingSim(callback:() -> Unit){
+        // TODO: start to activate sim
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/SubscriptionInfoListViewModel.kt b/src/com/android/settings/network/SubscriptionInfoListViewModel.kt
new file mode 100644
index 0000000..f682002
--- /dev/null
+++ b/src/com/android/settings/network/SubscriptionInfoListViewModel.kt
@@ -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.network
+
+import android.app.Application
+import android.telephony.SubscriptionManager
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import com.android.settings.network.telephony.subscriptionsChangedFlow
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.plus
+
+class SubscriptionInfoListViewModel(application: Application) : AndroidViewModel(application) {
+    private val subscriptionManager =
+        application.getSystemService(SubscriptionManager::class.java)!!
+    private val scope = viewModelScope + Dispatchers.Default
+
+    /**
+     * Getting the active Subscription list
+     */
+    //ToDo: renaming the function name
+    val subscriptionInfoListFlow = application.subscriptionsChangedFlow().map {
+        SubscriptionUtil.getActiveSubscriptions(subscriptionManager)
+    }.stateIn(scope, SharingStarted.Eagerly, initialValue = emptyList())
+
+    /**
+     * Getting the Selectable SubscriptionInfo List from the SubscriptionManager's
+     * getAvailableSubscriptionInfoList
+     */
+    val selectableSubscriptionInfoListFlow = application.subscriptionsChangedFlow().map {
+        SubscriptionUtil.getSelectableSubscriptionInfoList(application)
+    }.stateIn(scope, SharingStarted.Eagerly, initialValue = emptyList())
+}
diff --git a/src/com/android/settings/network/SubscriptionUtil.java b/src/com/android/settings/network/SubscriptionUtil.java
index 9974ba2..b6b433b 100644
--- a/src/com/android/settings/network/SubscriptionUtil.java
+++ b/src/com/android/settings/network/SubscriptionUtil.java
@@ -18,9 +18,10 @@
 
 import static android.telephony.SubscriptionManager.INVALID_SIM_SLOT_INDEX;
 import static android.telephony.UiccSlotInfo.CARD_STATE_INFO_PRESENT;
+import static android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING;
+
 import static com.android.internal.util.CollectionUtils.emptyIfNull;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.ParcelUuid;
@@ -36,14 +37,19 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.internal.telephony.MccTable;
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.helper.SelectableSubscriptions;
 import com.android.settings.network.helper.SubscriptionAnnotation;
 import com.android.settings.network.telephony.DeleteEuiccSubscriptionDialogActivity;
 import com.android.settings.network.telephony.ToggleSubscriptionDialogActivity;
+import com.android.settings.spa.SpaActivity;
+import com.android.settings.spa.network.SimOnboardingPageProvider;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -84,6 +90,8 @@
     }
 
     public static List<SubscriptionInfo> getActiveSubscriptions(SubscriptionManager manager) {
+        //TODO (b/315499317) : Refactor the subscription utils.
+
         if (sActiveResultsForTesting != null) {
             return sActiveResultsForTesting;
         }
@@ -94,7 +102,12 @@
         if (subscriptions == null) {
             return new ArrayList<>();
         }
-        return subscriptions;
+        // Since the SubscriptionManager.getActiveSubscriptionInfoList() has checked whether the
+        // sim visible by the SubscriptionManager.isSubscriptionVisible(), here only checks whether
+        // the esim visible here.
+        return subscriptions.stream()
+                .filter(subInfo -> subInfo != null && isEmbeddedSubscriptionVisible(subInfo))
+                .collect(Collectors.toList());
     }
 
     /**
@@ -128,7 +141,7 @@
     }
 
     /**
-     * Get subscription which is available to be displayed to the user
+     * Get subscriptionInfo which is available to be displayed to the user
      * per subscription id.
      *
      * @param context {@code Context}
@@ -138,13 +151,20 @@
      * @return {@code SubscriptionInfo} based on the given subscription id. Null of subscription
      *         is invalid or not allowed to be displayed to the user.
      */
-    public static SubscriptionInfo getAvailableSubscription(Context context,
+    public static SubscriptionInfo getAvailableSubscriptionBySubIdAndShowingForUser(Context context,
             ProxySubscriptionManager subscriptionManager, int subId) {
+        //TODO (b/315499317) : Refactor the subscription utils.
         final SubscriptionInfo subInfo = subscriptionManager.getAccessibleSubscriptionInfo(subId);
         if (subInfo == null) {
             return null;
         }
 
+        // hide provisioning/bootstrap and satellite profiles for user
+        if (!isEmbeddedSubscriptionVisible(subInfo)) {
+            Log.d(TAG, "Do not insert the provision eSIM or NTN eSim");
+            return null;
+        }
+
         final ParcelUuid groupUuid = subInfo.getGroupUuid();
 
         if (groupUuid != null) {
@@ -317,8 +337,16 @@
 
             if (duplicateOriginalNames.contains(info.originalName)) {
                 // This may return null, if the user cannot view the phone number itself.
-                final String phoneNumber = getBidiFormattedPhoneNumber(context,
-                        info.subscriptionInfo);
+                String phoneNumber = "";
+                try {
+                    final SubscriptionManager subscriptionManager = context.getSystemService(
+                        SubscriptionManager.class);
+                    phoneNumber = subscriptionManager.getPhoneNumber(infoSubId);
+                } catch (IllegalStateException
+                        | SecurityException
+                        | UnsupportedOperationException e) {
+                    Log.w(TAG, "get number error." + e);
+                }
                 String lastFourDigits = "";
                 if (phoneNumber != null) {
                     lastFourDigits = (phoneNumber.length() > 4)
@@ -517,6 +545,11 @@
             Log.i(TAG, "Unable to toggle subscription due to invalid subscription ID.");
             return;
         }
+        if (enable && Flags.isDualSimOnboardingEnabled()) {
+            String route = SimOnboardingPageProvider.INSTANCE.getRoute(subId);
+            SpaActivity.startSpaActivity(context, route);
+            return;
+        }
         context.startActivity(ToggleSubscriptionDialogActivity.getIntent(context, subId, enable));
     }
 
@@ -567,6 +600,12 @@
     public static boolean isSubscriptionVisible(
             SubscriptionManager subscriptionManager, Context context, SubscriptionInfo info) {
         if (info == null) return false;
+
+        // hide provisioning/bootstrap and satellite profiles for user
+        if (!isEmbeddedSubscriptionVisible(info)) {
+            return false;
+        }
+
         // If subscription is NOT grouped opportunistic subscription, it's visible.
         if (info.getGroupUuid() == null || !info.isOpportunistic()) return true;
 
@@ -786,4 +825,14 @@
         }
         return (currentSubInfo == null) ? null : currentSubInfo.getSubInfo();
     }
+
+    private static boolean isEmbeddedSubscriptionVisible(@NonNull SubscriptionInfo subInfo) {
+        if (subInfo.isEmbedded()
+                && (subInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                || (com.android.internal.telephony.flags.Flags.oemEnabledSatelliteFlag()
+                && subInfo.isOnlyNonTerrestrialNetwork()))) {
+            return false;
+        }
+        return true;
+    }
 }
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index 9cd49c8..09ce02e 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;
 
@@ -152,7 +153,8 @@
         mPreferenceGroupKey = preferenceGroupKey;
         mStartOrder = startOrder;
         mTelephonyManager = context.getSystemService(TelephonyManager.class);
-        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class)
+                .createForAllUserProfiles();
         mWifiManager = context.getSystemService(WifiManager.class);
         mSubscriptionPreferences = new ArrayMap<>();
         mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
@@ -265,9 +267,8 @@
 
     /**@return {@code true} if subId is the default data sub. **/
     private boolean isDds(int subId) {
-        return mSubscriptionManager.getDefaultDataSubscriptionInfo() != null
-                && mSubscriptionManager.getDefaultDataSubscriptionInfo().getSubscriptionId()
-                == subId;
+        SubscriptionInfo info = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+        return info != null && info.getSubscriptionId() == subId;
     }
 
     private CharSequence getMobilePreferenceSummary(int subId) {
@@ -290,18 +291,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
@@ -520,7 +522,7 @@
          * Uses to inject function and value for class and test class.
          */
         public boolean canSubscriptionBeDisplayed(Context context, int subId) {
-            return (SubscriptionUtil.getAvailableSubscription(context,
+            return (SubscriptionUtil.getAvailableSubscriptionBySubIdAndShowingForUser(context,
                     ProxySubscriptionManager.getInstance(context), subId) != null);
         }
 
@@ -580,10 +582,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/SwitchToEuiccSubscriptionSidecar.java b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
index 0c3d61a..a26aa8a 100644
--- a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
+++ b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java
@@ -101,7 +101,7 @@
         }
 
         SubscriptionManager subscriptionManager = getContext().getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         mActiveSubInfos = SubscriptionUtil.getActiveSubscriptions(subscriptionManager);
 
         // To check whether the esim slot's port is active. If yes, skip setSlotMapping. If no,
diff --git a/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java b/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java
index a870f3b..4cf797f 100644
--- a/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java
+++ b/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java
@@ -92,7 +92,7 @@
         mPhysicalSlotId = physicalSlotId;
         mRemovedSubInfo = removedSubInfo;
         SubscriptionManager subscriptionManager =
-                getContext().getSystemService(SubscriptionManager.class);
+                getContext().getSystemService(SubscriptionManager.class).createForAllUserProfiles();
         if (!mTelephonyManager.isMultiSimEnabled()
                 && SubscriptionUtil.getActiveSubscriptions(subscriptionManager).stream().anyMatch(
                 SubscriptionInfo::isEmbedded)) {
diff --git a/src/com/android/settings/network/TetherBasePreferenceController.java b/src/com/android/settings/network/TetherBasePreferenceController.java
deleted file mode 100644
index b1627f2..0000000
--- a/src/com/android/settings/network/TetherBasePreferenceController.java
+++ /dev/null
@@ -1,162 +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 android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.datausage.DataSaverBackend;
-
-public abstract class TetherBasePreferenceController extends TogglePreferenceController
-        implements LifecycleObserver,  DataSaverBackend.Listener,
-        TetherEnabler.OnTetherStateUpdateListener {
-
-    private static final String TAG = "TetherBasePreferenceController";
-    final TetheringManager mTm;
-    private final DataSaverBackend mDataSaverBackend;
-
-    private TetherEnabler mTetherEnabler;
-    Preference mPreference;
-    private boolean mDataSaverEnabled;
-    int mTetheringState;
-
-    TetherBasePreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-        mTm = context.getSystemService(TetheringManager.class);
-        mDataSaverBackend = new DataSaverBackend(context);
-        mDataSaverEnabled = mDataSaverBackend.isDataSaverEnabled();
-    }
-
-    /**
-     * Set TetherEnabler for the controller. Call this method to initialize the controller.
-     * @param tetherEnabler The tetherEnabler to set for the controller.
-     */
-    public void setTetherEnabler(TetherEnabler tetherEnabler) {
-        mTetherEnabler = tetherEnabler;
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
-    public void onResume() {
-        // Must call setEnabler() before
-        if (mTetherEnabler != null) {
-            mTetherEnabler.addListener(this);
-        }
-        mDataSaverBackend.addListener(this);
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
-    public void onPause() {
-        if (mTetherEnabler != null) {
-            mTetherEnabler.removeListener(this);
-        }
-        mDataSaverBackend.remListener(this);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return TetherEnabler.isTethering(mTetheringState, getTetherType());
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        if (mTetherEnabler == null) {
-            return false;
-        }
-        if (isChecked) {
-            mTetherEnabler.startTethering(getTetherType());
-        } else {
-            mTetherEnabler.stopTethering(getTetherType());
-        }
-        return true;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(mPreferenceKey);
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        if (isAvailable()) {
-            preference.setEnabled(getAvailabilityStatus() != DISABLED_DEPENDENT_SETTING);
-        }
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        if (!shouldShow()) {
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-
-        if (mDataSaverEnabled || !shouldEnable()) {
-            return DISABLED_DEPENDENT_SETTING;
-        }
-        return AVAILABLE;
-    }
-
-    @Override
-    public int getSliceHighlightMenuRes() {
-        return R.string.menu_key_network;
-    }
-
-    @Override
-    public void onTetherStateUpdated(@TetherEnabler.TetheringState int state) {
-        mTetheringState = state;
-        updateState(mPreference);
-    }
-
-    @Override
-    public void onDataSaverChanged(boolean isDataSaving) {
-        mDataSaverEnabled = isDataSaving;
-    }
-
-    @Override
-    public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
-    }
-
-    @Override
-    public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
-    }
-
-    /**
-     * Used to enable or disable the preference.
-     * @return true if the preference should be enabled; false otherwise.
-     */
-    public abstract boolean shouldEnable();
-
-    /**
-     * Used to determine visibility of the preference.
-     * @return true if the preference should be visible; false otherwise.
-     */
-    public abstract boolean shouldShow();
-
-    /**
-     * Get the type of tether interface that is controlled by the preference.
-     * @return the tether interface, like {@link ConnectivityManager#TETHERING_WIFI}
-     */
-    public abstract int getTetherType();
-}
diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java
deleted file mode 100644
index f9e5a43..0000000
--- a/src/com/android/settings/network/TetherPreferenceController.java
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF 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 android.os.UserManager.DISALLOW_CONFIG_TETHERING;
-
-import static com.android.settingslib.RestrictedLockUtilsInternal.checkIfRestrictionEnforced;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.database.ContentObserver;
-import android.net.TetheringManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.UserHandle;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.TetherUtil;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnCreate;
-import com.android.settingslib.core.lifecycle.events.OnDestroy;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-public class TetherPreferenceController extends AbstractPreferenceController implements
-        PreferenceControllerMixin, LifecycleObserver, OnCreate, OnResume, OnPause, OnDestroy {
-
-    private static final String TAG = "TetherPreferenceController";
-    private static final String KEY_TETHER_SETTINGS = "tether_settings";
-
-    private final boolean mAdminDisallowedTetherConfig;
-    private final AtomicReference<BluetoothPan> mBluetoothPan;
-    private final BluetoothAdapter mBluetoothAdapter;
-    private final TetheringManager mTetheringManager;
-    @VisibleForTesting
-    final BluetoothProfile.ServiceListener mBtProfileServiceListener =
-            new android.bluetooth.BluetoothProfile.ServiceListener() {
-                public void onServiceConnected(int profile, BluetoothProfile proxy) {
-                    if (mBluetoothPan.get() == null) {
-                        mBluetoothPan.set((BluetoothPan) proxy);
-                    }
-                    updateSummary();
-                }
-
-                public void onServiceDisconnected(int profile) {
-                    updateSummary();
-                }
-            };
-
-    private SettingObserver mAirplaneModeObserver;
-    private Preference mPreference;
-    private TetherBroadcastReceiver mTetherReceiver;
-    private BroadcastReceiver mBluetoothStateReceiver;
-
-    @VisibleForTesting(otherwise = VisibleForTesting.NONE)
-    TetherPreferenceController() {
-        super(null);
-        mAdminDisallowedTetherConfig = false;
-        mBluetoothPan = new AtomicReference<>();
-        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
-        mTetheringManager = null;
-    }
-
-    public TetherPreferenceController(Context context, Lifecycle lifecycle) {
-        super(context);
-        mBluetoothPan = new AtomicReference<>();
-        mAdminDisallowedTetherConfig = isTetherConfigDisallowed(context);
-        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
-        mTetheringManager = context.getSystemService(TetheringManager.class);
-        if (lifecycle != null) {
-            lifecycle.addObserver(this);
-        }
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(KEY_TETHER_SETTINGS);
-        if (mPreference != null && !mAdminDisallowedTetherConfig) {
-            mPreference.setTitle(
-                    com.android.settingslib.Utils.getTetheringLabel(mTetheringManager));
-        }
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return TetherUtil.isTetherAvailable(mContext)
-                && !FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE);
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        updateSummary();
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_TETHER_SETTINGS;
-    }
-
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        if (mBluetoothAdapter != null &&
-            mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
-            mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
-                    BluetoothProfile.PAN);
-        }
-        if (mBluetoothStateReceiver == null) {
-            mBluetoothStateReceiver = new BluetoothStateReceiver();
-            mContext.registerReceiver(
-                    mBluetoothStateReceiver,
-                    new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
-        }
-    }
-
-    @Override
-    public void onResume() {
-        if (mAirplaneModeObserver == null) {
-            mAirplaneModeObserver = new SettingObserver();
-        }
-        if (mTetherReceiver == null) {
-            mTetherReceiver = new TetherBroadcastReceiver();
-        }
-        mContext.registerReceiver(
-                mTetherReceiver, new IntentFilter(TetheringManager.ACTION_TETHER_STATE_CHANGED));
-        mContext.getContentResolver()
-                .registerContentObserver(mAirplaneModeObserver.uri, false, mAirplaneModeObserver);
-    }
-
-    @Override
-    public void onPause() {
-        if (mAirplaneModeObserver != null) {
-            mContext.getContentResolver().unregisterContentObserver(mAirplaneModeObserver);
-        }
-        if (mTetherReceiver != null) {
-            mContext.unregisterReceiver(mTetherReceiver);
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        final BluetoothProfile profile = mBluetoothPan.getAndSet(null);
-        if (profile != null && mBluetoothAdapter != null) {
-            mBluetoothAdapter.closeProfileProxy(BluetoothProfile.PAN, profile);
-        }
-        if (mBluetoothStateReceiver != null) {
-            mContext.unregisterReceiver(mBluetoothStateReceiver);
-            mBluetoothStateReceiver = null;
-        }
-    }
-
-    public static boolean isTetherConfigDisallowed(Context context) {
-        return checkIfRestrictionEnforced(
-                context, DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()) != null;
-    }
-
-    @VisibleForTesting
-    void updateSummary() {
-        if (mPreference == null) {
-            // Preference is not ready yet.
-            return;
-        }
-        String[] allTethered = mTetheringManager.getTetheredIfaces();
-        String[] wifiTetherRegex = mTetheringManager.getTetherableWifiRegexs();
-        String[] bluetoothRegex = mTetheringManager.getTetherableBluetoothRegexs();
-
-        boolean hotSpotOn = false;
-        boolean tetherOn = false;
-        if (allTethered != null) {
-            if (wifiTetherRegex != null) {
-                for (String tethered : allTethered) {
-                    for (String regex : wifiTetherRegex) {
-                        if (tethered.matches(regex)) {
-                            hotSpotOn = true;
-                            break;
-                        }
-                    }
-                }
-            }
-            if (allTethered.length > 1) {
-                // We have more than 1 tethered connection
-                tetherOn = true;
-            } else if (allTethered.length == 1) {
-                // We have more than 1 tethered, it's either wifiTether (hotspot), or other type of
-                // tether.
-                tetherOn = !hotSpotOn;
-            } else {
-                // No tethered connection.
-                tetherOn = false;
-            }
-        }
-        if (!tetherOn
-                && bluetoothRegex != null && bluetoothRegex.length > 0
-                && mBluetoothAdapter != null
-                && mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON) {
-            // Check bluetooth state. It's not included in mTetheringManager.getTetheredIfaces.
-            final BluetoothPan pan = mBluetoothPan.get();
-            tetherOn = pan != null && pan.isTetheringOn();
-        }
-        if (!hotSpotOn && !tetherOn) {
-            // Both off
-            updateSummaryToOff();
-        } else if (hotSpotOn && tetherOn) {
-            // Both on
-            mPreference.setSummary(R.string.tether_settings_summary_hotspot_on_tether_on);
-        } else if (hotSpotOn) {
-            mPreference.setSummary(R.string.tether_settings_summary_hotspot_on_tether_off);
-        } else {
-            mPreference.setSummary(R.string.tether_settings_summary_hotspot_off_tether_on);
-        }
-    }
-
-    private void updateSummaryToOff() {
-        if (mPreference == null) {
-            // Preference is not ready yet.
-            return;
-        }
-        mPreference.setSummary(R.string.tether_preference_summary_off);
-    }
-
-    class SettingObserver extends ContentObserver {
-
-        public final Uri uri;
-
-        public SettingObserver() {
-            super(new Handler());
-            uri = Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON);
-        }
-
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            super.onChange(selfChange, uri);
-            if (this.uri.equals(uri)) {
-                boolean isAirplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
-                        Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
-                if (isAirplaneMode) {
-                    // Airplane mode is on. Update summary to say tether is OFF directly. We cannot
-                    // go through updateSummary() because turning off tether takes time, and we
-                    // might still get "ON" status when rerun updateSummary(). So, just say it's off
-                    updateSummaryToOff();
-                }
-            }
-        }
-    }
-
-    @VisibleForTesting
-    class TetherBroadcastReceiver extends BroadcastReceiver {
-
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            updateSummary();
-        }
-
-    }
-
-    private class BluetoothStateReceiver extends BroadcastReceiver {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            final String action = intent.getAction();
-            Log.i(TAG, "onReceive: action: " + action);
-
-            if (TextUtils.equals(action, BluetoothAdapter.ACTION_STATE_CHANGED)) {
-                final int state =
-                        intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
-                Log.i(TAG, "onReceive: state: " + BluetoothAdapter.nameForState(state));
-                final BluetoothProfile profile = mBluetoothPan.get();
-                switch(state) {
-                    case BluetoothAdapter.STATE_ON:
-                        if (profile == null && mBluetoothAdapter != null) {
-                            mBluetoothAdapter.getProfileProxy(mContext, mBtProfileServiceListener,
-                                    BluetoothProfile.PAN);
-                        }
-                        break;
-                }
-            }
-        }
-    }
-}
diff --git a/src/com/android/settings/network/TetherPreferenceController.kt b/src/com/android/settings/network/TetherPreferenceController.kt
new file mode 100644
index 0000000..c36a2382
--- /dev/null
+++ b/src/com/android/settings/network/TetherPreferenceController.kt
@@ -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.network
+
+import android.content.Context
+import android.net.TetheringManager
+import android.os.UserHandle
+import android.os.UserManager
+import androidx.annotation.StringRes
+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.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settingslib.RestrictedLockUtilsInternal
+import com.android.settingslib.TetherUtil
+import com.android.settingslib.Utils
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class TetherPreferenceController(context: Context, key: String) :
+    BasePreferenceController(context, key) {
+
+    private val tetheredRepository = TetheredRepository(context)
+    private val tetheringManager = mContext.getSystemService(TetheringManager::class.java)!!
+
+    private var preference: Preference? = null
+
+    override fun getAvailabilityStatus() =
+        if (TetherUtil.isTetherAvailable(mContext)) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+    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) {
+                getTitleResId()?.let { preference?.setTitle(it) }
+            }
+        }
+
+        tetheredRepository.tetheredTypesFlow().collectLatestWithLifecycle(viewLifecycleOwner) {
+            preference?.setSummary(getSummaryResId(it))
+        }
+    }
+
+    private suspend fun getTitleResId(): Int? = withContext(Dispatchers.Default) {
+        if (isTetherConfigDisallowed(mContext)) null
+        else Utils.getTetheringLabel(tetheringManager)
+    }
+
+    @VisibleForTesting
+    @StringRes
+    fun getSummaryResId(tetheredTypes: Set<Int>): Int {
+        val hotSpotOn = TetheringManager.TETHERING_WIFI in tetheredTypes
+        val tetherOn = tetheredTypes.any { it != TetheringManager.TETHERING_WIFI }
+        return when {
+            hotSpotOn && tetherOn -> R.string.tether_settings_summary_hotspot_on_tether_on
+            hotSpotOn -> R.string.tether_settings_summary_hotspot_on_tether_off
+            tetherOn -> R.string.tether_settings_summary_hotspot_off_tether_on
+            else -> R.string.tether_preference_summary_off
+        }
+    }
+
+    companion object {
+        @JvmStatic
+        fun isTetherConfigDisallowed(context: Context?): Boolean =
+            RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+                context, UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.myUserId()
+            ) != null
+    }
+}
diff --git a/src/com/android/settings/network/TetheredRepository.kt b/src/com/android/settings/network/TetheredRepository.kt
new file mode 100644
index 0000000..f18bdca
--- /dev/null
+++ b/src/com/android/settings/network/TetheredRepository.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.network
+
+import android.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothManager
+import android.bluetooth.BluetoothPan
+import android.bluetooth.BluetoothProfile
+import android.content.Context
+import android.content.IntentFilter
+import android.net.TetheringInterface
+import android.net.TetheringManager
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.flatMapLatest
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.merge
+import kotlinx.coroutines.launch
+
+class TetheredRepository(private val context: Context) {
+    private val tetheringManager = context.getSystemService(TetheringManager::class.java)!!
+
+    private val adapter = context.getSystemService(BluetoothManager::class.java)!!.adapter
+
+    fun tetheredTypesFlow(): Flow<Set<Int>> =
+        combine(
+            tetheredInterfacesFlow(),
+            isBluetoothTetheringOnFlow(),
+        ) { tetheringInterfaces, isBluetoothTetheringOn ->
+            val mutableSet = tetheringInterfaces.map { it.type }.toMutableSet()
+            if (isBluetoothTetheringOn) mutableSet += TetheringManager.TETHERING_BLUETOOTH
+            mutableSet
+        }.conflate().flowOn(Dispatchers.Default)
+
+    private fun tetheredInterfacesFlow(): Flow<Set<TetheringInterface>> = callbackFlow {
+        val callback = object : TetheringManager.TetheringEventCallback {
+            override fun onTetheredInterfacesChanged(interfaces: Set<TetheringInterface>) {
+                trySend(interfaces)
+            }
+        }
+
+        tetheringManager.registerTetheringEventCallback(Dispatchers.Default.asExecutor(), callback)
+
+        awaitClose { tetheringManager.unregisterTetheringEventCallback(callback) }
+    }.conflate().flowOn(Dispatchers.Default)
+
+    @OptIn(ExperimentalCoroutinesApi::class)
+    private fun isBluetoothTetheringOnFlow(): Flow<Boolean> =
+        merge(
+            flowOf(null), // kick an initial value
+            context.broadcastReceiverFlow(IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)),
+        ).flatMapLatest {
+            if (adapter.getState() == BluetoothAdapter.STATE_ON) {
+                isBluetoothPanTetheringOnFlow()
+            } else {
+                flowOf(false)
+            }
+        }.conflate().flowOn(Dispatchers.Default)
+
+    private fun isBluetoothPanTetheringOnFlow() = callbackFlow {
+        var connectedProxy: BluetoothProfile? = null
+
+        val listener = object : BluetoothProfile.ServiceListener {
+            override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
+                connectedProxy = proxy
+                launch(Dispatchers.Default) {
+                    trySend((proxy as BluetoothPan).isTetheringOn)
+                }
+            }
+
+            override fun onServiceDisconnected(profile: Int) {}
+        }
+
+        adapter.getProfileProxy(context, listener, BluetoothProfile.PAN)
+
+        awaitClose {
+            connectedProxy?.let { adapter.closeProfileProxy(BluetoothProfile.PAN, it) }
+        }
+    }.conflate().flowOn(Dispatchers.Default)
+}
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index cc15e6e..5175c23 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -162,7 +162,7 @@
         Log.d(TAG, "The SimSlotMapping: " + uiccSlotMappings);
 
         SubscriptionManager subscriptionManager = context.getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         int excludedLogicalSlotIndex = getExcludedLogicalSlotIndex(uiccSlotMappings,
                 SubscriptionUtil.getActiveSubscriptions(subscriptionManager), removedSubInfo,
                 telMgr.isMultiSimEnabled());
@@ -203,7 +203,7 @@
         }
 
         SubscriptionManager subscriptionManager = context.getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         int excludedLogicalSlotIndex = getExcludedLogicalSlotIndex(uiccSlotMappings,
                 SubscriptionUtil.getActiveSubscriptions(subscriptionManager), removedSubInfo,
                 telMgr.isMultiSimEnabled());
@@ -222,7 +222,7 @@
         List<UiccCardInfo> uiccCardInfos = telMgr.getUiccCardsInfo();
         ImmutableList<UiccSlotInfo> slotInfos = UiccSlotUtil.getSlotInfos(telMgr);
         SubscriptionManager subscriptionManager = context.getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         SubscriptionInfo subInfo = SubscriptionUtil.getSubById(subscriptionManager, subId);
 
         // checking whether this is the removable esim. If it is, then return the removable slot id.
@@ -308,7 +308,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
@@ -317,8 +318,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/UsbTetherPreferenceController.java b/src/com/android/settings/network/UsbTetherPreferenceController.java
deleted file mode 100644
index 7a5cc21..0000000
--- a/src/com/android/settings/network/UsbTetherPreferenceController.java
+++ /dev/null
@@ -1,95 +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.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.hardware.usb.UsbManager;
-import android.net.ConnectivityManager;
-import android.os.Environment;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.settings.Utils;
-
-/**
- * This controller helps to manage the switch state and visibility of USB tether switch
- * preference.
- *
- */
-public final class UsbTetherPreferenceController extends TetherBasePreferenceController {
-
-    private static final String TAG = "UsbTetherPrefController";
-
-    private boolean mUsbConnected;
-    private boolean mMassStorageActive;
-
-    public UsbTetherPreferenceController(Context context, String prefKey) {
-        super(context, prefKey);
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_START)
-    public void onStart() {
-        mMassStorageActive = Environment.MEDIA_SHARED.equals(Environment.getExternalStorageState());
-        IntentFilter filter = new IntentFilter(UsbManager.ACTION_USB_STATE);
-        filter.addAction(Intent.ACTION_MEDIA_SHARED);
-        filter.addAction(Intent.ACTION_MEDIA_UNSHARED);
-        mContext.registerReceiver(mUsbChangeReceiver, filter);
-    }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
-    public void onStop() {
-        mContext.unregisterReceiver(mUsbChangeReceiver);
-    }
-
-    @Override
-    public boolean shouldEnable() {
-        return mUsbConnected && !mMassStorageActive;
-    }
-
-    @Override
-    public boolean shouldShow() {
-        String[] usbRegexs = mTm.getTetherableUsbRegexs();
-        return  usbRegexs != null && usbRegexs.length != 0 && !Utils.isMonkeyRunning();
-    }
-
-    @Override
-    public int getTetherType() {
-        return ConnectivityManager.TETHERING_USB;
-    }
-
-    @VisibleForTesting
-    final BroadcastReceiver mUsbChangeReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (TextUtils.equals(Intent.ACTION_MEDIA_SHARED, action)) {
-                mMassStorageActive = true;
-            } else if (TextUtils.equals(Intent.ACTION_MEDIA_UNSHARED, action)) {
-                mMassStorageActive = false;
-            } else if (TextUtils.equals(UsbManager.ACTION_USB_STATE, action)) {
-                mUsbConnected = intent.getBooleanExtra(UsbManager.USB_CONNECTED, false);
-            }
-            updateState(mPreference);
-        }
-    };
-}
diff --git a/src/com/android/settings/network/WepNetworkDialogActivity.kt b/src/com/android/settings/network/WepNetworkDialogActivity.kt
new file mode 100644
index 0000000..d69630f
--- /dev/null
+++ b/src/com/android/settings/network/WepNetworkDialogActivity.kt
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.app.settings.SettingsEnums
+import android.content.Context
+import android.content.Intent
+import android.net.wifi.WifiManager
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.text.style.TextAlign
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import com.android.settings.R
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.wifi.ConfigureWifiSettings
+import com.android.settingslib.spa.SpaBaseDialogActivity
+import com.android.settingslib.spa.widget.dialog.AlertDialogButton
+import com.android.settingslib.spa.widget.dialog.SettingsAlertDialogWithIcon
+import kotlin.coroutines.resume
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.suspendCancellableCoroutine
+import kotlinx.coroutines.withContext
+
+class WepNetworkDialogActivity : SpaBaseDialogActivity() {
+    @Composable
+    override fun Content() {
+        val context = LocalContext.current
+        val wifiManager = context.getSystemService(WifiManager::class.java)
+        SettingsAlertDialogWithIcon(
+            onDismissRequest = { finish() },
+            confirmButton = AlertDialogButton(
+                getString(R.string.wifi_settings_ssid_block_button_close)
+            ) { finish() },
+            dismissButton = if (wifiManager?.isWepSupported == true)
+                AlertDialogButton(
+                    getString(R.string.wifi_settings_wep_networks_button_allow)
+                ) {
+                    SubSettingLauncher(context)
+                        .setTitleText(context.getText(R.string.network_and_internet_preferences_title))
+                        .setSourceMetricsCategory(SettingsEnums.CONFIGURE_WIFI)
+                        .setDestination(ConfigureWifiSettings::class.java.getName())
+                        .launch()
+                    finish()
+                } else null,
+            title = String.format(
+                getString(R.string.wifi_settings_wep_networks_blocked_title),
+                intent.getStringExtra(SSID) ?: SSID
+            ),
+            text = {
+                Text(
+                    if (wifiManager?.isWepSupported == true)
+                        getString(R.string.wifi_settings_wep_networks_summary_toggle_off)
+                    else getString(R.string.wifi_settings_wep_networks_summary_blocked_by_carrier),
+                    modifier = Modifier.fillMaxWidth(),
+                    textAlign = TextAlign.Center
+                )
+            })
+    }
+
+    companion object {
+        @JvmStatic
+        fun checkWepAllowed(
+            context: Context,
+            lifecycleOwner: LifecycleOwner,
+            ssid: String,
+            onAllowed: () -> Unit,
+        ) {
+            lifecycleOwner.lifecycleScope.launch {
+                val wifiManager = context.getSystemService(WifiManager::class.java) ?: return@launch
+                if (wifiManager.queryWepAllowed()) {
+                    onAllowed()
+                } else {
+                    val intent = Intent(context, WepNetworkDialogActivity::class.java).apply {
+                        putExtra(SSID, ssid)
+                    }
+                    context.startActivity(intent)
+                }
+            }
+        }
+
+        private suspend fun WifiManager.queryWepAllowed(): Boolean =
+            withContext(Dispatchers.Default) {
+                suspendCancellableCoroutine { continuation ->
+                    queryWepAllowed(Dispatchers.Default.asExecutor()) {
+                        continuation.resume(it)
+                    }
+                }
+            }
+
+        const val SSID = "ssid"
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/WifiSwitchPreferenceController.java b/src/com/android/settings/network/WifiSwitchPreferenceController.java
index da69f4f..8e6f444 100644
--- a/src/com/android/settings/network/WifiSwitchPreferenceController.java
+++ b/src/com/android/settings/network/WifiSwitchPreferenceController.java
@@ -91,7 +91,7 @@
         // Wi-Fi state, but WifiEnabler will enable the preference when the Wi-Fi state changes.
         if (mPreference != null && mIsChangeWifiStateAllowed) {
             mWifiEnabler = new WifiEnabler(mContext, new GenericSwitchController(mPreference),
-                    FeatureFactory.getFactory(mContext).getMetricsFeatureProvider());
+                    FeatureFactory.getFeatureFactory().getMetricsFeatureProvider());
         }
     }
 
diff --git a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java b/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
deleted file mode 100644
index 783f78f..0000000
--- a/src/com/android/settings/network/WifiTetherDisablePreferenceController.java
+++ /dev/null
@@ -1,120 +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.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-
-/**
- * This controller helps to manage the switch state and visibility of wifi tether disable switch
- * preference. When the preference checked, wifi tether will be disabled.
- *
- * @see BluetoothTetherPreferenceController
- * @see UsbTetherPreferenceController
- */
-public final class WifiTetherDisablePreferenceController extends TetherBasePreferenceController {
-
-    private static final String TAG = "WifiTetherDisablePreferenceController";
-
-    private PreferenceScreen mScreen;
-
-    public WifiTetherDisablePreferenceController(Context context, String prefKey) {
-        super(context, prefKey);
-    }
-
-    @Override
-    public boolean isChecked() {
-        return !super.isChecked();
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return super.setChecked(!isChecked);
-    }
-
-    private int getTetheringStateOfOtherInterfaces() {
-        return mTetheringState & (~TETHERING_WIFI_ON);
-    }
-
-    @Override
-    public boolean shouldEnable() {
-        return true;
-    }
-
-    @Override
-    public boolean shouldShow() {
-        final String[] wifiRegexs = mTm.getTetherableWifiRegexs();
-        return wifiRegexs != null && wifiRegexs.length != 0 && !Utils.isMonkeyRunning()
-                && getTetheringStateOfOtherInterfaces() != TetherEnabler.TETHERING_OFF;
-    }
-
-    @Override
-    public int getTetherType() {
-        return ConnectivityManager.TETHERING_WIFI;
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        switch (getTetheringStateOfOtherInterfaces()) {
-            case TETHERING_USB_ON:
-                return mContext.getString(R.string.disable_wifi_hotspot_when_usb_on);
-            case TETHERING_BLUETOOTH_ON:
-                return mContext.getString(R.string.disable_wifi_hotspot_when_bluetooth_on);
-            case TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.disable_wifi_hotspot_when_ethernet_on);
-            case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON:
-                return mContext.getString(R.string.disable_wifi_hotspot_when_usb_and_bluetooth_on);
-            case TETHERING_USB_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(R.string.disable_wifi_hotspot_when_usb_and_ethernet_on);
-            case TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(
-                        R.string.disable_wifi_hotspot_when_bluetooth_and_ethernet_on);
-            case TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON:
-                return mContext.getString(
-                        R.string.disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on);
-            default:
-                return mContext.getString(R.string.summary_placeholder);
-        }
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mScreen = screen;
-        if (mPreference != null) {
-            mPreference.setOnPreferenceChangeListener(this);
-        }
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        preference.setVisible(isAvailable());
-        refreshSummary(preference);
-    }
-}
diff --git a/src/com/android/settings/network/apn/ApnEditPageProvider.kt b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
new file mode 100644
index 0000000..cea2b44
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnEditPageProvider.kt
@@ -0,0 +1,271 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.net.Uri
+import android.os.Bundle
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material3.Button
+import androidx.compose.material3.DropdownMenuItem
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringArrayResource
+import androidx.compose.ui.res.stringResource
+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.settings.network.apn.ApnTypes.APN_TYPES_OPTIONS
+import com.android.settings.network.apn.ApnTypes.APN_TYPE_MMS
+import com.android.settings.network.apn.ApnTypes.getApnTypeSelectedOptionsState
+import com.android.settings.network.apn.ApnTypes.updateApnType
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.compose.LocalNavController
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuBox
+import com.android.settingslib.spa.widget.editor.SettingsExposedDropdownMenuCheckBox
+import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField
+import com.android.settingslib.spa.widget.editor.SettingsTextFieldPassword
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import com.android.settingslib.spa.widget.scaffold.MoreOptionsAction
+import com.android.settingslib.spa.widget.scaffold.RegularScaffold
+import java.util.Base64
+
+const val URI_TYPE = "uriType"
+const val URI = "uri"
+const val SUB_ID = "subId"
+const val EDIT_URL = "editUrl"
+const val INSERT_URL = "insertUrl"
+
+object ApnEditPageProvider : SettingsPageProvider {
+
+    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 },
+    )
+
+    @Composable
+    override fun Page(arguments: Bundle?) {
+        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(apnDataInit, apnDataCur, uriInit)
+    }
+
+    fun getRoute(
+        uriType: String,
+        uri: Uri,
+        subId: Int
+    ): String = "${name}/$uriType/${
+        Base64.getUrlEncoder().encodeToString(uri.toString().toByteArray())
+    }/$subId"
+}
+
+@Composable
+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 networkTypeSelectedOptionsState = remember {
+        getNetworkTypeSelectedOptionsState(apnData.networkType)
+    }
+    var apnTypeSelectedOptionsState = remember {
+        getApnTypeSelectedOptionsState(apnData.apnType)
+    }
+    val navController = LocalNavController.current
+    var valid: String?
+    RegularScaffold(
+        title = if (apnDataInit.newApn) stringResource(id = R.string.apn_add) else stringResource(id = R.string.apn_edit),
+        actions = {
+            if (!apnData.customizedConfig.readOnlyApn) {
+                Button(onClick = {
+                    apnData = apnData.copy(
+                        networkType = ApnNetworkTypes.getNetworkType(
+                            networkTypeSelectedOptionsState
+                        )
+                    )
+                    valid = validateAndSaveApnData(
+                        apnDataInit,
+                        apnData,
+                        context,
+                        uriInit
+                    )
+                    if (valid == null) navController.navigateBack()
+                    else if (!apnData.validEnabled) apnData = apnData.copy(validEnabled = true)
+                }) { Text(text = stringResource(id = R.string.save)) }
+            }
+            if (!apnData.newApn && !apnData.customizedConfig.readOnlyApn
+                && apnData.customizedConfig.isAddApnAllowed
+            ) {
+                MoreOptionsAction {
+                    DropdownMenuItem(
+                        text = { Text(stringResource(R.string.menu_delete)) },
+                        onClick = {
+                            deleteApn(uriInit, context)
+                            navController.navigateBack()
+                        })
+                }
+            }
+        },
+    ) {
+        Column {
+            if (apnData.validEnabled) {
+                valid = validateApnData(apnData, context)
+                valid?.let {
+                    Text(
+                        text = it,
+                        modifier = Modifier
+                            .fillMaxWidth()
+                            .padding(SettingsDimension.menuFieldPadding),
+                        color = MaterialTheme.colorScheme.primary
+                    )
+                }
+            }
+            SettingsOutlinedTextField(
+                value = apnData.name,
+                label = stringResource(R.string.apn_name),
+                enabled = apnData.nameEnabled,
+                errorMessage = validateName(apnData.validEnabled, apnData.name, context)
+            ) { apnData = apnData.copy(name = it) }
+            SettingsOutlinedTextField(
+                value = apnData.apn,
+                label = stringResource(R.string.apn_apn),
+                enabled = apnData.apnEnabled,
+                errorMessage = validateAPN(apnData.validEnabled, apnData.apn, context)
+            ) { apnData = apnData.copy(apn = it) }
+            SettingsOutlinedTextField(
+                value = apnData.proxy,
+                label = stringResource(R.string.apn_http_proxy),
+                enabled = apnData.proxyEnabled
+            ) { apnData = apnData.copy(proxy = it) }
+            SettingsOutlinedTextField(
+                value = apnData.port,
+                label = stringResource(R.string.apn_http_port),
+                enabled = apnData.portEnabled
+            ) { apnData = apnData.copy(port = it) }
+            SettingsOutlinedTextField(
+                value = apnData.userName,
+                label = stringResource(R.string.apn_user),
+                enabled = apnData.userNameEnabled
+            ) { apnData = apnData.copy(userName = it) }
+            SettingsTextFieldPassword(
+                value = apnData.passWord,
+                label = stringResource(R.string.apn_password),
+                enabled = apnData.passWordEnabled
+            ) { apnData = apnData.copy(passWord = it) }
+            SettingsOutlinedTextField(
+                value = apnData.server,
+                label = stringResource(R.string.apn_server),
+                enabled = apnData.serverEnabled
+            ) { apnData = apnData.copy(server = it) }
+            SettingsExposedDropdownMenuCheckBox(
+                label = stringResource(R.string.apn_type),
+                options = APN_TYPES_OPTIONS,
+                selectedOptionsState = apnTypeSelectedOptionsState,
+                enabled = apnData.apnTypeEnabled,
+                errorMessage = validateAPNType(
+                    apnData.validEnabled, apnData.apnType,
+                    apnData.customizedConfig.readOnlyApnTypes, context
+                )
+            ) {
+                val apnType = updateApnType(
+                    apnTypeSelectedOptionsState,
+                    apnData.customizedConfig.defaultApnTypes,
+                    apnData.customizedConfig.readOnlyApnTypes
+                )
+                apnTypeSelectedOptionsState = getApnTypeSelectedOptionsState(apnType)
+                apnData = apnData.copy(
+                    apnType = apnType
+                )
+            }
+            if (apnTypeSelectedOptionsState.contains(APN_TYPES_OPTIONS.indexOf(APN_TYPE_MMS))) {
+                SettingsOutlinedTextField(
+                    value = apnData.mmsc,
+                    label = stringResource(R.string.apn_mmsc),
+                    errorMessage = validateMMSC(apnData.validEnabled, apnData.mmsc, context),
+                    enabled = apnData.mmscEnabled
+                ) { apnData = apnData.copy(mmsc = it) }
+                SettingsOutlinedTextField(
+                    value = apnData.mmsProxy,
+                    label = stringResource(R.string.apn_mms_proxy),
+                    enabled = apnData.mmsProxyEnabled
+                ) { apnData = apnData.copy(mmsProxy = it) }
+                SettingsOutlinedTextField(
+                    value = apnData.mmsPort,
+                    label = stringResource(R.string.apn_mms_port),
+                    enabled = apnData.mmsPortEnabled
+                ) { apnData = apnData.copy(mmsPort = it) }
+            }
+            SettingsExposedDropdownMenuBox(
+                label = stringResource(R.string.apn_auth_type),
+                options = authTypeOptions,
+                selectedOptionIndex = apnData.authType,
+                enabled = apnData.authTypeEnabled,
+            ) { apnData = apnData.copy(authType = it) }
+            SettingsExposedDropdownMenuBox(
+                label = stringResource(R.string.apn_protocol),
+                options = apnProtocolOptions,
+                selectedOptionIndex = apnData.apnProtocol,
+                enabled = apnData.apnProtocolEnabled
+            ) { apnData = apnData.copy(apnProtocol = it) }
+            SettingsExposedDropdownMenuBox(
+                label = stringResource(R.string.apn_roaming_protocol),
+                options = apnProtocolOptions,
+                selectedOptionIndex = apnData.apnRoaming,
+                enabled = apnData.apnRoamingEnabled
+            ) { apnData = apnData.copy(apnRoaming = it) }
+            SettingsExposedDropdownMenuCheckBox(
+                label = stringResource(R.string.network_type),
+                options = getNetworkTypeDisplayNames(),
+                selectedOptionsState = networkTypeSelectedOptionsState,
+                emptyVal = stringResource(R.string.network_type_unspecified),
+                enabled = apnData.networkTypeEnabled
+            ) {}
+            SwitchPreference(
+                object : SwitchPreferenceModel {
+                    override val title = context.resources.getString(R.string.carrier_enabled)
+                    override val changeable = { apnData.apnEnableEnabled }
+                    override val checked = { apnData.apnEnable }
+                    override val onCheckedChange = { newChecked: Boolean ->
+                        apnData = apnData.copy(apnEnable = newChecked)
+                    }
+                }
+            )
+        }
+    }
+}
\ 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 7a80cd7..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
@@ -435,15 +435,20 @@
             return false;
         }
 
-        if (hasAllApns(apnTypesArray1) || TextUtils.isEmpty(apnTypes2)) {
+        final String[] apnTypesArray1LowerCase = new String[apnTypesArray1.length];
+        for (int i = 0; i < apnTypesArray1.length; i++) {
+            apnTypesArray1LowerCase[i] = apnTypesArray1[i].toLowerCase();
+        }
+
+        if (hasAllApns(apnTypesArray1LowerCase) || TextUtils.isEmpty(apnTypes2)) {
             return true;
         }
 
-        final List apnTypesList1 = Arrays.asList(apnTypesArray1);
+        final List apnTypesList1 = Arrays.asList(apnTypesArray1LowerCase);
         final String[] apnTypesArray2 = apnTypes2.split(",");
 
         for (String apn : apnTypesArray2) {
-            if (apnTypesList1.contains(apn.trim())) {
+            if (apnTypesList1.contains(apn.trim().toLowerCase())) {
                 Log.d(TAG, "apnTypesMatch: true because match found for " + apn.trim());
                 return true;
             }
@@ -1332,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");
@@ -1446,8 +1451,7 @@
                 null /* selection */,
                 null /* selectionArgs */,
                 null /* sortOrder */)) {
-            if (cursor != null) {
-                cursor.moveToFirst();
+            if (cursor != null && cursor.moveToFirst()) {
                 apnData = new ApnData(uri, cursor);
             }
         }
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 f277db0..dcc50cd 100755
--- a/src/com/android/settings/network/apn/ApnPreference.java
+++ b/src/com/android/settings/network/apn/ApnPreference.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.network.apn;
 
+import static com.android.settings.network.apn.ApnEditPageProviderKt.EDIT_URL;
+
 import android.content.ContentUris;
 import android.content.Context;
 import android.content.Intent;
@@ -34,15 +36,21 @@
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settings.spa.SpaActivity;
 
 /**
  * Preference of APN UI entry
  */
-public class ApnPreference extends Preference implements CompoundButton.OnCheckedChangeListener,
-        View.OnClickListener {
-    private static final  String TAG = "ApnPreference";
-
+public class ApnPreference extends Preference
+        implements CompoundButton.OnCheckedChangeListener, View.OnClickListener {
+    private static final String TAG = "ApnPreference";
+    private static String sSelectedKey = null;
+    private static CompoundButton sCurrentChecked = null;
     private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+    private boolean mProtectFromCheckedChange = false;
+    private boolean mSelectable = true;
+    private boolean mHideDetails = false;
 
     /**
      * Constructor of Preference
@@ -65,12 +73,6 @@
         this(context, null);
     }
 
-    private static String sSelectedKey = null;
-    private static CompoundButton sCurrentChecked = null;
-    private boolean mProtectFromCheckedChange = false;
-    private boolean mSelectable = true;
-    private boolean mHideDetails = false;
-
     @Override
     public void onBindViewHolder(PreferenceViewHolder view) {
         super.onBindViewHolder(view);
@@ -147,25 +149,32 @@
         }
 
         if (mHideDetails) {
-            Toast.makeText(context, context.getString(
-                    R.string.cannot_change_apn_toast), Toast.LENGTH_LONG).show();
+            Toast.makeText(context, context.getString(R.string.cannot_change_apn_toast),
+                    Toast.LENGTH_LONG).show();
             return;
         }
-        final Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
-        final Intent editIntent = new Intent(Intent.ACTION_EDIT, url);
-        editIntent.putExtra(ApnSettings.SUB_ID, mSubId);
-        editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
-        context.startActivity(editIntent);
-    }
 
-    public void setSelectable(boolean selectable) {
-        mSelectable = selectable;
+        final Uri url = ContentUris.withAppendedId(Telephony.Carriers.CONTENT_URI, pos);
+
+        if (Flags.newApnPageEnabled()) {
+            String route = ApnEditPageProvider.INSTANCE.getRoute(EDIT_URL, url, mSubId);
+            SpaActivity.startSpaActivity(context, route);
+        } else {
+            final Intent editIntent = new Intent(Intent.ACTION_EDIT, url);
+            editIntent.putExtra(ApnSettings.SUB_ID, mSubId);
+            editIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+            context.startActivity(editIntent);
+        }
     }
 
     public boolean getSelectable() {
         return mSelectable;
     }
 
+    public void setSelectable(boolean selectable) {
+        mSelectable = selectable;
+    }
+
     public void setSubId(int subId) {
         mSubId = subId;
     }
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..ae655da
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnRepository.kt
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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 */
+            )
+        }
+    }
+}
+
+fun isItemExist(apnData: ApnData, context: Context): String? {
+    var contentValueMap = apnData.getContentValueMap(context)
+    val removedList = arrayListOf(
+        Telephony.Carriers.NAME, Telephony.Carriers.USER,
+        Telephony.Carriers.SERVER, Telephony.Carriers.PASSWORD, Telephony.Carriers.AUTH_TYPE,
+        Telephony.Carriers.TYPE, Telephony.Carriers.NETWORK_TYPE_BITMASK,
+        Telephony.Carriers.CARRIER_ENABLED
+    )
+    contentValueMap =
+        contentValueMap.filterNot { removedList.contains(it.key) } as MutableMap<String, Any>
+    val list = contentValueMap.entries.toList()
+    val selection = list.joinToString(" AND ") { "${it.key} = ?" }
+    val selectionArgs: Array<String> = list.map { it.value.toString() }.toTypedArray()
+    context.contentResolver.query(
+        Telephony.Carriers.CONTENT_URI,
+        sProjection,
+        selection /* selection */,
+        selectionArgs /* selectionArgs */,
+        null /* sortOrder */
+    )?.use { cursor ->
+        if (cursor.count > 0) {
+            return context.resources.getString(R.string.error_duplicate_apn_entry)
+        }
+    }
+    return null
+}
\ 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 82d5612..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;
@@ -248,7 +252,7 @@
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
 
-        getEmptyTextView().setText(R.string.apn_settings_not_available);
+        getEmptyTextView().setText(com.android.settingslib.R.string.apn_settings_not_available);
         mUnavailable = isUiRestricted();
         setHasOptionsMenu(!mUnavailable);
         if (mUnavailable) {
@@ -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
new file mode 100644
index 0000000..141ec08
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnStatus.kt
@@ -0,0 +1,471 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.os.Bundle
+import android.provider.Telephony
+import android.telephony.CarrierConfigManager
+import android.telephony.TelephonyManager
+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 com.android.settings.network.apn.ApnTypes.APN_TYPES
+import com.android.settings.network.apn.ApnTypes.APN_TYPE_ALL
+import com.android.settings.network.apn.ApnTypes.APN_TYPE_EMERGENCY
+import com.android.settings.network.apn.ApnTypes.APN_TYPE_IA
+import com.android.settings.network.apn.ApnTypes.APN_TYPE_IMS
+import com.android.settings.network.apn.ApnTypes.APN_TYPE_MCX
+import java.util.Locale
+
+data class ApnData(
+    val name: String = "",
+    val apn: String = "",
+    val proxy: String = "",
+    val port: String = "",
+    val userName: String = "",
+    val passWord: String = "",
+    val server: String = "",
+    val mmsc: String = "",
+    val mmsProxy: String = "",
+    val mmsPort: String = "",
+    val authType: Int = -1,
+    val apnType: String = "",
+    val apnProtocol: Int = -1,
+    val apnRoaming: Int = -1,
+    val apnEnable: Boolean = true,
+    val networkType: Long = 0,
+    val edited: Int = Telephony.Carriers.USER_EDITED,
+    val userEditable: Int = 1,
+    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 validEnabled: Boolean = false,
+    val customizedConfig: CustomizedConfig = CustomizedConfig()
+) {
+    fun getContentValueMap(context: Context): MutableMap<String, Any> {
+        val simCarrierId =
+            context.getSystemService(TelephonyManager::class.java)!!
+                .createForSubscriptionId(subId)
+                .getSimCarrierId()
+        return mutableMapOf(
+            Telephony.Carriers.NAME to name, Telephony.Carriers.APN to apn,
+            Telephony.Carriers.PROXY to proxy, Telephony.Carriers.PORT to port,
+            Telephony.Carriers.MMSPROXY to mmsProxy, Telephony.Carriers.MMSPORT to mmsPort,
+            Telephony.Carriers.USER to userName, Telephony.Carriers.SERVER to server,
+            Telephony.Carriers.PASSWORD to passWord, Telephony.Carriers.MMSC to mmsc,
+            Telephony.Carriers.AUTH_TYPE to authType,
+            Telephony.Carriers.PROTOCOL to convertOptions2Protocol(apnProtocol, context),
+            Telephony.Carriers.ROAMING_PROTOCOL to convertOptions2Protocol(apnRoaming, context),
+            Telephony.Carriers.TYPE to apnType,
+            Telephony.Carriers.NETWORK_TYPE_BITMASK to networkType,
+            Telephony.Carriers.CARRIER_ENABLED to apnEnable,
+            Telephony.Carriers.EDITED_STATUS to Telephony.Carriers.USER_EDITED,
+            Telephony.Carriers.CARRIER_ID to simCarrierId
+        )
+    }
+
+    fun getContentValues(context: Context): ContentValues {
+        val values = ContentValues()
+        val contentValueMap = getContentValueMap(context)
+        if (!newApn) contentValueMap.remove(Telephony.Carriers.CARRIER_ID)
+        contentValueMap.forEach { (key, value) -> values.putObject(key, value) }
+        return values
+    }
+}
+
+data class CustomizedConfig(
+    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 = "",
+)
+
+/**
+ * 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
+}
+
+/**
+ * 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,
+    newApnData: ApnData,
+    context: Context,
+    uriInit: Uri
+): String? {
+    val errorMsg = validateApnData(newApnData, context)
+    if (errorMsg != null) {
+        return errorMsg
+    }
+    if (newApnData.newApn || (newApnData != apnDataInit)) {
+        Log.d(TAG, "[validateAndSaveApnData] newApnData.networkType: ${newApnData.networkType}")
+        updateApnDataToDatabase(
+            newApnData.newApn,
+            newApnData.getContentValues(context),
+            context,
+            uriInit
+        )
+    }
+    return null
+}
+
+/**
+ * Validates whether the apn data is valid.
+ *
+ * @return An error message if the apn data is invalid, otherwise return null.
+ */
+fun validateApnData(apnData: ApnData, context: Context): String? {
+    var errorMsg: String?
+    val name = apnData.name
+    val apn = apnData.apn
+    errorMsg = if (name == "") {
+        context.resources.getString(R.string.error_name_empty)
+    } else if (apn == "") {
+        context.resources.getString(R.string.error_apn_empty)
+    } else {
+        validateMMSC(true, apnData.mmsc, context)
+    }
+    if (errorMsg == null) {
+        errorMsg = isItemExist(apnData, context)
+    }
+    if (errorMsg == null) {
+        errorMsg = validateAPNType(
+            true,
+            apnData.apnType,
+            apnData.customizedConfig.readOnlyApnTypes,
+            context
+        )
+    }
+    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 deleteApn(uri: Uri, context: Context) {
+    val contentResolver = context.contentResolver
+    contentResolver.delete(uri, null, null)
+}
+
+fun validateMMSC(validEnabled: Boolean, mmsc: String, context: Context): String? {
+    return if (validEnabled && mmsc != "" && !mmsc.matches(Regex("^https?:\\/\\/.+")))
+        context.resources.getString(R.string.error_mmsc_valid)
+    else null
+}
+
+fun validateName(validEnabled: Boolean, name: String, context: Context): String? {
+    return if (validEnabled && (name == "")) context.resources.getString(R.string.error_name_empty)
+    else null
+}
+
+fun validateAPN(validEnabled: Boolean, apn: String, context: Context): String? {
+    return if (validEnabled && (apn == "")) context.resources.getString(R.string.error_apn_empty)
+    else null
+}
+
+fun validateAPNType(
+    validEnabled: Boolean,
+    apnType: String,
+    readOnlyApnTypes: List<String>,
+    context: Context
+): String? {
+    // if carrier does not allow editing certain apn types, make sure type does not include those
+    if (validEnabled && !ArrayUtils.isEmpty(readOnlyApnTypes)
+        && apnTypesMatch(
+            readOnlyApnTypes,
+            getUserEnteredApnType(apnType, readOnlyApnTypes)
+        )
+    ) {
+        return String.format(
+            context.resources.getString(R.string.error_adding_apn_type),
+            readOnlyApnTypes.joinToString(", ")
+        )
+    }
+    return null
+}
\ No newline at end of file
diff --git a/src/com/android/settings/network/apn/ApnTypes.kt b/src/com/android/settings/network/apn/ApnTypes.kt
new file mode 100644
index 0000000..d3dbe38
--- /dev/null
+++ b/src/com/android/settings/network/apn/ApnTypes.kt
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.apn
+
+import androidx.compose.runtime.mutableStateListOf
+import androidx.compose.runtime.snapshots.SnapshotStateList
+
+object ApnTypes {
+    /**
+     * 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"
+
+    /** APN type for VSIM  */
+    const val APN_TYPE_VSIM = "vsim"
+
+    /** APN type for BIP  */
+    const val APN_TYPE_BIP = "bip"
+
+    /** APN type for ENTERPRISE  */
+    const val APN_TYPE_ENTERPRISE = "enterprise"
+
+    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,
+        APN_TYPE_VSIM,
+        APN_TYPE_BIP,
+        APN_TYPE_ENTERPRISE
+    )
+
+    val APN_TYPES_OPTIONS = listOf(APN_TYPE_ALL) + APN_TYPES
+
+    fun getApnTypeSelectedOptionsState(apnType: String): SnapshotStateList<Int> {
+        val apnTypeSelectedOptionsState = mutableStateListOf<Int>()
+        if (apnType.contains(APN_TYPE_ALL))
+            APN_TYPES_OPTIONS.forEachIndexed { index, _ ->
+                apnTypeSelectedOptionsState.add(index)
+            }
+        else {
+            APN_TYPES_OPTIONS.forEachIndexed { index, type ->
+                if (apnType.contains(type)) {
+                    apnTypeSelectedOptionsState.add(index)
+                }
+            }
+            if (apnTypeSelectedOptionsState.size == APN_TYPES.size)
+                apnTypeSelectedOptionsState.add(APN_TYPES_OPTIONS.indexOf(APN_TYPE_ALL))
+        }
+        return apnTypeSelectedOptionsState
+    }
+
+    fun updateApnType(
+        apnTypeSelectedOptionsState: SnapshotStateList<Int>,
+        defaultApnTypes: List<String>,
+        readOnlyApnTypes: List<String>
+    ): String {
+        val apnType = apnTypeSelectedOptionsState.joinToString { APN_TYPES_OPTIONS[it] }
+        if (apnType.contains(APN_TYPE_ALL)) return APN_TYPE_ALL
+        return if (apnType == "" && defaultApnTypes.isNotEmpty())
+            getEditableApnType(defaultApnTypes, readOnlyApnTypes)
+        else
+            apnType
+    }
+
+    private fun getEditableApnType(
+        defaultApnTypes: List<String>,
+        readOnlyApnTypes: List<String>
+    ): String {
+        return defaultApnTypes.filterNot { apnType ->
+            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/helper/ConfirmationSimDeletionPredicate.java b/src/com/android/settings/network/helper/ConfirmationSimDeletionPredicate.java
deleted file mode 100644
index 420f6db..0000000
--- a/src/com/android/settings/network/helper/ConfirmationSimDeletionPredicate.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.network.helper;
-
-import android.app.KeyguardManager;
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.settings.R;
-
-import java.util.function.Predicate;
-
-/**
- * {@link Predicate} for detecting the configuration of confirm SIM deletion.
- */
-public class ConfirmationSimDeletionPredicate implements Predicate<Context> {
-
-    public static final String KEY_CONFIRM_SIM_DELETION = "confirm_sim_deletion";
-
-    private static final ConfirmationSimDeletionPredicate sSingleton =
-            new ConfirmationSimDeletionPredicate();
-
-    // Get singleton of this predicate
-    public static final ConfirmationSimDeletionPredicate getSingleton() {
-        return sSingleton;
-    }
-
-    /**
-     * Get default configuration of confirm SIM deletion.
-     *
-     * @param Context context
-     * @return the configuration of confirm SIM deletion
-     */
-    private static boolean getDefaultValue(Context context) {
-        return context.getResources()
-                .getBoolean(R.bool.config_sim_deletion_confirmation_default_on);
-    }
-
-    /**
-     * Get the configuration of confirm SIM deletion.
-     *
-     * @param Context context
-     * @return the configuration of confirm SIM deletion
-     */
-    public boolean test(Context context) {
-        final KeyguardManager keyguardManager = context.getSystemService(KeyguardManager.class);
-        if ((keyguardManager != null) && !keyguardManager.isKeyguardSecure()) {
-            return false;
-        }
-        return Settings.Global.getInt(context.getContentResolver(), KEY_CONFIRM_SIM_DELETION,
-                getDefaultValue(context) ? 1 : 0) == 1;
-    }
-}
diff --git a/src/com/android/settings/network/helper/LifecycleCallbackAdapter.java b/src/com/android/settings/network/helper/LifecycleCallbackAdapter.java
deleted file mode 100644
index 548eae5..0000000
--- a/src/com/android/settings/network/helper/LifecycleCallbackAdapter.java
+++ /dev/null
@@ -1,100 +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.helper;
-
-import androidx.annotation.MainThread;
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleEventObserver;
-import androidx.lifecycle.LifecycleOwner;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * A {@link androidx.lifecycle.LifecycleObserver} implementation of adapter over callback.
- *
- * Which including:
- * 1. Request to active callback when Lifecycle.State.STARTED
- * 2. Request to inactive callback when Lifecycle.State.STOPPED
- * 3. Close (no further resume) when Lifecycle.State.DESTROYED
- */
-@VisibleForTesting
-abstract class LifecycleCallbackAdapter implements LifecycleEventObserver, AutoCloseable {
-    private static final String TAG = "LifecycleCallbackAdapter";
-    private AtomicReference<Lifecycle> mLifecycle = new AtomicReference<Lifecycle>();
-
-    /**
-     * Constructor
-     * @param lifecycle {@link Lifecycle} to monitor
-     */
-    @VisibleForTesting
-    protected LifecycleCallbackAdapter(@NonNull Lifecycle lifecycle) {
-        mLifecycle.set(lifecycle);
-        lifecycle.addObserver(this);
-    }
-
-    /**
-     * Get {@link Lifecycle} under monitor.
-     * @return {@link Lifecycle}. Return {@code null} when closed.
-     */
-    @VisibleForTesting
-    public Lifecycle getLifecycle() {
-        return mLifecycle.get();
-    }
-
-    /**
-     * Check current callback status.
-     * @return true when callback is active.
-     */
-    public abstract boolean isCallbackActive();
-
-    /**
-     * Change callback status.
-     * @param isActive true to active callback, otherwise inactive.
-     */
-    public abstract void setCallbackActive(boolean isActive);
-
-    /**
-     * Implementation of LifecycleEventObserver.
-     */
-    public void onStateChanged(LifecycleOwner source, Lifecycle.Event event) {
-        if (mLifecycle.get() == null) {
-            return;
-        }
-
-        Lifecycle.State state = event.getTargetState();
-        boolean expectCallbackActive = state.isAtLeast(Lifecycle.State.STARTED);
-        if (expectCallbackActive != isCallbackActive()) {
-            setCallbackActive(expectCallbackActive);
-        }
-        if (state == Lifecycle.State.DESTROYED) {
-            close();
-        }
-    }
-
-    /**
-     * Implementation of AutoCloseable.
-     */
-    @MainThread
-    public void close() {
-        Lifecycle lifecycle = mLifecycle.getAndSet(null);
-        if (lifecycle != null) {
-            lifecycle.removeObserver(this);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/helper/LifecycleCallbackConverter.java b/src/com/android/settings/network/helper/LifecycleCallbackConverter.java
deleted file mode 100644
index f35b69a..0000000
--- a/src/com/android/settings/network/helper/LifecycleCallbackConverter.java
+++ /dev/null
@@ -1,132 +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.helper;
-
-import androidx.annotation.AnyThread;
-import androidx.annotation.NonNull;
-import androidx.annotation.UiThread;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.concurrent.atomic.AtomicLong;
-import java.util.function.Consumer;
-
-/**
- * A {@link LifecycleCallbackAdapter} which support carrying a result from any threads back to UI
- * thread through {@link #postResult(T)}.
- *
- * A {@link Consumer<T>} would be invoked from UI thread for further processing on the result.
- *
- * Note: Result not in STARTED or RESUMED stage will be discarded silently.
- *       This is to align with the criteria set within
- *       {@link LifecycleCallbackAdapter#onStateChanged()}.
- */
-@VisibleForTesting
-public class LifecycleCallbackConverter<T> extends LifecycleCallbackAdapter {
-    private static final String TAG = "LifecycleCallbackConverter";
-
-    private final Thread mUiThread;
-    private final Consumer<T> mResultCallback;
-
-    /**
-     * A record of number of active status change.
-     * Even numbers (0, 2, 4, 6 ...) are inactive status.
-     * Odd numbers (1, 3, 5, 7 ...) are active status.
-     */
-    private final AtomicLong mNumberOfActiveStatusChange = new AtomicLong();
-
-    /**
-     * Constructor
-     *
-     * @param lifecycle {@link Lifecycle} to monitor
-     * @param resultCallback for further processing the result
-     */
-    @VisibleForTesting
-    @UiThread
-    public LifecycleCallbackConverter(
-            @NonNull Lifecycle lifecycle, @NonNull Consumer<T> resultCallback) {
-        super(lifecycle);
-        mUiThread = Thread.currentThread();
-        mResultCallback = resultCallback;
-    }
-
-    /**
-     * Post a result (from any thread) back to UI thread.
-     *
-     * @param result the object ready to be passed back to {@link Consumer<T>}.
-     */
-    @AnyThread
-    @VisibleForTesting
-    public void postResult(T result) {
-        /**
-         * Since mNumberOfActiveStatusChange only increase, it is a concept of sequence number.
-         * Carry it when sending data in between different threads allow to verify if the data
-         * has arrived on time. And drop the data when expired.
-         */
-        long currentNumberOfChange = mNumberOfActiveStatusChange.get();
-        if (Thread.currentThread() == mUiThread) {
-            dispatchExtResult(currentNumberOfChange, result); // Dispatch directly
-        } else {
-            postResultToUiThread(currentNumberOfChange, result);
-        }
-    }
-
-    @AnyThread
-    protected void postResultToUiThread(long numberOfStatusChange, T result) {
-        ThreadUtils.postOnMainThread(() -> dispatchExtResult(numberOfStatusChange, result));
-    }
-
-    @UiThread
-    protected void dispatchExtResult(long numberOfStatusChange, T result) {
-        /**
-         * For a postResult() sending in between different threads, not only create a latency
-         * but also enqueued into main UI thread for dispatch.
-         *
-         * To align behavior within {@link LifecycleCallbackAdapter#onStateChanged()},
-         * some checking on both numberOfStatusChange and {@link Lifecycle} status are required.
-         */
-        if (isActiveStatus(numberOfStatusChange)
-                && (numberOfStatusChange == mNumberOfActiveStatusChange.get())
-                && getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
-            mResultCallback.accept(result);
-        }
-    }
-
-    private static final boolean isActiveStatus(long numberOfStatusChange) {
-        return ((numberOfStatusChange & 1L) != 0L);
-    }
-
-    /* Implementation of LifecycleCallbackAdapter */
-    @UiThread
-    public boolean isCallbackActive() {
-        return isActiveStatus(mNumberOfActiveStatusChange.get());
-    }
-
-    /* Implementation of LifecycleCallbackAdapter */
-    @UiThread
-    public void setCallbackActive(boolean updatedActiveStatus) {
-        /**
-         * Make sure only increase when active status got changed.
-         * This is to implement the definition of mNumberOfActiveStatusChange.
-         */
-        if (isCallbackActive() != updatedActiveStatus) {
-            mNumberOfActiveStatusChange.getAndIncrement();
-        }
-    }
-}
diff --git a/src/com/android/settings/network/helper/LifecycleCallbackIntentReceiver.java b/src/com/android/settings/network/helper/LifecycleCallbackIntentReceiver.java
deleted file mode 100644
index 8aaa53e..0000000
--- a/src/com/android/settings/network/helper/LifecycleCallbackIntentReceiver.java
+++ /dev/null
@@ -1,104 +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.helper;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Handler;
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import java.util.function.Consumer;
-
-/**
- * A {@link BroadcastReceiver} for {@link Intent}.
- *
- * This is {@link BroadcastReceiver} supported by {@link LifecycleCallbackConverter},
- * and only register when state is either START or RESUME.
- */
-@VisibleForTesting
-public class LifecycleCallbackIntentReceiver extends LifecycleCallbackConverter<Intent> {
-    private static final String TAG = "LifecycleCallbackIntentReceiver";
-
-    @VisibleForTesting
-    protected final BroadcastReceiver mReceiver;
-
-    private final Runnable mRegisterCallback;
-    private final Runnable mUnRegisterCallback;
-
-    /**
-     * Constructor
-     * @param lifecycle {@link Lifecycle} to monitor
-     * @param context for this BroadcastReceiver
-     * @param filter the IntentFilter for BroadcastReceiver
-     * @param broadcastPermission for permission when listening
-     * @param scheduler for running in background thread
-     * @param resultCallback for the Intent from BroadcastReceiver
-     */
-    @VisibleForTesting
-    public LifecycleCallbackIntentReceiver(@NonNull Lifecycle lifecycle,
-            @NonNull Context context, @NonNull IntentFilter filter,
-            String broadcastPermission, Handler scheduler,
-            @NonNull Consumer<Intent> resultCallback) {
-        super(lifecycle, resultCallback);
-
-        // BroadcastReceiver
-        mReceiver = new BroadcastReceiver() {
-            public void onReceive(Context context, Intent intent) {
-                if (isInitialStickyBroadcast()) {
-                    return;
-                }
-                final String action = intent.getAction();
-                if ((action == null) || (action.length() <= 0)) {
-                    return;
-                }
-                postResult(intent);
-            }
-        };
-
-        // Register operation
-        mRegisterCallback = () -> {
-            Intent initIntent = context.registerReceiver(mReceiver,
-                    filter, broadcastPermission, scheduler);
-            if (initIntent != null) {
-                postResult(initIntent);
-            }
-        };
-
-        // Un-Register operation
-        mUnRegisterCallback = () -> {
-            context.unregisterReceiver(mReceiver);
-        };
-    }
-
-    @Override
-    public void setCallbackActive(boolean isActive) {
-        super.setCallbackActive(isActive);
-        Runnable op = (isActive) ? mRegisterCallback : mUnRegisterCallback;
-        op.run();
-    }
-
-    @Override
-    public void close() {
-        super.close();
-        if (isCallbackActive()) {
-            setCallbackActive(false);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/helper/LifecycleCallbackTelephonyAdapter.java b/src/com/android/settings/network/helper/LifecycleCallbackTelephonyAdapter.java
deleted file mode 100644
index 0fae4f2..0000000
--- a/src/com/android/settings/network/helper/LifecycleCallbackTelephonyAdapter.java
+++ /dev/null
@@ -1,72 +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.helper;
-
-import android.telephony.TelephonyCallback;
-import android.telephony.TelephonyManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-
-import java.util.concurrent.Executor;
-import java.util.function.Consumer;
-
-/**
- * A {@link LifecycleCallbackConverter} for supporting the register/unregister work for
- * {@link TelephonyCallback}.
- */
-@VisibleForTesting
-public class LifecycleCallbackTelephonyAdapter<T> extends LifecycleCallbackConverter<T> {
-    private static final String TAG = "LifecycleCallbackTelephony";
-
-    private final Runnable mRegisterCallback;
-    private final Runnable mUnRegisterCallback;
-
-    /**
-     * Constructor
-     * @param lifecycle {@link Lifecycle} to monitor
-     * @param telephonyManager {@link TelephonyManager} to interact with
-     * @param telephonyCallback {@link TelephonyCallback}
-     * @param executor {@link Executor} for receiving the notify from telephony framework.
-     * @param resultCallback for the result from {@link TelephonyCallback}
-     */
-    @VisibleForTesting
-    public LifecycleCallbackTelephonyAdapter(@NonNull Lifecycle lifecycle,
-            @NonNull TelephonyManager telephonyManager,
-            @NonNull TelephonyCallback telephonyCallback,
-            Executor executor, @NonNull Consumer<T> resultCallback) {
-        super(lifecycle, resultCallback);
-
-        // Register operation
-        mRegisterCallback = () -> {
-            telephonyManager.registerTelephonyCallback(executor, telephonyCallback);
-        };
-
-        // Un-Register operation
-        mUnRegisterCallback = () -> {
-            telephonyManager.unregisterTelephonyCallback(telephonyCallback);
-        };
-    }
-
-    @Override
-    public void setCallbackActive(boolean isActive) {
-        super.setCallbackActive(isActive);
-        Runnable op = (isActive) ? mRegisterCallback : mUnRegisterCallback;
-        op.run();
-    }
-}
diff --git a/src/com/android/settings/network/helper/SelectableSubscriptions.java b/src/com/android/settings/network/helper/SelectableSubscriptions.java
index 8e8f405..b4a3b57 100644
--- a/src/com/android/settings/network/helper/SelectableSubscriptions.java
+++ b/src/com/android/settings/network/helper/SelectableSubscriptions.java
@@ -146,7 +146,7 @@
     }
 
     protected SubscriptionManager getSubscriptionManager(Context context) {
-        return context.getSystemService(SubscriptionManager.class);
+        return context.getSystemService(SubscriptionManager.class).createForAllUserProfiles();
     }
 
     protected List<SubscriptionInfo> getAvailableSubInfoList(Context context) {
diff --git a/src/com/android/settings/network/helper/ServiceStateStatus.java b/src/com/android/settings/network/helper/ServiceStateStatus.java
deleted file mode 100644
index 871884d..0000000
--- a/src/com/android/settings/network/helper/ServiceStateStatus.java
+++ /dev/null
@@ -1,104 +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.helper;
-
-import android.telephony.ServiceState;
-import android.telephony.TelephonyCallback;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LiveData;
-
-import java.util.concurrent.Executor;
-import java.util.function.Consumer;
-
-/**
- * A {@link LiveData} as a mapping of allowed network types reported from {@link TelephonyCallback}.
- * Only got update when Lifecycle.State is considered as STARTED or RESUMED.
- *
- * {@code null} when status unknown. Other values are {@link ServiceState}.
- */
-@VisibleForTesting
-public class ServiceStateStatus extends LiveData<ServiceState> {
-    private static final String TAG = "ServiceStateStatus";
-
-    @VisibleForTesting
-    protected ServiceStateProducer mServiceStateProducer;
-
-    @VisibleForTesting
-    protected LifecycleCallbackTelephonyAdapter mAdapter;
-
-    @VisibleForTesting
-    protected Consumer<ServiceState> mLiveDataUpdater = status -> setValue(status);
-
-    /**
-     * Constructor
-     * @param lifecycle {@link Lifecycle} to monitor
-     * @param telephonyManager {@link TelephonyManager} to interact with
-     * @param executor {@link Executor} for receiving the notify from telephony framework.
-     */
-    @VisibleForTesting
-    public ServiceStateStatus(@NonNull Lifecycle lifecycle,
-            @NonNull TelephonyManager telephonyManager, Executor executor) {
-        super();
-
-        mServiceStateProducer = new ServiceStateProducer(this);
-
-        mAdapter = new LifecycleCallbackTelephonyAdapter<ServiceState>(lifecycle,
-                telephonyManager, mServiceStateProducer, executor, mLiveDataUpdater) {
-            @Override
-            public void setCallbackActive(boolean isActive) {
-                super.setCallbackActive(isActive);
-                if (!isActive) {
-                    /**
-                     * Set to unknown status when no longer actively monitoring
-                     * {@link TelephonyCallback}.
-                     */
-                    mLiveDataUpdater.accept(null);
-                }
-            }
-        };
-    }
-
-    /**
-     * An implementation of TelephonyCallback.
-     *
-     * Change of allowed network type will be forward to
-     * {@link LifecycleCallbackTelephonyAdapter}.
-     */
-    @VisibleForTesting
-    protected static class ServiceStateProducer extends TelephonyCallback
-            implements TelephonyCallback.ServiceStateListener {
-        private final ServiceStateStatus mStatus;
-
-        /**
-         * Constructor
-         * @param status {@link ServiceStateStatus}
-         */
-        public ServiceStateProducer(ServiceStateStatus status) {
-            mStatus = status;
-        }
-
-        @Override
-        public void onServiceStateChanged(ServiceState serviceState) {
-            mStatus.mAdapter.postResult(serviceState);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/helper/VoiceCallStatus.java b/src/com/android/settings/network/helper/VoiceCallStatus.java
deleted file mode 100644
index a5252cb..0000000
--- a/src/com/android/settings/network/helper/VoiceCallStatus.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.helper;
-
-import android.telephony.TelephonyCallback;
-import android.telephony.TelephonyManager;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LiveData;
-
-import java.util.concurrent.Executor;
-import java.util.function.Consumer;
-
-/**
- * A {@link LiveData} as a mapping of voice call state reported from {@link TelephonyCallback}.
- * Only got update when Lifecycle.State is considered as STARTED or RESUMED.
- *
- * {@code null} when status unknown. Other values are TelephonyManager#CALL_STATE_IDLE,
- * TelephonyManager#CALL_STATE_RINGING and TelephonyManager#CALL_STATE_OFFHOOK.
- */
-@VisibleForTesting
-public class VoiceCallStatus extends LiveData<Integer> {
-    private static final String TAG = "VoiceCallStatus";
-
-    @VisibleForTesting
-    protected CallStateProducer mCallStateProducer;
-
-    @VisibleForTesting
-    protected LifecycleCallbackTelephonyAdapter mAdapter;
-
-    @VisibleForTesting
-    protected Consumer<Integer> mLiveDataUpdater = status -> setValue(status);
-
-    /**
-     * Constructor
-     * @param lifecycle {@link Lifecycle} to monitor
-     * @param telephonyManager {@link TelephonyManager} to interact with
-     * @param executor {@link Executor} for receiving the notify from telephony framework.
-     */
-    @VisibleForTesting
-    public VoiceCallStatus(@NonNull Lifecycle lifecycle,
-            @NonNull TelephonyManager telephonyManager, Executor executor) {
-        super();
-
-        mCallStateProducer = new CallStateProducer(this);
-
-        mAdapter = new LifecycleCallbackTelephonyAdapter<Integer>(lifecycle,
-                telephonyManager, mCallStateProducer, executor, mLiveDataUpdater) {
-            @Override
-            public void setCallbackActive(boolean isActive) {
-                super.setCallbackActive(isActive);
-                if (!isActive) {
-                    /**
-                     * Set to unknown status when no longer actively monitoring
-                     * {@link TelephonyCallback}.
-                     */
-                    mLiveDataUpdater.accept(null);
-                }
-            }
-        };
-    }
-
-    /**
-     * An implementation of TelephonyCallback.
-     *
-     * Status of voice call will be forward to {@link LifecycleCallbackTelephonyAdapter}
-     */
-    @VisibleForTesting
-    protected static class CallStateProducer extends TelephonyCallback
-            implements TelephonyCallback.CallStateListener {
-        private final VoiceCallStatus mStatus;
-
-        /**
-         * Constructor
-         * @param status {@link VoiceCallStatus}
-         */
-        public CallStateProducer(VoiceCallStatus status) {
-            mStatus = status;
-        }
-
-        @Override
-        public void onCallStateChanged(int state) {
-            mStatus.mAdapter.postResult(state);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/telephony/AllowedNetworkTypesFlow.kt b/src/com/android/settings/network/telephony/AllowedNetworkTypesFlow.kt
new file mode 100644
index 0000000..cb507ab
--- /dev/null
+++ b/src/com/android/settings/network/telephony/AllowedNetworkTypesFlow.kt
@@ -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.network.telephony
+
+import android.content.Context
+import android.telephony.TelephonyCallback
+import android.telephony.TelephonyManager
+import android.util.Log
+import kotlinx.coroutines.flow.Flow
+
+private const val TAG = "AllowedNetworkTypesFlow"
+
+/** Creates an instance of a cold Flow for Allowed Network Types of given [subId]. */
+fun Context.allowedNetworkTypesFlow(subId: Int): Flow<Long> = telephonyCallbackFlow(subId) {
+    object : TelephonyCallback(), TelephonyCallback.AllowedNetworkTypesListener {
+        override fun onAllowedNetworkTypesChanged(reason: Int, allowedNetworkType: Long) {
+            if (reason == TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER ||
+                reason == TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER
+            ) {
+                trySend(allowedNetworkType)
+                Log.d(TAG, "[$subId] reason: $reason, allowedNetworkType: $allowedNetworkType")
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
index 1c20f59..ef74a2e 100644
--- a/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
+++ b/src/com/android/settings/network/telephony/AutoDataSwitchPreferenceController.java
@@ -37,11 +37,12 @@
 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;
 import com.android.settings.datausage.DataUsageUtils;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.MobileDataContentObserver;
 import com.android.settings.network.ProxySubscriptionManager;
 import com.android.settings.network.SubscriptionsChangeListener;
@@ -64,7 +65,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;
@@ -75,7 +76,7 @@
     public AutoDataSwitchPreferenceController(Context context,
             String preferenceKey) {
         super(context, preferenceKey);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     void init(int subId) {
@@ -194,7 +195,8 @@
 
     @Override
     public int getAvailabilityStatus(int subId) {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)
+        if (Flags.isDualSimOnboardingEnabled()
+                || !SubscriptionManager.isValidSubscriptionId(subId)
                 || SubscriptionManager.getDefaultDataSubscriptionId() == subId
                 || (!hasMobileData())) {
             return CONDITIONALLY_UNAVAILABLE;
diff --git a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
deleted file mode 100644
index 4f64399..0000000
--- a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
+++ /dev/null
@@ -1,197 +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 android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.ims.ImsException;
-import android.telephony.ims.ImsManager;
-import android.telephony.ims.ImsMmTelManager;
-import android.util.Log;
-
-import androidx.preference.Preference;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.R;
-import com.android.settings.network.SubscriptionUtil;
-import com.android.settings.network.ims.WifiCallingQueryImsState;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * Preference controller for "Backup Calling"
- **/
-public class BackupCallingPreferenceController extends TelephonyTogglePreferenceController {
-
-    private static final String LOG_TAG = "BackupCallingPrefCtrl";
-
-    private Preference mPreference;
-
-    /**
-     * Class constructor of backup calling.
-     *
-     * @param context of settings
-     * @param key assigned within UI entry of XML file
-     **/
-    public BackupCallingPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    /**
-     * Initialization based on given subscription id.
-     *
-     * @param subId is the subscription id
-     * @return this instance after initialization
-     **/
-    public BackupCallingPreferenceController init(int subId) {
-        mSubId = subId;
-        return this;
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        if (!hasBackupCallingFeature(subId)) {
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-        List<SubscriptionInfo> subIdList = getActiveSubscriptionList();
-        SubscriptionInfo subInfo = getSubscriptionInfoFromList(subIdList, subId);
-        if (subInfo == null) {  // given subId is not actives
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-        return (subIdList.size() > 1) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    /**
-     * Implementation of abstract methods
-     **/
-    public boolean setChecked(boolean isChecked) {
-        ImsMmTelManager imsMmTelMgr = getImsMmTelManager(mSubId);
-        if (imsMmTelMgr == null) {
-            return false;
-        }
-        try {
-            imsMmTelMgr.setCrossSimCallingEnabled(isChecked);
-        } catch (ImsException exception) {
-            Log.w(LOG_TAG, "fail to change cross SIM calling configuration: " + isChecked,
-                    exception);
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * Implementation of abstract methods
-     **/
-    public boolean isChecked() {
-        ImsMmTelManager imsMmTelMgr = getImsMmTelManager(mSubId);
-        if (imsMmTelMgr == null) {
-            return false;
-        }
-        try {
-            return imsMmTelMgr.isCrossSimCallingEnabled();
-        } catch (ImsException exception) {
-            Log.w(LOG_TAG, "fail to get cross SIM calling configuration", exception);
-        }
-        return false;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        if ((preference == null) || (!(preference instanceof SwitchPreference))) {
-            return;
-        }
-        SubscriptionInfo subInfo = getSubscriptionInfoFromActiveList(mSubId);
-
-        mPreference = preference;
-
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
-        switchPreference.setChecked((subInfo != null) ? isChecked() : false);
-
-        updateSummary(getLatestSummary(subInfo));
-    }
-
-    private String getLatestSummary(SubscriptionInfo subInfo) {
-        return Objects.toString((subInfo == null) ? null
-                : SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext), "");
-    }
-
-    private void updateSummary(String displayName) {
-        Preference preference = mPreference;
-        if (preference == null) {
-            return;
-        }
-        String summary = displayName;
-        String finalText = String.format(
-                getResourcesForSubId().getString(R.string.backup_calling_setting_summary),
-                summary)
-                .toString();
-        preference.setSummary(finalText);
-    }
-
-    private boolean hasBackupCallingFeature(int subscriptionId) {
-        return isCrossSimEnabledByPlatform(mContext, subscriptionId);
-    }
-
-    protected boolean isCrossSimEnabledByPlatform(Context context, int subscriptionId) {
-        // TODO : Change into API which created for accessing
-        //        com.android.ims.ImsManager#isCrossSimEnabledByPlatform()
-        if ((new WifiCallingQueryImsState(context, subscriptionId)).isWifiCallingSupported()) {
-            PersistableBundle bundle = getCarrierConfigForSubId(subscriptionId);
-            return (bundle != null) && bundle.getBoolean(
-                    CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
-                    false /*default*/);
-        }
-        Log.d(LOG_TAG, "Not supported by framework. subId = " + subscriptionId);
-        return false;
-    }
-
-    private ImsMmTelManager getImsMmTelManager(int subId) {
-        if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
-            return null;
-        }
-        ImsManager imsMgr = mContext.getSystemService(ImsManager.class);
-        return (imsMgr == null) ? null : imsMgr.getImsMmTelManager(subId);
-    }
-
-    private List<SubscriptionInfo> getActiveSubscriptionList() {
-        SubscriptionManager subscriptionManager =
-                mContext.getSystemService(SubscriptionManager.class);
-        return SubscriptionUtil.getActiveSubscriptions(subscriptionManager);
-    }
-
-    private SubscriptionInfo getSubscriptionInfoFromList(
-            List<SubscriptionInfo> subInfoList, int subId) {
-        for (SubscriptionInfo subInfo : subInfoList) {
-            if ((subInfo != null) && (subInfo.getSubscriptionId() == subId)) {
-                return subInfo;
-            }
-        }
-        return null;
-    }
-
-    private SubscriptionInfo getSubscriptionInfoFromActiveList(int subId) {
-        if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
-            return null;
-        }
-        return getSubscriptionInfoFromList(getActiveSubscriptionList(), subId);
-    }
-}
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..f5164e0
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CallStateFlow.kt
@@ -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.network.telephony
+
+import android.content.Context
+import android.telephony.TelephonyCallback
+import kotlinx.coroutines.flow.Flow
+
+/**
+ * Flow for call state.
+ */
+fun Context.callStateFlow(subId: Int): Flow<Int> = telephonyCallbackFlow(subId) {
+    object : TelephonyCallback(), TelephonyCallback.CallStateListener {
+        override fun onCallStateChanged(state: Int) {
+            trySend(state)
+        }
+    }
+}
diff --git a/src/com/android/settings/network/telephony/CallingPreferenceCategoryController.java b/src/com/android/settings/network/telephony/CallingPreferenceCategoryController.java
deleted file mode 100644
index f836415..0000000
--- a/src/com/android/settings/network/telephony/CallingPreferenceCategoryController.java
+++ /dev/null
@@ -1,31 +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 com.android.settings.widget.PreferenceCategoryController;
-
-/**
- * Preference controller for "Calling" category
- */
-public class CallingPreferenceCategoryController extends PreferenceCategoryController {
-
-    public CallingPreferenceCategoryController(Context context, String key) {
-        super(context, key);
-    }
-}
diff --git a/src/com/android/settings/network/telephony/CallingPreferenceCategoryController.kt b/src/com/android/settings/network/telephony/CallingPreferenceCategoryController.kt
new file mode 100644
index 0000000..5356a41
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CallingPreferenceCategoryController.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.network.telephony
+
+import android.content.Context
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.core.BasePreferenceController
+
+/**
+ * Preference controller for "Calling" category
+ */
+class CallingPreferenceCategoryController(context: Context, key: String) :
+    BasePreferenceController(context, key) {
+
+    private val visibleChildren = mutableSetOf<String>()
+    private var preference: Preference? = null
+
+    override fun getAvailabilityStatus() = AVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        // Not call super here, to avoid preference.isVisible changed unexpectedly
+        preference = screen.findPreference(preferenceKey)
+    }
+
+    fun updateChildVisible(key: String, isVisible: Boolean) {
+        if (isVisible) {
+            visibleChildren.add(key)
+        } else {
+            visibleChildren.remove(key)
+        }
+        preference?.isVisible = visibleChildren.isNotEmpty()
+    }
+}
diff --git a/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt b/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt
new file mode 100644
index 0000000..b421185
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CarrierConfigManagerExt.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.os.PersistableBundle
+import android.telephony.CarrierConfigManager
+import android.telephony.SubscriptionManager
+import androidx.core.os.persistableBundleOf
+
+/**
+ * Gets the configuration values of the specified config keys applied.
+ */
+fun CarrierConfigManager.safeGetConfig(
+    keys: List<String>,
+    subId: Int = SubscriptionManager.getDefaultSubscriptionId(),
+): PersistableBundle = try {
+    getConfigForSubId(subId, *keys.toTypedArray())
+} catch (e: IllegalStateException) {
+    // The CarrierConfigLoader (the service implemented the CarrierConfigManager) hasn't been
+    // initialized yet. This may occurs during very early phase of phone booting up or when Phone
+    // process has been restarted.
+    // Settings should not assume Carrier config loader (and any other system services as well) are
+    // always available. If not available, use default value instead.
+    persistableBundleOf()
+}
diff --git a/src/com/android/settings/network/telephony/CellInfoUtil.java b/src/com/android/settings/network/telephony/CellInfoUtil.java
deleted file mode 100644
index 8889586..0000000
--- a/src/com/android/settings/network/telephony/CellInfoUtil.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import android.telephony.CellIdentity;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellIdentityLte;
-import android.telephony.CellIdentityNr;
-import android.telephony.CellIdentityTdscdma;
-import android.telephony.CellIdentityWcdma;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoCdma;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoNr;
-import android.telephony.CellInfoTdscdma;
-import android.telephony.CellInfoWcdma;
-import android.text.BidiFormatter;
-import android.text.TextDirectionHeuristics;
-import android.text.TextUtils;
-
-import com.android.internal.telephony.OperatorInfo;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-/**
- * Add static Utility functions to get information from the CellInfo object.
- * TODO: Modify {@link CellInfo} for simplify those functions
- */
-public final class CellInfoUtil {
-    private static final String TAG = "NetworkSelectSetting";
-
-    private CellInfoUtil() {
-    }
-
-    /**
-     * Returns the title of the network obtained in the manual search.
-     *
-     * @param cellId contains the identity of the network.
-     * @param networkMccMnc contains the MCCMNC string of the network
-     * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
-     * else MCCMNC string.
-     */
-    public static String getNetworkTitle(CellIdentity cellId, String networkMccMnc) {
-        if (cellId != null) {
-            String title = Objects.toString(cellId.getOperatorAlphaLong(), "");
-            if (TextUtils.isEmpty(title)) {
-                title = Objects.toString(cellId.getOperatorAlphaShort(), "");
-            }
-            if (!TextUtils.isEmpty(title)) {
-                return title;
-            }
-        }
-        if (TextUtils.isEmpty(networkMccMnc)) {
-            return "";
-        }
-        final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
-        return bidiFormatter.unicodeWrap(networkMccMnc, TextDirectionHeuristics.LTR);
-    }
-
-    /**
-     * Returns the CellIdentity from CellInfo
-     *
-     * @param cellInfo contains the information of the network.
-     * @return CellIdentity within CellInfo
-     */
-    public static CellIdentity getCellIdentity(CellInfo cellInfo) {
-        if (cellInfo == null) {
-            return null;
-        }
-        CellIdentity cellId = null;
-        if (cellInfo instanceof CellInfoGsm) {
-            cellId = ((CellInfoGsm) cellInfo).getCellIdentity();
-        } else if (cellInfo instanceof CellInfoCdma) {
-            cellId = ((CellInfoCdma) cellInfo).getCellIdentity();
-        } else if (cellInfo instanceof CellInfoWcdma) {
-            cellId = ((CellInfoWcdma) cellInfo).getCellIdentity();
-        } else if (cellInfo instanceof CellInfoTdscdma) {
-            cellId = ((CellInfoTdscdma) cellInfo).getCellIdentity();
-        } else if (cellInfo instanceof CellInfoLte) {
-            cellId = ((CellInfoLte) cellInfo).getCellIdentity();
-        } else if (cellInfo instanceof CellInfoNr) {
-            cellId = ((CellInfoNr) cellInfo).getCellIdentity();
-        }
-        return cellId;
-    }
-
-    /**
-     * Creates a CellInfo object from OperatorInfo. GsmCellInfo is used here only because
-     * operatorInfo does not contain technology type while CellInfo is an abstract object that
-     * requires to specify technology type. It doesn't matter which CellInfo type to use here, since
-     * we only want to wrap the operator info and PLMN to a CellInfo object.
-     */
-    public static CellInfo convertOperatorInfoToCellInfo(OperatorInfo operatorInfo) {
-        final String operatorNumeric = operatorInfo.getOperatorNumeric();
-        String mcc = null;
-        String mnc = null;
-        if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
-            mcc = operatorNumeric.substring(0, 3);
-            mnc = operatorNumeric.substring(3);
-        }
-        final CellIdentityGsm cig = new CellIdentityGsm(
-                Integer.MAX_VALUE /* lac */,
-                Integer.MAX_VALUE /* cid */,
-                Integer.MAX_VALUE /* arfcn */,
-                Integer.MAX_VALUE /* bsic */,
-                mcc,
-                mnc,
-                operatorInfo.getOperatorAlphaLong(),
-                operatorInfo.getOperatorAlphaShort(),
-                Collections.emptyList());
-
-        final CellInfoGsm ci = new CellInfoGsm();
-        ci.setCellIdentity(cig);
-        return ci;
-    }
-
-    /** Convert a list of cellInfos to readable string without sensitive info. */
-    public static String cellInfoListToString(List<CellInfo> cellInfos) {
-        return cellInfos.stream()
-                .map(cellInfo -> cellInfoToString(cellInfo))
-                .collect(Collectors.joining(", "));
-    }
-
-    /** Convert {@code cellInfo} to a readable string without sensitive info. */
-    public static String cellInfoToString(CellInfo cellInfo) {
-        final String cellType = cellInfo.getClass().getSimpleName();
-        final CellIdentity cid = getCellIdentity(cellInfo);
-        String mcc = getCellIdentityMcc(cid);
-        String mnc = getCellIdentityMnc(cid);
-        CharSequence alphaLong = null;
-        CharSequence alphaShort = null;
-        if (cid != null) {
-            alphaLong = cid.getOperatorAlphaLong();
-            alphaShort = cid.getOperatorAlphaShort();
-        }
-        return String.format(
-                "{CellType = %s, isRegistered = %b, mcc = %s, mnc = %s, alphaL = %s, alphaS = %s}",
-                cellType, cellInfo.isRegistered(), mcc, mnc,
-                alphaLong, alphaShort);
-    }
-
-    /**
-     * Returns the MccMnc.
-     *
-     * @param cid contains the identity of the network.
-     * @return MccMnc string.
-     */
-    public static String getCellIdentityMccMnc(CellIdentity cid) {
-        String mcc = getCellIdentityMcc(cid);
-        String mnc = getCellIdentityMnc(cid);
-        return (mcc == null || mnc == null) ? null : mcc + mnc;
-    }
-
-    /**
-     * Returns the Mcc.
-     *
-     * @param cid contains the identity of the network.
-     * @return Mcc string.
-     */
-    public static String getCellIdentityMcc(CellIdentity cid) {
-        String mcc = null;
-        if (cid != null) {
-            if (cid instanceof CellIdentityGsm) {
-                mcc = ((CellIdentityGsm) cid).getMccString();
-            } else if (cid instanceof CellIdentityWcdma) {
-                mcc = ((CellIdentityWcdma) cid).getMccString();
-            } else if (cid instanceof CellIdentityTdscdma) {
-                mcc = ((CellIdentityTdscdma) cid).getMccString();
-            } else if (cid instanceof CellIdentityLte) {
-                mcc = ((CellIdentityLte) cid).getMccString();
-            } else if (cid instanceof CellIdentityNr) {
-                mcc = ((CellIdentityNr) cid).getMccString();
-            }
-        }
-        return (mcc == null) ? null : mcc;
-    }
-
-    /**
-     * Returns the Mnc.
-     *
-     * @param cid contains the identity of the network.
-     * @return Mcc string.
-     */
-    public static String getCellIdentityMnc(CellIdentity cid) {
-        String mnc = null;
-        if (cid != null) {
-            if (cid instanceof CellIdentityGsm) {
-                mnc = ((CellIdentityGsm) cid).getMncString();
-            } else if (cid instanceof CellIdentityWcdma) {
-                mnc = ((CellIdentityWcdma) cid).getMncString();
-            } else if (cid instanceof CellIdentityTdscdma) {
-                mnc = ((CellIdentityTdscdma) cid).getMncString();
-            } else if (cid instanceof CellIdentityLte) {
-                mnc = ((CellIdentityLte) cid).getMncString();
-            } else if (cid instanceof CellIdentityNr) {
-                mnc = ((CellIdentityNr) cid).getMncString();
-            }
-        }
-        return (mnc == null) ? null : mnc;
-    }
-}
diff --git a/src/com/android/settings/network/telephony/CellInfoUtil.kt b/src/com/android/settings/network/telephony/CellInfoUtil.kt
new file mode 100644
index 0000000..c7b6b24
--- /dev/null
+++ b/src/com/android/settings/network/telephony/CellInfoUtil.kt
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.telephony.CellIdentity
+import android.telephony.CellIdentityGsm
+import android.telephony.CellInfo
+import android.telephony.CellInfoGsm
+import android.text.BidiFormatter
+import android.text.TextDirectionHeuristics
+import com.android.internal.telephony.OperatorInfo
+
+/**
+ * Add static Utility functions to get information from the CellInfo object.
+ * TODO: Modify [CellInfo] for simplify those functions
+ */
+object CellInfoUtil {
+
+    /**
+     * Returns the title of the network obtained in the manual search.
+     *
+     * By the following order,
+     * 1. Long Name if not null/empty
+     * 2. Short Name if not null/empty
+     * 3. OperatorNumeric (MCCMNC) string
+     */
+    @JvmStatic
+    fun CellIdentity.getNetworkTitle(): String? {
+        operatorAlphaLong?.takeIf { it.isNotBlank() }?.let { return it.toString() }
+        operatorAlphaShort?.takeIf { it.isNotBlank() }?.let { return it.toString() }
+        val operatorNumeric = getOperatorNumeric() ?: return null
+        val bidiFormatter = BidiFormatter.getInstance()
+        return bidiFormatter.unicodeWrap(operatorNumeric, TextDirectionHeuristics.LTR)
+    }
+
+    /**
+     * Creates a CellInfo object from OperatorInfo. GsmCellInfo is used here only because
+     * operatorInfo does not contain technology type while CellInfo is an abstract object that
+     * requires to specify technology type. It doesn't matter which CellInfo type to use here, since
+     * we only want to wrap the operator info and PLMN to a CellInfo object.
+     */
+    @JvmStatic
+    fun convertOperatorInfoToCellInfo(operatorInfo: OperatorInfo): CellInfo {
+        val operatorNumeric = operatorInfo.operatorNumeric
+        var mcc: String? = null
+        var mnc: String? = null
+        if (operatorNumeric?.matches("^[0-9]{5,6}$".toRegex()) == true) {
+            mcc = operatorNumeric.substring(0, 3)
+            mnc = operatorNumeric.substring(3)
+        }
+        return CellInfoGsm().apply {
+            cellIdentity = CellIdentityGsm(
+                /* lac = */ Int.MAX_VALUE,
+                /* cid = */ Int.MAX_VALUE,
+                /* arfcn = */ Int.MAX_VALUE,
+                /* bsic = */ Int.MAX_VALUE,
+                /* mccStr = */ mcc,
+                /* mncStr = */ mnc,
+                /* alphal = */ operatorInfo.operatorAlphaLong,
+                /* alphas = */ operatorInfo.operatorAlphaShort,
+                /* additionalPlmns = */ emptyList(),
+            )
+        }
+    }
+
+    /**
+     * Convert a list of cellInfos to readable string without sensitive info.
+     */
+    @JvmStatic
+    fun cellInfoListToString(cellInfos: List<CellInfo>): String =
+        cellInfos.joinToString { cellInfo -> cellInfo.readableString() }
+
+    /**
+     * Convert [CellInfo] to a readable string without sensitive info.
+     */
+    private fun CellInfo.readableString(): String = buildString {
+        append("{CellType = ${this@readableString::class.simpleName}, ")
+        append("isRegistered = $isRegistered, ")
+        append(cellIdentity.readableString())
+        append("}")
+    }
+
+    private fun CellIdentity.readableString(): String = buildString {
+        append("mcc = $mccString, ")
+        append("mnc = $mncString, ")
+        append("alphaL = $operatorAlphaLong, ")
+        append("alphaS = $operatorAlphaShort")
+    }
+
+    /**
+     * Returns the MccMnc.
+     */
+    @JvmStatic
+    fun CellIdentity.getOperatorNumeric(): String? {
+        val mcc = mccString
+        val mnc = mncString
+        return if (mcc == null || mnc == null) null else mcc + mnc
+    }
+}
diff --git a/src/com/android/settings/network/telephony/ConfirmDialogFragment.java b/src/com/android/settings/network/telephony/ConfirmDialogFragment.java
index d262a0e..a807518 100644
--- a/src/com/android/settings/network/telephony/ConfirmDialogFragment.java
+++ b/src/com/android/settings/network/telephony/ConfirmDialogFragment.java
@@ -176,7 +176,13 @@
     }
 
     private void informCaller(boolean confirmed, int itemPosition) {
-        OnConfirmListener listener = getListener(OnConfirmListener.class);
+        OnConfirmListener listener;
+        try {
+            listener = getListener(OnConfirmListener.class);
+        } catch (IllegalArgumentException e) {
+            Log.e(TAG, "Do nothing and return.", e);
+            return;
+        }
         if (listener == null) {
             return;
         }
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/ConvertToEsimPreferenceController.java b/src/com/android/settings/network/telephony/ConvertToEsimPreferenceController.java
index b4e768c..441c249 100644
--- a/src/com/android/settings/network/telephony/ConvertToEsimPreferenceController.java
+++ b/src/com/android/settings/network/telephony/ConvertToEsimPreferenceController.java
@@ -19,7 +19,19 @@
 import static androidx.lifecycle.Lifecycle.Event.ON_START;
 import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
 
+import android.Manifest;
+import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.ComponentInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.service.euicc.EuiccService;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.euicc.EuiccManager;
 import android.text.TextUtils;
 
 import androidx.annotation.VisibleForTesting;
@@ -29,14 +41,17 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.telephony.util.TelephonyUtils;
+import com.android.settings.R;
 import com.android.settings.network.MobileNetworkRepository;
+import com.android.settings.network.SubscriptionUtil;
 import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.mobile.dataservice.DataServiceUtils;
-import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
-import com.android.settingslib.mobile.dataservice.UiccInfoEntity;
+
+import org.jetbrains.annotations.NotNull;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class ConvertToEsimPreferenceController extends TelephonyBasePreferenceController implements
@@ -47,6 +62,9 @@
     private MobileNetworkRepository mMobileNetworkRepository;
     private List<SubscriptionInfoEntity> mSubscriptionInfoEntityList = new ArrayList<>();
     private SubscriptionInfoEntity mSubscriptionInfoEntity;
+    private static int sQueryFlag =
+            PackageManager.MATCH_SYSTEM_ONLY | PackageManager.MATCH_DIRECT_BOOT_AUTO
+                    | PackageManager.GET_RESOLVED_FILTER;
 
     public ConvertToEsimPreferenceController(Context context, String key, Lifecycle lifecycle,
             LifecycleOwner lifecycleOwner, int subId) {
@@ -83,11 +101,29 @@
 
     @Override
     public int getAvailabilityStatus(int subId) {
+        // TODO(b/315073761) : Add a new API to set whether the profile has been
+        // converted/transferred. Remove any confusion to the user according to the set value.
+
+        /*
+         * If pSIM is set to preferred SIM and there is an active eSIM, convert the pSIM to eSIM
+         * and then disable the pSIM.
+         * This causes a dialog to switch the preferred SIM to downloaded new eSIM.
+         * This may cause confusion for the user about the seamless conversion.
+         * To avoid showing users dialogs that can cause confusion,
+         * add conditions to allow conversion in the absence of active eSIM.
+         */
+        if (!mContext.getResources().getBoolean(R.bool.config_psim_conversion_menu_enabled)
+                || !isPsimConversionSupport(subId)) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
+        if (findConversionSupportComponent()) {
+            return mSubscriptionInfoEntity != null && mSubscriptionInfoEntity.isActiveSubscriptionId
+                    && !mSubscriptionInfoEntity.isEmbedded && isActiveSubscription(subId)
+                    && !hasActiveEsimProfiles()
+                    ? AVAILABLE
+                    : CONDITIONALLY_UNAVAILABLE;
+        }
         return CONDITIONALLY_UNAVAILABLE;
-        // TODO(b/262195754): Need the intent to enabled the feature.
-//        return mSubscriptionInfoEntity != null && mSubscriptionInfoEntity.isActiveSubscriptionId
-//                && !mSubscriptionInfoEntity.isEmbedded ? AVAILABLE
-//                : CONDITIONALLY_UNAVAILABLE;
     }
 
     @VisibleForTesting
@@ -104,6 +140,9 @@
             return false;
         }
         // Send intent to launch LPA
+        Intent intent = new Intent(EuiccManager.ACTION_CONVERT_TO_EMBEDDED_SUBSCRIPTION);
+        intent.putExtra("subId", mSubId);
+        mContext.startActivity(intent);
         return true;
     }
 
@@ -114,13 +153,103 @@
 
     @Override
     public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
-        // TODO(b/262195754): Need the intent to enabled the feature.
-//        mSubscriptionInfoEntityList = subInfoEntityList;
-//        mSubscriptionInfoEntityList.forEach(entity -> {
-//            if (Integer.parseInt(entity.subId) == mSubId) {
-//                mSubscriptionInfoEntity = entity;
-//                update();
-//            }
-//        });
+        mSubscriptionInfoEntityList = subInfoEntityList;
+        mSubscriptionInfoEntityList.forEach(entity -> {
+            if (Integer.parseInt(entity.subId) == mSubId) {
+                mSubscriptionInfoEntity = entity;
+                update();
+            }
+        });
+    }
+
+    private boolean isActiveSubscription(int subId) {
+        SubscriptionManager subscriptionManager = mContext.getSystemService(
+                SubscriptionManager.class);
+        SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(subId);
+        if (subInfo == null) {
+            return false;
+        }
+        return true;
+    }
+
+    private boolean hasActiveEsimProfiles() {
+        SubscriptionManager subscriptionManager = mContext.getSystemService(
+                SubscriptionManager.class);
+        List<SubscriptionInfo> subscriptionInfoList =
+                SubscriptionUtil.getActiveSubscriptions(subscriptionManager);
+        if (subscriptionInfoList == null || subscriptionInfoList.isEmpty()) {
+            return false;
+        }
+        int activatedEsimCount = (int) subscriptionInfoList
+                .stream()
+                .filter(SubscriptionInfo::isEmbedded)
+                .count();
+        if (activatedEsimCount > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    private boolean findConversionSupportComponent() {
+        Intent intent = new Intent(EuiccService.ACTION_CONVERT_TO_EMBEDDED_SUBSCRIPTION);
+        PackageManager packageManager = mContext.getPackageManager();
+        List<ResolveInfo> resolveInfoList = packageManager
+                .queryIntentActivities(intent, sQueryFlag);
+        if (resolveInfoList == null || resolveInfoList.isEmpty()) {
+            return false;
+        }
+        for (ResolveInfo resolveInfo : resolveInfoList) {
+            if (!isValidEuiccComponent(packageManager, resolveInfo)) {
+                continue;
+            } else {
+                return true;
+            }
+        }
+        return true;
+    }
+
+    private boolean isValidEuiccComponent(
+            PackageManager packageManager, @NotNull ResolveInfo resolveInfo) {
+        ComponentInfo componentInfo = TelephonyUtils.getComponentInfo(resolveInfo);
+        String packageName = new ComponentName(componentInfo.packageName, componentInfo.name)
+                .getPackageName();
+
+        // Verify that the app is privileged (via granting of a privileged permission).
+        if (packageManager.checkPermission(
+                Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS, packageName)
+                != PackageManager.PERMISSION_GRANTED) {
+            return false;
+        }
+
+        // Verify that only the system can access the component.
+        final String permission;
+        if (componentInfo instanceof ServiceInfo) {
+            permission = ((ServiceInfo) componentInfo).permission;
+        } else if (componentInfo instanceof ActivityInfo) {
+            permission = ((ActivityInfo) componentInfo).permission;
+        } else {
+            return false;
+        }
+        if (!TextUtils.equals(permission, Manifest.permission.BIND_EUICC_SERVICE)) {
+            return false;
+        }
+
+        // Verify that the component declares a priority.
+        if (resolveInfo.filter == null || resolveInfo.filter.getPriority() == 0) {
+            return false;
+        }
+        return true;
+    }
+
+    private boolean isPsimConversionSupport(int subId) {
+        SubscriptionManager subscriptionManager = mContext.getSystemService(
+                SubscriptionManager.class);
+        SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(subId);
+        if (subInfo == null) {
+            return false;
+        }
+        final int[] supportedCarriers = mContext.getResources().getIntArray(
+                R.array.config_psim_conversion_menu_enabled_carrier);
+        return Arrays.stream(supportedCarriers).anyMatch(id -> id == subInfo.getCarrierId());
     }
 }
diff --git a/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt b/src/com/android/settings/network/telephony/DataUsagePreferenceController.kt
index 88da325..6ee6909 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
     }
@@ -64,7 +62,7 @@
         preference = screen.findPreference(preferenceKey)!!
     }
 
-    fun whenViewCreated(viewLifecycleOwner: LifecycleOwner) {
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
         viewLifecycleOwner.lifecycleScope.launch {
             viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
                 update()
@@ -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()?.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/DefaultSubscriptionController.java b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
index 206b3a9..03ce7f6 100644
--- a/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
+++ b/src/com/android/settings/network/telephony/DefaultSubscriptionController.java
@@ -32,6 +32,7 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.DefaultSubscriptionReceiver;
 import com.android.settings.network.MobileNetworkRepository;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -88,6 +89,9 @@
 
     @Override
     public int getAvailabilityStatus(int subId) {
+        if (Flags.isDualSimOnboardingEnabled()) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
         return AVAILABLE;
     }
 
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..64f9730
--- /dev/null
+++ b/src/com/android/settings/network/telephony/DeleteSimProfilePreferenceController.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.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.wifi.dpp.WifiDppUtils
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+
+/** 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
+
+        WifiDppUtils.showLockScreen(mContext) { 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 03f3be4..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;
@@ -74,7 +75,7 @@
     public Enable2gPreferenceController(Context context, String key) {
         super(context, key);
         mCarrierConfigCache = CarrierConfigCache.getInstance(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
         mRestrictedPreference = null;
     }
@@ -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..56fbcde 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -29,12 +29,16 @@
 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;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.network.AllowedNetworkTypesListener;
 import com.android.settings.network.CarrierConfigCache;
@@ -67,6 +71,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 +156,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 +183,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);
@@ -227,6 +242,7 @@
         public void updateConfig() {
             mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
             final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(mSubId);
+            final boolean flagHidePrefer3gItem = Flags.hidePrefer3gItem();
             mAllowed5gNetworkType = checkSupportedRadioBitmask(
                     mTelephonyManager.getAllowedNetworkTypesForReason(
                             TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER),
@@ -242,22 +258,28 @@
                         CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
                 mDisplay2gOptions = carrierConfig.getBoolean(
                         CarrierConfigManager.KEY_PREFER_2G_BOOL);
-                // TODO: Using the carrier config.
-                mDisplay3gOptions = getResourcesForSubId().getBoolean(
-                        R.bool.config_display_network_mode_3g_option);
 
-                int[] carriersWithout3gMenu = getResourcesForSubId().getIntArray(
-                        R.array.network_mode_3g_deprecated_carrier_id);
-                if ((carriersWithout3gMenu != null) && (carriersWithout3gMenu.length > 0)) {
-                    SubscriptionManager sm = mContext.getSystemService(SubscriptionManager.class);
-                    SubscriptionInfo subInfo = sm.getActiveSubscriptionInfo(mSubId);
-                    if (subInfo != null) {
-                        int carrierId = subInfo.getCarrierId();
+                if (flagHidePrefer3gItem) {
+                    mDisplay3gOptions = carrierConfig.getBoolean(
+                        CarrierConfigManager.KEY_PREFER_3G_VISIBILITY_BOOL);
+                } else {
+                    mDisplay3gOptions = getResourcesForSubId().getBoolean(
+                            R.bool.config_display_network_mode_3g_option);
 
-                        for (int idx = 0; idx < carriersWithout3gMenu.length; idx++) {
-                            if (carrierId == carriersWithout3gMenu[idx]) {
-                                mDisplay3gOptions = false;
-                                break;
+                    int[] carriersWithout3gMenu = getResourcesForSubId().getIntArray(
+                            R.array.network_mode_3g_deprecated_carrier_id);
+                    if ((carriersWithout3gMenu != null) && (carriersWithout3gMenu.length > 0)) {
+                        SubscriptionManager sm = mContext.getSystemService(
+                                SubscriptionManager.class);
+                        SubscriptionInfo subInfo = sm.getActiveSubscriptionInfo(mSubId);
+                        if (subInfo != null) {
+                            int carrierId = subInfo.getCarrierId();
+
+                            for (int idx = 0; idx < carriersWithout3gMenu.length; idx++) {
+                                if (carrierId == carriersWithout3gMenu[idx]) {
+                                    mDisplay3gOptions = false;
+                                    break;
+                                }
                             }
                         }
                     }
@@ -902,7 +924,16 @@
 
             // assign current call state so that it helps to show correct preference state even
             // before first onCallStateChanged() by initial registration.
-            mCallState = mTelephonyManager.getCallState(subId);
+            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+                try {
+                    mCallState = mTelephonyManager.getCallState(subId);
+                } catch (UnsupportedOperationException e) {
+                    // Device doesn't support FEATURE_TELEPHONY_CALLING
+                    mCallState = TelephonyManager.CALL_STATE_IDLE;
+                }
+            } else {
+                mCallState = mTelephonyManager.getCallState(subId);
+            }
             mTelephonyManager.registerTelephonyCallback(
                     mContext.getMainExecutor(), mTelephonyCallback);
         }
diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
index 12612d6..1a71e5a 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,8 +31,9 @@
 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.flags.Flags;
 import com.android.internal.telephony.util.ArrayUtils;
 import com.android.settings.R;
 import com.android.settings.network.ims.VolteQueryImsState;
@@ -153,7 +153,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))
@@ -235,7 +235,16 @@
             }
             // assign current call state so that it helps to show correct preference state even
             // before first onCallStateChanged() by initial registration.
-            mCallState = mTelephonyManager.getCallState(subId);
+            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+                try {
+                    mCallState = mTelephonyManager.getCallState(subId);
+                } catch (UnsupportedOperationException e) {
+                    // Device doesn't support FEATURE_TELEPHONY_CALLING
+                    mCallState = TelephonyManager.CALL_STATE_IDLE;
+                }
+            } else {
+                mCallState = mTelephonyManager.getCallState(subId);
+            }
             mTelephonyManager.registerTelephonyCallback(
                     mContext.getMainExecutor(), mTelephonyCallback);
 
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..bf95475
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.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.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.data.ApnSetting
+import androidx.lifecycle.LifecycleOwner
+import androidx.preference.PreferenceScreen
+import com.android.settings.network.mobileDataEnabledFlow
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.flow.combine
+
+/**
+ * Preference controller for "MMS messages"
+ */
+class MmsMessagePreferenceController @JvmOverloads constructor(
+    context: Context,
+    key: String,
+    private val getDefaultDataSubId: () -> Int = {
+        SubscriptionManager.getDefaultDataSubscriptionId()
+    },
+) : TelephonyTogglePreferenceController(context, key) {
+
+    private lateinit var telephonyManager: TelephonyManager
+
+    private var preferenceScreen: PreferenceScreen? = null
+
+    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) &&
+            !isFallbackDataEnabled()
+        ) AVAILABLE else CONDITIONALLY_UNAVAILABLE
+
+    private fun isFallbackDataEnabled(): Boolean {
+        val defaultDataSubId = getDefaultDataSubId()
+        return defaultDataSubId != mSubId &&
+            telephonyManager.createForSubscriptionId(defaultDataSubId).isDataEnabled &&
+            telephonyManager.isMobileDataPolicyEnabled(
+                TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH
+            )
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preferenceScreen = screen
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        combine(
+            mContext.mobileDataEnabledFlow(mSubId),
+            mContext.subscriptionsChangedFlow(), // Capture isMobileDataPolicyEnabled() changes
+        ) { _, _ -> }.collectLatestWithLifecycle(viewLifecycleOwner) {
+            preferenceScreen?.let { super.displayPreference(it) }
+        }
+    }
+
+    override fun isChecked(): Boolean = telephonyManager.isMobileDataPolicyEnabled(
+        TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED
+    )
+
+    override fun 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..bec7ee7 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -31,9 +31,10 @@
 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.flags.Flags;
 import com.android.settings.network.MobileNetworkRepository;
 import com.android.settings.wifi.WifiPickerTrackerHelper;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -51,7 +52,7 @@
 
     private static final String DIALOG_TAG = "MobileDataDialog";
 
-    private SwitchPreference mPreference;
+    private TwoStatePreference mPreference;
     private TelephonyManager mTelephonyManager;
     private SubscriptionManager mSubscriptionManager;
     private FragmentManager mFragmentManager;
@@ -83,6 +84,9 @@
 
     @Override
     public int getAvailabilityStatus(int subId) {
+        if (Flags.isDualSimOnboardingEnabled()) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
         return subId != SubscriptionManager.INVALID_SUBSCRIPTION_ID
                 ? AVAILABLE
                 : AVAILABLE_UNSEARCHABLE;
@@ -143,7 +147,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/MobileNetworkEidPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceController.kt
new file mode 100644
index 0000000..907bab1
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceController.kt
@@ -0,0 +1,220 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.graphics.Bitmap
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.euicc.EuiccManager
+import android.text.TextUtils
+import android.util.Log
+import android.view.WindowManager
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.annotation.VisibleForTesting
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.deviceinfo.PhoneNumberUtil
+import com.android.settings.flags.Flags
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.android.settingslib.CustomDialogPreferenceCompat
+import com.android.settingslib.Utils
+import com.android.settingslib.qrcode.QrCodeGenerator
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Preference controller for "EID"
+ */
+open class MobileNetworkEidPreferenceController(context: Context, key: String) :
+    TelephonyBasePreferenceController(context, key) {
+
+    private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
+    private lateinit var preference: CustomDialogPreferenceCompat
+    private lateinit var fragment: Fragment
+    private var coroutineScope: CoroutineScope? = null
+    private var title = String()
+    private var eid = String()
+
+    fun init(fragment: Fragment, subId: Int) {
+        this.fragment = fragment
+        lazyViewModel = fragment.viewModels()
+        mSubId = subId
+    }
+
+    override fun getAvailabilityStatus(subId: Int): Int = when {
+        !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
+        SubscriptionManager.isValidSubscriptionId(subId)
+                && eid.isNotEmpty()
+                && mContext.userManager.isAdminUser -> AVAILABLE
+
+        else -> CONDITIONALLY_UNAVAILABLE
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        preference.isVisible = false
+
+        val viewModel by lazyViewModel
+        coroutineScope = viewLifecycleOwner.lifecycleScope
+        viewModel.subscriptionInfoListFlow
+            .map { subscriptionInfoList ->
+                subscriptionInfoList
+                    .firstOrNull { subInfo ->
+                        subInfo.subscriptionId == mSubId && subInfo.isEmbedded
+                    }
+            }
+            .collectLatestWithLifecycle(viewLifecycleOwner) { subscriptionInfo ->
+                subscriptionInfo?.let {
+                    coroutineScope?.launch {
+                        refreshData(it)
+                    }
+                }
+            }
+    }
+
+    @VisibleForTesting
+    suspend fun refreshData(subscriptionInfo: SubscriptionInfo) {
+        withContext(Dispatchers.Default) {
+            eid = getEid(subscriptionInfo)
+            if (eid.isEmpty()) {
+                Log.d(TAG, "EID is empty.")
+            }
+            title = getTitle()
+        }
+        refreshUi()
+    }
+
+    fun refreshUi() {
+        preference.title = title
+        preference.dialogTitle = title
+        preference.summary = eid
+        preference.isVisible = eid.isNotEmpty()
+    }
+
+    override fun handlePreferenceTreeClick(preference: Preference): Boolean {
+        if (preference.key != preferenceKey) return false
+        this.preference.setOnShowListener {
+            coroutineScope?.launch { updateDialog() }
+        }
+        return true
+    }
+
+    private fun getTitle(): String {
+        return mContext.getString(R.string.status_eid)
+    }
+
+    private suspend fun updateDialog() {
+        val dialog = preference.dialog ?: return
+        dialog.window?.setFlags(
+            WindowManager.LayoutParams.FLAG_SECURE,
+            WindowManager.LayoutParams.FLAG_SECURE
+        )
+        dialog.setCanceledOnTouchOutside(false)
+        val textView = dialog.requireViewById<TextView>(R.id.esim_id_value)
+        textView.text = PhoneNumberUtil.expandByTts(eid)
+
+        val qrCodeView = dialog.requireViewById<ImageView>(R.id.esim_id_qrcode)
+
+        qrCodeView.setImageBitmap(getEidQrCode(eid))
+    }
+
+    protected fun getTelephonyManager(context: Context): TelephonyManager? {
+        return context.getSystemService(TelephonyManager::class.java)
+    }
+
+    protected fun getEuiccManager(context: Context): EuiccManager? {
+        return context.getSystemService(EuiccManager::class.java)
+    }
+
+    @VisibleForTesting
+    fun getEid(subscriptionInfo: SubscriptionInfo): String {
+        val euiccMgr = getEuiccManager(mContext)
+        val telMgr = getTelephonyManager(mContext)
+        if(euiccMgr==null || telMgr==null) return String()
+
+        var eid = getEidPerSlot(telMgr, euiccMgr, subscriptionInfo)
+        return eid.ifEmpty {
+            getDefaultEid(euiccMgr)
+        }
+    }
+
+    private fun getEidPerSlot(
+        telMgr: TelephonyManager,
+        euiccMgr: EuiccManager,
+        subscriptionInfo: SubscriptionInfo
+    ): String {
+        val uiccCardInfoList = telMgr.uiccCardsInfo
+        val cardId = subscriptionInfo.cardId
+
+        /**
+         * Find EID from first slot which contains an eSIM and with card ID within
+         * the eSIM card ID provided by SubscriptionManager.
+         */
+        return uiccCardInfoList.firstOrNull { cardInfo -> cardInfo.isEuicc && cardInfo.cardId == cardId }
+            ?.let { cardInfo ->
+                var eid = cardInfo.getEid()
+                if (TextUtils.isEmpty(eid)) {
+                    eid = euiccMgr.createForCardId(cardInfo.cardId).getEid()
+                }
+                eid
+            } ?: String()
+    }
+
+    private fun getDefaultEid(euiccMgr: EuiccManager?): String {
+        return if (euiccMgr == null || !euiccMgr.isEnabled) {
+            String()
+        } else euiccMgr.getEid() ?: String()
+    }
+
+    companion object {
+        private const val TAG = "MobileNetworkEidPreferenceController"
+        private const val QR_CODE_SIZE = 600
+
+        /**
+         * Gets the QR code for EID
+         * @param eid is the EID string
+         * @return a Bitmap of QR code
+         */
+        private suspend fun getEidQrCode(eid: String): Bitmap? = withContext(Dispatchers.Default) {
+            try {
+                Log.d(TAG, "updateDialog. getEidQrCode $eid")
+                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/network/telephony/MobileNetworkImeiPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt
new file mode 100644
index 0000000..8ec313b
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceController.kt
@@ -0,0 +1,145 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.os.UserManager
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.util.Log
+import androidx.annotation.VisibleForTesting
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.deviceinfo.imei.ImeiInfoDialogFragment
+import com.android.settings.flags.Flags
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.android.settingslib.Utils
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Preference controller for "IMEI"
+ */
+class MobileNetworkImeiPreferenceController(context: Context, key: String) :
+    TelephonyBasePreferenceController(context, key) {
+
+    private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
+    private lateinit var preference: Preference
+    private lateinit var fragment: Fragment
+    private lateinit var mTelephonyManager: TelephonyManager
+    private var simSlot = -1
+    private var imei = String()
+    private var title = String()
+
+    fun init(fragment: Fragment, subId: Int) {
+        this.fragment = fragment
+        lazyViewModel = fragment.viewModels()
+        mSubId = subId
+        mTelephonyManager = mContext.getSystemService(TelephonyManager::class.java)
+            ?.createForSubscriptionId(mSubId)!!
+    }
+
+    override fun getAvailabilityStatus(subId: Int): Int = when {
+        !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
+        SubscriptionManager.isValidSubscriptionId(subId)
+                && SubscriptionUtil.isSimHardwareVisible(mContext)
+                && mContext.userManager.isAdminUser
+                && !Utils.isWifiOnly(mContext) -> AVAILABLE
+        else -> CONDITIONALLY_UNAVAILABLE
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        val viewModel by lazyViewModel
+        val coroutineScope = viewLifecycleOwner.lifecycleScope
+
+        viewModel.subscriptionInfoListFlow
+                .collectLatestWithLifecycle(viewLifecycleOwner) { subscriptionInfoList ->
+                    subscriptionInfoList
+                            .firstOrNull { subInfo -> subInfo.subscriptionId == mSubId }
+                            ?.let {
+                                coroutineScope.launch {
+                                    refreshData(it)
+                                }
+                            }
+                }
+    }
+
+    @VisibleForTesting
+    suspend fun refreshData(subscription:SubscriptionInfo){
+        withContext(Dispatchers.Default) {
+            title = getTitle()
+            imei = getImei()
+            simSlot = subscription.simSlotIndex
+        }
+        refreshUi()
+    }
+
+    private fun refreshUi(){
+        preference.title = title
+        preference.summary = imei
+        preference.isVisible = true
+    }
+
+    override fun handlePreferenceTreeClick(preference: Preference): Boolean {
+        if (preference.key != preferenceKey) return false
+
+        Log.d(TAG, "handlePreferenceTreeClick:")
+        ImeiInfoDialogFragment.show(fragment, simSlot, preference.title.toString())
+        return true
+    }
+    private fun getImei(): String {
+        val phoneType = getPhoneType()
+        return if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) mTelephonyManager.meid?: String()
+                else mTelephonyManager.imei?: String()
+    }
+    private fun getTitleForGsmPhone(): String {
+        return mContext.getString(R.string.status_imei)
+    }
+
+    private fun getTitleForCdmaPhone(): String {
+        return mContext.getString(R.string.status_meid_number)
+    }
+
+    private fun getTitle(): String {
+        val phoneType = getPhoneType()
+        return if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) getTitleForCdmaPhone()
+                else getTitleForGsmPhone()
+    }
+
+    fun getPhoneType(): Int {
+        return mTelephonyManager.currentPhoneType
+    }
+
+    companion object {
+        private const val TAG = "MobileNetworkImeiPreferenceController"
+    }
+}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
new file mode 100644
index 0000000..65a4b7e
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceController.kt
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import androidx.annotation.VisibleForTesting
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.lifecycleScope
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Preference controller for "Phone number"
+ */
+class MobileNetworkPhoneNumberPreferenceController(context: Context, key: String) :
+    TelephonyBasePreferenceController(context, key) {
+
+    private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
+    private lateinit var preference: Preference
+
+    private var phoneNumber = String()
+
+    fun init(fragment: Fragment, subId: Int) {
+        lazyViewModel = fragment.viewModels()
+        mSubId = subId
+    }
+
+    override fun getAvailabilityStatus(subId: Int): Int = when {
+        !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
+        SubscriptionManager.isValidSubscriptionId(subId)
+                && SubscriptionUtil.isSimHardwareVisible(mContext) -> AVAILABLE
+        else -> CONDITIONALLY_UNAVAILABLE
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        val viewModel by lazyViewModel
+        val coroutineScope = viewLifecycleOwner.lifecycleScope
+
+        viewModel.subscriptionInfoListFlow
+            .map { subscriptionInfoList ->
+                subscriptionInfoList
+                    .firstOrNull { subInfo -> subInfo.subscriptionId == mSubId }
+            }
+            .flowOn(Dispatchers.Default)
+            .collectLatestWithLifecycle(viewLifecycleOwner) {
+                it?.let {
+                    coroutineScope.launch {
+                        refreshData(it)
+                    }
+                }
+            }
+    }
+
+    @VisibleForTesting
+    suspend fun refreshData(subscriptionInfo: SubscriptionInfo){
+        withContext(Dispatchers.Default) {
+            phoneNumber = getFormattedPhoneNumber(subscriptionInfo)
+        }
+        refreshUi()
+    }
+
+    private fun refreshUi(){
+        preference.summary = phoneNumber
+    }
+
+    private fun getFormattedPhoneNumber(subscriptionInfo: SubscriptionInfo?): String {
+        val phoneNumber = SubscriptionUtil.getBidiFormattedPhoneNumber(
+            mContext,
+            subscriptionInfo
+        )
+        return phoneNumber
+            ?.let { return it.ifEmpty { getStringUnknown() } }
+            ?: getStringUnknown()
+    }
+
+    private fun getStringUnknown(): String {
+        return mContext.getString(R.string.device_info_default)
+    }
+}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 5b57ede..2f2b20e 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;
@@ -83,6 +85,7 @@
     private static final String KEY_SMS_PREF = "sms_preference";
     private static final String KEY_MOBILE_DATA_PREF = "mobile_data_enable";
     private static final String KEY_CONVERT_TO_ESIM_PREF = "convert_to_esim";
+    private static final String KEY_EID_KEY = "network_mode_eid_info";
 
     //String keys for preference lookup
     private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
@@ -169,9 +172,12 @@
                             String.valueOf(mSubId));
         });
 
+        MobileNetworkEidPreferenceController eid = new MobileNetworkEidPreferenceController(context,
+                KEY_EID_KEY);
+        eid.init(this, mSubId);
+
         return Arrays.asList(
-                new DataUsageSummaryPreferenceController(getActivity(), getSettingsLifecycle(),
-                        this, mSubId),
+                new DataUsageSummaryPreferenceController(context, mSubId),
                 new RoamingPreferenceController(context, KEY_ROAMING_PREF, getSettingsLifecycle(),
                         this, mSubId),
                 new CallsDefaultSubscriptionController(context, KEY_CALLS_PREF,
@@ -181,7 +187,7 @@
                 new MobileDataPreferenceController(context, KEY_MOBILE_DATA_PREF,
                         getSettingsLifecycle(), this, mSubId),
                 new ConvertToEsimPreferenceController(context, KEY_CONVERT_TO_ESIM_PREF,
-                        getSettingsLifecycle(), this, mSubId));
+                        getSettingsLifecycle(), this, mSubId), eid);
     }
 
     @Override
@@ -228,22 +234,20 @@
 
         }
 
-        final DataUsageSummaryPreferenceController dataUsageSummaryPreferenceController =
-                use(DataUsageSummaryPreferenceController.class);
-        if (dataUsageSummaryPreferenceController != null) {
-            dataUsageSummaryPreferenceController.init(mSubId);
-        }
         use(MobileNetworkSwitchController.class).init(mSubId);
         use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
         use(BillingCyclePreferenceController.class).init(mSubId);
         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);
 
+        use(MobileNetworkSpnPreferenceController.class).init(this, mSubId);
+        use(MobileNetworkPhoneNumberPreferenceController.class).init(this, mSubId);
+        use(MobileNetworkImeiPreferenceController.class).init(this, mSubId);
+
         final MobileDataPreferenceController mobileDataPreferenceController =
                 use(MobileDataPreferenceController.class);
         if (mobileDataPreferenceController != null) {
@@ -260,23 +264,30 @@
             roamingPreferenceController.init(getFragmentManager(), mSubId,
                     mMobileNetworkInfoEntity);
         }
+        final SatelliteSettingPreferenceController satelliteSettingPreferenceController = use(
+                SatelliteSettingPreferenceController.class);
+        if (satelliteSettingPreferenceController != null) {
+            satelliteSettingPreferenceController.init(mSubId);
+        }
         use(ApnPreferenceController.class).init(mSubId);
         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);
 
-        final WifiCallingPreferenceController wifiCallingPreferenceController =
-                use(WifiCallingPreferenceController.class).init(mSubId);
+        final CallingPreferenceCategoryController callingPreferenceCategoryController =
+                use(CallingPreferenceCategoryController.class);
+        use(WifiCallingPreferenceController.class)
+                .init(mSubId, callingPreferenceCategoryController);
 
         final OpenNetworkSelectPagePreferenceController openNetworkSelectPagePreferenceController =
                 use(OpenNetworkSelectPagePreferenceController.class).init(mSubId);
         final AutoSelectPreferenceController autoSelectPreferenceController =
                 use(AutoSelectPreferenceController.class)
-                        .init(getLifecycle(), mSubId)
+                        .init(mSubId)
                         .addListener(openNetworkSelectPagePreferenceController);
         use(NetworkPreferenceCategoryController.class).init(mSubId)
                 .setChildren(Arrays.asList(autoSelectPreferenceController));
@@ -286,9 +297,8 @@
         mCdmaSubscriptionPreferenceController.init(getPreferenceManager(), mSubId);
 
         final VideoCallingPreferenceController videoCallingPreferenceController =
-                use(VideoCallingPreferenceController.class).init(mSubId);
-        use(CallingPreferenceCategoryController.class).setChildren(
-                Arrays.asList(wifiCallingPreferenceController, videoCallingPreferenceController));
+                use(VideoCallingPreferenceController.class)
+                        .init(mSubId, callingPreferenceCategoryController);
         use(Enhanced4gLtePreferenceController.class).init(mSubId)
                 .addListener(videoCallingPreferenceController);
         use(Enhanced4gCallingPreferenceController.class).init(mSubId)
@@ -333,7 +343,7 @@
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
-        use(DataUsagePreferenceController.class).whenViewCreated(getViewLifecycleOwner());
+        collectAirplaneModeAndFinishIfOn(this);
     }
 
     @Override
@@ -371,11 +381,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/MobileNetworkSpnPreferenceController.kt b/src/com/android/settings/network/telephony/MobileNetworkSpnPreferenceController.kt
new file mode 100644
index 0000000..ac055b0
--- /dev/null
+++ b/src/com/android/settings/network/telephony/MobileNetworkSpnPreferenceController.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import androidx.annotation.VisibleForTesting
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.LifecycleOwner
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.flags.Flags
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+
+/**
+ * Preference controller for "Mobile network" and showing the SPN.
+ */
+class MobileNetworkSpnPreferenceController(context: Context, key: String) :
+    TelephonyBasePreferenceController(context, key) {
+
+    private lateinit var lazyViewModel: Lazy<SubscriptionInfoListViewModel>
+    private lateinit var preference: Preference
+
+    private var spn = String()
+
+    fun init(fragment: Fragment, subId: Int) {
+        lazyViewModel = fragment.viewModels()
+        mSubId = subId
+    }
+
+    override fun getAvailabilityStatus(subId: Int): Int = when {
+        !Flags.isDualSimOnboardingEnabled() -> CONDITIONALLY_UNAVAILABLE
+        SubscriptionManager.isValidSubscriptionId(subId)-> AVAILABLE
+        else -> CONDITIONALLY_UNAVAILABLE
+    }
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        val viewModel by lazyViewModel
+
+        viewModel.subscriptionInfoListFlow
+                .collectLatestWithLifecycle(viewLifecycleOwner) { subscriptionInfoList ->
+                    refreshData(subscriptionInfoList)
+                }
+    }
+
+    @VisibleForTesting
+    fun refreshData(subscriptionInfoList: List<SubscriptionInfo>){
+        spn = subscriptionInfoList
+            .firstOrNull { subInfo -> subInfo.subscriptionId == mSubId }
+            ?.let { info -> info.carrierName.toString() }
+            ?: String()
+
+        refreshUi()
+    }
+
+    private fun refreshUi(){
+        preference.summary = spn
+    }
+}
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/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 38f6596..47515d8 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -31,7 +31,6 @@
 import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;
 import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA;
 
-import android.annotation.Nullable;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
@@ -69,6 +68,7 @@
 import android.util.Log;
 import android.view.Gravity;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.internal.util.ArrayUtils;
@@ -357,8 +357,9 @@
         final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
         final SubscriptionManager subscriptionManager = context.getSystemService(
-                SubscriptionManager.class);
-        telephonyManager.setDataEnabled(enabled);
+                SubscriptionManager.class).createForAllUserProfiles();
+        telephonyManager.setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
+                enabled);
 
         if (disableOtherSubscriptions) {
             final List<SubscriptionInfo> subInfoList =
@@ -367,8 +368,10 @@
                 for (SubscriptionInfo subInfo : subInfoList) {
                     // We never disable mobile data for opportunistic subscriptions.
                     if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) {
-                        context.getSystemService(TelephonyManager.class).createForSubscriptionId(
-                                subInfo.getSubscriptionId()).setDataEnabled(false);
+                        context.getSystemService(TelephonyManager.class)
+                                .createForSubscriptionId(subInfo.getSubscriptionId())
+                                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER,
+                                        false);
                     }
                 }
             }
@@ -666,39 +669,26 @@
      * 2. Similar design which aligned with operator name displayed in status bar
      */
     public static CharSequence getCurrentCarrierNameForDisplay(Context context, int subId) {
-        final SubscriptionManager sm = context.getSystemService(SubscriptionManager.class);
-        if (sm != null) {
-            final SubscriptionInfo subInfo = getSubscriptionInfo(sm, subId);
-            if (subInfo != null) {
-                return subInfo.getCarrierName();
-            }
+        final SubscriptionInfo subInfo = getSubscriptionInfo(context, subId);
+        if (subInfo != null) {
+            return subInfo.getCarrierName();
         }
         return getOperatorNameFromTelephonyManager(context);
     }
 
     public static CharSequence getCurrentCarrierNameForDisplay(Context context) {
-        final SubscriptionManager sm = context.getSystemService(SubscriptionManager.class);
-        if (sm != null) {
-            final int subId = sm.getDefaultSubscriptionId();
-            final SubscriptionInfo subInfo = getSubscriptionInfo(sm, subId);
-            if (subInfo != null) {
-                return subInfo.getCarrierName();
-            }
+        final SubscriptionInfo subInfo = getSubscriptionInfo(context,
+                SubscriptionManager.getDefaultSubscriptionId());
+        if (subInfo != null) {
+            return subInfo.getCarrierName();
         }
         return getOperatorNameFromTelephonyManager(context);
     }
 
-    private static SubscriptionInfo getSubscriptionInfo(SubscriptionManager subManager, int subId) {
-        List<SubscriptionInfo> subInfos = subManager.getActiveSubscriptionInfoList();
-        if (subInfos == null) {
-            return null;
-        }
-        for (SubscriptionInfo subInfo : subInfos) {
-            if (subInfo.getSubscriptionId() == subId) {
-                return subInfo;
-            }
-        }
-        return null;
+    private static @Nullable SubscriptionInfo getSubscriptionInfo(Context context, int subId) {
+        SubscriptionManager sm = context.getSystemService(SubscriptionManager.class);
+        if (sm == null) return null;
+        return sm.createForAllUserProfiles().getActiveSubscriptionInfo(subId);
     }
 
     private static String getOperatorNameFromTelephonyManager(Context context) {
@@ -712,7 +702,7 @@
 
     private static int[] getActiveSubscriptionIdList(Context context) {
         final SubscriptionManager subscriptionManager = context.getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         final List<SubscriptionInfo> subInfoList =
                 subscriptionManager.getActiveSubscriptionInfoList();
         if (subInfoList == null) {
diff --git a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java b/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
deleted file mode 100644
index 7404aa4..0000000
--- a/src/com/android/settings/network/telephony/NetworkOperatorPreference.java
+++ /dev/null
@@ -1,265 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static android.telephony.SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
-
-import android.content.Context;
-import android.telephony.AccessNetworkConstants.AccessNetworkType;
-import android.telephony.CellIdentity;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellIdentityLte;
-import android.telephony.CellIdentityNr;
-import android.telephony.CellIdentityTdscdma;
-import android.telephony.CellIdentityWcdma;
-import android.telephony.CellInfo;
-import android.telephony.CellInfoCdma;
-import android.telephony.CellInfoGsm;
-import android.telephony.CellInfoLte;
-import android.telephony.CellInfoNr;
-import android.telephony.CellInfoTdscdma;
-import android.telephony.CellInfoWcdma;
-import android.telephony.CellSignalStrength;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.internal.telephony.OperatorInfo;
-import com.android.settings.R;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * A Preference represents a network operator in the NetworkSelectSetting fragment.
- */
-public class NetworkOperatorPreference extends Preference {
-
-    private static final String TAG = "NetworkOperatorPref";
-    private static final boolean DBG = false;
-
-    private static final int LEVEL_NONE = -1;
-
-    private CellInfo mCellInfo;
-    private CellIdentity mCellId;
-    private List<String> mForbiddenPlmns;
-    private int mLevel = LEVEL_NONE;
-    private boolean mShow4GForLTE;
-    private boolean mUseNewApi;
-
-    public NetworkOperatorPreference(Context context, CellInfo cellinfo,
-            List<String> forbiddenPlmns, boolean show4GForLTE) {
-        this(context, forbiddenPlmns, show4GForLTE);
-        updateCell(cellinfo);
-    }
-
-    public NetworkOperatorPreference(Context context, CellIdentity connectedCellId,
-            List<String> forbiddenPlmns, boolean show4GForLTE) {
-        this(context, forbiddenPlmns, show4GForLTE);
-        updateCell(null, connectedCellId);
-    }
-
-    private NetworkOperatorPreference(
-            Context context, List<String> forbiddenPlmns, boolean show4GForLTE) {
-        super(context);
-        mForbiddenPlmns = forbiddenPlmns;
-        mShow4GForLTE = show4GForLTE;
-        mUseNewApi = context.getResources().getBoolean(
-                com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
-    }
-
-    /**
-     * Change cell information
-     */
-    public void updateCell(CellInfo cellinfo) {
-        updateCell(cellinfo, CellInfoUtil.getCellIdentity(cellinfo));
-    }
-
-    @VisibleForTesting
-    protected void updateCell(CellInfo cellinfo, CellIdentity cellId) {
-        mCellInfo = cellinfo;
-        mCellId = cellId;
-        refresh();
-    }
-
-    /**
-     * Compare cell within preference
-     */
-    public boolean isSameCell(CellInfo cellinfo) {
-        if (cellinfo == null) {
-            return false;
-        }
-        return mCellId.equals(CellInfoUtil.getCellIdentity(cellinfo));
-    }
-
-    /**
-     * Return true when this preference is for forbidden network
-     */
-    public boolean isForbiddenNetwork() {
-        return ((mForbiddenPlmns != null) && mForbiddenPlmns.contains(getOperatorNumeric()));
-    }
-
-    /**
-     * Refresh the NetworkOperatorPreference by updating the title and the icon.
-     */
-    public void refresh() {
-        String networkTitle = getOperatorName();
-
-        if (isForbiddenNetwork()) {
-            if (DBG) Log.d(TAG, "refresh forbidden network: " + networkTitle);
-            networkTitle += " "
-                    + getContext().getResources().getString(R.string.forbidden_network);
-        } else {
-            if (DBG) Log.d(TAG, "refresh the network: " + networkTitle);
-        }
-        setTitle(Objects.toString(networkTitle, ""));
-
-        if (mCellInfo == null) {
-            return;
-        }
-
-        final CellSignalStrength signalStrength = getCellSignalStrength(mCellInfo);
-        final int level = signalStrength != null ? signalStrength.getLevel() : LEVEL_NONE;
-        if (DBG) Log.d(TAG, "refresh level: " + String.valueOf(level));
-        mLevel = level;
-        updateIcon(mLevel);
-    }
-
-    /**
-     * Update the icon according to the input signal strength level.
-     */
-    public void setIcon(int level) {
-        updateIcon(level);
-    }
-
-    /**
-     * Operator numeric of this cell
-     */
-    public String getOperatorNumeric() {
-        final CellIdentity cellId = mCellId;
-        if (cellId == null) {
-            return null;
-        }
-        if (cellId instanceof CellIdentityGsm) {
-            return ((CellIdentityGsm) cellId).getMobileNetworkOperator();
-        }
-        if (cellId instanceof CellIdentityWcdma) {
-            return ((CellIdentityWcdma) cellId).getMobileNetworkOperator();
-        }
-        if (cellId instanceof CellIdentityTdscdma) {
-            return ((CellIdentityTdscdma) cellId).getMobileNetworkOperator();
-        }
-        if (cellId instanceof CellIdentityLte) {
-            return ((CellIdentityLte) cellId).getMobileNetworkOperator();
-        }
-        if (cellId instanceof CellIdentityNr) {
-            final String mcc = ((CellIdentityNr) cellId).getMccString();
-            if (mcc == null) {
-                return null;
-            }
-            return mcc.concat(((CellIdentityNr) cellId).getMncString());
-        }
-        return null;
-    }
-
-    /**
-     * Operator name of this cell
-     */
-    public String getOperatorName() {
-        return CellInfoUtil.getNetworkTitle(mCellId, getOperatorNumeric());
-    }
-
-    /**
-     * Operator info of this cell
-     */
-    public OperatorInfo getOperatorInfo() {
-        return new OperatorInfo(Objects.toString(mCellId.getOperatorAlphaLong(), ""),
-                Objects.toString(mCellId.getOperatorAlphaShort(), ""),
-                getOperatorNumeric(), getAccessNetworkTypeFromCellInfo(mCellInfo));
-    }
-
-    private int getIconIdForCell(CellInfo ci) {
-        if (ci instanceof CellInfoGsm) {
-            return R.drawable.signal_strength_g;
-        }
-        if (ci instanceof CellInfoCdma) {
-            return R.drawable.signal_strength_1x;
-        }
-        if ((ci instanceof CellInfoWcdma) || (ci instanceof CellInfoTdscdma)) {
-            return R.drawable.signal_strength_3g;
-        }
-        if (ci instanceof CellInfoLte) {
-            return mShow4GForLTE
-                    ? R.drawable.ic_signal_strength_4g : R.drawable.signal_strength_lte;
-        }
-        if (ci instanceof CellInfoNr) {
-            return R.drawable.signal_strength_5g;
-        }
-        return MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON;
-    }
-
-    private CellSignalStrength getCellSignalStrength(CellInfo ci) {
-        if (ci instanceof CellInfoGsm) {
-            return ((CellInfoGsm) ci).getCellSignalStrength();
-        }
-        if (ci instanceof CellInfoCdma) {
-            return ((CellInfoCdma) ci).getCellSignalStrength();
-        }
-        if (ci instanceof CellInfoWcdma) {
-            return ((CellInfoWcdma) ci).getCellSignalStrength();
-        }
-        if (ci instanceof CellInfoTdscdma) {
-            return ((CellInfoTdscdma) ci).getCellSignalStrength();
-        }
-        if (ci instanceof CellInfoLte) {
-            return ((CellInfoLte) ci).getCellSignalStrength();
-        }
-        if (ci instanceof CellInfoNr) {
-            return ((CellInfoNr) ci).getCellSignalStrength();
-        }
-        return null;
-    }
-
-    private int getAccessNetworkTypeFromCellInfo(CellInfo ci) {
-        if (ci instanceof CellInfoGsm) {
-            return AccessNetworkType.GERAN;
-        }
-        if (ci instanceof CellInfoCdma) {
-            return AccessNetworkType.CDMA2000;
-        }
-        if ((ci instanceof CellInfoWcdma) || (ci instanceof CellInfoTdscdma)) {
-            return AccessNetworkType.UTRAN;
-        }
-        if (ci instanceof CellInfoLte) {
-            return AccessNetworkType.EUTRAN;
-        }
-        if (ci instanceof CellInfoNr) {
-            return AccessNetworkType.NGRAN;
-        }
-        return AccessNetworkType.UNKNOWN;
-    }
-
-    private void updateIcon(int level) {
-        if (!mUseNewApi || level < 0 || level >= NUM_SIGNAL_STRENGTH_BINS) {
-            return;
-        }
-        final Context context = getContext();
-        setIcon(MobileNetworkUtils.getSignalStrengthIcon(context, level, NUM_SIGNAL_STRENGTH_BINS,
-                getIconIdForCell(mCellInfo), false, false));
-    }
-}
diff --git a/src/com/android/settings/network/telephony/NetworkOperatorPreference.kt b/src/com/android/settings/network/telephony/NetworkOperatorPreference.kt
new file mode 100644
index 0000000..c696ef1
--- /dev/null
+++ b/src/com/android/settings/network/telephony/NetworkOperatorPreference.kt
@@ -0,0 +1,150 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.AccessNetworkConstants.AccessNetworkType
+import android.telephony.CellIdentity
+import android.telephony.CellInfo
+import android.telephony.CellInfoCdma
+import android.telephony.CellInfoGsm
+import android.telephony.CellInfoLte
+import android.telephony.CellInfoNr
+import android.telephony.CellInfoTdscdma
+import android.telephony.CellInfoWcdma
+import android.telephony.SignalStrength
+import android.util.Log
+import androidx.annotation.OpenForTesting
+import androidx.preference.Preference
+import com.android.internal.telephony.OperatorInfo
+import com.android.settings.R
+import com.android.settings.network.telephony.CellInfoUtil.getNetworkTitle
+import com.android.settings.network.telephony.CellInfoUtil.getOperatorNumeric
+import java.util.Objects
+
+/**
+ * A Preference represents a network operator in the NetworkSelectSetting fragment.
+ */
+@OpenForTesting
+open class NetworkOperatorPreference(
+    context: Context,
+    private val forbiddenPlmns: List<String>,
+    private val show4GForLTE: Boolean,
+) : Preference(context) {
+    private var cellInfo: CellInfo? = null
+    private var cellId: CellIdentity? = null
+    private val useNewApi = context.resources.getBoolean(
+        com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI
+    )
+
+    /**
+     * Change cell information
+     */
+    @JvmOverloads
+    fun updateCell(cellInfo: CellInfo?, cellId: CellIdentity? = cellInfo?.cellIdentity) {
+        this.cellInfo = cellInfo
+        this.cellId = cellId
+        refresh()
+    }
+
+    /**
+     * Compare cell within preference
+     */
+    fun isSameCell(cellInfo: CellInfo): Boolean = cellInfo.cellIdentity == cellId
+
+    /**
+     * Return true when this preference is for forbidden network
+     */
+    fun isForbiddenNetwork(): Boolean = cellId?.getOperatorNumeric() in forbiddenPlmns
+
+    /**
+     * Refresh the NetworkOperatorPreference by updating the title and the icon.
+     */
+    fun refresh() {
+        var networkTitle = cellId?.getNetworkTitle() ?: return
+        if (isForbiddenNetwork()) {
+            if (DBG) Log.d(TAG, "refresh forbidden network: $networkTitle")
+            networkTitle += " ${context.getString(R.string.forbidden_network)}"
+        } else {
+            if (DBG) Log.d(TAG, "refresh the network: $networkTitle")
+        }
+        title = networkTitle
+        val level = (cellInfo ?: return).cellSignalStrength.level
+        if (DBG) Log.d(TAG, "refresh level: $level")
+        setIcon(level)
+    }
+
+    /**
+     * Update the icon according to the input signal strength level.
+     */
+    override fun setIcon(level: Int) {
+        if (!useNewApi || level < 0 || level >= SignalStrength.NUM_SIGNAL_STRENGTH_BINS) {
+            return
+        }
+        icon = MobileNetworkUtils.getSignalStrengthIcon(
+            context,
+            level,
+            SignalStrength.NUM_SIGNAL_STRENGTH_BINS,
+            getIconIdForCell(),
+            false,
+            false,
+        )
+    }
+
+    /**
+     * Operator name of this cell
+     */
+    fun getOperatorName(): String? = cellId?.getNetworkTitle()
+
+    /**
+     * Operator info of this cell
+     */
+    fun getOperatorInfo() = OperatorInfo(
+        Objects.toString(cellId?.operatorAlphaLong, ""),
+        Objects.toString(cellId?.operatorAlphaShort, ""),
+        cellId?.getOperatorNumeric(),
+        getAccessNetworkTypeFromCellInfo(),
+    )
+
+    private fun getIconIdForCell(): Int = when (cellInfo) {
+        is CellInfoGsm -> R.drawable.signal_strength_g
+        is CellInfoCdma -> R.drawable.signal_strength_1x
+        is CellInfoWcdma, is CellInfoTdscdma -> R.drawable.signal_strength_3g
+
+        is CellInfoLte -> {
+            if (show4GForLTE) R.drawable.ic_signal_strength_4g
+            else R.drawable.signal_strength_lte
+        }
+
+        is CellInfoNr -> R.drawable.signal_strength_5g
+        else -> MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON
+    }
+
+    private fun getAccessNetworkTypeFromCellInfo(): Int = when (cellInfo) {
+        is CellInfoGsm -> AccessNetworkType.GERAN
+        is CellInfoCdma -> AccessNetworkType.CDMA2000
+        is CellInfoWcdma, is CellInfoTdscdma -> AccessNetworkType.UTRAN
+        is CellInfoLte -> AccessNetworkType.EUTRAN
+        is CellInfoNr -> AccessNetworkType.NGRAN
+        else -> AccessNetworkType.UNKNOWN
+    }
+
+    companion object {
+        private const val TAG = "NetworkOperatorPref"
+        private const val DBG = false
+    }
+}
diff --git a/src/com/android/settings/network/telephony/NetworkProviderBackupCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderBackupCallingGroup.java
deleted file mode 100644
index 58dd18f..0000000
--- a/src/com/android/settings/network/telephony/NetworkProviderBackupCallingGroup.java
+++ /dev/null
@@ -1,289 +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.telephony;
-
-import static androidx.lifecycle.Lifecycle.Event;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.ims.ImsException;
-import android.telephony.ims.ImsManager;
-import android.telephony.ims.ImsMmTelManager;
-import android.util.ArrayMap;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceGroup;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.R;
-import com.android.settings.network.SubscriptionUtil;
-import com.android.settings.network.SubscriptionsChangeListener;
-import com.android.settings.network.ims.WifiCallingQueryImsState;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Preference controller for "Backup Calling"
- **/
-public class NetworkProviderBackupCallingGroup extends
-        TelephonyTogglePreferenceController implements LifecycleObserver,
-        SubscriptionsChangeListener.SubscriptionsChangeListenerClient  {
-    private static final String TAG = "NetworkProviderBackupCallingGroup";
-    private static final String KEY_PREFERENCE_BACKUPCALLING_GROUP =
-            "provider_model_backup_call_group";
-    private static final int PREF_START_ORDER = 10;
-
-    private String mPreferenceGroupKey;
-    private PreferenceGroup mPreferenceGroup;
-    private Map<Integer, SwitchPreference> mBackupCallingForSubPreferences;
-    private List<SubscriptionInfo> mSubInfoListForBackupCall;
-    private Map<Integer, TelephonyManager> mTelephonyManagerList = new HashMap<>();
-    private SubscriptionsChangeListener mSubscriptionsChangeListener;
-
-    public NetworkProviderBackupCallingGroup(Context context, Lifecycle lifecycle,
-            List<SubscriptionInfo> subscriptionList, String preferenceGroupKey) {
-        super(context, preferenceGroupKey);
-        mPreferenceGroupKey = preferenceGroupKey;
-        mSubInfoListForBackupCall = subscriptionList;
-        mBackupCallingForSubPreferences = new ArrayMap<>();
-        setSubscriptionInfoList(context);
-        lifecycle.addObserver(this);
-    }
-
-    @OnLifecycleEvent(Event.ON_RESUME)
-    public void onResume() {
-        if (mSubscriptionsChangeListener == null) {
-            mSubscriptionsChangeListener = new SubscriptionsChangeListener(mContext, this);
-        }
-        mSubscriptionsChangeListener.start();
-    }
-
-    @OnLifecycleEvent(Event.ON_PAUSE)
-    public void onPause() {
-        if (mSubscriptionsChangeListener != null) {
-            mSubscriptionsChangeListener.stop();
-        }
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        if (mSubInfoListForBackupCall == null
-                || getSubscriptionInfoFromList(mSubInfoListForBackupCall, subId) == null) {
-            return CONDITIONALLY_UNAVAILABLE;
-        }
-
-        return (mSubInfoListForBackupCall.size() > 1) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    private boolean setCrossSimCallingEnabled(int subId, boolean checked) {
-        ImsMmTelManager imsMmTelMgr = getImsMmTelManager(subId);
-        if (imsMmTelMgr == null) {
-            Log.d(TAG, "setCrossSimCallingEnabled(), ImsMmTelManager is null");
-            return false;
-        }
-
-        try {
-            imsMmTelMgr.setCrossSimCallingEnabled(checked);
-        } catch (ImsException exception) {
-            Log.w(TAG, "fail to get cross SIM calling configuration", exception);
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public boolean setChecked(boolean checked) {
-        return false;
-    }
-
-    private boolean isCrossSimCallingEnabled(int subId) {
-        ImsMmTelManager imsMmTelMgr = getImsMmTelManager(subId);
-        if (imsMmTelMgr == null) {
-            Log.d(TAG, "isCrossSimCallingEnabled(), ImsMmTelManager is null");
-            return false;
-        }
-        try {
-            return imsMmTelMgr.isCrossSimCallingEnabled();
-        } catch (ImsException exception) {
-            Log.w(TAG, "fail to get cross SIM calling configuration", exception);
-        }
-        return false;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return false;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        mPreferenceGroup = screen.findPreference(mPreferenceGroupKey);
-        update();
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        // Do nothing in this case since preference is invisible
-        if (preference == null) {
-            return;
-        }
-        update();
-    }
-
-    private void update() {
-        if (mPreferenceGroup == null) {
-            return;
-        }
-
-        setSubscriptionInfoList(mContext);
-        if (mSubInfoListForBackupCall == null || mSubInfoListForBackupCall.size() < 2) {
-            for (SwitchPreference pref : mBackupCallingForSubPreferences.values()) {
-                mPreferenceGroup.removePreference(pref);
-            }
-            mBackupCallingForSubPreferences.clear();
-            return;
-        }
-
-        Map<Integer, SwitchPreference> toRemovePreferences = mBackupCallingForSubPreferences;
-        mBackupCallingForSubPreferences = new ArrayMap<>();
-        setSubscriptionInfoForPreference(toRemovePreferences);
-    }
-
-    private void setSubscriptionInfoForPreference(
-            Map<Integer, SwitchPreference> toRemovePreferences) {
-        int order = PREF_START_ORDER;
-        for (SubscriptionInfo subInfo : mSubInfoListForBackupCall) {
-            final int subId = subInfo.getSubscriptionId();
-
-            SwitchPreference pref = toRemovePreferences.remove(subId);
-            if (pref == null) {
-                pref = new SwitchPreference(mPreferenceGroup.getContext());
-                mPreferenceGroup.addPreference(pref);
-            }
-
-            CharSequence displayName = (subInfo == null) ? ""
-                    : SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext);
-            pref.setTitle(displayName);
-            pref.setOrder(order++);
-            pref.setSummary(getSummary(displayName));
-            boolean enabled = isCrossSimCallingEnabled(subId);
-            pref.setChecked(enabled);
-            pref.setOnPreferenceClickListener(clickedPref -> {
-                setCrossSimCallingEnabled(subId, !enabled);
-                return true;
-            });
-            mBackupCallingForSubPreferences.put(subId, pref);
-        }
-    }
-
-    private String getSummary(CharSequence displayName) {
-        String summary = String.format(
-                getResourcesForSubId().getString(R.string.backup_calling_setting_summary),
-                displayName)
-                .toString();
-        return summary;
-    }
-
-    private void setSubscriptionInfoList(Context context) {
-        if (mSubInfoListForBackupCall != null) {
-            mSubInfoListForBackupCall.removeIf(info -> {
-                int subId = info.getSubscriptionId();
-                setTelephonyManagerForSubscriptionId(context, subId);
-                if (!hasBackupCallingFeature(subId) && mSubInfoListForBackupCall.contains(info)) {
-                    return true;
-                }
-                return false;
-            });
-        } else {
-            Log.d(TAG, "No active subscriptions");
-        }
-    }
-
-    private void setTelephonyManagerForSubscriptionId(Context context, int subId) {
-        TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
-                .createForSubscriptionId(subId);
-        mTelephonyManagerList.put(subId, telephonyManager);
-    }
-
-    @VisibleForTesting
-    protected boolean hasBackupCallingFeature(int subscriptionId) {
-        return isCrossSimEnabledByPlatform(mContext, subscriptionId);
-    }
-
-    /**
-     * Copied from {@link BackupCallingPreferenceController}
-     **/
-    @VisibleForTesting
-    protected boolean isCrossSimEnabledByPlatform(Context context, int subscriptionId) {
-        // TODO : Change into API which created for accessing
-        //        com.android.ims.ImsManager#isCrossSimEnabledByPlatform()
-        if ((new WifiCallingQueryImsState(context, subscriptionId)).isWifiCallingSupported()) {
-            PersistableBundle bundle = getCarrierConfigForSubId(subscriptionId);
-            return (bundle != null) && bundle.getBoolean(
-                    CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
-                    false /*default*/);
-        }
-        Log.d(TAG, "WifiCalling is not supported by framework. subId = " + subscriptionId);
-        return false;
-    }
-
-    private ImsMmTelManager getImsMmTelManager(int subId) {
-        if (!SubscriptionManager.isUsableSubscriptionId(subId)) {
-            return null;
-        }
-        ImsManager imsMgr = mContext.getSystemService(ImsManager.class);
-        return (imsMgr == null) ? null : imsMgr.getImsMmTelManager(subId);
-    }
-
-    private SubscriptionInfo getSubscriptionInfoFromList(
-            List<SubscriptionInfo> subInfoList, int subId) {
-        for (SubscriptionInfo subInfo : subInfoList) {
-            if ((subInfo != null) && (subInfo.getSubscriptionId() == subId)) {
-                return subInfo;
-            }
-        }
-        return null;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_PREFERENCE_BACKUPCALLING_GROUP;
-    }
-
-    @Override
-    public void onAirplaneModeChanged(boolean airplaneModeEnabled) {}
-
-    @Override
-    public void onSubscriptionsChanged() {
-        SubscriptionManager subscriptionManager =
-                mContext.getSystemService(SubscriptionManager.class);
-        mSubInfoListForBackupCall = SubscriptionUtil.getActiveSubscriptions(subscriptionManager);
-        update();
-    }
-}
diff --git a/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java
deleted file mode 100644
index 5c336ef..0000000
--- a/src/com/android/settings/network/telephony/NetworkProviderBackupCallingPreferenceController.java
+++ /dev/null
@@ -1,96 +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 android.content.Context;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.network.SubscriptionUtil;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-
-import java.util.List;
-
-/**
- * Preference controller for "Backup Calling" summary list
- */
-public class NetworkProviderBackupCallingPreferenceController extends
-        BasePreferenceController implements LifecycleObserver {
-
-    private static final String TAG = "NetProvBackupCallingCtrl";
-    private static final String KEY_PREFERENCE_CATEGORY = "provider_model_backup_calling_category";
-
-    private PreferenceCategory mPreferenceCategory;
-    private PreferenceScreen mPreferenceScreen;
-    private NetworkProviderBackupCallingGroup mNetworkProviderBackupCallingGroup;
-    private List<SubscriptionInfo> mSubscriptionList;
-
-    /**
-     * Preference controller for "Backup Calling" summary list
-     */
-    public NetworkProviderBackupCallingPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    protected NetworkProviderBackupCallingGroup createBackupCallingControllerForSub(
-            Lifecycle lifecycle, List<SubscriptionInfo> subscriptionList) {
-        return new NetworkProviderBackupCallingGroup(mContext, lifecycle, subscriptionList,
-                KEY_PREFERENCE_CATEGORY);
-    }
-
-    /**
-     * Initialize the binding with Lifecycle
-     *
-     * @param lifecycle Lifecycle of UI which owns this Preference
-     */
-    public void init(Lifecycle lifecycle) {
-        mSubscriptionList = getActiveSubscriptionList();
-        mNetworkProviderBackupCallingGroup = createBackupCallingControllerForSub(lifecycle,
-                mSubscriptionList);
-    }
-
-    private List<SubscriptionInfo> getActiveSubscriptionList() {
-        SubscriptionManager subscriptionManager =
-                mContext.getSystemService(SubscriptionManager.class);
-        return SubscriptionUtil.getActiveSubscriptions(subscriptionManager);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        if (mNetworkProviderBackupCallingGroup == null
-                || mSubscriptionList == null
-                || mSubscriptionList.size() < 2) {
-            return CONDITIONALLY_UNAVAILABLE;
-        } else {
-            return AVAILABLE;
-        }
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreferenceScreen = screen;
-        mPreferenceCategory = screen.findPreference(KEY_PREFERENCE_CATEGORY);
-        mPreferenceCategory.setVisible(isAvailable());
-        mNetworkProviderBackupCallingGroup.displayPreference(screen);
-    }
-}
diff --git a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java
index ebfb283..c5879ee 100644
--- a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java
+++ b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java
@@ -79,7 +79,8 @@
             String preferenceGroupKey) {
         super(context);
         mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
-        mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
+        mSubscriptionManager = context.getSystemService(SubscriptionManager.class)
+                .createForAllUserProfiles();
         mPreferenceGroupKey = preferenceGroupKey;
         mWifiCallingForSubPreferences = new ArrayMap<>();
         setSubscriptionInfoList(context);
@@ -240,8 +241,8 @@
                 return true;
             });
 
-            pref.setEnabled(getTelephonyManagerForSubscriptionId(subId).getCallState()
-                    == TelephonyManager.CALL_STATE_IDLE);
+            pref.setEnabled(getTelephonyManagerForSubscriptionId(subId)
+                    .getCallStateForSubscription() == TelephonyManager.CALL_STATE_IDLE);
             pref.setOrder(order++);
 
             int resId = com.android.internal.R.string.wifi_calling_off_summary;
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/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index f20fe1f..461930b 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -34,14 +34,17 @@
 import android.telephony.SignalStrength;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
+import android.telephony.satellite.SatelliteManager;
 import android.util.Log;
 import android.view.View;
 
 import androidx.annotation.Keep;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 
+import com.android.internal.annotations.Initializer;
 import com.android.internal.telephony.OperatorInfo;
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
@@ -55,6 +58,8 @@
 import java.util.Optional;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
 
 /**
  * "Choose network" settings UI for the Settings app.
@@ -81,6 +86,8 @@
     List<CellInfo> mCellInfoList;
     private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private TelephonyManager mTelephonyManager;
+    private SatelliteManager mSatelliteManager;
+    private CarrierConfigManager mCarrierConfigManager;
     private List<String> mForbiddenPlmns;
     private boolean mShow4GForLTE = false;
     private NetworkScanHelper mNetworkScanHelper;
@@ -92,6 +99,8 @@
     private long mWaitingForNumberOfScanResults;
     @VisibleForTesting
     boolean mIsAggregationEnabled = false;
+    private CarrierConfigManager.CarrierConfigChangeListener mCarrierConfigChangeListener;
+    private AtomicBoolean mShouldFilterOutSatellitePlmn = new AtomicBoolean();
 
     @Override
     public void onCreate(Bundle icicle) {
@@ -101,28 +110,41 @@
 
     @Keep
     @VisibleForTesting
+    @Initializer
     protected void onCreateInitialization() {
-        mUseNewApi = enableNewAutoSelectNetworkUI(getContext());
+        Context context = getContext();
+        mUseNewApi = enableNewAutoSelectNetworkUI(context);
         mSubId = getSubId();
 
         mPreferenceCategory = getPreferenceCategory(PREF_KEY_NETWORK_OPERATORS);
-        mStatusMessagePreference = new Preference(getContext());
+        mStatusMessagePreference = new Preference(context);
         mStatusMessagePreference.setSelectable(false);
         mSelectedPreference = null;
-        mTelephonyManager = getTelephonyManager(getContext(), mSubId);
+        mTelephonyManager = getTelephonyManager(context, mSubId);
+        mSatelliteManager = getSatelliteManager(context);
+        mCarrierConfigManager = getCarrierConfigManager(context);
         mNetworkScanHelper = new NetworkScanHelper(
                 mTelephonyManager, mCallback, mNetworkScanExecutor);
-        PersistableBundle bundle = getCarrierConfigManager(getContext())
-                .getConfigForSubId(mSubId);
-        if (bundle != null) {
-            mShow4GForLTE = bundle.getBoolean(
-                    CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
-        }
+        PersistableBundle bundle = mCarrierConfigManager.getConfigForSubId(mSubId,
+                CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL,
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL);
+        mShow4GForLTE = bundle.getBoolean(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL,
+                false);
+        mShouldFilterOutSatellitePlmn.set(bundle.getBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL,
+                true));
 
-        mMetricsFeatureProvider = getMetricsFeatureProvider(getContext());
-        mIsAggregationEnabled = enableAggregation(getContext());
+        mMetricsFeatureProvider = getMetricsFeatureProvider(context);
+        mIsAggregationEnabled = enableAggregation(context);
         Log.d(TAG, "init: mUseNewApi:" + mUseNewApi
                 + " ,mIsAggregationEnabled:" + mIsAggregationEnabled + " ,mSubId:" + mSubId);
+
+        mCarrierConfigChangeListener =
+                (slotIndex, subId, carrierId, specificCarrierId) -> handleCarrierConfigChanged(
+                        subId);
+        mCarrierConfigManager.registerCarrierConfigChangeListener(mNetworkScanExecutor,
+                mCarrierConfigChangeListener);
+
     }
 
     @Keep
@@ -161,7 +183,13 @@
     @Keep
     @VisibleForTesting
     protected MetricsFeatureProvider getMetricsFeatureProvider(Context context) {
-        return FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        return FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+    }
+
+    @Keep
+    @VisibleForTesting
+    protected SatelliteManager getSatelliteManager(Context context) {
+        return context.getSystemService(SatelliteManager.class);
     }
 
     @Keep
@@ -194,8 +222,9 @@
 
         final Activity activity = getActivity();
         if (activity != null) {
-            mProgressHeader = setPinnedHeaderView(R.layout.progress_header)
-                    .findViewById(R.id.progress_bar_animation);
+            mProgressHeader = setPinnedHeaderView(
+                    com.android.settingslib.widget.progressbar.R.layout.progress_header)
+                    .findViewById(com.android.settingslib.widget.progressbar.R.id.progress_bar_animation);
             setProgressBarVisible(false);
         }
         forceUpdateConnectedPreferenceCategory();
@@ -364,14 +393,12 @@
         }
         ArrayList<CellInfo> aggregatedList = new ArrayList<>();
         for (CellInfo cellInfo : cellInfoListInput) {
-            String plmn = CellInfoUtil.getNetworkTitle(cellInfo.getCellIdentity(),
-                    CellInfoUtil.getCellIdentityMccMnc(cellInfo.getCellIdentity()));
+            String plmn = CellInfoUtil.getNetworkTitle(cellInfo.getCellIdentity());
             Class className = cellInfo.getClass();
 
             Optional<CellInfo> itemInTheList = aggregatedList.stream().filter(
                     item -> {
-                        String itemPlmn = CellInfoUtil.getNetworkTitle(item.getCellIdentity(),
-                                CellInfoUtil.getCellIdentityMccMnc(item.getCellIdentity()));
+                        String itemPlmn = CellInfoUtil.getNetworkTitle(item.getCellIdentity());
                         return itemPlmn.equals(plmn) && item.getClass().equals(className);
                     })
                     .findFirst();
@@ -385,7 +412,43 @@
             }
             aggregatedList.add(cellInfo);
         }
-        return aggregatedList;
+
+        return filterOutSatellitePlmn(aggregatedList);
+    }
+
+    /* We do not want to expose carrier satellite plmns to the user when manually scan the
+       cellular network. Therefore, it is needed to filter out satellite plmns from current cell
+       info list  */
+    private List<CellInfo> filterOutSatellitePlmn(List<CellInfo> cellInfoList) {
+        List<String> aggregatedSatellitePlmn = getSatellitePlmnsForCarrierWrapper();
+        if (!mShouldFilterOutSatellitePlmn.get() || aggregatedSatellitePlmn.isEmpty()) {
+            return cellInfoList;
+        }
+        return cellInfoList.stream()
+                .filter(cellInfo -> !aggregatedSatellitePlmn.contains(
+                        CellInfoUtil.getOperatorNumeric(cellInfo.getCellIdentity())))
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * Serves as a wrapper method for {@link SatelliteManager#getSatellitePlmnsForCarrier(int)}.
+     * Since SatelliteManager is final, this wrapper enables mocking or spying of
+     * {@link SatelliteManager#getSatellitePlmnsForCarrier(int)} for unit testing purposes.
+     */
+    @VisibleForTesting
+    protected List<String> getSatellitePlmnsForCarrierWrapper() {
+        return mSatelliteManager.getSatellitePlmnsForCarrier(mSubId);
+    }
+
+    private void handleCarrierConfigChanged(int subId) {
+        PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId,
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL);
+        boolean shouldFilterSatellitePlmn = config.getBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL,
+                true);
+        if (shouldFilterSatellitePlmn != mShouldFilterOutSatellitePlmn.get()) {
+            mShouldFilterOutSatellitePlmn.set(shouldFilterSatellitePlmn);
+        }
     }
 
     private final NetworkScanHelper.NetworkScanCallback mCallback =
@@ -423,17 +486,14 @@
         mCellInfoList = doAggregation(results);
         Log.d(TAG, "CellInfoList: " + CellInfoUtil.cellInfoListToString(mCellInfoList));
         if (mCellInfoList != null && mCellInfoList.size() != 0) {
-            final NetworkOperatorPreference connectedPref =
-                    updateAllPreferenceCategory();
+            final NetworkOperatorPreference connectedPref = updateAllPreferenceCategory();
             if (connectedPref != null) {
                 // update selected preference instance into connected preference
                 if (mSelectedPreference != null) {
                     mSelectedPreference = connectedPref;
                 }
             } else if (!isPreferenceScreenEnabled()) {
-                if (connectedPref == null) {
-                    mSelectedPreference.setSummary(R.string.network_connecting);
-                }
+                mSelectedPreference.setSummary(R.string.network_connecting);
             }
             enablePreferenceScreen(true);
         } else if (isPreferenceScreenEnabled()) {
@@ -446,8 +506,13 @@
     @Keep
     @VisibleForTesting
     protected NetworkOperatorPreference createNetworkOperatorPreference(CellInfo cellInfo) {
-        return new NetworkOperatorPreference(getPrefContext(),
-                cellInfo, mForbiddenPlmns, mShow4GForLTE);
+        if (mForbiddenPlmns == null) {
+            updateForbiddenPlmns();
+        }
+        NetworkOperatorPreference preference =
+                new NetworkOperatorPreference(getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
+        preference.updateCell(cellInfo);
+        return preference;
     }
 
     /**
@@ -455,6 +520,7 @@
      *
      * @return preference which shows connected
      */
+    @Nullable
     private NetworkOperatorPreference updateAllPreferenceCategory() {
         int numberOfPreferences = mPreferenceCategory.getPreferenceCount();
 
@@ -548,7 +614,8 @@
                     continue;
                 }
                 final NetworkOperatorPreference pref = new NetworkOperatorPreference(
-                        getPrefContext(), cellIdentity, mForbiddenPlmns, mShow4GForLTE);
+                        getPrefContext(), mForbiddenPlmns, mShow4GForLTE);
+                pref.updateCell(null, cellIdentity);
                 if (pref.isForbiddenNetwork()) {
                     continue;
                 }
diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
index 5786dfc..ecf01cb9 100644
--- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
@@ -29,8 +29,9 @@
 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.flags.Flags;
 import com.android.internal.telephony.util.ArrayUtils;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -150,7 +151,7 @@
         if (preference == null) {
             return;
         }
-        final SwitchPreference switchPreference = (SwitchPreference) preference;
+        final TwoStatePreference switchPreference = (TwoStatePreference) preference;
         switchPreference.setEnabled(isUserControlAllowed());
     }
 
@@ -211,7 +212,16 @@
 
             // assign current call state so that it helps to show correct preference state even
             // before first onCallStateChanged() by initial registration.
-            mCallState = mLocalTelephonyManager.getCallState();
+            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+                try {
+                    mCallState = mLocalTelephonyManager.getCallState();
+                } catch (UnsupportedOperationException e) {
+                    // Device doesn't support FEATURE_TELEPHONY_CALLING
+                    mCallState = TelephonyManager.CALL_STATE_IDLE;
+                }
+            } else {
+                mCallState = mLocalTelephonyManager.getCallState();
+            }
             mLocalTelephonyManager.registerTelephonyCallback(
                     mContext.getMainExecutor(), mTelephonyCallback);
         }
diff --git a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
index 8823353..ebc5575 100644
--- a/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
+++ b/src/com/android/settings/network/telephony/RenameMobileNetworkDialogFragment.java
@@ -46,6 +46,7 @@
 
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.network.SubscriptionUtil;
 
 import com.google.common.collect.ImmutableMap;
@@ -131,7 +132,7 @@
                 LayoutInflater.class);
         final View view = layoutInflater.inflate(R.layout.dialog_mobile_network_rename, null);
         populateView(view);
-        builder.setTitle(R.string.mobile_network_sim_name)
+        builder.setTitle(R.string.mobile_network_sim_label_color_title)
                 .setView(view)
                 .setPositiveButton(R.string.mobile_network_sim_name_rename, (dialog, which) -> {
                     mSubscriptionManager.setDisplayName(mNameView.getText().toString(), mSubId,
@@ -175,14 +176,23 @@
         mColorSpinner.setAdapter(adapter);
         mColorSpinner.setSelection(getSimColorIndex(info.getIconTint()));
 
+        if(Flags.isDualSimOnboardingEnabled()){
+            return;
+        }
+
+        final TextView operatorTitle = view.findViewById(R.id.operator_name_label);
+        operatorTitle.setVisibility(View.VISIBLE);
+
         final TextView operatorName = view.findViewById(R.id.operator_name_value);
         mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
+        operatorName.setVisibility(View.VISIBLE);
         operatorName.setText(info.getCarrierName());
 
         final TextView phoneTitle = view.findViewById(R.id.number_label);
         phoneTitle.setVisibility(info.isOpportunistic() ? View.GONE : View.VISIBLE);
 
         final TextView phoneNumber = view.findViewById(R.id.number_value);
+        phoneNumber.setVisibility(View.VISIBLE);
         final String pn = SubscriptionUtil.getBidiFormattedPhoneNumber(getContext(), info);
         if (!TextUtils.isEmpty(pn)) {
             phoneNumber.setText(pn);
diff --git a/src/com/android/settings/network/telephony/SatelliteSetting.java b/src/com/android/settings/network/telephony/SatelliteSetting.java
new file mode 100644
index 0000000..b6d018a
--- /dev/null
+++ b/src/com/android/settings/network/telephony/SatelliteSetting.java
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.content.Intent;
+import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.UserManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.satellite.SatelliteManager;
+import android.text.SpannableString;
+import android.text.Spanned;
+import android.text.style.StyleSpan;
+import android.text.style.UnderlineSpan;
+import android.util.Log;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settingslib.HelpUtils;
+import com.android.settingslib.Utils;
+import com.android.settingslib.widget.FooterPreference;
+
+import java.util.Set;
+
+/** Handle Satellite Setting Preference Layout. */
+public class SatelliteSetting extends RestrictedDashboardFragment {
+    private static final String TAG = "SatelliteSetting";
+    public static final String PREF_KEY_ABOUT_SATELLITE_MESSAGING = "key_about_satellite_messaging";
+    public static final String PREF_KEY_CATEGORY_YOUR_SATELLITE_PLAN =
+            "key_category_your_satellite_plan";
+    public static final String PREF_KEY_YOUR_SATELLITE_PLAN = "key_your_satellite_plan";
+    public static final String PREF_KEY_CATEGORY_HOW_IT_WORKS = "key_category_how_it_works";
+    private static final String KEY_FOOTER_PREFERENCE = "satellite_setting_extra_info_footer_pref";
+    public static final String SUB_ID = "sub_id";
+
+    private Activity mActivity;
+    private TelephonyManager mTelephonymanager;
+    private SatelliteManager mSatelliteManager;
+    private int mSubId;
+
+    public SatelliteSetting() {
+        super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.SATELLITE_SETTING;
+    }
+
+    @Override
+    public void onCreate(@NonNull Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mActivity = getActivity();
+        mTelephonymanager = mActivity.getSystemService(TelephonyManager.class);
+        mSatelliteManager = mActivity.getSystemService(SatelliteManager.class);
+        mSubId = mActivity.getIntent().getIntExtra(SUB_ID,
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+        updateDynamicPreferenceViews();
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.satellite_setting;
+    }
+
+    private void updateDynamicPreferenceViews() {
+        String operatorName = mTelephonymanager.getSimOperatorName(mSubId);
+        boolean isSatelliteEligible = isSatelliteEligible();
+
+        // About satellite messaging
+        Preference preference = findPreference(PREF_KEY_ABOUT_SATELLITE_MESSAGING);
+        preference.setTitle(
+                getResources().getString(R.string.title_about_satellite_setting, operatorName));
+
+        // Your mobile plan
+        PreferenceCategory prefCategory = findPreference(PREF_KEY_CATEGORY_YOUR_SATELLITE_PLAN);
+        prefCategory.setTitle(getResources().getString(R.string.category_title_your_satellite_plan,
+                operatorName));
+
+        preference = findPreference(PREF_KEY_YOUR_SATELLITE_PLAN);
+        Drawable icon;
+        if (isSatelliteEligible) {
+            /* In case satellite is allowed by carrier's entitlement server, the page will show
+               the check icon with guidance that satellite is included in user's mobile plan */
+            preference.setTitle(R.string.title_have_satellite_plan);
+            icon = getResources().getDrawable(R.drawable.ic_check_circle_24px);
+        } else {
+            /* Or, it will show the blocked icon with the guidance that satellite is not included
+               in user's mobile plan */
+            preference.setTitle(R.string.title_no_satellite_plan);
+            /* And, the link url provides more information via web page will be shown */
+            SpannableString spannable = new SpannableString(
+                    getResources().getString(R.string.summary_add_satellite_setting));
+            spannable.setSpan(new UnderlineSpan(), 0, spannable.length(),
+                    Spanned.SPAN_INCLUSIVE_INCLUSIVE);
+            spannable.setSpan(new StyleSpan(Typeface.BOLD), 0, spannable.length(),
+                    Spanned.SPAN_INCLUSIVE_INCLUSIVE);
+            preference.setSummary(spannable);
+            /* The link will lead users to a guide page */
+            preference.setOnPreferenceClickListener(pref -> {
+                String url = getResources().getString(R.string.more_info_satellite_messaging_link);
+                if (!url.isEmpty()) {
+                    Uri uri = Uri.parse(url);
+                    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+                    startActivity(intent);
+                }
+                return true;
+            });
+            icon = getResources().getDrawable(R.drawable.ic_block_24px);
+        }
+        icon.setTintList(Utils.getColorAttr(getContext(), android.R.attr.textColorPrimary));
+        preference.setIcon(icon);
+
+        /* Composes "How it works" section, which guides how users can use satellite messaging, when
+           satellite messaging is included in user's mobile plan, or it'll will be grey out. */
+        if (!isSatelliteEligible) {
+            PreferenceCategory category = findPreference(PREF_KEY_CATEGORY_HOW_IT_WORKS);
+            category.setEnabled(false);
+            category.setShouldDisableView(true);
+        }
+
+        // More about satellite messaging
+        FooterPreference footerPreference = findPreference(KEY_FOOTER_PREFERENCE);
+        if (footerPreference != null) {
+            footerPreference.setSummary(
+                    getResources().getString(R.string.satellite_setting_summary_more_information,
+                            operatorName));
+
+            final String[] link = new String[1];
+            link[0] = getResources().getString(R.string.more_info_satellite_messaging_link);
+            footerPreference.setLearnMoreAction(view -> {
+                if (!link[0].isEmpty()) {
+                    Intent helpIntent = HelpUtils.getHelpIntent(mActivity, link[0],
+                            this.getClass().getName());
+                    if (helpIntent != null) {
+                        mActivity.startActivityForResult(helpIntent, /*requestCode=*/ 0);
+                    }
+                }
+            });
+            footerPreference.setLearnMoreText(
+                    getResources().getString(R.string.more_about_satellite_messaging));
+
+            // TODO : b/320467418 add rounded rectangle border line to footer preference.
+        }
+    }
+
+    private boolean isSatelliteEligible() {
+        try {
+            Set<Integer> restrictionReason =
+                    mSatelliteManager.getAttachRestrictionReasonsForCarrier(mSubId);
+            return !restrictionReason.contains(
+                    SatelliteManager.SATELLITE_COMMUNICATION_RESTRICTION_REASON_ENTITLEMENT);
+        } catch (SecurityException | IllegalStateException | IllegalArgumentException ex) {
+            loge(ex.toString());
+            return false;
+        }
+    }
+
+    private static void loge(String message) {
+        Log.e(TAG, message);
+    }
+}
diff --git a/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java b/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java
new file mode 100644
index 0000000..94940b3
--- /dev/null
+++ b/src/com/android/settings/network/telephony/SatelliteSettingPreferenceController.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.satellite.SatelliteManager;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.network.CarrierConfigCache;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+import java.util.Set;
+
+/**
+ * Preference controller for "Satellite Setting"
+ */
+public class SatelliteSettingPreferenceController extends
+        TelephonyBasePreferenceController implements LifecycleObserver, OnStart, OnStop {
+
+    private static final String TAG = "SatelliteSettingPreferenceController";
+
+    CarrierConfigCache mCarrierConfigCache;
+    SatelliteManager mSatelliteManager;
+    @Nullable private Boolean mIsSatelliteEligible = null;
+
+    public SatelliteSettingPreferenceController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+        mCarrierConfigCache = CarrierConfigCache.getInstance(context);
+        mSatelliteManager = context.getSystemService(SatelliteManager.class);
+    }
+
+    @Override
+    public int getAvailabilityStatus(int subId) {
+        final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
+        final boolean isSatelliteAttachSupported = carrierConfig.getBoolean(
+                CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL);
+
+        return isSatelliteAttachSupported ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public void onStart() {
+    }
+
+    @Override
+    public void onStop() {
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+    }
+
+    @Override
+    public void updateState(@Nullable Preference preference) {
+        super.updateState(preference);
+        if (preference != null) {
+            updateSummary(preference);
+        }
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(@NonNull Preference preference) {
+        if (getPreferenceKey().equals(preference.getKey())) {
+            // This activity runs in phone process, we must use intent to start
+            final Intent intent = new Intent(Settings.ACTION_SATELLITE_SETTING);
+            // This will setup the Home and Search affordance
+            intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true);
+            intent.putExtra(SatelliteSetting.SUB_ID, mSubId);
+            mContext.startActivity(intent);
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Set subId for Satellite Settings page.
+     * @param subId subscription ID.
+     */
+    public void init(int subId) {
+        logd("init(), subId=" + subId);
+        mSubId = subId;
+    }
+
+    private void updateSummary(Preference preference) {
+        try {
+            Set<Integer> restrictionReason =
+                    mSatelliteManager.getAttachRestrictionReasonsForCarrier(mSubId);
+            boolean isSatelliteEligible = !restrictionReason.contains(
+                    SatelliteManager.SATELLITE_COMMUNICATION_RESTRICTION_REASON_ENTITLEMENT);
+            if (mIsSatelliteEligible == null || mIsSatelliteEligible != isSatelliteEligible) {
+                mIsSatelliteEligible = isSatelliteEligible;
+                String summary = mContext.getString(
+                        mIsSatelliteEligible ? R.string.satellite_setting_enabled_summary
+                                : R.string.satellite_setting_disabled_summary);
+                preference.setSummary(summary);
+            }
+        } catch (SecurityException | IllegalStateException | IllegalArgumentException ex) {
+            loge(ex.toString());
+            preference.setSummary(R.string.satellite_setting_disabled_summary);
+        }
+    }
+
+    private static void logd(String message) {
+        Log.d(TAG, message);
+    }
+
+    private static void loge(String message) {
+        Log.e(TAG, message);
+    }
+}
diff --git a/src/com/android/settings/network/telephony/ServiceStateFlow.kt b/src/com/android/settings/network/telephony/ServiceStateFlow.kt
new file mode 100644
index 0000000..8770321
--- /dev/null
+++ b/src/com/android/settings/network/telephony/ServiceStateFlow.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.ServiceState
+import android.telephony.TelephonyCallback
+import android.util.Log
+import kotlinx.coroutines.flow.Flow
+
+private const val TAG = "ServiceStateFlow"
+
+/** Creates an instance of a cold Flow for [ServiceState] of given [subId]. */
+fun Context.serviceStateFlow(subId: Int): Flow<ServiceState> = telephonyCallbackFlow(subId) {
+    object : TelephonyCallback(), TelephonyCallback.ServiceStateListener {
+        override fun onServiceStateChanged(serviceState: ServiceState) {
+            trySend(serviceState)
+            Log.d(TAG, "[$subId] serviceState: $serviceState")
+        }
+    }
+}
diff --git a/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java b/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java
index 391158f..10f8875 100644
--- a/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java
@@ -43,7 +43,8 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        mSubscriptionManager = getSystemService(SubscriptionManager.class);
+        mSubscriptionManager = getSystemService(SubscriptionManager.class)
+                .createForAllUserProfiles();
         setProgressState(PROGRESS_IS_NOT_SHOWING);
     }
 
diff --git a/src/com/android/settings/network/telephony/SubscriptionRepository.kt b/src/com/android/settings/network/telephony/SubscriptionRepository.kt
new file mode 100644
index 0000000..7a14d6b
--- /dev/null
+++ b/src/com/android/settings/network/telephony/SubscriptionRepository.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.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionManager
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.flow.conflate
+import kotlinx.coroutines.flow.flowOn
+
+fun Context.subscriptionsChangedFlow() = callbackFlow {
+    val subscriptionManager = getSystemService(SubscriptionManager::class.java)!!
+
+    val listener = object : SubscriptionManager.OnSubscriptionsChangedListener() {
+        override fun onSubscriptionsChanged() {
+            trySend(Unit)
+        }
+    }
+
+    subscriptionManager.addOnSubscriptionsChangedListener(
+        Dispatchers.Default.asExecutor(),
+        listener,
+    )
+
+    awaitClose { subscriptionManager.removeOnSubscriptionsChangedListener(listener) }
+}.conflate().flowOn(Dispatchers.Default)
diff --git a/src/com/android/settings/network/telephony/TelephonyRepository.kt b/src/com/android/settings/network/telephony/TelephonyRepository.kt
new file mode 100644
index 0000000..678aaac
--- /dev/null
+++ b/src/com/android/settings/network/telephony/TelephonyRepository.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.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.ProducerScope
+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
+
+/** Creates an instance of a cold Flow for Telephony callback of given [subId]. */
+fun <T> Context.telephonyCallbackFlow(
+    subId: Int,
+    block: ProducerScope<T>.() -> TelephonyCallback,
+): Flow<T> = callbackFlow {
+    val telephonyManager = getSystemService(TelephonyManager::class.java)!!
+        .createForSubscriptionId(subId)
+
+    val callback = block()
+
+    telephonyManager.registerTelephonyCallback(Dispatchers.Default.asExecutor(), callback)
+
+    awaitClose { telephonyManager.unregisterTelephonyCallback(callback) }
+}.conflate().flowOn(Dispatchers.Default)
diff --git a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
index 4160299..6f4d3c3 100644
--- a/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/ToggleSubscriptionDialogActivity.java
@@ -379,7 +379,7 @@
                 DIALOG_TAG_DISABLE_SIM_CONFIRMATION,
                 title,
                 null,
-                getString(R.string.condition_turn_off),
+                getString(R.string.sim_action_turn_off),
                 getString(R.string.sim_action_cancel));
     }
 
diff --git a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
index 4064181..f803efd 100644
--- a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
@@ -29,8 +29,9 @@
 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.flags.Flags;
 import com.android.settings.network.CarrierConfigCache;
 import com.android.settings.network.MobileDataEnabledListener;
 import com.android.settings.network.ims.VolteQueryImsState;
@@ -54,6 +55,7 @@
     @VisibleForTesting
     Integer mCallState;
     private MobileDataEnabledListener mDataContentObserver;
+    private CallingPreferenceCategoryController mCallingPreferenceCategoryController;
 
     public VideoCallingPreferenceController(Context context, String key) {
         super(context, key);
@@ -94,9 +96,11 @@
             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);
+        mCallingPreferenceCategoryController
+                .updateChildVisible(getPreferenceKey(), videoCallEnabled);
         if (videoCallEnabled) {
             final boolean videoCallEditable = queryVoLteState(mSubId).isEnabledByUser()
                     && queryImsState(mSubId).isAllowUserControl();
@@ -136,8 +140,13 @@
                 PackageManager.FEATURE_TELEPHONY_IMS);
     }
 
-    public VideoCallingPreferenceController init(int subId) {
+    /**
+     * Init instance of VideoCallingPreferenceController.
+     */
+    public VideoCallingPreferenceController init(
+            int subId, CallingPreferenceCategoryController callingPreferenceCategoryController) {
         mSubId = subId;
+        mCallingPreferenceCategoryController = callingPreferenceCategoryController;
 
         return this;
     }
@@ -187,7 +196,16 @@
             }
             // assign current call state so that it helps to show correct preference state even
             // before first onCallStateChanged() by initial registration.
-            mCallState = mTelephonyManager.getCallState(subId);
+            if (Flags.enforceTelephonyFeatureMappingForPublicApis()) {
+                try {
+                    mCallState = mTelephonyManager.getCallState(subId);
+                } catch (UnsupportedOperationException e) {
+                    // Device doesn't support FEATURE_TELEPHONY_CALLING
+                    mCallState = TelephonyManager.CALL_STATE_IDLE;
+                }
+            } else {
+                mCallState = mTelephonyManager.getCallState(subId);
+            }
             mTelephonyManager.registerTelephonyCallback(context.getMainExecutor(), this);
         }
 
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
deleted file mode 100644
index 03cc23f..0000000
--- a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telecom.PhoneAccountHandle;
-import android.telecom.TelecomManager;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyCallback;
-import android.telephony.TelephonyManager;
-import android.telephony.ims.ImsMmTelManager;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.network.ims.WifiCallingQueryImsState;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
-import com.android.settingslib.core.lifecycle.events.OnStop;
-
-import java.util.List;
-
-/**
- * Preference controller for "Wifi Calling"
- */
-//TODO: Remove the class once Provider Model is always enabled in the future.
-public class WifiCallingPreferenceController extends TelephonyBasePreferenceController implements
-        LifecycleObserver, OnStart, OnStop {
-
-    private static final String TAG = "WifiCallingPreference";
-
-    @VisibleForTesting
-    Integer mCallState;
-    @VisibleForTesting
-    CarrierConfigManager mCarrierConfigManager;
-    private ImsMmTelManager mImsMmTelManager;
-    @VisibleForTesting
-    PhoneAccountHandle mSimCallManager;
-    private PhoneTelephonyCallback mTelephonyCallback;
-    private Preference mPreference;
-
-    public WifiCallingPreferenceController(Context context, String key) {
-        super(context, key);
-        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
-        mTelephonyCallback = new PhoneTelephonyCallback();
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        return SubscriptionManager.isValidSubscriptionId(subId)
-                && MobileNetworkUtils.isWifiCallingEnabled(mContext, subId, null)
-                ? AVAILABLE
-                : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public void onStart() {
-        mTelephonyCallback.register(mContext, mSubId);
-    }
-
-    @Override
-    public void onStop() {
-        mTelephonyCallback.unregister();
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-        final Intent intent = mPreference.getIntent();
-        if (intent != null) {
-            intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-        }
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        if ((mCallState == null) || (preference == null)) {
-            Log.d(TAG, "Skip update under mCallState=" + mCallState);
-            return;
-        }
-        CharSequence summaryText = null;
-        if (mSimCallManager != null) {
-            final Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
-                    mSimCallManager);
-            if (intent == null) {
-                // Do nothing in this case since preference is invisible
-                return;
-            }
-            final PackageManager pm = mContext.getPackageManager();
-            final List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
-            preference.setTitle(resolutions.get(0).loadLabel(pm));
-            preference.setIntent(intent);
-        } else {
-            final String title = SubscriptionManager.getResourcesForSubId(mContext, mSubId)
-                    .getString(R.string.wifi_calling_settings_title);
-            preference.setTitle(title);
-            summaryText = getResourceIdForWfcMode(mSubId);
-        }
-        preference.setSummary(summaryText);
-        preference.setEnabled(mCallState == TelephonyManager.CALL_STATE_IDLE);
-    }
-
-    private CharSequence getResourceIdForWfcMode(int subId) {
-        int resId = com.android.internal.R.string.wifi_calling_off_summary;
-        if (queryImsState(subId).isEnabledByUser()) {
-            boolean useWfcHomeModeForRoaming = false;
-            if (mCarrierConfigManager != null) {
-                final PersistableBundle carrierConfig =
-                        mCarrierConfigManager.getConfigForSubId(subId);
-                if (carrierConfig != null) {
-                    useWfcHomeModeForRoaming = carrierConfig.getBoolean(
-                            CarrierConfigManager
-                                    .KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL);
-                }
-            }
-            final boolean isRoaming = getTelephonyManager(mContext, subId)
-                    .isNetworkRoaming();
-            final int wfcMode = (isRoaming && !useWfcHomeModeForRoaming)
-                    ? mImsMmTelManager.getVoWiFiRoamingModeSetting() :
-                    mImsMmTelManager.getVoWiFiModeSetting();
-            switch (wfcMode) {
-                case ImsMmTelManager.WIFI_MODE_WIFI_ONLY:
-                    resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
-                    break;
-                case ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED:
-                    resId = com.android.internal.R.string
-                            .wfc_mode_cellular_preferred_summary;
-                    break;
-                case ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED:
-                    resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
-                    break;
-                default:
-                    break;
-            }
-        }
-        return SubscriptionManager.getResourcesForSubId(mContext, subId).getText(resId);
-    }
-
-    public WifiCallingPreferenceController init(int subId) {
-        mSubId = subId;
-        mImsMmTelManager = getImsMmTelManager(mSubId);
-        mSimCallManager = mContext.getSystemService(TelecomManager.class)
-                .getSimCallManagerForSubscription(mSubId);
-
-        return this;
-    }
-
-    @VisibleForTesting
-    WifiCallingQueryImsState queryImsState(int subId) {
-        return new WifiCallingQueryImsState(mContext, subId);
-    }
-
-    protected ImsMmTelManager getImsMmTelManager(int subId) {
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
-            return null;
-        }
-        return ImsMmTelManager.createForSubscriptionId(subId);
-    }
-
-    @VisibleForTesting
-    TelephonyManager getTelephonyManager(Context context, int subId) {
-        final TelephonyManager telephonyMgr = context.getSystemService(TelephonyManager.class);
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
-            return telephonyMgr;
-        }
-        final TelephonyManager subscriptionTelephonyMgr =
-                telephonyMgr.createForSubscriptionId(subId);
-        return (subscriptionTelephonyMgr == null) ? telephonyMgr : subscriptionTelephonyMgr;
-    }
-
-
-    private class PhoneTelephonyCallback extends TelephonyCallback implements
-            TelephonyCallback.CallStateListener {
-
-        private TelephonyManager mTelephonyManager;
-
-        @Override
-        public void onCallStateChanged(int state) {
-            mCallState = state;
-            updateState(mPreference);
-        }
-
-        public void register(Context context, int subId) {
-            mTelephonyManager = getTelephonyManager(context, subId);
-            // assign current call state so that it helps to show correct preference state even
-            // before first onCallStateChanged() by initial registration.
-            mCallState = mTelephonyManager.getCallState(subId);
-            mTelephonyManager.registerTelephonyCallback(context.getMainExecutor(), this);
-        }
-
-        public void unregister() {
-            mCallState = null;
-            mTelephonyManager.unregisterTelephonyCallback(this);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
new file mode 100644
index 0000000..e7b8318
--- /dev/null
+++ b/src/com/android/settings/network/telephony/WifiCallingPreferenceController.kt
@@ -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.network.telephony
+
+import android.content.Context
+import android.provider.Settings
+import android.telecom.TelecomManager
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.ims.ImsMmTelManager
+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.network.telephony.ims.ImsMmTelRepository
+import com.android.settings.network.telephony.ims.ImsMmTelRepositoryImpl
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Preference controller for "Wifi Calling".
+ *
+ * TODO: Remove the class once Provider Model is always enabled in the future.
+ */
+open class WifiCallingPreferenceController @JvmOverloads constructor(
+    context: Context,
+    key: String,
+    private val callStateFlowFactory: (subId: Int) -> Flow<Int> = context::callStateFlow,
+    private val imsMmTelRepositoryFactory: (subId: Int) -> ImsMmTelRepository = { subId ->
+        ImsMmTelRepositoryImpl(context, subId)
+    },
+) : TelephonyBasePreferenceController(context, key) {
+
+    private lateinit var preference: Preference
+    private lateinit var callingPreferenceCategoryController: CallingPreferenceCategoryController
+
+    private val resourcesForSub by lazy {
+        SubscriptionManager.getResourcesForSubId(mContext, mSubId)
+    }
+
+    fun init(
+        subId: Int,
+        callingPreferenceCategoryController: CallingPreferenceCategoryController,
+    ): WifiCallingPreferenceController {
+        mSubId = subId
+        this.callingPreferenceCategoryController = callingPreferenceCategoryController
+        return this
+    }
+
+    /**
+     * Note: Visibility also controlled by [onViewCreated].
+     */
+    override fun getAvailabilityStatus(subId: Int) =
+        if (SubscriptionManager.isValidSubscriptionId(subId)) AVAILABLE
+        else CONDITIONALLY_UNAVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        // Not call super here, to avoid preference.isVisible changed unexpectedly
+        preference = screen.findPreference(preferenceKey)!!
+        preference.intent?.putExtra(Settings.EXTRA_SUB_ID, mSubId)
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                val isVisible = withContext(Dispatchers.Default) {
+                    MobileNetworkUtils.isWifiCallingEnabled(mContext, mSubId, null)
+                }
+                preference.isVisible = isVisible
+                callingPreferenceCategoryController.updateChildVisible(preferenceKey, isVisible)
+            }
+        }
+
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                update()
+            }
+        }
+
+        callStateFlowFactory(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) {
+            preference.isEnabled = (it == TelephonyManager.CALL_STATE_IDLE)
+        }
+    }
+
+    private suspend fun update() {
+        val simCallManager = mContext.getSystemService(TelecomManager::class.java)
+            ?.getSimCallManagerForSubscription(mSubId)
+        if (simCallManager != null) {
+            val intent = withContext(Dispatchers.Default) {
+                MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext, simCallManager)
+            } ?: return // Do nothing in this case since preference is invisible
+            val title = withContext(Dispatchers.Default) {
+                mContext.packageManager.resolveActivity(intent, 0)
+                    ?.loadLabel(mContext.packageManager)
+            } ?: return
+            preference.intent = intent
+            preference.title = title
+            preference.summary = null
+        } else {
+            preference.title = resourcesForSub.getString(R.string.wifi_calling_settings_title)
+            preference.summary = withContext(Dispatchers.Default) { getSummaryForWfcMode() }
+        }
+    }
+
+    private fun getSummaryForWfcMode(): String {
+        val resId = when (imsMmTelRepositoryFactory(mSubId).getWiFiCallingMode()) {
+            ImsMmTelManager.WIFI_MODE_WIFI_ONLY ->
+                com.android.internal.R.string.wfc_mode_wifi_only_summary
+
+            ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED ->
+                com.android.internal.R.string.wfc_mode_cellular_preferred_summary
+
+            ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED ->
+                com.android.internal.R.string.wfc_mode_wifi_preferred_summary
+
+            else -> com.android.internal.R.string.wifi_calling_off_summary
+        }
+        return resourcesForSub.getString(resId)
+    }
+}
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
deleted file mode 100644
index 400d261..0000000
--- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.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;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Handler;
-import android.os.HandlerExecutor;
-import android.os.Looper;
-import android.os.PersistableBundle;
-import android.os.SystemClock;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleEventObserver;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.R;
-import com.android.settings.network.AllowedNetworkTypesListener;
-import com.android.settings.network.CarrierConfigCache;
-import com.android.settings.network.helper.ServiceStateStatus;
-import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.network.telephony.TelephonyTogglePreferenceController;
-import com.android.settingslib.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * Preference controller for "Auto Select Network"
- */
-public class AutoSelectPreferenceController extends TelephonyTogglePreferenceController
-        implements LifecycleEventObserver{
-    private static final long MINIMUM_DIALOG_TIME_MILLIS = TimeUnit.SECONDS.toMillis(1);
-    private static final String LOG_TAG = "AutoSelectPreferenceController";
-    private static final String INTERNAL_LOG_TAG_ONRESUME = "OnResume";
-    private static final String INTERNAL_LOG_TAG_AFTERSET = "AfterSet";
-
-    private final Handler mUiHandler;
-    private PreferenceScreen mPreferenceScreen;
-    private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
-    private TelephonyManager mTelephonyManager;
-    private boolean mOnlyAutoSelectInHome;
-    private List<OnNetworkSelectModeListener> mListeners;
-    @VisibleForTesting
-    ProgressDialog mProgressDialog;
-    @VisibleForTesting
-    SwitchPreference mSwitchPreference;
-    private AtomicBoolean mUpdatingConfig;
-    private int mCacheOfModeStatus;
-    private AtomicLong mRecursiveUpdate;
-    ServiceStateStatus mServiceStateStatus;
-
-    public AutoSelectPreferenceController(Context context, String key) {
-        super(context, key);
-        mTelephonyManager = context.getSystemService(TelephonyManager.class);
-        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-        mRecursiveUpdate = new AtomicLong();
-        mUpdatingConfig = new AtomicBoolean();
-        mCacheOfModeStatus = TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN;
-        mListeners = new ArrayList<>();
-        mUiHandler = new Handler(Looper.getMainLooper());
-        mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
-                new HandlerExecutor(mUiHandler));
-        mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
-                () -> updatePreference());
-    }
-
-    private void updatePreference() {
-        if (mPreferenceScreen != null) {
-            displayPreference(mPreferenceScreen);
-        }
-        if (mSwitchPreference != null) {
-            mRecursiveUpdate.getAndIncrement();
-            updateState(mSwitchPreference);
-            mRecursiveUpdate.decrementAndGet();
-        }
-    }
-
-    /**
-     * Implementation of LifecycleEventObserver.
-     */
-    @SuppressWarnings("FutureReturnValueIgnored")
-    public void onStateChanged(@NonNull LifecycleOwner lifecycleOwner,
-            @NonNull Lifecycle.Event event) {
-        switch (event) {
-            case ON_START:
-                mAllowedNetworkTypesListener.register(mContext, mSubId);
-                break;
-            case ON_RESUME:
-                ThreadUtils.postOnBackgroundThread(() -> {
-                    queryNetworkSelectionMode(INTERNAL_LOG_TAG_ONRESUME);
-                    //Update UI in UI thread
-                    mUiHandler.post(() -> {
-                        if (mSwitchPreference != null) {
-                            mRecursiveUpdate.getAndIncrement();
-                            mSwitchPreference.setChecked(isChecked());
-                            mRecursiveUpdate.decrementAndGet();
-                            updateListenerValue();
-                        }
-                    });
-                });
-                break;
-            case ON_STOP:
-                mAllowedNetworkTypesListener.unregister(mContext, mSubId);
-                break;
-            default:
-                // Do nothing
-                break;
-        }
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)
-                ? AVAILABLE
-                : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreferenceScreen = screen;
-        mSwitchPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
-    public boolean isChecked() {
-        return mCacheOfModeStatus == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-
-        preference.setSummary(null);
-        final ServiceState serviceState = mTelephonyManager.getServiceState();
-        if (serviceState == null) {
-            preference.setEnabled(false);
-            return;
-        }
-
-        if (serviceState.getRoaming()) {
-            preference.setEnabled(true);
-        } else {
-            preference.setEnabled(!mOnlyAutoSelectInHome);
-            if (mOnlyAutoSelectInHome) {
-                preference.setSummary(mContext.getString(
-                        R.string.manual_mode_disallowed_summary,
-                        mTelephonyManager.getSimOperatorName()));
-            }
-        }
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        if (mRecursiveUpdate.get() != 0) {
-            // Changing from software are allowed and changing presentation only.
-            return true;
-        }
-        if (isChecked) {
-            setAutomaticSelectionMode();
-        } else {
-            if (mSwitchPreference != null) {
-                Intent intent = new Intent();
-                intent.setClassName(SETTINGS_PACKAGE_NAME,
-                        SETTINGS_PACKAGE_NAME + ".Settings$NetworkSelectActivity");
-                intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-                mSwitchPreference.setIntent(intent);
-            }
-        }
-        return false;
-    }
-
-    @VisibleForTesting
-    Future setAutomaticSelectionMode() {
-        final long startMillis = SystemClock.elapsedRealtime();
-        showAutoSelectProgressBar();
-        if (mSwitchPreference != null) {
-            mSwitchPreference.setIntent(null);
-            mSwitchPreference.setEnabled(false);
-        }
-        return ThreadUtils.postOnBackgroundThread(() -> {
-            // set network selection mode in background
-            mUpdatingConfig.set(true);
-            mTelephonyManager.setNetworkSelectionModeAutomatic();
-            mUpdatingConfig.set(false);
-
-            //Update UI in UI thread
-            final long durationMillis = SystemClock.elapsedRealtime() - startMillis;
-
-            mUiHandler.postDelayed(() -> {
-                ThreadUtils.postOnBackgroundThread(() -> {
-                    queryNetworkSelectionMode(INTERNAL_LOG_TAG_AFTERSET);
-
-                    //Update UI in UI thread
-                    mUiHandler.post(() -> {
-                        mRecursiveUpdate.getAndIncrement();
-                        if (mSwitchPreference != null) {
-                            mSwitchPreference.setEnabled(true);
-                            mSwitchPreference.setChecked(isChecked());
-                        }
-                        mRecursiveUpdate.decrementAndGet();
-                        updateListenerValue();
-                        dismissProgressBar();
-                    });
-                });
-            }, Math.max(MINIMUM_DIALOG_TIME_MILLIS - durationMillis, 0));
-        });
-    }
-
-    /**
-     * Initialization based on given subscription id.
-     **/
-    public AutoSelectPreferenceController init(Lifecycle lifecycle, int subId) {
-        mSubId = subId;
-        mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
-                .createForSubscriptionId(mSubId);
-        final PersistableBundle carrierConfig =
-                CarrierConfigCache.getInstance(mContext).getConfigForSubId(mSubId);
-        mOnlyAutoSelectInHome = carrierConfig != null
-                ? carrierConfig.getBoolean(
-                CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL)
-                : false;
-
-        mServiceStateStatus = new ServiceStateStatus(lifecycle, mTelephonyManager,
-                new HandlerExecutor(mUiHandler)) {
-            @Override
-            protected void setValue(ServiceState status) {
-                if (status == null) {
-                    return;
-                }
-                updateUiAutoSelectValue(status);
-            }
-        };
-        return this;
-    }
-
-    public AutoSelectPreferenceController addListener(OnNetworkSelectModeListener lsn) {
-        mListeners.add(lsn);
-
-        return this;
-    }
-
-    private void queryNetworkSelectionMode(String tag) {
-        mCacheOfModeStatus = mTelephonyManager.getNetworkSelectionMode();
-        Log.d(LOG_TAG, tag + ": query command done. mCacheOfModeStatus: " + mCacheOfModeStatus);
-    }
-
-    @VisibleForTesting
-    void updateUiAutoSelectValue(ServiceState status) {
-        if (status == null) {
-            return;
-        }
-        if (!mUpdatingConfig.get()) {
-            int networkSelectionMode = status.getIsManualSelection()
-                    ? TelephonyManager.NETWORK_SELECTION_MODE_MANUAL
-                    : TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
-            if (mCacheOfModeStatus == networkSelectionMode) {
-                return;
-            }
-            mCacheOfModeStatus = networkSelectionMode;
-            Log.d(LOG_TAG, "updateUiAutoSelectValue: mCacheOfModeStatus: " + mCacheOfModeStatus);
-
-            mRecursiveUpdate.getAndIncrement();
-            updateState(mSwitchPreference);
-            mRecursiveUpdate.decrementAndGet();
-            updateListenerValue();
-        }
-    }
-
-    private void updateListenerValue() {
-        for (OnNetworkSelectModeListener lsn : mListeners) {
-            lsn.onNetworkSelectModeUpdated(mCacheOfModeStatus);
-        }
-    }
-
-    private void showAutoSelectProgressBar() {
-        if (mProgressDialog == null) {
-            mProgressDialog = new ProgressDialog(mContext);
-            mProgressDialog.setMessage(
-                    mContext.getResources().getString(R.string.register_automatically));
-            mProgressDialog.setCanceledOnTouchOutside(false);
-            mProgressDialog.setCancelable(false);
-            mProgressDialog.setIndeterminate(true);
-        }
-        mProgressDialog.show();
-    }
-
-    private void dismissProgressBar() {
-        if (mProgressDialog != null && mProgressDialog.isShowing()) {
-            try {
-                mProgressDialog.dismiss();
-            } catch (IllegalArgumentException e) {
-                // Ignore exception since the dialog will be gone anyway.
-            }
-        }
-    }
-
-    /**
-     * Callback when network select mode might get updated
-     *
-     * @see TelephonyManager#getNetworkSelectionMode()
-     */
-    public interface OnNetworkSelectModeListener {
-        void onNetworkSelectModeUpdated(int mode);
-    }
-}
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.kt b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.kt
new file mode 100644
index 0000000..1ed9d9a
--- /dev/null
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.kt
@@ -0,0 +1,224 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.gsm
+
+import android.app.ProgressDialog
+import android.content.Context
+import android.content.Intent
+import android.os.PersistableBundle
+import android.provider.Settings
+import android.telephony.CarrierConfigManager
+import android.telephony.ServiceState
+import android.telephony.TelephonyManager
+import androidx.annotation.VisibleForTesting
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.Settings.NetworkSelectActivity
+import com.android.settings.network.CarrierConfigCache
+import com.android.settings.network.telephony.MobileNetworkUtils
+import com.android.settings.network.telephony.allowedNetworkTypesFlow
+import com.android.settings.network.telephony.serviceStateFlow
+import com.android.settings.spa.preference.ComposePreferenceController
+import com.android.settingslib.spa.framework.compose.OverridableFlow
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import kotlin.properties.Delegates.notNull
+import kotlin.time.Duration.Companion.seconds
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.async
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.SharingStarted
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.flow.stateIn
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Preference controller for "Auto Select Network"
+ */
+class AutoSelectPreferenceController @JvmOverloads constructor(
+    context: Context,
+    key: String,
+    private val allowedNetworkTypesFlowFactory: (subId: Int) -> Flow<Long> =
+        context::allowedNetworkTypesFlow,
+    private val serviceStateFlowFactory: (subId: Int) -> Flow<ServiceState> =
+        context::serviceStateFlow,
+    private val getConfigForSubId: (subId: Int) -> PersistableBundle = { subId ->
+        CarrierConfigCache.getInstance(context).getConfigForSubId(subId)
+    },
+) : ComposePreferenceController(context, key) {
+
+    private lateinit var telephonyManager: TelephonyManager
+    private val listeners = mutableListOf<OnNetworkSelectModeListener>()
+
+    @VisibleForTesting
+    var progressDialog: ProgressDialog? = null
+
+    private lateinit var preference: Preference
+
+    private var subId by notNull<Int>()
+
+    /**
+     * Initialization based on given subscription id.
+     */
+    fun init(subId: Int): AutoSelectPreferenceController {
+        this.subId = subId
+        telephonyManager = mContext.getSystemService(TelephonyManager::class.java)!!
+            .createForSubscriptionId(subId)
+
+        return this
+    }
+
+    override fun getAvailabilityStatus() =
+        if (MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)) AVAILABLE
+        else CONDITIONALLY_UNAVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    @Composable
+    override fun Content() {
+        val coroutineScope = rememberCoroutineScope()
+        val serviceStateFlow = remember {
+            serviceStateFlowFactory(subId)
+                .stateIn(coroutineScope, SharingStarted.Lazily, null)
+                .filterNotNull()
+        }
+        val isAutoOverridableFlow = remember {
+            OverridableFlow(serviceStateFlow.map { !it.isManualSelection })
+        }
+        val isAuto by isAutoOverridableFlow.flow
+            .onEach(::updateListenerValue)
+            .collectAsStateWithLifecycle(initialValue = null)
+        val disallowedSummary by serviceStateFlow.map(::getDisallowedSummary)
+            .collectAsStateWithLifecycle(initialValue = "")
+        SwitchPreference(object : SwitchPreferenceModel {
+            override val title = stringResource(R.string.select_automatically)
+            override val summary = { disallowedSummary }
+            override val changeable = { disallowedSummary.isEmpty() }
+            override val checked = { isAuto }
+            override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
+                if (newChecked) {
+                    coroutineScope.launch { setAutomaticSelectionMode(isAutoOverridableFlow) }
+                } else {
+                    mContext.startActivity(Intent().apply {
+                        setClass(mContext, NetworkSelectActivity::class.java)
+                        putExtra(Settings.EXTRA_SUB_ID, subId)
+                    })
+                }
+            }
+        })
+    }
+
+    private suspend fun getDisallowedSummary(serviceState: ServiceState): String =
+        withContext(Dispatchers.Default) {
+            if (!serviceState.roaming && onlyAutoSelectInHome()) {
+                mContext.getString(
+                    R.string.manual_mode_disallowed_summary,
+                    telephonyManager.simOperatorName
+                )
+            } else ""
+        }
+
+    private fun onlyAutoSelectInHome(): Boolean =
+        getConfigForSubId(subId)
+            .getBoolean(CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL)
+
+    private suspend fun setAutomaticSelectionMode(overrideChannel: OverridableFlow<Boolean>) {
+        showAutoSelectProgressBar()
+
+        withContext(Dispatchers.Default) {
+            val minimumDialogTimeDeferred = async { delay(MINIMUM_DIALOG_TIME) }
+            telephonyManager.setNetworkSelectionModeAutomatic()
+            minimumDialogTimeDeferred.await()
+        }
+        overrideChannel.override(true)
+
+        dismissProgressBar()
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        allowedNetworkTypesFlowFactory(subId).collectLatestWithLifecycle(viewLifecycleOwner) {
+            preference.isVisible = withContext(Dispatchers.Default) {
+                MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)
+            }
+        }
+    }
+
+    fun addListener(listener: OnNetworkSelectModeListener): AutoSelectPreferenceController {
+        listeners.add(listener)
+        return this
+    }
+
+    private fun updateListenerValue(isAuto: Boolean) {
+        for (listener in listeners) {
+            listener.onNetworkSelectModeUpdated(
+                if (isAuto) TelephonyManager.NETWORK_SELECTION_MODE_AUTO
+                else TelephonyManager.NETWORK_SELECTION_MODE_MANUAL
+            )
+        }
+    }
+
+    private fun showAutoSelectProgressBar() {
+        if (progressDialog == null) {
+            progressDialog = ProgressDialog(mContext).apply {
+                setMessage(mContext.resources.getString(R.string.register_automatically))
+                setCanceledOnTouchOutside(false)
+                setCancelable(false)
+                isIndeterminate = true
+            }
+        }
+        progressDialog?.show()
+    }
+
+    private fun dismissProgressBar() {
+        if (progressDialog?.isShowing == true) {
+            try {
+                progressDialog?.dismiss()
+            } catch (e: IllegalArgumentException) {
+                // Ignore exception since the dialog will be gone anyway.
+            }
+        }
+    }
+
+    /**
+     * Callback when network select mode might get updated
+     *
+     * @see TelephonyManager.getNetworkSelectionMode
+     */
+    interface OnNetworkSelectModeListener {
+        fun onNetworkSelectModeUpdated(mode: Int)
+    }
+
+    companion object {
+        private val MINIMUM_DIALOG_TIME = 1.seconds
+    }
+}
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
deleted file mode 100644
index 7bc0dc1..0000000
--- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.gsm;
-
-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.content.Context;
-import android.content.Intent;
-import android.provider.Settings;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.network.AllowedNetworkTypesListener;
-import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.network.telephony.TelephonyBasePreferenceController;
-
-/**
- * Preference controller for "Open network select"
- */
-public class OpenNetworkSelectPagePreferenceController extends
-        TelephonyBasePreferenceController implements
-        AutoSelectPreferenceController.OnNetworkSelectModeListener, LifecycleObserver {
-
-    private TelephonyManager mTelephonyManager;
-    private Preference mPreference;
-    private PreferenceScreen mPreferenceScreen;
-    private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
-    private int mCacheOfModeStatus;
-
-    public OpenNetworkSelectPagePreferenceController(Context context, String key) {
-        super(context, key);
-        mTelephonyManager = context.getSystemService(TelephonyManager.class);
-        mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-        mCacheOfModeStatus = TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN;
-        mAllowedNetworkTypesListener = new AllowedNetworkTypesListener(
-                context.getMainExecutor());
-        mAllowedNetworkTypesListener.setAllowedNetworkTypesListener(
-                () -> updatePreference());
-
-    }
-
-    private void updatePreference() {
-        if (mPreferenceScreen != null) {
-            displayPreference(mPreferenceScreen);
-        }
-        if (mPreference != null) {
-            updateState(mPreference);
-        }
-    }
-
-    @Override
-    public int getAvailabilityStatus(int subId) {
-        return MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)
-                ? AVAILABLE
-                : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    @OnLifecycleEvent(ON_START)
-    public void onStart() {
-        mAllowedNetworkTypesListener.register(mContext, mSubId);
-    }
-
-    @OnLifecycleEvent(ON_STOP)
-    public void onStop() {
-        mAllowedNetworkTypesListener.unregister(mContext, mSubId);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreferenceScreen = screen;
-        mPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-        preference.setEnabled(mCacheOfModeStatus
-                != TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-
-        Intent intent = new Intent();
-        intent.setClassName(SETTINGS_PACKAGE_NAME,
-                SETTINGS_PACKAGE_NAME + ".Settings$NetworkSelectActivity");
-        intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
-        preference.setIntent(intent);
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        final ServiceState ss = mTelephonyManager.getServiceState();
-        if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
-            return MobileNetworkUtils.getCurrentCarrierNameForDisplay(mContext, mSubId);
-        } else {
-            return mContext.getString(R.string.network_disconnected);
-        }
-    }
-
-    /**
-     * Initialization based on given subscription id.
-     **/
-    public OpenNetworkSelectPagePreferenceController init(int subId) {
-        mSubId = subId;
-        mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
-                .createForSubscriptionId(mSubId);
-        return this;
-    }
-
-    @Override
-    public void onNetworkSelectModeUpdated(int mode) {
-        mCacheOfModeStatus = mode;
-        if (mPreference != null) {
-            updateState(mPreference);
-        }
-    }
-}
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt
new file mode 100644
index 0000000..84cdec4
--- /dev/null
+++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.kt
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.gsm
+
+import android.content.Context
+import android.content.Intent
+import android.provider.Settings
+import android.telephony.ServiceState
+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.Settings.NetworkSelectActivity
+import com.android.settings.network.telephony.MobileNetworkUtils
+import com.android.settings.network.telephony.TelephonyBasePreferenceController
+import com.android.settings.network.telephony.allowedNetworkTypesFlow
+import com.android.settings.network.telephony.serviceStateFlow
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.withContext
+
+/**
+ * Preference controller for "Open network select"
+ */
+class OpenNetworkSelectPagePreferenceController @JvmOverloads constructor(
+    context: Context,
+    key: String,
+    private val allowedNetworkTypesFlowFactory: (subId: Int) -> Flow<Long> =
+        context::allowedNetworkTypesFlow,
+    private val serviceStateFlowFactory: (subId: Int) -> Flow<ServiceState> =
+        context::serviceStateFlow,
+) : TelephonyBasePreferenceController(context, key),
+    AutoSelectPreferenceController.OnNetworkSelectModeListener {
+
+    private var preference: Preference? = null
+
+    /**
+     * Initialization based on given subscription id.
+     */
+    fun init(subId: Int): OpenNetworkSelectPagePreferenceController {
+        mSubId = subId
+        return this
+    }
+
+    override fun getAvailabilityStatus(subId: Int) =
+        if (MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, subId)) AVAILABLE
+        else CONDITIONALLY_UNAVAILABLE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)
+        preference?.intent = Intent().apply {
+            setClass(mContext, NetworkSelectActivity::class.java)
+            putExtra(Settings.EXTRA_SUB_ID, mSubId)
+        }
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        allowedNetworkTypesFlowFactory(mSubId).collectLatestWithLifecycle(viewLifecycleOwner) {
+            preference?.isVisible = withContext(Dispatchers.Default) {
+                MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, mSubId)
+            }
+        }
+
+        serviceStateFlowFactory(mSubId)
+            .collectLatestWithLifecycle(viewLifecycleOwner) { serviceState ->
+                preference?.summary = if (serviceState.state == ServiceState.STATE_IN_SERVICE) {
+                    withContext(Dispatchers.Default) {
+                        MobileNetworkUtils.getCurrentCarrierNameForDisplay(mContext, mSubId)
+                    }
+                } else {
+                    mContext.getString(R.string.network_disconnected)
+                }
+            }
+    }
+
+    override fun onNetworkSelectModeUpdated(mode: Int) {
+        preference?.isEnabled = mode != TelephonyManager.NETWORK_SELECTION_MODE_AUTO
+    }
+}
diff --git a/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt b/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.kt
new file mode 100644
index 0000000..3408eb7
--- /dev/null
+++ b/src/com/android/settings/network/telephony/ims/ImsMmTelRepository.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.network.telephony.ims
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import android.telephony.CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL
+import android.telephony.TelephonyManager
+import android.telephony.ims.ImsManager
+import android.telephony.ims.ImsMmTelManager
+import android.telephony.ims.ImsMmTelManager.WiFiCallingMode
+import android.util.Log
+
+interface ImsMmTelRepository {
+    @WiFiCallingMode
+    fun getWiFiCallingMode(): Int
+}
+
+class ImsMmTelRepositoryImpl(
+    context: Context,
+    private val subId: Int,
+    private val imsMmTelManager: ImsMmTelManager = ImsManager(context).getImsMmTelManager(subId),
+) : ImsMmTelRepository {
+
+    private val telephonyManager = context.getSystemService(TelephonyManager::class.java)!!
+        .createForSubscriptionId(subId)
+
+    private val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!!
+
+    @WiFiCallingMode
+    override fun getWiFiCallingMode(): Int = try {
+        when {
+            !imsMmTelManager.isVoWiFiSettingEnabled -> ImsMmTelManager.WIFI_MODE_UNKNOWN
+
+            telephonyManager.isNetworkRoaming && !useWfcHomeModeForRoaming() ->
+                imsMmTelManager.getVoWiFiRoamingModeSetting()
+
+            else -> imsMmTelManager.getVoWiFiModeSetting()
+        }
+    } catch (e: IllegalArgumentException) {
+        Log.w(TAG, "getWiFiCallingMode failed subId=$subId", e)
+        ImsMmTelManager.WIFI_MODE_UNKNOWN
+    }
+
+    private fun useWfcHomeModeForRoaming(): Boolean =
+        carrierConfigManager
+            .getConfigForSubId(subId, KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL)
+            .getBoolean(KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL)
+
+    private companion object {
+        private const val TAG = "ImsMmTelRepository"
+    }
+}
diff --git a/src/com/android/settings/network/tether/TetherSettings.java b/src/com/android/settings/network/tether/TetherSettings.java
index 5398e9b..77ef4b6 100644
--- a/src/com/android/settings/network/tether/TetherSettings.java
+++ b/src/com/android/settings/network/tether/TetherSettings.java
@@ -45,19 +45,17 @@
 import android.os.UserManager;
 import android.provider.SearchIndexableResource;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
 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;
 import com.android.settings.Utils;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.datausage.DataSaverBackend;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.wifi.tether.WifiTetherPreferenceController;
@@ -99,9 +97,9 @@
     @VisibleForTesting
     RestrictedSwitchPreference mUsbTether;
     @VisibleForTesting
-    SwitchPreference mBluetoothTether;
+    TwoStatePreference mBluetoothTether;
     @VisibleForTesting
-    SwitchPreference mEthernetTether;
+    TwoStatePreference mEthernetTether;
 
     private BroadcastReceiver mTetherChangeReceiver;
     private BroadcastReceiver mBluetoothStateReceiver;
@@ -247,8 +245,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
@@ -365,7 +363,8 @@
 
         if (isUiRestricted()) {
             if (!isUiRestrictedByOnlyAdmin()) {
-                getEmptyTextView().setText(R.string.tethering_settings_not_available);
+                getEmptyTextView().setText(
+                        com.android.settingslib.R.string.tethering_settings_not_available);
             }
             getPreferenceScreen().removeAll();
             return;
@@ -629,11 +628,6 @@
                 }
 
                 @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return !FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
-                }
-
-                @Override
                 public List<String> getNonIndexableKeys(Context context) {
                     final List<String> keys = super.getNonIndexableKeys(context);
                     final TetheringManager tm =
diff --git a/src/com/android/settings/nfc/AndroidBeam.java b/src/com/android/settings/nfc/AndroidBeam.java
deleted file mode 100644
index b1fcd57..0000000
--- a/src/com/android/settings/nfc/AndroidBeam.java
+++ /dev/null
@@ -1,148 +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(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/NfcForegroundPreferenceController.java b/src/com/android/settings/nfc/NfcForegroundPreferenceController.java
index 611d3fc..a4cad87 100644
--- a/src/com/android/settings/nfc/NfcForegroundPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcForegroundPreferenceController.java
@@ -43,7 +43,7 @@
 
     public NfcForegroundPreferenceController(Context context, String key) {
         super(context, key);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mListValues = context.getResources().getStringArray(R.array.nfc_payment_favor_values);
         mListEntries = context.getResources().getStringArray(R.array.nfc_payment_favor);
     }
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/AppBubbleListPreferenceController.java b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
index bf7fcc0..377cb46 100644
--- a/src/com/android/settings/notification/AppBubbleListPreferenceController.java
+++ b/src/com/android/settings/notification/AppBubbleListPreferenceController.java
@@ -21,7 +21,6 @@
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_SELECTED;
 
-import android.annotation.Nullable;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
 import android.content.Context;
@@ -31,6 +30,7 @@
 import android.view.View;
 import android.widget.ImageView;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 
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/BubbleHelper.java b/src/com/android/settings/notification/BubbleHelper.java
new file mode 100644
index 0000000..3bde307
--- /dev/null
+++ b/src/com/android/settings/notification/BubbleHelper.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
+
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.res.Resources;
+import android.provider.Settings;
+
+/**
+ * Helper class for configuring notification bubbles.
+ */
+public class BubbleHelper {
+
+    /**
+     * {@link Settings.Secure.NOTIFICATION_BUBBLES} is enabled.
+     */
+    public static final int SYSTEM_WIDE_ON = 1;
+
+    /**
+     * {@link Settings.Secure.NOTIFICATION_BUBBLES} is disabled.
+     */
+    public static final int SYSTEM_WIDE_OFF = 0;
+
+    /**
+     * Returns true if the device supports bubbles.
+     */
+    public static boolean isSupportedByDevice(Context context) {
+        ActivityManager am = context.getSystemService(ActivityManager.class);
+        if (am.isLowRamDevice()) {
+            return false;
+        }
+        if (!Resources.getSystem().getBoolean(com.android.internal.R.bool.config_supportsBubble)) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * Returns true if the device supports bubbles and the global settings is enabled.
+     */
+    public static boolean isEnabledSystemWide(Context context) {
+        if (!isSupportedByDevice(context)) {
+            return false;
+        }
+        return Settings.Secure.getInt(context.getContentResolver(), NOTIFICATION_BUBBLES,
+                SYSTEM_WIDE_ON) == SYSTEM_WIDE_ON;
+    }
+}
diff --git a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
index eeb9924..d11e2e9 100644
--- a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
@@ -18,7 +18,6 @@
 
 import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import android.app.ActivityManager;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.database.ContentObserver;
@@ -26,7 +25,6 @@
 import android.os.Handler;
 import android.provider.Settings;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -44,11 +42,6 @@
 
     private static final String TAG = "BubbleNotifPrefContr";
 
-    @VisibleForTesting
-    static final int ON = 1;
-    @VisibleForTesting
-    static final int OFF = 0;
-
     private SettingObserver mSettingObserver;
 
     public BubbleNotificationPreferenceController(Context context, String preferenceKey) {
@@ -79,8 +72,7 @@
 
     @Override
     public int getAvailabilityStatus() {
-        ActivityManager am = mContext.getSystemService(ActivityManager.class);
-        return am.isLowRamDevice() ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
+        return BubbleHelper.isSupportedByDevice(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     @Override
@@ -96,14 +88,14 @@
 
     @Override
     public boolean isChecked() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
+        return Settings.Global.getInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+                BubbleHelper.SYSTEM_WIDE_ON) == BubbleHelper.SYSTEM_WIDE_ON;
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, isChecked ? ON : OFF);
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+                isChecked ? BubbleHelper.SYSTEM_WIDE_ON : BubbleHelper.SYSTEM_WIDE_OFF);
         return true;
     }
 
diff --git a/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
index 3dac732..541e920 100644
--- a/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
@@ -18,12 +18,9 @@
 
 import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import android.app.ActivityManager;
 import android.content.Context;
 import android.provider.Settings;
 
-import androidx.annotation.VisibleForTesting;
-
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
@@ -32,9 +29,6 @@
  */
 public class BubbleSummaryNotificationPreferenceController extends BasePreferenceController {
 
-    @VisibleForTesting
-    static final int ON = 1;
-
     public BubbleSummaryNotificationPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
     }
@@ -49,12 +43,11 @@
 
     @Override
     public int getAvailabilityStatus() {
-        ActivityManager am = mContext.getSystemService(ActivityManager.class);
-        return am.isLowRamDevice() ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
+        return BubbleHelper.isSupportedByDevice(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
     }
 
     private boolean areBubblesEnabled() {
         return Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
+                NOTIFICATION_BUBBLES, BubbleHelper.SYSTEM_WIDE_ON) == BubbleHelper.SYSTEM_WIDE_ON;
     }
 }
diff --git a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
index 1ede911..f1857de 100644
--- a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
@@ -84,7 +84,7 @@
         mWorkSettingKey = workSettingKey;
 
         mProfileUserId = Utils.getManagedProfileId(UserManager.get(context), UserHandle.myUserId());
-        final LockPatternUtils utils = FeatureFactory.getFactory(context)
+        final LockPatternUtils utils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context);
         mSecure = utils.isSecure(UserHandle.myUserId());
@@ -278,7 +278,7 @@
 
     public static int getSummaryResource(Context context) {
         final boolean enabled = getLockscreenNotificationsEnabled(context);
-        final boolean secure = FeatureFactory.getFactory(context)
+        final boolean secure = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context)
                 .isSecure(UserHandle.myUserId());
diff --git a/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java b/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java
index 9ea8c58..3f300c0 100644
--- a/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java
+++ b/src/com/android/settings/notification/NotificationAccessConfirmationActivity.java
@@ -24,7 +24,6 @@
 import static com.android.internal.notification.NotificationAccessConfirmationActivityContract.EXTRA_USER_ID;
 
 import android.Manifest;
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.NotificationManager;
 import android.app.admin.DevicePolicyManager;
@@ -44,6 +43,8 @@
 import android.view.accessibility.AccessibilityEvent;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.app.AlertActivity;
 import com.android.internal.app.AlertController;
 import com.android.settings.R;
diff --git a/src/com/android/settings/notification/NotificationAccessSettings.java b/src/com/android/settings/notification/NotificationAccessSettings.java
index e2ef0dd..6f16e56 100644
--- a/src/com/android/settings/notification/NotificationAccessSettings.java
+++ b/src/com/android/settings/notification/NotificationAccessSettings.java
@@ -19,7 +19,6 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_APPS_CANNOT_ACCESS_NOTIFICATION_SETTINGS;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED;
 
-import android.annotation.Nullable;
 import android.app.NotificationManager;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
@@ -40,6 +39,7 @@
 import android.view.View;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
 
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..dfdd649
--- /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() || !Flags.vibrateWhileUnlocked()) {
+            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/RedactNotificationPreferenceController.java b/src/com/android/settings/notification/RedactNotificationPreferenceController.java
index 0b9ad44..4ebf08e 100644
--- a/src/com/android/settings/notification/RedactNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/RedactNotificationPreferenceController.java
@@ -130,7 +130,7 @@
                 ? UserHandle.myUserId() : mProfileUserId;
 
         // hide if lockscreen isn't secure for this user
-        final LockPatternUtils utils = FeatureFactory.getFactory(mContext)
+        final LockPatternUtils utils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(mContext);
         if (!utils.isSecure(userId)) {
diff --git a/src/com/android/settings/notification/RedactionInterstitial.java b/src/com/android/settings/notification/RedactionInterstitial.java
index d6fdaf8..83d5a01 100644
--- a/src/com/android/settings/notification/RedactionInterstitial.java
+++ b/src/com/android/settings/notification/RedactionInterstitial.java
@@ -150,7 +150,7 @@
                             .setText(R.string.app_notifications_dialog_done)
                             .setListener(this::onDoneButtonClicked)
                             .setButtonType(FooterButton.ButtonType.NEXT)
-                            .setTheme(R.style.SudGlifButton_Primary)
+                            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                             .build()
             );
         }
diff --git a/src/com/android/settings/notification/RemoteVolumeGroupController.java b/src/com/android/settings/notification/RemoteVolumeGroupController.java
index 47a12d0..919b6d0 100644
--- a/src/com/android/settings/notification/RemoteVolumeGroupController.java
+++ b/src/com/android/settings/notification/RemoteVolumeGroupController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.notification;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.content.Context;
 import android.content.Intent;
 import android.media.MediaRouter2Manager;
@@ -53,14 +55,16 @@
     @VisibleForTesting
     static final String SWITCHER_PREFIX = "OUTPUT_SWITCHER";
 
+    @Nullable
     private PreferenceCategory mPreferenceCategory;
-    private List<RoutingSessionInfo> mRoutingSessionInfos = new ArrayList<>();
+    private final List<RoutingSessionInfo> mRoutingSessionInfos = new ArrayList<>();
 
     @VisibleForTesting
     LocalMediaManager mLocalMediaManager;
     @VisibleForTesting
     MediaRouter2Manager mRouterManager;
 
+    // Called via reflection from BasePreferenceController#createInstance().
     public RemoteVolumeGroupController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         if (mLocalMediaManager == null) {
@@ -71,6 +75,19 @@
         mRouterManager = MediaRouter2Manager.getInstance(context);
     }
 
+    @VisibleForTesting
+    /* package */ RemoteVolumeGroupController(
+            @NonNull Context context,
+            @NonNull String preferenceKey,
+            @NonNull LocalMediaManager localMediaManager,
+            @NonNull MediaRouter2Manager mediaRouter2Manager) {
+        super(context, preferenceKey);
+        mLocalMediaManager = localMediaManager;
+        mRouterManager = mediaRouter2Manager;
+        mLocalMediaManager.registerCallback(this);
+        mLocalMediaManager.startScan();
+    }
+
     @Override
     public int getAvailabilityStatus() {
         if (mRoutingSessionInfos.isEmpty()) {
@@ -89,11 +106,7 @@
 
     private void initRemoteMediaSession() {
         mRoutingSessionInfos.clear();
-        for (RoutingSessionInfo info : mLocalMediaManager.getActiveMediaSession()) {
-            if (!info.isSystemSession()) {
-                mRoutingSessionInfos.add(info);
-            }
-        }
+        mRoutingSessionInfos.addAll(mLocalMediaManager.getRemoteRoutingSessions());
     }
 
     @Override
@@ -129,15 +142,18 @@
                 seekBarPreference.setProgress(info.getVolume());
                 seekBarPreference.setMin(0);
                 seekBarPreference.setOnPreferenceChangeListener(this);
-                seekBarPreference.setIcon(R.drawable.ic_volume_remote);
+                seekBarPreference.setIcon(com.android.settingslib.R.drawable.ic_volume_remote);
                 seekBarPreference.setEnabled(mLocalMediaManager.shouldEnableVolumeSeekBar(info));
                 mPreferenceCategory.addPreference(seekBarPreference);
             }
 
             Preference switcherPreference = mPreferenceCategory.findPreference(
                     SWITCHER_PREFIX + info.getId());
-            final boolean isMediaOutputDisabled = mLocalMediaManager.shouldDisableMediaOutput(
-                    info.getClientPackageName());
+
+            // TODO: b/291277292 - Remove references to MediaRouter2Manager and implement long-term
+            //  solution in SettingsLib.
+            final boolean isMediaOutputDisabled =
+                    mRouterManager.getTransferableRoutes(info.getClientPackageName()).isEmpty();
             final CharSequence outputTitle = mContext.getString(R.string.media_output_label_title,
                     appName);
             if (switcherPreference != null) {
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index b0d5d2a..4575708 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -40,11 +40,11 @@
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.sound.HandsFreeProfileOutputPreferenceController;
 import com.android.settings.widget.PreferenceCategoryController;
+import com.android.settings.widget.UpdatableListPreferenceDialogFragment;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.Instrumentable;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.search.SearchIndexable;
-import com.android.settingslib.widget.UpdatableListPreferenceDialogFragment;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 9f14b73..2156c05 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -140,6 +140,11 @@
 
     protected void init() {
         if (mSeekBar == null) return;
+        // It's unnecessary to set up relevant volumizer configuration if preference is disabled.
+        if (!isEnabled()) {
+            mSeekBar.setEnabled(false);
+            return;
+        }
         final SeekBarVolumizer.Callback sbvc = new SeekBarVolumizer.Callback() {
             @Override
             public void onSampleStarting(SeekBarVolumizer sbv) {
@@ -189,10 +194,6 @@
         if (mListener != null) {
             mListener.onUpdateMuteState();
         }
-        if (!isEnabled()) {
-            mSeekBar.setEnabled(false);
-            mVolumizer.stop();
-        }
     }
 
     protected void updateIconView() {
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/BubbleCategoryPreferenceController.java b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
index ad3a10c..37baf8b 100644
--- a/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
@@ -16,20 +16,17 @@
 
 package com.android.settings.notification.app;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
-
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
+import com.android.settings.notification.BubbleHelper;
+
 public class BubbleCategoryPreferenceController extends NotificationPreferenceController {
 
     private static final String KEY = "bubbles";
-    @VisibleForTesting
-    static final int ON = 1;
 
     public BubbleCategoryPreferenceController(Context context) {
         super(context, null);
@@ -40,7 +37,7 @@
         if (!super.isAvailable()) {
             return false;
         }
-        return areBubblesEnabled();
+        return BubbleHelper.isEnabledSystemWide(mContext);
     }
 
     @Override
@@ -64,10 +61,4 @@
             preference.setIntent(intent);
         }
     }
-
-
-    private boolean areBubblesEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
-    }
 }
diff --git a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
index 0b9529b..fcabe9b 100644
--- a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
@@ -16,20 +16,17 @@
 
 package com.android.settings.notification.app;
 
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
-
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
+import com.android.settings.notification.BubbleHelper;
+
 public class BubbleLinkPreferenceController extends NotificationPreferenceController {
 
     private static final String KEY = "notification_bubbles";
-    @VisibleForTesting
-    static final int ON = 1;
 
     public BubbleLinkPreferenceController(Context context) {
         super(context, null);
@@ -40,7 +37,7 @@
         if (!super.isAvailable()) {
             return false;
         }
-        return areBubblesEnabled();
+        return BubbleHelper.isEnabledSystemWide(mContext);
     }
 
     @Override
@@ -64,10 +61,4 @@
             preference.setIntent(intent);
         }
     }
-
-
-    private boolean areBubblesEnabled() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
-    }
 }
diff --git a/src/com/android/settings/notification/app/BubblePreferenceController.java b/src/com/android/settings/notification/app/BubblePreferenceController.java
index 351b463..3bbb059 100644
--- a/src/com/android/settings/notification/app/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/app/BubblePreferenceController.java
@@ -19,17 +19,16 @@
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
 import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import android.annotation.Nullable;
-import android.app.ActivityManager;
 import android.app.NotificationChannel;
 import android.content.Context;
 import android.provider.Settings;
 
-import androidx.annotation.VisibleForTesting;
+import androidx.annotation.Nullable;
 import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
 
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.notification.BubbleHelper;
 import com.android.settings.notification.NotificationBackend;
 import com.android.settingslib.RestrictedSwitchPreference;
 
@@ -42,10 +41,6 @@
 
     private static final String TAG = "BubblePrefContr";
     private static final String KEY = "bubble_pref";
-    @VisibleForTesting
-    static final int SYSTEM_WIDE_ON = 1;
-    @VisibleForTesting
-    static final int SYSTEM_WIDE_OFF = 0;
 
     private FragmentManager mFragmentManager;
     private boolean mIsAppPage;
@@ -146,9 +141,7 @@
     }
 
     private boolean isEnabled() {
-        ActivityManager am = mContext.getSystemService(ActivityManager.class);
-        return !am.isLowRamDevice() && Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF) == SYSTEM_WIDE_ON;
+        return BubbleHelper.isEnabledSystemWide(mContext);
     }
 
     /**
@@ -163,7 +156,7 @@
         // correct preference state
         Settings.Secure.putInt(context.getContentResolver(),
                 NOTIFICATION_BUBBLES,
-                SYSTEM_WIDE_OFF);
+                BubbleHelper.SYSTEM_WIDE_OFF);
     }
 
     /**
@@ -176,6 +169,6 @@
         // correct preference state
         Settings.Secure.putInt(context.getContentResolver(),
                 NOTIFICATION_BUBBLES,
-                SYSTEM_WIDE_ON);
+                BubbleHelper.SYSTEM_WIDE_ON);
     }
 }
diff --git a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
index 51370b1..888bd25 100644
--- a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
@@ -18,18 +18,16 @@
 
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_ALL;
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
-import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import android.app.ActivityManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.provider.Settings;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
+import com.android.settings.notification.BubbleHelper;
 import com.android.settings.notification.NotificationBackend;
 
 /**
@@ -38,9 +36,6 @@
 public class BubbleSummaryPreferenceController extends NotificationPreferenceController {
     private static final String KEY = "bubble_pref_link";
 
-    @VisibleForTesting
-    static final int ON = 1;
-
     public BubbleSummaryPreferenceController(Context context, NotificationBackend backend) {
         super(context, backend);
     }
@@ -105,8 +100,6 @@
     }
 
     private boolean isGloballyEnabled() {
-        ActivityManager am = mContext.getSystemService(ActivityManager.class);
-        return !am.isLowRamDevice() && Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
+        return BubbleHelper.isEnabledSystemWide(mContext);
     }
 }
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/ConversationHeaderPreferenceController.java b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
index 43b50c8..2b2184e 100644
--- a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
@@ -89,8 +89,7 @@
                     .setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
                             EntityHeaderController.ActionType.ACTION_NONE)
                     .setHasAppInfoLink(true)
-                    .setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
-                    .done(activity, mContext);
+                    .done(mContext);
 
             pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
             pref.findViewById(R.id.entity_header).setBackground(null);
diff --git a/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt b/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt
index ec99749..4349b4c 100644
--- a/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt
+++ b/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceController.kt
@@ -21,6 +21,7 @@
 import android.app.AppOpsManager.OP_USE_FULL_SCREEN_INTENT
 import android.content.AttributionSource
 import android.content.Context
+import android.content.pm.PackageManager.NameNotFoundException
 import android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET
 import android.content.pm.PackageManager.GET_PERMISSIONS
 import android.os.UserHandle
@@ -79,12 +80,16 @@
     }
 
     private fun isPermissionRequested(): Boolean {
-        val packageInfo = packageManager.getPackageInfo(packageName, GET_PERMISSIONS)
+        try {
+            val packageInfo = packageManager.getPackageInfo(packageName, GET_PERMISSIONS)
 
-        for (requestedPermission in packageInfo.requestedPermissions) {
-            if (USE_FULL_SCREEN_INTENT.equals(requestedPermission)) {
-                return true
+            for (requestedPermission in packageInfo.requestedPermissions.orEmpty()) {
+                if (USE_FULL_SCREEN_INTENT.equals(requestedPermission)) {
+                    return true
+                }
             }
+        } catch (exception: NameNotFoundException) {
+            Log.e(TAG, "isPermissionRequested failed: $exception")
         }
 
         return false
@@ -115,4 +120,4 @@
         const val KEY_FSI_PERMISSION = "fsi_permission"
         const val TAG = "FsiPermPrefController"
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/notification/app/HeaderPreferenceController.java b/src/com/android/settings/notification/app/HeaderPreferenceController.java
index 7379d55..220e7b5 100644
--- a/src/com/android/settings/notification/app/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/HeaderPreferenceController.java
@@ -25,7 +25,6 @@
 import android.text.TextUtils;
 import android.view.View;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.Preference;
@@ -90,8 +89,7 @@
                     .setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
                             EntityHeaderController.ActionType.ACTION_NONE)
                     .setHasAppInfoLink(true)
-                    .setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
-                    .done(activity, mContext);
+                    .done(mContext);
             pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
             pref.findViewById(R.id.entity_header).setBackground(null);
         }
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/NotificationPreferenceController.java b/src/com/android/settings/notification/app/NotificationPreferenceController.java
index fb19d9d..ef4bab9 100644
--- a/src/com/android/settings/notification/app/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/app/NotificationPreferenceController.java
@@ -17,21 +17,18 @@
 package com.android.settings.notification.app;
 
 import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.os.UserHandle.USER_SYSTEM;
 
-import android.annotation.Nullable;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
 import android.app.NotificationManager;
 import android.content.Context;
-import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ShortcutInfo;
 import android.graphics.drawable.Drawable;
 import android.os.UserManager;
-import android.provider.Settings;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 
 import com.android.settings.notification.NotificationBackend;
diff --git a/src/com/android/settings/notification/app/RecentConversationPreference.java b/src/com/android/settings/notification/app/RecentConversationPreference.java
index 167fdd6..b60810a 100644
--- a/src/com/android/settings/notification/app/RecentConversationPreference.java
+++ b/src/com/android/settings/notification/app/RecentConversationPreference.java
@@ -28,7 +28,7 @@
 public class RecentConversationPreference extends TwoTargetPreference {
 
     private OnClearClickListener mOnClearClickListener;
-
+    private final Context mContext;
     private View mClearView;
 
     public interface OnClearClickListener {
@@ -37,6 +37,7 @@
 
     public RecentConversationPreference(Context context) {
         super(context);
+        mContext = context;
     }
 
     public void setOnClearClickListener(
@@ -70,6 +71,9 @@
         final View widgetFrame = view.findViewById(android.R.id.widget_frame);
         widgetFrame.setVisibility(mOnClearClickListener != null ? View.VISIBLE : View.GONE);
         mClearView = view.findViewById(getClearId());
+        mClearView.setContentDescription(
+                mContext.getString(R.string.clear_conversation, getTitle()));
+
         mClearView.setOnClickListener(v -> {
             if (mOnClearClickListener != null) {
                 mOnClearClickListener.onClear();
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index 4808773..156df96 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 {
@@ -365,10 +365,8 @@
                 }
                 final int newState = isChecked ? 1 : 0;
                 if (oldState != newState) {
-                    for (int user : mUm.getProfileIds(ActivityManager.getCurrentUser(), false)) {
-                        Settings.Secure.putIntForUser(getContentResolver(),
-                                NOTIFICATION_HISTORY_ENABLED, newState, user);
-                    }
+                    Settings.Secure.putInt(
+                            getContentResolver(), NOTIFICATION_HISTORY_ENABLED, newState);
                     mUiEventLogger.log(isChecked ? NotificationHistoryEvent.NOTIFICATION_HISTORY_ON
                             : NotificationHistoryEvent.NOTIFICATION_HISTORY_OFF);
                     Log.d(TAG, "onSwitchChange history to " + isChecked);
diff --git a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
index 224c31d..5923a4e 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
@@ -2,13 +2,13 @@
 
 import static android.view.HapticFeedbackConstants.CLOCK_TICK;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.graphics.Canvas;
 import android.util.AttributeSet;
 import android.view.View;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.DividerItemDecoration;
 import androidx.recyclerview.widget.ItemTouchHelper;
 import androidx.recyclerview.widget.LinearLayoutManager;
diff --git a/src/com/android/settings/notification/history/NotificationSbnAdapter.java b/src/com/android/settings/notification/history/NotificationSbnAdapter.java
index 1d61ae7..c556b55 100644
--- a/src/com/android/settings/notification/history/NotificationSbnAdapter.java
+++ b/src/com/android/settings/notification/history/NotificationSbnAdapter.java
@@ -120,7 +120,7 @@
             holder.setDividerVisible(position < (mValues.size() -1));
             int userId = normalizeUserId(sbn);
             if (!mUserBadgeCache.containsKey(userId)) {
-                Drawable profile = mContext.getPackageManager().getUserBadgeForDensity(
+                Drawable profile = mContext.getPackageManager().getUserBadgeForDensityNoBackground(
                         UserHandle.of(userId), 0);
                 mUserBadgeCache.put(userId, profile);
             }
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/AbstractZenModePreferenceController.java b/src/com/android/settings/notification/zen/AbstractZenModePreferenceController.java
index 02e4015..038196f 100644
--- a/src/com/android/settings/notification/zen/AbstractZenModePreferenceController.java
+++ b/src/com/android/settings/notification/zen/AbstractZenModePreferenceController.java
@@ -68,7 +68,7 @@
         mNotificationManager = (NotificationManager) context.getSystemService(
                 Context.NOTIFICATION_SERVICE);
 
-        final FeatureFactory featureFactory = FeatureFactory.getFactory(mContext);
+        final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
         mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
         mBackend = ZenModeBackend.getInstance(context);
     }
diff --git a/src/com/android/settings/notification/zen/ZenAccessSettings.java b/src/com/android/settings/notification/zen/ZenAccessSettings.java
index aac6954..418a571 100644
--- a/src/com/android/settings/notification/zen/ZenAccessSettings.java
+++ b/src/com/android/settings/notification/zen/ZenAccessSettings.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.notification.zen;
 
-import android.annotation.Nullable;
 import android.app.NotificationManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
@@ -30,6 +29,7 @@
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
diff --git a/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java b/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java
index a0c33df..95823fe 100644
--- a/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java
@@ -76,7 +76,7 @@
 
         mController.setIcon(getIcon())
                 .setLabel(mRule.getName())
-                .done(mFragment.getActivity(), false /* rebindActions */);
+                .done(false /* rebindActions */);
     }
 
     private Drawable getIcon() {
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/ZenModeBackend.java b/src/com/android/settings/notification/zen/ZenModeBackend.java
index 1079865..c290c83 100644
--- a/src/com/android/settings/notification/zen/ZenModeBackend.java
+++ b/src/com/android/settings/notification/zen/ZenModeBackend.java
@@ -56,7 +56,6 @@
     @VisibleForTesting
     protected static final String ZEN_MODE_FROM_NONE = "zen_mode_from_none";
     protected static final int SOURCE_NONE = -1;
-    private static List<String> mDefaultRuleIds;
 
     private static ZenModeBackend sInstance;
 
@@ -65,7 +64,7 @@
     protected NotificationManager.Policy mPolicy;
     private final NotificationManager mNotificationManager;
 
-    private String TAG = "ZenModeSettingsBackend";
+    private static final String TAG = "ZenModeSettingsBackend";
     private final Context mContext;
 
     public static ZenModeBackend getInstance(Context context) {
@@ -95,19 +94,32 @@
     }
 
     protected boolean updateZenRule(String id, AutomaticZenRule rule) {
-        return NotificationManager.from(mContext).updateAutomaticZenRule(id, rule);
+        if (android.app.Flags.modesApi()) {
+            return mNotificationManager.updateAutomaticZenRule(id, rule, /* fromUser= */ true);
+        } else {
+            return NotificationManager.from(mContext).updateAutomaticZenRule(id, rule);
+        }
     }
 
     protected void setZenMode(int zenMode) {
-        NotificationManager.from(mContext).setZenMode(zenMode, null, TAG);
+        if (android.app.Flags.modesApi()) {
+            mNotificationManager.setZenMode(zenMode, null, TAG, /* fromUser= */ true);
+        } else {
+            NotificationManager.from(mContext).setZenMode(zenMode, null, TAG);
+        }
         mZenMode = getZenMode();
     }
 
     protected void setZenModeForDuration(int minutes) {
         Uri conditionId = ZenModeConfig.toTimeCondition(mContext, minutes,
                 ActivityManager.getCurrentUser(), true).id;
-        mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
-                conditionId, TAG);
+        if (android.app.Flags.modesApi()) {
+            mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
+                        conditionId, TAG, /* fromUser= */ true);
+        } else {
+            mNotificationManager.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS,
+                    conditionId, TAG);
+        }
         mZenMode = getZenMode();
     }
 
@@ -180,7 +192,11 @@
             int priorityConversationSenders) {
         mPolicy = new NotificationManager.Policy(priorityCategories, priorityCallSenders,
                 priorityMessageSenders, suppressedVisualEffects, priorityConversationSenders);
-        mNotificationManager.setNotificationPolicy(mPolicy);
+        if (android.app.Flags.modesApi()) {
+            mNotificationManager.setNotificationPolicy(mPolicy, /* fromUser= */ true);
+        } else {
+            mNotificationManager.setNotificationPolicy(mPolicy);
+        }
     }
 
 
@@ -357,7 +373,11 @@
     }
 
     public boolean removeZenRule(String ruleId) {
-        return NotificationManager.from(mContext).removeAutomaticZenRule(ruleId);
+        if (android.app.Flags.modesApi()) {
+            return mNotificationManager.removeAutomaticZenRule(ruleId, /* fromUser= */ true);
+        } else {
+            return NotificationManager.from(mContext).removeAutomaticZenRule(ruleId);
+        }
     }
 
     public NotificationManager.Policy getConsolidatedPolicy() {
@@ -366,7 +386,11 @@
 
     protected String addZenRule(AutomaticZenRule rule) {
         try {
-            return NotificationManager.from(mContext).addAutomaticZenRule(rule);
+            if (android.app.Flags.modesApi()) {
+                return mNotificationManager.addAutomaticZenRule(rule, /* fromUser= */ true);
+            } else {
+                return NotificationManager.from(mContext).addAutomaticZenRule(rule);
+            }
         } catch (Exception e) {
             return null;
         }
@@ -429,10 +453,7 @@
     }
 
     private static List<String> getDefaultRuleIds() {
-        if (mDefaultRuleIds == null) {
-            mDefaultRuleIds = ZenModeConfig.DEFAULT_RULE_IDS;
-        }
-        return mDefaultRuleIds;
+        return ZenModeConfig.DEFAULT_RULE_IDS;
     }
 
     NotificationManager.Policy toNotificationPolicy(ZenPolicy policy) {
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/ZenModeRuleSettingsBase.java b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java
index cda5b1a..ff217b5 100644
--- a/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java
+++ b/src/com/android/settings/notification/zen/ZenModeRuleSettingsBase.java
@@ -19,7 +19,9 @@
 import static android.app.NotificationManager.EXTRA_AUTOMATIC_RULE_ID;
 
 import android.app.AutomaticZenRule;
+import android.app.Flags;
 import android.app.NotificationManager;
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
@@ -100,10 +102,21 @@
                     public boolean onPreferenceClick(Preference preference) {
                         Bundle bundle = new Bundle();
                         bundle.putString(ZenCustomRuleSettings.RULE_ID, mId);
+
+                        // When modes_api flag is on, we skip the radio button screen distinguishing
+                        // between "default" and "custom" and take users directly to the custom
+                        // settings screen.
+                        String destination = ZenCustomRuleSettings.class.getName();
+                        int sourceMetricsCategory = 0;
+                        if (Flags.modesApi()) {
+                            // From ZenRuleCustomPolicyPreferenceController#launchCustomSettings
+                            destination = ZenCustomRuleConfigSettings.class.getName();
+                            sourceMetricsCategory = SettingsEnums.ZEN_CUSTOM_RULE_SOUND_SETTINGS;
+                        }
                         new SubSettingLauncher(mContext)
-                                .setDestination(ZenCustomRuleSettings.class.getName())
+                                .setDestination(destination)
                                 .setArguments(bundle)
-                                .setSourceMetricsCategory(0) // TODO
+                                .setSourceMetricsCategory(sourceMetricsCategory)
                                 .launch();
                         return true;
                     }
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/ZenModeSliceBuilder.java b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
index 1f553a2..4f6f058 100644
--- a/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
+++ b/src/com/android/settings/notification/zen/ZenModeSliceBuilder.java
@@ -19,6 +19,7 @@
 import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
 
 import android.annotation.ColorInt;
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.settings.SettingsEnums;
@@ -26,6 +27,8 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.net.Uri;
+import android.os.UserHandle;
+import android.os.UserManager;
 import android.provider.Settings;
 
 import androidx.core.graphics.drawable.IconCompat;
@@ -40,6 +43,8 @@
 import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settings.slices.SliceBroadcastReceiver;
 import com.android.settings.slices.SliceBuilderUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.RestrictedLockUtilsInternal;
 
 public class ZenModeSliceBuilder {
 
@@ -84,8 +89,11 @@
                 isZenModeEnabled);
         final RowBuilder rowBuilder = new RowBuilder()
                 .setTitle(title)
-                .addEndItem(toggleSliceAction)
                 .setPrimaryAction(primarySliceAction);
+        if (!isManagedByAdmin(context)) {
+            rowBuilder.addEndItem(toggleSliceAction);
+        }
+
         if (!Utils.isSettingsIntelligence(context)) {
             rowBuilder.setSubtitle(subtitle);
         }
@@ -109,7 +117,12 @@
         } else {
             zenMode = Settings.Global.ZEN_MODE_OFF;
         }
-        NotificationManager.from(context).setZenMode(zenMode, null /* conditionId */, TAG);
+        if (Flags.modesApi()) {
+            NotificationManager.from(context).setZenMode(zenMode, /* conditionId= */ null, TAG,
+                    /* fromUser= */ true);
+        } else {
+            NotificationManager.from(context).setZenMode(zenMode, null /* conditionId */, TAG);
+        }
         // Do not notifyChange on Uri. The service takes longer to update the current value than it
         // does for the Slice to check the current value again. Let {@link SliceBroadcastRelay}
         // handle it.
@@ -152,4 +165,10 @@
         return PendingIntent.getBroadcast(context, 0 /* requestCode */, intent,
                 PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_MUTABLE);
     }
+
+    private static boolean isManagedByAdmin(Context context) {
+        EnforcedAdmin enforcedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+                context, UserManager.DISALLOW_ADJUST_VOLUME, UserHandle.myUserId());
+        return enforcedAdmin != null;
+    }
 }
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/ZenOnboardingActivity.java b/src/com/android/settings/notification/zen/ZenOnboardingActivity.java
index b70088c..a6e78eb 100644
--- a/src/com/android/settings/notification/zen/ZenOnboardingActivity.java
+++ b/src/com/android/settings/notification/zen/ZenOnboardingActivity.java
@@ -17,6 +17,7 @@
 package com.android.settings.notification.zen;
 
 import android.app.Activity;
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.app.NotificationManager.Policy;
 import android.app.settings.SettingsEnums;
@@ -129,7 +130,11 @@
                     Policy.PRIORITY_SENDERS_STARRED,
                     policy.priorityMessageSenders,
                     NotificationManager.Policy.getAllSuppressedVisualEffects());
-            mNm.setNotificationPolicy(newPolicy);
+            if (Flags.modesApi()) {
+                mNm.setNotificationPolicy(newPolicy, /* fromUser= */ true);
+            } else {
+                mNm.setNotificationPolicy(newPolicy);
+            }
             mMetrics.action(SettingsEnums.ACTION_ZEN_ONBOARDING_OK);
         } else {
             mMetrics.action(SettingsEnums.ACTION_ZEN_ONBOARDING_KEEP_CURRENT_SETTINGS);
@@ -180,7 +185,7 @@
 
     private static boolean withinShowTimeThreshold(Context context) {
         final SuggestionFeatureProvider featureProvider =
-                FeatureFactory.getFactory(context).getSuggestionFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSuggestionFeatureProvider();
         final SharedPreferences prefs = featureProvider.getSharedPrefs(context);
         final long currentTimeMs = System.currentTimeMillis();
         final long firstDisplayTimeMs;
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/onboarding/OnboardingFeatureProvider.kt b/src/com/android/settings/onboarding/OnboardingFeatureProvider.kt
new file mode 100644
index 0000000..f76e29a
--- /dev/null
+++ b/src/com/android/settings/onboarding/OnboardingFeatureProvider.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.onboarding
+
+import android.app.backup.BackupHelper
+import android.app.backup.BackupRestoreEventLogger
+import android.content.Context
+
+/**
+ * Provider for Onboarding related features.
+ */
+interface OnboardingFeatureProvider {
+    /**
+     * Mark this toggle preference has been changed.
+     * Called after [TogglePreferenceController.onPreferenceChange()].
+     *
+     * @param context App context
+     * @param preferenceKey The key to distinguish which preference has been changed.
+     */
+    fun markPreferenceHasChanged(context: Context, preferenceKey: String)
+
+    /**
+     * Return a BackupHelper for backup sound related settings.
+     *
+     * @param context App context
+     * @param logger To log B&R stats.
+     */
+    fun getSoundBackupHelper(context: Context, logger: BackupRestoreEventLogger): BackupHelper
+}
\ No newline at end of file
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
deleted file mode 100644
index 97fc343..0000000
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.overlay;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.settings.R;
-import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider;
-import com.android.settings.accessibility.AccessibilitySearchFeatureProvider;
-import com.android.settings.accounts.AccountFeatureProvider;
-import com.android.settings.applications.ApplicationFeatureProvider;
-import com.android.settings.aware.AwareFeatureProvider;
-import com.android.settings.biometrics.face.FaceFeatureProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
-import com.android.settings.bluetooth.BluetoothFeatureProvider;
-import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
-import com.android.settings.dashboard.DashboardFeatureProvider;
-import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
-import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider;
-import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
-import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
-import com.android.settings.fuelgauge.BatteryStatusFeatureProvider;
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
-import com.android.settings.gestures.AssistGestureFeatureProvider;
-import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
-import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider;
-import com.android.settings.localepicker.LocaleFeatureProvider;
-import com.android.settings.panel.PanelFeatureProvider;
-import com.android.settings.search.SearchFeatureProvider;
-import com.android.settings.security.SecurityFeatureProvider;
-import com.android.settings.security.SecuritySettingsFeatureProvider;
-import com.android.settings.slices.SlicesFeatureProvider;
-import com.android.settings.users.UserFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
-import com.android.settings.wifi.WifiTrackerLibProvider;
-import com.android.settings.wifi.factory.WifiFeatureProvider;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-/**
- * Abstract class for creating feature controllers. Allows OEM implementations to define their own
- * factories with their own controllers containing whatever code is needed to implement
- * the features. To provide a factory implementation, implementors should override
- * {@link R.string#config_featureFactory} in their override.
- */
-public abstract class FeatureFactory {
-    private static final String LOG_TAG = "FeatureFactory";
-    private static final boolean DEBUG = false;
-
-    protected static FeatureFactory sFactory;
-    protected static Context sAppContext;
-
-    /**
-     * Returns a factory for creating feature controllers. Creates the factory if it does not
-     * already exist. Uses the value of {@link R.string#config_featureFactory} to instantiate
-     * a factory implementation.
-     */
-    public static FeatureFactory getFactory(Context context) {
-        if (sFactory != null) {
-            return sFactory;
-        }
-        if (sAppContext == null) {
-            sAppContext = context.getApplicationContext();
-        }
-
-        if (DEBUG) Log.d(LOG_TAG, "getFactory");
-        final String clsName = context.getString(R.string.config_featureFactory);
-        if (TextUtils.isEmpty(clsName)) {
-            throw new UnsupportedOperationException("No feature factory configured");
-        }
-        try {
-            sFactory = (FeatureFactory) context.getClassLoader().loadClass(clsName).newInstance();
-        } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
-            throw new FactoryNotFoundException(e);
-        }
-
-        if (DEBUG) Log.d(LOG_TAG, "started " + sFactory.getClass().getSimpleName());
-        return sFactory;
-    }
-
-    /**
-     * Returns an application {@link Context} used to create this {@link FeatureFactory}. If the
-     * factory has not been properly created yet (aka {@link #getFactory} has not been called), this
-     * will return null.
-     */
-    @Nullable
-    public static Context getAppContext() {
-        return sAppContext;
-    }
-
-    public abstract AssistGestureFeatureProvider getAssistGestureFeatureProvider();
-
-    /**
-     * Gets implementation for the Suggestion Feature provider.
-     */
-    public abstract SuggestionFeatureProvider getSuggestionFeatureProvider();
-
-    /**
-     * Retrieves implementation for Hardware Info feature.
-     */
-    public abstract HardwareInfoFeatureProvider getHardwareInfoFeatureProvider();
-
-    public abstract SupportFeatureProvider getSupportFeatureProvider(Context context);
-
-    public abstract MetricsFeatureProvider getMetricsFeatureProvider();
-
-    public abstract PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context);
-
-    /**
-     * Retrieves implementation for Battery Status feature.
-     */
-    public abstract BatteryStatusFeatureProvider getBatteryStatusFeatureProvider(
-            Context context);
-
-    /**
-     * Gets implementation for Battery Settings provider.
-     */
-    public abstract BatterySettingsFeatureProvider getBatterySettingsFeatureProvider();
-
-    public abstract DashboardFeatureProvider getDashboardFeatureProvider(Context context);
-
-    public abstract DockUpdaterFeatureProvider getDockUpdaterFeatureProvider();
-
-    public abstract ApplicationFeatureProvider getApplicationFeatureProvider(Context context);
-
-    public abstract LocaleFeatureProvider getLocaleFeatureProvider();
-
-    public abstract EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(
-            Context context);
-
-    public abstract SearchFeatureProvider getSearchFeatureProvider();
-
-    public abstract SurveyFeatureProvider getSurveyFeatureProvider(Context context);
-
-    public abstract SecurityFeatureProvider getSecurityFeatureProvider();
-
-    public abstract UserFeatureProvider getUserFeatureProvider(Context context);
-
-    public abstract SlicesFeatureProvider getSlicesFeatureProvider();
-
-    public abstract AccountFeatureProvider getAccountFeatureProvider();
-
-    public abstract PanelFeatureProvider getPanelFeatureProvider();
-
-    public abstract ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context);
-
-    /**
-     * Retrieves implementation for Bluetooth feature.
-     */
-    public abstract BluetoothFeatureProvider getBluetoothFeatureProvider();
-
-    public abstract AwareFeatureProvider getAwareFeatureProvider();
-
-    public abstract FaceFeatureProvider getFaceFeatureProvider();
-
-    /**
-     * Gets implementation for Biometrics repository provider.
-     */
-    public abstract BiometricsRepositoryProvider getBiometricsRepositoryProvider();
-
-    /**
-     * Gets implementation for the WifiTrackerLib.
-     */
-    public abstract WifiTrackerLibProvider getWifiTrackerLibProvider();
-
-    /**
-     * Retrieves implementation for SecuritySettings feature.
-     */
-    public abstract SecuritySettingsFeatureProvider getSecuritySettingsFeatureProvider();
-
-    /**
-     * Retrieves implementation for Accessibility search index feature.
-     */
-    public abstract AccessibilitySearchFeatureProvider getAccessibilitySearchFeatureProvider();
-
-    /**
-     * Retrieves implementation for Accessibility metrics category feature.
-     */
-    public abstract AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider();
-
-    /**
-     * Retrieves implementation for advanced vpn feature.
-     */
-    public abstract AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider();
-
-    /**
-     * Retrieves implementation for Wi-Fi feature.
-     */
-    public abstract WifiFeatureProvider getWifiFeatureProvider();
-
-    /**
-     * Retrieves implementation for keyboard settings feature.
-     */
-    public abstract KeyboardSettingsFeatureProvider getKeyboardSettingsFeatureProvider();
-
-    /**
-     * Retrieves implementation for stylus settings feature.
-     */
-    public abstract StylusFeatureProvider getStylusFeatureProvider();
-
-    public static final class FactoryNotFoundException extends RuntimeException {
-        public FactoryNotFoundException(Throwable throwable) {
-            super("Unable to create factory. Did you misconfigure Proguard?", throwable);
-        }
-    }
-}
diff --git a/src/com/android/settings/overlay/FeatureFactory.kt b/src/com/android/settings/overlay/FeatureFactory.kt
new file mode 100644
index 0000000..8a68122
--- /dev/null
+++ b/src/com/android/settings/overlay/FeatureFactory.kt
@@ -0,0 +1,201 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.overlay
+
+import android.content.Context
+import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider
+import com.android.settings.accessibility.AccessibilitySearchFeatureProvider
+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
+import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
+import com.android.settings.dashboard.DashboardFeatureProvider
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider
+import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider
+import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider
+import com.android.settings.fuelgauge.BatterySettingsFeatureProvider
+import com.android.settings.fuelgauge.BatteryStatusFeatureProvider
+import com.android.settings.fuelgauge.PowerUsageFeatureProvider
+import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider
+import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider
+import com.android.settings.localepicker.LocaleFeatureProvider
+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
+import com.android.settings.slices.SlicesFeatureProvider
+import com.android.settings.users.UserFeatureProvider
+import com.android.settings.vpn2.AdvancedVpnFeatureProvider
+import com.android.settings.wifi.WifiTrackerLibProvider
+import com.android.settings.wifi.factory.WifiFeatureProvider
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider
+
+/**
+ * Abstract class for creating feature controllers.
+ *
+ * Allows OEM implementations to define their own factories with their own controllers containing
+ * whatever code is needed to implement the features.
+ * To provide a factory implementation, implementors should call [setFactory] in their Application.
+ */
+abstract class FeatureFactory {
+    /**
+     * Gets implementation for the Suggestion Feature provider.
+     */
+    abstract val suggestionFeatureProvider: SuggestionFeatureProvider
+
+    /**
+     * Retrieves implementation for Hardware Info feature.
+     */
+    abstract val hardwareInfoFeatureProvider: HardwareInfoFeatureProvider
+
+    /** Implementation for [SupportFeatureProvider]. */
+    open val supportFeatureProvider: SupportFeatureProvider? = null
+
+    abstract val metricsFeatureProvider: MetricsFeatureProvider
+
+    abstract val powerUsageFeatureProvider: PowerUsageFeatureProvider
+
+    /**
+     * Retrieves implementation for Battery Status feature.
+     */
+    abstract val batteryStatusFeatureProvider: BatteryStatusFeatureProvider
+
+    /**
+     * Gets implementation for Battery Settings provider.
+     */
+    abstract val batterySettingsFeatureProvider: BatterySettingsFeatureProvider
+
+    abstract val dashboardFeatureProvider: DashboardFeatureProvider
+    abstract val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider
+    abstract val applicationFeatureProvider: ApplicationFeatureProvider
+    abstract val localeFeatureProvider: LocaleFeatureProvider
+
+    abstract val enterprisePrivacyFeatureProvider: EnterprisePrivacyFeatureProvider
+
+    abstract val searchFeatureProvider: SearchFeatureProvider
+    abstract fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider?
+    abstract val securityFeatureProvider: SecurityFeatureProvider
+    abstract val userFeatureProvider: UserFeatureProvider
+    abstract val slicesFeatureProvider: SlicesFeatureProvider
+    abstract val accountFeatureProvider: AccountFeatureProvider
+    abstract val panelFeatureProvider: PanelFeatureProvider
+    abstract fun getContextualCardFeatureProvider(context: Context): ContextualCardFeatureProvider
+
+    /**
+     * Retrieves implementation for Bluetooth feature.
+     */
+    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
+
+    /**
+     * Gets implementation for the WifiTrackerLib.
+     */
+    abstract val wifiTrackerLibProvider: WifiTrackerLibProvider
+
+    /**
+     * Retrieves implementation for SecuritySettings feature.
+     */
+    abstract val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider
+
+    /**
+     * Retrieves implementation for Accessibility search index feature.
+     */
+    abstract val accessibilitySearchFeatureProvider: AccessibilitySearchFeatureProvider
+
+    /**
+     * Retrieves implementation for Accessibility metrics category feature.
+     */
+    abstract val accessibilityMetricsFeatureProvider: AccessibilityMetricsFeatureProvider
+
+    /**
+     * Retrieves implementation for advanced vpn feature.
+     */
+    abstract val advancedVpnFeatureProvider: AdvancedVpnFeatureProvider
+
+    /**
+     * Retrieves implementation for Wi-Fi feature.
+     */
+    abstract val wifiFeatureProvider: WifiFeatureProvider
+
+    /**
+     * Retrieves implementation for keyboard settings feature.
+     */
+    abstract val keyboardSettingsFeatureProvider: KeyboardSettingsFeatureProvider
+
+    /**
+     * Retrieves implementation for stylus feature.
+     */
+    abstract val stylusFeatureProvider: StylusFeatureProvider
+
+    /**
+     * Retrieves implementation for Onboarding related feature.
+     */
+    open val onboardingFeatureProvider: OnboardingFeatureProvider? = null
+
+    /**
+     * Gets implementation for Fast Pair device updater provider.
+     */
+    abstract val fastPairFeatureProvider: FastPairFeatureProvider
+
+    /**
+     * Gets implementation for Private Space account login feature.
+     */
+    abstract val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider
+
+    companion object {
+        private var _factory: FeatureFactory? = null
+
+        /** Returns a factory for creating feature controllers. */
+        @JvmStatic
+        val featureFactory: FeatureFactory
+            get() = _factory ?: throw UnsupportedOperationException("No feature factory configured")
+
+        private var _appContext: Context? = null
+
+        /** Returns an application [Context] used to create this [FeatureFactory]. */
+        @JvmStatic
+        val appContext: Context
+            get() = _appContext
+                ?: throw UnsupportedOperationException("No feature factory configured")
+
+        @JvmStatic
+        fun setFactory(appContext: Context, factory: FeatureFactory) {
+            _appContext = appContext
+            _factory = factory
+        }
+    }
+}
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
deleted file mode 100644
index 8c92792..0000000
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ /dev/null
@@ -1,397 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.overlay;
-
-import android.app.AppGlobals;
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.VpnManager;
-import android.os.UserManager;
-
-import androidx.annotation.Keep;
-
-import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider;
-import com.android.settings.accessibility.AccessibilityMetricsFeatureProviderImpl;
-import com.android.settings.accessibility.AccessibilitySearchFeatureProvider;
-import com.android.settings.accessibility.AccessibilitySearchFeatureProviderImpl;
-import com.android.settings.accounts.AccountFeatureProvider;
-import com.android.settings.accounts.AccountFeatureProviderImpl;
-import com.android.settings.applications.ApplicationFeatureProvider;
-import com.android.settings.applications.ApplicationFeatureProviderImpl;
-import com.android.settings.aware.AwareFeatureProvider;
-import com.android.settings.aware.AwareFeatureProviderImpl;
-import com.android.settings.biometrics.face.FaceFeatureProvider;
-import com.android.settings.biometrics.face.FaceFeatureProviderImpl;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProviderImpl;
-import com.android.settings.bluetooth.BluetoothFeatureProvider;
-import com.android.settings.bluetooth.BluetoothFeatureProviderImpl;
-import com.android.settings.connecteddevice.dock.DockUpdaterFeatureProviderImpl;
-import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
-import com.android.settings.connecteddevice.stylus.StylusFeatureProviderImpl;
-import com.android.settings.core.instrumentation.SettingsMetricsFeatureProvider;
-import com.android.settings.dashboard.DashboardFeatureProvider;
-import com.android.settings.dashboard.DashboardFeatureProviderImpl;
-import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
-import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl;
-import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider;
-import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProviderImpl;
-import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
-import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl;
-import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
-import com.android.settings.fuelgauge.BatterySettingsFeatureProviderImpl;
-import com.android.settings.fuelgauge.BatteryStatusFeatureProvider;
-import com.android.settings.fuelgauge.BatteryStatusFeatureProviderImpl;
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
-import com.android.settings.fuelgauge.PowerUsageFeatureProviderImpl;
-import com.android.settings.gestures.AssistGestureFeatureProvider;
-import com.android.settings.gestures.AssistGestureFeatureProviderImpl;
-import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
-import com.android.settings.homepage.contextualcards.ContextualCardFeatureProviderImpl;
-import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider;
-import com.android.settings.inputmethod.KeyboardSettingsFeatureProviderImpl;
-import com.android.settings.localepicker.LocaleFeatureProvider;
-import com.android.settings.localepicker.LocaleFeatureProviderImpl;
-import com.android.settings.panel.PanelFeatureProvider;
-import com.android.settings.panel.PanelFeatureProviderImpl;
-import com.android.settings.search.SearchFeatureProvider;
-import com.android.settings.search.SearchFeatureProviderImpl;
-import com.android.settings.security.SecurityFeatureProvider;
-import com.android.settings.security.SecurityFeatureProviderImpl;
-import com.android.settings.security.SecuritySettingsFeatureProvider;
-import com.android.settings.security.SecuritySettingsFeatureProviderImpl;
-import com.android.settings.slices.SlicesFeatureProvider;
-import com.android.settings.slices.SlicesFeatureProviderImpl;
-import com.android.settings.users.UserFeatureProvider;
-import com.android.settings.users.UserFeatureProviderImpl;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProviderImpl;
-import com.android.settings.wifi.WifiTrackerLibProvider;
-import com.android.settings.wifi.WifiTrackerLibProviderImpl;
-import com.android.settings.wifi.factory.WifiFeatureProvider;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-/**
- * {@link FeatureFactory} implementation for AOSP Settings.
- */
-@Keep
-public class FeatureFactoryImpl extends FeatureFactory {
-
-    private ApplicationFeatureProvider mApplicationFeatureProvider;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
-    private DashboardFeatureProviderImpl mDashboardFeatureProvider;
-    private DockUpdaterFeatureProvider mDockUpdaterFeatureProvider;
-    private LocaleFeatureProvider mLocaleFeatureProvider;
-    private EnterprisePrivacyFeatureProvider mEnterprisePrivacyFeatureProvider;
-    private SearchFeatureProvider mSearchFeatureProvider;
-    private SecurityFeatureProvider mSecurityFeatureProvider;
-    private SuggestionFeatureProvider mSuggestionFeatureProvider;
-    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
-    private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider;
-    private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
-    private AssistGestureFeatureProvider mAssistGestureFeatureProvider;
-    private UserFeatureProvider mUserFeatureProvider;
-    private SlicesFeatureProvider mSlicesFeatureProvider;
-    private AccountFeatureProvider mAccountFeatureProvider;
-    private PanelFeatureProvider mPanelFeatureProvider;
-    private ContextualCardFeatureProvider mContextualCardFeatureProvider;
-    private BluetoothFeatureProvider mBluetoothFeatureProvider;
-    private AwareFeatureProvider mAwareFeatureProvider;
-    private FaceFeatureProvider mFaceFeatureProvider;
-    private BiometricsRepositoryProvider mBiometricsRepositoryProvider;
-    private WifiTrackerLibProvider mWifiTrackerLibProvider;
-    private SecuritySettingsFeatureProvider mSecuritySettingsFeatureProvider;
-    private AccessibilitySearchFeatureProvider mAccessibilitySearchFeatureProvider;
-    private AccessibilityMetricsFeatureProvider mAccessibilityMetricsFeatureProvider;
-    private AdvancedVpnFeatureProvider mAdvancedVpnFeatureProvider;
-    private WifiFeatureProvider mWifiFeatureProvider;
-    private KeyboardSettingsFeatureProvider mKeyboardSettingsFeatureProvider;
-    private StylusFeatureProvider mStylusFeatureProvider;
-
-    @Override
-    public HardwareInfoFeatureProvider getHardwareInfoFeatureProvider() {
-        return HardwareInfoFeatureProviderImpl.INSTANCE;
-    }
-
-    @Override
-    public SupportFeatureProvider getSupportFeatureProvider(Context context) {
-        return null;
-    }
-
-    @Override
-    public MetricsFeatureProvider getMetricsFeatureProvider() {
-        if (mMetricsFeatureProvider == null) {
-            mMetricsFeatureProvider = new SettingsMetricsFeatureProvider();
-        }
-        return mMetricsFeatureProvider;
-    }
-
-    @Override
-    public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) {
-        if (mPowerUsageFeatureProvider == null) {
-            mPowerUsageFeatureProvider = new PowerUsageFeatureProviderImpl(
-                    context.getApplicationContext());
-        }
-        return mPowerUsageFeatureProvider;
-    }
-
-    @Override
-    public BatteryStatusFeatureProvider getBatteryStatusFeatureProvider(Context context) {
-        if (mBatteryStatusFeatureProvider == null) {
-            mBatteryStatusFeatureProvider = new BatteryStatusFeatureProviderImpl(
-                    context.getApplicationContext());
-        }
-        return mBatteryStatusFeatureProvider;
-    }
-
-    @Override
-    public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider() {
-        if (mBatterySettingsFeatureProvider == null) {
-            mBatterySettingsFeatureProvider = new BatterySettingsFeatureProviderImpl();
-        }
-        return mBatterySettingsFeatureProvider;
-    }
-
-    @Override
-    public DashboardFeatureProvider getDashboardFeatureProvider(Context context) {
-        if (mDashboardFeatureProvider == null) {
-            mDashboardFeatureProvider = new DashboardFeatureProviderImpl(
-                    context.getApplicationContext());
-        }
-        return mDashboardFeatureProvider;
-    }
-
-    @Override
-    public DockUpdaterFeatureProvider getDockUpdaterFeatureProvider() {
-        if (mDockUpdaterFeatureProvider == null) {
-            mDockUpdaterFeatureProvider = new DockUpdaterFeatureProviderImpl();
-        }
-        return mDockUpdaterFeatureProvider;
-    }
-
-    @Override
-    public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
-        if (mApplicationFeatureProvider == null) {
-            final Context appContext = context.getApplicationContext();
-            mApplicationFeatureProvider = new ApplicationFeatureProviderImpl(appContext,
-                    appContext.getPackageManager(),
-                    AppGlobals.getPackageManager(),
-                    (DevicePolicyManager) appContext
-                            .getSystemService(Context.DEVICE_POLICY_SERVICE));
-        }
-        return mApplicationFeatureProvider;
-    }
-
-    @Override
-    public LocaleFeatureProvider getLocaleFeatureProvider() {
-        if (mLocaleFeatureProvider == null) {
-            mLocaleFeatureProvider = new LocaleFeatureProviderImpl();
-        }
-        return mLocaleFeatureProvider;
-    }
-
-    @Override
-    public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
-        if (mEnterprisePrivacyFeatureProvider == null) {
-            final Context appContext = context.getApplicationContext();
-            mEnterprisePrivacyFeatureProvider = new EnterprisePrivacyFeatureProviderImpl(appContext,
-                    (DevicePolicyManager) appContext.getSystemService(
-                            Context.DEVICE_POLICY_SERVICE),
-                    appContext.getPackageManager(),
-                    UserManager.get(appContext),
-                    appContext.getSystemService(ConnectivityManager.class),
-                    appContext.getSystemService(VpnManager.class),
-                    appContext.getResources());
-        }
-        return mEnterprisePrivacyFeatureProvider;
-    }
-
-    @Override
-    public SearchFeatureProvider getSearchFeatureProvider() {
-        if (mSearchFeatureProvider == null) {
-            mSearchFeatureProvider = new SearchFeatureProviderImpl();
-        }
-        return mSearchFeatureProvider;
-    }
-
-    @Override
-    public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
-        return null;
-    }
-
-    @Override
-    public SecurityFeatureProvider getSecurityFeatureProvider() {
-        if (mSecurityFeatureProvider == null) {
-            mSecurityFeatureProvider = new SecurityFeatureProviderImpl();
-        }
-        return mSecurityFeatureProvider;
-    }
-
-    @Override
-    public SuggestionFeatureProvider getSuggestionFeatureProvider() {
-        if (mSuggestionFeatureProvider == null) {
-            mSuggestionFeatureProvider = new SuggestionFeatureProviderImpl();
-        }
-        return mSuggestionFeatureProvider;
-    }
-
-    @Override
-    public UserFeatureProvider getUserFeatureProvider(Context context) {
-        if (mUserFeatureProvider == null) {
-            mUserFeatureProvider = new UserFeatureProviderImpl(context.getApplicationContext());
-        }
-        return mUserFeatureProvider;
-    }
-
-    @Override
-    public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
-        if (mAssistGestureFeatureProvider == null) {
-            mAssistGestureFeatureProvider = new AssistGestureFeatureProviderImpl();
-        }
-        return mAssistGestureFeatureProvider;
-    }
-
-    @Override
-    public SlicesFeatureProvider getSlicesFeatureProvider() {
-        if (mSlicesFeatureProvider == null) {
-            mSlicesFeatureProvider = new SlicesFeatureProviderImpl();
-        }
-        return mSlicesFeatureProvider;
-    }
-
-    @Override
-    public AccountFeatureProvider getAccountFeatureProvider() {
-        if (mAccountFeatureProvider == null) {
-            mAccountFeatureProvider = new AccountFeatureProviderImpl();
-        }
-        return mAccountFeatureProvider;
-    }
-
-    @Override
-    public PanelFeatureProvider getPanelFeatureProvider() {
-        if (mPanelFeatureProvider == null) {
-            mPanelFeatureProvider = new PanelFeatureProviderImpl();
-        }
-        return mPanelFeatureProvider;
-    }
-
-    @Override
-    public ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context) {
-        if (mContextualCardFeatureProvider == null) {
-            mContextualCardFeatureProvider = new ContextualCardFeatureProviderImpl(
-                    context.getApplicationContext());
-        }
-        return mContextualCardFeatureProvider;
-    }
-
-    @Override
-    public BluetoothFeatureProvider getBluetoothFeatureProvider() {
-        if (mBluetoothFeatureProvider == null) {
-            mBluetoothFeatureProvider = new BluetoothFeatureProviderImpl(getAppContext());
-        }
-        return mBluetoothFeatureProvider;
-    }
-
-    @Override
-    public AwareFeatureProvider getAwareFeatureProvider() {
-        if (mAwareFeatureProvider == null) {
-            mAwareFeatureProvider = new AwareFeatureProviderImpl();
-        }
-        return mAwareFeatureProvider;
-    }
-
-    @Override
-    public FaceFeatureProvider getFaceFeatureProvider() {
-        if (mFaceFeatureProvider == null) {
-            mFaceFeatureProvider = new FaceFeatureProviderImpl();
-        }
-        return mFaceFeatureProvider;
-    }
-
-    @Override
-    public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
-        if (mBiometricsRepositoryProvider == null) {
-            mBiometricsRepositoryProvider = new BiometricsRepositoryProviderImpl();
-        }
-        return mBiometricsRepositoryProvider;
-    }
-
-    @Override
-    public WifiTrackerLibProvider getWifiTrackerLibProvider() {
-        if (mWifiTrackerLibProvider == null) {
-            mWifiTrackerLibProvider = new WifiTrackerLibProviderImpl();
-        }
-        return mWifiTrackerLibProvider;
-    }
-
-    @Override
-    public SecuritySettingsFeatureProvider getSecuritySettingsFeatureProvider() {
-        if (mSecuritySettingsFeatureProvider == null) {
-            mSecuritySettingsFeatureProvider = new SecuritySettingsFeatureProviderImpl();
-        }
-        return mSecuritySettingsFeatureProvider;
-    }
-
-    @Override
-    public AccessibilitySearchFeatureProvider getAccessibilitySearchFeatureProvider() {
-        if (mAccessibilitySearchFeatureProvider == null) {
-            mAccessibilitySearchFeatureProvider = new AccessibilitySearchFeatureProviderImpl();
-        }
-        return mAccessibilitySearchFeatureProvider;
-    }
-
-    @Override
-    public AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider() {
-        if (mAccessibilityMetricsFeatureProvider == null) {
-            mAccessibilityMetricsFeatureProvider = new AccessibilityMetricsFeatureProviderImpl();
-        }
-        return mAccessibilityMetricsFeatureProvider;
-    }
-
-    @Override
-    public AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider() {
-        if (mAdvancedVpnFeatureProvider == null) {
-            mAdvancedVpnFeatureProvider = new AdvancedVpnFeatureProviderImpl();
-        }
-        return mAdvancedVpnFeatureProvider;
-    }
-
-    @Override
-    public WifiFeatureProvider getWifiFeatureProvider() {
-        if (mWifiFeatureProvider == null) {
-            mWifiFeatureProvider = new WifiFeatureProvider(getAppContext());
-        }
-        return mWifiFeatureProvider;
-    }
-
-    @Override
-    public KeyboardSettingsFeatureProvider getKeyboardSettingsFeatureProvider() {
-        if (mKeyboardSettingsFeatureProvider == null) {
-            mKeyboardSettingsFeatureProvider = new KeyboardSettingsFeatureProviderImpl();
-        }
-        return mKeyboardSettingsFeatureProvider;
-    }
-
-    @Override
-    public StylusFeatureProvider getStylusFeatureProvider() {
-        if (mStylusFeatureProvider == null) {
-            mStylusFeatureProvider = new StylusFeatureProviderImpl();
-        }
-        return mStylusFeatureProvider;
-    }
-}
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.kt b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
new file mode 100644
index 0000000..28dbb23
--- /dev/null
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.kt
@@ -0,0 +1,193 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.overlay
+
+import android.app.AppGlobals
+import android.content.Context
+import android.net.ConnectivityManager
+import android.net.VpnManager
+import android.os.UserManager
+import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider
+import com.android.settings.accessibility.AccessibilityMetricsFeatureProviderImpl
+import com.android.settings.accessibility.AccessibilitySearchFeatureProvider
+import com.android.settings.accessibility.AccessibilitySearchFeatureProviderImpl
+import com.android.settings.accounts.AccountFeatureProvider
+import com.android.settings.accounts.AccountFeatureProviderImpl
+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
+import com.android.settings.connecteddevice.dock.DockUpdaterFeatureProviderImpl
+import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
+import com.android.settings.connecteddevice.fastpair.FastPairFeatureProviderImpl
+import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
+import com.android.settings.connecteddevice.stylus.StylusFeatureProviderImpl
+import com.android.settings.core.instrumentation.SettingsMetricsFeatureProvider
+import com.android.settings.dashboard.DashboardFeatureProviderImpl
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl
+import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider
+import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProviderImpl
+import com.android.settings.enterprise.EnterprisePrivacyFeatureProviderImpl
+import com.android.settings.fuelgauge.BatterySettingsFeatureProviderImpl
+import com.android.settings.fuelgauge.BatteryStatusFeatureProviderImpl
+import com.android.settings.fuelgauge.PowerUsageFeatureProviderImpl
+import com.android.settings.homepage.contextualcards.ContextualCardFeatureProviderImpl
+import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider
+import com.android.settings.inputmethod.KeyboardSettingsFeatureProviderImpl
+import com.android.settings.localepicker.LocaleFeatureProviderImpl
+import com.android.settings.panel.PanelFeatureProviderImpl
+import com.android.settings.search.SearchFeatureProvider
+import com.android.settings.search.SearchFeatureProviderImpl
+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
+import com.android.settings.wifi.WifiTrackerLibProvider
+import com.android.settings.wifi.WifiTrackerLibProviderImpl
+import com.android.settings.wifi.factory.WifiFeatureProvider
+import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
+
+/**
+ * [FeatureFactory] implementation for AOSP Settings.
+ */
+open class FeatureFactoryImpl : FeatureFactory() {
+    private val contextualCardFeatureProvider by lazy {
+        ContextualCardFeatureProviderImpl(appContext)
+    }
+
+    override val hardwareInfoFeatureProvider: HardwareInfoFeatureProvider =
+        HardwareInfoFeatureProviderImpl
+
+    override val metricsFeatureProvider by lazy { SettingsMetricsFeatureProvider() }
+
+    override val powerUsageFeatureProvider by lazy { PowerUsageFeatureProviderImpl(appContext) }
+
+    override val batteryStatusFeatureProvider by lazy {
+        BatteryStatusFeatureProviderImpl(appContext)
+    }
+
+    override val batterySettingsFeatureProvider by lazy { BatterySettingsFeatureProviderImpl() }
+
+    override val dashboardFeatureProvider by lazy { DashboardFeatureProviderImpl(appContext) }
+
+    override val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider by lazy {
+        DockUpdaterFeatureProviderImpl()
+    }
+
+    override val applicationFeatureProvider by lazy {
+        ApplicationFeatureProviderImpl(
+            appContext,
+            appContext.packageManager,
+            AppGlobals.getPackageManager(),
+            appContext.devicePolicyManager,
+        )
+    }
+
+    override val localeFeatureProvider by lazy { LocaleFeatureProviderImpl() }
+
+    override val enterprisePrivacyFeatureProvider by lazy {
+        EnterprisePrivacyFeatureProviderImpl(
+            appContext,
+            appContext.devicePolicyManager,
+            appContext.packageManager,
+            UserManager.get(appContext),
+            appContext.getSystemService(ConnectivityManager::class.java),
+            appContext.getSystemService(VpnManager::class.java),
+            appContext.resources,
+        )
+    }
+
+    override val searchFeatureProvider: SearchFeatureProvider by lazy {
+        SearchFeatureProviderImpl()
+    }
+
+    override fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider? = null
+
+    override val securityFeatureProvider by lazy { SecurityFeatureProviderImpl() }
+
+    override val suggestionFeatureProvider: SuggestionFeatureProvider by lazy {
+        SuggestionFeatureProviderImpl()
+    }
+
+    override val userFeatureProvider by lazy { UserFeatureProviderImpl(appContext) }
+
+    override val slicesFeatureProvider by lazy { SlicesFeatureProviderImpl() }
+
+    override val accountFeatureProvider: AccountFeatureProvider by lazy {
+        AccountFeatureProviderImpl()
+    }
+
+    override val panelFeatureProvider by lazy { PanelFeatureProviderImpl() }
+
+    override fun getContextualCardFeatureProvider(context: Context) = contextualCardFeatureProvider
+
+    override val bluetoothFeatureProvider: BluetoothFeatureProvider by lazy {
+        BluetoothFeatureProviderImpl()
+    }
+
+    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 {
+        WifiTrackerLibProviderImpl()
+    }
+
+    override val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider by lazy {
+        SecuritySettingsFeatureProviderImpl()
+    }
+
+    override val accessibilitySearchFeatureProvider: AccessibilitySearchFeatureProvider by lazy {
+        AccessibilitySearchFeatureProviderImpl()
+    }
+
+    override val accessibilityMetricsFeatureProvider: AccessibilityMetricsFeatureProvider by lazy {
+        AccessibilityMetricsFeatureProviderImpl()
+    }
+
+    override val advancedVpnFeatureProvider by lazy { AdvancedVpnFeatureProviderImpl() }
+
+    override val wifiFeatureProvider by lazy { WifiFeatureProvider(appContext) }
+
+    override val keyboardSettingsFeatureProvider: KeyboardSettingsFeatureProvider by lazy {
+        KeyboardSettingsFeatureProviderImpl()
+    }
+
+    override val stylusFeatureProvider: StylusFeatureProvider by lazy {
+        StylusFeatureProviderImpl()
+    }
+
+    override val fastPairFeatureProvider: FastPairFeatureProvider by lazy {
+        FastPairFeatureProviderImpl()
+    }
+
+    override val privateSpaceLoginFeatureProvider: PrivateSpaceLoginFeatureProvider by lazy {
+        PrivateSpaceLoginFeatureProviderImpl()
+    }
+}
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 5bc0cc8..1590283 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -221,7 +221,7 @@
         final String callingPackageName =
                 arguments.getString(SettingsPanelActivity.KEY_CALLING_PACKAGE_NAME);
 
-        mPanel = FeatureFactory.getFactory(activity)
+        mPanel = FeatureFactory.getFeatureFactory()
                 .getPanelFeatureProvider()
                 .getPanel(activity, arguments);
 
@@ -235,7 +235,7 @@
             getLifecycle().addObserver((LifecycleObserver) mPanel);
         }
 
-        mMetricsProvider = FeatureFactory.getFactory(activity).getMetricsFeatureProvider();
+        mMetricsProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         updateProgressBar();
 
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index fb41879..a2360d8 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -153,7 +153,7 @@
             // Log Panel interaction
             sliceView.setOnSliceActionListener(
                     ((eventInfo, sliceItem) -> {
-                        FeatureFactory.getFactory(sliceView.getContext())
+                        FeatureFactory.getFeatureFactory()
                                 .getMetricsFeatureProvider()
                                 .action(0 /* attribution */,
                                         SettingsEnums.ACTION_PANEL_INTERACTION,
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/panel/WifiPanel.java b/src/com/android/settings/panel/WifiPanel.java
index 95ebb33..3e713bc 100644
--- a/src/com/android/settings/panel/WifiPanel.java
+++ b/src/com/android/settings/panel/WifiPanel.java
@@ -23,9 +23,9 @@
 
 import com.android.settings.R;
 import com.android.settings.SubSettings;
+import com.android.settings.network.NetworkProviderSettings;
 import com.android.settings.slices.CustomSliceRegistry;
 import com.android.settings.slices.SliceBuilderUtils;
-import com.android.settings.wifi.WifiSettings;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -59,10 +59,9 @@
 
     @Override
     public Intent getSeeMoreIntent() {
-        final String screenTitle =
-                mContext.getText(R.string.wifi_settings).toString();
+        final String screenTitle = mContext.getText(R.string.wifi_settings).toString();
         final Intent intent = SliceBuilderUtils.buildSearchResultPageIntent(mContext,
-                WifiSettings.class.getName(),
+                NetworkProviderSettings.class.getName(),
                 null /* key */,
                 screenTitle,
                 SettingsEnums.WIFI,
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index 4ad04a1..379ce80 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -126,10 +126,9 @@
         final Bundle bundle = getArguments();
         final PromptInfo promptInfo = bundle.getParcelable(KEY_PROMPT_INFO);
 
-        mBiometricPrompt = new BiometricPrompt.Builder(getContext())
+        BiometricPrompt.Builder promptBuilder = new BiometricPrompt.Builder(getContext())
                 .setTitle(promptInfo.getTitle())
                 .setUseDefaultTitle() // use default title if title is null/empty
-                .setUseDefaultSubtitle() // use default subtitle if subtitle is null/empty
                 .setDeviceCredentialAllowed(true)
                 .setSubtitle(promptInfo.getSubtitle())
                 .setDescription(promptInfo.getDescription())
@@ -140,9 +139,15 @@
                 .setConfirmationRequired(promptInfo.isConfirmationRequested())
                 .setDisallowBiometricsIfPolicyExists(
                         promptInfo.isDisallowBiometricsIfPolicyExists())
+                .setShowEmergencyCallButton(promptInfo.isShowEmergencyCallButton())
                 .setReceiveSystemEvents(true)
-                .setAllowBackgroundAuthentication(true)
-                .build();
+                .setAllowBackgroundAuthentication(true);
+
+        // Check if the default subtitle should be used if subtitle is null/empty
+        if (promptInfo.isUseDefaultSubtitle()) {
+            promptBuilder.setUseDefaultSubtitle();
+        }
+        mBiometricPrompt = promptBuilder.build();
     }
 
     @Override
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index 0bf1255..db031e7 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -30,6 +30,8 @@
 
 import static com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment.RESULT_FINISHED;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CALLER_APP_NAME;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_IS_CALLING_APP_ADMIN;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -86,6 +88,10 @@
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
+/**
+ * Activity class that provides a generic implementation for displaying options to choose a lock
+ * type, either for setting up a new lock or updating an existing lock.
+ */
 public class ChooseLockGeneric extends SettingsActivity {
     public static final String CONFIRM_CREDENTIALS = "confirm_credentials";
 
@@ -156,6 +162,7 @@
         private boolean mRequestGatekeeperPasswordHandle = false;
         private boolean mPasswordConfirmed = false;
         private boolean mWaitingForConfirmation = false;
+        private boolean mWaitingForActivityResult = false;
         private LockscreenCredential mUserPassword;
         private FingerprintManager mFingerprintManager;
         private FaceManager mFaceManager;
@@ -194,6 +201,9 @@
         protected boolean mForBiometrics = false;
 
         private boolean mOnlyEnforceDevicePasswordRequirement = false;
+        private int mExtraLockScreenTitleResId;
+        private int mExtraLockScreenDescriptionResId;
+        private boolean mWaitingForBiometricEnrollment = false;
 
         @Override
         public int getMetricsCategory() {
@@ -241,6 +251,11 @@
                     ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
             mForBiometrics = intent.getBooleanExtra(
                     ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, false);
+            mWaitingForBiometricEnrollment = mForBiometrics || mForFingerprint || mForFace;
+
+            mExtraLockScreenTitleResId = intent.getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, -1);
+            mExtraLockScreenDescriptionResId =
+                    intent.getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION, -1);
 
             mRequestedMinComplexity = intent.getIntExtra(
                     EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_NONE);
@@ -343,13 +358,19 @@
                 if (updateExistingLock) {
                     getActivity().setTitle(mDpm.getResources().getString(
                             LOCK_SETTINGS_UPDATE_PROFILE_LOCK_TITLE,
-                            () -> getString(
-                                    R.string.lock_settings_picker_update_profile_lock_title)));
+                            () -> getString(mExtraLockScreenTitleResId != -1
+                                    ? mExtraLockScreenTitleResId
+                                    : R.string.lock_settings_picker_update_profile_lock_title)));
                 } else {
                     getActivity().setTitle(mDpm.getResources().getString(
                             LOCK_SETTINGS_NEW_PROFILE_LOCK_TITLE,
-                            () -> getString(R.string.lock_settings_picker_new_profile_lock_title)));
+                            () -> getString(mExtraLockScreenTitleResId != -1
+                                    ? mExtraLockScreenTitleResId
+                                    : R.string.lock_settings_picker_new_profile_lock_title)));
                 }
+            } else if (mExtraLockScreenTitleResId != -1) {
+                // Show customized screen lock title if it is passed as an extra in the intent.
+                getActivity().setTitle(mExtraLockScreenTitleResId);
             } else {
                 updateExistingLock = mLockPatternUtils.isSecure(mUserId);
                 if (updateExistingLock) {
@@ -377,7 +398,16 @@
             setHeaderView(R.layout.choose_lock_generic_biometric_header);
             TextView textView = getHeaderView().findViewById(R.id.biometric_header_description);
 
-            if (mForFingerprint) {
+            if (mIsManagedProfile) {
+                textView.setText(mDpm.getResources().getString(
+                        WORK_PROFILE_SCREEN_LOCK_SETUP_MESSAGE,
+                        () -> getString(mExtraLockScreenDescriptionResId != -1
+                                ? mExtraLockScreenDescriptionResId
+                                : R.string.lock_settings_picker_profile_message)));
+            } else if (mExtraLockScreenDescriptionResId != -1) {
+                // Show customized description in screen lock if passed as an extra in the intent.
+                textView.setText(mExtraLockScreenDescriptionResId);
+            } else if (mForFingerprint) {
                 if (mIsSetNewPassword) {
                     textView.setText(R.string.fingerprint_unlock_title);
                 } else {
@@ -396,13 +426,7 @@
                     textView.setText(R.string.lock_settings_picker_biometric_message);
                 }
             } else {
-                if (mIsManagedProfile) {
-                    textView.setText(mDpm.getResources().getString(
-                            WORK_PROFILE_SCREEN_LOCK_SETUP_MESSAGE,
-                            () -> getString(R.string.lock_settings_picker_profile_message)));
-                } else {
-                    textView.setText("");
-                }
+                textView.setText("");
             }
         }
 
@@ -418,6 +442,7 @@
                 return true;
             } else if (KEY_SKIP_FINGERPRINT.equals(key) || KEY_SKIP_FACE.equals(key)
                     || KEY_SKIP_BIOMETRICS.equals(key)) {
+                mWaitingForBiometricEnrollment = false;
                 Intent chooseLockGenericIntent = new Intent(getActivity(),
                     getInternalActivityClass());
                 chooseLockGenericIntent.setAction(getIntent().getAction());
@@ -426,6 +451,8 @@
                 }
                 // Forward the target user id to  ChooseLockGeneric.
                 chooseLockGenericIntent.putExtra(Intent.EXTRA_USER_ID, mUserId);
+                chooseLockGenericIntent.putExtra(
+                        EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, mExtraLockScreenTitleResId);
                 chooseLockGenericIntent.putExtra(CONFIRM_CREDENTIALS, !mPasswordConfirmed);
                 chooseLockGenericIntent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY,
                         mRequestedMinComplexity);
@@ -447,6 +474,7 @@
         public void onActivityResult(int requestCode, int resultCode, Intent data) {
             super.onActivityResult(requestCode, resultCode, data);
             mWaitingForConfirmation = false;
+            mWaitingForActivityResult = false;
             if (requestCode == CONFIRM_EXISTING_REQUEST && resultCode == Activity.RESULT_OK) {
                 mPasswordConfirmed = true;
                 mUserPassword = data != null
@@ -456,7 +484,6 @@
             } else if (requestCode == CHOOSE_LOCK_REQUEST) {
                 if (resultCode != RESULT_CANCELED) {
                     getActivity().setResult(resultCode, data);
-                    finish();
                 } else {
                     // If PASSWORD_TYPE_KEY is set, this activity is used as a trampoline to start
                     // the actual password enrollment. If the result is canceled, which means the
@@ -464,11 +491,12 @@
                     int quality = getIntent().getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, -1);
                     if (quality != -1) {
                         getActivity().setResult(RESULT_CANCELED, data);
-                        finish();
                     }
                 }
+                finish();
             } else if (requestCode == CHOOSE_LOCK_BEFORE_BIOMETRIC_REQUEST
                     && resultCode == BiometricEnrollBase.RESULT_FINISHED) {
+                mWaitingForBiometricEnrollment = false;
                 Intent intent = getBiometricEnrollIntent(getActivity());
                 if (data != null) {
                     // ChooseLockGeneric should have requested for a Gatekeeper Password Handle to
@@ -798,6 +826,7 @@
                 }
                 if (getIntent().getBooleanExtra(EXTRA_KEY_REQUEST_WRITE_REPAIR_MODE_PW, false)) {
                     intent.putExtra(EXTRA_KEY_REQUEST_WRITE_REPAIR_MODE_PW, true);
+                    mWaitingForActivityResult = true;
                 }
                 intent.putExtra(EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS, getIntent().getExtras());
                 // If the caller requested Gatekeeper Password Handle to be returned, we assume it
@@ -848,7 +877,8 @@
             // Otherwise, bugs would be caused. (e.g. b/278488549, b/278530059)
             final boolean hasCredential = mLockPatternUtils.isSecure(mUserId);
             if (!getActivity().isChangingConfigurations()
-                    && !mWaitingForConfirmation && hasCredential) {
+                    && !mWaitingForConfirmation && !mWaitingForActivityResult && hasCredential
+                    && !mWaitingForBiometricEnrollment) {
                 getActivity().finish();
             }
         }
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index ed155bc..631c735 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -260,7 +260,6 @@
         private LockscreenCredential mFirstPassword;
         private RecyclerView mPasswordRestrictionView;
         protected boolean mIsAlphaMode;
-        protected boolean mIsManagedProfile;
         protected FooterButton mSkipOrClearButton;
         private FooterButton mNextButton;
         private TextView mMessage;
@@ -272,6 +271,14 @@
 
         private static final int CONFIRM_EXISTING_REQUEST = 58;
         static final int RESULT_FINISHED = RESULT_FIRST_USER;
+        /** Used to store the profile type for which pin/password is being set */
+        protected enum ProfileType {
+            None,
+            Managed,
+            Private,
+            Other
+        };
+        protected ProfileType mProfileType;
 
         /**
          * Keep track internally of where the user is in choosing a pattern.
@@ -285,12 +292,14 @@
                     R.string.lockpassword_choose_your_password_header_for_fingerprint,
                     R.string.lockpassword_choose_your_password_header_for_face,
                     R.string.lockpassword_choose_your_password_header_for_biometrics,
+                    R.string.private_space_choose_your_password_header, // private space password
                     R.string.lockpassword_choose_your_pin_header, // pin
                     SET_WORK_PROFILE_PIN_HEADER,
                     R.string.lockpassword_choose_your_profile_pin_header,
                     R.string.lockpassword_choose_your_pin_header_for_fingerprint,
                     R.string.lockpassword_choose_your_pin_header_for_face,
                     R.string.lockpassword_choose_your_pin_header_for_biometrics,
+                    R.string.private_space_choose_your_pin_header, // private space pin
                     R.string.lock_settings_picker_biometrics_added_security_message,
                     R.string.lock_settings_picker_biometrics_added_security_message,
                     R.string.next_label),
@@ -302,12 +311,14 @@
                     R.string.lockpassword_confirm_your_password_header,
                     R.string.lockpassword_confirm_your_password_header,
                     R.string.lockpassword_confirm_your_password_header,
+                    R.string.lockpassword_confirm_your_password_header,
                     R.string.lockpassword_confirm_your_pin_header,
                     REENTER_WORK_PROFILE_PIN_HEADER,
                     R.string.lockpassword_reenter_your_profile_pin_header,
                     R.string.lockpassword_confirm_your_pin_header,
                     R.string.lockpassword_confirm_your_pin_header,
                     R.string.lockpassword_confirm_your_pin_header,
+                    R.string.lockpassword_confirm_your_pin_header,
                     0,
                     0,
                     R.string.lockpassword_confirm_label),
@@ -319,12 +330,14 @@
                     R.string.lockpassword_confirm_passwords_dont_match,
                     R.string.lockpassword_confirm_passwords_dont_match,
                     R.string.lockpassword_confirm_passwords_dont_match,
+                    R.string.lockpassword_confirm_passwords_dont_match,
                     R.string.lockpassword_confirm_pins_dont_match,
                     UNDEFINED,
                     R.string.lockpassword_confirm_pins_dont_match,
                     R.string.lockpassword_confirm_pins_dont_match,
                     R.string.lockpassword_confirm_pins_dont_match,
                     R.string.lockpassword_confirm_pins_dont_match,
+                    R.string.lockpassword_confirm_pins_dont_match,
                     0,
                     0,
                     R.string.lockpassword_confirm_label);
@@ -335,29 +348,33 @@
                     int hintInAlphaForFingerprint,
                     int hintInAlphaForFace,
                     int hintInAlphaForBiometrics,
+                    int hintInAlphaForPrivateProfile,
                     int hintInNumeric,
                     String hintOverrideInNumericForProfile,
                     int hintInNumericForProfile,
                     int hintInNumericForFingerprint,
                     int hintInNumericForFace,
                     int hintInNumericForBiometrics,
+                    int hintInNumericForPrivateProfile,
                     int messageInAlphaForBiometrics,
                     int messageInNumericForBiometrics,
                     int nextButtonText) {
 
                 this.alphaHint = hintInAlpha;
                 this.alphaHintOverrideForProfile = hintOverrideInAlphaForProfile;
-                this.alphaHintForProfile = hintInAlphaForProfile;
+                this.alphaHintForManagedProfile = hintInAlphaForProfile;
                 this.alphaHintForFingerprint = hintInAlphaForFingerprint;
                 this.alphaHintForFace = hintInAlphaForFace;
                 this.alphaHintForBiometrics = hintInAlphaForBiometrics;
+                this.alphaHintForPrivateProfile = hintInAlphaForPrivateProfile;
 
                 this.numericHint = hintInNumeric;
                 this.numericHintOverrideForProfile = hintOverrideInNumericForProfile;
-                this.numericHintForProfile = hintInNumericForProfile;
+                this.numericHintForManagedProfile = hintInNumericForProfile;
                 this.numericHintForFingerprint = hintInNumericForFingerprint;
                 this.numericHintForFace = hintInNumericForFace;
                 this.numericHintForBiometrics = hintInNumericForBiometrics;
+                this.numericHintForPrivateProfile = hintInNumericForPrivateProfile;
 
                 this.alphaMessageForBiometrics = messageInAlphaForBiometrics;
                 this.numericMessageForBiometrics = messageInNumericForBiometrics;
@@ -372,16 +389,18 @@
 
             // Password header
             public final int alphaHint;
+            public final int alphaHintForPrivateProfile;
             public final String alphaHintOverrideForProfile;
-            public final int alphaHintForProfile;
+            public final int alphaHintForManagedProfile;
             public final int alphaHintForFingerprint;
             public final int alphaHintForFace;
             public final int alphaHintForBiometrics;
 
             // PIN header
             public final int numericHint;
+            public final int numericHintForPrivateProfile;
             public final String numericHintOverrideForProfile;
-            public final int numericHintForProfile;
+            public final int numericHintForManagedProfile;
             public final int numericHintForFingerprint;
             public final int numericHintForFace;
             public final int numericHintForBiometrics;
@@ -394,34 +413,40 @@
 
             public final int buttonText;
 
-            public String getHint(Context context, boolean isAlpha, int type, boolean isProfile) {
+            public String getHint(Context context, boolean isAlpha, int type, ProfileType profile) {
                 if (isAlpha) {
-                    if (type == TYPE_FINGERPRINT) {
+                    if (android.os.Flags.allowPrivateProfile()
+                            && profile.equals(ProfileType.Private)) {
+                        return context.getString(alphaHintForPrivateProfile);
+                    } else if (type == TYPE_FINGERPRINT) {
                         return context.getString(alphaHintForFingerprint);
                     } else if (type == TYPE_FACE) {
                         return context.getString(alphaHintForFace);
                     } else if (type == TYPE_BIOMETRIC) {
                         return context.getString(alphaHintForBiometrics);
-                    } else if (isProfile) {
+                    } else if (profile.equals(ProfileType.Managed)) {
                         return context.getSystemService(DevicePolicyManager.class).getResources()
                                 .getString(alphaHintOverrideForProfile,
-                                        () -> context.getString(alphaHintForProfile));
+                                        () -> context.getString(alphaHintForManagedProfile));
                     } else {
                         return context.getString(alphaHint);
                     }
                 } else {
-                    if (type == TYPE_FINGERPRINT) {
+                    if (android.os.Flags.allowPrivateProfile()
+                            && profile.equals(ProfileType.Private)) {
+                        return context.getString(numericHintForPrivateProfile);
+                    } else if (type == TYPE_FINGERPRINT) {
                         return context.getString(numericHintForFingerprint);
                     } else if (type == TYPE_FACE) {
                         return context.getString(numericHintForFace);
                     } else if (type == TYPE_BIOMETRIC) {
                         return context.getString(numericHintForBiometrics);
-                    } else if (isProfile) {
+                    } else if (profile.equals(ProfileType.Managed)) {
                         return context.getSystemService(DevicePolicyManager.class).getResources()
                                 .getString(numericHintOverrideForProfile,
-                                        () -> context.getString(numericHintForProfile));
+                                        () -> context.getString(numericHintForManagedProfile));
                     } else {
-                        return  context.getString(numericHint);
+                        return context.getString(numericHint);
                     }
                 }
             }
@@ -455,7 +480,7 @@
             }
             // Only take this argument into account if it belongs to the current profile.
             mUserId = Utils.getUserIdFromBundle(getActivity(), intent.getExtras());
-            mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mUserId);
+            mProfileType = getProfileType();
             mForFingerprint = intent.getBooleanExtra(
                     ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
             mForFace = intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, false);
@@ -497,7 +522,8 @@
                             .setText(R.string.lockpassword_clear_label)
                             .setListener(this::onSkipOrClearButtonClick)
                             .setButtonType(FooterButton.ButtonType.SKIP)
-                            .setTheme(R.style.SudGlifButton_Secondary)
+                            .setTheme(
+                                    com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                             .build()
             );
             mixin.setPrimaryButton(
@@ -505,7 +531,7 @@
                             .setText(R.string.next_label)
                             .setListener(this::onNextButtonClick)
                             .setButtonType(FooterButton.ButtonType.NEXT)
-                            .setTheme(R.style.SudGlifButton_Primary)
+                            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                             .build()
             );
             mSkipOrClearButton = mixin.getSecondaryButton();
@@ -519,7 +545,7 @@
                     || DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mPasswordType;
 
             final LinearLayout headerLayout = view.findViewById(
-                    R.id.sud_layout_header);
+                    com.google.android.setupdesign.R.id.sud_layout_header);
             setupPasswordRequirementsView(headerLayout);
 
             mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
@@ -601,7 +627,7 @@
             if (activity instanceof SettingsActivity) {
                 final SettingsActivity sa = (SettingsActivity) activity;
                 String title = Stage.Introduction.getHint(
-                        getContext(), mIsAlphaMode, getStageType(), mIsManagedProfile);
+                        getContext(), mIsAlphaMode, getStageType(), mProfileType);
                 sa.setTitle(title);
                 mLayout.setHeaderText(title);
             }
@@ -733,18 +759,17 @@
 
         /**
          * Validates PIN/Password and returns the validation result and updates mValidationErrors
-         * and mPasswordReused to reflect validation results.
+         * to reflect validation results.
          *
          * @param credential credential the user typed in.
          * @return whether password satisfies all the requirements.
          */
         @VisibleForTesting
         boolean validatePassword(LockscreenCredential credential) {
-            final byte[] password = credential.getCredential();
-            mValidationErrors = PasswordMetrics.validatePassword(
-                    mMinMetrics, mMinComplexity, !mIsAlphaMode, password);
-            if (mValidationErrors.isEmpty() &&  mLockPatternUtils.checkPasswordHistory(
-                        password, getPasswordHistoryHashFactor(), mUserId)) {
+            mValidationErrors = PasswordMetrics.validateCredential(mMinMetrics, mMinComplexity,
+                    credential);
+            if (mValidationErrors.isEmpty() && mLockPatternUtils.checkPasswordHistory(
+                        credential.getCredential(), getPasswordHistoryHashFactor(), mUserId)) {
                 mValidationErrors =
                         Collections.singletonList(new PasswordValidationError(RECENTLY_USED));
             }
@@ -921,8 +946,8 @@
             final boolean canInput = mSaveAndFinishWorker == null;
 
             LockscreenCredential password = mIsAlphaMode
-                    ? LockscreenCredential.createPasswordOrNone(mPasswordEntry.getText())
-                    : LockscreenCredential.createPinOrNone(mPasswordEntry.getText());
+                    ? LockscreenCredential.createPassword(mPasswordEntry.getText())
+                    : LockscreenCredential.createPin(mPasswordEntry.getText());
             final int length = password.size();
             if (mUiStage == Stage.Introduction) {
                 mPasswordRestrictionView.setVisibility(View.VISIBLE);
@@ -938,7 +963,7 @@
                 // Hide password requirement view when we are just asking user to confirm the pw.
                 mPasswordRestrictionView.setVisibility(View.GONE);
                 setHeaderText(mUiStage.getHint(getContext(), mIsAlphaMode, getStageType(),
-                        mIsManagedProfile));
+                        mProfileType));
                 setNextEnabled(canInput && length >= LockPatternUtils.MIN_LOCK_PASSWORD_SIZE);
                 mSkipOrClearButton.setVisibility(toVisibility(canInput && length > 0));
 
@@ -1084,6 +1109,12 @@
                     startActivity(intent);
                 }
             }
+
+            if (mLayout != null) {
+                mLayout.announceForAccessibility(
+                        getString(R.string.accessibility_setup_password_complete));
+            }
+
             getActivity().finish();
         }
 
@@ -1110,5 +1141,18 @@
                 }
             }
         }
+
+        private ProfileType getProfileType() {
+            UserManager userManager = getContext().createContextAsUser(UserHandle.of(mUserId),
+                    /*flags=*/0).getSystemService(UserManager.class);
+            if (userManager.isManagedProfile()) {
+                return ProfileType.Managed;
+            } else if (android.os.Flags.allowPrivateProfile() && userManager.isPrivateProfile()) {
+                return ProfileType.Private;
+            } else if (userManager.isProfile()) {
+                return ProfileType.Other;
+            }
+            return ProfileType.None;
+        }
     }
 }
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index 7569c15..8d0aebe 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -469,21 +469,27 @@
 
         private void updateActivityTitle() {
             final String msg;
-            if (mForFingerprint) {
+            if (mForFingerprint && !shouldShowGenericTitle()) {
                 msg = getString(R.string.lockpassword_choose_your_pattern_header_for_fingerprint);
-            } else if (mForFace) {
+            } else if (mForFace && !shouldShowGenericTitle()) {
                 msg = getString(R.string.lockpassword_choose_your_pattern_header_for_face);
             } else if (mIsManagedProfile) {
                 msg = getContext().getSystemService(DevicePolicyManager.class).getResources()
                         .getString(SET_WORK_PROFILE_PATTERN_HEADER,
                                 () -> getString(
                                         R.string.lockpassword_choose_your_profile_pattern_header));
+            } else if (android.os.Flags.allowPrivateProfile() && isPrivateProfile()) {
+                msg = getString(R.string.private_space_choose_your_pattern_header);
             } else {
                 msg = getString(R.string.lockpassword_choose_your_pattern_header);
             }
             getActivity().setTitle(msg);
         }
 
+        protected boolean shouldShowGenericTitle() {
+            return false;
+        }
+
         @SuppressLint("ClickableViewAccessibility")
         @Override
         public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -514,7 +520,8 @@
                             .setText(R.string.lockpattern_tutorial_cancel_label)
                             .setListener(this::onSkipOrClearButtonClick)
                             .setButtonType(FooterButton.ButtonType.OTHER)
-                            .setTheme(R.style.SudGlifButton_Secondary)
+                            .setTheme(
+                                    com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                             .build()
             );
             mixin.setPrimaryButton(
@@ -522,13 +529,14 @@
                             .setText(R.string.lockpattern_tutorial_continue_label)
                             .setListener(this::onNextButtonClick)
                             .setButtonType(FooterButton.ButtonType.NEXT)
-                            .setTheme(R.style.SudGlifButton_Primary)
+                            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                             .build()
             );
             mSkipOrClearButton = mixin.getSecondaryButton();
             mNextButton = mixin.getPrimaryButton();
             // TODO(b/243008023) Workaround for Glif layout on 2 panel choose lock settings.
-            mSudContent = layout.findViewById(R.id.sud_layout_content);
+            mSudContent = layout.findViewById(
+                    com.google.android.setupdesign.R.id.sud_layout_content);
             mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
                     0);
 
@@ -741,7 +749,7 @@
             if (stage == Stage.ConfirmWrong || stage == Stage.ChoiceTooShort) {
                 TypedValue typedValue = new TypedValue();
                 Theme theme = getActivity().getTheme();
-                theme.resolveAttribute(R.attr.colorError, typedValue, true);
+                theme.resolveAttribute(androidx.appcompat.R.attr.colorError, typedValue, true);
                 mHeaderText.setTextColor(typedValue.data);
             } else if (mDefaultHeaderColorList != null) {
                 mHeaderText.setTextColor(mDefaultHeaderColorList);
@@ -869,7 +877,19 @@
                     startActivity(intent);
                 }
             }
+
+            if (mSudContent != null) {
+                mSudContent.announceForAccessibility(
+                        getString(R.string.accessibility_setup_password_complete));
+            }
+
             getActivity().finish();
         }
+
+        private boolean isPrivateProfile() {
+            UserManager userManager = getContext().createContextAsUser(UserHandle.of(mUserId),
+                    /*flags=*/0).getSystemService(UserManager.class);
+            return userManager.isPrivateProfile();
+        }
     }
 }
diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
index e5fc550..e74b776 100644
--- a/src/com/android/settings/password/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -18,8 +18,6 @@
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.ActivityOptions;
 import android.app.KeyguardManager;
@@ -33,6 +31,8 @@
 import android.util.Log;
 
 import androidx.activity.result.ActivityResultLauncher;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.Fragment;
 
@@ -118,6 +118,14 @@
     public static final String EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY =
             "device_password_requirement_only";
 
+    /** Intent extra for passing the screen title resource ID to show in the set lock screen. */
+    public static final String EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE =
+            "choose_lock_setup_screen_title";
+
+    /** Intent extra for passing the description resource ID to show in the set lock screen. */
+    public static final String EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION =
+            "choose_lock_setup_screen_description";
+
     @VisibleForTesting @NonNull LockPatternUtils mLockPatternUtils;
     @NonNull private final Activity mActivity;
     @Nullable private final Fragment mFragment;
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index e4ebad7..4a760ad 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -26,10 +26,12 @@
 import android.app.KeyguardManager;
 import android.app.RemoteLockscreenValidationSession;
 import android.app.admin.DevicePolicyManager;
+import android.app.admin.ManagedSubscriptionsPolicy;
 import android.app.trust.TrustManager;
 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;
@@ -41,6 +43,7 @@
 import android.os.Looper;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.os.storage.StorageManager;
 import android.util.Log;
 import android.view.WindowManager;
 
@@ -60,11 +63,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 {
@@ -83,7 +81,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;
 
@@ -188,7 +188,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) {
@@ -200,6 +202,13 @@
         promptInfo.setDescription(mDetails);
         promptInfo.setDisallowBiometricsIfPolicyExists(mCheckDevicePolicyManager);
 
+        final int policyType = mDevicePolicyManager.getManagedSubscriptionsPolicy().getPolicyType();
+
+        if (isEffectiveUserManagedProfile
+                && (policyType == ManagedSubscriptionsPolicy.TYPE_ALL_MANAGED_SUBSCRIPTIONS)) {
+            promptInfo.setShowEmergencyCallButton(true);
+        }
+
         final @LockPatternUtils.CredentialType int credentialType = Utils.getCredentialType(
                 mContext, effectiveUserId);
         if (mTitle == null) {
@@ -270,20 +279,49 @@
                     .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);
+                showBiometricPrompt(promptInfo, mUserId);
+                launchedBiometric = true;
+            } else {
+                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();
+            if (android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
+                    && isBiometricAllowed(effectiveUserId, mUserId)) {
+                showBiometricPrompt(promptInfo, effectiveUserId);
                 launchedBiometric = true;
             } else {
                 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.
-                showBiometricPrompt(promptInfo);
+                showBiometricPrompt(promptInfo, mUserId);
                 launchedBiometric = true;
             } else {
                 showConfirmCredentials();
@@ -305,11 +343,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,
@@ -372,7 +407,19 @@
     // biometric is disabled due to device restart.
     private boolean isStrongAuthRequired(int effectiveUserId) {
         return !mLockPatternUtils.isBiometricAllowedForUser(effectiveUserId)
-                || !mUserManager.isUserUnlocked(mUserId);
+                || doesUserStateEnforceStrongAuth(mUserId);
+    }
+
+    private boolean doesUserStateEnforceStrongAuth(int userId) {
+        if (android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()) {
+            // Check if CE storage for user is locked since biometrics can't unlock fbe/keystore of
+            // the profile user using verifyTiedProfileChallenge. Biometrics can still be used if
+            // the user is stopped with delayed locking (i.e., with storage unlocked), so the user
+            // state (whether the user is in the RUNNING_UNLOCKED state) should not be relied upon.
+            return !StorageManager.isCeStorageUnlocked(userId);
+        }
+        return !mUserManager.isUserUnlocked(userId);
     }
 
     private boolean isBiometricAllowed(int effectiveUserId, int realUserId) {
@@ -380,7 +427,7 @@
                 .hasPendingEscrowToken(realUserId);
     }
 
-    private void showBiometricPrompt(PromptInfo promptInfo) {
+    private void showBiometricPrompt(PromptInfo promptInfo, int userId) {
         mBiometricFragment = (BiometricFragment) getSupportFragmentManager()
                 .findFragmentByTag(TAG_BIOMETRIC_FRAGMENT);
         boolean newFragment = false;
@@ -390,7 +437,9 @@
             newFragment = true;
         }
         mBiometricFragment.setCallbacks(mExecutor, mAuthenticationCallback);
-        mBiometricFragment.setUser(mUserId);
+        // TODO(b/315864564): Move the logic of choosing the user id against which the
+        //  authentication needs to happen to the BiometricPrompt API
+        mBiometricFragment.setUser(userId);
 
         if (newFragment) {
             getSupportFragmentManager().beginTransaction()
@@ -402,29 +451,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..2af360a 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
@@ -22,7 +22,6 @@
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 
-import android.annotation.Nullable;
 import android.app.Dialog;
 import android.app.KeyguardManager;
 import android.app.RemoteLockscreenValidationSession;
@@ -48,6 +47,7 @@
 import android.widget.CheckBox;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
 import androidx.fragment.app.FragmentManager;
@@ -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/ConfirmDeviceCredentialUtils.java b/src/com/android/settings/password/ConfirmDeviceCredentialUtils.java
index 4778c03..32e7489 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialUtils.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialUtils.java
@@ -23,6 +23,8 @@
 import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
 import android.content.IntentSender;
+import android.content.pm.UserInfo;
+import android.content.pm.UserProperties;
 import android.os.RemoteException;
 import android.os.UserManager;
 import android.view.View;
@@ -68,17 +70,45 @@
             DevicePolicyManager dpm, int userId, boolean isStrongAuth) {
         if (isStrongAuth) {
             utils.reportSuccessfulPasswordAttempt(userId);
+            if (isBiometricUnlockEnabledForPrivateSpace()) {
+                final UserInfo userInfo = userManager.getUserInfo(userId);
+                if (userInfo != null) {
+                    if (isProfileThatAlwaysRequiresAuthToDisableQuietMode(userManager, userInfo)
+                            || userInfo.isManagedProfile()) {
+                        // Keyguard is responsible to disable StrongAuth for primary user. Disable
+                        // StrongAuth for profile challenges only here.
+                        utils.userPresent(userId);
+                    }
+                }
+            }
         } else {
             dpm.reportSuccessfulBiometricAttempt(userId);
         }
-        if (userManager.isManagedProfile(userId)) {
-            // Keyguard is responsible to disable StrongAuth for primary user. Disable StrongAuth
-            // for work challenge only here.
-            utils.userPresent(userId);
+        if (!isBiometricUnlockEnabledForPrivateSpace()) {
+            if (userManager.isManagedProfile(userId)) {
+                // Disable StrongAuth for work challenge only here.
+                utils.userPresent(userId);
+            }
         }
     }
 
     /**
+     * Returns true if the userInfo passed as the parameter corresponds to a profile that always
+     * requires auth to disable quiet mode and false otherwise
+     */
+    private static boolean isProfileThatAlwaysRequiresAuthToDisableQuietMode(
+            UserManager userManager, @NonNull UserInfo userInfo) {
+        final UserProperties userProperties =
+                    userManager.getUserProperties(userInfo.getUserHandle());
+        return userProperties.isAuthAlwaysRequiredToDisableQuietMode() && userInfo.isProfile();
+    }
+
+    private static boolean isBiometricUnlockEnabledForPrivateSpace() {
+        return android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace();
+    }
+
+    /**
      * Request hiding soft-keyboard before animating away credential UI, in case IME
      * insets animation get delayed by dismissing animation.
      * @param view used to get root {@link WindowInsets} and {@link WindowInsetsController}.
diff --git a/src/com/android/settings/password/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
index b203015..b9b1810 100644
--- a/src/com/android/settings/password/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -26,7 +26,6 @@
 import static com.android.settings.biometrics.GatekeeperPasswordProvider.getGatekeeperPasswordHandle;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
 
-import android.annotation.Nullable;
 import android.app.KeyguardManager;
 import android.app.RemoteLockscreenValidationResult;
 import android.app.admin.DevicePolicyManager;
@@ -57,6 +56,7 @@
 import android.widget.TextView;
 import android.widget.TextView.OnEditorActionListener;
 
+import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 
 import com.android.internal.widget.LockPatternChecker;
@@ -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 7160d64..3415478 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -24,7 +24,6 @@
 import static com.android.settings.biometrics.GatekeeperPasswordProvider.getGatekeeperPasswordHandle;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
 
-import android.annotation.Nullable;
 import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.app.KeyguardManager;
@@ -46,6 +45,8 @@
 import android.view.animation.Interpolator;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient;
 import com.android.internal.widget.LockPatternChecker;
 import com.android.internal.widget.LockPatternUtils;
@@ -135,7 +136,8 @@
             mLockPatternView = (LockPatternView) view.findViewById(R.id.lockPattern);
             mErrorTextView = (TextView) view.findViewById(R.id.errorText);
             // TODO(b/243008023) Workaround for Glif layout on 2 panel choose lock settings.
-            mSudContent = mGlifLayout.findViewById(R.id.sud_layout_content);
+            mSudContent = mGlifLayout.findViewById(
+                    com.google.android.setupdesign.R.id.sud_layout_content);
             mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
                     0);
             mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mEffectiveUserId);
@@ -696,6 +698,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/ForgotPasswordActivity.java b/src/com/android/settings/password/ForgotPasswordActivity.java
index 92dc336..ae05085 100644
--- a/src/com/android/settings/password/ForgotPasswordActivity.java
+++ b/src/com/android/settings/password/ForgotPasswordActivity.java
@@ -64,7 +64,7 @@
                         .setText(android.R.string.ok)
                         .setListener(v -> finish())
                         .setButtonType(FooterButton.ButtonType.DONE)
-                        .setTheme(R.style.SudGlifButton_Primary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                         .build()
         );
 
diff --git a/src/com/android/settings/password/PasswordRequirementAdapter.java b/src/com/android/settings/password/PasswordRequirementAdapter.java
index 0d8f02e..7cf6a00 100644
--- a/src/com/android/settings/password/PasswordRequirementAdapter.java
+++ b/src/com/android/settings/password/PasswordRequirementAdapter.java
@@ -16,13 +16,13 @@
 
 package com.android.settings.password;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
diff --git a/src/com/android/settings/password/PasswordUtils.java b/src/com/android/settings/password/PasswordUtils.java
index a7edc89..a54df94 100644
--- a/src/com/android/settings/password/PasswordUtils.java
+++ b/src/com/android/settings/password/PasswordUtils.java
@@ -18,7 +18,6 @@
 
 import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
 
-import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.app.IActivityManager;
 import android.content.Context;
@@ -33,6 +32,8 @@
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 import com.android.settings.Utils;
 
@@ -107,7 +108,7 @@
     /** Setup screen lock options button under the Glif Header. */
     public static void setupScreenLockOptionsButton(Context context, View view, Button optButton) {
         final LinearLayout headerLayout = view.findViewById(
-                R.id.sud_layout_header);
+                com.google.android.setupdesign.R.id.sud_layout_header);
         final TextView sucTitleView = headerLayout.findViewById(R.id.suc_layout_title);
         if (headerLayout != null && sucTitleView != null) {
             final ViewGroup.MarginLayoutParams layoutTitleParams =
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index fc664ec..9614d28 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -24,6 +24,8 @@
 import static android.app.admin.DevicePolicyManager.PASSWORD_COMPLEXITY_NONE;
 
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CALLER_APP_NAME;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_IS_CALLING_APP_ADMIN;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
@@ -126,6 +128,10 @@
                 : new Intent(this, ChooseLockGeneric.class);
         intent.setAction(mNewPasswordAction);
         intent.putExtras(chooseLockFingerprintExtras);
+        intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
+                getIntent().getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, -1));
+        intent.putExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION,
+                getIntent().getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION, -1));
         if (mCallerAppName != null) {
             intent.putExtra(EXTRA_KEY_CALLER_APP_NAME, mCallerAppName);
         }
@@ -180,7 +186,7 @@
                 : SettingsEnums.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
 
         final MetricsFeatureProvider metricsProvider =
-                FeatureFactory.getFactory(this).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         metricsProvider.action(
                 metricsProvider.getAttribution(this),
                 action,
diff --git a/src/com/android/settings/password/SetNewPasswordController.java b/src/com/android/settings/password/SetNewPasswordController.java
index ef8a15a..aa8fe51 100644
--- a/src/com/android/settings/password/SetNewPasswordController.java
+++ b/src/com/android/settings/password/SetNewPasswordController.java
@@ -22,7 +22,6 @@
 
 import static com.android.internal.util.Preconditions.checkNotNull;
 
-import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
@@ -34,6 +33,7 @@
 import android.os.IBinder;
 import android.os.UserManager;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.Utils;
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index bc6c512..7c0769e 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -113,7 +113,7 @@
             layout.setDescriptionText(loadDescriptionText());
             layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
             layout.setDividerInset(getContext().getResources().getDimensionPixelSize(
-                    R.dimen.sud_items_glif_text_divider_inset));
+                    com.google.android.setupdesign.R.dimen.sud_items_glif_text_divider_inset));
 
             layout.setIcon(getContext().getDrawable(R.drawable.ic_lock));
 
diff --git a/src/com/android/settings/password/SetupChooseLockPassword.java b/src/com/android/settings/password/SetupChooseLockPassword.java
index d0d7d93..f7bf014 100644
--- a/src/com/android/settings/password/SetupChooseLockPassword.java
+++ b/src/com/android/settings/password/SetupChooseLockPassword.java
@@ -99,7 +99,7 @@
 
             if (showOptionsButton && anyOptionsShown) {
                 mOptionsButton = new Button(new ContextThemeWrapper(getActivity(),
-                        R.style.SudGlifButton_Tertiary));
+                        com.google.android.setupdesign.R.style.SudGlifButton_Tertiary));
                 mOptionsButton.setId(R.id.screen_lock_options);
                 PasswordUtils.setupScreenLockOptionsButton(getActivity(), view, mOptionsButton);
                 mOptionsButton.setVisibility(View.VISIBLE);
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 560906d..55b38471 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -85,7 +85,7 @@
             View view = super.onCreateView(inflater, container, savedInstanceState);
             if (!getResources().getBoolean(R.bool.config_lock_pattern_minimal_ui)) {
                 mOptionsButton = new Button(new ContextThemeWrapper(getActivity(),
-                        R.style.SudGlifButton_Tertiary));
+                        com.google.android.setupdesign.R.style.SudGlifButton_Tertiary));
                 mOptionsButton.setId(R.id.screen_lock_options);
                 PasswordUtils.setupScreenLockOptionsButton(getActivity(), view, mOptionsButton);
                 mOptionsButton.setOnClickListener((btn) ->
@@ -161,6 +161,11 @@
         }
 
         @Override
+        protected boolean shouldShowGenericTitle() {
+            return true;
+        }
+
+        @Override
         protected Intent getRedactionInterstitialIntent(Context context) {
             // Setup wizard's redaction interstitial is deferred to optional step. Enable that
             // optional step if the lock screen was set up.
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/print/SettingsPrintServicesLoader.java b/src/com/android/settings/print/SettingsPrintServicesLoader.java
index e94c589..5956d89 100644
--- a/src/com/android/settings/print/SettingsPrintServicesLoader.java
+++ b/src/com/android/settings/print/SettingsPrintServicesLoader.java
@@ -16,12 +16,12 @@
 
 package com.android.settings.print;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.print.PrintManager;
 import android.print.PrintServicesLoader;
 import android.printservice.PrintServiceInfo;
 
+import androidx.annotation.NonNull;
 import androidx.loader.content.Loader;
 
 import com.android.internal.util.Preconditions;
diff --git a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
index 5377f15..c3830c1 100644
--- a/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
+++ b/src/com/android/settings/privacy/EnableContentCapturePreferenceController.java
@@ -16,11 +16,12 @@
 
 package com.android.settings.privacy;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.os.UserHandle;
 import android.os.UserManager;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.utils.ContentCaptureUtils;
diff --git a/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java b/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java
index fcb2347..c8a5471 100644
--- a/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java
+++ b/src/com/android/settings/privacy/EnableContentCaptureWithServiceSettingsPreferenceController.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.privacy;
 
-import android.annotation.NonNull;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -26,6 +25,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
diff --git a/src/com/android/settings/privacy/LocationToggleController.java b/src/com/android/settings/privacy/LocationToggleController.java
deleted file mode 100644
index 7d388bd..0000000
--- a/src/com/android/settings/privacy/LocationToggleController.java
+++ /dev/null
@@ -1,95 +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.privacy;
-
-import android.content.Context;
-import android.os.UserHandle;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.location.LocationEnabler;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-/**
- * Controller for location toggle
- */
-public class LocationToggleController extends TogglePreferenceController
-        implements LocationEnabler.LocationModeChangeListener {
-
-    private final LocationEnabler mLocationEnabler;
-    private RestrictedSwitchPreference mPreference;
-
-    private boolean mIsLocationEnabled = true;
-
-    public LocationToggleController(Context context, String preferenceKey, Lifecycle lifecycle) {
-        super(context, preferenceKey);
-        mLocationEnabler = new LocationEnabler(context, this, lifecycle);
-        mLocationEnabler.refreshLocationMode();
-    }
-    @Override
-    public void onLocationModeChanged(int mode, boolean restricted) {
-        if (mPreference == null) {
-            return;
-        }
-
-        mIsLocationEnabled = mLocationEnabler.isEnabled(mode);
-        final int userId = UserHandle.myUserId();
-        final RestrictedLockUtils.EnforcedAdmin admin =
-                mLocationEnabler.getShareLocationEnforcedAdmin(userId);
-        final boolean hasBaseUserRestriction =
-                mLocationEnabler.hasShareLocationRestriction(userId);
-        // Disable the whole switch bar instead of the switch itself. If we disabled the switch
-        // only, it would be re-enabled again if the switch bar is not disabled.
-        if (!hasBaseUserRestriction && admin != null) {
-            mPreference.setDisabledByAdmin(admin);
-        } else {
-            mPreference.setEnabled(!restricted);
-        }
-        updateState(mPreference);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return mIsLocationEnabled;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        mLocationEnabler.setLocationEnabled(isChecked);
-        return true;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-        mLocationEnabler.refreshLocationMode();
-    }
-
-    @Override
-    public int getSliceHighlightMenuRes() {
-        return 0;
-    }
-}
diff --git a/src/com/android/settings/privacy/PrivacyDashboardFragment.java b/src/com/android/settings/privacy/PrivacyDashboardFragment.java
index 4d76277..04b10d2 100644
--- a/src/com/android/settings/privacy/PrivacyDashboardFragment.java
+++ b/src/com/android/settings/privacy/PrivacyDashboardFragment.java
@@ -28,7 +28,6 @@
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
 import com.android.settings.safetycenter.SafetyCenterUtils;
-import com.android.settings.safetycenter.SafetyCenterUtils.EnterpriseOverrideString;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -55,15 +54,7 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        List<EnterpriseOverrideString> privacyOverrideStrings =
-                SafetyCenterUtils.getEnterpriseOverrideStringForPrivacyEntries();
-        for (int i = 0; i < privacyOverrideStrings.size(); i++) {
-            EnterpriseOverrideString overrideString = privacyOverrideStrings.get(i);
-            replaceEnterpriseStringTitle(
-                    overrideString.getPreferenceKey(),
-                    overrideString.getOverrideKey(),
-                    overrideString.getResource());
-        }
+        SafetyCenterUtils.replaceEnterpriseStringsForPrivacyEntries(this);
     }
 
     @Override
diff --git a/src/com/android/settings/privacy/PrivacyHubPreferenceController.java b/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
index 0de4f06..b68b5ec 100644
--- a/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
+++ b/src/com/android/settings/privacy/PrivacyHubPreferenceController.java
@@ -16,10 +16,11 @@
 
 package com.android.settings.privacy;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.provider.DeviceConfig;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.core.BasePreferenceController;
 
 /**
diff --git a/src/com/android/settings/privacy/TopLevelPrivacyEntryPreferenceController.java b/src/com/android/settings/privacy/TopLevelPrivacyEntryPreferenceController.java
index b553239..8014104 100644
--- a/src/com/android/settings/privacy/TopLevelPrivacyEntryPreferenceController.java
+++ b/src/com/android/settings/privacy/TopLevelPrivacyEntryPreferenceController.java
@@ -16,9 +16,10 @@
 
 package com.android.settings.privacy;
 
-import android.annotation.NonNull;
 import android.content.Context;
 
+import androidx.annotation.NonNull;
+
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
 
diff --git a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
index 2d1d9e1..d7203cb 100644
--- a/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
+++ b/src/com/android/settings/privacy/WorkPolicyInfoPreferenceController.java
@@ -34,7 +34,7 @@
     public WorkPolicyInfoPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mEnterpriseProvider =
-                FeatureFactory.getFactory(context).getEnterprisePrivacyFeatureProvider(context);
+                FeatureFactory.getFeatureFactory().getEnterprisePrivacyFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java b/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
new file mode 100644
index 0000000..9e905f2
--- /dev/null
+++ b/src/com/android/settings/privatespace/AutoAdvanceSetupFragment.java
@@ -0,0 +1,190 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+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.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+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 InstrumentedFragment {
+    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 static final int HEADER_TEXT_MAX_LINES = 4;
+    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.private_space_notifications_hidden_title,
+                            R.drawable.privatespace_setup_flow_placeholder),
+                    new Pair(R.string.private_space_share_photos_title,
+                            R.drawable.privatespace_setup_flow_placeholder),
+                    new Pair(R.string.private_space_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 if (PrivateSpaceMaintainer.getInstance(getActivity())
+                                .doesPrivateSpaceExist()) {
+                            mMetricsFeatureProvider.action(
+                                    getContext(),
+                                    SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
+                                    true);
+                            NavHostFragment.findNavController(AutoAdvanceSetupFragment.this)
+                                    .navigate(R.id.action_set_lock_fragment);
+                        } else {
+                            mMetricsFeatureProvider.action(
+                                    getContext(),
+                                    SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SPACE_CREATED,
+                                    false);
+                            showPrivateSpaceErrorScreen();
+                        }
+                    }
+                }
+            };
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        if (android.os.Flags.allowPrivateProfile()) {
+            super.onCreate(savedInstanceState);
+        }
+    }
+
+    @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);
+        mRootView.getHeaderTextView().setMaxLines(HEADER_TEXT_MAX_LINES);
+        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();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION;
+    }
+
+    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/HidePrivateSpaceController.java b/src/com/android/settings/privatespace/HidePrivateSpaceController.java
new file mode 100644
index 0000000..a53055c
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceController.java
@@ -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.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;
+
+/**
+ *  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 android.os.Flags.allowPrivateProfile() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return mPrivateSpaceMaintainer.getHidePrivateSpaceEntryPointSetting()
+                != HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        mPrivateSpaceMaintainer.setHidePrivateSpaceEntryPointSetting(
+                isChecked ? HIDE_PRIVATE_SPACE_ENTRY_POINT_ENABLED_VAL
+                        : HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
+        return true;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return 0;
+    }
+}
diff --git a/src/com/android/settings/privatespace/HidePrivateSpaceSettings.java b/src/com/android/settings/privatespace/HidePrivateSpaceSettings.java
new file mode 100644
index 0000000..09a1855
--- /dev/null
+++ b/src/com/android/settings/privatespace/HidePrivateSpaceSettings.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 android.app.settings.SettingsEnums;
+import android.os.Bundle;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+
+public class HidePrivateSpaceSettings extends DashboardFragment{
+    private static final String TAG = "HidePrivateSpaceSettings";
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        if (android.os.Flags.allowPrivateProfile()) {
+            super.onCreate(icicle);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (PrivateSpaceMaintainer.getInstance(getContext()).isPrivateSpaceLocked()) {
+            finish();
+        }
+    }
+
+    @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..42627af
--- /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 android.os.Flags.allowPrivateProfile() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @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..12a7440
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateProfileContextHelperActivity.java
@@ -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.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.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
+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.content.Intent;
+import android.os.Bundle;
+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.widget.LockPatternUtils;
+import com.android.settings.R;
+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 = "PrivateSpaceHelperAct";
+    private final ActivityResultLauncher<Intent> mAddAccountToPrivateProfile =
+            registerForActivityResult(
+                    new ActivityResultContracts.StartActivityForResult(), this::onAccountAdded);
+    private final ActivityResultLauncher<Intent> mSetNewPrivateProfileLock =
+            registerForActivityResult(
+                    new ActivityResultContracts.StartActivityForResult(),
+                    this::onSetNewProfileLockActionCompleted);
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        if (!android.os.Flags.allowPrivateProfile()) {
+            return;
+        }
+        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);
+        intent.putExtra(
+                EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, R.string.private_space_lock_setup_title);
+        intent.putExtra(
+                EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION,
+                R.string.private_space_lock_setup_description);
+        mSetNewPrivateProfileLock.launch(intent);
+    }
+
+    private void onAccountAdded(@Nullable ActivityResult result) {
+        if (result != null && result.getResultCode() == RESULT_OK) {
+            Log.i(TAG, "private space account login success");
+            setResult(RESULT_OK);
+        } else {
+            Log.i(TAG, "private space account login failed");
+            setResult(RESULT_CANCELED);
+        }
+        finish();
+    }
+
+    private void onSetNewProfileLockActionCompleted(@Nullable ActivityResult result) {
+        LockPatternUtils lockPatternUtils =
+                FeatureFactory.getFeatureFactory()
+                        .getSecurityFeatureProvider()
+                        .getLockPatternUtils(this);
+        if (result != null && lockPatternUtils.isSeparateProfileChallengeEnabled(getUserId())) {
+            Log.i(TAG, "separate private space lock setup success");
+            setResult(RESULT_OK);
+        } else {
+            Log.i(TAG, "separate private space lock not setup");
+            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..bcaa1d3
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateProfileCreationError.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment to display error screen if creation of private profile failed for any reason. */
+public class PrivateProfileCreationError extends InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceCreationErr";
+
+    @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.private_space_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.private_space_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;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_SPACE_CREATION_ERROR;
+    }
+
+    private View.OnClickListener onTryAgain() {
+        return v -> {
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_TRY_CREATE_SPACE_AGAIN);
+            Log.i(TAG, "Retry private space creation");
+            NavHostFragment.findNavController(PrivateProfileCreationError.this)
+                    .navigate(R.id.action_retry_profile_creation);
+        };
+    }
+
+    private View.OnClickListener onCancel() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                mMetricsFeatureProvider.action(
+                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL_CREATE_SPACE);
+                Log.i(TAG, "private space setup cancelled");
+                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..fcb93b1
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceAccountLoginError.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.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.app.settings.SettingsEnums;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment to display error screen if the profile is not signed in with a Google account. */
+public class PrivateSpaceAccountLoginError extends InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceAccLoginErr";
+
+    @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.private_space_continue_login_label)
+                        .setListener(nextScreen())
+                        .setButtonType(FooterButton.ButtonType.NEXT)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build());
+        mixin.setSecondaryButton(
+                new FooterButton.Builder(getContext())
+                        .setText(R.string.private_space_skip_login_label)
+                        .setListener(onSkip())
+                        .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
+                    }
+                };
+        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);
+
+        return rootView;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_ERROR;
+    }
+
+    @SuppressLint("MissingPermission")
+    private View.OnClickListener nextScreen() {
+        return v -> {
+            mMetricsFeatureProvider.action(
+                    getContext(),
+                    SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_TRY_CREATE_ACCOUNT_AGAIN);
+            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);
+                Log.d(TAG, "Start private space activity for account login");
+                getActivity()
+                        .startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
+            }
+        };
+    }
+
+    private View.OnClickListener onSkip() {
+        return v -> {
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_SKIP_ACCOUNT_LOGIN);
+            mMetricsFeatureProvider.action(
+                    getContext(),
+                    SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_SUCCESS,
+                    false);
+            NavHostFragment.findNavController(PrivateSpaceAccountLoginError.this)
+                    .navigate(R.id.action_success_fragment);
+        };
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivity.java b/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivity.java
new file mode 100644
index 0000000..149c0d6
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceAuthenticationActivity.java
@@ -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.privatespace;
+
+import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
+
+import android.app.ActivityOptions;
+import android.app.AlertDialog;
+import android.app.KeyguardManager;
+import android.app.PendingIntent;
+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;
+
+/**
+ * This class represents an activity responsible for user authentication before starting the private
+ * space setup flow or accessing the private space settings page if already created. Also prompts
+ * user to set a device lock if not set with an alert dialog. This can be launched using the intent
+ * com.android.settings.action.PRIVATE_SPACE_SETUP_FLOW.
+ */
+public class PrivateSpaceAuthenticationActivity extends FragmentActivity {
+    private static final String TAG = "PrivateSpaceAuthCheck";
+    public static final String EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED =
+            "extra_show_private_space_unlocked";
+    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) {
+                    if (mPrivateSpaceMaintainer.doesPrivateSpaceExist()) {
+                        unlockAndLaunchPrivateSpaceSettings(this);
+                    } else {
+                        authenticatePrivateSpaceEntry();
+                    }
+                }
+            } else {
+                promptToSetDeviceLock();
+            }
+        } else {
+            finish();
+        }
+    }
+
+    /** Starts private space setup flow or the PS settings page on device lock authentication */
+    @VisibleForTesting
+    public void onLockAuthentication(Context context) {
+        if (mPrivateSpaceMaintainer.doesPrivateSpaceExist()) {
+            unlockAndLaunchPrivateSpaceSettings(context);
+        } else {
+            startActivity(new Intent(context, PrivateSpaceSetupActivity.class));
+            finish();
+        }
+    }
+
+    @VisibleForTesting
+    public void setPrivateSpaceMaintainer(Injector injector) {
+        mPrivateSpaceMaintainer = injector.injectPrivateSpaceMaintainer(this);
+    }
+
+    private void promptToSetDeviceLock() {
+        Log.d(TAG, "Show prompt to set device lock before using private space feature");
+        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) -> {
+                            Log.d(TAG, "Start activity to set new device lock");
+                            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);
+            } else {
+                finish();
+            }
+        }
+    }
+
+    private void onVerifyDeviceLock(@Nullable ActivityResult result) {
+        if (result != null && result.getResultCode() == RESULT_OK) {
+            onLockAuthentication(this);
+        } else {
+            finish();
+        }
+    }
+
+    private void unlockAndLaunchPrivateSpaceSettings(Context context) {
+        SubSettingLauncher privateSpaceSettings =
+                new SubSettingLauncher(context)
+                        .setDestination(PrivateSpaceDashboardFragment.class.getName())
+                        .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+                        .setSourceMetricsCategory(SettingsEnums.PRIVATE_SPACE_SETTINGS);
+        if (mPrivateSpaceMaintainer.isPrivateSpaceLocked()) {
+            ActivityOptions options =
+                    ActivityOptions.makeBasic()
+                            .setPendingIntentCreatorBackgroundActivityStartMode(
+                                    ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED);
+            mPrivateSpaceMaintainer.unlockPrivateSpace(
+                    PendingIntent.getActivity(
+                                    context, /* requestCode */
+                                    0,
+                                    privateSpaceSettings
+                                            .toIntent()
+                                            .putExtra(EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED, true),
+                                    PendingIntent.FLAG_IMMUTABLE,
+                                    options.toBundle())
+                            .getIntentSender());
+        } else {
+            Log.i(TAG, "Launch private space settings");
+            privateSpaceSettings.launch();
+        }
+        finish();
+    }
+
+    private void authenticatePrivateSpaceEntry() {
+        Intent credentialIntent = mPrivateSpaceMaintainer.getPrivateProfileLockCredentialIntent();
+        if (credentialIntent != null) {
+            mVerifyDeviceLock.launch(credentialIntent);
+        } else {
+            Log.e(TAG, "verifyCredentialIntent is null even though device lock is set");
+            finish();
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java b/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java
new file mode 100644
index 0000000..e426477
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.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.privatespace;
+
+import static com.android.settings.privatespace.PrivateSpaceAuthenticationActivity.EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED;
+
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+
+/** Fragment representing the Private Space dashboard in Settings. */
+public class PrivateSpaceDashboardFragment extends DashboardFragment {
+    private static final String TAG = "PSDashboardFragment";
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        if (android.os.Flags.allowPrivateProfile()) {
+            super.onCreate(icicle);
+            if (getIntent().getBooleanExtra(EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED, false)) {
+                Log.i(TAG, "Private space unlocked showing toast");
+                Toast.makeText(getContext(), R.string.private_space_unlocked, Toast.LENGTH_SHORT)
+                        .show();
+            }
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (PrivateSpaceMaintainer.getInstance(getContext()).isPrivateSpaceLocked()) {
+            finish();
+        }
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.private_space_settings;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceEducation.java b/src/com/android/settings/privatespace/PrivateSpaceEducation.java
new file mode 100644
index 0000000..e54982b
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceEducation.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 android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.Nullable;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment educating about the usage of Private Space. */
+public class PrivateSpaceEducation extends InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceEducation";
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        if (!android.os.Flags.allowPrivateProfile()) {
+            return null;
+        }
+        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.private_space_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.private_space_cancel_label)
+                        .setListener(onCancel())
+                        .setButtonType(FooterButton.ButtonType.CANCEL)
+                        .setTheme(
+                                androidx.appcompat.R.style
+                                        .Base_TextAppearance_AppCompat_Widget_Button)
+                        .build());
+
+        return rootView;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_EDUCATION;
+    }
+
+    private View.OnClickListener onSetup() {
+        return v -> {
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_START);
+            Log.i(TAG, "Starting private space setup");
+            NavHostFragment.findNavController(PrivateSpaceEducation.this)
+                    .navigate(R.id.action_education_to_auto_advance);
+        };
+    }
+
+    private View.OnClickListener onCancel() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                mMetricsFeatureProvider.action(
+                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_CANCEL);
+                Log.i(TAG, "private space setup cancelled");
+                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
new file mode 100644
index 0000000..a283147
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
@@ -0,0 +1,313 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.os.UserManager.USER_TYPE_PROFILE_PRIVATE;
+import static android.provider.Settings.Secure.HIDE_PRIVATESPACE_ENTRY_POINT;
+import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK;
+import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_NEVER;
+import static android.provider.Settings.Secure.USER_SETUP_COMPLETE;
+
+import android.app.ActivityManager;
+import android.app.IActivityManager;
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.content.pm.UserInfo;
+import android.os.Flags;
+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 androidx.annotation.VisibleForTesting;
+
+import com.android.internal.annotations.GuardedBy;
+
+import java.util.List;
+
+// TODO(b/293569406): Update the javadoc when we have the setup flow in place to create PS
+/** 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;
+
+    private final Context mContext;
+    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;
+    /** Default value for private space auto lock settings. */
+    @Settings.Secure.PrivateSpaceAutoLockOption
+    public static final int PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL = PRIVATE_SPACE_AUTO_LOCK_NEVER;
+
+    public enum ErrorDeletingPrivateSpace {
+            DELETE_PS_ERROR_NONE,
+            DELETE_PS_ERROR_NO_PRIVATE_SPACE,
+            DELETE_PS_ERROR_INTERNAL
+    }
+
+    /**
+     * Returns true if the private space was successfully created.
+     *
+     * <p> This method should be used by the Private Space Setup Flow ONLY.
+     */
+    @VisibleForTesting
+    public final synchronized boolean createPrivateSpace() {
+        if (!Flags.allowPrivateProfile()) {
+            return false;
+        }
+        // Check if Private space already exists
+        if (doesPrivateSpaceExist()) {
+            return true;
+        }
+        // a name indicating that the profile was created from the PS Settings page
+        final String userName = "psSettingsUser";
+
+        if (mUserHandle == null) {
+            try {
+                mUserHandle = mUserManager.createProfile(
+                                userName, USER_TYPE_PROFILE_PRIVATE, new ArraySet<>());
+            } catch (Exception e) {
+                Log.e(TAG, "Error creating private space", e);
+                return false;
+            }
+
+            if (mUserHandle == null) {
+                Log.e(TAG, "Failed to create private space");
+                return false;
+            }
+
+            IActivityManager am = ActivityManager.getService();
+            try {
+                //TODO(b/313926659): To check and handle failure of startProfile
+                am.startProfile(mUserHandle.getIdentifier());
+            } catch (RemoteException e) {
+                Log.e(TAG, "Failed to start private profile");
+                return false;
+            }
+
+            Log.i(TAG, "Private space created with id: " + mUserHandle.getIdentifier());
+            resetPrivateSpaceSettings();
+            setUserSetupComplete();
+        }
+        return true;
+    }
+
+    /** Returns the {@link ErrorDeletingPrivateSpace} enum representing the result of operation.
+     *
+     * <p> This method should be used ONLY by the delete-PS controller in the PS Settings page.
+     */
+    public synchronized ErrorDeletingPrivateSpace deletePrivateSpace() {
+        if (!doesPrivateSpaceExist()) {
+            return ErrorDeletingPrivateSpace.DELETE_PS_ERROR_NO_PRIVATE_SPACE;
+        }
+
+        try {
+            Log.i(TAG, "Deleting Private space with id: " + mUserHandle.getIdentifier());
+            if (mUserManager.removeUser(mUserHandle)) {
+                Log.i(TAG, "Private space deleted");
+                mUserHandle = null;
+
+                return ErrorDeletingPrivateSpace.DELETE_PS_ERROR_NONE;
+            } else {
+                Log.e(TAG, "Failed to delete private space");
+            }
+        } catch (Exception e) {
+            Log.e(TAG, "Error deleting private space", e);
+        }
+        return ErrorDeletingPrivateSpace.DELETE_PS_ERROR_INTERNAL;
+    }
+
+    /** Returns true if the Private space exists. */
+    public synchronized boolean doesPrivateSpaceExist() {
+        if (!Flags.allowPrivateProfile()) {
+            return false;
+        }
+        if (mUserHandle != null) {
+            return true;
+        }
+
+        List<UserInfo> users = mUserManager.getProfiles(0);
+        for (UserInfo user : users) {
+            if (user.isPrivateProfile()) {
+                mUserHandle = user.getUserHandle();
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /** 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);
+        }
+        return sPrivateSpaceMaintainer;
+    }
+
+    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) {
+        Log.d(TAG, "Setting HIDE_PRIVATE_SPACE_ENTRY_POINT = " + value);
+        Settings.Secure.putInt(mContext.getContentResolver(), HIDE_PRIVATESPACE_ENTRY_POINT, value);
+    }
+
+    /** Sets the setting for private space auto lock option. */
+    public void setPrivateSpaceAutoLockSetting(
+            @Settings.Secure.PrivateSpaceAutoLockOption int value) {
+        if (isPrivateSpaceAutoLockSupported()) {
+            Settings.Secure.putInt(mContext.getContentResolver(), PRIVATE_SPACE_AUTO_LOCK, 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);
+    }
+
+    /** @return the setting for PS auto lock option. */
+    @Settings.Secure.PrivateSpaceAutoLockOption
+    public int getPrivateSpaceAutoLockSetting() {
+        if (isPrivateSpaceAutoLockSupported()) {
+            return Settings.Secure.getInt(
+                    mContext.getContentResolver(),
+                    PRIVATE_SPACE_AUTO_LOCK,
+                    PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);
+        }
+        return PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL;
+    }
+
+    /**
+     * Returns true if private space exists and quiet mode is successfully enabled, otherwise
+     * returns false
+     */
+    public synchronized boolean lockPrivateSpace() {
+        if (isPrivateProfileRunning()) {
+            Log.d(TAG, "Calling requestQuietModeEnabled to enableQuietMode");
+            return mUserManager.requestQuietModeEnabled(true, mUserHandle);
+        }
+        return false;
+    }
+
+    /**
+     * Checks if private space exists and requests to disable quiet mode.
+     *
+     * @param intentSender target to start when the user is unlocked
+     */
+    public synchronized void unlockPrivateSpace(IntentSender intentSender) {
+        if (mUserHandle != null) {
+            Log.d(TAG, "Calling requestQuietModeEnabled to disableQuietMode");
+            mUserManager.requestQuietModeEnabled(false, mUserHandle, intentSender);
+        }
+    }
+
+    /** Returns true if private space exists and is running, otherwise returns false */
+    @VisibleForTesting
+    synchronized boolean isPrivateProfileRunning() {
+        if (doesPrivateSpaceExist() && mUserHandle != null) {
+            return mUserManager.isUserRunning(mUserHandle);
+        }
+        return false;
+    }
+
+    private void resetPrivateSpaceSettings() {
+        setHidePrivateSpaceEntryPointSetting(HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);
+        setPrivateSpaceAutoLockSetting(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);
+    }
+
+    /**
+     * Sets the USER_SETUP_COMPLETE for private profile on which device theme is applied to the
+     * profile.
+     */
+    @GuardedBy("this")
+    private void setUserSetupComplete() {
+        Log.d(TAG, "setting USER_SETUP_COMPLETE = 1 for private profile");
+        Settings.Secure.putIntForUser(mContext.getContentResolver(), USER_SETUP_COMPLETE,
+                1, mUserHandle.getIdentifier());
+    }
+
+    private boolean isPrivateSpaceAutoLockSupported() {
+        return android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.supportAutolockForPrivateSpace();
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java b/src/com/android/settings/privatespace/PrivateSpaceSafetySource.java
new file mode 100644
index 0000000..6729830
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceSafetySource.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.privatespace;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Flags;
+import android.os.UserManager;
+import android.safetycenter.SafetyEvent;
+import android.safetycenter.SafetySourceData;
+import android.safetycenter.SafetySourceStatus;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
+
+/** Private Space safety source for the Safety Center */
+public final class PrivateSpaceSafetySource {
+    public static final String SAFETY_SOURCE_ID = "AndroidPrivateSpace";
+    private static final String TAG = "PrivateSpaceSafetySrc";
+
+    private PrivateSpaceSafetySource() {}
+
+    /** Sets lock screen safety data for Safety Center. */
+    public static void setSafetySourceData(Context context,
+            SafetyEvent safetyEvent) {
+        if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
+            Log.i(TAG, "Safety Center disabled");
+            return;
+        }
+
+        // Check the profile type - we don't want to show this for anything other than primary user.
+        UserManager userManager = context.getSystemService(UserManager.class);
+        if (userManager != null && !userManager.isMainUser()) {
+            Log.i(TAG, "setSafetySourceData not main user");
+            return;
+        }
+
+        if (!Flags.allowPrivateProfile()) {
+            // Setting null safetySourceData so that an old entry gets cleared out and this way
+            // provide a response since SC always expects one on rescan.
+            SafetyCenterManagerWrapper.get().setSafetySourceData(
+                    context,
+                    SAFETY_SOURCE_ID,
+                    /* safetySourceData */ null,
+                    safetyEvent
+            );
+            return;
+        }
+
+        PendingIntent pendingIntent = getPendingIntentForPsDashboard(context);
+
+        SafetySourceStatus status = new SafetySourceStatus.Builder(
+                context.getString(R.string.private_space_title),
+                context.getString(R.string.private_space_summary),
+                SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED)
+                .setPendingIntent(pendingIntent).build();
+        SafetySourceData safetySourceData =
+                new SafetySourceData.Builder().setStatus(status).build();
+
+        Log.d(TAG, "Setting safety source data");
+        SafetyCenterManagerWrapper.get().setSafetySourceData(
+                context,
+                SAFETY_SOURCE_ID,
+                safetySourceData,
+                safetyEvent
+        );
+    }
+
+    private static PendingIntent getPendingIntentForPsDashboard(Context context) {
+        Intent privateSpaceAuthenticationIntent =
+                new Intent(context, PrivateSpaceAuthenticationActivity.class)
+                        .setIdentifier(SAFETY_SOURCE_ID);
+
+        return PendingIntent
+                .getActivity(
+                        context,
+                        /* requestCode */ 0,
+                        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..9e2e5cc
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceSetLockFragment.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.privatespace;
+
+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.settings.SettingsEnums;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/**
+ * 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 InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceSetLockFrag";
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        if (!android.os.Flags.allowPrivateProfile()) {
+            return null;
+        }
+        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.private_space_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.private_space_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;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_LOCK;
+    }
+
+    private View.OnClickListener onClickUse() {
+        return v -> {
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_USE_SCREEN_LOCK);
+            // Simply Use default screen lock. No need to handle
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_START);
+            Log.d(TAG, "Use device lock for private profile");
+            launchActivityForAction(ACCOUNT_LOGIN_ACTION);
+        };
+    }
+
+    private View.OnClickListener onClickNewLock() {
+        return v -> {
+            mMetricsFeatureProvider.action(
+                    getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_NEW_LOCK);
+            launchActivityForAction(SET_LOCK_ACTION);
+        };
+    }
+
+    private void launchActivityForAction(int action) {
+        UserHandle userHandle =
+                PrivateSpaceMaintainer.getInstance(getActivity()).getPrivateProfileHandle();
+        if (userHandle != null) {
+            Intent intent = new Intent(getContext(), PrivateProfileContextHelperActivity.class);
+            intent.putExtra(EXTRA_ACTION_TYPE, action);
+            Log.i(TAG, "Start separate lock setup for private profile");
+            getActivity().startActivityForResultAsUser(intent, action, userHandle);
+        } else {
+            Log.w(TAG, "Private profile user handle is null");
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java b/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.java
new file mode 100644
index 0000000..75b69cd
--- /dev/null
+++ b/src/com/android/settings/privatespace/PrivateSpaceSetupActivity.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.settings.SettingsEnums;
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.util.Log;
+
+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.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+import com.google.android.setupdesign.util.ThemeHelper;
+
+/** Activity class that helps in setting up of private space */
+public class PrivateSpaceSetupActivity extends FragmentActivity {
+    private static final String TAG = "PrivateSpaceSetupAct";
+    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;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        if (!android.os.Flags.allowPrivateProfile()) {
+            return;
+        }
+        setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+        ThemeHelper.trySetDynamicColor(this);
+        super.onCreate(savedInstanceState);
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+        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) {
+            /* Start new activity in private profile to add an account to private profile */
+            UserHandle userHandle =
+                    PrivateSpaceMaintainer.getInstance(this).getPrivateProfileHandle();
+            if (userHandle != null) {
+                Intent intent = new Intent(this, PrivateProfileContextHelperActivity.class);
+                intent.putExtra(EXTRA_ACTION_TYPE, ACCOUNT_LOGIN_ACTION);
+                mMetricsFeatureProvider.action(
+                        this, SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_START);
+                startActivityForResultAsUser(intent, ACCOUNT_LOGIN_ACTION, userHandle);
+            } else {
+                Log.w(TAG, "Private profile user handle is null");
+            }
+        } else if (requestCode == ACCOUNT_LOGIN_ACTION) {
+            if (resultCode == RESULT_OK) {
+                mMetricsFeatureProvider.action(
+                        this, SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_SUCCESS, true);
+                mNavHostFragment.getNavController().navigate(R.id.action_success_fragment);
+            } else {
+                mMetricsFeatureProvider.action(
+                        this,
+                        SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_ACCOUNT_LOGIN_SUCCESS,
+                        false);
+                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..b1e0edc
--- /dev/null
+++ b/src/com/android/settings/privatespace/SetupSuccessFragment.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.privatespace;
+
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.util.Log;
+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 com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment for the final screen shown on successful completion of private space setup. */
+public class SetupSuccessFragment extends InstrumentedFragment {
+    private static final String TAG = "SetupSuccessFragment";
+
+    @Override
+    public View onCreateView(
+            LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        if (!android.os.Flags.allowPrivateProfile()) {
+            return null;
+        }
+        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.private_space_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;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETUP_FINISH;
+    }
+
+    private View.OnClickListener onClickNext() {
+        return v -> {
+            Activity activity = getActivity();
+            if (activity != null) {
+                mMetricsFeatureProvider.action(
+                        getContext(), SettingsEnums.ACTION_PRIVATE_SPACE_SETUP_DONE);
+                //TODO(b/307729746): Add a test to verify PS is locked after setup completion.
+                PrivateSpaceMaintainer.getInstance(activity).lockPrivateSpace();
+                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);
+                Log.i(TAG, "Private space setup complete");
+                activity.finish();
+            }
+        };
+    }
+
+    private void accessPrivateSpaceToast() {
+        Toast.makeText(getContext(), R.string.private_space_scrolldown_to_access,
+                Toast.LENGTH_SHORT).show();
+    }
+}
diff --git a/src/com/android/settings/privatespace/autolock/AutoLockPreferenceController.java b/src/com/android/settings/privatespace/autolock/AutoLockPreferenceController.java
new file mode 100644
index 0000000..a7a12a4
--- /dev/null
+++ b/src/com/android/settings/privatespace/autolock/AutoLockPreferenceController.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.privatespace.autolock;
+
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+public class AutoLockPreferenceController extends BasePreferenceController {
+    private static final String TAG = "AutoLockPreferenceCtrl";
+    private final CharSequence[] mAutoLockRadioOptions;
+    private final PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+
+    public AutoLockPreferenceController(@NonNull Context context, @NonNull String key) {
+        super(context, key);
+        mPrivateSpaceMaintainer = PrivateSpaceMaintainer.getInstance(context);
+        mAutoLockRadioOptions =
+                context.getResources().getStringArray(R.array.private_space_auto_lock_options);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return android.os.Flags.allowPrivateProfile()
+                        && android.multiuser.Flags.supportAutolockForPrivateSpace()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @NonNull
+    @Override
+    public CharSequence getSummary() {
+        try {
+            return mAutoLockRadioOptions[mPrivateSpaceMaintainer.getPrivateSpaceAutoLockSetting()];
+        } catch (ArrayIndexOutOfBoundsException exception) {
+            Log.e(TAG, "Invalid private space auto lock setting value" + exception.getMessage());
+        }
+        return mAutoLockRadioOptions[PrivateSpaceMaintainer.PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL];
+    }
+}
diff --git a/src/com/android/settings/privatespace/autolock/AutoLockSettingsFragment.java b/src/com/android/settings/privatespace/autolock/AutoLockSettingsFragment.java
new file mode 100644
index 0000000..ef8bf8e
--- /dev/null
+++ b/src/com/android/settings/privatespace/autolock/AutoLockSettingsFragment.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.privatespace.autolock;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+import com.android.settings.widget.RadioButtonPickerFragment;
+import com.android.settingslib.widget.CandidateInfo;
+import com.android.settingslib.widget.TopIntroPreference;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AutoLockSettingsFragment extends RadioButtonPickerFragment {
+    private static final String TAG = "PSAutoLockSetting";
+    private PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+    private CharSequence[] mAutoLockRadioOptions;
+    private CharSequence[] mAutoLockRadioValues;
+
+    @Override
+    public void onCreate(@NonNull Bundle icicle) {
+        if (android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.supportAutolockForPrivateSpace()) {
+            super.onCreate(icicle);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (mPrivateSpaceMaintainer.isPrivateSpaceLocked()) {
+            finish();
+        }
+    }
+
+    @Override
+    public void onAttach(@NonNull Context context) {
+        super.onAttach(context);
+        mPrivateSpaceMaintainer = PrivateSpaceMaintainer.getInstance(context);
+        mAutoLockRadioOptions =
+                context.getResources().getStringArray(R.array.private_space_auto_lock_options);
+        mAutoLockRadioValues =
+                context.getResources()
+                        .getStringArray(R.array.private_space_auto_lock_options_values);
+    }
+
+    @Override
+    protected void addStaticPreferences(PreferenceScreen screen) {
+        final TopIntroPreference introPreference = new TopIntroPreference(screen.getContext());
+        introPreference.setTitle(R.string.private_space_auto_lock_page_summary);
+        screen.addPreference(introPreference);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.private_space_auto_lock_settings;
+    }
+
+    @Override
+    protected List<? extends CandidateInfo> getCandidates() {
+        final List<CandidateInfo> candidates = new ArrayList<>();
+        if (mAutoLockRadioValues != null) {
+            for (int i = 0; i < mAutoLockRadioValues.length; ++i) {
+                candidates.add(
+                        new AutoLockCandidateInfo(
+                                mAutoLockRadioOptions[i], mAutoLockRadioValues[i].toString()));
+            }
+        } else {
+            Log.e(TAG, "Autolock options do not exist.");
+        }
+        return candidates;
+    }
+
+    @Override
+    protected String getDefaultKey() {
+        return Integer.toString(mPrivateSpaceMaintainer.getPrivateSpaceAutoLockSetting());
+    }
+
+    @Override
+    protected boolean setDefaultKey(String key) {
+        try {
+            @Settings.Secure.PrivateSpaceAutoLockOption final int value = Integer.parseInt(key);
+            mPrivateSpaceMaintainer.setPrivateSpaceAutoLockSetting(value);
+        } catch (NumberFormatException e) {
+            Log.e(TAG, "could not persist screen timeout setting", e);
+        }
+        return true;
+    }
+
+    private static class AutoLockCandidateInfo extends CandidateInfo {
+        private final CharSequence mLabel;
+        private final String mKey;
+
+        AutoLockCandidateInfo(CharSequence label, String key) {
+            super(true);
+            mLabel = label;
+            mKey = key;
+        }
+
+        @NonNull
+        @Override
+        public CharSequence loadLabel() {
+            return mLabel;
+        }
+
+        @Nullable
+        @Override
+        public Drawable loadIcon() {
+            return null;
+        }
+
+        @NonNull
+        @Override
+        public String getKey() {
+            return mKey;
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/delete/DeletePrivateSpaceController.java b/src/com/android/settings/privatespace/delete/DeletePrivateSpaceController.java
new file mode 100644
index 0000000..af4535e
--- /dev/null
+++ b/src/com/android/settings/privatespace/delete/DeletePrivateSpaceController.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.delete;
+
+import android.content.Context;
+import android.content.Intent;
+
+import androidx.annotation.NonNull;
+import androidx.preference.Preference;
+
+import com.android.settings.core.BasePreferenceController;
+
+/** Controller to delete the private space from the PS Settings page */
+public class DeletePrivateSpaceController extends BasePreferenceController {
+    private static final String TAG = "PrivateSpaceDeleteCtrl";
+
+    public DeletePrivateSpaceController(@NonNull Context context, @NonNull String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return android.os.Flags.allowPrivateProfile() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(@NonNull Preference preference) {
+        if (mPreferenceKey.equals(preference.getKey())) {
+            startPrivateSpaceDeleteActivity();
+            return true;
+        }
+        return false;
+    }
+
+    private void startPrivateSpaceDeleteActivity() {
+        final Intent intent = new Intent(mContext, PrivateSpaceDeleteActivity.class);
+        mContext.startActivity(intent);
+    }
+}
diff --git a/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteActivity.java b/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteActivity.java
new file mode 100644
index 0000000..a4109b8
--- /dev/null
+++ b/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteActivity.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace.delete;
+
+import android.app.settings.SettingsEnums;
+import android.os.Bundle;
+
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.core.InstrumentedActivity;
+
+import com.google.android.setupdesign.util.ThemeHelper;
+
+public class PrivateSpaceDeleteActivity extends InstrumentedActivity {
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        if (!android.os.Flags.allowPrivateProfile()) {
+            return;
+        }
+        setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+        ThemeHelper.trySetDynamicColor(this);
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.privatespace_setup_root);
+        NavHostFragment navHostFragment =
+                (NavHostFragment)
+                        getSupportFragmentManager().findFragmentById(R.id.ps_nav_host_fragment);
+        navHostFragment.getNavController().setGraph(R.navigation.private_space_delete_nav);
+    }
+}
diff --git a/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteFragment.java b/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteFragment.java
new file mode 100644
index 0000000..7dd3a5b
--- /dev/null
+++ b/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteFragment.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.privatespace.delete;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.app.Activity;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.navigation.fragment.NavHostFragment;
+
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+import com.android.settingslib.accounts.AuthenticatorHelper;
+
+import com.google.android.setupcompat.template.FooterBarMixin;
+import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupdesign.GlifLayout;
+
+/** Fragment to delete private space that lists the accounts logged in to the private profile. */
+public class PrivateSpaceDeleteFragment extends InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceDeleteFrag";
+    private View mContentView;
+    private static final int CREDENTIAL_CONFIRM_REQUEST = 1;
+    @Nullable private UserHandle mPrivateUserHandle;
+
+    @Override
+    public void onCreate(@Nullable Bundle icicle) {
+        if (android.os.Flags.allowPrivateProfile()) {
+            super.onCreate(icicle);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (PrivateSpaceMaintainer.getInstance(getContext()).isPrivateSpaceLocked()) {
+            getActivity().finish();
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    private View.OnClickListener startAuthenticationForDelete() {
+        return v -> {
+            final ChooseLockSettingsHelper.Builder builder =
+                    new ChooseLockSettingsHelper.Builder(getActivity(), this);
+            if (mPrivateUserHandle != null) {
+                builder.setRequestCode(CREDENTIAL_CONFIRM_REQUEST)
+                        .setUserId(mPrivateUserHandle.getIdentifier())
+                        .show();
+            } else {
+                Log.e(TAG, "Private space user handle cannot be null");
+                getActivity().finish();
+            }
+        };
+    }
+
+    @NonNull
+    @Override
+    public View onCreateView(
+            @NonNull LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        mPrivateUserHandle =
+                PrivateSpaceMaintainer.getInstance(getContext()).getPrivateProfileHandle();
+        if (mPrivateUserHandle == null) {
+            Log.e(TAG, "Private space user handle cannot be null");
+            getActivity().finish();
+        }
+        mContentView = inflater.inflate(R.layout.private_space_delete, container, false);
+        final GlifLayout layout = mContentView.findViewById(R.id.private_space_delete_layout);
+        final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
+        final Activity activity = getActivity();
+        mixin.setPrimaryButton(
+                new FooterButton.Builder(activity)
+                        .setText(R.string.private_space_delete_button_label)
+                        .setListener(startAuthenticationForDelete())
+                        .setButtonType(FooterButton.ButtonType.OTHER)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+                        .build());
+        mixin.setSecondaryButton(
+                new FooterButton.Builder(activity)
+                        .setText(android.R.string.cancel)
+                        .setListener(view -> activity.onBackPressed())
+                        .setButtonType(FooterButton.ButtonType.CANCEL)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+                        .build());
+
+        loadPrivateProfileAccountList();
+        return mContentView;
+    }
+
+    private void loadPrivateProfileAccountList() {
+        View accountsLabel = mContentView.findViewById(R.id.accounts_label);
+        LinearLayout contents = (LinearLayout) mContentView.findViewById(R.id.accounts);
+        contents.removeAllViews();
+
+        Context context = getActivity();
+
+        AccountManager accountManager = AccountManager.get(context);
+
+        LayoutInflater inflater = context.getSystemService(LayoutInflater.class);
+
+        final AuthenticatorHelper helper =
+                new AuthenticatorHelper(context, mPrivateUserHandle, null);
+        final String[] accountTypes = helper.getEnabledAccountTypes();
+
+        for (String type : accountTypes) {
+            final String accountType = type;
+            final Account[] accounts =
+                    accountManager.getAccountsByTypeAsUser(accountType, mPrivateUserHandle);
+            Drawable icon = helper.getDrawableForType(getContext(), accountType);
+            if (icon == null) {
+                icon = context.getPackageManager().getDefaultActivityIcon();
+            }
+            for (Account account : accounts) {
+                View child = inflater.inflate(R.layout.main_clear_account, contents, false);
+                child.<ImageView>findViewById(android.R.id.icon).setImageDrawable(icon);
+                child.<TextView>findViewById(android.R.id.title).setText(account.name);
+                contents.addView(child);
+            }
+        }
+
+        if (contents.getChildCount() > 0) {
+            accountsLabel.setVisibility(View.VISIBLE);
+            contents.setVisibility(View.VISIBLE);
+        }
+    }
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == CREDENTIAL_CONFIRM_REQUEST && resultCode == Activity.RESULT_OK) {
+            NavHostFragment.findNavController(PrivateSpaceDeleteFragment.this)
+                    .navigate(R.id.action_authenticate_delete);
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/delete/PrivateSpaceDeletionProgressFragment.java b/src/com/android/settings/privatespace/delete/PrivateSpaceDeletionProgressFragment.java
new file mode 100644
index 0000000..3a16641
--- /dev/null
+++ b/src/com/android/settings/privatespace/delete/PrivateSpaceDeletionProgressFragment.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace.delete;
+
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.ErrorDeletingPrivateSpace.DELETE_PS_ERROR_INTERNAL;
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.ErrorDeletingPrivateSpace.DELETE_PS_ERROR_NONE;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Toast;
+
+import androidx.activity.OnBackPressedCallback;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+/** Fragment to show loading animation screen while deleting private space. */
+public class PrivateSpaceDeletionProgressFragment extends InstrumentedFragment {
+    private static final String TAG = "PrivateSpaceDeleteProg";
+    private static final int PRIVATE_SPACE_DELETE_POST_DELAY_MS = 1000;
+    private Handler mHandler;
+    private PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+    private Runnable mDeletePrivateSpace =
+            new Runnable() {
+                @Override
+                public void run() {
+                    deletePrivateSpace();
+                    getActivity().finish();
+                }
+            };
+
+    static class Injector {
+        PrivateSpaceMaintainer injectPrivateSpaceMaintainer(Context context) {
+            return PrivateSpaceMaintainer.getInstance(context);
+        }
+    }
+
+    @Override
+    public void onCreate(@Nullable Bundle savedInstanceState) {
+        if (android.os.Flags.allowPrivateProfile()) {
+            super.onCreate(savedInstanceState);
+        }
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+
+    @NonNull
+    @Override
+    public View onCreateView(
+            @NonNull LayoutInflater inflater,
+            @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        mPrivateSpaceMaintainer =
+                new PrivateSpaceDeletionProgressFragment.Injector()
+                        .injectPrivateSpaceMaintainer(getActivity().getApplicationContext());
+        if (!mPrivateSpaceMaintainer.doesPrivateSpaceExist()) {
+            // Ideally this should never happen as PS Settings is not available when there's no
+            // Private Profile.
+            Log.e(TAG, "Unexpected attempt to delete non-existent PS");
+            getActivity().finish();
+        }
+        View contentView =
+                inflater.inflate(R.layout.private_space_confirm_deletion, container, false);
+        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);
+        mHandler = new Handler(Looper.getMainLooper());
+        // Ensures screen visibility to user by introducing a 1-second delay before deleting private
+        // space.
+        mHandler.postDelayed(mDeletePrivateSpace, PRIVATE_SPACE_DELETE_POST_DELAY_MS);
+        return contentView;
+    }
+
+    @Override
+    public void onDestroy() {
+        mHandler.removeCallbacks(mDeletePrivateSpace);
+        super.onDestroy();
+    }
+
+    /** Deletes private space and shows a toast message */
+    @VisibleForTesting
+    public void deletePrivateSpace() {
+        PrivateSpaceMaintainer.ErrorDeletingPrivateSpace error =
+                mPrivateSpaceMaintainer.deletePrivateSpace();
+        if (error == DELETE_PS_ERROR_NONE) {
+            showSuccessfulDeletionToast();
+        } else if (error == DELETE_PS_ERROR_INTERNAL) {
+            showDeletionInternalErrorToast();
+        }
+    }
+
+    @VisibleForTesting
+    public void setPrivateSpaceMaintainer(@NonNull Injector injector) {
+        mPrivateSpaceMaintainer = injector.injectPrivateSpaceMaintainer(getActivity());
+    }
+
+    /** Shows a toast saying that the private space was deleted */
+    @VisibleForTesting
+    public void showSuccessfulDeletionToast() {
+        Toast.makeText(getContext(), R.string.private_space_deleted, Toast.LENGTH_SHORT).show();
+    }
+
+    /** Shows a toast saying that the private space could not be deleted */
+    @VisibleForTesting
+    public void showDeletionInternalErrorToast() {
+        Toast.makeText(getContext(), R.string.private_space_delete_failed, Toast.LENGTH_SHORT)
+                .show();
+    }
+}
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..2e3f284
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/FaceFingerprintUnlockController.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.privatespace.onelock;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.Log;
+
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.biometrics.combination.CombinedBiometricStatusPreferenceController;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+/** Represents the preference controller to enroll biometrics for private space lock. */
+public class FaceFingerprintUnlockController extends CombinedBiometricStatusPreferenceController {
+    private static final String TAG = "PSBiometricCtrl";
+    private static final String KEY_SET_UNSET_FACE_FINGERPRINT = "private_space_biometrics";
+    private final int mProfileUserId;
+
+    public FaceFingerprintUnlockController(Context context, Lifecycle lifecycle) {
+        super(context, KEY_SET_UNSET_FACE_FINGERPRINT, lifecycle);
+        mProfileUserId = getUserId();
+    }
+
+    protected boolean isUserSupported() {
+        return android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
+                && mProfileUserId != UserHandle.USER_NULL;
+    }
+
+    @Override
+    protected int getUserId() {
+        UserHandle privateProfileHandle =
+                PrivateSpaceMaintainer.getInstance(mContext).getPrivateProfileHandle();
+        if (privateProfileHandle != null) {
+            return privateProfileHandle.getIdentifier();
+        } else {
+            Log.e(TAG, "Private profile user handle is not expected to be null.");
+        }
+        return UserHandle.USER_NULL;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_SET_UNSET_FACE_FINGERPRINT;
+    }
+
+    @Override
+    protected String getSettingsClassName() {
+        return mCombinedBiometricStatusUtils.getPrivateProfileSettingsClassName();
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        if (mLockPatternUtils.isSeparateProfileChallengeEnabled(mProfileUserId)) {
+            super.updateState(preference);
+            preference.setEnabled(true);
+        } else {
+            Utils.removeEnrolledFaceForUser(mContext, getUserId());
+            Utils.removeEnrolledFingerprintForUser(mContext, getUserId());
+            preference.setSummary(
+                    mContext.getString(R.string.lock_settings_profile_unified_summary));
+            preference.setEnabled(false);
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/PrivateSpaceBiometricSettings.java b/src/com/android/settings/privatespace/onelock/PrivateSpaceBiometricSettings.java
new file mode 100644
index 0000000..dc00885
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/PrivateSpaceBiometricSettings.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 android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.biometrics.combination.BiometricsSettingsBase;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+public class PrivateSpaceBiometricSettings extends BiometricsSettingsBase {
+    private static final String TAG = "PSBiometricSettings";
+    private static final String KEY_FACE_SETTINGS = "private_space_face_unlock_settings";
+    private static final String KEY_FINGERPRINT_SETTINGS =
+            "private_space_fingerprint_unlock_settings";
+
+    @Override
+    public void onAttach(Context context) {
+        if (android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()) {
+            super.onAttach(context);
+            UserHandle privateProfileHandle =
+                    PrivateSpaceMaintainer.getInstance(context).getPrivateProfileHandle();
+            if (privateProfileHandle != null) {
+                mUserId = privateProfileHandle.getIdentifier();
+            } else {
+                mUserId = -1;
+                Log.e(TAG, "Private profile user handle is not expected to be null.");
+            }
+        }
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.private_space_biometric_settings;
+    }
+
+    @Override
+    public String getFacePreferenceKey() {
+        return KEY_FACE_SETTINGS;
+    }
+
+    @Override
+    public String getFingerprintPreferenceKey() {
+        return KEY_FINGERPRINT_SETTINGS;
+    }
+
+    @Override
+    public String getUnlockPhonePreferenceKey() {
+        return "";
+    }
+
+    @Override
+    public String getUseInAppsPreferenceKey() {
+        return "";
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PRIVATE_SPACE_SETTINGS;
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/PrivateSpaceFacePreferenceController.java b/src/com/android/settings/privatespace/onelock/PrivateSpaceFacePreferenceController.java
new file mode 100644
index 0000000..b841d9a
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/PrivateSpaceFacePreferenceController.java
@@ -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.privatespace.onelock;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.biometrics.combination.BiometricFaceStatusPreferenceController;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+public class PrivateSpaceFacePreferenceController extends BiometricFaceStatusPreferenceController {
+    private static final String TAG = "PrivateSpaceFaceCtrl";
+
+    public PrivateSpaceFacePreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    public PrivateSpaceFacePreferenceController(Context context, String key, Lifecycle lifecycle) {
+        super(context, key, lifecycle);
+    }
+
+    @Override
+    protected boolean isUserSupported() {
+        return android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
+                && getUserId() != UserHandle.USER_NULL;
+    }
+
+    @Override
+    protected int getUserId() {
+        UserHandle privateProfileHandle =
+                PrivateSpaceMaintainer.getInstance(mContext).getPrivateProfileHandle();
+        if (privateProfileHandle != null) {
+            return privateProfileHandle.getIdentifier();
+        } else {
+            Log.e(TAG, "Private profile user handle is not expected to be null.");
+        }
+        return UserHandle.USER_NULL;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return android.os.Flags.allowPrivateProfile()
+                        && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        if (mLockPatternUtils.isSeparateProfileChallengeEnabled(getUserId())) {
+            super.updateState(preference);
+            preference.setEnabled(true);
+        } else {
+            Utils.removeEnrolledFaceForUser(mContext, getUserId());
+            preference.setSummary(
+                    mContext.getString(R.string.lock_settings_profile_unified_summary));
+            preference.setEnabled(false);
+        }
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        Preference preference = screen.findPreference(getPreferenceKey());
+        if (!Utils.isMultipleBiometricsSupported(mContext)) {
+            preference.setTitle(R.string.private_space_face_title);
+        }
+    }
+}
diff --git a/src/com/android/settings/privatespace/onelock/PrivateSpaceFingerprintPreferenceController.java b/src/com/android/settings/privatespace/onelock/PrivateSpaceFingerprintPreferenceController.java
new file mode 100644
index 0000000..d484904
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/PrivateSpaceFingerprintPreferenceController.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.onelock;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.biometrics.combination.BiometricFingerprintStatusPreferenceController;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+public class PrivateSpaceFingerprintPreferenceController
+        extends BiometricFingerprintStatusPreferenceController {
+    private static final String TAG = "PrivateSpaceFingerCtrl";
+
+    public PrivateSpaceFingerprintPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    public PrivateSpaceFingerprintPreferenceController(
+            Context context, String key, Lifecycle lifecycle) {
+        super(context, key, lifecycle);
+    }
+
+    @Override
+    protected boolean isUserSupported() {
+        return android.os.Flags.allowPrivateProfile()
+                && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
+                && getUserId() != UserHandle.USER_NULL;
+    }
+
+    @Override
+    protected int getUserId() {
+        UserHandle privateProfileHandle =
+                PrivateSpaceMaintainer.getInstance(mContext).getPrivateProfileHandle();
+        if (privateProfileHandle != null) {
+            return privateProfileHandle.getIdentifier();
+        } else {
+            Log.e(TAG, "Private profile user handle is not expected to be null.");
+        }
+        return UserHandle.USER_NULL;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return android.os.Flags.allowPrivateProfile()
+                        && android.multiuser.Flags.enableBiometricsToUnlockPrivateSpace()
+                ? AVAILABLE
+                : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        if (mLockPatternUtils.isSeparateProfileChallengeEnabled(getUserId())) {
+            super.updateState(preference);
+            preference.setEnabled(true);
+        } else {
+            Utils.removeEnrolledFingerprintForUser(mContext, getUserId());
+            preference.setSummary(
+                    mContext.getString(R.string.lock_settings_profile_unified_summary));
+            preference.setEnabled(false);
+        }
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        Preference preference = screen.findPreference(getPreferenceKey());
+        if (!Utils.isMultipleBiometricsSupported(mContext)) {
+            preference.setTitle(R.string.private_space_fingerprint_title);
+        }
+    }
+}
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..efbe9f9
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/PrivateSpaceLockController.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.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 static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
+
+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 android.os.Flags.allowPrivateProfile();
+    }
+
+    @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);
+        extras.putInt(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, R.string.private_space_lock_setup_title);
+        new SubSettingLauncher(mContext)
+                .setDestination(ChooseLockGeneric.ChooseLockGenericFragment.class.getName())
+                .setSourceMetricsCategory(mHost.getMetricsCategory())
+                .setArguments(extras)
+                .setExtras(extras)
+                .setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE)
+                .launch();
+        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..31634b9
--- /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 android.os.Flags.allowPrivateProfile() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @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..fd7d02b
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockControllerSwitch.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.annotation.Nullable;
+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 android.os.Flags.allowPrivateProfile();
+    }
+
+    @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, @Nullable Intent data) {
+        if (requestCode == UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST
+                  && resultCode == Activity.RESULT_OK && data != null) {
+            mCurrentDevicePassword =
+                      data.getParcelableExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
+            separateLocks();
+            return true;
+        } else if (requestCode == UNIFY_PRIVATE_LOCK_WITH_DEVICE_REQUEST
+                  && resultCode == Activity.RESULT_OK && data != null) {
+            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.private_space_set_lock_label,
+                            (dialog, which) -> {
+                                Intent intent = new Intent(mContext,
+                                          PrivateProfileContextHelperActivity.class);
+                                intent.putExtra(EXTRA_ACTION_TYPE, SET_LOCK_ACTION);
+                                ((Activity) mContext).startActivityForResultAsUser(intent,
+                                          UNUNIFY_PRIVATE_LOCK_FROM_DEVICE_REQUEST,
+                                          /*Options*/ null, mUserHandle);
+                            })
+                  .setNegativeButton(R.string.private_space_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..413e02a
--- /dev/null
+++ b/src/com/android/settings/privatespace/onelock/UseOneLockSettingsFragment.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.privatespace.onelock;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+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 void onCreate(Bundle icicle) {
+        if (android.os.Flags.allowPrivateProfile()) {
+            super.onCreate(icicle);
+        }
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (PrivateSpaceMaintainer.getInstance(getContext()).isPrivateSpaceLocked()) {
+            finish();
+        }
+    }
+
+    @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));
+        if (Utils.isMultipleBiometricsSupported(context)) {
+            controllers.add(new FaceFingerprintUnlockController(context, getSettingsLifecycle()));
+        } else if (Utils.hasFingerprintHardware(context)) {
+            controllers.add(
+                    new PrivateSpaceFingerprintPreferenceController(
+                            context, "private_space_biometrics", getSettingsLifecycle()));
+        } else if (Utils.hasFaceHardware(context)) {
+            controllers.add(
+                    new PrivateSpaceFacePreferenceController(
+                            context, "private_space_biometrics", getSettingsLifecycle()));
+        }
+        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/NumberingSystemItemController.java b/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java
index c1e77ab..de0d386 100644
--- a/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java
+++ b/src/com/android/settings/regionalpreferences/NumberingSystemItemController.java
@@ -64,7 +64,7 @@
                 RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE, "");
         mSelectedLanguage = argument.getString(
                 NumberingSystemItemController.KEY_SELECTED_LANGUAGE, "");
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     /**
@@ -152,6 +152,8 @@
 
     private void handleLanguageSelect(Preference preference) {
         String selectedLanguage = preference.getKey();
+        mMetricsFeatureProvider.action(mContext,
+                SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES);
         final Bundle extra = new Bundle();
         extra.putString(RegionalPreferencesEntriesFragment.ARG_KEY_REGIONAL_PREFERENCE,
                 ARG_VALUE_NUMBERING_SYSTEM_SELECT);
@@ -174,6 +176,8 @@
                 Locale updatedLocale =
                         saveNumberingSystemToLocale(Locale.forLanguageTag(mSelectedLanguage),
                                 numberingSystem);
+                mMetricsFeatureProvider.action(mContext,
+                        SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES);
                 // After updated locale to framework, this fragment will recreate,
                 // so it needs to update the argument of selected language.
                 Bundle bundle = new Bundle();
diff --git a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
index 0608b0c..8be0043 100644
--- a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
+++ b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
@@ -16,24 +16,27 @@
 
 package com.android.settings.regionalpreferences;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.util.Log;
 
-import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 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
@@ -63,6 +66,10 @@
                 RegionalPreferencesDataUtils.savePreference(mContext, getExtensionTypes(),
                         item.equals(RegionalPreferencesDataUtils.DEFAULT_VALUE)
                                 ? null : item);
+                String metrics =
+                        getMetricsActionKey() == SettingsEnums.ACTION_SET_FIRST_DAY_OF_WEEK ? ""
+                                : getPreferenceTitle(value) + " > " + getPreferenceTitle(item);
+                mMetricsFeatureProvider.action(mContext, getMetricsActionKey(), metrics);
                 return true;
             });
             pref.setSelected(!value.isEmpty() && item.equals(value));
@@ -92,4 +99,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/remoteauth/OWNERS b/src/com/android/settings/remoteauth/OWNERS
new file mode 100644
index 0000000..64e7f5c
--- /dev/null
+++ b/src/com/android/settings/remoteauth/OWNERS
@@ -0,0 +1,5 @@
+# People who can approve changes for submission
+dlm@google.com
+jasonsun@google.com
+derekjedral@google.com
+justinmcclain@google.com
diff --git a/src/com/android/settings/remoteauth/RemoteAuthActivity.kt b/src/com/android/settings/remoteauth/RemoteAuthActivity.kt
new file mode 100644
index 0000000..b339066
--- /dev/null
+++ b/src/com/android/settings/remoteauth/RemoteAuthActivity.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth
+
+import android.os.Bundle
+
+import androidx.annotation.IdRes
+import androidx.navigation.fragment.NavHostFragment
+
+import com.android.settings.R
+import com.android.settings.SetupWizardUtils
+import com.android.settings.core.InstrumentedActivity
+import com.google.android.setupdesign.util.ThemeHelper
+
+open class RemoteAuthActivity : InstrumentedActivity() {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setTheme(SetupWizardUtils.getTheme(this, getIntent()))
+        ThemeHelper.trySetDynamicColor(this)
+        setContentView(R.layout.remote_auth_root)
+        // TODO(b/290768873): Change to remote_auth_enroll_introduction_fragment if no device is
+        // enrolled.
+        initializeNavigation(R.id.remote_auth_settings_fragment)
+    }
+
+    override fun getMetricsCategory(): Int {
+        // TODO() Update frameworks/proto_logging/stats/enums/app/settings_enums.proto
+        return 0
+    }
+
+    private fun initializeNavigation(@IdRes startDestinationId: Int) {
+        val navHostFragment =
+            supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
+        val navController = navHostFragment.navController
+        val navGraph = navController.navInflater.inflate(R.navigation.remote_auth_navigation)
+        navGraph.setStartDestination(startDestinationId)
+        navController.graph = navGraph
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/RemoteAuthActivityInternal.kt b/src/com/android/settings/remoteauth/RemoteAuthActivityInternal.kt
new file mode 100644
index 0000000..0e0e7da
--- /dev/null
+++ b/src/com/android/settings/remoteauth/RemoteAuthActivityInternal.kt
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth
+
+/**
+ * Wrapper of {@link RemoteAuthActivity} to use with a pre-defined task affinity.
+ */
+class RemoteAuthActivityInternal : RemoteAuthActivity()
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/RemoteAuthEnrollBase.kt b/src/com/android/settings/remoteauth/RemoteAuthEnrollBase.kt
new file mode 100644
index 0000000..05be7ad
--- /dev/null
+++ b/src/com/android/settings/remoteauth/RemoteAuthEnrollBase.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.remoteauth
+
+import android.R
+import android.graphics.Color
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.annotation.ColorInt
+import androidx.annotation.IdRes
+import androidx.annotation.LayoutRes
+import androidx.fragment.app.Fragment
+
+import com.android.settings.Utils
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+
+/**
+ * Displays a content view with a sticky footer in the SetupDesign style. Implementations
+ * must define a primary button, and an optional secondary button.
+ *
+ * A layout with a [GlifLayout] must be provided, along with the id of the [GlifLayout].
+ */
+abstract class RemoteAuthEnrollBase(
+    @LayoutRes val layoutResId: Int,
+    @IdRes private val glifLayoutId: Int
+) : Fragment(layoutResId) {
+    protected val primaryFooterButton by lazy { initializePrimaryFooterButton() }
+    protected val secondaryFooterButton by lazy { initializeSecondaryFooterButton() }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        viewGroup: ViewGroup?,
+        savedInstanceArgs: Bundle?
+    ) =
+        super.onCreateView(inflater, viewGroup, savedInstanceArgs)!!.also { view ->
+            initializeFooterbarMixin(view)
+        }
+
+    protected fun getGlifLayout(view: View) = view.findViewById<GlifLayout>(glifLayoutId)
+
+    /**
+     * Return a button will be used as the primary footer button.
+     */
+    abstract fun initializePrimaryFooterButton(): FooterButton
+
+    /** If non-null, returned button will be used as the secondary footer button. */
+    abstract fun initializeSecondaryFooterButton(): FooterButton?
+
+    private fun initializeFooterbarMixin(view: View) {
+        val footerBarMixin = checkNotNull(getGlifLayout(view)).getMixin(FooterBarMixin::class.java)
+        primaryFooterButton.also { footerBarMixin.primaryButton = it }
+        secondaryFooterButton?.also { footerBarMixin.secondaryButton = it }
+        footerBarMixin.getButtonContainer().setBackgroundColor(getBackgroundColor())
+    }
+
+    @ColorInt
+    private fun getBackgroundColor(): Int {
+        val stateList = Utils.getColorAttr(context, R.attr.windowBackground)
+        return stateList?.defaultColor ?: Color.TRANSPARENT
+    }
+
+    private companion object{
+        const val TAG = "RemoteAuthEnrollBase"
+    }
+}
diff --git a/src/com/android/settings/remoteauth/RemoteAuthStatusPreferenceController.kt b/src/com/android/settings/remoteauth/RemoteAuthStatusPreferenceController.kt
new file mode 100644
index 0000000..943880b
--- /dev/null
+++ b/src/com/android/settings/remoteauth/RemoteAuthStatusPreferenceController.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.remoteauth
+
+import android.content.Context
+import android.util.FeatureFlagUtils
+import com.android.settings.biometrics.BiometricStatusPreferenceController
+
+class RemoteAuthStatusPreferenceController(
+    private val context: Context,
+    key: String = KEY_REMOTE_AUTHENTICATOR_SETTINGS
+) : BiometricStatusPreferenceController(
+    context, key
+) {
+    override fun isDeviceSupported(): Boolean {
+        // TODO(b/290768873): Change based on RemoteAuthManager.
+        return FeatureFlagUtils.isEnabled(
+            context,
+            FeatureFlagUtils.SETTINGS_REMOTEAUTH_ENROLLMENT_SETTINGS
+        )
+    }
+
+    override fun isHardwareSupported(): Boolean {
+        // TODO(b/290768873): Change based on RemoteAuthManager.
+        return FeatureFlagUtils.isEnabled(
+            context,
+            FeatureFlagUtils.SETTINGS_REMOTEAUTH_ENROLLMENT_SETTINGS
+        )
+    }
+
+    override fun getSummaryText() = RemoteAuthStatusUtils.getSummary(context)
+
+    override fun getSettingsClassName() = RemoteAuthStatusUtils.getSettingsClassName()
+
+    private companion object {
+        /**
+         * Preference key.
+         *
+         * This must match the key found in security_settings_combined_biometric.xml
+         **/
+        const val KEY_REMOTE_AUTHENTICATOR_SETTINGS = "biometric_remote_authenticator_settings"
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/RemoteAuthStatusUtils.kt b/src/com/android/settings/remoteauth/RemoteAuthStatusUtils.kt
new file mode 100644
index 0000000..2bbc14b
--- /dev/null
+++ b/src/com/android/settings/remoteauth/RemoteAuthStatusUtils.kt
@@ -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.remoteauth
+
+import android.content.Context
+import com.android.settings.R
+
+/**
+ * Utilities for remoteauth details shared between Security Settings and Safety Center.
+ */
+object RemoteAuthStatusUtils  {
+    /**
+     * Returns the summary of remote auth settings entity.
+     */
+    fun getSummary(context: Context): String {
+        // TODO(b/290768873): Update text based on if authenticator is enrolled.
+        return context.resources.getString(R.string.security_settings_remoteauth_preference_summary)
+    }
+
+    /**
+     * Returns the class name of the Settings page corresponding to remote auth settings.
+     */
+    fun getSettingsClassName() = RemoteAuthActivityInternal::class.java.name
+
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/enrolling/DiscoveredAuthenticatorUiState.kt b/src/com/android/settings/remoteauth/enrolling/DiscoveredAuthenticatorUiState.kt
new file mode 100644
index 0000000..2fcc1d6
--- /dev/null
+++ b/src/com/android/settings/remoteauth/enrolling/DiscoveredAuthenticatorUiState.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.enrolling
+
+/** UI state of a single discovered authenticator. */
+data class DiscoveredAuthenticatorUiState(
+    val name: String,
+    val isSelected: Boolean,
+    val onSelect: () -> Unit,
+)
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/enrolling/EnrollmentUiState.kt b/src/com/android/settings/remoteauth/enrolling/EnrollmentUiState.kt
new file mode 100644
index 0000000..e8c8a11
--- /dev/null
+++ b/src/com/android/settings/remoteauth/enrolling/EnrollmentUiState.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.remoteauth.enrolling
+
+/** The different states of the enrolling flow. */
+enum class EnrollmentUiState {
+    /** No enrollment is happening. */
+    NONE,
+
+    /** Searching for potential authenticators. */
+    FINDING_DEVICES,
+
+    /**
+     * An enrollment is in progress.
+     */
+    ENROLLING,
+
+    /** An enrollment has succeeded. */
+    SUCCESS,
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
new file mode 100644
index 0000000..5a93259
--- /dev/null
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.enrolling
+
+import android.os.Bundle
+import android.view.View
+import android.widget.ProgressBar
+import android.widget.TextView
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+
+
+import androidx.navigation.fragment.NavHostFragment.Companion.findNavController
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+
+import com.android.settings.R
+import com.android.settings.remoteauth.RemoteAuthEnrollBase
+
+import com.google.android.setupcompat.template.FooterButton
+import kotlinx.coroutines.launch
+
+class RemoteAuthEnrollEnrolling :
+    RemoteAuthEnrollBase(
+        layoutResId = R.layout.remote_auth_enroll_enrolling,
+        glifLayoutId = R.id.setup_wizard_layout,
+    ) {
+    private val viewModel: RemoteAuthEnrollEnrollingViewModel by viewModels()
+    private val navController by lazy { findNavController(this) }
+    private val adapter = RemoteAuthEnrollEnrollingRecyclerViewAdapter()
+    private val progressBar by lazy {
+        view!!.requireViewById<ProgressBar>(R.id.enrolling_list_progress_bar)
+    }
+    private val errorText by lazy { view!!.requireViewById<TextView>(R.id.error_text) }
+    private val recyclerView by lazy {
+        view!!.requireViewById<RecyclerView>(R.id.discovered_authenticator_list)
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        // Set up adapter
+        recyclerView.layoutManager = LinearLayoutManager(context)
+        recyclerView.adapter = adapter
+
+        // Collect UIState and update UI on changes.
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                viewModel.uiState.collect {
+                    updateUi(it)
+                }
+            }
+        }
+    }
+
+    override fun onStart() {
+        super.onStart()
+        // Get list of discovered devices from viewModel.
+        viewModel.discoverDevices()
+    }
+
+    override fun initializePrimaryFooterButton(): FooterButton {
+        return FooterButton.Builder(requireContext())
+            .setText(R.string.security_settings_remoteauth_enroll_enrolling_agree)
+            .setListener(this::onPrimaryFooterButtonClick)
+            .setButtonType(FooterButton.ButtonType.NEXT)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+    }
+
+    override fun initializeSecondaryFooterButton(): FooterButton? {
+        return FooterButton.Builder(requireContext())
+            .setText(R.string.security_settings_remoteauth_enroll_enrolling_disagree)
+            .setListener(this::onSecondaryFooterButtonClick)
+            .setButtonType(FooterButton.ButtonType.SKIP)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
+            .build()
+    }
+
+    private fun onPrimaryFooterButtonClick(view: View) {
+        viewModel.registerAuthenticator()
+    }
+
+    private fun onSecondaryFooterButtonClick(view: View) {
+        navController.navigateUp()
+    }
+
+    private fun updateUi(uiState: RemoteAuthEnrollEnrollingUiState) {
+        progressBar.visibility = View.INVISIBLE
+        primaryFooterButton.isEnabled = false
+        // TODO(b/290769765): Add unit tests for all this states.
+        when (uiState.enrollmentUiState) {
+            EnrollmentUiState.NONE -> {
+                adapter.uiStates = uiState.discoveredDeviceUiStates
+                primaryFooterButton.isEnabled = viewModel.isDeviceSelected()
+            }
+
+            EnrollmentUiState.FINDING_DEVICES -> {
+                progressBar.visibility = View.VISIBLE
+            }
+
+            EnrollmentUiState.ENROLLING -> {}
+            EnrollmentUiState.SUCCESS -> {
+                navController.navigate(R.id.action_enrolling_to_finish)
+            }
+        }
+        if (uiState.errorMsg != null) {
+            errorText.visibility = View.VISIBLE
+            errorText.text = uiState.errorMsg
+        } else {
+            errorText.visibility = View.INVISIBLE
+            errorText.text = ""
+        }
+    }
+}
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
new file mode 100644
index 0000000..323c41f
--- /dev/null
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.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.remoteauth.enrolling
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.android.settings.R
+
+class RemoteAuthEnrollEnrollingRecyclerViewAdapter :
+    RecyclerView.Adapter<RemoteAuthEnrollEnrollingRecyclerViewAdapter.ViewHolder>() {
+    var uiStates = listOf<DiscoveredAuthenticatorUiState>()
+        set(value) {
+            field = value
+            notifyDataSetChanged()
+        }
+
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context)
+            .inflate(R.layout.remote_auth_enrolling_authenticator_item, parent, false)
+        return ViewHolder(view)
+    }
+
+    override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
+        viewHolder.bind(uiStates[position])
+    }
+
+    override fun getItemCount() = uiStates.size
+
+    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+        private val titleTextView: TextView = view.requireViewById(R.id.discovered_authenticator_name)
+        private val selectButton: ImageView = view.requireViewById(R.id.authenticator_radio_button)
+        private val checkedDrawable =
+            view.context.getDrawable(R.drawable.ic_radio_button_checked_black_24dp)
+        private val uncheckedDrawable =
+            view.context.getDrawable(R.drawable.ic_radio_button_unchecked_black_24dp)
+
+        fun bind(discoveredAuthenticatorUiState: DiscoveredAuthenticatorUiState) {
+            titleTextView.text = discoveredAuthenticatorUiState.name
+            selectButton.background = if (discoveredAuthenticatorUiState.isSelected) {
+                checkedDrawable
+            } else {
+                uncheckedDrawable
+            }
+            selectButton.setOnClickListener { discoveredAuthenticatorUiState.onSelect() }
+        }
+    }
+}
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingUiState.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingUiState.kt
new file mode 100644
index 0000000..285edf2
--- /dev/null
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingUiState.kt
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.enrolling
+
+/** UiState for full enrolling view. */
+data class RemoteAuthEnrollEnrollingUiState(
+    val discoveredDeviceUiStates: List<DiscoveredAuthenticatorUiState> = listOf(),
+    val enrollmentUiState: EnrollmentUiState = EnrollmentUiState.NONE,
+    // TODO(b/293906744): Change to error code in teamfood and add errors to strings.xml
+    val errorMsg: String? = null,
+)
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingViewModel.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingViewModel.kt
new file mode 100644
index 0000000..c06862f
--- /dev/null
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingViewModel.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.remoteauth.enrolling
+
+import androidx.lifecycle.ViewModel
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.update
+import kotlin.properties.Delegates
+
+class RemoteAuthEnrollEnrollingViewModel : ViewModel() {
+    private val _uiState = MutableStateFlow(RemoteAuthEnrollEnrollingUiState())
+    val uiState: StateFlow<RemoteAuthEnrollEnrollingUiState> = _uiState.asStateFlow()
+
+    private var errorMessage: String? = null
+        set(value) {
+            field = value
+            _uiState.update { currentState ->
+                currentState.copy(
+                    errorMsg = value,
+                )
+            }
+        }
+
+    // TODO(b/293906744): Change to RemoteAuthManager.DiscoveredDevice.
+    private var selectedDevice: Any? by Delegates.observable(null) { _, _, _ -> discoverDevices() }
+
+
+    /** Returns if a device has been selected */
+    fun isDeviceSelected() = selectedDevice != null
+
+    /**
+     * Starts searching for nearby authenticators that are currently not enrolled. The devices
+     * and the state of the searching are both returned in uiState.
+     */
+    fun discoverDevices() {
+        _uiState.update { currentState ->
+            currentState.copy(enrollmentUiState = EnrollmentUiState.FINDING_DEVICES)
+        }
+
+        // TODO(b/293906744): Map RemoteAuthManager discovered devices to
+        // DiscoveredAuthenticatorUiState in viewModelScope.
+        val discoveredDeviceUiStates = listOf<DiscoveredAuthenticatorUiState>()
+
+        _uiState.update { currentState ->
+            currentState.copy(
+                discoveredDeviceUiStates = discoveredDeviceUiStates,
+                enrollmentUiState = EnrollmentUiState.NONE
+            )
+        }
+    }
+
+    /** Registers the selected discovered device, if one is selected. */
+    fun registerAuthenticator() {
+        // TODO(b/293906744): Call RemoteAuthManager.register with selected device and update
+        //  _uiState.
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinish.kt b/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinish.kt
new file mode 100644
index 0000000..ac96484
--- /dev/null
+++ b/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinish.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.remoteauth.finish
+
+import android.os.Bundle
+import android.view.View
+import androidx.navigation.fragment.NavHostFragment.Companion.findNavController
+import com.airbnb.lottie.LottieAnimationView
+import com.android.settings.R
+import com.android.settings.remoteauth.RemoteAuthEnrollBase
+import com.android.settingslib.widget.LottieColorUtils
+import com.google.android.setupcompat.template.FooterButton
+
+/**
+ * Displays the enrollment finish view.
+ */
+class RemoteAuthEnrollFinish :
+    RemoteAuthEnrollBase(
+        layoutResId = R.layout.remote_auth_enroll_finish,
+        glifLayoutId = R.id.setup_wizard_layout,
+    ) {
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        LottieColorUtils.applyDynamicColors(
+            requireContext(),
+            view.findViewById<LottieAnimationView>(R.id.enroll_finish_animation)
+        )
+    }
+
+    override fun initializePrimaryFooterButton(): FooterButton {
+        return FooterButton.Builder(requireContext())
+            .setText(R.string.security_settings_remoteauth_enroll_finish_btn_next)
+            .setListener(this::onPrimaryFooterButtonClick)
+            .setButtonType(FooterButton.ButtonType.NEXT)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+    }
+
+    override fun initializeSecondaryFooterButton(): FooterButton? = null
+
+    fun onPrimaryFooterButtonClick(view: View) {
+        findNavController(this).navigate(R.id.action_finish_to_settings)
+    }
+
+    private companion object {
+        const val TAG = "RemoteAuthEnrollFinish"
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/introduction/IntroductionImageCarousel.kt b/src/com/android/settings/remoteauth/introduction/IntroductionImageCarousel.kt
new file mode 100644
index 0000000..ad85763
--- /dev/null
+++ b/src/com/android/settings/remoteauth/introduction/IntroductionImageCarousel.kt
@@ -0,0 +1,161 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.introduction
+
+import android.content.Context
+import android.util.AttributeSet
+import android.util.Log
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+
+import androidx.annotation.VisibleForTesting
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import androidx.viewpager2.widget.MarginPageTransformer
+import androidx.viewpager2.widget.ViewPager2
+
+import com.airbnb.lottie.LottieAnimationView
+
+import com.android.settings.R
+import com.android.settingslib.widget.LottieColorUtils
+
+class IntroductionImageCarousel : ConstraintLayout {
+    private val carousel: ViewPager2 by lazy { requireViewById<ViewPager2>(R.id.image_carousel) }
+    private val progressIndicator: RecyclerView by lazy {
+        requireViewById<RecyclerView>(R.id.carousel_progress_indicator)
+    }
+    private val backArrow: ImageView by lazy {
+        requireViewById<ImageView>(R.id.carousel_back_arrow)
+    }
+    private val forwardArrow: ImageView by lazy {
+        requireViewById<ImageView>(R.id.carousel_forward_arrow)
+    }
+    private val progressIndicatorAdapter = ProgressIndicatorAdapter()
+    // The index of the current animation we are on
+    private var currentPage = 0
+        set(value) {
+            val pageRange = 0..(ANIMATION_LIST.size - 1)
+            field = value.coerceIn(pageRange)
+            backArrow.isEnabled = field > pageRange.start
+            forwardArrow.isEnabled = field < pageRange.endInclusive
+            carousel.setCurrentItem(field)
+            progressIndicatorAdapter.currentIndex = field
+        }
+
+    private val onPageChangeCallback =
+        object : ViewPager2.OnPageChangeCallback() {
+            override fun onPageSelected(position: Int) {
+                currentPage = position
+            }
+        }
+    constructor(context: Context) : super(context)
+    constructor(context: Context, attrSet: AttributeSet?) : super(context, attrSet)
+
+    init {
+        LayoutInflater.from(context).inflate(R.layout.remote_auth_introduction_image_carousel, this)
+
+        with(carousel) {
+            setPageTransformer(
+                MarginPageTransformer(
+                    context.resources.getDimension(R.dimen.remoteauth_introduction_fragment_padding_horizontal).toInt()
+                )
+            )
+            adapter = ImageCarouselAdapter()
+            registerOnPageChangeCallback(onPageChangeCallback)
+        }
+
+        with(progressIndicator) {
+            layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
+            adapter = progressIndicatorAdapter
+        }
+
+        backArrow.setOnClickListener { currentPage-- }
+        forwardArrow.setOnClickListener { currentPage++ }
+    }
+
+    fun unregister() {
+        carousel.unregisterOnPageChangeCallback(onPageChangeCallback)
+    }
+
+    private class AnimationViewHolder(val context: Context, itemView: View) : RecyclerView.ViewHolder(itemView) {
+        val animationView = itemView.requireViewById<LottieAnimationView>(R.id.explanation_animation)
+        val descriptionText = itemView.requireViewById<TextView>(R.id.carousel_text)
+    }
+
+    /** Adapter for the onboarding animations. */
+    private class ImageCarouselAdapter : RecyclerView.Adapter<AnimationViewHolder>() {
+
+        override fun getItemCount() = ANIMATION_LIST.size
+
+        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
+            AnimationViewHolder(parent.context, LayoutInflater.from(parent.context).inflate(R.layout.remote_auth_introduction_image_carousel_item, parent, false))
+
+        override fun onBindViewHolder(holder: AnimationViewHolder, position: Int) {
+            with(holder.animationView) {
+                setAnimation(ANIMATION_LIST[position].first)
+                LottieColorUtils.applyDynamicColors(holder.context, this)
+            }
+            holder.descriptionText.setText(ANIMATION_LIST[position].second)
+            with(holder.itemView) {
+                // This makes sure that the proper description text instead of a generic "Page" label is
+                // verbalized by Talkback when switching to a new page on the ViewPager2.
+                contentDescription = context.getString(ANIMATION_LIST[position].second)
+            }
+        }
+    }
+
+    /** Adapter for icons indicating carousel progress. */
+    private class ProgressIndicatorAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
+
+        var currentIndex: Int = 0
+            set(value) {
+                val previousIndex = field
+                field = value.coerceIn(0, getItemCount() - 1)
+                notifyItemChanged(previousIndex)
+                notifyItemChanged(field)
+            }
+
+        override fun getItemCount() = ANIMATION_LIST.size
+
+        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
+            object :
+                RecyclerView.ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.remote_auth_introduction_image_carousel_progress_icon, parent, false)) {}
+
+        override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
+            holder.itemView.isSelected = position == currentIndex
+        }
+    }
+    companion object {
+        @VisibleForTesting
+        val ANIMATION_LIST =
+            listOf(
+                Pair(
+                    R.raw.remoteauth_explanation_swipe_animation,
+                    R.string.security_settings_remoteauth_enroll_introduction_animation_swipe_up
+                ),
+                Pair(
+                    R.raw.remoteauth_explanation_notification_animation,
+                    R.string.security_settings_remoteauth_enroll_introduction_animation_tap_notification
+                ),
+            )
+        const val TAG = "RemoteAuthCarousel"
+    }
+}
diff --git a/src/com/android/settings/remoteauth/introduction/RemoteAuthEnrollIntroduction.kt b/src/com/android/settings/remoteauth/introduction/RemoteAuthEnrollIntroduction.kt
new file mode 100644
index 0000000..b0d3f79
--- /dev/null
+++ b/src/com/android/settings/remoteauth/introduction/RemoteAuthEnrollIntroduction.kt
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.introduction
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.navigation.fragment.NavHostFragment.Companion.findNavController
+import com.android.settings.R
+import com.android.settings.remoteauth.RemoteAuthEnrollBase
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.template.RequireScrollMixin
+
+/**
+ * Provides introductory info about remote authenticator unlock.
+ */
+class RemoteAuthEnrollIntroduction :
+    RemoteAuthEnrollBase(
+        layoutResId = R.layout.remote_auth_enroll_introduction,
+        glifLayoutId = R.id.setup_wizard_layout,
+    ) {
+    private val navController by lazy { findNavController(this) }
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        viewGroup: ViewGroup?,
+        savedInstanceArgs: Bundle?
+    ) =
+        super.onCreateView(inflater, viewGroup, savedInstanceArgs).also {
+            initializeRequireScrollMixin(it)
+        }
+
+
+    override fun initializePrimaryFooterButton(): FooterButton {
+        return FooterButton.Builder(context!!)
+            .setText(R.string.security_settings_remoteauth_enroll_introduction_agree)
+            .setListener(::onPrimaryFooterButtonClick)
+            .setButtonType(FooterButton.ButtonType.OPT_IN)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+    }
+
+    override fun initializeSecondaryFooterButton(): FooterButton {
+        return FooterButton.Builder(context!!)
+            .setText(R.string.security_settings_remoteauth_enroll_introduction_disagree)
+            .setListener(::onSecondaryFooterButtonClick)
+            .setButtonType(FooterButton.ButtonType.NEXT)
+            .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+            .build()
+    }
+
+    private fun onPrimaryFooterButtonClick(view: View) {
+        navController.navigate(R.id.action_introduction_to_enrolling)
+    }
+
+    private fun onSecondaryFooterButtonClick(view: View) {
+        navController.navigateUp()
+    }
+
+    private fun initializeRequireScrollMixin(view: View) {
+        val layout = checkNotNull(getGlifLayout(view))
+        secondaryFooterButton?.visibility = View.INVISIBLE
+        val requireScrollMixin = layout.getMixin(RequireScrollMixin::class.java)
+        requireScrollMixin.requireScrollWithButton(
+            requireContext(),
+            primaryFooterButton,
+            R.string.security_settings_remoteauth_enroll_introduction_more,
+            ::onPrimaryFooterButtonClick
+        )
+        requireScrollMixin.setOnRequireScrollStateChangedListener { scrollNeeded ->
+            if (scrollNeeded) {
+                primaryFooterButton.setText(
+                    requireContext(),
+                    R.string.security_settings_remoteauth_enroll_introduction_more
+                )
+            } else {
+                primaryFooterButton.setText(
+                    requireContext(),
+                    R.string.security_settings_remoteauth_enroll_introduction_agree
+                )
+                secondaryFooterButton?.visibility = View.VISIBLE
+            }
+        }
+    }
+
+    private companion object {
+        const val TAG = "RemoteAuthEnrollIntro"
+    }
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthAuthenticatorItemUiState.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthAuthenticatorItemUiState.kt
new file mode 100644
index 0000000..f1b48f6
--- /dev/null
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthAuthenticatorItemUiState.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.settings
+
+data class RemoteAuthAuthenticatorItemUiState(
+    val name: String,
+    val isActive: Boolean,
+    val unregister: () -> Unit,
+)
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
new file mode 100644
index 0000000..9cf2511
--- /dev/null
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.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.remoteauth.settings
+
+import android.os.Bundle
+import android.view.View
+import androidx.constraintlayout.widget.ConstraintLayout
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.navigation.fragment.NavHostFragment.Companion.findNavController
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.android.settings.R
+import kotlinx.coroutines.launch
+
+class RemoteAuthSettings : Fragment(R.layout.remote_auth_settings) {
+
+    val viewModel: RemoteAuthSettingsViewModel by viewModels()
+    private val adapter = RemoteAuthSettingsRecyclerViewAdapter()
+    private val recyclerView by lazy {
+        view!!.requireViewById<RecyclerView>(R.id.registered_authenticator_list)
+    }
+
+    private val addAuthenticatorLayout by lazy {
+        view!!.requireViewById<ConstraintLayout>(R.id.add_authenticator_layout)
+    }
+
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+
+        recyclerView.layoutManager = LinearLayoutManager(context)
+        recyclerView.adapter = adapter
+
+        // Add new remote authenticator click listener
+        addAuthenticatorLayout.setOnClickListener {
+            findNavController(this).navigate(R.id.action_settings_to_introduction)
+        }
+
+        // Collect UIState and update UI on changes.
+        lifecycleScope.launch {
+            repeatOnLifecycle(Lifecycle.State.STARTED) {
+                viewModel.uiState.collect {
+                    updateUi(it)
+                }
+            }
+        }
+
+    }
+
+    private fun updateUi(uiState: RemoteAuthSettingsUiState) {
+        adapter.uiStates = uiState.registeredAuthenticatorUiStates
+    }
+
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
new file mode 100644
index 0000000..f8038bd
--- /dev/null
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.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.remoteauth.settings
+
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.android.settings.R
+
+class RemoteAuthSettingsRecyclerViewAdapter() :
+    RecyclerView.Adapter<RemoteAuthSettingsRecyclerViewAdapter.ViewHolder>() {
+    var uiStates = listOf<RemoteAuthAuthenticatorItemUiState>()
+        set(value) {
+            field = value
+            notifyDataSetChanged()
+        }
+
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent.context)
+            .inflate(R.layout.remote_auth_settings_authenticator_item, parent, false)
+        return ViewHolder(view)
+    }
+
+    override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
+        viewHolder.bind(uiStates[position])
+    }
+
+    override fun getItemCount() = uiStates.size
+
+    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
+        private val titleTextView: TextView = view.requireViewById(R.id.authenticator_name_text)
+        private val unregisterButton: ImageView = view.requireViewById(R.id.remove_icon)
+
+        fun bind(authenticatorUiState: RemoteAuthAuthenticatorItemUiState) {
+            titleTextView.text = authenticatorUiState.name
+            unregisterButton.setOnClickListener { authenticatorUiState.unregister() }
+        }
+    }
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsUiState.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsUiState.kt
new file mode 100644
index 0000000..e0c0e0d
--- /dev/null
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsUiState.kt
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.settings
+
+data class RemoteAuthSettingsUiState(
+    val registeredAuthenticatorUiStates: List<RemoteAuthAuthenticatorItemUiState> = listOf(),
+    // TODO(b/295524962): Change to error code in teamfood and add errors to strings.xml
+    val errorMsg: String? = null,
+)
\ No newline at end of file
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsViewModel.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsViewModel.kt
new file mode 100644
index 0000000..e95dee2
--- /dev/null
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsViewModel.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.remoteauth.settings
+
+import androidx.lifecycle.ViewModel
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.update
+
+class RemoteAuthSettingsViewModel : ViewModel() {
+    private val _uiState = MutableStateFlow(RemoteAuthSettingsUiState())
+    val uiState: StateFlow<RemoteAuthSettingsUiState> = _uiState.asStateFlow()
+
+    private var errorMessage: String? = null
+        set(value) {
+            field = value
+            _uiState.update { currentState ->
+                currentState.copy(
+                    errorMsg = value,
+                )
+            }
+        }
+
+    fun refreshAuthenticatorList() {
+        // TODO(b/290768873): Pull from RemoteAuthenticationManager and map to UIState
+        val authenticatorUiStates = listOf<RemoteAuthAuthenticatorItemUiState>()
+
+        _uiState.update { currentState ->
+            currentState.copy(
+                registeredAuthenticatorUiStates = authenticatorUiStates,
+            )
+        }
+    }
+
+    /** Called by UI when user has acknowledged they seen the error dialog, via ok button. */
+    fun resetErrorMessage() {
+        errorMessage = null
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/safetycenter/BiometricsSafetySource.java b/src/com/android/settings/safetycenter/BiometricsSafetySource.java
index 9dc5b4e..94db71f 100644
--- a/src/com/android/settings/safetycenter/BiometricsSafetySource.java
+++ b/src/com/android/settings/safetycenter/BiometricsSafetySource.java
@@ -164,7 +164,12 @@
                     disablingAdmin == null /* enabled */,
                     fingerprintStatusUtils.hasEnrolled(),
                     safetyEvent);
+            return;
         }
+
+        SafetyCenterManagerWrapper.get()
+                .setSafetySourceData(
+                        context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
     }
 
     /** Notifies Safety Center of a change in biometrics settings. */
diff --git a/src/com/android/settings/safetycenter/LockScreenSafetySource.java b/src/com/android/settings/safetycenter/LockScreenSafetySource.java
index de20e24..6960fc6 100644
--- a/src/com/android/settings/safetycenter/LockScreenSafetySource.java
+++ b/src/com/android/settings/safetycenter/LockScreenSafetySource.java
@@ -46,11 +46,11 @@
     private static final int REQUEST_CODE_SCREEN_LOCK = 1;
     private static final int REQUEST_CODE_SCREEN_LOCK_SETTINGS = 2;
 
-    private LockScreenSafetySource() {
-    }
+    private LockScreenSafetySource() {}
 
     /** Sets lock screen safety data for Safety Center. */
-    public static void setSafetySourceData(Context context,
+    public static void setSafetySourceData(
+            Context context,
             ScreenLockPreferenceDetailsUtils screenLockPreferenceDetailsUtils,
             SafetyEvent safetyEvent) {
         if (!SafetyCenterManagerWrapper.get().isEnabled(context)) {
@@ -63,53 +63,61 @@
         }
 
         if (!screenLockPreferenceDetailsUtils.isAvailable()) {
+            SafetyCenterManagerWrapper.get()
+                    .setSafetySourceData(
+                            context, SAFETY_SOURCE_ID, /* safetySourceData= */ null, safetyEvent);
             return;
         }
 
         final int userId = UserHandle.myUserId();
-        final RestrictedLockUtils.EnforcedAdmin admin = RestrictedLockUtilsInternal
-                .checkIfPasswordQualityIsSet(context, userId);
-        final PendingIntent pendingIntent = createPendingIntent(context,
-                screenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(
-                        SettingsEnums.SAFETY_CENTER), REQUEST_CODE_SCREEN_LOCK);
-        final IconAction gearMenuIconAction = createGearMenuIconAction(context,
-                screenLockPreferenceDetailsUtils);
-        final boolean enabled =
+        final RestrictedLockUtils.EnforcedAdmin admin =
+                RestrictedLockUtilsInternal.checkIfPasswordQualityIsSet(context, userId);
+        final PendingIntent pendingIntent =
+                createPendingIntent(
+                        context,
+                        screenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(
+                                SettingsEnums.SAFETY_CENTER),
+                        REQUEST_CODE_SCREEN_LOCK);
+        final IconAction gearMenuIconAction =
+                createGearMenuIconAction(context, screenLockPreferenceDetailsUtils);
+        final boolean lockScreenAllowedByAdmin =
                 !screenLockPreferenceDetailsUtils.isPasswordQualityManaged(userId, admin);
         final boolean isLockPatternSecure = screenLockPreferenceDetailsUtils.isLockPatternSecure();
-        final int severityLevel = enabled
-                ? isLockPatternSecure
-                        ? SafetySourceData.SEVERITY_LEVEL_INFORMATION
-                        : SafetySourceData.SEVERITY_LEVEL_RECOMMENDATION
-                : SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED;
+        final int severityLevel =
+                lockScreenAllowedByAdmin
+                        ? isLockPatternSecure
+                                ? SafetySourceData.SEVERITY_LEVEL_INFORMATION
+                                : SafetySourceData.SEVERITY_LEVEL_RECOMMENDATION
+                        : SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED;
 
-
-        final SafetySourceStatus status = new SafetySourceStatus.Builder(
-                context.getString(R.string.unlock_set_unlock_launch_picker_title),
-                screenLockPreferenceDetailsUtils.getSummary(UserHandle.myUserId()),
-                severityLevel)
-                .setPendingIntent(pendingIntent)
-                .setEnabled(enabled)
-                .setIconAction(gearMenuIconAction).build();
+        final SafetySourceStatus status =
+                new SafetySourceStatus.Builder(
+                                context.getString(R.string.unlock_set_unlock_launch_picker_title),
+                                lockScreenAllowedByAdmin
+                                        ? screenLockPreferenceDetailsUtils.getSummary(
+                                                UserHandle.myUserId())
+                                        : context.getString(R.string.disabled_by_policy_title),
+                                severityLevel)
+                        .setPendingIntent(lockScreenAllowedByAdmin ? pendingIntent : null)
+                        .setEnabled(lockScreenAllowedByAdmin)
+                        .setIconAction(lockScreenAllowedByAdmin ? gearMenuIconAction : null)
+                        .build();
         final SafetySourceData.Builder safetySourceDataBuilder =
                 new SafetySourceData.Builder().setStatus(status);
-        if (enabled && !isLockPatternSecure) {
+        if (lockScreenAllowedByAdmin && !isLockPatternSecure) {
             safetySourceDataBuilder.addIssue(createNoScreenLockIssue(context, pendingIntent));
         }
         final SafetySourceData safetySourceData = safetySourceDataBuilder.build();
 
-        SafetyCenterManagerWrapper.get().setSafetySourceData(
-                context,
-                SAFETY_SOURCE_ID,
-                safetySourceData,
-                safetyEvent
-        );
+        SafetyCenterManagerWrapper.get()
+                .setSafetySourceData(context, SAFETY_SOURCE_ID, safetySourceData, safetyEvent);
     }
 
     /** Notifies Safety Center of a change in lock screen settings. */
     public static void onLockScreenChange(Context context) {
         setSafetySourceData(
-                context, new ScreenLockPreferenceDetailsUtils(context),
+                context,
+                new ScreenLockPreferenceDetailsUtils(context),
                 new SafetyEvent.Builder(SAFETY_EVENT_TYPE_SOURCE_STATE_CHANGED).build());
 
         // Also send refreshed safety center data for biometrics, since changing lockscreen settings
@@ -117,45 +125,45 @@
         BiometricsSafetySource.onBiometricsChanged(context);
     }
 
-    private static IconAction createGearMenuIconAction(Context context,
-            ScreenLockPreferenceDetailsUtils screenLockPreferenceDetailsUtils) {
-        return screenLockPreferenceDetailsUtils.shouldShowGearMenu() ? new IconAction(
-                IconAction.ICON_TYPE_GEAR,
-                createPendingIntent(context,
-                        screenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(
-                                SettingsEnums.SAFETY_CENTER),
-                        REQUEST_CODE_SCREEN_LOCK_SETTINGS))
+    private static IconAction createGearMenuIconAction(
+            Context context, ScreenLockPreferenceDetailsUtils screenLockPreferenceDetailsUtils) {
+        return screenLockPreferenceDetailsUtils.shouldShowGearMenu()
+                ? new IconAction(
+                        IconAction.ICON_TYPE_GEAR,
+                        createPendingIntent(
+                                context,
+                                screenLockPreferenceDetailsUtils.getLaunchScreenLockSettingsIntent(
+                                        SettingsEnums.SAFETY_CENTER),
+                                REQUEST_CODE_SCREEN_LOCK_SETTINGS))
                 : null;
     }
 
-    private static PendingIntent createPendingIntent(Context context, Intent intent,
-            int requestCode) {
-        return PendingIntent
-                .getActivity(
-                        context,
-                        requestCode,
-                        intent,
-                        PendingIntent.FLAG_IMMUTABLE);
+    private static PendingIntent createPendingIntent(
+            Context context, Intent intent, int requestCode) {
+        return PendingIntent.getActivity(
+                context, requestCode, intent, PendingIntent.FLAG_IMMUTABLE);
     }
 
-    private static SafetySourceIssue createNoScreenLockIssue(Context context,
-            PendingIntent pendingIntent) {
-        final SafetySourceIssue.Action action = new SafetySourceIssue.Action.Builder(
-                SET_SCREEN_LOCK_ACTION_ID,
-                context.getString(R.string.no_screen_lock_issue_action_label),
-                pendingIntent).build();
+    private static SafetySourceIssue createNoScreenLockIssue(
+            Context context, PendingIntent pendingIntent) {
+        final SafetySourceIssue.Action action =
+                new SafetySourceIssue.Action.Builder(
+                                SET_SCREEN_LOCK_ACTION_ID,
+                                context.getString(R.string.no_screen_lock_issue_action_label),
+                                pendingIntent)
+                        .build();
         // Custom notification deliberately has zero actions
         final SafetySourceIssue.Notification customNotification =
-            new SafetySourceIssue.Notification.Builder(
-                context.getString(R.string.no_screen_lock_issue_notification_title),
-                context.getString(R.string.no_screen_lock_issue_notification_text))
-                .build();
+                new SafetySourceIssue.Notification.Builder(
+                                context.getString(R.string.no_screen_lock_issue_notification_title),
+                                context.getString(R.string.no_screen_lock_issue_notification_text))
+                        .build();
         return new SafetySourceIssue.Builder(
-                NO_SCREEN_LOCK_ISSUE_ID,
-                context.getString(R.string.no_screen_lock_issue_title),
-                context.getString(R.string.no_screen_lock_issue_summary),
-                SafetySourceData.SEVERITY_LEVEL_RECOMMENDATION,
-                NO_SCREEN_LOCK_ISSUE_TYPE_ID)
+                        NO_SCREEN_LOCK_ISSUE_ID,
+                        context.getString(R.string.no_screen_lock_issue_title),
+                        context.getString(R.string.no_screen_lock_issue_summary),
+                        SafetySourceData.SEVERITY_LEVEL_RECOMMENDATION,
+                        NO_SCREEN_LOCK_ISSUE_TYPE_ID)
                 .setIssueCategory(SafetySourceIssue.ISSUE_CATEGORY_DEVICE)
                 .addAction(action)
                 .setIssueActionability(SafetySourceIssue.ISSUE_ACTIONABILITY_MANUAL)
diff --git a/src/com/android/settings/safetycenter/MoreSecurityPrivacyFragment.java b/src/com/android/settings/safetycenter/MoreSecurityPrivacyFragment.java
index 69ec385..34f8a53 100644
--- a/src/com/android/settings/safetycenter/MoreSecurityPrivacyFragment.java
+++ b/src/com/android/settings/safetycenter/MoreSecurityPrivacyFragment.java
@@ -27,7 +27,6 @@
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.safetycenter.SafetyCenterUtils.EnterpriseOverrideString;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.security.LockUnificationPreferenceController;
 import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
@@ -73,24 +72,8 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        List<EnterpriseOverrideString> privacyOverrideStrings =
-                SafetyCenterUtils.getEnterpriseOverrideStringForPrivacyEntries();
-        for (int i = 0; i < privacyOverrideStrings.size(); i++) {
-            EnterpriseOverrideString overrideString = privacyOverrideStrings.get(i);
-            replaceEnterpriseStringTitle(
-                    overrideString.getPreferenceKey(),
-                    overrideString.getOverrideKey(),
-                    overrideString.getResource());
-        }
-        List<EnterpriseOverrideString> securityOverrideStrings =
-                SafetyCenterUtils.getEnterpriseOverrideStringForSecurityEntries();
-        for (int i = 0; i < securityOverrideStrings.size(); i++) {
-            EnterpriseOverrideString overrideString = securityOverrideStrings.get(i);
-            replaceEnterpriseStringTitle(
-                    overrideString.getPreferenceKey(),
-                    overrideString.getOverrideKey(),
-                    overrideString.getResource());
-        }
+        SafetyCenterUtils.replaceEnterpriseStringsForPrivacyEntries(this);
+        SafetyCenterUtils.replaceEnterpriseStringsForSecurityEntries(this);
     }
 
     /** see confirmPatternThenDisableAndClear */
diff --git a/src/com/android/settings/safetycenter/SafetyCenterUtils.java b/src/com/android/settings/safetycenter/SafetyCenterUtils.java
index 6c7967d..e066530 100644
--- a/src/com/android/settings/safetycenter/SafetyCenterUtils.java
+++ b/src/com/android/settings/safetycenter/SafetyCenterUtils.java
@@ -28,7 +28,6 @@
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE;
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_UNIFY_LOCKS_SUMMARY;
 
-import android.annotation.StringRes;
 import android.content.Context;
 
 import com.android.settings.R;
@@ -40,7 +39,6 @@
 import com.android.settings.privacy.PrivacyDashboardFragment;
 import com.android.settings.security.ChangeProfileScreenLockPreferenceController;
 import com.android.settings.security.LockUnificationPreferenceController;
-import com.android.settings.security.VisiblePatternProfilePreferenceController;
 import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
 import com.android.settings.widget.PreferenceCategoryController;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -48,29 +46,32 @@
 import java.util.ArrayList;
 import java.util.List;
 
-/**
- * A class with helper method used in logic involving safety center.
- */
+/** A class with helper method used in logic involving safety center. */
 public final class SafetyCenterUtils {
 
+    private static final String WORK_PROFILE_SECURITY_CATEGORY = "work_profile_category";
+    private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "privacy_lock_screen_notifications";
+    private static final String KEY_WORK_PROFILE_CATEGORY =
+            "privacy_work_profile_notifications_category";
+    private static final String KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS =
+            "privacy_lock_screen_work_profile_notifications";
+
     /**
-     * Returns preference controllers related to advanced security entries.
-     * This is used in {@link MoreSecurityPrivacyFragment} and
-     * {@link com.android.settings.security.SecurityAdvancedSettings}.
+     * Returns preference controllers related to advanced security entries. This is used in {@link
+     * MoreSecurityPrivacyFragment} and {@link
+     * com.android.settings.security.SecurityAdvancedSettings}.
      */
     public static List<AbstractPreferenceController> getControllersForAdvancedSecurity(
             Context context,
-            com.android.settingslib.core.lifecycle.Lifecycle lifecycle, DashboardFragment host) {
-        final String WORK_PROFILE_SECURITY_CATEGORY = "work_profile_category";
+            com.android.settingslib.core.lifecycle.Lifecycle lifecycle,
+            DashboardFragment host) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new TrustAgentListPreferenceController(context, host, lifecycle));
 
         final List<AbstractPreferenceController> profileSecurityControllers = new ArrayList<>();
-        profileSecurityControllers.add(new ChangeProfileScreenLockPreferenceController(
-                context, host));
+        profileSecurityControllers.add(
+                new ChangeProfileScreenLockPreferenceController(context, host));
         profileSecurityControllers.add(new LockUnificationPreferenceController(context, host));
-        profileSecurityControllers.add(new VisiblePatternProfilePreferenceController(
-                context, lifecycle));
         profileSecurityControllers.add(new FaceProfileStatusPreferenceController(
                 context, lifecycle));
         profileSecurityControllers.add(new FingerprintProfileStatusPreferenceController(
@@ -84,19 +85,15 @@
     }
 
     /**
-     * Returns preference controllers for advanced privacy entries.
-     * This is used in {@link MoreSecurityPrivacyFragment} and {@link PrivacyDashboardFragment}.
+     * Returns preference controllers for advanced privacy entries. This is used in {@link
+     * MoreSecurityPrivacyFragment} and {@link PrivacyDashboardFragment}.
      */
     public static List<AbstractPreferenceController> getControllersForAdvancedPrivacy(
             Context context, com.android.settingslib.core.lifecycle.Lifecycle lifecycle) {
-        final String KEY_LOCK_SCREEN_NOTIFICATIONS = "privacy_lock_screen_notifications";
-        final String KEY_WORK_PROFILE_CATEGORY =
-                "privacy_work_profile_notifications_category";
-        final String KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS =
-                "privacy_lock_screen_work_profile_notifications";
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         final LockScreenNotificationPreferenceController notificationController =
-                new LockScreenNotificationPreferenceController(context,
+                new LockScreenNotificationPreferenceController(
+                        context,
                         KEY_LOCK_SCREEN_NOTIFICATIONS,
                         KEY_WORK_PROFILE_CATEGORY,
                         KEY_NOTIFICATION_WORK_PROFILE_NOTIFICATIONS);
@@ -107,84 +104,54 @@
         return controllers;
     }
 
-    /**
-     * A class that stores the resource that will be overridden using preferenceKey and overrideKey.
-     */
-    public static final class EnterpriseOverrideString {
-        private final String mPreferenceKey;
-        private final String mOverrideKey;
-        @StringRes private final int mResource;
-
-        public EnterpriseOverrideString(
-                String preferenceKey,
-                String overrideKey,
-                @StringRes int resource) {
-            this.mPreferenceKey = preferenceKey;
-            this.mOverrideKey = overrideKey;
-            this.mResource = resource;
-        }
-
-        @StringRes
-        public int getResource() {
-            return mResource;
-        }
-
-        public String getPreferenceKey() {
-            return mPreferenceKey;
-        }
-
-        public String getOverrideKey() {
-            return mOverrideKey;
-        }
-    }
-
-    /**
-     * Returns a list of @{EnterpriseOverrideString} for the privacy entries.
-     */
-    public static List<EnterpriseOverrideString> getEnterpriseOverrideStringForPrivacyEntries() {
-        List<EnterpriseOverrideString> enterpriseOverrideStrings = new ArrayList<>();
-        enterpriseOverrideStrings.add(
-                new EnterpriseOverrideString("privacy_lock_screen_work_profile_notifications",
-                        WORK_PROFILE_LOCKED_NOTIFICATION_TITLE,
-                        R.string.locked_work_profile_notification_title));
-        enterpriseOverrideStrings.add(
-                new EnterpriseOverrideString("interact_across_profiles_privacy",
-                        CONNECTED_WORK_AND_PERSONAL_APPS_TITLE,
-                        R.string.interact_across_profiles_title));
-        enterpriseOverrideStrings.add(
-                new EnterpriseOverrideString("privacy_work_profile_notifications_category",
-                        WORK_PROFILE_NOTIFICATIONS_SECTION_HEADER,
-                        R.string.profile_section_header));
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("work_policy_info",
-                WORK_PROFILE_PRIVACY_POLICY_INFO, R.string.work_policy_privacy_settings));
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("work_policy_info",
+    /** Replaces relevant strings with their enterprise variants for the privacy entries. */
+    public static void replaceEnterpriseStringsForPrivacyEntries(
+            DashboardFragment dashboardFragment) {
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "privacy_lock_screen_work_profile_notifications",
+                WORK_PROFILE_LOCKED_NOTIFICATION_TITLE,
+                R.string.locked_work_profile_notification_title);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "interact_across_profiles_privacy",
+                CONNECTED_WORK_AND_PERSONAL_APPS_TITLE,
+                R.string.interact_across_profiles_title);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "privacy_work_profile_notifications_category",
+                WORK_PROFILE_NOTIFICATIONS_SECTION_HEADER,
+                R.string.profile_section_header);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "work_policy_info",
+                WORK_PROFILE_PRIVACY_POLICY_INFO,
+                R.string.work_policy_privacy_settings);
+        dashboardFragment.replaceEnterpriseStringSummary(
+                "work_policy_info",
                 WORK_PROFILE_PRIVACY_POLICY_INFO_SUMMARY,
-                R.string.work_policy_privacy_settings_summary));
-        return enterpriseOverrideStrings;
+                R.string.work_policy_privacy_settings_summary);
     }
 
-    /**
-     * Returns a list of @{EnterpriseOverrideString} for the security entries.
-     */
-    public static List<EnterpriseOverrideString> getEnterpriseOverrideStringForSecurityEntries() {
-        List<EnterpriseOverrideString> enterpriseOverrideStrings = new ArrayList<>();
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("unlock_set_or_change_profile",
+    /** Replaces relevant strings with their enterprise variants for the security entries. */
+    public static void replaceEnterpriseStringsForSecurityEntries(
+            DashboardFragment dashboardFragment) {
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "unlock_set_or_change_profile",
                 WORK_PROFILE_SET_UNLOCK_LAUNCH_PICKER_TITLE,
-                R.string.unlock_set_unlock_launch_picker_title_profile));
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("unification",
+                R.string.unlock_set_unlock_launch_picker_title_profile);
+        dashboardFragment.replaceEnterpriseStringSummary(
+                "unification",
                 WORK_PROFILE_UNIFY_LOCKS_SUMMARY,
-                R.string.lock_settings_profile_unification_summary));
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("fingerprint_settings_profile",
+                R.string.lock_settings_profile_unification_summary);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "fingerprint_settings_profile",
                 FINGERPRINT_FOR_WORK,
-                R.string.security_settings_work_fingerprint_preference_title));
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("manage_device_admin",
-                MANAGE_DEVICE_ADMIN_APPS, R.string.manage_device_admin));
-        enterpriseOverrideStrings.add(new EnterpriseOverrideString("security_category_profile",
-                WORK_PROFILE_SECURITY_TITLE, R.string.lock_settings_profile_title));
-        enterpriseOverrideStrings.add(
-                new EnterpriseOverrideString("enterprise_privacy", MANAGED_DEVICE_INFO,
-                        R.string.enterprise_privacy_settings));
-        return enterpriseOverrideStrings;
+                R.string.security_settings_work_fingerprint_preference_title);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "manage_device_admin", MANAGE_DEVICE_ADMIN_APPS, R.string.manage_device_admin);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "security_category_profile",
+                WORK_PROFILE_SECURITY_TITLE,
+                R.string.lock_settings_profile_title);
+        dashboardFragment.replaceEnterpriseStringTitle(
+                "enterprise_privacy", MANAGED_DEVICE_INFO, R.string.enterprise_privacy_settings);
     }
 
     private SafetyCenterUtils() {}
diff --git a/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java b/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java
index 0b556e7..cc0f892 100644
--- a/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java
+++ b/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiver.java
@@ -28,6 +28,7 @@
 import android.safetycenter.SafetyCenterManager;
 import android.safetycenter.SafetyEvent;
 
+import com.android.settings.privatespace.PrivateSpaceSafetySource;
 import com.android.settings.security.ScreenLockPreferenceDetailsUtils;
 
 import com.google.common.collect.ImmutableList;
@@ -79,11 +80,16 @@
         if (sourceIds.contains(BiometricsSafetySource.SAFETY_SOURCE_ID)) {
             BiometricsSafetySource.setSafetySourceData(context, safetyEvent);
         }
+
+        if (sourceIds.contains(PrivateSpaceSafetySource.SAFETY_SOURCE_ID)) {
+            PrivateSpaceSafetySource.setSafetySourceData(context, safetyEvent);
+        }
     }
 
     private static void refreshAllSafetySources(Context context, SafetyEvent safetyEvent) {
         LockScreenSafetySource.setSafetySourceData(context,
                 new ScreenLockPreferenceDetailsUtils(context), safetyEvent);
         BiometricsSafetySource.setSafetySourceData(context, safetyEvent);
+        PrivateSpaceSafetySource.setSafetySourceData(context, safetyEvent);
     }
 }
diff --git a/src/com/android/settings/search/BaseSearchIndexProvider.java b/src/com/android/settings/search/BaseSearchIndexProvider.java
index 581eb2e..7fa8355 100644
--- a/src/com/android/settings/search/BaseSearchIndexProvider.java
+++ b/src/com/android/settings/search/BaseSearchIndexProvider.java
@@ -73,7 +73,19 @@
 
     @Override
     public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
-        return null;
+        final List<SearchIndexableRaw> raws = new ArrayList<>();
+        final List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
+        if (controllers == null || controllers.isEmpty()) {
+            return raws;
+        }
+        for (AbstractPreferenceController controller : controllers) {
+            if (controller instanceof PreferenceControllerMixin) {
+                ((PreferenceControllerMixin) controller).updateRawDataToIndex(raws);
+            } else if (controller instanceof BasePreferenceController) {
+                ((BasePreferenceController) controller).updateRawDataToIndex(raws);
+            }
+        }
+        return raws;
     }
 
     @Override
@@ -136,7 +148,7 @@
         try {
             controllersFromCode = createPreferenceControllers(context);
         } catch (Exception e) {
-            Log.w(TAG, "Error initial controller");
+            Log.w(TAG, "Error initializing controller in fragment: " + this + ", e: " + e);
         }
 
         final List<SearchIndexableResource> res = getXmlResourcesToIndex(context, true);
diff --git a/src/com/android/settings/search/CustomSiteMapRegistry.java b/src/com/android/settings/search/CustomSiteMapRegistry.java
index 1777cb8..dc19782 100644
--- a/src/com/android/settings/search/CustomSiteMapRegistry.java
+++ b/src/com/android/settings/search/CustomSiteMapRegistry.java
@@ -27,13 +27,11 @@
 import com.android.settings.gestures.SystemNavigationGestureSettings;
 import com.android.settings.location.LocationSettings;
 import com.android.settings.location.RecentLocationAccessSeeAllFragment;
-import com.android.settings.network.NetworkDashboardFragment;
 import com.android.settings.notification.zen.ZenModeBlockedEffectsSettings;
 import com.android.settings.notification.zen.ZenModeRestrictNotificationsSettings;
 import com.android.settings.security.SecuritySettings;
 import com.android.settings.security.screenlock.ScreenLockSettings;
 import com.android.settings.system.SystemDashboardFragment;
-import com.android.settings.wifi.WifiSettings;
 
 import java.util.Map;
 
@@ -50,8 +48,6 @@
     static {
         CUSTOM_SITE_MAP = new ArrayMap<>();
         CUSTOM_SITE_MAP.put(ScreenLockSettings.class.getName(), SecuritySettings.class.getName());
-        CUSTOM_SITE_MAP.put(
-                WifiSettings.class.getName(), NetworkDashboardFragment.class.getName());
         CUSTOM_SITE_MAP.put(PowerUsageAdvanced.class.getName(), PowerUsageSummary.class.getName());
         CUSTOM_SITE_MAP.put(RecentLocationAccessSeeAllFragment.class.getName(),
                 LocationSettings.class.getName());
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index cd096ec..0741ce4 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -18,7 +18,6 @@
 
 import static android.view.View.IMPORTANT_FOR_ACCESSIBILITY_NO;
 
-import android.annotation.NonNull;
 import android.app.ActivityOptions;
 import android.content.ComponentName;
 import android.content.Context;
@@ -30,6 +29,7 @@
 import android.view.ViewGroup;
 import android.widget.Toolbar;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.settings.R;
@@ -136,10 +136,10 @@
     /** Start the search activity. */
     private static void startSearchActivity(
             Context context, FragmentActivity activity, int pageId, Intent intent) {
-        FeatureFactory.getFactory(context).getSlicesFeatureProvider()
+        FeatureFactory.getFeatureFactory().getSlicesFeatureProvider()
                 .indexSliceDataAsync(context);
 
-        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .logSettingsTileClick(KEY_HOMEPAGE_SEARCH_BAR, pageId);
 
         final Bundle bundle = ActivityOptions.makeSceneTransitionAnimation(activity).toBundle();
diff --git a/src/com/android/settings/search/SearchResultTrampoline.java b/src/com/android/settings/search/SearchResultTrampoline.java
index 6ba0338..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;
@@ -54,7 +55,7 @@
 
         final ComponentName callingActivity = getCallingActivity();
         // First make sure caller has privilege to launch a search result page.
-        FeatureFactory.getFactory(this)
+        FeatureFactory.getFeatureFactory()
                 .getSearchFeatureProvider()
                 .verifyLaunchSearchResultPageCaller(this, callingActivity);
         // Didn't crash, proceed and launch the result as a subsetting.
@@ -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));
         }
 
@@ -141,7 +142,7 @@
     private boolean isSettingsIntelligence(ComponentName callingActivity) {
         return callingActivity != null && TextUtils.equals(
                 callingActivity.getPackageName(),
-                FeatureFactory.getFactory(this).getSearchFeatureProvider()
+                FeatureFactory.getFeatureFactory().getSearchFeatureProvider()
                         .getSettingsIntelligencePkgName(this));
     }
 }
diff --git a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
index b081c7f..3b04186 100644
--- a/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
+++ b/src/com/android/settings/search/SettingsSearchIndexablesProvider.java
@@ -173,7 +173,7 @@
     public Cursor queryDynamicRawData(String[] projection) {
         final Context context = getContext();
         final List<SearchIndexableRaw> rawList = new ArrayList<>();
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
                 .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
 
         for (SearchIndexableData bundle : bundles) {
@@ -200,8 +200,8 @@
         final MatrixCursor cursor = new MatrixCursor(SITE_MAP_COLUMNS);
         final Context context = getContext();
         // Loop through all IA categories and pages and build additional SiteMapPairs
-        final List<DashboardCategory> categories = FeatureFactory.getFactory(context)
-                .getDashboardFeatureProvider(context).getAllCategories();
+        final List<DashboardCategory> categories = FeatureFactory.getFeatureFactory()
+                .getDashboardFeatureProvider().getAllCategories();
         for (DashboardCategory category : categories) {
             // Use the category key to look up parent (which page hosts this key)
             final String parentClass = CATEGORY_KEY_TO_PARENT_MAP.get(category.key);
@@ -271,7 +271,7 @@
     }
 
     private List<String> getNonIndexableKeysFromProvider(Context context) {
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
                 .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
 
         final List<String> nonIndexableKeys = new ArrayList<>();
@@ -322,7 +322,7 @@
     }
 
     private List<SearchIndexableResource> getSearchIndexableResourcesFromProvider(Context context) {
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
                 .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
         List<SearchIndexableResource> resourceList = new ArrayList<>();
 
@@ -348,7 +348,7 @@
     }
 
     private List<SearchIndexableRaw> getSearchIndexableRawFromProvider(Context context) {
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(context)
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
                 .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
         final List<SearchIndexableRaw> rawList = new ArrayList<>();
 
@@ -392,7 +392,7 @@
     @VisibleForTesting
     List<SearchIndexableRaw> getInjectionIndexableRawData(Context context) {
         final DashboardFeatureProvider dashboardFeatureProvider =
-                FeatureFactory.getFactory(context).getDashboardFeatureProvider(context);
+                FeatureFactory.getFeatureFactory().getDashboardFeatureProvider();
         final List<SearchIndexableRaw> rawList = new ArrayList<>();
         final String currentPackageName = context.getPackageName();
         for (DashboardCategory category : dashboardFeatureProvider.getAllCategories()) {
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index 9e22bbf..7449421 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.search.actionbar;
 
-import android.annotation.NonNull;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Intent;
@@ -26,6 +25,7 @@
 import android.view.MenuInflater;
 import android.view.MenuItem;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
@@ -86,12 +86,12 @@
             return;
         }
         final MenuItem searchItem = menu.add(Menu.NONE, MENU_SEARCH, 0 /* order */,
-                R.string.search_menu);
-        searchItem.setIcon(R.drawable.ic_search_24dp);
+                com.android.settingslib.search.widget.R.string.search_menu);
+        searchItem.setIcon(com.android.settingslib.search.widget.R.drawable.ic_search_24dp);
         searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
 
         searchItem.setOnMenuItemClickListener(target -> {
-            final Intent intent = FeatureFactory.getFactory(activity)
+            final Intent intent = FeatureFactory.getFeatureFactory()
                     .getSearchFeatureProvider()
                     .buildSearchIntent(activity, mPageId);
 
@@ -100,7 +100,7 @@
                 return true;
             }
 
-            FeatureFactory.getFactory(activity).getMetricsFeatureProvider()
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .action(activity, SettingsEnums.ACTION_SEARCH_RESULTS);
             mHost.startActivityForResult(intent, SearchFeatureProvider.REQUEST_CODE);
             return true;
diff --git a/src/com/android/settings/security/ChangeScreenLockPreferenceController.java b/src/com/android/settings/security/ChangeScreenLockPreferenceController.java
index 3870634..2fab6c8 100644
--- a/src/com/android/settings/security/ChangeScreenLockPreferenceController.java
+++ b/src/com/android/settings/security/ChangeScreenLockPreferenceController.java
@@ -56,12 +56,12 @@
     public ChangeScreenLockPreferenceController(Context context, SettingsPreferenceFragment host) {
         super(context);
         mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context);
         mHost = host;
         mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         mScreenLockPreferenceDetailUtils = new ScreenLockPreferenceDetailsUtils(context);
     }
 
diff --git a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java b/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
deleted file mode 100644
index 2712a02..0000000
--- a/src/com/android/settings/security/ConfirmSimDeletionPreferenceController.java
+++ /dev/null
@@ -1,123 +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.security;
-
-import android.app.KeyguardManager;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.UserManager;
-import android.provider.Settings;
-
-import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.network.helper.ConfirmationSimDeletionPredicate;
-import com.android.settings.network.telephony.MobileNetworkUtils;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.wifi.dpp.WifiDppUtils;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-/** Enable/disable user confirmation before deleting an eSim */
-public class ConfirmSimDeletionPreferenceController extends BasePreferenceController implements
-        Preference.OnPreferenceChangeListener{
-    public static final String KEY_CONFIRM_SIM_DELETION =
-            ConfirmationSimDeletionPredicate.KEY_CONFIRM_SIM_DELETION;
-    private boolean mConfirmationDefaultOn;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
-    private UserManager mUserManager;
-    private KeyguardManager mKeyguardManager;
-
-    public ConfirmSimDeletionPreferenceController(Context context, String key) {
-        super(context, key);
-        mConfirmationDefaultOn =
-                context.getResources()
-                        .getBoolean(R.bool.config_sim_deletion_confirmation_default_on);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
-
-        mUserManager = context.getSystemService(UserManager.class);
-        mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        // hide if eSim is not supported on the device
-        return (!MobileNetworkUtils.isMobileNetworkUserRestricted(mContext)) &&
-                MobileNetworkUtils.showEuiccSettings(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
-    }
-
-    private boolean getGlobalState() {
-        return Settings.Global.getInt(
-                        mContext.getContentResolver(),
-                        KEY_CONFIRM_SIM_DELETION,
-                        mConfirmationDefaultOn ? 1 : 0)
-                == 1;
-    }
-
-    public boolean isChecked() {
-        return getGlobalState();
-    }
-
-    public boolean setChecked(boolean isChecked) {
-        Settings.Global.putInt(
-                mContext.getContentResolver(), KEY_CONFIRM_SIM_DELETION, isChecked ? 1 : 0);
-        return true;
-    }
-
-    // handle UI change
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        if (!preference.getKey().equals(getPreferenceKey())) {
-            return false;
-        }
-        if (!isChecked()) {
-            mMetricsFeatureProvider.action(mContext,
-                    SettingsEnums.ACTION_CONFIRM_SIM_DELETION_ON);
-            setChecked(true);
-            return true;
-        } else {
-            // prevent disabling the feature until authorized
-            WifiDppUtils.showLockScreen(mContext, () -> {
-                mMetricsFeatureProvider.action(mContext,
-                        SettingsEnums.ACTION_CONFIRM_SIM_DELETION_OFF);
-                // set data
-                setChecked(false);
-                // set UI
-                ((TwoStatePreference) preference).setChecked(false);
-            });
-            return false;
-        }
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        if (!mKeyguardManager.isKeyguardSecure() && mUserManager.isGuestUser()) {
-            preference.setEnabled(false);
-            if (preference instanceof TwoStatePreference) {
-                ((TwoStatePreference) preference).setChecked(false);
-            }
-            preference.setSummary(R.string.disabled_because_no_backup_security);
-        } else {
-            preference.setEnabled(true);
-            if (preference instanceof TwoStatePreference) {
-                ((TwoStatePreference) preference).setChecked(getGlobalState());
-            }
-            preference.setSummary(R.string.confirm_sim_deletion_description);
-        }
-    }
-}
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..101364b
--- /dev/null
+++ b/src/com/android/settings/security/ContentProtectionTogglePreferenceController.java
@@ -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.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.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+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.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+
+/** 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";
+
+    @Nullable private SettingsMainSwitchPreference mSwitchBar;
+    @Nullable private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
+    private final ContentResolver mContentResolver;
+
+    public ContentProtectionTogglePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+        mContentResolver = context.getContentResolver();
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        if (mEnforcedAdmin != null) {
+            // 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);
+        final Preference preference = screen.findPreference(getPreferenceKey());
+
+        if (preference instanceof SettingsMainSwitchPreference) {
+            mSwitchBar = (SettingsMainSwitchPreference) preference;
+            mSwitchBar.addOnSwitchChangeListener(this);
+        }
+    }
+
+    /**
+     * Temporary workaround for SettingsMainSwitchPreference.setDisabledByAdmin without user
+     * restriction.
+     */
+    @Override
+    public void updateState(Preference preference) {
+        super.updateState(preference);
+        // Assign the value to mEnforcedAdmin since it's needed in isChecked()
+        mEnforcedAdmin = getEnforcedAdmin();
+        if (mSwitchBar != null && mEnforcedAdmin != null) {
+            mSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
+        }
+    }
+
+    @Override
+    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+        if (isChecked != isChecked()) {
+            setChecked(isChecked);
+        }
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return R.string.menu_key_security;
+    }
+
+    @VisibleForTesting
+    protected RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() {
+        return RestrictedLockUtilsInternal.getDeviceOwner(mContext);
+    }
+}
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/CredentialManagementAppHeaderController.java b/src/com/android/settings/security/CredentialManagementAppHeaderController.java
index 9361fb9..03720e6 100644
--- a/src/com/android/settings/security/CredentialManagementAppHeaderController.java
+++ b/src/com/android/settings/security/CredentialManagementAppHeaderController.java
@@ -82,7 +82,8 @@
         ImageView appIconView = headerPref.findViewById(R.id.entity_header_icon);
         TextView titleView = headerPref.findViewById(R.id.entity_header_title);
         TextView summary1 = headerPref.findViewById(R.id.entity_header_summary);
-        TextView summary2 = headerPref.findViewById(R.id.entity_header_second_summary);
+        TextView summary2 = headerPref.findViewById(
+                com.android.settingslib.widget.preference.layout.R.id.entity_header_second_summary);
         summary2.setVisibility(View.GONE);
 
         try {
diff --git a/src/com/android/settings/security/InstallCaCertificateWarning.java b/src/com/android/settings/security/InstallCaCertificateWarning.java
index 139bc1c..3335fe6 100644
--- a/src/com/android/settings/security/InstallCaCertificateWarning.java
+++ b/src/com/android/settings/security/InstallCaCertificateWarning.java
@@ -18,7 +18,6 @@
 
 import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.Bundle;
@@ -26,6 +25,8 @@
 import android.view.View;
 import android.widget.Toast;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
 
@@ -58,7 +59,7 @@
                         .setText(R.string.certificate_warning_install_anyway)
                         .setListener(installCaCertificate())
                         .setButtonType(FooterButton.ButtonType.OTHER)
-                        .setTheme(R.style.SudGlifButton_Secondary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                         .build()
         );
         mixin.getSecondaryButtonView().setFilterTouchesWhenObscured(true);
@@ -68,7 +69,7 @@
                         .setText(R.string.certificate_warning_dont_install)
                         .setListener(returnToInstallCertificateFromStorage())
                         .setButtonType(FooterButton.ButtonType.NEXT)
-                        .setTheme(R.style.SudGlifButton_Primary)
+                        .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                         .build()
         );
         mixin.getPrimaryButtonView().setFilterTouchesWhenObscured(true);
diff --git a/src/com/android/settings/security/LockUnificationPreferenceController.java b/src/com/android/settings/security/LockUnificationPreferenceController.java
index d85d65b..e9931df 100644
--- a/src/com/android/settings/security/LockUnificationPreferenceController.java
+++ b/src/com/android/settings/security/LockUnificationPreferenceController.java
@@ -97,7 +97,7 @@
         mHost = host;
         mUm = context.getSystemService(UserManager.class);
         mDpm = context.getSystemService(DevicePolicyManager.class);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context);
         mProfileUserId = Utils.getManagedProfileId(mUm, MY_USER_ID);
diff --git a/src/com/android/settings/security/RequestManageCredentials.java b/src/com/android/settings/security/RequestManageCredentials.java
index 6a1d40a..2c1b452 100644
--- a/src/com/android/settings/security/RequestManageCredentials.java
+++ b/src/com/android/settings/security/RequestManageCredentials.java
@@ -18,7 +18,6 @@
 
 import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.app.admin.DevicePolicyEventLogger;
 import android.app.admin.DevicePolicyManager;
@@ -47,6 +46,7 @@
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
diff --git a/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java b/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java
index 7de2635..88477c3 100644
--- a/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java
+++ b/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java
@@ -50,7 +50,7 @@
     public ScreenLockPreferenceDetailsUtils(Context context) {
         mContext = context;
         mUm = context.getSystemService(UserManager.class);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context);
         mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
diff --git a/src/com/android/settings/security/ScreenPinningSettings.java b/src/com/android/settings/security/ScreenPinningSettings.java
index 8fae6e1..8690847 100644
--- a/src/com/android/settings/security/ScreenPinningSettings.java
+++ b/src/com/android/settings/security/ScreenPinningSettings.java
@@ -15,22 +15,28 @@
  */
 package com.android.settings.security;
 
+import static android.app.Activity.RESULT_OK;
+
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.res.Resources;
+import android.icu.text.MessageFormat;
 import android.os.Bundle;
 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.annotation.NonNull;
 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;
@@ -41,14 +47,17 @@
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.search.SearchIndexableRaw;
 import com.android.settingslib.widget.FooterPreference;
-import com.android.settingslib.widget.OnMainSwitchChangeListener;
+
+import java.util.List;
+
 /**
  * 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";
@@ -56,7 +65,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;
@@ -166,14 +175,13 @@
             setScreenLockUsed(validPassQuality);
             // Make sure the screen updates.
             mUseScreenLock.setChecked(validPassQuality);
-        } else if (requestCode == CONFIRM_REQUEST) {
+        } else if (requestCode == CONFIRM_REQUEST && resultCode == RESULT_OK) {
             setScreenLockUsedSetting(false);
         }
     }
 
-    private int getCurrentSecurityTitle() {
-        int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(
-                UserHandle.myUserId());
+    private static int getCurrentSecurityTitle(LockPatternUtils lockPatternUtils) {
+        int quality = lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId());
         switch (quality) {
             case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
             case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
@@ -184,7 +192,7 @@
             case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
                 return R.string.screen_pinning_unlock_password;
             case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
-                if (mLockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) {
+                if (lockPatternUtils.isLockPatternEnabled(UserHandle.myUserId())) {
                     return R.string.screen_pinning_unlock_pattern;
                 }
         }
@@ -195,7 +203,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)
@@ -229,7 +237,7 @@
                 }
             });
             mUseScreenLock.setChecked(isScreenLockUsed());
-            mUseScreenLock.setTitle(getCurrentSecurityTitle());
+            mUseScreenLock.setTitle(getCurrentSecurityTitle(mLockPatternUtils));
         } else {
             mFooterPreference.setSummary(getAppPinningContent());
             mUseScreenLock.setEnabled(false);
@@ -242,14 +250,37 @@
     }
 
     private CharSequence getAppPinningContent() {
-        return isGuestModeSupported()
-                ? getActivity().getText(R.string.screen_pinning_guest_user_description)
-                : getActivity().getText(R.string.screen_pinning_description);
+        final int stringResource = isGuestModeSupported()
+                ? R.string.screen_pinning_guest_user_description
+                : R.string.screen_pinning_description;
+        return MessageFormat.format(getActivity().getString(stringResource), 1, 2, 3);
     }
 
     /**
-     * For search
+     * For search.
+     *
+     * This page only provides an index for the toggle preference of using screen lock for
+     * unpinning. The preference name will change with various lock configurations. Indexing data
+     * from XML isn't suitable since it uses a static title by default. So, we skip XML indexing
+     * by omitting the XML argument in the constructor and use a dynamic index method instead.
      */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.screen_pinning_settings);
+            new BaseSearchIndexProvider() {
+
+                @NonNull
+                @Override
+                public List<SearchIndexableRaw> getDynamicRawDataToIndex(@NonNull Context context,
+                        boolean enabled) {
+                    List<SearchIndexableRaw> dynamicRaws =
+                            super.getDynamicRawDataToIndex(context, enabled);
+                    final SearchIndexableRaw raw = new SearchIndexableRaw(context);
+                    final Resources res = context.getResources();
+                    final LockPatternUtils lockPatternUtils = new LockPatternUtils(context);
+                    raw.key = KEY_USE_SCREEN_LOCK;
+                    raw.title = res.getString(getCurrentSecurityTitle(lockPatternUtils));
+                    raw.screenTitle = res.getString(R.string.screen_pinning_title);
+                    dynamicRaws.add(raw);
+                    return dynamicRaws;
+                }
+            };
 }
diff --git a/src/com/android/settings/security/SecurityAdvancedSettings.java b/src/com/android/settings/security/SecurityAdvancedSettings.java
index 61f0975..c29372c 100644
--- a/src/com/android/settings/security/SecurityAdvancedSettings.java
+++ b/src/com/android/settings/security/SecurityAdvancedSettings.java
@@ -27,7 +27,6 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
 import com.android.settings.safetycenter.SafetyCenterUtils;
-import com.android.settings.safetycenter.SafetyCenterUtils.EnterpriseOverrideString;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.security.trustagent.TrustAgentListPreferenceController;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -54,15 +53,7 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        List<EnterpriseOverrideString> securityOverrideStrings =
-                SafetyCenterUtils.getEnterpriseOverrideStringForSecurityEntries();
-        for (int i = 0; i < securityOverrideStrings.size(); i++) {
-            EnterpriseOverrideString overrideString = securityOverrideStrings.get(i);
-            replaceEnterpriseStringTitle(
-                    overrideString.getPreferenceKey(),
-                    overrideString.getOverrideKey(),
-                    overrideString.getResource());
-        }
+        SafetyCenterUtils.replaceEnterpriseStringsForSecurityEntries(this);
     }
 
     @Override
@@ -79,7 +70,7 @@
             return CategoryKey.CATEGORY_SECURITY_ADVANCED_SETTINGS;
         } else {
             final SecuritySettingsFeatureProvider securitySettingsFeatureProvider =
-                    FeatureFactory.getFactory(context).getSecuritySettingsFeatureProvider();
+                    FeatureFactory.getFeatureFactory().getSecuritySettingsFeatureProvider();
 
             if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) {
                 return securitySettingsFeatureProvider.getAlternativeAdvancedSettingsCategoryKey();
diff --git a/src/com/android/settings/security/SecuritySettings.java b/src/com/android/settings/security/SecuritySettings.java
index b30b54d..6d987f3 100644
--- a/src/com/android/settings/security/SecuritySettings.java
+++ b/src/com/android/settings/security/SecuritySettings.java
@@ -127,7 +127,7 @@
 
                 @Override
                 protected boolean isPageSearchEnabled(Context context) {
-                    return !FeatureFactory.getFactory(context).getSecuritySettingsFeatureProvider()
+                    return !FeatureFactory.getFeatureFactory().getSecuritySettingsFeatureProvider()
                             .hasAlternativeSecuritySettingsFragment()
                             && !SafetyCenterManagerWrapper.get().isEnabled(context);
                 }
diff --git a/src/com/android/settings/security/ShowPasswordPreferenceController.java b/src/com/android/settings/security/ShowPasswordPreferenceController.java
index 696854a..a6e4db6 100644
--- a/src/com/android/settings/security/ShowPasswordPreferenceController.java
+++ b/src/com/android/settings/security/ShowPasswordPreferenceController.java
@@ -17,25 +17,17 @@
 package com.android.settings.security;
 
 import android.content.Context;
-import android.os.UserHandle;
 import android.provider.Settings;
 
-import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
 
 public class ShowPasswordPreferenceController extends TogglePreferenceController {
 
     private static final String KEY_SHOW_PASSWORD = "show_password";
-    private static final int MY_USER_ID = UserHandle.myUserId();
-    private final LockPatternUtils mLockPatternUtils;
 
     public ShowPasswordPreferenceController(Context context) {
         super(context, KEY_SHOW_PASSWORD);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
-                .getSecurityFeatureProvider()
-                .getLockPatternUtils(context);
     }
 
     @Override
@@ -48,7 +40,6 @@
     public boolean setChecked(boolean isChecked) {
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD,
                 isChecked ? 1 : 0);
-        mLockPatternUtils.setVisiblePasswordEnabled(isChecked, MY_USER_ID);
         return true;
     }
 
diff --git a/src/com/android/settings/security/SimLockPreferenceController.java b/src/com/android/settings/security/SimLockPreferenceController.java
index 8429a9f..8cc7234 100644
--- a/src/com/android/settings/security/SimLockPreferenceController.java
+++ b/src/com/android/settings/security/SimLockPreferenceController.java
@@ -44,8 +44,9 @@
         mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
         mCarrierConfigManager = (CarrierConfigManager)
                 mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        mSubscriptionManager = (SubscriptionManager) context
-                .getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+        mSubscriptionManager = ((SubscriptionManager) context
+                .getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE))
+                .createForAllUserProfiles();
         mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
     }
 
diff --git a/src/com/android/settings/security/TopLevelSecurityEntryPreferenceController.java b/src/com/android/settings/security/TopLevelSecurityEntryPreferenceController.java
index f83a909..95ef5be 100644
--- a/src/com/android/settings/security/TopLevelSecurityEntryPreferenceController.java
+++ b/src/com/android/settings/security/TopLevelSecurityEntryPreferenceController.java
@@ -32,7 +32,7 @@
 
     public TopLevelSecurityEntryPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mSecuritySettingsFeatureProvider = FeatureFactory.getFactory(mContext)
+        mSecuritySettingsFeatureProvider = FeatureFactory.getFeatureFactory()
                 .getSecuritySettingsFeatureProvider();
     }
 
diff --git a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
index 4d65ae7..3d64ca8 100644
--- a/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
+++ b/src/com/android/settings/security/VisiblePatternProfilePreferenceController.java
@@ -66,7 +66,7 @@
             Context context, Lifecycle lifecycle, String key) {
         super(context, key);
         mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
-        mLockPatternUtils = FeatureFactory.getFactory(context)
+        mLockPatternUtils = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider()
                 .getLockPatternUtils(context);
         mProfileChallengeUserId = Utils.getManagedProfileId(mUm, mUserId);
diff --git a/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java b/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java
index 180ed99..dd99e9f 100644
--- a/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java
+++ b/src/com/android/settings/security/screenlock/LockAfterTimeoutPreferenceController.java
@@ -54,7 +54,7 @@
         mUserId = userId;
         mLockPatternUtils = lockPatternUtils;
         mDPM = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
-        mTrustAgentManager = FeatureFactory.getFactory(context)
+        mTrustAgentManager = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider().getTrustAgentManager();
     }
 
diff --git a/src/com/android/settings/security/screenlock/PinPrivacyPreferenceController.kt b/src/com/android/settings/security/screenlock/PinPrivacyPreferenceController.kt
index 176183e..78656e8 100644
--- a/src/com/android/settings/security/screenlock/PinPrivacyPreferenceController.kt
+++ b/src/com/android/settings/security/screenlock/PinPrivacyPreferenceController.kt
@@ -45,7 +45,7 @@
         return PREF_KEY
     }
 
-    override fun onPreferenceChange(preference: Preference?, value: Any?): Boolean {
+    override fun onPreferenceChange(preference: Preference, value: Any): Boolean {
         lockPatternUtils.setPinEnhancedPrivacyEnabled((value as Boolean), userId)
         return true
     }
diff --git a/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceController.java b/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceController.java
index d3c10b0..9836a24 100644
--- a/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceController.java
+++ b/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceController.java
@@ -44,7 +44,7 @@
         super(context);
         mUserId = userId;
         mLockPatternUtils = lockPatternUtils;
-        mTrustAgentManager = FeatureFactory.getFactory(context)
+        mTrustAgentManager = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider().getTrustAgentManager();
     }
 
@@ -78,7 +78,7 @@
                     R.string.lockpattern_settings_power_button_instantly_locks_summary,
                     trustAgentLabel));
         } else {
-            preference.setSummary(R.string.summary_empty);
+            preference.setSummary(com.android.settingslib.R.string.summary_empty);
         }
     }
 
diff --git a/src/com/android/settings/security/screenlock/ProtectedTimeoutListPreference.java b/src/com/android/settings/security/screenlock/ProtectedTimeoutListPreference.java
new file mode 100644
index 0000000..26d914c
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/ProtectedTimeoutListPreference.java
@@ -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.security.screenlock;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import com.android.settings.display.TimeoutListPreference;
+import com.android.settings.flags.Flags;
+import com.android.settings.wifi.dpp.WifiDppUtils;
+
+/** Wraps {@link TimeoutListPreference} with an authentication challenge for user. */
+public class ProtectedTimeoutListPreference extends TimeoutListPreference {
+    public ProtectedTimeoutListPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public void performClick() {
+        if (Flags.protectLockAfterTimeoutWithAuth()) {
+            WifiDppUtils.showLockScreen(getContext(), super::performClick);
+        } else {
+            super.performClick();
+        }
+    }
+}
diff --git a/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java b/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java
index 8943878..82b25ef 100644
--- a/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java
+++ b/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceController.java
@@ -37,7 +37,7 @@
 
     public ManageTrustAgentsPreferenceController(Context context, String key) {
         super(context, key);
-        final SecurityFeatureProvider securityFeatureProvider = FeatureFactory.getFactory(context)
+        final SecurityFeatureProvider securityFeatureProvider = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider();
         mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context);
         mTrustAgentManager = securityFeatureProvider.getTrustAgentManager();
diff --git a/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java b/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java
index 4f235e1..2ec90de 100644
--- a/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java
+++ b/src/com/android/settings/security/trustagent/TrustAgentListPreferenceController.java
@@ -74,7 +74,7 @@
     public TrustAgentListPreferenceController(Context context, SettingsPreferenceFragment host,
             Lifecycle lifecycle) {
         super(context);
-        final SecurityFeatureProvider provider = FeatureFactory.getFactory(context)
+        final SecurityFeatureProvider provider = FeatureFactory.getFeatureFactory()
                 .getSecurityFeatureProvider();
         mHost = host;
         mLockPatternUtils = provider.getLockPatternUtils(context);
diff --git a/src/com/android/settings/security/trustagent/TrustAgentsPreferenceController.java b/src/com/android/settings/security/trustagent/TrustAgentsPreferenceController.java
index 4268839..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;
@@ -70,7 +70,7 @@
         mDevicePolicyManager = context.getSystemService(DevicePolicyManager.class);
         mIconDrawableFactory = IconDrawableFactory.newInstance(context);
         final SecurityFeatureProvider securityFeatureProvider =
-                FeatureFactory.getFactory(context).getSecurityFeatureProvider();
+                FeatureFactory.getFeatureFactory().getSecurityFeatureProvider();
         mTrustAgentManager = securityFeatureProvider.getTrustAgentManager();
         mLockPatternUtils = securityFeatureProvider.getLockPatternUtils(context);
         mPackageManager = context.getPackageManager();
@@ -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/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
index 8871135..8f74bd9 100644
--- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
+++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
@@ -86,7 +86,7 @@
                 (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
         mShortcutManager = context.getSystemService(ShortcutManager.class);
         mPackageManager = context.getPackageManager();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context)
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory()
                 .getMetricsFeatureProvider();
     }
 
diff --git a/src/com/android/settings/sim/CallsSimListDialogFragment.java b/src/com/android/settings/sim/CallsSimListDialogFragment.java
index cbee634..bb82c2e 100644
--- a/src/com/android/settings/sim/CallsSimListDialogFragment.java
+++ b/src/com/android/settings/sim/CallsSimListDialogFragment.java
@@ -26,6 +26,8 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
+import com.android.internal.telephony.flags.Flags;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -56,7 +58,9 @@
 
             SubscriptionInfo info = subscriptionManager.getActiveSubscriptionInfo(subId);
             if (info == null || (info.isEmbedded()
-                    && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) {
+                && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                    || (Flags.oemEnabledSatelliteFlag()
+                        && info.isOnlyNonTerrestrialNetwork())))) {
                 continue;
             }
             result.add(subscriptionManager.getActiveSubscriptionInfo(subId));
diff --git a/src/com/android/settings/sim/ChooseSimActivity.java b/src/com/android/settings/sim/ChooseSimActivity.java
index cebc1ba..9a75b63 100644
--- a/src/com/android/settings/sim/ChooseSimActivity.java
+++ b/src/com/android/settings/sim/ChooseSimActivity.java
@@ -316,8 +316,9 @@
         @Override
         public void onBindView(View view) {
             super.onBindView(view);
-            TextView title = view.findViewById(R.id.sud_items_title);
-            TextView summary = view.findViewById(R.id.sud_items_summary);
+            TextView title = view.findViewById(com.google.android.setupdesign.R.id.sud_items_title);
+            TextView summary =
+                    view.findViewById(com.google.android.setupdesign.R.id.sud_items_summary);
             title.setEnabled(isEnabled());
             summary.setEnabled(isEnabled());
         }
diff --git a/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragment.java b/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragment.java
index b1b5f8e..bd6a394 100644
--- a/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragment.java
+++ b/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragment.java
@@ -195,7 +195,7 @@
     }
 
     private SubscriptionManager getSubscriptionManager() {
-        return getContext().getSystemService(SubscriptionManager.class);
+        return getContext().getSystemService(SubscriptionManager.class).createForAllUserProfiles();
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/sim/OWNERS b/src/com/android/settings/sim/OWNERS
index 68cee36..110402f 100644
--- a/src/com/android/settings/sim/OWNERS
+++ b/src/com/android/settings/sim/OWNERS
@@ -2,7 +2,6 @@
 allenwtsu@google.com
 andychou@google.com
 bonianchen@google.com
-goldmanj@google.com
 songferngwang@google.com
 
 # Emergency approvers in case the above are not available
diff --git a/src/com/android/settings/sim/PreferredSimDialogFragment.java b/src/com/android/settings/sim/PreferredSimDialogFragment.java
index 50eb993..bb69440 100644
--- a/src/com/android/settings/sim/PreferredSimDialogFragment.java
+++ b/src/com/android/settings/sim/PreferredSimDialogFragment.java
@@ -32,6 +32,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.network.SubscriptionUtil;
 
@@ -98,7 +99,8 @@
 
         final SubscriptionInfo info = getPreferredSubscription();
         if (info == null || (info.isEmbedded()
-                && info.getProfileClass() == PROFILE_CLASS_PROVISIONING)) {
+            && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                || (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 6ac0067..b0b65f6 100644
--- a/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java
+++ b/src/com/android/settings/sim/SelectSpecificDataSimDialogFragment.java
@@ -35,6 +35,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.network.SubscriptionUtil;
 
@@ -133,10 +134,15 @@
             return;
         }
 
-        if ((newSubInfo.isEmbedded() && newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING)
-                || (currentDataSubInfo.isEmbedded()
-                && currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING)) {
-            Log.d(TAG, "do not set the provision eSIM");
+        if ((newSubInfo.isEmbedded()
+            && (newSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                || (Flags.oemEnabledSatelliteFlag()
+                    && newSubInfo.isOnlyNonTerrestrialNetwork())))
+            || (currentDataSubInfo.isEmbedded()
+            && (currentDataSubInfo.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                || (Flags.oemEnabledSatelliteFlag()
+                    && currentDataSubInfo.isOnlyNonTerrestrialNetwork())))) {
+            Log.d(TAG, "do not set the provisioning or satellite eSIM");
             dismiss();
             return;
         }
@@ -188,7 +194,7 @@
 
     @VisibleForTesting
     protected SubscriptionManager getSubscriptionManager() {
-        return getContext().getSystemService(SubscriptionManager.class);
+        return getContext().getSystemService(SubscriptionManager.class).createForAllUserProfiles();
     }
 
     @Override
diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java
index e7b0185..d65b2d1 100644
--- a/src/com/android/settings/sim/SimDialogActivity.java
+++ b/src/com/android/settings/sim/SimDialogActivity.java
@@ -90,7 +90,7 @@
         }
         SimDialogProhibitService.supportDismiss(this);
 
-        mMetricsFeatureProvider = FeatureFactory.getFactory(this).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         getWindow().addSystemFlags(
                 WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
         showOrUpdateDialog();
diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java
index 5b84d7b..fd44dc7 100644
--- a/src/com/android/settings/sim/SimListDialogFragment.java
+++ b/src/com/android/settings/sim/SimListDialogFragment.java
@@ -39,6 +39,7 @@
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.network.SubscriptionUtil;
 
@@ -56,7 +57,8 @@
 
     protected SelectSubscriptionAdapter mAdapter;
     @VisibleForTesting
-    List<SubscriptionInfo> mSubscriptions;
+    @NonNull
+    List<SubscriptionInfo> mSubscriptions = new ArrayList<>();
 
     public static SimListDialogFragment newInstance(int dialogType, int titleResId,
             boolean includeAskEveryTime, boolean isCancelItemShowed) {
@@ -71,8 +73,6 @@
     @NonNull
     @Override
     public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
-        mSubscriptions = new ArrayList<>();
-
         final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
         View titleView = LayoutInflater.from(getContext()).inflate(
                 R.layout.sim_confirm_dialog_title_multiple_enabled_profiles_supported, null);
@@ -125,7 +125,7 @@
 
     protected List<SubscriptionInfo> getCurrentSubscriptions() {
         final SubscriptionManager manager = getContext().getSystemService(
-                SubscriptionManager.class);
+                SubscriptionManager.class).createForAllUserProfiles();
         return manager.getActiveSubscriptionInfoList();
     }
 
@@ -142,9 +142,10 @@
             return;
         }
 
-        // Remove the provision eSIM from the subscription list.
+        // Remove the provisioning or satellite eSIM from the subscription list.
         currentSubscriptions.removeIf(info -> info.isEmbedded()
-                && info.getProfileClass() == PROFILE_CLASS_PROVISIONING);
+            && (info.getProfileClass() == PROFILE_CLASS_PROVISIONING
+                || (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..8f30106 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -41,7 +41,6 @@
 import com.android.settings.network.telephony.MobileDataSlice;
 import com.android.settings.notification.zen.ZenModeButtonPreferenceController;
 import com.android.settings.wifi.calling.WifiCallingSliceHelper;
-import com.android.settings.wifi.slice.ContextualWifiSlice;
 import com.android.settings.wifi.slice.WifiSlice;
 import com.android.settingslib.media.MediaOutputConstants;
 
@@ -83,15 +82,6 @@
             .build();
 
     /**
-     * Backing Uri for the Wifi Slice.
-     */
-    public static final Uri CONTEXTUAL_WIFI_SLICE_URI = new Uri.Builder()
-            .scheme(ContentResolver.SCHEME_CONTENT)
-            .authority(SettingsSlicesContract.AUTHORITY)
-            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
-            .appendPath("contextual_wifi")
-            .build();
-    /**
      * Slice Uri for Enhanced 4G slice
      */
     public static final Uri ENHANCED_4G_SLICE_URI = new Uri.Builder()
@@ -196,16 +186,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()
@@ -331,7 +311,6 @@
         // Slices for contextual card.
         sUriToSlice.put(FACE_ENROLL_SLICE_URI, FaceSetupSlice.class);
         sUriToSlice.put(CONTEXTUAL_ADAPTIVE_SLEEP_URI, ContextualAdaptiveSleepSlice.class);
-        sUriToSlice.put(CONTEXTUAL_WIFI_SLICE_URI, ContextualWifiSlice.class);
         sUriToSlice.put(LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
         sUriToSlice.put(BLUETOOTH_DEVICES_SLICE_URI, BluetoothDevicesSlice.class);
     }
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 5d2bde3..ec60f44 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -164,7 +164,7 @@
             Log.d(TAG, "onSlicePinned: " + sliceUri);
             mFirstSlicePinned = true;
         }
-        FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .action(SettingsEnums.PAGE_UNKNOWN,
                         SettingsEnums.ACTION_SETTINGS_SLICE_REQUESTED,
                         SettingsEnums.PAGE_UNKNOWN,
@@ -173,7 +173,7 @@
 
         if (CustomSliceRegistry.isValidUri(sliceUri)) {
             final Context context = getContext();
-            final CustomSliceable sliceable = FeatureFactory.getFactory(context)
+            final CustomSliceable sliceable = FeatureFactory.getFeatureFactory()
                     .getSlicesFeatureProvider().getSliceableFromUri(context, sliceUri);
             final IntentFilter filter = sliceable.getIntentFilter();
             if (filter != null) {
@@ -227,7 +227,7 @@
             final boolean nightMode = Utils.isNightMode(getContext());
             if (mNightMode == null) {
                 mNightMode = nightMode;
-                getContext().setTheme(R.style.Theme_SettingsBase);
+                getContext().setTheme(com.android.settingslib.widget.theme.R.style.Theme_SettingsBase);
             } else if (mNightMode != nightMode) {
                 Log.d(TAG, "Night mode changed, reload theme");
                 mNightMode = nightMode;
@@ -246,13 +246,13 @@
             // from the Settings team.
             if (CustomSliceRegistry.isValidUri(sliceUri)) {
                 final Context context = getContext();
-                return FeatureFactory.getFactory(context)
+                return FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider().getSliceableFromUri(context, sliceUri)
                         .getSlice();
             }
 
             if (CustomSliceRegistry.WIFI_CALLING_URI.equals(sliceUri)) {
-                return FeatureFactory.getFactory(getContext())
+                return FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider()
                         .getNewWifiCallingSliceHelper(getContext())
                         .createWifiCallingSlice(sliceUri);
@@ -261,12 +261,12 @@
             } else if (CustomSliceRegistry.BLUETOOTH_URI.equals(sliceUri)) {
                 return BluetoothSliceBuilder.getSlice(getContext());
             } else if (CustomSliceRegistry.ENHANCED_4G_SLICE_URI.equals(sliceUri)) {
-                return FeatureFactory.getFactory(getContext())
+                return FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider()
                         .getNewEnhanced4gLteSliceHelper(getContext())
                         .createEnhanced4gLteSlice(sliceUri);
             } else if (CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI.equals(sliceUri)) {
-                return FeatureFactory.getFactory(getContext())
+                return FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider()
                         .getNewWifiCallingSliceHelper(getContext())
                         .createWifiCallingPreferenceSlice(sliceUri);
@@ -474,18 +474,25 @@
 
     @VisibleForTesting
     boolean isPrivateSlicesNeeded(Uri uri) {
-        final String queryUri = getContext().getString(R.string.config_non_public_slice_query_uri);
+        final Context context = getContext();
+        final String queryUri = context.getString(R.string.config_non_public_slice_query_uri);
 
         if (!TextUtils.isEmpty(queryUri) && TextUtils.equals(uri.toString(), queryUri)) {
             // check if the calling package is eligible for private slices
             final int callingUid = Binder.getCallingUid();
-            final boolean hasPermission = getContext().checkPermission(
-                    android.Manifest.permission.READ_SEARCH_INDEXABLES, Binder.getCallingPid(),
-                    callingUid) == PackageManager.PERMISSION_GRANTED;
-            final String callingPackage = getContext().getPackageManager()
-                    .getPackagesForUid(callingUid)[0];
-            return hasPermission && TextUtils.equals(callingPackage,
-                    getContext().getString(R.string.config_settingsintelligence_package_name));
+            final boolean hasPermission =
+                    context.checkPermission(
+                                    android.Manifest.permission.READ_SEARCH_INDEXABLES,
+                                    Binder.getCallingPid(),
+                                    callingUid)
+                            == PackageManager.PERMISSION_GRANTED;
+            final String[] packages = context.getPackageManager().getPackagesForUid(callingUid);
+            final String callingPackage =
+                    packages != null && packages.length > 0 ? packages[0] : null;
+            return hasPermission
+                    && TextUtils.equals(
+                            callingPackage,
+                            context.getString(R.string.config_settingsintelligence_package_name));
         }
         return false;
     }
diff --git a/src/com/android/settings/slices/SliceBackgroundWorker.java b/src/com/android/settings/slices/SliceBackgroundWorker.java
index 2b02999..1cf00de 100644
--- a/src/com/android/settings/slices/SliceBackgroundWorker.java
+++ b/src/com/android/settings/slices/SliceBackgroundWorker.java
@@ -17,7 +17,6 @@
 package com.android.settings.slices;
 
 import android.annotation.MainThread;
-import android.annotation.Nullable;
 import android.content.Context;
 import android.net.Uri;
 import android.os.Handler;
@@ -29,6 +28,9 @@
 import android.util.ArrayMap;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+
 import java.io.Closeable;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
@@ -172,7 +174,8 @@
     /**
      * Notify that data was updated and attempt to sync changes to the Slice.
      */
-    protected final void notifySliceChange() {
+    @VisibleForTesting
+    public final void notifySliceChange() {
         NotifySliceChangeHandler.getInstance().updateSlice(this);
     }
 
diff --git a/src/com/android/settings/slices/SliceBroadcastReceiver.java b/src/com/android/settings/slices/SliceBroadcastReceiver.java
index d3c7a4d..2c9853a 100644
--- a/src/com/android/settings/slices/SliceBroadcastReceiver.java
+++ b/src/com/android/settings/slices/SliceBroadcastReceiver.java
@@ -77,7 +77,7 @@
                 BluetoothSliceBuilder.handleUriChange(context, intent);
                 break;
             case ACTION_WIFI_CALLING_CHANGED:
-                FeatureFactory.getFactory(context)
+                FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider()
                         .getNewWifiCallingSliceHelper(context)
                         .handleWifiCallingChanged(intent);
@@ -86,7 +86,7 @@
                 ZenModeSliceBuilder.handleUriChange(context, intent);
                 break;
             case ACTION_ENHANCED_4G_LTE_CHANGED:
-                FeatureFactory.getFactory(context)
+                FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider()
                         .getNewEnhanced4gLteSliceHelper(context)
                         .handleEnhanced4gLteChanged(intent);
@@ -94,7 +94,7 @@
             case ACTION_WIFI_CALLING_PREFERENCE_WIFI_ONLY:
             case ACTION_WIFI_CALLING_PREFERENCE_WIFI_PREFERRED:
             case ACTION_WIFI_CALLING_PREFERENCE_CELLULAR_PREFERRED:
-                FeatureFactory.getFactory(context)
+                FeatureFactory.getFeatureFactory()
                         .getSlicesFeatureProvider()
                         .getNewWifiCallingSliceHelper(context)
                         .handleWifiCallingPreferenceChanged(intent);
@@ -172,7 +172,7 @@
      * follows the pattern in SharedPreferenceLogger.
      */
     private void logSliceValueChange(Context context, String sliceKey, int newValue) {
-        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .action(SettingsEnums.PAGE_UNKNOWN,
                         SettingsEnums.ACTION_SETTINGS_SLICE_CHANGED,
                         SettingsEnums.PAGE_UNKNOWN,
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index 6b69540..c9d5f23 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -28,6 +28,7 @@
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.provider.SettingsSlicesContract;
 import android.text.TextUtils;
 import android.util.ArraySet;
@@ -50,6 +51,8 @@
 import com.android.settings.core.SliderPreferenceController;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import java.util.Arrays;
@@ -86,6 +89,16 @@
             return buildUnavailableSlice(context, sliceData);
         }
 
+        String userRestriction = sliceData.getUserRestriction();
+        if (!TextUtils.isEmpty(userRestriction)) {
+            RestrictedLockUtils.EnforcedAdmin admin =
+                    RestrictedLockUtilsInternal.checkIfRestrictionEnforced(context,
+                            userRestriction, UserHandle.myUserId());
+            if (admin != null) {
+                return buildIntentSlice(context, sliceData, controller);
+            }
+        }
+
         switch (sliceData.getSliceType()) {
             case SliceData.SliceType.INTENT:
                 return buildIntentSlice(context, sliceData, controller);
diff --git a/src/com/android/settings/slices/SliceData.java b/src/com/android/settings/slices/SliceData.java
index 01b29b2..d97ebf5 100644
--- a/src/com/android/settings/slices/SliceData.java
+++ b/src/com/android/settings/slices/SliceData.java
@@ -73,6 +73,8 @@
 
     private final int mHighlightMenuRes;
 
+    private final String mUserRestriction;
+
     @SliceType
     private final int mSliceType;
 
@@ -132,6 +134,10 @@
         return mIsPublicSlice;
     }
 
+    public String getUserRestriction() {
+        return mUserRestriction;
+    }
+
     private SliceData(Builder builder) {
         mKey = builder.mKey;
         mTitle = builder.mTitle;
@@ -146,6 +152,7 @@
         mUnavailableSliceSubtitle = builder.mUnavailableSliceSubtitle;
         mIsPublicSlice = builder.mIsPublicSlice;
         mHighlightMenuRes = builder.mHighlightMenuRes;
+        mUserRestriction = builder.mUserRestriction;
     }
 
     @Override
@@ -189,6 +196,8 @@
 
         private boolean mIsPublicSlice;
 
+        private String mUserRestriction;
+
         public Builder setKey(String key) {
             mKey = key;
             return this;
@@ -255,6 +264,11 @@
             return this;
         }
 
+        public Builder setUserRestriction(String userRestriction) {
+            mUserRestriction = userRestriction;
+            return this;
+        }
+
         public SliceData build() {
             if (TextUtils.isEmpty(mKey)) {
                 throw new InvalidSliceDataException("Key cannot be empty");
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index 5177ff7..f6828af3 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -19,9 +19,12 @@
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER;
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_ICON;
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
+import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_PREF_TYPE;
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_SUMMARY;
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_TITLE;
 import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_UNAVAILABLE_SLICE_SUBTITLE;
+import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_USER_RESTRICTION;
+import static com.android.settings.core.PreferenceXmlParserUtils.PREF_SCREEN_TAG;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.app.settings.SettingsEnums;
@@ -32,17 +35,15 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.content.res.Resources;
-import android.content.res.XmlResourceParser;
 import android.net.Uri;
 import android.os.Bundle;
 import android.provider.SearchIndexableResource;
 import android.provider.SettingsSlicesContract;
 import android.text.TextUtils;
-import android.util.AttributeSet;
 import android.util.Log;
-import android.util.Xml;
 import android.view.accessibility.AccessibilityManager;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
@@ -58,7 +59,6 @@
 import com.android.settingslib.search.Indexable.SearchIndexProvider;
 import com.android.settingslib.search.SearchIndexableData;
 
-import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
@@ -79,14 +79,12 @@
 
     private static final String TAG = "SliceDataConverter";
 
-    private static final String NODE_NAME_PREFERENCE_SCREEN = "PreferenceScreen";
-
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private Context mContext;
 
     public SliceDataConverter(Context context) {
         mContext = context;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     /**
@@ -102,7 +100,7 @@
     public List<SliceData> getSliceData() {
         List<SliceData> sliceData = new ArrayList<>();
 
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(mContext)
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
                 .getSearchFeatureProvider().getSearchIndexableResources().getProviderValues();
 
         for (SearchIndexableData bundle : bundles) {
@@ -154,44 +152,34 @@
     }
 
     private List<SliceData> getSliceDataFromXML(int xmlResId, String fragmentName) {
-        XmlResourceParser parser = null;
-
         final List<SliceData> xmlSliceData = new ArrayList<>();
         String controllerClassName = "";
+        @NonNull String screenTitle = "";
 
         try {
-            parser = mContext.getResources().getXml(xmlResId);
-
-            int type;
-            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
-                    && type != XmlPullParser.START_TAG) {
-                // Parse next until start tag is found
-            }
-
-            String nodeName = parser.getName();
-            if (!NODE_NAME_PREFERENCE_SCREEN.equals(nodeName)) {
-                throw new RuntimeException(
-                        "XML document must start with <PreferenceScreen> tag; found"
-                                + nodeName + " at " + parser.getPositionDescription());
-            }
-
-            final AttributeSet attrs = Xml.asAttributeSet(parser);
-            final String screenTitle = PreferenceXmlParserUtils.getDataTitle(mContext, attrs);
-
             // TODO (b/67996923) Investigate if we need headers for Slices, since they never
             // correspond to an actual setting.
 
             final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
                     xmlResId,
-                    MetadataFlag.FLAG_NEED_KEY
+                    MetadataFlag.FLAG_INCLUDE_PREF_SCREEN
+                            | MetadataFlag.FLAG_NEED_KEY
                             | MetadataFlag.FLAG_NEED_PREF_CONTROLLER
                             | MetadataFlag.FLAG_NEED_PREF_TYPE
                             | MetadataFlag.FLAG_NEED_PREF_TITLE
                             | MetadataFlag.FLAG_NEED_PREF_ICON
                             | MetadataFlag.FLAG_NEED_PREF_SUMMARY
-                            | MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE);
+                            | MetadataFlag.FLAG_UNAVAILABLE_SLICE_SUBTITLE
+                            | MetadataFlag.FLAG_NEED_USER_RESTRICTION);
 
             for (Bundle bundle : metadata) {
+                final String title = bundle.getString(METADATA_TITLE);
+                if (PREF_SCREEN_TAG.equals(bundle.getString(METADATA_PREF_TYPE))) {
+                    if (title != null) {
+                        screenTitle = title;
+                    }
+                    continue;
+                }
                 // TODO (b/67996923) Non-controller Slices should become intent-only slices.
                 // Note that without a controller, dynamic summaries are impossible.
                 controllerClassName = bundle.getString(METADATA_CONTROLLER);
@@ -209,7 +197,6 @@
                         || controller instanceof RingerModeAffectedVolumePreferenceController)) {
                     continue;
                 }
-                final String title = bundle.getString(METADATA_TITLE);
                 final String summary = bundle.getString(METADATA_SUMMARY);
                 final int iconResId = bundle.getInt(METADATA_ICON);
 
@@ -218,6 +205,7 @@
                         METADATA_UNAVAILABLE_SLICE_SUBTITLE);
                 final boolean isPublicSlice = controller.isPublicSlice();
                 final int highlightMenuRes = controller.getSliceHighlightMenuRes();
+                final String userRestriction = bundle.getString(METADATA_USER_RESTRICTION);
 
                 final SliceData xmlSlice = new SliceData.Builder()
                         .setKey(key)
@@ -232,6 +220,7 @@
                         .setUnavailableSliceSubtitle(unavailableSliceSubtitle)
                         .setIsPublicSlice(isPublicSlice)
                         .setHighlightMenuRes(highlightMenuRes)
+                        .setUserRestriction(userRestriction)
                         .build();
 
                 xmlSliceData.add(xmlSlice);
@@ -257,8 +246,6 @@
                     SettingsEnums.PAGE_UNKNOWN,
                     fragmentName + "_" + controllerClassName,
                     1);
-        } finally {
-            if (parser != null) parser.close();
         }
         return xmlSliceData;
     }
diff --git a/src/com/android/settings/slices/SlicesDatabaseAccessor.java b/src/com/android/settings/slices/SlicesDatabaseAccessor.java
index 75f0220..b083b79 100644
--- a/src/com/android/settings/slices/SlicesDatabaseAccessor.java
+++ b/src/com/android/settings/slices/SlicesDatabaseAccessor.java
@@ -51,6 +51,7 @@
             IndexColumns.SLICE_TYPE,
             IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
             IndexColumns.HIGHLIGHT_MENU_RESOURCE,
+            IndexColumns.USER_RESTRICTION,
     };
 
     private final Context mContext;
@@ -166,6 +167,8 @@
                 cursor.getColumnIndex(IndexColumns.UNAVAILABLE_SLICE_SUBTITLE));
         final int highlightMenuRes = cursor.getInt(
                 cursor.getColumnIndex(IndexColumns.HIGHLIGHT_MENU_RESOURCE));
+        final String userRestriction = cursor.getString(
+                cursor.getColumnIndex(IndexColumns.USER_RESTRICTION));
 
         if (isIntentOnly) {
             sliceType = SliceData.SliceType.INTENT;
@@ -184,14 +187,14 @@
                 .setSliceType(sliceType)
                 .setUnavailableSliceSubtitle(unavailableSliceSubtitle)
                 .setHighlightMenuRes(highlightMenuRes)
+                .setUserRestriction(userRestriction)
                 .build();
     }
 
     private void verifyIndexing() {
         final long uidToken = Binder.clearCallingIdentity();
         try {
-            FeatureFactory.getFactory(
-                    mContext).getSlicesFeatureProvider().indexSliceData(mContext);
+            FeatureFactory.getFeatureFactory().getSlicesFeatureProvider().indexSliceData(mContext);
         } finally {
             Binder.restoreCallingIdentity(uidToken);
         }
diff --git a/src/com/android/settings/slices/SlicesDatabaseHelper.java b/src/com/android/settings/slices/SlicesDatabaseHelper.java
index 69ad702..cad045e 100644
--- a/src/com/android/settings/slices/SlicesDatabaseHelper.java
+++ b/src/com/android/settings/slices/SlicesDatabaseHelper.java
@@ -36,7 +36,7 @@
     private static final String DATABASE_NAME = "slices_index.db";
     private static final String SHARED_PREFS_TAG = "slices_shared_prefs";
 
-    private static final int DATABASE_VERSION = 9;
+    private static final int DATABASE_VERSION = 10;
 
     public interface Tables {
         String TABLE_SLICES_INDEX = "slices_index";
@@ -108,6 +108,11 @@
          * Resource ID for the menu entry of the setting.
          */
         String HIGHLIGHT_MENU_RESOURCE = "highlight_menu";
+
+        /**
+         * The name of user restriction for the setting.
+         */
+        String USER_RESTRICTION = "user_restriction";
     }
 
     private static final String CREATE_SLICES_TABLE =
@@ -138,6 +143,8 @@
                     + IndexColumns.PUBLIC_SLICE
                     + ", "
                     + IndexColumns.HIGHLIGHT_MENU_RESOURCE
+                    + ", "
+                    + IndexColumns.USER_RESTRICTION
                     + " INTEGER DEFAULT 0 "
                     + ");";
 
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index 0160843..268f3f0 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -88,7 +88,7 @@
 
     @VisibleForTesting
     List<SliceData> getSliceData() {
-        return FeatureFactory.getFactory(mContext)
+        return FeatureFactory.getFeatureFactory()
                 .getSlicesFeatureProvider()
                 .getSliceDataConverter(mContext)
                 .getSliceData();
@@ -117,6 +117,7 @@
                     dataRow.getUnavailableSliceSubtitle());
             values.put(IndexColumns.PUBLIC_SLICE, dataRow.isPublicSlice());
             values.put(IndexColumns.HIGHLIGHT_MENU_RESOURCE, dataRow.getHighlightMenuRes());
+            values.put(IndexColumns.USER_RESTRICTION, dataRow.getUserRestriction());
 
             database.replaceOrThrow(Tables.TABLE_SLICES_INDEX, null /* nullColumnHack */,
                     values);
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/sound/AudioSwitchPreferenceController.java b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
index 6475257..b785210 100644
--- a/src/com/android/settings/sound/AudioSwitchPreferenceController.java
+++ b/src/com/android/settings/sound/AudioSwitchPreferenceController.java
@@ -18,6 +18,8 @@
 
 import static android.media.AudioManager.STREAM_DEVICES_CHANGED_ACTION;
 
+import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting;
+
 import android.bluetooth.BluetoothDevice;
 import android.content.BroadcastReceiver;
 import android.content.Context;
@@ -28,11 +30,14 @@
 import android.media.AudioDeviceInfo;
 import android.media.AudioManager;
 import android.media.MediaRouter;
+import android.media.session.MediaController;
+import android.media.session.MediaSessionManager;
 import android.os.Handler;
 import android.os.Looper;
 import android.util.FeatureFlagUtils;
 import android.util.Log;
 
+import androidx.annotation.Nullable;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -79,6 +84,8 @@
     private final WiredHeadsetBroadcastReceiver mReceiver;
     private final Handler mHandler;
     private LocalBluetoothManager mLocalBluetoothManager;
+    @Nullable private MediaSessionManager.OnActiveSessionsChangedListener mSessionListener;
+    @Nullable private MediaSessionManager mMediaSessionManager;
 
     public interface AudioSwitchCallback {
         void onPreferenceDataChanged(ListPreference preference);
@@ -107,6 +114,14 @@
             return;
         }
         mProfileManager = mLocalBluetoothManager.getProfileManager();
+
+        if (enableOutputSwitcherForSystemRouting()) {
+            mMediaSessionManager = context.getSystemService(MediaSessionManager.class);
+            mSessionListener = new SessionChangeListener();
+        } else {
+            mMediaSessionManager = null;
+            mSessionListener = null;
+        }
     }
 
     /**
@@ -329,13 +344,27 @@
         // Register for misc other intent broadcasts.
         IntentFilter intentFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
         intentFilter.addAction(STREAM_DEVICES_CHANGED_ACTION);
-        mContext.registerReceiver(mReceiver, intentFilter);
+
+        if (enableOutputSwitcherForSystemRouting()) {
+            mContext.registerReceiver(mReceiver, intentFilter, Context.RECEIVER_NOT_EXPORTED);
+            if (mMediaSessionManager != null) {
+                mMediaSessionManager.addOnActiveSessionsChangedListener(
+                        mSessionListener, null, mHandler);
+            }
+        } else {
+            mContext.registerReceiver(mReceiver, intentFilter);
+        }
     }
 
     private void unregister() {
         mLocalBluetoothManager.getEventManager().unregisterCallback(this);
         mAudioManager.unregisterAudioDeviceCallback(mAudioManagerAudioDeviceCallback);
         mContext.unregisterReceiver(mReceiver);
+        if (enableOutputSwitcherForSystemRouting()) {
+            if (mMediaSessionManager != null) {
+                mMediaSessionManager.removeOnActiveSessionsChangedListener(mSessionListener);
+            }
+        }
     }
 
     /** Notifications of audio device connection and disconnection events. */
@@ -362,4 +391,12 @@
             }
         }
     }
+
+    private class SessionChangeListener
+            implements MediaSessionManager.OnActiveSessionsChangedListener {
+        @Override
+        public void onActiveSessionsChanged(List<MediaController> controllers) {
+            updateState(mPreference);
+        }
+    }
 }
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 758f7e3..c85789d 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.sound;
 
+import static com.android.settingslib.media.flags.Flags.enableOutputSwitcherForSystemRouting;
+
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.Intent;
@@ -24,6 +26,7 @@
 import android.media.session.MediaSessionManager;
 import android.text.TextUtils;
 
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -46,21 +49,22 @@
  */
 public class MediaOutputPreferenceController extends AudioSwitchPreferenceController {
 
-    private MediaController mMediaController;
+    private static final String TAG = "MediaOutputPreferenceController";
+    @Nullable private MediaController mMediaController;
+    private MediaSessionManager mMediaSessionManager;
 
     public MediaOutputPreferenceController(Context context, String key) {
         super(context, key);
-        mMediaController = MediaOutputUtils.getActiveLocalMediaController(context.getSystemService(
-                MediaSessionManager.class));
+        mMediaSessionManager = context.getSystemService(MediaSessionManager.class);
+        mMediaController = MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager);
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
 
-        if (!Utils.isAudioModeOngoingCall(mContext) && mMediaController != null) {
-            mPreference.setVisible(true);
-        }
+        mPreference.setVisible(!Utils.isAudioModeOngoingCall(mContext)
+                && (enableOutputSwitcherForSystemRouting() ? true : mMediaController != null));
     }
 
     @Override
@@ -70,11 +74,16 @@
             return;
         }
 
-        if (mMediaController == null) {
-            // No active local playback
-            return;
+        if (enableOutputSwitcherForSystemRouting()) {
+            mMediaController = MediaOutputUtils.getActiveLocalMediaController(mMediaSessionManager);
+        } else {
+            if (mMediaController == null) {
+                // No active local playback
+                return;
+            }
         }
 
+
         if (Utils.isAudioModeOngoingCall(mContext)) {
             // Ongoing call status, switch entry for media will be disabled.
             mPreference.setVisible(false);
@@ -95,9 +104,14 @@
                 || (connectedLeAudioDevices != null && !connectedLeAudioDevices.isEmpty()))) {
             activeDevice = findActiveDevice();
         }
-        mPreference.setTitle(mContext.getString(R.string.media_output_label_title,
-                com.android.settings.Utils.getApplicationLabel(mContext,
-                        mMediaController.getPackageName())));
+
+        if (mMediaController == null) {
+            mPreference.setTitle(mContext.getString(R.string.media_output_title_without_playing));
+        } else {
+            mPreference.setTitle(mContext.getString(R.string.media_output_label_title,
+                    com.android.settings.Utils.getApplicationLabel(mContext,
+                    mMediaController.getPackageName())));
+        }
         mPreference.setSummary((activeDevice == null) ?
                 mContext.getText(R.string.media_output_default_summary) :
                 activeDevice.getAlias());
@@ -145,13 +159,19 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
-            mContext.sendBroadcast(new Intent()
-                    .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
-                    .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
-                    .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
-                            mMediaController.getPackageName())
-                    .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
-                            mMediaController.getSessionToken()));
+            if (enableOutputSwitcherForSystemRouting() && mMediaController == null) {
+                mContext.sendBroadcast(new Intent()
+                        .setAction(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG)
+                        .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME));
+            } else if (mMediaController != null) {
+                mContext.sendBroadcast(new Intent()
+                        .setAction(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
+                        .setPackage(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME)
+                        .putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME,
+                                mMediaController.getPackageName())
+                        .putExtra(MediaOutputConstants.KEY_MEDIA_SESSION_TOKEN,
+                                mMediaController.getSessionToken()));
+            }
             return true;
         }
         return false;
diff --git a/src/com/android/settings/spa/SettingsSpaEnvironment.kt b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
index db88784..41852e5 100644
--- a/src/com/android/settings/spa/SettingsSpaEnvironment.kt
+++ b/src/com/android/settings/spa/SettingsSpaEnvironment.kt
@@ -18,8 +18,11 @@
 
 import android.content.Context
 import android.util.FeatureFlagUtils
+import com.android.settings.network.apn.ApnEditPageProvider
+import com.android.settings.spa.about.AboutPhonePageProvider
 import com.android.settings.spa.app.AllAppListPageProvider
 import com.android.settings.spa.app.AppsMainPageProvider
+import com.android.settings.spa.app.battery.BatteryOptimizationModeAppListPageProvider
 import com.android.settings.spa.app.appcompat.UserAspectRatioAppsPageProvider
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
 import com.android.settings.spa.app.appinfo.CloneAppInfoSettingsProvider
@@ -28,18 +31,25 @@
 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.MediaRoutingControlAppListProvider
 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.WifiControlAppListProvider
+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
 import com.android.settings.spa.development.UsageStatsPageProvider
 import com.android.settings.spa.development.compat.PlatformCompatAppListPageProvider
 import com.android.settings.spa.home.HomePageProvider
 import com.android.settings.spa.network.NetworkAndInternetPageProvider
+import com.android.settings.spa.network.NetworkCellularGroupProvider
+import com.android.settings.spa.network.SimOnboardingPageProvider
 import com.android.settings.spa.notification.AppListNotificationsPageProvider
 import com.android.settings.spa.notification.NotificationMainPageProvider
 import com.android.settings.spa.system.AppLanguagesPageProvider
@@ -58,13 +68,17 @@
             AllFilesAccessAppListProvider,
             DisplayOverOtherAppsAppListProvider,
             MediaManagementAppsAppListProvider,
+            MediaRoutingControlAppListProvider,
             ModifySystemSettingsAppListProvider,
             UseFullScreenIntentAppListProvider,
             PictureInPictureListProvider,
             InstallUnknownAppsListProvider,
             AlarmsAndRemindersAppListProvider,
+            VoiceActivationAppsListProvider,
             WifiControlAppListProvider,
             NfcTagAppsSettingsProvider,
+            LongBackgroundTasksAppListProvider,
+            TurnScreenOnAppsAppListProvider,
         )
     }
 
@@ -73,31 +87,44 @@
             allProviders = getTogglePermissionAppListProviders()
         )
         SettingsPageProviderRepository(
-            allPageProviders = listOf(
-                HomePageProvider,
-                AppsMainPageProvider,
-                AllAppListPageProvider,
-                AppInfoSettingsProvider,
-                SpecialAppAccessPageProvider,
-                NotificationMainPageProvider,
-                AppListNotificationsPageProvider,
-                SystemMainPageProvider,
-                LanguageAndInputPageProvider,
-                AppLanguagesPageProvider,
-                UsageStatsPageProvider,
-                PlatformCompatAppListPageProvider,
-                BackgroundInstalledAppsPageProvider,
-                UserAspectRatioAppsPageProvider,
-                CloneAppInfoSettingsProvider,
-                NetworkAndInternetPageProvider,
-                ) + 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,
+        SimOnboardingPageProvider,
+        BatteryOptimizationModeAppListPageProvider,
+        NetworkCellularGroupProvider,
+    )
+
+    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..5eade81 100644
--- a/src/com/android/settings/spa/SpaActivity.kt
+++ b/src/com/android/settings/spa/SpaActivity.kt
@@ -16,18 +16,16 @@
 
 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.os.Bundle
 import android.util.Log
 import androidx.annotation.VisibleForTesting
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
+import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin
 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
 
@@ -35,6 +33,11 @@
     override fun isPageEnabled(page: SettingsPage) =
         super.isPageEnabled(page) && !isSuwAndPageBlocked(page.sppName)
 
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        lifecycle.addObserver(HideNonSystemOverlayMixin(this))
+    }
+
     companion object {
         private const val TAG = "SpaActivity"
 
@@ -44,7 +47,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 +57,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..a68d220 100644
--- a/src/com/android/settings/spa/SpaAppBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaAppBridgeActivity.kt
@@ -17,9 +17,10 @@
 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 com.android.settings.spa.SpaBridgeActivity.Companion.getDestination
+import android.os.UserHandle
+import com.android.settings.spa.SpaBridgeActivity.Companion.startSpaActivityFromBridge
 
 /**
  * Activity used as a bridge to [SpaActivity] with package scheme for application usage.
@@ -31,9 +32,14 @@
 class SpaAppBridgeActivity : Activity() {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        getDestination()?.let { destination ->
-            startSpaActivityForApp(destination, intent)
-        }
+        startSpaActivityFromBridge { getDestinationForApp(it, intent) }
         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..61d8f51 100644
--- a/src/com/android/settings/spa/SpaBridgeActivity.kt
+++ b/src/com/android/settings/spa/SpaBridgeActivity.kt
@@ -17,10 +17,13 @@
 package com.android.settings.spa
 
 import android.app.Activity
-import android.content.pm.PackageManager
-import android.content.pm.PackageManager.ComponentInfoFlags
+import android.content.Intent
 import android.os.Bundle
-import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
+import com.android.settings.activityembedding.ActivityEmbeddingUtils
+import com.android.settings.activityembedding.EmbeddedDeepLinkUtils.tryStartMultiPaneDeepLink
+import com.android.settings.spa.SpaDestination.Companion.getDestination
+import com.android.settingslib.spa.framework.util.SESSION_EXTERNAL
+import com.android.settingslib.spa.framework.util.appendSpaParams
 
 /**
  * Activity used as a bridge to [SpaActivity].
@@ -32,18 +35,23 @@
 class SpaBridgeActivity : Activity() {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        getDestination()?.let { destination ->
-            startSpaActivity(destination)
-        }
+        startSpaActivityFromBridge()
         finish()
     }
 
     companion object {
-        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"
+        fun Activity.startSpaActivityFromBridge(destinationFactory: (String) -> String? = { it }) {
+            val (destination, highlightMenuKey) = getDestination(destinationFactory) ?: return
+            val intent = Intent(this, SpaActivity::class.java)
+                .appendSpaParams(
+                    destination = destination,
+                    sessionName = SESSION_EXTERNAL,
+                )
+            if (!ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this) ||
+                !tryStartMultiPaneDeepLink(intent, highlightMenuKey)
+            ) {
+                startActivity(intent)
+            }
+        }
     }
 }
diff --git a/src/com/android/settings/spa/SpaDestination.kt b/src/com/android/settings/spa/SpaDestination.kt
new file mode 100644
index 0000000..bdec1d8
--- /dev/null
+++ b/src/com/android/settings/spa/SpaDestination.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.pm.PackageManager
+import androidx.annotation.VisibleForTesting
+import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
+
+data class SpaDestination(
+    val destination: String,
+    val highlightMenuKey: String?,
+) {
+    companion object {
+        fun Activity.getDestination(
+            destinationFactory: (String) -> String? = { it },
+        ): SpaDestination? {
+            val metaData = packageManager.getActivityInfo(
+                componentName,
+                PackageManager.ComponentInfoFlags.of(PackageManager.GET_META_DATA.toLong())
+            ).metaData
+            val destination = metaData.getString(META_DATA_KEY_DESTINATION)
+            if (destination.isNullOrBlank()) return null
+            val finalDestination = destinationFactory(destination)
+            if (finalDestination.isNullOrBlank()) return null
+            return SpaDestination(
+                destination = finalDestination,
+                highlightMenuKey = metaData.getString(META_DATA_KEY_HIGHLIGHT_MENU_KEY),
+            )
+        }
+
+        @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
new file mode 100644
index 0000000..5f9aa97
--- /dev/null
+++ b/src/com/android/settings/spa/about/AboutPhone.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.about
+
+import android.os.Bundle
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.PermDeviceInformation
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.remember
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+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.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
+
+object AboutPhonePageProvider : SettingsPageProvider {
+    override val name = "AboutPhone"
+    private val owner = createSettingsPage()
+
+    @Composable
+    override fun Page(arguments: Bundle?) {
+        RegularScaffold(title = getTitle(arguments)) {
+            BasicInfoCategory.CategoryItems()
+        }
+    }
+
+    override fun getTitle(arguments: Bundle?): String =
+        SpaEnvironmentFactory.instance.appContext.getString(R.string.about_settings)
+
+    fun buildInjectEntry(): SettingsEntryBuilder {
+        return SettingsEntryBuilder.createInject(owner = owner)
+            .setUiLayoutFn {
+                val context = LocalContext.current
+                val deviceNamePresenter = remember { DeviceNamePresenter(context) }
+                Preference(object : PreferenceModel {
+                    override val title = stringResource(R.string.about_settings)
+                    override val summary = { deviceNamePresenter.deviceName }
+                    override val onClick = navigator(name)
+                    override val icon = @Composable {
+                        SettingsIcon(imageVector = Icons.Outlined.PermDeviceInformation)
+                    }
+                })
+            }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/about/BasicInfoCategory.kt b/src/com/android/settings/spa/about/BasicInfoCategory.kt
new file mode 100644
index 0000000..d382f51
--- /dev/null
+++ b/src/com/android/settings/spa/about/BasicInfoCategory.kt
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.about
+
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settingslib.spa.widget.ui.Category
+
+object BasicInfoCategory {
+    @Composable
+    fun CategoryItems() {
+        Category(title = stringResource(R.string.my_device_info_basic_info_category_title)) {
+            DeviceNamePreference.EntryItem()
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/about/DeviceName.kt b/src/com/android/settings/spa/about/DeviceName.kt
new file mode 100644
index 0000000..86a9512
--- /dev/null
+++ b/src/com/android/settings/spa/about/DeviceName.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.about
+
+import android.content.Context
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.remember
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settings.deviceinfo.DeviceNamePreferenceController
+import com.android.settingslib.spa.widget.dialog.AlertDialogButton
+import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+
+object DeviceNamePreference {
+
+    @Composable
+    fun EntryItem() {
+        val context = LocalContext.current
+        val deviceNamePresenter = remember { DeviceNamePresenter(context) }
+        // TODO: Instead of a AlertDialog, it should be a dialog that accepts text input.
+        val dialogPresenter = rememberAlertDialogPresenter(
+            confirmButton = AlertDialogButton(
+                stringResource(R.string.okay), onClick = DeviceNamePreference::confirmChange
+            ),
+            dismissButton = AlertDialogButton(stringResource(R.string.cancel)),
+            title = stringResource(R.string.my_device_info_device_name_preference_title),
+            text = { Text(deviceNamePresenter.deviceName) },
+        )
+        Preference(object : PreferenceModel {
+            override val title =
+                stringResource(R.string.my_device_info_device_name_preference_title)
+            override val summary = { deviceNamePresenter.deviceName }
+            override val onClick = dialogPresenter::open
+        })
+
+    }
+
+    private fun confirmChange() {
+        // TODO: Save the change of the device name.
+    }
+}
+
+class DeviceNamePresenter(val context: Context) {
+    private val deviceNamePreferenceController =
+        DeviceNamePreferenceController(context, "unused_key")
+
+    val deviceName: String get() = deviceNamePreferenceController.summary.toString()
+}
diff --git a/src/com/android/settings/spa/app/AllAppList.kt b/src/com/android/settings/spa/app/AllAppList.kt
index 8bd1884..5e0ac95 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
@@ -36,6 +34,7 @@
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spa.widget.ui.SpinnerOption
+import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
 import com.android.settingslib.spaprivileged.model.app.AppListModel
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.installed
@@ -116,7 +115,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,21 +129,25 @@
     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(R.string.disabled)
-                        }
-                        else -> ""
-                    }
+        return {
+            val summaryList = mutableListOf<String>()
+            val storageSummaryValue = storageSummary.value
+            if (storageSummaryValue.isNotBlank()) {
+                summaryList += storageSummaryValue
             }
+            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())
+                .ifEmpty { context.getPlaceholder() } // Use placeholder to reduce flaky
         }
     }
 
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 05da903..1e6e545 100644
--- a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreference.kt
+++ b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreference.kt
@@ -19,10 +19,10 @@
 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.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.appcompat.UserAspectRatioDetails
@@ -35,18 +35,18 @@
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOn
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun UserAspectRatioAppPreference(app: ApplicationInfo) {
     val context = LocalContext.current
     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
     })
 }
@@ -63,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 533d920..15cd1ba 100644
--- a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
+++ b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
@@ -16,11 +16,13 @@
 
 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
 import android.content.pm.PackageManager
 import android.content.pm.PackageManager.GET_ACTIVITIES
+import android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_APP_DEFAULT
 import android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_UNSET
 import android.os.Build
 import android.os.Bundle
@@ -28,11 +30,10 @@
 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
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.appcompat.UserAspectRatioManager
@@ -42,15 +43,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
@@ -81,12 +81,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
@@ -138,7 +140,9 @@
         recordList: List<UserAspectRatioAppListItemModel>
     ): List<SpinnerOption> {
         val hasSuggested = recordList.any { it.suggested }
-        val hasOverride = recordList.any { it.userOverride != USER_MIN_ASPECT_RATIO_UNSET }
+        val hasOverride = recordList.any {
+            userAspectRatioManager.isAppOverridden(it.app, it.userOverride)
+        }
         val options = mutableListOf(SpinnerItem.All)
         // Add suggested filter first as default
         if (hasSuggested) options.add(0, SpinnerItem.Suggested)
@@ -155,7 +159,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
+                )
+            }
         )
     }
 
@@ -178,22 +188,25 @@
         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 })
+            SpinnerItem.Overridden -> ({
+                userAspectRatioManager.isAppOverridden(it.app, it.userOverride)
+            })
             else -> ({ it.canDisplay })
         }
     )
 
-    @OptIn(ExperimentalLifecycleComposeApi::class)
     @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))
+                    record.app.packageName, record.app.userId))
             }.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 29c7483..31e068c 100644
--- a/src/com/android/settings/spa/app/appinfo/AppAllServicesPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppAllServicesPreference.kt
@@ -24,11 +24,11 @@
 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
 import androidx.compose.ui.res.stringResource
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settingslib.spa.widget.preference.Preference
@@ -46,7 +46,6 @@
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.plus
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun AppAllServicesPreference(app: ApplicationInfo) {
     val context = LocalContext.current
@@ -54,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/AppArchiveButton.kt b/src/com/android/settings/spa/app/appinfo/AppArchiveButton.kt
new file mode 100644
index 0000000..38a8499
--- /dev/null
+++ b/src/com/android/settings/spa/app/appinfo/AppArchiveButton.kt
@@ -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.spa.app.appinfo
+
+import android.app.PendingIntent
+import android.content.Intent
+import android.content.IntentFilter
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageInstaller
+import android.os.UserHandle
+import android.util.Log
+import android.widget.Toast
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.CloudUpload
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.remember
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import com.android.settings.R
+import com.android.settingslib.spa.widget.button.ActionButton
+import com.android.settingslib.spaprivileged.framework.compose.DisposableBroadcastReceiverAsUser
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+
+class AppArchiveButton(
+    packageInfoPresenter: PackageInfoPresenter,
+    private val isHibernationSwitchEnabledStateFlow: MutableStateFlow<Boolean>,
+) {
+    private companion object {
+        private const val LOG_TAG = "AppArchiveButton"
+        private const val INTENT_ACTION = "com.android.settings.archive.action"
+    }
+
+    private val context = packageInfoPresenter.context
+    private val appButtonRepository = AppButtonRepository(context)
+    private val userPackageManager = packageInfoPresenter.userPackageManager
+    private val packageInstaller = userPackageManager.packageInstaller
+    private val packageName = packageInfoPresenter.packageName
+    private val userHandle = UserHandle.of(packageInfoPresenter.userId)
+    private var broadcastReceiverIsCreated = false
+    private lateinit var appLabel: CharSequence
+
+    @Composable
+    fun getActionButton(app: ApplicationInfo): ActionButton {
+        if (!broadcastReceiverIsCreated) {
+            val intentFilter = IntentFilter(INTENT_ACTION)
+            DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent ->
+                if (app.packageName == intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME)) {
+                    onReceive(intent)
+                }
+            }
+            broadcastReceiverIsCreated = true
+        }
+        appLabel = userPackageManager.getApplicationLabel(app)
+        return ActionButton(
+            text = context.getString(R.string.archive),
+            imageVector = Icons.Outlined.CloudUpload,
+            enabled = remember(app) {
+                isHibernationSwitchEnabledStateFlow.asStateFlow().map {
+                    it && isActionButtonEnabledForApp(app)
+                }.flowOn(Dispatchers.Default)
+            }.collectAsStateWithLifecycle(false).value
+        ) { onArchiveClicked(app) }
+    }
+
+    private fun isActionButtonEnabledForApp(app: ApplicationInfo): Boolean {
+        return app.isActionButtonEnabled() && appButtonRepository.isAllowUninstallOrArchive(
+            context,
+            app
+        )
+    }
+
+    private fun ApplicationInfo.isActionButtonEnabled(): Boolean {
+        return !isArchived
+            && userPackageManager.isAppArchivable(packageName)
+            // We apply the same device policy for both the uninstallation and archive
+            // button.
+            && !appButtonRepository.isUninstallBlockedByAdmin(this)
+    }
+
+    private fun onArchiveClicked(app: ApplicationInfo) {
+        val intent = Intent(INTENT_ACTION)
+        intent.setPackage(context.packageName)
+        val pendingIntent = PendingIntent.getBroadcastAsUser(
+            context, 0, intent,
+            // FLAG_MUTABLE is required by PackageInstaller#requestArchive
+            PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_MUTABLE,
+            userHandle
+        )
+        try {
+            packageInstaller.requestArchive(app.packageName, pendingIntent.intentSender)
+        } catch (e: Exception) {
+            Log.e(LOG_TAG, "Request archive failed", e)
+            Toast.makeText(
+                context,
+                context.getString(R.string.archiving_failed),
+                Toast.LENGTH_SHORT
+            ).show()
+        }
+    }
+
+    private fun onReceive(intent: Intent) {
+        when (val status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS, Int.MIN_VALUE)) {
+            PackageInstaller.STATUS_SUCCESS -> {
+                Toast.makeText(
+                    context,
+                    context.getString(R.string.archiving_succeeded, appLabel),
+                    Toast.LENGTH_SHORT
+                ).show()
+            }
+
+            else -> {
+                Log.e(LOG_TAG, "Request archiving failed for $packageName with code $status")
+                Toast.makeText(
+                    context,
+                    context.getString(R.string.archiving_failed),
+                    Toast.LENGTH_SHORT
+                ).show()
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt b/src/com/android/settings/spa/app/appinfo/AppBatteryPreference.kt
index 0b4e7d5..af4fc17 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
@@ -50,7 +49,7 @@
 @Composable
 fun AppBatteryPreference(app: ApplicationInfo) {
     val context = LocalContext.current
-    val presenter = remember { AppBatteryPresenter(context, app) }
+    val presenter = remember(app) { AppBatteryPresenter(context, app) }
     if (!presenter.isAvailable()) return
 
     Preference(object : PreferenceModel {
@@ -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 =
@@ -126,8 +126,10 @@
             AppInfoSettingsProvider.METRICS_CATEGORY,
             this,
             Utils.formatPercentage(percentage, true),
-            null,
-            false,
+            /*slotInformation=*/ null,
+            /*showTimeInformation=*/ false,
+            /*anomalyHintPrefKey=*/ null,
+            /*anomalyHintText=*/ null
         )
     }
 
@@ -153,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/AppButtonRepository.kt b/src/com/android/settings/spa/app/appinfo/AppButtonRepository.kt
index 2383ddb..b8019fb 100644
--- a/src/com/android/settings/spa/app/appinfo/AppButtonRepository.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppButtonRepository.kt
@@ -19,14 +19,19 @@
 import android.app.ActivityManager
 import android.content.ComponentName
 import android.content.Context
+import android.content.om.OverlayManager
 import android.content.pm.ApplicationInfo
+import android.content.pm.Flags
 import android.content.pm.PackageManager
 import android.content.pm.ResolveInfo
+import android.util.Log
 import com.android.settingslib.RestrictedLockUtils
 import com.android.settingslib.RestrictedLockUtilsInternal
 import com.android.settingslib.Utils
 import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
+import com.android.settingslib.spaprivileged.model.app.hasFlag
 import com.android.settingslib.spaprivileged.model.app.isDisallowControl
+import com.android.settingslib.spaprivileged.model.app.userHandle
 import com.android.settingslib.spaprivileged.model.app.userId
 
 class AppButtonRepository(private val context: Context) {
@@ -77,6 +82,65 @@
         false
     }
 
+    /** Gets whether a package can be uninstalled or archived. */
+    fun isAllowUninstallOrArchive(
+        context: Context, app: ApplicationInfo
+    ): Boolean {
+        val overlayManager = checkNotNull(context.getSystemService(OverlayManager::class.java))
+        when {
+            !app.hasFlag(ApplicationInfo.FLAG_INSTALLED) && !app.isArchived -> return false
+
+            com.android.settings.Utils.isProfileOrDeviceOwner(
+                context.devicePolicyManager, app.packageName, app.userId
+            ) -> return false
+
+            isDisallowControl(app) -> return false
+
+            uninstallDisallowedDueToHomeApp(app) -> return false
+
+            // Resource overlays can be uninstalled iff they are public (installed on /data) and
+            // disabled. ("Enabled" means they are in use by resource management.)
+            app.isEnabledResourceOverlay(overlayManager) -> return false
+
+            else -> return true
+        }
+    }
+
+    /**
+     * Checks whether the given package cannot be uninstalled due to home app restrictions.
+     *
+     * Home launcher apps need special handling, we can't allow uninstallation of the only home
+     * app, and we don't want to allow uninstallation of an explicitly preferred one -- the user
+     * can go to Home settings and pick a different one, after which we'll permit uninstallation
+     * of the now-not-default one.
+     */
+    fun uninstallDisallowedDueToHomeApp(applicationInfo: ApplicationInfo): Boolean {
+        val packageName = applicationInfo.packageName
+        val homePackageInfo = getHomePackageInfo()
+        return when {
+            packageName !in homePackageInfo.homePackages -> false
+
+            // Disallow uninstall when this is the only home app.
+            homePackageInfo.homePackages.size == 1 -> true
+
+            packageName == homePackageInfo.currentDefaultHome?.packageName -> {
+                if (Flags.improveHomeAppBehavior()) {
+                    // Disallow the uninstallation of the current home app if it is a system app.
+                    return applicationInfo.isSystemApp()
+                } else {
+                    // Disallow if this is the explicit default home app.
+                    return true
+                }
+            }
+
+            else -> false
+        }
+    }
+
+    private fun ApplicationInfo.isEnabledResourceOverlay(overlayManager: OverlayManager): Boolean =
+        isResourceOverlay &&
+            overlayManager.getOverlayInfo(packageName, userHandle)?.isEnabled == true
+
     data class HomePackages(
         val homePackages: Set<String>,
         val currentDefaultHome: ComponentName?,
diff --git a/src/com/android/settings/spa/app/appinfo/AppButtons.kt b/src/com/android/settings/spa/app/appinfo/AppButtons.kt
index e43c673..dcce1d9 100644
--- a/src/com/android/settings/spa/app/appinfo/AppButtons.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppButtons.kt
@@ -17,42 +17,71 @@
 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.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settingslib.applications.AppUtils
 import com.android.settingslib.spa.widget.button.ActionButton
 import com.android.settingslib.spa.widget.button.ActionButtons
+import kotlinx.coroutines.flow.MutableStateFlow
 
 @Composable
-fun AppButtons(packageInfoPresenter: PackageInfoPresenter) {
+/**
+ * @param featureFlags can be overridden in tests
+ */
+fun AppButtons(
+    packageInfoPresenter: PackageInfoPresenter,
+    isHibernationSwitchEnabledStateFlow: MutableStateFlow<Boolean>,
+    featureFlags: FeatureFlags = FeatureFlagsImpl()
+) {
     if (remember(packageInfoPresenter) { packageInfoPresenter.isMainlineModule() }) return
-    val presenter = remember { AppButtonsPresenter(packageInfoPresenter) }
+    val presenter = remember {
+        AppButtonsPresenter(
+            packageInfoPresenter,
+            isHibernationSwitchEnabledStateFlow,
+            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,
+    isHibernationSwitchEnabledStateFlow: MutableStateFlow<Boolean>,
+    private val featureFlags: FeatureFlags
+) {
     private val appLaunchButton = AppLaunchButton(packageInfoPresenter)
     private val appInstallButton = AppInstallButton(packageInfoPresenter)
     private val appDisableButton = AppDisableButton(packageInfoPresenter)
     private val appUninstallButton = AppUninstallButton(packageInfoPresenter)
     private val appClearButton = AppClearButton(packageInfoPresenter)
     private val appForceStopButton = AppForceStopButton(packageInfoPresenter)
+    private val appArchiveButton =
+        AppArchiveButton(packageInfoPresenter, isHibernationSwitchEnabledStateFlow)
+    private val appRestoreButton = AppRestoreButton(packageInfoPresenter)
 
-    @OptIn(ExperimentalLifecycleComposeApi::class)
     @Composable
     fun getActionButtons() =
         packageInfoPresenter.flow.collectAsStateWithLifecycle(initialValue = null).value?.let {
-            getActionButtons(it.applicationInfo)
+            getActionButtons(checkNotNull(it.applicationInfo))
         } ?: emptyList()
 
     @Composable
     private fun getActionButtons(app: ApplicationInfo): List<ActionButton> = listOfNotNull(
-        appLaunchButton.getActionButton(app),
+        if (isArchivingEnabled(featureFlags)) {
+            if (app.isArchived) {
+                appRestoreButton.getActionButton(app)
+            } else {
+                appArchiveButton.getActionButton(app)
+            }
+        } else {
+            appLaunchButton.getActionButton(app)
+        },
         appInstallButton.getActionButton(app),
         appDisableButton.getActionButton(app),
         appUninstallButton.getActionButton(app),
diff --git a/src/com/android/settings/spa/app/appinfo/AppCreateButton.kt b/src/com/android/settings/spa/app/appinfo/AppCreateButton.kt
index 088680d..c9ad422 100644
--- a/src/com/android/settings/spa/app/appinfo/AppCreateButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppCreateButton.kt
@@ -18,6 +18,7 @@
 
 import android.app.settings.SettingsEnums
 import android.content.pm.ApplicationInfo
+import android.widget.Toast
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.outlined.Add
 import androidx.compose.runtime.Composable
@@ -25,14 +26,13 @@
 import androidx.compose.runtime.rememberCoroutineScope
 import com.android.settings.R
 import com.android.settings.applications.manageapplications.CloneBackend
-import com.android.settings.overlay.FeatureFactory
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider.getRoute
 import com.android.settingslib.spa.framework.compose.LocalNavController
 import com.android.settingslib.spa.widget.button.ActionButton
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
-import android.widget.Toast;
 
 class AppCreateButton(packageInfoPresenter: PackageInfoPresenter) {
     private val context = packageInfoPresenter.context
@@ -54,7 +54,7 @@
         )
         {
             val cloneBackend = CloneBackend.getInstance(context)
-            FeatureFactory.getFactory(context).metricsFeatureProvider.action(context,
+            featureFactory.metricsFeatureProvider.action(context,
                     SettingsEnums.ACTION_CREATE_CLONE_APP)
             val appLabel = app.loadLabel(context.packageManager)
             Toast.makeText(context, context.getString(R.string.cloned_app_creation_toast_summary,
diff --git a/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt b/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt
index 8b90280..7e6e726 100644
--- a/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppDataUsagePreference.kt
@@ -18,45 +18,63 @@
 
 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.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 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
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @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(app) {
+        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
     })
 }
@@ -64,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()) }
 
@@ -73,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,
@@ -126,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/AppDisableButton.kt b/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt
index a41a697..555e9f1 100644
--- a/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppDisableButton.kt
@@ -25,7 +25,7 @@
 import androidx.compose.ui.res.stringResource
 import com.android.settings.R
 import com.android.settings.Utils
-import com.android.settings.overlay.FeatureFactory
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import com.android.settingslib.spa.widget.button.ActionButton
 import com.android.settingslib.spa.widget.dialog.AlertDialogButton
 import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
@@ -43,8 +43,7 @@
     private val packageManager = context.packageManager
     private val userManager = context.userManager
     private val devicePolicyManager = context.devicePolicyManager
-    private val applicationFeatureProvider =
-        FeatureFactory.getFactory(context).getApplicationFeatureProvider(context)
+    private val applicationFeatureProvider = featureFactory.applicationFeatureProvider
 
     @Composable
     fun getActionButton(app: ApplicationInfo): ActionButton? {
diff --git a/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt b/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
index 086f59e..c3183a7 100644
--- a/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppForceStopButton.kt
@@ -19,11 +19,14 @@
 import android.app.settings.SettingsEnums
 import android.content.pm.ApplicationInfo
 import android.os.UserManager
+import androidx.annotation.VisibleForTesting
 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.runtime.remember
 import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settingslib.RestrictedLockUtils
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin
@@ -35,6 +38,9 @@
 import com.android.settingslib.spaprivileged.model.app.hasFlag
 import com.android.settingslib.spaprivileged.model.app.isActiveAdmin
 import com.android.settingslib.spaprivileged.model.app.userId
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOn
 
 class AppForceStopButton(
     private val packageInfoPresenter: PackageInfoPresenter,
@@ -47,9 +53,13 @@
     fun getActionButton(app: ApplicationInfo): ActionButton {
         val dialogPresenter = confirmDialogPresenter()
         return ActionButton(
-            text = context.getString(R.string.force_stop),
-            imageVector = Icons.Outlined.WarningAmber,
-            enabled = isForceStopButtonEnable(app),
+            text = stringResource(R.string.force_stop),
+            imageVector = Icons.Outlined.Report,
+            enabled = remember(app) {
+                flow {
+                    emit(isForceStopButtonEnable(app))
+                }.flowOn(Dispatchers.Default)
+            }.collectAsStateWithLifecycle(false).value,
         ) { onForceStopButtonClicked(app, dialogPresenter) }
     }
 
@@ -78,9 +88,10 @@
         dialogPresenter.open()
     }
 
-    private fun getAdminRestriction(app: ApplicationInfo): EnforcedAdmin? = when {
+    @VisibleForTesting
+    fun getAdminRestriction(app: ApplicationInfo): EnforcedAdmin? = when {
         packageManager.isPackageStateProtected(app.packageName, app.userId) -> {
-            RestrictedLockUtilsInternal.getDeviceOwner(context)
+            RestrictedLockUtilsInternal.getDeviceOwner(context) ?: EnforcedAdmin()
         }
 
         else -> RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
diff --git a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
index e6df933..dba6184 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
@@ -27,13 +29,13 @@
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
 import androidx.fragment.app.Fragment
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import androidx.navigation.NavType
 import androidx.navigation.navArgument
 import com.android.settings.R
 import com.android.settings.applications.AppInfoBase
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
+import com.android.settings.flags.Flags
 import com.android.settings.spa.SpaActivity.Companion.startSpaActivity
 import com.android.settings.spa.app.appcompat.UserAspectRatioAppPreference
 import com.android.settings.spa.app.specialaccess.AlarmsAndRemindersAppListProvider
@@ -41,13 +43,14 @@
 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
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
 import com.android.settingslib.spa.widget.ui.Category
 import com.android.settingslib.spaprivileged.model.app.toRoute
 import com.android.settingslib.spaprivileged.template.app.AppInfoProvider
+import kotlinx.coroutines.flow.MutableStateFlow
 
 private const val PACKAGE_NAME = "packageName"
 private const val USER_ID = "userId"
@@ -72,7 +75,7 @@
             PackageInfoPresenter(context, packageName, userId, coroutineScope)
         }
         AppInfoSettings(packageInfoPresenter)
-        packageInfoPresenter.PackageRemoveDetector()
+        packageInfoPresenter.PackageFullyRemovedEffect()
     }
 
     @Composable
@@ -115,23 +118,27 @@
     }
 }
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 private fun AppInfoSettings(packageInfoPresenter: PackageInfoPresenter) {
-    LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() })
-    val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return
-    val app = packageInfo.applicationInfo
+    val packageInfoState = packageInfoPresenter.flow.collectAsStateWithLifecycle()
+    val featureFlags: FeatureFlags = FeatureFlagsImpl()
     RegularScaffold(
         title = stringResource(R.string.application_info_label),
         actions = {
-            AppInfoSettingsMoreOptions(packageInfoPresenter, app)
+            packageInfoState.value?.applicationInfo?.let { app ->
+                if (isArchivingEnabled(featureFlags)) TopBarAppLaunchButton(packageInfoPresenter, app)
+                AppInfoSettingsMoreOptions(packageInfoPresenter, app)
+            }
         }
     ) {
-        val appInfoProvider = remember { AppInfoProvider(packageInfo) }
+        val packageInfo = packageInfoState.value ?: return@RegularScaffold
+        val app = packageInfo.applicationInfo ?: return@RegularScaffold
+        val appInfoProvider = remember(packageInfo) { AppInfoProvider(packageInfo) }
+        val isHibernationSwitchEnabledStateFlow = MutableStateFlow(false)
 
         appInfoProvider.AppInfo()
 
-        AppButtons(packageInfoPresenter)
+        AppButtons(packageInfoPresenter, isHibernationSwitchEnabledStateFlow)
 
         AppSettingsPreference(app)
         AppAllServicesPreference(app)
@@ -147,7 +154,7 @@
         DefaultAppShortcuts(app)
 
         Category(title = stringResource(R.string.unused_apps_category)) {
-            HibernationSwitchPreference(app)
+            HibernationSwitchPreference(app, isHibernationSwitchEnabledStateFlow)
         }
 
         Category(title = stringResource(R.string.advanced_apps)) {
@@ -158,6 +165,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)) {
@@ -166,3 +176,6 @@
         appInfoProvider.FooterAppVersion()
     }
 }
+
+fun isArchivingEnabled(featureFlags: FeatureFlags) =
+        featureFlags.archiving() || "true" == System.getProperty("pm.archiving.enabled")
diff --git a/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt b/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt
index b89d768..62e714a 100644
--- a/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreference.kt
@@ -19,22 +19,20 @@
 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.ExperimentalLifecycleComposeApi
-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
-import com.android.settingslib.spaprivileged.framework.common.userManager
 import com.android.settingslib.spaprivileged.model.app.userHandle
-import com.android.settingslib.spaprivileged.model.app.userId
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.Flow
@@ -45,7 +43,6 @@
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun AppInstallerInfoPreference(app: ApplicationInfo) {
     val context = LocalContext.current
@@ -53,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
     })
 }
@@ -71,7 +69,6 @@
 ) {
     private val userContext = context.asUser(app.userHandle)
     private val packageManager = userContext.packageManager
-    private val userManager = context.userManager
 
     private val installerPackageFlow = flow {
         emit(withContext(Dispatchers.IO) {
@@ -88,9 +85,8 @@
 
     val isAvailableFlow = installerLabelFlow.map { installerLabel ->
         withContext(Dispatchers.IO) {
-            !userManager.isManagedProfile(app.userId) &&
-                !AppUtils.isMainlineModule(packageManager, app.packageName) &&
-                installerLabel != null
+            !AppUtils.isMainlineModule(packageManager, app.packageName) &&
+                    installerLabel != null
         }
     }
 
diff --git a/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt b/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt
index e95c5a1..3b2aace 100644
--- a/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppLocalePreference.kt
@@ -23,16 +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.ExperimentalLifecycleComposeApi
-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
@@ -41,18 +41,18 @@
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.withContext
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun AppLocalePreference(app: ApplicationInfo) {
     val context = LocalContext.current
     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 490a98c..28527c1 100644
--- a/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppNotificationPreference.kt
@@ -19,10 +19,10 @@
 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.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
@@ -30,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
@@ -38,24 +37,23 @@
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOn
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun AppNotificationPreference(
     app: ApplicationInfo,
     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) }
     })
 }
@@ -67,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 2c98e08..aae9569 100644
--- a/src/com/android/settings/spa/app/appinfo/AppOpenByDefaultPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppOpenByDefaultPreference.kt
@@ -19,17 +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.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.appinfo.AppInfoDashboardFragment
 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
@@ -41,19 +40,19 @@
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOn
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun AppOpenByDefaultPreference(app: ApplicationInfo) {
     val context = LocalContext.current
     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..1274eea 100644
--- a/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppPermissionPreference.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,16 +22,15 @@
 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
-import androidx.compose.ui.res.stringResource
-import androidx.lifecycle.LiveData
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spaprivileged.framework.compose.placeholder
 import com.android.settingslib.spaprivileged.model.app.userHandle
+import kotlinx.coroutines.flow.Flow
 
 private const val TAG = "AppPermissionPreference"
 private const val EXTRA_HIDE_INFO_BUTTON = "hideInfoButton"
@@ -39,21 +38,18 @@
 @Composable
 fun AppPermissionPreference(
     app: ApplicationInfo,
-    summaryLiveData: LiveData<AppPermissionSummaryState> = rememberAppPermissionSummary(app),
+    summaryFlow: Flow<AppPermissionSummaryState> = rememberAppPermissionSummary(app),
 ) {
     val context = LocalContext.current
-    val summaryState = summaryLiveData.observeAsState(
-        initial = AppPermissionSummaryState(
-            summary = stringResource(R.string.summary_placeholder),
-            enabled = false,
-        )
+    val summaryState = summaryFlow.collectAsStateWithLifecycle(
+        initialValue = AppPermissionSummaryState(summary = placeholder(), enabled = false),
     )
     Preference(
         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/AppPermissionSummary.kt b/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt
index de6bd10..d0bdd6b 100644
--- a/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppPermissionSummary.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,18 +18,22 @@
 
 import android.content.Context
 import android.content.pm.ApplicationInfo
-import android.content.pm.PackageManager.OnPermissionsChangedListener
 import android.icu.text.ListFormatter
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
 import androidx.compose.ui.platform.LocalContext
-import androidx.lifecycle.LiveData
 import com.android.settings.R
 import com.android.settingslib.applications.PermissionsSummaryHelper
-import com.android.settingslib.applications.PermissionsSummaryHelper.PermissionsResultCallback
 import com.android.settingslib.spa.framework.util.formatString
 import com.android.settingslib.spaprivileged.framework.common.asUser
+import com.android.settingslib.spaprivileged.model.app.permissionsChangedFlow
 import com.android.settingslib.spaprivileged.model.app.userHandle
+import kotlin.coroutines.resume
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flowOn
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.suspendCancellableCoroutine
 
 data class AppPermissionSummaryState(
     val summary: String,
@@ -37,54 +41,40 @@
 )
 
 @Composable
-fun rememberAppPermissionSummary(app: ApplicationInfo): AppPermissionSummaryLiveData {
+fun rememberAppPermissionSummary(app: ApplicationInfo): Flow<AppPermissionSummaryState> {
     val context = LocalContext.current
-    return remember { AppPermissionSummaryLiveData(context, app) }
+    return remember(app) { AppPermissionSummaryRepository(context, app).flow }
 }
 
-class AppPermissionSummaryLiveData(
+class AppPermissionSummaryRepository(
     private val context: Context,
     private val app: ApplicationInfo,
-) : LiveData<AppPermissionSummaryState>() {
+) {
     private val userContext = context.asUser(app.userHandle)
-    private val userPackageManager = userContext.packageManager
 
-    private val onPermissionsChangedListener = OnPermissionsChangedListener { uid ->
-        if (uid == app.uid) update()
-    }
+    val flow = context.permissionsChangedFlow(app)
+        .map { getPermissionSummary() }
+        .flowOn(Dispatchers.Default)
 
-    override fun onActive() {
-        userPackageManager.addOnPermissionsChangeListener(onPermissionsChangedListener)
-        update()
-    }
-
-    override fun onInactive() {
-        userPackageManager.removeOnPermissionsChangeListener(onPermissionsChangedListener)
-    }
-
-    private fun update() {
+    private suspend fun getPermissionSummary() = suspendCancellableCoroutine { continuation ->
         PermissionsSummaryHelper.getPermissionSummary(
-            userContext, app.packageName, permissionsCallback
-        )
-    }
-
-    private val permissionsCallback = object : PermissionsResultCallback {
-        override fun onPermissionSummaryResult(
-            requestedPermissionCount: Int,
+            userContext,
+            app.packageName,
+        ) { requestedPermissionCount: Int,
             additionalGrantedPermissionCount: Int,
-            grantedGroupLabels: List<CharSequence>,
-        ) {
-            if (requestedPermissionCount == 0) {
-                postValue(noPermissionRequestedState())
-                return
-            }
-            val labels = getDisplayLabels(additionalGrantedPermissionCount, grantedGroupLabels)
-            val summary = if (labels.isNotEmpty()) {
-                ListFormatter.getInstance().format(labels)
+            grantedGroupLabels: List<CharSequence> ->
+            val summaryState = if (requestedPermissionCount == 0) {
+                noPermissionRequestedState()
             } else {
-                context.getString(R.string.runtime_permissions_summary_no_permissions_granted)
+                val labels = getDisplayLabels(additionalGrantedPermissionCount, grantedGroupLabels)
+                val summary = if (labels.isNotEmpty()) {
+                    ListFormatter.getInstance().format(labels)
+                } else {
+                    context.getString(R.string.runtime_permissions_summary_no_permissions_granted)
+                }
+                AppPermissionSummaryState(summary = summary, enabled = true)
             }
-            postValue(AppPermissionSummaryState(summary = summary, enabled = true))
+            continuation.resume(summaryState)
         }
     }
 
@@ -96,15 +86,14 @@
     private fun getDisplayLabels(
         additionalGrantedPermissionCount: Int,
         grantedGroupLabels: List<CharSequence>,
-    ): List<CharSequence> = when (additionalGrantedPermissionCount) {
-        0 -> grantedGroupLabels
-        else -> {
-            grantedGroupLabels +
-                // N additional permissions.
-                context.formatString(
-                    R.string.runtime_permissions_additional_count,
-                    "count" to additionalGrantedPermissionCount,
-                )
-        }
+    ): List<CharSequence> = if (additionalGrantedPermissionCount == 0) {
+        grantedGroupLabels
+    } else {
+        grantedGroupLabels +
+            // N additional permissions.
+            context.formatString(
+                R.string.runtime_permissions_additional_count,
+                "count" to additionalGrantedPermissionCount,
+            )
     }
 }
diff --git a/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt b/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt
new file mode 100644
index 0000000..bf46e95
--- /dev/null
+++ b/src/com/android/settings/spa/app/appinfo/AppRestoreButton.kt
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.app.PendingIntent
+import android.content.Intent
+import android.content.IntentFilter
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageInstaller
+import android.os.UserHandle
+import android.util.Log
+import android.widget.Toast
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.CloudDownload
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import com.android.settings.R
+import com.android.settingslib.spa.widget.button.ActionButton
+import com.android.settingslib.spaprivileged.framework.compose.DisposableBroadcastReceiverAsUser
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.isActive
+import kotlinx.coroutines.launch
+
+class AppRestoreButton(packageInfoPresenter: PackageInfoPresenter) {
+    private companion object {
+        private const val LOG_TAG = "AppRestoreButton"
+        private const val INTENT_ACTION = "com.android.settings.unarchive.action"
+    }
+
+    private val context = packageInfoPresenter.context
+    private val userPackageManager = packageInfoPresenter.userPackageManager
+    private val packageInstaller = userPackageManager.packageInstaller
+    private val packageName = packageInfoPresenter.packageName
+    private val userHandle = UserHandle.of(packageInfoPresenter.userId)
+    private var broadcastReceiverIsCreated = false
+    private lateinit var coroutineScope: CoroutineScope
+    private lateinit var updateButtonTextJob: Job
+    private val buttonTexts = intArrayOf(
+        R.string.restore,
+        R.string.restoring_step_one,
+        R.string.restoring_step_two,
+        R.string.restoring_step_three,
+        R.string.restoring_step_four,
+    )
+    private var buttonTextIndexStateFlow = MutableStateFlow(0)
+
+    @Composable
+    fun getActionButton(app: ApplicationInfo): ActionButton {
+        if (!broadcastReceiverIsCreated) {
+            val intentFilter = IntentFilter(INTENT_ACTION)
+            DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent ->
+                if (app.packageName == intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME)) {
+                    onReceive(intent, app)
+                }
+            }
+            broadcastReceiverIsCreated = true
+        }
+        coroutineScope = rememberCoroutineScope()
+        if (app.isArchived && ::updateButtonTextJob.isInitialized && !updateButtonTextJob.isActive) {
+            buttonTextIndexStateFlow.value = 0
+        }
+        return ActionButton(
+            text = context.getString(
+                buttonTexts[
+                    buttonTextIndexStateFlow.asStateFlow().collectAsStateWithLifecycle(0).value]
+            ),
+            imageVector = Icons.Outlined.CloudDownload,
+            enabled = app.isArchived && (!::updateButtonTextJob.isInitialized || !updateButtonTextJob.isActive)
+        ) { onRestoreClicked(app) }
+    }
+
+    private fun onRestoreClicked(app: ApplicationInfo) {
+        val intent = Intent(INTENT_ACTION)
+        intent.setPackage(context.packageName)
+        val pendingIntent = PendingIntent.getBroadcastAsUser(
+            context, 0, intent,
+            // FLAG_MUTABLE is required by PackageInstaller#requestUnarchive
+            PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_MUTABLE,
+            userHandle
+        )
+        try {
+            packageInstaller.requestUnarchive(app.packageName, pendingIntent.intentSender)
+        } catch (e: Exception) {
+            Log.e(LOG_TAG, "Request unarchive failed", e)
+            Toast.makeText(
+                context,
+                context.getString(R.string.restoring_failed),
+                Toast.LENGTH_SHORT
+            ).show()
+        }
+    }
+
+    private fun onReceive(intent: Intent, app: ApplicationInfo) {
+        when (val unarchiveStatus =
+            intent.getIntExtra(PackageInstaller.EXTRA_UNARCHIVE_STATUS, Int.MIN_VALUE)) {
+            PackageInstaller.UNARCHIVAL_OK -> {
+                // updateButtonTextJob will be canceled automatically once
+                // AppButtonsPresenter#getActionButtons is triggered
+                updateButtonTextJob = coroutineScope.launch {
+                    while (isActive) {
+                        var index = buttonTextIndexStateFlow.value
+                        index = (index + 1) % buttonTexts.size
+                        // The initial state shouldn't be used here
+                        if (index == 0) index++
+                        buttonTextIndexStateFlow.emit(index)
+                        delay(1000)
+                    }
+                }
+                val appLabel = userPackageManager.getApplicationLabel(app)
+                Toast.makeText(
+                    context,
+                    context.getString(R.string.restoring_in_progress, appLabel),
+                    Toast.LENGTH_SHORT
+                ).show()
+            }
+
+            else -> {
+                Log.e(
+                    LOG_TAG,
+                    "Request unarchiving failed for $packageName with code $unarchiveStatus"
+                )
+                val errorDialogIntent =
+                    intent.getParcelableExtra(Intent.EXTRA_INTENT, Intent::class.java)
+                if (errorDialogIntent != null) {
+                    context.startActivityAsUser(errorDialogIntent, userHandle)
+                } else {
+                    Toast.makeText(
+                        context,
+                        context.getString(R.string.restoring_failed),
+                        Toast.LENGTH_SHORT
+                    ).show()
+                }
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/spa/app/appinfo/AppSettingsPreference.kt b/src/com/android/settings/spa/app/appinfo/AppSettingsPreference.kt
index 09957ca..c2bee59 100644
--- a/src/com/android/settings/spa/app/appinfo/AppSettingsPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppSettingsPreference.kt
@@ -27,9 +27,8 @@
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
 import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.model.app.resolveActionForApp
@@ -44,7 +43,6 @@
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.plus
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun AppSettingsPreference(app: ApplicationInfo) {
     val context = LocalContext.current
@@ -78,7 +76,7 @@
     }
 
     private fun startActivity(activityInfo: ActivityInfo) {
-        FeatureFactory.getFactory(context).metricsFeatureProvider.action(
+        featureFactory.metricsFeatureProvider.action(
             SettingsEnums.PAGE_UNKNOWN,
             SettingsEnums.ACTION_OPEN_APP_SETTING,
             AppInfoSettingsProvider.METRICS_CATEGORY,
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 1ef8936..837df67 100644
--- a/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppTimeSpentPreference.kt
@@ -22,14 +22,14 @@
 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
 import androidx.compose.ui.res.stringResource
 import androidx.lifecycle.liveData
 import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
-import com.android.settingslib.spa.framework.compose.stateOf
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import com.android.settingslib.spa.widget.preference.Preference
 import com.android.settingslib.spa.widget.preference.PreferenceModel
 import com.android.settingslib.spaprivileged.model.app.hasFlag
@@ -40,15 +40,16 @@
 @Composable
 fun AppTimeSpentPreference(app: ApplicationInfo) {
     val context = LocalContext.current
-    val presenter = remember { AppTimeSpentPresenter(context, app) }
+    val presenter = remember(app) { 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
     })
 }
@@ -60,8 +61,7 @@
     private val intent = Intent(Settings.ACTION_APP_USAGE_SETTINGS).apply {
         putExtra(Intent.EXTRA_PACKAGE_NAME, app.packageName)
     }
-    private val appFeatureProvider = FeatureFactory.getFactory(context)
-        .getApplicationFeatureProvider(context)
+    private val appFeatureProvider = featureFactory.applicationFeatureProvider
 
     fun isAvailable() = context.packageManager.queryIntentActivitiesAsUser(
         intent, ResolveInfoFlags.of(0), app.userId
diff --git a/src/com/android/settings/spa/app/appinfo/AppUninstallButton.kt b/src/com/android/settings/spa/app/appinfo/AppUninstallButton.kt
index 6b3535b..ce72840 100644
--- a/src/com/android/settings/spa/app/appinfo/AppUninstallButton.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppUninstallButton.kt
@@ -18,83 +18,44 @@
 
 import android.app.settings.SettingsEnums
 import android.content.Intent
-import android.content.om.OverlayManager
 import android.content.pm.ApplicationInfo
 import android.os.UserHandle
 import android.os.UserManager
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.remember
 import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.res.vectorResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
-import com.android.settings.Utils
 import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminAdd
 import com.android.settingslib.spa.widget.button.ActionButton
-import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
-import com.android.settingslib.spaprivileged.model.app.hasFlag
 import com.android.settingslib.spaprivileged.model.app.isActiveAdmin
 import com.android.settingslib.spaprivileged.model.app.userHandle
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOn
 
 class AppUninstallButton(private val packageInfoPresenter: PackageInfoPresenter) {
     private val context = packageInfoPresenter.context
     private val appButtonRepository = AppButtonRepository(context)
-    private val overlayManager = context.getSystemService(OverlayManager::class.java)!!
     private val userManager = context.getSystemService(UserManager::class.java)!!
 
     @Composable
     fun getActionButton(app: ApplicationInfo): ActionButton? {
         if (app.isSystemApp || app.isInstantApp) return null
-        return uninstallButton(app = app, enabled = isUninstallButtonEnabled(app))
+        return uninstallButton(app)
     }
 
-    /** Gets whether a package can be uninstalled. */
-    private fun isUninstallButtonEnabled(app: ApplicationInfo): Boolean = when {
-        !app.hasFlag(ApplicationInfo.FLAG_INSTALLED) -> false
-
-        Utils.isProfileOrDeviceOwner(
-            context.devicePolicyManager, app.packageName, packageInfoPresenter.userId) -> false
-
-        appButtonRepository.isDisallowControl(app) -> false
-
-        uninstallDisallowedDueToHomeApp(app.packageName) -> false
-
-        // Resource overlays can be uninstalled iff they are public (installed on /data) and
-        // disabled. ("Enabled" means they are in use by resource management.)
-        app.isEnabledResourceOverlay() -> false
-
-        else -> true
-    }
-
-    /**
-     * Checks whether the given package cannot be uninstalled due to home app restrictions.
-     *
-     * Home launcher apps need special handling, we can't allow uninstallation of the only home
-     * app, and we don't want to allow uninstallation of an explicitly preferred one -- the user
-     * can go to Home settings and pick a different one, after which we'll permit uninstallation
-     * of the now-not-default one.
-     */
-    private fun uninstallDisallowedDueToHomeApp(packageName: String): Boolean {
-        val homePackageInfo = appButtonRepository.getHomePackageInfo()
-        return when {
-            packageName !in homePackageInfo.homePackages -> false
-
-            // Disallow uninstall when this is the only home app.
-            homePackageInfo.homePackages.size == 1 -> true
-
-            // Disallow if this is the explicit default home app.
-            else -> packageName == homePackageInfo.currentDefaultHome?.packageName
-        }
-    }
-
-    private fun ApplicationInfo.isEnabledResourceOverlay(): Boolean =
-        isResourceOverlay &&
-            overlayManager.getOverlayInfo(packageName, userHandle)?.isEnabled == true
-
     @Composable
-    private fun uninstallButton(app: ApplicationInfo, enabled: Boolean) = ActionButton(
+    private fun uninstallButton(app: ApplicationInfo) = ActionButton(
         text = if (isCloneApp(app)) context.getString(R.string.delete) else
             context.getString(R.string.uninstall_text),
         imageVector = ImageVector.vectorResource(R.drawable.ic_settings_delete),
-        enabled = enabled,
+        enabled = remember(app) {
+            flow {
+                emit(appButtonRepository.isAllowUninstallOrArchive(context, app))
+            }.flowOn(Dispatchers.Default)
+        }.collectAsStateWithLifecycle(false).value,
     ) { onUninstallClicked(app) }
 
     private fun onUninstallClicked(app: ApplicationInfo) {
diff --git a/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt
index 982c974..c8e8d35 100644
--- a/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt
+++ b/src/com/android/settings/spa/app/appinfo/CloneAppInfoSettings.kt
@@ -23,13 +23,11 @@
 import androidx.compose.runtime.rememberCoroutineScope
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import androidx.navigation.NavType
 import androidx.navigation.navArgument
 import com.android.settings.R
 import com.android.settingslib.spa.framework.common.SettingsPageProvider
-import com.android.settingslib.spa.framework.compose.LifecycleEffect
 import com.android.settingslib.spa.widget.scaffold.RegularScaffold
 import com.android.settingslib.spaprivileged.model.app.toRoute
 import com.android.settingslib.spaprivileged.template.app.AppInfoProvider
@@ -55,7 +53,7 @@
             PackageInfoPresenter(context, packageName, userId, coroutineScope)
         }
         CloneAppInfoSettings(packageInfoPresenter)
-        packageInfoPresenter.PackageRemoveDetector()
+        packageInfoPresenter.PackageFullyRemovedEffect()
     }
 
     @Composable
@@ -69,10 +67,8 @@
     fun getRoute(packageName: String, userId: Int): String = "$name/$packageName/$userId"
 }
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 private fun CloneAppInfoSettings(packageInfoPresenter: PackageInfoPresenter) {
-    LifecycleEffect(onStart = { packageInfoPresenter.reloadPackageInfo() })
     val packageInfo = packageInfoPresenter.flow.collectAsStateWithLifecycle().value ?: return
     RegularScaffold(
             title = stringResource(R.string.application_info_label),
diff --git a/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt b/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt
index 0fb4373..ddc7e17 100644
--- a/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt
+++ b/src/com/android/settings/spa/app/appinfo/ClonePageAppButtons.kt
@@ -22,7 +22,6 @@
 import androidx.compose.material.icons.outlined.WarningAmber
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settingslib.spa.widget.button.ActionButton
@@ -39,11 +38,10 @@
     private val appCreateButton = AppCreateButton(packageInfoPresenter)
     private val appForceStopButton = FakeAppForceStopButton(packageInfoPresenter)
 
-    @OptIn(ExperimentalLifecycleComposeApi::class)
     @Composable
     fun getActionButtons() =
         packageInfoPresenter.flow.collectAsStateWithLifecycle(initialValue = null).value?.let {
-            getActionButtons(it.applicationInfo)
+            getActionButtons(checkNotNull(it.applicationInfo))
         } ?: emptyList()
 
     @Composable
diff --git a/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt b/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt
index fa7e089..51f6845 100644
--- a/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/DefaultAppShortcutPreference.kt
@@ -22,11 +22,11 @@
 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
 import androidx.compose.ui.res.stringResource
-import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import androidx.lifecycle.liveData
 import com.android.settings.R
@@ -49,7 +49,6 @@
     @StringRes val titleResId: Int,
 )
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun DefaultAppShortcutPreference(shortcut: DefaultAppShortcut, app: ApplicationInfo) {
     val context = LocalContext.current
@@ -59,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 d981067..4f47266 100644
--- a/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreference.kt
@@ -22,22 +22,21 @@
 import android.app.AppOpsManager.OP_AUTO_REVOKE_PERMISSIONS_IF_UNUSED
 import android.content.Context
 import android.content.pm.ApplicationInfo
+import android.content.pm.Flags
 import android.os.Build
 import android.permission.PermissionControllerManager.HIBERNATION_ELIGIBILITY_EXEMPT_BY_SYSTEM
 import android.permission.PermissionControllerManager.HIBERNATION_ELIGIBILITY_UNKNOWN
 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.ExperimentalLifecycleComposeApi
-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
@@ -45,37 +44,55 @@
 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 kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.asExecutor
-import kotlinx.coroutines.flow.flow
-import kotlinx.coroutines.withContext
 import kotlin.coroutines.resume
 import kotlin.coroutines.suspendCoroutine
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.withContext
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
-fun HibernationSwitchPreference(app: ApplicationInfo) {
+fun HibernationSwitchPreference(
+    app: ApplicationInfo,
+    isHibernationSwitchEnabledStateFlow: MutableStateFlow<Boolean>
+) {
     val context = LocalContext.current
-    val presenter = remember { HibernationSwitchPresenter(context, app) }
+    val presenter = remember(app) { 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 title =
+                if (isArchivingEnabled())
+                    context.getString(R.string.unused_apps_switch_v2)
+                else
+                    context.getString(R.string.unused_apps_switch)
+            override val summary = {
+                if (isArchivingEnabled())
+                    context.getString(R.string.unused_apps_switch_summary_v2)
+                else
+                    context.getString(R.string.unused_apps_switch_summary)
             }
-
+            override val changeable = { isEligibleState }
+            override val checked = {
+                val result = if (changeable()) isCheckedState.value else false
+                result.also { isChecked ->
+                    isChecked?.let {
+                        isHibernationSwitchEnabledStateFlow.value = it
+                    }
+                }
+            }
             override val onCheckedChange = presenter::onCheckedChange
         }
     })
 }
 
+private fun isArchivingEnabled() =
+        Flags.archiving() || "true" == System.getProperty("pm.archiving.enabled")
+
 private class HibernationSwitchPresenter(context: Context, private val app: ApplicationInfo) {
     private val appOpsManager = context.appOpsManager
     private val permissionControllerManager =
@@ -87,6 +104,10 @@
         DeviceConfig.getBoolean(NAMESPACE_APP_HIBERNATION, PROPERTY_APP_HIBERNATION_ENABLED, true)
 
     val isEligibleFlow = flow {
+        if (app.isArchived) {
+            emit(false)
+            return@flow
+        }
         val eligibility = getEligibility()
         emit(
             eligibility != HIBERNATION_ELIGIBILITY_EXEMPT_BY_SYSTEM &&
diff --git a/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt b/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt
index 0e93b56..9c3ec97 100644
--- a/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/InstantAppDomainsPreference.kt
@@ -32,10 +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.ExperimentalLifecycleComposeApi
-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
@@ -46,7 +45,6 @@
 import kotlinx.coroutines.flow.flowOn
 import kotlinx.coroutines.flow.map
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun InstantAppDomainsPreference(app: ApplicationInfo) {
     val context = LocalContext.current
@@ -55,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 2430e73..905e057 100644
--- a/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreference.kt
+++ b/src/com/android/settings/spa/app/appinfo/InteractAcrossProfilesDetailsPreference.kt
@@ -19,14 +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.ExperimentalLifecycleComposeApi
-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
@@ -34,18 +34,18 @@
 import kotlinx.coroutines.flow.flow
 import kotlinx.coroutines.flow.flowOn
 
-@OptIn(ExperimentalLifecycleComposeApi::class)
 @Composable
 fun InteractAcrossProfilesDetailsPreference(app: ApplicationInfo) {
     val context = LocalContext.current
     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 52c8ad7..230ccb9 100644
--- a/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
+++ b/src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt
@@ -20,24 +20,34 @@
 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
 import android.util.Log
+import androidx.annotation.VisibleForTesting
 import androidx.compose.runtime.Composable
-import com.android.settings.overlay.FeatureFactory
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
 import com.android.settings.spa.app.startUninstallActivity
 import com.android.settingslib.spa.framework.compose.LocalNavController
 import com.android.settingslib.spaprivileged.framework.common.activityManager
 import com.android.settingslib.spaprivileged.framework.common.asUser
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverAsUserFlow
 import com.android.settingslib.spaprivileged.framework.compose.DisposableBroadcastReceiverAsUser
 import com.android.settingslib.spaprivileged.model.app.IPackageManagers
 import com.android.settingslib.spaprivileged.model.app.PackageManagers
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.SharingStarted
 import kotlinx.coroutines.flow.StateFlow
+import kotlinx.coroutines.flow.filter
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.merge
+import kotlinx.coroutines.flow.stateIn
 import kotlinx.coroutines.launch
+import kotlinx.coroutines.plus
 
 private const val TAG = "PackageInfoPresenter"
 
@@ -50,43 +60,59 @@
     val userId: Int,
     private val coroutineScope: CoroutineScope,
     private val packageManagers: IPackageManagers = PackageManagers,
+    private val featureFlags: FeatureFlags = FeatureFlagsImpl(),
 ) {
-    private val metricsFeatureProvider = FeatureFactory.getFactory(context).metricsFeatureProvider
+    private val metricsFeatureProvider = featureFactory.metricsFeatureProvider
     private val userHandle = UserHandle.of(userId)
     val userContext by lazy { context.asUser(userHandle) }
     val userPackageManager: PackageManager by lazy { userContext.packageManager }
-    private val _flow: MutableStateFlow<PackageInfo?> = MutableStateFlow(null)
 
-    val flow: StateFlow<PackageInfo?> = _flow
+    private val appChangeFlow = context.broadcastReceiverAsUserFlow(
+        intentFilter = IntentFilter().apply {
+            // App enabled / disabled
+            addAction(Intent.ACTION_PACKAGE_CHANGED)
 
-    fun reloadPackageInfo() {
-        coroutineScope.launch(Dispatchers.IO) {
-            _flow.value = getPackageInfo()
-        }
-    }
+            // App archived
+            addAction(Intent.ACTION_PACKAGE_REMOVED)
+
+            // App updated / the updates are uninstalled (system app)
+            addAction(Intent.ACTION_PACKAGE_REPLACED)
+
+            // App force-stopped
+            addAction(Intent.ACTION_PACKAGE_RESTARTED)
+
+            addDataScheme("package")
+        },
+        userHandle = userHandle,
+    ).filter(::isInterestedAppChange).filter(::isForThisApp)
+
+    @VisibleForTesting
+    fun isInterestedAppChange(intent: Intent) =
+        intent.action != Intent.ACTION_PACKAGE_REMOVED ||
+            intent.getBooleanExtra(Intent.EXTRA_ARCHIVAL, false)
+
+    val flow: StateFlow<PackageInfo?> = merge(flowOf(null), appChangeFlow)
+        .map { getPackageInfo() }
+        .stateIn(coroutineScope + Dispatchers.Default, SharingStarted.Eagerly, null)
 
     /**
-     * Detects the package removed event.
+     * Detects the package fully removed event, and close the current page.
      */
     @Composable
-    fun PackageRemoveDetector() {
-        val intentFilter = IntentFilter(Intent.ACTION_PACKAGE_REMOVED).apply {
+    fun PackageFullyRemovedEffect() {
+        val intentFilter = IntentFilter(Intent.ACTION_PACKAGE_FULLY_REMOVED).apply {
             addDataScheme("package")
         }
         val navController = LocalNavController.current
         DisposableBroadcastReceiverAsUser(intentFilter, userHandle) { intent ->
-            if (packageName == intent.data?.schemeSpecificPart) {
-                val packageInfo = flow.value
-                if (packageInfo != null && packageInfo.applicationInfo.isSystemApp) {
-                    // System app still exists after uninstalling the updates, refresh the page.
-                    reloadPackageInfo()
-                } else {
-                    navController.navigateBack()
-                }
+            if (isForThisApp(intent)) {
+                navController.navigateBack()
             }
         }
     }
 
+    private fun isForThisApp(intent: Intent) = packageName == intent.data?.schemeSpecificPart
+
     /** Enables this package. */
     fun enable() {
         logAction(SettingsEnums.ACTION_SETTINGS_ENABLE_APP)
@@ -94,7 +120,6 @@
             userPackageManager.setApplicationEnabledSetting(
                 packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0
             )
-            reloadPackageInfo()
         }
     }
 
@@ -105,7 +130,6 @@
             userPackageManager.setApplicationEnabledSetting(
                 packageName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER, 0
             )
-            reloadPackageInfo()
         }
     }
 
@@ -120,7 +144,6 @@
         logAction(SettingsEnums.ACTION_SETTINGS_CLEAR_INSTANT_APP)
         coroutineScope.launch(Dispatchers.IO) {
             userPackageManager.deletePackageAsUser(packageName, null, 0, userId)
-            reloadPackageInfo()
         }
     }
 
@@ -130,7 +153,6 @@
         coroutineScope.launch(Dispatchers.Default) {
             Log.d(TAG, "Stopping package $packageName")
             context.activityManager.forceStopPackageAsUser(packageName, userId)
-            reloadPackageInfo()
         }
     }
 
@@ -138,12 +160,13 @@
         metricsFeatureProvider.action(context, category, packageName)
     }
 
-    private fun getPackageInfo() =
+    private fun getPackageInfo(): PackageInfo? =
         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 (isArchivingEnabled(featureFlags)) 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/battery/BatteryOptimizationModeAppListPageProvider.kt b/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProvider.kt
new file mode 100644
index 0000000..f077506
--- /dev/null
+++ b/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProvider.kt
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.app.battery
+
+import android.app.AppOpsManager
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.os.Bundle
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.res.stringResource
+import androidx.core.os.bundleOf
+import com.android.settings.R
+import com.android.settings.Utils
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.fuelgauge.AdvancedPowerUsageDetail
+import com.android.settings.fuelgauge.BatteryOptimizeUtils
+import com.android.settings.spa.app.AppRecordWithSize
+import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
+import com.android.settings.spa.app.rememberResetAppDialogPresenter
+import com.android.settingslib.fuelgauge.PowerAllowlistBackend
+import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.common.createSettingsPage
+import com.android.settingslib.spa.framework.compose.navigator
+import com.android.settingslib.spa.framework.compose.rememberContext
+import com.android.settingslib.spa.framework.util.filterItem
+import com.android.settingslib.spa.framework.util.mapItem
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spa.widget.ui.SpinnerOption
+import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
+import com.android.settingslib.spaprivileged.model.app.AppListModel
+import com.android.settingslib.spaprivileged.model.app.installed
+import com.android.settingslib.spaprivileged.model.app.userHandle
+import com.android.settingslib.spaprivileged.template.app.AppList
+import com.android.settingslib.spaprivileged.template.app.AppListInput
+import com.android.settingslib.spaprivileged.template.app.AppListItem
+import com.android.settingslib.spaprivileged.template.app.AppListItemModel
+import com.android.settingslib.spaprivileged.template.app.AppListPage
+import kotlinx.coroutines.flow.Flow
+
+object BatteryOptimizationModeAppListPageProvider : SettingsPageProvider {
+    override val name = "BatteryOptimizationModeAppList"
+    private val owner = createSettingsPage()
+
+    @Composable
+    override fun Page(arguments: Bundle?) {
+        BatteryOptimizationModeAppList()
+    }
+
+    fun buildInjectEntry() = SettingsEntryBuilder
+        .createInject(owner)
+        .setSearchDataFn { null }
+        .setUiLayoutFn {
+            Preference(object : PreferenceModel {
+                override val title = stringResource(R.string.app_battery_usage_title)
+                override val onClick = navigator(name)
+            })
+        }
+}
+
+@Composable
+fun BatteryOptimizationModeAppList(
+    appList: @Composable AppListInput<AppRecordWithSize>.() -> Unit = { AppList() },
+) {
+    AppListPage(
+        title = stringResource(R.string.app_battery_usage_title),
+        listModel = rememberContext(::BatteryOptimizationModeAppListModel),
+        appList = appList,
+    )
+}
+
+class BatteryOptimizationModeAppListModel(
+    private val context: Context,
+) : AppListModel<AppRecordWithSize> {
+
+    override fun getSpinnerOptions(recordList: List<AppRecordWithSize>): List<SpinnerOption> =
+        OptimizationModeSpinnerItem.entries.map {
+            SpinnerOption(
+                id = it.ordinal,
+                text = context.getString(it.stringResId),
+            )
+        }
+
+    override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
+        appListFlow.mapItem(::AppRecordWithSize)
+
+    override fun filter(
+        userIdFlow: Flow<Int>,
+        option: Int,
+        recordListFlow: Flow<List<AppRecordWithSize>>,
+    ): Flow<List<AppRecordWithSize>> {
+        PowerAllowlistBackend.getInstance(context).refreshList()
+        return recordListFlow.filterItem {
+            val appOptimizationMode = BatteryOptimizeUtils(context, it.app.uid, it.app.packageName)
+                .getAppOptimizationMode(/* refreshList */ false);
+            when (OptimizationModeSpinnerItem.entries.getOrNull(option)) {
+                OptimizationModeSpinnerItem.Restricted ->
+                    appOptimizationMode == BatteryOptimizeUtils.MODE_RESTRICTED
+                OptimizationModeSpinnerItem.Optimized ->
+                    appOptimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
+                OptimizationModeSpinnerItem.Unrestricted ->
+                    appOptimizationMode == BatteryOptimizeUtils.MODE_UNRESTRICTED
+                else -> (true)
+            }
+        }
+    }
+
+    @Composable
+    override fun getSummary(option: Int, record: AppRecordWithSize): () -> String = {
+        var summary = String()
+        val app = record.app
+        when {
+            !app.installed && !app.isArchived -> {
+                summary += context.getString(R.string.not_installed)
+            }
+
+            !app.enabled -> {
+                summary += context.getString(com.android.settingslib.R.string.disabled)
+            }
+        }
+        summary
+    }
+
+    @Composable
+    override fun AppListItemModel<AppRecordWithSize>.AppItem() {
+        AppListItem(onClick = {
+            val args = bundleOf(
+                AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME to record.app.packageName,
+                AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT to Utils.formatPercentage(0),
+                AdvancedPowerUsageDetail.EXTRA_UID to record.app.uid,
+            )
+            SubSettingLauncher(context)
+                .setDestination(AdvancedPowerUsageDetail::class.java.name)
+                .setTitleRes(R.string.battery_details_title)
+                .setArguments(args)
+                .setUserHandle(record.app.userHandle)
+                .setSourceMetricsCategory(AppInfoSettingsProvider.METRICS_CATEGORY)
+                .launch()
+        })
+    }
+}
+
+private enum class OptimizationModeSpinnerItem(val stringResId: Int) {
+    All(R.string.filter_all_apps),
+    Restricted(R.string.filter_battery_restricted_title),
+    Optimized(R.string.filter_battery_optimized_title),
+    Unrestricted(R.string.filter_battery_unrestricted_title);
+}
diff --git a/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt b/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt
index 527c6d9..3e48aa5 100644
--- a/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt
+++ b/src/com/android/settings/spa/app/specialaccess/AlarmsAndRemindersAppList.kt
@@ -18,16 +18,16 @@
 
 import android.Manifest
 import android.app.AlarmManager
+import android.app.AppOpsManager
 import android.app.compat.CompatChanges
 import android.app.settings.SettingsEnums
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import android.os.PowerExemptionManager
 import androidx.compose.runtime.Composable
-import androidx.compose.runtime.livedata.observeAsState
-import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
-import com.android.settingslib.spa.framework.compose.stateOf
+import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
+import com.android.settingslib.R
+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
@@ -57,6 +57,7 @@
     override val pageTitleResId = R.string.alarms_and_reminders_title
     override val switchTitleResId = R.string.alarms_and_reminders_switch_title
     override val footerResId = R.string.alarms_and_reminders_footer_title
+    override val enhancedConfirmationKey: String = AppOpsManager.OPSTR_SCHEDULE_EXACT_ALARM
 
     override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
         userIdFlow.map { userId ->
@@ -79,9 +80,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
 
@@ -91,7 +93,7 @@
     }
 
     private fun logPermissionChange(newAllowed: Boolean) {
-        FeatureFactory.getFactory(context).metricsFeatureProvider.action(
+        featureFactory.metricsFeatureProvider.action(
             SettingsEnums.PAGE_UNKNOWN,
             SettingsEnums.ACTION_ALARMS_AND_REMINDERS_TOGGLE,
             SettingsEnums.ALARMS_AND_REMINDERS,
diff --git a/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt b/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt
index 16520fa..d82045d 100644
--- a/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt
+++ b/src/com/android/settings/spa/app/specialaccess/AllFilesAccess.kt
@@ -21,7 +21,7 @@
 import android.app.settings.SettingsEnums
 import android.content.Context
 import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
+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
@@ -49,6 +49,6 @@
             newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_MANAGE_EXT_STRG_ALLOW
             else -> SettingsEnums.APP_SPECIAL_PERMISSION_MANAGE_EXT_STRG_DENY
         }
-        FeatureFactory.getFactory(context).metricsFeatureProvider.action(context, category, "")
+        featureFactory.metricsFeatureProvider.action(context, category, "")
     }
 }
diff --git a/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt b/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt
index 7812675..26d7451 100644
--- a/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt
+++ b/src/com/android/settings/spa/app/specialaccess/DisplayOverOtherApps.kt
@@ -21,7 +21,7 @@
 import android.app.settings.SettingsEnums
 import android.content.Context
 import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
+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
@@ -48,6 +48,6 @@
             newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_APPDRAW_ALLOW
             else -> SettingsEnums.APP_SPECIAL_PERMISSION_APPDRAW_DENY
         }
-        FeatureFactory.getFactory(context).metricsFeatureProvider.action(context, category, "")
+        featureFactory.metricsFeatureProvider.action(context, category, "")
     }
 }
diff --git a/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt b/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt
index 43add1f..3e9058f 100644
--- a/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt
+++ b/src/com/android/settings/spa/app/specialaccess/InstallUnknownApps.kt
@@ -18,14 +18,15 @@
 
 import android.Manifest
 import android.app.AppGlobals
+import android.app.AppOpsManager
 import android.app.AppOpsManager.MODE_DEFAULT
 import android.app.AppOpsManager.OP_REQUEST_INSTALL_PACKAGES
 import android.content.Context
 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.lifecycle.collectAsCallbackWithLifecycle
 import com.android.settingslib.spaprivileged.model.app.AppOpsController
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.userId
@@ -47,7 +48,7 @@
 
 class InstallUnknownAppsListModel(private val context: Context) :
     TogglePermissionAppListModel<InstallUnknownAppsRecord> {
-    override val pageTitleResId = R.string.install_other_apps
+    override val pageTitleResId = com.android.settingslib.R.string.install_other_apps
     override val switchTitleResId = R.string.external_source_switch_title
     override val footerResId = R.string.install_all_warning
     override val switchRestrictionKeys =
@@ -55,6 +56,7 @@
             UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
             UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
         )
+    override val enhancedConfirmationKey: String = AppOpsManager.OPSTR_REQUEST_INSTALL_PACKAGES
 
     override fun transformItem(app: ApplicationInfo) =
         InstallUnknownAppsRecord(
@@ -79,7 +81,7 @@
 
     @Composable
     override fun isAllowed(record: InstallUnknownAppsRecord) =
-        record.appOpsController.isAllowed.observeAsState()
+        record.appOpsController.isAllowed.collectAsCallbackWithLifecycle()
 
     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/MediaManagementApps.kt b/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt
index e8935e6..3e3457c 100644
--- a/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt
+++ b/src/com/android/settings/spa/app/specialaccess/MediaManagementApps.kt
@@ -21,7 +21,7 @@
 import android.app.settings.SettingsEnums
 import android.content.Context
 import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
+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
@@ -45,7 +45,7 @@
     }
 
     private fun logPermissionChange(newAllowed: Boolean) {
-        FeatureFactory.getFactory(context).metricsFeatureProvider.action(
+        featureFactory.metricsFeatureProvider.action(
             SettingsEnums.PAGE_UNKNOWN,
             SettingsEnums.ACTION_MEDIA_MANAGEMENT_APPS_TOGGLE,
             SettingsEnums.MEDIA_MANAGEMENT_APPS,
diff --git a/src/com/android/settings/spa/app/specialaccess/MediaRoutingControl.kt b/src/com/android/settings/spa/app/specialaccess/MediaRoutingControl.kt
new file mode 100644
index 0000000..b9fb9b8
--- /dev/null
+++ b/src/com/android/settings/spa/app/specialaccess/MediaRoutingControl.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.app.specialaccess
+
+import android.Manifest
+import android.app.AppOpsManager
+import android.app.role.RoleManager
+import android.app.settings.SettingsEnums
+import android.companion.AssociationRequest
+import android.content.Context
+import com.android.media.flags.Flags;
+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 MediaRoutingControlAppListProvider : TogglePermissionAppListProvider {
+    override val permissionType = "MediaRoutingControl"
+    override fun createModel(context: Context) = MediaRoutingControlAppsListModel(context)
+}
+
+class MediaRoutingControlAppsListModel(context: Context) : AppOpPermissionListModel(context) {
+    override val pageTitleResId = R.string.media_routing_control_title
+    override val switchTitleResId = R.string.allow_media_routing_control
+    override val footerResId = R.string.allow_media_routing_description
+    override val appOp = AppOpsManager.OP_MEDIA_ROUTING_CONTROL
+    override val permission = Manifest.permission.MEDIA_ROUTING_CONTROL
+    override val setModeByUid = true
+    private val roleManager = context.getSystemService(RoleManager::class.java)
+
+    override fun setAllowed(record: AppOpPermissionRecord, newAllowed: Boolean) {
+        super.setAllowed(record, newAllowed)
+        logPermissionToggleAction(newAllowed)
+    }
+
+    override fun isChangeable(record: AppOpPermissionRecord): Boolean {
+        return Flags.enablePrivilegedRoutingForMediaRoutingControl()
+                && super.isChangeable(record)
+                && (this.roleManager?.getRoleHolders(AssociationRequest.DEVICE_PROFILE_WATCH)
+                ?.contains(record.app.packageName) == true)
+    }
+
+    private fun logPermissionToggleAction(newAllowed: Boolean) {
+        featureFactory.metricsFeatureProvider.action(
+                context,
+                SettingsEnums.MEDIA_ROUTING_CONTROL,
+                if (newAllowed)
+                    VALUE_LOGGING_ALLOWED
+                else
+                    VALUE_LOGGING_DENIED
+        )
+    }
+
+    companion object {
+        const val VALUE_LOGGING_ALLOWED = 1
+        const val VALUE_LOGGING_DENIED = 0
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt b/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt
index 668cc8c..4ab7f52 100644
--- a/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt
+++ b/src/com/android/settings/spa/app/specialaccess/ModifySystemSettings.kt
@@ -21,7 +21,7 @@
 import android.app.settings.SettingsEnums
 import android.content.Context
 import com.android.settings.R
-import com.android.settings.overlay.FeatureFactory
+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
@@ -48,6 +48,6 @@
             newAllowed -> SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_ALLOW
             else -> SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_DENY
         }
-        FeatureFactory.getFactory(context).metricsFeatureProvider.action(context, category, "")
+        featureFactory.metricsFeatureProvider.action(context, category, "")
     }
 }
\ 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..7885b86 100644
--- a/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
+++ b/src/com/android/settings/spa/app/specialaccess/PictureInPicture.kt
@@ -16,6 +16,7 @@
 
 package com.android.settings.spa.app.specialaccess
 
+import android.app.AppOpsManager
 import android.app.AppOpsManager.OP_PICTURE_IN_PICTURE
 import android.content.Context
 import android.content.pm.ActivityInfo
@@ -25,8 +26,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.lifecycle.collectAsCallbackWithLifecycle
 import com.android.settingslib.spaprivileged.model.app.AppOpsController
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import com.android.settingslib.spaprivileged.model.app.installed
@@ -53,6 +54,7 @@
     override val pageTitleResId = R.string.picture_in_picture_title
     override val switchTitleResId = R.string.picture_in_picture_app_detail_switch
     override val footerResId = R.string.picture_in_picture_app_detail_summary
+    override val enhancedConfirmationKey: String = AppOpsManager.OPSTR_PICTURE_IN_PICTURE
 
     private val packageManager = context.packageManager
 
@@ -90,7 +92,7 @@
 
     @Composable
     override fun isAllowed(record: PictureInPictureRecord) =
-        record.appOpsController.isAllowed.observeAsState()
+        record.appOpsController.isAllowed.collectAsCallbackWithLifecycle()
 
     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..0285b74 100644
--- a/src/com/android/settings/spa/app/specialaccess/SpecialAppAccess.kt
+++ b/src/com/android/settings/spa/app/specialaccess/SpecialAppAccess.kt
@@ -61,12 +61,16 @@
                 AllFilesAccessAppListProvider,
                 DisplayOverOtherAppsAppListProvider,
                 MediaManagementAppsAppListProvider,
+                MediaRoutingControlAppListProvider,
                 ModifySystemSettingsAppListProvider,
                 UseFullScreenIntentAppListProvider,
                 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
new file mode 100644
index 0000000..c33de33
--- /dev/null
+++ b/src/com/android/settings/spa/app/storage/StorageAppList.kt
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.storage
+
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.os.Bundle
+import androidx.annotation.StringRes
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.State
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.util.filterItem
+import com.android.settingslib.spa.framework.util.mapItem
+import com.android.settingslib.spaprivileged.model.app.AppEntry
+import com.android.settingslib.spaprivileged.model.app.AppListModel
+import com.android.settingslib.spaprivileged.model.app.AppRecord
+import com.android.settingslib.spaprivileged.template.app.AppList
+import com.android.settingslib.spaprivileged.template.app.AppListInput
+import com.android.settingslib.spaprivileged.template.app.AppListItem
+import com.android.settingslib.spaprivileged.template.app.AppListItemModel
+import com.android.settingslib.spaprivileged.template.app.AppListPage
+import com.android.settingslib.spaprivileged.template.app.calculateSizeBytes
+import com.android.settingslib.spaprivileged.template.app.getStorageSize
+import kotlinx.coroutines.flow.Flow
+
+sealed class StorageAppListPageProvider(private val type: StorageType) : SettingsPageProvider {
+    @Composable
+    override fun Page(arguments: Bundle?) {
+        StorageAppListPage(type)
+    }
+
+    object Apps : StorageAppListPageProvider(StorageType.Apps) {
+        override val name = "StorageAppList"
+    }
+
+    object Games : StorageAppListPageProvider(StorageType.Games) {
+        override val name = "GameStorageAppList"
+    }
+}
+
+sealed class StorageType(
+    @StringRes val titleResource: Int,
+    val filter: (AppRecordWithSize) -> Boolean
+) {
+    object Apps : StorageType(
+        titleResource = R.string.apps_storage,
+        filter = {
+            (it.app.flags and ApplicationInfo.FLAG_IS_GAME) == 0 &&
+            it.app.category != ApplicationInfo.CATEGORY_GAME
+        }
+    )
+    object Games : StorageType(
+        titleResource = R.string.game_storage_settings,
+        filter = {
+            (it.app.flags and ApplicationInfo.FLAG_IS_GAME) != 0 ||
+                it.app.category == ApplicationInfo.CATEGORY_GAME
+        }
+    )
+}
+
+@Composable
+fun StorageAppListPage(
+    type: StorageType,
+    appList: @Composable AppListInput<AppRecordWithSize>.() -> Unit = { AppList() }
+) {
+    val context = LocalContext.current
+    AppListPage(
+        title = stringResource(type.titleResource),
+        listModel = when (type) {
+            StorageType.Apps -> remember(context) { StorageAppListModel(context, type) }
+            StorageType.Games -> remember(context) { StorageAppListModel(context, type) }
+        },
+        showInstantApps = true,
+        matchAnyUserForAdmin = true,
+        appList = appList,
+        moreOptions = {  }, // TODO(b/292165031) Sorting in Options not yet supported
+    )
+}
+
+data class AppRecordWithSize(
+    override val app: ApplicationInfo,
+    val size: Long
+) : AppRecord
+
+class StorageAppListModel(
+    private val context: Context,
+    private val type: StorageType,
+    private val getStorageSummary: @Composable ApplicationInfo.() -> State<String> = {
+        getStorageSize()
+    }
+) : AppListModel<AppRecordWithSize> {
+    override fun transform(userIdFlow: Flow<Int>, appListFlow: Flow<List<ApplicationInfo>>) =
+        appListFlow.mapItem {
+            AppRecordWithSize(it, it.calculateSizeBytes(context) ?: 0L)
+        }
+
+    override fun filter(
+        userIdFlow: Flow<Int>,
+        option: Int,
+        recordListFlow: Flow<List<AppRecordWithSize>>
+    ): Flow<List<AppRecordWithSize>> = recordListFlow.filterItem { type.filter(it) }
+
+    @Composable
+    override fun getSummary(option: Int, record: AppRecordWithSize): () -> String {
+        val storageSummary by record.app.getStorageSummary()
+        return { storageSummary }
+    }
+
+    @Composable
+    override fun AppListItemModel<AppRecordWithSize>.AppItem() {
+        AppListItem(onClick = AppInfoSettingsProvider.navigator(app = record.app))
+    }
+
+    override fun getComparator(option: Int) = compareByDescending<AppEntry<AppRecordWithSize>> {
+        it.record.size
+    }.then(super.getComparator(option))
+}
diff --git a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
index 600a2e6..8659bf5 100644
--- a/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
+++ b/src/com/android/settings/spa/core/instrumentation/SpaLogProvider.kt
@@ -72,10 +72,10 @@
         }
         val sessionSource = extraData.getString(LOG_DATA_SESSION_NAME)
         return when(sessionSource) {
-            SESSION_BROWSE -> SettingsEnums.BROWSE
-            SESSION_SEARCH -> SettingsEnums.SEARCH
-            SESSION_SLICE -> SettingsEnums.SLICE_TYPE
-            SESSION_EXTERNAL -> SettingsEnums.EXTERNAL
+            SESSION_BROWSE -> SettingsEnums.SESSION_BROWSE
+            SESSION_SEARCH -> SettingsEnums.SESSION_SEARCH
+            SESSION_SLICE -> SettingsEnums.SESSION_SLICE_TYPE
+            SESSION_EXTERNAL -> SettingsEnums.SESSION_EXTERNAL
             else -> SettingsEnums.SESSION_UNKNOWN
         }
     }
diff --git a/src/com/android/settings/spa/development/UsageStatsListModel.kt b/src/com/android/settings/spa/development/UsageStatsListModel.kt
index 61c24ac..bb20da6 100644
--- a/src/com/android/settings/spa/development/UsageStatsListModel.kt
+++ b/src/com/android/settings/spa/development/UsageStatsListModel.kt
@@ -22,15 +22,14 @@
 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
 import com.android.settingslib.spaprivileged.model.app.AppRecord
 import java.text.DateFormat
+import java.time.Duration
 import java.util.concurrent.TimeUnit
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.combine
@@ -55,7 +54,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,15 +76,25 @@
     }.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
-        )
-        val lastTimeUsedLine = "${context.getString(R.string.last_time_used_label)}: $lastTimeUsed"
+        val lastTimeUsedLine =
+            "${context.getString(R.string.last_time_used_label)}: ${usageStats.getLastUsedString()}"
         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 UsageStats.getLastUsedString() = when {
+        lastTimeUsed < Duration.ofDays(1)
+            .toMillis() -> context.getString(R.string.last_time_used_never)
+
+        else -> DateUtils.formatSameDayTime(
+            lastTimeUsed,
+            now,
+            DateFormat.MEDIUM,
+            DateFormat.MEDIUM
+        )
     }
 
     private fun getUsageStats(): Map<String, UsageStats> {
@@ -101,7 +110,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/home/HomePage.kt b/src/com/android/settings/spa/home/HomePage.kt
index c0dd138..bb016d5 100644
--- a/src/com/android/settings/spa/home/HomePage.kt
+++ b/src/com/android/settings/spa/home/HomePage.kt
@@ -18,6 +18,7 @@
 
 import android.os.Bundle
 import com.android.settings.R
+import com.android.settings.spa.about.AboutPhonePageProvider
 import com.android.settings.spa.app.AppsMainPageProvider
 import com.android.settings.spa.network.NetworkAndInternetPageProvider
 import com.android.settings.spa.notification.NotificationMainPageProvider
@@ -40,6 +41,7 @@
             AppsMainPageProvider.buildInjectEntry().setLink(fromPage = owner).build(),
             NotificationMainPageProvider.buildInjectEntry().setLink(fromPage = owner).build(),
             SystemMainPageProvider.buildInjectEntry().setLink(fromPage = owner).build(),
+            AboutPhonePageProvider.buildInjectEntry().setLink(fromPage = owner).build(),
         )
     }
 
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/network/NetworkCellularGroupProvider.kt b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
new file mode 100644
index 0000000..e746d4a
--- /dev/null
+++ b/src/com/android/settings/spa/network/NetworkCellularGroupProvider.kt
@@ -0,0 +1,465 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import android.app.Application
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import android.os.Bundle
+import android.os.UserManager
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import android.telephony.euicc.EuiccManager
+import android.util.Log
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.automirrored.outlined.Message
+import androidx.compose.material.icons.outlined.Add
+import androidx.compose.material.icons.outlined.DataUsage
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.MutableIntState
+import androidx.compose.runtime.mutableIntStateOf
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.toMutableStateList
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.platform.LocalLifecycleOwner
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.res.vectorResource
+import com.android.settings.R
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.android.settings.network.telephony.MobileNetworkUtils
+import com.android.settings.wifi.WifiPickerTrackerHelper
+import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.common.createSettingsPage
+import com.android.settingslib.spa.framework.compose.navigator
+import com.android.settingslib.spa.framework.util.collectLatestWithLifecycle
+import com.android.settingslib.spa.widget.preference.ListPreferenceOption
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import com.android.settingslib.spa.widget.preference.TwoTargetSwitchPreference
+import com.android.settingslib.spa.widget.scaffold.RegularScaffold
+import com.android.settingslib.spa.widget.ui.Category
+import com.android.settingslib.spa.widget.ui.SettingsIcon
+import com.android.settingslib.spaprivileged.framework.common.broadcastReceiverFlow
+
+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
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+/**
+ * Showing the sim onboarding which is the process flow of sim switching on.
+ */
+object NetworkCellularGroupProvider : SettingsPageProvider {
+    override val name = "NetworkCellularGroupProvider"
+
+    private lateinit var subscriptionViewModel: SubscriptionInfoListViewModel
+    private val owner = createSettingsPage()
+
+    var selectableSubscriptionInfoList: List<SubscriptionInfo> = listOf()
+    var defaultVoiceSubId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+    var defaultSmsSubId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+    var defaultDataSubId: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+    var nonDds: Int = SubscriptionManager.INVALID_SUBSCRIPTION_ID
+
+    fun buildInjectEntry() = SettingsEntryBuilder.createInject(owner = owner)
+            .setUiLayoutFn {
+                // never using
+                Preference(object : PreferenceModel {
+                    override val title = name
+                    override val onClick = navigator(name)
+                })
+            }
+
+    @Composable
+    override fun Page(arguments: Bundle?) {
+        val context = LocalContext.current
+        var selectableSubscriptionInfoListRemember = remember {
+            mutableListOf<SubscriptionInfo>().toMutableStateList()
+        }
+        var callsSelectedId = rememberSaveable {
+            mutableIntStateOf(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        }
+        var textsSelectedId = rememberSaveable {
+            mutableIntStateOf(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        }
+        var mobileDataSelectedId = rememberSaveable {
+            mutableIntStateOf(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        }
+        var nonDdsRemember = rememberSaveable {
+            mutableIntStateOf(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        }
+
+        subscriptionViewModel = SubscriptionInfoListViewModel(
+                context.applicationContext as Application)
+
+        allOfFlows(context, subscriptionViewModel.selectableSubscriptionInfoListFlow)
+                .collectLatestWithLifecycle(LocalLifecycleOwner.current) {
+                    selectableSubscriptionInfoListRemember.clear()
+                    selectableSubscriptionInfoListRemember.addAll(selectableSubscriptionInfoList)
+                    callsSelectedId.intValue = defaultVoiceSubId
+                    textsSelectedId.intValue = defaultSmsSubId
+                    mobileDataSelectedId.intValue = defaultDataSubId
+                    nonDdsRemember.intValue = nonDds
+                }
+
+        PageImpl(selectableSubscriptionInfoListRemember,
+                callsSelectedId,
+                textsSelectedId,
+                mobileDataSelectedId,
+                nonDdsRemember)
+    }
+
+    private fun allOfFlows(context: Context,
+                           selectableSubscriptionInfoListFlow: Flow<List<SubscriptionInfo>>) =
+            combine(
+                    selectableSubscriptionInfoListFlow,
+                    context.defaultVoiceSubscriptionFlow(),
+                    context.defaultSmsSubscriptionFlow(),
+                    context.defaultDefaultDataSubscriptionFlow(),
+                    NetworkCellularGroupProvider::refreshUiStates,
+            ).flowOn(Dispatchers.Default)
+
+    fun refreshUiStates(
+            inputSelectableSubscriptionInfoList: List<SubscriptionInfo>,
+            inputDefaultVoiceSubId: Int,
+            inputDefaultSmsSubId: Int,
+            inputDefaultDateSubId: Int
+    ): Unit {
+        selectableSubscriptionInfoList = inputSelectableSubscriptionInfoList
+        defaultVoiceSubId = inputDefaultVoiceSubId
+        defaultSmsSubId = inputDefaultSmsSubId
+        defaultDataSubId = inputDefaultDateSubId
+        nonDds = if (defaultDataSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+            SubscriptionManager.INVALID_SUBSCRIPTION_ID
+        } else {
+            selectableSubscriptionInfoList
+                    .filter { info ->
+                        (info.simSlotIndex != -1) && (info.subscriptionId != defaultDataSubId)
+                    }
+                    .map { it.subscriptionId }
+                    .firstOrNull() ?: SubscriptionManager.INVALID_SUBSCRIPTION_ID
+        }
+    }
+}
+
+@Composable
+fun PageImpl(selectableSubscriptionInfoList: List<SubscriptionInfo>,
+             defaultVoiceSubId: MutableIntState,
+             defaultSmsSubId: MutableIntState,
+             defaultDataSubId: MutableIntState,
+             nonDds: MutableIntState) {
+    val context = LocalContext.current
+    var activeSubscriptionInfoList: List<SubscriptionInfo> =
+            selectableSubscriptionInfoList.filter { subscriptionInfo ->
+                subscriptionInfo.simSlotIndex != -1
+            }
+    var subscriptionManager = context.getSystemService(SubscriptionManager::class.java)
+
+    val stringSims = stringResource(R.string.provider_network_settings_title)
+    RegularScaffold(title = stringSims) {
+        SimsSectionImpl(
+                context,
+                subscriptionManager,
+                selectableSubscriptionInfoList
+        )
+        PrimarySimSectionImpl(
+                subscriptionManager,
+                activeSubscriptionInfoList,
+                defaultVoiceSubId,
+                defaultSmsSubId,
+                defaultDataSubId,
+                nonDds
+        )
+    }
+}
+
+@Composable
+fun SimsSectionImpl(
+        context: Context,
+        subscriptionManager: SubscriptionManager?,
+        subscriptionInfoList: List<SubscriptionInfo>
+) {
+    val coroutineScope = rememberCoroutineScope()
+    for (subInfo in subscriptionInfoList) {
+        val checked = rememberSaveable() {
+            mutableStateOf(false)
+        }
+        //TODO: Add the Restricted TwoTargetSwitchPreference in SPA
+        TwoTargetSwitchPreference(remember {
+            object : SwitchPreferenceModel {
+                override val title = subInfo.displayName.toString()
+                override val summary = { subInfo.number }
+                override val checked = {
+                    coroutineScope.launch {
+                        withContext(Dispatchers.Default) {
+                            checked.value = subscriptionManager?.isSubscriptionEnabled(
+                                    subInfo.subscriptionId)?:false
+                        }
+                    }
+                    checked.value
+                }
+                override val onCheckedChange = { newChecked: Boolean ->
+                    startToggleSubscriptionDialog(context, subInfo, newChecked)
+                }
+            }
+        }) {
+            startMobileNetworkSettings(context, subInfo)
+        }
+    }
+
+    // + add sim
+    if (showEuiccSettings(context)) {
+        RestrictedPreference(
+                model = object : PreferenceModel {
+                    override val title = stringResource(id = R.string.mobile_network_list_add_more)
+                    override val icon = @Composable { SettingsIcon(Icons.Outlined.Add) }
+                    override val onClick = {
+                        startAddSimFlow(context)
+                    }
+                },
+                restrictions = Restrictions(keys =
+                        listOf(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)),
+        )
+    }
+}
+
+@Composable
+fun PrimarySimSectionImpl(
+        subscriptionManager: SubscriptionManager?,
+        activeSubscriptionInfoList: List<SubscriptionInfo>,
+        callsSelectedId: MutableIntState,
+        textsSelectedId: MutableIntState,
+        mobileDataSelectedId: MutableIntState,
+        nonDds: MutableIntState
+) {
+    var state = rememberSaveable { mutableStateOf(false) }
+    var callsAndSmsList = remember {
+        mutableListOf(ListPreferenceOption(id = -1, text = "Loading"))
+    }
+    var dataList = remember {
+        mutableListOf(ListPreferenceOption(id = -1, text = "Loading"))
+    }
+
+    if (activeSubscriptionInfoList.size >= 2) {
+        state.value = true
+        callsAndSmsList.clear()
+        dataList.clear()
+        for (info in activeSubscriptionInfoList) {
+            var item = ListPreferenceOption(
+                    id = info.subscriptionId,
+                    text = "${info.displayName}"
+            )
+            callsAndSmsList.add(item)
+            dataList.add(item)
+        }
+        callsAndSmsList.add(ListPreferenceOption(
+                id = SubscriptionManager.INVALID_SUBSCRIPTION_ID,
+                text = stringResource(id = R.string.sim_calls_ask_first_prefs_title)
+        ))
+    } else {
+        // hide the primary sim
+        state.value = false
+        Log.d("NetworkCellularGroupProvider", "Hide primary sim")
+    }
+
+    if (state.value) {
+        val coroutineScope = rememberCoroutineScope()
+        var context = LocalContext.current
+        val telephonyManagerForNonDds: TelephonyManager? =
+                context.getSystemService(TelephonyManager::class.java)
+                        ?.createForSubscriptionId(nonDds.intValue)
+        val automaticDataChecked = rememberSaveable() {
+            mutableStateOf(false)
+        }
+
+        Category(title = stringResource(id = R.string.primary_sim_title)) {
+            createPrimarySimListPreference(
+                    stringResource(id = R.string.primary_sim_calls_title),
+                    callsAndSmsList,
+                    callsSelectedId,
+                    ImageVector.vectorResource(R.drawable.ic_phone),
+            ) {
+                callsSelectedId.intValue = it
+                coroutineScope.launch {
+                    setDefaultVoice(subscriptionManager, it)
+                }
+            }
+            createPrimarySimListPreference(
+                    stringResource(id = R.string.primary_sim_texts_title),
+                    callsAndSmsList,
+                    textsSelectedId,
+                    Icons.AutoMirrored.Outlined.Message,
+            ) {
+                textsSelectedId.intValue = it
+                coroutineScope.launch {
+                    setDefaultSms(subscriptionManager, it)
+                }
+            }
+            createPrimarySimListPreference(
+                    stringResource(id = R.string.mobile_data_settings_title),
+                    dataList,
+                    mobileDataSelectedId,
+                    Icons.Outlined.DataUsage,
+            ) {
+                mobileDataSelectedId.intValue = it
+                coroutineScope.launch {
+                    // TODO: to fix the WifiPickerTracker crash when create
+                    //       the wifiPickerTrackerHelper
+                    setDefaultData(context,
+                            subscriptionManager,
+                            null/*wifiPickerTrackerHelper*/,
+                            it)
+                }
+            }
+        }
+
+        val autoDataTitle = stringResource(id = R.string.primary_sim_automatic_data_title)
+        val autoDataSummary = stringResource(id = R.string.primary_sim_automatic_data_msg)
+        SwitchPreference(remember {
+            object : SwitchPreferenceModel {
+                override val title = autoDataTitle
+                override val summary = { autoDataSummary }
+                override val changeable: () -> Boolean = {
+                    nonDds.intValue != SubscriptionManager.INVALID_SUBSCRIPTION_ID
+                }
+                override val checked = {
+                    coroutineScope.launch {
+                        withContext(Dispatchers.Default) {
+                            automaticDataChecked.value = telephonyManagerForNonDds != null
+                                    && telephonyManagerForNonDds.isMobileDataPolicyEnabled(
+                                    TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+                        }
+                    }
+                    automaticDataChecked.value
+                }
+                override val onCheckedChange: ((Boolean) -> Unit)? =
+                        { newChecked: Boolean ->
+                            coroutineScope.launch {
+                                setAutomaticData(telephonyManagerForNonDds, newChecked)
+                            }
+                        }
+            }
+        })
+    }
+}
+
+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 fun Context.defaultDefaultDataSubscriptionFlow(): Flow<Int> =
+        merge(
+                flowOf(null), // kick an initial value
+                broadcastReceiverFlow(
+                        IntentFilter(TelephonyManager.ACTION_DEFAULT_DATA_SUBSCRIPTION_CHANGED)
+                ),
+        ).map { SubscriptionManager.getDefaultDataSubscriptionId() }
+                .conflate().flowOn(Dispatchers.Default)
+
+private fun startToggleSubscriptionDialog(
+        context: Context,
+        subInfo: SubscriptionInfo,
+        newStatus: Boolean
+) {
+    SubscriptionUtil.startToggleSubscriptionDialogActivity(
+            context,
+            subInfo.subscriptionId,
+            newStatus
+    )
+}
+
+private fun startMobileNetworkSettings(context: Context, subInfo: SubscriptionInfo) {
+    MobileNetworkUtils.launchMobileNetworkSettings(context, subInfo)
+}
+
+private fun startAddSimFlow(context: Context) {
+    val intent = Intent(EuiccManager.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION)
+    intent.putExtra(EuiccManager.EXTRA_FORCE_PROVISION, true)
+    context.startActivity(intent)
+}
+
+private fun showEuiccSettings(context: Context): Boolean {
+    return MobileNetworkUtils.showEuiccSettings(context)
+}
+
+private suspend fun setDefaultVoice(
+        subscriptionManager: SubscriptionManager?,
+        subId: Int): Unit = withContext(Dispatchers.Default) {
+    subscriptionManager?.setDefaultVoiceSubscriptionId(subId)
+}
+
+private suspend fun setDefaultSms(
+        subscriptionManager: SubscriptionManager?,
+        subId: Int): Unit = withContext(Dispatchers.Default) {
+    subscriptionManager?.setDefaultSmsSubId(subId)
+}
+
+private suspend fun setDefaultData(context: Context,
+                                   subscriptionManager: SubscriptionManager?,
+                                   wifiPickerTrackerHelper: WifiPickerTrackerHelper?,
+                                   subId: Int): Unit = withContext(Dispatchers.Default) {
+    subscriptionManager?.setDefaultDataSubId(subId)
+    MobileNetworkUtils.setMobileDataEnabled(
+            context,
+            subId,
+            true /* enabled */,
+            true /* disableOtherSubscriptions */)
+    if (wifiPickerTrackerHelper != null
+            && !wifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(subId)) {
+        wifiPickerTrackerHelper.setCarrierNetworkEnabled(true)
+    }
+}
+
+private suspend fun setAutomaticData(telephonyManager: TelephonyManager?, newState: Boolean): Unit =
+        withContext(Dispatchers.Default) {
+            telephonyManager?.setMobileDataPolicyEnabled(
+                    TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
+                    newState)
+            //TODO: setup backup calling
+        }
\ No newline at end of file
diff --git a/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt b/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt
new file mode 100644
index 0000000..4cb04b6
--- /dev/null
+++ b/src/com/android/settings/spa/network/SimOnboardingLabelSim.kt
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.SignalCellularAlt
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+import com.android.settings.network.SubscriptionUtil
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.dialog.AlertDialogButton
+import com.android.settingslib.spa.widget.dialog.rememberAlertDialogPresenter
+import com.android.settingslib.spa.widget.editor.SettingsOutlinedTextField
+
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spa.widget.scaffold.BottomAppBarButton
+import com.android.settingslib.spa.widget.scaffold.SuwScaffold
+import com.android.settingslib.spa.widget.ui.SettingsBody
+
+/**
+ * the sim onboarding label compose
+ */
+@Composable
+fun SimOnboardingLabelSimImpl(
+    nextAction: () -> Unit,
+    cancelAction: () -> Unit,
+    onboardingService: SimOnboardingService
+) {
+    SuwScaffold(
+        imageVector = Icons.Outlined.SignalCellularAlt,
+        title = stringResource(R.string.sim_onboarding_label_sim_title),
+        actionButton = BottomAppBarButton(
+            stringResource(R.string.sim_onboarding_next),
+            nextAction
+        ),
+        dismissButton = BottomAppBarButton(
+            stringResource(R.string.cancel),
+            cancelAction
+        ),
+    ) {
+        labelSimBody(onboardingService)
+    }
+}
+
+@Composable
+private fun labelSimBody(onboardingService: SimOnboardingService) {
+    Column(Modifier.padding(SettingsDimension.itemPadding)) {
+        SettingsBody(stringResource(R.string.sim_onboarding_label_sim_msg))
+    }
+
+    for (subInfo in onboardingService.getSelectableSubscriptionInfo()) {
+        var titleSimName by remember {
+            mutableStateOf(
+                onboardingService.getSubscriptionInfoDisplayName(subInfo)
+            )
+        }
+        var summaryNumber = subInfo.number
+            // TODO using the SubscriptionUtil.getFormattedPhoneNumber
+        val alertDialogPresenter = rememberAlertDialogPresenter(
+            confirmButton = AlertDialogButton(
+                stringResource(R.string.mobile_network_sim_name_rename)
+            ) {
+                onboardingService.addItemForRenaming(subInfo, titleSimName)
+            },
+            dismissButton = AlertDialogButton(stringResource(R.string.cancel)) {
+                titleSimName = onboardingService.getSubscriptionInfoDisplayName(subInfo)
+            },
+            title = stringResource(R.string.sim_onboarding_label_sim_dialog_title),
+            text = {
+                Text(summaryNumber)
+                SettingsOutlinedTextField(
+                    value = titleSimName,
+                    label = stringResource(R.string.sim_onboarding_label_sim_dialog_label),
+                    enabled = true
+                ) {
+                    titleSimName = it
+                }
+            },
+        )
+        Preference(object : PreferenceModel {
+            override val title = titleSimName
+            override val summary: () -> String
+                get() = { summaryNumber }
+            override val onClick = alertDialogPresenter::open
+        })
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt b/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt
new file mode 100644
index 0000000..e46dc2e
--- /dev/null
+++ b/src/com/android/settings/spa/network/SimOnboardingPageProvider.kt
@@ -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.spa.network
+
+
+import android.app.Activity
+import android.content.Context
+import android.content.ContextWrapper
+import android.os.Bundle
+import androidx.annotation.VisibleForTesting
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.platform.LocalContext
+import androidx.navigation.NavHostController
+import androidx.navigation.NavType
+import androidx.navigation.compose.NavHost
+import androidx.navigation.compose.composable
+import androidx.navigation.compose.rememberNavController
+import androidx.navigation.navArgument
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+import com.android.settingslib.spa.framework.common.SettingsEntryBuilder
+import com.android.settingslib.spa.framework.common.SettingsPageProvider
+import com.android.settingslib.spa.framework.common.createSettingsPage
+import com.android.settingslib.spa.framework.compose.navigator
+
+import com.android.settingslib.spa.widget.preference.Preference
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+
+const val SUB_ID = "subId"
+
+enum class SimOnboardingScreen(val stringResId: Int) {
+    LabelSim(R.string.sim_onboarding_label_sim_title),
+    SelectSim(R.string.sim_onboarding_select_sim_title),
+    PrimarySim(R.string.sim_onboarding_primary_sim_title)
+}
+
+/**
+ * Showing the sim onboarding which is the process flow of sim switching on.
+ */
+object SimOnboardingPageProvider : SettingsPageProvider {
+    override val name = "SimOnboardingPageProvider"
+    override val parameter = listOf(
+        navArgument(SUB_ID) { type = NavType.IntType },
+    )
+
+    private val owner = createSettingsPage()
+    @VisibleForTesting
+    var onboardingService: SimOnboardingService = SimOnboardingService()
+
+    fun buildInjectEntry() = SettingsEntryBuilder.createInject(owner = owner)
+        .setUiLayoutFn {
+            // never using
+            Preference(object : PreferenceModel {
+                override val title = name
+                override val onClick = navigator(getRoute(-1))
+            })
+        }
+
+    @Composable
+    override fun Page(arguments: Bundle?) {
+        initServiceData(arguments!!.getInt(SUB_ID))
+        PageImpl(onboardingService,rememberNavController())
+    }
+
+    fun getRoute(
+        subId: Int
+    ): String = "${name}/$subId"
+
+    @Composable
+    fun initServiceData(targetSubId: Int) {
+        onboardingService.initData(targetSubId, LocalContext.current)
+    }
+}
+
+private fun Context.getActivity(): Activity? = when (this) {
+    is Activity -> this
+    is ContextWrapper -> baseContext.getActivity()
+    else -> null
+}
+
+@Composable
+fun PageImpl(onboardingService:SimOnboardingService,navHostController: NavHostController) {
+    val context = LocalContext.current
+    var previousPageOfOnboarding: () -> Unit = { context.getActivity()?.finish() }
+
+    NavHost(
+        navController = navHostController,
+        startDestination = SimOnboardingScreen.LabelSim.name
+    ) {
+        composable(route = SimOnboardingScreen.LabelSim.name) {
+            val nextPage =
+                // Adding more conditions
+                if (onboardingService.isMultipleEnabledProfilesSupported) {
+                    SimOnboardingScreen.SelectSim.name
+                } else {
+                    SimOnboardingScreen.PrimarySim.name
+                }
+            SimOnboardingLabelSimImpl(
+                nextAction = { navHostController.navigate(nextPage) },
+                cancelAction = previousPageOfOnboarding,
+                onboardingService = onboardingService
+            )
+        }
+        composable(route = SimOnboardingScreen.PrimarySim.name) {
+            SimOnboardingPrimarySimImpl(
+                nextAction = {
+                    //go back and activate sim
+                },
+                cancelAction = previousPageOfOnboarding,
+                onboardingService = onboardingService
+            )
+        }
+        composable(route = SimOnboardingScreen.SelectSim.name) {
+            SimOnboardingSelectSimImpl(
+                nextAction = { navHostController.navigate(SimOnboardingScreen.PrimarySim.name) },
+                cancelAction = previousPageOfOnboarding,
+                onboardingService = onboardingService
+            )
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/spa/network/SimOnboardingPrimarySim.kt b/src/com/android/settings/spa/network/SimOnboardingPrimarySim.kt
new file mode 100644
index 0000000..5752a4f
--- /dev/null
+++ b/src/com/android/settings/spa/network/SimOnboardingPrimarySim.kt
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.automirrored.outlined.Message
+import androidx.compose.material.icons.outlined.DataUsage
+import androidx.compose.material.icons.outlined.SignalCellularAlt
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.MutableIntState
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableIntStateOf
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.res.vectorResource
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.preference.ListPreference
+import com.android.settingslib.spa.widget.preference.ListPreferenceModel
+import com.android.settingslib.spa.widget.preference.ListPreferenceOption
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import com.android.settingslib.spa.widget.scaffold.BottomAppBarButton
+import com.android.settingslib.spa.widget.scaffold.SuwScaffold
+import com.android.settingslib.spa.widget.ui.SettingsBody
+import com.android.settingslib.spa.widget.ui.SettingsIcon
+
+/**
+ * the sim onboarding primary sim compose
+ */
+@Composable
+fun SimOnboardingPrimarySimImpl(
+    nextAction: () -> Unit,
+    cancelAction: () -> Unit,
+    onboardingService: SimOnboardingService
+) {
+    SuwScaffold(
+        imageVector = Icons.Outlined.SignalCellularAlt,
+        title = stringResource(id = R.string.sim_onboarding_primary_sim_title),
+        actionButton = BottomAppBarButton(
+            stringResource(id = R.string.done),
+            nextAction
+        ),
+        dismissButton = BottomAppBarButton(
+            stringResource(id = R.string.cancel),
+            cancelAction
+        ),
+    ) {
+        primarySimBody(onboardingService)
+    }
+}
+
+@Composable
+private fun primarySimBody(onboardingService: SimOnboardingService) {
+    //TODO: Load the status from the frameworks
+    var callsSelectedId = rememberSaveable { mutableIntStateOf(1) }
+    var textsSelectedId = rememberSaveable { mutableIntStateOf(1) }
+    var mobileDataSelectedId = rememberSaveable { mutableIntStateOf(1) }
+    var automaticDataChecked by rememberSaveable { mutableStateOf(true) }
+
+    Column(Modifier.padding(SettingsDimension.itemPadding)) {
+        SettingsBody(stringResource(id = R.string.sim_onboarding_primary_sim_msg))
+    }
+    var selectableSubscriptionInfo = onboardingService.getSelectableSubscriptionInfo()
+    var list = listOf(ListPreferenceOption(id = -1, text = "Loading"))
+    if (selectableSubscriptionInfo.size >= 2) {
+        list = listOf(
+            ListPreferenceOption(
+                id = selectableSubscriptionInfo[0].subscriptionId,
+                text = "${selectableSubscriptionInfo[0].displayName}"
+            ),
+            ListPreferenceOption(
+                id = selectableSubscriptionInfo[1].subscriptionId,
+                text = "${selectableSubscriptionInfo[1].displayName}"
+            ),
+            ListPreferenceOption(
+                id = -1,
+                text = stringResource(id = R.string.sim_calls_ask_first_prefs_title)
+            ),
+        )
+    } else {
+        // set all of primary sim items' enable as false and showing that sim.
+    }
+    createPrimarySimListPreference(
+        stringResource(id = R.string.primary_sim_calls_title),
+        list,
+        callsSelectedId,
+        ImageVector.vectorResource(R.drawable.ic_phone),
+        onIdSelected = { callsSelectedId.intValue = it }
+    )
+    createPrimarySimListPreference(
+        stringResource(id = R.string.primary_sim_texts_title),
+        list,
+        textsSelectedId,
+        Icons.AutoMirrored.Outlined.Message,
+        onIdSelected = { textsSelectedId.intValue = it }
+    )
+
+    createPrimarySimListPreference(
+            stringResource(id = R.string.mobile_data_settings_title),
+            list,
+            mobileDataSelectedId,
+        Icons.Outlined.DataUsage,
+            onIdSelected = { mobileDataSelectedId.intValue = it }
+    )
+
+    val autoDataTitle = stringResource(id = R.string.primary_sim_automatic_data_title)
+    val autoDataSummary = stringResource(id = R.string.primary_sim_automatic_data_msg)
+    SwitchPreference(remember {
+        object : SwitchPreferenceModel {
+            override val title = autoDataTitle
+            override val summary = { autoDataSummary }
+            override val checked = { automaticDataChecked }
+            override val onCheckedChange =
+                { newChecked: Boolean -> automaticDataChecked = newChecked }
+        }
+    })
+}
+
+@Composable
+fun createPrimarySimListPreference(
+        title: String,
+        list: List<ListPreferenceOption>,
+        selectedId: MutableIntState,
+        icon: ImageVector,
+        enable: Boolean = true,
+        onIdSelected: (id: Int) -> Unit
+) = ListPreference(remember {
+    object : ListPreferenceModel {
+        override val title = title
+        override val options = list
+        override val selectedId = selectedId
+        override val onIdSelected = onIdSelected
+        override val icon = @Composable {
+            SettingsIcon(icon)
+        }
+        override val enabled: () -> Boolean
+            get() = { enable }
+    }
+})
\ No newline at end of file
diff --git a/src/com/android/settings/spa/network/SimOnboardingSelectSim.kt b/src/com/android/settings/spa/network/SimOnboardingSelectSim.kt
new file mode 100644
index 0000000..1955d13
--- /dev/null
+++ b/src/com/android/settings/spa/network/SimOnboardingSelectSim.kt
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.SignalCellularAlt
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.res.stringResource
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.widget.preference.CheckboxPreference
+import com.android.settingslib.spa.widget.preference.CheckboxPreferenceModel
+
+import com.android.settingslib.spa.widget.scaffold.BottomAppBarButton
+import com.android.settingslib.spa.widget.scaffold.SuwScaffold
+import com.android.settingslib.spa.widget.ui.SettingsBody
+
+/**
+ * the sim onboarding select sim compose
+ */
+@Composable
+fun SimOnboardingSelectSimImpl(
+    nextAction: () -> Unit,
+    cancelAction: () -> Unit,
+    onboardingService: SimOnboardingService
+) {
+    SuwScaffold(
+        imageVector = Icons.Outlined.SignalCellularAlt,
+        title = stringResource(id = R.string.sim_onboarding_select_sim_title),
+        actionButton = BottomAppBarButton(
+            stringResource(id = R.string.sim_onboarding_next),
+            nextAction
+        ),
+        dismissButton = BottomAppBarButton(
+            stringResource(id = R.string.cancel),
+            cancelAction
+        ),
+    ) {
+        selectSimBody(onboardingService)
+    }
+}
+
+@Composable
+private fun selectSimBody(onboardingService: SimOnboardingService) {
+    Column(Modifier.padding(SettingsDimension.itemPadding)) {
+        SettingsBody(stringResource(id = R.string.sim_onboarding_select_sim_msg))
+    }
+    for (subInfo in onboardingService.getSelectableSubscriptionInfo()) {
+        var title = onboardingService.getSubscriptionInfoDisplayName(subInfo)
+        var summaryNumber =
+            subInfo.number // TODO using the SubscriptionUtil.getFormattedPhoneNumber
+        var changeable = subInfo.isActive
+        var checked by rememberSaveable { mutableStateOf(!subInfo.isActive) }
+
+        CheckboxPreference(remember {
+            object : CheckboxPreferenceModel {
+                override val title = title
+                override val summary: () -> String
+                    get() = { summaryNumber }
+                override val checked = { checked }
+                override val changeable = { changeable }
+                override val onCheckedChange = { newChecked: Boolean -> checked = newChecked }
+            }
+        })
+    }
+}
\ No newline at end of file
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/AppNotificationRepository.kt b/src/com/android/settings/spa/notification/AppNotificationRepository.kt
index f35d308..d0e700a 100644
--- a/src/com/android/settings/spa/notification/AppNotificationRepository.kt
+++ b/src/com/android/settings/spa/notification/AppNotificationRepository.kt
@@ -27,6 +27,7 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import android.os.Build
+import android.os.IUserManager
 import android.os.RemoteException
 import android.os.ServiceManager
 import android.util.Log
@@ -66,6 +67,9 @@
     private val notificationManager: INotificationManager = INotificationManager.Stub.asInterface(
         ServiceManager.getService(Context.NOTIFICATION_SERVICE)
     ),
+    private val userManager: IUserManager = IUserManager.Stub.asInterface(
+            ServiceManager.getService(Context.USER_SERVICE)
+    ),
 ) : IAppNotificationRepository {
     fun getAggregatedUsageEvents(userIdFlow: Flow<Int>): Flow<Map<String, NotificationSentState>> =
         userIdFlow.map { userId ->
@@ -122,6 +126,15 @@
         }
     }
 
+    fun isUserUnlocked(user: Int): Boolean {
+        return try {
+            userManager.isUserUnlocked(user)
+        } catch (e: Exception) {
+            Log.w(TAG, "Error calling UserManager", e)
+            false
+        }
+    }
+
     override fun getNotificationSummary(app: ApplicationInfo): String {
         if (!isEnabled(app)) return context.getString(R.string.notifications_disabled)
         val channelCount = getChannelCount(app)
diff --git a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
index 028b2f4..9f949c4 100644
--- a/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
+++ b/src/com/android/settings/spa/notification/AppNotificationsListModel.kt
@@ -21,25 +21,28 @@
 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
 import com.android.settingslib.spaprivileged.model.app.AppRecord
+import com.android.settingslib.spaprivileged.model.app.userId
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
-import com.android.settingslib.spaprivileged.template.app.AppListSwitchItem
+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,21 +94,30 @@
     }.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> {
+        val options = mutableListOf(SpinnerItem.AllApps, SpinnerItem.TurnedOff)
+        if (repository.isUserUnlocked(recordList[0].app.userId)) {
+            options.add(0, SpinnerItem.MostRecent)
+            options.add(1, SpinnerItem.MostFrequent)
+        }
+
+        return options.map {
+            SpinnerOption(
+                    id = it.ordinal,
+                    text = context.getString(it.stringResId),
+            )
         }
     }
 
-    override fun getSpinnerOptions(recordList: List<AppNotificationsRecord>): List<SpinnerOption> =
-        SpinnerItem.values().map {
-            SpinnerOption(
-                id = it.ordinal,
-                text = context.getString(it.stringResId),
-            )
-        }
 
     private fun formatLastSent(lastSent: Long) =
         StringUtil.formatRelativeTime(
@@ -117,12 +129,15 @@
 
     @Composable
     override fun AppListItemModel<AppNotificationsRecord>.AppItem() {
-        AppListSwitchItem(
-            onClick = { navigateToAppNotificationSettings(app = record.app) },
-            checked = record.controller.isEnabled.observeAsState(),
-            changeable = produceState(initialValue = false) {
+        val changeable by produceState(initialValue = false) {
+            withContext(Dispatchers.Default) {
                 value = repository.isChangeable(record.app)
-            },
+            }
+        }
+        AppListTwoTargetSwitchItem(
+            onClick = { navigateToAppNotificationSettings(app = record.app) },
+            checked = record.controller.isEnabled.observeAsCallback(),
+            changeable = { changeable },
             onCheckedChange = record.controller::setEnabled,
         )
     }
@@ -145,6 +160,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 942bcc4..3573e25 100644
--- a/src/com/android/settings/spa/system/AppLanguagesListModel.kt
+++ b/src/com/android/settings/spa/system/AppLanguagesListModel.kt
@@ -23,10 +23,9 @@
 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.ExperimentalLifecycleComposeApi
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
 import com.android.settings.R
 import com.android.settings.applications.AppLocaleUtil
@@ -79,14 +78,15 @@
         recordListFlow: Flow<List<AppLanguagesRecord>>,
     ) = recordListFlow.filterItem { it.isAppLocaleSupported }
 
-    @OptIn(ExperimentalLifecycleComposeApi::class)
     @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/support/SupportDashboardActivity.java b/src/com/android/settings/support/SupportDashboardActivity.java
index 4654858..dc77dd4 100644
--- a/src/com/android/settings/support/SupportDashboardActivity.java
+++ b/src/com/android/settings/support/SupportDashboardActivity.java
@@ -42,8 +42,8 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        SupportFeatureProvider supportFeatureProvider = FeatureFactory.getFactory(this)
-                .getSupportFeatureProvider(this);
+        SupportFeatureProvider supportFeatureProvider = FeatureFactory.getFeatureFactory()
+                .getSupportFeatureProvider();
 
         // try to launch support if we have the feature provider
         if (supportFeatureProvider != null) {
diff --git a/src/com/android/settings/support/SupportPreferenceController.java b/src/com/android/settings/support/SupportPreferenceController.java
index 793842f..8351e1d 100644
--- a/src/com/android/settings/support/SupportPreferenceController.java
+++ b/src/com/android/settings/support/SupportPreferenceController.java
@@ -34,8 +34,7 @@
 
     public SupportPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        mSupportFeatureProvider = FeatureFactory.getFactory(context)
-                .getSupportFeatureProvider(context);
+        mSupportFeatureProvider = FeatureFactory.getFeatureFactory().getSupportFeatureProvider();
     }
 
     public void setActivity(Activity activity) {
diff --git a/src/com/android/settings/support/actionbar/HelpMenuController.java b/src/com/android/settings/support/actionbar/HelpMenuController.java
index 498cc3e..7e1f460 100644
--- a/src/com/android/settings/support/actionbar/HelpMenuController.java
+++ b/src/com/android/settings/support/actionbar/HelpMenuController.java
@@ -18,12 +18,12 @@
 
 import static com.android.settings.support.actionbar.HelpResourceProvider.HELP_URI_RESOURCE_KEY;
 
-import android.annotation.NonNull;
 import android.app.Activity;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuInflater;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 
 import com.android.settingslib.HelpUtils;
diff --git a/src/com/android/settings/survey/SurveyMixin.java b/src/com/android/settings/survey/SurveyMixin.java
index 2f68de6..0768e80 100644
--- a/src/com/android/settings/survey/SurveyMixin.java
+++ b/src/com/android/settings/survey/SurveyMixin.java
@@ -54,7 +54,7 @@
         // guard against the activity not existing yet
         if (activity != null) {
             SurveyFeatureProvider provider =
-                    FeatureFactory.getFactory(activity).getSurveyFeatureProvider(activity);
+                    FeatureFactory.getFeatureFactory().getSurveyFeatureProvider(activity);
             if (provider != null) {
                 provider.sendActivityIfAvailable(mName);
             }
diff --git a/src/com/android/settings/system/ClientInitiatedActionRepository.kt b/src/com/android/settings/system/ClientInitiatedActionRepository.kt
new file mode 100644
index 0000000..715acfa
--- /dev/null
+++ b/src/com/android/settings/system/ClientInitiatedActionRepository.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.system
+
+import android.content.Context
+import android.content.Intent
+import android.telephony.CarrierConfigManager
+import android.util.Log
+import com.android.settings.network.telephony.safeGetConfig
+
+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.safeGetConfig(
+                keys = listOf(
+                    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/DeveloperOptionsController.kt b/src/com/android/settings/system/DeveloperOptionsController.kt
new file mode 100644
index 0000000..6874ec7
--- /dev/null
+++ b/src/com/android/settings/system/DeveloperOptionsController.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.system
+
+import android.app.settings.SettingsEnums
+import android.content.Context
+import android.os.Build
+import android.os.UserManager
+import android.provider.Settings
+import androidx.annotation.VisibleForTesting
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.res.vectorResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import com.android.settings.R
+import com.android.settings.core.SubSettingLauncher
+import com.android.settings.development.DevelopmentSettingsDashboardFragment
+import com.android.settings.spa.preference.ComposePreferenceController
+import com.android.settingslib.spa.widget.preference.PreferenceModel
+import com.android.settingslib.spa.widget.ui.SettingsIcon
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.android.settingslib.spaprivileged.model.enterprise.Restrictions
+import com.android.settingslib.spaprivileged.settingsprovider.settingsGlobalBooleanFlow
+import com.android.settingslib.spaprivileged.template.preference.RestrictedPreference
+
+class DeveloperOptionsController(context: Context, preferenceKey: String) :
+    ComposePreferenceController(context, preferenceKey) {
+
+    override fun getAvailabilityStatus() =
+        if (mContext.userManager.isAdminUser) AVAILABLE
+        else DISABLED_FOR_USER
+
+    private val isDevelopmentSettingsEnabledFlow = context.settingsGlobalBooleanFlow(
+        name = Settings.Global.DEVELOPMENT_SETTINGS_ENABLED,
+        defaultValue = Build.IS_ENG,
+    )
+
+    @Composable
+    override fun Content() {
+        val isDevelopmentSettingsEnabled by isDevelopmentSettingsEnabledFlow
+            .collectAsStateWithLifecycle(initialValue = false)
+        if (isDevelopmentSettingsEnabled) {
+            DeveloperOptionsPreference()
+        }
+    }
+
+    @VisibleForTesting
+    @Composable
+    fun DeveloperOptionsPreference() {
+        RestrictedPreference(
+            model = object : PreferenceModel {
+                override val title =
+                    stringResource(com.android.settingslib.R.string.development_settings_title)
+                override val icon = @Composable {
+                    SettingsIcon(ImageVector.vectorResource(R.drawable.ic_settings_development))
+                }
+                override val onClick = {
+                    SubSettingLauncher(mContext).apply {
+                        setDestination(DevelopmentSettingsDashboardFragment::class.qualifiedName)
+                        setSourceMetricsCategory(SettingsEnums.SETTINGS_SYSTEM_CATEGORY)
+                    }.launch()
+                }
+            },
+            restrictions = Restrictions(keys = listOf(UserManager.DISALLOW_DEBUGGING_FEATURES)),
+        )
+    }
+}
diff --git a/src/com/android/settings/system/FactoryResetPreferenceController.java b/src/com/android/settings/system/FactoryResetPreferenceController.java
index 6e010c1..6d81179 100644
--- a/src/com/android/settings/system/FactoryResetPreferenceController.java
+++ b/src/com/android/settings/system/FactoryResetPreferenceController.java
@@ -15,21 +15,37 @@
  */
 package com.android.settings.system;
 
+import android.Manifest;
 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.internal.annotations.VisibleForTesting;
 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";
+
+    @VisibleForTesting
+    static final String ACTION_PREPARE_FACTORY_RESET =
+            "com.android.settings.ACTION_PREPARE_FACTORY_RESET";
+
     private final UserManager mUm;
 
+    @VisibleForTesting
+    ActivityResultLauncher<Intent> mFactoryResetPreparationLauncher;
+
     public FactoryResetPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
@@ -44,10 +60,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(Manifest.permission.PREPARE_FACTORY_RESET) && 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/SystemDashboardFragment.java b/src/com/android/settings/system/SystemDashboardFragment.java
index eed9814..678b675 100644
--- a/src/com/android/settings/system/SystemDashboardFragment.java
+++ b/src/com/android/settings/system/SystemDashboardFragment.java
@@ -16,31 +16,22 @@
 package com.android.settings.system;
 
 import android.app.settings.SettingsEnums;
-import android.content.Context;
 import android.os.Bundle;
-import android.provider.SearchIndexableResource;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
 
-import java.util.Arrays;
-import java.util.List;
-
 @SearchIndexable
 public class SystemDashboardFragment extends DashboardFragment {
 
     private static final String TAG = "SystemDashboardFrag";
 
-    public static final String EXTRA_SHOW_AWARE_DISABLED = "show_aware_dialog_disabled";
-
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -50,17 +41,6 @@
         if (getVisiblePreferenceCount(screen) == screen.getInitialExpandedChildrenCount() + 1) {
             screen.setInitialExpandedChildrenCount(Integer.MAX_VALUE);
         }
-
-        showRestrictionDialog();
-    }
-
-    @VisibleForTesting
-    public void showRestrictionDialog() {
-        final Bundle args = getArguments();
-        if (args != null && args.getBoolean(EXTRA_SHOW_AWARE_DISABLED, false)) {
-            FeatureFactory.getFactory(getContext()).getAwareFeatureProvider()
-                    .showRestrictionDialog(this);
-        }
     }
 
     @Override
@@ -100,13 +80,5 @@
      * For Search.
      */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.system_dashboard_fragment;
-                    return Arrays.asList(sir);
-                }
-            };
-}
\ No newline at end of file
+            new BaseSearchIndexProvider(R.xml.system_dashboard_fragment);
+}
diff --git a/src/com/android/settings/system/SystemUpdateManagerExt.kt b/src/com/android/settings/system/SystemUpdateManagerExt.kt
new file mode 100644
index 0000000..8ddf174
--- /dev/null
+++ b/src/com/android/settings/system/SystemUpdateManagerExt.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.system
+
+import android.content.Context
+import android.os.Bundle
+import android.os.SystemUpdateManager
+import android.util.Log
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
+
+private const val TAG = "SystemUpdateManagerExt"
+
+/**
+ * Gets the system update status.
+ *
+ * Note: [SystemUpdateManager.retrieveSystemUpdateInfo] must be called on worker thread to avoid
+ * StrictMode violation.
+ */
+suspend fun Context.getSystemUpdateInfo(): Bundle? = withContext(Dispatchers.Default) {
+    val updateManager = getSystemService(SystemUpdateManager::class.java)!!
+    try {
+        updateManager.retrieveSystemUpdateInfo()
+    } catch (e: Exception) {
+        Log.w(TAG, "Error getting system update info.")
+        null
+    }
+}
diff --git a/src/com/android/settings/system/SystemUpdatePreferenceController.java b/src/com/android/settings/system/SystemUpdatePreferenceController.java
deleted file mode 100644
index b2a22ff..0000000
--- a/src/com/android/settings/system/SystemUpdatePreferenceController.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF 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 static android.content.Context.CARRIER_CONFIG_SERVICE;
-import static android.content.Context.SYSTEM_UPDATE_SERVICE;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.os.SystemUpdateManager;
-import android.os.UserManager;
-import android.telephony.CarrierConfigManager;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.core.BasePreferenceController;
-
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.FutureTask;
-
-public class SystemUpdatePreferenceController extends BasePreferenceController {
-
-    private static final String TAG = "SysUpdatePrefContr";
-
-    private static final String KEY_SYSTEM_UPDATE_SETTINGS = "system_update_settings";
-
-    private final UserManager mUm;
-    private final SystemUpdateManager mUpdateManager;
-
-    public SystemUpdatePreferenceController(Context context) {
-        super(context, KEY_SYSTEM_UPDATE_SETTINGS);
-        mUm = UserManager.get(context);
-        mUpdateManager = (SystemUpdateManager) context.getSystemService(SYSTEM_UPDATE_SERVICE);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return mContext.getResources().getBoolean(R.bool.config_show_system_update_settings)
-                && mUm.isAdminUser()
-                ? AVAILABLE
-                : UNSUPPORTED_ON_DEVICE;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        if (isAvailable()) {
-            Utils.updatePreferenceToSpecificActivityOrRemove(mContext, screen,
-                    getPreferenceKey(),
-                    Utils.UPDATE_PREFERENCE_FLAG_SET_TITLE_TO_MATCHING_ACTIVITY);
-        }
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (TextUtils.equals(getPreferenceKey(), preference.getKey())) {
-            CarrierConfigManager configManager =
-                    (CarrierConfigManager) mContext.getSystemService(CARRIER_CONFIG_SERVICE);
-            PersistableBundle b = configManager.getConfig();
-            if (b != null && b.getBoolean(CarrierConfigManager.KEY_CI_ACTION_ON_SYS_UPDATE_BOOL)) {
-                ciActionOnSysUpdate(b);
-            }
-        }
-        // always return false here because this handler does not want to block other handlers.
-        return false;
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        CharSequence summary = mContext.getString(R.string.android_version_summary,
-                Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY);
-        final FutureTask<Bundle> bundleFutureTask = new FutureTask<>(
-                // Put the API call in a future to avoid StrictMode violation.
-                () -> mUpdateManager.retrieveSystemUpdateInfo());
-        final Bundle updateInfo;
-        try {
-            bundleFutureTask.run();
-            updateInfo = bundleFutureTask.get();
-        } catch (InterruptedException | ExecutionException e) {
-            Log.w(TAG, "Error getting system update info.");
-            return summary;
-        }
-        switch (updateInfo.getInt(SystemUpdateManager.KEY_STATUS)) {
-            case SystemUpdateManager.STATUS_WAITING_DOWNLOAD:
-            case SystemUpdateManager.STATUS_IN_PROGRESS:
-            case SystemUpdateManager.STATUS_WAITING_INSTALL:
-            case SystemUpdateManager.STATUS_WAITING_REBOOT:
-                summary = mContext.getText(R.string.android_version_pending_update_summary);
-                break;
-            case SystemUpdateManager.STATUS_UNKNOWN:
-                Log.d(TAG, "Update statue unknown");
-                // fall through to next branch
-            case SystemUpdateManager.STATUS_IDLE:
-                final String version = updateInfo.getString(SystemUpdateManager.KEY_TITLE);
-                if (!TextUtils.isEmpty(version)) {
-                    summary = mContext.getString(R.string.android_version_summary, version);
-                }
-                break;
-        }
-        return summary;
-    }
-
-    /**
-     * Trigger client initiated action (send intent) on system update
-     */
-    private void ciActionOnSysUpdate(PersistableBundle b) {
-        String intentStr = b.getString(CarrierConfigManager.
-                KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING);
-        if (!TextUtils.isEmpty(intentStr)) {
-            String extra = b.getString(CarrierConfigManager.
-                    KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING);
-            String extraVal = b.getString(CarrierConfigManager.
-                    KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING);
-
-            Intent intent = new Intent(intentStr);
-            if (!TextUtils.isEmpty(extra)) {
-                intent.putExtra(extra, extraVal);
-            }
-            Log.d(TAG, "ciActionOnSysUpdate: broadcasting intent " + intentStr +
-                    " with extra " + extra + ", " + extraVal);
-            intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
-            mContext.getApplicationContext().sendBroadcast(intent);
-        }
-    }
-}
diff --git a/src/com/android/settings/system/SystemUpdatePreferenceController.kt b/src/com/android/settings/system/SystemUpdatePreferenceController.kt
new file mode 100644
index 0000000..87a402e
--- /dev/null
+++ b/src/com/android/settings/system/SystemUpdatePreferenceController.kt
@@ -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.system
+
+import android.content.Context
+import android.os.Build
+import android.os.SystemUpdateManager
+import android.os.UserManager
+import android.util.Log
+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.settingslib.spaprivileged.framework.common.userManager
+import kotlinx.coroutines.launch
+
+open class SystemUpdatePreferenceController(context: Context, preferenceKey: String) :
+    BasePreferenceController(context, preferenceKey) {
+    private val userManager: UserManager = context.userManager
+    private val systemUpdateRepository = SystemUpdateRepository(context)
+    private val clientInitiatedActionRepository = ClientInitiatedActionRepository(context)
+    private lateinit var preference: Preference
+
+    override fun getAvailabilityStatus() =
+        if (mContext.resources.getBoolean(R.bool.config_show_system_update_settings) &&
+            userManager.isAdminUser
+        ) AVAILABLE else UNSUPPORTED_ON_DEVICE
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+        if (isAvailable) {
+            val intent = systemUpdateRepository.getSystemUpdateIntent()
+            if (intent != null) {  // Replace the intent with this specific activity
+                preference.intent = intent
+            } else { // Did not find a matching activity, so remove the preference
+                screen.removePreference(preference)
+            }
+        }
+    }
+
+    override fun handlePreferenceTreeClick(preference: Preference): Boolean {
+        if (preferenceKey == preference.key) {
+            clientInitiatedActionRepository.onSystemUpdate()
+        }
+        // always return false here because this handler does not want to block other handlers.
+        return false
+    }
+
+    override fun onViewCreated(viewLifecycleOwner: LifecycleOwner) {
+        viewLifecycleOwner.lifecycleScope.launch {
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
+                preference.summary = calculateSummary()
+            }
+        }
+    }
+
+    private suspend fun calculateSummary(): String {
+        val updateInfo = mContext.getSystemUpdateInfo() ?: return getReleaseVersionSummary()
+
+        val status = updateInfo.getInt(SystemUpdateManager.KEY_STATUS)
+        if (status == SystemUpdateManager.STATUS_UNKNOWN) {
+            Log.d(TAG, "Update statue unknown")
+        }
+        when (status) {
+            SystemUpdateManager.STATUS_WAITING_DOWNLOAD,
+            SystemUpdateManager.STATUS_IN_PROGRESS,
+            SystemUpdateManager.STATUS_WAITING_INSTALL,
+            SystemUpdateManager.STATUS_WAITING_REBOOT -> {
+                return mContext.getString(R.string.android_version_pending_update_summary)
+            }
+
+            SystemUpdateManager.STATUS_IDLE,
+            SystemUpdateManager.STATUS_UNKNOWN -> {
+                val version = updateInfo.getString(SystemUpdateManager.KEY_TITLE)
+                if (!version.isNullOrEmpty()) {
+                    return mContext.getString(R.string.android_version_summary, version)
+                }
+            }
+        }
+        return getReleaseVersionSummary()
+    }
+
+    private fun getReleaseVersionSummary(): String = mContext.getString(
+        R.string.android_version_summary,
+        Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY,
+    )
+
+    companion object {
+        private const val TAG = "SysUpdatePrefContr"
+    }
+}
diff --git a/src/com/android/settings/system/SystemUpdateRepository.kt b/src/com/android/settings/system/SystemUpdateRepository.kt
new file mode 100644
index 0000000..f8804be
--- /dev/null
+++ b/src/com/android/settings/system/SystemUpdateRepository.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.system
+
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.provider.Settings
+
+class SystemUpdateRepository(context: Context) {
+    private val packageManager = context.packageManager
+
+    /**
+     * Finds a matching activity for the system update intent.
+     */
+    fun getSystemUpdateIntent(): Intent? {
+        val intent = Intent(Settings.ACTION_SYSTEM_UPDATE_SETTINGS)
+        return packageManager.resolveActivity(intent, PackageManager.MATCH_SYSTEM_ONLY)
+            ?.activityInfo
+            ?.let { activityInfo ->
+                Intent().setClassName(activityInfo.packageName, activityInfo.name)
+            }
+    }
+}
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index 9f1d2f3..8ff0159 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -548,7 +548,7 @@
         CharSequence[] entries = new CharSequence[availableLangs.size() + 1];
         CharSequence[] entryValues = new CharSequence[availableLangs.size() + 1];
 
-        entries[0] = getActivity().getString(R.string.tts_lang_use_system);
+        entries[0] = getActivity().getString(com.android.settingslib.R.string.tts_lang_use_system);
         entryValues[0] = "";
 
         int i = 1;
@@ -570,7 +570,7 @@
     private void setLocalePreference(int index) {
         if (index < 0) {
             mLocalePreference.setValue("");
-            mLocalePreference.setSummary(R.string.tts_lang_not_selected);
+            mLocalePreference.setSummary(com.android.settingslib.R.string.tts_lang_not_selected);
         } else {
             mLocalePreference.setValueIndex(index);
             mLocalePreference.setSummary(mLocalePreference.getEntries()[index]);
@@ -583,9 +583,9 @@
             try {
                 final String currentLang = mTts.getLanguage().getISO3Language();
                 String[] strings = getActivity().getResources().getStringArray(
-                        R.array.tts_demo_strings);
+                        com.android.settingslib.R.array.tts_demo_strings);
                 String[] langs = getActivity().getResources().getStringArray(
-                        R.array.tts_demo_string_langs);
+                        com.android.settingslib.R.array.tts_demo_string_langs);
 
                 for (int i = 0; i < strings.length; ++i) {
                     if (langs[i].equals(currentLang)) {
@@ -597,7 +597,7 @@
                 // Ignore and fall back to default sample string
             }
         }
-        return getString(R.string.tts_default_sample_string);
+        return getString(com.android.settingslib.R.string.tts_default_sample_string);
     }
 
     private boolean isNetworkRequiredForSynthesis() {
@@ -746,7 +746,8 @@
     private void displayNetworkAlert() {
         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
         builder.setTitle(android.R.string.dialog_alert_title)
-                .setMessage(getActivity().getString(R.string.tts_engine_network_required))
+                .setMessage(getActivity()
+                        .getString(com.android.settingslib.R.string.tts_engine_network_required))
                 .setCancelable(false)
                 .setPositiveButton(android.R.string.ok, null);
 
@@ -805,7 +806,7 @@
             } else {
                 Log.e(TAG, "settingsIntent is null");
             }
-            FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
+            FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                     .logClickedPreference(p, getMetricsCategory());
         }
     }
diff --git a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
index 6a1b9bb..f6416db 100644
--- a/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
+++ b/src/com/android/settings/tts/TtsEnginePreferenceFragment.java
@@ -152,7 +152,8 @@
         final AlertDialog dialog = new AlertDialog.Builder(getPrefContext())
                 .setTitle(android.R.string.dialog_alert_title)
                 .setMessage(mContext.getString(
-                        R.string.tts_engine_security_warning, info.loadLabel()))
+                        com.android.settingslib.R.string.tts_engine_security_warning,
+                        info.loadLabel()))
                 .setCancelable(true)
                 .setPositiveButton(android.R.string.ok, positiveOnClickListener)
                 .setNegativeButton(android.R.string.cancel, null)
@@ -164,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/MultiUserPreferenceController.java b/src/com/android/settings/users/MultiUserPreferenceController.java
new file mode 100644
index 0000000..2eb57ec
--- /dev/null
+++ b/src/com/android/settings/users/MultiUserPreferenceController.java
@@ -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.
+ */
+
+package com.android.settings.users;
+
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+
+public class MultiUserPreferenceController extends BasePreferenceController {
+
+    public MultiUserPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return (UserHandle.MU_ENABLED && UserManager.supportsMultipleUsers()
+                && !Utils.isMonkeyRunning()) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public CharSequence getSummary() {
+        UserManager um = mContext.getSystemService(UserManager.class);
+        UserInfo info = um.getUserInfo(UserHandle.myUserId());
+        return mContext.getString(R.string.users_summary, info.name);
+    }
+}
diff --git a/src/com/android/settings/users/UserDetailsSettings.java b/src/com/android/settings/users/UserDetailsSettings.java
index 402d4b1..a030d86 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). */
@@ -376,7 +376,9 @@
             if (!Utils.isVoiceCapable(context)) { // no telephony
                 removePreference(KEY_ENABLE_TELEPHONY);
             }
-
+            if (mUserInfo.isMain()) {
+                removePreference(KEY_ENABLE_TELEPHONY);
+            }
             if (mUserInfo.isRestricted()) {
                 removePreference(KEY_ENABLE_TELEPHONY);
                 if (isNewUser) {
@@ -474,9 +476,12 @@
 
     private void enableCallsAndSms(boolean enabled) {
         mPhonePref.setChecked(enabled);
-        UserHandle userHandle = UserHandle.of(mUserInfo.id);
-        mUserManager.setUserRestriction(UserManager.DISALLOW_OUTGOING_CALLS, !enabled, userHandle);
-        mUserManager.setUserRestriction(UserManager.DISALLOW_SMS, !enabled, userHandle);
+        int[] userProfiles = mUserManager.getProfileIdsWithDisabled(mUserInfo.id);
+        for (int userId : userProfiles) {
+            UserHandle user = UserHandle.of(userId);
+            mUserManager.setUserRestriction(UserManager.DISALLOW_OUTGOING_CALLS, !enabled, user);
+            mUserManager.setUserRestriction(UserManager.DISALLOW_SMS, !enabled, user);
+        }
     }
 
     /**
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index b0816fd..d39d980 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -35,6 +35,7 @@
 import android.graphics.BlendMode;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.LayerDrawable;
+import android.multiuser.Flags;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
@@ -892,13 +893,24 @@
                                         UserIcons.convertToBitmapAtUserIconSize(
                                                 activity.getResources(), newUserIcon)));
                         mMePreference.setIcon(newUserIcon);
+                        if (Flags.avatarSync()) {
+                            final String pkg = getString(R.string.config_avatar_picker_package);
+                            final String action = pkg + ".set.confirm";
+                            activity.sendBroadcast(new Intent(action).setPackage(pkg));
+                        }
                     }
 
                     if (!TextUtils.isEmpty(newUserName) && !newUserName.equals(user.name)) {
                         mMePreference.setTitle(newUserName);
                         mUserManager.setUserName(user.id, newUserName);
                     }
-                }, null);
+                }, () -> {
+                    if (Flags.avatarSync()) {
+                        final String pkg = getString(R.string.config_avatar_picker_package);
+                        final String action = pkg + ".set.cancel";
+                        activity.sendBroadcast(new Intent(action).setPackage(pkg));
+                    }
+                });
     }
 
     private Dialog buildAddUserDialog(int userType) {
@@ -1004,9 +1016,9 @@
             mAddingUser = true;
             mAddingUserName = userType == USER_TYPE_USER
                     ? (mPendingUserName != null ? mPendingUserName.toString()
-                    : getString(R.string.user_new_user_name))
+                    : getString(com.android.settingslib.R.string.user_new_user_name))
                     : (mPendingUserName != null ? mPendingUserName.toString()
-                            : getString(R.string.user_new_profile_name));
+                            : getString(com.android.settingslib.R.string.user_new_profile_name));
         }
 
         mUserCreatingDialog = new UserCreatingDialog(getActivity());
@@ -1357,13 +1369,14 @@
         String guestExitSummary;
         if (mUserCaps.mIsEphemeral) {
             guestExitSummary = getContext().getString(
-                    R.string.guest_notification_ephemeral);
+                    com.android.settingslib.R.string.guest_notification_ephemeral);
         } else if (isGuestFirstLogin) {
             guestExitSummary = getContext().getString(
-                    R.string.guest_notification_non_ephemeral);
+                    com.android.settingslib.R.string.guest_notification_non_ephemeral);
         } else {
             guestExitSummary = getContext().getString(
-                    R.string.guest_notification_non_ephemeral_non_first_login);
+                    com.android.settingslib.R
+                            .string.guest_notification_non_ephemeral_non_first_login);
         }
         mGuestExitPreference.setSummary(guestExitSummary);
     }
@@ -1394,7 +1407,8 @@
             pref.setOnPreferenceClickListener(this);
             pref.setEnabled(canOpenUserDetails);
             pref.setSelectable(true);
-            Drawable icon = getContext().getDrawable(R.drawable.ic_account_circle_outline);
+            Drawable icon = getContext().getDrawable(
+                    com.android.settingslib.R.drawable.ic_account_circle_outline);
             icon.setTint(
                     getColorAttrDefaultColor(getContext(), android.R.attr.colorControlNormal));
             pref.setIcon(encircleUserIcon(
@@ -1439,14 +1453,15 @@
                 && mUserManager.canAddMoreUsers(UserManager.USER_TYPE_FULL_GUEST)
                 && WizardManagerHelper.isDeviceProvisioned(context)
                 && mUserCaps.mUserSwitcherEnabled) {
-            Drawable icon = context.getDrawable(R.drawable.ic_account_circle);
+            Drawable icon = context.getDrawable(
+                    com.android.settingslib.R.drawable.ic_account_circle);
             mAddGuest.setIcon(centerAndTint(icon));
             isVisible = true;
             mAddGuest.setVisible(true);
             mAddGuest.setSelectable(true);
             if (mGuestUserAutoCreated && mGuestCreationScheduled.get()) {
                 mAddGuest.setTitle(com.android.internal.R.string.guest_name);
-                mAddGuest.setSummary(R.string.guest_resetting);
+                mAddGuest.setSummary(com.android.settingslib.R.string.guest_resetting);
                 mAddGuest.setEnabled(false);
             } else {
                 mAddGuest.setTitle(com.android.settingslib.R.string.guest_new_guest);
@@ -1460,14 +1475,16 @@
 
     private void updateAddUser(Context context) {
         updateAddUserCommon(context, mAddUser, mUserCaps.mCanAddRestrictedProfile);
-        Drawable icon = context.getDrawable(R.drawable.ic_account_circle_filled);
+        Drawable icon = context.getDrawable(
+                com.android.settingslib.R.drawable.ic_account_circle_filled);
         mAddUser.setIcon(centerAndTint(icon));
     }
 
     private void updateAddSupervisedUser(Context context) {
         if (!TextUtils.isEmpty(mConfigSupervisedUserCreationPackage)) {
             updateAddUserCommon(context, mAddSupervisedUser, false);
-            Drawable icon = context.getDrawable(R.drawable.ic_add_supervised_user);
+            Drawable icon = context.getDrawable(
+                    com.android.settingslib.R.drawable.ic_add_supervised_user);
             mAddSupervisedUser.setIcon(centerAndTint(icon));
         } else {
             mAddSupervisedUser.setVisible(false);
@@ -1505,7 +1522,8 @@
         icon.setTintBlendMode(BlendMode.SRC_IN);
         icon.setTint(getColorAttrDefaultColor(getContext(), android.R.attr.textColorPrimary));
 
-        Drawable bg = getContext().getDrawable(R.drawable.user_avatar_bg).mutate();
+        Drawable bg = getContext().getDrawable(com.android.settingslib.R.drawable.user_avatar_bg)
+                .mutate();
         LayerDrawable ld = new LayerDrawable(new Drawable[] {bg, icon});
         int size = getContext().getResources().getDimensionPixelSize(
                 R.dimen.multiple_users_avatar_size);
@@ -1718,6 +1736,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/ContentCaptureUtils.java b/src/com/android/settings/utils/ContentCaptureUtils.java
index b01749f..2445e87 100644
--- a/src/com/android/settings/utils/ContentCaptureUtils.java
+++ b/src/com/android/settings/utils/ContentCaptureUtils.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.utils;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.ComponentName;
 import android.content.Context;
 import android.os.IBinder;
@@ -27,6 +25,9 @@
 import android.util.Log;
 import android.view.contentcapture.ContentCaptureManager;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 public final class ContentCaptureUtils {
 
     private static final String TAG = ContentCaptureUtils.class.getSimpleName();
diff --git a/src/com/android/settings/utils/FileSizeFormatter.java b/src/com/android/settings/utils/FileSizeFormatter.java
index 9ef0fe2..5950d5d 100644
--- a/src/com/android/settings/utils/FileSizeFormatter.java
+++ b/src/com/android/settings/utils/FileSizeFormatter.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.utils;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.Context;
 import android.icu.text.DecimalFormat;
 import android.icu.text.MeasureFormat;
@@ -28,6 +26,9 @@
 import android.text.TextUtils;
 import android.view.View;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import java.math.BigDecimal;
 import java.util.Locale;
 
diff --git a/src/com/android/settings/utils/ManagedServiceSettings.java b/src/com/android/settings/utils/ManagedServiceSettings.java
index a1e2b05..d5f0040 100644
--- a/src/com/android/settings/utils/ManagedServiceSettings.java
+++ b/src/com/android/settings/utils/ManagedServiceSettings.java
@@ -18,7 +18,6 @@
 
 import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_NOTIFICATION_LISTENER_BLOCKED;
 
-import android.annotation.Nullable;
 import android.app.Dialog;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
@@ -34,10 +33,11 @@
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 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/uwb/UwbPreferenceController.java b/src/com/android/settings/uwb/UwbPreferenceController.java
index 7f19765..59b3534 100644
--- a/src/com/android/settings/uwb/UwbPreferenceController.java
+++ b/src/com/android/settings/uwb/UwbPreferenceController.java
@@ -79,6 +79,7 @@
                 mStateReason = reason;
                 updateState(mPreference);
             };
+            mState = mUwbManager.getAdapterState();
         } else {
             mUwbManager = null;
             mAirplaneModeChangedReceiver = null;
@@ -183,5 +184,10 @@
     public int getSliceHighlightMenuRes() {
         return R.string.menu_key_connected_devices;
     }
+
+    @Override
+    public boolean hasAsyncUpdate() {
+        return true;
+    }
 }
 
diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java
index 7d17541..00c8f59 100644
--- a/src/com/android/settings/vpn2/AppManagementFragment.java
+++ b/src/com/android/settings/vpn2/AppManagementFragment.java
@@ -18,7 +18,6 @@
 import static android.app.AppOpsManager.OP_ACTIVATE_PLATFORM_VPN;
 import static android.app.AppOpsManager.OP_ACTIVATE_VPN;
 
-import android.annotation.NonNull;
 import android.app.AppOpsManager;
 import android.app.Dialog;
 import android.app.admin.DevicePolicyManager;
@@ -35,6 +34,7 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.DialogFragment;
@@ -123,7 +123,7 @@
         mPackageManager = getContext().getPackageManager();
         mDevicePolicyManager = getContext().getSystemService(DevicePolicyManager.class);
         mVpnManager = getContext().getSystemService(VpnManager.class);
-        mFeatureProvider = FeatureFactory.getFactory(getContext()).getAdvancedVpnFeatureProvider();
+        mFeatureProvider = FeatureFactory.getFeatureFactory().getAdvancedVpnFeatureProvider();
 
         mPreferenceVersion = findPreference(KEY_VERSION);
         mPreferenceAlwaysOn = (RestrictedSwitchPreference) findPreference(KEY_ALWAYS_ON_VPN);
diff --git a/src/com/android/settings/vpn2/AppVpnInfo.java b/src/com/android/settings/vpn2/AppVpnInfo.java
index f225470..be938a6 100644
--- a/src/com/android/settings/vpn2/AppVpnInfo.java
+++ b/src/com/android/settings/vpn2/AppVpnInfo.java
@@ -1,6 +1,6 @@
 package com.android.settings.vpn2;
 
-import android.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 import com.android.internal.util.Preconditions;
 
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..559003a 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 unusedDialog = new AlertDialog.Builder(mContext)
+                        .setMessage(R.string.vpn_start_unsupported)
+                        .setPositiveButton(android.R.string.ok, null)
+                        .show();
             }
         }
     }
diff --git a/src/com/android/settings/vpn2/OWNERS b/src/com/android/settings/vpn2/OWNERS
index 8465042..4135645 100644
--- a/src/com/android/settings/vpn2/OWNERS
+++ b/src/com/android/settings/vpn2/OWNERS
@@ -4,7 +4,6 @@
 maze@google.com
 reminv@google.com
 xiaom@google.com
-goldmanj@google.com
 hughchen@google.com
 robertluo@google.com
 timhypeng@google.com
diff --git a/src/com/android/settings/vpn2/VpnInfoPreference.java b/src/com/android/settings/vpn2/VpnInfoPreference.java
index cca45b5..9e70a5d 100644
--- a/src/com/android/settings/vpn2/VpnInfoPreference.java
+++ b/src/com/android/settings/vpn2/VpnInfoPreference.java
@@ -70,7 +70,8 @@
         }
 
         // Hide the divider from view
-        final View divider = holder.findViewById(R.id.two_target_divider);
+        final View divider =
+                holder.findViewById(com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
         divider.setVisibility(View.GONE);
     }
 
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index 8cec2f4..0ee21b9 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -129,7 +129,7 @@
         mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
         mConnectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
         mVpnManager = (VpnManager) getSystemService(Context.VPN_MANAGEMENT_SERVICE);
-        mFeatureProvider = FeatureFactory.getFactory(getContext()).getAdvancedVpnFeatureProvider();
+        mFeatureProvider = FeatureFactory.getFeatureFactory().getAdvancedVpnFeatureProvider();
         mIsAdvancedVpnSupported = mFeatureProvider.isAdvancedVpnSupported(getContext());
 
         mUnavailable = isUiRestricted();
@@ -141,6 +141,11 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
+
+        if (!getContext().getResources().getBoolean(R.bool.config_show_vpn_options)) {
+            return;
+        }
+
         // 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(
@@ -191,7 +196,8 @@
         if (mUnavailable) {
             // Show a message to explain that VPN settings have been disabled
             if (!isUiRestrictedByOnlyAdmin()) {
-                getEmptyTextView().setText(R.string.vpn_settings_not_available);
+                getEmptyTextView()
+                        .setText(com.android.settingslib.R.string.vpn_settings_not_available);
             }
             getPreferenceScreen().removeAll();
             return;
diff --git a/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java b/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
index fd13586..05855e4 100644
--- a/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
+++ b/src/com/android/settings/webview/WebViewUpdateServiceWrapper.java
@@ -22,12 +22,13 @@
 import android.content.pm.PackageManager;
 import android.os.RemoteException;
 import android.util.Log;
+import android.webkit.IWebViewUpdateService;
 import android.webkit.UserPackage;
 import android.webkit.WebViewFactory;
 import android.webkit.WebViewProviderInfo;
 import android.widget.Toast;
 
-import com.android.settings.R;
+import androidx.annotation.Nullable;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -101,9 +102,29 @@
         // The user chose a package that became invalid since the list was last updated,
         // show a Toast to explain the situation.
         Toast toast = Toast.makeText(context,
-                R.string.select_webview_provider_toast_text, Toast.LENGTH_SHORT);
+                com.android.settingslib.R.string.select_webview_provider_toast_text,
+                Toast.LENGTH_SHORT);
         toast.show();
     }
 
+    /**
+     * Fetch the package name of the default WebView provider.
+     */
+    @Nullable
+    public String getDefaultWebViewPackageName() {
+        try {
+            IWebViewUpdateService service = WebViewFactory.getUpdateService();
+            if (service != null) {
+                WebViewProviderInfo provider = service.getDefaultWebViewPackage();
+                if (provider != null) {
+                    return provider.packageName;
+                }
+            }
+        } catch (RemoteException e) {
+            Log.e(TAG, "RemoteException when trying to fetch default WebView package Name", e);
+        }
+        return null;
+    }
+
     static final int PACKAGE_FLAGS = PackageManager.MATCH_ANY_USER;
 }
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/AppCheckBoxPreference.java b/src/com/android/settings/widget/AppCheckBoxPreference.java
index 3ce67eb..aa7e0e5 100644
--- a/src/com/android/settings/widget/AppCheckBoxPreference.java
+++ b/src/com/android/settings/widget/AppCheckBoxPreference.java
@@ -33,12 +33,12 @@
 public class AppCheckBoxPreference extends CheckBoxPreference {
     public AppCheckBoxPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
-        setLayoutResource(R.layout.preference_app);
+        setLayoutResource(com.android.settingslib.widget.preference.app.R.layout.preference_app);
     }
 
     public AppCheckBoxPreference(Context context) {
         super(context);
-        setLayoutResource(R.layout.preference_app);
+        setLayoutResource(com.android.settingslib.widget.preference.app.R.layout.preference_app);
     }
 
     @Override
diff --git a/src/com/android/settings/widget/BottomLabelLayout.java b/src/com/android/settings/widget/BottomLabelLayout.java
index 6323c4d..64f27aa 100644
--- a/src/com/android/settings/widget/BottomLabelLayout.java
+++ b/src/com/android/settings/widget/BottomLabelLayout.java
@@ -16,17 +16,15 @@
 
 package com.android.settings.widget;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.util.AttributeSet;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.LinearLayout;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
-import com.android.settingslib.R;
-
 /**
  * An extension of LinearLayout that automatically switches to vertical
  * orientation when it can't fit its child views horizontally.
@@ -85,7 +83,7 @@
         setOrientation(stacked ? LinearLayout.VERTICAL : LinearLayout.HORIZONTAL);
         setGravity(stacked ? Gravity.START : Gravity.BOTTOM);
 
-        final View spacer = findViewById(R.id.spacer);
+        final View spacer = findViewById(com.android.settings.R.id.spacer);
         if (spacer != null) {
             spacer.setVisibility(stacked ? View.GONE : View.VISIBLE);
         }
diff --git a/src/com/android/settings/widget/CardPreference.java b/src/com/android/settings/widget/CardPreference.java
deleted file mode 100644
index 61114d9..0000000
--- a/src/com/android/settings/widget/CardPreference.java
+++ /dev/null
@@ -1,170 +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.widget;
-
-import android.content.Context;
-import android.util.AttributeSet;
-import android.view.View;
-import android.widget.Button;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.R;
-
-import com.google.android.material.card.MaterialCardView;
-
-import java.util.Optional;
-
-/** Preference that wrapped by {@link MaterialCardView} */
-public class CardPreference extends Preference {
-
-    private View.OnClickListener mPrimaryBtnClickListener = null;
-    private View.OnClickListener mSecondaryBtnClickListener = null;
-
-    private String mPrimaryButtonText = null;
-    private String mSecondaryButtonText = null;
-
-    private Optional<Button> mPrimaryButton = Optional.empty();
-    private Optional<Button> mSecondaryButton = Optional.empty();
-    private Optional<View> mButtonsGroup = Optional.empty();
-
-    private boolean mPrimaryButtonVisible = false;
-    private boolean mSecondaryButtonVisible = false;
-
-    public CardPreference(Context context) {
-        this(context, null /* attrs */);
-    }
-
-    public CardPreference(Context context, AttributeSet attrs) {
-        super(context, attrs, R.attr.cardPreferenceStyle);
-    }
-
-    @Override
-    public void onBindViewHolder(PreferenceViewHolder holder) {
-        super.onBindViewHolder(holder);
-
-        initButtonsAndLayout(holder);
-    }
-
-    private void initButtonsAndLayout(PreferenceViewHolder holder) {
-        mPrimaryButton = Optional.ofNullable((Button) holder.findViewById(android.R.id.button1));
-        mSecondaryButton = Optional.ofNullable((Button) holder.findViewById(android.R.id.button2));
-        mButtonsGroup = Optional.ofNullable(holder.findViewById(R.id.card_preference_buttons));
-
-        setPrimaryButtonText(mPrimaryButtonText);
-        setPrimaryButtonClickListener(mPrimaryBtnClickListener);
-        setPrimaryButtonVisible(mPrimaryButtonVisible);
-        setSecondaryButtonText(mSecondaryButtonText);
-        setSecondaryButtonClickListener(mSecondaryBtnClickListener);
-        setSecondaryButtonVisible(mSecondaryButtonVisible);
-    }
-
-    /** Clear layout state if needed */
-    public void resetLayoutState() {
-        setPrimaryButtonVisible(false);
-        setSecondaryButtonVisible(false);
-    }
-
-    /**
-     * Register a callback to be invoked when the primary button is clicked.
-     *
-     * @param l the callback that will run
-     */
-    public void setPrimaryButtonClickListener(View.OnClickListener l) {
-        mPrimaryButton.ifPresent(button -> button.setOnClickListener(l));
-        mPrimaryBtnClickListener = l;
-    }
-
-    /**
-     * Register a callback to be invoked when the secondary button is clicked.
-     *
-     * @param l the callback that will run
-     */
-    public void setSecondaryButtonClickListener(View.OnClickListener l) {
-        mSecondaryButton.ifPresent(button -> button.setOnClickListener(l));
-        mSecondaryBtnClickListener = l;
-    }
-
-    /**
-     * Sets the text to be displayed on primary button.
-     *
-     * @param text text to be displayed
-     */
-    public void setPrimaryButtonText(String text) {
-        mPrimaryButton.ifPresent(button -> button.setText(text));
-        mPrimaryButtonText = text;
-    }
-
-    /**
-     * Sets the text to be displayed on secondary button.
-     *
-     * @param text text to be displayed
-     */
-    public void setSecondaryButtonText(String text) {
-        mSecondaryButton.ifPresent(button -> button.setText(text));
-        mSecondaryButtonText = text;
-    }
-
-    /**
-     * Set the visible on the primary button.
-     *
-     * @param visible {@code true} for visible
-     */
-    public void setPrimaryButtonVisible(boolean visible) {
-        mPrimaryButton.ifPresent(
-                button -> button.setVisibility(visible ? View.VISIBLE : View.GONE));
-        mPrimaryButtonVisible = visible;
-        updateButtonGroupsVisibility();
-    }
-
-    /**
-     * Set the visible on the secondary button.
-     *
-     * @param visible {@code true} for visible
-     */
-    public void setSecondaryButtonVisible(boolean visible) {
-        mSecondaryButton.ifPresent(
-                button -> button.setVisibility(visible ? View.VISIBLE : View.GONE));
-        mSecondaryButtonVisible = visible;
-        updateButtonGroupsVisibility();
-    }
-
-    /**
-     * Sets the text of content description on primary button.
-     *
-     * @param text text for the content description
-     */
-    public void setPrimaryButtonContentDescription(String text) {
-        mPrimaryButton.ifPresent(button -> button.setContentDescription(text));
-    }
-
-    /**
-     * Sets the text of content description on secondary button.
-     *
-     * @param text text for the content description
-     */
-    public void setSecondaryButtonContentDescription(String text) {
-        mSecondaryButton.ifPresent(button -> button.setContentDescription(text));
-    }
-
-    private void updateButtonGroupsVisibility() {
-        int visibility =
-                (mPrimaryButtonVisible || mSecondaryButtonVisible) ? View.VISIBLE : View.GONE;
-        mButtonsGroup.ifPresent(group -> group.setVisibility(visibility));
-    }
-}
diff --git a/src/com/android/settings/widget/CardPreference.kt b/src/com/android/settings/widget/CardPreference.kt
new file mode 100644
index 0000000..7122ac6
--- /dev/null
+++ b/src/com/android/settings/widget/CardPreference.kt
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget
+
+import android.content.Context
+import android.content.res.Resources
+import android.util.AttributeSet
+import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.vectorResource
+import com.android.settings.spa.preference.ComposePreference
+import com.android.settingslib.spa.widget.card.CardButton
+import com.android.settingslib.spa.widget.card.CardModel
+import com.android.settingslib.spa.widget.card.SettingsCard
+
+/** A preference for settings banner tips card. */
+class CardPreference
+@JvmOverloads
+constructor(
+    context: Context,
+    attr: AttributeSet? = null,
+) : ComposePreference(context, attr) {
+
+    /** A icon resource id for displaying icon on tips card. */
+    var iconResId: Int? = null
+
+    /** The primary button's text. */
+    var primaryButtonText: String = ""
+
+    /** The accessibility content description of the primary button. */
+    var primaryButtonContentDescription: String? = null
+
+    /** The action for click on primary button. */
+    var primaryButtonAction: () -> Unit = {}
+
+    /** The visibility of primary button on tips card. The default value is `false`. */
+    var primaryButtonVisibility: Boolean = false
+
+    /** The text on the second button of this [SettingsCard]. */
+    var secondaryButtonText: String = ""
+
+    /** The accessibility content description of the secondary button. */
+    var secondaryButtonContentDescription: String? = null
+
+    /** The action for click on secondary button. */
+    var secondaryButtonAction: () -> Unit = {}
+
+    /** The visibility of secondary button on tips card. The default value is `false`. */
+    var secondaryButtonVisibility: Boolean = false
+
+    private var onDismiss: (() -> Unit)? = null
+
+    /** Enable the dismiss button on tips card. */
+    fun enableDismiss(enable: Boolean) =
+        if (enable) onDismiss = { isVisible = false } else onDismiss = null
+
+    /** Clear layout state if needed. */
+    fun resetLayoutState() {
+        primaryButtonVisibility = false
+        secondaryButtonVisibility = false
+        notifyChanged()
+    }
+
+    /** Build the tips card content to apply any changes of this card's property. */
+    fun buildContent() {
+        setContent {
+            SettingsCard(
+                CardModel(
+                    title = title?.toString() ?: "",
+                    text = summary?.toString() ?: "",
+                    buttons = listOfNotNull(configPrimaryButton(), configSecondaryButton()),
+                    onDismiss = onDismiss,
+                    imageVector =
+                        iconResId
+                            ?.takeIf { it != Resources.ID_NULL }
+                            ?.let { ImageVector.vectorResource(it) },
+                )
+            )
+        }
+    }
+
+    private fun configPrimaryButton(): CardButton? {
+        return if (primaryButtonVisibility)
+            CardButton(
+                text = primaryButtonText,
+                contentDescription = primaryButtonContentDescription,
+                onClick = primaryButtonAction,
+            )
+        else null
+    }
+
+    private fun configSecondaryButton(): CardButton? {
+        return if (secondaryButtonVisibility)
+            CardButton(
+                text = secondaryButtonText,
+                contentDescription = secondaryButtonContentDescription,
+                onClick = secondaryButtonAction,
+            )
+        else null
+    }
+
+    override fun notifyChanged() {
+        buildContent()
+        super.notifyChanged()
+    }
+}
diff --git a/src/com/android/settings/widget/EmptyTextSettings.java b/src/com/android/settings/widget/EmptyTextSettings.java
index a6e5c60..ddd1370 100644
--- a/src/com/android/settings/widget/EmptyTextSettings.java
+++ b/src/com/android/settings/widget/EmptyTextSettings.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.widget;
 
-import android.annotation.Nullable;
 import android.os.Bundle;
 import android.util.TypedValue;
 import android.view.Gravity;
@@ -25,6 +24,8 @@
 import android.view.ViewGroup.LayoutParams;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 
diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java
index 8a2403c..c89b7bb 100644
--- a/src/com/android/settings/widget/EntityHeaderController.java
+++ b/src/com/android/settings/widget/EntityHeaderController.java
@@ -38,13 +38,11 @@
 import androidx.annotation.IntDef;
 import androidx.annotation.VisibleForTesting;
 import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.applications.ApplicationsState;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.LayoutPreference;
 
 import java.lang.annotation.Retention;
@@ -67,12 +65,9 @@
     private static final String TAG = "AppDetailFeature";
 
     private final Context mAppContext;
-    private final Activity mActivity;
     private final Fragment mFragment;
     private final int mMetricsCategory;
     private final View mHeader;
-    private Lifecycle mLifecycle;
-    private RecyclerView mRecyclerView;
     private Drawable mIcon;
     private int mPrefOrder = -1000;
     private String mIconContentDescription;
@@ -107,25 +102,19 @@
     }
 
     private EntityHeaderController(Activity activity, Fragment fragment, View header) {
-        mActivity = activity;
         mAppContext = activity.getApplicationContext();
         mFragment = fragment;
-        mMetricsCategory = FeatureFactory.getFactory(mAppContext).getMetricsFeatureProvider()
+        mMetricsCategory = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                 .getMetricsCategory(fragment);
         if (header != null) {
             mHeader = header;
         } else {
             mHeader = LayoutInflater.from(fragment.getContext())
-                    .inflate(R.layout.settings_entity_header, null /* root */);
+                    .inflate(com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header,
+                            null /* root */);
         }
     }
 
-    public EntityHeaderController setRecyclerView(RecyclerView recyclerView, Lifecycle lifecycle) {
-        mRecyclerView = recyclerView;
-        mLifecycle = lifecycle;
-        return this;
-    }
-
     /**
      * Set the icon in the header. Callers should also consider calling setIconContentDescription
      * to provide a description of this icon for accessibility purposes.
@@ -180,13 +169,6 @@
         return this;
     }
 
-    public EntityHeaderController setSecondSummary(PackageInfo packageInfo) {
-        if (packageInfo != null) {
-            mSummary = packageInfo.versionName;
-        }
-        return this;
-    }
-
     public EntityHeaderController setHasAppInfoLink(boolean hasAppInfoLink) {
         mHasAppInfoLink = hasAppInfoLink;
         return this;
@@ -233,8 +215,8 @@
     /**
      * Done mutating entity header, rebinds everything and return a new {@link LayoutPreference}.
      */
-    public LayoutPreference done(Activity activity, Context uiContext) {
-        final LayoutPreference pref = new LayoutPreference(uiContext, done(activity));
+    public LayoutPreference done(Context uiContext) {
+        final LayoutPreference pref = new LayoutPreference(uiContext, done());
         // Makes sure it's the first preference onscreen.
         pref.setOrder(mPrefOrder);
         pref.setSelectable(false);
@@ -246,7 +228,7 @@
     /**
      * Done mutating entity header, rebinds everything (optionally skip rebinding buttons).
      */
-    public View done(Activity activity, boolean rebindActions) {
+    public View done(boolean rebindActions) {
         ImageView iconView = mHeader.findViewById(R.id.entity_header_icon);
         if (iconView != null) {
             iconView.setImageDrawable(mIcon);
@@ -254,9 +236,9 @@
         }
         setText(R.id.entity_header_title, mLabel);
         setText(R.id.entity_header_summary, mSummary);
-        setText(R.id.entity_header_second_summary, mSecondSummary);
+        setText(com.android.settingslib.widget.preference.layout.R.id.entity_header_second_summary, mSecondSummary);
         if (mIsInstantApp) {
-            setText(R.id.install_type,
+            setText(com.android.settingslib.widget.preference.layout.R.id.install_type,
                     mHeader.getResources().getString(R.string.install_type_instant));
         }
 
@@ -271,7 +253,8 @@
      * Only binds entity header with button actions.
      */
     public EntityHeaderController bindHeaderButtons() {
-        final View entityHeaderContent = mHeader.findViewById(R.id.entity_header_content);
+        final View entityHeaderContent = mHeader.findViewById(
+                com.android.settingslib.widget.preference.layout.R.id.entity_header_content);
         final ImageButton button1 = mHeader.findViewById(android.R.id.button1);
         final ImageButton button2 = mHeader.findViewById(android.R.id.button2);
         bindAppInfoLink(entityHeaderContent);
@@ -301,8 +284,8 @@
      * Done mutating entity header, rebinds everything.
      */
     @VisibleForTesting
-    View done(Activity activity) {
-        return done(activity, true /* rebindActions */);
+    View done() {
+        return done(true /* rebindActions */);
     }
 
     private void bindButton(ImageButton button, @ActionType int action) {
@@ -325,7 +308,7 @@
                     button.setVisibility(View.GONE);
                 } else {
                     button.setOnClickListener(v -> {
-                        FeatureFactory.getFactory(mAppContext).getMetricsFeatureProvider()
+                        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
                                 .action(SettingsEnums.PAGE_UNKNOWN,
                                         SettingsEnums.ACTION_OPEN_APP_NOTIFICATION_SETTING,
                                         mMetricsCategory,
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/GenericSwitchController.java b/src/com/android/settings/widget/GenericSwitchController.java
index 819907a..c20f932 100644
--- a/src/com/android/settings/widget/GenericSwitchController.java
+++ b/src/com/android/settings/widget/GenericSwitchController.java
@@ -45,8 +45,7 @@
 
     private void setPreference(Preference preference) {
         mPreference = preference;
-        mMetricsFeatureProvider =
-                FeatureFactory.getFactory(preference.getContext()).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
diff --git a/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java b/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java
index a64ec89..7145460 100644
--- a/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java
+++ b/src/com/android/settings/widget/HighlightablePreferenceGroupAdapter.java
@@ -29,12 +29,14 @@
 import android.util.TypedValue;
 import android.view.View;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceGroupAdapter;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.PreferenceViewHolder;
 import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -122,6 +124,9 @@
                 && TextUtils.equals(mHighlightKey, getItem(position).getKey()))) {
             // This position should be highlighted. If it's highlighted before - skip animation.
             addHighlightBackground(holder, !mFadeInAnimated);
+            if (v != null) {
+                v.requestAccessibilityFocus();
+            }
         } else if (Boolean.TRUE.equals(v.getTag(R.id.preference_highlighted))) {
             // View with highlight is reused for a view that should not have highlight
             removeHighlightBackground(holder, false /* animate */);
@@ -156,15 +161,32 @@
         root.postDelayed(() -> {
             if (ensureHighlightPosition()) {
                 recyclerView.smoothScrollToPosition(mHighlightPosition);
+                highlightAndFocusTargetItem(recyclerView, mHighlightPosition);
             }
         }, DELAY_HIGHLIGHT_DURATION_MILLIS);
+    }
 
-        // Highlight preference after 900 milliseconds.
-        root.postDelayed(() -> {
-            if (ensureHighlightPosition()) {
-                notifyItemChanged(mHighlightPosition);
-            }
-        }, DELAY_COLLAPSE_DURATION_MILLIS + DELAY_HIGHLIGHT_DURATION_MILLIS);
+    private void highlightAndFocusTargetItem(RecyclerView recyclerView, int highlightPosition) {
+        ViewHolder target = recyclerView.findViewHolderForAdapterPosition(highlightPosition);
+        if (target != null) { // view already visible
+            notifyItemChanged(mHighlightPosition);
+            target.itemView.requestFocus();
+        } else { // otherwise we're about to scroll to that view (but we might not be scrolling yet)
+            recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
+                @Override
+                public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
+                    if (newState == RecyclerView.SCROLL_STATE_IDLE) {
+                        notifyItemChanged(mHighlightPosition);
+                        ViewHolder target = recyclerView
+                                .findViewHolderForAdapterPosition(highlightPosition);
+                        if (target != null) {
+                            target.itemView.requestFocus();
+                        }
+                        recyclerView.removeOnScrollListener(this);
+                    }
+                }
+            });
+        }
     }
 
     /**
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/MatchParentShrinkingLinearLayout.java b/src/com/android/settings/widget/MatchParentShrinkingLinearLayout.java
index 271378a..3fee01f 100644
--- a/src/com/android/settings/widget/MatchParentShrinkingLinearLayout.java
+++ b/src/com/android/settings/widget/MatchParentShrinkingLinearLayout.java
@@ -17,8 +17,6 @@
 package com.android.settings.widget;
 
 import android.annotation.IntDef;
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.graphics.Canvas;
@@ -30,6 +28,9 @@
 import android.view.ViewGroup;
 import android.view.ViewHierarchyEncoder;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import com.android.internal.R;
 
 import java.lang.annotation.Retention;
diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java
index 9450bb9..6d94fc9 100644
--- a/src/com/android/settings/widget/RadioButtonPickerFragment.java
+++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.widget;
 
+import android.annotation.AnyRes;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -38,6 +39,7 @@
 import com.android.settings.core.PreferenceXmlParserUtils;
 import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
 import com.android.settingslib.widget.CandidateInfo;
+import com.android.settingslib.widget.IllustrationPreference;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.xmlpull.v1.XmlPullParserException;
@@ -64,7 +66,7 @@
     protected int mUserId;
     private int mIllustrationId;
     private int mIllustrationPreviewId;
-    private VideoPreference mVideoPreference;
+    private IllustrationType mIllustrationType;
 
     @Override
     public void onAttach(Context context) {
@@ -252,18 +254,41 @@
     /**
      * Allows you to set an illustration at the top of this screen. Set the illustration id to 0
      * if you want to remove the illustration.
-     * @param illustrationId The res id for the raw of the illustration.
-     * @param previewId The res id for the drawable of the illustration
+     *
+     * @param illustrationId   The res id for the raw of the illustration.
+     * @param previewId        The res id for the drawable of the illustration.
+     * @param illustrationType The illustration type for the raw of the illustration.
      */
-    protected void setIllustration(int illustrationId, int previewId) {
+    protected void setIllustration(@AnyRes int illustrationId, @AnyRes int previewId,
+            IllustrationType illustrationType) {
         mIllustrationId = illustrationId;
         mIllustrationPreviewId = previewId;
+        mIllustrationType = illustrationType;
+    }
+
+    /**
+     * Allows you to set an illustration at the top of this screen. Set the illustration id to 0
+     * if you want to remove the illustration.
+     *
+     * @param illustrationId   The res id for the raw of the illustration.
+     * @param illustrationType The illustration type for the raw of the illustration.
+     */
+    protected void setIllustration(@AnyRes int illustrationId, IllustrationType illustrationType) {
+        setIllustration(illustrationId, 0, illustrationType);
     }
 
     private void addIllustration(PreferenceScreen screen) {
-        mVideoPreference = new VideoPreference(getContext());
-        mVideoPreference.setVideo(mIllustrationId, mIllustrationPreviewId);
-        screen.addPreference(mVideoPreference);
+        switch (mIllustrationType) {
+            case LOTTIE_ANIMATION:
+                IllustrationPreference illustrationPreference = new IllustrationPreference(
+                        getContext());
+                illustrationPreference.setLottieAnimationResId(mIllustrationId);
+                screen.addPreference(illustrationPreference);
+                break;
+            default:
+                throw new IllegalArgumentException(
+                        "Invalid illustration type: " + mIllustrationType);
+        }
     }
 
     protected abstract List<? extends CandidateInfo> getCandidates();
@@ -284,4 +309,8 @@
         return 0;
     }
 
+    protected enum IllustrationType {
+        LOTTIE_ANIMATION
+    }
+
 }
diff --git a/src/com/android/settings/widget/RestrictedButton.java b/src/com/android/settings/widget/RestrictedButton.java
new file mode 100644
index 0000000..778ea34
--- /dev/null
+++ b/src/com/android/settings/widget/RestrictedButton.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.widget;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.AttributeSet;
+import android.widget.Button;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+
+/**
+ * A preference with a plus button on the side representing an "add" action. The plus button will
+ * only be visible when a non-null click listener is registered.
+ */
+public class RestrictedButton extends Button {
+
+    private UserHandle mUserHandle;
+    private String mUserRestriction;
+
+    public RestrictedButton(Context context) {
+        super(context);
+    }
+
+    public RestrictedButton(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public RestrictedButton(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+    }
+
+    public RestrictedButton(Context context, AttributeSet attrs, int defStyleAttr,
+            int defStyleRes) {
+        super(context, attrs, defStyleAttr, defStyleRes);
+    }
+
+    @Override
+    public boolean performClick() {
+        EnforcedAdmin admin = getEnforcedAdmin();
+        if (admin != null) {
+            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, admin);
+            return false;
+        }
+        return super.performClick();
+    }
+
+    /** Initialize the button with {@link UserHandle} and a restriction */
+    public void init(UserHandle userHandle, String restriction) {
+        setAllowClickWhenDisabled(true);
+        mUserHandle = userHandle;
+        mUserRestriction = restriction;
+    }
+
+    /** Update the restriction state */
+    public void updateState() {
+        setEnabled(getEnforcedAdmin() == null);
+    }
+
+    private EnforcedAdmin getEnforcedAdmin() {
+        if (mUserHandle != null) {
+            EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+                    mContext, mUserRestriction, mUserHandle.getIdentifier());
+            if (admin != null) {
+                return admin;
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/settings/widget/SettingsMainSwitchBar.java b/src/com/android/settings/widget/SettingsMainSwitchBar.java
index 8b8a9ba..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;
@@ -68,7 +66,7 @@
     public SettingsMainSwitchBar(Context context, AttributeSet attrs, int defStyleAttr,
             int defStyleRes) {
         super(context, attrs, defStyleAttr, defStyleRes);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         addOnSwitchChangeListener((switchView, isChecked) -> logMetrics(isChecked));
     }
@@ -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 9fd8d06..9f6d787 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -19,12 +19,10 @@
 import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 
 import android.content.Context;
-import android.content.res.TypedArray;
-import android.text.TextUtils;
 import android.util.AttributeSet;
-import android.widget.Switch;
+import android.widget.CompoundButton;
+import android.widget.CompoundButton.OnCheckedChangeListener;
 
-import androidx.core.content.res.TypedArrayUtils;
 import androidx.preference.PreferenceViewHolder;
 import androidx.preference.TwoStatePreference;
 
@@ -32,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,17 +37,16 @@
 /**
  * SettingsMainSwitchPreference is a Preference with a customized Switch.
  * This component is used as the main switch of the page
- * to enable or disable the prefereces on the page.
+ * 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 CharSequence mTitle;
     private EnforcedAdmin mEnforcedAdmin;
     private RestrictedPreferenceHelper mRestrictedHelper;
 
@@ -82,7 +78,7 @@
         holder.setDividerAllowedAbove(false);
         holder.setDividerAllowedBelow(false);
 
-        if (mRestrictedHelper != null) {
+        if (mEnforcedAdmin == null && mRestrictedHelper != null) {
             mEnforcedAdmin = mRestrictedHelper.checkRestrictionEnforced();
         }
         mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
@@ -103,17 +99,6 @@
         mSwitchChangeListeners.add(this);
 
         if (attrs != null) {
-            final TypedArray a = context.obtainStyledAttributes(attrs,
-                    androidx.preference.R.styleable.Preference, 0/*defStyleAttr*/,
-                    0/*defStyleRes*/);
-            final CharSequence title = TypedArrayUtils.getText(a,
-                    androidx.preference.R.styleable.Preference_title,
-                    androidx.preference.R.styleable.Preference_android_title);
-            if (!TextUtils.isEmpty(title)) {
-                setTitle(title.toString());
-            }
-            a.recycle();
-
             mRestrictedHelper = new RestrictedPreferenceHelper(context, this, attrs);
         }
     }
@@ -135,16 +120,16 @@
 
     @Override
     public void setTitle(CharSequence title) {
-        mTitle = title;
+        super.setTitle(title);
         if (mMainSwitchBar != null) {
-            mMainSwitchBar.setTitle(mTitle);
+            mMainSwitchBar.setTitle(title);
         }
     }
 
     @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);
     }
 
     /**
@@ -212,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);
         }
@@ -224,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);
@@ -245,7 +230,7 @@
 
     private void initMainSwitchBar() {
         if (mMainSwitchBar != null) {
-            mMainSwitchBar.setTitle(mTitle);
+            mMainSwitchBar.setTitle(getTitle());
             mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
         }
     }
@@ -254,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/SingleTargetGearPreference.java b/src/com/android/settings/widget/SingleTargetGearPreference.java
index f6496ed..e6a833d 100644
--- a/src/com/android/settings/widget/SingleTargetGearPreference.java
+++ b/src/com/android/settings/widget/SingleTargetGearPreference.java
@@ -58,7 +58,8 @@
     @Override
     public void onBindViewHolder(PreferenceViewHolder holder) {
         super.onBindViewHolder(holder);
-        final View divider = holder.findViewById(com.android.settingslib.R.id.two_target_divider);
+        final View divider = holder.findViewById(
+                com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
         if (divider != null) {
             divider.setVisibility(View.INVISIBLE);
         }
diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java
deleted file mode 100644
index ad0294c..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.getFactory(context).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/TickButtonPreference.java b/src/com/android/settings/widget/TickButtonPreference.java
index c55da2c..b9b9b19 100644
--- a/src/com/android/settings/widget/TickButtonPreference.java
+++ b/src/com/android/settings/widget/TickButtonPreference.java
@@ -17,6 +17,7 @@
 package com.android.settings.widget;
 
 import android.content.Context;
+import android.util.AttributeSet;
 import android.view.View;
 import android.widget.ImageView;
 
@@ -32,6 +33,15 @@
 
     public TickButtonPreference(Context context) {
         super(context);
+        init(context, null);
+    }
+
+    public TickButtonPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init(context, attrs);
+    }
+
+    private void init(Context context, AttributeSet attrs) {
         setWidgetLayoutResource(R.layout.preference_check_icon);
     }
 
diff --git a/src/com/android/settings/widget/TintDrawable.java b/src/com/android/settings/widget/TintDrawable.java
index 13eb121..7b34890 100644
--- a/src/com/android/settings/widget/TintDrawable.java
+++ b/src/com/android/settings/widget/TintDrawable.java
@@ -16,15 +16,16 @@
 
 package com.android.settings.widget;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
+
 import android.content.res.ColorStateList;
 import android.content.res.Resources;
 import android.content.res.Resources.Theme;
 import android.content.res.TypedArray;
 import android.graphics.drawable.DrawableWrapper;
 import android.util.AttributeSet;
-import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import com.android.settings.R;
 
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/widget/UpdatableListPreferenceDialogFragment.java b/src/com/android/settings/widget/UpdatableListPreferenceDialogFragment.java
new file mode 100644
index 0000000..749b2e3
--- /dev/null
+++ b/src/com/android/settings/widget/UpdatableListPreferenceDialogFragment.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.res.TypedArray;
+import android.os.Bundle;
+import android.widget.ArrayAdapter;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.appcompat.app.AlertDialog.Builder;
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceDialogFragmentCompat;
+
+import com.android.settingslib.core.instrumentation.Instrumentable;
+
+import java.util.ArrayList;
+
+/**
+ * {@link PreferenceDialogFragmentCompat} that updates the available options
+ * when {@code onListPreferenceUpdated} is called."
+ */
+public class UpdatableListPreferenceDialogFragment extends PreferenceDialogFragmentCompat implements
+        Instrumentable {
+
+    private static final String SAVE_STATE_INDEX = "UpdatableListPreferenceDialogFragment.index";
+    private static final String SAVE_STATE_ENTRIES =
+            "UpdatableListPreferenceDialogFragment.entries";
+    private static final String SAVE_STATE_ENTRY_VALUES =
+            "UpdatableListPreferenceDialogFragment.entryValues";
+    private static final String METRICS_CATEGORY_KEY = "metrics_category_key";
+    private ArrayAdapter mAdapter;
+    private int mClickedDialogEntryIndex;
+    private ArrayList<CharSequence> mEntries;
+    private CharSequence[] mEntryValues;
+    private int mMetricsCategory = METRICS_CATEGORY_UNKNOWN;
+
+    /**
+     * Creates a new instance of {@link UpdatableListPreferenceDialogFragment}.
+     */
+    public static UpdatableListPreferenceDialogFragment newInstance(
+            String key, int metricsCategory) {
+        UpdatableListPreferenceDialogFragment fragment =
+                new UpdatableListPreferenceDialogFragment();
+        Bundle args = new Bundle(1);
+        args.putString(ARG_KEY, key);
+        args.putInt(METRICS_CATEGORY_KEY, metricsCategory);
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final Bundle bundle = getArguments();
+        mMetricsCategory =
+                bundle.getInt(METRICS_CATEGORY_KEY, METRICS_CATEGORY_UNKNOWN);
+        if (savedInstanceState == null) {
+            mEntries = new ArrayList<>();
+            setPreferenceData(getListPreference());
+        } else {
+            mClickedDialogEntryIndex = savedInstanceState.getInt(SAVE_STATE_INDEX, 0);
+            mEntries = savedInstanceState.getCharSequenceArrayList(SAVE_STATE_ENTRIES);
+            mEntryValues =
+                    savedInstanceState.getCharSequenceArray(SAVE_STATE_ENTRY_VALUES);
+        }
+    }
+
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        outState.putInt(SAVE_STATE_INDEX, mClickedDialogEntryIndex);
+        outState.putCharSequenceArrayList(SAVE_STATE_ENTRIES, mEntries);
+        outState.putCharSequenceArray(SAVE_STATE_ENTRY_VALUES, mEntryValues);
+    }
+
+    @Override
+    public void onDialogClosed(boolean positiveResult) {
+        if (positiveResult && mClickedDialogEntryIndex >= 0) {
+            final ListPreference preference = getListPreference();
+            final String value = mEntryValues[mClickedDialogEntryIndex].toString();
+            if (preference.callChangeListener(value)) {
+                preference.setValue(value);
+            }
+        }
+    }
+
+    @VisibleForTesting
+    void setAdapter(ArrayAdapter adapter) {
+        mAdapter = adapter;
+    }
+
+    @VisibleForTesting
+    void setEntries(ArrayList<CharSequence> entries) {
+        mEntries = entries;
+    }
+
+    @VisibleForTesting
+    ArrayAdapter getAdapter() {
+        return mAdapter;
+    }
+
+    @VisibleForTesting
+    void setMetricsCategory(Bundle bundle) {
+        mMetricsCategory =
+                bundle.getInt(METRICS_CATEGORY_KEY, METRICS_CATEGORY_UNKNOWN);
+    }
+
+    @Override
+    protected void onPrepareDialogBuilder(Builder builder) {
+        super.onPrepareDialogBuilder(builder);
+        final TypedArray a = getContext().obtainStyledAttributes(
+                null,
+                com.android.internal.R.styleable.AlertDialog,
+                com.android.internal.R.attr.alertDialogStyle, 0);
+
+        mAdapter = new ArrayAdapter<>(
+                getContext(),
+                a.getResourceId(
+                        com.android.internal.R.styleable.AlertDialog_singleChoiceItemLayout,
+                        com.android.internal.R.layout.select_dialog_singlechoice),
+                mEntries);
+
+        builder.setSingleChoiceItems(mAdapter, mClickedDialogEntryIndex,
+                (dialog, which) -> {
+                    mClickedDialogEntryIndex = which;
+                    onClick(dialog, -1);
+                    dialog.dismiss();
+                });
+        builder.setPositiveButton(null, null);
+        a.recycle();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return mMetricsCategory;
+    }
+
+    @VisibleForTesting
+    ListPreference getListPreference() {
+        return (ListPreference) getPreference();
+    }
+
+    private void setPreferenceData(ListPreference preference) {
+        mEntries.clear();
+        mClickedDialogEntryIndex = preference.findIndexOfValue(preference.getValue());
+        for (CharSequence entry : preference.getEntries()) {
+            mEntries.add(entry);
+        }
+        mEntryValues = preference.getEntryValues();
+    }
+
+    /**
+     * Update new data set for list preference.
+     */
+    public void onListPreferenceUpdated(ListPreference preference) {
+        if (mAdapter != null) {
+            setPreferenceData(preference);
+            mAdapter.notifyDataSetChanged();
+        }
+    }
+}
diff --git a/src/com/android/settings/widget/UsageGraph.java b/src/com/android/settings/widget/UsageGraph.java
index 11ebd21..c92ea1b 100644
--- a/src/com/android/settings/widget/UsageGraph.java
+++ b/src/com/android/settings/widget/UsageGraph.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.widget;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Canvas;
@@ -35,6 +34,7 @@
 import android.util.TypedValue;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
@@ -84,17 +84,21 @@
         mLinePaint.setStrokeCap(Cap.ROUND);
         mLinePaint.setStrokeJoin(Join.ROUND);
         mLinePaint.setAntiAlias(true);
-        mCornerRadius = resources.getDimensionPixelSize(R.dimen.usage_graph_line_corner_radius);
+        mCornerRadius = resources.getDimensionPixelSize(
+                com.android.settingslib.R.dimen.usage_graph_line_corner_radius);
         mLinePaint.setPathEffect(new CornerPathEffect(mCornerRadius));
-        mLinePaint.setStrokeWidth(resources.getDimensionPixelSize(R.dimen.usage_graph_line_width));
+        mLinePaint.setStrokeWidth(resources.getDimensionPixelSize(
+                com.android.settingslib.R.dimen.usage_graph_line_width));
 
         mFillPaint = new Paint(mLinePaint);
         mFillPaint.setStyle(Style.FILL);
 
         mDottedPaint = new Paint(mLinePaint);
         mDottedPaint.setStyle(Style.STROKE);
-        float dots = resources.getDimensionPixelSize(R.dimen.usage_graph_dot_size);
-        float interval = resources.getDimensionPixelSize(R.dimen.usage_graph_dot_interval);
+        float dots = resources.getDimensionPixelSize(
+                com.android.settingslib.R.dimen.usage_graph_dot_size);
+        float interval = resources.getDimensionPixelSize(
+                com.android.settingslib.R.dimen.usage_graph_dot_interval);
         mDottedPaint.setStrokeWidth(dots * 3);
         mDottedPaint.setPathEffect(new DashPathEffect(new float[] {dots, interval}, 0));
         mDottedPaint.setColor(context.getColor(R.color.usage_graph_dots));
@@ -103,7 +107,8 @@
         context.getTheme().resolveAttribute(com.android.internal.R.attr.listDivider, v, true);
         mDivider = context.getDrawable(v.resourceId);
         mTintedDivider = context.getDrawable(v.resourceId);
-        mDividerSize = resources.getDimensionPixelSize(R.dimen.usage_graph_divider_size);
+        mDividerSize = resources.getDimensionPixelSize(
+                com.android.settingslib.R.dimen.usage_graph_divider_size);
     }
 
     void clearPaths() {
diff --git a/src/com/android/settings/wifi/AddWifiNetworkPreference.java b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
index 6aafbca..999f4a4 100644
--- a/src/com/android/settings/wifi/AddWifiNetworkPreference.java
+++ b/src/com/android/settings/wifi/AddWifiNetworkPreference.java
@@ -20,10 +20,12 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.UserManager;
+import android.util.AttributeSet;
 import android.util.Log;
 import android.widget.ImageButton;
 
 import androidx.annotation.DrawableRes;
+import androidx.annotation.Nullable;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
@@ -40,8 +42,11 @@
     private final Drawable mScanIconDrawable;
 
     public AddWifiNetworkPreference(Context context) {
-        super(context);
+        this(context, null);
+    }
 
+    public AddWifiNetworkPreference(Context context, @Nullable AttributeSet attrs) {
+        super(context, attrs);
         setLayoutResource(com.android.settingslib.R.layout.preference_access_point);
         setWidgetLayoutResource(R.layout.wifi_button_preference_widget);
         setIcon(R.drawable.ic_add_24dp);
diff --git a/src/com/android/settings/wifi/ChangeWifiStateDetails.java b/src/com/android/settings/wifi/ChangeWifiStateDetails.java
index 9841615..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);
@@ -95,7 +95,7 @@
     protected void logSpecialPermissionChange(boolean newState, String packageName) {
         int logCategory = newState ? SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_ALLOW
                 : SettingsEnums.APP_SPECIAL_PERMISSION_SETTINGS_CHANGE_DENY;
-        FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider().action(getContext(),
+        FeatureFactory.getFeatureFactory().getMetricsFeatureProvider().action(getContext(),
                 logCategory, packageName);
     }
 
diff --git a/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java b/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java
index 29451bf..652d318 100644
--- a/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java
+++ b/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java
@@ -232,7 +232,7 @@
             }
         };
 
-        mNetworkDetailsTracker = FeatureFactory.getFactory(context)
+        mNetworkDetailsTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createNetworkDetailsTracker(
                         getSettingsLifecycle(),
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index 33f2827..2b3bedb 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -15,7 +15,6 @@
  */
 package com.android.settings.wifi;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
@@ -28,6 +27,7 @@
 import android.view.View;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
diff --git a/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java b/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java
index 54a4d04..cd0dad1 100644
--- a/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java
+++ b/src/com/android/settings/wifi/ConnectedWifiEntryPreference.java
@@ -56,7 +56,7 @@
         holder.findViewById(R.id.settings_button_no_background).setVisibility(
                 canSignIn ? View.INVISIBLE : View.VISIBLE);
         gear.setVisibility(canSignIn ? View.VISIBLE : View.INVISIBLE);
-        holder.findViewById(R.id.two_target_divider).setVisibility(
+        holder.findViewById(com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider).setVisibility(
                 canSignIn ? View.VISIBLE : View.INVISIBLE);
     }
 
diff --git a/src/com/android/settings/wifi/LinkablePreference.java b/src/com/android/settings/wifi/LinkablePreference.java
index d29482d..adcfe32 100644
--- a/src/com/android/settings/wifi/LinkablePreference.java
+++ b/src/com/android/settings/wifi/LinkablePreference.java
@@ -49,7 +49,8 @@
 
     public LinkablePreference(Context ctx, AttributeSet attrs) {
         this(ctx, attrs, TypedArrayUtils.getAttr(
-                ctx, R.attr.footerPreferenceStyle, android.R.attr.preferenceStyle));
+                ctx, com.android.settingslib.widget.theme.R.attr.footerPreferenceStyle,
+                android.R.attr.preferenceStyle));
     }
 
     public LinkablePreference(Context ctx) {
diff --git a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java
index 93d88e9..d1c3cac 100644
--- a/src/com/android/settings/wifi/NetworkRequestDialogFragment.java
+++ b/src/com/android/settings/wifi/NetworkRequestDialogFragment.java
@@ -112,7 +112,7 @@
             }
         };
         final Context context = getContext();
-        mWifiPickerTracker = FeatureFactory.getFactory(context)
+        mWifiPickerTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createWifiPickerTracker(getSettingsLifecycle(), context,
                         new Handler(Looper.getMainLooper()),
@@ -142,7 +142,7 @@
 
         // Prepares adapter.
         mDialogAdapter = new WifiEntryAdapter(context,
-                R.layout.preference_access_point, mFilteredWifiEntries);
+                com.android.settingslib.R.layout.preference_access_point, mFilteredWifiEntries);
 
         final AlertDialog.Builder builder = new AlertDialog.Builder(context)
                 .setCustomTitle(customTitle)
@@ -326,7 +326,7 @@
                 view = mInflater.inflate(mResourceId, parent, false);
 
                 final View divider = view.findViewById(
-                        com.android.settingslib.R.id.two_target_divider);
+                        com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
                 divider.setVisibility(View.GONE);
             }
 
diff --git a/src/com/android/settings/wifi/OWNERS b/src/com/android/settings/wifi/OWNERS
index 7f39cc7..ef870f0 100644
--- a/src/com/android/settings/wifi/OWNERS
+++ b/src/com/android/settings/wifi/OWNERS
@@ -2,6 +2,5 @@
 andychou@google.com
 arcwang@google.com
 changbetty@google.com
-goldmanj@google.com
 songferngwang@google.com
 wengsu@google.com
diff --git a/src/com/android/settings/wifi/WepNetworksPreferenceController.kt b/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
new file mode 100644
index 0000000..fca75a9
--- /dev/null
+++ b/src/com/android/settings/wifi/WepNetworksPreferenceController.kt
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi
+
+import android.content.Context
+import android.net.wifi.WifiManager
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.ui.res.stringResource
+import androidx.lifecycle.compose.collectAsStateWithLifecycle
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+import com.android.settings.R
+import com.android.settings.spa.preference.ComposePreferenceController
+import com.android.settingslib.spa.framework.compose.OverridableFlow
+import com.android.settingslib.spa.widget.preference.SwitchPreference
+import com.android.settingslib.spa.widget.preference.SwitchPreferenceModel
+import com.android.wifi.flags.Flags
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.asExecutor
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.flow.callbackFlow
+
+/** Controller that controls whether the Wi-Fi Wakeup feature should be enabled. */
+class WepNetworksPreferenceController(context: Context, preferenceKey: String) :
+    ComposePreferenceController(context, preferenceKey) {
+
+    private lateinit var preference: Preference
+
+    var wifiManager = context.getSystemService(WifiManager::class.java)!!
+
+    override fun displayPreference(screen: PreferenceScreen) {
+        super.displayPreference(screen)
+        preference = screen.findPreference(preferenceKey)!!
+    }
+
+    override fun getAvailabilityStatus() = if (Flags.wepUsage()) AVAILABLE
+    else UNSUPPORTED_ON_DEVICE
+
+    @Composable
+    override fun Content() {
+        val checked by wepAllowedFlow.flow.collectAsStateWithLifecycle(initialValue = null)
+        SwitchPreference(object : SwitchPreferenceModel {
+            override val title = stringResource(R.string.wifi_allow_wep_networks)
+            override val summary = { getSummary() }
+            override val checked = { checked }
+            override val changeable: () -> Boolean
+                get() = { carrierAllowed }
+            override val onCheckedChange: (Boolean) -> Unit = { newChecked ->
+                wifiManager.setWepAllowed(newChecked)
+                wepAllowedFlow.override(newChecked)
+            }
+        })
+    }
+
+    override fun getSummary(): String = mContext.getString(
+        if (carrierAllowed) {
+            R.string.wifi_allow_wep_networks_summary
+        } else {
+            R.string.wifi_allow_wep_networks_summary_carrier_not_allow
+        }
+    )
+
+    private val carrierAllowed: Boolean
+        get() = wifiManager.isWepSupported
+
+    val wepAllowedFlow = OverridableFlow(callbackFlow {
+        wifiManager.queryWepAllowed(Dispatchers.Default.asExecutor(), ::trySend)
+
+        awaitClose { }
+    })
+}
\ No newline at end of file
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 8f0a983..1627056 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -60,6 +60,7 @@
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.EditText;
 import android.widget.ImageButton;
+import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
@@ -75,6 +76,8 @@
 import com.android.settingslib.Utils;
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.wifi.AccessPoint;
+import com.android.wifi.flags.Flags;
+import com.android.wifitrackerlib.WifiEntry;
 
 import java.net.Inet4Address;
 import java.net.InetAddress;
@@ -273,6 +276,12 @@
         mDoNotProvideEapUserCertString =
             mContext.getString(R.string.wifi_do_not_provide_eap_user_cert);
 
+        if (Flags.wepUsage() && mAccessPointSecurity == WifiEntry.SECURITY_WEP) {
+            LinearLayout wepWarningLayout =
+                    (LinearLayout) mView.findViewById(R.id.wep_warning_layout);
+            wepWarningLayout.setVisibility(View.VISIBLE);
+        }
+
         mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
         mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
         mIpSettingsSpinner.setOnItemSelectedListener(this);
@@ -653,6 +662,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);
@@ -920,7 +932,7 @@
             } catch (NumberFormatException e) {
                 // Set the hint as default after user types in ip address
                 mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString(
-                        R.string.wifi_network_prefix_length_hint));
+                        com.android.settingslib.R.string.wifi_network_prefix_length_hint));
             } catch (IllegalArgumentException e) {
                 return R.string.wifi_ip_settings_invalid_ip_address;
             }
@@ -953,7 +965,8 @@
 
             if (TextUtils.isEmpty(dns)) {
                 //If everything else is valid, provide hint as a default option
-                mDns1View.setText(mConfigUi.getContext().getString(R.string.wifi_dns1_hint));
+                mDns1View.setText(mConfigUi.getContext().getString(
+                        com.android.settingslib.R.string.wifi_dns1_hint));
             } else {
                 dnsAddr = getIPv4Address(dns);
                 if (dnsAddr == null) {
@@ -1705,29 +1718,36 @@
         int idx = 0;
 
         // Populate the Wi-Fi security spinner with the various supported key management types
-        spinnerAdapter.add(mContext.getString(R.string.wifi_security_none));
+        spinnerAdapter.add(mContext.getString(com.android.settingslib.R.string.wifi_security_none));
         mSecurityInPosition[idx++] = AccessPoint.SECURITY_NONE;
         if (mWifiManager.isEnhancedOpenSupported()) {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_owe));
+            spinnerAdapter.add(
+                    mContext.getString(com.android.settingslib.R.string.wifi_security_owe));
             mSecurityInPosition[idx++] = AccessPoint.SECURITY_OWE;
         }
-        spinnerAdapter.add(mContext.getString(R.string.wifi_security_wep));
+        spinnerAdapter.add(mContext.getString(com.android.settingslib.R.string.wifi_security_wep));
         mSecurityInPosition[idx++] = AccessPoint.SECURITY_WEP;
-        spinnerAdapter.add(mContext.getString(R.string.wifi_security_wpa_wpa2));
+        spinnerAdapter.add(
+                mContext.getString(com.android.settingslib.R.string.wifi_security_wpa_wpa2));
         mSecurityInPosition[idx++] = AccessPoint.SECURITY_PSK;
         if (mWifiManager.isWpa3SaeSupported()) {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_sae));
+            spinnerAdapter.add(
+                    mContext.getString(com.android.settingslib.R.string.wifi_security_sae));
             mSecurityInPosition[idx++] = AccessPoint.SECURITY_SAE;
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap_wpa_wpa2));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap_wpa_wpa2));
             mSecurityInPosition[idx++] = AccessPoint.SECURITY_EAP;
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap_wpa3));
+            spinnerAdapter.add(
+                    mContext.getString(com.android.settingslib.R.string.wifi_security_eap_wpa3));
             mSecurityInPosition[idx++] = AccessPoint.SECURITY_EAP_WPA3_ENTERPRISE;
         } else {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap));
+            spinnerAdapter.add(
+                    mContext.getString(com.android.settingslib.R.string.wifi_security_eap));
             mSecurityInPosition[idx++] = AccessPoint.SECURITY_EAP;
         }
         if (mWifiManager.isWpa3SuiteBSupported()) {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap_suiteb));
+            spinnerAdapter.add(
+                    mContext.getString(com.android.settingslib.R.string.wifi_security_eap_suiteb));
             mSecurityInPosition[idx++] = AccessPoint.SECURITY_EAP_SUITE_B;
         }
 
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index f92b58f..6a6244b 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -61,9 +61,11 @@
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.EditText;
 import android.widget.ImageButton;
+import android.widget.LinearLayout;
 import android.widget.Spinner;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.net.module.util.NetUtils;
@@ -76,6 +78,7 @@
 import com.android.settings.wifi.dpp.WifiDppUtils;
 import com.android.settingslib.Utils;
 import com.android.settingslib.utils.ThreadUtils;
+import com.android.wifi.flags.Flags;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiEntry.ConnectedInfo;
 
@@ -200,8 +203,10 @@
     private TextView mDns2View;
 
     private Spinner mProxySettingsSpinner;
+    @Nullable
     private Spinner mMeteredSettingsSpinner;
     private Spinner mHiddenSettingsSpinner;
+    @Nullable
     private Spinner mPrivacySettingsSpinner;
     private TextView mHiddenWarningView;
     private TextView mProxyHostView;
@@ -216,48 +221,51 @@
     private StaticIpConfiguration mStaticIpConfiguration = null;
 
     private String[] mLevels;
-    private int mMode;
+    private final int mMode;
+    private final boolean mHideMeteredAndPrivacy;
+    private final WifiManager mWifiManager;
+    private final AndroidKeystoreAliasLoader mAndroidKeystoreAliasLoader;
     private TextView mSsidView;
 
-    private Context mContext;
+    private final Context mContext;
 
     @VisibleForTesting
     Integer[] mSecurityInPosition;
 
-    private final WifiManager mWifiManager;
     private boolean mIsTrustOnFirstUseSupported;
 
-    private final List<SubscriptionInfo> mActiveSubscriptionInfos = new ArrayList<>();
+    private final ArrayMap<Integer, SubscriptionInfo> mActiveSubscriptionInfos = new ArrayMap<>();
 
     public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
             int mode) {
-        mConfigUi = parent;
-        mView = view;
-        mWifiEntry = wifiEntry;
-        mContext = mConfigUi.getContext();
+        this(parent, view, wifiEntry, mode, false);
+    }
 
-        // Init Wi-Fi manager
-        mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
-        initWifiConfigController2(wifiEntry, mode);
+    public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
+            int mode, boolean hideMeteredAndPrivacy) {
+        this(parent, view, wifiEntry, mode, hideMeteredAndPrivacy,
+                parent.getContext().getSystemService(WifiManager.class),
+                new AndroidKeystoreAliasLoader(KeyProperties.NAMESPACE_WIFI));
     }
 
     @VisibleForTesting
     public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
-            int mode, WifiManager wifiManager) {
+            int mode, boolean hideMeteredAndPrivacy, WifiManager wifiManager,
+            AndroidKeystoreAliasLoader androidKeystoreAliasLoader) {
         mConfigUi = parent;
-
         mView = view;
         mWifiEntry = wifiEntry;
+        mMode = mode;
+        mHideMeteredAndPrivacy = hideMeteredAndPrivacy;
         mContext = mConfigUi.getContext();
         mWifiManager = wifiManager;
-        initWifiConfigController2(wifiEntry, mode);
+        mAndroidKeystoreAliasLoader = androidKeystoreAliasLoader;
+        initWifiConfigController2(wifiEntry);
     }
 
-    private void initWifiConfigController2(WifiEntry wifiEntry, int mode) {
-
+    private void initWifiConfigController2(WifiEntry wifiEntry) {
         mWifiEntrySecurity = (wifiEntry == null) ? WifiEntry.SECURITY_NONE :
                 wifiEntry.getSecurity();
-        mMode = mode;
         mIsTrustOnFirstUseSupported = mWifiManager.isTrustOnFirstUseSupported();
 
         final Resources res = mContext.getResources();
@@ -281,18 +289,26 @@
             mContext.getString(R.string.wifi_do_not_provide_eap_user_cert);
         mInstallCertsString = mContext.getString(R.string.wifi_install_credentials);
 
+        if (Flags.wepUsage() && mWifiEntrySecurity == WifiEntry.SECURITY_WEP) {
+            LinearLayout wepWarningLayout =
+                    (LinearLayout) mView.findViewById(R.id.wep_warning_layout);
+            wepWarningLayout.setVisibility(View.VISIBLE);
+        }
+
         mSsidScanButton = (ImageButton) mView.findViewById(R.id.ssid_scanner_button);
         mIpSettingsSpinner = (Spinner) mView.findViewById(R.id.ip_settings);
         mIpSettingsSpinner.setOnItemSelectedListener(this);
         mProxySettingsSpinner = (Spinner) mView.findViewById(R.id.proxy_settings);
         mProxySettingsSpinner.setOnItemSelectedListener(this);
         mSharedCheckBox = (CheckBox) mView.findViewById(R.id.shared);
-        mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
+        if (!mHideMeteredAndPrivacy) {
+            mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings);
+            mView.findViewById(R.id.metered_settings_fields).setVisibility(View.VISIBLE);
+        }
         mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings);
-        mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
-        if (mWifiManager.isConnectedMacRandomizationSupported()) {
-            View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields);
-            privacySettingsLayout.setVisibility(View.VISIBLE);
+        if (!mHideMeteredAndPrivacy && mWifiManager.isConnectedMacRandomizationSupported()) {
+            mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings);
+            mView.findViewById(R.id.privacy_settings_fields).setVisibility(View.VISIBLE);
         }
         mHiddenSettingsSpinner.setOnItemSelectedListener(this);
         mHiddenWarningView = mView.findViewById(R.id.hidden_settings_warning);
@@ -313,14 +329,18 @@
             boolean showAdvancedFields = false;
             if (mWifiEntry.isSaved()) {
                 WifiConfiguration config = mWifiEntry.getWifiConfiguration();
-                mMeteredSettingsSpinner.setSelection(config.meteredOverride);
+                if (mMeteredSettingsSpinner != null) {
+                    mMeteredSettingsSpinner.setSelection(config.meteredOverride);
+                }
                 mHiddenSettingsSpinner.setSelection(config.hiddenSSID
                         ? HIDDEN_NETWORK
                         : NOT_HIDDEN_NETWORK);
 
-                final int prefMacValue = WifiPrivacyPreferenceController2
-                        .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
-                mPrivacySettingsSpinner.setSelection(prefMacValue);
+                if (mPrivacySettingsSpinner != null) {
+                    final int prefMacValue = WifiPrivacyPreferenceController2
+                            .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
+                    mPrivacySettingsSpinner.setSelection(prefMacValue);
+                }
 
                 if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
                     mIpSettingsSpinner.setSelection(STATIC_IP);
@@ -716,7 +736,7 @@
                 if (config.enterpriseConfig.isAuthenticationSimBased()
                         && mActiveSubscriptionInfos.size() > 0) {
                     config.carrierId = mActiveSubscriptionInfos
-                            .get(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
+                            .valueAt(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
                 }
 
                 String caCert = (String) mEapCaCertSpinner.getSelectedItem();
@@ -926,7 +946,7 @@
             } catch (NumberFormatException e) {
                 // Set the hint as default after user types in ip address
                 mNetworkPrefixLengthView.setText(mConfigUi.getContext().getString(
-                        R.string.wifi_network_prefix_length_hint));
+                        com.android.settingslib.R.string.wifi_network_prefix_length_hint));
             } catch (IllegalArgumentException e) {
                 return R.string.wifi_ip_settings_invalid_ip_address;
             }
@@ -959,7 +979,8 @@
 
             if (TextUtils.isEmpty(dns)) {
                 //If everything else is valid, provide hint as a default option
-                mDns1View.setText(mConfigUi.getContext().getString(R.string.wifi_dns1_hint));
+                mDns1View.setText(mConfigUi.getContext().getString(
+                        com.android.settingslib.R.string.wifi_dns1_hint));
             } else {
                 dnsAddr = getIPv4Address(dns);
                 if (dnsAddr == null) {
@@ -1062,17 +1083,15 @@
         if (refreshCertificates) {
             loadSims();
 
-            final AndroidKeystoreAliasLoader androidKeystoreAliasLoader =
-                    getAndroidKeystoreAliasLoader();
             loadCertificates(
                     mEapCaCertSpinner,
-                    androidKeystoreAliasLoader.getCaCertAliases(),
+                    mAndroidKeystoreAliasLoader.getCaCertAliases(),
                     null /* noCertificateString */,
                     false /* showMultipleCerts */,
                     true /* showUsePreinstalledCertOption */);
             loadCertificates(
                     mEapUserCertSpinner,
-                    androidKeystoreAliasLoader.getKeyCertAliases(),
+                    mAndroidKeystoreAliasLoader.getKeyCertAliases(),
                     mDoNotProvideEapUserCertString,
                     false /* showMultipleCerts */,
                     false /* showUsePreinstalledCertOption */);
@@ -1136,11 +1155,9 @@
             }
 
             if (enterpriseConfig.isAuthenticationSimBased()) {
-                for (int i = 0; i < mActiveSubscriptionInfos.size(); i++) {
-                    if (wifiConfig.carrierId == mActiveSubscriptionInfos.get(i).getCarrierId()) {
-                        mEapSimSpinner.setSelection(i);
-                        break;
-                    }
+                int index = mActiveSubscriptionInfos.indexOfKey(wifiConfig.carrierId);
+                if (index > -1) {
+                    mEapSimSpinner.setSelection(index);
                 }
             }
 
@@ -1159,11 +1176,9 @@
                     setSelection(mEapCaCertSpinner, caCerts[0]);
                 } else {
                     // Reload the cert spinner with an extra "multiple certificates added" item.
-                    final AndroidKeystoreAliasLoader androidKeystoreAliasLoader =
-                            getAndroidKeystoreAliasLoader();
                     loadCertificates(
                             mEapCaCertSpinner,
-                            androidKeystoreAliasLoader.getCaCertAliases(),
+                            mAndroidKeystoreAliasLoader.getCaCertAliases(),
                             null /* noCertificateString */,
                             true /* showMultipleCerts */,
                             true /* showUsePreinstalledCertOption */);
@@ -1375,7 +1390,11 @@
 
     @VisibleForTesting
     void setAnonymousIdVisible() {
-        mView.findViewById(R.id.l_anonymous).setVisibility(View.VISIBLE);
+        View view = mView.findViewById(R.id.l_anonymous);
+        if (view.getVisibility() == View.VISIBLE) {
+            return;
+        }
+        view.setVisibility(View.VISIBLE);
         mEapAnonymousView.setText(DEFAULT_ANONYMOUS_ID);
     }
 
@@ -1503,11 +1522,6 @@
     }
 
     @VisibleForTesting
-    AndroidKeystoreAliasLoader getAndroidKeystoreAliasLoader() {
-        return new AndroidKeystoreAliasLoader(KeyProperties.NAMESPACE_WIFI);
-    }
-
-    @VisibleForTesting
     void loadSims() {
         List<SubscriptionInfo> activeSubscriptionInfos = mContext
                 .getSystemService(SubscriptionManager.class).getActiveSubscriptionInfoList();
@@ -1516,18 +1530,8 @@
         }
         mActiveSubscriptionInfos.clear();
 
-        // De-duplicates active subscriptions and caches in mActiveSubscriptionInfos.
-        for (SubscriptionInfo newInfo : activeSubscriptionInfos) {
-            for (SubscriptionInfo cachedInfo : mActiveSubscriptionInfos) {
-                if (newInfo.getCarrierId() == cachedInfo.getCarrierId()) {
-                    continue;
-                }
-            }
-            mActiveSubscriptionInfos.add(newInfo);
-        }
-
         // Shows disabled 'No SIM' when there is no active subscription.
-        if (mActiveSubscriptionInfos.size() == 0) {
+        if (activeSubscriptionInfos.isEmpty()) {
             final String[] noSim = new String[]{mContext.getString(R.string.wifi_no_sim_card)};
             mEapSimSpinner.setAdapter(getSpinnerAdapter(noSim));
             mEapSimSpinner.setSelection(0 /* position */);
@@ -1538,7 +1542,7 @@
         // Shows display name of each active subscription.
         ArrayMap<Integer, CharSequence> displayNames = new ArrayMap<>();
         int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId();
-        for (SubscriptionInfo activeSubInfo : mActiveSubscriptionInfos) {
+        for (SubscriptionInfo activeSubInfo : activeSubscriptionInfos) {
             // If multiple SIMs have the same carrier id, only the first or default data SIM is
             // displayed.
             if (displayNames.containsKey(activeSubInfo.getCarrierId())
@@ -1547,6 +1551,7 @@
             }
             displayNames.put(activeSubInfo.getCarrierId(),
                     SubscriptionUtil.getUniqueSubscriptionDisplayName(activeSubInfo, mContext));
+            mActiveSubscriptionInfos.put(activeSubInfo.getCarrierId(), activeSubInfo);
         }
         mEapSimSpinner.setAdapter(
                 getSpinnerAdapter(displayNames.values().toArray(new String[displayNames.size()])));
@@ -1664,11 +1669,12 @@
             public void afterTextChanged(Editable s) {
                 if (s.length() == 0) {
                     if (view.getId() == R.id.gateway) {
-                        mGatewayView.setHint(R.string.wifi_gateway_hint);
+                        mGatewayView.setHint(com.android.settingslib.R.string.wifi_gateway_hint);
                     } else if (view.getId() == R.id.network_prefix_length) {
-                        mNetworkPrefixLengthView.setHint(R.string.wifi_network_prefix_length_hint);
+                        mNetworkPrefixLengthView.setHint(
+                                com.android.settingslib.R.string.wifi_network_prefix_length_hint);
                     } else if (view.getId() == R.id.dns1) {
-                        mDns1View.setHint(R.string.wifi_dns1_hint);
+                        mDns1View.setHint(com.android.settingslib.R.string.wifi_dns1_hint);
                     }
                     Button submit = mConfigUi.getSubmitButton();
                     if (submit == null) return;
@@ -1810,29 +1816,36 @@
         int idx = 0;
 
         // Populate the Wi-Fi security spinner with the various supported key management types
-        spinnerAdapter.add(mContext.getString(R.string.wifi_security_none));
+        spinnerAdapter.add(mContext.getString(com.android.settingslib.R.string.wifi_security_none));
         mSecurityInPosition[idx++] = WifiEntry.SECURITY_NONE;
         if (mWifiManager.isEnhancedOpenSupported()) {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_owe));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_owe));
             mSecurityInPosition[idx++] = WifiEntry.SECURITY_OWE;
         }
-        spinnerAdapter.add(mContext.getString(R.string.wifi_security_wep));
+        spinnerAdapter.add(mContext.getString(com.android.settingslib.R.string.wifi_security_wep));
         mSecurityInPosition[idx++] = WifiEntry.SECURITY_WEP;
-        spinnerAdapter.add(mContext.getString(R.string.wifi_security_wpa_wpa2));
+        spinnerAdapter.add(mContext.getString(
+                com.android.settingslib.R.string.wifi_security_wpa_wpa2));
         mSecurityInPosition[idx++] = WifiEntry.SECURITY_PSK;
         if (mWifiManager.isWpa3SaeSupported()) {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_sae));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_sae));
             mSecurityInPosition[idx++] = WifiEntry.SECURITY_SAE;
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap_wpa_wpa2));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap_wpa_wpa2));
             mSecurityInPosition[idx++] = WifiEntry.SECURITY_EAP;
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap_wpa3));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap_wpa3));
             mSecurityInPosition[idx++] = WifiEntry.SECURITY_EAP_WPA3_ENTERPRISE;
         } else {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap));
             mSecurityInPosition[idx++] = WifiEntry.SECURITY_EAP;
         }
         if (mWifiManager.isWpa3SuiteBSupported()) {
-            spinnerAdapter.add(mContext.getString(R.string.wifi_security_eap_suiteb));
+            spinnerAdapter.add(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap_suiteb));
             mSecurityInPosition[idx++] = WifiEntry.SECURITY_EAP_SUITE_B;
         }
 
diff --git a/src/com/android/settings/wifi/WifiConnectListener.java b/src/com/android/settings/wifi/WifiConnectListener.java
deleted file mode 100644
index b97fbc5..0000000
--- a/src/com/android/settings/wifi/WifiConnectListener.java
+++ /dev/null
@@ -1,48 +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;
-
-import android.content.Context;
-import android.net.wifi.WifiManager;
-import android.widget.Toast;
-
-import com.android.settings.R;
-
-/**
- *  A listener to display a toast on failure to connect
- */
-public class WifiConnectListener implements WifiManager.ActionListener {
-
-    private final Context mContext;
-
-    public WifiConnectListener(Context context) {
-        mContext = context;
-    }
-
-    @Override
-    public void onSuccess() {
-    }
-
-    @Override
-    public void onFailure(int reason) {
-        if (mContext != null) {
-            Toast.makeText(mContext,
-                    R.string.wifi_failed_connect_message,
-                    Toast.LENGTH_SHORT).show();
-        }
-    }
-}
diff --git a/src/com/android/settings/wifi/WifiConnectionPreferenceController.java b/src/com/android/settings/wifi/WifiConnectionPreferenceController.java
index c55f3e1..05bd3be 100644
--- a/src/com/android/settings/wifi/WifiConnectionPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiConnectionPreferenceController.java
@@ -112,7 +112,7 @@
                 return SystemClock.elapsedRealtime();
             }
         };
-        mWifiPickerTracker = FeatureFactory.getFactory(context)
+        mWifiPickerTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createWifiPickerTracker(lifecycle, context,
                         new Handler(Looper.getMainLooper()),
diff --git a/src/com/android/settings/wifi/WifiDialog2.java b/src/com/android/settings/wifi/WifiDialog2.java
deleted file mode 100644
index 26951d1..0000000
--- a/src/com/android/settings/wifi/WifiDialog2.java
+++ /dev/null
@@ -1,233 +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;
-
-import android.annotation.StyleRes;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.view.View;
-import android.view.Window;
-import android.view.WindowManager;
-import android.widget.Button;
-import android.widget.ImageButton;
-import android.widget.TextView;
-
-import androidx.appcompat.app.AlertDialog;
-
-import com.android.settings.R;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.wifitrackerlib.WifiEntry;
-
-/**
- * Dialog for users to edit a Wi-Fi network.
- */
-public class WifiDialog2 extends AlertDialog implements WifiConfigUiBase2,
-        DialogInterface.OnClickListener {
-
-    /**
-     * Host UI component of WifiDialog2 can receive callbacks by this interface.
-     */
-    public interface WifiDialog2Listener {
-        /**
-         * To forget the Wi-Fi network.
-         */
-        default void onForget(WifiDialog2 dialog) {
-        }
-
-        /**
-         * To save the Wi-Fi network.
-         */
-        default void onSubmit(WifiDialog2 dialog) {
-        }
-
-        /**
-         * To trigger Wi-Fi QR code scanner.
-         */
-        default void onScan(WifiDialog2 dialog, String ssid) {
-        }
-    }
-
-    private static final int BUTTON_SUBMIT = DialogInterface.BUTTON_POSITIVE;
-    private static final int BUTTON_FORGET = DialogInterface.BUTTON_NEUTRAL;
-
-    private final int mMode;
-    private final WifiDialog2Listener mListener;
-    private final WifiEntry mWifiEntry;
-
-    private View mView;
-    private WifiConfigController2 mController;
-    private boolean mHideSubmitButton;
-
-    /**
-     * Creates a WifiDialog2 with no additional style. It displays as a dialog above the current
-     * view.
-     */
-    public static WifiDialog2 createModal(Context context, WifiDialog2Listener listener,
-            WifiEntry wifiEntry, int mode) {
-        return new WifiDialog2(context, listener, wifiEntry, mode, 0 /* style */,
-                mode == WifiConfigUiBase2.MODE_VIEW /* hideSubmitButton */);
-    }
-
-    /**
-     * Creates a WifiDialog2 with customized style. It displays as a dialog above the current
-     * view.
-     */
-    public static WifiDialog2 createModal(Context context, WifiDialog2Listener listener,
-            WifiEntry wifiEntry, int mode, @StyleRes int style) {
-        return new WifiDialog2(context, listener, wifiEntry, mode, style,
-                mode == WifiConfigUiBase2.MODE_VIEW /* hideSubmitButton */);
-    }
-
-    /* package */ WifiDialog2(Context context, WifiDialog2Listener listener, WifiEntry wifiEntry,
-            int mode, @StyleRes int style, boolean hideSubmitButton) {
-        super(context, style);
-        mMode = mode;
-        mListener = listener;
-        mWifiEntry = wifiEntry;
-        mHideSubmitButton = hideSubmitButton;
-    }
-
-    @Override
-    public WifiConfigController2 getController() {
-        return mController;
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        setWindowsOverlay();
-
-        mView = getLayoutInflater().inflate(R.layout.wifi_dialog, /* root */ null);
-        setView(mView);
-        mController = new WifiConfigController2(this, mView, mWifiEntry, mMode);
-        super.onCreate(savedInstanceState);
-
-        if (mHideSubmitButton) {
-            mController.hideSubmitButton();
-        } else {
-            /* During creation, the submit button can be unavailable to determine
-             * visibility. Right after creation, update button visibility */
-            mController.enableSubmitIfAppropriate();
-        }
-
-        if (mWifiEntry == null) {
-            mController.hideForgetButton();
-        }
-    }
-
-    private void setWindowsOverlay() {
-        final Window window = getWindow();
-        final WindowManager.LayoutParams lp = window.getAttributes();
-        window.setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
-        window.setAttributes(lp);
-    }
-
-    @SuppressWarnings("MissingSuperCall") // TODO: Fix me
-    @Override
-    protected void onStart() {
-        final ImageButton ssidScannerButton = findViewById(R.id.ssid_scanner_button);
-        if (mHideSubmitButton) {
-            ssidScannerButton.setVisibility(View.GONE);
-            return;
-        }
-
-        View.OnClickListener onClickScannerButtonListener = v -> {
-            if (mListener == null) {
-                return;
-            }
-
-            final TextView ssidEditText = findViewById(R.id.ssid);
-            final String ssid = ssidEditText.getText().toString();
-            mListener.onScan(/* WifiDialog2 */ this, ssid);
-        };
-        ssidScannerButton.setOnClickListener(onClickScannerButtonListener);
-    }
-
-    @Override
-    public void onRestoreInstanceState(Bundle savedInstanceState) {
-        super.onRestoreInstanceState(savedInstanceState);
-        mController.updatePassword();
-    }
-
-    @Override
-    public void dispatchSubmit() {
-        if (mListener != null) {
-            mListener.onSubmit(this);
-        }
-        dismiss();
-    }
-
-    @Override
-    public void onClick(DialogInterface dialogInterface, int id) {
-        if (mListener != null) {
-            switch (id) {
-                case BUTTON_SUBMIT:
-                    mListener.onSubmit(this);
-                    break;
-                case BUTTON_FORGET:
-                    if (WifiUtils.isNetworkLockedDown(getContext(),
-                            mWifiEntry.getWifiConfiguration())) {
-                        RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(),
-                                RestrictedLockUtilsInternal.getDeviceOwner(getContext()));
-                        return;
-                    }
-                    mListener.onForget(this);
-                    break;
-            }
-        }
-    }
-
-    @Override
-    public int getMode() {
-        return mMode;
-    }
-
-    @Override
-    public Button getSubmitButton() {
-        return getButton(BUTTON_SUBMIT);
-    }
-
-    @Override
-    public Button getForgetButton() {
-        return getButton(BUTTON_FORGET);
-    }
-
-    @Override
-    public Button getCancelButton() {
-        return getButton(BUTTON_NEGATIVE);
-    }
-
-    @Override
-    public void setSubmitButton(CharSequence text) {
-        setButton(BUTTON_SUBMIT, text, this);
-    }
-
-    @Override
-    public void setForgetButton(CharSequence text) {
-        setButton(BUTTON_FORGET, text, this);
-    }
-
-    @Override
-    public void setCancelButton(CharSequence text) {
-        setButton(BUTTON_NEGATIVE, text, this);
-    }
-
-    public WifiEntry getWifiEntry() {
-        return mWifiEntry;
-    }
-}
diff --git a/src/com/android/settings/wifi/WifiDialog2.kt b/src/com/android/settings/wifi/WifiDialog2.kt
new file mode 100644
index 0000000..a0d215a
--- /dev/null
+++ b/src/com/android/settings/wifi/WifiDialog2.kt
@@ -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.wifi
+
+import android.annotation.StyleRes
+import android.content.Context
+import android.content.DialogInterface
+import android.os.Bundle
+import android.view.View
+import android.view.WindowManager
+import android.widget.Button
+import android.widget.ImageButton
+import android.widget.TextView
+import androidx.annotation.OpenForTesting
+import androidx.appcompat.app.AlertDialog
+import com.android.settings.R
+import com.android.settingslib.RestrictedLockUtils
+import com.android.settingslib.RestrictedLockUtilsInternal
+import com.android.wifitrackerlib.WifiEntry
+
+/**
+ * Dialog for users to edit a Wi-Fi network.
+ */
+@OpenForTesting
+open class WifiDialog2 @JvmOverloads constructor(
+    context: Context,
+    private val listener: WifiDialog2Listener,
+    val wifiEntry: WifiEntry?,
+    private val mode: Int,
+    @StyleRes style: Int = 0,
+    private val hideSubmitButton: Boolean = mode == WifiConfigUiBase2.MODE_VIEW,
+    private val hideMeteredAndPrivacy: Boolean = false,
+) : AlertDialog(context, style), WifiConfigUiBase2, DialogInterface.OnClickListener {
+    /**
+     * Host UI component of WifiDialog2 can receive callbacks by this interface.
+     */
+    interface WifiDialog2Listener {
+        /**
+         * To forget the Wi-Fi network.
+         */
+        fun onForget(dialog: WifiDialog2) {}
+
+        /**
+         * To save the Wi-Fi network.
+         */
+        fun onSubmit(dialog: WifiDialog2) {}
+
+        /**
+         * To trigger Wi-Fi QR code scanner.
+         */
+        fun onScan(dialog: WifiDialog2, ssid: String) {}
+    }
+
+    private lateinit var view: View
+    private lateinit var controller: WifiConfigController2
+
+    override fun getController(): WifiConfigController2 = controller
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        setWindowsOverlay()
+        view = layoutInflater.inflate(R.layout.wifi_dialog, null)
+        setView(view)
+        controller = WifiConfigController2(this, view, wifiEntry, mode, hideMeteredAndPrivacy)
+        super.onCreate(savedInstanceState)
+        if (hideSubmitButton) {
+            controller.hideSubmitButton()
+        } else {
+            // During creation, the submit button can be unavailable to determine visibility.
+            // Right after creation, update button visibility
+            controller.enableSubmitIfAppropriate()
+        }
+        if (wifiEntry == null) {
+            controller.hideForgetButton()
+        }
+    }
+
+    private fun setWindowsOverlay() {
+        window?.apply {
+            val lp = attributes
+            setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG)
+            attributes = lp
+        }
+    }
+
+    override fun onStart() {
+        super.onStart()
+        val ssidScannerButton = requireViewById<ImageButton>(R.id.ssid_scanner_button)
+        if (hideSubmitButton) {
+            ssidScannerButton.visibility = View.GONE
+        } else {
+            ssidScannerButton.setOnClickListener {
+                val ssidEditText = requireViewById<TextView>(R.id.ssid)
+                val ssid = ssidEditText.text.toString()
+                listener.onScan(this, ssid)
+            }
+        }
+    }
+
+    override fun onRestoreInstanceState(savedInstanceState: Bundle) {
+        super.onRestoreInstanceState(savedInstanceState)
+        controller.updatePassword()
+    }
+
+    override fun dispatchSubmit() {
+        listener.onSubmit(this)
+        dismiss()
+    }
+
+    override fun onClick(dialogInterface: DialogInterface, id: Int) {
+        when (id) {
+            BUTTON_SUBMIT -> listener.onSubmit(this)
+            BUTTON_FORGET -> {
+                if (WifiUtils.isNetworkLockedDown(context, wifiEntry!!.wifiConfiguration)) {
+                    RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
+                        context,
+                        RestrictedLockUtilsInternal.getDeviceOwner(context)
+                    )
+                    return
+                }
+                listener.onForget(this)
+            }
+        }
+    }
+
+    override fun getMode(): Int = mode
+
+    override fun getSubmitButton(): Button? = getButton(BUTTON_SUBMIT)
+
+    override fun getForgetButton(): Button? = getButton(BUTTON_FORGET)
+
+    override fun getCancelButton(): Button? = getButton(BUTTON_NEGATIVE)
+
+    override fun setSubmitButton(text: CharSequence) {
+        setButton(BUTTON_SUBMIT, text, this)
+    }
+
+    override fun setForgetButton(text: CharSequence) {
+        setButton(BUTTON_FORGET, text, this)
+    }
+
+    override fun setCancelButton(text: CharSequence) {
+        setButton(BUTTON_NEGATIVE, text, this)
+    }
+
+    companion object {
+        private const val BUTTON_SUBMIT = BUTTON_POSITIVE
+        private const val BUTTON_FORGET = BUTTON_NEUTRAL
+    }
+}
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java
index dda5929..eb3d88a 100644
--- a/src/com/android/settings/wifi/WifiDialogActivity.java
+++ b/src/com/android/settings/wifi/WifiDialogActivity.java
@@ -141,7 +141,7 @@
                     return SystemClock.elapsedRealtime();
                 }
             };
-            mNetworkDetailsTracker = FeatureFactory.getFactory(this)
+            mNetworkDetailsTracker = FeatureFactory.getFeatureFactory()
                     .getWifiTrackerLibProvider()
                     .createNetworkDetailsTracker(
                             getLifecycle(),
@@ -171,7 +171,7 @@
             createDialogWithSuwTheme();
         } else {
             if (mIsWifiTrackerLib) {
-                mDialog2 = WifiDialog2.createModal(this, this,
+                mDialog2 = new WifiDialog2(this, this,
                         mNetworkDetailsTracker.getWifiEntry(), WifiConfigUiBase2.MODE_CONNECT);
             } else {
                 mDialog = WifiDialog.createModal(
@@ -202,7 +202,7 @@
                 ? R.style.SuwAlertDialogThemeCompat_DayNight :
                 R.style.SuwAlertDialogThemeCompat_Light;
         if (mIsWifiTrackerLib) {
-            mDialog2 = WifiDialog2.createModal(this, this,
+            mDialog2 = new WifiDialog2(this, this,
                     mNetworkDetailsTracker.getWifiEntry(),
                     WifiConfigUiBase2.MODE_CONNECT, targetStyle);
         } else {
diff --git a/src/com/android/settings/wifi/WifiEntryPreference.java b/src/com/android/settings/wifi/WifiEntryPreference.java
index 7206666..e5290f4 100644
--- a/src/com/android/settings/wifi/WifiEntryPreference.java
+++ b/src/com/android/settings/wifi/WifiEntryPreference.java
@@ -17,7 +17,6 @@
 
 import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.content.res.Resources;
 import android.content.res.TypedArray;
@@ -31,6 +30,7 @@
 
 import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceViewHolder;
 
@@ -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;
 
@@ -86,9 +85,18 @@
 
         setLayoutResource(R.layout.preference_access_point);
         mFrictionSld = getFrictionStateListDrawable();
+        mIconInjector = iconInjector;
+        setWifiEntry(wifiEntry);
+    }
+
+    /**
+     * Set updated {@link WifiEntry} to refresh the preference
+     *
+     * @param wifiEntry An instance of {@link WifiEntry}
+     */
+    public void setWifiEntry(@NonNull WifiEntry wifiEntry) {
         mWifiEntry = wifiEntry;
         mWifiEntry.setListener(this);
-        mIconInjector = iconInjector;
         refresh();
     }
 
@@ -99,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);
@@ -113,7 +121,8 @@
         view.itemView.setContentDescription(mContentDescription);
 
         // Turn off divider
-        view.findViewById(R.id.two_target_divider).setVisibility(View.INVISIBLE);
+        view.findViewById(com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider)
+                .setVisibility(View.INVISIBLE);
 
         // Enable the icon button when the help string in this WifiEntry is not null.
         final ImageButton imageButton = (ImageButton) view.findViewById(R.id.icon_button);
@@ -151,14 +160,9 @@
         if (mWifiEntry instanceof HotspotNetworkEntry) {
             updateHotspotIcon(((HotspotNetworkEntry) mWifiEntry).getDeviceType());
         } else {
-            int level = mWifiEntry.getLevel();
-            boolean showX = mWifiEntry.shouldShowXLevelIcon();
-
-            if (level != mLevel || showX != mShowX) {
-                mLevel = level;
-                mShowX = showX;
-                updateIcon(mShowX, mLevel);
-            }
+            mLevel = mWifiEntry.getLevel();
+            mShowX = mWifiEntry.shouldShowXLevelIcon();
+            updateIcon(mShowX, mLevel);
         }
 
         setSummary(mWifiEntry.getSummary(false /* concise */));
diff --git a/src/com/android/settings/wifi/WifiPickerActivity.java b/src/com/android/settings/wifi/WifiPickerActivity.java
index d56e7e5..f26e15a 100644
--- a/src/com/android/settings/wifi/WifiPickerActivity.java
+++ b/src/com/android/settings/wifi/WifiPickerActivity.java
@@ -17,11 +17,10 @@
 
 import android.content.Intent;
 
-import androidx.preference.PreferenceFragmentCompat;
-
 import com.android.settings.ButtonBarHandler;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.network.NetworkProviderSettings;
 import com.android.settings.wifi.p2p.WifiP2pSettings;
 import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
 
@@ -31,7 +30,7 @@
     public Intent getIntent() {
         Intent modIntent = new Intent(super.getIntent());
         if (!modIntent.hasExtra(EXTRA_SHOW_FRAGMENT)) {
-            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, getWifiSettingsClass().getName());
+            modIntent.putExtra(EXTRA_SHOW_FRAGMENT, NetworkProviderSettings.class.getName());
             modIntent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID, R.string.wifi_select_network);
         }
         return modIntent;
@@ -39,18 +38,8 @@
 
     @Override
     protected boolean isValidFragment(String fragmentName) {
-        final boolean isSavedAccessPointsWifiSettings =
-                SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
-
-        if (WifiSettings.class.getName().equals(fragmentName)
+        return NetworkProviderSettings.class.getName().equals(fragmentName)
                 || WifiP2pSettings.class.getName().equals(fragmentName)
-                || isSavedAccessPointsWifiSettings) {
-            return true;
-        }
-        return false;
-    }
-
-    /* package */ Class<? extends PreferenceFragmentCompat> getWifiSettingsClass() {
-        return WifiSettings.class;
+                || SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
     }
 }
diff --git a/src/com/android/settings/wifi/WifiPickerTrackerHelper.java b/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
index 3aa7b83..4df3efa 100644
--- a/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
+++ b/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
@@ -78,7 +78,7 @@
                 Process.THREAD_PRIORITY_BACKGROUND);
         mWorkerThread.start();
 
-        mWifiPickerTracker = FeatureFactory.getFactory(context)
+        mWifiPickerTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createWifiPickerTracker(lifecycle, context,
                 new Handler(Looper.getMainLooper()),
diff --git a/src/com/android/settings/wifi/WifiScanModeActivity.java b/src/com/android/settings/wifi/WifiScanModeActivity.java
index c10ee27..446891a 100644
--- a/src/com/android/settings/wifi/WifiScanModeActivity.java
+++ b/src/com/android/settings/wifi/WifiScanModeActivity.java
@@ -39,26 +39,24 @@
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settingslib.wifi.WifiPermissionChecker;
 
-/**
- * This activity requests users permission to allow scanning even when Wi-Fi is turned off
- */
+/** This activity requests users permission to allow scanning even when Wi-Fi is turned off */
 public class WifiScanModeActivity extends FragmentActivity {
     private static final String TAG = "WifiScanModeActivity";
     private DialogFragment mDialog;
-    @VisibleForTesting
-    String mApp;
-    @VisibleForTesting
-    WifiPermissionChecker mWifiPermissionChecker;
+    @VisibleForTesting String mApp;
+    @VisibleForTesting WifiPermissionChecker mWifiPermissionChecker;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        getWindow().addSystemFlags(
-                WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
+        getWindow()
+                .addSystemFlags(
+                        WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
         Intent intent = getIntent();
         if (savedInstanceState == null) {
-            if (intent != null && WifiManager.ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE
-                    .equals(intent.getAction())) {
+            if (intent != null
+                    && WifiManager.ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE.equals(
+                            intent.getAction())) {
                 refreshAppLabel();
             } else {
                 finish();
@@ -92,6 +90,12 @@
             return;
         }
 
+        if (!isWifiScanModeConfigAllowed(getApplicationContext())) {
+            Log.e(TAG, "This user is not allowed to configure Wi-Fi Scan Mode!");
+            finish();
+            return;
+        }
+
         if (mDialog == null) {
             mDialog = AlertDialogFragment.newInstance(mApp);
             mDialog.show(getSupportFragmentManager(), "dialog");
@@ -140,6 +144,7 @@
         }
 
         private final String mApp;
+
         public AlertDialogFragment(String app) {
             super();
             mApp = app;
@@ -158,25 +163,27 @@
         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
             return new AlertDialog.Builder(getActivity())
-                    .setMessage(TextUtils.isEmpty(mApp) ?
-                        getString(R.string.wifi_scan_always_turn_on_message_unknown) :
-                        getString(R.string.wifi_scan_always_turnon_message, mApp))
-                    .setPositiveButton(R.string.wifi_scan_always_confirm_allow,
+                    .setMessage(
+                            TextUtils.isEmpty(mApp)
+                                    ? getString(R.string.wifi_scan_always_turn_on_message_unknown)
+                                    : getString(R.string.wifi_scan_always_turnon_message, mApp))
+                    .setPositiveButton(
+                            R.string.wifi_scan_always_confirm_allow,
                             new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int whichButton) {
                                     ((WifiScanModeActivity) getActivity()).doPositiveClick();
                                 }
-                            }
-                    )
-                    .setNegativeButton(R.string.wifi_scan_always_confirm_deny,
+                            })
+                    .setNegativeButton(
+                            R.string.wifi_scan_always_confirm_deny,
                             new DialogInterface.OnClickListener() {
                                 public void onClick(DialogInterface dialog, int whichButton) {
                                     ((WifiScanModeActivity) getActivity()).doNegativeClick();
                                 }
-                            }
-                    )
+                            })
                     .create();
         }
+
         @Override
         public void onCancel(DialogInterface dialog) {
             ((WifiScanModeActivity) getActivity()).doNegativeClick();
@@ -184,9 +191,14 @@
     }
 
     private static boolean isGuestUser(Context context) {
-        if (context == null) return false;
         final UserManager userManager = context.getSystemService(UserManager.class);
         if (userManager == null) return false;
         return userManager.isGuestUser();
     }
+
+    private static boolean isWifiScanModeConfigAllowed(Context context) {
+        final UserManager userManager = context.getSystemService(UserManager.class);
+        if (userManager == null) return true;
+        return !userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_LOCATION);
+    }
 }
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
deleted file mode 100644
index 2a16664..0000000
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ /dev/null
@@ -1,1209 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.settings.wifi;
-
-import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
-import static android.os.UserManager.DISALLOW_CONFIG_WIFI;
-
-import android.app.Activity;
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.content.ActivityNotFoundException;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.net.NetworkTemplate;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.Looper;
-import android.os.PowerManager;
-import android.os.Process;
-import android.os.SimpleClock;
-import android.os.SystemClock;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.Toast;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.LinkifyUtils;
-import com.android.settings.R;
-import com.android.settings.RestrictedSettingsFragment;
-import com.android.settings.SettingsActivity;
-import com.android.settings.Utils;
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.datausage.DataUsagePreference;
-import com.android.settings.datausage.DataUsageUtils;
-import com.android.settings.location.WifiScanningFragment;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.widget.MainSwitchBarController;
-import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
-import com.android.settings.wifi.dpp.WifiDppUtils;
-import com.android.settingslib.HelpUtils;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.search.Indexable;
-import com.android.settingslib.search.SearchIndexable;
-import com.android.settingslib.utils.StringUtil;
-import com.android.settingslib.wifi.WifiSavedConfigUtils;
-import com.android.wifitrackerlib.WifiEntry;
-import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
-import com.android.wifitrackerlib.WifiPickerTracker;
-
-import java.time.Clock;
-import java.time.ZoneOffset;
-import java.util.List;
-import java.util.Optional;
-
-/**
- * UI for Wi-Fi settings screen
- *
- * @deprecated This file will be deprecated at Android S, please merge your WifiSettings
- * in change in {@link NetworkProviderSettings}.
- */
-@Deprecated
-@SearchIndexable
-public class WifiSettings extends RestrictedSettingsFragment
-        implements Indexable, WifiPickerTracker.WifiPickerTrackerCallback,
-        WifiDialog2.WifiDialog2Listener, DialogInterface.OnDismissListener {
-
-    private static final String TAG = "WifiSettings";
-
-    // Set the Provider Model is always enabled
-    @VisibleForTesting
-    static Boolean IS_ENABLED_PROVIDER_MODEL = true;
-
-    // IDs of context menu
-    static final int MENU_ID_CONNECT = Menu.FIRST + 1;
-    @VisibleForTesting
-    static final int MENU_ID_DISCONNECT = Menu.FIRST + 2;
-    @VisibleForTesting
-    static final int MENU_ID_FORGET = Menu.FIRST + 3;
-    static final int MENU_ID_MODIFY = Menu.FIRST + 4;
-    static final int MENU_ID_SHARE = Menu.FIRST + 5;
-
-    // Max age of tracked WifiEntries
-    private static final long MAX_SCAN_AGE_MILLIS = 15_000;
-    // Interval between initiating WifiPickerTracker scans
-    private static final long SCAN_INTERVAL_MILLIS = 10_000;
-
-    @VisibleForTesting
-    static final int ADD_NETWORK_REQUEST = 2;
-    static final int CONFIG_NETWORK_REQUEST = 3;
-    static final int MANAGE_SUBSCRIPTION = 4;
-
-    private static final String PREF_KEY_EMPTY_WIFI_LIST = "wifi_empty_list";
-    // TODO(b/70983952): Rename these to use WifiEntry instead of AccessPoint.
-    private static final String PREF_KEY_CONNECTED_ACCESS_POINTS = "connected_access_point";
-    private static final String PREF_KEY_ACCESS_POINTS = "access_points";
-    private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_wifi_settings";
-    private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
-    private static final String PREF_KEY_STATUS_MESSAGE = "wifi_status_message";
-    @VisibleForTesting
-    static final String PREF_KEY_DATA_USAGE = "wifi_data_usage";
-
-    private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
-
-    public static final int WIFI_DIALOG_ID = 1;
-
-    // Instance state keys
-    private static final String SAVE_DIALOG_MODE = "dialog_mode";
-    private static final String SAVE_DIALOG_WIFIENTRY_KEY = "wifi_ap_key";
-
-    // Cache at onCreateContextMenu and use at onContextItemSelected. Don't use it in other methods.
-    private WifiEntry mSelectedWifiEntry;
-
-    // Save the dialog details
-    private int mDialogMode;
-    private String mDialogWifiEntryKey;
-    private WifiEntry mDialogWifiEntry;
-
-    // This boolean extra specifies whether to enable the Next button when connected. Used by
-    // account creation outside of setup wizard.
-    private static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect";
-
-    // Enable the Next button when a Wi-Fi network is connected.
-    private boolean mEnableNextOnConnection;
-
-    // This string extra specifies a network to open the connect dialog on, so the user can enter
-    // network credentials.  This is used by quick settings for secured networks, among other
-    // things.
-    private static final String EXTRA_START_CONNECT_SSID = "wifi_start_connect_ssid";
-    private String mOpenSsid;
-
-    private static boolean isVerboseLoggingEnabled() {
-        return WifiPickerTracker.isVerboseLoggingEnabled();
-    }
-
-    private boolean mIsWifiEntryListStale = true;
-    private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
-        updateWifiEntryPreferences();
-    };
-    private final Runnable mHideProgressBarRunnable = () -> {
-        setProgressBarVisible(false);
-    };
-
-    protected WifiManager mWifiManager;
-    private WifiManager.ActionListener mConnectListener;
-    private WifiManager.ActionListener mSaveListener;
-    private WifiManager.ActionListener mForgetListener;
-
-    /**
-     * The state of {@link #isUiRestricted()} at {@link #onCreate(Bundle)}}. This is neccesary to
-     * ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
-     * by the Test DPC tool in AFW mode.
-     */
-    private boolean mIsRestricted;
-
-    private WifiEnabler mWifiEnabler;
-
-    // Worker thread used for WifiPickerTracker work
-    private HandlerThread mWorkerThread;
-    private Handler mMainHandler;
-    private Handler mWorkerHandler;
-
-    @VisibleForTesting
-    WifiPickerTracker mWifiPickerTracker;
-
-    private WifiDialog2 mDialog;
-
-    private View mProgressHeader;
-
-    private PreferenceCategory mConnectedWifiEntryPreferenceCategory;
-    private PreferenceCategory mWifiEntryPreferenceCategory;
-    @VisibleForTesting
-    AddWifiNetworkPreference mAddWifiNetworkPreference;
-    @VisibleForTesting
-    Preference mConfigureWifiSettingsPreference;
-    @VisibleForTesting
-    Preference mSavedNetworksPreference;
-    @VisibleForTesting
-    DataUsagePreference mDataUsagePreference;
-    private LinkablePreference mStatusMessagePreference;
-
-    /**
-     * Tracks whether the user initiated a connection via clicking in order to autoscroll to the
-     * network once connected.
-     */
-    private boolean mClickedConnect;
-
-    public WifiSettings() {
-        super(DISALLOW_CONFIG_WIFI);
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        final Activity activity = getActivity();
-        if (activity != null) {
-            mProgressHeader = setPinnedHeaderView(R.layout.progress_header)
-                    .findViewById(R.id.progress_bar_animation);
-            setProgressBarVisible(false);
-        }
-        ((SettingsActivity) activity).getSwitchBar().setTitle(
-                getContext().getString(R.string.wifi_settings_primary_switch_title));
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        if (IS_ENABLED_PROVIDER_MODEL) {
-            final Intent intent = new Intent("android.settings.NETWORK_PROVIDER_SETTINGS");
-            // Add FLAG_ACTIVITY_NEW_TASK and FLAG_ACTIVITY_CLEAR_TASK to avoid multiple
-            // instances issue. (e.g. b/191956700)
-            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-            final Bundle extras = getActivity().getIntent().getExtras();
-            if (extras != null) {
-                intent.putExtras(extras);
-            }
-            getContext().startActivity(intent);
-            finish();
-            return;
-        }
-
-        // TODO(b/37429702): Add animations and preference comparator back after initial screen is
-        // loaded (ODR).
-        setAnimationAllowed(false);
-
-        addPreferences();
-
-        mIsRestricted = isUiRestricted();
-    }
-
-    private void addPreferences() {
-        addPreferencesFromResource(R.xml.wifi_settings);
-
-        mConnectedWifiEntryPreferenceCategory = findPreference(PREF_KEY_CONNECTED_ACCESS_POINTS);
-        mWifiEntryPreferenceCategory = findPreference(PREF_KEY_ACCESS_POINTS);
-        mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_WIFI_SETTINGS);
-        mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
-        mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext());
-        mStatusMessagePreference = findPreference(PREF_KEY_STATUS_MESSAGE);
-        mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
-        mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
-        mDataUsagePreference.setTemplate(new NetworkTemplate.Builder(
-                NetworkTemplate.MATCH_WIFI).build(), 0 /*subId*/, null /*service*/);
-    }
-
-    @Override
-    public void onActivityCreated(Bundle savedInstanceState) {
-        super.onActivityCreated(savedInstanceState);
-
-        final Context context = getContext();
-        mWorkerThread = new HandlerThread(TAG
-                + "{" + Integer.toHexString(System.identityHashCode(this)) + "}",
-                Process.THREAD_PRIORITY_BACKGROUND);
-        mWorkerThread.start();
-        final Clock elapsedRealtimeClock = new SimpleClock(ZoneOffset.UTC) {
-            @Override
-            public long millis() {
-                return SystemClock.elapsedRealtime();
-            }
-        };
-
-        mMainHandler = new Handler(Looper.getMainLooper());
-        mWorkerHandler = mWorkerThread.getThreadHandler();
-        mWifiPickerTracker = FeatureFactory.getFactory(context)
-                .getWifiTrackerLibProvider()
-                .createWifiPickerTracker(getSettingsLifecycle(), context,
-                        mMainHandler, mWorkerHandler,
-                        elapsedRealtimeClock,
-                        MAX_SCAN_AGE_MILLIS,
-                        SCAN_INTERVAL_MILLIS,
-                        this);
-
-        final Activity activity = getActivity();
-
-        if (activity != null) {
-            mWifiManager = getActivity().getSystemService(WifiManager.class);
-        }
-
-        mConnectListener = new WifiConnectListener(getActivity());
-
-        mSaveListener = new WifiManager.ActionListener() {
-            @Override
-            public void onSuccess() {
-            }
-
-            @Override
-            public void onFailure(int reason) {
-                Activity activity = getActivity();
-                if (activity != null) {
-                    Toast.makeText(activity,
-                            R.string.wifi_failed_save_message,
-                            Toast.LENGTH_SHORT).show();
-                }
-            }
-        };
-
-        mForgetListener = new WifiManager.ActionListener() {
-            @Override
-            public void onSuccess() {
-            }
-
-            @Override
-            public void onFailure(int reason) {
-                Activity activity = getActivity();
-                if (activity != null) {
-                    Toast.makeText(activity,
-                            R.string.wifi_failed_forget_message,
-                            Toast.LENGTH_SHORT).show();
-                }
-            }
-        };
-        registerForContextMenu(getListView());
-        setHasOptionsMenu(true);
-
-        if (savedInstanceState != null) {
-            mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
-            mDialogWifiEntryKey = savedInstanceState.getString(SAVE_DIALOG_WIFIENTRY_KEY);
-        }
-
-        // If we're supposed to enable/disable the Next button based on our current connection
-        // state, start it off in the right state.
-        final Intent intent = getActivity().getIntent();
-        mEnableNextOnConnection = intent.getBooleanExtra(EXTRA_ENABLE_NEXT_ON_CONNECT, false);
-
-        if (intent.hasExtra(EXTRA_START_CONNECT_SSID)) {
-            mOpenSsid = intent.getStringExtra(EXTRA_START_CONNECT_SSID);
-        }
-
-        // After rebooting the device, the Wi-Fi state will not be called back in the airplane
-        // mode, need to call onWifiStateChanged() to update the initial state of the UI.
-        onWifiStateChanged();
-    }
-
-    @Override
-    public void onDestroyView() {
-        if (mWifiEnabler != null) {
-            mWifiEnabler.teardownSwitchController();
-        }
-
-        // remove all msg and callback in main handler and worker handler
-        mMainHandler.removeCallbacksAndMessages(null);
-        mWorkerHandler.removeCallbacksAndMessages(null);
-        mWorkerThread.quit();
-
-        super.onDestroyView();
-    }
-
-    @Override
-    public void onStart() {
-        super.onStart();
-
-        mWifiEnabler = createWifiEnabler();
-
-        if (mIsRestricted) {
-            restrictUi();
-        }
-    }
-
-    private void restrictUi() {
-        if (!isUiRestrictedByOnlyAdmin()) {
-            getEmptyTextView().setText(R.string.wifi_empty_list_user_restricted);
-        }
-        getPreferenceScreen().removeAll();
-    }
-
-    /**
-     * @return new WifiEnabler
-     */
-    private WifiEnabler createWifiEnabler() {
-        final SettingsActivity activity = (SettingsActivity) getActivity();
-        return new WifiEnabler(activity, new MainSwitchBarController(activity.getSwitchBar()),
-                mMetricsFeatureProvider);
-    }
-
-    @Override
-    public void onResume() {
-        final Activity activity = getActivity();
-        super.onResume();
-
-        // Because RestrictedSettingsFragment's onResume potentially requests authorization,
-        // which changes the restriction state, recalculate it.
-        final boolean alreadyImmutablyRestricted = mIsRestricted;
-        mIsRestricted = isUiRestricted();
-        if (!alreadyImmutablyRestricted && mIsRestricted) {
-            restrictUi();
-        }
-
-        if (mWifiEnabler != null) {
-            mWifiEnabler.resume(activity);
-        }
-
-        changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        if (mWifiEnabler != null) {
-            mWifiEnabler.pause();
-        }
-    }
-
-    @Override
-    public void onStop() {
-        getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable);
-        getView().removeCallbacks(mHideProgressBarRunnable);
-        mIsWifiEntryListStale = true;
-        super.onStop();
-    }
-
-    @Override
-    public void onActivityResult(int requestCode, int resultCode, Intent data) {
-        super.onActivityResult(requestCode, resultCode, data);
-
-        if (requestCode == ADD_NETWORK_REQUEST) {
-            handleAddNetworkRequest(resultCode, data);
-            return;
-        } else if (requestCode == REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER) {
-            if (resultCode == Activity.RESULT_OK) {
-                if (mDialog != null) {
-                    mDialog.dismiss();
-                }
-            }
-            return;
-        } else if (requestCode == CONFIG_NETWORK_REQUEST) {
-            if (resultCode == Activity.RESULT_OK) {
-                final WifiConfiguration wifiConfiguration = data.getParcelableExtra(
-                        ConfigureWifiEntryFragment.NETWORK_CONFIG_KEY);
-                if (wifiConfiguration != null) {
-                    mWifiManager.connect(wifiConfiguration,
-                            new WifiConnectActionListener());
-                }
-            }
-            return;
-        } else if (requestCode == MANAGE_SUBSCRIPTION) {
-            //Do nothing
-            return;
-        }
-
-        final boolean formerlyRestricted = mIsRestricted;
-        mIsRestricted = isUiRestricted();
-        if (formerlyRestricted && !mIsRestricted
-                && getPreferenceScreen().getPreferenceCount() == 0) {
-            // De-restrict the ui
-            addPreferences();
-        }
-    }
-
-    @Override
-    protected RecyclerView.Adapter onCreateAdapter(PreferenceScreen preferenceScreen) {
-        final RecyclerView.Adapter adapter = super.onCreateAdapter(preferenceScreen);
-        adapter.setHasStableIds(true);
-        return adapter;
-    }
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.WIFI;
-    }
-
-    @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        // If dialog has been shown, save its state.
-        if (mDialog != null) {
-            outState.putInt(SAVE_DIALOG_MODE, mDialogMode);
-            outState.putString(SAVE_DIALOG_WIFIENTRY_KEY, mDialogWifiEntryKey);
-        }
-    }
-
-    @Override
-    public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo info) {
-        Preference preference = (Preference) view.getTag();
-        if (!(preference instanceof LongPressWifiEntryPreference)) {
-            // Do nothing.
-            return;
-        }
-
-        // Cache the WifiEntry for onContextItemSelected. Don't use it in other methods.
-        mSelectedWifiEntry = ((LongPressWifiEntryPreference) preference).getWifiEntry();
-
-        menu.setHeaderTitle(mSelectedWifiEntry.getTitle());
-        if (mSelectedWifiEntry.canConnect()) {
-            menu.add(Menu.NONE, MENU_ID_CONNECT, 0 /* order */, R.string.wifi_connect);
-        }
-
-        if (mSelectedWifiEntry.canDisconnect()) {
-            menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
-            menu.add(Menu.NONE, MENU_ID_DISCONNECT, 1 /* order */,
-                    R.string.wifi_disconnect_button_text);
-        }
-
-        // "forget" for normal saved network. And "disconnect" for ephemeral network because it
-        // could only be disconnected and be put in blocklists so it won't be used again.
-        if (canForgetNetwork()) {
-            menu.add(Menu.NONE, MENU_ID_FORGET, 0 /* order */, R.string.forget);
-        }
-
-        WifiConfiguration config = mSelectedWifiEntry.getWifiConfiguration();
-        // Some configs are ineditable
-        if (WifiUtils.isNetworkLockedDown(getActivity(), config)) {
-            return;
-        }
-
-        if (mSelectedWifiEntry.isSaved() && mSelectedWifiEntry.getConnectedState()
-                != WifiEntry.CONNECTED_STATE_CONNECTED) {
-            menu.add(Menu.NONE, MENU_ID_MODIFY, 0 /* order */, R.string.wifi_modify);
-        }
-    }
-
-    private boolean canForgetNetwork() {
-        return mSelectedWifiEntry.canForget() && !WifiUtils.isNetworkLockedDown(getActivity(),
-                mSelectedWifiEntry.getWifiConfiguration());
-    }
-
-    @Override
-    public boolean onContextItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case MENU_ID_CONNECT:
-                connect(mSelectedWifiEntry, true /* editIfNoConfig */, false /* fullScreenEdit */);
-                return true;
-            case MENU_ID_DISCONNECT:
-                mSelectedWifiEntry.disconnect(null /* callback */);
-                return true;
-            case MENU_ID_FORGET:
-                forget(mSelectedWifiEntry);
-                return true;
-            case MENU_ID_SHARE:
-                WifiDppUtils.showLockScreen(getContext(),
-                        () -> launchWifiDppConfiguratorActivity(mSelectedWifiEntry));
-                return true;
-            case MENU_ID_MODIFY:
-                showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
-                return true;
-            default:
-                return super.onContextItemSelected(item);
-        }
-    }
-
-    @Override
-    public boolean onPreferenceTreeClick(Preference preference) {
-        // If the preference has a fragment set, open that
-        if (preference.getFragment() != null) {
-            preference.setOnPreferenceClickListener(null);
-            return super.onPreferenceTreeClick(preference);
-        }
-
-        if (preference instanceof LongPressWifiEntryPreference) {
-            final WifiEntry selectedEntry =
-                    ((LongPressWifiEntryPreference) preference).getWifiEntry();
-
-            if (selectedEntry.shouldEditBeforeConnect()) {
-                launchConfigNewNetworkFragment(selectedEntry);
-                return true;
-            }
-
-            connect(selectedEntry, true /* editIfNoConfig */, true /* fullScreenEdit */);
-        } else if (preference == mAddWifiNetworkPreference) {
-            onAddNetworkPressed();
-        } else {
-            return super.onPreferenceTreeClick(preference);
-        }
-        return true;
-    }
-
-    private void showDialog(WifiEntry wifiEntry, int dialogMode) {
-        if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
-                && wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
-            RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(),
-                    RestrictedLockUtilsInternal.getDeviceOwner(getActivity()));
-            return;
-        }
-
-        if (mDialog != null) {
-            removeDialog(WIFI_DIALOG_ID);
-            mDialog = null;
-        }
-
-        // Save the access point and edit mode
-        mDialogWifiEntry = wifiEntry;
-        mDialogWifiEntryKey = wifiEntry.getKey();
-        mDialogMode = dialogMode;
-
-        showDialog(WIFI_DIALOG_ID);
-    }
-
-    @Override
-    public Dialog onCreateDialog(int dialogId) {
-        switch (dialogId) {
-            case WIFI_DIALOG_ID:
-                // modify network
-                mDialog = WifiDialog2
-                        .createModal(getActivity(), this, mDialogWifiEntry, mDialogMode);
-                return mDialog;
-            default:
-                return super.onCreateDialog(dialogId);
-        }
-    }
-
-    @Override
-    public void onDialogShowing() {
-        super.onDialogShowing();
-        setOnDismissListener(this);
-    }
-
-    @Override
-    public void onDismiss(DialogInterface dialog) {
-        // We don't keep any dialog object when dialog was dismissed.
-        mDialog = null;
-        mDialogWifiEntry = null;
-        mDialogWifiEntryKey = null;
-    }
-
-    @Override
-    public int getDialogMetricsCategory(int dialogId) {
-        switch (dialogId) {
-            case WIFI_DIALOG_ID:
-                return SettingsEnums.DIALOG_WIFI_AP_EDIT;
-            default:
-                return 0;
-        }
-    }
-
-    /** Called when the state of Wifi has changed. */
-    @Override
-    public void onWifiStateChanged() {
-        if (mIsRestricted || isFinishingOrDestroyed()) {
-            return;
-        }
-        final int wifiState = mWifiPickerTracker.getWifiState();
-
-        if (isVerboseLoggingEnabled()) {
-            Log.i(TAG, "onWifiStateChanged called with wifi state: " + wifiState);
-        }
-
-        switch (wifiState) {
-            case WifiManager.WIFI_STATE_ENABLED:
-                updateWifiEntryPreferences();
-                break;
-
-            case WifiManager.WIFI_STATE_ENABLING:
-                removeConnectedWifiEntryPreference();
-                removeWifiEntryPreference();
-                addMessagePreference(R.string.wifi_starting);
-                setProgressBarVisible(true);
-                break;
-
-            case WifiManager.WIFI_STATE_DISABLING:
-                removeConnectedWifiEntryPreference();
-                removeWifiEntryPreference();
-                addMessagePreference(R.string.wifi_stopping);
-                break;
-
-            case WifiManager.WIFI_STATE_DISABLED:
-                setOffMessage();
-                setAdditionalSettingsSummaries();
-                setProgressBarVisible(false);
-                mClickedConnect = false;
-                break;
-        }
-    }
-
-    @Override
-    public void onWifiEntriesChanged() {
-        if (isFinishingOrDestroyed()) {
-            return;
-        }
-
-        if (mIsWifiEntryListStale) {
-            mIsWifiEntryListStale = false;
-            updateWifiEntryPreferences();
-        } else {
-            updateWifiEntryPreferencesDelayed();
-        }
-        changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
-
-        // Edit the Wi-Fi network of specified SSID.
-        if (mOpenSsid != null) {
-            Optional<WifiEntry> matchedWifiEntry = mWifiPickerTracker.getWifiEntries().stream()
-                    .filter(wifiEntry -> TextUtils.equals(mOpenSsid, wifiEntry.getSsid()))
-                    .filter(wifiEntry -> wifiEntry.getSecurity() != WifiEntry.SECURITY_NONE
-                            && wifiEntry.getSecurity() != WifiEntry.SECURITY_OWE)
-                    .filter(wifiEntry -> !wifiEntry.isSaved()
-                            || isDisabledByWrongPassword(wifiEntry))
-                    .findFirst();
-            if (matchedWifiEntry.isPresent()) {
-                mOpenSsid = null;
-                launchConfigNewNetworkFragment(matchedWifiEntry.get());
-            }
-        }
-    }
-
-    @Override
-    public void onNumSavedNetworksChanged() {
-        if (isFinishingOrDestroyed()) {
-            return;
-        }
-        setAdditionalSettingsSummaries();
-    }
-
-    @Override
-    public void onNumSavedSubscriptionsChanged() {
-        if (isFinishingOrDestroyed()) {
-            return;
-        }
-        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.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);
-        }
-    }
-
-    private void updateWifiEntryPreferences() {
-        // in case state has changed
-        if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
-            return;
-        }
-
-        boolean hasAvailableWifiEntries = false;
-        mStatusMessagePreference.setVisible(false);
-        mWifiEntryPreferenceCategory.setVisible(true);
-
-        final WifiEntry connectedEntry = mWifiPickerTracker.getConnectedWifiEntry();
-        mConnectedWifiEntryPreferenceCategory.setVisible(connectedEntry != null);
-        if (connectedEntry != null) {
-            final LongPressWifiEntryPreference connectedPref =
-                    mConnectedWifiEntryPreferenceCategory.findPreference(connectedEntry.getKey());
-            if (connectedPref == null || connectedPref.getWifiEntry() != connectedEntry) {
-                mConnectedWifiEntryPreferenceCategory.removeAll();
-                final ConnectedWifiEntryPreference pref =
-                        new ConnectedWifiEntryPreference(getPrefContext(), connectedEntry, this);
-                pref.setKey(connectedEntry.getKey());
-                pref.refresh();
-                mConnectedWifiEntryPreferenceCategory.addPreference(pref);
-                pref.setOnPreferenceClickListener(preference -> {
-                    if (connectedEntry.canSignIn()) {
-                        connectedEntry.signIn(null /* callback */);
-                    } else {
-                        launchNetworkDetailsFragment(pref);
-                    }
-                    return true;
-                });
-                pref.setOnGearClickListener(preference -> {
-                    launchNetworkDetailsFragment(pref);
-                });
-
-                if (mClickedConnect) {
-                    mClickedConnect = false;
-                    scrollToPreference(mConnectedWifiEntryPreferenceCategory);
-                }
-            }
-        } else {
-            mConnectedWifiEntryPreferenceCategory.removeAll();
-        }
-
-        int index = 0;
-        cacheRemoveAllPrefs(mWifiEntryPreferenceCategory);
-        List<WifiEntry> wifiEntries = mWifiPickerTracker.getWifiEntries();
-        for (WifiEntry wifiEntry : wifiEntries) {
-            hasAvailableWifiEntries = true;
-
-            String key = wifiEntry.getKey();
-            LongPressWifiEntryPreference pref =
-                    (LongPressWifiEntryPreference) getCachedPreference(key);
-            if (pref != null) {
-                if (pref.getWifiEntry() == wifiEntry) {
-                    pref.setOrder(index++);
-                    continue;
-                } else {
-                    // Create a new preference if the underlying WifiEntry object has changed
-                    removePreference(key);
-                }
-            }
-
-            pref = createLongPressWifiEntryPreference(wifiEntry);
-            pref.setKey(wifiEntry.getKey());
-            pref.setOrder(index++);
-            pref.refresh();
-
-            if (wifiEntry.getHelpUriString() != null) {
-                pref.setOnButtonClickListener(preference -> {
-                    openSubscriptionHelpPage(wifiEntry);
-                });
-            }
-            mWifiEntryPreferenceCategory.addPreference(pref);
-        }
-        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++);
-        mWifiEntryPreferenceCategory.addPreference(mAddWifiNetworkPreference);
-        setAdditionalSettingsSummaries();
-    }
-
-    private void launchNetworkDetailsFragment(LongPressWifiEntryPreference pref) {
-        final WifiEntry wifiEntry = pref.getWifiEntry();
-        final Context context = getContext();
-        final CharSequence title =
-                FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER)
-                        ? wifiEntry.getTitle()
-                        : context.getText(R.string.pref_title_network_details);
-
-        final Bundle bundle = new Bundle();
-        bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey());
-
-        new SubSettingLauncher(context)
-                .setTitleText(title)
-                .setDestination(WifiNetworkDetailsFragment.class.getName())
-                .setArguments(bundle)
-                .setSourceMetricsCategory(getMetricsCategory())
-                .launch();
-    }
-
-    @VisibleForTesting
-    LongPressWifiEntryPreference createLongPressWifiEntryPreference(WifiEntry wifiEntry) {
-        return new LongPressWifiEntryPreference(getPrefContext(), wifiEntry, this);
-    }
-
-    private void launchAddNetworkFragment() {
-        new SubSettingLauncher(getContext())
-                .setTitleRes(R.string.wifi_add_network)
-                .setDestination(AddNetworkFragment.class.getName())
-                .setSourceMetricsCategory(getMetricsCategory())
-                .setResultListener(this, ADD_NETWORK_REQUEST)
-                .launch();
-    }
-
-    /** Removes all preferences and hide the {@link #mConnectedWifiEntryPreferenceCategory}. */
-    private void removeConnectedWifiEntryPreference() {
-        mConnectedWifiEntryPreferenceCategory.removeAll();
-        mConnectedWifiEntryPreferenceCategory.setVisible(false);
-    }
-
-    private void removeWifiEntryPreference() {
-        mWifiEntryPreferenceCategory.removeAll();
-        mWifiEntryPreferenceCategory.setVisible(false);
-    }
-
-    @VisibleForTesting
-    void setAdditionalSettingsSummaries() {
-        mConfigureWifiSettingsPreference.setSummary(getString(
-                isWifiWakeupEnabled()
-                        ? R.string.wifi_configure_settings_preference_summary_wakeup_on
-                        : R.string.wifi_configure_settings_preference_summary_wakeup_off));
-
-        final int numSavedNetworks = mWifiPickerTracker.getNumSavedNetworks();
-        final int numSavedSubscriptions = mWifiPickerTracker.getNumSavedSubscriptions();
-        if (numSavedNetworks + numSavedSubscriptions > 0) {
-            mSavedNetworksPreference.setVisible(true);
-            mSavedNetworksPreference.setSummary(
-                    getSavedNetworkSettingsSummaryText(numSavedNetworks, numSavedSubscriptions));
-        } else {
-            mSavedNetworksPreference.setVisible(false);
-        }
-    }
-
-    private String getSavedNetworkSettingsSummaryText(
-            int numSavedNetworks, int numSavedSubscriptions) {
-        if (getContext() == null) {
-            return "";
-        }
-        if (numSavedSubscriptions == 0) {
-            return StringUtil.getIcuPluralsString(getContext(), numSavedNetworks,
-                    R.string.wifi_saved_access_points_summary);
-        } else if (numSavedNetworks == 0) {
-            return StringUtil.getIcuPluralsString(getContext(), numSavedSubscriptions,
-                    R.string.wifi_saved_passpoint_access_points_summary);
-        } else {
-            final int numTotalEntries = numSavedNetworks + numSavedSubscriptions;
-            return StringUtil.getIcuPluralsString(getContext(), numTotalEntries,
-                    R.string.wifi_saved_all_access_points_summary);
-        }
-    }
-
-    private boolean isWifiWakeupEnabled() {
-        final Context context = getContext();
-        final PowerManager powerManager = context.getSystemService(PowerManager.class);
-        final ContentResolver contentResolver = context.getContentResolver();
-        return mWifiManager.isAutoWakeupEnabled()
-                && mWifiManager.isScanAlwaysAvailable()
-                && Settings.Global.getInt(contentResolver,
-                Settings.Global.AIRPLANE_MODE_ON, 0) == 0
-                && !powerManager.isPowerSaveMode();
-    }
-
-    private void setOffMessage() {
-        final CharSequence title = getText(R.string.wifi_empty_list_wifi_off);
-        // Don't use WifiManager.isScanAlwaysAvailable() to check the Wi-Fi scanning mode. Instead,
-        // read the system settings directly. Because when the device is in Airplane mode, even if
-        // Wi-Fi scanning mode is on, WifiManager.isScanAlwaysAvailable() still returns "off".
-        // TODO(b/149421497): Fix this?
-        final boolean wifiScanningMode = mWifiManager.isScanAlwaysAvailable();
-        final CharSequence description = wifiScanningMode ? getText(R.string.wifi_scan_notify_text)
-                : getText(R.string.wifi_scan_notify_text_scanning_off);
-        final LinkifyUtils.OnClickListener clickListener =
-                () -> new SubSettingLauncher(getContext())
-                        .setDestination(WifiScanningFragment.class.getName())
-                        .setTitleRes(R.string.location_scanning_wifi_always_scanning_title)
-                        .setSourceMetricsCategory(getMetricsCategory())
-                        .launch();
-        mStatusMessagePreference.setText(title, description, clickListener);
-        removeConnectedWifiEntryPreference();
-        removeWifiEntryPreference();
-        mStatusMessagePreference.setVisible(true);
-    }
-
-    private void addMessagePreference(int messageId) {
-        mStatusMessagePreference.setTitle(messageId);
-        mStatusMessagePreference.setVisible(true);
-
-    }
-
-    protected void setProgressBarVisible(boolean visible) {
-        if (mProgressHeader != null) {
-            mProgressHeader.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-
-    @VisibleForTesting
-    void handleAddNetworkRequest(int result, Intent data) {
-        if (result == Activity.RESULT_OK) {
-            handleAddNetworkSubmitEvent(data);
-        }
-    }
-
-    private void handleAddNetworkSubmitEvent(Intent data) {
-        final WifiConfiguration wifiConfiguration = data.getParcelableExtra(
-                AddNetworkFragment.WIFI_CONFIG_KEY);
-        if (wifiConfiguration != null) {
-            mWifiManager.save(wifiConfiguration, mSaveListener);
-        }
-    }
-
-    /**
-     * Called when "add network" button is pressed.
-     */
-    private void onAddNetworkPressed() {
-        launchAddNetworkFragment();
-    }
-
-    @Override
-    public int getHelpResource() {
-        return R.string.help_url_wifi;
-    }
-
-    /**
-     * Renames/replaces "Next" button when appropriate. "Next" button usually exists in
-     * Wi-Fi setup screens, not in usual wifi settings screen.
-     *
-     * @param enabled true when the device is connected to a wifi network.
-     */
-    @VisibleForTesting
-    void changeNextButtonState(boolean enabled) {
-        if (mEnableNextOnConnection && hasNextButton()) {
-            getNextButton().setEnabled(enabled);
-        }
-    }
-
-    @Override
-    public void onForget(WifiDialog2 dialog) {
-        forget(dialog.getWifiEntry());
-    }
-
-    @Override
-    public void onSubmit(WifiDialog2 dialog) {
-        final int dialogMode = dialog.getMode();
-        final WifiConfiguration config = dialog.getController().getConfig();
-        final WifiEntry wifiEntry = dialog.getWifiEntry();
-
-        if (dialogMode == WifiConfigUiBase2.MODE_MODIFY) {
-            if (config == null) {
-                Toast.makeText(getContext(), R.string.wifi_failed_save_message,
-                        Toast.LENGTH_SHORT).show();
-            } else {
-                mWifiManager.save(config, mSaveListener);
-            }
-        } else if (dialogMode == WifiConfigUiBase2.MODE_CONNECT
-                || (dialogMode == WifiConfigUiBase2.MODE_VIEW && wifiEntry.canConnect())) {
-            if (config == null) {
-                connect(wifiEntry, false /* editIfNoConfig */,
-                        false /* fullScreenEdit*/);
-            } else {
-                mWifiManager.connect(config, new WifiConnectActionListener());
-            }
-        }
-    }
-
-    @Override
-    public void onScan(WifiDialog2 dialog, String ssid) {
-        // Launch QR code scanner to join a network.
-        startActivityForResult(
-                WifiDppUtils.getEnrolleeQrCodeScannerIntent(dialog.getContext(), ssid),
-                REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
-    }
-
-    private void forget(WifiEntry wifiEntry) {
-        mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_WIFI_FORGET);
-        wifiEntry.forget(null /* callback */);
-    }
-
-    @VisibleForTesting
-    void connect(WifiEntry wifiEntry, boolean editIfNoConfig, boolean fullScreenEdit) {
-        mMetricsFeatureProvider.action(getActivity(), SettingsEnums.ACTION_WIFI_CONNECT,
-                wifiEntry.isSaved());
-
-        // If it's an unsaved secure WifiEntry, it will callback
-        // ConnectCallback#onConnectResult with ConnectCallback#CONNECT_STATUS_FAILURE_NO_CONFIG
-        wifiEntry.connect(new WifiEntryConnectCallback(wifiEntry, editIfNoConfig,
-                fullScreenEdit));
-    }
-
-    private class WifiConnectActionListener implements WifiManager.ActionListener {
-        @Override
-        public void onSuccess() {
-            mClickedConnect = true;
-        }
-
-        @Override
-        public void onFailure(int reason) {
-            if (isFinishingOrDestroyed()) {
-                return;
-            }
-            Toast.makeText(getContext(), R.string.wifi_failed_connect_message, Toast.LENGTH_SHORT)
-                    .show();
-        }
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.wifi_settings) {
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return !IS_ENABLED_PROVIDER_MODEL;
-                }
-
-                @Override
-                public List<String> getNonIndexableKeys(Context context) {
-                    final List<String> keys = super.getNonIndexableKeys(context);
-
-                    final WifiManager wifiManager = context.getSystemService(WifiManager.class);
-                    if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) {
-                        keys.add(PREF_KEY_SAVED_NETWORKS);
-                    }
-
-                    if (!DataUsageUtils.hasWifiRadio(context)) {
-                        keys.add(PREF_KEY_DATA_USAGE);
-                    }
-                    return keys;
-                }
-            };
-
-    private class WifiEntryConnectCallback implements ConnectCallback {
-        final WifiEntry mConnectWifiEntry;
-        final boolean mEditIfNoConfig;
-        final boolean mFullScreenEdit;
-
-        WifiEntryConnectCallback(WifiEntry connectWifiEntry, boolean editIfNoConfig,
-                boolean fullScreenEdit) {
-            mConnectWifiEntry = connectWifiEntry;
-            mEditIfNoConfig = editIfNoConfig;
-            mFullScreenEdit = fullScreenEdit;
-        }
-
-        @Override
-        public void onConnectResult(@ConnectStatus int status) {
-            if (isFinishingOrDestroyed()) {
-                return;
-            }
-
-            if (status == ConnectCallback.CONNECT_STATUS_SUCCESS) {
-                mClickedConnect = true;
-            } else if (status == ConnectCallback.CONNECT_STATUS_FAILURE_NO_CONFIG) {
-                if (mEditIfNoConfig) {
-                    // Edit an unsaved secure Wi-Fi network.
-                    if (mFullScreenEdit) {
-                        launchConfigNewNetworkFragment(mConnectWifiEntry);
-                    } else {
-                        showDialog(mConnectWifiEntry, WifiConfigUiBase2.MODE_CONNECT);
-                    }
-                }
-            } else if (status == CONNECT_STATUS_FAILURE_UNKNOWN) {
-                Toast.makeText(getContext(), R.string.wifi_failed_connect_message,
-                        Toast.LENGTH_SHORT).show();
-            }
-        }
-    }
-
-    private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
-        final Bundle bundle = new Bundle();
-        bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY,
-                wifiEntry.getKey());
-        new SubSettingLauncher(getContext())
-                .setTitleText(wifiEntry.getTitle())
-                .setDestination(ConfigureWifiEntryFragment.class.getName())
-                .setArguments(bundle)
-                .setSourceMetricsCategory(getMetricsCategory())
-                .setResultListener(WifiSettings.this, CONFIG_NETWORK_REQUEST)
-                .launch();
-    }
-
-    private void launchWifiDppConfiguratorActivity(WifiEntry wifiEntry) {
-        final Intent intent = WifiDppUtils.getConfiguratorQrCodeGeneratorIntentOrNull(getContext(),
-                mWifiManager, wifiEntry);
-
-        if (intent == null) {
-            Log.e(TAG, "Launch Wi-Fi DPP QR code generator with a wrong Wi-Fi network!");
-        } else {
-            mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
-                    SettingsEnums.ACTION_SETTINGS_SHARE_WIFI_QR_CODE,
-                    SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR,
-                    /* key */ null,
-                    /* value */ Integer.MIN_VALUE);
-
-            startActivity(intent);
-        }
-    }
-
-    /** Helper method to return whether a WifiEntry is disabled due to a wrong password */
-    private static boolean isDisabledByWrongPassword(WifiEntry wifiEntry) {
-        WifiConfiguration config = wifiEntry.getWifiConfiguration();
-        if (config == null) {
-            return false;
-        }
-        WifiConfiguration.NetworkSelectionStatus networkStatus =
-                config.getNetworkSelectionStatus();
-        if (networkStatus == null
-                || networkStatus.getNetworkSelectionStatus() == NETWORK_SELECTION_ENABLED) {
-            return false;
-        }
-        int reason = networkStatus.getNetworkSelectionDisableReason();
-        return WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD == reason;
-    }
-
-    @VisibleForTesting
-    void openSubscriptionHelpPage(WifiEntry wifiEntry) {
-        final Intent intent = getHelpIntent(getContext(), wifiEntry.getHelpUriString());
-        if (intent != null) {
-            try {
-                startActivityForResult(intent, MANAGE_SUBSCRIPTION);
-            } catch (ActivityNotFoundException e) {
-                Log.e(TAG, "Activity was not found for intent, " + intent.toString());
-            }
-        }
-    }
-
-    @VisibleForTesting
-    Intent getHelpIntent(Context context, String helpUrlString) {
-        return HelpUtils.getHelpIntent(context, helpUrlString, context.getClass().getName());
-    }
-}
diff --git a/src/com/android/settings/wifi/WifiSummaryUpdater.java b/src/com/android/settings/wifi/WifiSummaryUpdater.java
index 93bbe0f..645d2ea 100644
--- a/src/com/android/settings/wifi/WifiSummaryUpdater.java
+++ b/src/com/android/settings/wifi/WifiSummaryUpdater.java
@@ -36,7 +36,7 @@
  * Helper class that listeners to wifi callback and notify client when there is update in
  * wifi summary info.
  */
-public final class WifiSummaryUpdater extends SummaryUpdater {
+public class WifiSummaryUpdater extends SummaryUpdater {
 
     private final WifiStatusTracker mWifiTracker;
     private final BroadcastReceiver mReceiver;
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/addappnetworks/AddAppNetworksFragment.java b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java
index 60031b0..f4873cf 100644
--- a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java
+++ b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java
@@ -192,7 +192,7 @@
                 return SystemClock.elapsedRealtime();
             }
         };
-        mWifiPickerTracker = FeatureFactory.getFactory(mActivity.getApplicationContext())
+        mWifiPickerTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createWifiPickerTracker(getSettingsLifecycle(), mActivity,
                         new Handler(Looper.getMainLooper()),
@@ -550,7 +550,7 @@
             }
 
             final View divider = view.findViewById(
-                    com.android.settingslib.R.id.two_target_divider);
+                    com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
             if (divider != null) {
                 divider.setVisibility(View.GONE);
             }
diff --git a/src/com/android/settings/wifi/calling/OWNERS b/src/com/android/settings/wifi/calling/OWNERS
index 991ad43..87e5fcc 100644
--- a/src/com/android/settings/wifi/calling/OWNERS
+++ b/src/com/android/settings/wifi/calling/OWNERS
@@ -2,7 +2,6 @@
 allenwtsu@google.com
 andychou@google.com
 bonianchen@google.com
-goldmanj@google.com
 leechou@google.com
 songferngwang@google.com
 tomhsu@google.com
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index 098787c..82537d4 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -27,6 +27,7 @@
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
+import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
 import android.telephony.TelephonyManager;
@@ -38,7 +39,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;
@@ -48,6 +50,7 @@
 import com.android.ims.ImsConfig;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
@@ -55,7 +58,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 +66,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";
 
@@ -97,6 +99,7 @@
     private boolean mEditableWfcMode = true;
     private boolean mEditableWfcRoamingMode = true;
     private boolean mUseWfcHomeModeForRoaming = false;
+    private boolean mOverrideWfcRoamingModeWhileUsingNtn = false;
 
     private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
     private ImsMmTelManager mImsMmTelManager;
@@ -125,7 +128,7 @@
             if (prefSwitch != null) {
                 isWfcEnabled = prefSwitch.isChecked();
                 isCallStateIdle = getTelephonyManagerForSub(
-                        WifiCallingSettingsForSub.this.mSubId).getCallState()
+                        WifiCallingSettingsForSub.this.mSubId).getCallStateForSubscription()
                         == TelephonyManager.CALL_STATE_IDLE;
 
                 boolean isNonTtyOrTtyOnVolteEnabled = true;
@@ -166,7 +169,8 @@
             final Preference pref_roam =
                     getPreferenceScreen().findPreference(BUTTON_WFC_ROAMING_MODE);
             if (pref_roam != null) {
-                pref_roam.setEnabled(isWfcRoamingModeEditable);
+                pref_roam.setEnabled(isWfcRoamingModeEditable
+                        && !overrideWfcRoamingModeWhileUsingNtn());
             }
         }
     }
@@ -361,6 +365,9 @@
                         false);
                 isWifiOnlySupported = b.getBoolean(
                         CarrierConfigManager.KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, true);
+                mOverrideWfcRoamingModeWhileUsingNtn = b.getBoolean(
+                        CarrierConfigManager.KEY_OVERRIDE_WFC_ROAMING_MODE_WHILE_USING_NTN_BOOL,
+                        true);
             }
         }
 
@@ -409,11 +416,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 +470,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 +523,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 +553,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) {
@@ -556,7 +584,8 @@
         mButtonWfcMode.setSummary(getWfcModeSummary(wfcMode));
         mButtonWfcMode.setEnabled(wfcEnabled && mEditableWfcMode);
         // mButtonWfcRoamingMode.setSummary is not needed; summary is just selected value.
-        mButtonWfcRoamingMode.setEnabled(wfcEnabled && mEditableWfcRoamingMode);
+        mButtonWfcRoamingMode.setEnabled(wfcEnabled && mEditableWfcRoamingMode
+                && !overrideWfcRoamingModeWhileUsingNtn());
 
         final PreferenceScreen preferenceScreen = getPreferenceScreen();
         final boolean updateAddressEnabled = (getCarrierActivityIntent() != null);
@@ -594,29 +623,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;
@@ -667,4 +719,30 @@
         }
         mProvisioningManager.unregisterProvisioningChangedCallback(mProvisioningCallback);
     }
+
+    /**
+     * Determine whether to override roaming Wi-Fi calling preference when device is connected to
+     * non-terrestrial network.
+     *
+     * @return {@code true} if phone is connected to non-terrestrial network and if
+     * {@link CarrierConfigManager#KEY_OVERRIDE_WFC_ROAMING_MODE_WHILE_USING_NTN_BOOL} is true,
+     * {@code false} otherwise.
+     */
+    private boolean overrideWfcRoamingModeWhileUsingNtn() {
+        if (!Flags.carrierEnabledSatelliteFlag()) {
+            return false;
+        }
+
+        TelephonyManager tm = getTelephonyManagerForSub(mSubId);
+        ServiceState serviceState = tm.getServiceState();
+        if (serviceState == null) {
+            return false;
+        }
+
+        if (!serviceState.isUsingNonTerrestrialNetwork()) {
+            return false;
+        }
+
+        return mOverrideWfcRoamingModeWhileUsingNtn;
+    }
 }
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java b/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
index 522d697..4272ab7 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSliceHelper.java
@@ -131,12 +131,7 @@
     public Slice createWifiCallingSlice(Uri sliceUri) {
         final int subId = getDefaultVoiceSubId();
 
-        if (!SubscriptionManager.isValidSubscriptionId(subId)) {
-            Log.d(TAG, "Invalid subscription Id");
-            return null;
-        }
-
-        if (!queryImsState(subId).isWifiCallingProvisioned()) {
+        if (!queryImsState(subId).isReadyToWifiCalling()) {
             Log.d(TAG, "Wifi calling is either not provisioned or not enabled by Platform");
             return null;
         }
@@ -223,7 +218,7 @@
             return null;
         }
 
-        if (!queryImsState(subId).isWifiCallingProvisioned()) {
+        if (!queryImsState(subId).isReadyToWifiCalling()) {
             Log.d(TAG, "Wifi calling is either not provisioned or not enabled by platform");
             return null;
         }
@@ -354,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();
@@ -386,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);
@@ -430,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:
@@ -448,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/details/WifiNetworkDetailsFragment.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
index e3812af..0384f0d 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java
@@ -15,8 +15,8 @@
  */
 package com.android.settings.wifi.details;
 
+import static com.android.settings.network.NetworkProviderSettings.WIFI_DIALOG_ID;
 import static com.android.settings.network.telephony.MobileNetworkUtils.NO_CELL_DATA_TYPE_ICON;
-import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
 import static com.android.settingslib.Utils.formatPercentage;
 
 import android.app.Dialog;
@@ -41,6 +41,7 @@
 import android.view.MenuInflater;
 import android.view.MenuItem;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -178,8 +179,14 @@
         }
 
         final WifiEntry wifiEntry = mNetworkDetailsTracker.getWifiEntry();
-        return WifiDialog2.createModal(getActivity(), this, wifiEntry,
-                WifiConfigUiBase2.MODE_MODIFY);
+        return new WifiDialog2(
+                getActivity(),
+                this,
+                wifiEntry,
+                WifiConfigUiBase2.MODE_MODIFY,
+                0,
+                false,
+                true);
     }
 
     @Override
@@ -274,14 +281,12 @@
 
         // Sets callback listener for wifi dialog.
         mWifiDialogListeners.add(mWifiDetailPreferenceController2);
-        mWifiDialogListeners.add(privacyController2);
-        mWifiDialogListeners.add(meteredPreferenceController2);
 
         return mControllers;
     }
 
     @Override
-    public void onSubmit(WifiDialog2 dialog) {
+    public void onSubmit(@NonNull WifiDialog2 dialog) {
         for (WifiDialog2.WifiDialog2Listener listener : mWifiDialogListeners) {
             listener.onSubmit(dialog);
         }
@@ -304,7 +309,7 @@
             }
         };
 
-        mNetworkDetailsTracker = FeatureFactory.getFactory(context)
+        mNetworkDetailsTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createNetworkDetailsTracker(
                         getSettingsLifecycle(),
@@ -366,7 +371,7 @@
 
     private WifiNetworkDetailsViewModel getWifiNetworkDetailsViewModel() {
         if (mWifiNetworkDetailsViewModel == null) {
-            mWifiNetworkDetailsViewModel = FeatureFactory.getFactory(getContext())
+            mWifiNetworkDetailsViewModel = FeatureFactory.getFeatureFactory()
                     .getWifiFeatureProvider().getWifiNetworkDetailsViewModel(this);
             mWifiNetworkDetailsViewModel.getHotspotNetworkData()
                     .observe(this, this::onHotspotNetworkChanged);
diff --git a/src/com/android/settings/wifi/details/WifiNetworkDetailsViewModel.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsViewModel.java
index 9c24d66..07445a3 100644
--- a/src/com/android/settings/wifi/details/WifiNetworkDetailsViewModel.java
+++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsViewModel.java
@@ -112,7 +112,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(getApplication().getApplicationContext()).getWifiFeatureProvider()
-                .verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 0647a77..b67c848 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -41,7 +41,6 @@
 import android.net.LinkProperties;
 import android.net.Network;
 import android.net.NetworkCapabilities;
-import android.net.NetworkInfo;
 import android.net.NetworkRequest;
 import android.net.RouteInfo;
 import android.net.Uri;
@@ -53,7 +52,6 @@
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 import android.widget.ImageView;
 import android.widget.Toast;
@@ -61,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;
@@ -69,9 +66,7 @@
 import com.android.net.module.util.Inet4AddressUtils;
 import com.android.settings.R;
 import com.android.settings.Utils;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.datausage.WifiDataUsageSummaryPreferenceController;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settings.wifi.WifiDialog2;
@@ -164,12 +159,10 @@
     private final Handler mHandler;
     private LinkProperties mLinkProperties;
     private Network mNetwork;
-    private NetworkInfo mNetworkInfo;
     private NetworkCapabilities mNetworkCapabilities;
     private int mRssiSignalLevel = -1;
     @VisibleForTesting boolean mShowX; // Shows the Wi-Fi signal icon of Pie+x when it's true.
     private String[] mSignalStr;
-    private WifiInfo mWifiInfo;
     private final WifiManager mWifiManager;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
 
@@ -190,12 +183,7 @@
     private Preference mSubnetPref;
     private Preference mDnsPref;
     private Preference mTypePref;
-    private PreferenceCategory mIpv6Category;
     private Preference mIpv6AddressPref;
-    private Lifecycle mLifecycle;
-    Preference mDataUsageSummaryPref;
-    WifiDataUsageSummaryPreferenceController mSummaryHeaderController;
-
     private final IconInjector mIconInjector;
     private final Clock mClock;
 
@@ -337,7 +325,6 @@
         mIconInjector = injector;
         mClock = clock;
 
-        mLifecycle = lifecycle;
         lifecycle.addObserver(this);
     }
 
@@ -387,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);
     }
 
@@ -432,17 +417,6 @@
     private void setupEntityHeader(PreferenceScreen screen) {
         LayoutPreference headerPref = screen.findPreference(KEY_HEADER);
 
-        if (usingDataUsageHeader(mContext)) {
-            headerPref.setVisible(false);
-            mDataUsageSummaryPref = screen.findPreference(KEY_DATA_USAGE_HEADER);
-            mDataUsageSummaryPref.setVisible(true);
-            mSummaryHeaderController =
-                    new WifiDataUsageSummaryPreferenceController(mFragment.getActivity(),
-                            mLifecycle, (PreferenceFragmentCompat) mFragment,
-                            mWifiEntry.getWifiConfiguration().getAllNetworkKeys());
-            return;
-        }
-
         mEntityHeaderController =
                 EntityHeaderController.newInstance(
                         mFragment.getActivity(), mFragment,
@@ -485,16 +459,11 @@
     }
 
     private void refreshEntityHeader() {
-        if (usingDataUsageHeader(mContext)) {
-            mSummaryHeaderController.updateState(mDataUsageSummaryPref);
-        } else {
-            mEntityHeaderController
-                    .setLabel(mWifiEntry.getTitle())
-                    .setSummary(mWifiEntry.getSummary())
-                    .setSecondSummary(getExpiryTimeSummary())
-                    .setRecyclerView(mFragment.getListView(), mLifecycle)
-                    .done(mFragment.getActivity(), true /* rebind */);
-        }
+        mEntityHeaderController
+                .setLabel(mWifiEntry.getTitle())
+                .setSummary(mWifiEntry.getSummary())
+                .setSecondSummary(getExpiryTimeSummary())
+                .done(true /* rebind */);
     }
 
     @VisibleForTesting
@@ -503,14 +472,10 @@
             mNetwork = mWifiManager.getCurrentNetwork();
             mLinkProperties = mConnectivityManager.getLinkProperties(mNetwork);
             mNetworkCapabilities = mConnectivityManager.getNetworkCapabilities(mNetwork);
-            mNetworkInfo = mConnectivityManager.getNetworkInfo(mNetwork);
-            mWifiInfo = mWifiManager.getConnectionInfo();
         } else {
             mNetwork = null;
             mLinkProperties = null;
             mNetworkCapabilities = null;
-            mNetworkInfo = null;
-            mWifiInfo = null;
         }
     }
 
@@ -576,7 +541,7 @@
         Drawable drawable = getWifiDrawable(mWifiEntry);
         mEntityHeaderController
                 .setIcon(redrawIconForHeader(drawable))
-                .done(mFragment.getActivity(), true /* rebind */);
+                .done(true /* rebind */);
     }
 
     /**
@@ -595,6 +560,7 @@
 
     private void refreshRssiViews() {
         int signalLevel = mWifiEntry.getLevel();
+
         // Disappears signal view if not in range. e.g. for saved networks.
         if (signalLevel == WifiEntry.WIFI_LEVEL_UNREACHABLE) {
             mSignalStrengthPref.setVisible(false);
@@ -678,7 +644,7 @@
     }
 
     private void refreshSsid() {
-        if (mWifiEntry.isSubscription() && mWifiEntry.getSsid() != null) {
+        if (mWifiEntry.shouldShowSsid() && mWifiEntry.getSsid() != null) {
             mSsidPref.setVisible(true);
             mSsidPref.setSummary(mWifiEntry.getSsid());
         } else {
@@ -854,7 +820,7 @@
             mSubnetPref.setVisible(false);
             mGatewayPref.setVisible(false);
             mDnsPref.setVisible(false);
-            mIpv6Category.setVisible(false);
+            mIpv6AddressPref.setVisible(false);
             return;
         }
 
@@ -894,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);
         }
     }
 
@@ -1059,10 +1025,6 @@
         }
     }
 
-    private boolean usingDataUsageHeader(Context context) {
-        return FeatureFlagUtils.isEnabled(context, FeatureFlags.WIFI_DETAILS_DATAUSAGE_HEADER);
-    }
-
     @VisibleForTesting
     void connectDisconnectNetwork() {
         if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_DISCONNECTED) {
diff --git a/src/com/android/settings/wifi/details2/WifiMeteredPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiMeteredPreferenceController2.java
index 85dc2e4..193bbd4 100644
--- a/src/com/android/settings/wifi/details2/WifiMeteredPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiMeteredPreferenceController2.java
@@ -18,26 +18,23 @@
 
 import android.app.backup.BackupManager;
 import android.content.Context;
-import android.net.wifi.WifiConfiguration;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.wifi.WifiDialog2;
 import com.android.wifitrackerlib.WifiEntry;
 
 /**
  * A controller that controls whether the Wi-Fi network is metered or not.
  */
 public class WifiMeteredPreferenceController2 extends BasePreferenceController implements
-        Preference.OnPreferenceChangeListener, WifiDialog2.WifiDialog2Listener {
+        Preference.OnPreferenceChangeListener {
 
     private static final String KEY_WIFI_METERED = "metered";
     private final WifiEntry mWifiEntry;
-    private Preference mPreference;
 
     public WifiMeteredPreferenceController2(Context context, WifiEntry wifiEntry) {
         super(context, KEY_WIFI_METERED);
@@ -59,7 +56,7 @@
     }
 
     @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
+    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
         if (mWifiEntry.isSaved() || mWifiEntry.isSubscription()) {
             mWifiEntry.setMeteredChoice(Integer.parseInt((String) newValue));
         }
@@ -82,36 +79,4 @@
     private void updateSummary(ListPreference preference, int meteredOverride) {
         preference.setSummary(preference.getEntries()[meteredOverride]);
     }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
-    public void onSubmit(WifiDialog2 dialog) {
-        if (dialog.getController() != null && mWifiEntry.canSetMeteredChoice()) {
-            final WifiConfiguration newConfig = dialog.getController().getConfig();
-            if (newConfig == null) {
-                return;
-            }
-
-            if (getWifiEntryMeteredChoice(newConfig) != mWifiEntry.getMeteredChoice()) {
-                mWifiEntry.setMeteredChoice(getWifiEntryMeteredChoice(newConfig));
-                onPreferenceChange(mPreference, String.valueOf(newConfig.meteredOverride));
-            }
-        }
-    }
-
-    private int getWifiEntryMeteredChoice(WifiConfiguration wifiConfiguration) {
-        switch (wifiConfiguration.meteredOverride) {
-            case WifiConfiguration.METERED_OVERRIDE_METERED:
-                return WifiEntry.METERED_CHOICE_METERED;
-            case WifiConfiguration.METERED_OVERRIDE_NOT_METERED:
-                return WifiEntry.METERED_CHOICE_UNMETERED;
-            default:
-                return WifiEntry.METERED_CHOICE_AUTO;
-        }
-    }
 }
diff --git a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
index 632a562..8c78e80 100644
--- a/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2.java
@@ -17,29 +17,26 @@
 package com.android.settings.wifi.details2;
 
 import android.content.Context;
-import android.net.wifi.WifiConfiguration;
 import android.net.wifi.WifiManager;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.wifi.WifiDialog2;
 import com.android.wifitrackerlib.WifiEntry;
 
 /**
  * A controller that controls whether the Wi-Fi network is mac randomized or not.
  */
 public class WifiPrivacyPreferenceController2 extends BasePreferenceController implements
-        Preference.OnPreferenceChangeListener, WifiDialog2.WifiDialog2Listener {
+        Preference.OnPreferenceChangeListener {
 
     private static final String KEY_WIFI_PRIVACY = "privacy";
     private final WifiManager mWifiManager;
     private WifiEntry mWifiEntry;
-    private Preference mPreference;
 
     public WifiPrivacyPreferenceController2(Context context) {
         super(context, KEY_WIFI_PRIVACY);
@@ -58,12 +55,6 @@
     }
 
     @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        mPreference = screen.findPreference(getPreferenceKey());
-    }
-
-    @Override
     public void updateState(Preference preference) {
         final ListPreference listPreference = (ListPreference) preference;
         final int randomizationLevel = getRandomizationValue();
@@ -79,8 +70,12 @@
     }
 
     @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
+    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
@@ -128,30 +123,4 @@
         final int prefMacRandomized = translateMacRandomizedValueToPrefValue(macRandomized);
         preference.setSummary(preference.getEntries()[prefMacRandomized]);
     }
-
-    @Override
-    public void onSubmit(WifiDialog2 dialog) {
-        if (dialog.getController() != null) {
-            final WifiConfiguration newConfig = dialog.getController().getConfig();
-            if (newConfig == null) {
-                return;
-            }
-
-            if (getWifiEntryPrivacy(newConfig) != mWifiEntry.getPrivacy()) {
-                mWifiEntry.setPrivacy(getWifiEntryPrivacy(newConfig));
-                onPreferenceChange(mPreference, String.valueOf(newConfig.macRandomizationSetting));
-            }
-        }
-    }
-
-    private int getWifiEntryPrivacy(WifiConfiguration wifiConfiguration) {
-        switch (wifiConfiguration.macRandomizationSetting) {
-            case WifiConfiguration.RANDOMIZATION_NONE:
-                return WifiEntry.PRIVACY_DEVICE_MAC;
-            case WifiConfiguration.RANDOMIZATION_PERSISTENT:
-                return WifiEntry.PRIVACY_RANDOMIZED_MAC;
-            default:
-                return WifiEntry.PRIVACY_UNKNOWN;
-        }
-    }
 }
diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorAuthActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorAuthActivity.java
new file mode 100644
index 0000000..010607f
--- /dev/null
+++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorAuthActivity.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.wifi.dpp;
+
+import static android.content.Intent.ACTION_CLOSE_SYSTEM_DIALOGS;
+import static android.content.Intent.FLAG_RECEIVER_FOREGROUND;
+
+import android.app.Activity;
+import android.app.KeyguardManager;
+import android.app.settings.SettingsEnums;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.WindowManager;
+
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.contract.ActivityResultContracts;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.InstrumentedActivity;
+
+/**
+ * Sharing a Wi-Fi network by QR code after unlocking. Used by {@code InternetDialog} in QS.
+ */
+public class WifiDppConfiguratorAuthActivity extends InstrumentedActivity {
+    private static final String WIFI_SHARING_KEY_ALIAS = "wifi_sharing_auth_key";
+    private static final int MAX_UNLOCK_SECONDS = 60;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        // This is a transparent activity, disable the dim.
+        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+        Intent authIntent = getSystemService(KeyguardManager.class)
+                .createConfirmDeviceCredentialIntent(
+                        getText(R.string.wifi_dpp_lockscreen_title), null, getUserId());
+        if (authIntent == null
+                || WifiDppUtils.isUnlockedWithinSeconds(
+                        WIFI_SHARING_KEY_ALIAS, MAX_UNLOCK_SECONDS)) {
+            startQrCodeActivity();
+            finish();
+        } else {
+            registerForActivityResult(
+                    new ActivityResultContracts.StartActivityForResult(),
+                    this::onAuthResult).launch(authIntent);
+        }
+    }
+
+    @VisibleForTesting
+    void onAuthResult(ActivityResult result) {
+        if (result.getResultCode() == Activity.RESULT_OK) {
+            startQrCodeActivity();
+        }
+        finish();
+    }
+
+    private void startQrCodeActivity() {
+        // Close quick settings shade
+        sendBroadcast(
+                new Intent(ACTION_CLOSE_SYSTEM_DIALOGS).setFlags(FLAG_RECEIVER_FOREGROUND));
+        Intent qrCodeIntent = new Intent();
+        qrCodeIntent.setAction(
+                WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR);
+        qrCodeIntent.putExtras(getIntent());
+        startActivity(qrCodeIntent);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR;
+    }
+}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
index e0a1e39..48fcae8 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeBaseFragment.java
@@ -25,7 +25,6 @@
 
 import androidx.annotation.DrawableRes;
 
-import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
 
 import com.google.android.setupcompat.template.FooterBarMixin;
@@ -59,13 +58,13 @@
         if (isFooterAvailable()) {
             mLeftButton = new FooterButton.Builder(getContext())
                     .setButtonType(FooterButton.ButtonType.CANCEL)
-                    .setTheme(R.style.SudGlifButton_Secondary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Secondary)
                     .build();
             mGlifLayout.getMixin(FooterBarMixin.class).setSecondaryButton(mLeftButton);
 
             mRightButton = new FooterButton.Builder(getContext())
                     .setButtonType(FooterButton.ButtonType.NEXT)
-                    .setTheme(R.style.SudGlifButton_Primary)
+                    .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
                     .build();
             mGlifLayout.getMixin(FooterBarMixin.class).setPrimaryButton(mRightButton);
         }
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
index 7af8343..210e94c 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeGeneratorFragment.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.wifi.dpp;
 
-import android.annotation.Nullable;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -27,6 +26,7 @@
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.provider.Settings;
+import android.text.InputType;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -39,6 +39,8 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.chooser.DisplayResolveInfo;
 import com.android.internal.app.chooser.TargetInfo;
@@ -118,6 +120,8 @@
 
         final String password = wifiNetworkConfig.getPreSharedKey();
         TextView passwordView = view.findViewById(R.id.password);
+        passwordView.setInputType(
+                InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
         if (TextUtils.isEmpty(password)) {
             mSummary.setText(getString(
                     R.string.wifi_dpp_scan_open_network_qr_code_with_another_device,
diff --git a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
index 872c61a..479c81d 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java
@@ -400,7 +400,7 @@
             }
         };
         final Context context = getContext();
-        mWifiPickerTracker = FeatureFactory.getFactory(context)
+        mWifiPickerTracker = FeatureFactory.getFeatureFactory()
                 .getWifiTrackerLibProvider()
                 .createWifiPickerTracker(getSettingsLifecycle(), context,
                         new Handler(Looper.getMainLooper()),
diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
index c336c62..23a6a54 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -30,6 +30,8 @@
 import android.os.UserHandle;
 import android.os.VibrationEffect;
 import android.os.Vibrator;
+import android.security.keystore.KeyGenParameterSpec;
+import android.security.keystore.KeyProperties;
 import android.text.TextUtils;
 
 import com.android.settings.R;
@@ -37,9 +39,19 @@
 import com.android.settingslib.wifi.AccessPoint;
 import com.android.wifitrackerlib.WifiEntry;
 
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.time.Duration;
 import java.util.List;
 
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SecretKey;
+
 /**
  * Here are the items shared by both WifiDppConfiguratorActivity & WifiDppEnrolleeActivity
  *
@@ -97,6 +109,8 @@
 
     private static final Duration VIBRATE_DURATION_QR_CODE_RECOGNITION = Duration.ofMillis(3);
 
+    private static final String AES_CBC_PKCS7_PADDING = "AES/CBC/PKCS7Padding";
+
     /**
      * Returns whether the device support WiFi DPP.
      */
@@ -367,6 +381,48 @@
     }
 
     /**
+     * Checks whether the device is unlocked recently.
+     *
+     * @param keyStoreAlias key
+     * @param seconds how many seconds since the device is unlocked
+     * @return whether the device is unlocked within the time
+     */
+    public static boolean isUnlockedWithinSeconds(String keyStoreAlias, int seconds) {
+        try {
+            Cipher cipher = Cipher.getInstance(AES_CBC_PKCS7_PADDING);
+            cipher.init(Cipher.ENCRYPT_MODE, generateSecretKey(keyStoreAlias, seconds));
+            cipher.doFinal();
+            return true;
+        } catch (NoSuchPaddingException
+                 | IllegalBlockSizeException
+                 | NoSuchAlgorithmException
+                 | BadPaddingException
+                 | InvalidKeyException e) {
+            return false;
+        }
+    }
+
+    private static SecretKey generateSecretKey(String keyStoreAlias, int seconds) {
+        KeyGenParameterSpec spec = new KeyGenParameterSpec
+                .Builder(keyStoreAlias, KeyProperties.PURPOSE_ENCRYPT)
+                .setBlockModes(KeyProperties.BLOCK_MODE_CBC)
+                .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
+                .setUserAuthenticationRequired(true)
+                .setUserAuthenticationParameters(
+                        seconds,
+                        KeyProperties.AUTH_DEVICE_CREDENTIAL | KeyProperties.AUTH_BIOMETRIC_STRONG)
+                .build();
+        try {
+            KeyGenerator keyGenerator = KeyGenerator.getInstance(KeyProperties.KEY_ALGORITHM_AES);
+            keyGenerator.init(spec);
+            return keyGenerator.generateKey();
+        } catch (NoSuchAlgorithmException
+                 | InvalidAlgorithmParameterException e) {
+            return null;
+        }
+    }
+
+    /**
      * Shows authentication screen to confirm credentials (pin, pattern or password) for the current
      * user of the device.
      *
@@ -396,8 +452,7 @@
             final int userId = UserHandle.myUserId();
 
             final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(context)
-                    .setTitle(context.getText(R.string.wifi_dpp_lockscreen_title))
-                    .setUseDefaultSubtitle();
+                    .setTitle(context.getText(R.string.wifi_dpp_lockscreen_title));
 
             if (keyguardManager.isDeviceSecure()) {
                 builder.setDeviceCredentialAllowed(true);
diff --git a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
index 9e7365e..5ab899a 100644
--- a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
+++ b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
@@ -16,13 +16,13 @@
 
 package com.android.settings.wifi.factory;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.net.TetheringManager;
 import android.net.wifi.WifiManager;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.lifecycle.ViewModelProvider;
 import androidx.lifecycle.ViewModelStoreOwner;
 
diff --git a/src/com/android/settings/wifi/factory/WifiVerboseLogging.java b/src/com/android/settings/wifi/factory/WifiVerboseLogging.java
index 2935ed4..0be3bc0 100644
--- a/src/com/android/settings/wifi/factory/WifiVerboseLogging.java
+++ b/src/com/android/settings/wifi/factory/WifiVerboseLogging.java
@@ -16,12 +16,12 @@
 
 package com.android.settings.wifi.factory;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.net.wifi.WifiManager;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 /**
  * Wi-Fi Verbose Logging
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pPeer.java b/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
index 00cb36b..3f486f2 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pPeer.java
@@ -31,7 +31,7 @@
 public class WifiP2pPeer extends Preference {
 
     private static final int FIXED_RSSI = 60;
-    private static final int[] STATE_SECURED = {R.attr.state_encrypted};
+    private static final int[] STATE_SECURED = {com.android.settingslib.R.attr.state_encrypted};
     public WifiP2pDevice device;
 
     @VisibleForTesting final int mRssi;
diff --git a/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java b/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
index 35ac3f6..5b1a1fd 100644
--- a/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
+++ b/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
@@ -178,7 +178,7 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(mAppContext).getWifiFeatureProvider().verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 
     /**
diff --git a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
index af8eb47..6140d71 100644
--- a/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
+++ b/src/com/android/settings/wifi/repository/WifiHotspotRepository.java
@@ -657,6 +657,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(mAppContext).getWifiFeatureProvider().verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2.java b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2.java
index f0841f4..a038e1d 100644
--- a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2.java
+++ b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2.java
@@ -66,6 +66,7 @@
         super.displayPreference(screen);
     }
 
+    @VisibleForTesting
     void displayPreference(PreferenceScreen screen, List<WifiEntry> wifiEntries) {
         if (wifiEntries == null || wifiEntries.isEmpty()) {
             mWifiEntries.clear();
@@ -89,28 +90,32 @@
      * mPreferenceGroup.removeAll() then mPreferenceGroup.addPreference for mWifiEntries.
      */
     private void updatePreference() {
-        // Remove the Preference of removed WifiEntry.
-        final List<String> removedPreferenceKeys = new ArrayList<>();
-        final int preferenceCount = mPreferenceGroup.getPreferenceCount();
+        // Update WifiEntry to existing preference and find out which WifiEntry was removed by key.
+        List<String> removedKeys = new ArrayList<>();
+        int preferenceCount = mPreferenceGroup.getPreferenceCount();
         for (int i = 0; i < preferenceCount; i++) {
-            final String key = mPreferenceGroup.getPreference(i).getKey();
-            if (mWifiEntries.stream().filter(wifiEntry ->
-                    TextUtils.equals(key, wifiEntry.getKey())).count() == 0) {
-                removedPreferenceKeys.add(key);
+            WifiEntryPreference pref = (WifiEntryPreference) mPreferenceGroup.getPreference(i);
+            WifiEntry wifiEntry = mWifiEntries.stream()
+                    .filter(entry -> TextUtils.equals(pref.getKey(), entry.getKey()))
+                    .findFirst()
+                    .orElse(null);
+            if (wifiEntry != null) {
+                pref.setWifiEntry(wifiEntry);
+            } else {
+                removedKeys.add(pref.getKey());
             }
         }
-        for (String removedPreferenceKey : removedPreferenceKeys) {
-            mPreferenceGroup.removePreference(
-                    mPreferenceGroup.findPreference(removedPreferenceKey));
+        // Remove preference by WifiEntry's key.
+        for (String removedKey : removedKeys) {
+            mPreferenceGroup.removePreference(mPreferenceGroup.findPreference(removedKey));
         }
 
         // Add the Preference of new added WifiEntry.
         for (WifiEntry wifiEntry : mWifiEntries) {
             if (mPreferenceGroup.findPreference(wifiEntry.getKey()) == null) {
-                final WifiEntryPreference preference = new WifiEntryPreference(mContext, wifiEntry);
+                WifiEntryPreference preference = new WifiEntryPreference(mContext, wifiEntry);
                 preference.setKey(wifiEntry.getKey());
                 preference.setOnPreferenceClickListener(this);
-
                 mPreferenceGroup.addPreference(preference);
             }
         }
diff --git a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java
index 799ba5e..21cc1e0 100644
--- a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java
+++ b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java
@@ -37,7 +37,7 @@
 import com.android.settings.R;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.wifi.WifiSettings;
+import com.android.settings.network.NetworkProviderSettings;
 import com.android.settings.wifi.details.WifiNetworkDetailsFragment;
 import com.android.wifitrackerlib.SavedNetworkTracker;
 
@@ -127,7 +127,7 @@
      * Shows {@link WifiNetworkDetailsFragment} for assigned key of {@link WifiEntry}.
      */
     public void showWifiPage(@NonNull String key, CharSequence title) {
-        removeDialog(WifiSettings.WIFI_DIALOG_ID);
+        removeDialog(NetworkProviderSettings.WIFI_DIALOG_ID);
 
         if (TextUtils.isEmpty(key)) {
             Log.e(TAG, "Not able to show WifiEntry of an empty key");
diff --git a/src/com/android/settings/wifi/slice/ContextualWifiScanWorker.java b/src/com/android/settings/wifi/slice/ContextualWifiScanWorker.java
deleted file mode 100644
index ae45251..0000000
--- a/src/com/android/settings/wifi/slice/ContextualWifiScanWorker.java
+++ /dev/null
@@ -1,35 +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.slice;
-
-import android.content.Context;
-import android.net.Uri;
-
-/**
- * {@link SliceBackgroundWorker} for Wi-Fi, used by {@link ContextualWifiSlice}.
- */
-public class ContextualWifiScanWorker extends WifiScanWorker {
-
-    public ContextualWifiScanWorker(Context context, Uri uri) {
-        super(context, uri);
-    }
-
-    @Override
-    protected int getApRowCount() {
-        return ContextualWifiSlice.getApRowCount();
-    }
-}
diff --git a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java b/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
deleted file mode 100644
index 4806573..0000000
--- a/src/com/android/settings/wifi/slice/ContextualWifiSlice.java
+++ /dev/null
@@ -1,156 +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.wifi.slice;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.net.ConnectivityManager;
-import android.net.NetworkCapabilities;
-import android.net.Uri;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-import android.text.TextUtils;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.CustomSliceable;
-import com.android.wifitrackerlib.WifiEntry;
-
-/**
- * {@link CustomSliceable} for Wi-Fi, used by contextual homepage.
- */
-public class ContextualWifiSlice extends WifiSlice {
-
-    @VisibleForTesting
-    static final int COLLAPSED_ROW_COUNT = 0;
-
-    @VisibleForTesting
-    static long sActiveUiSession = -1000;
-    @VisibleForTesting
-    static boolean sApRowCollapsed;
-
-    private final ConnectivityManager mConnectivityManager;
-
-    public ContextualWifiSlice(Context context) {
-        super(context);
-
-        mConnectivityManager = mContext.getSystemService(ConnectivityManager.class);
-    }
-
-    @Override
-    public Uri getUri() {
-        return CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI;
-    }
-
-    @Override
-    public Slice getSlice() {
-        final long currentUiSession = FeatureFactory.getFactory(mContext)
-                .getSlicesFeatureProvider().getUiSessionToken();
-        if (currentUiSession != sActiveUiSession) {
-            sActiveUiSession = currentUiSession;
-            sApRowCollapsed = hasWorkingNetwork();
-        } else if (!mWifiManager.isWifiEnabled()) {
-            sApRowCollapsed = false;
-        }
-        return super.getSlice();
-    }
-
-    static int getApRowCount() {
-        return sApRowCollapsed ? COLLAPSED_ROW_COUNT : DEFAULT_EXPANDED_ROW_COUNT;
-    }
-
-    @Override
-    protected boolean isApRowCollapsed() {
-        return sApRowCollapsed;
-    }
-
-    @Override
-    protected ListBuilder.RowBuilder getHeaderRow(boolean isWifiEnabled,
-            WifiSliceItem wifiSliceItem) {
-        final ListBuilder.RowBuilder builder = super.getHeaderRow(isWifiEnabled, wifiSliceItem);
-        builder.setTitleItem(getHeaderIcon(isWifiEnabled, wifiSliceItem), ListBuilder.ICON_IMAGE);
-        if (sApRowCollapsed) {
-            builder.setSubtitle(getHeaderSubtitle(wifiSliceItem));
-        }
-        return builder;
-    }
-
-    private IconCompat getHeaderIcon(boolean isWifiEnabled, WifiSliceItem wifiSliceItem) {
-        final Drawable drawable;
-        final int tint;
-        if (!isWifiEnabled) {
-            drawable = mContext.getDrawable(R.drawable.ic_wifi_off);
-            tint = Utils.getDisabled(mContext, Utils.getColorAttrDefaultColor(mContext,
-                    android.R.attr.colorControlNormal));
-        } else {
-            // get icon of medium signal strength
-            drawable = mContext.getDrawable(com.android.settingslib.Utils.getWifiIconResource(2));
-            if (wifiSliceItem != null
-                    && wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
-                tint = Utils.getColorAccentDefaultColor(mContext);
-            } else {
-                tint = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorControlNormal);
-            }
-        }
-        drawable.setTint(tint);
-        return Utils.createIconWithDrawable(drawable);
-    }
-
-    private CharSequence getHeaderSubtitle(WifiSliceItem wifiSliceItem) {
-        if (wifiSliceItem == null
-                || wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_DISCONNECTED) {
-            return mContext.getText(R.string.disconnected);
-        }
-        if (wifiSliceItem.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTING) {
-            return mContext.getString(R.string.wifi_connecting_to_message,
-                wifiSliceItem.getTitle());
-        }
-        return mContext.getString(R.string.wifi_connected_to_message, wifiSliceItem.getTitle());
-    }
-
-    private boolean hasWorkingNetwork() {
-        return !TextUtils.equals(getActiveSSID(), WifiManager.UNKNOWN_SSID) && hasInternetAccess();
-    }
-
-    private String getActiveSSID() {
-        if (mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
-            return WifiManager.UNKNOWN_SSID;
-        }
-        return WifiInfo.sanitizeSsid(mWifiManager.getConnectionInfo().getSSID());
-    }
-
-    private boolean hasInternetAccess() {
-        final NetworkCapabilities nc = mConnectivityManager.getNetworkCapabilities(
-                mWifiManager.getCurrentNetwork());
-        return nc != null
-                && !nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)
-                && !nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY)
-                && nc.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
-    }
-
-    @Override
-    public Class getBackgroundWorkerClass() {
-        return ContextualWifiScanWorker.class;
-    }
-}
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSecuritySettings.java b/src/com/android/settings/wifi/tether/WifiHotspotSecuritySettings.java
index 0dc1605..9489e11 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSecuritySettings.java
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSecuritySettings.java
@@ -63,7 +63,7 @@
     }
 
     protected void loadViewModel() {
-        mWifiHotspotSecurityViewModel = FeatureFactory.getFactory(getContext())
+        mWifiHotspotSecurityViewModel = FeatureFactory.getFeatureFactory()
                 .getWifiFeatureProvider().getWifiHotspotSecurityViewModel(this);
         LiveData<List<WifiHotspotSecurityViewModel.ViewItem>> viewItemListData =
                 mWifiHotspotSecurityViewModel.getViewItemListData();
@@ -115,6 +115,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(getContext()).getWifiFeatureProvider().verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSecurityViewModel.java b/src/com/android/settings/wifi/tether/WifiHotspotSecurityViewModel.java
index 7c8554c..0f912a4 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSecurityViewModel.java
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSecurityViewModel.java
@@ -65,7 +65,7 @@
         mViewItemMap.put(SECURITY_TYPE_WPA2_PSK, new ViewItem(KEY_SECURITY_WPA2));
         mViewItemMap.put(SECURITY_TYPE_OPEN, new ViewItem(KEY_SECURITY_NONE));
 
-        mWifiHotspotRepository = FeatureFactory.getFactory(application).getWifiFeatureProvider()
+        mWifiHotspotRepository = FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
                 .getWifiHotspotRepository();
         mWifiHotspotRepository.getSecurityType().observeForever(mSecurityTypeObserver);
         mWifiHotspotRepository.getSpeedType().observeForever(mSpeedTypeObserver);
@@ -159,6 +159,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(getApplication()).getWifiFeatureProvider().verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java b/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java
index a5e12d8..08afde1 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSpeedSettings.java
@@ -77,7 +77,7 @@
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         loadPreferences();
-        mWifiHotspotSpeedViewModel = FeatureFactory.getFactory(getContext())
+        mWifiHotspotSpeedViewModel = FeatureFactory.getFeatureFactory()
                 .getWifiFeatureProvider().getWifiHotspotSpeedViewModel(this);
         onSpeedInfoMapDataChanged(mWifiHotspotSpeedViewModel.getSpeedInfoMapData().getValue());
         mWifiHotspotSpeedViewModel.getSpeedInfoMapData()
@@ -138,6 +138,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(getContext()).getWifiFeatureProvider().verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java b/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java
index e7eb3a6..ddf8d3f 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSpeedViewModel.java
@@ -65,7 +65,7 @@
 
     public WifiHotspotSpeedViewModel(@NotNull Application application) {
         super(application);
-        mWifiHotspotRepository = FeatureFactory.getFactory(application).getWifiFeatureProvider()
+        mWifiHotspotRepository = FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
                 .getWifiHotspotRepository();
         mWifiHotspotRepository.get6gAvailable().observeForever(m6gAvailableObserver);
         mWifiHotspotRepository.get5gAvailable().observeForever(m5gAvailableObserver);
@@ -177,6 +177,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(getApplication()).getWifiFeatureProvider().verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
deleted file mode 100644
index 8a4be10..0000000
--- a/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceController.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi.tether;
-
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.net.wifi.SoftApConfiguration;
-import android.util.FeatureFlagUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.ListPreference;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
-
-public class WifiTetherApBandPreferenceController extends WifiTetherBasePreferenceController {
-
-    private static final String TAG = "WifiTetherApBandPref";
-    private static final String PREF_KEY = "wifi_tether_network_ap_band";
-
-    private String[] mBandEntries;
-    private String[] mBandSummaries;
-    private int mBandIndex;
-
-    public WifiTetherApBandPreferenceController(Context context,
-            OnTetherConfigUpdateListener listener) {
-        super(context, listener);
-        updatePreferenceEntries();
-    }
-
-    @Override
-    public void updateDisplay() {
-        final SoftApConfiguration config = mWifiManager.getSoftApConfiguration();
-        if (config == null) {
-            mBandIndex = SoftApConfiguration.BAND_2GHZ;
-            Log.d(TAG, "Updating band index to BAND_2GHZ because no config");
-        } else if (is5GhzBandSupported()) {
-            mBandIndex = validateSelection(config.getBand());
-            Log.d(TAG, "Updating band index to " + mBandIndex);
-        } else {
-            mWifiManager.setSoftApConfiguration(
-                    new SoftApConfiguration.Builder(config).setBand(SoftApConfiguration.BAND_2GHZ)
-                        .build());
-            mBandIndex = SoftApConfiguration.BAND_2GHZ;
-            Log.d(TAG, "5Ghz not supported, updating band index to 2GHz");
-        }
-        ListPreference preference =
-                (ListPreference) mPreference;
-        preference.setEntries(mBandSummaries);
-        preference.setEntryValues(mBandEntries);
-
-        if (!is5GhzBandSupported()) {
-            preference.setEnabled(false);
-            preference.setSummary(R.string.wifi_ap_choose_2G);
-        } else {
-            preference.setValue(Integer.toString(config.getBand()));
-            preference.setSummary(getConfigSummary());
-        }
-    }
-
-    String getConfigSummary() {
-        switch (mBandIndex) {
-            case SoftApConfiguration.BAND_2GHZ:
-                return mBandSummaries[0];
-            case SoftApConfiguration.BAND_5GHZ:
-                return mBandSummaries[1];
-            default:
-                return mContext.getString(R.string.wifi_ap_prefer_5G);
-        }
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
-                ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        mBandIndex = validateSelection(Integer.parseInt((String) newValue));
-        Log.d(TAG, "Band preference changed, updating band index to " + mBandIndex);
-        preference.setSummary(getConfigSummary());
-        mListener.onTetherConfigUpdated(this);
-        return true;
-    }
-
-    private int validateSelection(int band) {
-        // unsupported states:
-        // 1: BAND_5GHZ only - include 2GHZ since some of countries doesn't support 5G hotspot
-        // 2: no 5 GHZ support means we can't have BAND_5GHZ - default to 2GHZ
-        if (SoftApConfiguration.BAND_5GHZ == band) {
-            if (!is5GhzBandSupported()) {
-                return SoftApConfiguration.BAND_2GHZ;
-            }
-            return SoftApConfiguration.BAND_5GHZ | SoftApConfiguration.BAND_2GHZ;
-        }
-
-        return band;
-    }
-
-    @VisibleForTesting
-    void updatePreferenceEntries() {
-        Resources res = mContext.getResources();
-        int entriesRes = R.array.wifi_ap_band;
-        int summariesRes = R.array.wifi_ap_band_summary;
-        mBandEntries = res.getStringArray(entriesRes);
-        mBandSummaries = res.getStringArray(summariesRes);
-    }
-
-    private boolean is5GhzBandSupported() {
-        final String countryCode = mWifiManager.getCountryCode();
-        if (!mWifiManager.is5GHzBandSupported() || countryCode == null) {
-            return false;
-        }
-        return true;
-    }
-
-    public int getBandIndex() {
-        return mBandIndex;
-    }
-}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherAutoOffPreferenceController.java
index 0b6d533..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;
@@ -38,7 +38,7 @@
 
     public WifiTetherAutoOffPreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-        WifiHotspotRepository wifiHotspotRepository = FeatureFactory.getFactory(context)
+        WifiHotspotRepository wifiHotspotRepository = FeatureFactory.getFeatureFactory()
                 .getWifiFeatureProvider().getWifiHotspotRepository();
         if (wifiHotspotRepository.isSpeedFeatureAvailable() && wifiHotspotRepository.isDualBand()) {
             mNeedShutdownSecondarySap = true;
@@ -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 448a2a3..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;
@@ -44,7 +44,7 @@
             WifiTetherBasePreferenceController.OnTetherConfigUpdateListener listener) {
         super(context, listener);
         // If the Wi-Fi Hotspot Speed Feature available, then hide this controller.
-        mShouldHidePreference = FeatureFactory.getFactory(context)
+        mShouldHidePreference = FeatureFactory.getFeatureFactory()
                 .getWifiFeatureProvider().getWifiHotspotRepository().isSpeedFeatureAvailable();
         Log.d(TAG, "mShouldHidePreference:" + mShouldHidePreference);
         if (mShouldHidePreference) {
@@ -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/WifiTetherPasswordPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
index c50357b..d61b3d0 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
@@ -16,20 +16,16 @@
 
 package com.android.settings.wifi.tether;
 
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.net.wifi.SoftApConfiguration;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.EditTextPreference;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.ValidatedEditTextPreference;
 import com.android.settings.wifi.WifiUtils;
@@ -54,7 +50,7 @@
     WifiTetherPasswordPreferenceController(Context context, OnTetherConfigUpdateListener listener,
             MetricsFeatureProvider provider) {
         super(context, listener);
-        FeatureFactory featureFactory = FeatureFactory.getFactory(context);
+        FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
         mMetricsFeatureProvider = (provider != null) ? provider
                 : featureFactory.getMetricsFeatureProvider();
         mWifiHotspotRepository = featureFactory.getWifiFeatureProvider().getWifiHotspotRepository();
@@ -68,8 +64,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
-                ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
+        return PREF_KEY;
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
index 908ccdc..0baac2c 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPreferenceController.java
@@ -21,13 +21,13 @@
 
 import static com.android.settings.wifi.WifiUtils.canShowWifiHotspot;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.net.wifi.SoftApConfiguration;
 import android.net.wifi.WifiClient;
 import android.net.wifi.WifiManager;
 import android.text.BidiFormatter;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.PreferenceScreen;
 
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
index 9070d44..1bcff1e 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java
@@ -16,21 +16,17 @@
 
 package com.android.settings.wifi.tether;
 
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.net.wifi.SoftApConfiguration;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.EditTextPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.ValidatedEditTextPreference;
 import com.android.settings.wifi.dpp.WifiDppUtils;
@@ -63,13 +59,12 @@
         super(context, listener);
 
         mWifiDeviceNameTextValidator = new WifiDeviceNameTextValidator();
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
     }
 
     @Override
     public String getPreferenceKey() {
-        return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
-                ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
+        return PREF_KEY;
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
index 9a9be98..6f59411 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
@@ -16,22 +16,18 @@
 
 package com.android.settings.wifi.tether;
 
-import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-
-import android.annotation.NonNull;
 import android.content.Context;
 import android.net.wifi.SoftApCapability;
 import android.net.wifi.SoftApConfiguration;
 import android.net.wifi.WifiManager;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.overlay.FeatureFactory;
 
 import java.util.LinkedHashMap;
@@ -56,7 +52,7 @@
             OnTetherConfigUpdateListener listener) {
         super(context, listener);
         // If the Wi-Fi Hotspot Speed Feature available, then hide this controller.
-        mShouldHidePreference = FeatureFactory.getFactory(context)
+        mShouldHidePreference = FeatureFactory.getFeatureFactory()
                 .getWifiFeatureProvider().getWifiHotspotRepository().isSpeedFeatureAvailable();
         Log.d(TAG, "shouldHidePreference():" + mShouldHidePreference);
         if (mShouldHidePreference) {
@@ -82,8 +78,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return FeatureFlagUtils.isEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE)
-                ? PREF_KEY + DEDUP_POSTFIX : PREF_KEY;
+        return PREF_KEY;
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index fa897b7..bad29eb 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -30,7 +30,6 @@
 import android.net.wifi.SoftApConfiguration;
 import android.os.Bundle;
 import android.os.UserManager;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import androidx.annotation.Nullable;
@@ -39,7 +38,6 @@
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.dashboard.RestrictedDashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -148,7 +146,7 @@
             return;
         }
 
-        mWifiTetherViewModel = FeatureFactory.getFactory(getContext()).getWifiFeatureProvider()
+        mWifiTetherViewModel = FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
                 .getWifiTetherViewModel(this);
         if (mWifiTetherViewModel != null) {
             setupSpeedFeature(mWifiTetherViewModel.isSpeedFeatureAvailable());
@@ -229,7 +227,8 @@
         }
         if (mUnavailable) {
             if (!isUiRestrictedByOnlyAdmin()) {
-                getEmptyTextView().setText(R.string.tethering_settings_not_available);
+                getEmptyTextView()
+                        .setText(com.android.settingslib.R.string.tethering_settings_not_available);
             }
             getPreferenceScreen().removeAll();
             return;
@@ -386,10 +385,7 @@
             if (userManager == null || !userManager.isAdminUser()) {
                 return false;
             }
-            if (!WifiUtils.canShowWifiHotspot(context)) {
-                return false;
-            }
-            return !FeatureFlagUtils.isEnabled(context, FeatureFlags.TETHER_ALL_IN_ONE);
+            return WifiUtils.canShowWifiHotspot(context);
         }
 
         @Override
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java b/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
index 4343fcc..e5d3b3d 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSsidPreference.java
@@ -68,7 +68,7 @@
 
     private void initialize() {
         // TODO(b/129019971): use methods of divider line in parent object
-        setLayoutResource(com.android.settingslib.R.layout.preference_two_target);
+        setLayoutResource(com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target);
         setWidgetLayoutResource(R.layout.wifi_button_preference_widget);
 
         mShareIconDrawable = getDrawable(R.drawable.ic_qrcode_24dp);
@@ -79,7 +79,8 @@
         super.onBindViewHolder(holder);
 
         final ImageButton shareButton = (ImageButton) holder.findViewById(R.id.button_icon);
-        final View dividerView = holder.findViewById(R.id.two_target_divider);
+        final View dividerView = holder.findViewById(
+                com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
 
         if (mVisible) {
             shareButton.setOnClickListener(mClickListener);
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/src/com/android/settings/wifi/tether/WifiTetherViewModel.java b/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
index b0a18a8..ea09482 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
@@ -58,11 +58,14 @@
     static Map<Integer, Integer> sSecuritySummaryResMap = new HashMap<>();
 
     static {
-        sSecuritySummaryResMap.put(SECURITY_TYPE_WPA3_SAE, R.string.wifi_security_sae);
+        sSecuritySummaryResMap.put(
+                SECURITY_TYPE_WPA3_SAE, com.android.settingslib.R.string.wifi_security_sae);
         sSecuritySummaryResMap.put(SECURITY_TYPE_WPA3_SAE_TRANSITION,
-                R.string.wifi_security_psk_sae);
-        sSecuritySummaryResMap.put(SECURITY_TYPE_WPA2_PSK, R.string.wifi_security_wpa2);
-        sSecuritySummaryResMap.put(SECURITY_TYPE_OPEN, R.string.wifi_security_none);
+                com.android.settingslib.R.string.wifi_security_psk_sae);
+        sSecuritySummaryResMap.put(
+                SECURITY_TYPE_WPA2_PSK, com.android.settingslib.R.string.wifi_security_wpa2);
+        sSecuritySummaryResMap.put(
+                SECURITY_TYPE_OPEN, com.android.settingslib.R.string.wifi_security_none);
     }
 
     static Map<Integer, Integer> sSpeedSummaryResMap = new HashMap<>();
@@ -90,7 +93,7 @@
 
     public WifiTetherViewModel(@NotNull Application application) {
         super(application);
-        WifiFeatureProvider featureProvider = FeatureFactory.getFactory(application)
+        WifiFeatureProvider featureProvider = FeatureFactory.getFeatureFactory()
                 .getWifiFeatureProvider();
         mWifiHotspotRepository = featureProvider.getWifiHotspotRepository();
         mSharedConnectivityRepository = featureProvider.getSharedConnectivityRepository();
@@ -232,7 +235,6 @@
     }
 
     private void log(String msg) {
-        FeatureFactory.getFactory(getApplication().getApplicationContext()).getWifiFeatureProvider()
-                .verboseLog(TAG, msg);
+        FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
     }
 }
diff --git a/tests/anomaly-tester/Android.bp b/tests/anomaly-tester/Android.bp
index c897d75..0b05e04 100644
--- a/tests/anomaly-tester/Android.bp
+++ b/tests/anomaly-tester/Android.bp
@@ -17,8 +17,8 @@
     static_libs: [
         "androidx.test.rules",
         "mockito-target",
-        "ub-uiautomator",
-        "truth-prebuilt",
+        "androidx.test.uiautomator_uiautomator",
+        "truth",
     ],
 
     srcs: ["**/*.java"],
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java
index 0477e09..96f3683 100644
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java
+++ b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/BluetoothAnomalyTest.java
@@ -19,13 +19,13 @@
 import android.app.Instrumentation;
 import android.content.Context;
 import android.content.Intent;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
 import android.text.format.DateUtils;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.Until;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java
index ac15d77..9b99288 100644
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java
+++ b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/TestUtils.java
@@ -20,10 +20,11 @@
 import android.app.UiAutomation;
 import android.content.Context;
 import android.content.Intent;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
+
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
 
 public class TestUtils {
     private static final String PACKAGE_NAME = "com.android.settings.anomaly.tester";
diff --git a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java
index c44e2ea..58c949f 100644
--- a/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java
+++ b/tests/anomaly-tester/src/com/android/settings/anomaly/tests/WakelockAnomalyTest.java
@@ -19,13 +19,13 @@
 import android.app.Instrumentation;
 import android.content.Context;
 import android.content.Intent;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
 import android.text.format.DateUtils;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.Until;
 
 import org.junit.After;
 import org.junit.Before;
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/componenttests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorAuthActivityTest.java b/tests/componenttests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorAuthActivityTest.java
new file mode 100644
index 0000000..94b9369
--- /dev/null
+++ b/tests/componenttests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorAuthActivityTest.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.wifi.dpp;
+
+import static android.app.Activity.RESULT_OK;
+
+import static androidx.test.espresso.intent.Intents.intended;
+import static androidx.test.espresso.intent.matcher.IntentMatchers.hasAction;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.hamcrest.Matchers.equalTo;
+
+import android.app.KeyguardManager;
+
+import androidx.activity.result.ActivityResult;
+import androidx.test.core.app.ActivityScenario;
+import androidx.test.espresso.intent.Intents;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.SmallTest;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class WifiDppConfiguratorAuthActivityTest {
+
+    @Before
+    public void setup() {
+        Intents.init();
+    }
+
+    @After
+    public void teardown() throws Exception {
+        Intents.release();
+    }
+
+    @Test
+    public void launchActivity_sendAuthIntent() {
+        ActivityScenario<WifiDppConfiguratorAuthActivity> activityScenario =
+                ActivityScenario.launch(WifiDppConfiguratorAuthActivity.class);
+        assertThat(activityScenario).isNotNull();
+        intended(hasAction(equalTo(KeyguardManager.ACTION_CONFIRM_DEVICE_CREDENTIAL_WITH_USER)));
+    }
+
+    @Test
+    public void launchActivity_sendQrCodeIntent() {
+        ActivityScenario.launch(WifiDppConfiguratorAuthActivity.class).onActivity(activity ->
+                activity.onAuthResult(new ActivityResult(RESULT_OK, /* data= */ null))
+        );
+        intended(hasAction(
+                equalTo(WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR)));
+    }
+
+    @Test
+    public void launchActivity_shouldFinish() {
+        ActivityScenario.launch(WifiDppConfiguratorAuthActivity.class).onActivity(activity -> {
+            activity.onAuthResult(new ActivityResult(RESULT_OK, /* data= */ null));
+            assertThat(activity.isFinishing()).isTrue();
+        });
+    }
+}
diff --git a/tests/legacy_unit/src/com/android/settings/UserCredentialsTest.java b/tests/legacy_unit/src/com/android/settings/UserCredentialsTest.java
index a182416..113db7f 100644
--- a/tests/legacy_unit/src/com/android/settings/UserCredentialsTest.java
+++ b/tests/legacy_unit/src/com/android/settings/UserCredentialsTest.java
@@ -21,7 +21,8 @@
 import android.os.Parcel;
 import android.os.Process;
 import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+
+import androidx.test.filters.SmallTest;
 
 /**
  * User credentials settings fragment tests
diff --git a/tests/legacy_unit/src/com/android/settings/UtilsTest.java b/tests/legacy_unit/src/com/android/settings/UtilsTest.java
index 5048fb5..24f921b 100644
--- a/tests/legacy_unit/src/com/android/settings/UtilsTest.java
+++ b/tests/legacy_unit/src/com/android/settings/UtilsTest.java
@@ -23,7 +23,8 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+
+import androidx.test.filters.SmallTest;
 
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
diff --git a/tests/legacy_unit/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java b/tests/legacy_unit/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java
index 8cbf29b..1ee2100 100644
--- a/tests/legacy_unit/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java
+++ b/tests/legacy_unit/src/com/android/settings/bluetooth/Utf8ByteLengthFilterTest.java
@@ -17,10 +17,11 @@
 package com.android.settings.bluetooth;
 
 import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
 import android.text.InputFilter;
 import android.text.SpannableStringBuilder;
 
+import androidx.test.filters.SmallTest;
+
 public class Utf8ByteLengthFilterTest extends AndroidTestCase {
 
     @SmallTest
diff --git a/tests/legacy_unit/src/com/android/settings/vpn2/AppSettingsTest.java b/tests/legacy_unit/src/com/android/settings/vpn2/AppSettingsTest.java
index a30d610..a437ea7 100644
--- a/tests/legacy_unit/src/com/android/settings/vpn2/AppSettingsTest.java
+++ b/tests/legacy_unit/src/com/android/settings/vpn2/AppSettingsTest.java
@@ -27,7 +27,8 @@
 import android.content.pm.ApplicationInfo;
 import android.os.Process;
 import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
+
+import androidx.test.filters.SmallTest;
 
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
diff --git a/tests/legacy_unit/src/com/android/settings/vpn2/PreferenceListTest.java b/tests/legacy_unit/src/com/android/settings/vpn2/PreferenceListTest.java
index 31856f5..7ce01c8 100644
--- a/tests/legacy_unit/src/com/android/settings/vpn2/PreferenceListTest.java
+++ b/tests/legacy_unit/src/com/android/settings/vpn2/PreferenceListTest.java
@@ -31,9 +31,10 @@
 import static org.mockito.Mockito.verify;
 
 import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
 import android.text.TextUtils;
 
+import androidx.test.filters.SmallTest;
+
 import com.android.internal.net.LegacyVpnInfo;
 import com.android.internal.net.VpnProfile;
 
diff --git a/tests/perftests/Android.bp b/tests/perftests/Android.bp
index c03c57f..7d3b75b 100644
--- a/tests/perftests/Android.bp
+++ b/tests/perftests/Android.bp
@@ -18,7 +18,7 @@
 
     static_libs: [
         "androidx.test.rules",
-        "ub-uiautomator",
+        "androidx.test.uiautomator_uiautomator",
     ],
 
     // Include all test java files.
diff --git a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
index a8c5230..ca5c79f 100644
--- a/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
+++ b/tests/perftests/src/com/android/settings/tests/perf/LaunchSettingsTest.java
@@ -22,13 +22,13 @@
 import android.app.Instrumentation;
 import android.os.Bundle;
 import android.util.Log;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiSelector;
-import android.support.test.uiautomator.Until;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiSelector;
+import androidx.test.uiautomator.Until;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 94febff..d313878 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -1,7 +1,3 @@
-    //############################################################
-// Build SettingsRoboTestStub.apk which includes test-only resources.#
-//############################################################
-
 package {
     // See: http://go/android-license-faq
     // A large-scale-change added 'default_applicable_licenses' to import
@@ -11,6 +7,7 @@
     default_applicable_licenses: ["packages_apps_Settings_license"],
 }
 
+// Build SettingsRoboTestStub.apk which includes test-only resources.
 android_app {
     name: "SettingsRoboTestStub",
     defaults: [
@@ -20,37 +17,16 @@
     platform_apis: true,
     certificate: "platform",
     privileged: true,
-
+    use_resource_processor: true,
     resource_dirs: ["res"],
 
     static_libs: [
         "Settings-core",
-        "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.preference_preference",
-        "androidx.recyclerview_recyclerview",
-        "androidx.window_window",
-        "com.google.android.material_material",
-        "setupcompat",
-        "setupdesign",
-        "androidx.lifecycle_lifecycle-runtime",
-        "androidx.test.core",
-        "androidx.test.runner",
-        "androidx.test.ext.junit",
+        "androidx.fragment_fragment-testing",
         "frameworks-base-testutils",
-        "guava",
-        "jsr305",
-        "settings-contextual-card-protos-lite",
-        "settings-log-bridge-protos-lite",
-	"settings-telephony-protos-lite",
-        "contextualcards",
-        "settings-logtags",
-        "zxing-core-1.7",
+        "androidx.fragment_fragment",
+        "androidx.lifecycle_lifecycle-runtime-testing",
+        "kotlinx_coroutines_test",
     ],
 
     aaptflags: ["--extra-packages com.android.settings"],
@@ -66,9 +42,7 @@
     ],
 }
 
-//############################################################
-// Settings Robolectric test target.                         #
-//############################################################
+// Settings Robolectric test target.
 android_robolectric_test {
     name: "SettingsRoboTests",
     srcs: [
@@ -76,21 +50,36 @@
         "src/**/*.kt",
     ],
 
+    // test_suites attribute is not needed. This module will be configured in ATP GCL file.
+
     static_libs: [
+        "Robolectric_shadows_androidx_fragment_upstream",
+        "Settings_robolectric_meta_service_file",
         "SettingsLib-robo-testutils",
-        "android-support-annotations",
+        "Settings-robo-testutils",
+        "android.webkit.flags-aconfig-java",
         "androidx.test.core",
+        "androidx.test.espresso.core",
+        "androidx.test.ext.junit",
         "androidx.test.rules",
         "androidx.test.runner",
-        "androidx.test.ext.junit",
-        "androidx.test.espresso.core",
+        "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",
 
@@ -104,16 +93,17 @@
         "SettingsLib",
         "SettingsLib-search",
     ],
+
+    upstream: true,
 }
 
 java_library {
     name: "Settings-robo-testutils",
-    srcs: ["src/com/android/settings/testutils/**/*.java"],
-
+    srcs: ["testutils/**/*.java"],
     libs: [
+        "Robolectric_all-target_upstream",
         "Settings-core",
-        "Robolectric_all-target",
         "mockito-robolectric-prebuilt",
-        "truth-prebuilt",
+        "truth",
     ],
 }
diff --git a/tests/robotests/AndroidManifest.xml b/tests/robotests/AndroidManifest.xml
index e0050ef..95fbfa6 100644
--- a/tests/robotests/AndroidManifest.xml
+++ b/tests/robotests/AndroidManifest.xml
@@ -1,8 +1,28 @@
+<?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.
+-->
+
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
 	  coreApp="true"
           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/assets/empty_payload_ota.zip b/tests/robotests/assets/empty_payload_ota.zip
new file mode 100644
index 0000000..c28b5df
--- /dev/null
+++ b/tests/robotests/assets/empty_payload_ota.zip
Binary files differ
diff --git a/tests/robotests/assets/exempt_slice_controller_not_in_xml b/tests/robotests/assets/exempt_slice_controller_not_in_xml
index 1708bda..4c88d5a 100644
--- a/tests/robotests/assets/exempt_slice_controller_not_in_xml
+++ b/tests/robotests/assets/exempt_slice_controller_not_in_xml
@@ -1,13 +1,20 @@
 com.android.settings.accessibility.AccessibilitySlicePreferenceController
-com.android.settings.core.TogglePreferenceControllerTest$FakeToggle
-com.android.settings.biometrics.face.FaceSettingsAttentionPreferenceController
-com.android.settings.network.telephony.MmsMessagePreferenceController
-com.android.settings.network.telephony.AutoDataSwitchPreferenceController
-com.android.settings.network.telephony.Enhanced4gBasePreferenceController
-com.android.settings.testutils.FakeToggleController
-com.android.settings.testutils.FakeSliderController
-com.android.settings.testutils.FakeInvalidSliderController
-com.android.settings.wifi.details2.WifiAutoConnectPreferenceController2
+com.android.settings.accessibility.MagnificationAlwaysOnPreferenceController
+com.android.settings.accessibility.MagnificationFollowTypingPreferenceController
+com.android.settings.accessibility.MagnificationJoystickPreferenceController
 com.android.settings.accessibility.ReduceBrightColorsIntensityPreferenceController
 com.android.settings.accessibility.ReduceBrightColorsPersistencePreferenceController
-
+com.android.settings.biometrics.face.FaceSettingsAttentionPreferenceController
+com.android.settings.core.TogglePreferenceControllerTest$FakeToggle
+com.android.settings.display.DeviceStateAutoRotateSettingController
+com.android.settings.display.SmartAutoRotatePreferenceController
+com.android.settings.gestures.OneHandedMainSwitchPreferenceController
+com.android.settings.network.telephony.AutoDataSwitchPreferenceController
+com.android.settings.network.telephony.Enhanced4gBasePreferenceController
+com.android.settings.network.telephony.MmsMessagePreferenceController
+com.android.settings.notification.RingVolumePreferenceController
+com.android.settings.testutils.FakeInvalidSliderController
+com.android.settings.testutils.FakeSliderController
+com.android.settings.testutils.FakeToggleController
+com.android.settings.users.GuestTelephonyPreferenceController
+com.android.settings.wifi.details2.WifiAutoConnectPreferenceController2
diff --git a/tests/robotests/assets/no_payload_ota.zip b/tests/robotests/assets/no_payload_ota.zip
new file mode 100644
index 0000000..00add65
--- /dev/null
+++ b/tests/robotests/assets/no_payload_ota.zip
Binary files differ
diff --git a/tests/robotests/assets/no_properties_ota.zip b/tests/robotests/assets/no_properties_ota.zip
new file mode 100644
index 0000000..4ca60e0
--- /dev/null
+++ b/tests/robotests/assets/no_properties_ota.zip
Binary files differ
diff --git a/tests/robotests/assets/valid_ota.zip b/tests/robotests/assets/valid_ota.zip
new file mode 100644
index 0000000..20fa2da
--- /dev/null
+++ b/tests/robotests/assets/valid_ota.zip
Binary files differ
diff --git a/tests/robotests/config/robolectric.properties b/tests/robotests/config/robolectric.properties
index ee805c4..3c8b258 100644
--- a/tests/robotests/config/robolectric.properties
+++ b/tests/robotests/config/robolectric.properties
@@ -2,3 +2,4 @@
 shadows=\
    com.android.settings.testutils.shadow.ShadowThreadUtils \
    com.android.settings.network.ShadowServiceManagerExtend
+instrumentedPackages=androidx.preference
\ No newline at end of file
diff --git a/res/raw/accessibility_screen_magnification.mp4 b/tests/robotests/res/raw/sample_video.mp4
similarity index 100%
rename from res/raw/accessibility_screen_magnification.mp4
rename to tests/robotests/res/raw/sample_video.mp4
Binary files differ
diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml
index 82edea5..2183b47 100644
--- a/tests/robotests/res/values-mcc999/config.xml
+++ b/tests/robotests/res/values-mcc999/config.xml
@@ -38,6 +38,7 @@
     <bool name="config_show_enabled_vr_listeners">false</bool>
     <bool name="config_location_mode_available">false</bool>
     <bool name="config_show_location_scanning">false</bool>
+    <bool name="config_show_location_services">false</bool>
     <bool name="config_show_manage_device_admin">false</bool>
     <bool name="config_show_unlock_set_or_change">false</bool>
     <bool name="config_show_screen_pinning_settings">false</bool>
@@ -53,7 +54,6 @@
     <bool name="config_show_pointer_speed">false</bool>
     <bool name="config_show_vibrate_input_devices">false</bool>
     <bool name="config_show_reset_dashboard">false</bool>
-    <bool name="config_show_system_update_settings">false</bool>
     <bool name="config_show_device_model">false</bool>
     <bool name="config_show_top_level_accessibility">false</bool>
     <bool name="config_show_top_level_battery">false</bool>
diff --git a/tests/robotests/res/values/config.xml b/tests/robotests/res/values/config.xml
index 8203cf5..312d31d 100644
--- a/tests/robotests/res/values/config.xml
+++ b/tests/robotests/res/values/config.xml
@@ -20,8 +20,5 @@
     <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>
+    <bool name="config_show_location_services">true</bool>
 </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/res/xml-mcc999/about_legal.xml b/tests/robotests/res/xml-mcc999/about_legal.xml
deleted file mode 100644
index cbbc99a..0000000
--- a/tests/robotests/res/xml-mcc999/about_legal.xml
+++ /dev/null
@@ -1,35 +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.
-
-  -->
-
-<!--
-    WARNING: This resource file is used to test Settings Search indexing.
-    If you change something in here, please run the settings robotests and
-    make sure they still pass.
- -->
-
-<PreferenceScreen
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res-auto"
-        android:title="bears_bears_bears"
-        settings:keywords="keywords">
-
-    <Preference
-            android:key="pref_key_1"
-            android:title="bears_bears_bears"
-            settings:controller="mind_flayer"/>
-</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/res/xml-mcc999/video_preference.xml b/tests/robotests/res/xml-mcc999/video_preference.xml
index fcf5c6d..5582a65 100644
--- a/tests/robotests/res/xml-mcc999/video_preference.xml
+++ b/tests/robotests/res/xml-mcc999/video_preference.xml
@@ -20,13 +20,13 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto">
     <com.android.settings.widget.VideoPreference
         android:key="video1"
-        settings:animation="@raw/gesture_assist"
-        settings:preview="@drawable/gesture_assist"
+        settings:animation="@raw/face_education"
+        settings:preview="@drawable/face_enroll_intro_illustration"
         android:title="seek_bar_title"/>
     <com.android.settings.widget.VideoPreference
         android:key="video2"
-        settings:animation="@raw/gesture_assist"
-        settings:preview="@drawable/gesture_assist"
-        settings:vectorAnimation="@drawable/gesture_assist"
+        settings:animation="@raw/face_education"
+        settings:preview="@drawable/face_enroll_intro_illustration"
+        settings:vectorAnimation="@drawable/face_enroll_intro_illustration"
         android:title="seek_bar_title"/>
 </PreferenceScreen >
diff --git a/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker
index 55104ea..341f4d9 100644
--- a/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker
+++ b/tests/robotests/resources/META-INF/services/androidx.test.internal.platform.ThreadChecker
@@ -1 +1 @@
-org.robolectric.android.internal.NoOpThreadChecker
+org.robolectric.android.internal.RobolectricThreadChecker
diff --git a/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java b/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java
deleted file mode 100644
index f4a20fe..0000000
--- a/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java
+++ /dev/null
@@ -1,242 +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;
-
-import static com.android.settings.AllInOneTetherSettings.BLUETOOTH_TETHER_KEY;
-import static com.android.settings.AllInOneTetherSettings.ETHERNET_TETHER_KEY;
-import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_DEFAULT;
-import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_MAX;
-import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_WITH_SECURITY_NON;
-import static com.android.settings.AllInOneTetherSettings.USB_TETHER_KEY;
-import static com.android.settings.AllInOneTetherSettings.WIFI_TETHER_DISABLE_KEY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.EthernetManager;
-import android.net.TetheringManager;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.util.FeatureFlagUtils;
-
-import androidx.preference.PreferenceGroup;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.core.FeatureFlags;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.wifi.repository.WifiHotspotRepository;
-import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController;
-import com.android.settings.wifi.tether.WifiTetherSecurityPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-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 org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class AllInOneTetherSettingsTest {
-    private static final String[] WIFI_REGEXS = {"wifi_regexs"};
-    private static final String[] USB_REGEXS = {"usb_regexs"};
-    private static final String[] BT_REGEXS = {"bt_regexs"};
-    private static final String[] ETHERNET_REGEXS = {"ethernet_regexs"};
-
-    private Context mContext;
-    private AllInOneTetherSettings mAllInOneTetherSettings;
-
-    @Mock
-    private WifiManager mWifiManager;
-    @Mock
-    private ConnectivityManager mConnectivityManager;
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private WifiTetherSecurityPreferenceController mSecurityPreferenceController;
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
-    @Mock
-    private PreferenceGroup mWifiTetherGroup;
-    @Mock
-    private EthernetManager mEthernetManager;
-
-    @Before
-    public void setUp() {
-        mContext = spy(RuntimeEnvironment.application);
-
-        MockitoAnnotations.initMocks(this);
-        when(FakeFeatureFactory.setupForTest().getWifiFeatureProvider().getWifiHotspotRepository())
-                .thenReturn(mock(WifiHotspotRepository.class));
-        doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
-        doReturn(mConnectivityManager)
-                .when(mContext).getSystemService(Context.CONNECTIVITY_SERVICE);
-        doReturn(mTetheringManager)
-                .when(mContext).getSystemService(Context.TETHERING_SERVICE);
-        doReturn(mEthernetManager).when(mContext).getSystemService(EthernetManager.class);
-        doReturn(WIFI_REGEXS).when(mTetheringManager).getTetherableWifiRegexs();
-        doReturn(USB_REGEXS).when(mTetheringManager).getTetherableUsbRegexs();
-        doReturn(BT_REGEXS).when(mTetheringManager).getTetherableBluetoothRegexs();
-        doReturn(ETHERNET_REGEXS).when(mTetheringManager).getTetherableIfaces();
-        doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
-        // Assume the feature is enabled for most test cases.
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, true);
-        mAllInOneTetherSettings = spy(new AllInOneTetherSettings());
-        doReturn(mPreferenceScreen).when(mAllInOneTetherSettings).getPreferenceScreen();
-        ReflectionHelpers.setField(mAllInOneTetherSettings, "mLifecycle", mock(Lifecycle.class));
-        ReflectionHelpers.setField(mAllInOneTetherSettings, "mSecurityPreferenceController",
-                mSecurityPreferenceController);
-        ReflectionHelpers.setField(mAllInOneTetherSettings, "mWifiTetherGroup", mWifiTetherGroup);
-    }
-
-    @Test
-    public void getNonIndexableKeys_tetherAvailable_featureEnabled_keysReturnedCorrectly() {
-        // To let TetherUtil.isTetherAvailable return true, select one of the combinations
-        setupIsTetherAvailable(true);
-
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, true);
-        final List<String> niks =
-                AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
-        assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(niks).doesNotContain(
-                AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND);
-        assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(niks).doesNotContain(BLUETOOTH_TETHER_KEY);
-        assertThat(niks).doesNotContain(USB_TETHER_KEY);
-        assertThat(niks).doesNotContain(ETHERNET_TETHER_KEY);
-
-        // This key should be returned because it's not visible by default.
-        assertThat(niks).contains(WIFI_TETHER_DISABLE_KEY);
-    }
-
-    @Test
-    public void getNonIndexableKeys_tetherAvailable_featureDisabled_keysReturned() {
-        setupIsTetherAvailable(true);
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
-
-        final List<String> niks =
-                AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(niks).contains(WIFI_TETHER_DISABLE_KEY);
-        assertThat(niks).contains(BLUETOOTH_TETHER_KEY);
-        assertThat(niks).contains(USB_TETHER_KEY);
-        assertThat(niks).contains(ETHERNET_TETHER_KEY);
-    }
-
-    @Test
-    public void getNonIndexableKeys_tetherNotAvailable_keysReturned() {
-        // To let TetherUtil.isTetherAvailable return false, select one of the combinations
-        setupIsTetherAvailable(false);
-
-        final List<String> niks =
-                AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
-
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND);
-        assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_SECURITY);
-        assertThat(niks).contains(WIFI_TETHER_DISABLE_KEY);
-        assertThat(niks).doesNotContain(BLUETOOTH_TETHER_KEY);
-        assertThat(niks).doesNotContain(USB_TETHER_KEY);
-        assertThat(niks).doesNotContain(ETHERNET_TETHER_KEY);
-    }
-
-    @Test
-    public void getPreferenceControllers_notEmpty() {
-        assertThat(AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER
-                .getPreferenceControllers(mContext)).isNotEmpty();
-    }
-
-    @Ignore
-    @Test
-    public void createPreferenceControllers_hasAutoOffPreference() {
-        assertThat(mAllInOneTetherSettings.createPreferenceControllers(mContext)
-                .stream()
-                .filter(controller -> controller instanceof WifiTetherAutoOffPreferenceController)
-                .count())
-                .isEqualTo(1);
-    }
-
-    @Test
-    public void getInitialChildCount_withSecurity() {
-        when(mSecurityPreferenceController.getSecurityType())
-                .thenReturn(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
-        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount()).isEqualTo(
-                EXPANDED_CHILD_COUNT_DEFAULT);
-    }
-
-    @Test
-    public void getInitialChildCount_withoutSecurity() {
-        when(mSecurityPreferenceController.getSecurityType())
-                .thenReturn(SoftApConfiguration.SECURITY_TYPE_OPEN);
-        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount()).isEqualTo(
-                EXPANDED_CHILD_COUNT_WITH_SECURITY_NON);
-    }
-
-    @Test
-    public void getInitialExpandedChildCount_expandAllChild() {
-        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
-                .isNotEqualTo(EXPANDED_CHILD_COUNT_MAX);
-        ReflectionHelpers.setField(mAllInOneTetherSettings, "mShouldShowWifiConfig", false);
-        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
-                .isEqualTo(EXPANDED_CHILD_COUNT_MAX);
-        ReflectionHelpers.setField(mAllInOneTetherSettings, "mShouldShowWifiConfig", true);
-        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
-                .isEqualTo(EXPANDED_CHILD_COUNT_MAX);
-    }
-
-    private void setupIsTetherAvailable(boolean returnValue) {
-        when(mConnectivityManager.isTetheringSupported()).thenReturn(true);
-
-        // For RestrictedLockUtils.checkIfRestrictionEnforced
-        final int userId = UserHandle.myUserId();
-        List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
-        when(mUserManager.getUserRestrictionSources(
-                UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(userId)))
-                .thenReturn(enforcingUsers);
-
-        // For RestrictedLockUtils.hasBaseUserRestriction
-        when(mUserManager.hasBaseUserRestriction(
-                UserManager.DISALLOW_CONFIG_TETHERING, UserHandle.of(userId)))
-                .thenReturn(!returnValue);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
index e251669..1259821 100644
--- a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
@@ -4,15 +4,14 @@
 
 import android.content.Context;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.testutils.XmlTestUtils;
-import com.android.settings.testutils.shadow.ShadowPowerManager;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,9 +20,8 @@
 public class DisplaySettingsTest {
 
     @Test
-    @Config(shadows = ShadowPowerManager.class)
     public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
-        final Context context = RuntimeEnvironment.application;
+        final Context context = ApplicationProvider.getApplicationContext();
         final DisplaySettings fragment = new DisplaySettings();
         final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
                 fragment.getPreferenceScreenResId());
diff --git a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
index 41aec0b..b866c96 100644
--- a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
@@ -31,8 +31,6 @@
 
 import androidx.fragment.app.FragmentActivity;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,10 +38,14 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class MainClearConfirmTest {
 
     private FragmentActivity mActivity;
@@ -62,8 +64,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mActivity = spy((FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get());
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mMainClearConfirm = spy(new MainClearConfirm());
     }
 
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index d1e9408..e84d4eb 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -50,8 +50,8 @@
 
 import androidx.fragment.app.FragmentActivity;
 
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
 
 import org.junit.After;
@@ -66,11 +66,15 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowActivity;
-import org.robolectric.shadows.ShadowUserManager;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {
+        ShadowUtils.class,
+        ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class MainClearTest {
 
     private static final String TEST_ACCOUNT_TYPE = "android.test.account.type";
@@ -108,11 +112,10 @@
             @Override
             boolean showAnySubscriptionInfo(Context context) { return true; }
         });
-        mActivity = spy((FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get());
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mShadowActivity = Shadows.shadowOf(mActivity);
         UserManager userManager = mActivity.getSystemService(UserManager.class);
-        mShadowUserManager = Shadows.shadowOf(userManager);
+        mShadowUserManager = Shadow.extract(userManager);
         mShadowUserManager.setIsAdminUser(true);
         mContentView = LayoutInflater.from(mActivity).inflate(R.layout.main_clear, null);
 
@@ -146,7 +149,6 @@
                 .isTrue();
     }
 
-    @Ignore
     @Test
     public void testShowFinalConfirmation_eraseEsimVisible_eraseEsimUnchecked() {
         final Context context = mock(Context.class);
@@ -232,7 +234,7 @@
         assertThat(mMainClear.showWipeEuicc()).isTrue();
     }
 
-    @Ignore
+    @Ignore("b/313566998")
     @Test
     public void testShowWipeEuicc_developerMode_unprovisioned() {
         prepareEuiccState(
diff --git a/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java b/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
index 3b51ca8..9ade776 100644
--- a/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
+++ b/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
@@ -18,8 +18,14 @@
 
 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.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.os.Looper;
 import android.view.LayoutInflater;
 import android.widget.TextView;
 
@@ -27,10 +33,10 @@
 
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowRecoverySystem;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -38,8 +44,10 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowRecoverySystem.class, ShadowBluetoothAdapter.class})
 public class ResetNetworkConfirmTest {
 
@@ -55,8 +63,7 @@
         MockitoAnnotations.initMocks(this);
 
         mResetNetworkConfirm = new ResetNetworkConfirm();
-        mActivity = spy((FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(FragmentActivity.class));
         mResetNetworkConfirm.mActivity = mActivity;
     }
 
diff --git a/tests/robotests/src/com/android/settings/ResetNetworkTest.java b/tests/robotests/src/com/android/settings/ResetNetworkTest.java
index 0689e4a..0c2c7e8 100644
--- a/tests/robotests/src/com/android/settings/ResetNetworkTest.java
+++ b/tests/robotests/src/com/android/settings/ResetNetworkTest.java
@@ -27,8 +27,6 @@
 import android.view.View;
 import android.widget.CheckBox;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -43,8 +41,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
         mResetNetwork = spy(new ResetNetwork());
         when(mResetNetwork.getContext()).thenReturn(mActivity);
         mResetNetwork.mEsimContainer = new View(mActivity);
diff --git a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
index 232933c..9660b9d 100644
--- a/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/RestrictedListPreferenceTest.java
@@ -30,7 +30,6 @@
 import android.util.AttributeSet;
 
 import com.android.settings.testutils.shadow.ShadowUserManager;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.RestrictedPreferenceHelper;
 
 import org.junit.Before;
@@ -59,8 +58,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
         mShadowKeyguardManager =
                 Shadows.shadowOf(application.getSystemService(KeyguardManager.class));
         mMockHelper = mock(RestrictedPreferenceHelper.class);
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/SettingsDumpServiceTest.java b/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java
index 2e5c144..e44d528 100644
--- a/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsDumpServiceTest.java
@@ -29,12 +29,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 
-import com.android.settings.fuelgauge.batterytip.AnomalyConfigJobService;
-
-import org.json.JSONException;
-import org.json.JSONObject;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -85,23 +80,6 @@
     }
 
     @Test
-    public void testDumpAnomalyDetection_returnAnomalyInfo() throws JSONException {
-        final SharedPreferences sharedPreferences =
-                RuntimeEnvironment.application.getSharedPreferences(AnomalyConfigJobService.PREF_DB,
-                        Context.MODE_PRIVATE);
-        SharedPreferences.Editor editor = sharedPreferences.edit();
-        editor.putInt(AnomalyConfigJobService.KEY_ANOMALY_CONFIG_VERSION, ANOMALY_VERSION);
-        editor.commit();
-        doReturn(sharedPreferences).when(mTestService).getSharedPreferences(anyString(), anyInt());
-
-        final JSONObject jsonObject = mTestService.dumpAnomalyDetection();
-
-        assertThat(jsonObject.getInt(AnomalyConfigJobService.KEY_ANOMALY_CONFIG_VERSION)).isEqualTo(
-                ANOMALY_VERSION);
-    }
-
-    @Ignore
-    @Test
     public void testDump_printServiceAsKey() {
         mResolveInfo.activityInfo = new ActivityInfo();
         mResolveInfo.activityInfo.packageName = PACKAGE_BROWSER;
diff --git a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
index 6489311..627d52f 100644
--- a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
@@ -40,7 +40,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.widget.WorkOnlyCategory;
 
 import org.junit.After;
@@ -55,6 +54,9 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class SettingsPreferenceFragmentTest {
 
     private static final int ITEM_COUNT = 5;
@@ -166,7 +168,6 @@
     }
 
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onCreate_hasExtraFragmentKey_shouldExpandPreferences() {
         doReturn(mContext.getTheme()).when(mActivity).getTheme();
         doReturn(mContext.getResources()).when(mFragment).getResources();
@@ -181,7 +182,6 @@
     }
 
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onCreate_noPreferenceScreen_shouldNotCrash() {
         doReturn(mContext.getTheme()).when(mActivity).getTheme();
         doReturn(mContext.getResources()).when(mFragment).getResources();
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index 733a5e6..0c555da 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -16,15 +16,10 @@
 
 package com.android.settings;
 
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PASSWORD;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PATTERN;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PIN;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
@@ -399,45 +394,33 @@
     }
 
     @Test
-    public void getConfirmCredentialStringForUser_workPin_shouldReturnCorrectString() {
+    public void getConfirmCredentialStringForUser_workPin_shouldReturnNull() {
         setUpForConfirmCredentialString(true /* isEffectiveUserManagedProfile */);
 
-        when(mDevicePolicyResourcesManager
-                .getString(eq(WORK_PROFILE_CONFIRM_PIN), any()))
-                .thenReturn("WORK PIN");
-
         String confirmCredentialString = Utils.getConfirmCredentialStringForUser(mContext,
                 USER_ID, LockPatternUtils.CREDENTIAL_TYPE_PIN);
 
-        assertThat(confirmCredentialString).isEqualTo("WORK PIN");
+        assertNull(confirmCredentialString);
     }
 
     @Test
-    public void getConfirmCredentialStringForUser_workPattern_shouldReturnCorrectString() {
+    public void getConfirmCredentialStringForUser_workPattern_shouldReturnNull() {
         setUpForConfirmCredentialString(true /* isEffectiveUserManagedProfile */);
 
-        when(mDevicePolicyResourcesManager
-                .getString(eq(WORK_PROFILE_CONFIRM_PATTERN), any()))
-                .thenReturn("WORK PATTERN");
-
         String confirmCredentialString = Utils.getConfirmCredentialStringForUser(mContext,
                 USER_ID, LockPatternUtils.CREDENTIAL_TYPE_PATTERN);
 
-        assertThat(confirmCredentialString).isEqualTo("WORK PATTERN");
+        assertNull(confirmCredentialString);
     }
 
     @Test
-    public void getConfirmCredentialStringForUser_workPassword_shouldReturnCorrectString() {
+    public void getConfirmCredentialStringForUser_workPassword_shouldReturnNull() {
         setUpForConfirmCredentialString(true /* isEffectiveUserManagedProfile */);
 
-        when(mDevicePolicyResourcesManager
-                .getString(eq(WORK_PROFILE_CONFIRM_PASSWORD), any()))
-                .thenReturn("WORK PASSWORD");
-
         String confirmCredentialString = Utils.getConfirmCredentialStringForUser(mContext,
                 USER_ID, LockPatternUtils.CREDENTIAL_TYPE_PASSWORD);
 
-        assertThat(confirmCredentialString).isEqualTo("WORK PASSWORD");
+        assertNull(confirmCredentialString);
     }
 
     @Test
@@ -454,7 +437,5 @@
         when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mMockUserManager);
         when(mMockUserManager.getCredentialOwnerProfile(USER_ID)).thenReturn(USER_ID);
         when(mMockUserManager.isManagedProfile(USER_ID)).thenReturn(isEffectiveUserManagedProfile);
-        when(mContext.getSystemService(DevicePolicyManager.class)).thenReturn(mDevicePolicyManager);
-        when(mDevicePolicyManager.getResources()).thenReturn(mDevicePolicyResourcesManager);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
index 7354555..f6954d2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
@@ -25,6 +25,8 @@
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.icu.text.MessageFormat;
+import android.text.Html;
 
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
@@ -73,18 +75,26 @@
 
         mController.displayPreference(mScreen);
 
-        assertThat(mPreference.getTitle()).isEqualTo(
-                mContext.getText(R.string.accessibility_button_gesture_description));
+        assertThat(mPreference.getTitle().toString()).isEqualTo(
+                Html.fromHtml(
+                        MessageFormat.format(mContext.getString(
+                                R.string.accessibility_button_gesture_description), 1, 2, 3),
+                        Html.FROM_HTML_MODE_COMPACT).toString());
     }
 
     @Test
     public void displayPreference_navigationGestureDisabled_setCorrectTitle() {
-        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
-                .thenReturn(NAV_BAR_MODE_2BUTTON);
+        when(mResources.getInteger(
+                com.android.internal.R.integer.config_navBarInteractionMode)).thenReturn(
+                NAV_BAR_MODE_2BUTTON);
 
         mController.displayPreference(mScreen);
 
-        assertThat(mPreference.getTitle()).isEqualTo(
-                mContext.getText(R.string.accessibility_button_description));
+        assertThat(mPreference.getTitle().toString()).isEqualTo(
+                Html.fromHtml(
+                        MessageFormat.format(
+                                mContext.getString(
+                                        R.string.accessibility_button_description), 1, 2, 3),
+                        Html.FROM_HTML_MODE_COMPACT).toString());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFragmentTest.java
index 91e4ece..e9e20a4 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFragmentTest.java
@@ -39,7 +39,6 @@
 import com.android.settings.testutils.shadow.ShadowFragment;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -53,7 +52,6 @@
 import java.util.List;
 
 /** Tests for {@link AccessibilityButtonFragment}. */
-@Ignore
 @Config(shadows = ShadowFragment.class)
 @RunWith(RobolectricTestRunner.class)
 public class AccessibilityButtonFragmentTest {
@@ -69,6 +67,7 @@
     @Before
     public void setUp() {
         mFragment = spy(new TestAccessibilityButtonFragment(mContext));
+        when(mContext.getResources()).thenReturn(mResources);
         when(mFragment.getResources()).thenReturn(mResources);
         when(mFragment.getActivity()).thenReturn(Robolectric.setupActivity(FragmentActivity.class));
     }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreferenceControllerTest.java
index 03f7887..ded9bcc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreferenceControllerTest.java
@@ -31,6 +31,7 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settingslib.search.SearchIndexableRaw;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -42,6 +43,9 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /** Tests for {@link AccessibilityButtonPreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
 public class AccessibilityButtonPreferenceControllerTest {
@@ -88,4 +92,36 @@
         assertThat(mPreference.getTitle()).isEqualTo(
                 mContext.getText(R.string.accessibility_button_title));
     }
+
+    @Test
+    public void updateDynamicRawDataToIndex_navigationGestureEnabled_setCorrectIndex() {
+        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
+                .thenReturn(NAV_BAR_MODE_GESTURAL);
+        List<SearchIndexableRaw> rawDataList = new ArrayList<>();
+
+        mController.updateDynamicRawDataToIndex(rawDataList);
+
+        assertThat(rawDataList).hasSize(1);
+        SearchIndexableRaw raw = rawDataList.get(0);
+        assertThat(raw.title).isEqualTo(
+                mResources.getString(R.string.accessibility_button_gesture_title));
+        assertThat(raw.screenTitle).isEqualTo(
+                mResources.getString(R.string.accessibility_shortcuts_settings_title));
+    }
+
+    @Test
+    public void updateDynamicRawDataToIndex_navigationGestureDisabled_setCorrectIndex() {
+        when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
+                .thenReturn(NAV_BAR_MODE_2BUTTON);
+        List<SearchIndexableRaw> rawDataList = new ArrayList<>();
+
+        mController.updateDynamicRawDataToIndex(rawDataList);
+
+        assertThat(rawDataList).hasSize(1);
+        SearchIndexableRaw raw = rawDataList.get(0);
+        assertThat(raw.title).isEqualTo(
+                mResources.getString(R.string.accessibility_button_title));
+        assertThat(raw.screenTitle).isEqualTo(
+                mResources.getString(R.string.accessibility_shortcuts_settings_title));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
index bf29c95..c105d08 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
@@ -22,13 +22,9 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-
 import android.accessibilityservice.AccessibilityServiceInfo;
+import android.app.Activity;
+import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
 import android.content.Context;
@@ -36,27 +32,24 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
-import android.os.Bundle;
-import android.util.FeatureFlagUtils;
 import android.view.accessibility.AccessibilityManager;
 
-import androidx.fragment.app.FragmentActivity;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.SettingsActivity;
-import com.android.settings.testutils.shadow.ShadowFragment;
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
+
+import com.google.common.collect.ImmutableList;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAccessibilityManager;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
@@ -64,136 +57,134 @@
 import java.util.List;
 
 /** Tests for {@link AccessibilityDetailsSettingsFragment}. */
-@Config(shadows = ShadowFragment.class)
+@Config(shadows = ShadowDevicePolicyManager.class)
 @RunWith(RobolectricTestRunner.class)
 public class AccessibilityDetailsSettingsFragmentTest {
-    private final static String PACKAGE_NAME = "com.foo.bar";
-    private final static String CLASS_NAME = PACKAGE_NAME + ".fake_a11y_service";
-    private final static String COMPONENT_NAME = PACKAGE_NAME + "/" + CLASS_NAME;
+    private static final String PACKAGE_NAME = "com.foo.bar";
+    private static final String CLASS_NAME = PACKAGE_NAME + ".fake_a11y_service";
+    private static final String COMPONENT_NAME = PACKAGE_NAME + "/" + CLASS_NAME;
 
     private Context mContext;
-    private AccessibilityDetailsSettingsFragment mFragment;
-    private ShadowAccessibilityManager mShadowAccessibilityManager;
-    @Captor
-    private ArgumentCaptor<Intent> mIntentArgumentCaptor;
-    @Mock private FragmentActivity mActivity;
+
+    private FragmentController<AccessibilityDetailsSettingsFragment> mFragmentController;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mFragment = spy(new AccessibilityDetailsSettingsFragment());
-        mShadowAccessibilityManager = Shadow.extract(AccessibilityManager.getInstance(mContext));
-        mShadowAccessibilityManager.setInstalledAccessibilityServiceList(getMockServiceList());
-
-        doReturn(mActivity).when(mFragment).getActivity();
-        doReturn(mContext).when(mFragment).getContext();
+        mContext = ApplicationProvider.getApplicationContext();
+        ShadowAccessibilityManager shadowAccessibilityManager = Shadow.extract(
+                AccessibilityManager.getInstance(mContext));
+        shadowAccessibilityManager.setInstalledAccessibilityServiceList(getMockServiceList());
     }
 
     @Test
     public void onCreate_afterSuccessfullyLaunch_shouldBeFinished() {
         final Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
-        doReturn(intent).when(mActivity).getIntent();
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-        verify(mActivity).finish();
+        assertThat(fragment.getActivity().isFinishing()).isTrue();
     }
 
     @Test
     public void onCreate_hasValidExtraComponentName_launchExpectedFragment() {
-        final Intent intent = new Intent();
+        Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
-        doReturn(intent).when(mActivity).getIntent();
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-        assertStartActivityWithExpectedFragment(mActivity,
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 ToggleAccessibilityServicePreferenceFragment.class.getName());
     }
 
     @Test
     public void onCreate_hasInvalidExtraComponentName_launchAccessibilitySettings() {
-        final Intent intent = new Intent();
+        Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, PACKAGE_NAME + "/.service");
-        doReturn(intent).when(mActivity).getIntent();
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-        assertStartActivityWithExpectedFragment(mActivity, AccessibilitySettings.class.getName());
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
+                AccessibilitySettings.class.getName());
     }
 
     @Test
     public void onCreate_hasNoExtraComponentName_launchAccessibilitySettings() {
-        final Intent intent = new Intent();
-        doReturn(intent).when(mActivity).getIntent();
+        AccessibilityDetailsSettingsFragment fragment = startFragment(/* intent= */ null);
 
-        mFragment.onCreate(Bundle.EMPTY);
-
-        assertStartActivityWithExpectedFragment(mActivity, AccessibilitySettings.class.getName());
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
+                AccessibilitySettings.class.getName());
     }
 
     @Test
     public void onCreate_extraComponentNameIsDisallowed_launchAccessibilitySettings() {
-        final Intent intent = new Intent();
+        Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
-        doReturn(intent).when(mActivity).getIntent();
-        doReturn(false).when(mFragment).isServiceAllowed(anyInt(), any());
+        DevicePolicyManager dpm = mContext.getSystemService(
+                DevicePolicyManager.class);
+        ((ShadowDevicePolicyManager) Shadows.shadowOf(dpm)).setPermittedAccessibilityServices(
+                ImmutableList.of());
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-        assertStartActivityWithExpectedFragment(mActivity, AccessibilitySettings.class.getName());
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
+                AccessibilitySettings.class.getName());
     }
 
     @Test
     public void onCreate_magnificationComponentName_launchMagnificationFragment() {
-        final Intent intent = new Intent();
+        Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                 MAGNIFICATION_COMPONENT_NAME.flattenToString());
-        doReturn(intent).when(mActivity).getIntent();
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-
-        assertStartActivityWithExpectedFragment(mActivity,
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 ToggleScreenMagnificationPreferenceFragment.class.getName());
     }
 
     @Test
     public void onCreate_accessibilityButton_launchAccessibilityButtonFragment() {
-        final Intent intent = new Intent();
+        Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                 ACCESSIBILITY_BUTTON_COMPONENT_NAME.flattenToString());
-        doReturn(intent).when(mActivity).getIntent();
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-        assertStartActivityWithExpectedFragment(mActivity,
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilityButtonFragment.class.getName());
     }
 
     @Test
     public void onCreate_hearingAidsComponentName_launchAccessibilityHearingAidsFragment() {
-        FeatureFlagUtils.setEnabled(mContext,
-                FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
-        final Intent intent = new Intent();
+        Intent intent = new Intent();
         intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
                 ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME.flattenToString());
-        doReturn(intent).when(mActivity).getIntent();
 
-        mFragment.onCreate(Bundle.EMPTY);
+        AccessibilityDetailsSettingsFragment fragment = startFragment(intent);
 
-        assertStartActivityWithExpectedFragment(mActivity,
+        assertStartActivityWithExpectedFragment(fragment.getActivity(),
                 AccessibilityHearingAidsFragment.class.getName());
     }
 
     @Test
     public void getMetricsCategory_returnsCorrectCategory() {
-        assertThat(mFragment.getMetricsCategory()).isEqualTo(
+
+        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();
@@ -224,10 +215,9 @@
         return infoList;
     }
 
-    private void assertStartActivityWithExpectedFragment(Context mockContext, String fragmentName) {
-        verify(mockContext).startActivity(mIntentArgumentCaptor.capture());
-        assertThat(mIntentArgumentCaptor.getValue()
-                .getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
-                .isEqualTo(fragmentName);
+    private void assertStartActivityWithExpectedFragment(Activity activity, String fragmentName) {
+        Intent intent = Shadows.shadowOf(activity).getNextStartedActivity();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(
+                fragmentName);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
index 4922eab..ad53ad6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDialogUtilsTest.java
@@ -24,8 +24,6 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,7 +37,7 @@
 
     @Before
     public void setUp() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java
index aef9143..5cf4d94 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java
@@ -72,7 +72,8 @@
         mPreference.setTitle(TEST_TITLE);
 
         final LayoutInflater inflater = LayoutInflater.from(mContext);
-        final View view = inflater.inflate(R.layout.preference_footer, null);
+        final View view = inflater.inflate(
+                com.android.settingslib.widget.preference.footer.R.layout.preference_footer, null);
         mPreferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view);
         mPreference.onBindViewHolder(mPreferenceViewHolder);
 
@@ -116,7 +117,7 @@
         mPreference.onBindViewHolder(mPreferenceViewHolder);
 
         final TextView learnMoreView = (TextView) mPreferenceViewHolder
-                .findViewById(com.android.settingslib.R.id.settingslib_learn_more);
+                .findViewById(com.android.settingslib.widget.preference.footer.R.id.settingslib_learn_more);
         assertThat(learnMoreView.getContentDescription()).isNull();
         assertThat(learnMoreView.getVisibility()).isEqualTo(View.GONE);
         assertThat(mPreference.isLinkEnabled()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
index 0f83bc3..c4476769 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
@@ -26,8 +26,6 @@
 
 import androidx.preference.PreferenceViewHolder;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -48,7 +46,7 @@
 
         final LayoutInflater inflater = LayoutInflater.from(context);
         final View view =
-                inflater.inflate(R.layout.preference_footer, null);
+                inflater.inflate(com.android.settingslib.widget.preference.footer.R.layout.preference_footer, null);
         mPreferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view);
     }
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
index 5bc7f18..d6a2492 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
@@ -32,12 +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.settings.R;
+import com.android.server.accessibility.Flags;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SubSettings;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -51,13 +54,17 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 
 /** Tests for {@link AccessibilityGestureNavigationTutorial}. */
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public final class AccessibilityGestureNavigationTutorialTest {
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
     @Mock
     private DialogInterface.OnClickListener mOnClickListener;
     @Mock
@@ -67,7 +74,7 @@
 
     @Before
     public void setUp() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mShortcutTypes = /* initial */ 0;
     }
 
@@ -89,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 c68e90b..bb15378 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityHearingAidPreferenceControllerTest.java
@@ -18,12 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-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;
 
+import android.app.Application;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothHapClient;
@@ -51,7 +50,6 @@
 
 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;
@@ -108,7 +106,7 @@
 
     @Before
     public void setUp() {
-        mShadowApplication = ShadowApplication.getInstance();
+        mShadowApplication = shadowOf((Application) ApplicationProvider.getApplicationContext());
         setupEnvironment();
 
         mHearingAidPreference = new Preference(mContext);
@@ -246,32 +244,6 @@
                 mContext.getText(R.string.accessibility_hearingaid_not_connected_summary));
     }
 
-    @Ignore
-    @Test
-    public void handleHearingAidPreferenceClick_noHearingAid_launchHearingAidInstructionDialog() {
-        mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
-                HEARING_AID_PREFERENCE));
-        mPreferenceController.setPreference(mHearingAidPreference);
-        doNothing().when(mPreferenceController).launchHearingAidInstructionDialog();
-        mPreferenceController.handlePreferenceTreeClick(mHearingAidPreference);
-
-        verify(mPreferenceController).launchHearingAidInstructionDialog();
-    }
-
-    @Ignore
-    @Test
-    public void handleHearingAidPreferenceClick_withHearingAid_launchBluetoothDeviceDetailSetting
-            () {
-        mPreferenceController = spy(new AccessibilityHearingAidPreferenceController(mContext,
-                HEARING_AID_PREFERENCE));
-        mPreferenceController.setPreference(mHearingAidPreference);
-        when(mHearingAidProfile.getConnectedDevices()).thenReturn(generateHearingAidDeviceList());
-        when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
-        mPreferenceController.handlePreferenceTreeClick(mHearingAidPreference);
-
-        verify(mPreferenceController).launchBluetoothDeviceDetailSetting(mCachedBluetoothDevice);
-    }
-
     @Test
     public void onServiceConnected_onHearingAidProfileConnected_updateSummary() {
         when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java
index 47c8370..b13d0e4 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java
@@ -53,6 +53,7 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -60,6 +61,7 @@
  * Tests for {@link AccessibilityQuickSettingsPrimarySwitchPreferenceController}.
  */
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest {
 
     private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
@@ -96,7 +98,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mFragment = spy(new TestFragment());
         when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
         when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
@@ -110,7 +112,7 @@
         mPreference.setTitle(TEST_TITLE);
         LayoutInflater inflater = LayoutInflater.from(mContext);
         mHolder = PreferenceViewHolder.createInstanceForTests(inflater.inflate(
-                com.android.settingslib.R.layout.preference_two_target, null));
+                com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target, null));
         LinearLayout mWidgetView = mHolder.itemView.findViewById(android.R.id.widget_frame);
         inflater.inflate(R.layout.preference_widget_primary_switch, mWidgetView, true);
         mPreference.onBindViewHolder(mHolder);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java
index 49602bc..104b9f8 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsTooltipWindowTest.java
@@ -19,7 +19,9 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.verify;
+import static org.robolectric.Shadows.shadowOf;
 
+import android.app.Application;
 import android.content.Context;
 import android.view.View;
 import android.view.accessibility.AccessibilityNodeInfo;
@@ -37,8 +39,6 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowLooper;
 
@@ -61,7 +61,7 @@
     @Before
     public void setUp() {
         mTooltipView = new AccessibilityQuickSettingsTooltipWindow(mContext);
-        mView = new View(RuntimeEnvironment.application);
+        mView = new View(mContext);
     }
 
     @Test
@@ -92,7 +92,7 @@
 
         final boolean isActionPerformed =
                 mTooltipView.getContentView().performAccessibilityAction(
-                        AccessibilityNodeInfo.AccessibilityAction.ACTION_CLICK.getId(),
+                        AccessibilityNodeInfo.ACTION_CLICK,
                         /* arguments= */ null);
 
         assertThat(isActionPerformed).isTrue();
@@ -125,7 +125,8 @@
     }
 
     private static PopupWindow getLatestPopupWindow() {
-        final ShadowApplication shadowApplication = Shadow.extract(RuntimeEnvironment.application);
+        final ShadowApplication shadowApplication = shadowOf(
+                (Application) ApplicationProvider.getApplicationContext());
         return shadowApplication.getLatestPopupWindow();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java
index ea2852f..78c8880 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java
@@ -58,6 +58,7 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -66,6 +67,9 @@
  * Tests for {@link AccessibilitySettingsForSetupWizard}.
  */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AccessibilitySettingsForSetupWizardTest {
 
     private static final ComponentName TEST_SCREEN_READER_COMPONENT_NAME = new ComponentName(
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index c4609d6..db6f43b 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -19,75 +19,75 @@
 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.IntentFilter;
 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;
-import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
 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})
+@Config(shadows = {
+        ShadowBluetoothAdapter.class,
+        ShadowUserManager.class,
+        ShadowColorDisplayManager.class,
+        ShadowApplicationPackageManager.class,
+})
 public class AccessibilitySettingsTest {
     private static final String PACKAGE_NAME = "com.android.test";
     private static final String CLASS_NAME = PACKAGE_NAME + ".test_a11y_service";
@@ -101,45 +101,31 @@
 
     @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(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);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         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
@@ -153,10 +139,10 @@
     }
 
     @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();
     }
@@ -173,75 +159,145 @@
     }
 
     @Test
-    public void getServiceSummary_invisibleToggle_shortcutDisabled_showsOffSummary() {
+    public void getServiceSummary_invisibleToggle_shortcutEnabled_showsOnSummary() {
         setInvisibleToggleFragmentType(mServiceInfo);
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), true);
 
         final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
                 mServiceInfo, SERVICE_ENABLED);
 
         assertThat(summary).isEqualTo(
                 mContext.getString(R.string.preference_summary_default_combination,
-                        mContext.getString(R.string.accessibility_summary_shortcut_disabled),
+                        mContext.getString(R.string.accessibility_summary_shortcut_enabled),
                         DEFAULT_SUMMARY));
     }
 
     @Test
-    public void getServiceSummary_enableService_showsEnabled() {
-        doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
-
-        final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
-                mServiceInfo, SERVICE_ENABLED);
-
-        assertThat(summary).isEqualTo(
-                mContext.getString(R.string.accessibility_summary_state_enabled));
-    }
-
-    @Test
-    public void getServiceSummary_disableService_showsDisabled() {
-        doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
-
-        final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
-                mServiceInfo, SERVICE_DISABLED);
-
-        assertThat(summary).isEqualTo(
-                mContext.getString(R.string.accessibility_summary_state_disabled));
-    }
-
-    @Test
-    public void getServiceSummary_enableServiceAndHasSummary_showsEnabledSummary() {
-        final String service_enabled = mContext.getString(
-                R.string.accessibility_summary_state_enabled);
+    public void getServiceSummary_invisibleToggle_shortcutDisabled_showsOffSummary() {
+        setInvisibleToggleFragmentType(mServiceInfo);
+        setShortcutEnabled(mServiceInfo.getComponentName(), false);
         doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
 
         final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
                 mServiceInfo, SERVICE_ENABLED);
 
         assertThat(summary).isEqualTo(
-                mContext.getString(R.string.preference_summary_default_combination, service_enabled,
-                        DEFAULT_SUMMARY));
-    }
-
-    @Test
-    public void getServiceSummary_disableServiceAndHasSummary_showsCombineDisabledSummary() {
-        final String service_disabled = mContext.getString(
-                R.string.accessibility_summary_state_disabled);
-        doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
-
-        final CharSequence summary = AccessibilitySettings.getServiceSummary(mContext,
-                mServiceInfo, SERVICE_DISABLED);
-
-        assertThat(summary).isEqualTo(
                 mContext.getString(R.string.preference_summary_default_combination,
-                        service_disabled, DEFAULT_SUMMARY));
+                        mContext.getString(R.string.generic_accessibility_feature_shortcut_off),
+                        DEFAULT_SUMMARY));
+    }
+
+    @Test
+    public void getServiceSummary_enableServiceShortcutOn_showsServiceEnabledShortcutOn() {
+        doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), true);
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_ENABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.generic_accessibility_service_on));
+    }
+
+    @Test
+    public void getServiceSummary_enableServiceShortcutOff_showsServiceEnabledShortcutOff() {
+        doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), false);
+
+        String summary = AccessibilitySettings.getServiceSummary(
+                mContext, mServiceInfo, SERVICE_ENABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.generic_accessibility_service_on));
+    }
+
+    @Test
+    public void getServiceSummary_disableServiceShortcutOff_showsDisabledShortcutOff() {
+        doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), false);
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_DISABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.generic_accessibility_service_off));
+    }
+
+    @Test
+    public void getServiceSummary_disableServiceShortcutOn_showsDisabledShortcutOn() {
+        doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), true);
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_DISABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.generic_accessibility_service_off));
+    }
+
+    @Test
+    public void getServiceSummary_enableServiceShortcutOffAndHasSummary_showsEnabledSummary() {
+        setShortcutEnabled(mServiceInfo.getComponentName(), false);
+        doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_ENABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(R.string.generic_accessibility_service_on),
+                        DEFAULT_SUMMARY));
+    }
+
+    @Test
+    public void getServiceSummary_enableServiceShortcutOnAndHasSummary_showsEnabledSummary() {
+        doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), true);
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_ENABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(R.string.generic_accessibility_service_on),
+                        DEFAULT_SUMMARY));
+    }
+
+    @Test
+    public void getServiceSummary_disableServiceShortcutOnAndHasSummary_showsDisabledSummary() {
+        doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
+        setShortcutEnabled(mServiceInfo.getComponentName(), true);
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_DISABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(R.string.generic_accessibility_service_off),
+                        DEFAULT_SUMMARY));
+    }
+
+    @Test
+    public void getServiceSummary_disableServiceShortcutOffAndHasSummary_showsDisabledSummary() {
+        setShortcutEnabled(mServiceInfo.getComponentName(), false);
+        doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
+
+        String summary = AccessibilitySettings.getServiceSummary(mContext,
+                mServiceInfo, SERVICE_DISABLED).toString();
+
+        assertThat(summary).isEqualTo(
+                mContext.getString(R.string.preference_summary_default_combination,
+                        mContext.getString(R.string.generic_accessibility_service_off),
+                        DEFAULT_SUMMARY));
     }
 
     @Test
     public void getServiceDescription_serviceCrash_showsStopped() {
         mServiceInfo.crashed = true;
 
-        final CharSequence description = AccessibilitySettings.getServiceDescription(mContext,
-                mServiceInfo, SERVICE_ENABLED);
+        String description = AccessibilitySettings.getServiceDescription(mContext,
+                mServiceInfo, SERVICE_ENABLED).toString();
 
         assertThat(description).isEqualTo(
                 mContext.getString(R.string.accessibility_description_state_stopped));
@@ -251,55 +307,73 @@
     public void getServiceDescription_haveDescription_showsDescription() {
         doReturn(DEFAULT_DESCRIPTION).when(mServiceInfo).loadDescription(any());
 
-        final CharSequence description = AccessibilitySettings.getServiceDescription(mContext,
-                mServiceInfo, SERVICE_ENABLED);
+        String description = AccessibilitySettings.getServiceDescription(mContext,
+                mServiceInfo, SERVICE_ENABLED).toString();
 
         assertThat(description).isEqualTo(DEFAULT_DESCRIPTION);
     }
 
-    @Ignore
     @Test
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onCreate_haveRegisterToSpecificUrisAndActions() {
-        final ArgumentCaptor<IntentFilter> captor = ArgumentCaptor.forClass(IntentFilter.class);
-        final IntentFilter intentFilter;
-        mFragment.onAttach(mContext);
+        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), captor.capture(),
-                isNull(), any());
-        intentFilter = captor.getAllValues().get(/* first time */ 0);
-        assertThat(intentFilter.hasAction(Intent.ACTION_PACKAGE_ADDED)).isTrue();
-        assertThat(intentFilter.hasAction(Intent.ACTION_PACKAGE_REMOVED)).isTrue();
+        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();
     }
 
-    @Ignore
     @Test
-    @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();
     }
 
-    @Ignore
     @Test
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onContentChanged_updatePreferenceInForeground_preferenceUpdated() {
         setupFragment();
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
@@ -314,9 +388,7 @@
 
     }
 
-    @Ignore
     @Test
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void onContentChanged_updatePreferenceInBackground_preferenceUpdated() {
         setupFragment();
         mFragment.onPause();
@@ -336,7 +408,6 @@
     }
 
     @Test
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void testAccessibilityMenuInSystem_IncludedInInteractionControl() {
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
                 List.of(getMockAccessibilityServiceInfo(
@@ -351,7 +422,6 @@
     }
 
     @Test
-    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
     public void testAccessibilityMenuInSystem_NoPrefWhenNotInstalled() {
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(List.of());
         setupFragment();
@@ -404,9 +474,19 @@
     }
 
     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) {
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
+                enabled ? componentName.flattenToString() : "");
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySetupWizardUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySetupWizardUtilsTest.java
index e79b122..fcc8d81 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySetupWizardUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySetupWizardUtilsTest.java
@@ -15,7 +15,9 @@
  */
 package com.android.settings.accessibility;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
@@ -50,4 +52,14 @@
         verify(layout).setIcon(icon);
         verify(layout).setHeaderText(title);
     }
+
+    @Test
+    public void setupGlifPreferenceLayout_descriptionIsNull_doesNotCallSetDescriptionText() {
+        GlifPreferenceLayout layout = mock(GlifPreferenceLayout.class);
+
+        AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(mContext, layout, "title",
+                /* description= */ null, /* icon= */ null);
+
+        verify(layout, times(0)).setDescriptionText(any());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
index 97ca10a..4607a59 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
@@ -46,11 +46,9 @@
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowFragment;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -63,8 +61,10 @@
 import org.robolectric.shadows.ShadowApplication;
 
 /** Tests for {@link AccessibilityShortcutPreferenceFragment} */
-@Ignore
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AccessibilityShortcutPreferenceFragmentTest {
 
     private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
@@ -110,7 +110,7 @@
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.getComponentName().flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.getComponentName().flattenToString());
         // Compare to default UserShortcutType
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
     }
@@ -123,7 +123,7 @@
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.getComponentName().flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.getComponentName().flattenToString());
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
     }
 
@@ -136,13 +136,13 @@
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.getComponentName().flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.getComponentName().flattenToString());
         assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
     }
 
     @Test
     public void setupEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
                 mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
                 PLACEHOLDER_DIALOG_TITLE,
@@ -160,7 +160,7 @@
 
     @Test
     public void setupEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
                 mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
                 PLACEHOLDER_DIALOG_TITLE,
@@ -182,7 +182,7 @@
     @Test
     @Config(shadows = ShadowFragment.class)
     public void restoreValueFromSavedInstanceState_assignShortcutTypeToVariable() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
                 mContext, AccessibilityDialogUtils.DialogType.EDIT_SHORTCUT_GENERIC,
                 PLACEHOLDER_DIALOG_TITLE,
@@ -201,14 +201,14 @@
         mFragment.saveNonEmptyUserShortcutType(value);
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.getComponentName().flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.getComponentName().flattenToString());
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
     }
 
     @Test
     @Config(shadows = ShadowFragment.class)
     public void restoreValueFromSavedInstanceState_showTooltipView() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mFragment.showQuickSettingsTooltipIfNeeded(QuickSettingsTooltipType.GUIDE_TO_EDIT);
         assertThat(getLatestPopupWindow().isShowing()).isTrue();
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
index 83c5bc2..7825677 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityUtilTest.java
@@ -27,6 +27,8 @@
 import android.os.Build;
 import android.provider.Settings;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
@@ -34,33 +36,33 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
+import java.util.StringJoiner;
 
 @RunWith(RobolectricTestRunner.class)
 public final class AccessibilityUtilTest {
-    private static final int ON = 1;
-    private static final int OFF = 0;
     private static final String SECURE_TEST_KEY = "secure_test_key";
-    private static final String DUMMY_PACKAGE_NAME = "com.mock.example";
-    private static final String DUMMY_CLASS_NAME = DUMMY_PACKAGE_NAME + ".mock_a11y_service";
-    private static final String DUMMY_CLASS_NAME2 = DUMMY_PACKAGE_NAME + ".mock_a11y_service2";
-    private static final ComponentName DUMMY_COMPONENT_NAME = new ComponentName(DUMMY_PACKAGE_NAME,
-            DUMMY_CLASS_NAME);
-    private static final ComponentName DUMMY_COMPONENT_NAME2 = new ComponentName(DUMMY_PACKAGE_NAME,
-            DUMMY_CLASS_NAME2);
+    private static final String MOCK_PACKAGE_NAME = "com.mock.example";
+    private static final String MOCK_CLASS_NAME = MOCK_PACKAGE_NAME + ".mock_a11y_service";
+    private static final String MOCK_CLASS_NAME2 = MOCK_PACKAGE_NAME + ".mock_a11y_service2";
+    private static final ComponentName MOCK_COMPONENT_NAME = new ComponentName(MOCK_PACKAGE_NAME,
+            MOCK_CLASS_NAME);
+    private static final ComponentName MOCK_COMPONENT_NAME2 = new ComponentName(MOCK_PACKAGE_NAME,
+            MOCK_CLASS_NAME2);
     private static final String SOFTWARE_SHORTCUT_KEY =
             Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
     private static final String HARDWARE_SHORTCUT_KEY =
             Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
 
+    private static final String PLACEHOLDER_SETTING_FEATURE = "placeholderSettingFeature";
+
     private Context mContext;
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
@@ -75,30 +77,33 @@
 
     @Test
     public void getSummary_hasValueAndEqualsToOne_shouldReturnOnString() {
-        Settings.Secure.putInt(mContext.getContentResolver(), SECURE_TEST_KEY, ON);
+        setSettingsFeatureEnabled(SECURE_TEST_KEY, true);
 
-        final CharSequence result = AccessibilityUtil.getSummary(mContext, SECURE_TEST_KEY);
+        final CharSequence result = AccessibilityUtil.getSummary(mContext, SECURE_TEST_KEY,
+                R.string.switch_on_text, R.string.switch_off_text);
 
         assertThat(result)
-                .isEqualTo(mContext.getText(R.string.accessibility_feature_state_on));
+                .isEqualTo(mContext.getText(R.string.switch_on_text));
     }
 
     @Test
     public void getSummary_hasValueAndEqualsToZero_shouldReturnOffString() {
-        Settings.Secure.putInt(mContext.getContentResolver(), SECURE_TEST_KEY, OFF);
+        setSettingsFeatureEnabled(SECURE_TEST_KEY, false);
 
-        final CharSequence result = AccessibilityUtil.getSummary(mContext, SECURE_TEST_KEY);
+        final CharSequence result = AccessibilityUtil.getSummary(mContext, SECURE_TEST_KEY,
+                R.string.switch_on_text, R.string.switch_off_text);
 
         assertThat(result)
-                .isEqualTo(mContext.getText(R.string.accessibility_feature_state_off));
+                .isEqualTo(mContext.getText(R.string.switch_off_text));
     }
 
     @Test
     public void getSummary_noValue_shouldReturnOffString() {
-        final CharSequence result = AccessibilityUtil.getSummary(mContext, SECURE_TEST_KEY);
+        final CharSequence result = AccessibilityUtil.getSummary(mContext, SECURE_TEST_KEY,
+                R.string.switch_on_text, R.string.switch_off_text);
 
         assertThat(result)
-                .isEqualTo(mContext.getText(R.string.accessibility_feature_state_off));
+                .isEqualTo(mContext.getText(R.string.switch_off_text));
     }
 
     @Test
@@ -136,29 +141,31 @@
 
     @Test
     public void hasValueInSettings_putValue_hasValue() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
         assertThat(AccessibilityUtil.hasValueInSettings(mContext, UserShortcutType.SOFTWARE,
-                DUMMY_COMPONENT_NAME)).isTrue();
+                MOCK_COMPONENT_NAME)).isTrue();
     }
 
     @Test
     public void getUserShortcutTypeFromSettings_putOneValue_hasValue() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
 
         final int shortcutType = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
-                DUMMY_COMPONENT_NAME);
+                MOCK_COMPONENT_NAME);
+
         assertThat(
                 (shortcutType & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE).isTrue();
     }
 
     @Test
     public void getUserShortcutTypeFromSettings_putTwoValues_hasValue() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
-        putStringIntoSettings(HARDWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
 
         final int shortcutType = AccessibilityUtil.getUserShortcutTypesFromSettings(mContext,
-                DUMMY_COMPONENT_NAME);
+                MOCK_COMPONENT_NAME);
+
         assertThat(
                 (shortcutType & UserShortcutType.SOFTWARE) == UserShortcutType.SOFTWARE).isTrue();
         assertThat(
@@ -167,50 +174,53 @@
 
     @Test
     public void optInAllValuesToSettings_optInValue_haveMatchString() {
+        clearShortcuts();
         int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE;
 
-        AccessibilityUtil.optInAllValuesToSettings(mContext, shortcutTypes, DUMMY_COMPONENT_NAME);
+        AccessibilityUtil.optInAllValuesToSettings(mContext, shortcutTypes, MOCK_COMPONENT_NAME);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
-                DUMMY_COMPONENT_NAME.flattenToString());
+                MOCK_COMPONENT_NAME.flattenToString());
         assertThat(getStringFromSettings(HARDWARE_SHORTCUT_KEY)).isEqualTo(
-                DUMMY_COMPONENT_NAME.flattenToString());
+                MOCK_COMPONENT_NAME.flattenToString());
 
     }
 
     @Test
     public void optInValueToSettings_optInValue_haveMatchString() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+
         AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
-                DUMMY_COMPONENT_NAME2);
+                MOCK_COMPONENT_NAME2);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
-                DUMMY_COMPONENT_NAME.flattenToString() + ":"
-                        + DUMMY_COMPONENT_NAME2.flattenToString());
+                MOCK_COMPONENT_NAME.flattenToString() + ":"
+                        + MOCK_COMPONENT_NAME2.flattenToString());
     }
 
     @Test
     public void optInValueToSettings_optInTwoValues_haveMatchString() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+
         AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
-                DUMMY_COMPONENT_NAME2);
+                MOCK_COMPONENT_NAME2);
         AccessibilityUtil.optInValueToSettings(mContext, UserShortcutType.SOFTWARE,
-                DUMMY_COMPONENT_NAME2);
+                MOCK_COMPONENT_NAME2);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
-                DUMMY_COMPONENT_NAME.flattenToString() + ":"
-                        + DUMMY_COMPONENT_NAME2.flattenToString());
+                MOCK_COMPONENT_NAME.flattenToString() + ":"
+                        + MOCK_COMPONENT_NAME2.flattenToString());
     }
 
     @Test
     public void optOutAllValuesToSettings_optOutValue_emptyString() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
-        putStringIntoSettings(HARDWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.HARDWARE, MOCK_COMPONENT_NAME.flattenToString());
         int shortcutTypes =
                 UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP;
 
         AccessibilityUtil.optOutAllValuesFromSettings(mContext, shortcutTypes,
-                DUMMY_COMPONENT_NAME);
+                MOCK_COMPONENT_NAME);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEmpty();
         assertThat(getStringFromSettings(HARDWARE_SHORTCUT_KEY)).isEmpty();
@@ -218,30 +228,32 @@
 
     @Test
     public void optOutValueFromSettings_optOutValue_emptyString() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString());
+
         AccessibilityUtil.optOutValueFromSettings(mContext, UserShortcutType.SOFTWARE,
-                DUMMY_COMPONENT_NAME);
+                MOCK_COMPONENT_NAME);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEmpty();
     }
 
     @Test
     public void optOutValueFromSettings_optOutValue_haveMatchString() {
-        putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, DUMMY_COMPONENT_NAME.flattenToString() + ":"
-                + DUMMY_COMPONENT_NAME2.flattenToString());
+        setShortcut(UserShortcutType.SOFTWARE, MOCK_COMPONENT_NAME.flattenToString(),
+                MOCK_COMPONENT_NAME2.flattenToString());
+
         AccessibilityUtil.optOutValueFromSettings(mContext, UserShortcutType.SOFTWARE,
-                DUMMY_COMPONENT_NAME2);
+                MOCK_COMPONENT_NAME2);
 
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
-                DUMMY_COMPONENT_NAME.flattenToString());
+                MOCK_COMPONENT_NAME.flattenToString());
     }
 
     private AccessibilityServiceInfo getMockAccessibilityServiceInfo() {
         final ApplicationInfo applicationInfo = new ApplicationInfo();
         final ServiceInfo serviceInfo = new ServiceInfo();
-        applicationInfo.packageName = DUMMY_PACKAGE_NAME;
-        serviceInfo.packageName = DUMMY_PACKAGE_NAME;
-        serviceInfo.name = DUMMY_CLASS_NAME;
+        applicationInfo.packageName = MOCK_PACKAGE_NAME;
+        serviceInfo.packageName = MOCK_PACKAGE_NAME;
+        serviceInfo.name = MOCK_CLASS_NAME;
         serviceInfo.applicationInfo = applicationInfo;
 
         final ResolveInfo resolveInfo = new ResolveInfo();
@@ -250,7 +262,7 @@
         try {
             final AccessibilityServiceInfo info = new AccessibilityServiceInfo(resolveInfo,
                     mContext);
-            info.setComponentName(DUMMY_COMPONENT_NAME);
+            info.setComponentName(MOCK_COMPONENT_NAME);
             return info;
         } catch (XmlPullParserException | IOException e) {
             // Do nothing
@@ -259,11 +271,28 @@
         return null;
     }
 
-    private void putStringIntoSettings(String key, String componentName) {
-        Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
-    }
-
     private String getStringFromSettings(String key) {
         return Settings.Secure.getString(mContext.getContentResolver(), key);
     }
+
+    private void setSettingsFeatureEnabled(String settingsKey, boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                settingsKey,
+                enabled ? AccessibilityUtil.State.ON : AccessibilityUtil.State.OFF);
+    }
+
+    private void setShortcut(@UserShortcutType int shortcutType, String... componentNames) {
+        StringJoiner shortcutComponents = new StringJoiner(":");
+        for (String componentName : componentNames) {
+            shortcutComponents.add(componentName);
+        }
+        Settings.Secure.putString(mContext.getContentResolver(),
+                shortcutType == UserShortcutType.SOFTWARE ? SOFTWARE_SHORTCUT_KEY
+                        : HARDWARE_SHORTCUT_KEY, shortcutComponents.toString());
+    }
+
+    private void clearShortcuts() {
+        Settings.Secure.putString(mContext.getContentResolver(), SOFTWARE_SHORTCUT_KEY, "");
+        Settings.Secure.putString(mContext.getContentResolver(), HARDWARE_SHORTCUT_KEY, "");
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java
index aaaf303..4b20c96 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AutoclickPreferenceControllerTest.java
@@ -56,19 +56,17 @@
 
     @Test
     public void getSummary_disabledAutoclick_shouldReturnOffSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED, OFF);
+        setAutoClickEnabled(false);
 
-        assertThat(mController.getSummary())
-                .isEqualTo(mContext.getText(R.string.accessibility_feature_state_off));
+        assertThat(mController.getSummary().toString())
+                .isEqualTo(mContext.getText(R.string.autoclick_disabled));
     }
 
     @Test
     public void getSummary_enabledAutoclick_shouldReturnOnSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED, ON);
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY, AUTOCLICK_DELAY_DEFAULT);
+        setAutoClickEnabled(true);
+        setAutoClickDelayed(AUTOCLICK_DELAY_DEFAULT);
+
 
         assertThat(mController.getSummary().toString())
                 .isEqualTo(AutoclickUtils.getAutoclickDelaySummary(
@@ -76,4 +74,14 @@
                         R.string.accessibilty_autoclick_preference_subtitle_medium_delay,
                         AUTOCLICK_DELAY_DEFAULT).toString());
     }
+
+    private void setAutoClickEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_ENABLED, enabled ? ON : OFF);
+    }
+
+    private void setAutoClickDelayed(int delayedInMs) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_AUTOCLICK_DELAY, delayedInMs);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
index 93f1a7b..ce2a571 100644
--- a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
@@ -31,13 +31,19 @@
 import android.util.AttributeSet;
 import android.widget.SeekBar;
 
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
 import org.junit.Before;
 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 = {
+        ShadowSystemSettings.class,
+})
 public class BalanceSeekBarTest {
     // Fix the maximum process value to 200 for testing the BalanceSeekBar.
     // It affects the SeekBar value of center(100) and snapThreshold(200 * SNAP_TO_PERCENTAGE).
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java
index c44bed1..5ff00e2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptioningPreferenceControllerTest.java
@@ -24,6 +24,8 @@
 import android.content.Context;
 import android.provider.Settings;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 
@@ -31,7 +33,6 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 /** Tests for {@link CaptioningPreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
@@ -42,7 +43,7 @@
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = new CaptioningPreferenceController(mContext, "captioning_pref");
     }
 
@@ -54,19 +55,22 @@
 
     @Test
     public void getSummary_enabledCaptions_shouldReturnOnSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, ON);
+        setCaptioningEnabled(true);
 
         assertThat(mController.getSummary()).isEqualTo(
-                mContext.getText(R.string.accessibility_feature_state_on));
+                mContext.getText(R.string.show_captions_enabled));
     }
 
     @Test
     public void getSummary_disabledCaptions_shouldReturnOffSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, OFF);
+        setCaptioningEnabled(false);
 
         assertThat(mController.getSummary()).isEqualTo(
-                mContext.getText(R.string.accessibility_feature_state_off));
+                mContext.getText(R.string.show_captions_disabled));
+    }
+
+    private void setCaptioningEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, enabled ? ON : OFF);
     }
 }
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/ColorAndMotionFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ColorAndMotionFragmentTest.java
index a30dbff..d3f5457 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ColorAndMotionFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ColorAndMotionFragmentTest.java
@@ -16,10 +16,16 @@
 
 package com.android.settings.accessibility;
 
+import static android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.app.settings.SettingsEnums;
 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.test.core.app.ApplicationProvider;
 
@@ -27,6 +33,7 @@
 import com.android.settings.testutils.XmlTestUtils;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -37,6 +44,9 @@
 @RunWith(RobolectricTestRunner.class)
 public class ColorAndMotionFragmentTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private ColorAndMotionFragment mFragment;
 
@@ -63,6 +73,20 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(FLAG_FORCE_INVERT_COLOR)
+    public void forceInvertEnabled_getNonIndexableKeys_existInXmlLayout() {
+        final List<String> niks = ColorAndMotionFragment.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(mContext);
+        final List<String> keys =
+                XmlTestUtils.getKeysFromPreferenceXml(mContext,
+                        R.xml.accessibility_color_and_motion);
+
+        assertThat(niks).doesNotContain(ColorAndMotionFragment.TOGGLE_FORCE_INVERT);
+        assertThat(keys).containsAtLeastElementsIn(niks);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(FLAG_FORCE_INVERT_COLOR)
     public void getNonIndexableKeys_existInXmlLayout() {
         final List<String> niks = ColorAndMotionFragment.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(mContext);
@@ -70,6 +94,7 @@
                 XmlTestUtils.getKeysFromPreferenceXml(mContext,
                         R.xml.accessibility_color_and_motion);
 
+        assertThat(niks).contains(ColorAndMotionFragment.TOGGLE_FORCE_INVERT);
         assertThat(keys).containsAtLeastElementsIn(niks);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
index e034498..52905fc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ColorInversionPreferenceControllerTest.java
@@ -16,18 +16,21 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
 import android.provider.Settings;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.R;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -39,29 +42,60 @@
             Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED;
     private Context mContext;
     private ColorInversionPreferenceController mController;
+    private String mColorInversionSummary;
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = new ColorInversionPreferenceController(mContext, PREF_KEY);
+        mColorInversionSummary = mContext.getString(R.string.color_inversion_feature_summary);
     }
 
     @Test
-    public void getSummary_enabledColorInversion_shouldReturnOnSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                DISPLAY_INVERSION_ENABLED, State.ON);
+    public void getSummary_enabledColorInversionShortcutOff_shouldReturnOnSummary() {
+        setColorInversionEnabled(true);
+        setColorInversionShortcutEnabled(false);
 
-        assertThat(mController.getSummary().toString().contains(
-                mContext.getText(R.string.accessibility_feature_state_on))).isTrue();
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.color_inversion_state_on));
     }
 
     @Test
-    public void getSummary_disabledColorInversion_shouldReturnOffSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                DISPLAY_INVERSION_ENABLED, State.OFF);
+    public void getSummary_enabledColorInversionShortcutOn_shouldReturnOnSummary() {
+        setColorInversionEnabled(true);
+        setColorInversionShortcutEnabled(true);
 
-        assertThat(mController.getSummary().toString().contains(
-                mContext.getText(R.string.accessibility_feature_state_off))).isTrue();
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.color_inversion_state_on));
+    }
+
+    @Test
+    public void getSummary_disabledColorInversionShortcutOff_shouldReturnOffSummary() {
+        setColorInversionEnabled(false);
+        setColorInversionShortcutEnabled(false);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.color_inversion_state_off));
+    }
+
+    @Test
+    public void getSummary_disabledColorInversionShortcutOn_shouldReturnOffSummary() {
+        setColorInversionEnabled(false);
+        setColorInversionShortcutEnabled(true);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.color_inversion_state_off));
+    }
+
+    private void setColorInversionShortcutEnabled(boolean enabled) {
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
+                enabled ? COLOR_INVERSION_COMPONENT_NAME.flattenToString() : "");
+    }
+
+    private void setColorInversionEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                DISPLAY_INVERSION_ENABLED, enabled ? State.ON : State.OFF);
     }
 
     @Retention(RetentionPolicy.SOURCE)
diff --git a/tests/robotests/src/com/android/settings/accessibility/DaltonizerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/DaltonizerPreferenceControllerTest.java
index 1a00cc1..d41f295 100644
--- a/tests/robotests/src/com/android/settings/accessibility/DaltonizerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/DaltonizerPreferenceControllerTest.java
@@ -16,18 +16,21 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
 import android.provider.Settings;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.R;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
 public class DaltonizerPreferenceControllerTest {
@@ -37,28 +40,59 @@
 
     private Context mContext;
     private DaltonizerPreferenceController mController;
+    private String mDaltonizerSummary;
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = new DaltonizerPreferenceController(mContext, PREF_KEY);
+        mDaltonizerSummary = mContext.getString(R.string.daltonizer_feature_summary);
     }
 
     @Test
-    public void getSummary_enabledColorCorrection_shouldReturnOnSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, ON);
+    public void getSummary_enabledColorCorrectionShortcutOff_shouldReturnOnSummary() {
+        setColorCorrectionEnabled(true);
+        setColorCorrectionShortcutEnabled(false);
 
-        assertThat(mController.getSummary().toString().contains(
-                mContext.getText(R.string.accessibility_feature_state_on))).isTrue();
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.daltonizer_state_on));
     }
 
     @Test
-    public void getSummary_disabledColorCorrection_shouldReturnOffSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, OFF);
+    public void getSummary_enabledColorCorrectionShortcutOn_shouldReturnOnSummary() {
+        setColorCorrectionEnabled(true);
+        setColorCorrectionShortcutEnabled(true);
 
-        assertThat(mController.getSummary().toString().contains(
-                mContext.getText(R.string.accessibility_feature_state_off))).isTrue();
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.daltonizer_state_on));
+    }
+
+    @Test
+    public void getSummary_disabledColorCorrectionShortcutOff_shouldReturnOffSummary() {
+        setColorCorrectionEnabled(false);
+        setColorCorrectionShortcutEnabled(false);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.daltonizer_state_off));
+    }
+
+    @Test
+    public void getSummary_disabledColorCorrectionShortcutOn_shouldReturnOffSummary() {
+        setColorCorrectionEnabled(false);
+        setColorCorrectionShortcutEnabled(true);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.daltonizer_state_off));
+    }
+
+    private void setColorCorrectionEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED, enabled ? ON : OFF);
+    }
+
+    private void setColorCorrectionShortcutEnabled(boolean enabled) {
+        Settings.Secure.putString(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS,
+                enabled ? DALTONIZER_COMPONENT_NAME.flattenToString() : "");
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/DisplaySizeDataTest.java b/tests/robotests/src/com/android/settings/accessibility/DisplaySizeDataTest.java
deleted file mode 100644
index fabf123..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/DisplaySizeDataTest.java
+++ /dev/null
@@ -1,54 +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.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-/**
- * Tests for {@link DisplaySizeData}.
- */
-@RunWith(RobolectricTestRunner.class)
-public class DisplaySizeDataTest {
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    private DisplaySizeData mDisplaySizeData;
-
-    @Before
-    public void setUp() {
-        mDisplaySizeData = new DisplaySizeData(mContext);
-    }
-
-    @Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
-    @Test
-    public void commit_success() {
-        final int progress = 4;
-
-        mDisplaySizeData.commit(progress);
-        final float density = mContext.getResources().getDisplayMetrics().density;
-
-        assertThat(density).isEqualTo(mDisplaySizeData.getValues().get(progress));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreferenceFragmentTest.java
index 0280fae..ac6953d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreferenceFragmentTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
 
 import androidx.test.core.app.ApplicationProvider;
@@ -30,7 +31,6 @@
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -66,10 +66,10 @@
         assertThat(mFragment.getLogTag()).isEqualTo("FlashNotificationsPreferenceFragment");
     }
 
-    @Ignore
     @Test
-    public void getMetricsCategory_isZero() {
-        assertThat(mFragment.getMetricsCategory()).isEqualTo(0); // TODO
+    public void getMetricsCategory_returnsCorrectCategory() {
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(
+                SettingsEnums.FLASH_NOTIFICATION_SETTINGS);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
index 98da926..0f32f31 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
@@ -131,7 +131,7 @@
     @Test
     public void testHandlePreferenceTreeClick_invalidPreference() {
         mController.handlePreferenceTreeClick(mock(Preference.class));
-        verify(mContext, never()).sendBroadcast(any());
+        verify(mContext, never()).sendBroadcastAsUser(any(), any());
     }
 
     @Test
@@ -139,7 +139,7 @@
         mController.handlePreferenceTreeClick(mPreference);
 
         ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        verify(mContext).sendBroadcast(captor.capture());
+        verify(mContext).sendBroadcastAsUser(captor.capture(), any());
         Intent captured = captor.getValue();
 
         assertThat(captured.getAction()).isEqualTo(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
@@ -150,7 +150,7 @@
         mController.handlePreferenceTreeClick(mPreference);
 
         ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        verify(mContext).sendBroadcast(captor.capture());
+        verify(mContext).sendBroadcastAsUser(captor.capture(), any());
         Intent captured = captor.getValue();
 
         assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_LONG_PREVIEW))
diff --git a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceTest.java
index 1e7f089..fac467d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceTest.java
@@ -68,7 +68,8 @@
 
         final View frame = mPreferenceViewHolder.findViewById(R.id.frame);
         final int backgroundResId = Shadows.shadowOf(frame.getBackground()).getCreatedFromResId();
-        assertThat(backgroundResId).isEqualTo(R.drawable.settingslib_switch_bar_bg_on);
+        assertThat(backgroundResId).isEqualTo(
+                com.android.settingslib.widget.mainswitch.R.drawable.settingslib_switch_bar_bg_on);
         final TextView title = (TextView) mPreferenceViewHolder.findViewById(android.R.id.title);
         assertThat(title.getAlpha()).isEqualTo(1f);
         assertThat(title.getCurrentTextColor()).isEqualTo(textColorEnabled);
diff --git a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java
index 8c2be52..e4faaaad 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackIntensityPreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -159,7 +158,6 @@
     }
 
     @Test
-    @Ignore
     public void setProgress_updatesIntensityAndDependentSettings() throws Exception {
         mController.setSliderPosition(Vibrator.VIBRATION_INTENSITY_OFF);
         assertThat(readSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY))
diff --git a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackTogglePreferenceControllerTest.java
index 77aede2..b87e9cf 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HapticFeedbackTogglePreferenceControllerTest.java
@@ -35,7 +35,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -152,7 +151,6 @@
     }
 
     @Test
-    @Ignore
     public void setChecked_updatesIntensityAndDependentSettings() throws Exception {
         updateSetting(Settings.System.HAPTIC_FEEDBACK_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF);
         mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java
index 15bb38d..254b569 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java
@@ -46,9 +46,13 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 /** Tests for {@link HearingAidCompatibilityPreferenceControllerTest}. */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowAudioManager.class,
+})
 public class HearingAidCompatibilityPreferenceControllerTest {
 
     @Rule
@@ -115,7 +119,7 @@
 
         assertThat(Settings.System.getInt(mContext.getContentResolver(),
                 Settings.System.HEARING_AID, HAC_DISABLED)).isEqualTo(HAC_ENABLED);
-        verify(mAudioManager).setParameters("HACSetting=ON");
+        verify(mAudioManager).setParameters("HACSetting=ON;");
     }
 
     @Test
@@ -124,7 +128,7 @@
 
         assertThat(Settings.System.getInt(mContext.getContentResolver(),
                 Settings.System.HEARING_AID, HAC_DISABLED)).isEqualTo(HAC_DISABLED);
-        verify(mAudioManager).setParameters("HACSetting=OFF");
+        verify(mAudioManager).setParameters("HACSetting=OFF;");
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java
index d55a948..adfd573 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java
@@ -34,7 +34,6 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.bluetooth.BluetoothPairingDetail;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -45,10 +44,15 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 /** Tests for {@link HearingAidDialogFragment}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowAlertDialogCompat.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+        ShadowAlertDialogCompat.class,
+})
 public class HearingAidDialogFragmentTest {
 
     @Rule
@@ -60,8 +64,7 @@
     @Before
     public void setUpTestFragment() {
         mFragment = spy(HearingAidDialogFragment.newInstance());
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         when(mFragment.getActivity()).thenReturn(mActivity);
     }
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java
index d1c803e..bd57e9d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java
@@ -32,6 +32,10 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
+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.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
@@ -43,10 +47,9 @@
 import com.android.settings.bluetooth.BluetoothPairingDetail;
 import com.android.settings.bluetooth.HearingAidPairingDialogFragment;
 import com.android.settings.bluetooth.Utils;
-import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.HearingAidInfo;
@@ -62,18 +65,28 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadow.api.Shadow;
 
 /** Tests for {@link HearingAidPairingDialogFragment}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class,
-        ShadowBluetoothUtils.class})
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowAlertDialogCompat.class,
+        com.android.settings.testutils.shadow.ShadowBluetoothAdapter.class,
+        com.android.settings.testutils.shadow.ShadowBluetoothUtils.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class HearingAidPairingDialogFragmentTest {
 
     @Rule
     public final MockitoRule mockito = MockitoJUnit.rule();
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
+    private static final int TEST_LAUNCH_PAGE = SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY;
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
     @Mock
@@ -94,13 +107,7 @@
     @Before
     public void setUp() {
         setupEnvironment();
-        mFragment = spy(HearingAidPairingDialogFragment.newInstance(TEST_DEVICE_ADDRESS));
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
-        mFragmentManager = mActivity.getSupportFragmentManager();
-        when(mFragment.getActivity()).thenReturn(mActivity);
-        doReturn(mFragmentManager).when(mFragment).getParentFragmentManager();
-        mFragment.onAttach(mContext);
+        setupDialog(TEST_LAUNCH_PAGE);
     }
 
     @Test
@@ -117,7 +124,8 @@
     }
 
     @Test
-    public void dialogPositiveButtonClick_intentToExpectedClass() {
+    public void dialogPositiveButtonClick_intentToBluetoothPairingPage() {
+        setupDialog(SettingsEnums.SETTINGS_CONNECTED_DEVICE_CATEGORY);
         final AlertDialog dialog = (AlertDialog) mFragment.onCreateDialog(Bundle.EMPTY);
         dialog.show();
 
@@ -129,6 +137,34 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_NEW_HEARING_DEVICE_PAIRING_PAGE)
+    public void dialogPositiveButtonClick_intentToNewA11yPairingPage() {
+        setupDialog(SettingsEnums.ACCESSIBILITY);
+        final AlertDialog dialog = (AlertDialog) mFragment.onCreateDialog(Bundle.EMPTY);
+        dialog.show();
+
+        dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+
+        final Intent intent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(HearingDevicePairingFragment.class.getName());
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_NEW_HEARING_DEVICE_PAIRING_PAGE)
+    public void dialogPositiveButtonClick_intentToOldA11yPairingPage() {
+        setupDialog(SettingsEnums.ACCESSIBILITY);
+        final AlertDialog dialog = (AlertDialog) mFragment.onCreateDialog(Bundle.EMPTY);
+        dialog.show();
+
+        dialog.getButton(DialogInterface.BUTTON_POSITIVE).performClick();
+
+        final Intent intent = shadowOf(mActivity).getNextStartedActivity();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(HearingDevicePairingDetail.class.getName());
+    }
+
+    @Test
     public void dialogNegativeButtonClick_dismissDialog() {
         final AlertDialog dialog = (AlertDialog) mFragment.onCreateDialog(Bundle.EMPTY);
         dialog.show();
@@ -154,6 +190,16 @@
         verify(mFragment).dismiss();
     }
 
+    private void setupDialog(int launchPage) {
+        mFragment = spy(
+                HearingAidPairingDialogFragment.newInstance(TEST_DEVICE_ADDRESS, launchPage));
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
+        mFragmentManager = mActivity.getSupportFragmentManager();
+        when(mFragment.getActivity()).thenReturn(mActivity);
+        doReturn(mFragmentManager).when(mFragment).getParentFragmentManager();
+        mFragment.onAttach(mContext);
+    }
+
     private void setupEnvironment() {
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java
index 56ab082..9368ec8 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java
@@ -19,6 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
@@ -34,7 +35,6 @@
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.CsipSetCoordinatorProfile;
@@ -59,8 +59,11 @@
 
 /** Tests for {@link HearingAidUtils}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class,
-        ShadowBluetoothUtils.class})
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowAlertDialogCompat.class,
+        com.android.settings.testutils.shadow.ShadowBluetoothAdapter.class,
+        com.android.settings.testutils.shadow.ShadowBluetoothUtils.class,
+})
 public class HearingAidUtilsTest {
 
     @Rule
@@ -68,6 +71,7 @@
     private final Context mContext = ApplicationProvider.getApplicationContext();
 
     private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
+    private static final int TEST_LAUNCH_PAGE = 1;
 
     @Mock
     private CachedBluetoothDevice mCachedBluetoothDevice;
@@ -87,8 +91,8 @@
     @Before
     public void setUp() {
         setupEnvironment();
-        final FragmentActivity mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        final FragmentActivity mActivity = Robolectric.setupActivity(FragmentActivity.class);
+        shadowMainLooper().idle();
         mFragmentManager = mActivity.getSupportFragmentManager();
         ShadowAlertDialogCompat.reset();
         when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS);
@@ -98,8 +102,10 @@
     public void launchHearingAidPairingDialog_deviceIsNotConnectedAshaHearingAid_noDialog() {
         when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(false);
 
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice,
+                TEST_LAUNCH_PAGE);
 
+        shadowMainLooper().idle();
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
@@ -110,8 +116,10 @@
         when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
                 HearingAidInfo.DeviceMode.MODE_MONAURAL);
 
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice,
+                TEST_LAUNCH_PAGE);
 
+        shadowMainLooper().idle();
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
@@ -123,8 +131,10 @@
                 HearingAidInfo.DeviceMode.MODE_BINAURAL);
         when(mCachedBluetoothDevice.getSubDevice()).thenReturn(mSubCachedBluetoothDevice);
 
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice,
+                TEST_LAUNCH_PAGE);
 
+        shadowMainLooper().idle();
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
@@ -137,45 +147,32 @@
         when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
                 HearingAidInfo.DeviceSide.SIDE_INVALID);
 
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice,
+                TEST_LAUNCH_PAGE);
 
+        shadowMainLooper().idle();
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
 
     @Test
-    public void launchHearingAidPairingDialog_deviceSupportsCsip_csipEnabled_noDialog() {
+    public void launchHearingAidPairingDialog_deviceSupportsCsip_noDialog() {
         when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
         when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
                 HearingAidInfo.DeviceMode.MODE_BINAURAL);
         when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
                 HearingAidInfo.DeviceSide.SIDE_LEFT);
         makeDeviceSupportCsip();
-        makeDeviceEnableCsip(true);
 
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice,
+                TEST_LAUNCH_PAGE);
 
+        shadowMainLooper().idle();
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog).isNull();
     }
 
     @Test
-    public void launchHearingAidPairingDialog_deviceSupportsCsip_csipDisabled_dialogShown() {
-        when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
-        when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
-                HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
-                HearingAidInfo.DeviceSide.SIDE_LEFT);
-        makeDeviceSupportCsip();
-        makeDeviceEnableCsip(false);
-
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
-
-        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
-        assertThat(dialog.isShowing()).isTrue();
-    }
-
-    @Test
     public void launchHearingAidPairingDialog_dialogShown() {
         when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
         when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
@@ -183,8 +180,10 @@
         when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
                 HearingAidInfo.DeviceSide.SIDE_LEFT);
 
-        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+        HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice,
+                TEST_LAUNCH_PAGE);
 
+        shadowMainLooper().idle();
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog.isShowing()).isTrue();
     }
@@ -195,11 +194,6 @@
         when(mCachedBluetoothDevice.getProfiles()).thenReturn(uuids);
     }
 
-    private void makeDeviceEnableCsip(boolean enabled) {
-        when(mCsipSetCoordinatorProfile.isEnabled(mCachedBluetoothDevice.getDevice()))
-                .thenReturn(enabled);
-    }
-
     private void setupEnvironment() {
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
         mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceControllerTest.java
index 8eed294..0799d57 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingDeviceCallRoutingPreferenceControllerTest.java
@@ -28,6 +28,8 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -37,8 +39,10 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 /** Tests for {@link HearingDeviceCallRoutingPreferenceController}. */
+@Config(shadows = {ShadowBluetoothAdapter.class})
 @RunWith(RobolectricTestRunner.class)
 public class HearingDeviceCallRoutingPreferenceControllerTest {
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingDevicePairingFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingDevicePairingFragmentTest.java
new file mode 100644
index 0000000..e14686e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingDevicePairingFragmentTest.java
@@ -0,0 +1,318 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothUuid;
+import android.bluetooth.le.ScanRecord;
+import android.bluetooth.le.ScanResult;
+import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.Pair;
+
+import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.bluetooth.BluetoothDevicePreference;
+import com.android.settings.bluetooth.BluetoothProgressCategory;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.HearingAidInfo;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+/** Tests for {@link HearingDevicePairingFragment}. */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothAdapter.class})
+public class HearingDevicePairingFragmentTest {
+
+    private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
+
+    @Rule
+    public final MockitoRule mockito = MockitoJUnit.rule();
+
+    @Spy
+    private final BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+    @Spy
+    private final HearingDevicePairingFragment mFragment = new TestHearingDevicePairingFragment();
+
+    @Mock
+    private LocalBluetoothManager mLocalManager;
+    @Mock
+    private CachedBluetoothDeviceManager mCachedDeviceManager;
+    @Mock
+    private CachedBluetoothDevice mCachedDevice;
+    @Mock
+    private BluetoothProgressCategory mAvailableHearingDeviceGroup;
+
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private BluetoothDevice mDevice;
+    private BluetoothDevicePreference mDevicePreference;
+
+
+    @Before
+    public void setUp() {
+        mFragment.mLocalManager = mLocalManager;
+        mFragment.mCachedDeviceManager = mCachedDeviceManager;
+        mFragment.mBluetoothAdapter = mBluetoothAdapter;
+        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mAvailableHearingDeviceGroup).when(mFragment).findPreference(
+                "available_hearing_devices");
+        mFragment.initPreferencesFromPreferenceScreen();
+
+
+        mDevice = mBluetoothAdapter.getRemoteDevice(TEST_DEVICE_ADDRESS);
+        doReturn(mDevice).when(mCachedDevice).getDevice();
+        final Pair<Drawable, String> pair = new Pair<>(mock(Drawable.class), "test_device");
+        doReturn(pair).when(mCachedDevice).getDrawableWithDescription();
+
+        mDevicePreference = new BluetoothDevicePreference(mContext, mCachedDevice, true,
+                BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+    }
+
+    @Test
+    public void startAndStopScanning_stateIsCorrect() {
+        mFragment.startScanning();
+
+        verify(mFragment).startLeScanning();
+
+        mFragment.stopScanning();
+
+        verify(mFragment).stopLeScanning();
+    }
+
+    @Test
+    public void onDeviceDeleted_stateIsCorrect() {
+        mFragment.mDevicePreferenceMap.put(mCachedDevice, mDevicePreference);
+
+        assertThat(mFragment.mDevicePreferenceMap).isNotEmpty();
+
+        mFragment.onDeviceDeleted(mCachedDevice);
+
+        assertThat(mFragment.mDevicePreferenceMap).isEmpty();
+        verify(mAvailableHearingDeviceGroup).removePreference(mDevicePreference);
+    }
+
+    @Test
+    public void addDevice_bluetoothOff_doNothing() {
+        doReturn(BluetoothAdapter.STATE_OFF).when(mBluetoothAdapter).getState();
+
+        assertThat(mFragment.mDevicePreferenceMap.size()).isEqualTo(0);
+
+        mFragment.addDevice(mCachedDevice);
+
+        verify(mAvailableHearingDeviceGroup, never()).addPreference(mDevicePreference);
+        assertThat(mFragment.mDevicePreferenceMap.size()).isEqualTo(0);
+    }
+
+    @Test
+    public void addDevice_addToAvailableHearingDeviceGroup() {
+        doReturn(BluetoothAdapter.STATE_ON).when(mBluetoothAdapter).getState();
+
+        assertThat(mFragment.mDevicePreferenceMap.size()).isEqualTo(0);
+
+        mFragment.addDevice(mCachedDevice);
+
+        verify(mAvailableHearingDeviceGroup).addPreference(mDevicePreference);
+        assertThat(mFragment.mDevicePreferenceMap.size()).isEqualTo(1);
+    }
+
+    @Test
+    public void handleLeScanResult_markDeviceAsHearingAid() {
+        ScanResult scanResult = mock(ScanResult.class);
+        doReturn(mDevice).when(scanResult).getDevice();
+        doReturn(mCachedDevice).when(mCachedDeviceManager).findDevice(mDevice);
+
+        mFragment.handleLeScanResult(scanResult);
+
+        verify(mCachedDevice).setHearingAidInfo(new HearingAidInfo.Builder().build());
+    }
+
+    @Test
+    public void handleLeScanResult_isAndroidCompatible_addDevice() {
+        ScanResult scanResult = mock(ScanResult.class);
+        doReturn(mDevice).when(scanResult).getDevice();
+        doReturn(mCachedDevice).when(mCachedDeviceManager).findDevice(mDevice);
+        doReturn(true).when(mFragment).isAndroidCompatibleHearingAid(scanResult);
+
+        mFragment.handleLeScanResult(scanResult);
+
+        verify(mFragment).addDevice(mCachedDevice);
+    }
+
+    @Test
+    public void handleLeScanResult_isNotAndroidCompatible_() {
+        ScanResult scanResult = mock(ScanResult.class);
+        doReturn(mDevice).when(scanResult).getDevice();
+        doReturn(mCachedDevice).when(mCachedDeviceManager).findDevice(mDevice);
+        doReturn(false).when(mFragment).isAndroidCompatibleHearingAid(scanResult);
+
+        mFragment.handleLeScanResult(scanResult);
+
+        verify(mFragment).discoverServices(mCachedDevice);
+    }
+
+    @Test
+    public void onProfileConnectionStateChanged_deviceConnected_inSelectedList_finish() {
+        doReturn(true).when(mCachedDevice).isConnected();
+        mFragment.mSelectedDeviceList.add(mDevice);
+
+        mFragment.onProfileConnectionStateChanged(mCachedDevice, BluetoothAdapter.STATE_CONNECTED,
+                BluetoothProfile.A2DP);
+
+        verify(mFragment).finish();
+    }
+
+    @Test
+    public void onProfileConnectionStateChanged_deviceConnected_notInSelectedList_deleteDevice() {
+        doReturn(true).when(mCachedDevice).isConnected();
+
+        mFragment.onProfileConnectionStateChanged(mCachedDevice, BluetoothAdapter.STATE_CONNECTED,
+                BluetoothProfile.A2DP);
+
+        verify(mFragment).removeDevice(mCachedDevice);
+    }
+
+    @Test
+    public void onProfileConnectionStateChanged_deviceNotConnected_doNothing() {
+        doReturn(false).when(mCachedDevice).isConnected();
+
+        mFragment.onProfileConnectionStateChanged(mCachedDevice, BluetoothAdapter.STATE_CONNECTED,
+                BluetoothProfile.A2DP);
+
+        verify(mFragment, never()).finish();
+        verify(mFragment, never()).removeDevice(mCachedDevice);
+    }
+
+    @Test
+    public void onBluetoothStateChanged_stateOn_startScanningAndShowToast() {
+        mFragment.onBluetoothStateChanged(BluetoothAdapter.STATE_ON);
+
+        verify(mFragment).startScanning();
+        verify(mFragment).showBluetoothTurnedOnToast();
+    }
+
+    @Test
+    public void onBluetoothStateChanged_stateOff_finish() {
+        mFragment.onBluetoothStateChanged(BluetoothAdapter.STATE_OFF);
+
+        verify(mFragment).finish();
+    }
+
+    @Test
+    public void onDeviceBondStateChanged_bonded_finish() {
+        mFragment.onDeviceBondStateChanged(mCachedDevice, BluetoothDevice.BOND_BONDED);
+
+        verify(mFragment).finish();
+    }
+
+    @Test
+    public void onDeviceBondStateChanged_selectedDeviceNotBonded_startScanning() {
+        mFragment.mSelectedDevice = mDevice;
+
+        mFragment.onDeviceBondStateChanged(mCachedDevice, BluetoothDevice.BOND_NONE);
+
+        verify(mFragment).startScanning();
+    }
+
+    @Test
+    public void isAndroidCompatibleHearingAid_asha_returnTrue() {
+        ScanResult scanResult = createAshaScanResult();
+
+        boolean isCompatible = mFragment.isAndroidCompatibleHearingAid(scanResult);
+
+        assertThat(isCompatible).isTrue();
+    }
+
+    @Test
+    public void isAndroidCompatibleHearingAid_has_returnTrue() {
+        ScanResult scanResult = createHasScanResult();
+
+        boolean isCompatible = mFragment.isAndroidCompatibleHearingAid(scanResult);
+
+        assertThat(isCompatible).isTrue();
+    }
+
+    @Test
+    public void isAndroidCompatibleHearingAid_mfiHas_returnFalse() {
+        ScanResult scanResult = createMfiHasScanResult();
+
+        boolean isCompatible = mFragment.isAndroidCompatibleHearingAid(scanResult);
+
+        assertThat(isCompatible).isFalse();
+    }
+
+    private ScanResult createAshaScanResult() {
+        ScanResult scanResult = mock(ScanResult.class);
+        ScanRecord scanRecord = mock(ScanRecord.class);
+        byte[] fakeAshaServiceData = new byte[] {
+                0x09, 0x16, (byte) 0xf0, (byte) 0xfd, 0x01, 0x00, 0x01, 0x02, 0x03, 0x04};
+        doReturn(scanRecord).when(scanResult).getScanRecord();
+        doReturn(fakeAshaServiceData).when(scanRecord).getServiceData(BluetoothUuid.HEARING_AID);
+        return scanResult;
+    }
+
+    private ScanResult createHasScanResult() {
+        ScanResult scanResult = mock(ScanResult.class);
+        ScanRecord scanRecord = mock(ScanRecord.class);
+        doReturn(scanRecord).when(scanResult).getScanRecord();
+        doReturn(List.of(BluetoothUuid.HAS)).when(scanRecord).getServiceUuids();
+        return scanResult;
+    }
+
+    private ScanResult createMfiHasScanResult() {
+        ScanResult scanResult = mock(ScanResult.class);
+        ScanRecord scanRecord = mock(ScanRecord.class);
+        byte[] fakeMfiServiceData = new byte[] {0x00, 0x00, 0x00, 0x00};
+        doReturn(scanRecord).when(scanResult).getScanRecord();
+        doReturn(fakeMfiServiceData).when(scanRecord).getServiceData(BluetoothUuid.MFI_HAS);
+        return scanResult;
+    }
+
+    private class TestHearingDevicePairingFragment extends HearingDevicePairingFragment {
+        @Override
+        protected Preference getCachedPreference(String key) {
+            if (key.equals(TEST_DEVICE_ADDRESS)) {
+                return mDevicePreference;
+            }
+            return super.getCachedPreference(key);
+        }
+    }
+}
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..cf12e34
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/KeyboardVibrationTogglePreferenceControllerTest.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
+import android.app.settings.SettingsEnums;
+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 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;
+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;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        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);
+        verify(mFeatureFactory.metricsFeatureProvider).action(any(),
+                eq(SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED), eq(true));
+    }
+
+    @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);
+        verify(mFeatureFactory.metricsFeatureProvider).action(any(),
+                eq(SettingsEnums.ACTION_KEYBOARD_VIBRATION_CHANGED), eq(false));
+    }
+
+    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/LiveCaptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/LiveCaptionPreferenceControllerTest.java
index 9e0ce9c..a7a7f8f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/LiveCaptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/LiveCaptionPreferenceControllerTest.java
@@ -21,13 +21,19 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.content.Context;
 import android.content.pm.ResolveInfo;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.shadows.ShadowPackageManager;
 
@@ -36,18 +42,21 @@
 @RunWith(RobolectricTestRunner.class)
 public class LiveCaptionPreferenceControllerTest {
 
+    private Context mContext;
     private LiveCaptionPreferenceController mController;
+    private Preference mLiveCaptionPreference;
 
     @Before
     public void setUp() {
-        mController = new LiveCaptionPreferenceController(RuntimeEnvironment.application,
-                "test_key");
+        mContext = ApplicationProvider.getApplicationContext();
+        mController = new LiveCaptionPreferenceController(mContext, "test_key");
+        mLiveCaptionPreference = new Preference(mContext);
+        mLiveCaptionPreference.setSummary(R.string.live_caption_summary);
     }
 
     @Test
     public void getAvailabilityStatus_canResolveIntent_shouldReturnAvailable() {
-        final ShadowPackageManager pm = Shadows.shadowOf(
-                RuntimeEnvironment.application.getPackageManager());
+        final ShadowPackageManager pm = Shadows.shadowOf(mContext.getPackageManager());
         pm.addResolveInfoForIntent(LiveCaptionPreferenceController.LIVE_CAPTION_INTENT,
                 new ResolveInfo());
 
@@ -56,11 +65,37 @@
 
     @Test
     public void getAvailabilityStatus_noResolveIntent_shouldReturnUnavailable() {
-        final ShadowPackageManager pm = Shadows.shadowOf(
-                RuntimeEnvironment.application.getPackageManager());
+        final ShadowPackageManager pm = Shadows.shadowOf(mContext.getPackageManager());
         pm.setResolveInfosForIntent(LiveCaptionPreferenceController.LIVE_CAPTION_INTENT,
                 Collections.emptyList());
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
+
+    @Test
+    public void updateState_liveCaptionEnabled_subtextShowsOnSummary() {
+        setLiveCaptionEnabled(true);
+
+        mController.updateState(mLiveCaptionPreference);
+
+        assertThat(mLiveCaptionPreference.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.live_caption_summary)
+        );
+    }
+
+    @Test
+    public void updateState_liveCaptionDisabled_subtextShowsOffSummary() {
+        setLiveCaptionEnabled(false);
+
+        mController.updateState(mLiveCaptionPreference);
+
+        assertThat(mLiveCaptionPreference.getSummary()).isEqualTo(
+                mContext.getString(R.string.live_caption_summary)
+        );
+    }
+
+    private void setLiveCaptionEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.ODI_CAPTIONS_ENABLED,
+                enabled ? AccessibilityUtil.State.ON: AccessibilityUtil.State.OFF);
+    }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java
index f908b8a..c98ad3d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java
@@ -37,6 +37,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
 public class LockScreenRotationPreferenceControllerTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
deleted file mode 100644
index c7d70e0..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationGesturesPreferenceControllerTest.java
+++ /dev/null
@@ -1,138 +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.accessibility;
-
-import static com.android.settings.accessibility.MagnificationPreferenceFragment.OFF;
-import static com.android.settings.accessibility.MagnificationPreferenceFragment.ON;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-
-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;
-
-@RunWith(RobolectricTestRunner.class)
-public class MagnificationGesturesPreferenceControllerTest {
-
-    private Context mContext;
-    private MagnificationGesturesPreferenceController mController;
-    private Preference mPreference;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mController = new MagnificationGesturesPreferenceController(mContext, "pref_key");
-        mPreference = new Preference(mContext);
-        mController.updateState(mPreference);
-    }
-
-    @Test
-    public void isAlwaysAvailable() {
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void updateState_shouldRefreshSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.accessibility_feature_state_on));
-
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.accessibility_feature_state_off));
-    }
-
-    @Test
-    public void updateState_shouldRefreshSummarySuw() {
-        mController.setIsFromSUW(true);
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.
-                        accessibility_screen_magnification_short_summary));
-    }
-
-    @Test
-    public void isChecked_enabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, ON);
-
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void isChecked_disabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, OFF);
-
-        assertThat(mController.isChecked()).isFalse();
-    }
-
-    @Test
-    public void setChecked_enabled() {
-        mController.setChecked(true);
-
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, -1))
-                .isEqualTo(ON);
-    }
-
-    @Test
-    public void setChecked_disabled() {
-        mController.setChecked(false);
-
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, -1))
-                .isEqualTo(OFF);
-    }
-
-    @Test
-    public void isSliceableCorrectKey_returnsTrue() {
-        final MagnificationGesturesPreferenceController controller =
-                new MagnificationGesturesPreferenceController(mContext,
-                        "screen_magnification_gestures_preference_screen");
-        assertThat(controller.isSliceable()).isTrue();
-    }
-
-    @Test
-    public void isSliceableIncorrectKey_returnsFalse() {
-        final MagnificationGesturesPreferenceController controller =
-                new MagnificationGesturesPreferenceController(mContext, "bad_key");
-        assertThat(controller.isSliceable()).isFalse();
-    }
-
-    @Test
-    public void isPublicSlice_returnTrue() {
-        assertThat(mController.isPublicSlice()).isTrue();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java
index 30ba9b6..62ff39b 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java
@@ -16,9 +16,9 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
 import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
 import static com.android.settings.accessibility.MagnificationModePreferenceController.MagnificationModeInfo;
-import static com.android.settings.accessibility.MagnificationPreferenceFragment.ON;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -74,7 +74,7 @@
     @Before
     public void setUp() {
         mContext = ApplicationProvider.getApplicationContext();
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         final PreferenceManager preferenceManager = new PreferenceManager(mContext);
         mScreen = preferenceManager.createPreferenceScreen(mContext);
         mModePreference = new Preference(mContext);
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
deleted file mode 100644
index 83fe496..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationNavbarPreferenceControllerTest.java
+++ /dev/null
@@ -1,182 +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.accessibility;
-
-import static com.android.settings.accessibility.MagnificationPreferenceFragment.OFF;
-import static com.android.settings.accessibility.MagnificationPreferenceFragment.ON;
-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.Context;
-import android.content.res.Resources;
-import android.provider.Settings;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-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 org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-@RunWith(RobolectricTestRunner.class)
-public class MagnificationNavbarPreferenceControllerTest {
-
-    private Context mContext;
-    private MagnificationNavbarPreferenceController mController;
-    private Preference mPreference;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mController = new MagnificationNavbarPreferenceController(mContext, "test_key");
-        mPreference = new Preference(mContext);
-        mController.updateState(mPreference);
-    }
-
-    @After
-    public void tearDown() {
-        ShadowMagnificationPreferenceFragment.reset();
-    }
-
-    @Test
-    @Config(shadows = ShadowMagnificationPreferenceFragment.class)
-    public void isAvailable_unsupported_shouldNotBeAvailable() {
-        ShadowMagnificationPreferenceFragment.setApplicable(false);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isNotEqualTo(AVAILABLE);
-    }
-
-    @Test
-    @Config(shadows = ShadowMagnificationPreferenceFragment.class)
-    public void isAvailable_supported_shouldBeAvailable() {
-        ShadowMagnificationPreferenceFragment.setApplicable(true);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void updateState_shouldRefreshSummary() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getText(R.string.accessibility_feature_state_on));
-
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getText(R.string.accessibility_feature_state_off));
-    }
-
-    @Test
-    public void updateState_shouldRefreshSummarySuw() {
-        mController.setIsFromSUW(true);
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.
-                        accessibility_screen_magnification_navbar_short_summary));
-    }
-
-    @Test
-    public void isChecked_enabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, ON);
-
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void isChecked_disabled() {
-        Settings.Secure.putInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, OFF);
-
-        assertThat(mController.isChecked()).isFalse();
-    }
-
-    @Test
-    public void setChecked_enabled() {
-        mController.setChecked(true);
-
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, -1))
-                .isEqualTo(ON);
-    }
-
-    @Test
-    public void setChecked_disabled() {
-        mController.setChecked(false);
-
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
-                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED, -1))
-                .isEqualTo(OFF);
-    }
-
-    @Implements(MagnificationPreferenceFragment.class)
-    public static class ShadowMagnificationPreferenceFragment {
-        private static boolean sIsApplicable;
-
-        @Resetter
-        static void reset() {
-            sIsApplicable = false;
-        }
-
-        @Implementation
-        protected static boolean isApplicable(Resources res) {
-            return sIsApplicable;
-        }
-
-        static void setApplicable(boolean applicable) {
-            sIsApplicable = applicable;
-        }
-    }
-
-    @Test
-    public void isSliceableCorrectKey_returnsTrue() {
-        final MagnificationNavbarPreferenceController controller =
-                new MagnificationNavbarPreferenceController(mContext,
-                        "screen_magnification_navbar_preference_screen");
-        assertThat(controller.isSliceable()).isTrue();
-    }
-
-    @Test
-    public void isSliceableIncorrectKey_returnsFalse() {
-        final MagnificationNavbarPreferenceController controller =
-                new MagnificationNavbarPreferenceController(mContext, "bad_key");
-        assertThat(controller.isSliceable()).isFalse();
-    }
-
-    @Test
-    public void isPublicSlice_returnTrue() {
-        assertThat(mController.isPublicSlice()).isTrue();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java
deleted file mode 100644
index a1a146d..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java
+++ /dev/null
@@ -1,127 +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.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.Bundle;
-
-import androidx.fragment.app.FragmentManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.DialogCreatable;
-import com.android.settings.R;
-import com.android.settings.testutils.XmlTestUtils;
-import com.android.settings.testutils.shadow.ShadowDashboardFragment;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import java.util.List;
-
-/** Tests for {@link MagnificationSettingsFragment} */
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowDashboardFragment.class)
-public class MagnificationSettingsFragmentTest {
-
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    private MagnificationSettingsFragment mFragment;
-    private PreferenceScreen mScreen;
-
-    @Before
-    public void setup() {
-        mContext.setTheme(R.style.Theme_AppCompat);
-        mFragment = spy(new MagnificationSettingsFragment());
-        mScreen = new PreferenceScreen(mContext, null);
-
-        doReturn(mContext).when(mFragment).getContext();
-        doReturn(mScreen).when(mFragment).getPreferenceScreen();
-        doReturn(mock(FragmentManager.class, Answers.RETURNS_DEEP_STUBS)).when(
-                mFragment).getChildFragmentManager();
-    }
-
-    @Test
-    public void showPreferenceOnTheScreen_setDialogHelper() {
-        showPreferenceOnTheScreen(null);
-
-        verify(mFragment).setDialogDelegate(any(MagnificationModePreferenceController.class));
-    }
-
-    @Test
-    public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
-        final DialogCreatable dialogDelegate = mock(DialogCreatable.class, RETURNS_DEEP_STUBS);
-        when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(1);
-
-        mFragment.setDialogDelegate(dialogDelegate);
-
-        mFragment.onCreateDialog(1);
-        mFragment.getDialogMetricsCategory(1);
-
-        verify(dialogDelegate).onCreateDialog(1);
-        verify(dialogDelegate).getDialogMetricsCategory(1);
-    }
-
-    @Test
-    public void getMetricsCategory_returnsCorrectCategory() {
-        assertThat(mFragment.getMetricsCategory()).isEqualTo(
-                SettingsEnums.ACCESSIBILITY_MAGNIFICATION_SETTINGS);
-    }
-
-    @Test
-    public void getPreferenceScreenResId_returnsCorrectXml() {
-        assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(
-                R.xml.accessibility_magnification_service_settings);
-    }
-
-    @Test
-    public void getLogTag_returnsCorrectTag() {
-        assertThat(mFragment.getLogTag()).isEqualTo("MagnificationSettingsFragment");
-    }
-
-    @Test
-    public void getNonIndexableKeys_existInXmlLayout() {
-        final List<String> niks =
-                ShortcutsSettingsFragment.SEARCH_INDEX_DATA_PROVIDER
-                        .getNonIndexableKeys(mContext);
-        final List<String> keys =
-                XmlTestUtils.getKeysFromPreferenceXml(mContext,
-                        R.xml.accessibility_magnification_service_settings);
-        assertThat(keys).containsAtLeastElementsIn(niks);
-    }
-
-    private void showPreferenceOnTheScreen(Bundle savedInstanceState) {
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(savedInstanceState);
-        mFragment.onResume();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
index 0638af9..a9bd2d0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -147,7 +146,6 @@
 
 
     @Test
-    @Ignore
     public void setProgress_updatesIntensitySetting() throws Exception {
         mController.setSliderPosition(Vibrator.VIBRATION_INTENSITY_OFF);
         assertThat(readSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY))
diff --git a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationTogglePreferenceControllerTest.java
index 4b6f686..28244e5 100644
--- a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationTogglePreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -138,7 +137,6 @@
     }
 
     @Test
-    @Ignore
     public void setChecked_updatesIntensityAndDependentSettings() throws Exception {
         updateSetting(Settings.System.NOTIFICATION_VIBRATION_INTENSITY,
                 Vibrator.VIBRATION_INTENSITY_OFF);
diff --git a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
index 1cea056..14306e0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
@@ -26,34 +26,42 @@
 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.settings.widget.SeekBarPreference;
+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;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
 
@@ -61,12 +69,19 @@
  * Tests for {@link PreviewSizeSeekBarController}.
  */
 @RunWith(RobolectricTestRunner.class)
+@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;
@@ -90,8 +105,10 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        ShadowInteractionJankMonitor.reset();
 
-        mContext.setTheme(R.style.Theme_AppCompat);
+        rule.getScenario().onActivity(activity -> mContext = activity);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mFragment = spy(new TestFragment());
         when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
         when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
@@ -196,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/RingVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java
index 2ff5d71..67f643a 100644
--- a/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/RingVibrationIntensityPreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -167,7 +166,6 @@
     }
 
     @Test
-    @Ignore
     public void setProgress_updatesIntensityAndDependentSettings() throws Exception {
         mController.setSliderPosition(Vibrator.VIBRATION_INTENSITY_OFF);
         assertThat(readSetting(Settings.System.RING_VIBRATION_INTENSITY))
diff --git a/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java
index 865c290..06a6a9c 100644
--- a/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/RingVibrationTogglePreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -161,7 +160,6 @@
     }
 
     @Test
-    @Ignore
     public void setChecked_updatesIntensityAndDependentSettings() throws Exception {
         updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF);
         mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
index 19089c9..f3fa69d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
@@ -39,26 +39,29 @@
 import android.graphics.Color;
 
 import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
 
 import com.android.settings.R;
+import com.android.settings.testutils.FakeTimer;
 
+import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowContextWrapper;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowLooper;
+import org.robolectric.util.ReflectionHelpers;
 
-import java.util.ArrayList;
 import java.util.List;
+import java.util.Timer;
+import java.util.function.Consumer;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 public class ScreenFlashNotificationColorDialogFragmentTest {
 
-    private ShadowContextWrapper mShadowContextWrapper;
+    private FragmentScenario<TestScreenFlashNotificationColorDialogFragment> mFragmentScenario;
     private ScreenFlashNotificationColorDialogFragment mDialogFragment;
     private AlertDialog mAlertDialog;
     private ColorSelectorLayout mColorSelectorLayout;
@@ -66,19 +69,18 @@
 
     @Before
     public void setUp() {
-        FragmentActivity fragmentActivity = Robolectric.setupActivity(FragmentActivity.class);
-        mShadowContextWrapper = shadowOf(fragmentActivity);
-
         mCurrentColor = ROSE.mColorInt;
-        mDialogFragment = ScreenFlashNotificationColorDialogFragment.getInstance(
-                mCurrentColor, selectedColor -> mCurrentColor = selectedColor
-        );
-        mDialogFragment.show(fragmentActivity.getSupportFragmentManager(), "test");
+        mFragmentScenario = FragmentScenario.launch(
+                TestScreenFlashNotificationColorDialogFragment.class,
+                /* fragmentArgs= */ null,
+                R.style.Theme_AlertDialog_SettingsLib,
+                Lifecycle.State.INITIALIZED);
+        setupFragment();
+    }
 
-        mAlertDialog = (AlertDialog) mDialogFragment.getDialog();
-        if (mAlertDialog != null) {
-            mColorSelectorLayout = mAlertDialog.findViewById(R.id.color_selector_preference);
-        }
+    @After
+    public void cleanUp() {
+        mFragmentScenario.close();
     }
 
     @Test
@@ -93,16 +95,19 @@
     }
 
     @Test
-    public void clickNeutral_assertStartPreview() throws InterruptedException {
+    public void clickNeutral_assertStartPreview() {
         performClickOnDialog(BUTTON_NEUTRAL);
-        Thread.sleep(100);
+        getTimerFromFragment().runOneTask();
 
-        Intent captured = getLastCapturedIntent();
-        assertThat(captured.getAction()).isEqualTo(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
-        assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_SHORT_PREVIEW))
-                .isEqualTo(TYPE_LONG_PREVIEW);
-        assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_COLOR, Color.TRANSPARENT))
-                .isEqualTo(ROSE.mColorInt);
+        assertStartPreview(ROSE.mColorInt);
+    }
+
+    @Test
+    public void clickNeutral_flushAllScheduledTasks_assertStopPreview() {
+        performClickOnDialog(BUTTON_NEUTRAL);
+        getTimerFromFragment().runAllTasks();
+
+        assertStopPreview();
     }
 
     @Test
@@ -118,51 +123,48 @@
     }
 
     @Test
-    public void clickNeutralAndPause_assertStopPreview() throws InterruptedException {
+    public void clickNeutralAndPause_assertStopPreview() {
         performClickOnDialog(BUTTON_NEUTRAL);
-        Thread.sleep(100);
-        mDialogFragment.onPause();
-        Thread.sleep(100);
+        getTimerFromFragment().runOneTask();
+        // move the state from RESUMED to CREATED to make fragment's onPause() to be called
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
 
-        assertThat(getLastCapturedIntent().getAction())
-                .isEqualTo(ACTION_FLASH_NOTIFICATION_STOP_PREVIEW);
+        assertStopPreview();
     }
 
     @Test
-    public void clickNeutralAndClickNegative_assertStopPreview() throws InterruptedException {
+    public void clickNeutralAndClickNegative_assertStopPreview() {
         performClickOnDialog(BUTTON_NEUTRAL);
-        Thread.sleep(100);
+        getTimerFromFragment().runOneTask();
         performClickOnDialog(BUTTON_NEGATIVE);
-        Thread.sleep(100);
 
-        assertThat(getLastCapturedIntent().getAction())
-                .isEqualTo(ACTION_FLASH_NOTIFICATION_STOP_PREVIEW);
+        assertStopPreview();
     }
 
     @Test
-    public void clickNeutralAndClickPositive_assertStopPreview() throws InterruptedException {
+    public void clickNeutralAndClickPositive_assertStopPreview() {
         performClickOnDialog(BUTTON_NEUTRAL);
-        Thread.sleep(100);
+        getTimerFromFragment().runOneTask();
         performClickOnDialog(BUTTON_POSITIVE);
-        Thread.sleep(100);
 
-        assertThat(getLastCapturedIntent().getAction())
-                .isEqualTo(ACTION_FLASH_NOTIFICATION_STOP_PREVIEW);
+        assertStopPreview();
     }
 
     @Test
-    public void clickNeutralAndClickColor_assertStartPreview() throws InterruptedException {
+    public void clickNeutralAndClickColor_assertStartPreview() {
         performClickOnDialog(BUTTON_NEUTRAL);
-        Thread.sleep(100);
+        getTimerFromFragment().runOneTask();
         checkColorButton(CYAN);
-        Thread.sleep(500);
+        // When changing the color while the preview is running, the fragment will schedule three
+        // tasks: stop the current preview, start the new preview, stop the new preview
+        int numOfPendingTasks = getTimerFromFragment().numOfPendingTasks();
+        // Run all the pending tasks except the last one
+        while (numOfPendingTasks > 1) {
+            getTimerFromFragment().runOneTask();
+            numOfPendingTasks--;
+        }
 
-        Intent captured = getLastCapturedIntent();
-        assertThat(captured.getAction()).isEqualTo(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
-        assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_SHORT_PREVIEW))
-                .isEqualTo(TYPE_LONG_PREVIEW);
-        assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_COLOR, Color.TRANSPARENT))
-                .isEqualTo(CYAN.mColorInt);
+        assertStartPreview(CYAN.mColorInt);
     }
 
     @Test
@@ -170,6 +172,7 @@
         checkColorButton(AZURE);
         performClickOnDialog(BUTTON_NEGATIVE);
 
+        assertThat(getTimerFromFragment()).isNull();
         assertThat(mCurrentColor).isEqualTo(ROSE.mColorInt);
     }
 
@@ -187,12 +190,63 @@
 
     private void performClickOnDialog(int whichButton) {
         mAlertDialog.getButton(whichButton).performClick();
+        ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
     }
 
     private Intent getLastCapturedIntent() {
-        final List<Intent> capturedIntents = new ArrayList<>(
-                mShadowContextWrapper.getBroadcastIntents());
+        final List<Intent> capturedIntents =
+                shadowOf(RuntimeEnvironment.getApplication()).getBroadcastIntents();
         final int size = capturedIntents.size();
         return capturedIntents.get(size - 1);
     }
+
+    private void setupFragment() {
+        mFragmentScenario.onFragment(fragment -> {
+            ReflectionHelpers.setField(fragment, "mCurrentColor", mCurrentColor);
+            ReflectionHelpers.setField(fragment, "mConsumer",
+                    (Consumer<Integer>) selectedColor -> mCurrentColor = selectedColor);
+        });
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+
+        mFragmentScenario.onFragment(fragment -> {
+            assertThat(fragment.getDialog()).isNotNull();
+            assertThat(fragment.requireDialog().isShowing()).isTrue();
+            assertThat(fragment.requireDialog()).isInstanceOf(AlertDialog.class);
+            mAlertDialog = (AlertDialog) fragment.requireDialog();
+            mDialogFragment = fragment;
+            mColorSelectorLayout = mAlertDialog.findViewById(R.id.color_selector_preference);
+        });
+    }
+
+    private FakeTimer getTimerFromFragment() {
+        return (FakeTimer) ReflectionHelpers.getField(mDialogFragment, "mTimer");
+    }
+
+    private void assertStartPreview(int color) {
+        Intent captured = getLastCapturedIntent();
+        assertThat(captured.getAction()).isEqualTo(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
+        assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_SHORT_PREVIEW))
+                .isEqualTo(TYPE_LONG_PREVIEW);
+        assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_COLOR, Color.TRANSPARENT))
+                .isEqualTo(color);
+    }
+
+    private void assertStopPreview() {
+        assertThat(getTimerFromFragment().numOfPendingTasks()).isEqualTo(0);
+        assertThat(getLastCapturedIntent().getAction())
+                .isEqualTo(ACTION_FLASH_NOTIFICATION_STOP_PREVIEW);
+    }
+
+    /**
+     * A {@link ScreenFlashNotificationColorDialogFragment} that uses a fake timer so that it won't
+     * create unmanageable timer threads during test.
+     */
+    public static class TestScreenFlashNotificationColorDialogFragment extends
+            ScreenFlashNotificationColorDialogFragment {
+
+        @Override
+        Timer createTimer() {
+            return new FakeTimer();
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
index 8b26245..95a9438 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
@@ -40,7 +40,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.After;
 import org.junit.Before;
@@ -65,6 +64,7 @@
         ScreenFlashNotificationPreferenceControllerTest
                 .ShadowScreenFlashNotificationColorDialogFragment.class,
         ShadowFlashNotificationsUtils.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
 })
 public class ScreenFlashNotificationPreferenceControllerTest {
     private static final String PREFERENCE_KEY = "preference_key";
@@ -90,10 +90,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        FragmentActivity fragmentActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
-
-
+        FragmentActivity fragmentActivity = Robolectric.setupActivity(FragmentActivity.class);
         Context context = fragmentActivity.getApplicationContext();
         ShadowScreenFlashNotificationColorDialogFragment.setInstance(mDialogFragment);
         ShadowFlashNotificationsUtils.setColorDescriptionText(COLOR_DESCRIPTION_TEXT);
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java
index 4ee2a2d..41502b3 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentForSetupWizardTest.java
@@ -16,11 +16,13 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.settings.accessibility.TextReadingPreferenceFragment.PREVIEW_KEY;
 import static com.android.settings.accessibility.TextReadingPreferenceFragment.RESET_KEY;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -65,6 +67,9 @@
     @Mock
     private FragmentActivity mActivity;
 
+    @Mock
+    private TextReadingPreviewPreference mPreviewPreference;
+
     @Spy
     private final Context mContext = ApplicationProvider.getApplicationContext();
     private TextReadingPreferenceFragmentForSetupWizard mFragment;
@@ -77,6 +82,7 @@
         doReturn(mContext).when(mFragment).getContext();
         doReturn(mock(LifecycleOwner.class)).when(mFragment).getViewLifecycleOwner();
         doReturn(resetPreference).when(mFragment).findPreference(RESET_KEY);
+        doReturn(mPreviewPreference).when(mFragment).findPreference(PREVIEW_KEY);
         doReturn(mFooterBarMixin).when(mGlifLayoutView).getMixin(FooterBarMixin.class);
     }
 
@@ -109,4 +115,12 @@
         verify(mFooterBarMixin).setPrimaryButton(any());
         verify(mFooterBarMixin).setSecondaryButton(any());
     }
+
+    @Test
+    public void adjustPreviewPaddingsForSetupWizard_setPreviewLayoutPaddings() {
+        mFragment.adjustPreviewPaddingsForSetupWizard();
+
+        verify(mPreviewPreference).setLayoutMinHorizontalPadding(anyInt());
+        verify(mPreviewPreference).setBackgroundMinHorizontalPadding(anyInt());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java
index 76f89bb..8212ba2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java
@@ -40,10 +40,8 @@
 import com.android.settings.accessibility.AccessibilityDialogUtils.DialogEnums;
 import com.android.settings.accessibility.TextReadingResetController.ResetStateListener;
 import com.android.settings.testutils.XmlTestUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -53,6 +51,8 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowToast;
 
 import java.util.ArrayList;
@@ -61,6 +61,10 @@
 
 /** Tests for {@link TextReadingPreferenceFragment}. */
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class TextReadingPreferenceFragmentTest {
 
     @Rule
@@ -72,15 +76,13 @@
 
     @Before
     public void setUp() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
 
         mFragment = spy(new TextReadingPreferenceFragment());
         when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
         when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
         when(mFragment.getContext()).thenReturn(mContext);
-        when(mFragment.getActivity()).thenReturn((FragmentActivity)
-                ActivityControllerWrapper.setup(Robolectric.buildActivity(
-                        FragmentActivity.class)).get());
+        when(mFragment.getActivity()).thenReturn(Robolectric.setupActivity(FragmentActivity.class));
 
         // Avoid a NPE is happened in ShadowWindowManagerGlobal
         doReturn(mock(DisplaySizeData.class)).when(mFragment).createDisplaySizeData(mContext);
@@ -141,7 +143,6 @@
                 R.xml.accessibility_text_reading_options);
     }
 
-    @Ignore
     @Test
     public void getLogTag_returnsCorrectTag() {
         assertThat(mFragment.getLogTag()).isEqualTo("TextReadingPreferenceFragment");
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreviewPreferenceTest.java
index 1688142..4ca1dca 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;
@@ -30,6 +28,7 @@
 import android.content.res.Configuration;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.FrameLayout;
 import android.widget.LinearLayout;
 
 import androidx.preference.PreferenceViewHolder;
@@ -39,6 +38,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 +54,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 +84,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 +97,7 @@
 
     @Test
     public void setCurrentItem_success() {
-        final int currentItem = 1;
+        final int currentItem = mPreviewSampleCount - 1;
         mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter);
         mTextReadingPreviewPreference.onBindViewHolder(mHolder);
 
@@ -106,21 +109,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 +138,7 @@
 
     @Test
     public void afterPagerChange_updateCurrentItem() {
-        final int currentItem = 2;
+        final int currentItem = mPreviewSampleCount - 1;
         mTextReadingPreviewPreference.setPreviewAdapter(mPreviewPagerAdapter);
         mTextReadingPreviewPreference.onBindViewHolder(mHolder);
 
@@ -140,6 +147,44 @@
         assertThat(mTextReadingPreviewPreference.getCurrentItem()).isEqualTo(currentItem);
     }
 
+    @Test
+    public void adjustPaddings_setMinPaddingsLessThanXMLValue_paddingsNotIncreased() {
+        // get the default xml padding value
+        mTextReadingPreviewPreference.onBindViewHolder(mHolder);
+        final FrameLayout previewLayout = (FrameLayout) mHolder.itemView;
+        final LinearLayout backgroundView = previewLayout.findViewById(R.id.preview_background);
+
+        final int currentLayoutPaddingStart = previewLayout.getPaddingStart();
+        final int currentBackgroundPaddingStart = backgroundView.getPaddingStart();
+        mTextReadingPreviewPreference.setLayoutMinHorizontalPadding(
+                currentLayoutPaddingStart - 10);
+        mTextReadingPreviewPreference.setBackgroundMinHorizontalPadding(
+                currentBackgroundPaddingStart - 10);
+        mTextReadingPreviewPreference.adjustPaddings(previewLayout, backgroundView);
+
+        assertThat(previewLayout.getPaddingStart()).isEqualTo(currentLayoutPaddingStart);
+        assertThat(backgroundView.getPaddingStart()).isEqualTo(currentBackgroundPaddingStart);
+    }
+
+    @Test
+    public void adjustPaddings_setMinPaddingsLargerThanXMLValue_paddingsIncreased() {
+        // get the default xml padding value
+        mTextReadingPreviewPreference.onBindViewHolder(mHolder);
+        final FrameLayout previewLayout = (FrameLayout) mHolder.itemView;
+        final LinearLayout backgroundView = previewLayout.findViewById(R.id.preview_background);
+
+        final int currentLayoutPaddingStart = previewLayout.getPaddingStart();
+        final int currentBackgroundPaddingStart = backgroundView.getPaddingStart();
+        mTextReadingPreviewPreference.setLayoutMinHorizontalPadding(
+                currentLayoutPaddingStart + 10);
+        mTextReadingPreviewPreference.setBackgroundMinHorizontalPadding(
+                currentBackgroundPaddingStart + 10);
+        mTextReadingPreviewPreference.adjustPaddings(previewLayout, backgroundView);
+
+        assertThat(previewLayout.getPaddingStart()).isEqualTo(currentLayoutPaddingStart + 10);
+        assertThat(backgroundView.getPaddingStart()).isEqualTo(currentBackgroundPaddingStart + 10);
+    }
+
     private static Configuration[] createConfigurations(int count) {
         final Configuration[] configurations = new Configuration[count];
         for (int i = 0; i < count; i++) {
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
index 94df37e..3174101 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragmentTest.java
@@ -18,12 +18,14 @@
 
 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 android.accessibilityservice.AccessibilityServiceInfo;
-import android.annotation.NonNull;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -31,20 +33,32 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
+import android.os.Bundle;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.service.quicksettings.TileService;
 import android.view.accessibility.AccessibilityManager;
+import android.view.accessibility.Flags;
 
+import androidx.annotation.NonNull;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
+import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment;
+import com.android.settings.widget.SettingsMainSwitchPreference;
 
 import org.junit.Before;
+import org.junit.Rule;
 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.robolectric.RobolectricTestRunner;
@@ -59,6 +73,9 @@
 @RunWith(RobolectricTestRunner.class)
 public class ToggleAccessibilityServicePreferenceFragmentTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
     private static final String PLACEHOLDER_PACKAGE_NAME2 = "com.placeholder.example2";
     private static final String PLACEHOLDER_SERVICE_CLASS_NAME = "a11yservice1";
@@ -73,20 +90,25 @@
             PLACEHOLDER_PACKAGE_NAME + "tile.placeholder";
     private static final String PLACEHOLDER_TILE_NAME2 =
             PLACEHOLDER_PACKAGE_NAME + "tile.placeholder2";
+    private static final int NO_DIALOG = -1;
 
     private TestToggleAccessibilityServicePreferenceFragment mFragment;
     private PreferenceScreen mScreen;
-    private Context mContext = ApplicationProvider.getApplicationContext();
+    private Context mContext;
 
     private ShadowAccessibilityManager mShadowAccessibilityManager;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private PreferenceManager mPreferenceManager;
+    @Mock
+    private AccessibilityManager mMockAccessibilityManager;
 
     @Before
     public void setUpTestFragment() {
         MockitoAnnotations.initMocks(this);
 
+        mContext = spy(ApplicationProvider.getApplicationContext());
         mFragment = spy(new TestToggleAccessibilityServicePreferenceFragment());
+        mFragment.setArguments(new Bundle());
         when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
         when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
         when(mFragment.getContext()).thenReturn(mContext);
@@ -213,6 +235,105 @@
         assertThat(mFragment.serviceSupportsAccessibilityButton()).isFalse();
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+    public void enableService_warningRequired_showWarning() throws Throwable {
+        setupServiceWarningRequired(true);
+        mFragment.mToggleServiceSwitchPreference =
+                new SettingsMainSwitchPreference(mContext, /* attrs= */null);
+
+        mFragment.onCheckedChanged(null, true);
+
+        assertThat(mFragment.mLastShownDialogId).isEqualTo(
+                AccessibilityDialogUtils.DialogEnums.ENABLE_WARNING_FROM_TOGGLE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+    public void enableService_warningNotRequired_dontShowWarning() throws Throwable {
+        final AccessibilityServiceInfo info = setupServiceWarningRequired(false);
+        mFragment.mToggleServiceSwitchPreference =
+                new SettingsMainSwitchPreference(mContext, /* attrs= */null);
+        mFragment.mPreferenceKey = info.getComponentName().flattenToString();
+
+        mFragment.onCheckedChanged(null, true);
+
+        assertThat(mFragment.mLastShownDialogId).isEqualTo(
+                AccessibilityDialogUtils.DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+    public void toggleShortcutPreference_warningRequired_showWarning() throws Throwable {
+        setupServiceWarningRequired(true);
+        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
+
+        mFragment.mShortcutPreference.setChecked(true);
+        mFragment.onToggleClicked(mFragment.mShortcutPreference);
+
+        assertThat(mFragment.mLastShownDialogId).isEqualTo(
+                AccessibilityDialogUtils.DialogEnums.ENABLE_WARNING_FROM_SHORTCUT_TOGGLE);
+        assertThat(mFragment.mShortcutPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+    public void toggleShortcutPreference_warningNotRequired_dontShowWarning() throws Throwable {
+        setupServiceWarningRequired(false);
+        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
+
+        mFragment.mShortcutPreference.setChecked(true);
+        mFragment.onToggleClicked(mFragment.mShortcutPreference);
+
+        assertThat(mFragment.mLastShownDialogId).isEqualTo(
+                AccessibilityDialogUtils.DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL);
+        assertThat(mFragment.mShortcutPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+    public void clickShortcutSettingsPreference_warningRequired_showWarning() throws Throwable {
+        setupServiceWarningRequired(true);
+        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
+
+        mFragment.onSettingsClicked(mFragment.mShortcutPreference);
+
+        assertThat(mFragment.mLastShownDialogId).isEqualTo(
+                AccessibilityDialogUtils.DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG)
+    @RequiresFlagsDisabled(
+            com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN)
+    public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_showDialog()
+            throws Throwable {
+        setupServiceWarningRequired(false);
+        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
+
+        mFragment.onSettingsClicked(mFragment.mShortcutPreference);
+
+        assertThat(mFragment.mLastShownDialogId).isEqualTo(
+                AccessibilityDialogUtils.DialogEnums.EDIT_SHORTCUT);
+    }
+
+    @Test
+    @RequiresFlagsEnabled({Flags.FLAG_CLEANUP_ACCESSIBILITY_WARNING_DIALOG,
+            com.android.settings.accessibility.Flags.FLAG_EDIT_SHORTCUTS_IN_FULL_SCREEN})
+    public void clickShortcutSettingsPreference_warningNotRequired_dontShowWarning_launchActivity()
+            throws Throwable {
+        setupServiceWarningRequired(false);
+        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */null);
+        doNothing().when(mContext).startActivity(any());
+
+        mFragment.onSettingsClicked(mFragment.mShortcutPreference);
+
+        ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        verify(mContext).startActivity(captor.capture());
+        assertThat(captor.getValue().getExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(EditShortcutsPreferenceFragment.class.getName());
+    }
+
     private void setupTileService(String packageName, String name, String tileName) {
         final Intent tileProbe = new Intent(TileService.ACTION_QS_TILE);
         final ResolveInfo info = new ResolveInfo();
@@ -222,6 +343,21 @@
         shadowPackageManager.addResolveInfoForIntent(tileProbe, info);
     }
 
+    private AccessibilityServiceInfo setupServiceWarningRequired(boolean required)
+            throws Throwable {
+        final AccessibilityServiceInfo info = getFakeAccessibilityServiceInfo(
+                PLACEHOLDER_PACKAGE_NAME,
+                PLACEHOLDER_SERVICE_CLASS_NAME);
+        info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
+        mFragment.mComponentName = info.getComponentName();
+        when(mContext.getSystemService(AccessibilityManager.class))
+                .thenReturn(mMockAccessibilityManager);
+        when(mMockAccessibilityManager.isAccessibilityServiceWarningRequired(any()))
+                .thenReturn(required);
+        when(mFragment.getAccessibilityServiceInfo()).thenReturn(info);
+        return info;
+    }
+
     private static class FakeServiceInfo extends ServiceInfo {
         private String mTileName;
 
@@ -255,10 +391,16 @@
 
     private static class TestToggleAccessibilityServicePreferenceFragment
             extends ToggleAccessibilityServicePreferenceFragment {
+        int mLastShownDialogId = NO_DIALOG;
 
         @Override
         protected ComponentName getTileComponentName() {
             return PLACEHOLDER_TILE_COMPONENT_NAME;
         }
+
+        @Override
+        protected void showDialog(int dialogId) {
+            mLastShownDialogId = dialogId;
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 9e7ae5d..70c7cd6 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,11 +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.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -63,14 +72,21 @@
 import org.mockito.Spy;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.androidx.fragment.FragmentController;
 
 /** Tests for {@link ToggleFeaturePreferenceFragment} */
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        ShadowFragment.class,
+})
 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(
@@ -102,6 +118,8 @@
     private FragmentActivity mActivity;
     @Mock
     private ContentResolver mContentResolver;
+    @Mock
+    private PackageManager mPackageManager;
 
     @Before
     public void setUpTestFragment() {
@@ -113,18 +131,15 @@
         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();
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
     }
 
-    @Ignore
     @Test
-    public void setupFragment_getExpectedPreferenceScreenResId() {
-        FragmentController.setupFragment(mFragment, FragmentActivity.class,
-                /* containerViewId= */ 0, Bundle.EMPTY);
-
+    public void getPreferenceScreenResId_returnsExpectedPreferenceScreenResId() {
         assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(R.xml.placeholder_prefs);
     }
 
@@ -154,7 +169,7 @@
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.mComponentName.flattenToString());
         // Compare to default UserShortcutType
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
     }
@@ -170,7 +185,7 @@
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.mComponentName.flattenToString());
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
     }
 
@@ -184,7 +199,7 @@
         mFragment.updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.mComponentName.flattenToString());
         assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE);
     }
 
@@ -266,7 +281,7 @@
         mFragment.saveNonEmptyUserShortcutType(value);
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                mFragment.mComponentName.flattenToString(), UserShortcutType.SOFTWARE);
+                mFragment.mComponentName.flattenToString());
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
     }
 
@@ -289,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(
@@ -319,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/ToggleForceInvertPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleForceInvertPreferenceControllerTest.java
new file mode 100644
index 0000000..d8197ef
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleForceInvertPreferenceControllerTest.java
@@ -0,0 +1,107 @@
+/*
+ * 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.accessibility;
+
+import static android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR;
+
+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 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 android.provider.Settings;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link ToggleForceInvertPreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class ToggleForceInvertPreferenceControllerTest {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private ToggleForceInvertPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mController = new ToggleForceInvertPreferenceController(
+                mContext,
+                ColorAndMotionFragment.TOGGLE_FORCE_INVERT
+        );
+    }
+
+    @Test
+    @RequiresFlagsDisabled(FLAG_FORCE_INVERT_COLOR)
+    public void flagOff_getAvailabilityStatus_shouldReturnUnsupported() {
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(FLAG_FORCE_INVERT_COLOR)
+    public void flagOn_getAvailabilityStatus_shouldReturnAvailable() {
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void settingOff_reflectsCorrectValue() {
+        setEnabled(false);
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void settingOn_reflectsCorrectValue() {
+        setEnabled(true);
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void onCheck_settingChanges() {
+        setEnabled(false);
+
+        mController.setChecked(true);
+        assertThat(isEnabled()).isTrue();
+
+        mController.setChecked(false);
+        assertThat(isEnabled()).isFalse();
+    }
+
+    private boolean isEnabled() {
+        return Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED, /* def=*/ -1) == ON;
+    }
+
+    private void setEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED, enabled ? ON : OFF);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
index aa622f5..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;
@@ -56,7 +56,10 @@
 
 /** Tests for {@link ToggleScreenMagnificationPreferenceFragmentForSetupWizard}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowSettingsPreferenceFragment.class})
+@Config(shadows = {
+        ShadowSettingsPreferenceFragment.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
@@ -121,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 9916dc9..4c49395 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -24,58 +24,70 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.content.ComponentName;
-import android.content.ContentResolver;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
+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 android.text.TextUtils;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
 
-import androidx.annotation.XmlRes;
 import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-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;
 import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType;
-import com.android.settings.testutils.shadow.ShadowFragment;
-import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
-import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settings.testutils.shadow.ShadowStorageManager;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+
+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.mockito.Mock;
-import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowContentResolver;
+import org.robolectric.shadows.ShadowPackageManager;
+import org.robolectric.shadows.ShadowSettings;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.Collection;
+import java.util.List;
 
 /** Tests for {@link ToggleScreenMagnificationPreferenceFragment}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowSettingsPreferenceFragment.class})
+@Config(shadows = {
+        ShadowUserManager.class,
+        ShadowStorageManager.class,
+        ShadowSettings.ShadowSecure.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";
@@ -89,98 +101,94 @@
             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 TestToggleScreenMagnificationPreferenceFragment mFragment;
+    private FragmentController<ToggleScreenMagnificationPreferenceFragment> mFragController;
     private Context mContext;
-    private Resources mResources;
-
-    @Mock
-    private FragmentActivity mActivity;
-    @Mock
-    private ContentResolver mContentResolver;
-    @Mock
-    private PackageManager mPackageManager;
+    private Resources mSpyResources;
+    private ShadowPackageManager mShadowPackageManager;
 
     @Before
     public void setUpTestFragment() {
-        MockitoAnnotations.initMocks(this);
 
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        mFragment = spy(new TestToggleScreenMagnificationPreferenceFragment(mContext));
-        mResources = spy(mContext.getResources());
-        when(mContext.getResources()).thenReturn(mResources);
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-        when(mFragment.getContext().getResources()).thenReturn(mResources);
-        when(mFragment.getActivity()).thenReturn(mActivity);
-        when(mActivity.getContentResolver()).thenReturn(mContentResolver);
+        mContext = ApplicationProvider.getApplicationContext();
+
+        // Set up the fragment that support window magnification feature
+        mSpyResources = spy(mContext.getResources());
+        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
+        Context spyContext = spy(mContext);
+        when(spyContext.getResources()).thenReturn(mSpyResources);
+
+        setWindowMagnificationSupported(
+                /* magnificationAreaSupported= */ true,
+                /* windowMagnificationSupported= */ true);
+
+        TestToggleScreenMagnificationPreferenceFragment fragment =
+                new TestToggleScreenMagnificationPreferenceFragment();
+        fragment.setArguments(new Bundle());
+        fragment.setContext(spyContext);
+
+        mFragController = FragmentController.of(fragment, SettingsActivity.class);
     }
 
-    @Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onResume_defaultStateForFollowingTyping_switchPreferenceShouldReturnTrue() {
-        mFragment.onCreate(new Bundle());
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
-        mFragment.onAttach(mContext);
-        final SwitchPreference switchPreference =
-                mFragment.findPreference(MagnificationFollowTypingPreferenceController.PREF_KEY);
+        setKeyFollowTypingEnabled(true);
 
-        mFragment.onResume();
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
+        final TwoStatePreference switchPreference =
+                mFragController.get().findPreference(
+                        MagnificationFollowTypingPreferenceController.PREF_KEY);
         assertThat(switchPreference).isNotNull();
         assertThat(switchPreference.isChecked()).isTrue();
     }
 
-    @Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onResume_disableFollowingTyping_switchPreferenceShouldReturnFalse() {
-        Settings.Secure.putInt(mContext.getContentResolver(), KEY_FOLLOW_TYPING, OFF);
-        mFragment.onCreate(new Bundle());
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
-        mFragment.onAttach(mContext);
-        SwitchPreference switchPreference =
-                mFragment.findPreference(MagnificationFollowTypingPreferenceController.PREF_KEY);
+        setKeyFollowTypingEnabled(false);
 
-        mFragment.onResume();
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
+        final TwoStatePreference switchPreference =
+                mFragController.get().findPreference(
+                        MagnificationFollowTypingPreferenceController.PREF_KEY);
         assertThat(switchPreference).isNotNull();
         assertThat(switchPreference.isChecked()).isFalse();
     }
 
     @Test
-    @Config(shadows = {ShadowFragment.class})
     public void onResume_haveRegisterToSpecificUris() {
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(Bundle.EMPTY);
+        ShadowContentResolver shadowContentResolver = Shadows.shadowOf(
+                mContext.getContentResolver());
+        Uri[] observedUri = new Uri[]{
+                Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS),
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE),
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_FOLLOW_TYPING_ENABLED),
+                Settings.Secure.getUriFor(
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED)
+        };
+        for (Uri uri : observedUri) {
+            // verify no observer registered before launching the fragment
+            assertThat(shadowContentResolver.getContentObservers(uri)).isEmpty();
+        }
 
-        mFragment.onResume();
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
-        verify(mContentResolver).registerContentObserver(
-                eq(Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS)),
-                eq(false),
-                any(AccessibilitySettingsContentObserver.class));
-        verify(mContentResolver).registerContentObserver(
-                eq(Settings.Secure.getUriFor(
-                        Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE)),
-                eq(false),
-                any(AccessibilitySettingsContentObserver.class));
-        verify(mContentResolver).registerContentObserver(
-                eq(Settings.Secure.getUriFor(
-                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_FOLLOW_TYPING_ENABLED)),
-                eq(false),
-                any(AccessibilitySettingsContentObserver.class));
-        verify(mContentResolver).registerContentObserver(
-                eq(Settings.Secure.getUriFor(
-                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_ALWAYS_ON_ENABLED)),
-                eq(false),
-                any(AccessibilitySettingsContentObserver.class));
+        for (Uri uri : observedUri) {
+            Collection<ContentObserver> observers = shadowContentResolver.getContentObservers(uri);
+            assertThat(observers.size()).isEqualTo(1);
+            assertThat(observers.stream().findFirst().get()).isInstanceOf(
+                    AccessibilitySettingsContentObserver.class);
+        }
     }
 
     @Test
@@ -192,6 +200,26 @@
     }
 
     @Test
+    @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;
 
@@ -201,7 +229,18 @@
         assertThat(getStringFromSettings(SOFTWARE_SHORTCUT_KEY)).isEqualTo(
                 MAGNIFICATION_CONTROLLER_NAME);
         assertThat(getMagnificationTripleTapStatus()).isTrue();
+    }
 
+    @Test
+    @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
@@ -216,6 +255,73 @@
     }
 
     @Test
+    public void optInAllValuesToSettings_software_sizeValueIsNull_putLargeSizeValue() {
+        ShadowSettings.ShadowSecure.reset();
+
+        ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(mContext,
+                UserShortcutType.SOFTWARE);
+
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                FloatingMenuSizePreferenceController.Size.UNKNOWN)).isEqualTo(
+                FloatingMenuSizePreferenceController.Size.LARGE);
+    }
+
+    @Test
+    public void optInAllValuesToSettings_software_sizeValueIsNotNull_sizeValueIsNotChanged() {
+        for (int size : new int[] {FloatingMenuSizePreferenceController.Size.LARGE,
+                FloatingMenuSizePreferenceController.Size.SMALL}) {
+            Settings.Secure.putInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size);
+
+            ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
+                    mContext,
+                    UserShortcutType.SOFTWARE);
+
+            assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                    FloatingMenuSizePreferenceController.Size.UNKNOWN)).isEqualTo(
+                    size);
+        }
+    }
+
+    @Test
+    public void optInAllValuesToSettings_hardware_sizeValueIsNotChanged() {
+        for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
+                FloatingMenuSizePreferenceController.Size.LARGE,
+                FloatingMenuSizePreferenceController.Size.SMALL}) {
+            Settings.Secure.putInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size);
+
+            ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
+                    mContext,
+                    UserShortcutType.HARDWARE);
+
+            assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
+                    size);
+        }
+    }
+
+    @Test
+    public void optInAllValuesToSettings_tripletap_sizeValueIsNotChanged() {
+        for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
+                FloatingMenuSizePreferenceController.Size.LARGE,
+                FloatingMenuSizePreferenceController.Size.SMALL}) {
+            Settings.Secure.putInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size);
+
+            ToggleScreenMagnificationPreferenceFragment.optInAllMagnificationValuesToSettings(
+                    mContext,
+                    UserShortcutType.TRIPLETAP);
+
+            assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                    Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE, size + 1)).isEqualTo(
+                    size);
+        }
+    }
+
+    @Test
     public void optOutAllValuesToSettings_optOutValue_emptyString() {
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
         putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
@@ -232,6 +338,19 @@
     }
 
     @Test
+    @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);
@@ -250,10 +369,12 @@
 
     @Test
     public void updateShortcutPreferenceData_assignDefaultValueToVariable() {
-        mFragment.updateShortcutPreferenceData();
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
+
+        mFragController.get().updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                MAGNIFICATION_CONTROLLER_NAME);
         // Compare to default UserShortcutType
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE);
     }
@@ -262,11 +383,12 @@
     public void updateShortcutPreferenceData_hasValueInSettings_assignToVariable() {
         putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
         setMagnificationTripleTapEnabled(/* enabled= */ true);
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
-        mFragment.updateShortcutPreferenceData();
+        mFragController.get().updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                MAGNIFICATION_CONTROLLER_NAME);
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP);
     }
 
@@ -274,149 +396,286 @@
     public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
         final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
                 MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
-
         putUserShortcutTypeIntoSharedPreference(mContext, tripleTapShortcut);
-        mFragment.updateShortcutPreferenceData();
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
+
+        mFragController.get().updateShortcutPreferenceData();
 
         final int expectedType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.SOFTWARE);
+                MAGNIFICATION_CONTROLLER_NAME);
         assertThat(expectedType).isEqualTo(UserShortcutType.TRIPLETAP);
     }
 
     @Test
+    @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);
+        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);
+        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+    }
+
+    @Test
     public void setupMagnificationEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
-        mContext.setTheme(R.style.Theme_AppCompat);
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
-                null);
-        mFragment.mShortcutPreference = shortcutPreference;
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(R.id.main_content, /* bundle= */
+                        null).start().resume().get();
+        fragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */ null);
 
-        mFragment.mShortcutPreference.setChecked(false);
-        mFragment.setupMagnificationEditShortcutDialog(dialog);
+        fragment.mShortcutPreference.setChecked(false);
+        fragment.setupMagnificationEditShortcutDialog(
+                createEditShortcutDialog(fragment.getActivity()));
 
-        final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
+        final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
         assertThat(checkboxValue).isEqualTo(UserShortcutType.EMPTY);
     }
 
     @Test
     public void setupMagnificationEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
-        mContext.setTheme(R.style.Theme_AppCompat);
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(R.id.main_content, /* bundle= */
+                        null).start().resume().get();
         final ShortcutPreference shortcutPreference = new ShortcutPreference(mContext, /* attrs= */
                 null);
         final PreferredShortcut tripletapShortcut = new PreferredShortcut(
                 MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
-        mFragment.mShortcutPreference = shortcutPreference;
+        fragment.mShortcutPreference = shortcutPreference;
 
         PreferredShortcuts.saveUserShortcutType(mContext, tripletapShortcut);
-        mFragment.mShortcutPreference.setChecked(true);
-        mFragment.setupMagnificationEditShortcutDialog(dialog);
+        fragment.mShortcutPreference.setChecked(true);
+        fragment.setupMagnificationEditShortcutDialog(
+                createEditShortcutDialog(fragment.getActivity()));
 
-        final int checkboxValue = mFragment.getShortcutTypeCheckBoxValue();
+        final int checkboxValue = fragment.getShortcutTypeCheckBoxValue();
         assertThat(checkboxValue).isEqualTo(UserShortcutType.TRIPLETAP);
     }
 
     @Test
-    @Config(shadows = ShadowFragment.class)
-    public void restoreValueFromSavedInstanceState_assignToVariable() {
-        mContext.setTheme(R.style.Theme_AppCompat);
-        final AlertDialog dialog = AccessibilityDialogUtils.showEditShortcutDialog(
-                mContext, DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
-                this::callEmptyOnClicked);
-        final Bundle savedInstanceState = new Bundle();
-        mFragment.mShortcutPreference = new ShortcutPreference(mContext, /* attrs= */ null);
+    @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;
 
-        savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE,
+        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);
-        mFragment.onCreate(savedInstanceState);
-        mFragment.setupMagnificationEditShortcutDialog(dialog);
-        final int value = mFragment.getShortcutTypeCheckBoxValue();
-        mFragment.saveNonEmptyUserShortcutType(value);
+        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);
+                MAGNIFICATION_CONTROLLER_NAME);
         assertThat(value).isEqualTo(6);
         assertThat(expectedType).isEqualTo(UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
     }
 
-    @Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
+    @Test
+    @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);
+        assertThat(value).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+        assertThat(expectedType).isEqualTo(UserShortcutType.TWOFINGERTRIPLETAP);
+    }
+
     @Test
     public void onCreateView_magnificationAreaNotSupported_settingsPreferenceIsNull() {
-        when(mResources.getBoolean(
-                com.android.internal.R.bool.config_magnification_area))
-                .thenReturn(false);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_WINDOW_MAGNIFICATION))
-                .thenReturn(true);
+        setWindowMagnificationSupported(
+                /* magnificationAreaSupported= */ false,
+                /* windowMagnificationSupported= */ true);
 
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
-        assertThat(mFragment.mSettingsPreference).isNull();
+        assertThat(mFragController.get().mSettingsPreference).isNull();
     }
 
-    @Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
     @Test
     public void onCreateView_windowMagnificationNotSupported_settingsPreferenceIsNull() {
-        when(mResources.getBoolean(
-                com.android.internal.R.bool.config_magnification_area))
-                .thenReturn(true);
-        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_WINDOW_MAGNIFICATION))
-                .thenReturn(false);
+        setWindowMagnificationSupported(
+                /* magnificationAreaSupported= */ true,
+                /* windowMagnificationSupported= */ false);
 
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+        mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
 
-        assertThat(mFragment.mSettingsPreference).isNull();
+        assertThat(mFragController.get().mSettingsPreference).isNull();
     }
 
-    @Ignore("Ignore it since a NPE is happened in ShadowWindowManagerGlobal. (Ref. b/214161063)")
     @Test
     public void onCreateView_setDialogDelegateAndAddTheControllerToLifeCycleObserver() {
-        Lifecycle lifecycle = mock(Lifecycle.class);
-        when(mFragment.getSettingsLifecycle()).thenReturn(lifecycle);
+        Correspondence instanceOf = Correspondence.transforming(
+                observer -> (observer instanceof MagnificationModePreferenceController),
+                "contains MagnificationModePreferenceController");
 
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+        ToggleScreenMagnificationPreferenceFragment fragment = mFragController.create(
+                R.id.main_content, /* bundle= */ null).start().resume().get();
 
-        verify(mFragment).setDialogDelegate(any(MagnificationModePreferenceController.class));
-        verify(lifecycle).addObserver(any(MagnificationModePreferenceController.class));
+        DialogCreatable dialogDelegate = ReflectionHelpers.getField(fragment, "mDialogDelegate");
+        List<LifecycleObserver> lifecycleObservers = ReflectionHelpers.getField(
+                fragment.getSettingsLifecycle(), "mObservers");
+        assertThat(dialogDelegate).isInstanceOf(MagnificationModePreferenceController.class);
+        assertThat(lifecycleObservers).isNotNull();
+        assertThat(lifecycleObservers).comparingElementsUsing(instanceOf).contains(true);
     }
 
     @Test
     public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(
+                        R.id.main_content, /* bundle= */ null).start().resume().get();
         final DialogCreatable dialogDelegate = mock(DialogCreatable.class, RETURNS_DEEP_STUBS);
         when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(1);
-        mFragment.setDialogDelegate(dialogDelegate);
+        fragment.setDialogDelegate(dialogDelegate);
 
-        mFragment.onCreateDialog(1);
-        mFragment.getDialogMetricsCategory(1);
+        fragment.onCreateDialog(1);
+        fragment.getDialogMetricsCategory(1);
 
         verify(dialogDelegate).onCreateDialog(1);
         verify(dialogDelegate).getDialogMetricsCategory(1);
     }
 
     @Test
-    public void getMetricsCategory_shouldNotHaveMetricsCategory() {
-        assertThat(mFragment.getMetricsCategory()).isEqualTo(0);
+    public void getMetricsCategory_returnsCorrectCategory() {
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(
+                        R.id.main_content, /* bundle= */ null).start().resume().get();
+
+        assertThat(fragment.getMetricsCategory()).isEqualTo(
+                SettingsEnums.ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION);
     }
 
     @Test
     public void getHelpResource_returnsCorrectHelpResource() {
-        assertThat(mFragment.getHelpResource()).isEqualTo(R.string.help_url_magnification);
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(
+                        R.id.main_content, /* bundle= */ null).start().resume().get();
+
+        assertThat(fragment.getHelpResource()).isEqualTo(R.string.help_url_magnification);
     }
 
     @Test
     public void onProcessArguments_defaultArgumentUnavailable_shouldSetDefaultArguments() {
+        ToggleScreenMagnificationPreferenceFragment fragment =
+                mFragController.create(
+                        R.id.main_content, /* bundle= */ null).start().resume().get();
         Bundle arguments = new Bundle();
 
-        mFragment.onProcessArguments(arguments);
+        fragment.onProcessArguments(arguments);
 
         assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_PREFERENCE_KEY));
         assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_INTRO));
         assertTrue(arguments.containsKey(AccessibilitySettings.EXTRA_HTML_DESCRIPTION));
     }
 
+    @Test
+    public void getSummary_magnificationEnabled_returnShortcutOnWithSummary() {
+        setMagnificationTripleTapEnabled(true);
+
+        assertThat(
+                ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(R.string.preference_summary_default_combination,
+                                mContext.getText(R.string.accessibility_summary_shortcut_enabled),
+                                mContext.getText(R.string.magnification_feature_summary)));
+    }
+
+    @Test
+    public void getSummary_magnificationDisabled_returnShortcutOffWithSummary() {
+        setMagnificationTripleTapEnabled(false);
+
+        assertThat(
+                ToggleScreenMagnificationPreferenceFragment.getServiceSummary(mContext).toString())
+                .isEqualTo(
+                        mContext.getString(R.string.preference_summary_default_combination,
+                                mContext.getText(
+                                        R.string.generic_accessibility_feature_shortcut_off),
+                                mContext.getText(R.string.magnification_feature_summary)));
+    }
+
+    @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.preference_summary_default_combination,
+                                mContext.getText(R.string.accessibility_summary_shortcut_enabled),
+                                mContext.getText(R.string.magnification_feature_summary)));
+    }
+
+    @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.preference_summary_default_combination,
+                                mContext.getText(
+                                        R.string.generic_accessibility_feature_shortcut_off),
+                                mContext.getText(R.string.magnification_feature_summary)));
+    }
+
     private void putStringIntoSettings(String key, String componentName) {
         Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
     }
@@ -431,6 +690,11 @@
                 enabled ? ON : OFF);
     }
 
+    private void setKeyFollowTypingEnabled(boolean enabled) {
+        Settings.Secure.putInt(mContext.getContentResolver(), KEY_FOLLOW_TYPING,
+                enabled ? ON : OFF);
+    }
+
     private String getStringFromSettings(String key) {
         return Settings.Secure.getString(mContext.getContentResolver(), key);
     }
@@ -440,91 +704,54 @@
                 == ON;
     }
 
-    private void callEmptyOnClicked(DialogInterface dialog, int which) {}
+    private void callEmptyOnClicked(DialogInterface dialog, int which) {
+    }
+
+    private void setWindowMagnificationSupported(boolean magnificationAreaSupported,
+            boolean windowMagnificationSupported) {
+        when(mSpyResources.getBoolean(
+                com.android.internal.R.bool.config_magnification_area))
+                .thenReturn(magnificationAreaSupported);
+        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_WINDOW_MAGNIFICATION,
+                windowMagnificationSupported);
+    }
+
+    private AlertDialog createEditShortcutDialog(Context context) {
+        context.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
+        return AccessibilityDialogUtils.showEditShortcutDialog(
+                context,
+                DialogType.EDIT_SHORTCUT_MAGNIFICATION, PLACEHOLDER_DIALOG_TITLE,
+                this::callEmptyOnClicked);
+    }
+
+    private Bundle createFragmentSavedInstanceState(int userShortcutType) {
+        final Bundle savedInstanceState = new Bundle();
+        savedInstanceState.putInt(KEY_SAVED_USER_SHORTCUT_TYPE, userShortcutType);
+        final Bundle fragmentState = new Bundle();
+        fragmentState.putBundle(
+                /* FragmentStateManager.SAVED_INSTANCE_STATE_KEY */ "savedInstanceState",
+                savedInstanceState);
+        return fragmentState;
+    }
 
     /**
-     * a test fragment that initializes PreferenceScreen for testing.
+     * A test fragment that provides a way to change the context
      */
-    static class TestToggleScreenMagnificationPreferenceFragment
+    public static class TestToggleScreenMagnificationPreferenceFragment
             extends ToggleScreenMagnificationPreferenceFragment {
-
-        private final Context mContext;
-        private final PreferenceManager mPreferenceManager;
-
-        TestToggleScreenMagnificationPreferenceFragment(Context context) {
-            super();
-            mContext = context;
-            mPreferenceManager = new PreferenceManager(context);
-            mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
-            setArguments(new Bundle());
-        }
-
-        @Override
-        protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
-        }
-
-        @Override
-        public int getMetricsCategory() {
-            return 0;
-        }
-
-        @Override
-        int getUserShortcutTypes() {
-            return 0;
-        }
-
-        @Override
-        public int getPreferenceScreenResId() {
-            return R.xml.placeholder_prefs;
-        }
-
-        @Override
-        public PreferenceScreen getPreferenceScreen() {
-            return mPreferenceManager.getPreferenceScreen();
-        }
-
-        @Override
-        public <T extends Preference> T findPreference(CharSequence key) {
-            if (TextUtils.isEmpty(key)) {
-                return null;
-            }
-            return getPreferenceScreen().findPreference(key);
-        }
-
-        @Override
-        public PreferenceManager getPreferenceManager() {
-            return mPreferenceManager;
-        }
-
-        @Override
-        public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-            // do nothing
-        }
-
-        @Override
-        public void onViewCreated(View view, Bundle savedInstanceState) {
-            // do nothing
-        }
-
-        @SuppressWarnings("MissingSuperCall")
-        @Override
-        public void onDestroyView() {
-            // do nothing
-        }
-
-        @Override
-        public void addPreferencesFromResource(@XmlRes int preferencesResId) {
-            // do nothing
-        }
-
-        @Override
-        protected void updateShortcutPreference() {
-            // UI related function, do nothing in tests
-        }
+        private Context mContext;
 
         @Override
         public Context getContext() {
-            return mContext;
+            return this.mContext != null ? this.mContext : super.getContext();
+        }
+
+        /**
+         * Sets the spy context used for RoboTest in order to change the value of
+         * com.android.internal.R.bool.config_magnification_area
+         */
+        public void setContext(Context context) {
+            this.mContext = context;
         }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java
index 77e5b1f..fa3fc23 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java
@@ -51,9 +51,13 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 /** Tests for {@link ToggleScreenReaderPreferenceFragmentForSetupWizard}. */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ToggleScreenReaderPreferenceFragmentForSetupWizardTest {
 
     private static final String TEST_TITLE = "test_title";
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java
index 8878064..ed426f9 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java
@@ -51,9 +51,13 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 /** Tests for {@link ToggleSelectToSpeakPreferenceFragmentForSetupWizard}. */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest {
 
     private static final String TEST_TITLE = "test_title";
diff --git a/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java
index cfb459c..1249894 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TopLevelAccessibilityPreferenceControllerTest.java
@@ -21,25 +21,33 @@
 
 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 androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
 public class TopLevelAccessibilityPreferenceControllerTest {
 
     private Context mContext;
+    private Resources mResources;
     private TopLevelAccessibilityPreferenceController mController;
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
         mController = new TopLevelAccessibilityPreferenceController(mContext, "test_key");
     }
 
@@ -48,10 +56,10 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
-    @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_unsupportedWhenSet() {
+        when(mResources.getBoolean(R.bool.config_show_top_level_accessibility)).thenReturn(false);
+
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/VibrationIntensitySettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/VibrationIntensitySettingsFragmentTest.java
new file mode 100644
index 0000000..045c9db
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/VibrationIntensitySettingsFragmentTest.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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Resources;
+import android.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 com.android.settings.R;
+import com.android.settings.flags.Flags;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link VibrationIntensitySettingsFragment}. */
+@RunWith(RobolectricTestRunner.class)
+@RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
+public class VibrationIntensitySettingsFragmentTest {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private Context mContext;
+    private Resources mResources;
+    private VibrationIntensitySettingsFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
+        mFragment = new VibrationIntensitySettingsFragment();
+    }
+
+    @Test
+    public void getMetricsCategory_returnsCorrectCategory() {
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(
+                SettingsEnums.ACCESSIBILITY_VIBRATION);
+    }
+
+    @Test
+    public void getHelpResource_returnsCorrectString() {
+        assertThat(mFragment.getHelpResource()).isEqualTo(
+                R.string.help_uri_accessibility_vibration);
+    }
+
+    @Test
+    public void getPreferenceScreenResId_returnsCorrectXml() {
+        assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(
+                R.xml.accessibility_vibration_intensity_settings);
+    }
+
+    @Test
+    public void getLogTag_returnsCorrectTag() {
+        assertThat(mFragment.getLogTag()).isEqualTo("VibrationIntensitySettings");
+    }
+
+    @Test
+    public void isPageSearchEnabled_oneIntensityLevel_returnsFalse() {
+        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
+                .thenReturn(1);
+        assertThat(VibrationIntensitySettingsFragment.isPageSearchEnabled(mContext)).isFalse();
+    }
+
+    @Test
+    public void isPageSearchEnabled_multipleIntensityLevels_returnsTrue() {
+        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
+                .thenReturn(2);
+        assertThat(VibrationIntensitySettingsFragment.isPageSearchEnabled(mContext)).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/VibrationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/VibrationPreferenceControllerTest.java
index a045dea..cf33173 100644
--- a/tests/robotests/src/com/android/settings/accessibility/VibrationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/VibrationPreferenceControllerTest.java
@@ -18,14 +18,20 @@
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
-
 import static com.google.common.truth.Truth.assertThat;
-
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+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.res.Resources;
 import android.os.Vibrator;
+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.preference.Preference;
@@ -33,8 +39,10 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -44,6 +52,9 @@
 @RunWith(RobolectricTestRunner.class)
 public class VibrationPreferenceControllerTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String PREFERENCE_KEY = "preference_key";
     private static final int OFF = 0;
     private static final int ON = 1;
@@ -52,13 +63,17 @@
     @Mock private PreferenceScreen mScreen;
 
     private Context mContext;
+    private Resources mResources;
     private Preference mPreference;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
         when(mContext.getSystemService(Context.VIBRATOR_SERVICE)).thenReturn(mVibrator);
+        when(mVibrator.hasVibrator()).thenReturn(true);
     }
 
     @Test
@@ -85,7 +100,6 @@
 
     @Test
     public void getSummary_vibrateSettingNotSet_returnsOnText() {
-        when(mVibrator.hasVibrator()).thenReturn(true);
         Settings.System.putString(mContext.getContentResolver(), Settings.System.VIBRATE_ON,
                 /* value= */ null);
         VibrationPreferenceController controller = createPreferenceController();
@@ -97,7 +111,6 @@
 
     @Test
     public void getSummary_vibrateSettingOn_returnsOnText() {
-        when(mVibrator.hasVibrator()).thenReturn(true);
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.VIBRATE_ON, ON);
         VibrationPreferenceController controller = createPreferenceController();
         controller.updateState(mPreference);
@@ -108,7 +121,6 @@
 
     @Test
     public void getSummary_vibrateSettingOff_returnsOffText() {
-        when(mVibrator.hasVibrator()).thenReturn(true);
         Settings.System.putInt(mContext.getContentResolver(), Settings.System.VIBRATE_ON, OFF);
         VibrationPreferenceController controller = createPreferenceController();
         controller.updateState(mPreference);
@@ -117,11 +129,39 @@
                 mContext.getString(R.string.accessibility_vibration_settings_state_off));
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
+    public void handlePreferenceTreeClick_oneIntensityLevel_opensVibrationSettings() {
+        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
+                .thenReturn(1);
+        VibrationPreferenceController controller = spy(createPreferenceController());
+
+        doNothing().when(controller).launchVibrationSettingsFragment(any());
+        controller.handlePreferenceTreeClick(mPreference);
+
+        verify(controller).launchVibrationSettingsFragment(eq(VibrationSettings.class));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
+    public void handlePreferenceTreeClick_multipleIntensityLevels_opensVibrationIntensity() {
+        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
+                .thenReturn(2);
+        VibrationPreferenceController controller = spy(createPreferenceController());
+
+        doNothing().when(controller).launchVibrationSettingsFragment(any());
+        controller.handlePreferenceTreeClick(mPreference);
+
+        verify(controller).launchVibrationSettingsFragment(
+                eq(VibrationIntensitySettingsFragment.class));
+    }
+
     private VibrationPreferenceController createPreferenceController() {
         VibrationPreferenceController controller =
                 new VibrationPreferenceController(mContext, PREFERENCE_KEY);
         mPreference = new Preference(mContext);
         mPreference.setSummary("Test summary");
+        mPreference.setKey(PREFERENCE_KEY);
         when(mScreen.findPreference(controller.getPreferenceKey())).thenReturn(mPreference);
         controller.displayPreference(mScreen);
         return controller;
diff --git a/tests/robotests/src/com/android/settings/accessibility/VibrationRampingRingerTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/VibrationRampingRingerTogglePreferenceControllerTest.java
index 9e31130..95c3e15 100644
--- a/tests/robotests/src/com/android/settings/accessibility/VibrationRampingRingerTogglePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/VibrationRampingRingerTogglePreferenceControllerTest.java
@@ -40,7 +40,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -86,7 +85,6 @@
     }
 
     @Test
-    @Ignore
     public void getAvailabilityStatus_notVoiceCapable_returnUnsupportedOnDevice() {
         when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
         when(mDeviceConfigProvider.isRampingRingerEnabledOnTelephonyConfig()).thenReturn(false);
@@ -95,7 +93,6 @@
     }
 
     @Test
-    @Ignore
     public void getAvailabilityStatus_rampingRingerEnabled_returnUnsupportedOnDevice() {
         when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
         when(mDeviceConfigProvider.isRampingRingerEnabledOnTelephonyConfig()).thenReturn(true);
@@ -104,7 +101,6 @@
     }
 
     @Test
-    @Ignore
     public void getAvailabilityStatus_voiceCapableAndRampingRingerDisabled_returnAvailable() {
         when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
         when(mDeviceConfigProvider.isRampingRingerEnabledOnTelephonyConfig()).thenReturn(false);
@@ -146,7 +142,6 @@
     }
 
     @Test
-    @Ignore
     public void setChecked_withRingEnabled_updatesSetting() {
         updateSetting(Settings.System.RING_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH);
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/VibrationSettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/VibrationSettingsTest.java
new file mode 100644
index 0000000..f5ea39e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/VibrationSettingsTest.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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.res.Resources;
+import android.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 com.android.settings.R;
+import com.android.settings.flags.Flags;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link VibrationSettings} fragment. */
+@RunWith(RobolectricTestRunner.class)
+@RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
+public class VibrationSettingsTest {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private Context mContext;
+    private Resources mResources;
+    private VibrationSettings mFragment;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
+        mFragment = new VibrationSettings();
+    }
+
+    @Test
+    public void getMetricsCategory_returnsCorrectCategory() {
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(
+                SettingsEnums.ACCESSIBILITY_VIBRATION);
+    }
+
+    @Test
+    public void getHelpResource_returnsCorrectString() {
+        assertThat(mFragment.getHelpResource()).isEqualTo(
+                R.string.help_uri_accessibility_vibration);
+    }
+
+    @Test
+    public void getPreferenceScreenResId_returnsCorrectXml() {
+        assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(
+                R.xml.accessibility_vibration_settings);
+    }
+
+    @Test
+    public void getLogTag_returnsCorrectTag() {
+        assertThat(mFragment.getLogTag()).isEqualTo("VibrationSettings");
+    }
+
+    @Test
+    public void isPageSearchEnabled_oneIntensityLevel_returnsTrue() {
+        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
+                .thenReturn(1);
+        assertThat(VibrationSettings.isPageSearchEnabled(mContext)).isTrue();
+    }
+
+    @Test
+    public void isPageSearchEnabled_multipleIntensityLevels_returnsFalse() {
+        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
+                .thenReturn(2);
+        assertThat(VibrationSettings.isPageSearchEnabled(mContext)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java
index 72aabab..6c9fbfc 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java
@@ -30,8 +30,6 @@
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -42,9 +40,13 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 /** Tests for {@link ViewAllBluetoothDevicesPreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ViewAllBluetoothDevicesPreferenceControllerTest {
 
     @Rule
@@ -62,8 +64,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         when(mFragment.getContext()).thenReturn(mContext);
         when(mFragment.getActivity()).thenReturn(mActivity);
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/AdvancedShortcutsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/AdvancedShortcutsPreferenceControllerTest.java
new file mode 100644
index 0000000..0a8273b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/AdvancedShortcutsPreferenceControllerTest.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.accessibility.shortcuts;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ComponentName;
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link AdvancedShortcutsPreferenceController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class AdvancedShortcutsPreferenceControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET_MAGNIFICATION =
+            "com.android.server.accessibility.MagnificationController";
+    private static final String TARGET_FAKE =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private AdvancedShortcutsPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mController = new AdvancedShortcutsPreferenceController(mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+        Preference preference = new Preference(mContext);
+        preference.setKey(PREF_KEY);
+        PreferenceScreen preferenceScreen =
+                new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        preferenceScreen.addPreference(preference);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsMagnificationAndIsExpanded_returnsConditionallyUnavailable() {
+        mController.setExpanded(true);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsMagnificationAndIsNotExpanded_returnsAvailableUnsearchable() {
+        mController.setExpanded(false);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsNotMagnificationAndIsNotExpanded_returnsConditionallyUnavailable() {
+        mController.setExpanded(false);
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsNotMagnificationAndIsExpanded_returnsConditionallyUnavailable() {
+        mController.setExpanded(true);
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void setExpanded_expand_updateExpandedValue() {
+        mController.setExpanded(true);
+
+        assertThat(mController.isExpanded()).isTrue();
+    }
+
+    @Test
+    public void setExpanded_collapse_updateExpandedValue() {
+        mController.setExpanded(false);
+
+        assertThat(mController.isExpanded()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_multipleTargets_returnFalse() {
+        mController.setShortcutTargets(Set.of(TARGET_FAKE, TARGET_MAGNIFICATION));
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_magnificationTargetOnly_returnTrue() {
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @Test
+    public void isShortcutAvailable_nonMagnificationTarget_returnFalse() {
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isChecked_returnFalse() {
+        assertThat(mController.isChecked()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
new file mode 100644
index 0000000..13f0b24
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
@@ -0,0 +1,483 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+import static com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragment.SHORTCUT_SETTINGS;
+
+import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP;
+import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_FIRST_RUN;
+import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_PRE_DEFERRED_SETUP;
+import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.Shadows.shadowOf;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.view.accessibility.AccessibilityManager;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.testing.FragmentScenario;
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.util.ShortcutUtils;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SubSettings;
+import com.android.settings.accessibility.AccessibilityUtil;
+import com.android.settings.accessibility.PreferredShortcuts;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+import com.google.android.setupcompat.util.WizardManagerHelper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowAccessibilityManager;
+import org.robolectric.shadows.ShadowContentResolver;
+import org.robolectric.shadows.ShadowLooper;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Tests for {@link EditShortcutsPreferenceFragment}
+ */
+@Config(shadows = SettingsShadowResources.class)
+@RunWith(RobolectricTestRunner.class)
+public class EditShortcutsPreferenceFragmentTest {
+    private static final int METRICS_CATEGORY = 123;
+    private static final CharSequence SCREEN_TITLE = "Fake shortcut title";
+    private static final ComponentName TARGET_FAKE_COMPONENT =
+            new ComponentName("FakePackage", "FakeClass");
+    private static final String TARGET = MAGNIFICATION_CONTROLLER_NAME;
+    private static final Set<String> TARGETS = Set.of(TARGET);
+
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private FragmentActivity mActivity;
+    private FragmentScenario<EditShortcutsPreferenceFragment> mFragmentScenario;
+
+    @Before
+    public void setUp() {
+        SettingsShadowResources.overrideResource(
+                com.android.internal.R.integer.config_navBarInteractionMode,
+                NAV_BAR_MODE_GESTURAL);
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_BUTTON_MODE,
+                Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE);
+
+        mActivity = Robolectric.buildActivity(FragmentActivity.class).get();
+    }
+
+    @After
+    public void cleanUp() {
+        if (mFragmentScenario != null) {
+            mFragmentScenario.close();
+        }
+    }
+
+    @Test
+    public void showEditShortcutScreen_targetIsMagnification_launchSubSetting() {
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                mActivity, METRICS_CATEGORY, SCREEN_TITLE,
+                MAGNIFICATION_COMPONENT_NAME, /* fromIntent= */ null);
+
+        assertLaunchSubSettingWithCurrentTargetComponents(
+                MAGNIFICATION_CONTROLLER_NAME, /* isInSuw= */ false);
+    }
+
+    @Test
+    public void showEditShortcutScreen_launchSubSetting() {
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                mActivity, METRICS_CATEGORY, SCREEN_TITLE,
+                TARGET_FAKE_COMPONENT, /* fromIntent= */ null);
+
+        assertLaunchSubSettingWithCurrentTargetComponents(
+                TARGET_FAKE_COMPONENT.flattenToString(), /* isInSuw= */ false);
+    }
+
+    @Test
+    public void showEditShortcutScreen_inSuw_launchSubSettingWithSuw() {
+        EditShortcutsPreferenceFragment.showEditShortcutScreen(
+                mActivity, METRICS_CATEGORY, SCREEN_TITLE,
+                TARGET_FAKE_COMPONENT, createSuwIntent(new Intent(), /* isInSuw= */ true));
+
+        assertLaunchSubSettingWithCurrentTargetComponents(
+                TARGET_FAKE_COMPONENT.flattenToString(), /* isInSuw= */ true);
+    }
+
+    @Test
+    public void fragmentCreated_inSuw_controllersTargetsSet() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ true);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        mFragmentScenario.onFragment(fragment -> {
+            List<ShortcutOptionPreferenceController> controllers =
+                    getShortcutOptionPreferenceControllers(fragment);
+
+            for (ShortcutOptionPreferenceController controller : controllers) {
+                assertThat(controller.getShortcutTargets()).containsExactlyElementsIn(TARGETS);
+                assertThat(controller.isInSetupWizard()).isTrue();
+            }
+        });
+    }
+
+    @Test
+    public void fragmentCreated_notInSuw_controllersTargetsSet() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        mFragmentScenario.onFragment(fragment -> {
+            List<ShortcutOptionPreferenceController> controllers =
+                    getShortcutOptionPreferenceControllers(fragment);
+
+            for (ShortcutOptionPreferenceController controller : controllers) {
+                assertThat(controller.getShortcutTargets()).containsExactlyElementsIn(TARGETS);
+                assertThat(controller.isInSetupWizard()).isFalse();
+            }
+        });
+    }
+
+    @Test
+    public void fragmentCreated_settingsObserversAreRegistered() {
+        ShadowContentResolver contentResolver = shadowOf(mContext.getContentResolver());
+        for (Uri uri : SHORTCUT_SETTINGS) {
+            assertThat(contentResolver.getContentObservers(uri)).isEmpty();
+        }
+
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        for (Uri uri : SHORTCUT_SETTINGS) {
+            assertThat(contentResolver.getContentObservers(uri)).isNotEmpty();
+        }
+    }
+
+    @Test
+    public void fragmentDestroyed_unregisterSettingsObserver() {
+        ShadowContentResolver contentResolver = shadowOf(mContext.getContentResolver());
+
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false)
+                .moveToState(Lifecycle.State.CREATED);
+        mFragmentScenario.onFragment(EditShortcutsPreferenceFragment::onDestroy);
+
+        for (Uri uri : SHORTCUT_SETTINGS) {
+            assertThat(contentResolver.getContentObservers(uri)).isEmpty();
+        }
+    }
+
+    @Test
+    public void onVolumeKeysShortcutSettingChanged_volumeKeyControllerUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET);
+
+        mFragmentScenario.onFragment(fragment -> {
+            TwoStatePreference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_volume_keys_pref));
+            assertThat(preference.isChecked()).isTrue();
+        });
+    }
+
+    @Test
+    public void onSoftwareShortcutSettingChanged_softwareControllersUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, TARGET);
+        ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
+
+        mFragmentScenario.onFragment(fragment -> {
+            TwoStatePreference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_gesture_pref));
+            assertThat(preference.isChecked()).isTrue();
+        });
+    }
+
+    @Test
+    public void onSoftwareShortcutModeChanged_softwareControllersUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, TARGET);
+        ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
+
+        mFragmentScenario.onFragment(fragment -> {
+            TwoStatePreference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_gesture_pref));
+            assertThat(preference.isChecked()).isTrue();
+        });
+    }
+
+    @Test
+    public void onTripleTapShortcutSettingChanged_tripleTapShortcutControllerUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                AccessibilityUtil.State.ON);
+        ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
+
+        mFragmentScenario.onFragment(fragment -> {
+            TwoStatePreference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_triple_tap_pref));
+            assertThat(preference.isChecked()).isTrue();
+        });
+    }
+
+    @Test
+    public void onTwoFingersShortcutSettingChanged_twoFingersDoubleTapShortcutControllerUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        Settings.Secure.putInt(
+                mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                AccessibilityUtil.State.ON);
+        ShadowLooper.runUiThreadTasksIncludingDelayedTasks();
+
+        mFragmentScenario.onFragment(fragment -> {
+            TwoStatePreference preference = fragment.findPreference(
+                    mContext.getString(
+                            R.string.accessibility_shortcut_two_fingers_double_tap_pref));
+            assertThat(preference.isChecked()).isTrue();
+        });
+    }
+
+    @Test
+    public void fragmentResumed_enableTouchExploration_gestureShortcutOptionSummaryUpdated() {
+        String expectedSummary = mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback)
+                + "\n\n"
+                + mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+
+        ShadowAccessibilityManager am = shadowOf(
+                mContext.getSystemService(AccessibilityManager.class));
+        am.setTouchExplorationEnabled(true);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_gesture_pref));
+            assertThat(preference.getSummary().toString()).isEqualTo(expectedSummary);
+        });
+    }
+
+    @Test
+    public void fragmentPaused_enableTouchExploration_gestureShortcutOptionSummaryNotUpdated() {
+        String expectedSummary = mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture)
+                + "\n\n"
+                + mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED).moveToState(Lifecycle.State.STARTED);
+
+        ShadowAccessibilityManager am = shadowOf(
+                mContext.getSystemService(AccessibilityManager.class));
+        am.setTouchExplorationEnabled(true);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_gesture_pref));
+            assertThat(preference.getSummary().toString()).isEqualTo(expectedSummary);
+        });
+    }
+
+    @Test
+    public void onAdvancedPreferenceClicked_advancedShouldBecomeInvisible() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+        mFragmentScenario.onFragment(fragment -> {
+            Preference advanced = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcuts_advanced_collapsed));
+            assertThat(advanced.isVisible()).isTrue();
+
+            fragment.onPreferenceTreeClick(advanced);
+
+            assertThat(advanced.isVisible()).isFalse();
+        });
+    }
+
+    @Test
+    public void fragmentRecreated_expanded_advancedRemainInvisible() {
+        onAdvancedPreferenceClicked_advancedShouldBecomeInvisible();
+
+        mFragmentScenario.recreate();
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference advanced = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcuts_advanced_collapsed));
+            assertThat(advanced.isVisible()).isFalse();
+        });
+    }
+
+    @Test
+    public void fragmentRecreated_collapsed_advancedRemainVisible() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+
+        mFragmentScenario.recreate();
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference advanced = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcuts_advanced_collapsed));
+            assertThat(advanced.isVisible()).isTrue();
+        });
+    }
+
+    @Test
+    public void fragmentResumed_preferredShortcutsUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+        // Move the fragment to the background
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, TARGET)
+        ).isEqualTo(ShortcutConstants.UserShortcutType.SOFTWARE);
+        // Update the chosen shortcut type to Volume keys while the fragment is in the background
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET);
+
+        mFragmentScenario.moveToState(Lifecycle.State.RESUMED);
+
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, TARGET)
+        ).isEqualTo(ShortcutConstants.UserShortcutType.HARDWARE);
+    }
+
+    @Test
+    public void onVolumeKeysShortcutSettingChanged_preferredShortcutsUpdated() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, TARGET)
+        ).isEqualTo(ShortcutConstants.UserShortcutType.SOFTWARE);
+
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET);
+
+        // Calls onFragment so that the change to Setting is notified to its observer
+        mFragmentScenario.onFragment(fragment ->
+                assertThat(
+                        PreferredShortcuts.retrieveUserShortcutType(
+                                mContext, TARGET)
+                ).isEqualTo(ShortcutConstants.UserShortcutType.HARDWARE)
+        );
+
+    }
+
+    private void assertLaunchSubSettingWithCurrentTargetComponents(
+            String componentName, boolean isInSuw) {
+        Intent intent = shadowOf(mActivity.getApplication()).getNextStartedActivity();
+
+        assertThat(intent).isNotNull();
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
+        assertThat(intent.getComponent()).isEqualTo(
+                new ComponentName(mActivity, SubSettings.class));
+        assertThat(intent.getExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(EditShortcutsPreferenceFragment.class.getName());
+        assertThat(intent.getExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE))
+                .isEqualTo(SCREEN_TITLE.toString());
+        assertThat(intent.getExtra(
+                MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY)).isEqualTo(METRICS_CATEGORY);
+        Bundle args = (Bundle) intent.getExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+        assertThat(args).isNotNull();
+        assertThat(Arrays.stream(args.getStringArray(
+                EditShortcutsPreferenceFragment.ARG_KEY_SHORTCUT_TARGETS)).toList())
+                .containsExactly(componentName);
+        assertThat(WizardManagerHelper.isAnySetupWizard(intent)).isEqualTo(isInSuw);
+    }
+
+    private List<ShortcutOptionPreferenceController> getShortcutOptionPreferenceControllers(
+            EditShortcutsPreferenceFragment fragment) {
+
+        Collection<List<AbstractPreferenceController>> controllers =
+                ReflectionHelpers.callInstanceMethod(fragment, "getPreferenceControllers");
+        List<ShortcutOptionPreferenceController> retControllers = new ArrayList<>();
+        controllers.stream().flatMap(Collection::stream)
+                .filter(controller -> controller instanceof ShortcutOptionPreferenceController)
+                .forEach(controller ->
+                        retControllers.add((ShortcutOptionPreferenceController) controller));
+
+        return retControllers;
+    }
+
+    private FragmentScenario<EditShortcutsPreferenceFragment> createFragScenario(boolean isInSuw) {
+        Bundle args = new Bundle();
+        args.putStringArray(
+                EditShortcutsPreferenceFragment.ARG_KEY_SHORTCUT_TARGETS, new String[]{TARGET});
+        FragmentScenario<EditShortcutsPreferenceFragment> scenario =
+                FragmentScenario.launch(
+                        EditShortcutsPreferenceFragment.class, args,
+                        /* themeResId= */ 0, Lifecycle.State.INITIALIZED);
+        scenario.onFragment(fragment -> {
+            Intent intent = fragment.requireActivity().getIntent();
+            intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, SCREEN_TITLE);
+            fragment.requireActivity().setIntent(createSuwIntent(intent, isInSuw));
+            // Since the fragment is attached before we have a chance
+            // to modify the activity's intent; initialize controllers again
+            fragment.initializePreferenceControllerArguments();
+        });
+        return scenario;
+    }
+
+    private Intent createSuwIntent(Intent intent, boolean isInSuw) {
+
+        if (intent == null) {
+            intent = new Intent();
+        }
+        intent.putExtra(EXTRA_IS_SETUP_FLOW, isInSuw);
+        intent.putExtra(EXTRA_IS_FIRST_RUN, isInSuw);
+        intent.putExtra(EXTRA_IS_PRE_DEFERRED_SETUP, isInSuw);
+        intent.putExtra(EXTRA_IS_DEFERRED_SETUP, isInSuw);
+        return intent;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
new file mode 100644
index 0000000..b39aa22
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/FloatingButtonShortcutOptionControllerTest.java
@@ -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.accessibility.shortcuts;
+
+import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
+import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_GESTURE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link FloatingButtonShortcutOptionController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class FloatingButtonShortcutOptionControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private FloatingButtonShortcutOptionController mController;
+    private ShortcutOptionPreference mShortcutOptionPreference;
+
+    private PreferenceScreen mPreferenceScreen;
+
+    @Before
+    public void setUp() {
+        mController = new FloatingButtonShortcutOptionController(
+                mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET));
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreferenceScreen.addPreference(mShortcutOptionPreference);
+        setFloatingButtonEnabled(true);
+    }
+
+    @Test
+    public void displayPreference_verifyTitle() {
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.accessibility_shortcut_edit_dialog_title_software));
+    }
+
+    @Test
+    public void getSummary_inSuw_verifySummaryEmpty() {
+        mController.setInSetupWizard(true);
+
+        assertThat(TextUtils.isEmpty(mController.getSummary())).isTrue();
+    }
+
+    @Test
+    public void getSummary_notInSuw_verifySummary() {
+        mController.setInSetupWizard(false);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(
+                mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating));
+    }
+
+    @Test
+    public void isShortcutAvailable_floatingMenuEnabled_returnTrue() {
+        setFloatingButtonEnabled(true);
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @Test
+    public void isShortcutAvailable_floatingMenuDisabled_returnFalse() {
+        setFloatingButtonEnabled(false);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    private void setFloatingButtonEnabled(boolean enable) {
+        int mode = enable
+                ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : ACCESSIBILITY_BUTTON_MODE_GESTURE;
+
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
new file mode 100644
index 0000000..010386c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/GestureShortcutOptionControllerTest.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.view.accessibility.AccessibilityManager;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.testutils.AccessibilityTestUtils;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link GestureShortcutOptionController}
+ */
+@Config(shadows = SettingsShadowResources.class)
+@RunWith(RobolectricTestRunner.class)
+public class GestureShortcutOptionControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
+    private GestureShortcutOptionController mController;
+    private ShortcutOptionPreference mShortcutOptionPreference;
+
+    private PreferenceScreen mPreferenceScreen;
+
+    @Before
+    public void setUp() {
+        mController = new GestureShortcutOptionController(
+                mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET));
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreferenceScreen.addPreference(mShortcutOptionPreference);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
+        enableTouchExploration(false);
+    }
+
+    @Test
+    public void displayPreference_verifyTitle() {
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_title_software_by_gesture));
+    }
+
+    @Test
+    public void getSummary_touchExplorationDisabled_verifySummary() {
+        enableTouchExploration(false);
+        String expected = mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture)
+                + "\n\n"
+                + mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void getSummary_touchExplorationEnabled_verifySummary() {
+        enableTouchExploration(true);
+        String expected = mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_gesture_talkback)
+                + "\n\n"
+                + mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+
+        assertThat(mController.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void isShortcutAvailable_inSuw_returnFalse() {
+        mController.setInSetupWizard(true);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_notInSuwUseGestureNavSystemUseFab_returnFalse() {
+        mController.setInSetupWizard(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ true);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_notInSuwUseGestureNavSystemNotUseFab_returnTrue() {
+        mController.setInSetupWizard(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @Test
+    public void isShortcutAvailable_notInSuwUseButtonNavSystemUseFab_returnFalse() {
+        mController.setInSetupWizard(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_notInSuwUseButtonNavSystemNotUseFab_returnFalse() {
+        mController.setInSetupWizard(false);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    private void enableTouchExploration(boolean enable) {
+        AccessibilityManager am = mock(AccessibilityManager.class);
+        when(mContext.getSystemService(AccessibilityManager.class)).thenReturn(am);
+        when(am.isTouchExplorationEnabled()).thenReturn(enable);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/NavButtonShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/NavButtonShortcutOptionControllerTest.java
new file mode 100644
index 0000000..9106d00
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/NavButtonShortcutOptionControllerTest.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.ComponentName;
+import android.content.Context;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.testutils.AccessibilityTestUtils;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link NavButtonShortcutOptionController}
+ */
+@Config(shadows = SettingsShadowResources.class)
+@RunWith(RobolectricTestRunner.class)
+public class NavButtonShortcutOptionControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    private final Context mContext = spy(ApplicationProvider.getApplicationContext());
+    private NavButtonShortcutOptionController mController;
+    private ShortcutOptionPreference mShortcutOptionPreference;
+
+    private PreferenceScreen mPreferenceScreen;
+
+    @Before
+    public void setUp() {
+        mController = new NavButtonShortcutOptionController(
+                mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET));
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreferenceScreen.addPreference(mShortcutOptionPreference);
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
+    }
+
+    @Test
+    public void displayPreference_verifyTitle() {
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_title_software));
+    }
+
+    @Test
+    public void displayPreference_inSuw_verifySummary() {
+        mController.setInSetupWizard(true);
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.accessibility_shortcut_edit_dialog_summary_software));
+    }
+
+    @Test
+    public void displayPreference_notInSuw_verifySummary() {
+        mController.setInSetupWizard(false);
+        String expected = mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software)
+                + "\n\n"
+                + mContext.getString(
+                R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void isShortcutAvailable_useGestureNavSystemUseFab_returnFalse() {
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ true);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_useGestureNavSystemNotUseFab_returnFalse() {
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ true, /* floatingButtonEnabled= */ false);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_useButtonNavSystemUseFab_returnFalse() {
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ true);
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_useButtonNavSystemNotUseFab_returnTrue() {
+        AccessibilityTestUtils.setSoftwareShortcutMode(
+                mContext, /* gestureNavEnabled= */ false, /* floatingButtonEnabled= */ false);
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceControllerTest.java
new file mode 100644
index 0000000..d3d425e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceControllerTest.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+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 androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InOrder;
+import org.mockito.Mockito;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link ShortcutOptionPreferenceController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class ShortcutOptionPreferenceControllerTest {
+
+    private static final String PREF_KEY = "prefKey";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private ShortcutOptionPreference mShortcutOptionPreference;
+    private ShortcutOptionPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mShortcutOptionPreference = spy(new ShortcutOptionPreference(mContext));
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mController = spy(new ShortcutOptionPreferenceController(mContext, PREF_KEY) {
+            @Override
+            protected boolean isShortcutAvailable() {
+                return false;
+            }
+
+            @Override
+            protected boolean isChecked() {
+                return false;
+            }
+
+            @Override
+            protected void enableShortcutForTargets(boolean enable) {
+                // do nothing
+            }
+        });
+    }
+
+    @Test
+    public void updateState_shortcutControllerIsChecked_shouldSetPreferenceChecked() {
+        when(mController.isChecked()).thenReturn(true);
+
+        mController.updateState(mShortcutOptionPreference);
+
+        assertThat(mShortcutOptionPreference.isChecked()).isTrue();
+    }
+
+    @Test
+    public void updateState_shortcutControllerIsNotChecked_shouldSetPreferenceUnchecked() {
+        when(mController.isChecked()).thenReturn(false);
+
+        mController.updateState(mShortcutOptionPreference);
+
+        assertThat(mShortcutOptionPreference.isChecked()).isFalse();
+    }
+
+    @Test
+    public void getAvailabilityStatus_shortcutAvailable_returnAvailableUnsearchable() {
+        when(mController.isShortcutAvailable()).thenReturn(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_shortcutUnavailable_returnConditionallyUnavailable() {
+        when(mController.isShortcutAvailable()).thenReturn(false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void onPreferenceChanged_callEnableShortcutForTargets() {
+        mController.onPreferenceChange(mShortcutOptionPreference, true);
+        mController.onPreferenceChange(mShortcutOptionPreference, false);
+
+        InOrder inOrder = Mockito.inOrder(mController);
+        inOrder.verify(mController).enableShortcutForTargets(true);
+        inOrder.verify(mController).enableShortcutForTargets(false);
+    }
+
+    @Test
+    public void getShortcutTargets() {
+        Set<String> targets = Set.of("target1", "target2");
+        mController.setShortcutTargets(targets);
+
+        assertThat(mController.getShortcutTargets())
+                .containsExactlyElementsIn(targets);
+    }
+
+    @Test
+    public void isInSetupWizard() {
+        mController.setInSetupWizard(true);
+
+        assertThat(mController.isInSetupWizard()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
new file mode 100644
index 0000000..981b86d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/ShortcutOptionPreferenceTest.java
@@ -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.accessibility.shortcuts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/**
+ * Test for {@link ShortcutOptionPreferenceTest}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class ShortcutOptionPreferenceTest {
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private ShortcutOptionPreference mShortcutOptionPreference;
+    private PreferenceViewHolder mViewHolder;
+    private ImageView mImageView;
+
+    @Before
+    public void setUp() {
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        int layoutId =  mShortcutOptionPreference.getLayoutResource();
+        View itemView = LayoutInflater.from(mContext).inflate(layoutId, /* root= */null);
+        mViewHolder = PreferenceViewHolder.createInstanceForTests(itemView);
+        mImageView = (ImageView) mViewHolder.findViewById(R.id.image);
+    }
+
+    @Test
+    public void bindViewHolder_imageResNotSet_shouldHideImageView() {
+        mShortcutOptionPreference.onBindViewHolder(mViewHolder);
+
+        assertThat(mImageView.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void bindViewHolder_imageResIdSet_shouldShowImageView() {
+        mShortcutOptionPreference.setIntroImageResId(R.drawable.a11y_shortcut_type_hardware);
+
+        mShortcutOptionPreference.onBindViewHolder(mViewHolder);
+
+        assertThat(mImageView.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void bindViewHolder_imageRawResIdSet_shouldShowImageView() {
+        mShortcutOptionPreference.setIntroImageRawResId(
+                com.android.settings.R.raw.accessibility_color_inversion_banner);
+
+        mShortcutOptionPreference.onBindViewHolder(mViewHolder);
+
+        assertThat(mImageView.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void bindViewHolder_shouldUpdateSummaryTextLineHeight() {
+        assertThat(mShortcutOptionPreference.getSummaryTextLineHeight()).isEqualTo(0);
+
+        mShortcutOptionPreference.onBindViewHolder(mViewHolder);
+
+        assertThat(mShortcutOptionPreference.getSummaryTextLineHeight()).isNotEqualTo(0);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/SoftwareShortcutOptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/SoftwareShortcutOptionPreferenceControllerTest.java
new file mode 100644
index 0000000..1f7e019
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/SoftwareShortcutOptionPreferenceControllerTest.java
@@ -0,0 +1,330 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static com.android.internal.accessibility.common.ShortcutConstants.SERVICES_SEPARATOR;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.accessibilityservice.AccessibilityServiceInfo;
+import android.app.Application;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.os.Build;
+import android.provider.Settings;
+import android.text.SpannableStringBuilder;
+import android.view.View;
+import android.view.accessibility.AccessibilityManager;
+
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.util.ShortcutUtils;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SubSettings;
+import com.android.settings.accessibility.AccessibilityButtonFragment;
+import com.android.settings.accessibility.FloatingMenuSizePreferenceController;
+import com.android.settings.utils.AnnotationSpan;
+import com.android.settingslib.accessibility.AccessibilityUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Tests for {@link SoftwareShortcutOptionPreferenceController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class SoftwareShortcutOptionPreferenceControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET_MAGNIFICATION =
+            "com.android.server.accessibility.MagnificationController";
+    private static final ComponentName TARGET_ALWAYS_ON_A11Y_SERVICE =
+            new ComponentName("FakePackage", "AlwaysOnA11yService");
+    private static final ComponentName TARGET_STANDARD_A11Y_SERVICE =
+            new ComponentName("FakePackage", "StandardA11yService");
+    private static final String SOFTWARE_SHORTCUT_SETTING_NAME =
+            Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
+
+    private Context mContext;
+    private TestSoftwareShortcutOptionPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        mContext = spy(Robolectric.buildActivity(FragmentActivity.class).get());
+
+        AccessibilityServiceInfo mAlwaysOnServiceInfo = createAccessibilityServiceInfo(
+                TARGET_ALWAYS_ON_A11Y_SERVICE, /* isAlwaysOnService= */ true);
+        AccessibilityServiceInfo mStandardServiceInfo = createAccessibilityServiceInfo(
+                TARGET_STANDARD_A11Y_SERVICE, /* isAlwaysOnService= */ false);
+        AccessibilityManager am = mock(AccessibilityManager.class);
+        when(mContext.getSystemService(Context.ACCESSIBILITY_SERVICE)).thenReturn(am);
+        when(am.getInstalledAccessibilityServiceList()).thenReturn(
+                List.of(mAlwaysOnServiceInfo, mStandardServiceInfo));
+
+        mController = new TestSoftwareShortcutOptionPreferenceController(mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+    }
+
+    @Test
+    public void isChecked_allTargetsHasShortcutConfigured_returnTrue() {
+        Settings.Secure.putString(
+                mContext.getContentResolver(), SOFTWARE_SHORTCUT_SETTING_NAME,
+                String.join(String.valueOf(SERVICES_SEPARATOR),
+                        TARGET_MAGNIFICATION,
+                        TARGET_STANDARD_A11Y_SERVICE.flattenToString(),
+                        TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString())
+        );
+        mController.setShortcutTargets(
+                Set.of(TARGET_MAGNIFICATION,
+                        TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(),
+                        TARGET_STANDARD_A11Y_SERVICE.flattenToString()));
+
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_someTargetsHasShortcutConfigured_returnFalse() {
+        Settings.Secure.putString(
+                mContext.getContentResolver(), SOFTWARE_SHORTCUT_SETTING_NAME,
+                String.join(String.valueOf(SERVICES_SEPARATOR),
+                        TARGET_MAGNIFICATION,
+                        TARGET_STANDARD_A11Y_SERVICE.flattenToString())
+        );
+        mController.setShortcutTargets(
+                Set.of(TARGET_MAGNIFICATION,
+                        TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(),
+                        TARGET_STANDARD_A11Y_SERVICE.flattenToString()));
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void isChecked_noTargetsHasShortcutConfigured_returnFalse() {
+        Settings.Secure.putString(
+                mContext.getContentResolver(), SOFTWARE_SHORTCUT_SETTING_NAME, "");
+        mController.setShortcutTargets(
+                Set.of(TARGET_MAGNIFICATION,
+                        TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString(),
+                        TARGET_STANDARD_A11Y_SERVICE.flattenToString()));
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void getCustomizedAccessibilityButtonLink_verifyText() {
+        String expected =
+                mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+
+        CharSequence spannable = mController.getCustomizeAccessibilityButtonLink();
+
+        assertThat(spannable.toString()).isEqualTo(expected);
+    }
+
+    @Test
+    public void getCustomizedAccessibilityButtonLink_verifyClickAction() {
+        String expected =
+                mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_summary_software_floating);
+
+        CharSequence spannable = mController.getCustomizeAccessibilityButtonLink();
+
+        assertThat(spannable).isInstanceOf(SpannableStringBuilder.class);
+        AnnotationSpan[] spans = ((SpannableStringBuilder) spannable).getSpans(
+                0, expected.length(), AnnotationSpan.class);
+        spans[0].onClick(new View(mContext));
+        assertLaunchSettingsPage(AccessibilityButtonFragment.class.getName());
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableShortcut_shortcutTurnedOn() {
+        String target = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString();
+        mController.setShortcutTargets(Set.of(target));
+        assertThat(ShortcutUtils.isComponentIdExistingInSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, target
+        )).isFalse();
+
+        mController.enableShortcutForTargets(true);
+
+        assertThat(ShortcutUtils.isComponentIdExistingInSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, target
+        )).isTrue();
+    }
+
+    @Test
+    public void enableShortcutForTargets_disableShortcut_shortcutTurnedOff() {
+        String target = TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString();
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, target);
+        assertThat(ShortcutUtils.isComponentIdExistingInSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, target
+        )).isTrue();
+        mController.setShortcutTargets(Set.of(target));
+
+        mController.enableShortcutForTargets(false);
+
+        assertThat(ShortcutUtils.isComponentIdExistingInSettings(
+                mContext, ShortcutConstants.UserShortcutType.SOFTWARE, target
+        )).isFalse();
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableShortcutWithMagnification_menuSizeIncreased() {
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        mController.enableShortcutForTargets(true);
+
+        assertThat(
+                Settings.Secure.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                        FloatingMenuSizePreferenceController.Size.UNKNOWN))
+                .isEqualTo(FloatingMenuSizePreferenceController.Size.LARGE);
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableShortcutWithMagnification_userConfigureSmallMenuSize_menuSizeNotChanged() {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                FloatingMenuSizePreferenceController.Size.SMALL);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        mController.enableShortcutForTargets(true);
+
+        assertThat(
+                Settings.Secure.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_FLOATING_MENU_SIZE,
+                        FloatingMenuSizePreferenceController.Size.UNKNOWN))
+                .isEqualTo(FloatingMenuSizePreferenceController.Size.SMALL);
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableAlwaysOnServiceShortcut_turnsOnAlwaysOnService() {
+        mController.setShortcutTargets(
+                Set.of(TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString()));
+
+        mController.enableShortcutForTargets(true);
+
+        assertThat(AccessibilityUtils.getEnabledServicesFromSettings(mContext))
+                .contains(TARGET_ALWAYS_ON_A11Y_SERVICE);
+    }
+
+    @Test
+    public void enableShortcutForTargets_disableAlwaysOnServiceShortcut_turnsOffAlwaysOnService() {
+        mController.setShortcutTargets(
+                Set.of(TARGET_ALWAYS_ON_A11Y_SERVICE.flattenToString()));
+
+        mController.enableShortcutForTargets(false);
+
+        assertThat(AccessibilityUtils.getEnabledServicesFromSettings(mContext))
+                .doesNotContain(TARGET_ALWAYS_ON_A11Y_SERVICE);
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableStandardServiceShortcut_wontTurnOnService() {
+        mController.setShortcutTargets(
+                Set.of(TARGET_STANDARD_A11Y_SERVICE.flattenToString()));
+
+        mController.enableShortcutForTargets(true);
+
+        assertThat(AccessibilityUtils.getEnabledServicesFromSettings(mContext))
+                .doesNotContain(TARGET_STANDARD_A11Y_SERVICE);
+    }
+
+    @Test
+    public void enableShortcutForTargets_disableStandardServiceShortcutWithServiceOn_wontTurnOffService() {
+        mController.setShortcutTargets(
+                Set.of(TARGET_STANDARD_A11Y_SERVICE.flattenToString()));
+        AccessibilityUtils.setAccessibilityServiceState(
+                mContext, TARGET_STANDARD_A11Y_SERVICE, /* enabled= */ true);
+
+        mController.enableShortcutForTargets(false);
+
+        assertThat(AccessibilityUtils.getEnabledServicesFromSettings(mContext))
+                .contains(TARGET_STANDARD_A11Y_SERVICE);
+    }
+
+    private void assertLaunchSettingsPage(String page) {
+        ContextWrapper applicationContext = (Application) mContext.getApplicationContext();
+        final Intent intent = Shadows.shadowOf(applicationContext).getNextStartedActivity();
+        assertThat(intent).isNotNull();
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
+        assertThat(intent.getComponent()).isEqualTo(
+                new ComponentName(applicationContext, SubSettings.class));
+        assertThat(intent.getExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(page);
+    }
+
+    private AccessibilityServiceInfo createAccessibilityServiceInfo(
+            ComponentName componentName, boolean isAlwaysOnService) {
+        final ApplicationInfo applicationInfo = new ApplicationInfo();
+        applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
+        final ServiceInfo serviceInfo = new ServiceInfo();
+        applicationInfo.packageName = componentName.getPackageName();
+        serviceInfo.packageName = componentName.getPackageName();
+        serviceInfo.name = componentName.getClassName();
+        serviceInfo.applicationInfo = applicationInfo;
+
+        final ResolveInfo resolveInfo = new ResolveInfo();
+        resolveInfo.serviceInfo = serviceInfo;
+        try {
+            final AccessibilityServiceInfo info = new AccessibilityServiceInfo(resolveInfo,
+                    mContext);
+            info.setComponentName(componentName);
+            if (isAlwaysOnService) {
+                info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
+            }
+            return info;
+        } catch (XmlPullParserException | IOException e) {
+            // Do nothing
+        }
+        return null;
+    }
+
+    private static class TestSoftwareShortcutOptionPreferenceController
+            extends SoftwareShortcutOptionPreferenceController {
+
+        TestSoftwareShortcutOptionPreferenceController(
+                Context context, String preferenceKey) {
+            super(context, preferenceKey);
+        }
+
+        @Override
+        protected boolean isShortcutAvailable() {
+            return true;
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.java
new file mode 100644
index 0000000..800640a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TripleTapShortcutOptionControllerTest.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.accessibility.shortcuts;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.icu.text.MessageFormat;
+import android.provider.Settings;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link TripleTapShortcutOptionController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class TripleTapShortcutOptionControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET_MAGNIFICATION =
+            "com.android.server.accessibility.MagnificationController";
+    private static final String TARGET_FAKE =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private TripleTapShortcutOptionController mController;
+    private ShortcutOptionPreference mShortcutOptionPreference;
+    private PreferenceScreen mPreferenceScreen;
+
+    @Before
+    public void setUp() {
+        mController = new TripleTapShortcutOptionController(mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreferenceScreen.addPreference(mShortcutOptionPreference);
+    }
+
+    @Test
+    public void displayPreference_verifyScreenTestSet() {
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.accessibility_shortcut_edit_dialog_title_triple_tap));
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
+                MessageFormat.format(
+                        mContext.getString(
+                                R.string.accessibility_shortcut_edit_dialog_summary_triple_tap),
+                        3));
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsMagnificationAndIsExpanded_returnsAvailableUnsearchable() {
+        mController.setExpanded(true);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsMagnificationAndIsNotExpanded_returnsConditionallyUnavailable() {
+        mController.setExpanded(false);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsNotMagnificationAndIsNotExpanded_returnsConditionallyUnavailable() {
+        mController.setExpanded(false);
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_targetIsNotMagnificationAndIsExpanded_returnsConditionallyUnavailable() {
+        mController.setExpanded(true);
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void setExpanded_expand_updateExpandedValue() {
+        mController.setExpanded(true);
+
+        assertThat(mController.isExpanded()).isTrue();
+    }
+
+    @Test
+    public void setExpanded_collapse_updateExpandedValue() {
+        mController.setExpanded(false);
+
+        assertThat(mController.isExpanded()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_multipleTargets_returnFalse() {
+        mController.setShortcutTargets(Set.of(TARGET_FAKE, TARGET_MAGNIFICATION));
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isShortcutAvailable_magnificationTargetOnly_returnTrue() {
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @Test
+    public void isShortcutAvailable_nonMagnificationTarget_returnFalse() {
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isChecked_tripleTapConfigured_returnTrue() {
+        mController.enableShortcutForTargets(true);
+
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_tripleTapNotConfigured_returnFalse() {
+        mController.enableShortcutForTargets(false);
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableShortcut_settingUpdated() {
+        mController.enableShortcutForTargets(true);
+
+        assertThat(
+                Settings.Secure.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                        AccessibilityUtil.State.OFF)
+        ).isEqualTo(AccessibilityUtil.State.ON);
+    }
+
+    @Test
+    public void enableShortcutForTargets_disableShortcut_settingUpdated() {
+        mController.enableShortcutForTargets(false);
+
+        assertThat(
+                Settings.Secure.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                        AccessibilityUtil.State.OFF)
+        ).isEqualTo(AccessibilityUtil.State.OFF);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingersDoubleTapShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingersDoubleTapShortcutOptionControllerTest.java
new file mode 100644
index 0000000..d27560b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/TwoFingersDoubleTapShortcutOptionControllerTest.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.shortcuts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ComponentName;
+import android.content.Context;
+import android.icu.text.MessageFormat;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.provider.Settings;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.server.accessibility.Flags;
+import com.android.settings.R;
+import com.android.settings.accessibility.AccessibilityUtil;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link TwoFingersDoubleTapShortcutOptionController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class TwoFingersDoubleTapShortcutOptionControllerTest {
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET_MAGNIFICATION =
+            "com.android.server.accessibility.MagnificationController";
+    private static final String TARGET_FAKE =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private TwoFingersDoubleTapShortcutOptionController mController;
+    private ShortcutOptionPreference mShortcutOptionPreference;
+
+    private PreferenceScreen mPreferenceScreen;
+
+    @Before
+    public void setUp() {
+        mController = new TwoFingersDoubleTapShortcutOptionController(mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreferenceScreen.addPreference(mShortcutOptionPreference);
+    }
+
+    @Test
+    public void displayPreference_verifyScreenTextSet() {
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_title_two_finger_double_tap));
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
+                MessageFormat.format(mContext.getString(
+                        R.string.accessibility_shortcut_edit_dialog_summary_two_finger_double_tap),
+                        2));
+    }
+
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    @Test
+    public void isShortcutAvailable_featureFlagTurnedOff_returnFalse() {
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    @Test
+    public void isShortcutAvailable_multipleTargets_returnFalse() {
+        mController.setShortcutTargets(Set.of(TARGET_FAKE, TARGET_MAGNIFICATION));
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    @Test
+    public void isShortcutAvailable_magnificationTargetOnly_returnTrue() {
+        mController.setShortcutTargets(Set.of(TARGET_MAGNIFICATION));
+
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_MAGNIFICATION_MULTIPLE_FINGER_MULTIPLE_TAP_GESTURE)
+    @Test
+    public void isShortcutAvailable_nonMagnificationTarget_returnFalse() {
+        mController.setShortcutTargets(Set.of(TARGET_FAKE));
+
+        assertThat(mController.isShortcutAvailable()).isFalse();
+    }
+
+    @Test
+    public void isChecked_twoFingersDoubleTapConfigured_returnTrue() {
+        mController.enableShortcutForTargets(true);
+
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_twoFingersDoubleTapNotConfigured_returnFalse() {
+        mController.enableShortcutForTargets(false);
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableShortcut_settingUpdated() {
+        mController.enableShortcutForTargets(true);
+
+        assertThat(
+                Settings.Secure.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                        AccessibilityUtil.State.OFF)
+        ).isEqualTo(AccessibilityUtil.State.ON);
+    }
+
+    @Test
+    public void enableShortcutForTargets_disableShortcut_settingUpdated() {
+        mController.enableShortcutForTargets(false);
+
+        assertThat(
+                Settings.Secure.getInt(
+                        mContext.getContentResolver(),
+                        Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                        AccessibilityUtil.State.OFF)
+        ).isEqualTo(AccessibilityUtil.State.OFF);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/VolumeKeysShortcutOptionControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/VolumeKeysShortcutOptionControllerTest.java
new file mode 100644
index 0000000..48a90a7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/VolumeKeysShortcutOptionControllerTest.java
@@ -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.accessibility.shortcuts;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ComponentName;
+import android.content.Context;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.util.ShortcutUtils;
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.Set;
+
+/**
+ * Tests for {@link VolumeKeysShortcutOptionController}
+ */
+@RunWith(RobolectricTestRunner.class)
+public class VolumeKeysShortcutOptionControllerTest {
+
+    private static final String PREF_KEY = "prefKey";
+    private static final String TARGET =
+            new ComponentName("FakePackage", "FakeClass").flattenToString();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private VolumeKeysShortcutOptionController mController;
+    private ShortcutOptionPreference mShortcutOptionPreference;
+
+    private PreferenceScreen mPreferenceScreen;
+
+    @Before
+    public void setUp() {
+        mController = new VolumeKeysShortcutOptionController(
+                mContext, PREF_KEY);
+        mController.setShortcutTargets(Set.of(TARGET));
+        mShortcutOptionPreference = new ShortcutOptionPreference(mContext);
+        mShortcutOptionPreference.setKey(PREF_KEY);
+        mPreferenceScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreferenceScreen.addPreference(mShortcutOptionPreference);
+    }
+
+    @Test
+    public void displayPreference_verifyScreenTextSet() {
+        mController.displayPreference(mPreferenceScreen);
+
+        assertThat(mShortcutOptionPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.accessibility_shortcut_edit_dialog_title_hardware));
+        assertThat(mShortcutOptionPreference.getSummary().toString()).isEqualTo(
+                mContext.getString(R.string.accessibility_shortcut_edit_dialog_summary_hardware));
+    }
+
+    @Test
+    public void isShortcutAvailable_returnsTrue() {
+        assertThat(mController.isShortcutAvailable()).isTrue();
+    }
+
+    @Test
+    public void isChecked_targetUseVolumeKeyShortcut_returnTrue() {
+        ShortcutUtils.optInValueToSettings(
+                mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET);
+
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_targetNotUseVolumeKeyShortcut_returnFalse() {
+        ShortcutUtils.optOutValueFromSettings(
+                mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET);
+
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void enableShortcutForTargets_enableVolumeKeysShortcut_shortcutSet() {
+        mController.enableShortcutForTargets(true);
+
+        assertThat(
+                ShortcutUtils.isComponentIdExistingInSettings(
+                        mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET)).isTrue();
+    }
+
+    @Test
+    public void enableShortcutForTargets_disableVolumeKeysShortcut_shortcutNotSet() {
+        mController.enableShortcutForTargets(false);
+
+        assertThat(
+                ShortcutUtils.isComponentIdExistingInSettings(
+                        mContext, ShortcutConstants.UserShortcutType.HARDWARE, TARGET)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
index cccca9c..d696ebb 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -63,7 +63,12 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAccountManager.class, ShadowUserManager.class})
+@Config(shadows = {
+        ShadowAccountManager.class,
+        ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowDashboardFragment.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AccountDetailDashboardFragmentTest {
 
     private static final String METADATA_CATEGORY = "com.android.settings.category";
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java
index 8fb40bf..94d150d 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java
@@ -72,7 +72,8 @@
         MockitoAnnotations.initMocks(this);
         FakeFeatureFactory.setupForTest();
         mHeaderPreference = new LayoutPreference(
-                RuntimeEnvironment.application, R.layout.settings_entity_header);
+                RuntimeEnvironment.application,
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header);
         doReturn(RuntimeEnvironment.application).when(mActivity).getApplicationContext();
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
index 89e00e1..cab1811 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
@@ -254,25 +254,26 @@
     }
 
     @Test
-    public void updateRawDataToIndex_ManagedProfile_shouldNotUpdate() {
+    public void updateRawDataToIndex_noManagedProfile_shouldContainAddAccount() {
+        final List<SearchIndexableRaw> data = new ArrayList<>();
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+
+        mController.updateRawDataToIndex(data);
+
+        assertThat(data).hasSize(1);
+        assertThat(data.get(0).key).isEqualTo("add_account");
+    }
+
+
+    @Test
+    public void updateRawDataToIndex_ManagedProfile_shouldContainAddAccount() {
         final List<SearchIndexableRaw> data = new ArrayList<>();
         when(mUserManager.isManagedProfile()).thenReturn(true);
 
         mController.updateRawDataToIndex(data);
 
-        assertThat(data).isEmpty();
-    }
-
-    @Test
-    public void updateRawDataToIndex_DisabledUser_shouldNotUpdate() {
-        final List<SearchIndexableRaw> data = new ArrayList<>();
-        final List<UserInfo> infos = new ArrayList<>();
-        infos.add(new UserInfo(1, "user 1", UserInfo.FLAG_DISABLED));
-        when(mUserManager.isManagedProfile()).thenReturn(false);
-        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
-        mController.updateRawDataToIndex(data);
-
-        assertThat(data).isEmpty();
+        assertThat(data).hasSize(1);
+        assertThat(data.get(0).key).isEqualTo("add_account");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
index e760e62..1084102 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.shadow.ShadowAccountManager;
 import com.android.settings.testutils.shadow.ShadowContentResolver;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.After;
 import org.junit.Before;
@@ -63,8 +62,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
         ShadowApplication.getInstance().setSystemService(Context.ACCOUNT_SERVICE, mAccountManager);
 
         when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java
index bdf1290..3bdfec2 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java
@@ -41,7 +41,10 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowContentResolver.class})
+@Config(shadows = {
+        ShadowContentResolver.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AccountSyncSettingsTest {
     private Context mContext;
     private AccountSyncSettings mAccountSyncSettings;
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java b/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java
index 405f6b3..f5c588f 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java
@@ -52,6 +52,9 @@
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AccountTypePreferenceLoaderTest {
 
     @Mock(answer = RETURNS_DEEP_STUBS)
diff --git a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
index 1f457da..59e656c 100644
--- a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java
@@ -23,6 +23,7 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 
+import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
@@ -35,44 +36,48 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.shadow.ShadowAccountManager;
 import com.android.settings.testutils.shadow.ShadowContentResolver;
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class,
         ShadowRestrictedLockUtilsInternal.class})
 public class ChooseAccountPreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private Context mContext;
     private ChooseAccountPreferenceController mController;
     private Activity mActivity;
     private PreferenceManager mPreferenceManager;
     private PreferenceScreen mPreferenceScreen;
+    private ShadowAccountManager mAccountManager;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = spy(new ChooseAccountPreferenceController(mContext, "controller_key"));
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mPreferenceManager = new PreferenceManager(mContext);
         mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        mAccountManager = (ShadowAccountManager) Shadows.shadowOf(AccountManager.get(mContext));
     }
 
     @After
@@ -110,7 +115,7 @@
         final AuthenticatorDescription authDesc = new AuthenticatorDescription("com.acct1",
                 "com.android.settings",
                 R.string.header_add_an_account, 0, 0, 0, false);
-        ShadowAccountManager.addAuthenticator(authDesc);
+        mAccountManager.addAuthenticator(authDesc);
 
         final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
                 "com.acct1" /* accountType */, false /* userVisible */,
@@ -135,7 +140,7 @@
         final AuthenticatorDescription authDesc = new AuthenticatorDescription("com.acct1",
                 "com.android.settings",
                 R.string.header_add_an_account, 0, 0, 0, false);
-        ShadowAccountManager.addAuthenticator(authDesc);
+        mAccountManager.addAuthenticator(authDesc);
 
         final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
                 "com.acct1" /* accountType */, false /* userVisible */,
@@ -160,7 +165,7 @@
         final AuthenticatorDescription authDesc = new AuthenticatorDescription("com.acct1",
                 "com.android.settings",
                 R.string.header_add_an_account, 0, 0, 0, false);
-        ShadowAccountManager.addAuthenticator(authDesc);
+        mAccountManager.addAuthenticator(authDesc);
 
         final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
                 "com.acct1" /* accountType */, false /* userVisible */,
@@ -173,7 +178,7 @@
                 mActivity);
         mController.displayPreference(mPreferenceScreen);
 
-        assertThat(mActivity.isFinishing()).isTrue();
+        assertThat(mActivity.isFinishing()).isFalse();
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(0);
     }
 
@@ -186,8 +191,8 @@
         final AuthenticatorDescription authDesc2 = new AuthenticatorDescription("com.acct2",
                 "com.android.settings",
                 R.string.header_add_an_account, 0, 0, 0, false);
-        ShadowAccountManager.addAuthenticator(authDesc);
-        ShadowAccountManager.addAuthenticator(authDesc2);
+        mAccountManager.addAuthenticator(authDesc);
+        mAccountManager.addAuthenticator(authDesc2);
 
         final SyncAdapterType[] syncAdapters = {new SyncAdapterType("authority" /* authority */,
                 "com.acct1" /* accountType */, false /* userVisible */,
diff --git a/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java
index b50fa5e..ca4fc59 100644
--- a/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java
@@ -26,34 +26,31 @@
 import static org.mockito.ArgumentMatchers.anyInt;
 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.RuntimeEnvironment.application;
 
-import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.os.UserHandle;
 import android.provider.Settings;
-import android.util.ArraySet;
 
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settingslib.RestrictedSwitchPreference;
 
 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 org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowDevicePolicyManager;
+import org.robolectric.annotation.Config;
 
-import java.util.Arrays;
 import java.util.Collections;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowDevicePolicyManager.class,
+})
 public class CrossProfileCalendarPreferenceControllerTest {
 
     private static final String PREF_KEY = "cross_profile_calendar";
@@ -76,7 +73,7 @@
         mController = new CrossProfileCalendarPreferenceController(mContext, PREF_KEY);
         mController.setManagedUser(mManagedUser);
         mPreference = spy(new RestrictedSwitchPreference(mContext));
-        dpm = Shadows.shadowOf(application.getSystemService(DevicePolicyManager.class));
+        dpm = ShadowDevicePolicyManager.getShadow();
 
         when(mManagedUser.getIdentifier()).thenReturn(MANAGED_USER_ID);
         doReturn(mContext).when(mContext).createPackageContextAsUser(
diff --git a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
index 7433d7a..ece7ea9 100644
--- a/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/EmergencyInfoPreferenceControllerTest.java
@@ -40,7 +40,6 @@
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowAccountManager;
 import com.android.settings.testutils.shadow.ShadowContentResolver;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import org.junit.After;
@@ -76,8 +75,7 @@
         doReturn(mock(DevicePolicyManager.class)).when(mContext)
                 .getSystemService(Context.DEVICE_POLICY_SERVICE);
         mController = new EmergencyInfoPreferenceController(mContext, "test_key");
-        mPreference = new Preference((Context) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get());
+        mPreference = new Preference(Robolectric.setupActivity(Activity.class));
         mPreference.setKey(mController.getPreferenceKey());
         when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
         when(mContext.getResources().getBoolean(R.bool.config_show_emergency_info_in_device_info))
diff --git a/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java b/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
index 2698efa..1a0f9d0 100644
--- a/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
@@ -19,18 +19,24 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.admin.flags.Flags;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.UserInfo;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
 import androidx.lifecycle.Lifecycle;
 import androidx.lifecycle.LifecycleOwner;
@@ -38,16 +44,21 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
+import org.robolectric.ParameterizedRobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 
 
-@RunWith(RobolectricTestRunner.class)
+@RunWith(ParameterizedRobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class ManagedProfileQuietModeEnablerTest {
     private static final int MANAGED_USER_ID = 10;
     private Context mContext;
@@ -61,6 +72,15 @@
         }
     };
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @ParameterizedRobolectricTestRunner.Parameters
+    public static List<?> params() {
+        return Arrays.asList(true, false);
+    }
+    final boolean mEnable;
+
     @Mock
     private ManagedProfileQuietModeEnabler.QuietModeChangeListener mOnQuietModeChangeListener;
     @Mock
@@ -70,6 +90,10 @@
     @Mock
     private UserInfo mUserInfo;
 
+    public ManagedProfileQuietModeEnablerTest(boolean enable) {
+        mEnable = enable;
+    }
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -86,10 +110,21 @@
 
     @Test
     public void onSetQuietMode_shouldRequestQuietModeEnabled() {
-        mQuietModeEnabler.setQuietModeEnabled(false);
-        verify(mUserManager).requestQuietModeEnabled(false, mManagedUser);
-        mQuietModeEnabler.setQuietModeEnabled(true);
-        verify(mUserManager).requestQuietModeEnabled(true, mManagedUser);
+        when(mUserManager.isQuietModeEnabled(any(UserHandle.class))).thenReturn(!mEnable);
+
+        mQuietModeEnabler.setQuietModeEnabled(mEnable);
+
+        verify(mUserManager).requestQuietModeEnabled(mEnable, mManagedUser);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_QUIET_MODE_CREDENTIAL_BUG_FIX)
+    public void onSetQuietMode_ifQuietModeAlreadyInDesiredState_shouldNotRequestQuietModeEnabled() {
+        when(mUserManager.isQuietModeEnabled(any(UserHandle.class))).thenReturn(mEnable);
+
+        mQuietModeEnabler.setQuietModeEnabled(mEnable);
+
+        verify(mUserManager, never()).requestQuietModeEnabled(anyBoolean(), any());
     }
 
     @Test
@@ -105,6 +140,7 @@
                 Intent.EXTRA_USER_HANDLE, MANAGED_USER_ID));
         mContext.sendBroadcast(new Intent(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE).putExtra(
                 Intent.EXTRA_USER_HANDLE, MANAGED_USER_ID));
+
         verify(mOnQuietModeChangeListener, times(2)).onQuietModeChanged();
     }
 
@@ -121,6 +157,7 @@
                 Context.RECEIVER_EXPORTED/*UNAUDITED*/);
 
         mQuietModeEnabler.onStop(mLifecycleOwner);
+
         verify(mContext).unregisterReceiver(mQuietModeEnabler.mReceiver);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java
index 6eb5abb..2052f46 100644
--- a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java
@@ -35,13 +35,10 @@
 import android.accounts.AuthenticatorException;
 import android.accounts.OperationCanceledException;
 import android.app.Activity;
-import android.content.ComponentName;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.UserHandle;
-import android.os.UserManager;
-import android.widget.Button;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
@@ -56,12 +53,11 @@
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowFragment;
 import com.android.settings.testutils.shadow.ShadowUserManager;
-import com.android.settings.utils.ActivityControllerWrapper;
+import com.android.settings.widget.RestrictedButton;
 import com.android.settingslib.widget.LayoutPreference;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -74,13 +70,12 @@
 import org.robolectric.shadows.ShadowApplication;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ShadowUserManager.class,
-        ShadowDevicePolicyManager.class
+        ShadowDevicePolicyManager.class,
+        ShadowFragment.class,
 })
 public class RemoveAccountPreferenceControllerTest {
 
@@ -117,8 +112,8 @@
         when(mAccountManager.getAuthenticatorTypesAsUser(anyInt()))
                 .thenReturn(new AuthenticatorDescription[0]);
         when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
-        mController = new RemoveAccountPreferenceController((Context) ActivityControllerWrapper
-                .setup(Robolectric.buildActivity(Activity.class)).get(), mFragment);
+        mController = new RemoveAccountPreferenceController(
+                Robolectric.setupActivity(Activity.class), mFragment);
     }
 
     @After
@@ -129,7 +124,7 @@
     @Test
     public void displayPreference_shouldAddClickListener() {
         when(mScreen.findPreference(KEY_REMOVE_ACCOUNT)).thenReturn(mPreference);
-        final Button button = mock(Button.class);
+        final RestrictedButton button = mock(RestrictedButton.class);
         when(mPreference.findViewById(R.id.button)).thenReturn(button);
 
         mController.displayPreference(mScreen);
@@ -147,32 +142,6 @@
                 eq(TAG_REMOVE_ACCOUNT_DIALOG));
     }
 
-    @Ignore
-    @Test
-    public void onClick_modifyAccountsIsDisallowed_shouldNotStartConfirmDialog() {
-        when(mFragment.isAdded()).thenReturn(true);
-
-        final int userId = UserHandle.myUserId();
-        mController.init(new Account("test", "test"), UserHandle.of(userId));
-
-        List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
-        enforcingUsers.add(new UserManager.EnforcingUser(userId,
-                UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
-        ComponentName componentName = new ComponentName("test", "test");
-        // Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
-        ShadowUserManager.getShadow().setUserRestrictionSources(
-                UserManager.DISALLOW_MODIFY_ACCOUNTS,
-                UserHandle.of(userId),
-                enforcingUsers);
-        ShadowDevicePolicyManager.getShadow().setDeviceOwnerComponentOnAnyUser(componentName);
-
-        mController.onClick(null);
-
-        verify(mFragmentTransaction, never()).add(
-                any(RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.class),
-                eq(TAG_REMOVE_ACCOUNT_DIALOG));
-    }
-
     @Test
     @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class,
             ShadowFragment.class})
diff --git a/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java
index d6be73d..91b240e 100644
--- a/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/WorkModePreferenceControllerTest.java
@@ -40,11 +40,13 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
+import org.robolectric.ParameterizedRobolectricTestRunner;
 
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 
-@RunWith(RobolectricTestRunner.class)
+@RunWith(ParameterizedRobolectricTestRunner.class)
 public class WorkModePreferenceControllerTest {
 
     private static final String PREF_KEY = "work_mode";
@@ -54,6 +56,11 @@
     private WorkModePreferenceController mController;
     private MainSwitchPreference mPreference;
 
+    @ParameterizedRobolectricTestRunner.Parameters
+    public static List<?> params() {
+        return Arrays.asList(true, false);
+    }
+    final boolean mEnable;
     @Mock
     private UserManager mUserManager;
     @Mock
@@ -65,6 +72,10 @@
     @Mock
     Switch mSwitch;
 
+    public WorkModePreferenceControllerTest(boolean enable) {
+        mEnable = enable;
+    }
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -99,28 +110,19 @@
     @Test
     public void updateState_shouldRefreshContent() {
         when(mUserManager.isQuietModeEnabled(any(UserHandle.class)))
-                .thenReturn(false);
+                .thenReturn(mEnable);
 
         mController.updateState(mPreference);
 
-        assertThat(mPreference.isChecked()).isTrue();
-
-        when(mUserManager.isQuietModeEnabled(any(UserHandle.class)))
-                .thenReturn(true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isFalse();
+        assertThat(mPreference.isChecked()).isEqualTo(!mEnable);
     }
 
     @Test
     public void onPreferenceChange_shouldRequestQuietModeEnabled() {
-        mController.onSwitchChanged(mSwitch, true);
+        when(mUserManager.isQuietModeEnabled(any(UserHandle.class))).thenReturn(mEnable);
 
-        verify(mUserManager).requestQuietModeEnabled(false, mManagedUser);
+        mController.onCheckedChanged(mSwitch, mEnable);
 
-        mController.onSwitchChanged(mSwitch, false);
-
-        verify(mUserManager).requestQuietModeEnabled(true, mManagedUser);
+        verify(mUserManager).requestQuietModeEnabled(!mEnable, mManagedUser);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
index 5137516..5e58f15 100644
--- a/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppDashboardFragmentTest.java
@@ -38,6 +38,7 @@
 import com.android.settingslib.drawer.CategoryKey;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -80,6 +81,7 @@
         assertThat(preferenceScreenKeys).containsAtLeastElementsIn(preferenceKeys);
     }
 
+    @Ignore("b/313578776")
     @Test
     @Config(shadows = ShadowUserManager.class)
     public void testAdvancedAppsCategory() {
diff --git a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
index a161f84..ce52027 100644
--- a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
@@ -48,6 +48,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -119,6 +120,7 @@
         assertThat(mAppInfoWithHeader.mPackageRemovedCalled).isTrue();
     }
 
+    @Ignore("b/315135755")
     @Test
     public void noExtraUserHandleInIntent_retrieveAppEntryWithMyUserId()
             throws PackageManager.NameNotFoundException {
@@ -144,6 +146,7 @@
         assertThat(mAppInfoWithHeader.mAppEntry).isNotNull();
     }
 
+    @Ignore("b/315135755")
     @Test
     public void extraUserHandleInIntent_retrieveAppEntryWithMyUserId()
             throws PackageManager.NameNotFoundException {
diff --git a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
index 71c532c..d27601e 100644
--- a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
@@ -40,17 +40,20 @@
 import android.os.UserManager;
 
 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 org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.Arrays;
 import java.util.Collections;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public final class AppWithAdminGrantedPermissionsCounterTest {
 
     private final String APP_1 = "app1";
@@ -155,11 +158,13 @@
                 mDevicePolicyManager, mPackageManager, mPackageManagerService, mApp5)).isFalse();
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCountInstalledAppsSync() throws Exception {
         verifyCountInstalledApps(false /* async */);
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCountInstalledAppsAync() throws Exception {
         verifyCountInstalledApps(true /* async */);
diff --git a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java
index 9a4978b..f08a9db 100644
--- a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java
@@ -42,6 +42,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.Arrays;
@@ -49,6 +50,7 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public final class AppWithAdminGrantedPermissionsListerTest {
 
     private final String APP_1 = "app1";
diff --git a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
index 7044389..0a763ff 100644
--- a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
@@ -35,14 +35,23 @@
 import android.content.pm.UserInfo;
 import android.location.LocationManager;
 import android.os.Build;
+import android.os.SystemConfigManager;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.webkit.Flags;
 
 import com.android.settings.testutils.ApplicationTestUtils;
+import com.android.settings.webview.WebViewUpdateServiceWrapper;
 import com.android.settingslib.testutils.shadow.ShadowDefaultDialerManager;
 import com.android.settingslib.testutils.shadow.ShadowSmsApplication;
 
 import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -50,6 +59,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.util.ReflectionHelpers;
 
@@ -62,8 +72,12 @@
  * Tests for {@link ApplicationFeatureProviderImpl}.
  */
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public final class ApplicationFeatureProviderImplTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private final int MAIN_USER_ID = 0;
     private final int MANAGED_PROFILE_ID = 10;
 
@@ -76,6 +90,9 @@
 
     private final String PERMISSION = "some.permission";
 
+    private final List<String> PREVENT_USER_DISABLE_PACKAGES = List.of(
+            "prevent.disable.package1", "prevent.disable.package2", "prevent.disable.package3");
+
     @Mock
     private UserManager mUserManager;
     @Mock
@@ -88,6 +105,10 @@
     private DevicePolicyManager mDevicePolicyManager;
     @Mock
     private LocationManager mLocationManager;
+    @Mock
+    private WebViewUpdateServiceWrapper mWebViewUpdateServiceWrapper;
+    @Mock
+    private SystemConfigManager mSystemConfigManager;
 
     private ApplicationFeatureProvider mProvider;
 
@@ -101,9 +122,10 @@
         when(mContext.getApplicationContext()).thenReturn(mContext);
         when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
         when(mContext.getSystemService(Context.LOCATION_SERVICE)).thenReturn(mLocationManager);
+        when(mContext.getSystemService(SystemConfigManager.class)).thenReturn(mSystemConfigManager);
 
         mProvider = new ApplicationFeatureProviderImpl(mContext, mPackageManager,
-                mPackageManagerService, mDevicePolicyManager);
+                mPackageManagerService, mDevicePolicyManager, mWebViewUpdateServiceWrapper);
     }
 
     private void verifyCalculateNumberOfPolicyInstalledApps(boolean async) {
@@ -138,11 +160,13 @@
         assertThat(mAppList.get(0).appInfo.packageName).isEqualTo(APP_2);
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCalculateNumberOfInstalledAppsSync() {
         verifyCalculateNumberOfPolicyInstalledApps(false /* async */);
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCalculateNumberOfInstalledAppsAsync() {
         verifyCalculateNumberOfPolicyInstalledApps(true /* async */);
@@ -174,11 +198,13 @@
         assertThat(mAppCount).isEqualTo(2);
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCalculateNumberOfAppsWithAdminGrantedPermissionsSync() throws Exception {
         verifyCalculateNumberOfAppsWithAdminGrantedPermissions(false /* async */);
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCalculateNumberOfAppsWithAdminGrantedPermissionsAsync() throws Exception {
         verifyCalculateNumberOfAppsWithAdminGrantedPermissions(true /* async */);
@@ -335,6 +361,26 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_UPDATE_SERVICE_V2)
+    public void getKeepEnabledPackages_shouldContainWebViewPackage() {
+        final String testWebViewPackageName = "com.android.webview";
+        when(mWebViewUpdateServiceWrapper.getDefaultWebViewPackageName())
+                .thenReturn(testWebViewPackageName);
+        final Set<String> allowlist = mProvider.getKeepEnabledPackages();
+        assertThat(allowlist).contains(testWebViewPackageName);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_UPDATE_SERVICE_V2)
+    public void getKeepEnabledPackages_shouldNotContainWebViewPackageIfFlagDisabled() {
+        final String testWebViewPackageName = "com.android.webview";
+        when(mWebViewUpdateServiceWrapper.getDefaultWebViewPackageName())
+                .thenReturn(testWebViewPackageName);
+        final Set<String> allowlist = mProvider.getKeepEnabledPackages();
+        assertThat(allowlist).doesNotContain(testWebViewPackageName);
+    }
+
+    @Test
     @Config(shadows = {ShadowSmsApplication.class, ShadowDefaultDialerManager.class})
     public void getKeepEnabledPackages_shouldContainPackageInstaller() {
         final String testDialer = "com.android.test.defaultdialer";
@@ -356,6 +402,16 @@
         assertThat(allowlist).contains("com.android.packageinstaller");
     }
 
+    @Test
+    public void getKeepEnabledPackages_shouldContainPreventUserDisablePackages() {
+        when(mSystemConfigManager.getPreventUserDisablePackages())
+                .thenReturn(PREVENT_USER_DISABLE_PACKAGES);
+
+        final Set<String> keepEnabledPackages = mProvider.getKeepEnabledPackages();
+
+        assertThat(keepEnabledPackages).containsAtLeastElementsIn(PREVENT_USER_DISABLE_PACKAGES);
+    }
+
     private void setUpUsersAndInstalledApps() {
         when(mUserManager.getProfiles(UserHandle.myUserId())).thenReturn(Arrays.asList(
                 new UserInfo(MAIN_USER_ID, "main", UserInfo.FLAG_ADMIN),
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
index 2c1fab8..1d76806 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
@@ -32,35 +32,44 @@
 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;
 import android.os.UserManager;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 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;
@@ -83,11 +92,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);
+        when(mContext.getSystemService(UserManager.class)).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 */);
@@ -101,6 +115,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) {
@@ -126,8 +143,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);
@@ -167,16 +190,60 @@
                 mPackageManager, mApp6)).isFalse();
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCountInstalledAppsAcrossAllUsersSync() {
         testCountInstalledAppsAcrossAllUsers(false /* async */);
     }
 
+    @Ignore("b/313578776")
     @Test
     public void testCountInstalledAppsAcrossAllUsersAsync() {
         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);
@@ -189,16 +256,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 */);
@@ -218,9 +296,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.
@@ -236,6 +317,10 @@
             super(mContext, installReason, mPackageManager);
         }
 
+        private InstalledAppCounterTestable(int installReason, FeatureFlags featureFlags) {
+            super(mContext, installReason, mPackageManager, featureFlags);
+        }
+
         @Override
         protected void onCountComplete(int num) {
             mInstalledAppCount = num;
@@ -261,4 +346,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/InstalledAppListerTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java
index 602d678..1287d13 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java
@@ -43,6 +43,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.Arrays;
@@ -52,6 +53,7 @@
 import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public final class InstalledAppListerTest {
 
     private final String APP_1 = "app1";
diff --git a/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java b/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java
index 7712ae8..355b5db 100644
--- a/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java
+++ b/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java
@@ -49,9 +49,14 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        ShadowUtils.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class OpenSupportedLinksTest {
     private static final String TEST_FOOTER_TITLE = "FooterTitle";
     private static final String TEST_DOMAIN_LINK = "aaa.bbb.ccc";
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..f3b105b 100644
--- a/tests/robotests/src/com/android/settings/applications/appcompat/UserAspectRatioDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appcompat/UserAspectRatioDetailsTest.java
@@ -16,26 +16,46 @@
 
 package com.android.settings.applications.appcompat;
 
+import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_APP_DEFAULT;
+import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN;
+import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_UNSET;
+
+import static com.android.settings.applications.AppInfoBase.ARG_PACKAGE_NAME;
 import static com.android.settings.applications.appcompat.UserAspectRatioDetails.KEY_PREF_3_2;
 import static com.android.settings.applications.appcompat.UserAspectRatioDetails.KEY_PREF_DEFAULT;
+import static com.android.settings.applications.appcompat.UserAspectRatioDetails.KEY_PREF_FULLSCREEN;
 
+import static org.junit.Assert.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.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.Bundle;
 import android.os.RemoteException;
 
+import androidx.fragment.app.testing.EmptyFragmentActivity;
 import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.rules.ActivityScenarioRule;
 
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowActivityManager;
+import com.android.settings.testutils.shadow.ShadowFragment;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.InOrder;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
@@ -45,9 +65,13 @@
  * To run test: atest SettingsRoboTests:UserAspectRatioDetailsTest
  */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowActivityManager.class})
+@Config(shadows = {ShadowActivityManager.class, ShadowFragment.class})
 public class UserAspectRatioDetailsTest {
 
+    @Rule
+    public ActivityScenarioRule<EmptyFragmentActivity> rule =
+            new ActivityScenarioRule<>(EmptyFragmentActivity.class);
+
     @Mock
     private UserAspectRatioManager mUserAspectRatioManager;
     @Mock
@@ -56,6 +80,7 @@
     private RadioWithImagePreference mRadioButtonPref;
     private Context mContext;
     private UserAspectRatioDetails mFragment;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
 
     @Before
     public void setUp() {
@@ -65,12 +90,18 @@
         mFragment = spy(new UserAspectRatioDetails());
         when(mFragment.getContext()).thenReturn(mContext);
         when(mFragment.getAspectRatioManager()).thenReturn(mUserAspectRatioManager);
+        when(mUserAspectRatioManager.isOverrideToFullscreenEnabled(anyString(), anyInt()))
+                .thenReturn(false);
         ShadowActivityManager.setService(mAm);
         mRadioButtonPref = new RadioWithImagePreference(mContext);
+        final FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+        mMetricsFeatureProvider = featureFactory.metricsFeatureProvider;
     }
 
     @Test
     public void onRadioButtonClicked_prefChange_shouldStopActivity() throws RemoteException {
+        doReturn(USER_MIN_ASPECT_RATIO_UNSET).when(mFragment)
+                .getSelectedUserMinAspectRatio(anyString());
         // Default was already selected
         mRadioButtonPref.setKey(KEY_PREF_DEFAULT);
         mFragment.onRadioButtonClicked(mRadioButtonPref);
@@ -83,6 +114,8 @@
 
     @Test
     public void onRadioButtonClicked_prefChange_shouldSetAspectRatio() throws RemoteException {
+        doReturn(USER_MIN_ASPECT_RATIO_UNSET).when(mFragment)
+                .getSelectedUserMinAspectRatio(anyString());
         // Default was already selected
         mRadioButtonPref.setKey(KEY_PREF_DEFAULT);
         mFragment.onRadioButtonClicked(mRadioButtonPref);
@@ -93,4 +126,76 @@
         verify(mUserAspectRatioManager).setUserMinAspectRatio(
                 any(), anyInt(), anyInt());
     }
+
+    @Test
+    public void onRadioButtonClicked_prefChange_logMetrics() throws NullPointerException {
+        doReturn(USER_MIN_ASPECT_RATIO_UNSET).when(mFragment)
+                .getSelectedUserMinAspectRatio(anyString());
+        // 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());
+    }
+
+    @Test
+    public void onButtonClicked_overrideEnabled_fullscreenPreselected()
+            throws RemoteException {
+        doReturn(true).when(mUserAspectRatioManager)
+                .isOverrideToFullscreenEnabled(anyString(), anyInt());
+        doReturn(USER_MIN_ASPECT_RATIO_UNSET).when(mUserAspectRatioManager)
+                .getUserMinAspectRatioValue(anyString(), anyInt());
+        doReturn(mRadioButtonPref).when(mFragment).findPreference(KEY_PREF_DEFAULT);
+        doReturn(mRadioButtonPref).when(mFragment).findPreference(KEY_PREF_FULLSCREEN);
+        doReturn(true).when(mUserAspectRatioManager)
+                .hasAspectRatioOption(anyInt(), anyString());
+
+        rule.getScenario().onActivity(a -> doReturn(a).when(mFragment).getActivity());
+        final Bundle args = new Bundle();
+        args.putString(ARG_PACKAGE_NAME, anyString());
+        mFragment.setArguments(args);
+        mFragment.onCreate(Bundle.EMPTY);
+
+        // Fullscreen should be pre-selected
+        assertEquals(KEY_PREF_FULLSCREEN, mFragment.mSelectedKey);
+        assertEquals(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                mFragment.getSelectedUserMinAspectRatio(mFragment.mSelectedKey));
+
+        // Revert to app default, should be set to app default from unset
+        mRadioButtonPref.setKey(KEY_PREF_DEFAULT);
+        mFragment.onRadioButtonClicked(mRadioButtonPref);
+        verify(mUserAspectRatioManager).setUserMinAspectRatio(
+                any(), anyInt(), anyInt());
+        assertEquals(USER_MIN_ASPECT_RATIO_APP_DEFAULT,
+                mFragment.getSelectedUserMinAspectRatio(mFragment.mSelectedKey));
+        assertEquals(KEY_PREF_DEFAULT, mFragment.mSelectedKey);
+
+        // Fullscreen override disabled, should be changed to unset from app default
+        when(mUserAspectRatioManager.isOverrideToFullscreenEnabled(anyString(), anyInt()))
+                .thenReturn(false);
+        mFragment.mKeyToAspectRatioMap.clear();
+        mFragment.onCreate(Bundle.EMPTY);
+
+        assertEquals(KEY_PREF_DEFAULT, mFragment.mSelectedKey);
+        assertEquals(USER_MIN_ASPECT_RATIO_UNSET,
+                mFragment.getSelectedUserMinAspectRatio(mFragment.mSelectedKey));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java
index 6f0aec9..638dabd 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java
@@ -43,7 +43,6 @@
 import com.android.settingslib.applications.ApplicationsState;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -56,6 +55,9 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AppBatteryPreferenceControllerTest {
 
     private static final int TARGET_UID = 111;
@@ -114,7 +116,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testAppBattery_ifDisabled_shouldNotBeShown() {
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java
index 54c2d6e..6fc01fc 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppButtonsPreferenceControllerTest.java
@@ -23,6 +23,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyList;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
@@ -38,15 +39,18 @@
 import android.app.ActivityManager;
 import android.app.admin.DevicePolicyManager;
 import android.app.settings.SettingsEnums;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.om.OverlayInfo;
 import android.content.om.OverlayManager;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.Flags;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.os.RemoteException;
 import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.util.ArraySet;
 import android.view.View;
 
@@ -107,7 +111,7 @@
     @Mock
     private OverlayManager mOverlayManager;
     @Mock
-    private PackageManager mPackageManger;
+    private PackageManager mPackageManager;
     @Mock
     private DevicePolicyManager mDpm;
     @Mock
@@ -132,7 +136,7 @@
         mContext = RuntimeEnvironment.application;
         doReturn(mDpm).when(mSettingsActivity).getSystemService(Context.DEVICE_POLICY_SERVICE);
         doReturn(mUserManager).when(mSettingsActivity).getSystemService(Context.USER_SERVICE);
-        doReturn(mPackageManger).when(mSettingsActivity).getPackageManager();
+        doReturn(mPackageManager).when(mSettingsActivity).getPackageManager();
         doReturn(mAm).when(mSettingsActivity).getSystemService(Context.ACTIVITY_SERVICE);
         doReturn(mOverlayManager).when(mSettingsActivity).
                 getSystemService(OverlayManager.class);
@@ -184,7 +188,7 @@
     @Test
     public void retrieveAppEntry_hasAppEntry_notNull()
             throws PackageManager.NameNotFoundException {
-        doReturn(mPackageInfo).when(mPackageManger).getPackageInfo(anyString(), anyInt());
+        doReturn(mPackageInfo).when(mPackageManager).getPackageInfo(anyString(), anyInt());
 
         mController.retrieveAppEntry();
 
@@ -195,7 +199,7 @@
     @Test
     public void retrieveAppEntry_noAppEntry_null() throws PackageManager.NameNotFoundException {
         doReturn(null).when(mState).getEntry(eq(PACKAGE_NAME), anyInt());
-        doReturn(mPackageInfo).when(mPackageManger).getPackageInfo(anyString(), anyInt());
+        doReturn(mPackageInfo).when(mPackageManager).getPackageInfo(anyString(), anyInt());
 
         mController.retrieveAppEntry();
 
@@ -207,7 +211,7 @@
     public void retrieveAppEntry_throwException_null() throws
             PackageManager.NameNotFoundException {
         doReturn(mAppEntry).when(mState).getEntry(anyString(), anyInt());
-        doThrow(new PackageManager.NameNotFoundException()).when(mPackageManger).getPackageInfo(
+        doThrow(new PackageManager.NameNotFoundException()).when(mPackageManager).getPackageInfo(
                 anyString(), anyInt());
 
         mController.retrieveAppEntry();
@@ -225,7 +229,7 @@
 
     @Test
     public void updateOpenButton_haveLaunchIntent_buttonShouldBeEnable() {
-        doReturn(new Intent()).when(mPackageManger).getLaunchIntentForPackage(anyString());
+        doReturn(new Intent()).when(mPackageManager).getLaunchIntentForPackage(anyString());
 
         mController.updateOpenButton();
 
@@ -347,6 +351,35 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_IMPROVE_HOME_APP_BEHAVIOR)
+    public void updateUninstallButton_isNotSystemAndIsCurrentHomeAndHasOneHome_setButtonDisable() {
+        doReturn(false).when(mController).isSystemPackage(any(), any(), any());
+        doReturn(new ComponentName(PACKAGE_NAME, "cls")).when(mPackageManager).getHomeActivities(
+                anyList());
+
+        mController.mHomePackages.add(PACKAGE_NAME);
+
+        mController.updateUninstallButton();
+
+        verify(mButtonPrefs).setButton2Enabled(false);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_IMPROVE_HOME_APP_BEHAVIOR)
+    public void updateUninstallButton_isNotSystemAndIsCurrentHomeAndHasOtherHome_setButtonEnable() {
+        doReturn(false).when(mController).isSystemPackage(any(), any(), any());
+        doReturn(new ComponentName(PACKAGE_NAME, "cls")).when(mPackageManager).getHomeActivities(
+                anyList());
+
+        mController.mHomePackages.add(PACKAGE_NAME);
+        mController.mHomePackages.add("com.android.home.fake");
+
+        mController.updateUninstallButton();
+
+        verify(mButtonPrefs).setButton2Enabled(true);
+    }
+
+    @Test
     public void updateUninstallButton_isSystemRro_setButtonDisable() {
         mAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
 
@@ -477,7 +510,7 @@
             throws PackageManager.NameNotFoundException {
         doReturn(AppButtonsPreferenceController.AVAILABLE)
                 .when(mController).getAvailabilityStatus();
-        doReturn(mPackageInfo).when(mPackageManger).getPackageInfo(anyString(), anyInt());
+        doReturn(mPackageInfo).when(mPackageManager).getPackageInfo(anyString(), anyInt());
         doReturn(mButtonPrefs).when(mScreen).findPreference(anyString());
         mController.displayPreference(mScreen);
         mController.mButtonsPref = null;
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
index c5ed459..922e2e8 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
@@ -51,7 +51,10 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSettingsLibUtils.class)
+@Config(shadows = {
+        ShadowSettingsLibUtils.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AppHeaderViewPreferenceControllerTest {
 
     @Mock
@@ -76,7 +79,8 @@
         mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
-        mHeader = LayoutInflater.from(mContext).inflate(R.layout.settings_entity_header, null);
+        mHeader = LayoutInflater.from(mContext).inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null);
 
         when(mFragment.getActivity()).thenReturn(mActivity);
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java
index ecf98a7..4fdf560 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java
@@ -56,7 +56,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -76,6 +75,9 @@
 import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public final class AppInfoDashboardFragmentTest {
 
     private static final String PACKAGE_NAME = "test_package_name";
@@ -153,7 +155,6 @@
         verify(menu.findItem(UNINSTALL_UPDATES), times(1)).setVisible(true);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void onPrepareOptionsMenu_setUpdateMenuVisible_ifDisabledByDevice_shouldBeFalse() {
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java
index 71ba753..c14bcb5 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java
@@ -46,8 +46,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AppInfoPreferenceControllerBaseTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java
index deb5a3f..ada7ef2 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInstallerInfoPreferenceControllerTest.java
@@ -37,7 +37,6 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.os.UserManager;
 
 import androidx.preference.Preference;
 
@@ -55,8 +54,6 @@
 public class AppInstallerInfoPreferenceControllerTest {
 
     @Mock
-    private UserManager mUserManager;
-    @Mock
     private PackageManager mPackageManager;
     @Mock
     private ApplicationInfo mAppInfo;
@@ -74,7 +71,6 @@
     public void setUp() throws PackageManager.NameNotFoundException {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
-        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         final String installerPackage = "Installer1";
         when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
@@ -87,17 +83,7 @@
     }
 
     @Test
-    public void getAvailabilityStatus_managedProfile_shouldReturnDisabled() {
-        when(mUserManager.isManagedProfile()).thenReturn(true);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.DISABLED_FOR_USER);
-    }
-
-    @Test
     public void getAvailabilityStatus_noAppLabel_shouldReturnDisabled() {
-        when(mUserManager.isManagedProfile()).thenReturn(false);
-
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.DISABLED_FOR_USER);
     }
@@ -106,7 +92,6 @@
     public void getAvailabilityStatus_hasAppLabel_shouldReturnAvailable()
             throws PackageManager.NameNotFoundException {
         final String packageName = "Package1";
-        when(mUserManager.isManagedProfile()).thenReturn(false);
         when(mAppInfo.loadLabel(mPackageManager)).thenReturn("Label1");
         mController = new AppInstallerInfoPreferenceController(mContext, "test_key");
         mController.setPackageName(packageName);
@@ -161,7 +146,6 @@
     public void getAvailabilityStatus_isMainlineModule_shouldReturnDisabled()
             throws PackageManager.NameNotFoundException {
         final String packageName = "Package";
-        when(mUserManager.isManagedProfile()).thenReturn(false);
         when(mAppInfo.loadLabel(mPackageManager)).thenReturn("Label");
         mController.setPackageName(packageName);
         mockMainlineModule(packageName, true /* isMainlineModule */);
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
index e433dd3..8e1fd3d 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
@@ -49,7 +49,10 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class})
+@Config(shadows = {
+        ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AppMemoryPreferenceControllerTest {
 
     @Mock
@@ -77,7 +80,7 @@
         when(mFragment.getActivity()).thenReturn(mActivity);
     }
 
-    @Ignore
+    @Ignore("b/313582035")
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_developmentSettingsEnabled_shouldReturnAvailable() {
@@ -106,7 +109,6 @@
                 .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_developmentSettingsDisabled_shouldReturnDisabled() {
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java
index 3b366ca..f6ee7ce 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java
@@ -35,8 +35,8 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.notification.app.AppNotificationSettings;
 import com.android.settings.notification.NotificationBackend;
+import com.android.settings.notification.app.AppNotificationSettings;
 import com.android.settingslib.applications.ApplicationsState;
 
 import org.junit.Before;
@@ -46,9 +46,13 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AppNotificationPreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java
index 41ff9ed..b610d8c 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java
@@ -44,11 +44,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AppPermissionPreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
index 2482945..bda1e61 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppSettingPreferenceControllerTest.java
@@ -26,7 +26,6 @@
 import androidx.preference.Preference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -67,14 +66,12 @@
         mPreference.setKey(mController.getPreferenceKey());
     }
 
-    @Ignore
     @Test
     public void getAvailabilityStatus_noAppSetting_shouldNotBeAvailable() {
         assertThat(mController.isAvailable())
                 .isFalse();
     }
 
-    @Ignore
     @Test
     public void getAvailabilityStatus_noPackageName_shouldNotBeAvailable() {
         mController.setPackageName(null);
@@ -83,7 +80,6 @@
                 .isFalse();
     }
 
-    @Ignore
     @Test
     public void getAvailabilityStatus_hasAppSetting_shouldBeAvailable() {
         final ResolveInfo info = new ResolveInfo();
@@ -97,13 +93,11 @@
                 .isTrue();
     }
 
-    @Ignore
     @Test
     public void clickPreference_noAppSetting_shouldDoNothing() {
         assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
     }
 
-    @Ignore
     @Test
     public void clickPreference_hasAppSetting_shouldLaunchIntent() {
         final ResolveInfo info = new ResolveInfo();
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
index dde5914..74c0bb5 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBaseTest.java
@@ -33,10 +33,8 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -76,8 +74,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
         mShadowUserManager = shadowOf(mActivity.getSystemService(UserManager.class));
         mController = new TestRolePreferenceController(mActivity);
         when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
@@ -104,7 +101,6 @@
                 DefaultAppShortcutPreferenceControllerBase.UNSUPPORTED_ON_DEVICE);
     }
 
-    @Ignore
     @Test
     public void
     getAvailabilityStatus_noCallbackForIsRoleNotVisible_shouldReturnUnsupported() {
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java
index 805cdd2..85be59e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java
@@ -35,7 +35,6 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -44,8 +43,10 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = ShadowAlertDialogCompat.class)
 public class InstantAppButtonDialogFragmentTest {
 
@@ -56,9 +57,7 @@
 
     @Before
     public void setUp() {
-        final FragmentActivity activity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
-
+        final FragmentActivity activity = Robolectric.setupActivity(FragmentActivity.class);
         mContext = spy(RuntimeEnvironment.application);
         mFragment = InstantAppButtonDialogFragment.newInstance(TEST_PACKAGE);
         mFragment.show(activity.getSupportFragmentManager(), "InstantAppButtonDialogFragment");
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
index a4277dd..9d6332e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
@@ -61,9 +61,13 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class InstantAppButtonsPreferenceControllerTest {
 
     private static final String TEST_INSTALLER_PACKAGE_NAME = "com.installer";
diff --git a/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java
index 88377b8..178a26f 100644
--- a/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/assist/DefaultAssistPreferenceControllerTest.java
@@ -44,7 +44,6 @@
 import com.android.settingslib.applications.DefaultAppInfo;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -83,7 +82,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testAssistAndVoiceInput_ifDisabled_shouldNotBeShown() {
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
index 2a63f53..fdf7c0d 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
@@ -42,11 +42,15 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class DefaultAppPickerFragmentTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
index 8fcdaa2..259163e 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
@@ -58,7 +58,10 @@
 import java.util.Arrays;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSecureSettings.class)
+@Config(shadows = {
+        ShadowSecureSettings.class,
+        ShadowFragment.class,
+})
 public class DefaultAutofillPickerTest {
 
     private static final String MAIN_APP_KEY = "main.foo.bar/foo.bar.Baz";
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java
index 1311fe2..b203d87 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ApplicationViewHolderTest.java
@@ -28,7 +28,6 @@
 import android.view.View;
 import android.widget.FrameLayout;
 
-import com.android.settings.R;
 import com.android.settingslib.applications.ApplicationsState;
 
 import org.junit.Before;
@@ -61,7 +60,8 @@
         info.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
         mHolder.updateDisableView(info);
 
-        assertThat(mHolder.mDisabled.getText()).isEqualTo(mContext.getText(R.string.disabled));
+        assertThat(mHolder.mDisabled.getText())
+                .isEqualTo(mContext.getText(com.android.settingslib.R.string.disabled));
     }
 
     @Test
@@ -69,8 +69,9 @@
         mHolder.setSummary("hello");
         assertThat(mHolder.mSummary.getText()).isEqualTo("hello");
 
-        mHolder.setSummary(R.string.disabled);
-        assertThat(mHolder.mSummary.getText()).isEqualTo(mContext.getText(R.string.disabled));
+        mHolder.setSummary(com.android.settingslib.R.string.disabled);
+        assertThat(mHolder.mSummary.getText())
+                .isEqualTo(mContext.getText(com.android.settingslib.R.string.disabled));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
index 910fbed..196f206 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
@@ -63,6 +63,7 @@
 import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -76,8 +77,12 @@
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class, ShadowAppUtils.class,
-        ShadowInteractionJankMonitor.class})
+@Config(shadows = {
+        ShadowUserManager.class,
+        ShadowAppUtils.class,
+        ShadowInteractionJankMonitor.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ManageApplicationsTest {
 
     @Mock
@@ -105,7 +110,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mAppReset = new RoboMenuItem(R.id.reset_app_preferences);
         mSortRecent = new RoboMenuItem(R.id.sort_order_recent_notification);
         mSortFrequent = new RoboMenuItem(R.id.sort_order_frequent_notification);
@@ -309,6 +314,7 @@
         verify(adapter).filterSearch(query);
     }
 
+    @Ignore("b/313583754")
     @Test
     public void notifyItemChange_recyclerViewIdle_shouldNotify() {
         final RecyclerView recyclerView = mock(RecyclerView.class);
@@ -323,6 +329,7 @@
         verify(adapter).notifyItemChanged(0);
     }
 
+    @Ignore("b/313583754")
     @Test
     public void notifyItemChange_recyclerViewScrolling_shouldNotifyWhenIdle() {
         final RecyclerView recyclerView = mock(RecyclerView.class);
@@ -419,6 +426,7 @@
         assertThat(adapter.getItemCount()).isEqualTo(5);
     }
 
+    @Ignore("b/313583754")
     @Test
     public void applicationsAdapter_filterSearch_noMatch_shouldShowEmptyList() {
         final ManageApplications.ApplicationsAdapter adapter =
diff --git a/tests/robotests/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java
index 4917a85..af13fa2 100644
--- a/tests/robotests/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/managedomainurls/DomainAppPreferenceControllerTest.java
@@ -30,7 +30,6 @@
 import android.content.pm.verify.domain.DomainVerificationManager;
 import android.content.pm.verify.domain.DomainVerificationUserState;
 
-import com.android.settings.R;
 import com.android.settingslib.applications.ApplicationsState;
 
 import org.junit.Before;
@@ -72,7 +71,8 @@
         doReturn(true).when(domainVerificationUserState).isLinkHandlingAllowed();
         final DomainAppPreference pref = new DomainAppPreference(mContext, mAppEntry);
 
-        assertThat(pref.getLayoutResource()).isEqualTo(R.layout.preference_app);
+        assertThat(pref.getLayoutResource())
+                .isEqualTo(com.android.settingslib.widget.preference.app.R.layout.preference_app);
     }
 
     private ApplicationInfo createApplicationInfo(String packageName) {
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceControllerTest.java
index cc960d7..788b5e8 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/DefaultPaymentSettingsPreferenceControllerTest.java
@@ -19,16 +19,28 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.role.RoleManager;
 import android.content.Context;
+import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.nfc.NfcAdapter;
+import android.nfc.cardemulation.CardEmulation;
 import android.os.UserManager;
+import android.permission.flags.Flags;
+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 org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
@@ -37,6 +49,10 @@
 @RunWith(RobolectricTestRunner.class)
 public class DefaultPaymentSettingsPreferenceControllerTest {
 
+    private static final String PREF_KEY = "key";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
     @Mock
     private NfcAdapter mNfcAdapter;
     @Mock
@@ -45,6 +61,10 @@
     private UserManager mUserManager;
     @Mock
     private PackageManager mPackageManager;
+    @Mock
+    private RoleManager mRoleManager;
+    @Mock
+    private Preference mPreference;
 
     private DefaultPaymentSettingsPreferenceController mController;
 
@@ -55,7 +75,8 @@
         when(mContext.getApplicationContext()).thenReturn(mContext);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
-        mController = new DefaultPaymentSettingsPreferenceController(mContext, "key");
+        when(mContext.getSystemService(RoleManager.class)).thenReturn(mRoleManager);
+        mController = new DefaultPaymentSettingsPreferenceController(mContext, PREF_KEY);
         ReflectionHelpers.setField(mController, "mNfcAdapter", mNfcAdapter);
     }
 
@@ -86,4 +107,20 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
                 DefaultPaymentSettingsPreferenceController.DISABLED_DEPENDENT_SETTING);
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_WALLET_ROLE_ENABLED)
+    public void handlePreferenceTreeClick_walletRoleEnabled_shouldReturnTrue() {
+        when(mRoleManager.isRoleAvailable(anyString())).thenReturn(true);
+        when(mPreference.getKey()).thenReturn(PREF_KEY);
+        ArgumentCaptor<String> roleTypeCaptor = ArgumentCaptor.forClass(String.class);
+        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+        assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
+        verify(mRoleManager).isRoleAvailable(roleTypeCaptor.capture());
+        verify(mContext).startActivity(intentArgumentCaptor.capture());
+        assertThat(roleTypeCaptor.getValue()).isEqualTo(RoleManager.ROLE_WALLET);
+        assertThat(intentArgumentCaptor.getValue().getAction())
+                .isEqualTo(CardEmulation.ACTION_CHANGE_DEFAULT);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/MediaRoutingControlPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/MediaRoutingControlPreferenceControllerTest.java
new file mode 100644
index 0000000..20a1d04
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/MediaRoutingControlPreferenceControllerTest.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.specialaccess;
+
+import static com.android.settingslib.spa.framework.util.SpaIntentKt.KEY_DESTINATION;
+
+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.content.Intent;
+import android.content.pm.PackageManager;
+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 com.android.media.flags.Flags;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.spa.SpaActivity;
+import com.android.settings.spa.app.specialaccess.MediaRoutingControlAppListProvider;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class MediaRoutingControlPreferenceControllerTest {
+
+    private static final String PREFERENCE_KEY = "test_preference_key";
+    private static final String DIFFERENT_PREFERENCE_KEY = "other_preference_key";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
+
+    private MediaRoutingControlPreferenceController mTestController;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        mTestController = new MediaRoutingControlPreferenceController(
+                mContext, PREFERENCE_KEY);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
+    public void getAvailabilityStatus_withFlagEnabled_shouldReturnTrue() {
+        assertThat(mTestController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
+    public void getAvailabilityStatus_withFlagDisabled_shouldReturnFalse() {
+        assertThat(mTestController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_withDifferentPreference_shouldReturnFalse() {
+        Preference preference = mock(Preference.class);
+        when(preference.getKey()).thenReturn(DIFFERENT_PREFERENCE_KEY);
+
+        assertThat(mTestController.handlePreferenceTreeClick(preference)).isFalse();
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_withMediaRoutingPreference_shouldReturnTrue() {
+        Preference preference = mock(Preference.class);
+        when(preference.getKey()).thenReturn(PREFERENCE_KEY);
+
+        assertThat(mTestController.handlePreferenceTreeClick(preference)).isTrue();
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_withDifferentPreference_shouldNotStartSpaActivity() {
+        Preference preference = mock(Preference.class);
+        when(preference.getKey()).thenReturn(DIFFERENT_PREFERENCE_KEY);
+
+        mTestController.handlePreferenceTreeClick(preference);
+
+        verify(mContext, never()).startActivity(any(Intent.class));
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_withMediaRoutingPreference_shouldStartSpaActivity() {
+        Preference preference = mock(Preference.class);
+        when(preference.getKey()).thenReturn(PREFERENCE_KEY);
+
+        mTestController.handlePreferenceTreeClick(preference);
+
+        ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        verify(mContext).startActivity(intentCaptor.capture());
+        final Intent intent = intentCaptor.getValue();
+        assertThat(intent.getComponent().getClassName()).isEqualTo(SpaActivity.class.getName());
+        assertThat(intent.getStringExtra(KEY_DESTINATION)).isEqualTo(
+                MediaRoutingControlAppListProvider.INSTANCE.getAppListRoute());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java
index 730a3cc..eef7f7c 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java
@@ -31,8 +31,12 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowUserManager.class,
+})
 public class InteractAcrossProfilesControllerTest {
     private static final int PERSONAL_PROFILE_ID = 0;
     private static final int WORK_PROFILE_ID = 10;
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java
index edd85e4..61230b8 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java
@@ -23,22 +23,32 @@
 import android.content.Context;
 import android.content.PermissionChecker;
 import android.content.pm.CrossProfileApps;
-import android.content.pm.PackageManager;
 import android.content.pm.UserInfo;
 import android.os.UserManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
+import com.android.settings.testutils.shadow.ShadowCrossProfileApps;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.testutils.shadow.ShadowPermissionChecker;
 
 import com.google.common.collect.ImmutableList;
 
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowPermissionChecker;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowApplicationPackageManager.class,
+        ShadowCrossProfileApps.class,
+        ShadowUserManager.class,
+        ShadowPermissionChecker.class,
+})
 public class InteractAcrossProfilesDetailsTest {
 
     private static final int PERSONAL_PROFILE_ID = 0;
@@ -48,23 +58,34 @@
             "android.permission.INTERACT_ACROSS_PROFILES";
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private final PackageManager mPackageManager = mContext.getPackageManager();
-    private final UserManager mUserManager = mContext.getSystemService(UserManager.class);
-    private final CrossProfileApps mCrossProfileApps = mContext.getSystemService(
-            CrossProfileApps.class);
+    private ShadowUserManager mShadowUserManager;
+    private ShadowCrossProfileApps mShadowCrossProfileApps;
+    private ShadowApplicationPackageManager mShadowPackageManager;
+
+    @Before
+    public void setUp() {
+        mShadowUserManager = (ShadowUserManager) shadowOf(
+                mContext.getSystemService(UserManager.class)
+        );
+        mShadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+                mContext.getSystemService(CrossProfileApps.class)
+        );
+        mShadowPackageManager =
+                (ShadowApplicationPackageManager) shadowOf(mContext.getPackageManager());
+    }
 
     @Test
     public void getPreferenceSummary_appOpAllowed_returnsAllowed() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mUserManager).addProfile(
+        mShadowUserManager.addProfile(
                 PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
                 "work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 WORK_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
-        shadowOf(mCrossProfileApps).addCrossProfilePackage(
+        mShadowCrossProfileApps.addCrossProfilePackage(
                 CROSS_PROFILE_PACKAGE_NAME);
         ShadowPermissionChecker.setResult(
                 CROSS_PROFILE_PACKAGE_NAME,
@@ -78,16 +99,16 @@
 
     @Test
     public void getPreferenceSummary_appOpNotAllowed_returnsNotAllowed() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mUserManager).addProfile(
+        mShadowUserManager.addProfile(
                 PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
                 "work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 WORK_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
-        shadowOf(mCrossProfileApps).addCrossProfilePackage(
+        mShadowCrossProfileApps.addCrossProfilePackage(
                 CROSS_PROFILE_PACKAGE_NAME);
         ShadowPermissionChecker.setResult(
                 CROSS_PROFILE_PACKAGE_NAME,
@@ -101,9 +122,9 @@
 
     @Test
     public void getPreferenceSummary_noWorkProfile_returnsNotAllowed() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
 
         assertThat(InteractAcrossProfilesDetails.getPreferenceSummary(
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java
index 8479035..5c55c76 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java
@@ -21,20 +21,28 @@
 import static org.robolectric.Shadows.shadowOf;
 
 import android.content.Context;
+import android.content.pm.CrossProfileApps;
 import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
 
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
+import com.android.settings.testutils.shadow.ShadowCrossProfileApps;
 
 import com.google.common.collect.ImmutableList;
 
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowApplicationPackageManager.class,
+        ShadowCrossProfileApps.class,
+})
 public class InteractAcrossProfilesPreferenceControllerTest {
 
     private static final String CROSS_PROFILE_PACKAGE_NAME = "crossProfilePackage";
@@ -44,16 +52,27 @@
     private static final int PROFILE_ID = 0;
 
     private final Context mContext = ApplicationProvider.getApplicationContext();
-    private final PackageManager mPackageManager = mContext.getPackageManager();
+    private ShadowApplicationPackageManager mShadowPackageManager;
     private final InteractAcrossProfilesDetailsPreferenceController mController =
             new InteractAcrossProfilesDetailsPreferenceController(mContext, "test_key");
 
+    @Before
+    public void setUp() {
+        mShadowPackageManager = (ShadowApplicationPackageManager) shadowOf(
+                mContext.getPackageManager()
+        );
+    }
+
     @Test
     public void getAvailabilityStatus_requestedCrossProfilePermission_returnsAvailable() {
         mController.setPackageName(CROSS_PROFILE_PACKAGE_NAME);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
-        PackageInfo packageInfo = shadowOf(mPackageManager).getInternalMutablePackageInfo(
+        ShadowCrossProfileApps shadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+                mContext.getSystemService(CrossProfileApps.class)
+        );
+        shadowCrossProfileApps.addCrossProfilePackage(CROSS_PROFILE_PACKAGE_NAME);
+        PackageInfo packageInfo = mShadowPackageManager.getInternalMutablePackageInfo(
                 CROSS_PROFILE_PACKAGE_NAME);
         packageInfo.requestedPermissions = new String[]{
                 INTERACT_ACROSS_PROFILES_PERMISSION};
@@ -65,8 +84,12 @@
     @Test
     public void getAvailabilityStatus_notRequestedCrossProfilePermission_returnsDisabled() {
         mController.setPackageName(NOT_CROSS_PROFILE_PACKAGE_NAME);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PROFILE_ID, ImmutableList.of(NOT_CROSS_PROFILE_PACKAGE_NAME));
+        ShadowCrossProfileApps shadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+                mContext.getSystemService(CrossProfileApps.class)
+        );
+        shadowCrossProfileApps.addCrossProfilePackage(NOT_CROSS_PROFILE_PACKAGE_NAME);
 
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.DISABLED_FOR_USER);
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java
index 029fb28..436ed92 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java
@@ -34,17 +34,28 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
+import com.android.settings.testutils.shadow.ShadowCrossProfileApps;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.testutils.shadow.ShadowPermissionChecker;
+
 import com.google.common.collect.ImmutableList;
 
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowPermissionChecker;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowProcess;
 
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowUserManager.class,
+        ShadowApplicationPackageManager.class,
+        ShadowCrossProfileApps.class,
+})
 public class InteractAcrossProfilesSettingsTest {
 
     private static final int PERSONAL_PROFILE_ID = 0;
@@ -70,16 +81,33 @@
     private final CrossProfileApps mCrossProfileApps =
             mContext.getSystemService(CrossProfileApps.class);
 
+    private ShadowApplicationPackageManager mShadowPackageManager;
+    private ShadowUserManager mShadowUserManager;
+    private ShadowCrossProfileApps mShadowCrossProfileApps;
+
+    @Before
+    public void setUp() {
+        mShadowUserManager = (ShadowUserManager) shadowOf(
+                mContext.getSystemService(UserManager.class)
+        );
+        mShadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+                mContext.getSystemService(CrossProfileApps.class)
+        );
+        mShadowPackageManager = (ShadowApplicationPackageManager) shadowOf(
+                mContext.getPackageManager()
+        );
+    }
+
     @Test
     public void collectConfigurableApps_fromPersonal_returnsCombinedPackages() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mUserManager).addProfile(
+        mShadowUserManager.addProfile(
                 PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
                 "work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 WORK_PROFILE_ID, WORK_PROFILE_INSTALLED_PACKAGES);
         installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
         installCrossProfilePackage(WORK_CROSS_PROFILE_PACKAGE);
@@ -97,15 +125,15 @@
 
     @Test
     public void collectConfigurableApps_fromWork_returnsCombinedPackages() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mUserManager).addProfile(
+        mShadowUserManager.addProfile(
                 PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
                 "work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
         ShadowProcess.setUid(WORK_UID);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 WORK_PROFILE_ID, WORK_PROFILE_INSTALLED_PACKAGES);
         installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
         installCrossProfilePackage(WORK_CROSS_PROFILE_PACKAGE);
@@ -123,9 +151,9 @@
 
     @Test
     public void collectConfigurableApps_onlyOneProfile_returnsEmpty() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
         installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
 
@@ -138,18 +166,18 @@
 
     @Test
     public void getNumberOfEnabledApps_returnsNumberOfEnabledApps() {
-        shadowOf(mUserManager).addUser(
+        mShadowUserManager.addUser(
                 PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
-        shadowOf(mUserManager).addProfile(
+        mShadowUserManager.addProfile(
                 PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
                 "work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
-        shadowOf(mPackageManager).setInstalledPackagesForUserId(
+        mShadowPackageManager.setInstalledPackagesForUserId(
                 WORK_PROFILE_ID, WORK_PROFILE_INSTALLED_PACKAGES);
         installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
         installCrossProfilePackage(WORK_CROSS_PROFILE_PACKAGE);
-        shadowOf(mCrossProfileApps).addCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
+        mShadowCrossProfileApps.addCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
         ShadowPermissionChecker.setResult(
                 PERSONAL_CROSS_PROFILE_PACKAGE,
                 INTERACT_ACROSS_PROFILES_PERMISSION,
@@ -166,7 +194,7 @@
     }
 
     private void installCrossProfilePackage(String packageName) {
-        PackageInfo personalPackageInfo = shadowOf(mPackageManager).getInternalMutablePackageInfo(
+        PackageInfo personalPackageInfo = mShadowPackageManager.getInternalMutablePackageInfo(
                 packageName);
         personalPackageInfo.requestedPermissions = new String[]{
                 INTERACT_ACROSS_PROFILES_PERMISSION};
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java
index 523112c..ed4cbd1 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsControllerTest.java
@@ -29,7 +29,6 @@
 import com.android.settings.R;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -61,7 +60,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailability_disabledByCarrier_returnUnavailable() {
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java
index 37c3cc2..5982413 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/premiumsms/PremiumSmsScreenPreferenceControllerTest.java
@@ -29,7 +29,6 @@
 import com.android.settings.R;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -61,7 +60,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailability_disabledByCarrier_returnUnavailable() {
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java
index 91a78da..df5dfc9 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java
@@ -24,7 +24,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -34,6 +33,9 @@
 import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowActivityManager.class,
+})
 public class EnabledVrListenersControllerTest {
 
     private Context mContext;
@@ -58,7 +60,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailability_disabled_unavailable() {
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java
index a312823..7405980 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java
@@ -23,17 +23,20 @@
 
 import android.content.Context;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowActivityManager.class,
+})
 public class VrListenerScreenPreferenceControllerTest {
 
     private Context mContext;
@@ -42,7 +45,7 @@
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = new VrListenerScreenPreferenceController(mContext, "key");
         mActivityManager = Shadow.extract(mContext.getSystemService(Context.ACTIVITY_SERVICE));
     }
@@ -58,7 +61,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailability_disabled_unavailable() {
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
index 8febbc6..badc5db 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
@@ -25,6 +25,8 @@
 import android.app.NotificationManager;
 import android.content.Context;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowNotificationManager;
@@ -33,10 +35,8 @@
 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.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class ZenAccessControllerTest {
@@ -46,15 +46,12 @@
     private FakeFeatureFactory mFeatureFactory;
     private Context mContext;
     private ZenAccessController mController;
-    private ShadowActivityManager mActivityManager;
-
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mController = new ZenAccessController(mContext, "key");
-        mActivityManager = Shadow.extract(mContext.getSystemService(Context.ACTIVITY_SERVICE));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java
index afda8d5..bdbd863 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java
@@ -29,6 +29,7 @@
 
 import androidx.lifecycle.LifecycleOwner;
 
+import com.android.settings.testutils.shadow.ShadowActivityManager;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -38,10 +39,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        ShadowActivityManager.class,
+})
 public class ZenAccessSettingObserverMixinTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/aware/AwareFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/aware/AwareFeatureProviderImplTest.java
deleted file mode 100644
index 570f326..0000000
--- a/tests/robotests/src/com/android/settings/aware/AwareFeatureProviderImplTest.java
+++ /dev/null
@@ -1,46 +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.aware;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-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;
-
-@RunWith(RobolectricTestRunner.class)
-public class AwareFeatureProviderImplTest {
-    private Context mContext;
-    private AwareFeatureProviderImpl mImpl;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mImpl = new AwareFeatureProviderImpl();
-    }
-
-    @Test
-    public void isSupported_shouldReturnFalse() {
-        assertThat(mImpl.isSupported(mContext)).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/backup/BackupSettingsHelperTest.java b/tests/robotests/src/com/android/settings/backup/BackupSettingsHelperTest.java
index b6ef32c..17f17c1 100644
--- a/tests/robotests/src/com/android/settings/backup/BackupSettingsHelperTest.java
+++ b/tests/robotests/src/com/android/settings/backup/BackupSettingsHelperTest.java
@@ -34,7 +34,6 @@
 import android.content.res.Resources;
 import android.os.IBinder;
 import android.os.RemoteException;
-import android.os.UserHandle;
 
 import com.android.settings.R;
 
@@ -48,8 +47,6 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
-import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowUserManager;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = BackupSettingsHelperTest.ShadowBackupManagerStub.class)
@@ -72,46 +69,12 @@
     @Mock
     private static IBackupManager mBackupManager;
 
-    private ShadowUserManager mUserManager;
-
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application.getApplicationContext());
         when(mBackupManager.getCurrentTransport()).thenReturn("test_transport");
         mBackupSettingsHelper = new BackupSettingsHelper(mContext);
-        mUserManager = Shadow.extract(mContext.getSystemService(Context.USER_SERVICE));
-    }
-
-    @Test
-    public void testGetSummary_backupEnabledOnlyOneProfile_showsOn() throws Exception {
-        mUserManager.addUserProfile(new UserHandle(0));
-        when(mBackupManager.isBackupEnabled()).thenReturn(true);
-
-        String backupSummary = mBackupSettingsHelper.getSummary();
-
-        assertThat(backupSummary).isEqualTo(mContext.getString(R.string.backup_summary_state_on));
-    }
-
-    @Test
-    public void testGetSummary_backupDisabledOnlyOneProfile_showsOff() throws Exception {
-        mUserManager.addUserProfile(new UserHandle(0));
-        when(mBackupManager.isBackupEnabled()).thenReturn(false);
-
-        String backupSummary = mBackupSettingsHelper.getSummary();
-
-        assertThat(backupSummary).isEqualTo(mContext.getString(R.string.backup_summary_state_off));
-    }
-
-    @Test
-    public void testGetSummary_TwoProfiles_returnsNull() throws Exception {
-        mUserManager.addUserProfile(new UserHandle(0));
-        mUserManager.addUserProfile(new UserHandle(10));
-        when(mBackupManager.isBackupEnabled()).thenReturn(true);
-
-        String backupSummary = mBackupSettingsHelper.getSummary();
-
-        assertThat(backupSummary).isNull();
     }
 
     @Test
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..152258d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/BiometricSettingsProviderTest.kt
@@ -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.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() {
+    whenever(context.resources).thenReturn(resources)
+    provider = BiometricSettingsProvider()
+    provider.attachInfo(context, null)
+  }
+
+  @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!!.getBoolean(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/BiometricsSplitScreenDialogTest.java b/tests/robotests/src/com/android/settings/biometrics/BiometricsSplitScreenDialogTest.java
new file mode 100644
index 0000000..3aa281c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/BiometricsSplitScreenDialogTest.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics;
+
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
+import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.DialogInterface;
+import android.hardware.biometrics.BiometricAuthenticator;
+import android.os.Looper;
+import android.widget.Button;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+
+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.MockitoRule;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowAlertDialogCompat.class)
+public class BiometricsSplitScreenDialogTest {
+    @Rule
+    public final MockitoRule mocks = MockitoJUnit.rule();
+    private FragmentActivity mActivity;
+    private BiometricsSplitScreenDialog mFragment;
+
+    @Before
+    public void setUp() {
+        ShadowAlertDialogCompat.reset();
+        mActivity = Robolectric.buildActivity(FragmentActivity.class).setup().get();
+    }
+
+    @After
+    public void tearDown() {
+        ShadowAlertDialogCompat.reset();
+    }
+
+    @Test
+    public void testTexts_face() {
+        final AlertDialog dialog = setUpFragment(TYPE_FACE, false /*destroyActivity*/);
+
+        final ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
+                mActivity.getString(R.string.biometric_settings_add_face_in_split_mode_title));
+        assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
+                mActivity.getString(R.string.biometric_settings_add_face_in_split_mode_message));
+    }
+
+    @Test
+    public void testTexts_fingerprint() {
+        final AlertDialog dialog = setUpFragment(TYPE_FINGERPRINT, false /*destroyActivity*/);
+
+        final ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
+                mActivity.getString(
+                        R.string.biometric_settings_add_fingerprint_in_split_mode_title));
+        assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
+                mActivity.getString(
+                        R.string.biometric_settings_add_fingerprint_in_split_mode_message));
+    }
+
+    @Test
+    public void testButton_destroyActivity() {
+        final AlertDialog dialog = setUpFragment(TYPE_FACE, true /*destroyActivity*/);
+        final Button button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+
+        assertThat(button).isNotNull();
+        button.performClick();
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+
+        assertThat(dialog.isShowing()).isFalse();
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
+    public void testButton_notDestroyActivity() {
+        final AlertDialog dialog = setUpFragment(TYPE_FACE, false /*destroyActivity*/);
+        final Button button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+
+        assertThat(button).isNotNull();
+        button.performClick();
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+
+        assertThat(dialog.isShowing()).isFalse();
+        assertThat(mActivity.isFinishing()).isFalse();
+    }
+
+    private AlertDialog setUpFragment(
+            @BiometricAuthenticator.Modality int biometricsModality, boolean destroyActivity) {
+        mFragment = BiometricsSplitScreenDialog.newInstance(biometricsModality, destroyActivity);
+        mFragment.show(mActivity.getSupportFragmentManager(), null);
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+        return dialog;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetupTest.java b/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetupTest.java
index 4ae1ecf..d3bbf24 100644
--- a/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetupTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockRequireBiometricSetupTest.java
@@ -29,7 +29,6 @@
 
 import com.android.settings.R;
 import com.android.settings.biometrics.BiometricEnrollActivity;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupcompat.PartnerCustomizationLayout;
 import com.google.android.setupcompat.template.FooterBarMixin;
@@ -50,8 +49,8 @@
 
     @Before
     public void setUp() {
-        mActivity = (ActiveUnlockRequireBiometricSetup) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(ActiveUnlockRequireBiometricSetup.class)).get();
+        mActivity = Robolectric.buildActivity(
+                ActiveUnlockRequireBiometricSetup.class).setup().get();
         mLayout = mActivity.findViewById(R.id.setup_wizard_layout);
     }
 
diff --git a/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java b/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java
index df83eae..563974d 100644
--- a/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/activeunlock/ActiveUnlockStatusUtilsTest.java
@@ -149,17 +149,31 @@
     }
 
     @Test
-    public void getIntro_unlockOnIntentAndFaceEnabled_returnsEmpty() {
+    public void getIntro_faceEnabled_returnsFace() {
+        ActiveUnlockTestUtils.enable(
+                mApplicationContext, ActiveUnlockStatusUtils.UNLOCK_INTENT_LAYOUT);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
+        when(mFaceManager.isHardwareDetected()).thenReturn(true);
+
+        assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
+                .isEqualTo(mApplicationContext.getString(
+                        R.string.biometric_settings_intro_with_face));
+    }
+
+    @Test
+    public void getIntro_fingerprintEnabled_returnsFingerprint() {
         ActiveUnlockTestUtils.enable(
                 mApplicationContext, ActiveUnlockStatusUtils.UNLOCK_INTENT_LAYOUT);
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(false);
 
-        assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock()).isEqualTo("");
+        assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
+                .isEqualTo(mApplicationContext.getString(
+                        R.string.biometric_settings_intro_with_fingerprint));
     }
 
     @Test
-    public void getIntro_unlockOnIntentAndFaceAndFingerprintEnabled_returnsDefault() {
+    public void getIntro_faceAndFingerprintEnabled_returnsFaceAndFingerprint() {
         ActiveUnlockTestUtils.enable(
                 mApplicationContext, ActiveUnlockStatusUtils.UNLOCK_INTENT_LAYOUT);
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
@@ -167,7 +181,7 @@
 
         assertThat(mActiveUnlockStatusUtils.getIntroForActiveUnlock())
                 .isEqualTo(mApplicationContext.getString(
-                        R.string.biometric_settings_intro));
+                        R.string.biometric_settings_intro_with_activeunlock));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
index 4781f56..a0ef57f 100644
--- a/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/combination/CombinedBiometricProfileSettingsTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.biometrics.combination;
 
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-
 import static com.android.settings.biometrics.combination.BiometricsSettingsBase.CONFIRM_REQUEST;
 import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
 
@@ -26,7 +24,6 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
@@ -37,11 +34,8 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.hardware.biometrics.ComponentInfoInternal;
-import android.hardware.biometrics.SensorProperties;
 import android.hardware.face.FaceManager;
 import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
 import android.os.Bundle;
 import android.util.AndroidRuntimeException;
 import android.view.LayoutInflater;
@@ -52,15 +46,12 @@
 import androidx.annotation.XmlRes;
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
-import com.android.settings.biometrics.BiometricStatusPreferenceController;
-import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.biometrics.face.FaceStatusPreferenceController;
 import com.android.settings.biometrics.fingerprint.FingerprintStatusPreferenceController;
 import com.android.settings.password.ChooseLockSettingsHelper;
@@ -111,8 +102,6 @@
     private FaceStatusPreferenceController mFaceStatusPreferenceController;
     @Mock
     private FaceManager mFaceManager;
-    @Mock
-    private FragmentTransaction mFragmentTransaction;
 
     @Before
     public void setUp() {
@@ -350,132 +339,6 @@
     }
 
     @Test
-    public void testClickFingerprintUnlock_inMultiWindow_withoutEnrolledFp_showsDialog() {
-        testClickFingerprintUnlock(true /* isInMultiWindow */, false /* hasEnrolledFingerprint */);
-        verifyShowsDialogAfterClickingUnlock(mFragment.getFingerprintPreferenceKey());
-    }
-
-    @Test
-    public void testClickFingerprintUnlock_inMultiWindow_withEnrolledFp_noDialog() {
-        testClickFingerprintUnlock(true /* isInMultiWindow */, true /* hasEnrolledFingerprint */);
-        verifyNoDialogAfterClickingUnlock(mFragment.getFingerprintPreferenceKey());
-    }
-
-    @Test
-    public void testClickFingerprintUnlock_inFullScreen_withoutEnrolledFp_noDialog() {
-        testClickFingerprintUnlock(false /* isInMultiWindow */, false /* hasEnrolledFingerprint */);
-        verifyNoDialogAfterClickingUnlock(mFragment.getFingerprintPreferenceKey());
-    }
-
-    private void testClickFingerprintUnlock(boolean isInMultiWindow,
-            boolean hasEnrolledFingerprint) {
-        final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
-        props.add(new FingerprintSensorPropertiesInternal(
-                0 /* sensorId */,
-                SensorProperties.STRENGTH_STRONG,
-                1 /* maxEnrollmentsPerUser */,
-                new ArrayList<ComponentInfoInternal>(),
-                TYPE_UDFPS_OPTICAL,
-                true /* resetLockoutRequiresHardwareAuthToken */));
-        doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
-
-        doAnswer(invocation -> {
-            final FingerprintManager.GenerateChallengeCallback callback =
-                    invocation.getArgument(1);
-            callback.onChallengeGenerated(0, 0, 1L);
-            return null;
-        }).when(mFingerprintManager).generateChallenge(anyInt(), any());
-        doReturn(new byte[]{1}).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
-                anyLong());
-        FragmentManager fragmentManager = mock(FragmentManager.class);
-        doReturn(fragmentManager).when(mActivity).getSupportFragmentManager();
-        doReturn(mFragmentTransaction).when(fragmentManager).beginTransaction();
-        doReturn(isInMultiWindow).when(mActivity).isInMultiWindowMode();
-        doReturn(hasEnrolledFingerprint).when(mFingerprintManager).hasEnrolledFingerprints(
-                anyInt());
-
-        // Start fragment
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(null);
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
-        mFragment.onResume();
-
-        // User clicks on "Fingerprint Unlock"
-        final Preference preference = new Preference(mContext);
-        preference.setKey(mFragment.getFingerprintPreferenceKey());
-        mFragment.onPreferenceTreeClick(preference);
-    }
-
-    @Test
-    public void testClickFaceUnlock_inMultiWindow_withoutEnrolledFp_showsDialog() {
-        testClickFaceUnlock(true /* isInMultiWindow */, false /*hasEnrolledFace*/);
-        verifyShowsDialogAfterClickingUnlock(mFragment.getFacePreferenceKey());
-    }
-
-    @Test
-    public void testClickFaceUnlock_inMultiWindow_withEnrolledFp_noDialog() {
-        testClickFaceUnlock(true /* isInMultiWindow */, true /* hasEnrolledFace */);
-        verifyNoDialogAfterClickingUnlock(mFragment.getFacePreferenceKey());
-    }
-
-    @Test
-    public void testClickFaceUnlock_inFullScreen_withoutEnrolledFp_noDialog() {
-        testClickFaceUnlock(false /* isInMultiWindow */ , false /* hasEnrolledFace */);
-        verifyNoDialogAfterClickingUnlock(mFragment.getFacePreferenceKey());
-    }
-
-    private void testClickFaceUnlock(boolean isInMultiWindow, boolean hasEnrolledFace) {
-        doAnswer(invocation -> {
-            final FaceManager.GenerateChallengeCallback callback =
-                    invocation.getArgument(1);
-            callback.onGenerateChallengeResult(0, 0, 1L);
-            return null;
-        }).when(mFaceManager).generateChallenge(anyInt(), any());
-        doReturn(new byte[] { 1 }).when(mFragment).requestGatekeeperHat(any(), anyLong(), anyInt(),
-                anyLong());
-        FragmentManager fragmentManager = mock(FragmentManager.class);
-        doReturn(fragmentManager).when(mActivity).getSupportFragmentManager();
-        doReturn(mFragmentTransaction).when(fragmentManager).beginTransaction();
-        doReturn(isInMultiWindow).when(mActivity).isInMultiWindowMode();
-        doReturn(hasEnrolledFace).when(mFaceManager).hasEnrolledTemplates(
-                anyInt());
-
-        // Start fragment
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(null);
-        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
-        mFragment.onResume();
-
-        // User clicks on "Face Unlock"
-        final Preference preference = new Preference(mContext);
-        preference.setKey(mFragment.getFacePreferenceKey());
-        mFragment.onPreferenceTreeClick(preference);
-    }
-
-    private void verifyNoDialogAfterClickingUnlock(String preferenceKey) {
-        final BiometricStatusPreferenceController controller =
-                preferenceKey.equals(mFragment.getFacePreferenceKey())
-                        ? mFaceStatusPreferenceController
-                        : mFingerprintStatusPreferenceController;
-        verify(controller).handlePreferenceTreeClick(mPreferenceCaptor.capture());
-        List<Preference> capturedPreferences = mPreferenceCaptor.getAllValues();
-        assertThat(capturedPreferences).hasSize(1);
-        assertThat(capturedPreferences.get(0).getKey()).isEqualTo(preferenceKey);
-        verify(mFragmentTransaction, never()).add(any(),
-                eq(BiometricsSplitScreenDialog.class.getName()));
-    }
-
-    private void verifyShowsDialogAfterClickingUnlock(String preferenceKey) {
-        final BiometricStatusPreferenceController controller =
-                preferenceKey.equals(mFragment.getFacePreferenceKey())
-                        ? mFaceStatusPreferenceController
-                        : mFingerprintStatusPreferenceController;
-        verify(controller, never()).handlePreferenceTreeClick(any());
-        verify(mFragmentTransaction).add(any(),
-                eq(BiometricsSplitScreenDialog.class.getName()));
-    }
-
-    @Test
     public void testNoCrashIfDetachActivityDuringGeneratingChallengeThroughFaceManager() {
         doAnswer(invocation -> {
             final FaceManager.GenerateChallengeCallback callback =
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollEducationTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollEducationTest.java
index b4dddde..474ea8c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollEducationTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollEducationTest.java
@@ -50,6 +50,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -127,6 +128,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void testFaceEnrollEducation_hasHeader() {
         setupActivity();
         CharSequence headerText = getGlifLayout().getHeaderText();
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollIntroductionTest.java
index df15e5c..beb7a9f 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollIntroductionTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceEnrollIntroductionTest.java
@@ -38,6 +38,7 @@
 
 import android.app.Activity;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.content.res.Resources;
@@ -46,12 +47,15 @@
 import android.hardware.face.FaceSensorProperties;
 import android.hardware.face.FaceSensorPropertiesInternal;
 import android.hardware.face.IFaceAuthenticatorsRegisteredCallback;
+import android.os.Looper;
 import android.os.UserHandle;
 import android.view.View;
+import android.widget.Button;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.internal.widget.LockPatternUtils;
@@ -62,6 +66,7 @@
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
@@ -76,6 +81,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -100,7 +106,8 @@
         ShadowUtils.class,
         ShadowDevicePolicyManager.class,
         ShadowSensorPrivacyManager.class,
-        SettingsShadowResources.class
+        SettingsShadowResources.class,
+        ShadowAlertDialogCompat.class
 })
 public class FaceEnrollIntroductionTest {
 
@@ -122,8 +129,8 @@
     enum GateKeeperAction {CALL_SUPER, RETURN_BYTE_ARRAY, THROW_CREDENTIAL_NOT_MATCH}
 
     public static class TestFaceEnrollIntroduction extends FaceEnrollIntroduction {
-
         private int mRecreateCount = 0;
+        public boolean mIsMultiWindowMode;
 
         public int getRecreateCount() {
             return mRecreateCount;
@@ -160,6 +167,11 @@
         protected boolean launchPostureGuidance() {
             return super.launchPostureGuidance();
         }
+
+        @Override
+        public boolean isInMultiWindowMode() {
+            return mIsMultiWindowMode;
+        }
     }
 
     @Before
@@ -177,6 +189,7 @@
     public void tearDown() {
         ShadowUtils.reset();
         ShadowLockPatternUtils.reset();
+        ShadowAlertDialogCompat.reset();
     }
 
     private void setupActivity() {
@@ -282,6 +295,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void testOnCreateToGenerateChallenge() {
         setupActivityWithGenerateChallenge(
                 new Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, 1L));
@@ -385,7 +399,8 @@
     @Test
     public void testFaceEnrollIntroduction_hasBottomScrollView() {
         setupActivity();
-        BottomScrollView scrollView = getGlifLayout(mActivity).findViewById(R.id.sud_scroll_view);
+        BottomScrollView scrollView = getGlifLayout(mActivity)
+                .findViewById(com.google.android.setupdesign.R.id.sud_scroll_view);
 
         assertThat(scrollView).isNotNull();
         assertThat(scrollView.getVisibility()).isEqualTo(View.VISIBLE);
@@ -431,6 +446,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void testFaceEnrollIntroduction_onStartRegisteredPostureChangeCallback() {
         setupActivityForPosture();
         mSpyActivity.onStart();
@@ -592,4 +608,37 @@
         assertThat(result).isEqualTo(0);
     }
 
+    @Test
+    public void multiWindow_showsDialog() {
+        mController = Robolectric.buildActivity(TestFaceEnrollIntroduction.class);
+        mActivity  = (TestFaceEnrollIntroduction) mController.get();
+        mActivity.mIsMultiWindowMode = true;
+        mController.setup().get();
+
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+
+        final ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
+                mActivity.getString(R.string.biometric_settings_add_face_in_split_mode_title));
+        assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
+                mActivity.getString(R.string.biometric_settings_add_face_in_split_mode_message));
+
+        final Button button = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+        assertThat(button).isNotNull();
+        button.performClick();
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+        assertThat(dialog.isShowing()).isFalse();
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
+    public void singleWindow_noDialog() {
+        Robolectric.buildActivity(TestFaceEnrollIntroduction.class).setup().get();
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceControllerTest.java
index f34616f..9de2fc2 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsFooterPreferenceControllerTest.java
@@ -41,7 +41,6 @@
 import com.android.settingslib.widget.FooterPreference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -57,7 +56,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 public class FaceSettingsFooterPreferenceControllerTest {
     @Rule
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
index 5f56fa7..ae35972 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
@@ -32,6 +32,7 @@
 import com.android.settingslib.widget.LayoutPreference;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -44,6 +45,7 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
+@Ignore("b/295325503")
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowUserManager.class})
 public class FaceSettingsRemoveButtonPreferenceControllerTest {
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index a23eded..4de369e 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -70,6 +70,7 @@
 import com.google.android.setupdesign.GlifLayout;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -78,14 +79,16 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.android.controller.ActivityController;
-import org.robolectric.shadows.ShadowToast;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
+@Ignore("b/295325503")
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class FingerprintEnrollEnrollingTest {
     private static final String ENROLL_PROGRESS_COLOR_LIGHT = "#699FF3";
     private static final String ENROLL_PROGRESS_COLOR_DARK = "#7DA7F1";
@@ -120,16 +123,6 @@
     }
 
     @Test
-    public void fingerprintMultiWindowMode() {
-        initializeActivityWithoutCreate(TYPE_UDFPS_OPTICAL);
-        when(mActivity.isInMultiWindowMode()).thenReturn(true);
-        createActivity();
-
-        assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
-                mContext.getString(R.string.dock_multi_instances_not_supported_text));
-    }
-
-    @Test
     public void fingerprintUdfpsEnrollSuccessProgress_shouldNotVibrate() {
         initializeActivityFor(TYPE_UDFPS_OPTICAL);
 
@@ -621,9 +614,10 @@
         mContext = spy(RuntimeEnvironment.application);
         mActivity = spy(FingerprintEnrollEnrolling.class);
 
-        when(mContext.getDisplay()).thenReturn(mMockDisplay);
+        doReturn(mMockDisplay).when(mContext).getDisplay();
         when(mMockDisplay.getRotation()).thenReturn(Surface.ROTATION_0);
 
+        doReturn(mMockDisplay).when(mActivity).getDisplay();
         doReturn(true).when(mActivity).shouldShowLottie();
         doReturn(mFingerprintManager).when(mActivity).getSystemService(FingerprintManager.class);
         doReturn(mVibrator).when(mActivity).getSystemService(Vibrator.class);
@@ -653,6 +647,7 @@
     }
 
     private void createActivity() {
+        System.setProperty("robolectric.createActivityContexts", "true");
         final Bundle savedInstanceState = new Bundle();
         savedInstanceState.putInt(KEY_STATE_PREVIOUS_ROTATION, Surface.ROTATION_90);
 
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensorTest.java
index 198bfd7..4d13bb6 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;
@@ -35,7 +36,6 @@
 import static org.mockito.Mockito.verify;
 import static org.robolectric.RuntimeEnvironment.application;
 
-import android.annotation.NonNull;
 import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -49,7 +49,9 @@
 import android.os.Bundle;
 import android.os.CancellationSignal;
 import android.view.View;
+import android.widget.TextView;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
@@ -57,15 +59,16 @@
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupcompat.PartnerCustomizationLayout;
 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;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -120,7 +123,7 @@
         props.add(newFingerprintSensorPropertiesInternal(TYPE_REAR));
         doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
 
-        ActivityControllerWrapper.setup(mActivityController);
+        mActivityController.setup();
     }
 
     private void setupActivity_onUdfpsDevice() {
@@ -128,7 +131,7 @@
         props.add(newFingerprintSensorPropertiesInternal(TYPE_UDFPS_OPTICAL));
         doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
 
-        ActivityControllerWrapper.setup(mActivityController);
+        mActivityController.setup();
     }
 
     private void setupActivity_onSfpsDevice() {
@@ -136,7 +139,7 @@
         props.add(newFingerprintSensorPropertiesInternal(TYPE_POWER_BUTTON));
         doReturn(props).when(mFingerprintManager).getSensorPropertiesInternal();
 
-        ActivityControllerWrapper.setup(mActivityController);
+        mActivityController.setup();
     }
 
     private FingerprintSensorPropertiesInternal newFingerprintSensorPropertiesInternal(
@@ -557,6 +560,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void fingerprintEnrollFindSensor_activityApplyDarkLightStyle() {
         setupActivity_onSfpsDevice();
         verifySidecar_onRearOrSfpsDevice();
@@ -567,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);
@@ -592,7 +605,7 @@
     private void gotEnrollingResult_resumeActivityAndVerifyResultThenForward(
             int testActivityResult) {
         // resume activity
-        mActivityController.start().resume();
+        mActivityController.start().resume().visible();
         verifyNoSidecar();
 
         // onActivityResult from Enrolling activity shall be forward back
@@ -612,8 +625,7 @@
             int testActivityResult, @NonNull Bundle savedInstance) {
         // Rebuild activity and use savedInstance to restore.
         buildActivity();
-        ActivityControllerWrapper.setup(mActivityController, savedInstance);
-        //mActivityController.setup(savedInstance);
+        mActivityController.setup(savedInstance);
         verifyNoSidecar();
 
         // onActivityResult from Enrolling activity shall be forward back
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/fingerprint/FingerprintSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
index 8b70550..58e7e2d 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintSettingsFragmentTest.java
@@ -20,9 +20,7 @@
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
 
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
-import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.ADD_FINGERPRINT_REQUEST;
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.CHOOSE_LOCK_GENERIC_REQUEST;
-import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.KEY_FINGERPRINT_ADD;
 import static com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.KEY_REQUIRE_SCREEN_ON_TO_AUTH;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -34,9 +32,7 @@
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
@@ -57,10 +53,8 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentTransaction;
-import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.biometrics.BiometricsSplitScreenDialog;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
@@ -72,6 +66,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -132,35 +127,6 @@
     }
 
     @Test
-    public void testAddFingerprint_inFullScreen_noDialog() {
-        setUpFragment(false);
-        // Click "Add Fingerprint"
-        final Preference preference = new Preference(mContext);
-        preference.setKey(KEY_FINGERPRINT_ADD);
-        mFragment.onPreferenceTreeClick(preference);
-
-        verify(mFragment).startActivityForResult(any(), eq(ADD_FINGERPRINT_REQUEST));
-        verify(mFragmentTransaction, never()).add(any(),
-                eq(BiometricsSplitScreenDialog.class.getName()));
-
-    }
-
-    @Test
-    public void testAddFingerprint_inMultiWindow_showsDialog() {
-        setUpFragment(false);
-
-        doReturn(true).when(mActivity).isInMultiWindowMode();
-
-        // Click "Add Fingerprint"
-        final Preference preference = new Preference(mContext);
-        preference.setKey(KEY_FINGERPRINT_ADD);
-        mFragment.onPreferenceTreeClick(preference);
-
-        verify(mFragment, times(0)).startActivityForResult(any(), eq(ADD_FINGERPRINT_REQUEST));
-        verify(mFragmentTransaction).add(any(), eq(BiometricsSplitScreenDialog.class.getName()));
-    }
-
-    @Test
     public void testChooseLockKeyForFingerprint() {
         setUpFragment(true);
         ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(
@@ -201,6 +167,7 @@
         assertThat(mFingerprintAuthenticateSidecar.isCancelled()).isTrue();
     }
 
+    @Ignore("b/313342682")
     @Test
     public void testGuestUserRequireScreenOnToAuth() {
         Settings.Secure.putIntForUser(
@@ -260,6 +227,14 @@
         mFragment.onResume();
     }
 
+    @Ignore("b/315519360")
+    @Test
+    public void testFragmentVisibleWhenNoHardwareDetected() {
+        doReturn(false).when(mFingerprintManager).isHardwareDetected();
+        setUpFragment(false);
+        assertThat(mFragment.isVisible()).isTrue();
+    }
+
     private void setSensor(@FingerprintSensorProperties.SensorType int sensorType) {
         final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
         props.add(new FingerprintSensorPropertiesInternal(
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
index f6b6b2b..ae580d5 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
@@ -31,7 +31,6 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupcompat.PartnerCustomizationLayout;
 import com.google.android.setupcompat.template.FooterBarMixin;
@@ -45,8 +44,10 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowUtils.class, ShadowAlertDialogCompat.class})
 public class SetupFingerprintEnrollFindSensorTest {
 
@@ -65,8 +66,8 @@
         final Intent intent = new Intent()
                 // Set the challenge token so the confirm screen will not be shown
                 .putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, new byte[0]);
-        mActivity = (SetupFingerprintEnrollFindSensor) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(SetupFingerprintEnrollFindSensor.class, intent)).get();
+        mActivity = Robolectric.buildActivity(SetupFingerprintEnrollFindSensor.class,
+                intent).setup().get();
         mTheme = mActivity.getTheme();
     }
 
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java
index ea9cb84..fa33f9c 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFinishTest.java
@@ -30,12 +30,12 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowFingerprintManager;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupcompat.PartnerCustomizationLayout;
 import com.google.android.setupcompat.template.FooterBarMixin;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
@@ -55,8 +55,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (FingerprintEnrollFinish) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FingerprintEnrollFinish.class)).get();
+        mActivity = Robolectric.buildActivity(FingerprintEnrollFinish.class).setup().get();
         mLayout = mActivity.findViewById(R.id.setup_wizard_layout);
         Shadows.shadowOf(application.getPackageManager())
                 .setSystemFeature(PackageManager.FEATURE_FINGERPRINT, true);
@@ -117,6 +116,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onActivityResult_fingerprintCountIsOne_fingerprintSuggestionActivityEnabled() {
         Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(1);
 
@@ -137,6 +137,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void clickNext_fingerprintCountIsOne_fngerprintSuggestionActivityEnabled() {
         Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(1);
 
@@ -157,6 +158,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onBackPressed_fingerprintCountIsOne_fngerprintSuggestionActivityEnabled() {
         Shadows.shadowOf((FingerprintManager) mFingerprintManager).setDefaultFingerprints(1);
 
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
index 493436c..6b67734 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
@@ -21,6 +21,7 @@
 
 import static org.robolectric.RuntimeEnvironment.application;
 
+import android.app.Activity;
 import android.app.KeyguardManager;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -28,14 +29,18 @@
 import android.hardware.biometrics.SensorProperties;
 import android.hardware.fingerprint.FingerprintSensorProperties;
 import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
+import android.os.Looper;
 import android.view.View;
 import android.widget.Button;
 
+import androidx.appcompat.app.AlertDialog;
+
 import com.android.settings.R;
 import com.android.settings.biometrics.BiometricEnrollBase;
 import com.android.settings.biometrics.BiometricEnrollIntroduction;
 import com.android.settings.password.SetupSkipDialog;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowFingerprintManager;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -66,12 +71,23 @@
     ShadowFingerprintManager.class,
     ShadowLockPatternUtils.class,
     ShadowStorageManager.class,
-    ShadowUserManager.class
+    ShadowUserManager.class,
+    ShadowAlertDialogCompat.class
 })
 public class SetupFingerprintEnrollIntroductionTest {
 
     private ActivityController<SetupFingerprintEnrollIntroduction> mController;
 
+    public static class TestSetupFingerprintEnrollIntroductionInMultiWindowMode
+            extends SetupFingerprintEnrollIntroduction {
+        public boolean mIsMultiWindowMode = true;
+
+        @Override
+        public boolean isInMultiWindowMode() {
+            return mIsMultiWindowMode;
+        }
+    }
+
     @Before
     public void setUp() {
         Shadows.shadowOf(application.getPackageManager())
@@ -105,6 +121,36 @@
     @After
     public void tearDown() {
         ShadowStorageManager.reset();
+        ShadowAlertDialogCompat.reset();
+    }
+
+    @Test
+    public void multiWindow_showsDialog() {
+        Activity activity = Robolectric.buildActivity(
+                TestSetupFingerprintEnrollIntroductionInMultiWindowMode.class).setup().get();
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+
+        final ShadowAlertDialogCompat shadowAlertDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        assertThat(shadowAlertDialog.getTitle().toString()).isEqualTo(
+                activity.getString(
+                        R.string.biometric_settings_add_fingerprint_in_split_mode_title));
+        assertThat(shadowAlertDialog.getMessage().toString()).isEqualTo(
+                activity.getString(
+                        R.string.biometric_settings_add_fingerprint_in_split_mode_message));
+
+        // TODO(b/299573056): Make WizardManagerHelper.isAnySetupWizard(getIntent()) correct and
+        //  test button click not finishing the activity.
+    }
+
+    @Test
+    public void singleWindow_noDialog() {
+        Robolectric.buildActivity(SetupFingerprintEnrollIntroduction.class).setup().get();
+        Shadows.shadowOf(Looper.getMainLooper()).idle();
+
+        final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
     }
 
     @Test
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/AdvancedBluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
index 2c9fb99..d24a83b 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AdvancedBluetoothDetailsHeaderControllerTest.java
@@ -385,6 +385,9 @@
                 .thenReturn("true".getBytes());
         Set<CachedBluetoothDevice> cacheBluetoothDevices = new HashSet<>();
         when(mCachedDevice.getMemberDevice()).thenReturn(cacheBluetoothDevices);
+        when(mBluetoothAdapter.addOnMetadataChangedListener(
+                mBluetoothDevice, mContext.getMainExecutor(), mController.mMetadataListener))
+                .thenReturn(true);
 
         mController.onStart();
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
index d69b5d4..dceadeb 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
@@ -16,6 +16,7 @@
 package com.android.settings.bluetooth;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
@@ -24,20 +25,36 @@
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
 import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.media.AudioManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.util.Pair;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowAudioManager;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
-import com.android.settings.testutils.shadow.ShadowCachedBluetoothDeviceManager;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -51,21 +68,29 @@
 import java.util.Collection;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAudioManager.class, ShadowBluetoothAdapter.class,
-        ShadowCachedBluetoothDeviceManager.class})
+@Config(
+        shadows = {
+            ShadowAudioManager.class,
+            ShadowBluetoothAdapter.class,
+            ShadowBluetoothUtils.class
+        })
 public class AvailableMediaBluetoothDeviceUpdaterTest {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
 
-    @Mock
-    private DashboardFragment mDashboardFragment;
-    @Mock
-    private DevicePreferenceCallback mDevicePreferenceCallback;
-    @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
-    @Mock
-    private BluetoothDevice mBluetoothDevice;
-    @Mock
-    private Drawable mDrawable;
+    @Mock private DashboardFragment mDashboardFragment;
+    @Mock private DevicePreferenceCallback mDevicePreferenceCallback;
+    @Mock private CachedBluetoothDevice mCachedBluetoothDevice;
+    @Mock private BluetoothDevice mBluetoothDevice;
+    @Mock private Drawable mDrawable;
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
+    @Mock private CachedBluetoothDeviceManager mCachedDeviceManager;
+    @Mock private LocalBluetoothLeBroadcast mBroadcast;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private BluetoothLeBroadcastReceiveState mBroadcastReceiveState;
 
     private Context mContext;
     private AvailableMediaBluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -73,7 +98,6 @@
     private AudioManager mAudioManager;
     private BluetoothDevicePreference mPreference;
     private ShadowBluetoothAdapter mShadowBluetoothAdapter;
-    private ShadowCachedBluetoothDeviceManager mShadowCachedBluetoothDeviceManager;
 
     @Before
     public void setUp() {
@@ -81,25 +105,33 @@
 
         mContext = RuntimeEnvironment.application;
         mAudioManager = mContext.getSystemService(AudioManager.class);
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+        mLocalBtManager = Utils.getLocalBtManager(mContext);
+        when(mLocalBtManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
         mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
         mShadowBluetoothAdapter.setEnabled(true);
-        mShadowCachedBluetoothDeviceManager = Shadow.extract(
-                Utils.getLocalBtManager(mContext).getCachedDeviceManager());
         mCachedDevices = new ArrayList<>();
         mCachedDevices.add(mCachedBluetoothDevice);
-        mShadowCachedBluetoothDeviceManager.setCachedDevicesCopy(mCachedDevices);
+        when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
         Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
 
         doReturn(mContext).when(mDashboardFragment).getContext();
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
         when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
+        when(mCachedBluetoothDevice.getMemberDevice()).thenReturn(ImmutableSet.of());
 
-        mBluetoothDeviceUpdater = spy(new AvailableMediaBluetoothDeviceUpdater(mContext,
-                mDevicePreferenceCallback, /* metricsCategory= */ 0));
+        mBluetoothDeviceUpdater =
+                spy(
+                        new AvailableMediaBluetoothDeviceUpdater(
+                                mContext, mDevicePreferenceCallback, /* metricsCategory= */ 0));
         mBluetoothDeviceUpdater.setPrefContext(mContext);
-        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false,
-                BluetoothDevicePreference.SortType.TYPE_DEFAULT);
+        mPreference =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedBluetoothDevice,
+                        false,
+                        BluetoothDevicePreference.SortType.TYPE_DEFAULT);
         doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
         doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
     }
@@ -107,8 +139,8 @@
     @Test
     public void onAudioModeChanged_hfpDeviceConnected_inCall_addPreference() {
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
 
         mBluetoothDeviceUpdater.onAudioModeChanged();
@@ -119,8 +151,8 @@
     @Test
     public void onAudioModeChanged_hfpDeviceConnected_notInCall_removePreference() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
 
         mBluetoothDeviceUpdater.onAudioModeChanged();
@@ -131,8 +163,8 @@
     @Test
     public void onAudioModeChanged_a2dpDeviceConnected_inCall_removePreference() {
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedA2dpDevice()).thenReturn(true);
 
         mBluetoothDeviceUpdater.onAudioModeChanged();
@@ -143,8 +175,8 @@
     @Test
     public void onAudioModeChanged_a2dpDeviceConnected_notInCall_addPreference() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedA2dpDevice()).thenReturn(true);
 
         mBluetoothDeviceUpdater.onAudioModeChanged();
@@ -155,12 +187,12 @@
     @Test
     public void onProfileConnectionStateChanged_a2dpDeviceConnected_notInCall_addPreference() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedA2dpDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice, BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
@@ -168,12 +200,12 @@
     @Test
     public void onProfileConnectionStateChanged_a2dpDeviceConnected_inCall_removePreference() {
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedA2dpDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice, BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
 
         verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
     }
@@ -181,12 +213,12 @@
     @Test
     public void onProfileConnectionStateChanged_hfpDeviceConnected_notInCall_removePreference() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice, BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
 
         verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
     }
@@ -194,12 +226,12 @@
     @Test
     public void onProfileConnectionStateChanged_hfpDeviceConnected_inCall_addPreference() {
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice, BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
@@ -207,12 +239,14 @@
     @Test
     public void onProfileConnectionStateChanged_ashaHearingAidConnected_notInCall_addPreference() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.HEARING_AID);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.HEARING_AID);
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
@@ -220,53 +254,137 @@
     @Test
     public void onProfileConnectionStateChanged_ashaHearingAidConnected_inCall_addPreference() {
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater.
-                isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.HEARING_AID);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.HEARING_AID);
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
     public void onProfileConnectionStateChanged_leAudioDeviceConnected_notInCall_addsPreference() {
+        setUpBroadcast(/* isSupported= */ false, /* isBroadcasting= */ false);
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater
-                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.LE_AUDIO);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
     public void onProfileConnectionStateChanged_leAudioDeviceConnected_inCall_addsPreference() {
+        setUpBroadcast(/* isSupported= */ false, /* isBroadcasting= */ false);
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater
-                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.LE_AUDIO);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void
+            onProfileConnectionStateChanged_leaDeviceConnected_notInCall_notInBroadcast_addsPref() {
+        setUpBroadcast(/* isSupported= */ true, /* isBroadcasting= */ false);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
+
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void
+            onProfileConnectionStateChanged_leaDeviceConnected_inCall_notInBroadcast_addsPref() {
+        setUpBroadcast(/* isSupported= */ true, /* isBroadcasting= */ false);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
+
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void
+            onProfileConnectionStateChanged_leaDeviceConnected_notInCall_inBroadcast_removesPref() {
+        setUpBroadcast(/* isSupported= */ true, /* isBroadcasting= */ true);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
+
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
+
+        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void
+            onProfileConnectionStateChanged_leaDeviceConnected_inCall_inBroadcast_removesPref() {
+        setUpBroadcast(/* isSupported= */ true, /* isBroadcasting= */ true);
+        mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
+
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
+
+        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
+    }
+
+    @Test
     public void
             onProfileConnectionStateChanged_deviceIsNotInList_notInCall_invokesRemovePreference() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
-        when(mBluetoothDeviceUpdater
-                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
         mCachedDevices.clear();
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.LE_AUDIO);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
 
         verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
     }
@@ -274,30 +392,78 @@
     @Test
     public void onProfileConnectionStateChanged_deviceIsNotInList_inCall_invokesRemovePreference() {
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-        when(mBluetoothDeviceUpdater
-                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mBluetoothDeviceUpdater.isDeviceConnected(any(CachedBluetoothDevice.class)))
+                .thenReturn(true);
         when(mCachedBluetoothDevice.isConnectedLeAudioDevice()).thenReturn(true);
         mCachedDevices.clear();
 
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_CONNECTED, BluetoothProfile.LE_AUDIO);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice,
+                BluetoothProfile.STATE_CONNECTED,
+                BluetoothProfile.LE_AUDIO);
 
         verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
     }
 
     @Test
     public void onProfileConnectionStateChanged_deviceDisconnected_removePreference() {
-        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
-                BluetoothProfile.STATE_DISCONNECTED, BluetoothProfile.A2DP);
+        mBluetoothDeviceUpdater.onProfileConnectionStateChanged(
+                mCachedBluetoothDevice, BluetoothProfile.STATE_DISCONNECTED, BluetoothProfile.A2DP);
 
         verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
     public void onClick_Preference_setActive() {
+        setUpBroadcast(/* isSupported= */ false, /* isBroadcasting= */ false);
         mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
 
         verify(mCachedBluetoothDevice).setActive();
     }
-}
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onClick_Preference_isNotBroadcasting_setActive() {
+        setUpBroadcast(/* isSupported= */ true, /* isBroadcasting= */ false);
+        mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
+
+        verify(mCachedBluetoothDevice).setActive();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onClick_Preference_isBroadcasting_stopBroadcastingAndSetActive() {
+        setUpBroadcast(/* isSupported= */ true, /* isBroadcasting= */ true);
+        doNothing().when(mBroadcast).stopBroadcast(anyInt());
+        mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
+
+        verify(mBroadcast).stopBroadcast(anyInt());
+        verify(mCachedBluetoothDevice).setActive();
+    }
+
+    private void setUpBroadcast(boolean isSupported, boolean isBroadcasting) {
+        if (isSupported) {
+            mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                    BluetoothStatusCodes.FEATURE_SUPPORTED);
+            mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                    BluetoothStatusCodes.FEATURE_SUPPORTED);
+            when(mLocalBtManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
+            when(mLocalBtProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+            when(mBroadcast.isEnabled(null)).thenReturn(isBroadcasting);
+            when(mLocalBtProfileManager.getLeAudioBroadcastAssistantProfile())
+                    .thenReturn(mAssistant);
+            if (isBroadcasting) {
+                when(mAssistant.getAllSources(any()))
+                        .thenReturn(ImmutableList.of(mBroadcastReceiveState));
+            } else {
+                when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of());
+            }
+        } else {
+            mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                    BluetoothStatusCodes.FEATURE_NOT_SUPPORTED);
+            mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                    BluetoothStatusCodes.FEATURE_NOT_SUPPORTED);
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java
index 0fc0647..2010502 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeControllerTest.java
@@ -18,6 +18,7 @@
 
 import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_LE;
 import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
+import static android.media.audio.Flags.automaticBtDeviceType;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -97,8 +98,12 @@
     @Test
     public void createAudioDeviceTypePreference_btDeviceIsCategorized_checkSelection() {
         int deviceType = AUDIO_DEVICE_CATEGORY_SPEAKER;
-        when(mAudioManager.getBluetoothAudioDeviceCategory(MAC_ADDRESS, /*isBle=*/true)).thenReturn(
-                deviceType);
+        if (automaticBtDeviceType()) {
+            when(mAudioManager.getBluetoothAudioDeviceCategory(MAC_ADDRESS)).thenReturn(deviceType);
+        } else {
+            when(mAudioManager.getBluetoothAudioDeviceCategory_legacy(MAC_ADDRESS, /*isBle=*/
+                    true)).thenReturn(deviceType);
+        }
 
         mController.createAudioDeviceTypePreference(mContext);
         mAudioDeviceTypePref = mController.getAudioDeviceTypePreference();
@@ -113,7 +118,12 @@
 
         mController.onPreferenceChange(mAudioDeviceTypePref, Integer.toString(deviceType));
 
-        verify(mAudioManager).setBluetoothAudioDeviceCategory(eq(MAC_ADDRESS), eq(true),
-                eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
+        if (automaticBtDeviceType()) {
+            verify(mAudioManager).setBluetoothAudioDeviceCategory(eq(MAC_ADDRESS),
+                    eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
+        } else {
+            verify(mAudioManager).setBluetoothAudioDeviceCategory_legacy(eq(MAC_ADDRESS), eq(true),
+                    eq(AUDIO_DEVICE_CATEGORY_SPEAKER));
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsButtonsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsButtonsControllerTest.java
index df74395..74a5bc9 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsButtonsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsButtonsControllerTest.java
@@ -54,10 +54,11 @@
     public void setUp() {
         super.setUp();
         final View buttons = View.inflate(
-                RuntimeEnvironment.application, R.layout.settingslib_action_buttons,
+                RuntimeEnvironment.application,
+                com.android.settingslib.widget.preference.actionbuttons.R.layout.settingslib_action_buttons,
                 null /* parent */);
-        mConnectButton = buttons.findViewById(R.id.button2);
-        mForgetButton = buttons.findViewById(R.id.button1);
+        mConnectButton = buttons.findViewById(com.android.settingslib.widget.preference.actionbuttons.R.id.button2);
+        mForgetButton = buttons.findViewById(com.android.settingslib.widget.preference.actionbuttons.R.id.button1);
         mController =
                 new BluetoothDetailsButtonsController(mContext, mFragment, mCachedDevice,
                         mLifecycle);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java
index e27f43c..faea3d8 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsCompanionAppsControllerTest.java
@@ -104,6 +104,7 @@
                 associationId,
                 /* userId */ 0,
                 packageName,
+                /* tag */ null,
                 MacAddress.fromString(mCachedDevice.getAddress()),
                 /* displayName */ null,
                 /* deviceProfile */ "",
@@ -111,6 +112,7 @@
                 /* selfManaged */ false,
                 /* notifyOnDeviceNearby */ true,
                 /* revoked */ false,
+                /* pending */ false,
                 /* timeApprovedMs */ System.currentTimeMillis(),
                 /* lastTimeConnected */ Long.MAX_VALUE,
                 /* systemDataSyncFlags */ -1);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java
index 08f7084..8ba0b44 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java
@@ -29,7 +29,6 @@
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
@@ -39,8 +38,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public abstract class BluetoothDetailsControllerTestBase {
 
     protected Context mContext;
@@ -140,7 +143,8 @@
                 .setAddress("B4:B0:34:B5:3B:1B")
                 .setMajorDeviceClass(BluetoothClass.Device.Major.AUDIO_VIDEO)
                 .setConnected(true)
-                .setConnectionSummary(mContext.getString(R.string.bluetooth_connected));
+                .setConnectionSummary(
+                        mContext.getString(com.android.settingslib.R.string.bluetooth_connected));
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsDataSyncControllerTest.java
index dbede8e..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() {
@@ -87,12 +87,20 @@
     }
 
     @Test
-    public void isAvailable_hasAssociations_returnsTrue() {
+    public void isAvailable_hasAssociations_returnTrue() {
         assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
-    public void refresh_permSyncNull_preferenceVisibleFalse() {
+    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(
                 mPermissionSyncRequest);
@@ -102,7 +110,7 @@
     }
 
     @Test
-    public void refresh_permSyncEnabled_preferenceCheckedTrue() {
+    public void refresh_permSyncEnabled_checkPreferenceOn() {
         mPermissionSyncRequest.setUserConsented(true);
         mController.refresh();
 
@@ -111,7 +119,7 @@
     }
 
     @Test
-    public void refresh_permSyncDisabled_preferenceCheckedFalse() {
+    public void refresh_permSyncDisabled_checkPreferenceOff() {
         mPermissionSyncRequest.setUserConsented(false);
         mController.refresh();
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsExtraOptionsControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsExtraOptionsControllerTest.java
new file mode 100644
index 0000000..f063020
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsExtraOptionsControllerTest.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothDevice;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreferenceCompat;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowLooper;
+
+@RunWith(RobolectricTestRunner.class)
+public class BluetoothDetailsExtraOptionsControllerTest extends BluetoothDetailsControllerTestBase {
+
+    private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
+    @Mock private BluetoothDevice mBluetoothDevice;
+    @Mock private Lifecycle mExtraOptionsLifecycle;
+    @Mock private PreferenceCategory mOptionsContainer;
+    @Mock private PreferenceScreen mPreferenceScreen;
+
+    private BluetoothDetailsExtraOptionsController mController;
+    private BluetoothFeatureProvider mFeatureProvider;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(RuntimeEnvironment.application);
+        when(mCachedDevice.getAddress()).thenReturn(MAC_ADDRESS);
+        when(mCachedDevice.getDevice()).thenReturn(mBluetoothDevice);
+        when(mBluetoothDevice.getAnonymizedAddress()).thenReturn(MAC_ADDRESS);
+
+        final FakeFeatureFactory fakeFeatureFactory = FakeFeatureFactory.setupForTest();
+        mFeatureProvider = fakeFeatureFactory.getBluetoothFeatureProvider();
+
+        mController =
+                new BluetoothDetailsExtraOptionsController(
+                        mContext, mFragment, mCachedDevice, mExtraOptionsLifecycle);
+    }
+
+    @Test
+    public void displayPreference_removeAndAddPreferences() {
+        Preference preference1 = new SwitchPreferenceCompat(mContext);
+        Preference preference2 = new SwitchPreferenceCompat(mContext);
+        when(mFeatureProvider.getBluetoothExtraOptions(mContext, mCachedDevice))
+                .thenReturn(ImmutableList.of(preference1, preference2));
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+                .thenReturn(mOptionsContainer);
+
+        mController.displayPreference(mPreferenceScreen);
+        ShadowLooper.idleMainLooper();
+
+        verify(mOptionsContainer).removeAll();
+        verify(mOptionsContainer).addPreference(preference1);
+        verify(mOptionsContainer).addPreference(preference2);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
index a28c4f5..cf9bf09 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
@@ -26,7 +26,6 @@
 import android.bluetooth.BluetoothDevice;
 import android.graphics.drawable.Drawable;
 
-import com.android.settings.R;
 import com.android.settings.core.SettingsUIDeviceConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowDeviceConfig;
@@ -71,9 +70,9 @@
         when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
         when(mCachedDeviceManager.getSubDeviceSummary(mCachedDevice)).thenReturn("abc");
         mController =
-            new BluetoothDetailsHeaderController(mContext, mFragment, mCachedDevice, mLifecycle,
-                mBluetoothManager);
-        mPreference = new LayoutPreference(mContext, R.layout.settings_entity_header);
+            new BluetoothDetailsHeaderController(mContext, mFragment, mCachedDevice, mLifecycle);
+        mPreference = new LayoutPreference(
+                mContext, com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header);
         mPreference.setKey(mController.getPreferenceKey());
         mScreen.addPreference(mPreference);
         setupDevice(mDeviceConfig);
@@ -91,7 +90,8 @@
      */
     @Test
     public void testContextMock() {
-        assertThat(mContext.getString(R.string.bluetooth_connected)).isNotNull();
+        assertThat(mContext.getString(com.android.settingslib.R.string.bluetooth_connected))
+                .isNotNull();
     }
 
     @Test
@@ -103,27 +103,27 @@
         verify(mHeaderController).setIconContentDescription(any(String.class));
         verify(mHeaderController).setSummary(any(String.class));
         verify(mHeaderController).setSecondSummary(any(String.class));
-        verify(mHeaderController).done(mActivity, true);
+        verify(mHeaderController).done(true);
     }
 
     @Test
     public void connectionStatusChangesWhileScreenOpen() {
         InOrder inOrder = inOrder(mHeaderController);
         when(mCachedDevice.getConnectionSummary())
-            .thenReturn(mContext.getString(R.string.bluetooth_connected));
+            .thenReturn(mContext.getString(com.android.settingslib.R.string.bluetooth_connected));
         showScreen(mController);
         inOrder.verify(mHeaderController)
-            .setSummary(mContext.getString(R.string.bluetooth_connected));
+            .setSummary(mContext.getString(com.android.settingslib.R.string.bluetooth_connected));
 
         when(mCachedDevice.getConnectionSummary()).thenReturn(null);
         mController.onDeviceAttributesChanged();
         inOrder.verify(mHeaderController).setSummary((CharSequence) null);
 
         when(mCachedDevice.getConnectionSummary())
-            .thenReturn(mContext.getString(R.string.bluetooth_connecting));
+            .thenReturn(mContext.getString(com.android.settingslib.R.string.bluetooth_connecting));
         mController.onDeviceAttributesChanged();
         inOrder.verify(mHeaderController)
-            .setSummary(mContext.getString(R.string.bluetooth_connecting));
+            .setSummary(mContext.getString(com.android.settingslib.R.string.bluetooth_connecting));
     }
 
     @Test
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 090fb0c..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;
@@ -34,6 +36,9 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.HashSet;
+import java.util.Set;
+
 /** Tests for {@link BluetoothDetailsPairOtherController}. */
 @RunWith(RobolectricTestRunner.class)
 public class BluetoothDetailsPairOtherControllerTest extends BluetoothDetailsControllerTestBase  {
@@ -60,8 +65,9 @@
         mScreen.addPreference(mSpacePreference);
     }
 
+    /** Test the pair other side button title during initialization. */
     @Test
-    public void init_leftSideDevice_rightSideButtonTitle() {
+    public void init_deviceIsLeftSide_showPairRightSideTitle() {
         when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidInfo.DeviceSide.SIDE_LEFT);
 
         mController.init(mScreen);
@@ -70,8 +76,9 @@
                 mContext.getString(R.string.bluetooth_pair_right_ear_button));
     }
 
+    /** Test the pair other side button title during initialization. */
     @Test
-    public void init_rightSideDevice_leftSideButtonTitle() {
+    public void init_deviceIsRightSide_showPairLeftSideTitle() {
         when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidInfo.DeviceSide.SIDE_RIGHT);
 
         mController.init(mScreen);
@@ -80,9 +87,10 @@
                 mContext.getString(R.string.bluetooth_pair_left_ear_button));
     }
 
+    /** Test the pair other side button visibility during initialization. */
     @Test
-    public void init_isNotConnectedAshaHearingAidDevice_notVisiblePreference() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(false);
+    public void init_deviceIsNotConnectedHearingAid_preferenceIsNotVisible() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
 
         mController.init(mScreen);
 
@@ -90,52 +98,135 @@
         assertThat(mSpacePreference.isVisible()).isFalse();
     }
 
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      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
+     *      non-hearing aid device or not connected device.
+     */
     @Test
-    public void isAvailable_isNotConnectedAshaHearingAidDevice_notAvailable() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(false);
+    public void isAvailable_deviceIsNotConnectedHearingAid_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      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_isConnectedAshaHearingAidDevice_isMonaural_notAvailable() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
+    public void isAvailable_deviceIsConnectedHearingAid_isMonaural_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
         when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_MONAURAL);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      1. Binaural hearing aids
+     *      2. Sub device is added
+     *      3. Sub device is bonded
+     * Expected result:
+     *      The controller is not available. Both sides are already paired.
+     */
     @Test
-    public void isAvailable_subDeviceIsConnectedAshaHearingAidDevice_notAvailable() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
+    public void isAvailable_deviceIsConnectedHearingAid_subDeviceIsBonded_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).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();
     }
 
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      1. Binaural hearing aids
+     *      2. Sub device is added
+     *      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_subDeviceIsNotConnectedAshaHearingAidDevice_available() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
+    public void isAvailable_deviceIsConnectedHearingAid_subDeviceIsNotBonded_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).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();
     }
 
+    /**
+     * Test if the controller is available.
+     * Conditions:
+     *      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_subDeviceNotExist_available() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
+    public void isAvailable_deviceIsConnectedHearingAid_memberDeviceIsBonded_notAvailable() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
         when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mCachedDevice.getSubDevice()).thenReturn(null);
+        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_deviceIsConnectedHearingAid_memberDeviceIsNotBonded_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).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 refresh_leftSideDevice_leftSideButtonTitle() {
+    public void isAvailable_deviceIsConnectedHearingAid_otherDeviceIsNotExist_available() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(true);
+        when(mCachedDevice.getDeviceMode()).thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
+        when(mCachedDevice.getSubDevice()).thenReturn(null);
+        when(mCachedDevice.getMemberDevice()).thenReturn(new HashSet<>());
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    /** Test the pair other side button title after refreshing. */
+    @Test
+    public void refresh_deviceIsRightSide_showPairLeftSideTitle() {
         when(mCachedDevice.getDeviceSide()).thenReturn(HearingAidInfo.DeviceSide.SIDE_RIGHT);
         mController.init(mScreen);
 
@@ -145,9 +236,10 @@
                 mContext.getString(R.string.bluetooth_pair_left_ear_button));
     }
 
+    /** Test the pair other side button visibility after refreshing. */
     @Test
-    public void refresh_isNotConnectedAshaHearingAidDevice_notVisiblePreference() {
-        when(mCachedDevice.isConnectedAshaHearingAidDevice()).thenReturn(false);
+    public void refresh_deviceIsNotConnectedHearingAid_preferenceIsNotVisible() {
+        when(mCachedDevice.isConnectedHearingAidDevice()).thenReturn(false);
         mController.init(mScreen);
 
         mController.refresh();
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
index 3bc9a05..9b1466b 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsProfilesControllerTest.java
@@ -18,6 +18,7 @@
 
 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;
@@ -28,21 +29,33 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.sysprop.BluetoothProperties;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
-import androidx.preference.SwitchPreference;
+import androidx.preference.SwitchPreferenceCompat;
 
-import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowBluetoothDevice;
+import com.android.settingslib.R;
 import com.android.settingslib.bluetooth.A2dpProfile;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LeAudioProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 import com.android.settingslib.bluetooth.LocalBluetoothProfile;
 import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 import com.android.settingslib.bluetooth.MapProfile;
 import com.android.settingslib.bluetooth.PbapServerProfile;
 
-import org.junit.Ignore;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -57,28 +70,41 @@
 import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
-@Ignore
 @Config(shadows = ShadowBluetoothDevice.class)
 public class BluetoothDetailsProfilesControllerTest extends BluetoothDetailsControllerTestBase {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
+    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;
+    private BluetoothFeatureProvider mFeatureProvider;
 
     @Mock
     private LocalBluetoothManager mLocalManager;
     @Mock
     private LocalBluetoothProfileManager mProfileManager;
+    @Mock
+    private CachedBluetoothDeviceManager mCachedBluetoothDeviceManager;
 
     @Override
     public void setUp() {
         super.setUp();
 
+        FakeFeatureFactory fakeFeatureFactory = FakeFeatureFactory.setupForTest();
+        mFeatureProvider = fakeFeatureFactory.getBluetoothFeatureProvider();
+
         mProfiles = spy(new PreferenceCategory(mContext));
         when(mProfiles.getPreferenceManager()).thenReturn(mPreferenceManager);
 
         mConnectableProfiles = new ArrayList<>();
         when(mLocalManager.getProfileManager()).thenReturn(mProfileManager);
+        when(mLocalManager.getCachedDeviceManager()).thenReturn(mCachedBluetoothDeviceManager);
+        when(mCachedBluetoothDeviceManager.getCachedDevicesCopy())
+                .thenReturn(ImmutableList.of(mCachedDevice));
         when(mCachedDevice.getConnectableProfiles()).thenAnswer(invocation ->
             new ArrayList<>(mConnectableProfiles)
         );
@@ -89,6 +115,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 {
@@ -191,25 +218,26 @@
         return profile;
     }
 
-    /** Returns the list of SwitchPreference objects added to the screen - there should be one per
-     *  Bluetooth profile.
+    /**
+     * Returns the list of SwitchPreferenceCompat objects added to the screen - there should be one
+     * per Bluetooth profile.
      */
-    private List<SwitchPreference> getProfileSwitches(boolean expectOnlyMConnectable) {
+    private List<SwitchPreferenceCompat> getProfileSwitches(boolean expectOnlyMConnectable) {
         if (expectOnlyMConnectable) {
             assertThat(mConnectableProfiles).isNotEmpty();
             assertThat(mProfiles.getPreferenceCount() - 1).isEqualTo(mConnectableProfiles.size());
         }
-        List<SwitchPreference> result = new ArrayList<>();
+        List<SwitchPreferenceCompat> result = new ArrayList<>();
         for (int i = 0; i < mProfiles.getPreferenceCount(); i++) {
             final Preference preference = mProfiles.getPreference(i);
-            if (preference instanceof SwitchPreference) {
-                result.add((SwitchPreference) preference);
+            if (preference instanceof SwitchPreferenceCompat) {
+                result.add((SwitchPreferenceCompat) preference);
             }
         }
         return result;
     }
 
-     private void verifyProfileSwitchTitles(List<SwitchPreference> switches) {
+    private void verifyProfileSwitchTitles(List<SwitchPreferenceCompat> switches) {
         for (int i = 0; i < switches.size(); i++) {
             String expectedTitle =
                 mContext.getString(mConnectableProfiles.get(i).getNameResource(mDevice));
@@ -219,17 +247,17 @@
 
     @Test
     public void oneProfile() {
-        addFakeProfile(R.string.bluetooth_profile_a2dp, true);
+        addFakeProfile(com.android.settingslib.R.string.bluetooth_profile_a2dp, true);
         showScreen(mController);
         verifyProfileSwitchTitles(getProfileSwitches(true));
     }
 
     @Test
     public void multipleProfiles() {
-        addFakeProfile(R.string.bluetooth_profile_a2dp, true);
-        addFakeProfile(R.string.bluetooth_profile_headset, false);
+        addFakeProfile(com.android.settingslib.R.string.bluetooth_profile_a2dp, true);
+        addFakeProfile(com.android.settingslib.R.string.bluetooth_profile_headset, false);
         showScreen(mController);
-        List<SwitchPreference> switches = getProfileSwitches(true);
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(true);
         verifyProfileSwitchTitles(switches);
         assertThat(switches.get(0).isChecked()).isTrue();
         assertThat(switches.get(1).isChecked()).isFalse();
@@ -252,11 +280,11 @@
 
     @Test
     public void disableThenReenableOneProfile() {
-        addFakeProfile(R.string.bluetooth_profile_a2dp, true);
-        addFakeProfile(R.string.bluetooth_profile_headset, true);
+        addFakeProfile(com.android.settingslib.R.string.bluetooth_profile_a2dp, true);
+        addFakeProfile(com.android.settingslib.R.string.bluetooth_profile_headset, true);
         showScreen(mController);
-        List<SwitchPreference> switches = getProfileSwitches(true);
-        SwitchPreference pref = switches.get(0);
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(true);
+        SwitchPreferenceCompat pref = switches.get(0);
 
         // Clicking the pref should cause the profile to become not-preferred.
         assertThat(pref.isChecked()).isTrue();
@@ -279,7 +307,7 @@
     @Test
     public void disconnectedDeviceOneProfile() {
         setupDevice(makeDefaultDeviceConfig().setConnected(false).setConnectionSummary(null));
-        addFakeProfile(R.string.bluetooth_profile_a2dp, true);
+        addFakeProfile(com.android.settingslib.R.string.bluetooth_profile_a2dp, true);
         showScreen(mController);
         verifyProfileSwitchTitles(getProfileSwitches(true));
     }
@@ -289,16 +317,20 @@
         setupDevice(makeDefaultDeviceConfig());
         mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_ALLOWED);
         PbapServerProfile psp = mock(PbapServerProfile.class);
-        when(psp.getNameResource(mDevice)).thenReturn(R.string.bluetooth_profile_pbap);
+        when(psp.getNameResource(mDevice))
+                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_pbap);
+        when(psp.getSummaryResourceForDevice(mDevice))
+                .thenReturn(R.string.bluetooth_profile_pbap_summary);
         when(psp.toString()).thenReturn(PbapServerProfile.NAME);
         when(psp.isProfileReady()).thenReturn(true);
         when(mProfileManager.getPbapProfile()).thenReturn(psp);
 
         showScreen(mController);
-        List<SwitchPreference> switches = getProfileSwitches(false);
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
         assertThat(switches.size()).isEqualTo(1);
-        SwitchPreference pref = switches.get(0);
-        assertThat(pref.getTitle()).isEqualTo(mContext.getString(R.string.bluetooth_profile_pbap));
+        SwitchPreferenceCompat pref = switches.get(0);
+        assertThat(pref.getTitle()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.bluetooth_profile_pbap));
         assertThat(pref.isChecked()).isTrue();
 
         pref.performClick();
@@ -312,16 +344,20 @@
         setupDevice(makeDefaultDeviceConfig());
         mDevice.setPhonebookAccessPermission(BluetoothDevice.ACCESS_REJECTED);
         PbapServerProfile psp = mock(PbapServerProfile.class);
-        when(psp.getNameResource(mDevice)).thenReturn(R.string.bluetooth_profile_pbap);
+        when(psp.getNameResource(mDevice))
+                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_pbap);
+        when(psp.getSummaryResourceForDevice(mDevice))
+                .thenReturn(R.string.bluetooth_profile_pbap_summary);
         when(psp.toString()).thenReturn(PbapServerProfile.NAME);
         when(psp.isProfileReady()).thenReturn(true);
         when(mProfileManager.getPbapProfile()).thenReturn(psp);
 
         showScreen(mController);
-        List<SwitchPreference> switches = getProfileSwitches(false);
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
         assertThat(switches.size()).isEqualTo(1);
-        SwitchPreference pref = switches.get(0);
-        assertThat(pref.getTitle()).isEqualTo(mContext.getString(R.string.bluetooth_profile_pbap));
+        SwitchPreferenceCompat pref = switches.get(0);
+        assertThat(pref.getTitle()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.bluetooth_profile_pbap));
         assertThat(pref.isChecked()).isFalse();
 
         pref.performClick();
@@ -334,16 +370,18 @@
     public void mapProfile() {
         setupDevice(makeDefaultDeviceConfig());
         MapProfile mapProfile = mock(MapProfile.class);
-        when(mapProfile.getNameResource(mDevice)).thenReturn(R.string.bluetooth_profile_map);
+        when(mapProfile.getNameResource(mDevice))
+                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_map);
         when(mapProfile.isProfileReady()).thenReturn(true);
         when(mProfileManager.getMapProfile()).thenReturn(mapProfile);
         when(mProfileManager.getProfileByName(eq(mapProfile.toString()))).thenReturn(mapProfile);
         mDevice.setMessageAccessPermission(BluetoothDevice.ACCESS_REJECTED);
         showScreen(mController);
-        List<SwitchPreference> switches = getProfileSwitches(false);
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
         assertThat(switches.size()).isEqualTo(1);
-        SwitchPreference pref = switches.get(0);
-        assertThat(pref.getTitle()).isEqualTo(mContext.getString(R.string.bluetooth_profile_map));
+        SwitchPreferenceCompat pref = switches.get(0);
+        assertThat(pref.getTitle()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.bluetooth_profile_map));
         assertThat(pref.isChecked()).isFalse();
 
         pref.performClick();
@@ -355,9 +393,11 @@
             boolean highQualityAudioEnabled) {
         A2dpProfile profile = mock(A2dpProfile.class);
         when(mProfileManager.getProfileByName(eq(profile.toString()))).thenReturn(profile);
-        when(profile.getNameResource(mDevice)).thenReturn(R.string.bluetooth_profile_a2dp);
+        when(profile.getNameResource(mDevice))
+                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_a2dp);
         when(profile.getHighQualityAudioOptionLabel(mDevice)).thenReturn(
-            mContext.getString(R.string.bluetooth_profile_a2dp_high_quality_unknown_codec));
+                mContext.getString(com.android.settingslib.R
+                        .string.bluetooth_profile_a2dp_high_quality_unknown_codec));
         when(profile.supportsHighQualityAudio(mDevice)).thenReturn(supportsHighQualityAudio);
         when(profile.isHighQualityAudioEnabled(mDevice)).thenReturn(highQualityAudioEnabled);
         when(profile.isEnabled(mDevice)).thenReturn(preferred);
@@ -366,8 +406,8 @@
         return profile;
     }
 
-    private SwitchPreference getHighQualityAudioPref() {
-        return (SwitchPreference) mScreen.findPreference(
+    private SwitchPreferenceCompat getHighQualityAudioPref() {
+        return (SwitchPreferenceCompat) mScreen.findPreference(
                 BluetoothDetailsProfilesController.HIGH_QUALITY_AUDIO_PREF_TAG);
     }
 
@@ -376,7 +416,7 @@
         setupDevice(makeDefaultDeviceConfig());
         addMockA2dpProfile(true, true, true);
         showScreen(mController);
-        SwitchPreference pref = getHighQualityAudioPref();
+        SwitchPreferenceCompat pref = getHighQualityAudioPref();
         assertThat(pref.getKey()).isEqualTo(
                 BluetoothDetailsProfilesController.HIGH_QUALITY_AUDIO_PREF_TAG);
 
@@ -394,10 +434,11 @@
         addMockA2dpProfile(true, false, false);
         showScreen(mController);
         assertThat(mProfiles.getPreferenceCount()).isEqualTo(2);
-        SwitchPreference pref = (SwitchPreference) mProfiles.getPreference(0);
+        SwitchPreferenceCompat pref = (SwitchPreferenceCompat) mProfiles.getPreference(0);
         assertThat(pref.getKey())
             .isNotEqualTo(BluetoothDetailsProfilesController.HIGH_QUALITY_AUDIO_PREF_TAG);
-        assertThat(pref.getTitle()).isEqualTo(mContext.getString(R.string.bluetooth_profile_a2dp));
+        assertThat(pref.getTitle()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.bluetooth_profile_a2dp));
     }
 
     @Test
@@ -406,7 +447,7 @@
         addMockA2dpProfile(true, true, true);
         when(mCachedDevice.isBusy()).thenReturn(true);
         showScreen(mController);
-        SwitchPreference pref = getHighQualityAudioPref();
+        SwitchPreferenceCompat pref = getHighQualityAudioPref();
         assertThat(pref.isEnabled()).isFalse();
     }
 
@@ -419,14 +460,14 @@
 
         // Disabling media audio should cause the high quality audio switch to disappear, but not
         // the regular audio one.
-        SwitchPreference audioPref =
-            (SwitchPreference) mScreen.findPreference(audioProfile.toString());
+        SwitchPreferenceCompat audioPref =
+                (SwitchPreferenceCompat) mScreen.findPreference(audioProfile.toString());
         audioPref.performClick();
         verify(audioProfile).setEnabled(mDevice, false);
         when(audioProfile.isEnabled(mDevice)).thenReturn(false);
         mController.onDeviceAttributesChanged();
         assertThat(audioPref.isVisible()).isTrue();
-        SwitchPreference highQualityAudioPref = getHighQualityAudioPref();
+        SwitchPreferenceCompat highQualityAudioPref = getHighQualityAudioPref();
         assertThat(highQualityAudioPref.isVisible()).isFalse();
 
         // And re-enabling media audio should make high quality switch to reappear.
@@ -443,8 +484,8 @@
         setupDevice(makeDefaultDeviceConfig());
         A2dpProfile audioProfile = addMockA2dpProfile(false, true, true);
         showScreen(mController);
-        SwitchPreference audioPref = mScreen.findPreference(audioProfile.toString());
-        SwitchPreference highQualityAudioPref = getHighQualityAudioPref();
+        SwitchPreferenceCompat audioPref = mScreen.findPreference(audioProfile.toString());
+        SwitchPreferenceCompat highQualityAudioPref = getHighQualityAudioPref();
         assertThat(audioPref).isNotNull();
         assertThat(audioPref.isChecked()).isFalse();
         assertThat(highQualityAudioPref).isNotNull();
@@ -464,4 +505,57 @@
 
         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();
+    }
+
+    @Test
+    public void prefKeyInBlockingList_hideToggle() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_BLUETOOTH_PROFILE_TOGGLE_VISIBILITY_CHECKER);
+        setupDevice(makeDefaultDeviceConfig());
+
+        LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
+        when(leAudioProfile.getNameResource(mDevice))
+                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
+        when(leAudioProfile.isProfileReady()).thenReturn(true);
+        when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
+        when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
+        when(mFeatureProvider.getInvisibleProfilePreferenceKeys(any(), any()))
+                .thenReturn(ImmutableSet.of("LE_AUDIO"));
+        mConnectableProfiles.add(leAudioProfile);
+
+        showScreen(mController);
+
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
+        assertThat(switches.get(0).isVisible()).isFalse();
+    }
+
+    @Test
+    public void prefKeyNotInBlockingList_showToggle() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ENABLE_BLUETOOTH_PROFILE_TOGGLE_VISIBILITY_CHECKER);
+        setupDevice(makeDefaultDeviceConfig());
+
+        LeAudioProfile leAudioProfile = mock(LeAudioProfile.class);
+        when(leAudioProfile.getNameResource(mDevice))
+                .thenReturn(com.android.settingslib.R.string.bluetooth_profile_le_audio);
+        when(leAudioProfile.isProfileReady()).thenReturn(true);
+        when(leAudioProfile.toString()).thenReturn("LE_AUDIO");
+        when(mProfileManager.getLeAudioProfile()).thenReturn(leAudioProfile);
+        when(mFeatureProvider.getInvisibleProfilePreferenceKeys(any(), any()))
+                .thenReturn(ImmutableSet.of("A2DP"));
+        mConnectableProfiles.add(leAudioProfile);
+
+        showScreen(mController);
+
+        List<SwitchPreferenceCompat> switches = getProfileSwitches(false);
+        assertThat(switches.get(0).isVisible()).isTrue();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioControllerTest.java
index ce5631f..2cc55a7 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;
 
@@ -43,6 +43,7 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowLooper;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -68,8 +69,8 @@
     private AudioDeviceAttributes mAvailableDevice;
 
     private BluetoothDetailsSpatialAudioController mController;
-    private SwitchPreference mSpatialAudioPref;
-    private SwitchPreference mHeadTrackingPref;
+    private TwoStatePreference mSpatialAudioPref;
+    private TwoStatePreference mHeadTrackingPref;
 
     @Before
     public void setUp() {
@@ -120,6 +121,7 @@
         when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         assertThat(mSpatialAudioPref.isChecked()).isTrue();
     }
@@ -130,6 +132,7 @@
         when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         assertThat(mSpatialAudioPref.isChecked()).isFalse();
     }
@@ -142,6 +145,7 @@
         when(mSpatializer.hasHeadTracker(mController.mAudioDevice)).thenReturn(true);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         assertThat(mHeadTrackingPref.isVisible()).isTrue();
     }
@@ -156,6 +160,7 @@
         when(mSpatializer.hasHeadTracker(mController.mAudioDevice)).thenReturn(false);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         verify(mProfilesContainer).removePreference(mHeadTrackingPref);
     }
@@ -166,6 +171,7 @@
         when(mSpatializer.getCompatibleAudioDevices()).thenReturn(compatibleAudioDevices);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         verify(mProfilesContainer).removePreference(mHeadTrackingPref);
     }
@@ -181,6 +187,7 @@
         when(mSpatializer.isHeadTrackerEnabled(mController.mAudioDevice)).thenReturn(true);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         assertThat(mHeadTrackingPref.isChecked()).isTrue();
     }
@@ -196,6 +203,7 @@
         when(mSpatializer.isHeadTrackerEnabled(mController.mAudioDevice)).thenReturn(false);
 
         mController.refresh();
+        ShadowLooper.idleMainLooper();
 
         assertThat(mHeadTrackingPref.isChecked()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
index 939bd10..fc72c41 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
@@ -18,6 +18,8 @@
 
 import static android.bluetooth.BluetoothDevice.BOND_NONE;
 
+import static com.android.settings.bluetooth.BluetoothDetailsHearingDeviceControlsController.KEY_DEVICE_CONTROLS_GENERAL_GROUP;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -29,7 +31,10 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
+import android.companion.CompanionDeviceManager;
 import android.content.Context;
+import android.content.Intent;
 import android.hardware.input.InputManager;
 import android.os.Bundle;
 import android.os.UserManager;
@@ -46,9 +51,12 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+import com.google.common.collect.ImmutableList;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -62,10 +70,14 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.fakes.RoboMenu;
-import org.robolectric.shadows.ShadowUserManager;
+
+import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUserManager.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class BluetoothDeviceDetailsFragmentTest {
 
     private static final String TEST_ADDRESS = "55:66:77:88:99:AA";
@@ -87,12 +99,17 @@
     private UserManager mUserManager;
     @Mock
     private InputManager mInputManager;
+    @Mock
+    private CompanionDeviceManager mCompanionDeviceManager;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mInputManager).when(mContext).getSystemService(InputManager.class);
+        doReturn(mCompanionDeviceManager).when(mContext)
+                .getSystemService(CompanionDeviceManager.class);
+        when(mCompanionDeviceManager.getAllAssociations()).thenReturn(ImmutableList.of());
         removeInputDeviceWithMatchingBluetoothAddress();
         FakeFeatureFactory.setupForTest();
 
@@ -207,6 +224,38 @@
         verify(mFragment).finish();
     }
 
+    @Test
+    public void createPreferenceControllers_launchFromHAPage_deviceControllerNotExist() {
+        BluetoothDeviceDetailsFragment fragment = setupFragment();
+        Intent intent = fragment.getActivity().getIntent();
+        intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
+                SettingsEnums.ACCESSIBILITY_HEARING_AID_SETTINGS);
+        fragment.onAttach(mContext);
+
+        List<AbstractPreferenceController> controllerList = fragment.createPreferenceControllers(
+                mContext);
+
+        assertThat(controllerList.stream()
+                .anyMatch(controller -> controller.getPreferenceKey().equals(
+                        KEY_DEVICE_CONTROLS_GENERAL_GROUP))).isFalse();
+    }
+
+    @Test
+    public void createPreferenceControllers_notLaunchFromHAPage_deviceControllerExist() {
+        BluetoothDeviceDetailsFragment fragment = setupFragment();
+        Intent intent = fragment.getActivity().getIntent();
+        intent.putExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY,
+                SettingsEnums.PAGE_UNKNOWN);
+        fragment.onAttach(mContext);
+
+        List<AbstractPreferenceController> controllerList = fragment.createPreferenceControllers(
+                mContext);
+
+        assertThat(controllerList.stream()
+                .anyMatch(controller -> controller.getPreferenceKey().equals(
+                        KEY_DEVICE_CONTROLS_GENERAL_GROUP))).isTrue();
+    }
+
     private InputDevice createInputDeviceWithMatchingBluetoothAddress() {
         doReturn(new int[]{0}).when(mInputManager).getInputDeviceIds();
         InputDevice device = mock(InputDevice.class);
@@ -229,9 +278,7 @@
         doReturn(mPreferenceScreen).when(fragment).getPreferenceScreen();
         doReturn(mUserManager).when(fragment).getUserManager();
 
-        mActivity = spy((FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get());
-
+        mActivity = spy(Robolectric.setupActivity(FragmentActivity.class));
         doReturn(mActivity).when(fragment).getActivity();
         doReturn(mContext).when(fragment).getContext();
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java
index 7c598e0..40f7895 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java
@@ -54,7 +54,10 @@
 
 /** Tests for {@link BluetoothDevicePairingDetailBase}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
+@Config(shadows = {
+        ShadowBluetoothAdapter.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class BluetoothDevicePairingDetailBaseTest {
 
     @Rule
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
index f93c61e..6fd1d98 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
@@ -47,7 +47,10 @@
 import org.robolectric.shadow.api.Shadow;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
+@Config(shadows = {
+        ShadowBluetoothAdapter.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class BluetoothDeviceRenamePreferenceControllerTest {
 
     private static final String DEVICE_NAME = "Nightshade";
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/bluetooth/BluetoothFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothFeatureProviderImplTest.java
index 3d40bfc..bcd9a90 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothFeatureProviderImplTest.java
@@ -28,7 +28,6 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
 public class BluetoothFeatureProviderImplTest {
@@ -47,8 +46,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mBluetoothFeatureProvider = new BluetoothFeatureProviderImpl(
-                RuntimeEnvironment.application);
+        mBluetoothFeatureProvider = new BluetoothFeatureProviderImpl();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java
index b029f92..f3f2b09 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java
@@ -36,7 +36,6 @@
 import androidx.preference.PreferenceCategory;
 
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -50,8 +49,12 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class BluetoothFindBroadcastsFragmentTest {
 
     private static final String TEST_ADDRESS = "55:66:77:88:99:AA";
@@ -87,10 +90,7 @@
         doReturn(mCachedDevice).when(mFragment).getCachedDevice(any());
         doReturn(mBroadcastAssistant).when(mFragment).getLeBroadcastAssistant();
         doReturn(mPreferenceCategroy).when(mFragment).findPreference(any());
-
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
-
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         when(mFragment.getActivity()).thenReturn(mActivity);
 
         FragmentManager fragmentManager = mock(FragmentManager.class);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
index 517b435..2044881 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
@@ -33,7 +33,6 @@
 import android.text.TextUtils;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
-import android.widget.CheckBox;
 import android.widget.TextView;
 
 import androidx.appcompat.app.AlertDialog;
@@ -276,7 +275,7 @@
     }
 
     @Test
-    public void contactSharingCheckbox_conditionIsReady_showsUi() {
+    public void contactSharingToggle_conditionIsReady_showsUi() {
         // set the dialog variant to confirmation/consent
         when(controller.getDialogType()).thenReturn(BluetoothPairingController.CONFIRMATION_DIALOG);
         // set a fake device name and pretend the profile has not been set up for it
@@ -286,14 +285,14 @@
         // build the fragment
         BluetoothPairingDialogFragment frag = makeFragment();
 
-        // verify that the checkbox is visible and that the device name is correct
-        CheckBox sharingCheckbox =
-                frag.getmDialog().findViewById(R.id.phonebook_sharing_message_confirm_pin);
-        assertThat(sharingCheckbox.getVisibility()).isEqualTo(View.VISIBLE);
+        // verify that the toggle is visible
+        View sharingToggle =
+                frag.getmDialog().findViewById(R.id.phonebook_sharing);
+        assertThat(sharingToggle.getVisibility()).isEqualTo(View.VISIBLE);
     }
 
     @Test
-    public void contactSharingCheckbox_conditionIsNotReady_doesNotShowUi() {
+    public void contactSharingToggle_conditionIsNotReady_doesNotShowUi() {
         // set the dialog variant to confirmation/consent
         when(controller.getDialogType()).thenReturn(BluetoothPairingController.CONFIRMATION_DIALOG);
         // set a fake device name and pretend the profile has been set up for it
@@ -303,10 +302,10 @@
         // build the fragment
         BluetoothPairingDialogFragment frag = makeFragment();
 
-        // verify that the checkbox is gone
-        CheckBox sharingCheckbox =
-                frag.getmDialog().findViewById(R.id.phonebook_sharing_message_confirm_pin);
-        assertThat(sharingCheckbox.getVisibility()).isEqualTo(View.GONE);
+        // verify that the toggle is gone
+        View sharingToggle =
+                frag.getmDialog().findViewById(R.id.phonebook_sharing);
+        assertThat(sharingToggle.getVisibility()).isEqualTo(View.GONE);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java
index 6f02753..b97343a 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPermissionActivityTest.java
@@ -16,22 +16,31 @@
 
 package com.android.settings.bluetooth;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.content.ContextWrapper;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Process;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
+@Ignore("b/313014781")
 @RunWith(RobolectricTestRunner.class)
 public class BluetoothPermissionActivityTest {
 
@@ -41,14 +50,27 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = mock(ContextWrapper.class);
         mActivity = new BluetoothPermissionActivity();
     }
 
     @Test
-    public void sendBroadcastWithPermission() {
+    public void sendBroadcastWithPermission() throws Exception {
         final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
         ReflectionHelpers.setField(mActivity, "mBase", mContext);
+        when(mContext.createContextAsUser(any(), anyInt())).thenReturn(mContext);
+
+        final String btPkgName = "com.android.bluetooth";
+        ActivityInfo btOppLauncherActivityInfo = new ActivityInfo();
+        btOppLauncherActivityInfo.name = "com.android.bluetooth.opp.BluetoothOppLauncherActivity";
+
+        PackageInfo btPkgInfo = new PackageInfo();
+        btPkgInfo.activities = new ActivityInfo[] {btOppLauncherActivityInfo};
+
+        PackageManager pm = mock(PackageManager.class);
+        when(pm.getPackagesForUid(Process.BLUETOOTH_UID)).thenReturn(new String[] {btPkgName});
+        when(pm.getPackageInfo(eq(btPkgName), anyInt())).thenReturn(btPkgInfo);
+        when(mContext.getPackageManager()).thenReturn(pm);
 
         mActivity.sendReplyIntentToReceiver(true, true);
 
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSummaryUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSummaryUpdaterTest.java
index 2aca4a3..58f5a06 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSummaryUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSummaryUpdaterTest.java
@@ -260,7 +260,8 @@
         mSummaryUpdater.onConnectionStateChanged(null /* device */,
                 BluetoothAdapter.STATE_CONNECTING);
 
-        verify(mListener).onSummaryChanged(mContext.getString(R.string.bluetooth_connecting));
+        verify(mListener).onSummaryChanged(
+                mContext.getString(com.android.settingslib.R.string.bluetooth_connecting));
     }
 
     @Test
@@ -272,7 +273,8 @@
         mSummaryUpdater.onConnectionStateChanged(null /* device */,
                 BluetoothAdapter.STATE_DISCONNECTING);
 
-        verify(mListener).onSummaryChanged(mContext.getString(R.string.bluetooth_disconnecting));
+        verify(mListener).onSummaryChanged(
+                mContext.getString(com.android.settingslib.R.string.bluetooth_disconnecting));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
index 50c82d3..853d2c48 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSwitchPreferenceControllerTest.java
@@ -44,7 +44,7 @@
 public class BluetoothSwitchPreferenceControllerTest {
 
     private static final String BLUETOOTH_INFO_STRING = "When Bluetooth is turned on, your device"
-            + " can communicate with other nearby Bluetooth devices.";
+            + " can communicate with other nearby Bluetooth devices";
     @Mock
     private RestrictionUtils mRestrictionUtils;
     @Mock
diff --git a/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java
index 00115d7..cd48bf1 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java
@@ -20,6 +20,8 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -28,18 +30,26 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
 import android.media.AudioManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.util.Pair;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowAudioManager;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowCachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -58,6 +68,10 @@
 public class ConnectedBluetoothDeviceUpdaterTest {
 
     private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
+    private static final String FAKE_EXCLUSIVE_MANAGER_NAME = "com.fake.name";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
 
     @Mock
     private DashboardFragment mDashboardFragment;
@@ -69,6 +83,8 @@
     private BluetoothDevice mBluetoothDevice;
     @Mock
     private Drawable mDrawable;
+    @Mock
+    private PackageManager mPackageManager;
 
     private Context mContext;
     private ConnectedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -82,7 +98,7 @@
         MockitoAnnotations.initMocks(this);
 
         Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
-        mContext = RuntimeEnvironment.application;
+        mContext = spy(RuntimeEnvironment.application);
         mAudioManager = mContext.getSystemService(AudioManager.class);
         mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
         mShadowBluetoothAdapter.setEnabled(true);
@@ -92,6 +108,7 @@
         mCachedDevices = new ArrayList<>();
         mCachedDevices.add(mCachedBluetoothDevice);
 
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
         when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
@@ -320,4 +337,97 @@
 
         assertThat(btPreference.shouldHideSecondTarget()).isTrue();
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_notExclusiveManagedDevice_addDevice() {
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater
+                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                null);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_notAllowedExclusiveManagedDevice_addDevice() {
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater
+                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                FAKE_EXCLUSIVE_MANAGER_NAME.getBytes());
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_existingExclusivelyManagedDeviceWithPackageInstalled_removePreference()
+            throws Exception {
+        final String exclusiveManagerName =
+                BluetoothUtils.getExclusiveManagers().stream().findAny().orElse(
+                        FAKE_EXCLUSIVE_MANAGER_NAME);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater
+                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                exclusiveManagerName.getBytes());
+        doReturn(new PackageInfo()).when(mPackageManager).getPackageInfo(exclusiveManagerName, 0);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
+        verify(mBluetoothDeviceUpdater, never()).addPreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_newExclusivelyManagedDeviceWithPackageInstalled_doNotAddPreference()
+            throws Exception {
+        final String exclusiveManagerName =
+                BluetoothUtils.getExclusiveManagers().stream().findAny().orElse(
+                        FAKE_EXCLUSIVE_MANAGER_NAME);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater
+                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                exclusiveManagerName.getBytes());
+        doReturn(new PackageInfo()).when(mPackageManager).getPackageInfo(exclusiveManagerName, 0);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
+        verify(mBluetoothDeviceUpdater, never()).addPreference(mCachedBluetoothDevice);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_exclusivelyManagedDeviceWithoutPackageInstalled_addDevice()
+            throws Exception {
+        final String exclusiveManagerName =
+                BluetoothUtils.getExclusiveManagers().stream().findAny().orElse(
+                        FAKE_EXCLUSIVE_MANAGER_NAME);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        when(mBluetoothDeviceUpdater
+                .isDeviceConnected(any(CachedBluetoothDevice.class))).thenReturn(true);
+        when(mCachedBluetoothDevice.isConnectedHfpDevice()).thenReturn(true);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                exclusiveManagerName.getBytes());
+        doThrow(new PackageManager.NameNotFoundException()).when(mPackageManager).getPackageInfo(
+                exclusiveManagerName, 0);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt b/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt
index 5a21aff..0f1ad4b 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt
+++ b/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt
@@ -56,7 +56,10 @@
 import org.mockito.Mockito.`when` as whenever
 
 @RunWith(RobolectricTestRunner::class)
-@Config(shadows = [ShadowBluetoothAdapter::class])
+@Config(shadows = [
+    ShadowBluetoothAdapter::class,
+    com.android.settings.testutils.shadow.ShadowFragment::class,
+])
 class DeviceListPreferenceFragmentTest {
     @get:Rule
     val mockito: MockitoRule = MockitoJUnit.rule()
diff --git a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
index c229449..349391d 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
@@ -18,6 +18,7 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -28,17 +29,26 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.util.Pair;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settingslib.bluetooth.BluetoothUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -56,6 +66,10 @@
 public class SavedBluetoothDeviceUpdaterTest {
 
     private static final String MAC_ADDRESS = "04:52:C7:0B:D8:3C";
+    private static final String FAKE_EXCLUSIVE_MANAGER_NAME = "com.fake.name";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
 
     @Mock
     private DashboardFragment mDashboardFragment;
@@ -73,6 +87,8 @@
     private LocalBluetoothManager mBluetoothManager;
     @Mock
     private Drawable mDrawable;
+    @Mock
+    private PackageManager mPackageManager;
 
     private Context mContext;
     private SavedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -84,12 +100,13 @@
         MockitoAnnotations.initMocks(this);
 
         Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
-        mContext = RuntimeEnvironment.application;
+        mContext = spy(RuntimeEnvironment.application);
         doReturn(mContext).when(mDashboardFragment).getContext();
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
         when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
         when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
 
         mBluetoothDeviceUpdater = spy(new SavedBluetoothDeviceUpdater(mContext,
                 mDevicePreferenceCallback, false, /* metricsCategory= */ 0));
@@ -103,10 +120,10 @@
         mCachedDevices.add(mCachedBluetoothDevice);
         when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
         when(mDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
-
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
     public void update_filterMatch_addPreference() {
         doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
         doReturn(false).when(mBluetoothDevice).isConnected();
@@ -118,6 +135,7 @@
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
     public void update_filterNotMatch_removePreference() {
         doReturn(BluetoothDevice.BOND_NONE).when(mBluetoothDevice).getBondState();
         doReturn(true).when(mBluetoothDevice).isConnected();
@@ -298,4 +316,125 @@
         verify(mBluetoothDeviceUpdater, never()).addPreference(mCachedBluetoothDevice,
                 BluetoothDevicePreference.SortType.TYPE_NO_SORT);
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_notExclusivelyManagedDevice_addDevice() {
+        final Collection<CachedBluetoothDevice> cachedDevices = new ArrayList<>();
+        cachedDevices.add(mCachedBluetoothDevice);
+
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(cachedDevices);
+        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mBluetoothDevice.isConnected()).thenReturn(false);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                null);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice,
+                BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_notAllowedExclusivelyManagedDevice_addDevice() {
+        final Collection<CachedBluetoothDevice> cachedDevices = new ArrayList<>();
+        cachedDevices.add(mCachedBluetoothDevice);
+
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(cachedDevices);
+        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mBluetoothDevice.isConnected()).thenReturn(false);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                FAKE_EXCLUSIVE_MANAGER_NAME.getBytes());
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice,
+                BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_existingExclusivelyManagedDeviceWithPackageInstalled_removePreference()
+            throws Exception {
+        final Collection<CachedBluetoothDevice> cachedDevices = new ArrayList<>();
+        final String exclusiveManagerName =
+                BluetoothUtils.getExclusiveManagers().stream().findAny().orElse(
+                        FAKE_EXCLUSIVE_MANAGER_NAME);
+
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(cachedDevices);
+        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mBluetoothDevice.isConnected()).thenReturn(false);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                exclusiveManagerName.getBytes());
+
+        doReturn(new PackageInfo()).when(mPackageManager).getPackageInfo(exclusiveManagerName, 0);
+        mBluetoothDeviceUpdater.mPreferenceMap.put(mBluetoothDevice, mPreference);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
+        verify(mBluetoothDeviceUpdater, never()).addPreference(mCachedBluetoothDevice,
+                BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_newExclusivelyManagedDeviceWithPackageInstalled_doNotAddPreference()
+            throws Exception {
+        final Collection<CachedBluetoothDevice> cachedDevices = new ArrayList<>();
+        final String exclusiveManagerName =
+                BluetoothUtils.getExclusiveManagers().stream().findAny().orElse(
+                        FAKE_EXCLUSIVE_MANAGER_NAME);
+        cachedDevices.add(mCachedBluetoothDevice);
+
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(cachedDevices);
+        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mBluetoothDevice.isConnected()).thenReturn(false);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                exclusiveManagerName.getBytes());
+
+        doReturn(new PackageInfo()).when(mPackageManager).getPackageInfo(exclusiveManagerName, 0);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
+        verify(mBluetoothDeviceUpdater, never()).addPreference(mCachedBluetoothDevice,
+                BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_HIDE_EXCLUSIVELY_MANAGED_BLUETOOTH_DEVICE)
+    public void update_exclusivelyManagedDeviceWithoutPackageInstalled_addDevice()
+            throws Exception {
+        final Collection<CachedBluetoothDevice> cachedDevices = new ArrayList<>();
+        final String exclusiveManagerName =
+                BluetoothUtils.getExclusiveManagers().stream().findAny().orElse(
+                        FAKE_EXCLUSIVE_MANAGER_NAME);
+        cachedDevices.add(mCachedBluetoothDevice);
+
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mDeviceManager.getCachedDevicesCopy()).thenReturn(cachedDevices);
+        when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mBluetoothDevice.isConnected()).thenReturn(false);
+        when(mBluetoothDevice.getMetadata(BluetoothDevice.METADATA_EXCLUSIVE_MANAGER)).thenReturn(
+                exclusiveManagerName.getBytes());
+
+        doThrow(new PackageManager.NameNotFoundException()).when(mPackageManager).getPackageInfo(
+                exclusiveManagerName, 0);
+
+        mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
+
+        verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice,
+                BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java b/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java
index a3fdee6..48318df 100644
--- a/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java
+++ b/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java
@@ -50,12 +50,16 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowPackageManager;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Collections;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class BugReportHandlerPickerTest {
     private static final String PACKAGE_NAME = "com.example.test";
     private static final int USER_ID = 0;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/AddDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/AddDevicePreferenceControllerTest.java
index 7384d3a..63fa88d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/AddDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/AddDevicePreferenceControllerTest.java
@@ -15,34 +15,49 @@
  */
 package com.android.settings.connecteddevice;
 
+import static com.android.settings.accessibility.AccessibilityHearingAidsFragment.KEY_HEARING_DEVICE_ADD_BT_DEVICES;
 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.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
 
 import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.text.TextUtils;
 
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.accessibility.HearingDevicePairingDetail;
+import com.android.settings.accessibility.HearingDevicePairingFragment;
+import com.android.settings.flags.Flags;
 import com.android.settingslib.RestrictedPreference;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplicationPackageManager;
 import org.robolectric.util.ReflectionHelpers;
@@ -51,12 +66,16 @@
 @Config(shadows = ShadowApplicationPackageManager.class)
 public class AddDevicePreferenceControllerTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Mock
     private PreferenceScreen mScreen;
     @Mock
     private BluetoothAdapter mBluetoothAdapter;
 
-    private Context mContext;
+    @Spy
+    private Context mContext = ApplicationProvider.getApplicationContext();
     private AddDevicePreferenceController mAddDevicePreferenceController;
     private RestrictedPreference mAddDevicePreference;
     private ShadowApplicationPackageManager mPackageManager;
@@ -66,8 +85,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = RuntimeEnvironment.application;
-        mPackageManager = (ShadowApplicationPackageManager) Shadows.shadowOf(
+        mPackageManager = (ShadowApplicationPackageManager) shadowOf(
                 mContext.getPackageManager());
         mPackageManager.setSystemFeature(PackageManager.FEATURE_BLUETOOTH, true);
 
@@ -82,6 +100,8 @@
         when(mBluetoothAdapter.isEnabled()).thenReturn(true);
         when(mScreen.findPreference(key)).thenReturn(mAddDevicePreference);
         mAddDevicePreferenceController.displayPreference(mScreen);
+
+        doNothing().when(mContext).startActivity(any(Intent.class));
     }
 
     @Test
@@ -137,4 +157,30 @@
         assertThat(mAddDevicePreferenceController.getAvailabilityStatus())
                 .isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_NEW_HEARING_DEVICE_PAIRING_PAGE)
+    public void handlePreferenceClick_A11yPreference_redirectToNewPairingPage() {
+        mAddDevicePreference.setKey(KEY_HEARING_DEVICE_ADD_BT_DEVICES);
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+        mAddDevicePreferenceController.handlePreferenceTreeClick(mAddDevicePreference);
+
+        verify(mContext).startActivity(intentCaptor.capture());
+        assertThat(intentCaptor.getValue().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(HearingDevicePairingFragment.class.getName());
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_NEW_HEARING_DEVICE_PAIRING_PAGE)
+    public void handlePreferenceClick_A11yPreference_redirectToOldPairingPage() {
+        mAddDevicePreference.setKey(KEY_HEARING_DEVICE_ADD_BT_DEVICES);
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+        mAddDevicePreferenceController.handlePreferenceTreeClick(mAddDevicePreference);
+
+        verify(mContext).startActivity(intentCaptor.capture());
+        assertThat(intentCaptor.getValue().getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(HearingDevicePairingDetail.class.getName());
+    }
 }
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/AvailableMediaDeviceGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java
index 0c3443e..e5964d0 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java
@@ -22,16 +22,24 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
+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.ShadowLooper.shadowMainLooper;
 
+import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
 import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothStatusCodes;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.media.AudioManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
@@ -43,20 +51,22 @@
 import com.android.settings.R;
 import com.android.settings.bluetooth.AvailableMediaBluetoothDeviceUpdater;
 import com.android.settings.bluetooth.Utils;
-import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowAudioManager;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.bluetooth.BluetoothCallback;
 import com.android.settingslib.bluetooth.BluetoothEventManager;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.HearingAidInfo;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -66,40 +76,46 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+import java.util.concurrent.Executor;
 
 /** Tests for {@link AvailableMediaDeviceGroupController}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAudioManager.class, ShadowBluetoothAdapter.class,
-        ShadowBluetoothUtils.class})
+@Config(
+        shadows = {
+            ShadowAudioManager.class,
+            ShadowBluetoothAdapter.class,
+            ShadowBluetoothUtils.class,
+            ShadowAlertDialogCompat.class,
+        })
 public class AvailableMediaDeviceGroupControllerTest {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
 
     private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
     private static final String PREFERENCE_KEY_1 = "pref_key_1";
 
-    @Mock
-    private DashboardFragment mDashboardFragment;
-    @Mock
-    private AvailableMediaBluetoothDeviceUpdater mAvailableMediaBluetoothDeviceUpdater;
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
+    @Mock private AvailableMediaBluetoothDeviceUpdater mAvailableMediaBluetoothDeviceUpdater;
+    @Mock private PreferenceScreen mPreferenceScreen;
+
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private PreferenceManager mPreferenceManager;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private BluetoothEventManager mEventManager;
-    @Mock
-    private LocalBluetoothManager mLocalBluetoothManager;
-    @Mock
-    private CachedBluetoothDeviceManager mCachedDeviceManager;
-    @Mock
-    private CachedBluetoothDevice mCachedBluetoothDevice;
+
+    @Mock private PackageManager mPackageManager;
+    @Mock private BluetoothEventManager mEventManager;
+    @Mock private LocalBluetoothManager mLocalBluetoothManager;
+    @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
+    @Mock private CachedBluetoothDeviceManager mCachedDeviceManager;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private CachedBluetoothDevice mCachedBluetoothDevice;
 
     private PreferenceGroup mPreferenceGroup;
     private Context mContext;
     private Preference mPreference;
     private AvailableMediaDeviceGroupController mAvailableMediaDeviceGroupController;
     private AudioManager mAudioManager;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
 
     @Before
     public void setUp() {
@@ -109,30 +125,33 @@
         mPreference = new Preference(mContext);
         mPreference.setKey(PREFERENCE_KEY_1);
         mPreferenceGroup = spy(new PreferenceScreen(mContext, null));
-
-        final FragmentActivity mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
-
+        final FragmentActivity mActivity = Robolectric.setupActivity(FragmentActivity.class);
         when(mPreferenceGroup.getPreferenceManager()).thenReturn(mPreferenceManager);
-        doReturn(mContext).when(mDashboardFragment).getContext();
         doReturn(mPackageManager).when(mContext).getPackageManager();
         doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
-        when(mDashboardFragment.getParentFragmentManager()).thenReturn(
-                mActivity.getSupportFragmentManager());
 
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_NOT_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_NOT_SUPPORTED);
         ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBluetoothManager;
         mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
         mAudioManager = mContext.getSystemService(AudioManager.class);
         doReturn(mEventManager).when(mLocalBluetoothManager).getEventManager();
+        when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
         when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
-        when(mCachedDeviceManager.findDevice(any(BluetoothDevice.class))).thenReturn(
-                mCachedBluetoothDevice);
+        when(mCachedDeviceManager.findDevice(any(BluetoothDevice.class)))
+                .thenReturn(mCachedBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS);
 
-        mAvailableMediaDeviceGroupController = spy(
-                new AvailableMediaDeviceGroupController(mContext));
-        mAvailableMediaDeviceGroupController.
-                setBluetoothDeviceUpdater(mAvailableMediaBluetoothDeviceUpdater);
+        mAvailableMediaDeviceGroupController =
+                spy(new AvailableMediaDeviceGroupController(mContext));
+        mAvailableMediaDeviceGroupController.setBluetoothDeviceUpdater(
+                mAvailableMediaBluetoothDeviceUpdater);
+        mAvailableMediaDeviceGroupController.setFragmentManager(
+                mActivity.getSupportFragmentManager());
         mAvailableMediaDeviceGroupController.mPreferenceGroup = mPreferenceGroup;
     }
 
@@ -181,34 +200,55 @@
         mAvailableMediaDeviceGroupController.onStart();
 
         verify(mAvailableMediaBluetoothDeviceUpdater).registerCallback();
-        verify(mLocalBluetoothManager.getEventManager()).registerCallback(
-                any(BluetoothCallback.class));
+        verify(mLocalBluetoothManager.getEventManager())
+                .registerCallback(any(BluetoothCallback.class));
         verify(mAvailableMediaBluetoothDeviceUpdater).refreshPreference();
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void testRegister_audioSharingOn() {
+        setUpBroadcast();
+        // register the callback in onStart()
+        mAvailableMediaDeviceGroupController.onStart();
+        verify(mAssistant)
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
     public void testUnregister() {
         // unregister the callback in onStop()
         mAvailableMediaDeviceGroupController.onStop();
         verify(mAvailableMediaBluetoothDeviceUpdater).unregisterCallback();
-        verify(mLocalBluetoothManager.getEventManager()).unregisterCallback(
-                any(BluetoothCallback.class));
+        verify(mLocalBluetoothManager.getEventManager())
+                .unregisterCallback(any(BluetoothCallback.class));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void testUnregister_audioSharingOn() {
+        setUpBroadcast();
+        // unregister the callback in onStop()
+        mAvailableMediaDeviceGroupController.onStop();
+        verify(mAssistant)
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
     }
 
     @Test
     public void testGetAvailabilityStatus_noBluetoothFeature_returnUnSupported() {
         doReturn(false).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
 
-        assertThat(mAvailableMediaDeviceGroupController.getAvailabilityStatus()).isEqualTo(
-                UNSUPPORTED_ON_DEVICE);
+        assertThat(mAvailableMediaDeviceGroupController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
     public void testGetAvailabilityStatus_BluetoothFeature_returnSupported() {
         doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
 
-        assertThat(mAvailableMediaDeviceGroupController.getAvailabilityStatus()).isEqualTo(
-                AVAILABLE_UNSEARCHABLE);
+        assertThat(mAvailableMediaDeviceGroupController.getAvailabilityStatus())
+                .isEqualTo(AVAILABLE_UNSEARCHABLE);
     }
 
     @Test
@@ -216,8 +256,8 @@
         mAudioManager.setMode(AudioManager.MODE_IN_CALL);
         mAvailableMediaDeviceGroupController.onAudioModeChanged();
 
-        assertThat(mPreferenceGroup.getTitle()).isEqualTo(
-                mContext.getText(R.string.connected_device_call_device_title));
+        assertThat(mPreferenceGroup.getTitle())
+                .isEqualTo(mContext.getText(R.string.connected_device_call_device_title));
     }
 
     @Test
@@ -225,8 +265,8 @@
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
         mAvailableMediaDeviceGroupController.onAudioModeChanged();
 
-        assertThat(mPreferenceGroup.getTitle()).isEqualTo(
-                mContext.getText(R.string.connected_device_media_device_title));
+        assertThat(mPreferenceGroup.getTitle())
+                .isEqualTo(mContext.getText(R.string.connected_device_media_device_title));
     }
 
     @Test
@@ -246,19 +286,33 @@
     }
 
     @Test
-    @Config(shadows = ShadowAlertDialogCompat.class)
     public void onActiveDeviceChanged_hearingAidProfile_launchHearingAidPairingDialog() {
         when(mCachedBluetoothDevice.isConnectedAshaHearingAidDevice()).thenReturn(true);
-        when(mCachedBluetoothDevice.getDeviceMode()).thenReturn(
-                HearingAidInfo.DeviceMode.MODE_BINAURAL);
-        when(mCachedBluetoothDevice.getDeviceSide()).thenReturn(
-                HearingAidInfo.DeviceSide.SIDE_LEFT);
-        mAvailableMediaDeviceGroupController.init(mDashboardFragment);
+        when(mCachedBluetoothDevice.getDeviceMode())
+                .thenReturn(HearingAidInfo.DeviceMode.MODE_BINAURAL);
+        when(mCachedBluetoothDevice.getDeviceSide())
+                .thenReturn(HearingAidInfo.DeviceSide.SIDE_LEFT);
 
-        mAvailableMediaDeviceGroupController.onActiveDeviceChanged(mCachedBluetoothDevice,
-                BluetoothProfile.HEARING_AID);
+        mAvailableMediaDeviceGroupController.onActiveDeviceChanged(
+                mCachedBluetoothDevice, BluetoothProfile.HEARING_AID);
+        shadowMainLooper().idle();
 
         final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
         assertThat(dialog.isShowing()).isTrue();
     }
+
+    private void setUpBroadcast() {
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        when(mLocalBtProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(mAssistant);
+        doNothing()
+                .when(mAssistant)
+                .registerServiceCallBack(
+                        any(Executor.class), any(BluetoothLeBroadcastAssistant.Callback.class));
+        doNothing()
+                .when(mAssistant)
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index 5f0f2b9..09f7a38 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -25,6 +25,8 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.SearchIndexableResource;
 
 import com.android.settings.R;
@@ -36,6 +38,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.Mock;
@@ -47,22 +50,31 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class,
-        ShadowConnectivityManager.class, ShadowBluetoothAdapter.class})
+@Config(
+        shadows = {
+            ShadowUserManager.class,
+            ShadowConnectivityManager.class,
+            ShadowBluetoothAdapter.class
+        })
 public class ConnectedDeviceDashboardFragmentTest {
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String KEY_NEARBY_DEVICES = "bt_nearby_slice";
     private static final String KEY_DISCOVERABLE_FOOTER = "discoverable_footer";
-    private static final String KEY_SEE_ALL = "previously_connected_devices_see_all";
+    private static final String KEY_SAVED_DEVICE_SEE_ALL = "previously_connected_devices_see_all";
+    private static final String KEY_FAST_PAIR_DEVICE_SEE_ALL = "fast_pair_devices_see_all";
     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";
     private static final String TEST_APP_NAME = "com.testapp.settings";
     private static final String TEST_ACTION = "com.testapp.settings.ACTION_START";
 
-
-    @Mock
-    private PackageManager mPackageManager;
+    @Mock private PackageManager mPackageManager;
     private Context mContext;
     private ConnectedDeviceDashboardFragment mFragment;
 
@@ -79,8 +91,8 @@
     @Test
     public void searchIndexProvider_shouldIndexResource() {
         final List<SearchIndexableResource> indexRes =
-                ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
-                        .getXmlResourcesToIndex(mContext, true /* enabled */);
+                ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+                        mContext, true /* enabled */);
 
         assertThat(indexRes).isNotNull();
         assertThat(indexRes.get(0).xmlResId).isEqualTo(R.xml.connected_devices);
@@ -88,11 +100,20 @@
 
     @Test
     public void nonIndexableKeys_existInXmlLayout() {
-        final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
-                .getNonIndexableKeys(mContext);
+        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_SEE_ALL);
+        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_AUDIO_SHARING_DEVICE_LIST,
+                        KEY_AUDIO_SHARING_SETTINGS);
     }
 
     @Test
@@ -118,13 +139,15 @@
     @Test
     public void getPreferenceControllers_containSlicePrefController() {
         final List<BasePreferenceController> controllers =
-                PreferenceControllerListHelper.getPreferenceControllersFromXml(mContext,
-                        R.xml.connected_devices);
+                PreferenceControllerListHelper.getPreferenceControllersFromXml(
+                        mContext, R.xml.connected_devices);
 
-        assertThat(controllers
-                .stream()
-                .filter(controller -> controller instanceof SlicePreferenceController)
-                .count())
+        assertThat(
+                        controllers.stream()
+                                .filter(
+                                        controller ->
+                                                controller instanceof SlicePreferenceController)
+                                .count())
                 .isEqualTo(1);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
index e351b71..f1cea6d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
@@ -27,9 +27,14 @@
 
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.util.Pair;
 
 import androidx.preference.Preference;
@@ -42,11 +47,14 @@
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
 import com.android.settings.widget.SingleTargetGearPreference;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 
 import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -70,6 +78,9 @@
     private static final String FAKE_ADDRESS_4 = "AA:AA:AA:AA:AA:04";
     private static final String FAKE_ADDRESS_5 = "AA:AA:AA:AA:AA:05";
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Mock
     private DashboardFragment mDashboardFragment;
     @Mock
@@ -105,6 +116,9 @@
     @Mock
     private Drawable mDrawable;
 
+    @Mock private BluetoothManager mBluetoothManager;
+    @Mock private BluetoothAdapter mBluetoothAdapter;
+
     private Context mContext;
     private PreviouslyConnectedDevicePreferenceController mPreConnectedDeviceController;
     private PreferenceGroup mPreferenceGroup;
@@ -117,10 +131,8 @@
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mContext).when(mDashboardFragment).getContext();
         doReturn(mPackageManager).when(mContext).getPackageManager();
-        mPreConnectedDeviceController =
-                new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
-        mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
-        mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
+        when(mContext.getSystemService(BluetoothManager.class)).thenReturn(mBluetoothManager);
+        when(mBluetoothManager.getAdapter()).thenReturn(mBluetoothAdapter);
         mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
 
         when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
@@ -145,7 +157,13 @@
         mMostRecentlyConnectedDevices.add(mBluetoothDevice4);
         mMostRecentlyConnectedDevices.add(mBluetoothDevice3);
         mShadowBluetoothAdapter.setMostRecentlyConnectedDevices(mMostRecentlyConnectedDevices);
+        when(mBluetoothAdapter.getMostRecentlyConnectedDevices())
+                .thenReturn(mMostRecentlyConnectedDevices);
 
+        mPreConnectedDeviceController =
+                new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
+        mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
+        mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
         mPreferenceGroup = spy(new PreferenceCategory(mContext));
         doReturn(mPreferenceManager).when(mPreferenceGroup).getPreferenceManager();
         mPreferenceGroup.setVisible(false);
@@ -205,6 +223,7 @@
             AVAILABLE);
     }
 
+    @Ignore("b/322712259")
     @Test
     public void onDeviceAdded_addDevicePreference_displayIt() {
         final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
@@ -215,6 +234,7 @@
         assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
     }
 
+    @Ignore("b/322712259")
     @Test
     public void onDeviceAdded_addDockDevicePreference_displayIt() {
         final SingleTargetGearPreference dockPreference = new SingleTargetGearPreference(
@@ -225,6 +245,7 @@
         assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
     }
 
+    @Ignore("b/322712259")
     @Test
     public void onDeviceAdded_addFourDevicePreference_onlyDisplayThree() {
         final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
@@ -249,6 +270,7 @@
     }
 
     @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
     public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_noCrash() {
         final BluetoothDevicePreference preference = new BluetoothDevicePreference(
                 mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
@@ -260,6 +282,18 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+    public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_doNothing() {
+        final BluetoothDevicePreference preference = new BluetoothDevicePreference(
+                mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+
+        mPreConnectedDeviceController.onDeviceAdded(preference);
+
+        // 1 see all preference
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
+    }
+
+    @Test
     public void onDeviceRemoved_removeLastDevice_showSeeAllPreference() {
         final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
                 mContext, mCachedDevice1, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
@@ -277,6 +311,7 @@
     @Test
     public void updatePreferenceVisibility_bluetoothIsEnable_shouldShowCorrectText() {
         mShadowBluetoothAdapter.setEnabled(true);
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
         mPreConnectedDeviceController.updatePreferenceVisibility();
 
         verify(mSeeAllPreference).setSummary("");
@@ -285,9 +320,78 @@
     @Test
     public void updatePreferenceVisibility_bluetoothIsDisable_shouldShowCorrectText() {
         mShadowBluetoothAdapter.setEnabled(false);
+        when(mBluetoothAdapter.isEnabled()).thenReturn(false);
         mPreConnectedDeviceController.updatePreferenceVisibility();
 
         verify(mSeeAllPreference).setSummary(
                 mContext.getString(R.string.connected_device_see_all_summary));
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+    public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() {
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        final BluetoothDevicePreference preference4 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice4,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference3 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice3,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference2 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice2,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        mPreConnectedDeviceController.onDeviceAdded(preference4);
+        mPreConnectedDeviceController.onDeviceAdded(preference3);
+        mPreConnectedDeviceController.onDeviceAdded(preference2);
+
+        mPreConnectedDeviceController.updatePreferenceGroup();
+
+        // Refer to the order of {@link #mMostRecentlyConnectedDevices}, the first one is see all
+        // preference
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(4);
+        assertThat(preference2.getOrder()).isEqualTo(0);
+        assertThat(preference4.getOrder()).isEqualTo(1);
+        assertThat(preference3.getOrder()).isEqualTo(2);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+    public void updatePreferenceGroup_bluetoothIsDisable_shouldShowOnlySeeAllPreference() {
+        when(mBluetoothAdapter.isEnabled()).thenReturn(false);
+        final BluetoothDevicePreference preference4 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice4,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference3 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice3,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference2 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice2,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        mPreConnectedDeviceController.onDeviceAdded(preference4);
+        mPreConnectedDeviceController.onDeviceAdded(preference3);
+        mPreConnectedDeviceController.onDeviceAdded(preference2);
+
+        mPreConnectedDeviceController.updatePreferenceGroup();
+
+        // 1 see all preference
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java
index d2c44f9..81c0c35 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/SavedDeviceGroupControllerTest.java
@@ -25,29 +25,52 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothManager;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.util.Pair;
 
 import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceManager;
 
+import com.android.settings.bluetooth.BluetoothDevicePreference;
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
+import java.util.ArrayList;
+import java.util.List;
+
 @RunWith(RobolectricTestRunner.class)
 public class SavedDeviceGroupControllerTest {
 
+    private static final String FAKE_ADDRESS_1 = "AA:AA:AA:AA:AA:01";
+    private static final String FAKE_ADDRESS_2 = "AA:AA:AA:AA:AA:02";
+    private static final String FAKE_ADDRESS_3 = "AA:AA:AA:AA:AA:03";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Mock
     private DashboardFragment mDashboardFragment;
     @Mock
@@ -56,23 +79,57 @@
     private DockUpdater mSavedDockUpdater;
     @Mock
     private PackageManager mPackageManager;
+    @Mock private BluetoothManager mBluetoothManager;
+    @Mock private BluetoothAdapter mBluetoothAdapter;
+    @Mock private CachedBluetoothDevice mCachedDevice1;
+    @Mock private CachedBluetoothDevice mCachedDevice2;
+    @Mock private CachedBluetoothDevice mCachedDevice3;
+    @Mock private BluetoothDevice mBluetoothDevice1;
+    @Mock private BluetoothDevice mBluetoothDevice2;
+    @Mock private BluetoothDevice mBluetoothDevice3;
+    @Mock private Drawable mDrawable;
+    @Mock private PreferenceManager mPreferenceManager;
 
     private Context mContext;
     private SavedDeviceGroupController mSavedDeviceGroupController;
     private LifecycleOwner mLifecycleOwner;
     private Lifecycle mLifecycle;
+    private PreferenceGroup mPreferenceGroup;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
         mContext = spy(RuntimeEnvironment.application);
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         doReturn(mContext).when(mDashboardFragment).getContext();
         doReturn(mPackageManager).when(mContext).getPackageManager();
+
+        when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
+        when(mCachedDevice1.getAddress()).thenReturn(FAKE_ADDRESS_1);
+        when(mCachedDevice1.getDrawableWithDescription()).thenReturn(pairs);
+        when(mCachedDevice2.getDevice()).thenReturn(mBluetoothDevice2);
+        when(mCachedDevice2.getAddress()).thenReturn(FAKE_ADDRESS_2);
+        when(mCachedDevice2.getDrawableWithDescription()).thenReturn(pairs);
+        when(mCachedDevice3.getDevice()).thenReturn(mBluetoothDevice3);
+        when(mCachedDevice3.getAddress()).thenReturn(FAKE_ADDRESS_3);
+        when(mCachedDevice3.getDrawableWithDescription()).thenReturn(pairs);
+        final List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
+        mMostRecentlyConnectedDevices.add(mBluetoothDevice1);
+        mMostRecentlyConnectedDevices.add(mBluetoothDevice2);
+        mMostRecentlyConnectedDevices.add(mBluetoothDevice3);
+        when(mContext.getSystemService(BluetoothManager.class)).thenReturn(mBluetoothManager);
+        when(mBluetoothManager.getAdapter()).thenReturn(mBluetoothAdapter);
+        when(mBluetoothAdapter.getMostRecentlyConnectedDevices())
+                .thenReturn(mMostRecentlyConnectedDevices);
+
+        mPreferenceGroup = spy(new PreferenceCategory(mContext));
+        when(mPreferenceGroup.getPreferenceManager()).thenReturn(mPreferenceManager);
         mSavedDeviceGroupController = new SavedDeviceGroupController(mContext);
         mSavedDeviceGroupController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
         mSavedDeviceGroupController.setSavedDockUpdater(mSavedDockUpdater);
+        mSavedDeviceGroupController.setPreferenceGroup(mPreferenceGroup);
     }
 
     @Test
@@ -118,4 +175,71 @@
         assertThat(mSavedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
             AVAILABLE);
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+    public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() {
+        when(mBluetoothAdapter.isEnabled()).thenReturn(true);
+        final BluetoothDevicePreference preference3 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice3,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference2 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice2,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference1 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice1,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        mSavedDeviceGroupController.onDeviceAdded(preference3);
+        mSavedDeviceGroupController.onDeviceAdded(preference2);
+        mSavedDeviceGroupController.onDeviceAdded(preference1);
+
+        mSavedDeviceGroupController.updatePreferenceGroup();
+
+        // Refer to the order of {@link #mMostRecentlyConnectedDevices}
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
+        assertThat(preference1.getOrder()).isEqualTo(0);
+        assertThat(preference2.getOrder()).isEqualTo(1);
+        assertThat(preference3.getOrder()).isEqualTo(2);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
+    public void updatePreferenceGroup_bluetoothIsDisable_shouldShowNoPreference() {
+        when(mBluetoothAdapter.isEnabled()).thenReturn(false);
+        final BluetoothDevicePreference preference3 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice3,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference2 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice2,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        final BluetoothDevicePreference preference1 =
+                new BluetoothDevicePreference(
+                        mContext,
+                        mCachedDevice2,
+                        true,
+                        BluetoothDevicePreference.SortType.TYPE_NO_SORT);
+        mSavedDeviceGroupController.onDeviceAdded(preference3);
+        mSavedDeviceGroupController.onDeviceAdded(preference2);
+        mSavedDeviceGroupController.onDeviceAdded(preference1);
+
+        mSavedDeviceGroupController.updatePreferenceGroup();
+
+        assertThat(mPreferenceGroup.isVisible()).isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java
index eea561a..66f314d 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/TopLevelConnectedDevicesPreferenceControllerTest.java
@@ -24,7 +24,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -48,7 +47,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_unsupportedWhenSet() {
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
new file mode 100644
index 0000000..757964b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDialogFragmentTest.java
@@ -0,0 +1,232 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+
+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;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialogCompat.class,
+            ShadowBluetoothAdapter.class,
+        })
+public class AudioSharingDialogFragmentTest {
+
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String TEST_DEVICE_NAME1 = "test1";
+
+    private static final String TEST_DEVICE_NAME2 = "test2";
+    private static final String TEST_DEVICE_NAME3 = "test3";
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM1 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME1, /* groupId= */ 1, /* isActive= */ false);
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM2 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME2, /* groupId= */ 2, /* isActive= */ false);
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM3 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME3, /* groupId= */ 3, /* isActive= */ false);
+
+    private Fragment mParent;
+    private AudioSharingDialogFragment mFragment;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+
+    @Before
+    public void setUp() {
+        ShadowAlertDialogCompat.reset();
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mFragment = new AudioSharingDialogFragment();
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOff_dialogNotExist() {
+        mFragment.show(mParent, new ArrayList<>(), (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOn_noConnectedDevice() {
+        mFragment.show(mParent, new ArrayList<>(), (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        ImageView guidance = rootView.findViewById(R.id.share_audio_guidance);
+        Button shareBtn = rootView.findViewById(R.id.share_btn);
+        assertThat(dialog.isShowing()).isTrue();
+        assertThat(subtitle1.getVisibility()).isEqualTo(View.GONE);
+        assertThat(guidance.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_noConnectedDevice_dialogDismiss() {
+        mFragment.show(mParent, new ArrayList<>(), (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        dialog.findViewById(android.R.id.button2).performClick();
+        shadowMainLooper().idle();
+        assertThat(dialog.isShowing()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOn_singleConnectedDevice() {
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM1);
+        mFragment.show(mParent, list, (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        ImageView guidance = rootView.findViewById(R.id.share_audio_guidance);
+        Button shareBtn = rootView.findViewById(R.id.share_btn);
+        assertThat(dialog.isShowing()).isTrue();
+        assertThat(subtitle1.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(subtitle1.getText().toString()).isEqualTo(TEST_DEVICE_NAME1);
+        assertThat(guidance.getVisibility()).isEqualTo(View.GONE);
+        assertThat(shareBtn.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_singleConnectedDevice_dialogDismiss() {
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM1);
+        mFragment.show(mParent, list, (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        rootView.findViewById(R.id.cancel_btn).performClick();
+        assertThat(dialog.isShowing()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_singleConnectedDevice_shareClicked() {
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM1);
+        AtomicBoolean isShareBtnClicked = new AtomicBoolean(false);
+        mFragment.show(
+                mParent,
+                list,
+                (item) -> {
+                    isShareBtnClicked.set(true);
+                });
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        rootView.findViewById(R.id.share_btn).performClick();
+        assertThat(dialog.isShowing()).isFalse();
+        assertThat(isShareBtnClicked.get()).isTrue();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOn_multipleConnectedDevice() {
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM1);
+        list.add(TEST_DEVICE_ITEM2);
+        list.add(TEST_DEVICE_ITEM3);
+        mFragment.show(mParent, list, (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        ImageView guidance = rootView.findViewById(R.id.share_audio_guidance);
+        Button shareBtn = rootView.findViewById(R.id.share_btn);
+        RecyclerView recyclerView = rootView.findViewById(R.id.btn_list);
+        assertThat(dialog.isShowing()).isTrue();
+        assertThat(subtitle1.getVisibility()).isEqualTo(View.GONE);
+        assertThat(guidance.getVisibility()).isEqualTo(View.GONE);
+        assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
+        assertThat(recyclerView.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(recyclerView.getAdapter().getItemCount()).isEqualTo(3);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_multipleConnectedDevice_dialogDismiss() {
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM1);
+        list.add(TEST_DEVICE_ITEM2);
+        list.add(TEST_DEVICE_ITEM3);
+        mFragment.show(mParent, list, (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        rootView.findViewById(R.id.cancel_btn).performClick();
+        assertThat(dialog.isShowing()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java
new file mode 100644
index 0000000..335bbe3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDisconnectDialogFragmentTest.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.view.View;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+
+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;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+import java.util.ArrayList;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialogCompat.class,
+            ShadowBluetoothAdapter.class,
+        })
+public class AudioSharingDisconnectDialogFragmentTest {
+
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String TEST_DEVICE_NAME1 = "test1";
+    private static final String TEST_DEVICE_NAME2 = "test2";
+    private static final String TEST_DEVICE_NAME3 = "test3";
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM1 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME1, /* groupId= */ 1, /* isActive= */ true);
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM2 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME2, /* groupId= */ 2, /* isActive= */ false);
+
+    private Fragment mParent;
+    private AudioSharingDisconnectDialogFragment mFragment;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+
+    @Before
+    public void setUp() {
+        ShadowAlertDialogCompat.reset();
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mFragment = new AudioSharingDisconnectDialogFragment();
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM1);
+        list.add(TEST_DEVICE_ITEM2);
+        mFragment.show(mParent, list, TEST_DEVICE_NAME3, (item) -> {});
+        shadowMainLooper().idle();
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOff_dialogNotExist() {
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOn_dialogShowBtnForTwoDevices() {
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        RecyclerView view = rootView.findViewById(R.id.device_btn_list);
+        assertThat(view.getAdapter().getItemCount()).isEqualTo(2);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_clickCancel_dialogDismiss() {
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        rootView.findViewById(R.id.cancel_btn).performClick();
+        assertThat(dialog.isShowing()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java
new file mode 100644
index 0000000..38f80e0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingJoinDialogFragmentTest.java
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.R;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+
+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;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+import java.util.ArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialogCompat.class,
+            ShadowBluetoothAdapter.class,
+        })
+public class AudioSharingJoinDialogFragmentTest {
+
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String TEST_DEVICE_NAME1 = "test1";
+    private static final String TEST_DEVICE_NAME2 = "test2";
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME1, /* groupId= */ 1, /* isActive= */ true);
+
+    private Fragment mParent;
+    private AudioSharingJoinDialogFragment mFragment;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+
+    @Before
+    public void setUp() {
+        ShadowAlertDialogCompat.reset();
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mFragment = new AudioSharingJoinDialogFragment();
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOff_dialogNotExist() {
+        mFragment.show(mParent, new ArrayList<>(), TEST_DEVICE_NAME2, () -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOn_dialogShowTextForSingleDevice() {
+        mFragment.show(mParent, new ArrayList<>(), TEST_DEVICE_NAME2, () -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+        assertThat(dialog.isShowing()).isTrue();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        assertThat(subtitle1.getText()).isEqualTo(TEST_DEVICE_NAME2);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOn_dialogShowTextForTwoDevice() {
+        ArrayList<AudioSharingDeviceItem> list = new ArrayList<>();
+        list.add(TEST_DEVICE_ITEM);
+        mFragment.show(mParent, list, TEST_DEVICE_NAME2, () -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNotNull();
+        assertThat(dialog.isShowing()).isTrue();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
+        assertThat(subtitle1.getText()).isEqualTo(TEST_DEVICE_NAME1 + " and " + TEST_DEVICE_NAME2);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_clickCancel_dialogDismiss() {
+        mFragment.show(mParent, new ArrayList<>(), TEST_DEVICE_NAME2, () -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        rootView.findViewById(R.id.cancel_btn).performClick();
+        assertThat(dialog.isShowing()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_clickShare_callbackTriggered() {
+        AtomicBoolean isShareBtnClicked = new AtomicBoolean(false);
+        mFragment.show(
+                mParent, new ArrayList<>(), TEST_DEVICE_NAME2, () -> isShareBtnClicked.set(true));
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
+        View rootView = shadowDialog.getView();
+        rootView.findViewById(R.id.share_btn).performClick();
+        assertThat(dialog.isShowing()).isFalse();
+        assertThat(isShareBtnClicked.get()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceControllerTest.java
new file mode 100644
index 0000000..145c08c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingPreferenceControllerTest.java
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static android.bluetooth.BluetoothAdapter.STATE_OFF;
+import static android.bluetooth.BluetoothAdapter.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.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothLeBroadcast;
+import android.bluetooth.BluetoothStatusCodes;
+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.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowBluetoothAdapter.class, ShadowBluetoothUtils.class})
+public class AudioSharingPreferenceControllerTest {
+    private static final String PREF_KEY = "audio_sharing_settings";
+    private static final String SUMMARY_ON = "On";
+    private static final String SUMMARY_OFF = "Off";
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Spy Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private PreferenceScreen mScreen;
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private BluetoothEventManager mBtEventManager;
+    @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
+    @Mock private LocalBluetoothLeBroadcast mBroadcast;
+    private AudioSharingPreferenceController mController;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private LocalBluetoothManager mLocalBluetoothManager;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
+    private Preference mPreference;
+
+    @Before
+    public void setUp() {
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+        mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
+        when(mLocalBluetoothManager.getEventManager()).thenReturn(mBtEventManager);
+        when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
+        when(mLocalBtProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+        mController = new AudioSharingPreferenceController(mContext, PREF_KEY);
+        mPreference = new Preference(mContext);
+        when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference);
+    }
+
+    @Test
+    public void onStart_registerCallback() {
+        mController.onStart(mLifecycleOwner);
+        verify(mBtEventManager).registerCallback(mController);
+        verify(mBroadcast).registerServiceCallBack(any(), any(BluetoothLeBroadcast.Callback.class));
+    }
+
+    @Test
+    public void onStop_unregisterCallback() {
+        mController.onStop(mLifecycleOwner);
+        verify(mBtEventManager).unregisterCallback(mController);
+        verify(mBroadcast).unregisterServiceCallBack(any(BluetoothLeBroadcast.Callback.class));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void getAvailabilityStatus_flagOn() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void getAvailabilityStatus_flagOff() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getSummary_broadcastOn() {
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        assertThat(mController.getSummary().toString()).isEqualTo(SUMMARY_ON);
+    }
+
+    @Test
+    public void getSummary_broadcastOff() {
+        when(mBroadcast.isEnabled(any())).thenReturn(false);
+        assertThat(mController.getSummary().toString()).isEqualTo(SUMMARY_OFF);
+    }
+
+    @Test
+    public void onBluetoothStateChanged_refreshSummary() {
+        mController.displayPreference(mScreen);
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        mController.onBluetoothStateChanged(STATE_ON);
+        assertThat(mPreference.getSummary().toString()).isEqualTo(SUMMARY_ON);
+        when(mBroadcast.isEnabled(any())).thenReturn(false);
+        mController.onBluetoothStateChanged(STATE_OFF);
+        assertThat(mPreference.getSummary().toString()).isEqualTo(SUMMARY_OFF);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java
new file mode 100644
index 0000000..61bc88a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingStopDialogFragmentTest.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+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.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+
+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;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialogCompat.class,
+            ShadowBluetoothAdapter.class,
+        })
+public class AudioSharingStopDialogFragmentTest {
+
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String TEST_DEVICE_NAME = "test";
+
+    private Fragment mParent;
+    private AudioSharingStopDialogFragment mFragment;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+
+    @Before
+    public void setUp() {
+        ShadowAlertDialogCompat.reset();
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mFragment = new AudioSharingStopDialogFragment();
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOff_dialogNotExist() {
+        mFragment.show(mParent, TEST_DEVICE_NAME, () -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_clickCancel_dialogDismiss() {
+        mFragment.show(mParent, TEST_DEVICE_NAME, () -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        dialog.findViewById(android.R.id.button2).performClick();
+        shadowMainLooper().idle();
+        assertThat(dialog.isShowing()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_clickShare_callbackTriggered() {
+        AtomicBoolean isStopBtnClicked = new AtomicBoolean(false);
+        mFragment.show(mParent, TEST_DEVICE_NAME, () -> isStopBtnClicked.set(true));
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        dialog.findViewById(android.R.id.button1).performClick();
+        shadowMainLooper().idle();
+        assertThat(dialog.isShowing()).isFalse();
+        assertThat(isStopBtnClicked.get()).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.java
new file mode 100644
index 0000000..11e8ec9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/AudioSharingSwitchBarControllerTest.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.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.Shadows.shadowOf;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Looper;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.widget.Switch;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.flags.Flags;
+import com.android.settings.widget.SettingsMainSwitchBar;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class AudioSharingSwitchBarControllerTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Spy Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private Switch mSwitch;
+
+    private SettingsMainSwitchBar mSwitchBar;
+    private AudioSharingSwitchBarController mController;
+    private AudioSharingSwitchBarController.OnSwitchBarChangedListener mListener;
+    private boolean mOnSwitchBarChanged;
+
+    @Before
+    public void setUp() {
+        mSwitchBar = new SettingsMainSwitchBar(mContext);
+        mOnSwitchBarChanged = false;
+        mListener = () -> mOnSwitchBarChanged = true;
+        mController = new AudioSharingSwitchBarController(mContext, mSwitchBar, mListener);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void bluetoothOff_switchDisabled() {
+        assertThat(mSwitchBar.isEnabled()).isTrue();
+        mContext.registerReceiver(
+                mController.mReceiver,
+                mController.mIntentFilter,
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED);
+        intent.putExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF);
+        mContext.sendBroadcast(intent);
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mSwitchBar.isEnabled()).isFalse();
+        assertThat(mOnSwitchBarChanged).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragmentTest.java
new file mode 100644
index 0000000..58a1272
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsDialogFragmentTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothStatusCodes;
+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.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+
+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;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
+
+import java.util.ArrayList;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowAlertDialogCompat.class,
+            ShadowBluetoothAdapter.class,
+        })
+public class CallsAndAlarmsDialogFragmentTest {
+    @Rule public final MockitoRule mocks = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String TEST_DEVICE_NAME1 = "test1";
+    private static final String TEST_DEVICE_NAME2 = "test2";
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM1 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME1, /* groupId= */ 1, /* isActive= */ true);
+
+    private static final AudioSharingDeviceItem TEST_DEVICE_ITEM2 =
+            new AudioSharingDeviceItem(TEST_DEVICE_NAME2, /* groupId= */ 1, /* isActive= */ true);
+
+    private Fragment mParent;
+    private CallsAndAlarmsDialogFragment mFragment;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+
+    @Before
+    public void setUp() {
+        ShadowAlertDialogCompat.reset();
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mFragment = new CallsAndAlarmsDialogFragment();
+        mParent = new Fragment();
+        FragmentController.setupFragment(
+                mParent, FragmentActivity.class, /* containerViewId= */ 0, /* bundle= */ null);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_flagOff_dialogNotExist() {
+        mFragment.show(mParent, new ArrayList<>(), (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog).isNull();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void onCreateDialog_showCorrectItems() {
+        ArrayList<AudioSharingDeviceItem> deviceItemList = new ArrayList<>();
+        deviceItemList.add(TEST_DEVICE_ITEM1);
+        deviceItemList.add(TEST_DEVICE_ITEM2);
+        mFragment.show(mParent, deviceItemList, (item) -> {});
+        shadowMainLooper().idle();
+        AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        assertThat(dialog.getListView().getCount()).isEqualTo(2);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceControllerTest.java
new file mode 100644
index 0000000..4cdd364
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/audiosharing/CallsAndAlarmsPreferenceControllerTest.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.audiosharing;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothLeBroadcastAssistant;
+import android.bluetooth.BluetoothLeBroadcastReceiveState;
+import android.bluetooth.BluetoothProfile;
+import android.bluetooth.BluetoothStatusCodes;
+import android.content.Context;
+import android.os.Looper;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.provider.Settings;
+
+import androidx.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
+import com.android.settingslib.bluetooth.BluetoothEventManager;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcast;
+import com.android.settingslib.bluetooth.LocalBluetoothLeBroadcastAssistant;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+import java.util.ArrayList;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowBluetoothAdapter.class,
+            ShadowBluetoothUtils.class,
+        })
+public class CallsAndAlarmsPreferenceControllerTest {
+    private static final String PREF_KEY = "calls_and_alarms";
+    private static final String SUMMARY_EMPTY = "No active device in sharing";
+    private static final String TEST_DEVICE_NAME1 = "test1";
+    private static final String TEST_DEVICE_NAME2 = "test2";
+    private static final String TEST_SETTINGS_KEY =
+            "bluetooth_le_broadcast_fallback_active_group_id";
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Spy Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private PreferenceScreen mScreen;
+    @Mock private LocalBluetoothManager mLocalBtManager;
+    @Mock private BluetoothEventManager mBtEventManager;
+    @Mock private LocalBluetoothProfileManager mLocalBtProfileManager;
+    @Mock private CachedBluetoothDeviceManager mCacheManager;
+    @Mock private LocalBluetoothLeBroadcast mBroadcast;
+    @Mock private LocalBluetoothLeBroadcastAssistant mAssistant;
+    @Mock private BluetoothDevice mDevice1;
+    @Mock private BluetoothDevice mDevice2;
+    @Mock private BluetoothDevice mDevice3;
+    @Mock private CachedBluetoothDevice mCachedDevice1;
+    @Mock private CachedBluetoothDevice mCachedDevice2;
+    @Mock private CachedBluetoothDevice mCachedDevice3;
+    @Mock private BluetoothLeBroadcastReceiveState mState;
+    private CallsAndAlarmsPreferenceController mController;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private LocalBluetoothManager mLocalBluetoothManager;
+    private Lifecycle mLifecycle;
+    private LifecycleOwner mLifecycleOwner;
+    private Preference mPreference;
+
+    @Before
+    public void setUp() {
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+        mShadowBluetoothAdapter.setEnabled(true);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastSourceSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mShadowBluetoothAdapter.setIsLeAudioBroadcastAssistantSupported(
+                BluetoothStatusCodes.FEATURE_SUPPORTED);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        ShadowBluetoothUtils.sLocalBluetoothManager = mLocalBtManager;
+        mLocalBluetoothManager = Utils.getLocalBtManager(mContext);
+        when(mLocalBluetoothManager.getEventManager()).thenReturn(mBtEventManager);
+        when(mLocalBluetoothManager.getProfileManager()).thenReturn(mLocalBtProfileManager);
+        when(mLocalBtProfileManager.getLeAudioBroadcastProfile()).thenReturn(mBroadcast);
+        when(mLocalBtProfileManager.getLeAudioBroadcastAssistantProfile()).thenReturn(mAssistant);
+        mController = new CallsAndAlarmsPreferenceController(mContext);
+        mPreference = new Preference(mContext);
+        when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference);
+    }
+
+    @Test
+    public void onStart_registerCallback() {
+        mController.onStart(mLifecycleOwner);
+        verify(mBtEventManager).registerCallback(mController);
+        verify(mAssistant)
+                .registerServiceCallBack(any(), any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    public void onStop_unregisterCallback() {
+        mController.onStop(mLifecycleOwner);
+        verify(mBtEventManager).unregisterCallback(mController);
+        verify(mAssistant)
+                .unregisterServiceCallBack(any(BluetoothLeBroadcastAssistant.Callback.class));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void getAvailabilityStatus_flagOn() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_LE_AUDIO_SHARING)
+    public void getAvailabilityStatus_flagOff() {
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void updateVisibility_broadcastOffBluetoothOff() {
+        when(mBroadcast.isEnabled(any())).thenReturn(false);
+        mShadowBluetoothAdapter.setEnabled(false);
+        mController.displayPreference(mScreen);
+        mController.updateVisibility();
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void updateVisibility_broadcastOnBluetoothOff() {
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        mShadowBluetoothAdapter.setEnabled(false);
+        mController.displayPreference(mScreen);
+        mController.updateVisibility();
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void updateVisibility_broadcastOffBluetoothOn() {
+        when(mBroadcast.isEnabled(any())).thenReturn(false);
+        mController.displayPreference(mScreen);
+        mController.updateVisibility();
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void updateVisibility_broadcastOnBluetoothOn() {
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        when(mAssistant.getConnectedDevices()).thenReturn(new ArrayList<BluetoothDevice>());
+        mController.displayPreference(mScreen);
+        mController.updateVisibility();
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isEqualTo(SUMMARY_EMPTY);
+    }
+
+    @Test
+    public void onProfileConnectionStateChanged_updatePreference() {
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        when(mAssistant.getConnectedDevices()).thenReturn(new ArrayList<BluetoothDevice>());
+        mController.displayPreference(mScreen);
+        mController.onProfileConnectionStateChanged(
+                mCachedDevice1, BluetoothAdapter.STATE_DISCONNECTED, BluetoothProfile.LE_AUDIO);
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isEqualTo(SUMMARY_EMPTY);
+    }
+
+    @Test
+    public void updatePreference_showCorrectSummary() {
+        final int groupId1 = 1;
+        final int groupId2 = 2;
+        Settings.Secure.putInt(mContext.getContentResolver(), TEST_SETTINGS_KEY, groupId1);
+        when(mCachedDevice1.getGroupId()).thenReturn(groupId1);
+        when(mCachedDevice1.getDevice()).thenReturn(mDevice1);
+        when(mCachedDevice2.getGroupId()).thenReturn(groupId1);
+        when(mCachedDevice2.getDevice()).thenReturn(mDevice2);
+        when(mCachedDevice1.getMemberDevice()).thenReturn(ImmutableSet.of(mCachedDevice2));
+        when(mCachedDevice1.getName()).thenReturn(TEST_DEVICE_NAME1);
+        when(mCachedDevice3.getGroupId()).thenReturn(groupId2);
+        when(mCachedDevice3.getDevice()).thenReturn(mDevice3);
+        when(mCachedDevice3.getName()).thenReturn(TEST_DEVICE_NAME2);
+        when(mLocalBluetoothManager.getCachedDeviceManager()).thenReturn(mCacheManager);
+        when(mCacheManager.findDevice(mDevice1)).thenReturn(mCachedDevice1);
+        when(mCacheManager.findDevice(mDevice2)).thenReturn(mCachedDevice2);
+        when(mCacheManager.findDevice(mDevice3)).thenReturn(mCachedDevice3);
+        when(mBroadcast.isEnabled(any())).thenReturn(true);
+        ImmutableList<BluetoothDevice> deviceList = ImmutableList.of(mDevice1, mDevice2, mDevice3);
+        when(mAssistant.getConnectedDevices()).thenReturn(deviceList);
+        when(mAssistant.getAllSources(any())).thenReturn(ImmutableList.of(mState));
+        mController.displayPreference(mScreen);
+        mController.updateVisibility();
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreference.isVisible()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isEqualTo(TEST_DEVICE_NAME1);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceDashboardFragmentTest.java
new file mode 100644
index 0000000..7ac9711
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceDashboardFragmentTest.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.fastpair;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.settings.SettingsEnums;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class FastPairDeviceDashboardFragmentTest {
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private FastPairDeviceDashboardFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mFragment = new FastPairDeviceDashboardFragment();
+    }
+
+    @Test
+    public void getPreferenceScreenResId_returnsCorrectXml() {
+        assertThat(mFragment.getPreferenceScreenResId()).isEqualTo(R.xml.fast_pair_devices);
+    }
+
+    @Test
+    public void getLogTag_returnsCorrectTag() {
+        assertThat(mFragment.getLogTag()).isEqualTo("FastPairDeviceFrag");
+    }
+
+    @Test
+    public void getMetricsCategory_returnsCorrectCategory() {
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(SettingsEnums.FAST_PAIR_DEVICES);
+    }
+
+    @Test
+    public void getHelpResource_returnsCorrectResource() {
+        assertThat(mFragment.getHelpResource())
+                .isEqualTo(R.string.help_url_connected_devices_fast_pair_devices);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupControllerTest.java
new file mode 100644
index 0000000..25e927b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDeviceGroupControllerTest.java
@@ -0,0 +1,248 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fastpair;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.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;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Looper;
+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.lifecycle.LifecycleOwner;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.widget.GearPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowBluetoothAdapter.class)
+public class FastPairDeviceGroupControllerTest {
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    private static final String KEY = "fast_pair_device_list";
+
+    @Mock private DashboardFragment mDashboardFragment;
+    @Mock private FastPairDeviceUpdater mFastPairDeviceUpdater;
+    @Mock private PackageManager mPackageManager;
+    @Mock private PreferenceManager mPreferenceManager;
+    @Mock private PreferenceScreen mScreen;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private Context mContext;
+    private FastPairDeviceGroupController mFastPairDeviceGroupController;
+    private PreferenceGroup mPreferenceGroup;
+    private LifecycleOwner mLifecycleOwner;
+    private Lifecycle mLifecycle;
+
+    @Before
+    public void setUp() {
+        mContext = spy(RuntimeEnvironment.application);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        doReturn(mContext).when(mDashboardFragment).getContext();
+        doReturn(mPackageManager).when(mContext).getPackageManager();
+        FastPairFeatureProvider provider =
+                FakeFeatureFactory.setupForTest().getFastPairFeatureProvider();
+        doReturn(mFastPairDeviceUpdater).when(provider).getFastPairDeviceUpdater(any(), any());
+        mFastPairDeviceGroupController = new FastPairDeviceGroupController(mContext);
+        mPreferenceGroup = spy(new PreferenceCategory(mContext));
+        doReturn(mPreferenceManager).when(mPreferenceGroup).getPreferenceManager();
+        mPreferenceGroup.setVisible(false);
+        mFastPairDeviceGroupController.setPreferenceGroup(mPreferenceGroup);
+        when(mScreen.findPreference(KEY)).thenReturn(mPreferenceGroup);
+        when(mScreen.getContext()).thenReturn(mContext);
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStart_flagOn_registerCallback() {
+        // register the callback in onStart()
+        mFastPairDeviceGroupController.onStart(mLifecycleOwner);
+        verify(mFastPairDeviceUpdater).registerCallback();
+        verify(mContext)
+                .registerReceiver(
+                        mFastPairDeviceGroupController.mReceiver,
+                        mFastPairDeviceGroupController.mIntentFilter,
+                        Context.RECEIVER_EXPORTED);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStop_flagOn_unregisterCallback() {
+        // register broadcast first
+        mContext.registerReceiver(
+                mFastPairDeviceGroupController.mReceiver, null, Context.RECEIVER_EXPORTED);
+
+        // unregister the callback in onStop()
+        mFastPairDeviceGroupController.onStop(mLifecycleOwner);
+        verify(mFastPairDeviceUpdater).unregisterCallback();
+        verify(mContext).unregisterReceiver(mFastPairDeviceGroupController.mReceiver);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStart_flagOff_registerCallback() {
+        // register the callback in onStart()
+        mFastPairDeviceGroupController.onStart(mLifecycleOwner);
+        assertThat(mFastPairDeviceUpdater).isNull();
+        verify(mContext)
+                .registerReceiver(
+                        mFastPairDeviceGroupController.mReceiver,
+                        mFastPairDeviceGroupController.mIntentFilter,
+                        Context.RECEIVER_EXPORTED);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStop_flagOff_unregisterCallback() {
+        // register broadcast first
+        mContext.registerReceiver(
+                mFastPairDeviceGroupController.mReceiver, null, Context.RECEIVER_EXPORTED);
+
+        // unregister the callback in onStop()
+        mFastPairDeviceGroupController.onStop(mLifecycleOwner);
+        assertThat(mFastPairDeviceUpdater).isNull();
+        verify(mContext).unregisterReceiver(mFastPairDeviceGroupController.mReceiver);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_noFastPairFeature_returnUnSupported() {
+        doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDeviceGroupController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_noBluetoothFastPairFeature_returnUnSupported() {
+        doReturn(false).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDeviceGroupController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_noBluetoothFeature_returnUnSupported() {
+        doReturn(false).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDeviceGroupController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_withBluetoothFastPairFeature_returnSupported() {
+        doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDeviceGroupController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void updatePreferenceVisibility_bluetoothIsDisable_shouldHidePreference() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        mFastPairDeviceGroupController.onDeviceAdded(preference1);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+
+        mShadowBluetoothAdapter.setEnabled(false);
+        // register broadcast first
+        mContext.registerReceiver(
+                mFastPairDeviceGroupController.mReceiver,
+                mFastPairDeviceGroupController.mIntentFilter,
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED);
+        mContext.sendBroadcast(intent);
+
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreferenceGroup.isVisible()).isFalse();
+    }
+
+    @Test
+    public void onDeviceAdd_bluetoothIsDisable_shouldHidePreference() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        mFastPairDeviceGroupController.onDeviceAdded(preference1);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+    }
+
+    @Test
+    public void onDeviceRemoved_bluetoothIsDisable_shouldHidePreference() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        mPreferenceGroup.addPreference(preference1);
+        mFastPairDeviceGroupController.onDeviceRemoved(preference1);
+        assertThat(mPreferenceGroup.isVisible()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void displayPreference_notAvailable_doNothing() {
+        mFastPairDeviceGroupController.displayPreference(mScreen);
+        assertThat(mPreferenceGroup.isVisible()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void displayPreference_isAvailable_fetchFastPairDevices() {
+        doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        mFastPairDeviceGroupController.displayPreference(mScreen);
+        verify(mFastPairDeviceUpdater).forceUpdate();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceControllerTest.java
new file mode 100644
index 0000000..be2ed56
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairDevicePreferenceControllerTest.java
@@ -0,0 +1,291 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.fastpair;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.os.Looper;
+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.lifecycle.LifecycleOwner;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceManager;
+
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.flags.Flags;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
+import com.android.settings.widget.GearPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowBluetoothAdapter.class)
+public class FastPairDevicePreferenceControllerTest {
+
+    private static final String KEY = "test_key";
+
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Mock private DashboardFragment mDashboardFragment;
+    @Mock private FastPairDeviceUpdater mFastPairDeviceUpdater;
+    @Mock private PackageManager mPackageManager;
+    @Mock private PreferenceManager mPreferenceManager;
+    private Context mContext;
+    private FastPairDevicePreferenceController mFastPairDevicePrefController;
+    private PreferenceGroup mPreferenceGroup;
+    private Preference mSeeAllPreference;
+    private ShadowBluetoothAdapter mShadowBluetoothAdapter;
+    private LifecycleOwner mLifecycleOwner;
+    private Lifecycle mLifecycle;
+
+    @Before
+    public void setUp() {
+        mContext = spy(RuntimeEnvironment.application);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        doReturn(mContext).when(mDashboardFragment).getContext();
+        doReturn(mPackageManager).when(mContext).getPackageManager();
+        FastPairFeatureProvider provider =
+                FakeFeatureFactory.setupForTest().getFastPairFeatureProvider();
+        doReturn(mFastPairDeviceUpdater).when(provider).getFastPairDeviceUpdater(any(), any());
+        mFastPairDevicePrefController = new FastPairDevicePreferenceController(mContext, KEY);
+        mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
+
+        mPreferenceGroup = spy(new PreferenceCategory(mContext));
+        doReturn(mPreferenceManager).when(mPreferenceGroup).getPreferenceManager();
+        mSeeAllPreference = spy(new Preference(mContext));
+        mPreferenceGroup.setVisible(false);
+        mSeeAllPreference.setVisible(false);
+        mFastPairDevicePrefController.setPreferenceGroup(mPreferenceGroup);
+        mFastPairDevicePrefController.mSeeAllPreference = mSeeAllPreference;
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStart_flagOn_registerCallback() {
+        // register the callback in onStart()
+        mFastPairDevicePrefController.onStart(mLifecycleOwner);
+        verify(mFastPairDeviceUpdater).registerCallback();
+        verify(mContext)
+                .registerReceiver(
+                        mFastPairDevicePrefController.mReceiver,
+                        mFastPairDevicePrefController.mIntentFilter,
+                        Context.RECEIVER_EXPORTED_UNAUDITED);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStart_flagOff_registerCallback() {
+        // register the callback in onStart()
+        mFastPairDevicePrefController.onStart(mLifecycleOwner);
+        assertThat(mFastPairDeviceUpdater).isNull();
+        verify(mContext)
+                .registerReceiver(
+                        mFastPairDevicePrefController.mReceiver,
+                        mFastPairDevicePrefController.mIntentFilter,
+                        Context.RECEIVER_EXPORTED_UNAUDITED);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStop_flagOn_unregisterCallback() {
+        // register broadcast first
+        mContext.registerReceiver(
+                mFastPairDevicePrefController.mReceiver, null, Context.RECEIVER_EXPORTED_UNAUDITED);
+
+        // unregister the callback in onStop()
+        mFastPairDevicePrefController.onStop(mLifecycleOwner);
+        verify(mFastPairDeviceUpdater).unregisterCallback();
+        verify(mContext).unregisterReceiver(mFastPairDevicePrefController.mReceiver);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void onStop_flagOff_unregisterCallback() {
+        // register broadcast first
+        mContext.registerReceiver(
+                mFastPairDevicePrefController.mReceiver, null, Context.RECEIVER_EXPORTED_UNAUDITED);
+
+        // unregister the callback in onStop()
+        mFastPairDevicePrefController.onStop(mLifecycleOwner);
+        assertThat(mFastPairDeviceUpdater).isNull();
+        verify(mContext).unregisterReceiver(mFastPairDevicePrefController.mReceiver);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_noBluetoothFeature_returnUnsupported() {
+        doReturn(false).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDevicePrefController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_noFastPairFeature_returnUnsupported() {
+        doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDevicePrefController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_noBluetoothFastPairFeature_returnUnsupported() {
+        doReturn(false).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDevicePrefController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_SUBSEQUENT_PAIR_SETTINGS_INTEGRATION)
+    public void getAvailabilityStatus_bothBluetoothFastPairFeature_returnSupported() {
+        doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
+
+        assertThat(mFastPairDevicePrefController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void onDeviceAdded_addThreeFastPairDevicePreference_displayThreeNoSeeAll() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        final GearPreference preference2 = new GearPreference(mContext, null /* AttributeSet */);
+        final GearPreference preference3 = new GearPreference(mContext, null /* AttributeSet */);
+
+        mFastPairDevicePrefController.onDeviceAdded(preference1);
+        mFastPairDevicePrefController.onDeviceAdded(preference2);
+        mFastPairDevicePrefController.onDeviceAdded(preference3);
+
+        assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+        assertThat(mSeeAllPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void onDeviceAdded_addFourDevicePreference_onlyDisplayThreeWithSeeAll() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        preference1.setOrder(4);
+        final GearPreference preference2 = new GearPreference(mContext, null /* AttributeSet */);
+        preference2.setOrder(3);
+        final GearPreference preference3 = new GearPreference(mContext, null /* AttributeSet */);
+        preference3.setOrder(1);
+        final GearPreference preference4 = new GearPreference(mContext, null /* AttributeSet */);
+        preference4.setOrder(2);
+        final GearPreference preference5 = new GearPreference(mContext, null /* AttributeSet */);
+        preference5.setOrder(5);
+
+        mFastPairDevicePrefController.onDeviceAdded(preference1);
+        mFastPairDevicePrefController.onDeviceAdded(preference2);
+        mFastPairDevicePrefController.onDeviceAdded(preference3);
+        mFastPairDevicePrefController.onDeviceAdded(preference4);
+        mFastPairDevicePrefController.onDeviceAdded(preference5);
+
+        // 3 GearPreference and 1 see all preference
+        assertThat(mPreferenceGroup.getPreference(0)).isEqualTo(preference3);
+        assertThat(mPreferenceGroup.getPreference(1)).isEqualTo(preference4);
+        assertThat(mPreferenceGroup.getPreference(2)).isEqualTo(preference2);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+        assertThat(mSeeAllPreference.isVisible()).isTrue();
+    }
+
+    @Test
+    public void onDeviceRemoved_removeFourthDevice_hideSeeAll() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        preference1.setOrder(1);
+        final GearPreference preference2 = new GearPreference(mContext, null /* AttributeSet */);
+        preference2.setOrder(2);
+        final GearPreference preference3 = new GearPreference(mContext, null /* AttributeSet */);
+        preference3.setOrder(3);
+        final GearPreference preference4 = new GearPreference(mContext, null /* AttributeSet */);
+        preference4.setOrder(4);
+        final GearPreference preference5 = new GearPreference(mContext, null /* AttributeSet */);
+        preference5.setOrder(5);
+
+        mFastPairDevicePrefController.onDeviceAdded(preference1);
+        mFastPairDevicePrefController.onDeviceAdded(preference2);
+        mFastPairDevicePrefController.onDeviceAdded(preference3);
+        mFastPairDevicePrefController.onDeviceAdded(preference4);
+        mFastPairDevicePrefController.onDeviceAdded(preference5);
+
+        mFastPairDevicePrefController.onDeviceRemoved(preference4);
+        mFastPairDevicePrefController.onDeviceRemoved(preference2);
+
+        // 3 GearPreference and no see all preference
+        assertThat(mPreferenceGroup.getPreference(0)).isEqualTo(preference1);
+        assertThat(mPreferenceGroup.getPreference(1)).isEqualTo(preference3);
+        assertThat(mPreferenceGroup.getPreference(2)).isEqualTo(preference5);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+        assertThat(mSeeAllPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void updatePreferenceVisibility_bluetoothIsDisable_shouldHidePreference() {
+        mShadowBluetoothAdapter.setEnabled(true);
+        final GearPreference preference1 = new GearPreference(mContext, null /* AttributeSet */);
+        mFastPairDevicePrefController.onDeviceAdded(preference1);
+        assertThat(mPreferenceGroup.isVisible()).isTrue();
+
+        mShadowBluetoothAdapter.setEnabled(false);
+        // register broadcast first
+        mContext.registerReceiver(
+                mFastPairDevicePrefController.mReceiver,
+                mFastPairDevicePrefController.mIntentFilter,
+                Context.RECEIVER_EXPORTED_UNAUDITED);
+        Intent intent = new Intent(BluetoothAdapter.ACTION_STATE_CHANGED);
+        mContext.sendBroadcast(intent);
+
+        shadowOf(Looper.getMainLooper()).idle();
+        assertThat(mPreferenceGroup.isVisible()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProviderImplTest.java
new file mode 100644
index 0000000..ba72cde
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/fastpair/FastPairFeatureProviderImplTest.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.connecteddevice.fastpair;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.connecteddevice.DevicePreferenceCallback;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class FastPairFeatureProviderImplTest {
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    @Mock private DevicePreferenceCallback mDevicePreferenceCallback;
+
+    private Context mContext;
+    private FastPairFeatureProviderImpl mFeatureProvider;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mFeatureProvider = new FastPairFeatureProviderImpl();
+    }
+
+    @Test
+    public void getFastPairDeviceUpdater_returnsEmptyClass() {
+        assertThat(mFeatureProvider.getFastPairDeviceUpdater(mContext, mDevicePreferenceCallback))
+                .isInstanceOf(FastPairDeviceUpdater.class);
+    }
+}
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 9538092..a540d28 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;
@@ -52,7 +54,7 @@
 import androidx.preference.PreferenceCategory;
 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;
@@ -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);
@@ -331,7 +357,7 @@
 
     @Test
     public void defaultNotesPreferenceClick_multiUserManagedProfile_showsProfileSelectorDialog() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         final String permissionPackageName = "permissions.package";
         final UserHandle currentUser = Process.myUserHandle();
         List<UserInfo> userInfos = Arrays.asList(
@@ -355,7 +381,7 @@
     @Test
     public void defaultNotesPreferenceClick_noManagedProfile_sendsManageDefaultRoleIntent() {
         final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         final String permissionPackageName = "permissions.package";
         final UserHandle currentUser = Process.myUserHandle();
         List<UserInfo> userInfos = Arrays.asList(
@@ -492,7 +518,8 @@
                 Settings.Secure.STYLUS_BUTTONS_ENABLED, 0);
 
         showScreen(mController);
-        SwitchPreference buttonsPref = (SwitchPreference) mPreferenceContainer.getPreference(2);
+        SwitchPreferenceCompat buttonsPref =
+                (SwitchPreferenceCompat) mPreferenceContainer.getPreference(2);
 
         assertThat(buttonsPref.isChecked()).isEqualTo(true);
     }
@@ -503,7 +530,8 @@
                 Settings.Secure.STYLUS_BUTTONS_ENABLED, 1);
 
         showScreen(mController);
-        SwitchPreference buttonsPref = (SwitchPreference) mPreferenceContainer.getPreference(2);
+        SwitchPreferenceCompat buttonsPref =
+                (SwitchPreferenceCompat) mPreferenceContainer.getPreference(2);
 
         assertThat(buttonsPref.isChecked()).isEqualTo(false);
     }
@@ -513,7 +541,8 @@
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.STYLUS_BUTTONS_ENABLED, 0);
         showScreen(mController);
-        SwitchPreference buttonsPref = (SwitchPreference) mPreferenceContainer.getPreference(2);
+        SwitchPreferenceCompat buttonsPref =
+                (SwitchPreferenceCompat) mPreferenceContainer.getPreference(2);
 
         buttonsPref.performClick();
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
index 1b2ef9a..8d96c72 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/ConnectedUsbDeviceUpdaterTest.java
@@ -82,8 +82,7 @@
 
     @Test
     public void initUsbPreference_preferenceInit() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(true);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(true);
 
         mDeviceUpdater.initUsbPreference(mContext);
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsControllerTest.java
new file mode 100644
index 0000000..b8d31ed
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsControllerTest.java
@@ -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.connecteddevice.usb;
+
+import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.verify;
+
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.hardware.usb.UsbPortStatus;
+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 org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowKeyguardManager;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowKeyguardManager.class
+})
+public class UsbDetailsControllerTest {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Mock
+    private UsbBackend mUsbBackend;
+
+    private Context mContext;
+    private UsbDetailsController mUsbDetailsController;
+    private UsbDetailsFragment mUsbDetailsFragment;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = getApplicationContext();
+        mUsbDetailsFragment = new UsbDetailsFragment();
+        mUsbDetailsController = new UsbDetailsController(
+                mContext, mUsbDetailsFragment, mUsbBackend) {
+            @Override
+            protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
+            }
+
+            @Override
+            public String getPreferenceKey() {
+                return null;
+            }
+        };
+    }
+
+    @Test
+    public void isAvailable_returnsTrue() {
+        assertThat(mUsbDetailsController.isAvailable()).isTrue();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_AUTH_CHALLENGE_FOR_USB_PREFERENCES)
+    public void requireAuthAndExecute_whenAlreadyAuthenticated_executes() {
+        mUsbDetailsFragment.setUserAuthenticated(true);
+        Runnable action = () -> mUsbBackend.setDataRole(UsbPortStatus.DATA_ROLE_HOST);
+
+        mUsbDetailsController.requireAuthAndExecute(action);
+
+        verify(mUsbBackend).setDataRole(anyInt());
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_AUTH_CHALLENGE_FOR_USB_PREFERENCES)
+    public void requireAuthAndExecute_authenticatesAndExecutes() {
+        mUsbDetailsFragment.setUserAuthenticated(false);
+        setAuthPassesAutomatically();
+        Runnable action = () -> mUsbBackend.setDataRole(UsbPortStatus.DATA_ROLE_HOST);
+
+        mUsbDetailsController.requireAuthAndExecute(action);
+
+        assertThat(mUsbDetailsFragment.isUserAuthenticated()).isTrue();
+        verify(mUsbBackend).setDataRole(anyInt());
+    }
+
+    private void setAuthPassesAutomatically() {
+        Shadows.shadowOf(mContext.getSystemService(KeyguardManager.class))
+                .setIsKeyguardSecure(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java
index 8c8431d..3324843 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java
@@ -25,12 +25,15 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.KeyguardManager;
 import android.content.Context;
 import android.hardware.usb.UsbManager;
 import android.os.Handler;
+import android.platform.test.annotations.RequiresFlagsEnabled;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceCategory;
@@ -38,6 +41,7 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
@@ -49,8 +53,13 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class UsbDetailsDataRoleControllerTest {
 
     private UsbDetailsDataRoleController mDetailsDataRoleController;
@@ -59,12 +68,11 @@
     private PreferenceCategory mPreference;
     private PreferenceManager mPreferenceManager;
     private PreferenceScreen mScreen;
+    private UsbDetailsFragment mFragment;
 
     @Mock
     private UsbBackend mUsbBackend;
     @Mock
-    private UsbDetailsFragment mFragment;
-    @Mock
     private FragmentActivity mActivity;
     @Mock
     private Handler mHandler;
@@ -72,7 +80,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-
+        mFragment = spy(new UsbDetailsFragment());
         mContext = RuntimeEnvironment.application;
         mLifecycle = new Lifecycle(() -> mLifecycle);
         mPreferenceManager = new PreferenceManager(mContext);
@@ -91,12 +99,12 @@
         mScreen.addPreference(mPreference);
 
         mDetailsDataRoleController.mHandler = mHandler;
+
+        mDetailsDataRoleController.displayPreference(mScreen);
     }
 
     @Test
     public void displayRefresh_deviceRole_shouldCheckDevice() {
-        mDetailsDataRoleController.displayPreference(mScreen);
-
         mDetailsDataRoleController.refresh(true, UsbManager.FUNCTION_NONE, POWER_ROLE_SINK,
                 DATA_ROLE_DEVICE);
 
@@ -108,8 +116,6 @@
 
     @Test
     public void displayRefresh_hostRole_shouldCheckHost() {
-        mDetailsDataRoleController.displayPreference(mScreen);
-
         mDetailsDataRoleController.refresh(true, UsbManager.FUNCTION_NONE, POWER_ROLE_SINK,
                 DATA_ROLE_HOST);
 
@@ -121,8 +127,6 @@
 
     @Test
     public void displayRefresh_disconnected_shouldDisable() {
-        mDetailsDataRoleController.displayPreference(mScreen);
-
         mDetailsDataRoleController.refresh(false, UsbManager.FUNCTION_NONE, POWER_ROLE_SINK,
                 DATA_ROLE_DEVICE);
 
@@ -131,7 +135,6 @@
 
     @Test
     public void onClickDevice_hostEnabled_shouldSetDevice() {
-        mDetailsDataRoleController.displayPreference(mScreen);
         when(mUsbBackend.getDataRole()).thenReturn(DATA_ROLE_HOST);
 
         final SelectorWithWidgetPreference devicePref = getRadioPreference(DATA_ROLE_DEVICE);
@@ -144,7 +147,6 @@
 
     @Test
     public void onClickDeviceTwice_hostEnabled_shouldSetDeviceOnce() {
-        mDetailsDataRoleController.displayPreference(mScreen);
         when(mUsbBackend.getDataRole()).thenReturn(DATA_ROLE_HOST);
 
         final SelectorWithWidgetPreference devicePref = getRadioPreference(DATA_ROLE_DEVICE);
@@ -158,7 +160,6 @@
 
     @Test
     public void onClickDeviceAndRefresh_success_shouldClearSubtext() {
-        mDetailsDataRoleController.displayPreference(mScreen);
         when(mUsbBackend.getDataRole()).thenReturn(DATA_ROLE_HOST);
 
         final SelectorWithWidgetPreference devicePref = getRadioPreference(DATA_ROLE_DEVICE);
@@ -176,7 +177,6 @@
 
     @Test
     public void onClickDeviceAndRefresh_failed_shouldShowFailureText() {
-        mDetailsDataRoleController.displayPreference(mScreen);
         when(mUsbBackend.getDataRole()).thenReturn(DATA_ROLE_HOST);
 
         final SelectorWithWidgetPreference devicePref = getRadioPreference(DATA_ROLE_DEVICE);
@@ -195,7 +195,6 @@
 
     @Test
     public void onClickDevice_timedOut_shouldShowFailureText() {
-        mDetailsDataRoleController.displayPreference(mScreen);
         when(mUsbBackend.getDataRole()).thenReturn(DATA_ROLE_HOST);
 
         final SelectorWithWidgetPreference devicePref = getRadioPreference(DATA_ROLE_DEVICE);
@@ -214,6 +213,22 @@
                 .isEqualTo(mContext.getString(R.string.usb_switching_failed));
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_AUTH_CHALLENGE_FOR_USB_PREFERENCES)
+    public void onRadioButtonClicked_userAuthenticated() {
+        SelectorWithWidgetPreference preference = getRadioPreference(DATA_ROLE_DEVICE);
+        setAuthPassesAutomatically();
+
+        mDetailsDataRoleController.onRadioButtonClicked(preference);
+
+        assertThat(mFragment.isUserAuthenticated()).isTrue();
+    }
+
+    private void setAuthPassesAutomatically() {
+        Shadows.shadowOf(mContext.getSystemService(KeyguardManager.class))
+                .setIsKeyguardSecure(false);
+    }
+
     private SelectorWithWidgetPreference getRadioPreference(int role) {
         return (SelectorWithWidgetPreference)
                 mPreference.findPreference(UsbBackend.dataRoleToString(role));
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
index 37efbd6..eea4f52 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
@@ -30,15 +30,18 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.KeyguardManager;
 import android.content.Context;
 import android.hardware.usb.UsbManager;
 import android.net.TetheringManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
@@ -51,6 +54,7 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
@@ -58,6 +62,9 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class UsbDetailsFunctionsControllerTest {
 
     private UsbDetailsFunctionsController mDetailsFunctionsController;
@@ -67,12 +74,11 @@
     private PreferenceManager mPreferenceManager;
     private PreferenceScreen mScreen;
     private SelectorWithWidgetPreference mRadioButtonPreference;
+    private UsbDetailsFragment mFragment;
 
     @Mock
     private UsbBackend mUsbBackend;
     @Mock
-    private UsbDetailsFragment mFragment;
-    @Mock
     private FragmentActivity mActivity;
     @Mock
     private TetheringManager mTetheringManager;
@@ -80,7 +86,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-
+        mFragment = spy(new UsbDetailsFragment());
         mContext = spy(RuntimeEnvironment.application);
         mLifecycle = new Lifecycle(() -> mLifecycle);
         mPreferenceManager = new PreferenceManager(mContext);
@@ -220,7 +226,7 @@
         assertThat(prefs.get(3).isChecked()).isFalse();
     }
 
-    @Ignore
+    @Ignore("b/313362757")
     @Test
     public void onClickNone_mtpEnabled_shouldDisableMtp() {
         when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
@@ -332,6 +338,23 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_AUTH_CHALLENGE_FOR_USB_PREFERENCES)
+    public void onRadioButtonClicked_userAuthenticated() {
+        mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_PTP));
+        doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
+        setAuthPassesAutomatically();
+
+        mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
+
+        assertThat(mFragment.isUserAuthenticated()).isTrue();
+    }
+
+    private void setAuthPassesAutomatically() {
+        Shadows.shadowOf(mContext.getSystemService(KeyguardManager.class))
+                .setIsKeyguardSecure(false);
+    }
+
+    @Test
     public void onTetheringFailed_resetPreviousFunctions() {
         mDetailsFunctionsController.mPreviousFunction = UsbManager.FUNCTION_PTP;
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
index 280b8d4..4fb78fb 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
@@ -26,7 +26,6 @@
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.hardware.usb.UsbManager;
-import android.hardware.usb.UsbPort;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.lifecycle.LifecycleOwner;
@@ -53,7 +52,10 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
+@Config(shadows = {
+        ShadowEntityHeaderController.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class UsbDetailsHeaderControllerTest {
 
     private UsbDetailsHeaderController mDetailsHeaderController;
@@ -91,7 +93,8 @@
 
         ShadowEntityHeaderController.setUseMock(mHeaderController);
         mDetailsHeaderController = new UsbDetailsHeaderController(mContext, mFragment, mUsbBackend);
-        mPreference = new LayoutPreference(mContext, R.layout.settings_entity_header);
+        mPreference = new LayoutPreference(
+                mContext, com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header);
         mPreference.setKey(mDetailsHeaderController.getPreferenceKey());
         mScreen.addPreference(mPreference);
     }
@@ -111,6 +114,6 @@
             DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
             return true;
         }));
-        verify(mHeaderController).done(mActivity, true);
+        verify(mHeaderController).done(true);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java
index aa62741..6be1bd5 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java
@@ -45,6 +45,7 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -52,8 +53,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class UsbDetailsPowerRoleControllerTest {
 
     private UsbDetailsPowerRoleController mDetailsPowerRoleController;
@@ -96,6 +101,7 @@
         mDetailsPowerRoleController.mHandler = mHandler;
     }
 
+    @Ignore("b/313362757")
     @Test
     public void displayRefresh_sink_shouldUncheck() {
         mDetailsPowerRoleController.displayPreference(mScreen);
@@ -108,6 +114,7 @@
         assertThat(pref.isChecked()).isFalse();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void displayRefresh_source_shouldCheck() {
         mDetailsPowerRoleController.displayPreference(mScreen);
@@ -145,6 +152,7 @@
                 mDetailsPowerRoleController.getPreferenceKey())).isNull();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void onClick_sink_shouldSetSource() {
         mDetailsPowerRoleController.displayPreference(mScreen);
@@ -158,6 +166,7 @@
                 .isEqualTo(mContext.getString(R.string.usb_switching));
     }
 
+    @Ignore("b/313362757")
     @Test
     public void onClickTwice_sink_shouldSetSourceOnce() {
         mDetailsPowerRoleController.displayPreference(mScreen);
@@ -172,6 +181,7 @@
         verify(mUsbBackend, times(1)).setPowerRole(POWER_ROLE_SOURCE);
     }
 
+    @Ignore("b/313362757")
     @Test
     public void onClickDeviceAndRefresh_success_shouldClearSubtext() {
         mDetailsPowerRoleController.displayPreference(mScreen);
@@ -190,6 +200,7 @@
         assertThat(pref.getSummary()).isEqualTo("");
     }
 
+    @Ignore("b/313362757")
     @Test
     public void onClickDeviceAndRefresh_failed_shouldShowFailureText() {
         mDetailsPowerRoleController.displayPreference(mScreen);
@@ -209,6 +220,7 @@
                 .isEqualTo(mContext.getString(R.string.usb_switching_failed));
     }
 
+    @Ignore("b/313362757")
     @Test
     public void onClickDevice_timedOut_shouldShowFailureText() {
         mDetailsPowerRoleController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java
index 477b592..07d14ec 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java
@@ -21,11 +21,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.app.KeyguardManager;
 import android.content.Context;
 import android.hardware.usb.UsbManager;
 import android.os.SystemProperties;
+import android.platform.test.annotations.RequiresFlagsEnabled;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceCategory;
@@ -33,18 +36,24 @@
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
 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 org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class UsbDetailsTranscodeMtpControllerTest {
     private static final String TRANSCODE_MTP_SYS_PROP_KEY = "sys.fuse.transcode_mtp";
 
@@ -53,18 +62,18 @@
     private PreferenceManager mPreferenceManager;
     private PreferenceScreen mScreen;
     private UsbDetailsTranscodeMtpController mUnderTest;
+    private UsbDetailsFragment mFragment;
 
     @Mock
     private UsbBackend mUsbBackend;
     @Mock
-    private UsbDetailsFragment mFragment;
-    @Mock
     private FragmentActivity mActivity;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        mFragment = spy(new UsbDetailsFragment());
         mContext = RuntimeEnvironment.application;
         mPreferenceManager = new PreferenceManager(mContext);
         mScreen = mPreferenceManager.createPreferenceScreen(mContext);
@@ -80,11 +89,12 @@
         mPreference = new PreferenceCategory(mContext);
         mPreference.setKey(mUnderTest.getPreferenceKey());
         mScreen.addPreference(mPreference);
+
+        mUnderTest.displayPreference(mScreen);
     }
 
     @Test
     public void displayRefresh_noUsbConnection_shouldDisablePrefCategory() {
-        mUnderTest.displayPreference(mScreen);
         when(mUsbBackend.areAllRolesSupported()).thenReturn(true);
 
         mUnderTest.refresh(false /* connected */, UsbManager.FUNCTION_MTP, POWER_ROLE_NONE,
@@ -95,7 +105,6 @@
 
     @Test
     public void displayRefresh_noDataTransfer_shouldDisablePrefCategory() {
-        mUnderTest.displayPreference(mScreen);
         when(mUsbBackend.areAllRolesSupported()).thenReturn(true);
 
         mUnderTest.refresh(true /* connected */, UsbManager.FUNCTION_NONE, POWER_ROLE_NONE,
@@ -106,7 +115,6 @@
 
     @Test
     public void displayRefresh_noDataRole_shouldDisablePrefCategory() throws InterruptedException {
-        mUnderTest.displayPreference(mScreen);
         when(mUsbBackend.areAllRolesSupported()).thenReturn(true);
 
         mUnderTest.refresh(true /* connected */, UsbManager.FUNCTION_MTP, POWER_ROLE_NONE,
@@ -115,9 +123,9 @@
         assertThat(mPreference.isEnabled()).isFalse();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void displayRefresh_fileTransfer_withAbsentProp_shouldCheck() {
-        mUnderTest.displayPreference(mScreen);
         when(mUsbBackend.areAllRolesSupported()).thenReturn(true);
 
         mUnderTest.refresh(true /* connected */, UsbManager.FUNCTION_MTP, POWER_ROLE_NONE,
@@ -126,9 +134,9 @@
         assertThat(getSwitchPreference().isChecked()).isFalse();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void displayRefresh_fileTransfer_withUnsetProp_shouldUncheck() {
-        mUnderTest.displayPreference(mScreen);
         SystemProperties.set(TRANSCODE_MTP_SYS_PROP_KEY, Boolean.toString(false));
         when(mUsbBackend.areAllRolesSupported()).thenReturn(true);
 
@@ -138,9 +146,9 @@
         assertThat(getSwitchPreference().isChecked()).isFalse();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void displayRefresh_fileTransfer_withSetProp_shouldCheck() {
-        mUnderTest.displayPreference(mScreen);
         SystemProperties.set(TRANSCODE_MTP_SYS_PROP_KEY, Boolean.toString(true));
         when(mUsbBackend.areAllRolesSupported()).thenReturn(true);
 
@@ -150,16 +158,16 @@
         assertThat(getSwitchPreference().isChecked()).isTrue();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void click_checked_shouldSetSystemProperty() {
-        mUnderTest.displayPreference(mScreen);
         getSwitchPreference().performClick();
         assertThat(SystemProperties.getBoolean(TRANSCODE_MTP_SYS_PROP_KEY, false)).isTrue();
     }
 
+    @Ignore("b/313362757")
     @Test
     public void click_unChecked_shouldUnsetSystemProperty() {
-        mUnderTest.displayPreference(mScreen);
         getSwitchPreference().performClick();
         getSwitchPreference().performClick();
         assertThat(SystemProperties.getBoolean(TRANSCODE_MTP_SYS_PROP_KEY, true)).isFalse();
@@ -172,6 +180,21 @@
         assertThat(mUnderTest.isAvailable()).isFalse();
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_ENABLE_AUTH_CHALLENGE_FOR_USB_PREFERENCES)
+    public void onClick_userAuthenticated() {
+        setAuthPassesAutomatically();
+
+        mUnderTest.onPreferenceClick(null);
+
+        assertThat(mFragment.isUserAuthenticated()).isTrue();
+    }
+
+    private void setAuthPassesAutomatically() {
+        Shadows.shadowOf(mContext.getSystemService(KeyguardManager.class))
+                .setIsKeyguardSecure(false);
+    }
+
     private SwitchPreference getSwitchPreference() {
         return (SwitchPreference) mPreference.getPreference(0);
     }
diff --git a/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java b/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java
index a0ae9f7..3040039 100644
--- a/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java
+++ b/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java
@@ -31,8 +31,6 @@
 import androidx.appcompat.app.AppCompatActivity;
 
 import com.android.settings.core.CategoryMixin.CategoryListener;
-import com.android.settings.utils.ActivityControllerWrapper;
-import com.android.settingslib.R;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -55,7 +53,7 @@
 
     @Test
     public void resumeActivity_shouldRegisterReceiver() {
-        ActivityControllerWrapper.setup(mActivityController);
+        mActivityController.setup();
 
         final TestActivity activity = mActivityController.get();
         assertThat(activity.getRegisteredReceivers()).isNotEmpty();
@@ -63,7 +61,7 @@
 
     @Test
     public void pauseActivity_shouldUnregisterReceiver() {
-        ActivityControllerWrapper.setup(mActivityController).pause();
+        mActivityController.setup().pause();
 
         final TestActivity activity = mActivityController.get();
         assertThat(activity.getRegisteredReceivers()).isEmpty();
@@ -71,7 +69,7 @@
 
     @Test
     public void onCategoriesChanged_listenerAdded_shouldNotifyChanged() {
-        ActivityControllerWrapper.setup(mActivityController).pause();
+        mActivityController.setup().pause();
         final CategoryMixin categoryMixin = mActivityController.get().getCategoryMixin();
         final CategoryListener listener = mock(CategoryListener.class);
         categoryMixin.addCategoryListener(listener);
@@ -89,7 +87,7 @@
         @Override
         protected void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
-            setTheme(R.style.Theme_AppCompat);
+            setTheme(androidx.appcompat.R.style.Theme_AppCompat);
             mCategoryMixin = new CategoryMixin(this);
             getLifecycle().addObserver(mCategoryMixin);
         }
diff --git a/tests/robotests/src/com/android/settings/core/InstrumentedActivityTest.java b/tests/robotests/src/com/android/settings/core/InstrumentedActivityTest.java
index 2f6940f..d74fab3 100644
--- a/tests/robotests/src/com/android/settings/core/InstrumentedActivityTest.java
+++ b/tests/robotests/src/com/android/settings/core/InstrumentedActivityTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.core;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
@@ -33,8 +31,7 @@
      */
     @Test
     public void canInstantiate() {
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(InstrumentedActivityTestable.class)).get();
+        Robolectric.buildActivity(InstrumentedActivityTestable.class).setup().get();
     }
 
     public static class InstrumentedActivityTestable extends InstrumentedActivity {
diff --git a/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java
index 763cf15..838edc6 100644
--- a/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java
@@ -23,6 +23,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.Context;
 import android.os.Bundle;
 
 import androidx.fragment.app.FragmentActivity;
@@ -38,9 +39,14 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class InstrumentedPreferenceFragmentTest {
 
     @Mock
@@ -49,7 +55,7 @@
     private PreferenceManager mPreferenceManager;
     @Mock
     private FragmentActivity mActivity;
-
+    private Context mContext;
     private InstrumentedPreferenceFragmentTestable mFragment;
 
     @Before
@@ -57,7 +63,9 @@
         MockitoAnnotations.initMocks(this);
         when(mPreferenceManager.getPreferenceScreen()).thenReturn(mScreen);
 
+        mContext = RuntimeEnvironment.application;
         mFragment = spy(new InstrumentedPreferenceFragmentTestable());
+        when(mFragment.getContext()).thenReturn(mContext);
         ReflectionHelpers.setField(mFragment, "mPreferenceManager", mPreferenceManager);
     }
 
diff --git a/tests/robotests/src/com/android/settings/core/PreferenceControllerListHelperTest.java b/tests/robotests/src/com/android/settings/core/PreferenceControllerListHelperTest.java
index 34eab02..68dfb79 100644
--- a/tests/robotests/src/com/android/settings/core/PreferenceControllerListHelperTest.java
+++ b/tests/robotests/src/com/android/settings/core/PreferenceControllerListHelperTest.java
@@ -25,7 +25,6 @@
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -45,7 +44,6 @@
         mContext = RuntimeEnvironment.application;
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getControllers_shouldReturnAList() {
@@ -59,7 +57,6 @@
         }
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc998")
     public void getControllers_partialFailure_shouldReturnTheRest() {
diff --git a/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java b/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java
index 1a794e1..f489123 100644
--- a/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java
@@ -27,27 +27,21 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
-import android.content.res.XmlResourceParser;
 import android.os.Bundle;
 import android.text.TextUtils;
-import android.util.AttributeSet;
-import android.util.Xml;
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
-import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * These tests use a series of preferences that have specific attributes which are sometimes
@@ -56,7 +50,6 @@
  * If changing a preference file breaks a test in this test file, please replace its reference
  * with another preference with a matching replacement attribute.
  */
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 public class PreferenceXmlParserUtilsTest {
 
@@ -68,115 +61,6 @@
     }
 
     @Test
-    public void testDataTitleValid_ReturnsPreferenceTitle() {
-        XmlResourceParser parser = getChildByType(R.xml.display_settings,
-                "com.android.settings.display.darkmode.DarkModePreference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String title = PreferenceXmlParserUtils.getDataTitle(mContext, attrs);
-        String expTitle = mContext.getString(R.string.dark_ui_mode);
-        assertThat(title).isEqualTo(expTitle);
-    }
-
-    @Test
-    public void testDataKeywordsValid_ReturnsPreferenceKeywords() {
-        XmlResourceParser parser = getChildByType(R.xml.display_settings,
-                "com.android.settings.display.darkmode.DarkModePreference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String keywords = PreferenceXmlParserUtils.getDataKeywords(mContext, attrs);
-        String expKeywords = mContext.getString(R.string.keywords_dark_ui_mode);
-        assertThat(keywords).isEqualTo(expKeywords);
-    }
-
-    @Test
-    public void testDataKeyValid_ReturnsPreferenceKey() {
-        XmlResourceParser parser = getChildByType(R.xml.display_settings,
-                "com.android.settings.display.darkmode.DarkModePreference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String key = PreferenceXmlParserUtils.getDataKey(mContext, attrs);
-        String expKey = "dark_ui_mode";
-        assertThat(key).isEqualTo(expKey);
-    }
-
-    @Test
-    public void testDataSummaryValid_ReturnsPreferenceSummary() {
-        XmlResourceParser parser = getChildByType(R.xml.sound_settings,
-                "com.android.settings.DefaultRingtonePreference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String summary = PreferenceXmlParserUtils.getDataSummary(mContext, attrs);
-        String expSummary = mContext.getString(R.string.summary_placeholder);
-        assertThat(summary).isEqualTo(expSummary);
-    }
-
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void testDataSummaryOnOffValid_ReturnsPreferenceSummaryOnOff() {
-        XmlResourceParser parser = getChildByType(R.xml.display_settings, "CheckBoxPreference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-
-        assertThat(PreferenceXmlParserUtils.getDataSummaryOn(mContext, attrs))
-                .isEqualTo("summary_on");
-        assertThat(PreferenceXmlParserUtils.getDataSummaryOff(mContext, attrs))
-                .isEqualTo("summary_off");
-    }
-
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void testDataEntriesValid_ReturnsPreferenceEntries() {
-        XmlResourceParser parser = getChildByType(R.xml.display_settings, "ListPreference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String entries = PreferenceXmlParserUtils.getDataEntries(mContext, attrs);
-        String[] expEntries = mContext.getResources()
-                .getStringArray(R.array.mvno_type_entries);
-        for (String expEntry : expEntries) {
-            assertThat(entries).contains(expEntry);
-        }
-    }
-
-    // Null checks
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void testDataKeyInvalid_ReturnsNull() {
-        XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String key = PreferenceXmlParserUtils.getDataKey(mContext, attrs);
-        assertThat(key).isNull();
-    }
-
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void testControllerAttribute_returnsValidData() {
-        XmlResourceParser parser = getChildByType(R.xml.about_legal, "Preference");
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-
-        String controller = PreferenceXmlParserUtils.getController(mContext, attrs);
-        assertThat(controller).isEqualTo("mind_flayer");
-    }
-
-    @Test
-    public void testDataSummaryInvalid_ReturnsNull() {
-        XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String summary = PreferenceXmlParserUtils.getDataSummary(mContext, attrs);
-        assertThat(summary).isNull();
-    }
-
-    @Test
-    public void testDataSummaryOffInvalid_ReturnsNull() {
-        XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String summaryOff = PreferenceXmlParserUtils.getDataSummaryOff(mContext, attrs);
-        assertThat(summaryOff).isNull();
-    }
-
-    @Test
-    public void testDataEntriesInvalid_ReturnsNull() {
-        XmlResourceParser parser = getParentPrimedParser(R.xml.display_settings);
-        final AttributeSet attrs = Xml.asAttributeSet(parser);
-        String entries = PreferenceXmlParserUtils.getDataEntries(mContext, attrs);
-        assertThat(entries).isNull();
-    }
-
-    @Test
     public void extractHomepageMetadata_shouldContainKeyAndHighlightableMenuKey()
             throws IOException, XmlPullParserException {
         List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
@@ -380,46 +264,4 @@
         assertThat(bundleWithKey2Found).isTrue();
     }
 
-    /**
-     * @param resId the ID for the XML preference
-     * @return an XML resource parser that points to the start tag
-     */
-    private XmlResourceParser getParentPrimedParser(int resId) {
-        XmlResourceParser parser = null;
-        try {
-            parser = mContext.getResources().getXml(resId);
-
-            int type;
-            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
-                    && type != XmlPullParser.START_TAG) {
-            }
-        } catch (Exception e) {
-
-        }
-        return parser;
-    }
-
-    private XmlResourceParser getChildByType(int resId, String xmlType) {
-        XmlResourceParser parser = null;
-        try {
-            parser = mContext.getResources().getXml(resId);
-
-            int type;
-            while ((type = parser.next()) != XmlPullParser.END_DOCUMENT
-                    && type != XmlPullParser.START_TAG) {
-            }
-            while (true) {
-                if (Objects.equals(parser.getName(), xmlType)) {
-                    break;
-                }
-                final int nextEvent = parser.next();
-                if (nextEvent == XmlPullParser.END_DOCUMENT) {
-                    break;
-                }
-            }
-        } catch (Exception e) {
-
-        }
-        return parser;
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
index b68bcec..bfc8ea6 100644
--- a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
+++ b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
@@ -45,8 +45,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class SubSettingLauncherTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
index d701e48..4767bbc 100644
--- a/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
+++ b/tests/robotests/src/com/android/settings/core/XmlControllerAttributeTest.java
@@ -5,7 +5,6 @@
 import android.content.Context;
 import android.content.res.XmlResourceParser;
 import android.provider.SearchIndexableResource;
-import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Xml;
 
@@ -156,12 +155,6 @@
             if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) {
                 continue;
             }
-
-            controllerClassName = PreferenceXmlParserUtils.getController(mContext, attrs);
-            // If controller is not indexed, then it is not compatible with
-            if (!TextUtils.isEmpty(controllerClassName)) {
-                xmlControllers.add(controllerClassName);
-            }
         }
 
         return xmlControllers;
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..009f13a 100644
--- a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java
@@ -52,8 +52,8 @@
         new InstrumentableFragmentCodeInspector(mClasses).run();
     }
 
+    @Ignore("b/313612087")
     @Test
-    @Ignore
     public void runSliceControllerInXmlInspection() throws Exception {
         new SliceControllerInXmlCodeInspector(mClasses).run();
     }
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java
index a6bd865..d3634f0 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java
@@ -43,9 +43,9 @@
     @Test
     public void getFactory_shouldReuseCachedInstance() {
         MetricsFeatureProvider feature1 =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
         MetricsFeatureProvider feature2 =
-                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+                FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
 
         assertThat(feature1).isSameInstanceAs(feature2);
     }
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriterTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriterTest.java
deleted file mode 100644
index 30a2594..0000000
--- a/tests/robotests/src/com/android/settings/core/instrumentation/SettingsIntelligenceLogWriterTest.java
+++ /dev/null
@@ -1,78 +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.core.instrumentation;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-
-import com.android.settings.intelligence.LogProto.SettingsLog;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-public class SettingsIntelligenceLogWriterTest {
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-    }
-
-    @Test
-    public void serialize_hasSizeOne_returnCorrectData() throws IOException {
-        final SettingsLog event = SettingsLog.newBuilder()
-                .setAttribution(SettingsEnums.DASHBOARD_SUMMARY)
-                .setAction(SettingsEnums.ACTION_SET_NEW_PASSWORD)
-                .setPageId(SettingsEnums.SET_NEW_PASSWORD_ACTIVITY)
-                .setChangedPreferenceKey("package")
-                .setChangedPreferenceIntValue(100)
-                .build();
-        List<SettingsLog> events = new ArrayList<>();
-        events.add(event);
-
-        // execute
-        final byte[] data = SettingsIntelligenceLogWriter.serialize(events);
-
-        // parse data
-        final ByteArrayInputStream bin = new ByteArrayInputStream(data);
-        final DataInputStream inputStream = new DataInputStream(bin);
-        final int size = inputStream.readInt();
-        final byte[] change = new byte[inputStream.readInt()];
-        inputStream.read(change);
-        inputStream.close();
-        final SettingsLog settingsLog = SettingsLog.parseFrom(change);
-
-        // assert
-        assertThat(events.size()).isEqualTo(size);
-        assertThat(settingsLog.getAttribution()).isEqualTo(SettingsEnums.DASHBOARD_SUMMARY);
-        assertThat(settingsLog.getAction()).isEqualTo(SettingsEnums.ACTION_SET_NEW_PASSWORD);
-        assertThat(settingsLog.getPageId()).isEqualTo(SettingsEnums.SET_NEW_PASSWORD_ACTIVITY);
-        assertThat(settingsLog.getChangedPreferenceKey()).isEqualTo("package");
-        assertThat(settingsLog.getChangedPreferenceIntValue()).isEqualTo(100);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
index f7a940f..0799eaf 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java
@@ -43,6 +43,7 @@
 import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
 
+import android.app.Application;
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
@@ -62,6 +63,7 @@
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
 import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
@@ -83,15 +85,16 @@
 import com.android.settingslib.drawer.TileUtils;
 
 import org.junit.Before;
+import org.junit.Rule;
 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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
@@ -103,10 +106,14 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowUserManager.class)
 public class DashboardFeatureProviderImplTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private static final String KEY = "key";
     private static final String SWITCH_URI = "content://com.android.settings/tile_switch";
 
+    private final Application mApplication = ApplicationProvider.getApplicationContext();
+
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private FragmentActivity mActivity;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -125,9 +132,8 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        doReturn(RuntimeEnvironment.application).when(mActivity).getApplicationContext();
+        mContext = spy(mApplication);
+        doReturn(mApplication).when(mActivity).getApplicationContext();
         mForceRoundedIcon = false;
         mActivityInfo = new ActivityInfo();
         mActivityInfo.packageName = mContext.getPackageName();
@@ -162,7 +168,7 @@
 
     @Test
     public void bindPreference_shouldBindAllData() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = spy(new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE));
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         doReturn(Icon.createWithBitmap(Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565)))
@@ -182,7 +188,7 @@
 
     @Test
     public void bindPreference_shouldBindAllSwitchData() {
-        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final Preference preference = new SwitchPreference(mApplication);
         final Tile tile = spy(new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE,
                 mSwitchMetaData));
         mSwitchMetaData.putInt(META_DATA_KEY_ORDER, 10);
@@ -203,7 +209,7 @@
 
     @Test
     public void bindPreference_providerTileWithPendingIntent_shouldBindIntent() {
-        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final Preference preference = new SwitchPreference(mApplication);
         Bundle metaData = new Bundle();
         metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
         metaData.putInt(META_DATA_PREFERENCE_SUMMARY, R.string.about_settings_summary);
@@ -211,7 +217,7 @@
         metaData.putString(META_DATA_PREFERENCE_KEYHINT, KEY);
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE, metaData);
         PendingIntent pendingIntent =
-                PendingIntent.getActivity(RuntimeEnvironment.application, 0, new Intent("test"), 0);
+                PendingIntent.getActivity(mApplication, 0, new Intent("test"), 0);
         tile.pendingIntentMap.put(UserHandle.CURRENT, pendingIntent);
 
         mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
@@ -224,7 +230,7 @@
 
     @Test
     public void bindPreference_noFragmentMetadata_shouldBindIntent() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
 
@@ -238,7 +244,7 @@
 
     @Test
     public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         tile.userHandle = new ArrayList<>();
         tile.userHandle.add(mock(UserHandle.class));
@@ -253,7 +259,7 @@
 
     @Test
     public void bindPreference_noFragmentMetadataSingleUser_shouldBindToDirectLaunchIntent() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         tile.userHandle = new ArrayList<>();
         tile.userHandle.add(mock(UserHandle.class));
@@ -274,8 +280,8 @@
 
     @Test
     public void bindPreference_toInternalSettingActivity_shouldBindToDirectLaunchIntentAndNotLog() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
-        mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName();
+        final Preference preference = new Preference(mApplication);
+        mActivityInfo.packageName = mApplication.getPackageName();
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         tile.userHandle = new ArrayList<>();
         tile.userHandle.add(mock(UserHandle.class));
@@ -301,7 +307,7 @@
 
     @Test
     public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
                 preference, tile, null /* key */,
@@ -313,7 +319,7 @@
 
     @Test
     public void bindPreference_noSummary_shouldSetNullSummary() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         mActivityInfo.metaData.remove(META_DATA_PREFERENCE_SUMMARY);
 
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
@@ -327,7 +333,7 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindPreference_hasSummaryUri_shouldLoadSummaryFromContentProviderAndHaveObserver() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         final String uriString = "content://com.android.settings/tile_summary";
         mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_SUMMARY_URI, uriString);
@@ -347,7 +353,7 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindPreference_hasTitleUri_shouldLoadFromContentProviderAndHaveObserver() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         final String uriString =  "content://com.android.settings/tile_title";
         mActivityInfo.metaData.putString(TileUtils.META_DATA_PREFERENCE_TITLE_URI, uriString);
@@ -367,7 +373,7 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindPreference_onCheckedChanged_shouldPutStateToContentProvider() {
-        final SwitchPreference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final SwitchPreference preference = new SwitchPreference(mApplication);
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE,
                 mSwitchMetaData);
         final Bundle bundle = new Bundle();
@@ -388,7 +394,7 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindPreference_onCheckedChangedError_shouldRevertCheckedState() {
-        final SwitchPreference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final SwitchPreference preference = new SwitchPreference(mApplication);
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE,
                 mSwitchMetaData);
         final Bundle bundle = new Bundle();
@@ -409,7 +415,7 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindPreference_callbackOnChanged_shouldLoadFromContentProvider() {
-        final SwitchPreference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final SwitchPreference preference = new SwitchPreference(mApplication);
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE,
                 mSwitchMetaData);
         final List<DynamicDataObserver> observers = mImpl.bindPreferenceToTileAndGetObservers(
@@ -430,7 +436,7 @@
 
     @Test
     public void bindPreference_withNullKeyTileKey_shouldUseTileKey() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
@@ -441,8 +447,8 @@
 
     @Test
     public void bindIcon_withStaticIcon_shouldLoadStaticIcon() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
-        mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName();
+        final Preference preference = new Preference(mApplication);
+        mActivityInfo.packageName = mApplication.getPackageName();
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_ICON, R.drawable.ic_add_40dp);
@@ -459,8 +465,8 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindIcon_withIconUri_shouldLoadIconFromContentProvider() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
-        mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName();
+        final Preference preference = new Preference(mApplication);
+        mActivityInfo.packageName = mApplication.getPackageName();
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_ICON_URI,
@@ -474,8 +480,8 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindIcon_withStaticIconAndIconUri_shouldLoadIconFromContentProvider() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
-        mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName();
+        final Preference preference = new Preference(mApplication);
+        mActivityInfo.packageName = mApplication.getPackageName();
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_ICON, R.drawable.ic_add_40dp);
@@ -501,8 +507,8 @@
     @Test
     @Config(shadows = {ShadowTileUtils.class})
     public void bindIcon_noIcon_shouldNotLoadIcon() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
-        mActivityInfo.packageName = RuntimeEnvironment.application.getPackageName();
+        final Preference preference = new Preference(mApplication);
+        mActivityInfo.packageName = mApplication.getPackageName();
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
 
@@ -514,7 +520,7 @@
     @Test
     public void bindPreference_withBaseOrder_shouldOffsetOrder() {
         final int baseOrder = 100;
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
 
@@ -526,7 +532,7 @@
 
     @Test
     public void bindPreference_withOrderMetadata_shouldUseOrderInMetadata() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final int testOrder = -30;
         mActivityInfo.metaData.putInt(META_DATA_KEY_ORDER, 10);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
@@ -539,7 +545,7 @@
 
     @Test
     public void bindPreference_invalidOrderMetadata_shouldIgnore() {
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_KEY_ORDER, "hello");
 
@@ -552,7 +558,7 @@
     @Test
     public void bindPreference_withIntentActionMetadata_shouldSetLaunchAction() {
         FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
@@ -581,7 +587,7 @@
         String clickPrefKey = "highlight_pref_key";
         String highlightMixinPrefKey = "highlight_pref_key";
         FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        Preference preference = new Preference(RuntimeEnvironment.application);
+        Preference preference = new Preference(mApplication);
         Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
@@ -612,7 +618,7 @@
         String clickPrefKey = "not_highlight_pref_key";
         String highlightMixinPrefKey = "highlight_pref_key";
         FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        Preference preference = new Preference(RuntimeEnvironment.application);
+        Preference preference = new Preference(mApplication);
         Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
@@ -635,9 +641,9 @@
     @Test
     public void clickPreference_withUnresolvableIntent_shouldNotLaunchAnything() {
         ReflectionHelpers.setField(
-                mImpl, "mPackageManager", RuntimeEnvironment.application.getPackageManager());
+                mImpl, "mPackageManager", mApplication.getPackageManager());
         FragmentActivity activity = Robolectric.buildActivity(FragmentActivity.class).get();
-        final Preference preference = new Preference(RuntimeEnvironment.application);
+        final Preference preference = new Preference(mApplication);
         final Tile tile = new ActivityTile(mActivityInfo, CategoryKey.CATEGORY_HOMEPAGE);
         mActivityInfo.metaData.putString(META_DATA_PREFERENCE_KEYHINT, "key");
         mActivityInfo.metaData.putString("com.android.settings.intent.action", "TestAction");
@@ -655,7 +661,7 @@
 
     @Test
     public void clickPreference_providerTileWithPendingIntent_singleUser_executesPendingIntent() {
-        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final Preference preference = new SwitchPreference(mApplication);
         Bundle metaData = new Bundle();
         metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
         metaData.putInt(META_DATA_PREFERENCE_SUMMARY, R.string.about_settings_summary);
@@ -663,7 +669,7 @@
         metaData.putString(META_DATA_PREFERENCE_KEYHINT, KEY);
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE, metaData);
         PendingIntent pendingIntent =
-                PendingIntent.getActivity(RuntimeEnvironment.application, 0, new Intent("test"), 0);
+                PendingIntent.getActivity(mApplication, 0, new Intent("test"), 0);
         tile.pendingIntentMap.put(UserHandle.CURRENT, pendingIntent);
 
         mImpl.bindPreferenceToTileAndGetObservers(mActivity, mFragment, mForceRoundedIcon,
@@ -671,14 +677,14 @@
         preference.performClick();
 
         Intent nextStartedActivity =
-                Shadows.shadowOf(RuntimeEnvironment.application).peekNextStartedActivity();
+                Shadows.shadowOf(mApplication).peekNextStartedActivity();
         assertThat(nextStartedActivity).isNotNull();
         assertThat(nextStartedActivity.getAction()).isEqualTo("test");
     }
 
     @Test
     public void clickPreference_providerTileWithPendingIntent_multiUser_showsProfileDialog() {
-        final Preference preference = new SwitchPreference(RuntimeEnvironment.application);
+        final Preference preference = new SwitchPreference(mApplication);
         Bundle metaData = new Bundle();
         metaData.putInt(META_DATA_PREFERENCE_TITLE, R.string.settings_label);
         metaData.putInt(META_DATA_PREFERENCE_SUMMARY, R.string.about_settings_summary);
@@ -686,7 +692,7 @@
         metaData.putString(META_DATA_PREFERENCE_KEYHINT, KEY);
         final Tile tile = new ProviderTile(mProviderInfo, CategoryKey.CATEGORY_HOMEPAGE, metaData);
         PendingIntent pendingIntent =
-                PendingIntent.getActivity(RuntimeEnvironment.application, 0, new Intent("test"), 0);
+                PendingIntent.getActivity(mApplication, 0, new Intent("test"), 0);
         tile.pendingIntentMap.put(UserHandle.CURRENT, pendingIntent);
         tile.pendingIntentMap.put(new UserHandle(10), pendingIntent);
 
@@ -698,7 +704,7 @@
                 mActivity.getSupportFragmentManager().findFragmentByTag("select_profile");
         assertThat(dialogFragment).isNotNull();
         Intent nextStartedActivity =
-                Shadows.shadowOf(RuntimeEnvironment.application).peekNextStartedActivity();
+                Shadows.shadowOf(mApplication).peekNextStartedActivity();
         assertThat(nextStartedActivity).isNull();
     }
 
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
index ecaf36f..bedfc59 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentTest.java
@@ -49,7 +49,8 @@
 import androidx.preference.PreferenceFragmentCompat;
 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.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
@@ -66,13 +67,13 @@
 import com.android.settingslib.drawer.Tile;
 
 import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
@@ -86,6 +87,10 @@
 
 @RunWith(RobolectricTestRunner.class)
 public class DashboardFragmentTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    private final Context mAppContext = ApplicationProvider.getApplicationContext();
 
     @Mock
     private FakeFeatureFactory mFakeFeatureFactory;
@@ -98,8 +103,7 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(mAppContext);
         final ActivityInfo activityInfo = new ActivityInfo();
         activityInfo.packageName = "pkg";
         activityInfo.name = "class";
@@ -120,11 +124,11 @@
         mProviderTile = new ProviderTile(providerInfo, mDashboardCategory.key, metaData);
         mDashboardCategory.addTile(mProviderTile);
 
-        mTestFragment = new TestFragment(RuntimeEnvironment.application);
+        mTestFragment = new TestFragment(mAppContext);
         when(mFakeFeatureFactory.dashboardFeatureProvider
                 .getTilesForCategory(nullable(String.class)))
                 .thenReturn(mDashboardCategory);
-        mTestFragment.onAttach(RuntimeEnvironment.application);
+        mTestFragment.onAttach(mAppContext);
         when(mContext.getPackageName()).thenReturn("TestPackage");
         mControllers = new ArrayList<>();
     }
@@ -236,7 +240,6 @@
         verify(mTestFragment.mScreen, never()).addPreference(nullable(Preference.class));
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void displayTilesAsPreference_shouldNotAddSuppressedTiles() {
@@ -298,7 +301,7 @@
         preferenceControllers.add(mockController2);
         when(mockController1.isAvailable()).thenReturn(false);
         when(mockController2.isAvailable()).thenReturn(true);
-        mTestFragment.onAttach(RuntimeEnvironment.application);
+        mTestFragment.onAttach(mAppContext);
         mTestFragment.onResume();
 
         verify(mockController1).getPreferenceKey();
@@ -392,7 +395,7 @@
     public void createPreference_isProviderTile_returnSwitchPreference() {
         final Preference pref = mTestFragment.createPreference(mProviderTile);
 
-        assertThat(pref).isInstanceOf(SwitchPreference.class);
+        assertThat(pref).isInstanceOf(SwitchPreferenceCompat.class);
     }
 
     @Test
@@ -401,7 +404,7 @@
 
         assertThat(pref).isInstanceOf(Preference.class);
         assertThat(pref).isNotInstanceOf(PrimarySwitchPreference.class);
-        assertThat(pref).isNotInstanceOf(SwitchPreference.class);
+        assertThat(pref).isNotInstanceOf(SwitchPreferenceCompat.class);
         assertThat(pref.getWidgetLayoutResource()).isEqualTo(0);
     }
 
@@ -431,7 +434,7 @@
 
         assertThat(pref).isInstanceOf(Preference.class);
         assertThat(pref).isNotInstanceOf(PrimarySwitchPreference.class);
-        assertThat(pref).isNotInstanceOf(SwitchPreference.class);
+        assertThat(pref).isNotInstanceOf(SwitchPreferenceCompat.class);
         assertThat(pref.getWidgetLayoutResource())
                 .isEqualTo(R.layout.preference_external_action_icon);
     }
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
index 9a13961..3515ff9 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectDialogTest.java
@@ -29,13 +29,13 @@
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.UserInfo;
+import android.content.pm.UserProperties;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.widget.TextView;
 
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.R;
 import com.android.settingslib.drawer.ActivityTile;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.Tile;
@@ -43,15 +43,19 @@
 import com.google.android.collect.Lists;
 
 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.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 
 @RunWith(RobolectricTestRunner.class)
 public class ProfileSelectDialogTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private static final UserHandle NORMAL_USER = new UserHandle(1111);
     private static final UserHandle REMOVED_USER = new UserHandle(2222);
@@ -67,11 +71,12 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
         when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
         final UserInfo userInfo = new UserInfo(
                 NORMAL_USER.getIdentifier(), "test_user", UserInfo.FLAG_RESTRICTED);
         when(mUserManager.getUserInfo(NORMAL_USER.getIdentifier())).thenReturn(userInfo);
+        final UserProperties userProperties = new UserProperties.Builder().build();
+        when(mUserManager.getUserProperties(NORMAL_USER)).thenReturn(userProperties);
         mActivityInfo = new ActivityInfo();
         mActivityInfo.packageName = "pkg";
         mActivityInfo.name = "cls";
@@ -144,14 +149,15 @@
 
     @Test
     public void createDialog_showsCorrectTitle() {
-        mContext.setTheme(R.style.Theme_AppCompat);
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
 
         Dialog dialog = ProfileSelectDialog.createDialog(mContext, Lists.newArrayList(NORMAL_USER),
                 (position) -> {
                 });
         dialog.show();
 
-        TextView titleView = dialog.findViewById(R.id.topPanel).findViewById(android.R.id.title);
+        TextView titleView = dialog.findViewById(com.google.android.material.R.id.topPanel)
+                .findViewById(android.R.id.title);
         assertThat(titleView.getText().toString()).isEqualTo(
                 mContext.getText(com.android.settingslib.R.string.choose_profile).toString());
     }
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 1e19325..17e0d1c 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
@@ -17,8 +17,13 @@
 package com.android.settings.dashboard.profileselector;
 
 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 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;
@@ -28,35 +33,59 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.pm.UserInfo;
 import android.os.Bundle;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.util.ArraySet;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+import androidx.lifecycle.Lifecycle;
+import androidx.viewpager2.widget.ViewPager2;
 
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragmentTest;
+import com.android.settings.dashboard.profileselector.ProfileSelectFragment.ViewPagerAdapter;
 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.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class})
+@Config(shadows = {
+        ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ProfileSelectFragmentTest {
+    private static final String PRIMARY_USER_NAME = "primary";
+    private static final String MANAGED_USER_NAME = "managed";
+    private static final String PRIVATE_USER_NAME = "private";
 
     private Context mContext;
     private TestProfileSelectFragment mFragment;
     private FragmentActivity mActivity;
     private ShadowUserManager mUserManager;
+    @Mock private FragmentManager mFragmentManager;
+    @Mock private Lifecycle mLifecycle;
+    @Mock private FragmentTransaction mFragmentTransaction;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
     public void setUp() {
@@ -78,14 +107,52 @@
     public void getTabId_setArgumentWork_setCorrectTab() {
         final Bundle bundle = new Bundle();
         bundle.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, WORK_TAB);
+        ViewPager2 viewPager = new ViewPager2(mContext);
+        TestProfileSelectFragment profileSelectFragment = new TestProfileSelectFragment();
+        ViewPagerAdapter viewPagerAdapter =
+                new TestViewPagerAdapter(mFragmentManager, mLifecycle, profileSelectFragment);
+
+        when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
+        viewPager.setAdapter(viewPagerAdapter);
+        mFragment.setViewPager(viewPager);
+        profileSelectFragment.setViewPager(viewPager);
+        mFragmentManager.beginTransaction().add(profileSelectFragment, "tag");
 
         assertThat(mFragment.getTabId(mActivity, bundle)).isEqualTo(WORK_TAB);
     }
 
     @Test
+    public void getTabId_setArgumentPrivate_setCorrectTab() {
+        final Bundle bundle = new Bundle();
+        bundle.putInt(SettingsActivity.EXTRA_SHOW_FRAGMENT_TAB, PRIVATE_TAB);
+        ViewPager2 viewPager = new ViewPager2(mContext);
+        TestProfileSelectFragment profileSelectFragment = new TestProfileSelectFragment();
+        ViewPagerAdapter viewPagerAdapter =
+                new TestViewPagerAdapter(mFragmentManager, mLifecycle, profileSelectFragment);
+
+        when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
+        viewPager.setAdapter(viewPagerAdapter);
+        mFragment.setViewPager(viewPager);
+        profileSelectFragment.setViewPager(viewPager);
+        mFragmentManager.beginTransaction().add(profileSelectFragment, "tag");
+
+        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);
+        ViewPager2 viewPager = new ViewPager2(mContext);
+        TestProfileSelectFragment profileSelectFragment = new TestProfileSelectFragment();
+        ViewPagerAdapter viewPagerAdapter =
+                new TestViewPagerAdapter(mFragmentManager, mLifecycle, profileSelectFragment);
+
+        when(mFragmentManager.beginTransaction()).thenReturn(mFragmentTransaction);
+        viewPager.setAdapter(viewPagerAdapter);
+        mFragment.setViewPager(viewPager);
+        profileSelectFragment.setViewPager(viewPager);
+        mFragmentManager.beginTransaction().add(profileSelectFragment, "tag");
 
         assertThat(mFragment.getTabId(mActivity, bundle)).isEqualTo(PERSONAL_TAB);
     }
@@ -102,6 +169,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);
@@ -121,14 +198,170 @@
         assertThat(mFragment.getTabId(mActivity, null)).isEqualTo(WORK_TAB);
     }
 
+    @Test
+    public void testGetFragments_whenOnlyPersonal_returnsOneFragment() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mUserManager.addProfile(
+                new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new);
+        assertThat(fragments).hasLength(1);
+    }
+
+    @Test
+    public void testGetFragments_whenPrivateDisabled_returnsOneFragment() {
+        mUserManager.addProfile(
+                new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        mUserManager.addProfile(
+                new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return true;
+                    }
+                });
+        assertThat(fragments).hasLength(1);
+    }
+
+    @Test
+    public void testGetFragments_whenPrivateEnabled_returnsTwoFragments() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mUserManager.addProfile(
+                new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        mUserManager.addProfile(
+                new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                });
+        assertThat(fragments).hasLength(2);
+    }
+
+    @Test
+    public void testGetFragments_whenManagedProfile_returnsTwoFragments() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mUserManager.addProfile(
+                new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        mUserManager.addProfile(
+                new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                });
+        assertThat(fragments).hasLength(2);
+    }
+
+    @Test
+    public void testGetFragments_whenAllProfiles_returnsThreeFragments() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mUserManager.addProfile(
+                new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        mUserManager.addProfile(
+                new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
+        mUserManager.addProfile(
+                new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
+        Fragment[] fragments = ProfileSelectFragment.getFragments(
+                mContext,
+                null /* bundle */,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                TestProfileSelectFragment::new,
+                new ProfileSelectFragment.PrivateSpaceInfoProvider() {
+                    @Override
+                    public boolean isPrivateSpaceLocked(Context context) {
+                        return false;
+                    }
+                });
+        assertThat(fragments).hasLength(3);
+    }
+
+    @Test
+    public void testGetFragments_whenAvailableBundle_returnsFragmentsWithCorrectBundles() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mUserManager.addProfile(
+                new UserInfo(0, PRIMARY_USER_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        mUserManager.addProfile(
+                new UserInfo(10, MANAGED_USER_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
+        mUserManager.addProfile(
+                new UserInfo(11, PRIVATE_USER_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
+        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;
+                    }
+                });
+        assertThat(fragments).hasLength(3);
+
+        List<Integer> foundProfileTypesList = new ArrayList<>();
+        for (Fragment fragment : fragments) {
+            foundProfileTypesList.add(fragment.getArguments().getInt(EXTRA_PROFILE));
+        }
+
+        assertThat(foundProfileTypesList).hasSize(3);
+
+        Set<Integer> foundProfileTypes = new ArraySet<>(foundProfileTypesList);
+        assertThat(foundProfileTypes).containsExactly(
+                ProfileSelectFragment.ProfileType.PERSONAL,
+                ProfileSelectFragment.ProfileType.WORK,
+                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()
             };
         }
     }
+
+    static class TestViewPagerAdapter extends ViewPagerAdapter {
+        TestViewPagerAdapter(
+                @NonNull FragmentManager fragmentManager,
+                @NonNull Lifecycle lifecycle,
+                ProfileSelectFragment profileSelectFragment) {
+            super(fragmentManager, lifecycle, profileSelectFragment);
+        }
+
+        @Override
+        int getTabForPosition(int position) {
+            return position;
+        }
+    }
 }
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..22fec8f 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectLocationFragmentTest.java
@@ -16,33 +16,68 @@
 
 package com.android.settings.dashboard.profileselector;
 
+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 com.android.settings.dashboard.profileselector.ProfileSelectFragment.EXTRA_PROFILE;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.pm.UserInfo;
+
+import androidx.test.core.app.ApplicationProvider;
+
+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;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
+@Config(shadows = {
+        ShadowUserManager.class,
+})
 @RunWith(RobolectricTestRunner.class)
 public class ProfileSelectLocationFragmentTest {
+    private static final String PERSONAL_PROFILE_NAME = "personal";
+    private static final String WORK_PROFILE_NAME = "work";
+    private static final String PRIVATE_PROFILE_NAME = "private";
+    @Rule
+    public final MockitoRule rule = MockitoJUnit.rule();
 
+    private ShadowUserManager mUserManager;
     private ProfileSelectLocationFragment mProfileSelectLocationFragment;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mProfileSelectLocationFragment = new ProfileSelectLocationFragment();
+        mUserManager = ShadowUserManager.getShadow();
+        mUserManager.addProfile(
+                new UserInfo(0, PERSONAL_PROFILE_NAME, null, 0, USER_TYPE_FULL_SYSTEM));
+        mUserManager.addProfile(
+                new UserInfo(1, WORK_PROFILE_NAME, null, 0, USER_TYPE_PROFILE_MANAGED));
+        mUserManager.addProfile(
+                new UserInfo(11, PRIVATE_PROFILE_NAME, null, 0, USER_TYPE_PROFILE_PRIVATE));
+        mProfileSelectLocationFragment = spy(new ProfileSelectLocationFragment());
+        when(mProfileSelectLocationFragment.getContext()).thenReturn(
+                ApplicationProvider.getApplicationContext());
     }
 
     @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()[2].getArguments().getInt(
+                EXTRA_PROFILE, -1)).isEqualTo(ProfileSelectFragment.ProfileType.PRIVATE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java
index aa7e30a..2fb5e03 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java
@@ -32,7 +32,7 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.internal.widget.RecyclerView;
-import com.android.settingslib.R;
+import com.android.settings.R;
 
 import com.google.android.collect.Lists;
 
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java
index ad41638..7e6d314 100644
--- a/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java
@@ -91,7 +91,7 @@
         mPreference = new AppDataUsagePreference(RuntimeEnvironment.application, mAppItem,
                 50 /* percent */, mUidDetailProvider);
         final View view = LayoutInflater.from(RuntimeEnvironment.application).inflate(
-                com.android.settingslib.R.layout.preference_app, null);
+                com.android.settingslib.widget.preference.app.R.layout.preference_app, null);
         final PreferenceViewHolder preferenceViewHolder =
                 PreferenceViewHolder.createInstanceForTests(view);
         final ProgressBar progressBar = (ProgressBar) preferenceViewHolder.findViewById(
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
index 9f95712..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,14 +61,12 @@
 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;
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -80,10 +79,8 @@
 import org.robolectric.shadows.ShadowSubscriptionManager;
 import org.robolectric.util.ReflectionHelpers;
 
-import java.util.ArrayList;
 import java.util.List;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowEntityHeaderController.class, ShadowRestrictedLockUtilsInternal.class})
 public class AppDataUsageTest {
@@ -100,7 +97,6 @@
         MockitoAnnotations.initMocks(this);
 
         ShadowEntityHeaderController.setUseMock(mHeaderController);
-        when(mHeaderController.setRecyclerView(any(), any())).thenReturn(mHeaderController);
         when(mHeaderController.setUid(anyInt())).thenReturn(mHeaderController);
     }
 
@@ -112,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();
@@ -145,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();
@@ -175,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));
@@ -195,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);
@@ -224,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);
@@ -244,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
@@ -261,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);
@@ -274,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));
@@ -325,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);
@@ -481,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/BillingCycleSettingsTest.java b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
index cef5928..6067324 100644
--- a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
@@ -59,6 +59,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class BillingCycleSettingsTest {
 
     private static final int LIMIT_BYTES = 123;
diff --git a/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java
index aee91f3..205a600 100644
--- a/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/ChartDataUsagePreferenceTest.java
@@ -31,12 +31,12 @@
 
 import com.android.settings.R;
 import com.android.settings.datausage.ChartDataUsagePreference.DataUsageSummaryNode;
-import com.android.settings.utils.ActivityControllerWrapper;
+import com.android.settings.datausage.lib.NetworkCycleChartData;
+import com.android.settings.datausage.lib.NetworkUsageData;
 import com.android.settings.widget.UsageView;
-import com.android.settingslib.net.NetworkCycleChartData;
-import com.android.settingslib.net.NetworkCycleData;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -56,7 +56,7 @@
     // Test bucket end date, 22 Mar 2018 00:00:00
     private static final long TIMESTAMP_END = 1521676800000L;
 
-    private List<NetworkCycleData> mNetworkCycleData;
+    private List<NetworkUsageData> mNetworkCycleData;
     private NetworkCycleChartData mNetworkCycleChartData;
     private ChartDataUsagePreference mPreference;
     private Activity mActivity;
@@ -65,8 +65,8 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mActivity = spy((Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get());
+
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
         mPreference = new ChartDataUsagePreference(mActivity, null /* attrs */);
         LayoutInflater inflater = LayoutInflater.from(mActivity);
         View view = inflater.inflate(mPreference.getLayoutResource(), null /* root */,
@@ -80,6 +80,9 @@
         final ArgumentCaptor<SparseIntArray> pointsCaptor =
                 ArgumentCaptor.forClass(SparseIntArray.class);
         createTestNetworkData();
+        mPreference.setTime(
+                mNetworkCycleChartData.getTotal().getStartTime(),
+                mNetworkCycleChartData.getTotal().getEndTime());
         mPreference.setNetworkCycleData(mNetworkCycleChartData);
 
         mPreference.calcPoints(usageView, mNetworkCycleData.subList(0, 5));
@@ -90,12 +93,16 @@
         assertThat(points.valueAt(1)).isNotEqualTo(-1);
     }
 
+    @Ignore("b/313568482")
     @Test
     public void calcPoints_dataNotAvailableAtCycleStart_shouldIndicateStartOfData() {
         final UsageView usageView = mock(UsageView.class);
         final ArgumentCaptor<SparseIntArray> pointsCaptor =
                 ArgumentCaptor.forClass(SparseIntArray.class);
         createTestNetworkData();
+        mPreference.setTime(
+                mNetworkCycleChartData.getTotal().getStartTime(),
+                mNetworkCycleChartData.getTotal().getEndTime());
         mPreference.setNetworkCycleData(mNetworkCycleChartData);
 
         mPreference.calcPoints(usageView, mNetworkCycleData.subList(2, 7));
@@ -107,43 +114,67 @@
         assertThat(points.valueAt(1)).isEqualTo(-1);
     }
 
+    @Ignore("b/313568482")
     @Test
     public void calcPoints_shouldNotDrawPointForFutureDate() {
         final UsageView usageView = mock(UsageView.class);
         final ArgumentCaptor<SparseIntArray> pointsCaptor =
-            ArgumentCaptor.forClass(SparseIntArray.class);
+                ArgumentCaptor.forClass(SparseIntArray.class);
         final long tonight = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(12);
         mNetworkCycleData = new ArrayList<>();
         // add test usage data for last 5 days
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight - TimeUnit.DAYS.toMillis(5), tonight - TimeUnit.DAYS.toMillis(4), 743823454L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight - TimeUnit.DAYS.toMillis(4), tonight - TimeUnit.DAYS.toMillis(3), 64396L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight - TimeUnit.DAYS.toMillis(3), tonight - TimeUnit.DAYS.toMillis(2), 2832L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight - TimeUnit.DAYS.toMillis(2), tonight - TimeUnit.DAYS.toMillis(1), 83849690L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight - TimeUnit.DAYS.toMillis(1), tonight, 1883657L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight - TimeUnit.DAYS.toMillis(5),
+                tonight - TimeUnit.DAYS.toMillis(4),
+                743823454L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight - TimeUnit.DAYS.toMillis(4),
+                tonight - TimeUnit.DAYS.toMillis(3),
+                64396L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight - TimeUnit.DAYS.toMillis(3),
+                tonight - TimeUnit.DAYS.toMillis(2),
+                2832L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight - TimeUnit.DAYS.toMillis(2),
+                tonight - TimeUnit.DAYS.toMillis(1),
+                83849690L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight - TimeUnit.DAYS.toMillis(1), tonight, 1883657L));
         // add test usage data for next 5 days
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight, tonight + TimeUnit.DAYS.toMillis(1), 0L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight + TimeUnit.DAYS.toMillis(1), tonight + TimeUnit.DAYS.toMillis(2), 0L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight + TimeUnit.DAYS.toMillis(2), tonight + TimeUnit.DAYS.toMillis(3), 0L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight + TimeUnit.DAYS.toMillis(3), tonight + TimeUnit.DAYS.toMillis(4), 0L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight + TimeUnit.DAYS.toMillis(4), tonight + TimeUnit.DAYS.toMillis(5), 0L));
-        mNetworkCycleData.add(createNetworkCycleData(
-            tonight + TimeUnit.DAYS.toMillis(5), tonight + TimeUnit.DAYS.toMillis(6), 0L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight, tonight + TimeUnit.DAYS.toMillis(1), 0L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight + TimeUnit.DAYS.toMillis(1),
+                tonight + TimeUnit.DAYS.toMillis(2),
+                0L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight + TimeUnit.DAYS.toMillis(2),
+                tonight + TimeUnit.DAYS.toMillis(3),
+                0L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight + TimeUnit.DAYS.toMillis(3),
+                tonight + TimeUnit.DAYS.toMillis(4),
+                0L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight + TimeUnit.DAYS.toMillis(4),
+                tonight + TimeUnit.DAYS.toMillis(5),
+                0L));
+        mNetworkCycleData.add(new NetworkUsageData(
+                tonight + TimeUnit.DAYS.toMillis(5),
+                tonight + TimeUnit.DAYS.toMillis(6),
+                0L));
 
-        final NetworkCycleChartData.Builder builder = new NetworkCycleChartData.Builder();
-        builder.setUsageBuckets(mNetworkCycleData)
-            .setStartTime(tonight - TimeUnit.DAYS.toMillis(5))
-            .setEndTime(tonight + TimeUnit.DAYS.toMillis(6));
-        mNetworkCycleChartData = builder.build();
+        mNetworkCycleChartData = new NetworkCycleChartData(
+                new NetworkUsageData(
+                        tonight - TimeUnit.DAYS.toMillis(5),
+                        tonight + TimeUnit.DAYS.toMillis(6),
+                        0),
+                mNetworkCycleData
+        );
+        mPreference.setTime(
+                mNetworkCycleChartData.getTotal().getStartTime(),
+                mNetworkCycleChartData.getTotal().getEndTime());
         mPreference.setNetworkCycleData(mNetworkCycleChartData);
 
         mPreference.calcPoints(usageView, mNetworkCycleData);
@@ -171,6 +202,9 @@
         final TextView labelStart = (TextView) mHolder.findViewById(R.id.label_start);
         final TextView labelEnd = (TextView) mHolder.findViewById(R.id.label_end);
         createTestNetworkData();
+        mPreference.setTime(
+                mNetworkCycleChartData.getTotal().getStartTime(),
+                mNetworkCycleChartData.getTotal().getEndTime());
         mPreference.setNetworkCycleData(mNetworkCycleChartData);
 
         mPreference.onBindViewHolder(mHolder);
@@ -199,38 +233,33 @@
     private void createTestNetworkData() {
         mNetworkCycleData = new ArrayList<>();
         // create 10 arbitrary network data
-        mNetworkCycleData.add(createNetworkCycleData(1521583200000L, 1521586800000L, 743823454L));
-        mNetworkCycleData.add(createNetworkCycleData(1521586800000L, 1521590400000L, 64396L));
-        mNetworkCycleData.add(createNetworkCycleData(1521590400000L, 1521655200000L, 2832L));
-        mNetworkCycleData.add(createNetworkCycleData(1521655200000L, 1521658800000L, 83849690L));
-        mNetworkCycleData.add(createNetworkCycleData(1521658800000L, 1521662400000L, 1883657L));
-        mNetworkCycleData.add(createNetworkCycleData(1521662400000L, 1521666000000L, 705259L));
-        mNetworkCycleData.add(createNetworkCycleData(1521666000000L, 1521669600000L, 216169L));
-        mNetworkCycleData.add(createNetworkCycleData(1521669600000L, 1521673200000L, 6069175L));
-        mNetworkCycleData.add(createNetworkCycleData(1521673200000L, 1521676800000L, 120389L));
-        mNetworkCycleData.add(createNetworkCycleData(1521676800000L, 1521678800000L, 29947L));
+        mNetworkCycleData.add(new NetworkUsageData(1521583200000L, 1521586800000L, 743823454L));
+        mNetworkCycleData.add(new NetworkUsageData(1521586800000L, 1521590400000L, 64396L));
+        mNetworkCycleData.add(new NetworkUsageData(1521590400000L, 1521655200000L, 2832L));
+        mNetworkCycleData.add(new NetworkUsageData(1521655200000L, 1521658800000L, 83849690L));
+        mNetworkCycleData.add(new NetworkUsageData(1521658800000L, 1521662400000L, 1883657L));
+        mNetworkCycleData.add(new NetworkUsageData(1521662400000L, 1521666000000L, 705259L));
+        mNetworkCycleData.add(new NetworkUsageData(1521666000000L, 1521669600000L, 216169L));
+        mNetworkCycleData.add(new NetworkUsageData(1521669600000L, 1521673200000L, 6069175L));
+        mNetworkCycleData.add(new NetworkUsageData(1521673200000L, 1521676800000L, 120389L));
+        mNetworkCycleData.add(new NetworkUsageData(1521676800000L, 1521678800000L, 29947L));
 
-        final NetworkCycleChartData.Builder builder = new NetworkCycleChartData.Builder();
-        builder.setUsageBuckets(mNetworkCycleData)
-            .setStartTime(TIMESTAMP_START)
-            .setEndTime(TIMESTAMP_END);
-        mNetworkCycleChartData = builder.build();
+        mNetworkCycleChartData = new NetworkCycleChartData(
+                new NetworkUsageData(TIMESTAMP_START, TIMESTAMP_END, 0),
+                mNetworkCycleData
+        );
     }
 
     private void createSomeSamePercentageNetworkData() {
         mNetworkCycleData = new ArrayList<>();
-        mNetworkCycleData.add(createNetworkCycleData(1521583200000L, 1521586800000L, 100));//33%
-        mNetworkCycleData.add(createNetworkCycleData(1521586800000L, 1521590400000L, 1));  //33%
-        mNetworkCycleData.add(createNetworkCycleData(1521590400000L, 1521655200000L, 0));  //33%
-        mNetworkCycleData.add(createNetworkCycleData(1521655200000L, 1521658800000L, 0));  //33%
-        mNetworkCycleData.add(createNetworkCycleData(1521658800000L, 1521662400000L, 200));//99%
-        mNetworkCycleData.add(createNetworkCycleData(1521662400000L, 1521666000000L, 1));  //99%
-        mNetworkCycleData.add(createNetworkCycleData(1521666000000L, 1521669600000L, 1));  //100
-        mNetworkCycleData.add(createNetworkCycleData(1521669600000L, 1521673200000L, 0));  //100%
+        mNetworkCycleData.add(new NetworkUsageData(1521583200000L, 1521586800000L, 100)); //33%
+        mNetworkCycleData.add(new NetworkUsageData(1521586800000L, 1521590400000L, 1));   //33%
+        mNetworkCycleData.add(new NetworkUsageData(1521590400000L, 1521655200000L, 0));   //33%
+        mNetworkCycleData.add(new NetworkUsageData(1521655200000L, 1521658800000L, 0));   //33%
+        mNetworkCycleData.add(new NetworkUsageData(1521658800000L, 1521662400000L, 200)); //99%
+        mNetworkCycleData.add(new NetworkUsageData(1521662400000L, 1521666000000L, 1));   //99%
+        mNetworkCycleData.add(new NetworkUsageData(1521666000000L, 1521669600000L, 1));   //100
+        mNetworkCycleData.add(new NetworkUsageData(1521669600000L, 1521673200000L, 0));   //100%
     }
 
-    private NetworkCycleData createNetworkCycleData(long start, long end, long usage) {
-        return new NetworkCycleData.Builder()
-            .setStartTime(start).setEndTime(end).setTotalUsage(usage).build();
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
deleted file mode 100644
index 762fbf8..0000000
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java
+++ /dev/null
@@ -1,290 +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.datausage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Activity;
-import android.content.Intent;
-import android.net.ConnectivityManager;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.FrameLayout;
-import android.widget.Spinner;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.loader.app.LoaderManager;
-import androidx.preference.PreferenceManager;
-
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.network.MobileDataEnabledListener;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.widget.LoadingViewController;
-import com.android.settingslib.AppItem;
-import com.android.settingslib.NetworkPolicyEditor;
-import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin;
-import com.android.settingslib.net.NetworkCycleChartData;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.android.controller.ActivityController;
-import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Ignore
-@RunWith(RobolectricTestRunner.class)
-public class DataUsageListTest {
-
-    @Mock
-    private MobileDataEnabledListener mMobileDataEnabledListener;
-    @Mock
-    private TemplatePreference.NetworkServices mNetworkServices;
-    @Mock
-    private LoaderManager mLoaderManager;
-    @Mock
-    private UserManager mUserManager;
-
-    private Activity mActivity;
-    private DataUsageList mDataUsageList;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        FakeFeatureFactory.setupForTest();
-        final ActivityController<Activity> mActivityController =
-                Robolectric.buildActivity(Activity.class);
-        mActivity = spy(mActivityController.get());
-        mNetworkServices.mPolicyEditor = mock(NetworkPolicyEditor.class);
-        mDataUsageList = spy(DataUsageList.class);
-        mDataUsageList.mDataStateListener = mMobileDataEnabledListener;
-
-        doReturn(mActivity).when(mDataUsageList).getContext();
-        doReturn(mUserManager).when(mActivity).getSystemService(UserManager.class);
-        doReturn(false).when(mUserManager).isGuestUser();
-        ReflectionHelpers.setField(mDataUsageList, "mDataStateListener",
-                mMobileDataEnabledListener);
-        ReflectionHelpers.setField(mDataUsageList, "services", mNetworkServices);
-        doReturn(mLoaderManager).when(mDataUsageList).getLoaderManager();
-        mDataUsageList.mLoadingViewController = mock(LoadingViewController.class);
-        doNothing().when(mDataUsageList).updateSubscriptionInfoEntity();
-    }
-
-    @Test
-    @Config(shadows = ShadowDataUsageBaseFragment.class)
-    public void onCreate_isNotGuestUser_shouldNotFinish() {
-        doReturn(false).when(mUserManager).isGuestUser();
-        doNothing().when(mDataUsageList).processArgument();
-
-        mDataUsageList.onCreate(null);
-
-        verify(mDataUsageList, never()).finish();
-    }
-
-    @Test
-    @Config(shadows = ShadowDataUsageBaseFragment.class)
-    public void onCreate_isGuestUser_shouldFinish() {
-        doReturn(true).when(mUserManager).isGuestUser();
-
-        mDataUsageList.onCreate(null);
-
-        verify(mDataUsageList).finish();
-    }
-
-    @Test
-    public void resume_shouldListenDataStateChange() {
-        ReflectionHelpers.setField(
-                mDataUsageList, "mVisibilityLoggerMixin", mock(VisibilityLoggerMixin.class));
-        ReflectionHelpers.setField(
-                mDataUsageList, "mPreferenceManager", mock(PreferenceManager.class));
-
-        mDataUsageList.onResume();
-
-        verify(mMobileDataEnabledListener).start(anyInt());
-
-        mDataUsageList.onPause();
-    }
-
-    @Test
-    public void pause_shouldUnlistenDataStateChange() {
-        ReflectionHelpers.setField(
-                mDataUsageList, "mVisibilityLoggerMixin", mock(VisibilityLoggerMixin.class));
-        ReflectionHelpers.setField(
-                mDataUsageList, "mPreferenceManager", mock(PreferenceManager.class));
-
-        mDataUsageList.onResume();
-        mDataUsageList.onPause();
-
-        verify(mMobileDataEnabledListener).stop();
-    }
-
-    @Test
-    public void processArgument_shouldGetTemplateFromArgument() {
-        final Bundle args = new Bundle();
-        args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE, mock(NetworkTemplate.class));
-        args.putInt(DataUsageList.EXTRA_SUB_ID, 3);
-        mDataUsageList.setArguments(args);
-
-        mDataUsageList.processArgument();
-
-        assertThat(mDataUsageList.mTemplate).isNotNull();
-        assertThat(mDataUsageList.mSubId).isEqualTo(3);
-    }
-
-    @Test
-    public void processArgument_shouldGetNetworkTypeFromArgument() {
-        final Bundle args = new Bundle();
-        args.putInt(DataUsageList.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_WIFI);
-        args.putInt(DataUsageList.EXTRA_SUB_ID, 3);
-        mDataUsageList.setArguments(args);
-
-        mDataUsageList.processArgument();
-
-        assertThat(mDataUsageList.mNetworkType).isEqualTo(ConnectivityManager.TYPE_WIFI);
-    }
-
-    @Test
-    public void processArgument_fromIntent_shouldGetTemplateFromIntent() {
-        final FragmentActivity activity = mock(FragmentActivity.class);
-        final Intent intent = new Intent();
-        intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mock(NetworkTemplate.class));
-        intent.putExtra(Settings.EXTRA_SUB_ID, 3);
-        when(activity.getIntent()).thenReturn(intent);
-        doReturn(activity).when(mDataUsageList).getActivity();
-
-        mDataUsageList.processArgument();
-
-        assertThat(mDataUsageList.mTemplate).isNotNull();
-        assertThat(mDataUsageList.mSubId).isEqualTo(3);
-    }
-
-    @Test
-    public void startAppDataUsage_shouldAddCyclesInfoToLaunchArguments() {
-        final long startTime = 1521583200000L;
-        final long endTime = 1521676800000L;
-        final List<NetworkCycleChartData> data = new ArrayList<>();
-        final NetworkCycleChartData.Builder builder = new NetworkCycleChartData.Builder();
-        builder.setStartTime(startTime)
-                .setEndTime(endTime);
-        data.add(builder.build());
-        ReflectionHelpers.setField(mDataUsageList, "mCycleData", data);
-        final Spinner spinner = mock(Spinner.class);
-        when(spinner.getSelectedItemPosition()).thenReturn(0);
-        ReflectionHelpers.setField(mDataUsageList, "mCycleSpinner", spinner);
-        final ArgumentCaptor<Intent> intent = ArgumentCaptor.forClass(Intent.class);
-
-        mDataUsageList.startAppDataUsage(new AppItem());
-
-        verify(mActivity).startActivity(intent.capture());
-        final Bundle arguments =
-                intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
-        assertThat(arguments.getLong(AppDataUsage.ARG_SELECTED_CYCLE)).isEqualTo(endTime);
-        final ArrayList<Long> cycles =
-                (ArrayList) arguments.getSerializable(AppDataUsage.ARG_NETWORK_CYCLES);
-        assertThat(cycles).hasSize(2);
-        assertThat(cycles.get(0)).isEqualTo(endTime);
-        assertThat(cycles.get(1)).isEqualTo(startTime);
-    }
-
-    @Test
-    public void onViewCreated_shouldHideCycleSpinner() {
-        final View view = new View(mActivity);
-        final View header = getHeader();
-        final Spinner spinner = getSpinner(header);
-        spinner.setVisibility(View.VISIBLE);
-        doReturn(header).when(mDataUsageList).setPinnedHeaderView(anyInt());
-        doReturn(view).when(mDataUsageList).getView();
-
-        mDataUsageList.onViewCreated(view, null);
-
-        assertThat(spinner.getVisibility()).isEqualTo(View.GONE);
-    }
-
-    @Test
-    public void onLoadFinished_networkCycleDataCallback_shouldShowCycleSpinner() {
-        final Spinner spinner = getSpinner(getHeader());
-        spinner.setVisibility(View.INVISIBLE);
-        mDataUsageList.mCycleSpinner = spinner;
-        assertThat(spinner.getVisibility()).isEqualTo(View.INVISIBLE);
-        doNothing().when(mDataUsageList).updatePolicy();
-
-        mDataUsageList.mNetworkCycleDataCallbacks.onLoadFinished(null, null);
-
-        assertThat(spinner.getVisibility()).isEqualTo(View.VISIBLE);
-    }
-
-    @Test
-    public void onPause_shouldDestroyLoaders() {
-        mDataUsageList.onPause();
-
-        verify(mLoaderManager).destroyLoader(DataUsageList.LOADER_CHART_DATA);
-        verify(mLoaderManager).destroyLoader(DataUsageList.LOADER_SUMMARY);
-    }
-
-    private View getHeader() {
-        final View rootView = LayoutInflater.from(mActivity)
-                .inflate(R.layout.preference_list_fragment, null, false);
-        final FrameLayout pinnedHeader = rootView.findViewById(R.id.pinned_header);
-        final View header = mActivity.getLayoutInflater()
-                .inflate(R.layout.apps_filter_spinner, pinnedHeader, false);
-
-        return header;
-    }
-
-    private Spinner getSpinner(View header) {
-        final Spinner spinner = header.findViewById(R.id.filter_spinner);
-        return spinner;
-    }
-
-    @Implements(DataUsageBaseFragment.class)
-    public static class ShadowDataUsageBaseFragment {
-        @Implementation
-        public void onCreate(Bundle icicle) {
-            // do nothing
-        }
-
-        @Implementation
-        protected boolean isBandwidthControlEnabled() {
-            return true;
-        }
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java
index 02f683a..4db2fe0 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java
@@ -61,7 +61,7 @@
 
         mPreference.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE)
                 .setMeteredness(NetworkStats.METERED_YES).build(),
-                5 /* subId */, null /* services */);
+                5 /* subId */);
 
         verify(mPreference).setEnabled(false);
         verify(mPreference).setIntent(null);
@@ -73,7 +73,7 @@
 
         mPreference.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE)
                 .setMeteredness(NetworkStats.METERED_YES).build(),
-                5 /* subId */, null /* services */);
+                5 /* subId */);
 
         verify(mPreference, never()).setEnabled(false);
         verify(mPreference).setIntent(any(Intent.class));
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
deleted file mode 100644
index 71d5d7e..0000000
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ /dev/null
@@ -1,419 +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.datausage;
-
-import static android.content.pm.PackageManager.FEATURE_WIFI;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.net.NetworkTemplate;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.SubscriptionPlan;
-import android.telephony.TelephonyManager;
-import android.util.RecurrenceRule;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.NetworkPolicyEditor;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.net.DataUsageController;
-
-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.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import java.time.Instant;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
-public class DataUsageSummaryPreferenceControllerTest {
-
-    private static final long UPDATE_BACKOFF_MS = TimeUnit.MINUTES.toMillis(13);
-    private static final long CYCLE_BACKOFF_MS = TimeUnit.DAYS.toMillis(6);
-    private static final long CYCLE_LENGTH_MS = TimeUnit.DAYS.toMillis(30);
-    private static final long USAGE1 =  373 * BillingCycleSettings.MIB_IN_BYTES;
-    private static final long LIMIT1 = BillingCycleSettings.GIB_IN_BYTES;
-    private static final String CARRIER_NAME = "z-mobile";
-    private static final String PERIOD = "Feb";
-
-    @Mock
-    private DataUsageController mDataUsageController;
-    @Mock
-    private DataUsageSummaryPreference mSummaryPreference;
-    @Mock
-    private NetworkPolicyEditor mPolicyEditor;
-    @Mock
-    private NetworkTemplate mNetworkTemplate;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo;
-    @Mock
-    private SubscriptionPlan mSubscriptionPlan;
-    @Mock
-    private Lifecycle mLifecycle;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private EntityHeaderController mHeaderController;
-    @Mock
-    private PreferenceFragmentCompat mPreferenceFragment;
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private PackageManager mPm;
-
-    private DataUsageInfoController mDataInfoController;
-
-    private FakeFeatureFactory mFactory;
-    private FragmentActivity mActivity;
-    private Context mContext;
-    private DataUsageSummaryPreferenceController mController;
-    private int mDefaultSubscriptionId;
-    private List<SubscriptionPlan> mSubscriptionPlans;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-
-        doReturn("%1$s %2%s").when(mContext)
-                .getString(com.android.internal.R.string.fileSizeSuffix);
-
-        mDefaultSubscriptionId = 1234;
-        mSubscriptionPlans = new ArrayList<SubscriptionPlan>();
-
-        mFactory = FakeFeatureFactory.setupForTest();
-        when(mFactory.metricsFeatureProvider.getMetricsCategory(any(Object.class)))
-                .thenReturn(MetricsProto.MetricsEvent.SETTINGS_APP_NOTIF_CATEGORY);
-        ShadowEntityHeaderController.setUseMock(mHeaderController);
-
-        mDataInfoController = spy(new DataUsageInfoController());
-        doReturn(-1L).when(mDataInfoController).getSummaryLimit(any());
-
-        mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
-        doReturn(mTelephonyManager).when(mActivity).getSystemService(TelephonyManager.class);
-        doReturn(mTelephonyManager).when(mTelephonyManager)
-                .createForSubscriptionId(mDefaultSubscriptionId);
-        doReturn(mPm).when(mActivity).getPackageManager();
-        doReturn(false).when(mPm).hasSystemFeature(eq(FEATURE_WIFI));
-        doReturn(TelephonyManager.SIM_STATE_READY).when(mTelephonyManager).getSimState();
-
-        mController = spy(new DataUsageSummaryPreferenceController(
-                mDataUsageController,
-                mDataInfoController,
-                mNetworkTemplate,
-                mPolicyEditor,
-                R.string.cell_data_template,
-                mActivity, null, null, null, mDefaultSubscriptionId));
-        doReturn(null).when(mController).getSubscriptionInfo(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        doReturn(null).when(mController).getSubscriptionPlans(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
-        doReturn(CARRIER_NAME).when(mSubscriptionInfo).getCarrierName();
-        doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(mDefaultSubscriptionId);
-        doReturn(mSubscriptionPlans).when(mController).getSubscriptionPlans(mDefaultSubscriptionId);
-    }
-
-    @After
-    public void tearDown() {
-        ShadowEntityHeaderController.reset();
-    }
-
-    @Test
-    public void testSummaryUpdate_onePlan_basic() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-
-        final Intent intent = new Intent();
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS);
-        createTestDataPlan(info.cycleStart, info.cycleEnd);
-        doReturn(intent).when(mController).createManageSubscriptionIntent(mDefaultSubscriptionId);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("512 MB data warning / 1.00 GB data limit");
-
-        // TODO (b/170330084): return intent instead of null for mSummaryPreference
-        verify(mSummaryPreference).setUsageInfo((info.cycleEnd / 1000) * 1000,
-                now - UPDATE_BACKOFF_MS,
-                CARRIER_NAME, 1 /* numPlans */, null /* launchIntent */);
-        verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
-                false /* isSingleWifi */);
-    }
-
-    @Test
-    public void testSummaryUpdate_noPlan_basic() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-
-        final Intent intent = new Intent();
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("512 MB data warning / 1.00 GB data limit");
-
-        verify(mSummaryPreference).setUsageInfo(
-                info.cycleEnd,
-                -1L /* snapshotTime */,
-                CARRIER_NAME,
-                0 /* numPlans */,
-                null /* launchIntent */);
-        verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
-                false /* isSingleWifi */);
-    }
-
-    @Test
-    public void testSummaryUpdate_noCarrier_basic() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        doReturn(null).when(mSubscriptionInfo).getCarrierName();
-        setupTestDataUsage(LIMIT1, USAGE1, -1L /* snapshotTime */);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("512 MB data warning / 1.00 GB data limit");
-
-        verify(mSummaryPreference).setUsageInfo(
-                info.cycleEnd,
-                -1L /* snapshotTime */,
-                null /* carrierName */,
-                0 /* numPlans */,
-                null /* launchIntent */);
-        verify(mSummaryPreference).setChartEnabled(true);
-        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
-                false /* isSingleWifi */);
-    }
-
-    @Test
-    public void testSummaryUpdate_noPlanData_basic() {
-        final long now = System.currentTimeMillis();
-
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        doReturn(null).when(mSubscriptionInfo).getCarrierName();
-        setupTestDataUsage(-1L /* dataPlanSize */, USAGE1, -1L /* snapshotTime */);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("512 MB data warning / 1.00 GB data limit");
-        verify(mSummaryPreference).setUsageInfo(
-                info.cycleEnd,
-                -1L /* snapshotTime */,
-                null /* carrierName */,
-                0 /* numPlans */,
-                null /* launchIntent */);
-        verify(mSummaryPreference).setChartEnabled(false);
-        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
-                false /* isSingleWifi */);
-    }
-
-    @Test
-    public void testSummaryUpdate_noLimitNoWarning() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-        info.warningLevel = 0L;
-        info.limitLevel = 0L;
-
-        final Intent intent = new Intent();
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS);
-
-        mController.updateState(mSummaryPreference);
-        verify(mSummaryPreference).setLimitInfo(null);
-    }
-
-    @Test
-    public void testSummaryUpdate_warningOnly() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-        info.warningLevel = BillingCycleSettings.MIB_IN_BYTES;
-        info.limitLevel = 0L;
-
-        final Intent intent = new Intent();
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("1.00 MB data warning");
-    }
-
-    @Test
-    public void testSummaryUpdate_limitOnly() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-        info.warningLevel = 0L;
-        info.limitLevel = BillingCycleSettings.MIB_IN_BYTES;
-
-        final Intent intent = new Intent();
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("1.00 MB data limit");
-    }
-
-    @Test
-    public void testSummaryUpdate_limitAndWarning() {
-        final long now = System.currentTimeMillis();
-        final DataUsageController.DataUsageInfo info = createTestDataUsageInfo(now);
-        info.warningLevel = BillingCycleSettings.MIB_IN_BYTES;
-        info.limitLevel = BillingCycleSettings.MIB_IN_BYTES;
-
-        final Intent intent = new Intent();
-
-        doReturn(info).when(mDataUsageController).getDataUsageInfo(any());
-        setupTestDataUsage(LIMIT1, USAGE1, now - UPDATE_BACKOFF_MS);
-
-        mController.updateState(mSummaryPreference);
-
-        ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
-        verify(mSummaryPreference).setLimitInfo(captor.capture());
-        CharSequence value = captor.getValue();
-        assertThat(value.toString()).isEqualTo("1.00 MB data warning / 1.00 MB data limit");
-        verify(mSummaryPreference).setWifiMode(false /* isWifiMode */, null /* usagePeriod */,
-                false /* isSingleWifi */);
-    }
-
-    @Test
-    public void testMobileData_preferenceAvailable() {
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void testMobileData_noSimWifi_preferenceDisabled() {
-        final int subscriptionId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
-        mController.init(subscriptionId);
-        mController.mDataUsageController = mDataUsageController;
-        doReturn(true).when(mPm).hasSystemFeature(eq(FEATURE_WIFI));
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @Test
-    public void testMobileData_entityHeaderSet() {
-        final RecyclerView recyclerView = new RecyclerView(mActivity);
-
-        mController = spy(new DataUsageSummaryPreferenceController(
-                mDataUsageController,
-                mDataInfoController,
-                mNetworkTemplate,
-                mPolicyEditor,
-                R.string.cell_data_template,
-                mActivity, mLifecycle, mHeaderController, mPreferenceFragment,
-                mDefaultSubscriptionId));
-
-        when(mPreferenceFragment.getListView()).thenReturn(recyclerView);
-
-        mController.onStart();
-
-        verify(mHeaderController)
-                .setRecyclerView(any(RecyclerView.class), any(Lifecycle.class));
-    }
-
-    private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) {
-        DataUsageController.DataUsageInfo info = new DataUsageController.DataUsageInfo();
-        info.carrier = CARRIER_NAME;
-        info.period = PERIOD;
-        info.startDate = now;
-        info.limitLevel = LIMIT1;
-        info.warningLevel = LIMIT1 >> 1;
-        info.usageLevel = USAGE1;
-        info.cycleStart = now - CYCLE_BACKOFF_MS;
-        info.cycleEnd = info.cycleStart + CYCLE_LENGTH_MS;
-        return info;
-    }
-
-    private void setupTestDataUsage(long dataPlanSize, long dataUsageSize, long snapshotTime) {
-        doReturn(dataPlanSize).when(mSubscriptionPlan).getDataLimitBytes();
-        doReturn(dataUsageSize).when(mSubscriptionPlan).getDataUsageBytes();
-        doReturn(snapshotTime).when(mSubscriptionPlan).getDataUsageTime();
-
-        doReturn(dataPlanSize).when(mDataInfoController).getSummaryLimit(any());
-    }
-
-    private void createTestDataPlan(long startTime, long endTime) {
-        final RecurrenceRule recurrenceRule = new RecurrenceRule(
-                Instant.ofEpochMilli(startTime).atZone(ZoneId.systemDefault()),
-                Instant.ofEpochMilli(endTime).atZone(ZoneId.systemDefault()),
-                null);
-        doReturn(recurrenceRule).when(mSubscriptionPlan).getCycleRule();
-        mSubscriptionPlans.add(mSubscriptionPlan);
-    }
-}
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/datausage/UnrestrictedDataAccessPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceControllerTest.java
index 84dc739..8aa2e5a 100644
--- a/tests/robotests/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/UnrestrictedDataAccessPreferenceControllerTest.java
@@ -37,7 +37,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
 import com.android.settings.applications.AppStateBaseBridge;
 import com.android.settings.datausage.AppStateDataUsageBridge.DataUsageState;
 import com.android.settings.testutils.FakeFeatureFactory;
@@ -141,7 +140,8 @@
             } else if (testPkg2.equals(entry.info.packageName)) {
                 assertThat(preference.isDisabledByAdmin()).isTrue();
                 assertThat(preference.getSummary()).isEqualTo(
-                        mContext.getString(R.string.disabled_by_admin));
+                        mContext.getString(
+                                com.android.settingslib.widget.restricted.R.string.disabled_by_admin));
             }
             assertThat(preference.isChecked()).isFalse();
             preference.performClick();
diff --git a/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java
deleted file mode 100644
index 711f6d7..0000000
--- a/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java
+++ /dev/null
@@ -1,94 +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.datausage;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-import android.net.NetworkPolicyManager;
-import android.telephony.TelephonyManager;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.net.DataUsageController;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-import org.robolectric.RobolectricTestRunner;
-
-import java.util.HashSet;
-import java.util.Set;
-
-@RunWith(RobolectricTestRunner.class)
-public class WifiDataUsageSummaryPreferenceControllerTest {
-
-    @Rule
-    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-    @Spy
-    Context mContext = ApplicationProvider.getApplicationContext();
-    @Mock
-    FragmentActivity mActivity;
-    @Mock
-    Lifecycle mLifecycle;
-    @Mock
-    TelephonyManager mTelephonyManager;
-    @Mock
-    NetworkPolicyManager mNetworkPolicyManager;
-    @Mock
-    DataUsageSummaryPreference mSummaryPreference;
-    @Mock
-    DataUsageController mDataUsageController;
-    @Mock
-    DataUsageController.DataUsageInfo mDataUsageInfo;
-
-    WifiDataUsageSummaryPreferenceController mController;
-    Set<String> mAllNetworkKeys = new HashSet<>();
-
-    @Before
-    public void setUp() {
-        doReturn(mContext.getResources()).when(mActivity).getResources();
-        doReturn(mTelephonyManager).when(mActivity).getSystemService(TelephonyManager.class);
-        doReturn(mNetworkPolicyManager).when(mActivity)
-                .getSystemService(NetworkPolicyManager.class);
-        doNothing().when(mSummaryPreference).setWifiMode(anyBoolean(), anyString(), anyBoolean());
-        doReturn(mDataUsageInfo).when(mDataUsageController).getDataUsageInfo(any());
-
-        mController = spy(new WifiDataUsageSummaryPreferenceController(mActivity, mLifecycle, null,
-                mAllNetworkKeys));
-        doReturn(mDataUsageController).when(mController).createDataUsageController(any());
-    }
-
-    @Test
-    public void updateState_nullOfDataUsageController_shouldNotCrash() {
-        mController.mDataUsageController = null;
-
-        mController.updateState(mSummaryPreference);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/datausage/lib/DataUsageLibTest.java b/tests/robotests/src/com/android/settings/datausage/lib/DataUsageLibTest.java
deleted file mode 100644
index fccef4f..0000000
--- a/tests/robotests/src/com/android/settings/datausage/lib/DataUsageLibTest.java
+++ /dev/null
@@ -1,116 +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.lib;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.NetworkTemplate;
-import android.os.ParcelUuid;
-import android.os.RemoteException;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-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 org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class DataUsageLibTest {
-
-    private static final int SUB_ID = 1;
-    private static final int SUB_ID_2 = 2;
-    private static final String SUBSCRIBER_ID = "Test Subscriber";
-    private static final String SUBSCRIBER_ID_2 = "Test Subscriber 2";
-
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private SubscriptionInfo mInfo1;
-    @Mock
-    private SubscriptionInfo mInfo2;
-    @Mock
-    private ParcelUuid mParcelUuid;
-    private Context mContext;
-    private List<SubscriptionInfo> mInfos;
-
-    @Before
-    public void setUp() throws RemoteException {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(RuntimeEnvironment.application);
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
-        when(mTelephonyManager.getSubscriberId(SUB_ID)).thenReturn(SUBSCRIBER_ID);
-        when(mTelephonyManager.getSubscriberId(SUB_ID_2)).thenReturn(SUBSCRIBER_ID_2);
-        when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
-        when(mSubscriptionManager.isActiveSubscriptionId(anyInt())).thenReturn(true);
-    }
-
-    @Test
-    @Ignore
-    public void getMobileTemplate_infoNull_returnMobileAll() {
-        when(mSubscriptionManager.isActiveSubscriptionId(SUB_ID)).thenReturn(false);
-
-        final NetworkTemplate networkTemplate = DataUsageLib.getMobileTemplate(mContext, SUB_ID);
-        assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID)).isTrue();
-        assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID_2)).isFalse();
-    }
-
-    @Test
-    @Ignore
-    public void getMobileTemplate_groupUuidNull_returnMobileAll() {
-        when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(mInfo1);
-        when(mInfo1.getGroupUuid()).thenReturn(null);
-        when(mTelephonyManager.getMergedImsisFromGroup())
-                .thenReturn(new String[] {SUBSCRIBER_ID});
-
-        final NetworkTemplate networkTemplate = DataUsageLib.getMobileTemplate(mContext, SUB_ID);
-        assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID)).isTrue();
-        assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID_2)).isFalse();
-    }
-
-    @Test
-    @Ignore
-    public void getMobileTemplate_groupUuidExist_returnMobileMerged() {
-        when(mSubscriptionManager.getActiveSubscriptionInfo(SUB_ID)).thenReturn(mInfo1);
-        when(mInfo1.getGroupUuid()).thenReturn(mParcelUuid);
-        // In some rare cases (e.g. b/243015487), merged subscriberId list might contain
-        // duplicated items. The implementation should perform deduplication.
-        when(mTelephonyManager.getMergedImsisFromGroup())
-                .thenReturn(new String[] {SUBSCRIBER_ID, SUBSCRIBER_ID, SUBSCRIBER_ID_2});
-
-        final NetworkTemplate networkTemplate = DataUsageLib.getMobileTemplate(mContext, SUB_ID);
-        assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID)).isTrue();
-        assertThat(networkTemplate.getSubscriberIds().contains(SUBSCRIBER_ID_2)).isTrue();
-        assertThat(networkTemplate.getSubscriberIds().size() == 2).isTrue();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java
index 183858e..f9b566e 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeFormatPreferenceControllerTest.java
@@ -53,13 +53,13 @@
         MockitoAnnotations.initMocks(this);
         mApplication = ShadowApplication.getInstance();
         mContext = RuntimeEnvironment.application;
+        mController = new TestAutoTimeFormatPreferenceController(mContext, "test_key");
+        mPreference = new SwitchPreference(mContext);
+        mPreference.setKey("test_key");
     }
 
     @Test
     public void updateState_24HourSet_shouldCheckPreference() {
-        mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
         Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
                 TimeFormatPreferenceController.HOURS_24);
 
@@ -70,9 +70,6 @@
 
     @Test
     public void updateState_12HourSet_shouldCheckPreference() {
-        mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
         Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
                 TimeFormatPreferenceController.HOURS_12);
 
@@ -83,9 +80,6 @@
 
     @Test
     public void updateState_autoSet_shouldNotCheckPreference() {
-        mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
         Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, null);
 
         mController.updateState(mPreference);
@@ -95,14 +89,7 @@
 
     @Test
     public void updatePreference_autoSet_shouldSendIntent_12HourLocale() {
-        mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
-        mPreference.setChecked(false);
-
-        boolean result = mController.handlePreferenceTreeClick(mPreference);
-
-        assertThat(result).isTrue();
+        mController.setChecked(false);
 
         List<Intent> intentsFired = mApplication.getBroadcastIntents();
         assertThat(intentsFired.size()).isEqualTo(1);
@@ -114,15 +101,9 @@
 
     @Test
     public void updatePreference_autoSet_shouldSendIntent_24HourLocale() {
-        mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
-        mPreference.setChecked(false);
-
         mController.setIs24HourLocale(true);
-        boolean result = mController.handlePreferenceTreeClick(mPreference);
 
-        assertThat(result).isTrue();
+        mController.setChecked(false);
 
         List<Intent> intentsFired = mApplication.getBroadcastIntents();
         assertThat(intentsFired.size()).isEqualTo(1);
@@ -134,15 +115,9 @@
 
     @Test
     public void updatePreference_24HourSet_shouldSendIntent() {
-        mController = new TestAutoTimeFormatPreferenceController(mContext, mCallback);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
-        mPreference.setChecked(true);
-
         mController.setIs24HourLocale(false);
-        boolean result = mController.handlePreferenceTreeClick(mPreference);
 
-        assertThat(result).isTrue();
+        mController.setChecked(true);
 
         List<Intent> intentsFired = mApplication.getBroadcastIntents();
         assertThat(intentsFired.size()).isEqualTo(1);
@@ -161,9 +136,8 @@
 
         private boolean is24HourLocale = false;
 
-        private TestAutoTimeFormatPreferenceController(Context context,
-              UpdateTimeAndDateCallback callback) {
-            super(context, callback);
+        TestAutoTimeFormatPreferenceController(Context context, String preferenceKey) {
+            super(context, preferenceKey);
         }
 
         void setIs24HourLocale(boolean value) {
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
index 022f5fe..9ac318a 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimePreferenceControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.datetime;
 
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
@@ -59,7 +61,8 @@
         mPreference = new Preference(mContext);
         when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
 
-        mController = new AutoTimePreferenceController(mContext, mCallback);
+        mController = new AutoTimePreferenceController(mContext, "test_key");
+        mController.setDateAndTimeCallback(mCallback);
     }
 
     @Test
@@ -68,7 +71,7 @@
                 /* autoSupported= */false, /* autoEnabled= */false);
         when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
@@ -81,24 +84,23 @@
     }
 
     @Test
-    public void testIsEnabled_shouldReadFromTimeManagerConfig() {
-        {
-            // Disabled
-            TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
-                    /* autoSupported= */true, /* autoEnabled= */false);
-            when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
+    public void isEnabled_autoEnabledIsFalse_shouldReadFromTimeManagerConfig() {
+        // Disabled
+        TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+                /* autoSupported= */true, /* autoEnabled= */false);
+        when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-            assertThat(mController.isEnabled()).isFalse();
-        }
+        assertThat(mController.isEnabled()).isFalse();
+    }
 
-        {
-            // Enabled
-            TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
-                    /* autoSupported= */true, /* autoEnabled= */true);
-            when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
+    @Test
+    public void isEnabled_autoEnabledIsTrue_shouldReadFromTimeManagerConfig() {
+        // Enabled
+        TimeCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+                /* autoSupported= */true, /* autoEnabled= */true);
+        when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-            assertThat(mController.isEnabled()).isTrue();
-        }
+        assertThat(mController.isEnabled()).isTrue();
     }
 
     @Test
@@ -118,10 +120,10 @@
         verify(mTimeManager).updateTimeConfiguration(timeConfiguration);
 
         // Update the mTimeManager mock so that it now returns the expected updated config.
-        TimeCapabilitiesAndConfig capabilitiesAndConfigAfterUpdate =
-                createCapabilitiesAndConfig(/* autoSupported= */true, /* autoEnabled= */true);
-        when(mTimeManager.getTimeCapabilitiesAndConfig())
-                .thenReturn(capabilitiesAndConfigAfterUpdate);
+        TimeCapabilitiesAndConfig capabilitiesAndConfigAfterUpdate = createCapabilitiesAndConfig(
+                /* autoSupported= */true, /* autoEnabled= */true);
+        when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(
+                capabilitiesAndConfigAfterUpdate);
 
         assertThat(mController.isEnabled()).isTrue();
     }
@@ -145,14 +147,14 @@
         // Update the mTimeManager mock so that it now returns the expected updated config.
         TimeCapabilitiesAndConfig capabilitiesAndConfigAfterUpdate =
                 createCapabilitiesAndConfig(/* autoSupported= */true, /* autoEnabled= */false);
-        when(mTimeManager.getTimeCapabilitiesAndConfig())
-                .thenReturn(capabilitiesAndConfigAfterUpdate);
+        when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(
+                capabilitiesAndConfigAfterUpdate);
 
         assertThat(mController.isEnabled()).isFalse();
     }
 
-    private static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(
-            boolean autoSupported, boolean autoEnabled) {
+    private static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(boolean autoSupported,
+            boolean autoEnabled) {
         int configureAutoDetectionEnabledCapability =
                 autoSupported ? Capabilities.CAPABILITY_POSSESSED
                         : Capabilities.CAPABILITY_NOT_SUPPORTED;
diff --git a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
index 7685a5b..c2d0445 100644
--- a/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/AutoTimeZonePreferenceControllerTest.java
@@ -22,6 +22,8 @@
 import static android.app.time.LocationTimeZoneAlgorithmStatus.PROVIDER_STATUS_NOT_PRESENT;
 import static android.app.time.LocationTimeZoneAlgorithmStatus.PROVIDER_STATUS_NOT_READY;
 
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
@@ -62,6 +64,8 @@
     @Mock
     private TimeManager mTimeManager;
 
+    private AutoTimeZonePreferenceController mController;
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -70,6 +74,9 @@
         mPreference = new Preference(mContext);
 
         when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
+
+        mController = new AutoTimeZonePreferenceController(mContext, "test_key");
+        mController.setFromSUW(false);
     }
 
     @Test
@@ -78,10 +85,9 @@
                 /* autoSupported= */true, /* autoEnabled= */false);
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, true /* isFromSUW */);
+        mController.setFromSUW(true);
 
-        assertThat(controller.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
@@ -90,10 +96,9 @@
                 /* autoSupported= */true, /* autoEnabled= */false);
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, false /* isFromSUW */);
+        mController.setFromSUW(false);
 
-        assertThat(controller.isAvailable()).isTrue();
+        assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
@@ -102,10 +107,7 @@
                 /* autoSupported= */false, /* autoEnabled= */false);
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, false /* fromSUW */);
-
-        assertThat(controller.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
@@ -114,10 +116,9 @@
                 /* autoSupported= */false, /* autoEnabled= */false);
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, true /* fromSUW */);
+        mController.setFromSUW(true);
 
-        assertThat(controller.isEnabled()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
@@ -126,10 +127,9 @@
                 /* autoSupported= */false, /* autoEnabled= */true);
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, true /* fromSUW */);
+        mController.setFromSUW(true);
 
-        assertThat(controller.isEnabled()).isTrue();
+        assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
@@ -138,34 +138,27 @@
                 /* autoSupported= */false, /* autoEnabled= */false);
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, false /* fromSUW */);
-
-        assertThat(controller.isEnabled()).isFalse();
+        assertThat(mController.isEnabled()).isFalse();
     }
 
     @Test
-    public void testIsEnabled_shouldReadFromTimeManagerConfig() {
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, null /* callback */, false /* fromSUW */);
+    public void isEnabled_autoEnabledIsFalse_shouldReadFromTimeManagerConfig() {
+        // Disabled
+        TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+                /* autoSupported= */true, /* autoEnabled= */false);
+        when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        {
-            // Disabled
-            TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
-                    /* autoSupported= */true, /* autoEnabled= */false);
-            when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
+        assertThat(mController.isEnabled()).isFalse();
+    }
 
-            assertThat(controller.isEnabled()).isFalse();
-        }
+    @Test
+    public void isEnabled_autoEnabledIsTrue_shouldReadFromTimeManagerConfig() {
+        // Enabled
+        TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
+                /* autoSupported= */true, /* autoEnabled= */true);
+        when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
 
-        {
-            // Enabled
-            TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
-                    /* autoSupported= */true, /* autoEnabled= */true);
-            when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
-
-            assertThat(controller.isEnabled()).isTrue();
-        }
+        assertThat(mController.isEnabled()).isTrue();
     }
 
     @Test
@@ -175,10 +168,9 @@
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
         when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, mCallback, false /* fromSUW */);
+        mController.setTimeAndDateCallback(mCallback);
 
-        assertThat(controller.onPreferenceChange(mPreference, true)).isTrue();
+        assertThat(mController.onPreferenceChange(mPreference, true)).isTrue();
         verify(mCallback).updateTimeAndDateDisplay(mContext);
 
         // Check the service was asked to change the configuration correctly.
@@ -193,7 +185,7 @@
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig())
                 .thenReturn(capabilitiesAndConfigAfterUpdate);
 
-        assertThat(controller.isEnabled()).isTrue();
+        assertThat(mController.isEnabled()).isTrue();
     }
 
     @Test
@@ -203,10 +195,9 @@
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
         when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
 
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, mCallback, false /* fromSUW */);
+        mController.setTimeAndDateCallback(mCallback);
 
-        assertThat(controller.onPreferenceChange(mPreference, false)).isTrue();
+        assertThat(mController.onPreferenceChange(mPreference, false)).isTrue();
         verify(mCallback).updateTimeAndDateDisplay(mContext);
 
         // Check the service was asked to change the configuration correctly.
@@ -221,13 +212,12 @@
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig())
                 .thenReturn(capabilitiesAndConfigAfterUpdate);
 
-        assertThat(controller.isEnabled()).isFalse();
+        assertThat(mController.isEnabled()).isFalse();
     }
 
     @Test
     public void getSummary() {
-        AutoTimeZonePreferenceController controller = new AutoTimeZonePreferenceController(
-                mContext, mCallback, false /* fromSUW */);
+        mController.setTimeAndDateCallback(mCallback);
 
         TimeZoneCapabilitiesAndConfig capabilitiesAndConfig = createCapabilitiesAndConfig(
                 /* autoSupported= */true, /* autoEnabled= */true, /* telephonySupported= */
@@ -235,7 +225,7 @@
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
         when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
 
-        assertThat(controller.getSummary()).isEqualTo("");
+        assertThat(mController.getSummary()).isEqualTo("");
 
         capabilitiesAndConfig = createCapabilitiesAndConfig(
                 /* autoSupported= */true, /* autoEnabled= */true, /* telephonySupported= */
@@ -243,7 +233,7 @@
         when(mTimeManager.getTimeZoneCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
         when(mTimeManager.updateTimeZoneConfiguration(Mockito.any())).thenReturn(true);
 
-        assertThat(controller.getSummary()).isEqualTo(
+        assertThat(mController.getSummary()).isEqualTo(
                 mContext.getString(R.string.auto_zone_requires_location_summary));
     }
 
diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
index 76ab289..b1996a6 100644
--- a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
@@ -20,6 +20,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -43,11 +44,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 import java.util.Calendar;
 import java.util.GregorianCalendar;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class DatePreferenceControllerTest {
 
     @Mock
@@ -65,15 +70,12 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
         when(mContext.getSystemService(TimeDetector.class)).thenReturn(mTimeDetector);
         when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
         mPreference = new RestrictedPreference(RuntimeEnvironment.application);
-        mController = new DatePreferenceController(mContext, mHost);
-    }
-
-    @Test
-    public void isAlwaysAvailable() {
-        assertThat(mController.isAvailable()).isTrue();
+        mController = new DatePreferenceController(mContext, "test_key");
+        mController.setHost(mHost);
     }
 
     @Test
@@ -141,7 +143,7 @@
         assertEquals(2020, calendar.get(Calendar.YEAR));
     }
 
-    private static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(
+    static TimeCapabilitiesAndConfig createCapabilitiesAndConfig(
             boolean suggestManualAllowed) {
         int suggestManualCapability = suggestManualAllowed ? Capabilities.CAPABILITY_POSSESSED
                 : Capabilities.CAPABILITY_NOT_SUPPORTED;
diff --git a/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
index baef01c..cd89c0c 100644
--- a/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
@@ -55,8 +55,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class LocationTimeZoneDetectionPreferenceControllerTest {
     @Mock
     private TimeManager mTimeManager;
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
index 270b874..eb56fd1 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
@@ -36,8 +36,10 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class TimeChangeListenerMixinTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
index ec47a54..e1ea8f9 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeFormatPreferenceControllerTest.java
@@ -16,13 +16,15 @@
 
 package com.android.settings.datetime;
 
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
 import android.content.Intent;
 import android.provider.Settings;
 
-import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
 import org.junit.Before;
@@ -52,27 +54,30 @@
         MockitoAnnotations.initMocks(this);
         mApplication = ShadowApplication.getInstance();
         mContext = RuntimeEnvironment.application;
+        mController = new TimeFormatPreferenceController(mContext, "test_key");
+        mController.setTimeAndDateCallback(mCallback);
+        mController.setFromSUW(false);
+
+        mPreference = new SwitchPreference(mContext);
+        mPreference.setKey("test_key");
     }
 
     @Test
     public void isCalledFromSUW_NotAvailable() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, true);
+        mController.setFromSUW(true);
 
-        assertThat(mController.isAvailable()).isFalse();
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
     }
 
     @Test
     public void notCalledFromSUW_shouldBeAvailable() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
-
-        assertThat(mController.isAvailable()).isTrue();
+        Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
+                TimeFormatPreferenceController.HOURS_24);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
     public void updateState_24HourSet_shouldCheckPreference() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
         Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
                 TimeFormatPreferenceController.HOURS_24);
 
@@ -83,9 +88,6 @@
 
     @Test
     public void updateState_12HourSet_shouldNotCheckPreference() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
         Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24,
                 TimeFormatPreferenceController.HOURS_12);
 
@@ -96,10 +98,7 @@
 
     @Test
     public void updateState_autoSet_shouldNotEnablePreference() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
         Settings.System.putString(mContext.getContentResolver(), Settings.System.TIME_12_24, null);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
 
         mController.updateState(mPreference);
 
@@ -108,14 +107,7 @@
 
     @Test
     public void updatePreference_12HourSet_shouldSendIntent() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
-        mPreference.setChecked(false);
-
-        boolean result = mController.handlePreferenceTreeClick(mPreference);
-
-        assertThat(result).isTrue();
+        mController.setChecked(false);
 
         List<Intent> intentsFired = mApplication.getBroadcastIntents();
         assertThat(intentsFired.size()).isEqualTo(1);
@@ -127,14 +119,7 @@
 
     @Test
     public void updatePreference_24HourSet_shouldSendIntent() {
-        mController = new TimeFormatPreferenceController(mContext, mCallback, false);
-        mPreference = new SwitchPreference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
-        mPreference.setChecked(true);
-
-        boolean result = mController.handlePreferenceTreeClick(mPreference);
-
-        assertThat(result).isTrue();
+        mController.setChecked(true);
 
         List<Intent> intentsFired = mApplication.getBroadcastIntents();
         assertThat(intentsFired.size()).isEqualTo(1);
diff --git a/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
index 3481f80..ef0d69e 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimePreferenceControllerTest.java
@@ -18,9 +18,12 @@
 
 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.when;
 
+import android.app.time.TimeCapabilitiesAndConfig;
+import android.app.time.TimeManager;
 import android.content.Context;
 
 import com.android.settingslib.RestrictedPreference;
@@ -36,12 +39,11 @@
 @RunWith(RobolectricTestRunner.class)
 public class TimePreferenceControllerTest {
 
-    @Mock
     private Context mContext;
     @Mock
     private TimePreferenceController.TimePreferenceHost mHost;
     @Mock
-    private DatePreferenceController mDatePreferenceController;
+    private TimeManager mTimeManager;
 
     private TimePreferenceController mController;
     private RestrictedPreference mPreference;
@@ -49,13 +51,11 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mPreference = new RestrictedPreference(RuntimeEnvironment.application);
-        mController = new TimePreferenceController(mContext, mHost, mDatePreferenceController);
-    }
-
-    @Test
-    public void isAlwaysAvailable() {
-        assertThat(mController.isAvailable()).isTrue();
+        mContext = spy(RuntimeEnvironment.application);
+        when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
+        mPreference = new RestrictedPreference(mContext);
+        mController = new TimePreferenceController(mContext, "test_key");
+        mController.setHost(mHost);
     }
 
     @Test
@@ -63,7 +63,10 @@
         // Make sure not disabled by admin.
         mPreference.setDisabledByAdmin(null);
 
-        when(mDatePreferenceController.isEnabled()).thenReturn(false);
+        TimeCapabilitiesAndConfig capabilitiesAndConfig =
+                DatePreferenceControllerTest.createCapabilitiesAndConfig(/* suggestManualAllowed= */
+                        false);
+        when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
         mController.updateState(mPreference);
 
         assertThat(mPreference.isEnabled()).isFalse();
@@ -74,7 +77,10 @@
         // Make sure not disabled by admin.
         mPreference.setDisabledByAdmin(null);
 
-        when(mDatePreferenceController.isEnabled()).thenReturn(true);
+        TimeCapabilitiesAndConfig capabilitiesAndConfig =
+                DatePreferenceControllerTest.createCapabilitiesAndConfig(/* suggestManualAllowed= */
+                        true);
+        when(mTimeManager.getTimeCapabilitiesAndConfig()).thenReturn(capabilitiesAndConfig);
         mController.updateState(mPreference);
 
         assertThat(mPreference.isEnabled()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
index 10a5e5d..fec410b 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeZonePreferenceControllerTest.java
@@ -66,16 +66,11 @@
 
         mPreference = new RestrictedPreference(mContext);
 
-        mController = spy(new TimeZonePreferenceController(mContext));
+        mController = spy(new TimeZonePreferenceController(mContext, "test_key"));
         doReturn("test timezone").when(mController).getTimeZoneOffsetAndName();
     }
 
     @Test
-    public void isAlwaysAvailable() {
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    @Test
     public void updateState_suggestManualNotAllowed_shouldDisablePref() {
         // Make sure not disabled by admin.
         mPreference.setDisabledByAdmin(null);
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/BaseTimeZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/BaseTimeZonePreferenceControllerTest.java
index d952438..865c2eb 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/BaseTimeZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/BaseTimeZonePreferenceControllerTest.java
@@ -18,15 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.spy;
-
 import android.app.Activity;
 import android.content.Context;
 
 import androidx.preference.Preference;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,8 +36,7 @@
 
     @Before
     public void setUp() {
-        mActivity = spy((Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get());
+        mActivity = Robolectric.setupActivity(Activity.class);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/FixedOffsetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/FixedOffsetPreferenceControllerTest.java
index 5b6d8bd..4a6f92f 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/FixedOffsetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/FixedOffsetPreferenceControllerTest.java
@@ -23,8 +23,6 @@
 
 import androidx.preference.Preference;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,8 +36,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/RegionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/RegionPreferenceControllerTest.java
index 6689a1f..ea0be24 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/RegionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/RegionPreferenceControllerTest.java
@@ -18,14 +18,10 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.spy;
-
 import android.app.Activity;
 
 import androidx.preference.Preference;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -39,8 +35,7 @@
 
     @Before
     public void setUp() {
-        mActivity = spy((Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get());
+        mActivity = Robolectric.setupActivity(Activity.class);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java
index 69d46ea..78055cf 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java
@@ -33,7 +33,6 @@
 import com.android.settings.datetime.timezone.BaseTimeZoneAdapter.ItemViewHolder;
 import com.android.settings.datetime.timezone.RegionSearchPicker.RegionItem;
 import com.android.settings.datetime.timezone.model.TimeZoneData;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -143,8 +142,7 @@
     @Implements(Fragment.class)
     public static class ShadowFragment {
 
-        private FragmentActivity mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        private FragmentActivity mActivity = Robolectric.setupActivity(FragmentActivity.class);
 
         @Implementation
         public final FragmentActivity getActivity() {
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePreferenceControllerTest.java
index f0cb6e8..6d1bf66 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePreferenceControllerTest.java
@@ -23,8 +23,6 @@
 
 import androidx.preference.Preference;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -38,8 +36,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
     }
 
     @Test
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/AnimatorDurationScalePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AnimatorDurationScalePreferenceControllerTest.java
index 3b7ff9f..97c4f67 100644
--- a/tests/robotests/src/com/android/settings/development/AnimatorDurationScalePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/AnimatorDurationScalePreferenceControllerTest.java
@@ -16,10 +16,8 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.AnimatorDurationScalePreferenceController
-        .ANIMATOR_DURATION_SCALE_SELECTOR;
-import static com.android.settings.development.AnimatorDurationScalePreferenceController
-        .DEFAULT_VALUE;
+import static com.android.settings.development.AnimatorDurationScalePreferenceController.ANIMATOR_DURATION_SCALE_SELECTOR;
+import static com.android.settings.development.AnimatorDurationScalePreferenceController.DEFAULT_VALUE;
 
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -31,8 +29,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -71,9 +67,9 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         mListValues = mContext.getResources()
-            .getStringArray(R.array.animator_duration_scale_values);
+            .getStringArray(com.android.settingslib.R.array.animator_duration_scale_values);
         mListSummaries = mContext.getResources()
-            .getStringArray(R.array.animator_duration_scale_entries);
+            .getStringArray(com.android.settingslib.R.array.animator_duration_scale_entries);
         mController = new AnimatorDurationScalePreferenceController(mContext);
         ReflectionHelpers.setField(mController, "mWindowManager", mWindowManager);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/BackgroundProcessLimitPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BackgroundProcessLimitPreferenceControllerTest.java
index 82ca52a..d51547e 100644
--- a/tests/robotests/src/com/android/settings/development/BackgroundProcessLimitPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BackgroundProcessLimitPreferenceControllerTest.java
@@ -28,8 +28,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -65,8 +63,10 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mListValues = mContext.getResources().getStringArray(R.array.app_process_limit_values);
-        mListSummaries = mContext.getResources().getStringArray(R.array.app_process_limit_entries);
+        mListValues = mContext.getResources()
+                .getStringArray(com.android.settingslib.R.array.app_process_limit_values);
+        mListSummaries = mContext.getResources()
+                .getStringArray(com.android.settingslib.R.array.app_process_limit_entries);
         mController = spy(new BackgroundProcessLimitPreferenceController(mContext));
         doReturn(mActivityManager).when(mController).getActivityManagerService();
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceControllerTest.java
index 3677f81..33f4c02 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothAvrcpVersionPreferenceControllerTest.java
@@ -16,8 +16,7 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.BluetoothAvrcpVersionPreferenceController
-        .BLUETOOTH_AVRCP_VERSION_PROPERTY;
+import static com.android.settings.development.BluetoothAvrcpVersionPreferenceController.BLUETOOTH_AVRCP_VERSION_PROPERTY;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -31,8 +30,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -66,8 +63,10 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         final Resources resources = mContext.getResources();
-        mListValues = resources.getStringArray(R.array.bluetooth_avrcp_version_values);
-        mListSummaries = resources.getStringArray(R.array.bluetooth_avrcp_versions);
+        mListValues = resources.getStringArray(
+                com.android.settingslib.R.array.bluetooth_avrcp_version_values);
+        mListSummaries = resources.getStringArray(
+                com.android.settingslib.R.array.bluetooth_avrcp_versions);
         mController = new BluetoothAvrcpVersionPreferenceController(mContext);
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
             .thenReturn(mPreference);
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..d7f5db5 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioDeviceDetailsPreferenceControllerTest.java
@@ -81,7 +81,6 @@
         mController.onPreferenceChange(mPreference, true /* new value */);
         final boolean isEnabled = SystemProperties.getBoolean(
                 LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, false);
-
         assertThat(isEnabled).isTrue();
     }
 
@@ -91,7 +90,6 @@
         mController.onPreferenceChange(mPreference, false /* new value */);
         final boolean isEnabled = SystemProperties.getBoolean(
                 LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, true);
-
         assertThat(isEnabled).isFalse();
     }
 
@@ -99,6 +97,7 @@
     public void updateState_settingEnabled_preferenceShouldBeChecked() {
         mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.FEATURE_SUPPORTED;
         SystemProperties.set(LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, "true");
+        mController.mLeAudioEnabledByDefault = false;
         mController.updateState(mPreference);
         verify(mPreference).setChecked(true);
     }
@@ -107,13 +106,14 @@
     public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
         mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.FEATURE_SUPPORTED;
         SystemProperties.set(LE_AUDIO_TOGGLE_VISIBLE_PROPERTY, "false");
+        mController.mLeAudioEnabledByDefault = false;
         mController.updateState(mPreference);
-
         verify(mPreference).setChecked(false);
     }
 
     @Test
     public void isAvailable_leAudioSupported() {
+        mController.mLeAudioEnabledByDefault = false;
         mController.sLeAudioSupportedStateCache = BluetoothStatusCodes.ERROR_UNKNOWN;
         when(mBluetoothAdapter.isLeAudioSupported())
                 .thenReturn(BluetoothStatusCodes.FEATURE_SUPPORTED);
@@ -122,9 +122,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/BluetoothLeAudioModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioModePreferenceControllerTest.java
new file mode 100644
index 0000000..f35fb17
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/BluetoothLeAudioModePreferenceControllerTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.development;
+
+import static com.android.settings.development.BluetoothLeAudioModePreferenceController
+        .LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.os.SystemProperties;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class BluetoothLeAudioModePreferenceControllerTest {
+
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private DevelopmentSettingsDashboardFragment mFragment;
+    @Mock
+    private BluetoothAdapter mBluetoothAdapter;
+    @Mock
+    private ListPreference mPreference;
+
+    private Context mContext;
+    private BluetoothLeAudioModePreferenceController mController;
+    private String[] mListValues;
+    private String[] mListSummaries;
+
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mListValues = mContext.getResources().getStringArray(
+                R.array.bluetooth_leaudio_mode_values);
+        mListSummaries = mContext.getResources().getStringArray(
+                R.array.bluetooth_leaudio_mode);
+        mController = spy(new BluetoothLeAudioModePreferenceController(mContext, mFragment));
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+                .thenReturn(mPreference);
+        mController.mBluetoothAdapter = mBluetoothAdapter;
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void onRebootDialogConfirmed_changeLeAudioMode_shouldSetLeAudioMode() {
+        mController.mChanged = true;
+        SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0]);
+        mController.mNewMode = mListValues[1];
+
+        mController.onRebootDialogConfirmed();
+        assertThat(SystemProperties.get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0])
+                        .equals(mController.mNewMode)).isTrue();
+    }
+
+    @Test
+    public void onRebootDialogConfirmed_notChangeLeAudioMode_shouldNotSetLeAudioMode() {
+        mController.mChanged = false;
+        SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0]);
+        mController.mNewMode = mListValues[1];
+
+        mController.onRebootDialogConfirmed();
+        assertThat(SystemProperties.get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0])
+                        .equals(mController.mNewMode)).isFalse();
+    }
+
+    @Test
+    public void onRebootDialogCanceled_shouldNotSetLeAudioMode() {
+        mController.mChanged = true;
+        SystemProperties.set(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0]);
+        mController.mNewMode = mListValues[1];
+
+        mController.onRebootDialogCanceled();
+        assertThat(SystemProperties.get(LE_AUDIO_DYNAMIC_SWITCHER_MODE_PROPERTY, mListValues[0])
+                        .equals(mController.mNewMode)).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothMapVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothMapVersionPreferenceControllerTest.java
index f897fdf..3a45907 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothMapVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothMapVersionPreferenceControllerTest.java
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 package com.android.settings.development;
-import static com.android.settings.development.BluetoothMapVersionPreferenceController
-        .BLUETOOTH_MAP_VERSION_PROPERTY;
+
+import static com.android.settings.development.BluetoothMapVersionPreferenceController.BLUETOOTH_MAP_VERSION_PROPERTY;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -29,8 +29,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -59,8 +57,10 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         final Resources resources = mContext.getResources();
-        mListValues = resources.getStringArray(R.array.bluetooth_map_version_values);
-        mListSummaries = resources.getStringArray(R.array.bluetooth_map_versions);
+        mListValues = resources.getStringArray(
+                com.android.settingslib.R.array.bluetooth_map_version_values);
+        mListSummaries = resources.getStringArray(
+                com.android.settingslib.R.array.bluetooth_map_versions);
         mController = new BluetoothMapVersionPreferenceController(mContext);
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
             .thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceControllerTest.java
index 411cca0..68dd04e 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfileMapPreferenceControllerTest.java
@@ -26,8 +26,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -59,8 +57,10 @@
         // Get XML values without mock
         // Setup test list preference using XML values
         mPreference = new ListPreference(mSpyContext);
-        mPreference.setEntries(R.array.bt_hci_snoop_log_profile_filter_entries);
-        mPreference.setEntryValues(R.array.bt_hci_snoop_log_profile_filter_values);
+        mPreference.setEntries(
+                com.android.settingslib.R.array.bt_hci_snoop_log_profile_filter_entries);
+        mPreference.setEntryValues(
+                com.android.settingslib.R.array.bt_hci_snoop_log_profile_filter_values);
         // Init the actual controller
         mController = new BluetoothSnoopLogFilterProfileMapPreferenceController(mSpyContext);
         // Construct preference in the controller via a mocked preference screen object
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceControllerTest.java
index add84c3..20bae4d 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogFilterProfilePbapPreferenceControllerTest.java
@@ -26,8 +26,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -59,8 +57,10 @@
         // Get XML values without mock
         // Setup test list preference using XML values
         mPreference = new ListPreference(mSpyContext);
-        mPreference.setEntries(R.array.bt_hci_snoop_log_profile_filter_entries);
-        mPreference.setEntryValues(R.array.bt_hci_snoop_log_profile_filter_values);
+        mPreference.setEntries(
+                com.android.settingslib.R.array.bt_hci_snoop_log_profile_filter_entries);
+        mPreference.setEntryValues(
+                com.android.settingslib.R.array.bt_hci_snoop_log_profile_filter_values);
         // Init the actual controller
         mController = new BluetoothSnoopLogFilterProfilePbapPreferenceController(mSpyContext);
         // Construct preference in the controller via a mocked preference screen object
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogPreferenceControllerTest.java
index 6668a53..2d57a07 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothSnoopLogPreferenceControllerTest.java
@@ -28,8 +28,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -59,8 +57,8 @@
         // Get XML values without mock
         // Setup test list preference using XML values
         mPreference = new ListPreference(mSpyContext);
-        mPreference.setEntries(R.array.bt_hci_snoop_log_entries);
-        mPreference.setEntryValues(R.array.bt_hci_snoop_log_values);
+        mPreference.setEntries(com.android.settingslib.R.array.bt_hci_snoop_log_entries);
+        mPreference.setEntryValues(com.android.settingslib.R.array.bt_hci_snoop_log_values);
         // Init the actual controller
         mController = new BluetoothSnoopLogPreferenceController(mSpyContext, null);
         // Construct preference in the controller via a mocked preference screen object
diff --git a/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java
index 9268a72..d469c71 100644
--- a/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/CameraLaserSensorPreferenceControllerTest.java
@@ -32,7 +32,6 @@
 import androidx.preference.SwitchPreference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -60,7 +59,6 @@
         mController.displayPreference(mScreen);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_withConfigNoShow_shouldReturnFalse() {
diff --git a/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java
index f0e8292..cf84618 100644
--- a/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/CoolColorTemperaturePreferenceControllerTest.java
@@ -31,7 +31,6 @@
 import androidx.preference.SwitchPreference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -100,7 +99,6 @@
         verify(mPreference).setChecked(false);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_shouldBeFalse() {
diff --git a/tests/robotests/src/com/android/settings/development/DebugGpuOverdrawPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DebugGpuOverdrawPreferenceControllerTest.java
index 20d7971..1932abf 100644
--- a/tests/robotests/src/com/android/settings/development/DebugGpuOverdrawPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DebugGpuOverdrawPreferenceControllerTest.java
@@ -28,8 +28,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,9 +58,10 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mListValues = mContext.getResources().getStringArray(R.array.debug_hw_overdraw_values);
+        mListValues = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.debug_hw_overdraw_values);
         mListSummaries = mContext.getResources().getStringArray(
-                R.array.debug_hw_overdraw_entries);
+                com.android.settingslib.R.array.debug_hw_overdraw_entries);
         mController = new DebugGpuOverdrawPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceControllerTest.java
index d3f3c7e..b9558ba 100644
--- a/tests/robotests/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DebugNonRectClipOperationsPreferenceControllerTest.java
@@ -28,8 +28,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,8 +58,10 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mListValues = mContext.getResources().getStringArray(R.array.show_non_rect_clip_values);
-        mListSummaries = mContext.getResources().getStringArray(R.array.show_non_rect_clip_entries);
+        mListValues = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.show_non_rect_clip_values);
+        mListSummaries = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.show_non_rect_clip_entries);
         mController = new DebugNonRectClipOperationsPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java
index a386473..d14e1d8 100644
--- a/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DefaultUsbConfigurationPreferenceControllerTest.java
@@ -71,8 +71,7 @@
 
     @Test
     public void updateState_usbDataSignalingEnabled_shouldNotDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(true);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(true);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.updateState(mPreference);
@@ -82,8 +81,7 @@
 
     @Test
     public void updateState_usbDataSignalingDisabled_shouldDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(false);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(false);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.updateState(mPreference);
@@ -94,8 +92,7 @@
 
     @Test
     public void onDeveloperOptionsSwitchEnabled_usbEnabled_shouldNotDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(true);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(true);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.onDeveloperOptionsSwitchEnabled();
@@ -105,8 +102,7 @@
 
     @Test
     public void onDeveloperOptionsSwitchEnabled_usbDisabled_shouldDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(false);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(false);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.onDeveloperOptionsSwitchEnabled();
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
index 26b529d..460f6f9 100644
--- a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
@@ -45,8 +45,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class DesktopModePreferenceControllerTest {
 
     private static final String ENG_BUILD_TYPE = "eng";
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPageTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPageTest.java
index 052f705..2d4ce43 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPageTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPageTest.java
@@ -24,7 +24,6 @@
 import com.android.settings.R;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java
index 18cacc6..229f2fa 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentMemtagPreferenceControllerTest.java
@@ -47,14 +47,14 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowSystemProperties;
 
-@Ignore
+@Ignore("b/313564061")
 @RunWith(RobolectricTestRunner.class)
 @Config(
         shadows = {
-            ZygoteShadow.class,
-            ShadowDeviceConfig.class,
-            ShadowInteractionJankMonitor.class,
-            ShadowRestrictedLockUtilsInternal.class
+                ZygoteShadow.class,
+                ShadowDeviceConfig.class,
+                ShadowInteractionJankMonitor.class,
+                ShadowRestrictedLockUtilsInternal.class
         })
 public class DevelopmentMemtagPreferenceControllerTest {
     private final String mMemtagSupportedProperty = "ro.arm64.memtag.bootctl_supported";
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index 7db7141..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;
@@ -35,6 +34,7 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settingslib.development.AbstractEnableAdbPreferenceController;
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
@@ -51,17 +51,19 @@
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowUserManager;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class, ShadowAlertDialogCompat.class})
+@Config(shadows = {
+        ShadowAlertDialogCompat.class,
+        ShadowUserManager.class,
+        ShadowUserManager.class,
+})
 public class DevelopmentSettingsDashboardFragmentTest {
 
-    private Switch mSwitch;
     private Context mContext;
     private ShadowUserManager mShadowUserManager;
     private DevelopmentSettingsDashboardFragment mDashboard;
@@ -71,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));
@@ -159,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();
     }
 
@@ -171,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();
     }
 
@@ -183,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();
@@ -202,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/DevelopmentSettingsDisabledActivityTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java
deleted file mode 100644
index ccfd68b..0000000
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java
+++ /dev/null
@@ -1,45 +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.development;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settings.utils.ActivityControllerWrapper;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowToast;
-
-@RunWith(RobolectricTestRunner.class)
-public class DevelopmentSettingsDisabledActivityTest {
-
-    @Test
-    public void launchActivity_shouldShowToast() {
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(DevelopmentSettingsDisabledActivity.class)).get();
-
-        final Context context = RuntimeEnvironment.application;
-        assertThat(ShadowToast.getTextOfLatestToast())
-            .isEqualTo(context.getString(R.string.dev_settings_disabled_warning));
-    }
-}
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/Enable16kPagesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/Enable16kPagesPreferenceControllerTest.java
new file mode 100644
index 0000000..0c9906c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/Enable16kPagesPreferenceControllerTest.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.FileUtils;
+import android.os.SystemProperties;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+@RunWith(RobolectricTestRunner.class)
+public class Enable16kPagesPreferenceControllerTest {
+
+    @Mock private DevelopmentSettingsDashboardFragment mFragment;
+    private Context mContext;
+    private Enable16kPagesPreferenceController mController;
+
+    @Before
+    public void setup() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mController = spy(new Enable16kPagesPreferenceController(mContext, mFragment));
+        doNothing().when(mController).applyPayload(any(), anyLong(), anyLong(), anyList());
+    }
+
+    @Test
+    public void onSystemPropertyDisabled_shouldDisablePreference() {
+        SystemProperties.set(Enable16kPagesPreferenceController.DEV_OPTION_PROPERTY, "false");
+        assertThat(mController.isAvailable()).isEqualTo(false);
+    }
+
+    @Test
+    public void onSystemPropertyEnabled_shouldEnablePreference() {
+        SystemProperties.set(Enable16kPagesPreferenceController.DEV_OPTION_PROPERTY, "true");
+        assertThat(mController.isAvailable()).isEqualTo(true);
+    }
+
+    // TODO(b/303280163) : add tests to based on page size and whether preference is turned on/off
+
+    @Test
+    public void validateUpdateParsing_validFile() throws IOException {
+        // TODO(b/295573133) : Add tests to verify applyPayload arguments
+        String filename = "valid_ota.zip";
+        File updateFile = copyFromAssetToDataDir(filename);
+        mController.applyUpdateFile(updateFile);
+    }
+
+    @Test
+    public void validateUpdateParsing_emptyPayloadFile() {
+        String filename = "empty_payload_ota.zip";
+        File updateFile = copyFromAssetToDataDir(filename);
+        assertThrows(IOException.class, () -> mController.applyUpdateFile(updateFile));
+    }
+
+    @Test
+    public void validateUpdateParsing_noPayloadFile() {
+        String filename = "no_payload_ota.zip";
+        File updateFile = copyFromAssetToDataDir(filename);
+        assertThrows(FileNotFoundException.class, () -> mController.applyUpdateFile(updateFile));
+    }
+
+    @Test
+    public void validateUpdateParsing_noPropertiesFile() {
+        String filename = "no_properties_ota.zip";
+        File updateFile = copyFromAssetToDataDir(filename);
+        assertThrows(FileNotFoundException.class, () -> mController.applyUpdateFile(updateFile));
+    }
+
+    private File copyFromAssetToDataDir(String filename) {
+        try {
+            InputStream in = mContext.getAssets().open(filename);
+            File destination =
+                    File.createTempFile(
+                            "test_update", ".zip", new File(mContext.getDataDir().getPath()));
+            FileUtils.setPermissions(
+                    /* path= */ destination,
+                    /* mode= */ FileUtils.S_IRWXU | FileUtils.S_IRGRP | FileUtils.S_IROTH,
+                    /* uid= */ -1,
+                    /* gid= */ -1);
+            OutputStream out = new FileOutputStream(destination);
+            FileUtils.copy(in, out);
+            return destination;
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java
index 8e62521..97acdf6 100644
--- a/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java
@@ -36,10 +36,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 
 import java.lang.reflect.Field;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public final class EnableVerboseVendorLoggingPreferenceControllerTest {
     @Mock
     private SwitchPreference mPreference;
diff --git a/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java
index 2e93d5e..314120a 100644
--- a/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/ForcePeakRefreshRatePreferenceControllerTest.java
@@ -16,20 +16,28 @@
 
 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;
 import static org.mockito.Mockito.when;
 
 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 android.provider.Settings;
 
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
 
+import com.android.server.display.feature.flags.Flags;
+
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -38,8 +46,6 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
-import android.util.Log;
-
 @RunWith(RobolectricTestRunner.class)
 public class ForcePeakRefreshRatePreferenceControllerTest {
 
@@ -51,6 +57,9 @@
     private Context mContext;
     private ForcePeakRefreshRatePreferenceController mController;
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -62,7 +71,8 @@
     }
 
     @Test
-    public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak() {
+    @RequiresFlagsDisabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
+    public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak_featureFlagOff() {
         mController.mPeakRefreshRate = 88f;
 
         mController.onPreferenceChange(mPreference, true);
@@ -72,6 +82,17 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
+    public void onPreferenceChange_preferenceChecked_shouldEnableForcePeak_featureFlagOn() {
+        mController.mPeakRefreshRate = 88f;
+
+        mController.onPreferenceChange(mPreference, true);
+
+        assertThat(Settings.System.getFloat(mContext.getContentResolver(),
+                Settings.System.MIN_REFRESH_RATE, NO_CONFIG)).isPositiveInfinity();
+    }
+
+    @Test
     public void onPreferenceChange_preferenceUnchecked_shouldDisableForcePeak() {
         mController.mPeakRefreshRate = 88f;
 
@@ -89,6 +110,7 @@
         mController.updateState(mPreference);
 
         verify(mPreference).setChecked(true);
+        assertThat(mController.isForcePeakRefreshRateEnabled()).isTrue();
     }
 
     @Test
@@ -99,6 +121,7 @@
         mController.updateState(mPreference);
 
         verify(mPreference).setChecked(false);
+        assertThat(mController.isForcePeakRefreshRateEnabled()).isFalse();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
index 695a291..bd005b3 100644
--- a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
@@ -44,8 +44,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class FreeformWindowsPreferenceControllerTest {
 
     private static final String ENG_BUILD_TYPE = "eng";
diff --git a/tests/robotests/src/com/android/settings/development/GameDefaultFrameRatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/GameDefaultFrameRatePreferenceControllerTest.java
new file mode 100644
index 0000000..d433905
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/GameDefaultFrameRatePreferenceControllerTest.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.android.settings.development.GameDefaultFrameRatePreferenceController.Injector;
+import static com.android.settings.development.GameDefaultFrameRatePreferenceController.PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.IGameManagerService;
+import android.content.Context;
+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 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.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class GameDefaultFrameRatePreferenceControllerTest {
+    @Mock
+    private Context mContext;
+    @Mock
+    private PreferenceScreen mScreen;
+    @Mock
+    private TwoStatePreference mPreference;
+    @Mock
+    private IGameManagerService mGameManagerService;
+    @Mock
+    private DevelopmentSystemPropertiesWrapper mSysPropsMock;
+
+    private GameDefaultFrameRatePreferenceController mController;
+
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mController = new GameDefaultFrameRatePreferenceController(mContext, mGameManagerService,
+                new Injector(){
+                    @Override
+                    public DevelopmentSystemPropertiesWrapper createSystemPropertiesWrapper() {
+                        return mSysPropsMock;
+                    }
+                });
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        mController.displayPreference(mScreen);
+    }
+
+    @Test
+    public void onPreferenceChange_settingEnabled_shouldChecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        assertTrue(mController.isAvailable());
+        when(mSysPropsMock.getBoolean(
+                ArgumentMatchers.eq(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED),
+                ArgumentMatchers.eq(false)))
+                .thenReturn(true);
+
+        mController.onPreferenceChange(mPreference, true /* new value */);
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void onPreferenceChange_settingDisabled_shouldUnchecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        assertTrue(mController.isAvailable());
+        when(mSysPropsMock.getBoolean(
+                ArgumentMatchers.eq(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED),
+                ArgumentMatchers.eq(false)))
+                .thenReturn(false);
+        mController.onPreferenceChange(mPreference, false /* new value */);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void updateState_settingEnabled_shouldChecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        assertTrue(mController.isAvailable());
+        when(mSysPropsMock.getBoolean(
+                ArgumentMatchers.eq(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED),
+                ArgumentMatchers.eq(false)))
+                .thenReturn(true);
+        mController.updateState(mPreference);
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_settingDisabled_shouldUnchecked() throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        assertTrue(mController.isAvailable());
+        when(mSysPropsMock.getBoolean(
+                ArgumentMatchers.eq(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED),
+                ArgumentMatchers.eq(false)))
+                .thenReturn(false);
+        mController.updateState(mPreference);
+        verify(mPreference).setChecked(false);
+    }
+
+    @Test
+    public void settingNotAvailable_flagsOff() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        mController = new GameDefaultFrameRatePreferenceController(
+                mContext, mGameManagerService, new Injector());
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    public void settingAvailable_flagsOn() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        mController = new GameDefaultFrameRatePreferenceController(
+                mContext, mGameManagerService, new Injector());
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_preferenceUnchecked_shouldNotTurnOffPreference()
+            throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        when(mSysPropsMock.getBoolean(
+                ArgumentMatchers.eq(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED),
+                ArgumentMatchers.eq(false)))
+                .thenReturn(false);
+        assertTrue(mController.isAvailable());
+        when(mPreference.isChecked()).thenReturn(false);
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        verify(mPreference).setChecked(false);
+        verify(mPreference).setEnabled(false);
+    }
+
+    @Test
+    public void onDeveloperOptionsSwitchDisabled_preferenceChecked_shouldTurnOffPreference()
+            throws RemoteException {
+        mSetFlagsRule.enableFlags(Flags.FLAG_DEVELOPMENT_GAME_DEFAULT_FRAME_RATE);
+        when(mSysPropsMock.getBoolean(
+                ArgumentMatchers.eq(PROPERTY_DEBUG_GFX_GAME_DEFAULT_FRAME_RATE_DISABLED),
+                ArgumentMatchers.eq(false)))
+                .thenReturn(true);
+        assertTrue(mController.isAvailable());
+
+        when(mPreference.isChecked()).thenReturn(true);
+        mController.onDeveloperOptionsSwitchDisabled();
+
+        verify(mPreference).setChecked(false);
+        verify(mPreference).setEnabled(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/GrammaticalGenderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/GrammaticalGenderPreferenceControllerTest.java
new file mode 100644
index 0000000..4ae28fa
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/GrammaticalGenderPreferenceControllerTest.java
@@ -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.development;
+
+
+import static com.android.settings.development.GrammaticalGenderPreferenceController.GRAMMATICAL_GENDER_PROPERTY;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.IActivityManager;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.RemoteException;
+import android.os.SystemProperties;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
+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 GrammaticalGenderPreferenceControllerTest {
+    @Mock
+    private ListPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private IActivityManager mActivityManager;
+    private Configuration mConfiguration;
+    private Context mContext;
+    private GrammaticalGenderPreferenceController mController;
+    private String[] mListValues;
+    private String[] mListSummaries;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        final Resources resources = mContext.getResources();
+        mListValues = resources.getStringArray(
+                com.android.settingslib.R.array.grammatical_gender_values);
+        mListSummaries = resources.getStringArray(
+                com.android.settingslib.R.array.grammatical_gender_entries);
+        mConfiguration = new Configuration();
+        mController = new GrammaticalGenderPreferenceController(mContext, mActivityManager);
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+                .thenReturn(mPreference);
+        mController.displayPreference(mPreferenceScreen);
+        doReturn(mConfiguration).when(mActivityManager).getConfiguration();
+    }
+
+    @Test
+    public void onPreferenceChange_setNeuter_shouldEnableNeuter() throws RemoteException {
+        mController.onPreferenceChange(mPreference, mListValues[1]);
+        final String currentValue = SystemProperties.get(GRAMMATICAL_GENDER_PROPERTY);
+        assertThat(currentValue).isEqualTo(mListValues[1]);
+        verify(mActivityManager).updatePersistentConfiguration(mConfiguration);
+        assertThat(mConfiguration.getGrammaticalGender())
+                .isEqualTo(Integer.parseInt(mListValues[1]));
+    }
+
+    @Test
+    public void updateState_setNeuter_shouldSetPreferenceToNeuter() {
+        SystemProperties.set(GRAMMATICAL_GENDER_PROPERTY, mListValues[1]);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setValue(mListValues[1]);
+        verify(mPreference).setSummary(mListSummaries[1]);
+    }
+
+    @Test
+    public void onPreferenceChange_setFeminine_shouldEnableFeminine() throws RemoteException {
+        mController.onPreferenceChange(mPreference, mListValues[2]);
+        final String currentValue = SystemProperties.get(GRAMMATICAL_GENDER_PROPERTY);
+        assertThat(currentValue).isEqualTo(mListValues[2]);
+        verify(mActivityManager).updatePersistentConfiguration(mConfiguration);
+        assertThat(mConfiguration.getGrammaticalGender())
+                .isEqualTo(Integer.parseInt(mListValues[2]));
+    }
+
+    @Test
+    public void updateState_setFeminine_shouldSetPreferenceToFeminine() {
+        SystemProperties.set(GRAMMATICAL_GENDER_PROPERTY, mListValues[2]);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setValue(mListValues[2]);
+        verify(mPreference).setSummary(mListSummaries[2]);
+    }
+
+    @Test
+    public void onPreferenceChange_setMasculine_shouldEnableMasculine() throws RemoteException {
+        mController.onPreferenceChange(mPreference, mListValues[3]);
+        final String currentValue = SystemProperties.get(GRAMMATICAL_GENDER_PROPERTY);
+        assertThat(currentValue).isEqualTo(mListValues[3]);
+        verify(mActivityManager).updatePersistentConfiguration(mConfiguration);
+        assertThat(mConfiguration.getGrammaticalGender())
+                .isEqualTo(Integer.parseInt(mListValues[3]));
+    }
+
+    @Test
+    public void updateState_setMasculine_shouldSetPreferenceToMasculine() {
+        SystemProperties.set(GRAMMATICAL_GENDER_PROPERTY, mListValues[3]);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference).setValue(mListValues[3]);
+        verify(mPreference).setSummary(mListSummaries[3]);
+    }
+
+    @Test
+    public void updateState_noValueSet_shouldSetDefaultToNotSpecified() {
+        mController.updateState(mPreference);
+
+        verify(mPreference).setValue(mListValues[0]);
+        verify(mPreference).setSummary(mListSummaries[0]);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/HdcpCheckingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/HdcpCheckingPreferenceControllerTest.java
index 4828942..92750d9 100644
--- a/tests/robotests/src/com/android/settings/development/HdcpCheckingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/HdcpCheckingPreferenceControllerTest.java
@@ -16,8 +16,7 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.HdcpCheckingPreferenceController
-        .HDCP_CHECKING_PROPERTY;
+import static com.android.settings.development.HdcpCheckingPreferenceController.HDCP_CHECKING_PROPERTY;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -32,8 +31,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -69,8 +66,10 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mValues = mContext.getResources().getStringArray(R.array.hdcp_checking_values);
-        mSummaries = mContext.getResources().getStringArray(R.array.hdcp_checking_summaries);
+        mValues = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.hdcp_checking_values);
+        mSummaries = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.hdcp_checking_summaries);
         mController = new HdcpCheckingPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/development/LocalBackupPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/LocalBackupPasswordPreferenceControllerTest.java
index 5297ef5..07684ef 100644
--- a/tests/robotests/src/com/android/settings/development/LocalBackupPasswordPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/LocalBackupPasswordPreferenceControllerTest.java
@@ -15,8 +15,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,7 +58,8 @@
 
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(R.string.local_backup_password_summary_change);
+        verify(mPreference).setSummary(
+                com.android.settingslib.R.string.local_backup_password_summary_change);
     }
 
     @Test
@@ -73,7 +72,8 @@
 
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(R.string.local_backup_password_summary_none);
+        verify(mPreference).setSummary(
+                com.android.settingslib.R.string.local_backup_password_summary_none);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java
index 504909e..75dc9f8 100644
--- a/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/MockLocationAppPreferenceControllerTest.java
@@ -23,8 +23,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -79,7 +77,8 @@
 
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(mContext.getString(R.string.mock_location_app_set, appName));
+        verify(mPreference).setSummary(mContext.getString(
+                com.android.settingslib.R.string.mock_location_app_set, appName));
     }
 
     @Test
@@ -89,7 +88,8 @@
 
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(mContext.getString(R.string.mock_location_app_not_set));
+        verify(mPreference).setSummary(mContext.getString(
+                com.android.settingslib.R.string.mock_location_app_not_set));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java
index c762349..4f89f02 100644
--- a/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java
@@ -49,8 +49,12 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class OemUnlockPreferenceControllerTest {
 
     private static final String OEM_UNLOCK_SUPPORTED_KEY = "ro.oem_unlock_supported";
diff --git a/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java
index b2e8013..12f70a4 100644
--- a/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java
@@ -31,6 +31,9 @@
 import android.content.pm.PackageManager;
 import android.os.RemoteException;
 
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
 import com.android.settings.R;
 
 import org.junit.Before;
@@ -40,16 +43,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowToast;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceScreen;
-
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class OverlayCategoryPreferenceControllerTest {
 
     private static final OverlayInfo ONE_DISABLED = createFakeOverlay("overlay.one", false, 1);
diff --git a/tests/robotests/src/com/android/settings/development/PictureColorModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/PictureColorModePreferenceControllerTest.java
index 5cdb8e7..234f820 100644
--- a/tests/robotests/src/com/android/settings/development/PictureColorModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/PictureColorModePreferenceControllerTest.java
@@ -32,7 +32,6 @@
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -67,7 +66,8 @@
         when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
             .thenReturn(mPreference);
         when(mContext.getResources()).thenReturn(mResources);
-        when(mResources.getIntArray(R.array.color_mode_ids)).thenReturn(new int[0]);
+        when(mResources.getIntArray(com.android.settingslib.R.array.color_mode_ids))
+                .thenReturn(new int[0]);
         mController.displayPreference(mPreferenceScreen);
     }
 
diff --git a/tests/robotests/src/com/android/settings/development/ProfileGpuRenderingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/ProfileGpuRenderingPreferenceControllerTest.java
index 3fd480a..0f83859 100644
--- a/tests/robotests/src/com/android/settings/development/ProfileGpuRenderingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/ProfileGpuRenderingPreferenceControllerTest.java
@@ -28,8 +28,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,8 +58,10 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mListValues = mContext.getResources().getStringArray(R.array.track_frame_time_values);
-        mListSummaries = mContext.getResources().getStringArray(R.array.track_frame_time_entries);
+        mListValues = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.track_frame_time_values);
+        mListSummaries = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.track_frame_time_entries);
         mController = new ProfileGpuRenderingPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/development/RebootWithMtePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/RebootWithMtePreferenceControllerTest.java
index ad7d48e..eec7a7b 100644
--- a/tests/robotests/src/com/android/settings/development/RebootWithMtePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/RebootWithMtePreferenceControllerTest.java
@@ -26,8 +26,9 @@
 import androidx.preference.Preference;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settingslib.development.DevelopmentSettingsEnabler;
+
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -53,6 +54,7 @@
         mContext = ApplicationProvider.getApplicationContext();
         mController = new RebootWithMtePreferenceController(mContext);
         mController.setFragment(mFragment);
+        DevelopmentSettingsEnabler.setDevelopmentSettingsEnabled(mContext, true);
     }
 
     @Test
@@ -60,7 +62,6 @@
         assertFalse(mController.isAvailable());
     }
 
-    @Ignore
     @Test
     public void onAvailable_sysPropEnabled() {
         SystemProperties.set("ro.arm64.memtag.bootctl_supported", "1");
diff --git a/tests/robotests/src/com/android/settings/development/SecondaryDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/SecondaryDisplayPreferenceControllerTest.java
index 16bb626..bb0ac2c 100644
--- a/tests/robotests/src/com/android/settings/development/SecondaryDisplayPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/SecondaryDisplayPreferenceControllerTest.java
@@ -28,8 +28,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -70,8 +68,10 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         final Resources resources = mContext.getResources();
-        mListValues = resources.getStringArray(R.array.overlay_display_devices_values);
-        mListSummaries = resources.getStringArray(R.array.overlay_display_devices_entries);
+        mListValues = resources.getStringArray(
+                com.android.settingslib.R.array.overlay_display_devices_values);
+        mListSummaries = resources.getStringArray(
+                com.android.settingslib.R.array.overlay_display_devices_entries);
         mController = new SecondaryDisplayPreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/development/SelectDebugAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/SelectDebugAppPreferenceControllerTest.java
index 2c85bb0..94fce17 100644
--- a/tests/robotests/src/com/android/settings/development/SelectDebugAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/SelectDebugAppPreferenceControllerTest.java
@@ -16,8 +16,7 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes
-        .REQUEST_CODE_DEBUG_APP;
+import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes.REQUEST_CODE_DEBUG_APP;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -36,9 +35,8 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -74,6 +72,7 @@
         mController.displayPreference(mPreferenceScreen);
     }
 
+    @Ignore("b/314919354")
     @Test
     public void handlePreferenceTreeClick_preferenceClicked_launchActivity() {
         final Intent activityStartIntent = new Intent(mContext, AppPicker.class);
@@ -92,7 +91,8 @@
         Settings.Global.putString(contentResolver, Settings.Global.DEBUG_APP, debugApp);
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(mContext.getString(R.string.debug_app_set, debugApp));
+        verify(mPreference).setSummary(
+                mContext.getString(com.android.settingslib.R.string.debug_app_set, debugApp));
     }
 
     @Test
@@ -102,7 +102,8 @@
         Settings.Global.putString(contentResolver, Settings.Global.DEBUG_APP, debugApp);
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(mContext.getString(R.string.debug_app_not_set));
+        verify(mPreference).setSummary(
+                mContext.getString(com.android.settingslib.R.string.debug_app_not_set));
     }
 
     @Test
@@ -114,7 +115,8 @@
             .onActivityResult(REQUEST_CODE_DEBUG_APP, Activity.RESULT_OK, activityResultIntent);
 
         assertThat(result).isTrue();
-        verify(mPreference).setSummary(mContext.getString(R.string.debug_app_set, appLabel));
+        verify(mPreference).setSummary(
+                mContext.getString(com.android.settingslib.R.string.debug_app_set, appLabel));
     }
 
     @Test
@@ -128,6 +130,7 @@
         mController.onDeveloperOptionsSwitchDisabled();
 
         verify(mPreference).setEnabled(false);
-        verify(mPreference).setSummary(mContext.getString(R.string.debug_app_not_set));
+        verify(mPreference).setSummary(
+                mContext.getString(com.android.settingslib.R.string.debug_app_not_set));
     }
 }
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/SimulateColorSpacePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/SimulateColorSpacePreferenceControllerTest.java
index 93fc90d..003eb72 100644
--- a/tests/robotests/src/com/android/settings/development/SimulateColorSpacePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/SimulateColorSpacePreferenceControllerTest.java
@@ -16,10 +16,8 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.SimulateColorSpacePreferenceController
-        .SETTING_VALUE_OFF;
-import static com.android.settings.development.SimulateColorSpacePreferenceController
-        .SETTING_VALUE_ON;
+import static com.android.settings.development.SimulateColorSpacePreferenceController.SETTING_VALUE_OFF;
+import static com.android.settings.development.SimulateColorSpacePreferenceController.SETTING_VALUE_ON;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -34,8 +32,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -67,7 +63,8 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mListValues = mContext.getResources().getStringArray(R.array.simulate_color_space_values);
+        mListValues = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.simulate_color_space_values);
         mController = new SimulateColorSpacePreferenceController(mContext);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
@@ -130,8 +127,10 @@
 
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(res.getString(R.string.daltonizer_type_overridden,
-                res.getString(R.string.accessibility_display_daltonizer_preference_title)));
+        verify(mPreference).setSummary(
+                res.getString(com.android.settingslib.R.string.daltonizer_type_overridden,
+                res.getString(com.android.settingslib.R
+                        .string.accessibility_display_daltonizer_preference_title)));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/development/TransitionAnimationScalePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TransitionAnimationScalePreferenceControllerTest.java
index f06aa8d..73ff74e 100644
--- a/tests/robotests/src/com/android/settings/development/TransitionAnimationScalePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/TransitionAnimationScalePreferenceControllerTest.java
@@ -16,10 +16,8 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.TransitionAnimationScalePreferenceController
-        .DEFAULT_VALUE;
-import static com.android.settings.development.TransitionAnimationScalePreferenceController
-        .TRANSITION_ANIMATION_SCALE_SELECTOR;
+import static com.android.settings.development.TransitionAnimationScalePreferenceController.DEFAULT_VALUE;
+import static com.android.settings.development.TransitionAnimationScalePreferenceController.TRANSITION_ANIMATION_SCALE_SELECTOR;
 
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -32,8 +30,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -72,8 +68,10 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         final Resources resources = mContext.getResources();
-        mListValues = resources.getStringArray(R.array.transition_animation_scale_values);
-        mListSummaries = resources.getStringArray(R.array.transition_animation_scale_entries);
+        mListValues = resources.getStringArray(
+                com.android.settingslib.R.array.transition_animation_scale_values);
+        mListSummaries = resources.getStringArray(
+                com.android.settingslib.R.array.transition_animation_scale_entries);
         mController = new TransitionAnimationScalePreferenceController(mContext);
         ReflectionHelpers.setField(mController, "mWindowManager", mWindowManager);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
diff --git a/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java
index 69d2c99..cb0ba88 100644
--- a/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/UsbAudioRoutingPreferenceControllerTest.java
@@ -75,8 +75,7 @@
 
     @Test
     public void updateState_usbAudioRoutingEnabled_shouldCheckedPreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(true);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(true);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED,
@@ -89,8 +88,7 @@
 
     @Test
     public void updateState_usbAudioRoutingDisabled_shouldUncheckedPreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(true);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(true);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.USB_AUDIO_AUTOMATIC_ROUTING_DISABLED,
@@ -103,8 +101,7 @@
 
     @Test
     public void updateState_usbDataSignalingDisabled_shouldDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(false);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(false);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.updateState(mPreference);
@@ -150,8 +147,7 @@
 
     @Test
     public void onDeveloperOptionsSwitchEnabled_usbEnabled_shouldNotDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(true);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(true);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.onDeveloperOptionsSwitchEnabled();
@@ -161,8 +157,7 @@
 
     @Test
     public void onDeveloperOptionsSwitchEnabled_usbDisabled_shouldDisablePreference() {
-        when(mDevicePolicyManager.isUsbDataSignalingEnabledForUser(
-                UserHandle.myUserId())).thenReturn(false);
+        when(mDevicePolicyManager.isUsbDataSignalingEnabled()).thenReturn(false);
         when(mDevicePolicyManager.getProfileOwner()).thenReturn(TEST_COMPONENT_NAME);
 
         mController.onDeveloperOptionsSwitchEnabled();
diff --git a/tests/robotests/src/com/android/settings/development/WindowAnimationScalePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/WindowAnimationScalePreferenceControllerTest.java
index 4d8d3e8..6104b2d 100644
--- a/tests/robotests/src/com/android/settings/development/WindowAnimationScalePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/WindowAnimationScalePreferenceControllerTest.java
@@ -16,10 +16,8 @@
 
 package com.android.settings.development;
 
-import static com.android.settings.development.WindowAnimationScalePreferenceController
-        .DEFAULT_VALUE;
-import static com.android.settings.development.WindowAnimationScalePreferenceController
-        .WINDOW_ANIMATION_SCALE_SELECTOR;
+import static com.android.settings.development.WindowAnimationScalePreferenceController.DEFAULT_VALUE;
+import static com.android.settings.development.WindowAnimationScalePreferenceController.WINDOW_ANIMATION_SCALE_SELECTOR;
 
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -32,8 +30,6 @@
 import androidx.preference.ListPreference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -72,8 +68,10 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         final Resources resources = mContext.getResources();
-        mListValues = resources.getStringArray(R.array.window_animation_scale_values);
-        mListSummaries = resources.getStringArray(R.array.window_animation_scale_entries);
+        mListValues = resources.getStringArray(
+                com.android.settingslib.R.array.window_animation_scale_values);
+        mListSummaries = resources.getStringArray(
+                com.android.settingslib.R.array.window_animation_scale_entries);
         mController = new WindowAnimationScalePreferenceController(mContext);
         ReflectionHelpers.setField(mController, "mWindowManager", mWindowManager);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
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/bluetooth/BaseBluetoothDialogPreferenceTest.java b/tests/robotests/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreferenceTest.java
index 323486e..21fc6d2 100644
--- a/tests/robotests/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/development/bluetooth/BaseBluetoothDialogPreferenceTest.java
@@ -170,8 +170,9 @@
 
     @Test
     public void generateSummary_checkString() {
-        final String summary = String.format(mContext.getResources().getString(
-                R.string.bluetooth_select_a2dp_codec_streaming_label), SUMMARY2);
+        String label = mContext.getResources().getString(
+                com.android.settingslib.R.string.bluetooth_select_a2dp_codec_streaming_label);
+        final String summary = String.format(label, SUMMARY2);
 
         assertThat(mPreference.generateSummary(1)).isEqualTo(summary);
     }
diff --git a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
index dffd7fb..86ceadc 100644
--- a/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
+++ b/tests/robotests/src/com/android/settings/development/compat/PlatformCompatDashboardTest.java
@@ -41,7 +41,8 @@
 import androidx.preference.PreferenceCategory;
 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.internal.compat.CompatibilityChangeConfig;
 import com.android.internal.compat.CompatibilityChangeInfo;
@@ -51,12 +52,13 @@
 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.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -66,6 +68,8 @@
 
 @RunWith(RobolectricTestRunner.class)
 public class PlatformCompatDashboardTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     private PlatformCompatDashboard mDashboard;
 
     @Mock
@@ -86,7 +90,6 @@
 
     @Before
     public void setUp() throws RemoteException, NameNotFoundException {
-        MockitoAnnotations.initMocks(this);
         mChanges = new CompatibilityChangeInfo[5];
         mChanges[0] = new CompatibilityChangeInfo(
                 1L, "Default_Enabled", 0, 0, false, false, "", false);
@@ -103,7 +106,7 @@
         // By default, allow any change
         when(mOverrideValidator.getOverrideAllowedState(anyLong(),anyString()))
             .thenReturn(new OverrideAllowedState(ALLOWED, -1, -1));
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(ApplicationProvider.getApplicationContext());
         mPreferenceManager = new PreferenceManager(mContext);
         mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
         mApplicationInfo.packageName = APP_NAME;
@@ -150,10 +153,10 @@
         Preference enabledPreference = mDashboard.createPreferenceForChange(mContext, enabledChange,
                 config);
 
-        SwitchPreference enabledSwitchPreference = (SwitchPreference) enabledPreference;
+        SwitchPreferenceCompat enabledSwitchPreference = (SwitchPreferenceCompat) enabledPreference;
 
         assertThat(enabledPreference.getSummary()).isEqualTo(mChanges[0].getName());
-        assertThat(enabledPreference instanceof SwitchPreference).isTrue();
+        assertThat(enabledPreference instanceof SwitchPreferenceCompat).isTrue();
         assertThat(enabledSwitchPreference.isChecked()).isTrue();
         assertThat(enabledSwitchPreference.isEnabled()).isTrue();
     }
@@ -169,7 +172,8 @@
                 disabledChange, config);
 
         assertThat(disabledPreference.getSummary()).isEqualTo(mChanges[1].getName());
-        SwitchPreference disabledSwitchPreference = (SwitchPreference) disabledPreference;
+        SwitchPreferenceCompat disabledSwitchPreference =
+                (SwitchPreferenceCompat) disabledPreference;
         assertThat(disabledSwitchPreference.isChecked()).isFalse();
         assertThat(disabledSwitchPreference.isEnabled()).isTrue();
     }
@@ -187,10 +191,10 @@
         Preference preference = mDashboard.createPreferenceForChange(mContext, enabledChange,
                 config);
 
-        SwitchPreference switchPreference = (SwitchPreference) preference;
+        SwitchPreferenceCompat switchPreference = (SwitchPreferenceCompat) preference;
 
         assertThat(preference.getSummary()).isEqualTo(mChanges[0].getName());
-        assertThat(preference instanceof SwitchPreference).isTrue();
+        assertThat(preference instanceof SwitchPreferenceCompat).isTrue();
         assertThat(switchPreference.isChecked()).isTrue();
         assertThat(switchPreference.isEnabled()).isFalse();
     }
@@ -221,7 +225,7 @@
         assertThat(category.getPreferenceCount()).isEqualTo(mChanges.length);
         for (int i = 0; i < mChanges.length; ++i) {
             Preference childPreference = category.getPreference(i);
-            assertThat(childPreference instanceof SwitchPreference).isTrue();
+            assertThat(childPreference instanceof SwitchPreferenceCompat).isTrue();
         }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverAppPreferenceControllerTest.java
index 2266ed9..1e154a2 100644
--- a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverAppPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverAppPreferenceControllerTest.java
@@ -43,6 +43,7 @@
 import com.android.settings.R;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -52,6 +53,7 @@
 
 import java.util.Arrays;
 
+@Ignore("b/317934814")
 @RunWith(RobolectricTestRunner.class)
 public class GraphicsDriverAppPreferenceControllerTest {
 
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 249acf5..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;
 
@@ -48,9 +47,13 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowSystemProperties;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class GraphicsDriverEnableAngleAsSystemDriverControllerTest {
     private static final String TAG = "GraphicsDriverEnableAngleAsSystemDriverControllerTest";
     @Mock private PreferenceScreen mScreen;
@@ -79,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).
@@ -96,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).
@@ -112,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);
@@ -143,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("");
@@ -151,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/development/qstile/DevelopmentTilesTest.java b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
index 9ab67c2..c7df289 100644
--- a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
+++ b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
@@ -27,6 +27,7 @@
 import android.os.UserManager;
 import android.service.quicksettings.Tile;
 
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.development.DevelopmentSettingsEnabler;
 
 import org.junit.Before;
@@ -37,10 +38,13 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowUserManager.class,
+})
 public class DevelopmentTilesTest {
 
     @Mock
@@ -54,7 +58,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mService = spy(Robolectric.setupService(DevelopmentTiles.ShowLayout.class));
-        final ShadowUserManager um = Shadows.shadowOf(
+        final ShadowUserManager um = Shadow.extract(
                 RuntimeEnvironment.application.getSystemService(UserManager.class));
         um.setIsAdminUser(true);
         doReturn(mTile).when(mService).getQsTile();
diff --git a/tests/robotests/src/com/android/settings/development/qstile/SensorsOffTest.java b/tests/robotests/src/com/android/settings/development/qstile/SensorsOffTest.java
new file mode 100644
index 0000000..d4f31a3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/qstile/SensorsOffTest.java
@@ -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.development.qstile;
+
+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.times;
+import static org.mockito.Mockito.verify;
+
+import android.app.KeyguardManager;
+import android.content.Context;
+import android.hardware.SensorPrivacyManager;
+
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(RobolectricTestRunner.class)
+public class SensorsOffTest {
+    @Mock
+    private KeyguardManager mKeyguardManager;
+    @Mock
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Mock
+    private SensorPrivacyManager mSensorPrivacyManager;
+
+    private Context mContext;
+    private DevelopmentTiles.SensorsOff mSensorsOff;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mSensorsOff = new DevelopmentTiles.SensorsOff();
+        ReflectionHelpers.setField(mSensorsOff, "mBase", mContext);
+        ReflectionHelpers.setField(mSensorsOff, "mKeyguardManager", mKeyguardManager);
+        ReflectionHelpers.setField(mSensorsOff, "mMetricsFeatureProvider", mMetricsFeatureProvider);
+        ReflectionHelpers.setField(mSensorsOff, "mSensorPrivacyManager", mSensorPrivacyManager);
+    }
+
+    @Test
+    public void setIsEnabled_trueWithKeyguardLocked_sensorPrivacyNotModified() {
+        ReflectionHelpers.setField(mSensorsOff, "mIsEnabled", false);
+        doReturn(true).when(mKeyguardManager).isKeyguardLocked();
+
+        mSensorsOff.setIsEnabled(true);
+
+        verify(mSensorPrivacyManager, never()).setAllSensorPrivacy(true);
+        assertThat(mSensorsOff.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void setIsEnabled_trueWithKeyguardUnlocked_sensorPrivacyModified() {
+        ReflectionHelpers.setField(mSensorsOff, "mIsEnabled", false);
+        doReturn(false).when(mKeyguardManager).isKeyguardLocked();
+
+        mSensorsOff.setIsEnabled(true);
+
+        verify(mSensorPrivacyManager, times(1)).setAllSensorPrivacy(true);
+        assertThat(mSensorsOff.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void setIsEnabled_falseWithKeyguardLocked_sensorPrivacyNotModified() {
+        ReflectionHelpers.setField(mSensorsOff, "mIsEnabled", true);
+        doReturn(true).when(mKeyguardManager).isKeyguardLocked();
+
+        mSensorsOff.setIsEnabled(false);
+
+        verify(mSensorPrivacyManager, never()).setAllSensorPrivacy(false);
+        assertThat(mSensorsOff.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void setIsEnabled_falseWithKeyguardUnlocked_sensorPrivacyModified() {
+        ReflectionHelpers.setField(mSensorsOff, "mIsEnabled", true);
+        doReturn(false).when(mKeyguardManager).isKeyguardLocked();
+
+        mSensorsOff.setIsEnabled(false);
+
+        verify(mSensorPrivacyManager, times(1)).setAllSensorPrivacy(false);
+        assertThat(mSensorsOff.isEnabled()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java b/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java
deleted file mode 100644
index ad495c7..0000000
--- a/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java
+++ /dev/null
@@ -1,259 +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.development.qstile;
-
-import static com.android.settings.development.qstile.DevelopmentTiles.WinscopeTrace.SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE;
-import static com.android.settings.development.qstile.DevelopmentTiles.WinscopeTrace.SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.isNull;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.view.IWindowManager;
-import android.widget.Toast;
-
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.internal.inputmethod.ImeTracing;
-import com.android.settings.testutils.shadow.ShadowParcel;
-
-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;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-public class WinscopeTraceTest {
-
-    @Mock
-    private IWindowManager mWindowManager;
-    @Mock
-    private ImeTracing mImeTracing;
-    @Mock
-    private IBinder mSurfaceFlinger;
-    @Mock
-    private Toast mToast;
-
-    private DevelopmentTiles.WinscopeTrace mWinscopeTrace;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mWinscopeTrace = spy(new DevelopmentTiles.WinscopeTrace());
-        doReturn(ApplicationProvider.getApplicationContext()).when(
-                mWinscopeTrace).getApplicationContext();
-
-        ReflectionHelpers.setField(mWinscopeTrace, "mWindowManager", mWindowManager);
-        ReflectionHelpers.setField(mWinscopeTrace, "mImeTracing", mImeTracing);
-        ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", mSurfaceFlinger);
-        ReflectionHelpers.setField(mWinscopeTrace, "mToast", mToast);
-    }
-
-    @After
-    public void teardown() {
-        verifyNoMoreInteractions(mToast);
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void wmReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
-        // Assume Surface Trace and Input Method Manager are disabled.
-        ShadowParcel.sReadBoolResult = false;
-        doReturn(true).when(mWindowManager).isWindowTraceEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isTrue();
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void sfReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
-        // Assume Window Trace and Input Method Manager are disabled.
-        doReturn(false).when(mWindowManager).isWindowTraceEnabled();
-        doReturn(false).when(mImeTracing).isEnabled();
-        ShadowParcel.sReadBoolResult = true;
-        assertThat(mWinscopeTrace.isEnabled()).isTrue();
-        verify(mSurfaceFlinger)
-                .transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
-                        eq(0 /* flags */));
-        verifyNoMoreInteractions(mSurfaceFlinger);
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void sfAndWmReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
-        ShadowParcel.sReadBoolResult = true;
-        doReturn(true).when(mWindowManager).isWindowTraceEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void wmAndSfAndImmReturnTraceDisabled_shouldReturnDisabled() throws RemoteException {
-        ShadowParcel.sReadBoolResult = false;
-        doReturn(false).when(mWindowManager).isWindowTraceEnabled();
-        doReturn(false).when(mImeTracing).isEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isFalse();
-        verify(mSurfaceFlinger)
-                .transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
-                        eq(0 /* flags */));
-        verifyNoMoreInteractions(mSurfaceFlinger);
-    }
-
-    @Test
-    public void wmAndSfReturnTraceDisabled_immReturnsTraceEnabled_shouldReturnEnabled()
-            throws RemoteException {
-        ShadowParcel.sReadBoolResult = false;
-        doReturn(false).when(mWindowManager).isWindowTraceEnabled();
-        doReturn(true).when(mImeTracing).isEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isTrue();
-        verify(mSurfaceFlinger)
-                .transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
-                        eq(0 /* flags */));
-        verifyNoMoreInteractions(mSurfaceFlinger);
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void immReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
-        // Assume Window Manager and Surface Trace are disabled.
-        ShadowParcel.sReadBoolResult = false;
-        doReturn(true).when(mImeTracing).isEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isTrue();
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void immReturnsTraceDisabled_shouldReturnDisabled() throws RemoteException {
-        // Assume Window Manager and Surface Trace are disabled.
-        ShadowParcel.sReadBoolResult = false;
-        doReturn(false).when(mImeTracing).isEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isFalse();
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void wmThrowsRemoteExAndSfReturnsTraceDisabled_shouldReturnDisabled()
-            throws RemoteException {
-        ShadowParcel.sReadBoolResult = false;
-        doThrow(new RemoteException("Unknown"))
-                .when(mWindowManager).isWindowTraceEnabled();
-        assertThat(mWinscopeTrace.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void sfUnavailableAndWmAndImmReturnTraceDisabled_shouldReturnDisabled()
-            throws RemoteException {
-        doReturn(false).when(mWindowManager).isWindowTraceEnabled();
-        doReturn(false).when(mImeTracing).isEnabled();
-        ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", null);
-        assertThat(mWinscopeTrace.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void setIsEnableTrue_shouldEnableWindowTrace() throws RemoteException {
-        mWinscopeTrace.setIsEnabled(true);
-        verify(mWindowManager).startWindowTrace();
-        verifyNoMoreInteractions(mWindowManager);
-    }
-
-    @Test
-    public void setIsEnableTrue_shouldEnableImeTrace() throws RemoteException {
-        mWinscopeTrace.setIsEnabled(true);
-        verify(mImeTracing).startImeTrace();
-        verifyNoMoreInteractions(mImeTracing);
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void setIsEnableTrue_shouldEnableLayerTrace() throws RemoteException {
-        mWinscopeTrace.setIsEnabled(true);
-        assertThat(ShadowParcel.sWriteIntResult).isEqualTo(1);
-        verify(mSurfaceFlinger)
-                .transact(eq(SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE), any(), isNull(),
-                        eq(0 /* flags */));
-        verifyNoMoreInteractions(mSurfaceFlinger);
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void setIsEnableFalse_shouldDisableWindowTrace() throws RemoteException {
-        mWinscopeTrace.setIsEnabled(false);
-        verify(mWindowManager).stopWindowTrace();
-        verifyNoMoreInteractions(mWindowManager);
-        verify(mToast).show();
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void setIsEnableFalse_shouldDisableImeTrace() throws RemoteException {
-        mWinscopeTrace.setIsEnabled(false);
-        verify(mImeTracing).stopImeTrace();
-        verifyNoMoreInteractions(mImeTracing);
-        verify(mToast).show();
-    }
-
-    @Test
-    @Config(shadows = ShadowParcel.class)
-    public void setIsEnableFalse_shouldDisableLayerTrace() throws RemoteException {
-        mWinscopeTrace.setIsEnabled(false);
-        assertThat(ShadowParcel.sWriteIntResult).isEqualTo(0);
-        verify(mSurfaceFlinger)
-                .transact(eq(SURFACE_FLINGER_LAYER_TRACE_CONTROL_CODE), any(), isNull(),
-                        eq(0 /* flags */));
-        verifyNoMoreInteractions(mSurfaceFlinger);
-        verify(mToast).show();
-    }
-
-    @Test
-    public void setIsEnableFalse_shouldShowToast() {
-        mWinscopeTrace.setIsEnabled(false);
-        verify(mToast).show();
-    }
-
-    /**
-     * Verify when window manager call throws a remote exception, it is handled without
-     * re-throwing the exception.
-     */
-    @Test
-    public void setIsEnableAndWmThrowsRemoteException_shouldFailGracefully()
-            throws RemoteException {
-        doThrow(new RemoteException("Unknown")).when(mWindowManager).isWindowTraceEnabled();
-        mWinscopeTrace.setIsEnabled(true);
-    }
-
-    /**
-     * Verify is surface flinger is not available not calls are made to it.
-     */
-    @Test
-    public void setIsEnableAndSfUnavailable_shouldFailGracefully() {
-        ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", null);
-        mWinscopeTrace.setIsEnabled(true);
-        verifyNoMoreInteractions(mSurfaceFlinger);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/development/quarantine/QuarantinedAppsScreenControllerTest.java b/tests/robotests/src/com/android/settings/development/quarantine/QuarantinedAppsScreenControllerTest.java
new file mode 100644
index 0000000..a93e529
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/quarantine/QuarantinedAppsScreenControllerTest.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.development.quarantine;
+
+import static org.mockito.AdditionalMatchers.aryEq;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.SuspendDialogInfo;
+import android.os.UserHandle;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class QuarantinedAppsScreenControllerTest {
+    private static final String PREF_KEY = "quarantined_apps_screen";
+    private static final String TEST_PACKAGE = "com.example.test.pkg";
+    private static final int TEST_APP_ID = 1234;
+    private static final int TEST_USER_ID = 10;
+
+    private Context mContext;
+    private QuarantinedAppsScreenController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mController = new QuarantinedAppsScreenController(mContext, PREF_KEY);
+    }
+
+    @Test
+    public void testOnPreferenceChange() {
+        final Context userContext = mock(Context.class);
+        doReturn(userContext).when(mContext).createContextAsUser(
+                eq(UserHandle.of(TEST_USER_ID)), anyInt());
+        final PackageManager packageManager = mock(PackageManager.class);
+        doReturn(packageManager).when(userContext).getPackageManager();
+
+        final AppEntry entry = createAppEntry(TEST_PACKAGE, TEST_APP_ID, TEST_USER_ID);
+        final QuarantinedAppPreference preference = new QuarantinedAppPreference(mContext, entry);
+
+        mController.onPreferenceChange(preference, true);
+        verify(packageManager).setPackagesSuspended(aryEq(new String[] {TEST_PACKAGE}), eq(true),
+                isNull(), isNull(), any(SuspendDialogInfo.class),
+                eq(PackageManager.FLAG_SUSPEND_QUARANTINED));
+
+        mController.onPreferenceChange(preference, false);
+        verify(packageManager).setPackagesSuspended(aryEq(new String[] {TEST_PACKAGE}), eq(false),
+                isNull(), isNull(), isNull(),
+                eq(PackageManager.FLAG_SUSPEND_QUARANTINED));
+    }
+
+    private AppEntry createAppEntry(String packageName, int appId, int userId) {
+        final AppEntry entry = mock(AppEntry.class);
+        entry.info = createApplicationInfo(packageName, appId, userId);
+        entry.extraInfo = false;
+        return entry;
+    }
+
+    private ApplicationInfo createApplicationInfo(String packageName, int appId, int userId) {
+        final ApplicationInfo info = new ApplicationInfo();
+        info.packageName = packageName;
+        info.uid = UserHandle.getUid(userId, appId);
+        return info;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceTest.java b/tests/robotests/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceTest.java
index 56f29ba..a8faabe 100644
--- a/tests/robotests/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/development/snooplogger/SnoopLoggerFiltersPreferenceTest.java
@@ -18,8 +18,6 @@
 
 import android.content.Context;
 
-import com.android.settings.R;
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -39,9 +37,11 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        sKEY = mContext.getResources().getStringArray(R.array.bt_hci_snoop_log_filters_values)[0];
+        sKEY = mContext.getResources().getStringArray(
+                com.android.settingslib.R.array.bt_hci_snoop_log_filters_values)[0];
         sENTRY =
-                mContext.getResources().getStringArray(R.array.bt_hci_snoop_log_filters_entries)[0];
+                mContext.getResources().getStringArray(
+                        com.android.settingslib.R.array.bt_hci_snoop_log_filters_entries)[0];
         mPreference = new SnoopLoggerFiltersPreference(mContext, sKEY, sENTRY);
     }
 
diff --git a/tests/robotests/src/com/android/settings/development/storage/SharedDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/storage/SharedDataPreferenceControllerTest.java
index 88904df..251d354 100644
--- a/tests/robotests/src/com/android/settings/development/storage/SharedDataPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/storage/SharedDataPreferenceControllerTest.java
@@ -31,8 +31,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -78,8 +76,8 @@
         mController.updateState(mPreference);
 
         verify(mPreference).setEnabled(true);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.shared_data_summary));
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.shared_data_summary));
     }
 
     @Test
@@ -88,8 +86,8 @@
         mController.updateState(mPreference);
 
         verify(mPreference).setEnabled(false);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.shared_data_no_blobs_text));
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.shared_data_no_blobs_text));
     }
 
     @Test
@@ -98,8 +96,8 @@
         mController.updateState(mPreference);
 
         verify(mPreference).setEnabled(false);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.shared_data_no_blobs_text));
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getString(com.android.settingslib.R.string.shared_data_no_blobs_text));
     }
 
     private List<BlobInfo> generateBlobList() {
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
index 9cb1d56..4704475 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
@@ -31,9 +31,11 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = ShadowStorageManager.class)
 public class PrivateVolumeUnmountTest {
 
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
index ff8ea62..7c1650d2 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryFirstUseDatePreferenceControllerTest.java
@@ -34,6 +34,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -75,6 +76,7 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
+    @Ignore("b/315267179")
     @Test
     public void getSummary_available_returnExpectedDate() {
         when(mFactory.batterySettingsFeatureProvider.isFirstUseDateAvailable(eq(mContext),
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragmentTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragmentTest.java
new file mode 100644
index 0000000..d0dda84
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoFragmentTest.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.deviceinfo.batteryinfo;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(org.robolectric.RobolectricTestRunner.class)
+public class BatteryInfoFragmentTest {
+    private Context mContext;
+    private FakeFeatureFactory mFactory;
+    private BatteryInfoFragment mFragment;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mFactory = FakeFeatureFactory.setupForTest();
+        mFragment = new BatteryInfoFragment();
+    }
+
+    @Test
+    public void isPageSearchEnabled_batteryInfoEnabled_returnTrue() {
+        when(mFactory.batterySettingsFeatureProvider.isBatteryInfoEnabled(mContext))
+                .thenReturn(true);
+
+        final BaseSearchIndexProvider provider =
+                (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
+
+        final Object obj =
+                org.robolectric.util.ReflectionHelpers.callInstanceMethod(
+                        provider, /*methodName=*/ "isPageSearchEnabled",
+                        ReflectionHelpers.ClassParameter.from(Context.class, mContext));
+        final boolean isEnabled = (Boolean) obj;
+        assertThat(isEnabled).isTrue();
+    }
+
+    @Test
+    public void isPageSearchEnabled_batteryInfoDisabled_returnFalse() {
+        when(mFactory.batterySettingsFeatureProvider.isBatteryInfoEnabled(mContext))
+                .thenReturn(false);
+
+        final BaseSearchIndexProvider provider =
+                (BaseSearchIndexProvider) mFragment.SEARCH_INDEX_DATA_PROVIDER;
+
+        final Object obj =
+                org.robolectric.util.ReflectionHelpers.callInstanceMethod(
+                        provider, /*methodName=*/ "isPageSearchEnabled",
+                        ReflectionHelpers.ClassParameter.from(Context.class, mContext));
+        final boolean isEnabled = (Boolean) obj;
+        assertThat(isEnabled).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoPreferenceControllerTest.java
new file mode 100644
index 0000000..6d54e6b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryInfoPreferenceControllerTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.batteryinfo;
+
+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.when;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class BatteryInfoPreferenceControllerTest {
+    private Context mContext;
+    private BatteryInfoPreferenceController mController;
+    private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mBatterySettingsFeatureProvider =
+                FakeFeatureFactory.setupForTest().batterySettingsFeatureProvider;
+        mController = new BatteryInfoPreferenceController(mContext, /* key= */"battery_info");
+    }
+
+    @Test
+    public void getAvailabilityStatus_dateUnavailable_returnNotAvailable() {
+        when(mBatterySettingsFeatureProvider.isBatteryInfoEnabled(mContext)).thenReturn(false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_dateAvailable_returnAvailable() {
+        when(mBatterySettingsFeatureProvider.isBatteryInfoEnabled(mContext)).thenReturn(true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
index 608ce00..e50aa1c 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/batteryinfo/BatteryManufactureDatePreferenceControllerTest.java
@@ -34,6 +34,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -76,6 +77,7 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
+    @Ignore("b/315267179")
     @Test
     public void getSummary_available_returnExpectedDate() {
         when(mFactory.batterySettingsFeatureProvider.isManufactureDateAvailable(eq(mContext),
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
index 35e044c..7cd6734 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
@@ -32,10 +32,14 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+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 org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -46,6 +50,11 @@
 @RunWith(RobolectricTestRunner.class)
 public class MainlineModuleVersionPreferenceControllerTest {
 
+    private static final String MODULE_PACKAGE = "com.android.vending";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Mock
     private PackageManager mPackageManager;
 
@@ -58,6 +67,9 @@
         mContext = spy(RuntimeEnvironment.application);
         mPreference = new Preference(mContext);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mContext
+                 .getString(com.android.settings.R.string.config_mainline_module_update_package))
+                .thenReturn(MODULE_PACKAGE);
     }
 
     @Test
@@ -123,6 +135,7 @@
         assertThat(mPreference.isSelectable()).isTrue();
     }
 
+    @RequiresFlagsEnabled(com.android.settings.flags.Flags.FLAG_MAINLINE_MODULE_EXPLICIT_INTENT)
     @Test
     public void updateState_canHandleIntent_setIntentToPreference() throws Exception {
         setupModulePackage("test version 123");
@@ -137,6 +150,7 @@
         assertThat(mPreference.getIntent()).isEqualTo(MODULE_UPDATE_INTENT);
     }
 
+    @RequiresFlagsEnabled(com.android.settings.flags.Flags.FLAG_MAINLINE_MODULE_EXPLICIT_INTENT)
     @Test
     public void updateState_canHandleIntent_preferenceShouldBeSelectable() throws Exception {
         setupModulePackage("test version 123");
@@ -151,6 +165,7 @@
         assertThat(mPreference.isSelectable()).isTrue();
     }
 
+    @RequiresFlagsEnabled(com.android.settings.flags.Flags.FLAG_MAINLINE_MODULE_EXPLICIT_INTENT)
     @Test
     public void updateState_cannotHandleIntent_setNullToPreference() throws Exception {
         setupModulePackage("test version 123");
@@ -184,7 +199,7 @@
         final MainlineModuleVersionPreferenceController controller =
                 new MainlineModuleVersionPreferenceController(mContext, "key");
 
-        assertThat(controller.getSummary()).isEqualTo("May 01, 2019");
+        assertThat(controller.getSummary()).isEqualTo("May 1, 2019");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelPreferenceControllerTest.java
index 9da9e20..ccc91e6 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/SecurityPatchLevelPreferenceControllerTest.java
@@ -35,8 +35,6 @@
 
 import androidx.preference.Preference;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -60,8 +58,7 @@
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = spy((Context) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get());
+        mContext = spy(Robolectric.setupActivity(Activity.class));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java
index 6699b34..96324fa 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java
@@ -54,8 +54,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ImeiInfoPreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/legal/ModuleLicensePreferenceTest.java b/tests/robotests/src/com/android/settings/deviceinfo/legal/ModuleLicensePreferenceTest.java
index 304c5a5..1352402 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/legal/ModuleLicensePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/legal/ModuleLicensePreferenceTest.java
@@ -23,10 +23,7 @@
 import android.content.Intent;
 import android.content.pm.ModuleInfo;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -44,8 +41,7 @@
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        mContext = (Context) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mContext = Robolectric.setupActivity(Activity.class);
         mModuleInfo = new ModuleInfo();
         mModuleInfo.setPackageName(PACKAGE_NAME);
         mModuleInfo.setName(NAME);
@@ -60,7 +56,6 @@
     }
 
     @Test
-    @Ignore
     public void onClick_sendsCorrectIntent() {
         ModuleLicensePreference pref = new ModuleLicensePreference(mContext, mModuleInfo);
 
@@ -72,7 +67,7 @@
                 .isEqualTo(ModuleLicenseProvider.getUriForPackage(PACKAGE_NAME));
         assertThat(intent.getType()).isEqualTo(ModuleLicenseProvider.LICENSE_FILE_MIME_TYPE);
         assertThat(intent.getCharSequenceExtra(Intent.EXTRA_TITLE)).isEqualTo(NAME);
-        assertThat(intent.getFlags()).isEqualTo(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        assertThat((intent.getFlags() & Intent.FLAG_GRANT_READ_URI_PERMISSION)).isNotEqualTo(0);
         assertThat(intent.getCategories()).contains(Intent.CATEGORY_DEFAULT);
         assertThat(intent.getPackage()).isEqualTo("com.android.htmlviewer");
     }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/legal/WallpaperAttributionsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/legal/WallpaperAttributionsPreferenceControllerTest.java
index 7831207..c06f069 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/legal/WallpaperAttributionsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/legal/WallpaperAttributionsPreferenceControllerTest.java
@@ -22,7 +22,6 @@
 import com.android.settings.core.BasePreferenceController;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -49,7 +48,6 @@
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_ifNotVisible_false() {
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java
index 3552e16..995bef6 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceControllerTest.java
@@ -45,7 +45,6 @@
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.deletionhelper.ActivationWarningFragment;
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.PrimarySwitchPreference;
 
@@ -83,7 +82,6 @@
                 .getSystemService(Context.DEVICE_POLICY_SERVICE);
         doReturn(mock(DevicePolicyManager.class)).when(mMockContext)
                 .getSystemService(Context.DEVICE_POLICY_SERVICE);
-        FeatureFactory.getFactory(mContext);
         mResources = spy(mContext.getResources());
         when(mContext.getResources()).thenReturn(mResources);
 
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 5fcb9c1..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;
@@ -67,6 +68,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class StorageItemPreferenceControllerTest {
 
     private Context mContext;
@@ -96,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.
@@ -122,7 +126,7 @@
         final StorageItemPreference documentsAndOther = spy(new StorageItemPreference(mContext));
         documentsAndOther.setIcon(R.drawable.ic_folder_vd_theme_24);
         final StorageItemPreference system = spy(new StorageItemPreference(mContext));
-        system.setIcon(R.drawable.ic_system_update);
+        system.setIcon(com.android.settingslib.R.drawable.ic_system_update);
         final StorageItemPreference trash = spy(new StorageItemPreference(mContext));
         trash.setIcon(R.drawable.ic_trash_can);
 
@@ -172,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);
@@ -189,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);
@@ -239,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);
 
@@ -269,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);
@@ -304,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);
@@ -454,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/devicelock/DeviceLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/devicelock/DeviceLockPreferenceControllerTest.java
index 3176969..3b81c83 100644
--- a/tests/robotests/src/com/android/settings/devicelock/DeviceLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/devicelock/DeviceLockPreferenceControllerTest.java
@@ -93,4 +93,17 @@
         outcomeReceiver.onResult(TEST_KIOSK_APPS);
         assertThat(preference.isVisible()).isTrue();
     }
+
+    @Test
+    public void testUpdateState_preferenceBecomesInvisibleIfDeviceLockManagerIsNotAvailable() {
+        Context context = spy(mContext);
+        when(context.getSystemService(DeviceLockManager.class)).thenReturn(null);
+        mController = new DeviceLockPreferenceController(context, TEST_PREFERENCE_KEY);
+
+        Preference preference = new Preference(mContext, null, 0, 0);
+        preference.setVisible(true);
+
+        mController.updateState(preference);
+        assertThat(preference.isVisible()).isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/display/AlwaysOnDisplaySliceTest.java b/tests/robotests/src/com/android/settings/display/AlwaysOnDisplaySliceTest.java
index 217f921..74e0d78 100644
--- a/tests/robotests/src/com/android/settings/display/AlwaysOnDisplaySliceTest.java
+++ b/tests/robotests/src/com/android/settings/display/AlwaysOnDisplaySliceTest.java
@@ -37,9 +37,7 @@
 import androidx.slice.widget.SliceLiveData;
 
 import com.android.settings.R;
-import com.android.settings.aware.AwareFeatureProvider;
 import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -55,8 +53,6 @@
 
     private Context mContext;
     private AlwaysOnDisplaySlice mSlice;
-    private FakeFeatureFactory mFeatureFactory;
-    private AwareFeatureProvider mFeatureProvider;
 
     @Mock
     private AmbientDisplayConfiguration mConfig;
@@ -65,8 +61,6 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mFeatureProvider = mFeatureFactory.getAwareFeatureProvider();
 
         // Set-up specs for SliceMetadata.
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -116,11 +110,9 @@
     }
 
     @Test
-    public void onNotifyChange_toggleOn_awareNotSupported_enableAoD() {
+    public void onNotifyChange_toggleOn_enableAoD() {
         final Intent intent = new Intent();
         intent.putExtra(android.app.slice.Slice.EXTRA_TOGGLE_STATE, true);
-        when(mFeatureProvider.isEnabled(mContext)).thenReturn(false);
-        when(mFeatureProvider.isSupported(mContext)).thenReturn(false);
 
         mSlice.onNotifyChange(intent);
 
@@ -128,32 +120,4 @@
         assertThat(Settings.Secure.getInt(resolver, DOZE_ALWAYS_ON, 0)).isEqualTo(1);
         assertThat(Settings.Secure.getInt(resolver, DOZE_WAKE_DISPLAY_GESTURE, 0)).isEqualTo(0);
     }
-
-    @Test
-    public void onNotifyChange_toggleOn_awareDisabled_enableAoD() {
-        final Intent intent = new Intent();
-        intent.putExtra(android.app.slice.Slice.EXTRA_TOGGLE_STATE, true);
-        when(mFeatureProvider.isEnabled(mContext)).thenReturn(false);
-        when(mFeatureProvider.isSupported(mContext)).thenReturn(true);
-
-        mSlice.onNotifyChange(intent);
-
-        final ContentResolver resolver = mContext.getContentResolver();
-        assertThat(Settings.Secure.getInt(resolver, DOZE_ALWAYS_ON, 0)).isEqualTo(1);
-        assertThat(Settings.Secure.getInt(resolver, DOZE_WAKE_DISPLAY_GESTURE, 0)).isEqualTo(0);
-    }
-
-    @Test
-    public void onNotifyChange_toggleOn_awareSupported_enableAoD() {
-        final Intent intent = new Intent();
-        intent.putExtra(android.app.slice.Slice.EXTRA_TOGGLE_STATE, true);
-        when(mFeatureProvider.isEnabled(mContext)).thenReturn(true);
-        when(mFeatureProvider.isSupported(mContext)).thenReturn(true);
-
-        mSlice.onNotifyChange(intent);
-
-        final ContentResolver resolver = mContext.getContentResolver();
-        assertThat(Settings.Secure.getInt(resolver, DOZE_ALWAYS_ON, 0)).isEqualTo(1);
-        assertThat(Settings.Secure.getInt(resolver, DOZE_WAKE_DISPLAY_GESTURE, 0)).isEqualTo(1);
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java
index 5d8d46b..19eac82 100644
--- a/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/AmbientDisplayAlwaysOnPreferenceControllerTest.java
@@ -36,7 +36,6 @@
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -133,25 +132,23 @@
     }
 
     @Test
-    public void isSliceableCorrectKey_returnsTrue() {
+    public void isPublicSliceCorrectKey_returnsTrue() {
         final AmbientDisplayAlwaysOnPreferenceController controller =
                 new AmbientDisplayAlwaysOnPreferenceController(mContext,
                         "ambient_display_always_on");
-        assertThat(controller.isSliceable()).isTrue();
+        assertThat(controller.isPublicSlice()).isTrue();
     }
 
-    @Ignore
     @Test
-    public void isSliceableIncorrectKey_returnsFalse() {
+    public void isPublicSliceIncorrectKey_returnsFalse() {
         final AmbientDisplayAlwaysOnPreferenceController controller =
                 new AmbientDisplayAlwaysOnPreferenceController(mContext, "bad_key");
-        assertThat(controller.isSliceable()).isFalse();
+        assertThat(controller.isPublicSlice()).isFalse();
     }
 
-    @Ignore
     @Test
-    public void isPublicSlice_returnTrue() {
-        assertThat(mController.isPublicSlice()).isTrue();
+    public void isSliceable_returnTrue() {
+        assertThat(mController.isSliceable()).isTrue();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
index 5611e93..fd91867 100644
--- a/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
@@ -50,6 +50,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
 public class AutoRotatePreferenceControllerTest {
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -187,15 +190,17 @@
     private void enableAutoRotationPreference() {
         when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
         when(mContext.getResources().getBoolean(anyInt())).thenReturn(true);
-        Settings.System.putInt(mContentResolver,
-                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0);
+        Settings.System.putIntForUser(mContentResolver,
+                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0,
+                UserHandle.USER_CURRENT);
     }
 
     private void disableAutoRotationPreference() {
         when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
         when(mContext.getResources().getBoolean(anyInt())).thenReturn(true);
-        Settings.System.putInt(mContentResolver,
-                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 1);
+        Settings.System.putIntForUser(mContentResolver,
+                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 1,
+                UserHandle.USER_CURRENT);
     }
 
     private void enableAutoRotation() {
diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
index 673771d..bbc9cf3 100644
--- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -21,6 +21,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -39,7 +40,6 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.core.SettingsBaseActivity;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.transition.SettingsTransitionHelper;
 
 import org.junit.Before;
@@ -85,7 +85,7 @@
         ShadowApplication.getInstance().setSystemService(POWER_SERVICE,
                 mPowerManager);
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
-        when(mContext.getDisplay()).thenReturn(mDisplay);
+        doReturn(mDisplay).when(mContext).getDisplay();
         mController = spy(new BrightnessLevelPreferenceController(mContext, null));
     }
 
@@ -165,9 +165,7 @@
 
     @Test
     public void handlePreferenceTreeClick_transitionTypeNone_shouldPassToNextActivity() {
-        final Activity activity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
-
+        final Activity activity = Robolectric.setupActivity(Activity.class);
         final BrightnessLevelPreferenceController controller =
                 new BrightnessLevelPreferenceController(activity, null);
         final ShadowActivity shadowActivity = shadowOf(activity);
diff --git a/tests/robotests/src/com/android/settings/display/ControlsTrivialPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/ControlsTrivialPrivacyPreferenceControllerTest.java
index f276af0..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;
@@ -44,7 +45,6 @@
 import com.android.settings.core.BasePreferenceController;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -147,7 +147,6 @@
         verify(mPreference, atLeastOnce()).setSummary(mController.getSummary());
     }
 
-    @Ignore
     @Test
     public void updateStateWithCustomizableLockScreenQuickAffordancesEnabled() {
         setCustomizableLockScreenQuickAffordancesEnabled(true);
@@ -168,7 +167,6 @@
                 BasePreferenceController.DISABLED_DEPENDENT_SETTING);
     }
 
-    @Ignore
     @Test
     public void getAvailabilityStatusWithCustomizableLockScreenQuickAffordancesEnabled() {
         setCustomizableLockScreenQuickAffordancesEnabled(true);
@@ -223,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/FoldLockBehaviorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java
index 2510bf1..4fc56b0 100644
--- a/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java
@@ -25,9 +25,8 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.content.res.Resources;
 
-import com.android.internal.R;
+import com.android.internal.foldables.FoldLockSettingAvailabilityProvider;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -41,27 +40,29 @@
 public class FoldLockBehaviorPreferenceControllerTest {
 
     @Mock
-    private Resources mResources;
+    private FoldLockSettingAvailabilityProvider mFoldLockSettingAvailabilityProvider;
     private Context mContext;
     private FoldLockBehaviorPreferenceController mController;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        mResources = Mockito.mock(Resources.class);
-        mController = new FoldLockBehaviorPreferenceController(mContext, "key", mResources);
+        mFoldLockSettingAvailabilityProvider = Mockito.mock(
+                FoldLockSettingAvailabilityProvider.class);
+        mController = new FoldLockBehaviorPreferenceController(mContext, "key",
+                mFoldLockSettingAvailabilityProvider);
     }
 
     @Test
     public void getAvailabilityStatus_withConfigNoShow_returnUnsupported() {
-        when(mResources.getBoolean(R.bool.config_fold_lock_behavior)).thenReturn(false);
+        when(mFoldLockSettingAvailabilityProvider.isFoldLockBehaviorAvailable()).thenReturn(false);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
     public void getAvailabilityStatus_withConfigNoShow_returnAvailable() {
-        when(mResources.getBoolean(R.bool.config_fold_lock_behavior)).thenReturn(true);
+        when(mFoldLockSettingAvailabilityProvider.isFoldLockBehaviorAvailable()).thenReturn(true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
diff --git a/tests/robotests/src/com/android/settings/display/FoldLockBehaviorSettingsTest.java b/tests/robotests/src/com/android/settings/display/FoldLockBehaviorSettingsTest.java
index 37b9391..991f529 100644
--- a/tests/robotests/src/com/android/settings/display/FoldLockBehaviorSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/FoldLockBehaviorSettingsTest.java
@@ -24,13 +24,19 @@
 import android.os.UserHandle;
 import android.provider.Settings;
 
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
 import org.junit.Before;
 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 = {
+    ShadowSystemSettings.class,
+})
 public class FoldLockBehaviorSettingsTest {
 
     private Context mContext;
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..cb0963b 100644
--- a/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/PeakRefreshRatePreferenceControllerTest.java
@@ -16,21 +16,31 @@
 
 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.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
-import android.view.Display;
 
 import androidx.preference.SwitchPreference;
 
+import com.android.server.display.feature.flags.Flags;
+
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
@@ -42,10 +52,19 @@
     private PeakRefreshRatePreferenceController mController;
     private SwitchPreference mPreference;
 
+    @Mock
+    private PeakRefreshRatePreferenceController.DeviceConfigDisplaySettings
+            mDeviceConfigDisplaySettings;
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @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 +89,25 @@
     }
 
     @Test
-    public void setChecked_enableSmoothDisplay_setCurrentRefreshRate() {
+    @RequiresFlagsDisabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
+    public void setChecked_enableSmoothDisplay_featureFlagOff() {
         mController.mPeakRefreshRate = 88f;
         mController.setChecked(true);
 
         assertThat(Settings.System.getFloat(mContext.getContentResolver(),
                 Settings.System.PEAK_REFRESH_RATE, DEFAULT_REFRESH_RATE))
-                .isEqualTo(88.0f);
+                .isEqualTo(88f);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_BACK_UP_SMOOTH_DISPLAY_AND_FORCE_PEAK_REFRESH_RATE)
+    public void setChecked_enableSmoothDisplay_featureFlagOn() {
+        mController.mPeakRefreshRate = 88f;
+        mController.setChecked(true);
+
+        assertThat(Settings.System.getFloat(mContext.getContentResolver(),
+                Settings.System.PEAK_REFRESH_RATE, DEFAULT_REFRESH_RATE))
+                .isPositiveInfinity();
     }
 
     @Test
@@ -91,48 +122,34 @@
 
     @Test
     public void isChecked_enableSmoothDisplay_returnTrue() {
-        enableSmoothDisplayPreference();
+        mController.mPeakRefreshRate = 88f;
+        mController.setChecked(true);
 
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
     public void isChecked_disableSmoothDisplay_returnFalse() {
-        disableSmoothDisplayPreference();
+        mController.mPeakRefreshRate = 88f;
+        mController.setChecked(false);
 
         assertThat(mController.isChecked()).isFalse();
     }
 
     @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();
     }
 
-    private void enableSmoothDisplayPreference() {
+    @Test
+    public void isChecked_default_returnFalse() {
         mController.mPeakRefreshRate = 88f;
+        when(mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate()).thenReturn(60f);
 
-        Settings.System.putFloat(
-                mContext.getContentResolver(),
-                Settings.System.PEAK_REFRESH_RATE,
-                mController.mPeakRefreshRate);
-    }
-
-    private void disableSmoothDisplayPreference() {
-        mController.mPeakRefreshRate = 88f;
-
-        Settings.System.putFloat(
-                mContext.getContentResolver(),
-                Settings.System.PEAK_REFRESH_RATE,
-                DEFAULT_REFRESH_RATE);
+        assertThat(mController.isChecked()).isFalse();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
index 009ac53..1a6a112 100644
--- a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
@@ -33,6 +33,7 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.KeyguardManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.ContentResolver;
 import android.content.Context;
@@ -41,27 +42,44 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.content.res.Resources;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.SearchIndexableResource;
 import android.provider.Settings;
 
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.widget.CandidateInfo;
 import com.android.settingslib.widget.FooterPreference;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowKeyguardManager;
 
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+        ShadowKeyguardManager.class
+})
 public class ScreenTimeoutSettingsTest {
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String[] TIMEOUT_ENTRIES = new String[]{"15 secs", "30 secs"};
     private static final String[] TIMEOUT_VALUES = new String[]{"15000", "30000"};
 
@@ -89,6 +107,9 @@
     FooterPreference mDisableOptionsPreference;
 
     @Mock
+    FooterPreference mPowerConsumptionPreference;
+
+    @Mock
     private PackageManager mPackageManager;
 
     @Before
@@ -178,11 +199,28 @@
     public void updateCandidates_enforcedAdmin_showDisabledByAdminPreference() {
         mSettings.mAdmin = new RestrictedLockUtils.EnforcedAdmin();
         mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
+        mSettings.mPowerConsumptionPreference = mPowerConsumptionPreference;
         doNothing().when(mSettings).setupDisabledFooterPreference();
+        doNothing().when(mSettings).setupPowerConsumptionFooterPreference();
 
         mSettings.updateCandidates();
 
         verify(mPreferenceScreen, atLeast(1)).addPreference(mDisableOptionsPreference);
+        verify(mPreferenceScreen, never()).addPreference(mPowerConsumptionPreference);
+    }
+
+    @Test
+    public void updateCandidates_withoutAdmin_showPowerConsumptionPreference() {
+        mSettings.mAdmin = null;
+        mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
+        mSettings.mPowerConsumptionPreference = mPowerConsumptionPreference;
+        doNothing().when(mSettings).setupDisabledFooterPreference();
+        doNothing().when(mSettings).setupPowerConsumptionFooterPreference();
+
+        mSettings.updateCandidates();
+
+        verify(mPreferenceScreen, never()).addPreference(mDisableOptionsPreference);
+        verify(mPreferenceScreen, atLeast(1)).addPreference(mPowerConsumptionPreference);
     }
 
     @Test
@@ -194,4 +232,85 @@
 
         assertThat(Long.toString(timeout)).isEqualTo(TIMEOUT_VALUES[0]);
     }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PROTECT_SCREEN_TIMEOUT_WITH_AUTH)
+    public void onClick_whenUserAlreadyAuthenticated_buttonChecked() {
+        String key = "222";
+        String defaultKey = "1";
+        mSettings.setDefaultKey(defaultKey);
+        CandidateInfo info = new ScreenTimeoutSettings.TimeoutCandidateInfo("label", key, false);
+        ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference pref =
+                new ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference(
+                        mContext, info.getKey(), mSettings);
+        mSettings.bindPreference(pref, info.getKey(), info, defaultKey);
+        mSettings.setUserAuthenticated(true);
+
+        pref.onClick();
+
+        assertThat(mSettings.getDefaultKey()).isEqualTo(key);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PROTECT_SCREEN_TIMEOUT_WITH_AUTH)
+    public void onClick_whenButtonAlreadyChecked_noAuthNeeded() {
+        String key = "222";
+        mSettings.setDefaultKey(key);
+        CandidateInfo info = new ScreenTimeoutSettings.TimeoutCandidateInfo("label", key, false);
+        ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference pref =
+                new ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference(
+                        mContext, info.getKey(), mSettings);
+        mSettings.bindPreference(pref, info.getKey(), info, key);
+        mSettings.setUserAuthenticated(false);
+        setAuthPassesAutomatically();
+
+        pref.onClick();
+
+        assertThat(mSettings.isUserAuthenticated()).isFalse();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PROTECT_SCREEN_TIMEOUT_WITH_AUTH)
+    public void onClick_whenReducingTimeout_noAuthNeeded() {
+        String key = "1";
+        String defaultKey = "222";
+        mSettings.setDefaultKey(defaultKey);
+        CandidateInfo info = new ScreenTimeoutSettings.TimeoutCandidateInfo("label", key, false);
+        ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference pref =
+                new ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference(
+                        mContext, info.getKey(), mSettings);
+        mSettings.bindPreference(pref, info.getKey(), info, defaultKey);
+        mSettings.setUserAuthenticated(false);
+        setAuthPassesAutomatically();
+
+        pref.onClick();
+
+        assertThat(mSettings.isUserAuthenticated()).isFalse();
+        assertThat(mSettings.getDefaultKey()).isEqualTo(key);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PROTECT_SCREEN_TIMEOUT_WITH_AUTH)
+    public void onClick_whenIncreasingTimeout_authNeeded() {
+        String key = "222";
+        String defaultKey = "1";
+        mSettings.setDefaultKey(defaultKey);
+        CandidateInfo info = new ScreenTimeoutSettings.TimeoutCandidateInfo("label", key, false);
+        ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference pref =
+                new ScreenTimeoutSettings.ProtectedSelectorWithWidgetPreference(
+                        mContext, info.getKey(), mSettings);
+        mSettings.bindPreference(pref, info.getKey(), info, defaultKey);
+        mSettings.setUserAuthenticated(false);
+        setAuthPassesAutomatically();
+
+        pref.onClick();
+
+        assertThat(mSettings.getDefaultKey()).isEqualTo(key);
+        assertThat(mSettings.isUserAuthenticated()).isTrue();
+    }
+
+    private void setAuthPassesAutomatically() {
+        Shadows.shadowOf(mContext.getSystemService(KeyguardManager.class))
+                .setIsKeyguardSecure(false);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
index 4596364..63395d1 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
@@ -42,6 +42,7 @@
 import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
 import com.android.settings.testutils.shadow.ShadowRotationPolicy;
 import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
 import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
 
 import org.junit.Before;
@@ -56,7 +57,7 @@
 import org.robolectric.shadow.api.Shadow;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSensorPrivacyManager.class)
+@Config(shadows = {ShadowSensorPrivacyManager.class, ShadowSystemSettings.class})
 public class SmartAutoRotateControllerTest {
 
     private static final String PACKAGE_NAME = "package_name";
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java
index 0e7a86f..9f1b5d4 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceControllerTest.java
@@ -42,6 +42,7 @@
 import com.android.settings.testutils.ResolveInfoBuilder;
 import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
 import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -55,6 +56,7 @@
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
+        ShadowSystemSettings.class,
         ShadowSensorPrivacyManager.class,
         ShadowDeviceStateRotationLockSettingsManager.class
 })
@@ -234,15 +236,17 @@
     private void enableAutoRotationPreference() {
         when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
         when(mResources.getBoolean(anyInt())).thenReturn(true);
-        Settings.System.putInt(mContentResolver,
-                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0);
+        Settings.System.putIntForUser(mContentResolver,
+                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 0,
+                UserHandle.USER_CURRENT);
     }
 
     private void disableAutoRotationPreference() {
         when(mPackageManager.hasSystemFeature(anyString())).thenReturn(true);
         when(mResources.getBoolean(anyInt())).thenReturn(true);
-        Settings.System.putInt(mContentResolver,
-                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 1);
+        Settings.System.putIntForUser(mContentResolver,
+                Settings.System.HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY, 1,
+                UserHandle.USER_CURRENT);
     }
 
     private void enableAutoRotation() {
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
index 800dc5e..3fa4582 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.display;
 
+import static android.provider.Settings.Secure.DEVICE_STATE_ROTATION_LOCK_LOCKED;
+
 import static com.android.settings.display.SmartAutoRotatePreferenceFragment.AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY;
 import static com.android.settings.display.SmartAutoRotatePreferenceFragment.AUTO_ROTATE_SWITCH_PREFERENCE_KEY;
 
@@ -50,7 +52,6 @@
 import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -63,11 +64,17 @@
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
         ShadowDeviceStateRotationLockSettingsManager.class,
         ShadowRotationPolicy.class
 })
 public class SmartAutoRotatePreferenceFragmentTest {
 
+    private static final int STATE_FOLDED = 0;
+    private static final int STATE_HALF_FOLDED = 1;
+    private static final int STATE_UNFOLDED = 2;
+    private static final int STATE_REAR_DISPLAY = 3;
+
     private static final String PACKAGE_NAME = "package_name";
 
     private SmartAutoRotatePreferenceFragment mFragment;
@@ -97,6 +104,7 @@
         ContentResolver mContentResolver = RuntimeEnvironment.application.getContentResolver();
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
+        when(mContext.getApplicationContext()).thenReturn(mContext);
         doReturn(PACKAGE_NAME).when(mPackageManager).getRotationResolverPackageName();
         doReturn(PackageManager.PERMISSION_GRANTED).when(mPackageManager).checkPermission(
                 Manifest.permission.CAMERA, PACKAGE_NAME);
@@ -119,12 +127,19 @@
         when(mFragment.findPreference(AUTO_ROTATE_SWITCH_PREFERENCE_KEY)).thenReturn(
                 mRotateSwitchPreference);
 
+        when(mFragment.findPreference(AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY))
+                .thenReturn(mRotateMainSwitchPreference);
 
-        when(mFragment.findPreference(AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY)).thenReturn(
-                mRotateMainSwitchPreference);
+        when(mResources.getIntArray(com.android.internal.R.array.config_foldedDeviceStates))
+                .thenReturn(new int[] {STATE_FOLDED});
+        when(mResources.getIntArray(com.android.internal.R.array.config_halfFoldedDeviceStates))
+                .thenReturn(new int[] {STATE_HALF_FOLDED});
+        when(mResources.getIntArray(com.android.internal.R.array.config_openDeviceStates))
+                .thenReturn(new int[] {STATE_UNFOLDED});
+        when(mResources.getIntArray(com.android.internal.R.array.config_rearDisplayDeviceStates))
+                .thenReturn(new int[] {STATE_REAR_DISPLAY});
     }
 
-
     @Test
     public void createHeader_faceDetectionSupported_switchBarIsEnabled() {
         ShadowDeviceStateRotationLockSettingsManager.setDeviceStateRotationLockEnabled(false);
@@ -168,7 +183,7 @@
 
     @Test
     public void createPreferenceControllers_noSettableDeviceStates_returnsEmptyList() {
-        enableDeviceStateSettableRotationStates(new String[]{}, new String[]{});
+        enableDeviceStateSettableRotationStates(new String[] {}, new String[] {});
 
         List<AbstractPreferenceController> preferenceControllers =
                 mFragment.createPreferenceControllers(mContext);
@@ -176,20 +191,23 @@
         assertThat(preferenceControllers).isEmpty();
     }
 
-    @Ignore
     @Test
     public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() {
-        enableDeviceStateSettableRotationStates(new String[]{"0:1", "1:1"},
-                new String[]{"Folded", "Unfolded"});
+        enableDeviceStateSettableRotationStates(
+                new String[] {
+                    STATE_FOLDED + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED,
+                    STATE_UNFOLDED + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED
+                },
+                new String[] {"Folded", "Unfolded"});
 
         List<AbstractPreferenceController> preferenceControllers =
                 mFragment.createPreferenceControllers(mContext);
 
         assertThat(preferenceControllers).hasSize(2);
-        assertThat(preferenceControllers.get(0)).isInstanceOf(
-                DeviceStateAutoRotateSettingController.class);
-        assertThat(preferenceControllers.get(1)).isInstanceOf(
-                DeviceStateAutoRotateSettingController.class);
+        assertThat(preferenceControllers.get(0))
+                .isInstanceOf(DeviceStateAutoRotateSettingController.class);
+        assertThat(preferenceControllers.get(1))
+                .isInstanceOf(DeviceStateAutoRotateSettingController.class);
     }
 
     @Test
@@ -205,16 +223,15 @@
         verify(mFragment, times(1)).addHelpLink();
     }
 
-    private void enableDeviceStateSettableRotationStates(String[] settableStates,
-            String[] settableStatesDescriptions) {
+    private void enableDeviceStateSettableRotationStates(
+            String[] settableStates, String[] settableStatesDescriptions) {
         when(mResources.getStringArray(
-                com.android.internal.R.array.config_perDeviceStateRotationLockDefaults)).thenReturn(
-                settableStates);
-        when(mResources.getStringArray(
-                R.array.config_settableAutoRotationDeviceStatesDescriptions)).thenReturn(
-                settableStatesDescriptions);
-        when(mResources.getBoolean(R.bool.config_auto_rotate_face_detection_available)).thenReturn(
-                true);
+                        com.android.internal.R.array.config_perDeviceStateRotationLockDefaults))
+                .thenReturn(settableStates);
+        when(mResources.getStringArray(R.array.config_settableAutoRotationDeviceStatesDescriptions))
+                .thenReturn(settableStatesDescriptions);
+        when(mResources.getBoolean(R.bool.config_auto_rotate_face_detection_available))
+                .thenReturn(true);
         DeviceStateRotationLockSettingsManager.resetInstance();
         DeviceStateRotationLockSettingsManager.getInstance(mContext)
                 .resetStateForTesting(mResources);
diff --git a/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
index 2ba0557..a5149b9 100644
--- a/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/TopLevelDisplayPreferenceControllerTest.java
@@ -26,7 +26,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -51,7 +50,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_unsupportedWhenSet() {
diff --git a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
index f41352b..56946c3 100644
--- a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
@@ -45,10 +45,14 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 import java.util.Locale;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowDateFormat.class,
+})
 public class DarkModeActivationPreferenceControllerTest {
     private DarkModeActivationPreferenceController mController;
     private String mPreferenceKey = "key";
diff --git a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java
index 8ac6257..710e640 100644
--- a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java
@@ -40,8 +40,12 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowDateFormat.class,
+})
 public class DarkModeCustomPreferenceControllerTest {
     private DarkModeCustomPreferenceController mController;
     @Mock
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/enterprise/ActionDisabledByAdminDialogHelperTest.java b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
index 8ae2a8d..6db008d 100644
--- a/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/ActionDisabledByAdminDialogHelperTest.java
@@ -45,7 +45,6 @@
 import com.android.settings.testutils.shadow.ShadowActivity;
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 
 import org.junit.Before;
@@ -78,8 +77,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (CustomActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(CustomActivity.class)).get();
+        mActivity = Robolectric.setupActivity(CustomActivity.class);
         mActivityShadow = Shadow.extract(mActivity);
         mHelper = new ActionDisabledByAdminDialogHelper(mActivity);
     }
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
index b3de184..5d478e7 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterprisePrivacySettingsTest.java
@@ -210,7 +210,7 @@
 
             // Need to set the Theme.AppCompat theme (or descendant) with this activity, otherwise
             // a {@link IllegalStateException} is thrown when setting the content view.
-            setTheme(R.style.Theme_AppCompat_Light);
+            setTheme(androidx.appcompat.R.style.Theme_AppCompat_Light);
             setContentView(frameLayout);
         }
     }
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java
index b1e2c0c..1a16d04 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java
@@ -53,12 +53,14 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.Arrays;
 import java.util.Collections;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class EnterpriseSetDefaultAppsListPreferenceControllerTest {
 
     private static final int USER_ID = 0;
diff --git a/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java
index e91f56f..a2a0de4 100644
--- a/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/ManageDeviceAdminPreferenceControllerTest.java
@@ -31,7 +31,6 @@
 import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -84,7 +83,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/flashlight/FlashlightHandleActivityTest.java b/tests/robotests/src/com/android/settings/flashlight/FlashlightHandleActivityTest.java
index a7bd21c..b0517cb 100644
--- a/tests/robotests/src/com/android/settings/flashlight/FlashlightHandleActivityTest.java
+++ b/tests/robotests/src/com/android/settings/flashlight/FlashlightHandleActivityTest.java
@@ -23,7 +23,6 @@
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -50,7 +49,6 @@
         assertThat(data).isEmpty();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getRawDataToIndex_sliceSupported_returnData() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 5e9fb73..583db5e 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;
 
@@ -41,112 +42,100 @@
 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;
 import androidx.loader.app.LoaderManager;
-import androidx.recyclerview.widget.RecyclerView;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry;
 import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
+import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.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.core.lifecycle.Lifecycle;
-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;
+import org.junit.Rule;
 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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.mockito.stubbing.Answer;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.concurrent.TimeUnit;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowEntityHeaderController.class, ShadowActivityManager.class})
+@Config(
+        shadows = {
+            ShadowEntityHeaderController.class,
+            com.android.settings.testutils.shadow.ShadowFragment.class,
+        })
 public class AdvancedPowerUsageDetailTest {
+
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
     private static final String APP_LABEL = "app label";
     private static final String SUMMARY = "summary";
     private static final String[] PACKAGE_NAME = {"com.android.app"};
     private static final String 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 FOREGROUND_TIME_MS = 444;
+    private static final long FOREGROUND_SERVICE_TIME_MS = 123;
     private static final long BACKGROUND_TIME_MS = 100;
-    private static final long FOREGROUND_ACTIVITY_TIME_MS = 123;
-    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 long SCREEN_ON_TIME_MS = 321;
+    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private FragmentActivity mActivity;
-    @Mock
-    private EntityHeaderController mEntityHeaderController;
-    @Mock
-    private LayoutPreference mHeaderPreference;
-    @Mock
-    private ApplicationsState mState;
-    @Mock
-    private ApplicationsState.AppEntry mAppEntry;
-    @Mock
-    private 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 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;
     private MetricsFeatureProvider mMetricsFeatureProvider;
+    private BatteryDiffEntry mBatteryDiffEntry;
+    private Bundle mBundle;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(ApplicationProvider.getApplicationContext());
         when(mContext.getPackageName()).thenReturn("foo");
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
 
         mFragment = spy(new AdvancedPowerUsageDetail());
+        mBundle = spy(new Bundle());
         doReturn(mContext).when(mFragment).getContext();
         doReturn(mActivity).when(mFragment).getActivity();
         doReturn(SUMMARY).when(mFragment).getString(anyInt());
@@ -155,29 +144,59 @@
         doReturn(mLoaderManager).when(mFragment).getLoaderManager();
 
         ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
-        doReturn(mEntityHeaderController).when(mEntityHeaderController)
-                .setRecyclerView(nullable(RecyclerView.class), nullable(Lifecycle.class));
-        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);
         when(mBatteryEntry.getLabel()).thenReturn(APP_LABEL);
-        when(mBatteryEntry.getTimeInBackgroundMs()).thenReturn(BACKGROUND_TIME_MS);
         when(mBatteryEntry.getTimeInForegroundMs()).thenReturn(FOREGROUND_TIME_MS);
+        when(mBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(FOREGROUND_SERVICE_TIME_MS);
+        when(mBatteryEntry.getTimeInBackgroundMs()).thenReturn(BACKGROUND_TIME_MS);
         mBatteryEntry.mIconId = ICON_ID;
 
+        mBatteryDiffEntry =
+                spy(
+                        new BatteryDiffEntry(
+                                mContext,
+                                /* uid= */ UID,
+                                /* userId= */ 0,
+                                /* key= */ "key",
+                                /* isHidden= */ false,
+                                /* componentId= */ -1,
+                                /* legacyPackageName= */ null,
+                                /* legacyLabel= */ null,
+                                /*consumerType*/ ConvertUtils.CONSUMER_TYPE_USER_BATTERY,
+                                /* foregroundUsageTimeInMs= */ FOREGROUND_TIME_MS,
+                                /* foregroundSerUsageTimeInMs= */ FOREGROUND_SERVICE_TIME_MS,
+                                /* backgroundUsageTimeInMs= */ BACKGROUND_TIME_MS,
+                                /* screenOnTimeInMs= */ SCREEN_ON_TIME_MS,
+                                /* consumePower= */ 0,
+                                /* foregroundUsageConsumePower= */ 0,
+                                /* foregroundServiceUsageConsumePower= */ 0,
+                                /* backgroundUsageConsumePower= */ 0,
+                                /* cachedUsageConsumePower= */ 0));
+        when(mBatteryDiffEntry.getAppLabel()).thenReturn(APP_LABEL);
+        when(mBatteryDiffEntry.getAppIconId()).thenReturn(ICON_ID);
+
         mFragment.mHeaderPreference = mHeaderPreference;
         mFragment.mState = mState;
         mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
@@ -192,23 +211,21 @@
 
         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());
+        doAnswer(callable).when(mContext).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
@@ -232,7 +249,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) {
@@ -249,7 +268,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) {
@@ -265,421 +286,49 @@
     }
 
     @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);
+        mBundle.clear();
+        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);
     }
 
     @Test
+    public void startBatteryDetailPage_showSummary_hasFGBDData() {
+        final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        mBundle.clear();
+        AdvancedPowerUsageDetail.startBatteryDetailPage(
+                mContext,
+                mFragment.getMetricsCategory(),
+                mBatteryDiffEntry,
+                USAGE_PERCENT,
+                /* slotInformation= */ null,
+                /* showTimeInformation= */ true,
+                /* anomalyHintPrefKey= */ null,
+                /* anomalyHintText= */ null);
+
+        verify(mContext).startActivity(captor.capture());
+        assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
+        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_BACKGROUND_TIME))
+                .isEqualTo(BACKGROUND_TIME_MS + FOREGROUND_SERVICE_TIME_MS);
+        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_FOREGROUND_TIME))
+                .isEqualTo(FOREGROUND_TIME_MS);
+        assertThat(mBundle.getLong(AdvancedPowerUsageDetail.EXTRA_SCREEN_ON_TIME))
+                .isEqualTo(SCREEN_ON_TIME_MS);
+        assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT))
+                .isEqualTo(USAGE_PERCENT);
+        assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME))
+                .isEqualTo(null);
+    }
+
+
+    @Test
     public void startBatteryDetailPage_noBatteryUsage_hasBasicData() {
         final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
 
@@ -688,18 +337,23 @@
 
         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 {
+        mBundle.clear();
         doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
 
         AdvancedPowerUsageDetail.startBatteryDetailPage(
@@ -709,71 +363,61 @@
     }
 
     @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();
 
-        TimeUnit.SECONDS.sleep(100);
+        TimeUnit.SECONDS.sleep(1);
         verify(mMetricsFeatureProvider)
                 .action(
-                        SettingsEnums.OPEN_APP_BATTERY_USAGE,
-                        SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
-                        SettingsEnums.OPEN_APP_BATTERY_USAGE,
+                        SettingsEnums.LEAVE_APP_BATTERY_USAGE,
+                        SettingsEnums.ACTION_APP_BATTERY_USAGE_ALLOW_BACKGROUND,
+                        SettingsEnums.FUELGAUGE_POWER_USAGE_DETAIL,
                         packageName,
                         /* consumed battery */ 0);
     }
@@ -781,18 +425,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();
 
-        TimeUnit.SECONDS.sleep(100);
+        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 2779e0a..1df8a40 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -23,7 +23,6 @@
 import static org.mockito.Mockito.verifyNoInteractions;
 import static org.mockito.Mockito.when;
 
-import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.hardware.usb.UsbManager;
@@ -34,8 +33,6 @@
 import android.os.PowerManager;
 import android.text.TextUtils;
 
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
@@ -47,7 +44,6 @@
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
 import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.UsageProgressBarPreference;
 
 import org.junit.After;
@@ -72,40 +68,24 @@
     private static final String TIME_LEFT = "2h30min";
     private static final String BATTERY_STATUS = "Charging";
 
-    @Mock
-    private Activity mActivity;
-    @Mock
-    private PreferenceFragmentCompat mPreferenceFragment;
-    @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;
     private ShadowPowerManager mShadowPowerManager;
     private Intent mBatteryIntent;
-    private LifecycleOwner mLifecycleOwner;
-    private Lifecycle mLifecycle;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mLifecycleOwner = () -> mLifecycle;
-        mLifecycle = new Lifecycle(mLifecycleOwner);
         mContext = spy(RuntimeEnvironment.application);
         when(mContext.getSystemService(UsbManager.class)).thenReturn(mUsbManager);
         ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
@@ -116,18 +96,15 @@
         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;
 
         mShadowPowerManager = Shadows.shadowOf(mContext.getSystemService(PowerManager.class));
 
         mController = spy(new BatteryHeaderPreferenceController(mContext, PREF_KEY));
-        mLifecycle.addObserver(mController);
-        mController.setActivity(mActivity);
-        mController.setFragment(mPreferenceFragment);
-        mController.setLifecycle(mLifecycle);
         mController.mBatteryUsageProgressBarPref = mBatteryUsageProgressBarPref;
         mController.mBatteryStatusFeatureProvider = mBatteryStatusFeatureProvider;
     }
@@ -251,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);
 
@@ -281,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);
 
@@ -295,7 +272,8 @@
 
         mController.updateHeaderPreference(mBatteryInfo);
 
-        verify(mBatteryUsageProgressBarPref).setBottomSummary(null);
+        verify(mBatteryUsageProgressBarPref).setBottomSummary(mContext.getString(
+                com.android.settingslib.R.string.battery_info_status_charging_on_hold));
     }
 
     @Test
@@ -304,8 +282,10 @@
 
         mController.updateHeaderPreference(mBatteryInfo);
 
-        verify(mBatteryUsageProgressBarPref).setBottomSummary(
-            mContext.getString(R.string.battery_info_status_not_charging));
+        verify(mBatteryUsageProgressBarPref)
+                .setBottomSummary(
+                        mContext.getString(
+                                com.android.settingslib.R.string.battery_info_status_not_charging));
     }
 
     @Test
@@ -318,8 +298,8 @@
 
     @Test
     public void getAvailabilityStatus_returnAvailableUnsearchable() {
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE_UNSEARCHABLE);
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE_UNSEARCHABLE);
     }
 
     @Test
@@ -335,12 +315,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));
     }
 
@@ -349,7 +330,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 0dfabb9..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;
 
@@ -57,7 +55,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
-        FakeFeatureFactory.setupForTest().getPowerUsageFeatureProvider(mContext);
+        FakeFeatureFactory.setupForTest().getPowerUsageFeatureProvider();
 
         doReturn(mContext).when(mContext).getApplicationContext();
         when(mContext.getSystemService(eq(Context.BATTERY_STATS_SERVICE)))
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index b0d6da6..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,44 +261,95 @@
     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);
     }
 
     @Test
+    public void testGetBatteryInfo_getChargeTimeRemaining_updateSettingsGlobal() {
+        doReturn(TEST_CHARGE_TIME_REMAINING).when(mBatteryUsageStats).getChargeTimeRemainingMs();
+
+        BatteryInfo.getBatteryInfo(
+                mContext,
+                mChargingBatteryBroadcast,
+                mBatteryUsageStats,
+                MOCK_ESTIMATE,
+                SystemClock.elapsedRealtime() * 1000,
+                false /* shortString */);
+
+        assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext))
+                .isEqualTo(TEST_CHARGE_TIME_REMAINING);
+    }
+
+    @Test
+    public void testGetBatteryInfo_differentChargeTimeRemaining_updateSettingsGlobal() {
+        doReturn(TEST_CHARGE_TIME_REMAINING).when(mBatteryUsageStats).getChargeTimeRemainingMs();
+        final long newTimeToFull = 300L;
+        doReturn(newTimeToFull).when(mBatteryUsageStats).getChargeTimeRemainingMs();
+
+        BatteryInfo.getBatteryInfo(
+                mContext,
+                mChargingBatteryBroadcast,
+                mBatteryUsageStats,
+                MOCK_ESTIMATE,
+                SystemClock.elapsedRealtime() * 1000,
+                false /* shortString */);
+
+        assertThat(BatteryInfo.getSettingsChargeTimeRemaining(mContext)).isEqualTo(newTimeToFull);
+    }
+
+    @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);
     }
@@ -251,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);
     }
@@ -270,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);
     }
@@ -287,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) {
@@ -342,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);
@@ -359,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/BatterySettingsFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java
index 66050a0..14ba337 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsFeatureProviderImplTest.java
@@ -22,11 +22,17 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
+import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
+import com.android.settings.fuelgauge.batterytip.tips.LowBatteryTip;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.ArrayList;
+
 @RunWith(RobolectricTestRunner.class)
 public class BatterySettingsFeatureProviderImplTest {
     private BatterySettingsFeatureProviderImpl mImpl;
@@ -47,4 +53,20 @@
     public void isFirstUseDateAvailable_returnFalse() {
         assertThat(mImpl.isFirstUseDateAvailable(mContext, 1000L)).isFalse();
     }
+
+    @Test
+    public void isBatteryInfoEnabled_returnFalse() {
+        assertThat(mImpl.isBatteryInfoEnabled(mContext)).isFalse();
+    }
+
+    @Test
+    public void addBatteryTipDetector_containsLowBatteryTip() {
+        var tips = new ArrayList<BatteryTip>();
+
+        mImpl.addBatteryTipDetector(
+                mContext, tips, new BatteryInfo(), new BatteryTipPolicy(mContext));
+
+        var expectedResult = tips.stream().anyMatch(tip -> tip instanceof LowBatteryTip);
+        assertThat(expectedResult).isTrue();
+    }
 }
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..1a2b246 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
@@ -40,20 +40,16 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
 import android.os.BatteryConsumer;
 import android.os.BatteryStats;
 import android.os.BatteryStatsManager;
 import android.os.BatteryUsageStats;
 import android.os.Build;
-import android.os.Process;
 import android.os.SystemClock;
 
 import com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper;
-import com.android.settings.fuelgauge.batterytip.AnomalyInfo;
 import com.android.settings.fuelgauge.batterytip.BatteryDatabaseManager;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowThreadUtils;
@@ -70,9 +66,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-import java.util.ArrayList;
-import java.util.List;
-
 @RunWith(RobolectricTestRunner.class)
 public class BatteryUtilsTest {
 
@@ -106,33 +99,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;
-    private AnomalyInfo mAnomalyInfo;
+
+    @Mock private ApplicationInfo mHighApplicationInfo;
+    @Mock private ApplicationInfo mLowApplicationInfo;
+    @Mock private PowerAllowlistBackend mPowerAllowlistBackend;
+    @Mock private BatteryDatabaseManager mBatteryDatabaseManager;
     private BatteryUtils mBatteryUtils;
     private FakeFeatureFactory mFeatureFactory;
     private PowerUsageFeatureProvider mProvider;
@@ -145,16 +127,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,13 +153,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());
-        mAnomalyInfo = new AnomalyInfo(INFO_WAKELOCK);
+        doReturn(0L)
+                .when(mBatteryUtils)
+                .getForegroundServiceTotalTimeUs(any(BatteryStats.Uid.class), anyLong());
 
         BatteryDatabaseManager.setUpForTest(mBatteryDatabaseManager);
         ShadowThreadUtils.setIsMainThread(true);
@@ -180,54 +168,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 +233,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 +295,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 +310,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,125 +330,71 @@
         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();
     }
 
     @Test
-    public void testShouldHideAnomaly_systemAppWithLauncher_returnTrue() {
-        final List<ResolveInfo> resolveInfos = new ArrayList<>();
-        final ResolveInfo resolveInfo = new ResolveInfo();
-        resolveInfo.activityInfo = new ActivityInfo();
-        resolveInfo.activityInfo.packageName = HIGH_SDK_PACKAGE;
-
-        doReturn(resolveInfos).when(mPackageManager).queryIntentActivities(any(), anyInt());
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
-        mHighApplicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
-
-        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);
-        mHighApplicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
-
-        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);
-
-        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);
-
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isTrue();
-    }
-
-    @Test
-    public void testShouldHideAnomaly_normalApp_returnFalse() {
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
-
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isFalse();
-    }
-
-    @Test
-    public void testShouldHideAnomaly_excessivePriorOApp_returnFalse() {
-        doReturn(new String[]{LOW_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
-        mAnomalyInfo = new AnomalyInfo(INFO_EXCESSIVE);
-
-        assertThat(mBatteryUtils.shouldHideAnomaly(mPowerAllowlistBackend, UID,
-                mAnomalyInfo)).isFalse();
-    }
-
-    @Test
-    public void testShouldHideAnomaly_excessiveOApp_returnTrue() {
-        doReturn(new String[]{HIGH_SDK_PACKAGE}).when(mPackageManager).getPackagesForUid(UID);
-        mAnomalyInfo = new AnomalyInfo(INFO_EXCESSIVE);
-
-        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 +402,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..b6caa7f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java
@@ -0,0 +1,351 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.anyString;
+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.verifyNoInteractions;
+import static org.mockito.Mockito.when;
+
+import android.app.AppOpsManager;
+import android.app.backup.BackupManager;
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.InstallSourceInfo;
+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 androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.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.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.concurrent.TimeUnit;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(
+        shadows = {
+            ShadowEntityHeaderController.class,
+            com.android.settings.testutils.shadow.ShadowFragment.class,
+        })
+public class PowerBackgroundUsageDetailTest {
+
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    private static final String APP_LABEL = "app label";
+    private static final String SUMMARY = "summary";
+    private static final int ICON_ID = 123;
+    private static final int UID = 1;
+    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_preference";
+    private static final String KEY_PREF_OPTIMIZED = "optimized_preference";
+    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+
+    private Context mContext;
+    private PowerBackgroundUsageDetail mFragment;
+    private FooterPreference mFooterPreference;
+    private MainSwitchPreference mMainSwitchPreference;
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+    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;
+    @Mock private InstallSourceInfo mInstallSourceInfo;
+
+    @Before
+    public void setUp() throws Exception {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        when(mContext.getPackageName()).thenReturn("foo");
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
+
+        final FakeFeatureFactory fakeFeatureFactory = FakeFeatureFactory.setupForTest();
+        mMetricsFeatureProvider = fakeFeatureFactory.metricsFeatureProvider;
+
+        mFragment = spy(new PowerBackgroundUsageDetail());
+        mFragment.mLogStringBuilder = new StringBuilder();
+        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);
+    }
+
+    @Test
+    public void onPause_optimizationModeChanged_logPreference() throws Exception {
+        final String packageName = "testPackageName";
+        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        mFragment.mOptimizationMode = restrictedMode;
+        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
+        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
+
+        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ true);
+        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
+        mFragment.onPause();
+
+        TimeUnit.SECONDS.sleep(1);
+        verify(mMetricsFeatureProvider)
+                .action(
+                        SettingsEnums.LEAVE_POWER_USAGE_MANAGE_BACKGROUND,
+                        SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
+                        SettingsEnums.FUELGAUGE_POWER_USAGE_MANAGE_BACKGROUND,
+                        packageName,
+                        /* consumed battery */ 0);
+    }
+
+    @Test
+    public void onPause_optimizationModeIsNotChanged_notInvokeLogging() throws Exception {
+        final String packageName = "testPackageName";
+        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        mFragment.mOptimizationMode = restrictedMode;
+        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
+        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
+
+        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ true);
+        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
+        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ false);
+        verify(mBatteryOptimizeUtils).setAppUsageState(restrictedMode, Action.APPLY);
+        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
+        mFragment.onPause();
+
+        TimeUnit.SECONDS.sleep(1);
+        verifyNoInteractions(mMetricsFeatureProvider);
+    }
+}
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 f6bc297..f7b5049 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
@@ -17,17 +17,14 @@
 package com.android.settings.fuelgauge;
 
 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.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.ComponentName;
 import android.content.Context;
-import android.content.Intent;
 import android.hardware.usb.UsbManager;
 import android.hardware.usb.UsbPort;
 import android.hardware.usb.UsbPortStatus;
@@ -46,10 +43,6 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import java.util.ArrayList;
-import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 public class TopLevelBatteryPreferenceControllerTest {
@@ -57,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() {
@@ -132,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
@@ -141,9 +130,14 @@
         BatteryTestUtils.setupIncompatibleEvent(mUsbPort, mUsbManager, mUsbPortStatus);
         mController.mPreference = new Preference(mContext);
         BatteryInfo info = new BatteryInfo();
+        info.batteryPercentString = "66%";
 
         assertThat(mController.getDashboardLabel(mContext, info, true))
-                .isEqualTo(mContext.getString(R.string.battery_info_status_not_charging));
+                .isEqualTo(
+                        mContext.getString(
+                                com.android.settingslib.R.string
+                                        .power_incompatible_charging_settings_home_page,
+                                info.batteryPercentString));
     }
 
     @Test
@@ -153,8 +147,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 7cb57a3..84af4e1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
@@ -31,12 +31,16 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.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() {
@@ -46,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
deleted file mode 100644
index 4c276ba..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyCleanupJobServiceTest.java
+++ /dev/null
@@ -1,132 +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.fuelgauge.batterytip;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-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.app.JobSchedulerImpl;
-import android.app.job.IJobScheduler;
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.content.Context;
-import android.os.Binder;
-
-import com.android.settings.R;
-import com.android.settings.testutils.DatabaseTestUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(RobolectricTestRunner.class)
-public class AnomalyCleanupJobServiceTest {
-    private static final int UID = 1234;
-    private static final String PACKAGE_NAME = "com.android.package";
-    private static final String PACKAGE_NAME_OLD = "com.android.package.old";
-    private static final int ANOMALY_TYPE = 1;
-    private static final long TIMESTAMP_NOW = System.currentTimeMillis();
-    private static final long TIMESTAMP_31_DAYS_BEFORE = TIMESTAMP_NOW - TimeUnit.DAYS.toMillis(31);
-
-    private Context mContext;
-    private JobScheduler mJobScheduler;
-    @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())));
-        when(mContext.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
-    }
-
-    @After
-    public void cleanUp() {
-        DatabaseTestUtils.clearDb(mContext);
-    }
-
-    @Test
-    public void scheduleCleanUp() {
-        AnomalyCleanupJobService.scheduleCleanUp(mContext);
-
-        JobScheduler jobScheduler = mContext.getSystemService(JobScheduler.class);
-        List<JobInfo> pendingJobs = jobScheduler.getAllPendingJobs();
-        assertEquals(1, pendingJobs.size());
-        JobInfo pendingJob = pendingJobs.get(0);
-        assertThat(pendingJob.getId()).isEqualTo(R.integer.job_anomaly_clean_up);
-        assertThat(pendingJob.getIntervalMillis()).isEqualTo(TimeUnit.DAYS.toMillis(1));
-        assertThat(pendingJob.isRequireDeviceIdle()).isTrue();
-        assertThat(pendingJob.isRequireCharging()).isTrue();
-        assertThat(pendingJob.isPersisted()).isTrue();
-    }
-
-    @Test
-    public void scheduleCleanUp_invokeTwice_onlyScheduleOnce() {
-        AnomalyCleanupJobService.scheduleCleanUp(mContext);
-        AnomalyCleanupJobService.scheduleCleanUp(mContext);
-
-        verify(mJobScheduler, times(1)).schedule(any());
-    }
-
-    @Test
-    @Ignore
-    public void onStartJob_cleanUpDataBefore30days() {
-        final BatteryDatabaseManager databaseManager = BatteryDatabaseManager.getInstance(mContext);
-        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);
-
-        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());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java
deleted file mode 100644
index 3807be6..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyConfigJobServiceTest.java
+++ /dev/null
@@ -1,131 +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.fuelgauge.batterytip;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.robolectric.RuntimeEnvironment.application;
-
-import android.app.JobSchedulerImpl;
-import android.app.StatsManager;
-import android.app.job.IJobScheduler;
-import android.app.job.JobInfo;
-import android.app.job.JobScheduler;
-import android.content.Context;
-import android.os.Binder;
-import android.provider.Settings;
-
-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 java.util.List;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(RobolectricTestRunner.class)
-public class AnomalyConfigJobServiceTest {
-
-    private static final int ANOMALY_CONFIG_VERSION = 1;
-    private static final String ANOMALY_CONFIG = "X64s";
-    @Mock
-    private StatsManager mStatsManager;
-
-    private Context mContext;
-    private JobScheduler mJobScheduler;
-    private AnomalyConfigJobService mJobService;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(RuntimeEnvironment.application);
-        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.getContentResolver()).when(mJobService).getContentResolver();
-    }
-
-    @Test
-    public void testScheduleConfigUpdate() {
-        AnomalyConfigJobService.scheduleConfigUpdate(mContext);
-
-        JobScheduler jobScheduler = mContext.getSystemService(JobScheduler.class);
-        List<JobInfo> pendingJobs = jobScheduler.getAllPendingJobs();
-        assertEquals(1, pendingJobs.size());
-        JobInfo pendingJob = pendingJobs.get(0);
-        assertThat(pendingJob.getId()).isEqualTo(R.integer.job_anomaly_config_update);
-        assertThat(pendingJob.getIntervalMillis()).isEqualTo(TimeUnit.DAYS.toMillis(1));
-        assertThat(pendingJob.isRequireDeviceIdle()).isTrue();
-        assertThat(pendingJob.isRequireCharging()).isTrue();
-        assertThat(pendingJob.isPersisted()).isTrue();
-    }
-
-    @Test
-    public void testScheduleConfigUpdate_invokeTwice_onlyScheduleOnce() {
-        AnomalyConfigJobService.scheduleConfigUpdate(mContext);
-        AnomalyConfigJobService.scheduleConfigUpdate(mContext);
-
-        verify(mJobScheduler, times(1)).schedule(any());
-    }
-
-    @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);
-
-        mJobService.checkAnomalyConfig(mStatsManager);
-
-        verify(mStatsManager).removeConfig(StatsManagerConfig.ANOMALY_CONFIG_KEY);
-    }
-
-    @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);
-
-        mJobService.checkAnomalyConfig(mStatsManager);
-
-        verify(mStatsManager).addConfig(eq(StatsManagerConfig.ANOMALY_CONFIG_KEY), any());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java
deleted file mode 100644
index 1c37d31..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AnomalyDetectionJobServiceTest.java
+++ /dev/null
@@ -1,326 +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.fuelgauge.batterytip;
-
-import static android.os.StatsDimensionsValue.FLOAT_VALUE_TYPE;
-import static android.os.StatsDimensionsValue.INT_VALUE_TYPE;
-import static android.os.StatsDimensionsValue.TUPLE_VALUE_TYPE;
-
-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.anyLong;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.JobSchedulerImpl;
-import android.app.StatsManager;
-import android.app.job.IJobScheduler;
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.app.job.JobWorkItem;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.Process;
-import android.os.StatsDimensionsValue;
-import android.os.UserManager;
-
-import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowConnectivityManager;
-import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.android.controller.ServiceController;
-import org.robolectric.annotation.Config;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowConnectivityManager.class})
-public class AnomalyDetectionJobServiceTest {
-    private static final int UID = 12345;
-    private static final String SYSTEM_PACKAGE = "com.android.system";
-    private static final String SUBSCRIBER_COOKIES_AUTO_RESTRICTION =
-            "anomaly_type=6,auto_restriction=true";
-    private static final String SUBSCRIBER_COOKIES_NOT_AUTO_RESTRICTION =
-            "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;
-
-    private BatteryTipPolicy mPolicy;
-    private Bundle mBundle;
-    private AnomalyDetectionJobService mAnomalyDetectionJobService;
-    private FakeFeatureFactory mFeatureFactory;
-    private Context mContext;
-    private JobScheduler mJobScheduler;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(RuntimeEnvironment.application);
-        mJobScheduler = spy(new JobSchedulerImpl(mContext,
-                IJobScheduler.Stub.asInterface(new Binder())));
-        when(mContext.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
-
-        mPolicy = new BatteryTipPolicy(mContext);
-        mBundle = new Bundle();
-        mBundle.putParcelable(StatsManager.EXTRA_STATS_DIMENSIONS_VALUE, mStatsDimensionsValue);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        when(mBatteryUtils.getAppLongVersionCode(any())).thenReturn(VERSION_CODE);
-
-        final ServiceController<AnomalyDetectionJobService> controller =
-                Robolectric.buildService(AnomalyDetectionJobService.class);
-        mAnomalyDetectionJobService = spy(controller.get());
-        doNothing().when(mAnomalyDetectionJobService).jobFinished(any(), anyBoolean());
-    }
-
-    @Test
-    public void scheduleCleanUp() {
-        AnomalyDetectionJobService.scheduleAnomalyDetection(mContext, new Intent());
-
-        JobScheduler jobScheduler = mContext.getSystemService(JobScheduler.class);
-        List<JobInfo> pendingJobs = jobScheduler.getAllPendingJobs();
-        assertThat(pendingJobs).hasSize(1);
-
-        JobInfo pendingJob = pendingJobs.get(0);
-        assertThat(pendingJob.getId()).isEqualTo(R.integer.job_anomaly_detection);
-        assertThat(pendingJob.getMaxExecutionDelayMillis())
-                .isEqualTo(TimeUnit.MINUTES.toMillis(30));
-    }
-
-    @Test
-    public void saveAnomalyToDatabase_systemAllowlisted_doNotSave() {
-        doReturn(UID).when(mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
-        doReturn(true).when(mPowerAllowlistBackend)
-                .isAllowlisted(any(String[].class), any(Integer.class));
-
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider,
-                mFeatureFactory.metricsFeatureProvider, mBundle);
-
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
-    }
-
-    @Test
-    public void saveAnomalyToDatabase_systemApp_doNotSaveButLog() {
-        final ArrayList<String> cookies = new ArrayList<>();
-        cookies.add(SUBSCRIBER_COOKIES_AUTO_RESTRICTION);
-        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(true).when(mBatteryUtils).shouldHideAnomaly(any(), anyInt(), any());
-
-        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(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());
-
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider, mFeatureFactory.metricsFeatureProvider,
-                mBundle);
-
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
-    }
-
-    @Test
-    public void saveAnomalyToDatabase_uidNull_doNotSave() {
-        doReturn(AnomalyDetectionJobService.UID_NULL).when(
-                mAnomalyDetectionJobService).extractUidFromStatsDimensionsValue(any());
-
-        mAnomalyDetectionJobService.saveAnomalyToDatabase(mContext,
-                mUserManager, mBatteryDatabaseManager, mBatteryUtils, mPolicy,
-                mPowerAllowlistBackend, mContext.getContentResolver(),
-                mFeatureFactory.powerUsageFeatureProvider, mFeatureFactory.metricsFeatureProvider,
-                mBundle);
-
-        verify(mBatteryDatabaseManager, never()).insertAnomaly(anyInt(), anyString(), anyInt(),
-                anyInt(), anyLong());
-    }
-
-    @Test
-    public void saveAnomalyToDatabase_normalAppWithAutoRestriction_save() {
-        final ArrayList<String> cookies = new ArrayList<>();
-        cookies.add(SUBSCRIBER_COOKIES_AUTO_RESTRICTION);
-        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());
-
-        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);
-    }
-
-    @Test
-    public void saveAnomalyToDatabase_normalAppWithoutAutoRestriction_save() {
-        final ArrayList<String> cookies = new ArrayList<>();
-        cookies.add(SUBSCRIBER_COOKIES_NOT_AUTO_RESTRICTION);
-        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());
-
-        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);
-    }
-
-    @Test
-    public void extractUidFromStatsDimensionsValue_extractCorrectUid() {
-        // Build an integer dimensions value.
-        final StatsDimensionsValue intValue = mock(StatsDimensionsValue.class);
-        when(intValue.isValueType(INT_VALUE_TYPE)).thenReturn(true);
-        when(intValue.getField()).thenReturn(AnomalyDetectionJobService.STATSD_UID_FILED);
-        when(intValue.getIntValue()).thenReturn(UID);
-
-        // Build a tuple dimensions value and put the previous integer dimensions value inside.
-        final StatsDimensionsValue tupleValue = mock(StatsDimensionsValue.class);
-        when(tupleValue.isValueType(TUPLE_VALUE_TYPE)).thenReturn(true);
-        final List<StatsDimensionsValue> statsDimensionsValues = new ArrayList<>();
-        statsDimensionsValues.add(intValue);
-        when(tupleValue.getTupleValueList()).thenReturn(statsDimensionsValues);
-
-        assertThat(mAnomalyDetectionJobService.extractUidFromStatsDimensionsValue(
-                tupleValue)).isEqualTo(UID);
-    }
-
-    @Test
-    public void extractUidFromStatsDimensionsValue_wrongFormat_returnNull() {
-        // Build a float dimensions value
-        final StatsDimensionsValue floatValue = mock(StatsDimensionsValue.class);
-        when(floatValue.isValueType(FLOAT_VALUE_TYPE)).thenReturn(true);
-        when(floatValue.getField()).thenReturn(AnomalyDetectionJobService.STATSD_UID_FILED);
-        when(floatValue.getFloatValue()).thenReturn(0f);
-
-        assertThat(mAnomalyDetectionJobService.extractUidFromStatsDimensionsValue(
-                floatValue)).isEqualTo(AnomalyDetectionJobService.UID_NULL);
-    }
-
-    @Test
-    public void stopJobWhileDequeuingWork_shouldNotCrash() {
-        when(mJobParameters.dequeueWork()).thenThrow(new SecurityException());
-
-        mAnomalyDetectionJobService.onStopJob(mJobParameters);
-
-        // Should not crash even job is stopped
-        mAnomalyDetectionJobService.dequeueWork(mJobParameters);
-    }
-
-    @Test
-    public void stopJobWhileCompletingWork_shouldNotCrash() {
-        doThrow(new SecurityException()).when(mJobParameters).completeWork(any());
-
-        mAnomalyDetectionJobService.onStopJob(mJobParameters);
-
-        // Should not crash even job is stopped
-        mAnomalyDetectionJobService.completeWork(mJobParameters, mJobWorkItem);
-    }
-
-    @Test
-    public void restartWorkAfterBeenStopped_jobStarted() {
-        mAnomalyDetectionJobService.onStopJob(mJobParameters);
-        mAnomalyDetectionJobService.onStartJob(mJobParameters);
-
-        assertThat(mAnomalyDetectionJobService.mIsJobCanceled).isFalse();
-    }
-}
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..bfe5d14 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,19 @@
 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.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..c05d9ed 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceControllerTest.java
@@ -15,38 +15,34 @@
  */
 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;
 
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.os.Bundle;
-import android.text.format.DateUtils;
 
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
-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;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
-import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.widget.CardPreference;
 
 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.RuntimeEnvironment;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -56,37 +52,27 @@
 
     private static final String KEY_PREF = "battery_tip";
     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;
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @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;
     private BatteryTipPreferenceController mBatteryTipPreferenceController;
-    private List<BatteryTip> mOldBatteryTips;
     private List<BatteryTip> mNewBatteryTips;
-    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
 
-        mCardPreference = spy(new CardPreference(mContext));
+        mCardPreference = new CardPreference(mContext);
         when(mPreferenceScreen.getContext()).thenReturn(mContext);
         doReturn(mCardPreference).when(mPreferenceScreen).findPreference(KEY_PREF);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
 
-        mOldBatteryTips = new ArrayList<>();
         mNewBatteryTips = new ArrayList<>();
 
         mBatteryTipPreferenceController = buildBatteryTipPreferenceController();
@@ -95,32 +81,32 @@
     }
 
     @Test
-    public void testDisplayPreference_isInvisible() {
+    public void displayPreference_isInvisible() {
         mBatteryTipPreferenceController.displayPreference(mPreferenceScreen);
 
         assertThat(mCardPreference.isVisible()).isFalse();
     }
 
     @Test
-    public void testUpdateBatteryTips_tipsStateInvisible_isInvisible() {
+    public void updateBatteryTips_tipsStateInvisible_isInvisible() {
         mBatteryTipPreferenceController.updateBatteryTips(mNewBatteryTips);
 
         assertThat(mCardPreference.isVisible()).isFalse();
     }
 
     @Test
-    public void testGetCurrentBatteryTip_noTips_isNull() {
+    public void getCurrentBatteryTip_noTips_isNull() {
         assertThat(mBatteryTipPreferenceController.getCurrentBatteryTip()).isNull();
     }
 
     @Test
-    public void testGetCurrentBatteryTip_tipsInvisible_isNull() {
+    public void getCurrentBatteryTip_tipsInvisible_isNull() {
         mBatteryTipPreferenceController.updateBatteryTips(mNewBatteryTips);
         assertThat(mBatteryTipPreferenceController.getCurrentBatteryTip()).isNull();
     }
 
     @Test
-    public void testRestoreFromNull_shouldNotCrash() {
+    public void restoreFromNull_shouldNotCrash() {
         final Bundle bundle = new Bundle();
         // Battery tip list is null at this time
         mBatteryTipPreferenceController.saveInstanceState(bundle);
@@ -132,7 +118,7 @@
     }
 
     @Test
-    public void testHandlePreferenceTreeClick_noDialog_invokeCallback() {
+    public void handlePreferenceTreeClick_noDialog_invokeCallback() {
         when(mBatteryTip.getType()).thenReturn(SMART_BATTERY_MANAGER);
         List<BatteryTip> batteryTips = new ArrayList<>();
         batteryTips.add(mBatteryTip);
@@ -147,13 +133,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
deleted file mode 100644
index bd2c5d1..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/detectors/DockDefenderDetectorTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batterytip.detectors;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.refEq;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.BatteryManager;
-import android.provider.Settings;
-
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.fuelgauge.BatteryInfo;
-import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
-import com.android.settings.fuelgauge.batterytip.tips.DockDefenderTip;
-import com.android.settings.testutils.BatteryTestUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class DockDefenderDetectorTest {
-
-    private BatteryInfo mBatteryInfo;
-    private DockDefenderDetector mDockDefenderDetector;
-    private Context mContext;
-    private FakeFeatureFactory mFakeFeatureFactory;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        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)));
-
-        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);
-
-        BatteryTip batteryTip = mDockDefenderDetector.detect();
-
-        assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.TEMPORARILY_BYPASSED);
-    }
-
-    @Test
-    public void testDetect_dockDefenderActive() {
-        mBatteryInfo.isBatteryDefender = true;
-        doReturn(true).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-
-        BatteryTip batteryTip = mDockDefenderDetector.detect();
-
-        assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.ACTIVE);
-    }
-
-    @Test
-    public void testDetect_dockDefenderFutureBypass() {
-        mBatteryInfo.isBatteryDefender = false;
-        doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-
-        BatteryTip batteryTip = mDockDefenderDetector.detect();
-
-        assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.FUTURE_BYPASS);
-    }
-
-    @Test
-    public void testDetect_overheatedTrue_dockDefenderDisabled() {
-        mBatteryInfo.isBatteryDefender = true;
-        doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-
-        BatteryTip batteryTip = mDockDefenderDetector.detect();
-
-        assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.DISABLED);
-    }
-
-    @Test
-    public void testDetect_pluggedInAC_dockDefenderDisabled() {
-        mBatteryInfo.pluggedStatus = BatteryManager.BATTERY_PLUGGED_AC;
-
-        BatteryTip batteryTip = mDockDefenderDetector.detect();
-
-        assertTrue(batteryTip instanceof DockDefenderTip);
-        assertEquals(((DockDefenderTip) batteryTip).getMode(),
-                BatteryUtils.DockDefenderMode.DISABLED);
-    }
-
-    @Test
-    public void testDetect_overheatedTrueAndDockDefenderNotTriggered_dockDefenderDisabled() {
-        doReturn(false).when(mFakeFeatureFactory.powerUsageFeatureProvider).isExtraDefend();
-        mBatteryInfo.isBatteryDefender = true;
-
-        BatteryTip batteryTip = mDockDefenderDetector.detect();
-
-        assertTrue(batteryTip instanceof DockDefenderTip);
-        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..c5897f2 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
@@ -19,20 +19,25 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.spy;
+import static org.robolectric.Shadows.shadowOf;
 
 import android.content.Context;
+import android.os.PowerManager;
+
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.batterytip.BatteryTipPolicy;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 
 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.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.concurrent.TimeUnit;
@@ -40,73 +45,79 @@
 @RunWith(RobolectricTestRunner.class)
 public class LowBatteryDetectorTest {
 
-    @Mock
-    private BatteryInfo mBatteryInfo;
-    private BatteryTipPolicy mPolicy;
+    @Rule public MockitoRule mockitoRule = MockitoJUnit.rule();
+
+    @Mock private BatteryInfo mBatteryInfo;
+
+    private BatteryTipPolicy mBatteryTipPolicy;
     private LowBatteryDetector mLowBatteryDetector;
     private Context mContext;
+    private PowerManager mPowerManager;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        mBatteryTipPolicy = spy(new BatteryTipPolicy(mContext));
 
-        mPolicy = spy(new BatteryTipPolicy(RuntimeEnvironment.application));
-        mContext = RuntimeEnvironment.application;
-        ReflectionHelpers.setField(mPolicy, "lowBatteryEnabled", true);
+        mPowerManager = mContext.getSystemService(PowerManager.class);
+        shadowOf(mPowerManager).setIsPowerSaveMode(false);
+
+        ReflectionHelpers.setField(mBatteryTipPolicy, "lowBatteryEnabled", true);
         mBatteryInfo.discharging = true;
 
-        mLowBatteryDetector = new LowBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                false /* isPowerSaveMode */);
+        mLowBatteryDetector = new LowBatteryDetector(mContext, mBatteryTipPolicy, mBatteryInfo);
     }
 
     @Test
-    public void testDetect_disabledByPolicy_tipInvisible() {
-        ReflectionHelpers.setField(mPolicy, "lowBatteryEnabled", false);
-        mLowBatteryDetector = new LowBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                true /* isPowerSaveMode */);
+    public void detect_disabledByPolicy_tipInvisible() {
+        ReflectionHelpers.setField(mBatteryTipPolicy, "lowBatteryEnabled", false);
+        shadowOf(mPowerManager).setIsPowerSaveMode(true);
+        mLowBatteryDetector = new LowBatteryDetector(mContext, mBatteryTipPolicy, mBatteryInfo);
 
         assertThat(mLowBatteryDetector.detect().isVisible()).isFalse();
     }
 
     @Test
-    public void testDetect_enabledByTest_tipNew() {
-        ReflectionHelpers.setField(mPolicy, "testLowBatteryTip", true);
+    public void detect_enabledByTest_tipNew() {
+        ReflectionHelpers.setField(mBatteryTipPolicy, "testLowBatteryTip", true);
 
         assertThat(mLowBatteryDetector.detect().getState()).isEqualTo(BatteryTip.StateType.NEW);
     }
 
     @Test
-    public void testDetect_lowBattery_tipNew() {
+    public void detect_lowBattery_tipNew() {
         mBatteryInfo.batteryLevel = 20;
         mBatteryInfo.remainingTimeUs = TimeUnit.DAYS.toMillis(1);
+
         assertThat(mLowBatteryDetector.detect().getState()).isEqualTo(BatteryTip.StateType.NEW);
     }
 
     @Test
-    public void testDetect_batterySaverOn_tipInvisible() {
-        mLowBatteryDetector = new LowBatteryDetector(mContext, mPolicy, mBatteryInfo,
-                true /* isPowerSaveMode */);
+    public void detect_batterySaverOn_tipInvisible() {
+        shadowOf(mPowerManager).setIsPowerSaveMode(true);
+        mLowBatteryDetector = new LowBatteryDetector(mContext, mBatteryTipPolicy, mBatteryInfo);
 
         assertThat(mLowBatteryDetector.detect().getState())
                 .isEqualTo(BatteryTip.StateType.INVISIBLE);
     }
 
     @Test
-    public void testDetect_charging_tipInvisible() {
+    public void detect_charging_tipInvisible() {
         mBatteryInfo.discharging = false;
 
         assertThat(mLowBatteryDetector.detect().isVisible()).isFalse();
     }
 
     @Test
-    public void testDetect_lowTimeEstimation_tipInvisible() {
+    public void detect_lowTimeEstimation_tipInvisible() {
         mBatteryInfo.batteryLevel = 50;
         mBatteryInfo.remainingTimeUs = TimeUnit.MINUTES.toMillis(1);
+
         assertThat(mLowBatteryDetector.detect().isVisible()).isFalse();
     }
 
     @Test
-    public void testDetect_noEarlyWarning_tipInvisible() {
+    public void detect_noEarlyWarning_tipInvisible() {
         mBatteryInfo.remainingTimeUs = TimeUnit.DAYS.toMicros(1);
         mBatteryInfo.batteryLevel = 100;
 
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..4efd850 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,10 +17,6 @@
 
 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;
 
@@ -29,6 +25,7 @@
 import android.util.Log;
 
 import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
@@ -36,12 +33,13 @@
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowLog;
 
 @RunWith(RobolectricTestRunner.class)
@@ -51,23 +49,22 @@
     private FakeFeatureFactory mFeatureFactory;
     private BatteryDefenderTip mBatteryDefenderTip;
     private MetricsFeatureProvider mMetricsFeatureProvider;
+    private CardPreference mCardPreference;
 
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock private BatteryTip mBatteryTip;
     @Mock private Preference mPreference;
-    @Mock private CardPreference mCardPreference;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
+        mContext = ApplicationProvider.getApplicationContext();
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
-        mContext = RuntimeEnvironment.application;
-        mBatteryDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW,
-                false /* isPluggedIn */);
+        mBatteryDefenderTip =
+                new BatteryDefenderTip(BatteryTip.StateType.NEW, /* isPluggedIn= */ false);
+        mCardPreference = new CardPreference(mContext);
 
         when(mPreference.getContext()).thenReturn(mContext);
-        when(mCardPreference.getContext()).thenReturn(mContext);
     }
 
     @Test
@@ -89,12 +86,12 @@
     }
 
     @Test
-    public void testLog_logMetric() {
+    public void log_logMetric() {
         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
@@ -106,59 +103,44 @@
 
     @Test
     public void updatePreference_shouldSetPrimaryButtonText() {
-        String expectedText = mContext.getString(R.string.battery_tip_charge_to_full_button);
+        String expectedText = mContext.getString(R.string.learn_more);
 
         mBatteryDefenderTip.updatePreference(mCardPreference);
 
-        verify(mCardPreference).setPrimaryButtonText(expectedText);
+        assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo(expectedText);
     }
 
     @Test
     public void updatePreference_shouldSetSecondaryButtonText() {
-        String expected = mContext.getString(R.string.learn_more);
+        String expected = mContext.getString(R.string.battery_tip_charge_to_full_button);
 
         mBatteryDefenderTip.updatePreference(mCardPreference);
 
-        verify(mCardPreference).setSecondaryButtonText(expected);
+        assertThat(mCardPreference.getSecondaryButtonText()).isEqualTo(expected);
     }
 
     @Test
-    public void updatePreference_shouldSetSecondaryButtonVisible() {
+    public void updatePreference_shouldSetPrimaryButtonVisible() {
         mBatteryDefenderTip.updatePreference(mCardPreference);
 
-        verify(mCardPreference).setSecondaryButtonVisible(true);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
     }
 
     @Test
     public void updatePreference_whenCharging_setPrimaryButtonVisibleToBeTrue() {
-        mBatteryDefenderTip = new BatteryDefenderTip(BatteryTip.StateType.NEW,
-                true /* isPluggedIn */);
+        mBatteryDefenderTip =
+                new BatteryDefenderTip(BatteryTip.StateType.NEW, /* isPluggedIn= */ true);
 
         mBatteryDefenderTip.updatePreference(mCardPreference);
 
-        verify(mCardPreference).setPrimaryButtonVisible(true);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
     }
 
     @Test
-    public void updatePreference_whenNotCharging_setPrimaryButtonVisibleToBeFalse() {
+    public void updatePreference_whenNotCharging_setSecondaryButtonVisibleToBeFalse() {
         mBatteryDefenderTip.updatePreference(mCardPreference);
 
-        verify(mCardPreference).setPrimaryButtonVisible(false);
-    }
-
-    @Test
-    public void updatePreference_whenGetChargingStatusFailed_setPrimaryButtonVisibleToBeFalse() {
-        fakeGetChargingStatusFailed();
-
-        mBatteryDefenderTip.updatePreference(mCardPreference);
-
-        verify(mCardPreference).setPrimaryButtonVisible(false);
-    }
-
-    private void fakeGetChargingStatusFailed() {
-        Context mockContext = mock(Context.class);
-        when(mockContext.getString(anyInt())).thenReturn("fake_string");
-        when(mCardPreference.getContext()).thenReturn(mockContext);
+        assertThat(mCardPreference.getSecondaryButtonVisibility()).isFalse();
     }
 
     private String getLastErrorLog() {
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..097f484 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
@@ -20,11 +20,10 @@
 import android.content.Context;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.view.View;
 
 import androidx.annotation.DrawableRes;
 import androidx.preference.Preference;
-import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.widget.CardPreference;
@@ -32,10 +31,12 @@
 import com.android.settingslib.testutils.DrawableTestHelper;
 
 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.RuntimeEnvironment;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -45,16 +46,17 @@
 
     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;
+
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private Context mContext;
     private TestBatteryTip mBatteryTip;
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
         mBatteryTip = new TestBatteryTip();
+        mContext = ApplicationProvider.getApplicationContext();
     }
 
     @Test
@@ -85,17 +87,14 @@
 
     @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));
         CardPreference cardPreference = new CardPreference(mContext);
-        cardPreference.onBindViewHolder(holder);
-        cardPreference.setPrimaryButtonVisible(true);
+        cardPreference.setPrimaryButtonVisibility(true);
+        cardPreference.setSecondaryButtonVisibility(true);
 
         mBatteryTip.updatePreference(cardPreference);
 
-        View view = holder.findViewById(R.id.card_preference_buttons);
-        assertThat(view.getVisibility()).isEqualTo(View.GONE);
+        assertThat(cardPreference.getPrimaryButtonVisibility()).isFalse();
+        assertThat(cardPreference.getSecondaryButtonVisibility()).isFalse();
     }
 
     @Test
@@ -113,9 +112,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 +147,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
deleted file mode 100644
index e897a1c..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTipTest.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batterytip.tips;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.util.Log;
-
-import androidx.preference.Preference;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.widget.CardPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowLog;
-
-@RunWith(RobolectricTestRunner.class)
-public class DockDefenderTipTest {
-    private Context mContext;
-    private DockDefenderTip mDockDefenderTipFutureBypass;
-    private DockDefenderTip mDockDefenderTipActive;
-    private DockDefenderTip mDockDefenderTipTemporarilyBypassed;
-    private DockDefenderTip mDockDefenderTipDisabled;
-    private FakeFeatureFactory mFeatureFactory;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
-
-    @Mock
-    private Preference mPreference;
-    @Mock
-    private CardPreference mCardPreference;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = ApplicationProvider.getApplicationContext();
-        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);
-
-        doReturn(mContext).when(mPreference).getContext();
-        doReturn(mContext).when(mCardPreference).getContext();
-    }
-
-    @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(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(mDockDefenderTipDisabled.getSummary(mContext)).isNull();
-    }
-
-    @Test
-    public void testGetIconId_dockDefenderActive_getProtectedIcon() {
-        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);
-    }
-
-    @Test
-    public void testUpdateState() {
-        mDockDefenderTipTemporarilyBypassed.updateState(mDockDefenderTipDisabled);
-
-        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());
-    }
-
-
-    @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));
-        verifySecondaryButton();
-    }
-
-    @Test
-    public void testUpdatePreference_dockDefenderTipActive() {
-        mDockDefenderTipActive.updatePreference(mCardPreference);
-
-        verify(mCardPreference).setPrimaryButtonVisible(true);
-        verify(mCardPreference).setPrimaryButtonText(
-                mContext.getString(R.string.battery_tip_charge_to_full_button));
-        verifySecondaryButton();
-    }
-
-    @Test
-    public void testUpdatePreference_dockDefenderTipTemporarilyBypassed() {
-        mDockDefenderTipTemporarilyBypassed.updatePreference(mCardPreference);
-
-        verify(mCardPreference).setPrimaryButtonVisible(false);
-        verify(mCardPreference, never()).setPrimaryButtonText(any());
-        verifySecondaryButton();
-    }
-
-    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));
-    }
-
-    @Test
-    public void updatePreference_castFail_logErrorMessage() {
-        mDockDefenderTipActive.updatePreference(mPreference);
-
-        assertThat(getLastErrorLog()).isEqualTo("cast Preference to CardPreference failed");
-    }
-
-    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;
-    }
-
-    private ShadowLog.LogItem createErrorLog(String msg) {
-        return new ShadowLog.LogItem(Log.ERROR, "tag", msg, null);
-    }
-}
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..7a23332 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,19 +17,15 @@
 
 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;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
@@ -37,12 +33,13 @@
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadows.ShadowLog;
 
 @RunWith(RobolectricTestRunner.class)
@@ -52,40 +49,39 @@
     private FakeFeatureFactory mFeatureFactory;
     private IncompatibleChargerTip mIncompatibleChargerTip;
     private MetricsFeatureProvider mMetricsFeatureProvider;
+    private CardPreference mCardPreference;
 
+    @Rule public MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock private BatteryTip mBatteryTip;
     @Mock private Preference mPreference;
-    @Mock private CardPreference mCardPreference;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mIncompatibleChargerTip = new IncompatibleChargerTip(BatteryTip.StateType.NEW);
+        mCardPreference = new CardPreference(mContext);
 
         when(mPreference.getContext()).thenReturn(mContext);
-        when(mCardPreference.getContext()).thenReturn(mContext);
     }
 
     @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);
+                .isEqualTo(R.drawable.ic_battery_incompatible_charger);
     }
 
     @Test
@@ -93,8 +89,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
@@ -109,13 +108,13 @@
 
         mIncompatibleChargerTip.updatePreference(mCardPreference);
 
-        verify(mCardPreference).setPrimaryButtonText(expected);
+        assertThat(mCardPreference.getPrimaryButtonText()).isEqualTo(expected);
     }
 
     @Test
     public void updatePreference_shouldSetSecondaryButtonVisible() {
         mIncompatibleChargerTip.updatePreference(mCardPreference);
-        verify(mCardPreference).setPrimaryButtonVisible(true);
+        assertThat(mCardPreference.getPrimaryButtonVisibility()).isTrue();
     }
 
     private String getLastErrorLog() {
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 cd4e599..6fb021c 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
@@ -335,6 +337,29 @@
     }
 
     @Test
+    public void showEmptyChart_dailyChartViewIsNull_ignoreShowEmptyChart() {
+        mBatteryChartPreferenceController.mDailyChartView = null;
+        doReturn(View.GONE).when(mHourlyChartView).getVisibility();
+
+        mBatteryChartPreferenceController.showEmptyChart();
+
+        verify(mChartSummaryTextView, never()).setVisibility(View.VISIBLE);
+        verify(mDailyChartView, never()).setVisibility(View.GONE);
+        verify(mHourlyChartView, never()).setVisibility(View.VISIBLE);
+    }
+
+    @Test
+    public void showEmptyChart_hourlyChartViewIsNull_ignoreShowEmptyChart() {
+        mBatteryChartPreferenceController.mHourlyChartView = null;
+
+        mBatteryChartPreferenceController.showEmptyChart();
+
+        verify(mChartSummaryTextView, never()).setVisibility(View.VISIBLE);
+        verify(mDailyChartView, never()).setVisibility(View.GONE);
+        verify(mHourlyChartView, never()).setVisibility(View.VISIBLE);
+    }
+
+    @Test
     public void refreshUi_dailyChartViewIsNull_ignoreRefresh() {
         mBatteryChartPreferenceController.mDailyChartView = null;
 
@@ -359,6 +384,8 @@
         mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
 
         assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(null);
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 100% to 66%");
     }
 
     @Test
@@ -368,6 +395,8 @@
         mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
 
         assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(null);
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 100% to 66%");
     }
 
     @Test
@@ -377,6 +406,8 @@
         mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
 
         assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo("Sunday");
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 83% to 59%");
     }
 
     @Test
@@ -385,8 +416,10 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 2;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "10 AM - 12 PM");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("10 AM - 12 PM");
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 97% to 95%");
     }
 
     @Test
@@ -395,8 +428,10 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 1;
         mBatteryChartPreferenceController.mHourlyChartIndex = 8;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "Sunday 4 PM - 6 PM");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("Sunday 4 PM - 6 PM");
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 67% to 65%");
     }
 
     @Test
@@ -405,8 +440,10 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 0;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "7:01 AM - 8 AM");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("7:01 AM - 8 AM");
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 100% to 99%");
     }
 
     @Test
@@ -415,8 +452,9 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 3;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "12 PM - now");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo("12 PM - now");
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 95% to 66%");
     }
 
     @Test
@@ -425,8 +463,10 @@
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 0;
 
-        assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(
-                "7:01 AM - now");
+        assertThat(mBatteryChartPreferenceController.getSlotInformation())
+                .isEqualTo("7:01 AM - now");
+        assertThat(mBatteryChartPreferenceController.getBatteryLevelPercentageInfo())
+                .isEqualTo("Battery level percentage from 100% to 66%");
     }
 
     @Test
@@ -485,7 +525,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..d351ca3 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,98 @@
         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,
+                /* foregroundServiceUsageTimeInMs= */ 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 +249,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..4567bc3 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,44 @@
 @Config(shadows = {BatteryDiffEntryTest.ShadowUserHandle.class})
 public final class BatteryDiffEntryTest {
 
+    private static final int UID = 100;
+    private static final int USER_ID = 0;
+    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)
+                .getPackageUidAsUser(PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID);
+        doReturn(BatteryUtils.UID_NULL)
+                .when(mMockPackageManager)
+                .getPackageUidAsUser(
+                        UNINSTALLED_PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID);
+        doReturn(BatteryUtils.UID_ZERO)
+                .when(mMockPackageManager)
+                .getPackageUidAsUser(UID_ZERO_PACKAGE_NAME, PackageManager.GET_META_DATA, USER_ID);
         BatteryDiffEntry.clearCache();
     }
 
@@ -95,22 +104,23 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 20002L,
+                        /* backgroundUsageTimeInMs= */ 30003L,
+                        /* screenOnTimeInMs= */ 40004L,
+                        /* 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 +131,23 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 20002L,
+                        /* backgroundUsageTimeInMs= */ 30003L,
+                        /* screenOnTimeInMs= */ 40004L,
+                        /* 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 +160,23 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 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 +196,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 +227,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 +252,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 +277,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 +294,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 +312,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 +332,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 +356,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 +396,8 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_USER_BATTERY,
-                        /*uid=*/ 0, /*isHidden=*/ false);
+                        /* uid= */ 0,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isTrue();
     }
 
@@ -395,7 +406,8 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
-                        /*uid=*/ 0, /*isHidden=*/ false);
+                        /* uid= */ 0,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isTrue();
     }
 
@@ -404,7 +416,8 @@
         final BatteryDiffEntry entry =
                 createBatteryDiffEntry(
                         ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                        /*uid=*/ 123, /*isHidden=*/ false);
+                        /* uid= */ 123,
+                        /* isHidden= */ false);
         assertThat(entry.isSystemEntry()).isFalse();
     }
 
@@ -413,39 +426,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 +526,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 +537,58 @@
     @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,
+                /* foregroundServiceUsageTimeInMs= */ 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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* screenOnTimeInMs= */ 0,
+                        consumePower,
+                        /* foregroundUsageConsumePower= */ 0,
+                        /* foregroundServiceUsageConsumePower= */ 0,
+                        /* backgroundUsageConsumePower= */ 0,
+                        /* cachedUsageConsumePower= */ 0);
         entry.setTotalConsumePower(100.0);
         return entry;
     }
@@ -530,15 +600,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 108d6e2..450d058 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");
@@ -189,44 +195,83 @@
 
     @Test
     public void getTimeInForegroundMs_app() {
-        when(mUidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_FOREGROUND))
+        when(mUidBatteryConsumer.getTimeInProcessStateMs(
+                        UidBatteryConsumer.PROCESS_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);
     }
 
     @Test
     public void getTimeInBackgroundMs_app() {
-        when(mUidBatteryConsumer.getTimeInStateMs(UidBatteryConsumer.STATE_BACKGROUND))
-                .thenReturn(100L);
+        when(mUidBatteryConsumer.getTimeInProcessStateMs(
+                        UidBatteryConsumer.PROCESS_STATE_BACKGROUND))
+                .thenReturn(30L);
 
-        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);
+        assertThat(entry.getTimeInBackgroundMs()).isEqualTo(30L);
+    }
+
+    @Test
+    public void getTimeInForegroundServiceMs_app() {
+        when(mUidBatteryConsumer.getTimeInProcessStateMs(
+                        UidBatteryConsumer.PROCESS_STATE_FOREGROUND_SERVICE))
+                .thenReturn(70L);
+
+        final BatteryEntry entry =
+                new BatteryEntry(
+                        RuntimeEnvironment.application,
+                        mMockUserManager,
+                        mUidBatteryConsumer,
+                        false,
+                        0,
+                        null,
+                        null);
+
+        assertThat(entry.getTimeInForegroundServiceMs()).isEqualTo(70L);
     }
 
     @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 +286,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,18 +315,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(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);
@@ -290,63 +336,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..dc868c8 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() {
@@ -67,6 +65,7 @@
         when(mMockBatteryEntry.getConsumedPowerInCached()).thenReturn(1.5);
         mMockBatteryEntry.mPercent = 0.3;
         when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
+        when(mMockBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(3456L);
         when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
         when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
         when(mMockBatteryEntry.getConsumerType())
@@ -75,17 +74,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 +97,26 @@
     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,
+                        /* foregroundServiceUsageTimeInMs= */ 3456L,
+                        /* 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 +125,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 +135,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 +149,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 +202,55 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 150,
+                        /* 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,
+                        /* foregroundServiceUsageTimeInMs= */ 250,
+                        /* 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)),
+                /* foregroundServiceUsageTimeInMs= */ Math.round(150 + 0.5 * (250 - 150)),
+                /* backgroundUsageTimeInMs= */ Math.round(200 + 0.5 * (300 - 200)),
+                /* batteryLevel= */ (int) Math.round(90 + 0.5 * (80 - 90)));
     }
 
     @Test
@@ -238,40 +258,45 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 250,
+                        /* 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),
+                /* foregroundServiceUsageTimeInMs= */ Math.round(0.5 * 250),
+                /* backgroundUsageTimeInMs= */ Math.round(0.5 * 300),
+                /* batteryLevel= */ upperHistEntry.mBatteryLevel);
     }
 
     private static BatteryHistEntry createEntry(int consumerType) {
@@ -280,26 +305,28 @@
 
     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,
+                /*foregroundServiceUsageTimeInMs=*/ 3456L,
+                /* backgroundUsageTimeInMs= */ 5689L,
+                /* batteryLevel= */ 12);
     }
 
     private void assertBatteryHistEntry(
@@ -315,14 +342,14 @@
             double backgroundUsageConsumePower,
             double cachedUsageConsumePower,
             long foregroundUsageTimeInMs,
+            long foregroundServiceUsageTimeInMs,
             long backgroundUsageTimeInMs,
             int batteryLevel) {
         assertThat(entry.isValidEntry()).isTrue();
         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);
@@ -336,15 +363,13 @@
         assertThat(entry.mCachedUsageConsumePower).isEqualTo(cachedUsageConsumePower);
         assertThat(entry.mPercentOfTotal).isEqualTo(percentOfTotal);
         assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
+        assertThat(entry.mForegroundServiceUsageTimeInMs).isEqualTo(foregroundServiceUsageTimeInMs);
         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(
@@ -357,26 +382,27 @@
             double backgroundUsageConsumePower,
             double cachedUsageConsumePower,
             long foregroundUsageTimeInMs,
+            long foregroundServiceUsageTimeInMs,
             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)
@@ -391,16 +417,18 @@
                         .setPercentOfTotal(0.3)
                         .setDrainType(3)
                         .setForegroundUsageTimeInMs(foregroundUsageTimeInMs)
+                        .setForegroundServiceUsageTimeInMs(foregroundServiceUsageTimeInMs)
                         .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..b0bf241 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
@@ -40,6 +40,7 @@
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -61,19 +62,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 +83,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 +119,20 @@
                 .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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "BrightnessAnomaly",
+                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "BrightnessAnomaly",
+                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
     }
 
     @Test
@@ -140,12 +151,23 @@
         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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "ScreenTimeoutAnomaly",
+                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "ScreenTimeoutAnomaly",
+                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
     }
 
+    @Ignore("b/313582999")
     @Test
     public void onClick_mainBtnOfAppsAnomaly_selectHighlightSlot() {
         final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
@@ -159,15 +181,25 @@
 
         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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "AppAnomaly",
+                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "AppAnomaly",
+                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
     }
 
+    @Ignore("b/313582999")
     @Test
     public void onClick_dismissBtnOfAppsAnomaly_keepHighlightSlotIndex() {
         final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
@@ -180,12 +212,21 @@
 
         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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "AppAnomaly",
+                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
+        verify(mFeatureFactory.metricsFeatureProvider)
+                .action(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "AppAnomaly",
+                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
     }
 }
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..879a5c1 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,21 @@
                 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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "BrightnessAnomaly",
+                        PowerAnomalyKey.KEY_BRIGHTNESS.getNumber());
     }
 
     @Test
@@ -105,25 +108,30 @@
 
         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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "ScreenTimeoutAnomaly",
+                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
     }
 
     @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 +139,17 @@
 
         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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "ScreenTimeoutAnomaly",
+                        PowerAnomalyKey.KEY_SCREEN_TIMEOUT.getNumber());
     }
 
     @Test
@@ -146,20 +158,23 @@
         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(
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW,
+                        SettingsEnums.FUELGAUGE_BATTERY_HISTORY_DETAIL,
+                        "AppAnomaly",
+                        PowerAnomalyKey.KEY_APP_TOTAL_HIGHER_THAN_USUAL.getNumber());
     }
 }
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..5704be9 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,52 @@
                 .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,
+                        /* foregroundServiceUsageTimeInMs= */ 2,
+                        /* backgroundUsageTimeInMs= */ 3,
+                        /* 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 +161,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 +221,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 +237,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 +255,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 +271,13 @@
     @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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0);
         batteryDiffEntry.mConsumePower = 0.8;
         batteryDiffEntry.setTotalConsumePower(100);
         mBatteryUsageBreakdownController.mPercentLessThanThresholdText = "< 1%";
@@ -279,11 +290,13 @@
     @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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0);
         batteryDiffEntry.mConsumePower = 16;
         batteryDiffEntry.setTotalConsumePower(100);
         mBatteryUsageBreakdownController.mPercentLessThanThresholdText = "< 1%";
@@ -299,11 +312,13 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ true,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ true,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString().isEmpty()).isTrue();
     }
 
@@ -313,11 +328,13 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString()).isEqualTo("Total: less than a min");
     }
 
@@ -327,11 +344,13 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString()).isEqualTo("Total: 2 min");
     }
 
@@ -341,11 +360,13 @@
         pref.setSummary(PREF_SUMMARY);
 
         mBatteryUsageBreakdownController.setPreferenceSummary(
-                pref, createBatteryDiffEntry(
-                        /*isSystem=*/ false,
-                        /*screenOnTimeInMs=*/ 0,
-                        /*foregroundUsageTimeInMs=*/ 0,
-                        /*backgroundUsageTimeInMs=*/ 0));
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ false,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString().isEmpty()).isTrue();
     }
 
@@ -355,11 +376,29 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS));
+        assertThat(pref.getSummary().toString()).isEqualTo("Background: 1 min");
+    }
+
+    @Test
+    public void setPreferenceSummary_appEntryWithFGSTime_expectedSummary() {
+        final PowerGaugePreference pref = new PowerGaugePreference(mContext);
+        pref.setSummary(PREF_SUMMARY);
+
+        mBatteryUsageBreakdownController.setPreferenceSummary(
+                pref,
+                createBatteryDiffEntry(
+                        /* isSystem= */ false,
+                        /* screenOnTimeInMs= */ 0,
+                        /* foregroundUsageTimeInMs= */ 0,
+                        /* foregroundServiceUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS / 2,
+                        /* backgroundUsageTimeInMs= */ DateUtils.MINUTE_IN_MILLIS / 2));
         assertThat(pref.getSummary().toString()).isEqualTo("Background: 1 min");
     }
 
@@ -369,11 +408,13 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* backgroundUsageTimeInMs= */ 0));
         assertThat(pref.getSummary().toString()).isEqualTo("Screen time: 1 min");
     }
 
@@ -383,21 +424,30 @@
         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,
+                        /* foregroundServiceUsageTimeInMs= */ 0,
+                        /* 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 foregroundServiceUsageTimeInMs,
+            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(
@@ -412,18 +462,19 @@
                 batteryHistEntry.mConsumerType,
                 foregroundUsageTimeInMs,
                 backgroundUsageTimeInMs,
+                foregroundServiceUsageTimeInMs,
                 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..950f828 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)
@@ -285,6 +290,7 @@
                         .setPercentOfTotal(0.9)
                         .setForegroundUsageTimeInMs(1000)
                         .setBackgroundUsageTimeInMs(2000)
+                        .setForegroundServiceUsageTimeInMs(1500)
                         .setDrainType(1)
                         .build();
         final String expectedBatteryInformationString =
@@ -318,17 +324,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 +383,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 +396,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 +440,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 +454,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 +463,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 +478,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 +537,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 +563,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 +596,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..df330a3 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BootBroadcastReceiverTest.java
@@ -35,6 +35,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -88,7 +89,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 +98,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,10 +125,11 @@
 
     @Test
     public void onReceive_nullIntent_notRefreshesJob() {
-        mReceiver.onReceive(mContext, /*intent=*/ null);
+        mReceiver.onReceive(mContext, /* intent= */ null);
         assertThat(mShadowAlarmManager.peekNextScheduledAlarm()).isNull();
     }
 
+    @Ignore("b/314921894")
     @Test
     public void onReceive_withTimeChangedIntent_clearsAllDataAndRefreshesJob()
             throws InterruptedException {
@@ -142,11 +144,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..5ce449b 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,21 @@
         mMockBatteryEntry.mPercent = 0.3;
         when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
         when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
-        when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
+        when(mMockBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(3456L);
+        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 +119,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 +134,74 @@
         assertThat(batteryInformation.getPercentOfTotal()).isEqualTo(0.3);
         assertThat(batteryInformation.getForegroundUsageTimeInMs()).isEqualTo(1234L);
         assertThat(batteryInformation.getBackgroundUsageTimeInMs()).isEqualTo(5689L);
-        assertThat(batteryInformation.getDrainType()).isEqualTo(expectedType);
+        assertThat(batteryInformation.getForegroundServiceUsageTimeInMs()).isEqualTo(3456L);
+        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.getTimeInForegroundServiceMs()).thenReturn(3456L);
+        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.getForegroundServiceUsageTimeInMs()).isEqualTo(3456L);
+        assertThat(batteryInformation.getDrainType())
+                .isEqualTo(BatteryConsumer.POWER_COMPONENT_CPU);
         assertThat(deviceBatteryState.getBatteryLevel()).isEqualTo(12);
         assertThat(deviceBatteryState.getBatteryStatus())
                 .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
@@ -149,14 +213,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 +234,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 +272,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 +300,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);
@@ -250,28 +311,22 @@
         mMockBatteryEntry.mPercent = 0.3;
         when(mMockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
         when(mMockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
+        when(mMockBatteryEntry.getTimeInForegroundServiceMs()).thenReturn(3456L);
         when(mMockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
         when(mMockBatteryEntry.getConsumerType())
                 .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 +334,9 @@
         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.mForegroundServiceUsageTimeInMs).isEqualTo(3456L);
         assertThat(batteryHistEntry.mDrainType).isEqualTo(expectedType);
         assertThat(batteryHistEntry.mConsumerType)
                 .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
@@ -295,20 +349,61 @@
     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
+    public void convertToBatteryUsageDiff_returnsExpectedResult() {
+        final BatteryDiffEntry batteryDiffEntry =
+                new BatteryDiffEntry(
+                        mContext,
+                        /* uid= */ 101L,
+                        /* userId= */ 1001L,
+                        /* key= */ "key",
+                        /* isHidden= */ false,
+                        /* componentId= */ -1,
+                        /* legacyPackageName= */ null,
+                        /* legacyLabel= */ null,
+                        /* consumerType= */ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /* foregroundUsageTimeInMs= */ 1234L,
+                        /* foregroundServiceUsageTimeInMs= */ 3456L,
+                        /* backgroundUsageTimeInMs= */ 5678L,
+                        /* screenOnTimeInMs= */ 123L,
+                        /* consumePower= */ 1.1,
+                        /* foregroundUsageConsumePower= */ 1.2,
+                        /* foregroundServiceUsageConsumePower= */ 1.3,
+                        /* backgroundUsageConsumePower= */ 1.4,
+                        /* cachedUsageConsumePower= */ 1.5);
+
+        final BatteryUsageDiff batteryUsageDiff =
+                ConvertUtils.convertToBatteryUsageDiff(batteryDiffEntry);
+
+        assertThat(batteryUsageDiff.getUid()).isEqualTo(101L);
+        assertThat(batteryUsageDiff.getUserId()).isEqualTo(1001L);
+        assertThat(batteryUsageDiff.getIsHidden()).isFalse();
+        assertThat(batteryUsageDiff.getComponentId()).isEqualTo(-1);
+        assertThat(batteryUsageDiff.getConsumerType())
+                .isEqualTo(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+        assertThat(batteryUsageDiff.getConsumePower()).isEqualTo(1.1);
+        assertThat(batteryUsageDiff.getForegroundUsageConsumePower()).isEqualTo(1.2);
+        assertThat(batteryUsageDiff.getForegroundServiceUsageConsumePower()).isEqualTo(1.3);
+        assertThat(batteryUsageDiff.getBackgroundUsageConsumePower()).isEqualTo(1.4);
+        assertThat(batteryUsageDiff.getCachedUsageConsumePower()).isEqualTo(1.5);
+        assertThat(batteryUsageDiff.getForegroundUsageTime()).isEqualTo(1234L);
+        assertThat(batteryUsageDiff.getForegroundServiceUsageTime()).isEqualTo(3456L);
+        assertThat(batteryUsageDiff.getBackgroundUsageTime()).isEqualTo(5678L);
+        assertThat(batteryUsageDiff.getScreenOnTime()).isEqualTo(123L);
+        assertThat(batteryUsageDiff.getKey()).isEqualTo("key");
+        assertThat(batteryUsageDiff.hasPackageName()).isFalse();
+        assertThat(batteryUsageDiff.hasLabel()).isFalse();
     }
 
     @Test
@@ -323,8 +418,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 +457,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 +480,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 +516,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 +548,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 +557,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 +575,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 +600,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 +621,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 +632,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 +644,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 +655,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 94fa00f..6227790 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
@@ -53,12 +53,14 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.function.Supplier;
 
 @RunWith(RobolectricTestRunner.class)
@@ -68,42 +70,41 @@
     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() {
         MockitoAnnotations.initMocks(this);
 
         mContext = spy(RuntimeEnvironment.application);
+        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
@@ -113,19 +114,23 @@
     }
 
     @Test
+    @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());
 
@@ -140,6 +145,7 @@
     }
 
     @Test
+    @LooperMode(LooperMode.Mode.LEGACY)
     public void start_loadExpectedAppUsageData() throws RemoteException {
         final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
                 new ArrayList<>();
@@ -160,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);
@@ -176,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();
@@ -220,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();
@@ -258,20 +292,23 @@
     }
 
     @Test
+    @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;
@@ -284,26 +321,32 @@
     }
 
     @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];
@@ -311,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);
@@ -340,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);
@@ -392,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..d89e61b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -92,17 +92,6 @@
     }
 
     @Test
-    public void isWorkProfile_defaultValue_returnFalse() {
-        assertThat(DatabaseUtils.isWorkProfile(mContext)).isFalse();
-    }
-
-    @Test
-    public void isWorkProfile_withManagedUser_returnTrue() {
-        BatteryTestUtils.setWorkProfile(mContext);
-        assertThat(DatabaseUtils.isWorkProfile(mContext)).isTrue();
-    }
-
-    @Test
     public void sendAppUsageEventData_returnsExpectedList() {
         // Configures the testing AppUsageEvent data.
         final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
@@ -117,9 +106,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 +122,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 +147,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 +159,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 +187,7 @@
                         System.currentTimeMillis(),
                         batteryEntryList,
                         mBatteryUsageStats,
-                        /*isFullChargeStart=*/ false);
+                        /* isFullChargeStart= */ false);
 
         assertThat(valuesList).hasSize(2);
         // Verifies the ContentValues content.
@@ -209,10 +196,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 +211,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 +229,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 +249,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 +268,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 +294,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 +357,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 +372,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 +396,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 +434,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 +454,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 +470,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 +494,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 +508,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 +520,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 +580,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 +595,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 bee3045..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,7 +53,12 @@
         MockitoAnnotations.initMocks(this);
 
         mContext = RuntimeEnvironment.application;
-        mRootView = LayoutInflater.from(mContext).inflate(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);
@@ -62,7 +67,8 @@
         mPreferenceViewHolder = PreferenceViewHolder.createInstanceForTests(mRootView);
 
         mPowerGaugePreference = new PowerGaugePreference(mContext);
-        assertThat(mPowerGaugePreference.getLayoutResource()).isEqualTo(R.layout.preference_app);
+        assertThat(mPowerGaugePreference.getLayoutResource())
+                .isEqualTo(com.android.settingslib.widget.preference.app.R.layout.preference_app);
     }
 
     @Test
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 e44d92c..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,6 +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,
+        })
 public class PowerUsageSummaryTest {
     private static Intent sAdditionalBatteryInfoIntent;
 
@@ -78,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;
@@ -117,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);
@@ -154,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();
@@ -253,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
@@ -273,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
@@ -284,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 {
@@ -354,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..0e6f6aa
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/datasaver/DynamicDenylistManagerTest.java
@@ -0,0 +1,443 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.content.pm.PackageManager;
+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.io.PrintWriter;
+import java.io.StringWriter;
+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;
+    @Mock
+    private PackageManager mPackageManager;
+
+    @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();
+    }
+
+    @Test
+    public void dump_dumpExpectedResult() {
+        initDynamicDenylistManager(EMPTY_ARRAY);
+        setupPreference(mManualDenyListPref, FAKE_UID_1);
+        setupPreference(mDynamicDenyListPref, FAKE_UID_2);
+        final StringWriter stringWriter = new StringWriter();
+        final PrintWriter printWriter = new PrintWriter(stringWriter);
+        when(mPackageManager.getNameForUid(FAKE_UID_1_INT)).thenReturn("app1");
+        when(mPackageManager.getNameForUid(FAKE_UID_2_INT)).thenReturn("app2");
+
+        mDynamicDenylistManager.dump(printWriter);
+
+        final String dumpResults = stringWriter.toString();
+        assertThat(dumpResults.contains("\tManualDenylist:\n\t\tapp1")).isTrue();
+        assertThat(dumpResults.contains("\tDynamicDenylist:\n\t\tapp2")).isTrue();
+    }
+
+    @Test
+    public void dump_withEmptySharedPreferences_dumpExpectedResult() {
+        initDynamicDenylistManager(EMPTY_ARRAY, EMPTY_ARRAY);
+        mDynamicDenylistManager.clearSharedPreferences();
+        final StringWriter stringWriter = new StringWriter();
+        final PrintWriter printWriter = new PrintWriter(stringWriter);
+
+        mDynamicDenylistManager.dump(printWriter);
+
+        final String dumpResults = stringWriter.toString();
+        assertThat(dumpResults.contains("Dump of DynamicDenylistManager:")).isTrue();
+        assertThat(dumpResults.contains("\tManualDenylist:\n\tDynamicDenylist:")).isTrue();
+    }
+
+    @Test
+    public void onBootComplete_resetIntoManualMode() {
+        initDynamicDenylistManager(new int[] {FAKE_UID_1_INT});
+        setDenylist(new ArraySet<>(List.of(FAKE_UID_2_INT)));
+        // Ensure the testing environment for manual denylist.
+        assertThat(mManualDenyListPref.getAll()).hasSize(2);
+        assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+        // Ensure the testing environment for dynamic denylist.
+        assertThat(mDynamicDenyListPref.getAll()).hasSize(1);
+
+        mDynamicDenylistManager.onBootComplete();
+
+        // Keep the users set uids in the manual denylist.
+        assertThat(mManualDenyListPref.getAll()).hasSize(2);
+        assertTrue(mManualDenyListPref.contains(PREF_KEY_MANUAL_DENYLIST_SYNCED));
+        assertTrue(mManualDenyListPref.contains(FAKE_UID_1));
+        // Clear the uids in the dynamic denylist.
+        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(context.getApplicationContext()).thenReturn(context);
+        when(context.getPackageManager()).thenReturn(mPackageManager);
+        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/AssistGestureSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsPreferenceControllerTest.java
deleted file mode 100644
index 4984946..0000000
--- a/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsPreferenceControllerTest.java
+++ /dev/null
@@ -1,74 +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.gestures;
-
-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.when;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowSecureSettings;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSecureSettings.class)
-public class AssistGestureSettingsPreferenceControllerTest {
-
-    private static final String KEY_ASSIST = "gesture_assist";
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Context mContext;
-    private FakeFeatureFactory mFactory;
-    private AssistGestureSettingsPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        doReturn(mock(DevicePolicyManager.class)).when(mContext)
-                .getSystemService(Context.DEVICE_POLICY_SERVICE);
-        mFactory = FakeFeatureFactory.setupForTest();
-        mController = new AssistGestureSettingsPreferenceController(mContext, KEY_ASSIST);
-        mController.setAssistOnly(false);
-    }
-
-    @Test
-    public void isAvailable_whenSupported_shouldReturnTrue() {
-        mController.mAssistOnly = false;
-        when(mFactory.assistGestureFeatureProvider.isSensorAvailable(mContext)).thenReturn(true);
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    @Test
-    public void isAvailable_whenUnsupported_shouldReturnFalse() {
-        when(mFactory.assistGestureFeatureProvider.isSupported(mContext)).thenReturn(false);
-        assertThat(mController.isAvailable()).isFalse();
-    }
-}
-
diff --git a/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java
deleted file mode 100644
index 17db208..0000000
--- a/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java
+++ /dev/null
@@ -1,77 +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.gestures;
-
-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.provider.SearchIndexableResource;
-
-import com.android.settings.R;
-import com.android.settings.testutils.FakeFeatureFactory;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class AssistGestureSettingsTest {
-
-    private FakeFeatureFactory mFakeFeatureFactory;
-    private AssistGestureSettings mSettings;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
-        mSettings = new AssistGestureSettings();
-    }
-
-    @Test
-    public void testGetPreferenceScreenResId() {
-        assertThat(mSettings.getPreferenceScreenResId())
-                .isEqualTo(R.xml.assist_gesture_settings);
-    }
-
-    @Test
-    public void testSearchIndexProvider_shouldIndexResource() {
-        final List<SearchIndexableResource> indexRes =
-                AssistGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
-                    RuntimeEnvironment.application, true /* enabled */);
-
-        assertThat(indexRes).isNotNull();
-        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
-    }
-
-    @Test
-    public void testSearchIndexProvider_noSensor_shouldDisablePageSearch() {
-        when(mFakeFeatureFactory.assistGestureFeatureProvider.isSensorAvailable(any(Context.class)))
-                .thenReturn(false);
-
-        assertThat(AssistGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
-                RuntimeEnvironment.application))
-                .isNotEmpty();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java b/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java
index 8d43aaa..527ea44 100644
--- a/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java
@@ -29,8 +29,10 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class BackGestureIndicatorViewTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/gestures/GesturesSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/GesturesSettingsPreferenceControllerTest.java
index fc0f45c..32dd7af 100644
--- a/tests/robotests/src/com/android/settings/gestures/GesturesSettingsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/GesturesSettingsPreferenceControllerTest.java
@@ -57,7 +57,7 @@
         doReturn(mock(DevicePolicyManager.class)).when(mActivity)
                 .getSystemService(Context.DEVICE_POLICY_SERVICE);
         FakeFeatureFactory.setupForTest();
-        mController = new GesturesSettingPreferenceController(mActivity);
+        mController = new GesturesSettingPreferenceController(mActivity, "test_key");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/gestures/GlobalActionsPanelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/GlobalActionsPanelPreferenceControllerTest.java
deleted file mode 100644
index 65f7ac7..0000000
--- a/tests/robotests/src/com/android/settings/gestures/GlobalActionsPanelPreferenceControllerTest.java
+++ /dev/null
@@ -1,93 +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.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.provider.Settings;
-
-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;
-
-@RunWith(RobolectricTestRunner.class)
-public class GlobalActionsPanelPreferenceControllerTest {
-
-    private Context mContext;
-    private GlobalActionsPanelPreferenceController mController;
-
-    private static final String KEY_GESTURE_PANEL = "gesture_global_actions_panel";
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mController = new GlobalActionsPanelPreferenceController(mContext, KEY_GESTURE_PANEL);
-    }
-
-    @Test
-    public void testIsChecked_panelEnabled() {
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), mController.ENABLED_SETTING, 1);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testIsChecked_panelDisabled() {
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), mController.ENABLED_SETTING, 0);
-        assertThat(mController.isChecked()).isFalse();
-    }
-
-    @Test
-    public void getAvailabilityStatus_panelAvailable() {
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), mController.AVAILABLE_SETTING, 1);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(mController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_panelUnavailable() {
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), mController.AVAILABLE_SETTING, 0);
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(mController.CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void isSliceable_correctKey() {
-        final GlobalActionsPanelPreferenceController controller =
-                new GlobalActionsPanelPreferenceController(mContext, mController.TOGGLE_KEY);
-        assertThat(controller.isSliceable()).isTrue();
-    }
-
-    @Test
-    public void isSliceable_incorrectKey() {
-        final GlobalActionsPanelPreferenceController controller =
-                new GlobalActionsPanelPreferenceController(mContext, "bad_key");
-        assertThat(controller.isSliceable()).isFalse();
-    }
-
-    @Test
-    public void isPublicSlice_returnTrue() {
-        assertThat(mController.isPublicSlice()).isTrue();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java
index 6302f80..5262a16 100644
--- a/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/LabeledSeekBarPreferenceTest.java
@@ -42,6 +42,7 @@
 import com.android.settings.widget.LabeledSeekBarPreference;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -150,6 +151,7 @@
         assertThat(mLabelFrame.getVisibility()).isEqualTo(View.GONE);
     }
 
+    @Ignore("b/313594999")
     @Test
     public void setIconAttributes_iconVisible() {
         final AttributeSet attributeSet = Robolectric.buildAttributeSet()
@@ -204,6 +206,7 @@
         new LabeledSeekBarPreference(mContext, attributeSet);
     }
 
+    @Ignore("b/313594999")
     @Test
     public void setContentDescriptionWithIcon_success() {
         final String startDescription =
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
index e6b0343..de07fe0 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedActionPullDownPrefControllerTest.java
@@ -26,6 +26,7 @@
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -76,6 +77,7 @@
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
     }
 
+    @Ignore("b/313541907")
     @Test
     public void getAvailabilityStatus_setNavi3ButtonMode_shouldDisabled() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
index da27191..6d13056 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedActionShowNotificationPrefControllerTest.java
@@ -26,6 +26,7 @@
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -85,6 +86,7 @@
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
     }
 
+    @Ignore("b/313541907")
     @Test
     public void getAvailabilityStatus_setNavi3ButtonMode_shouldDisabled() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
index 599d4e0..118c58a 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedMainSwitchPreferenceControllerTest.java
@@ -25,6 +25,7 @@
 import com.android.settings.core.BasePreferenceController;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -83,6 +84,7 @@
                 .isEqualTo(BasePreferenceController.DISABLED_DEPENDENT_SETTING);
     }
 
+    @Ignore("b/313541907")
     @Test
     public void getAvailabilityStatus_set3ButtonMode_shouldDisabled() {
         SystemProperties.set(OneHandedSettingsUtils.SUPPORT_ONE_HANDED_MODE, "true");
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java b/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java
index 112e04a..b3d4934 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/OneHandedPreferenceCategoryControllerTest.java
@@ -30,6 +30,7 @@
 import com.android.settings.R;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -61,6 +62,7 @@
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
     }
 
+    @Ignore("b/313541907")
     @Test
     public void getTitle_set3ButtonMode_shouldReturnSetShortcutTo() {
         mUtils.setNavigationBarMode(mContext, "0" /* 3 button */);
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/homepage/SettingsHomepageActivityTest.java b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
index 2c16db5..6cd4f16 100644
--- a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
@@ -29,6 +29,7 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -44,6 +45,7 @@
 import android.widget.FrameLayout;
 
 import androidx.fragment.app.Fragment;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl;
@@ -53,15 +55,14 @@
 import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
 
 import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
@@ -71,14 +72,14 @@
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class,
-        SettingsHomepageActivityTest.ShadowSuggestionFeatureProviderImpl.class})
+@Config(shadows = {
+        ShadowUserManager.class,
+        SettingsHomepageActivityTest.ShadowSuggestionFeatureProviderImpl.class,
+        ShadowActivityManager.class,
+})
 public class SettingsHomepageActivityTest {
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-    }
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     @After
     public void tearDown() {
@@ -103,7 +104,6 @@
         assertThat(avatarView.getVisibility()).isNotEqualTo(View.VISIBLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void launch_configEnabled_shouldShowAvatar() {
@@ -118,7 +118,8 @@
     @Config(qualifiers = "mcc999")
     public void launch_LowRamDevice_shouldHideAvatar() {
         final ShadowActivityManager activityManager = Shadow.extract(
-                RuntimeEnvironment.application.getSystemService(ActivityManager.class));
+                ApplicationProvider.getApplicationContext().getSystemService(
+                        ActivityManager.class));
         activityManager.setIsLowRamDevice(true);
 
         final SettingsHomepageActivity activity = Robolectric.buildActivity(
@@ -167,6 +168,19 @@
     }
 
     @Test
+    public void showHomepageWithSuggestion_callAfterOnStop_shouldUpdateVisibility() {
+        final SettingsHomepageActivity activity = Robolectric.buildActivity(
+                SettingsHomepageActivity.class).create().get();
+        final View suggestionTile = activity.findViewById(R.id.suggestion_content);
+
+        activity.showHomepageWithSuggestion(true);
+        activity.onStop();
+        activity.showHomepageWithSuggestion(false);
+
+        assertThat(suggestionTile.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
     public void onStart_isNotDebuggable_shouldHideSystemOverlay() {
         ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
 
@@ -209,6 +223,28 @@
                 & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo(0);
     }
 
+    @Test
+    public void onCreate_notTaskRoot_shouldFinishActivity() {
+        SettingsHomepageActivity activity =
+                spy(Robolectric.buildActivity(SettingsHomepageActivity.class).get());
+        doReturn(false).when(activity).isTaskRoot();
+
+        activity.onCreate(/* savedInstanceState */ null);
+
+        verify(activity).finish();
+    }
+
+    @Test
+    public void onCreate_singleTaskActivity_shouldNotFinishActivity() {
+        SettingsHomepageActivity activity =
+                spy(Robolectric.buildActivity(DeepLinkHomepageActivity.class).get());
+        doReturn(false).when(activity).isTaskRoot();
+
+        activity.onCreate(/* savedInstanceState */ null);
+
+        verify(activity, never()).finish();
+    }
+
     /** This test is for large screen devices Activity embedding. */
     @Test
     @Config(shadows = ShadowActivityEmbeddingUtils.class)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
index 5dfe8b9..8a10bd9 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardFeatureProviderImplTest.java
@@ -18,12 +18,12 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.annotation.Nullable;
 import android.content.ContentValues;
 import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 
+import androidx.annotation.Nullable;
 import androidx.slice.SliceProvider;
 import androidx.slice.widget.SliceLiveData;
 
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
index fceb79d..1967aef 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLoaderTest.java
@@ -145,7 +145,7 @@
     @Test
     public void getCardCount_hasConfiguredCardCount_returnConfiguredCardCount() {
         int configCount = 4;
-        Settings.Global.putLong(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(),
                 ContextualCardLoader.CONTEXTUAL_CARD_COUNT, configCount);
 
         assertThat(mContextualCardLoader.getCardCount()).isEqualTo(configCount);
@@ -168,6 +168,7 @@
                 .setName("test_dark_theme")
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(CustomSliceRegistry.DARK_THEME_SLICE_URI)
+                .setCategory(STICKY_VALUE)
                 .build());
         cards.add(new ContextualCard.Builder()
                 .setName("test_gesture")
@@ -176,12 +177,6 @@
                         "content://com.android.settings.test.slices/action/gesture_pick_up"))
                 .build());
         cards.add(new ContextualCard.Builder()
-                .setName("test_wifi")
-                .setCardType(ContextualCard.CardType.SLICE)
-                .setSliceUri(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI)
-                .setCategory(STICKY_VALUE)
-                .build());
-        cards.add(new ContextualCard.Builder()
                 .setName("test_connected")
                 .setCardType(ContextualCard.CardType.SLICE)
                 .setSliceUri(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
index f3c3e12..b53f760 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardManagerTest.java
@@ -61,7 +61,6 @@
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -152,7 +151,6 @@
         assertThat(actual).containsExactlyElementsIn(expected);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void loadContextualCards_restartLoaderNotNeeded_shouldInitLoader() {
@@ -162,7 +160,6 @@
                 any(ContextualCardManager.CardContentLoaderCallbacks.class));
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void loadContextualCards_restartLoaderNeeded_shouldRestartLoaderAndSetIsFirstLaunch() {
@@ -237,7 +234,7 @@
     @Test
     public void sortCards_hasStickyCards_stickyShouldAlwaysBeTheLast() {
         final List<ContextualCard> cards = new ArrayList<>();
-        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI,
+        cards.add(buildContextualCard(CustomSliceRegistry.FACE_ENROLL_SLICE_URI,
                 ContextualCardProto.ContextualCard.Category.STICKY_VALUE, 1.02f));
         cards.add(buildContextualCard(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI,
                 ContextualCardProto.ContextualCard.Category.STICKY_VALUE, 1.01f));
@@ -249,7 +246,7 @@
         assertThat(sortedCards.get(cards.size() - 1).getSliceUri())
                 .isEqualTo(CustomSliceRegistry.BLUETOOTH_DEVICES_SLICE_URI);
         assertThat(sortedCards.get(cards.size() - 2).getSliceUri())
-                .isEqualTo(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI);
+                .isEqualTo(CustomSliceRegistry.FACE_ENROLL_SLICE_URI);
     }
 
     @Test
@@ -614,7 +611,7 @@
     @Test
     public void getCardsWithViewType_hasOneStickySlice_shouldHaveOneStickyCard() {
         final List<ContextualCard> cards = new ArrayList<>();
-        cards.add(buildContextualCard(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString()));
+        cards.add(buildContextualCard(CustomSliceRegistry.FACE_ENROLL_SLICE_URI.toString()));
         cards.add(buildContextualCard(CustomSliceRegistry.LOW_STORAGE_SLICE_URI.toString()));
         final List<Integer> categories = Arrays.asList(
                 ContextualCardProto.ContextualCard.Category.STICKY_VALUE,
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
index d4b67f5..dcf3387 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
@@ -70,16 +70,16 @@
     }
 
     @Test
-    public void getContextualCards_wifiSlice_shouldGetImportantCategory() {
+    public void getContextualCards_darkThemeSlice_shouldGetImportantCategory() {
         final ContextualCardList cards = mProvider.getContextualCards();
-        ContextualCard wifiCard = null;
+        ContextualCard darkThemeCard = null;
         for (ContextualCard card : cards.getCardList()) {
             if (card.getSliceUri().equals(
-                    CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI.toString())) {
-                wifiCard = card;
+                    CustomSliceRegistry.DARK_THEME_SLICE_URI.toString())) {
+                darkThemeCard = card;
             }
         }
 
-        assertThat(wifiCard.getCardCategory()).isEqualTo(ContextualCard.Category.IMPORTANT);
+        assertThat(darkThemeCard.getCardCategory()).isEqualTo(ContextualCard.Category.IMPORTANT);
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
index 5d5070b..b75240c 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
@@ -32,8 +32,10 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class AbnormalRingerConditionControllerBaseTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
index 1413be3..aa4e11f 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/BackgroundDataConditionControllerTest.java
@@ -25,7 +25,6 @@
 import android.net.NetworkPolicyManager;
 
 import com.android.settings.Settings;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -53,8 +52,7 @@
         MockitoAnnotations.initMocks(this);
         ShadowApplication.getInstance().setSystemService(Context.NETWORK_POLICY_SERVICE,
                 mNetworkPolicyManager);
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
         mController = new BackgroundDataConditionController(mActivity, mConditionManager);
     }
 
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java
index 58a8d5b..9e83641 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/GrayscaleConditionControllerTest.java
@@ -29,6 +29,7 @@
 import android.os.UserHandle;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -56,6 +57,7 @@
         mController = new GrayscaleConditionController(mContext, mConditionManager);
     }
 
+    @Ignore("b/313597163")
     @Test
     public void isDisplayable_noIntent_shouldReturnFalse() {
         assertThat(mController.isDisplayable()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
index aedd601..299780c 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/WorkModeConditionControllerTest.java
@@ -24,7 +24,6 @@
 import android.content.ComponentName;
 
 import com.android.settings.Settings;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -47,8 +46,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mActivity = spy((Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(Activity.class));
         mController = new WorkModeConditionController(mActivity, mConditionManager);
     }
 
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java
index 582c4a1..502a62b 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/legacysuggestion/LegacySuggestionContextualCardControllerTest.java
@@ -34,7 +34,6 @@
 import com.android.settingslib.suggestions.SuggestionController;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -69,7 +68,6 @@
         assertThat(controller.mSuggestionController).isNotNull();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void init_configOff_shouldNotCreateSuggestionController() {
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorkerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorkerTest.java
index e34737b..43630e8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothUpdateWorkerTest.java
@@ -16,12 +16,9 @@
 
 package com.android.settings.homepage.contextualcards.slices;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
-import android.content.ContentResolver;
 import android.content.Context;
 import android.net.Uri;
 
@@ -42,49 +39,46 @@
     private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
 
     private BluetoothUpdateWorker mBluetoothUpdateWorker;
-    private ContentResolver mResolver;
     private Context mContext;
 
     @Before
     public void setUp() {
-        mContext = spy(RuntimeEnvironment.application);
-        mBluetoothUpdateWorker = new BluetoothUpdateWorker(mContext, URI);
-        mResolver = mock(ContentResolver.class);
-        doReturn(mResolver).when(mContext).getContentResolver();
+        mContext = RuntimeEnvironment.getApplication();
+        mBluetoothUpdateWorker = spy(new BluetoothUpdateWorker(mContext, URI));
     }
 
     @Test
     public void onAclConnectionStateChanged_shouldNotifyChange() {
         mBluetoothUpdateWorker.onAclConnectionStateChanged(null, 0);
 
-        verify(mResolver).notifyChange(URI, null);
+        verify(mBluetoothUpdateWorker).notifySliceChange();
     }
 
     @Test
     public void onActiveDeviceChanged_shouldNotifyChange() {
         mBluetoothUpdateWorker.onActiveDeviceChanged(null, 0);
 
-        verify(mResolver).notifyChange(URI, null);
+        verify(mBluetoothUpdateWorker).notifySliceChange();
     }
 
     @Test
     public void onBluetoothStateChanged_shouldNotifyChange() {
         mBluetoothUpdateWorker.onBluetoothStateChanged(0);
 
-        verify(mResolver).notifyChange(URI, null);
+        verify(mBluetoothUpdateWorker).notifySliceChange();
     }
 
     @Test
     public void onConnectionStateChanged_shouldNotifyChange() {
         mBluetoothUpdateWorker.onConnectionStateChanged(null, 0);
 
-        verify(mResolver).notifyChange(URI, null);
+        verify(mBluetoothUpdateWorker).notifySliceChange();
     }
 
     @Test
     public void onProfileConnectionStateChanged_shouldNotifyChange() {
         mBluetoothUpdateWorker.onProfileConnectionStateChanged(null, 0, 0);
 
-        verify(mResolver).notifyChange(URI, null);
+        verify(mBluetoothUpdateWorker).notifySliceChange();
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
index 3be65dc..4377ec0 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
@@ -42,14 +42,19 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowDrawable.class,
+})
 public class DarkThemeSliceTest {
     @Mock
     private BatteryManager mBatteryManager;
@@ -125,6 +130,7 @@
         assertThat(mDarkThemeSlice.isAvailable(mContext)).isTrue();
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getSlice_batterySaver_returnErrorSlice() {
         when(mPowerManager.isPowerSaveMode()).thenReturn(true);
@@ -134,6 +140,7 @@
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getSlice_notAvailable_returnErrorSlice() {
         mContext.getResources().getConfiguration().uiMode = UI_MODE_NIGHT_YES;
@@ -143,6 +150,7 @@
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getSlice_newSession_notAvailable_returnErrorSlice() {
         // previous displayed: yes
@@ -169,6 +177,7 @@
         assertThat(mDarkThemeSlice.getSlice()).isNotNull();
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getSlice_sliceNotClicked_notAvailable_returnErrorSlice() {
         mDarkThemeSlice.sSliceClicked = false;
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardControllerTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardControllerTest.java
index b8b2aa8..8c25260 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardControllerTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardControllerTest.java
@@ -144,7 +144,6 @@
                 .isEqualTo(ContextualCardFeedbackDialog.class.getName());
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isFeedbackEnabled_hasFeedbackEmail_debug_returnTrue() {
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index cf8d361..71c839d 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -38,20 +38,19 @@
 import androidx.lifecycle.LiveData;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
 import androidx.slice.Slice;
 import androidx.slice.SliceProvider;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.builders.SliceAction;
 import androidx.slice.widget.SliceLiveData;
 
-
 import com.android.settings.R;
 import com.android.settings.homepage.contextualcards.ContextualCard;
 import com.android.settings.homepage.contextualcards.ContextualCardsFragment;
 import com.android.settings.homepage.contextualcards.ControllerRendererPool;
-import com.android.settings.wifi.slice.ContextualWifiSlice;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -102,6 +101,7 @@
                 .isNull();
     }
 
+    @Ignore("b/313598030")
     @Test
     public void bindView_viewTypeFullWidth_shouldSetCachedSlice() {
         final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
@@ -113,6 +113,7 @@
                 .isNotNull();
     }
 
+    @Ignore("b/313598030")
     @Test
     public void bindView_viewTypeSticky_shouldSetCachedSlice() {
         final RecyclerView.ViewHolder viewHolder = spy(getStickyViewHolder());
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java
index 3e5934b..89a9ca8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SwipeDismissalDelegateTest.java
@@ -36,6 +36,7 @@
 import com.android.settings.homepage.contextualcards.slices.SliceFullCardRendererHelper.SliceViewHolder;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -67,12 +68,14 @@
         mDismissalDelegate = new SwipeDismissalDelegate(mDismissalDelegateListener);
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getMovementFlags_conditionalViewHolder_shouldDisableSwipe() {
         assertThat(mDismissalDelegate.getMovementFlags(mRecyclerView, getConditionalViewHolder()))
                 .isEqualTo(0);
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getMovementFlags_dismissalView_shouldDisableSwipe() {
         final RecyclerView.ViewHolder holder = getSliceViewHolder();
@@ -81,6 +84,7 @@
         assertThat(mDismissalDelegate.getMovementFlags(mRecyclerView, holder)).isEqualTo(0);
     }
 
+    @Ignore("b/313598030")
     @Test
     public void getMovementFlags_SliceViewHolder_shouldEnableSwipe() {
         final RecyclerView.ViewHolder holder = getSliceViewHolder();
@@ -90,6 +94,7 @@
                 .isNotEqualTo(0);
     }
 
+    @Ignore("b/313598030")
     @Test
     public void onSwipe_shouldNotifyListener() {
         mDismissalDelegate.onSwiped(getSliceViewHolder(), 1);
diff --git a/tests/robotests/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragmentTest.java b/tests/robotests/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragmentTest.java
index 98ecc05..c6a5d64 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/AvailableVirtualKeyboardFragmentTest.java
@@ -23,11 +23,11 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.mock;
 
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
@@ -159,7 +159,7 @@
         mFragment.updateInputMethodPreferenceViews();
 
         verify(mValuesWrapper).getInputMethodList();
-        verify(mInputMethodManager).getEnabledInputMethodListAsUser(anyInt());
+        verify(mInputMethodManager).getEnabledInputMethodListAsUser(any(UserHandle.class));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/GameControllerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/GameControllerPreferenceControllerTest.java
index ea4675d..ae5afd2 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/GameControllerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/GameControllerPreferenceControllerTest.java
@@ -32,7 +32,6 @@
 import android.view.InputDevice;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -111,7 +110,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_ifDisabled_shouldReturnDisabled() {
diff --git a/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java b/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java
index ee5451a..2d4af3c 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java
@@ -27,7 +27,6 @@
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.settings.R;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -35,8 +34,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class InputMethodAndSubtypeEnablerTest {
 
     private FragmentActivity mActivity;
@@ -45,8 +48,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mFragment = spy(new InputMethodAndSubtypeEnabler());
         when(mFragment.getActivity()).thenReturn(mActivity);
     }
diff --git a/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceControllerTest.java
index 26cdd0a..0d1f683 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypePreferenceControllerTest.java
@@ -47,7 +47,10 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowInputMethodManagerWithMethodList.class)
+@Config(shadows = {
+        ShadowInputMethodManagerWithMethodList.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class InputMethodAndSubtypePreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardLayoutPickerControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardLayoutPickerControllerTest.java
index 7840bfd..0a1ccbb 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardLayoutPickerControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardLayoutPickerControllerTest.java
@@ -39,7 +39,6 @@
 import com.android.settings.testutils.shadow.ShadowInputDevice;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -50,8 +49,10 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class KeyboardLayoutPickerControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
index 1bf61a4..b8070d3 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
@@ -44,14 +44,21 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
 
 /** Tests for {@link KeyboardSettingsPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowInputManager.class,
+})
 public class KeyboardSettingsPreferenceControllerTest {
 
+    private static final int VENDOR_ID = 123;
+    private static final int PRODUCT_ID = 456;
+
     @Rule
     public MockitoRule mMockitoRule = MockitoJUnit.rule();
 
@@ -84,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/SpellCheckerPreferenceTest.java b/tests/robotests/src/com/android/settings/inputmethod/SpellCheckerPreferenceTest.java
new file mode 100644
index 0000000..d8e54b0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/SpellCheckerPreferenceTest.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.inputmethod;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.content.Intent;
+import android.view.View;
+import android.view.textservice.SpellCheckerInfo;
+
+import androidx.preference.PreferenceViewHolder;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class SpellCheckerPreferenceTest {
+
+    private Context mContext;
+    private PreferenceViewHolder mViewHolder;
+    private View mDivider;
+    private SpellCheckerPreference mPreference;
+    private final SpellCheckerInfo[] mScis = new SpellCheckerInfo[]{};
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mPreference = new SpellCheckerPreference(mContext, mScis);
+    }
+
+    @Test
+    public void onBindViewHolder_withIntent_DividerIsVisible() {
+        final View view = spy(View.inflate(mContext, mPreference.getLayoutResource(), null));
+        mViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+        mDivider = view.findViewById(
+                com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
+        mPreference.mIntent = new Intent(Intent.ACTION_MAIN);
+
+        mPreference.onBindViewHolder(mViewHolder);
+
+        assertThat(mDivider.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void onBindViewHolder_withoutIntent_DividerIsNotExist() {
+        final View view = spy(View.inflate(mContext, mPreference.getLayoutResource(), null));
+        mViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+        mDivider = view.findViewById(
+                com.android.settingslib.widget.preference.twotarget.R.id.two_target_divider);
+
+        mPreference.onBindViewHolder(mViewHolder);
+
+        assertThat(mDivider.getVisibility()).isEqualTo(View.GONE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
index 1b061ec..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,25 +31,37 @@
 
 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;
 
 /** Tests for {@link TrackpadBottomPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        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);
     }
 
@@ -70,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
@@ -83,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 daf1773..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,15 +31,25 @@
 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;
 
 /** Tests for {@link TrackpadPointerSpeedPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        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;
@@ -42,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(),
@@ -85,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 93c4844..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,25 +31,37 @@
 
 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;
 
 /** Tests for {@link TrackpadReverseScrollingPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        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);
     }
 
@@ -70,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
@@ -83,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 b4b8921..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,25 +31,37 @@
 
 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;
 
 /** Tests for {@link TrackpadTapToClickPreferenceController} */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        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);
     }
 
@@ -70,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
@@ -83,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/inputmethod/VirtualKeyboardPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceControllerTest.java
index 6fe731e..dd6da3b 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/VirtualKeyboardPreferenceControllerTest.java
@@ -33,10 +33,7 @@
 import androidx.core.text.BidiFormatter;
 import androidx.preference.Preference;
 
-import com.android.settings.R;
-
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -80,7 +77,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testVirtualKeyboard_ifDisabled_shouldNotBeShown() {
@@ -93,7 +89,7 @@
     public void updateState_noEnabledIMEs_setEmptySummary() {
         mController.updateState(mPreference);
 
-        verify(mPreference).setSummary(R.string.summary_empty);
+        verify(mPreference).setSummary(com.android.settingslib.R.string.summary_empty);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
index e2c39ec..4429dd7 100644
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
@@ -45,7 +45,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -115,7 +114,6 @@
         assertThat(controllers.isEmpty()).isFalse();
     }
 
-    @Ignore
     @Test
     public void testNonIndexableKeys_existInXmlLayout() {
         final Context context = spy(RuntimeEnvironment.application);
diff --git a/tests/robotests/src/com/android/settings/language/PhoneLanguagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/language/PhoneLanguagePreferenceControllerTest.java
index 8a362cd..aa4c32e 100644
--- a/tests/robotests/src/com/android/settings/language/PhoneLanguagePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/language/PhoneLanguagePreferenceControllerTest.java
@@ -31,7 +31,6 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -94,7 +93,6 @@
                 .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testIsAvailable_ifDisabled_shouldReturnFalse() {
diff --git a/tests/robotests/src/com/android/settings/language/PointerSpeedControllerTest.java b/tests/robotests/src/com/android/settings/language/PointerSpeedControllerTest.java
index 9a3fe55..a917a6d 100644
--- a/tests/robotests/src/com/android/settings/language/PointerSpeedControllerTest.java
+++ b/tests/robotests/src/com/android/settings/language/PointerSpeedControllerTest.java
@@ -23,7 +23,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -34,25 +33,24 @@
 @RunWith(RobolectricTestRunner.class)
 public class PointerSpeedControllerTest {
 
-    private Context mContext;
-    private PointerSpeedController mController;
+  private Context mContext;
+  private PointerSpeedController mController;
 
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
-        mController = new PointerSpeedController(mContext);
-    }
+  @Before
+  public void setUp() {
+    MockitoAnnotations.initMocks(this);
+    mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+    mController = new PointerSpeedController(mContext);
+  }
 
-    @Test
-    public void testDeviceAdministrators_byDefault_shouldBeShown() {
-        assertThat(mController.isAvailable()).isTrue();
-    }
+  @Test
+  public void testDeviceAdministrators_byDefault_shouldBeShown() {
+    assertThat(mController.isAvailable()).isTrue();
+  }
 
-    @Ignore
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void testDeviceAdministrators_ifDisabled_shouldNotBeShown() {
-        assertThat(mController.isAvailable()).isFalse();
-    }
+  @Test
+  @Config(qualifiers = "mcc999")
+  public void testDeviceAdministrators_ifDisabled_shouldNotBeShown() {
+    assertThat(mController.isAvailable()).isFalse();
+  }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
index 48caecd..2989324 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,17 +29,23 @@
 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;
 import android.content.pm.InstallSourceInfo;
 import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.net.Uri;
 import android.os.LocaleList;
 import android.os.Process;
+import android.os.SystemClock;
 import android.os.UserHandle;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.telephony.TelephonyManager;
 
 import androidx.annotation.ArrayRes;
@@ -45,9 +53,12 @@
 import com.android.internal.app.LocaleStore;
 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;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -67,8 +78,10 @@
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 import java.util.Locale;
+import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -79,6 +92,13 @@
 public class AppLocalePickerActivityTest {
     private static final String TEST_PACKAGE_NAME = "com.android.settings";
     private static final Uri TEST_PACKAGE_URI = Uri.parse("package:" + TEST_PACKAGE_NAME);
+    private static final String EN_CA = "en-CA";
+    private static final String EN_US = "en-US";
+    private static int sUid;
+
+    private FakeFeatureFactory mFeatureFactory;
+    private LocaleNotificationDataManager mDataManager;
+    private AppLocalePickerActivity mActivity;
 
     @Mock
     LocaleStore.LocaleInfo mLocaleInfo;
@@ -87,6 +107,9 @@
 
     @Rule
     public MockitoRule rule = MockitoJUnit.rule();
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule =
+            DeviceFlagsValueProvider.createCheckFlagsRule();
 
     private Context mContext;
     private ShadowPackageManager mPackageManager;
@@ -99,10 +122,12 @@
         when(mLocaleConfig.getStatus()).thenReturn(LocaleConfig.STATUS_SUCCESS);
         when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
         ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
+        sUid = Process.myUid();
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
     }
 
     @After
-    public void tearDown() {
+    public void tearDown() throws Exception {
         mPackageManager.removePackage(TEST_PACKAGE_NAME);
         ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", null);
         ShadowResources.setDisAllowPackage(false);
@@ -178,6 +203,7 @@
         assertThat(controller.get().isFinishing()).isTrue();
     }
 
+    @Ignore("b/313604701")
     @Test
     public void onLocaleSelected_getLocaleNotNull_getLanguageTag() {
         ActivityController<TestAppLocalePickerActivity> controller =
@@ -210,13 +236,298 @@
         assertThat(controller.get().isFinishing()).isTrue();
     }
 
+    @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 {
+        sUid = 100;
+        initLocaleNotificationEnvironment();
+        ActivityController<TestAppLocalePickerActivity> controller = initActivityController(true);
+        controller.create();
+        AppLocalePickerActivity mActivity = controller.get();
+        LocaleNotificationDataManager dataManager =
+                NotificationController.getInstance(mActivity).getDataManager();
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is not triggered.
+        // In the sharedpreference, en-US's uid list contains uid1 and the notificationCount
+        // equals 0.
+        NotificationInfo info = dataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection().contains(sUid)).isTrue();
+        assertThat(info.getNotificationCount()).isEqualTo(0);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isEqualTo(0);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void onLocaleSelected_evaluateNotification_twoLocaleUpdate_triggerNotification()
+            throws Exception {
+        // App with uid 101 changed its locale from System to en-US.
+        sUid = 101;
+        initLocaleNotificationEnvironment();
+        // Initialize the proto to contain en-US locale. Its uid list includes 100.
+        Set<Integer> uidSet = Set.of(100);
+        initSharedPreference(EN_US, uidSet, 0, 0, 0, 0);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is triggered.
+        // In the proto file, en-US's uid list contains 101, the notificationCount equals 1, and
+        // LastNotificationTime > 0.
+        NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection()).contains(sUid);
+        assertThat(info.getNotificationCount()).isEqualTo(1);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(), eq(SettingsEnums.ACTION_NOTIFICATION_FOR_SYSTEM_LOCALE));
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void onLocaleSelected_evaluateNotification_oddLocaleUpdate_uidAddedWithoutNotification()
+            throws Exception {
+        // App with uid 102 changed its locale from System to en-US.
+        sUid = 102;
+        initLocaleNotificationEnvironment();
+        // Initialize the proto to include en-US locale. Its uid list includes 100,101 and
+        // the notification count equals 1.
+        int notificationId = (int) SystemClock.uptimeMillis();
+        Set<Integer> uidSet = Set.of(100, 101);
+        initSharedPreference(EN_US, uidSet, 0, 1,
+                Calendar.getInstance().getTimeInMillis(), notificationId);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is not triggered because count % 2 != 0.
+        // In the proto file, en-US's uid list contains 102, the notificationCount equals 1, and
+        // LastNotificationTime > 0.
+        NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection()).contains(sUid);
+        assertThat(info.getNotificationCount()).isEqualTo(1);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+        assertThat(info.getNotificationId()).isEqualTo(notificationId);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void onLocaleSelected_evaluateNotification_frequentLocaleUpdate_uidAddedNoNotification()
+            throws Exception {
+        // App with uid 103 changed its locale from System to en-US.
+        sUid = 103;
+        initLocaleNotificationEnvironment();
+        // Initialize the proto to include en-US locale. Its uid list includes 100,101,102 and
+        // the notification count equals 1.
+        int notificationId = (int) SystemClock.uptimeMillis();
+        Set<Integer> uidSet = Set.of(100, 101, 102);
+        initSharedPreference(EN_US, uidSet, 0, 1,
+                Calendar.getInstance().getTimeInMillis(), notificationId);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is not triggered because the duration is less than the threshold.
+        // In the proto file, en-US's uid list contains 103, the notificationCount equals 1, and
+        // LastNotificationTime > 0.
+        NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection()).contains(sUid);
+        assertThat(info.getNotificationCount()).isEqualTo(1);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+        assertThat(info.getNotificationId()).isEqualTo(notificationId);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void onLocaleSelected_evaluateNotification_2ndOddLocaleUpdate_uidAddedNoNotification()
+            throws Exception {
+        // App with uid 104 changed its locale from System to en-US.
+        sUid = 104;
+        initLocaleNotificationEnvironment();
+
+        // Initialize the proto to include en-US locale. Its uid list includes 100,101,102,103 and
+        // the notification count equals 1.
+        int notificationId = (int) SystemClock.uptimeMillis();
+        Set<Integer> uidSet = Set.of(100, 101, 102, 103);
+        initSharedPreference(EN_US, uidSet, 0, 1, Calendar.getInstance().getTimeInMillis(),
+                notificationId);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is not triggered because uid count % 2 != 0
+        // In the proto file, en-US's uid list contains uid4, the notificationCount equals 1, and
+        // LastNotificationTime > 0.
+        NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection()).contains(sUid);
+        assertThat(info.getNotificationCount()).isEqualTo(1);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void testEvaluateLocaleNotification_evenLocaleUpdate_trigger2ndNotification()
+            throws Exception {
+        sUid = 105;
+        initLocaleNotificationEnvironment();
+
+        // Initialize the proto to include en-US locale. Its uid list includes 100,101,102,103,104
+        // and the notification count equals 1.
+        // Eight days later, App with uid 105 changed its locale from System to en-US
+        int notificationId = (int) SystemClock.uptimeMillis();
+        Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104);
+        Calendar now = Calendar.getInstance();
+        now.add(Calendar.DAY_OF_MONTH, -8); // Set the lastNotificationTime to eight days ago.
+        long lastNotificationTime = now.getTimeInMillis();
+        initSharedPreference(EN_US, uidSet, 0, 1, lastNotificationTime, notificationId);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is triggered.
+        // In the proto file, en-US's uid list contains 105, the notificationCount equals 2, and
+        // LastNotificationTime is updated.
+        NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection()).contains(sUid);
+        assertThat(info.getNotificationCount()).isEqualTo(2);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isGreaterThan(lastNotificationTime);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void testEvaluateLocaleNotification_localeUpdateReachThreshold_noUidNorNotification()
+            throws Exception {
+        // App with uid 106 changed its locale from System to en-US.
+        sUid = 106;
+        initLocaleNotificationEnvironment();
+        // Initialize the proto to include en-US locale. Its uid list includes
+        // 100,101,102,103,104,105 and the notification count equals 2.
+        int notificationId = (int) SystemClock.uptimeMillis();
+        Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104, 105);
+        Calendar now = Calendar.getInstance();
+        now.add(Calendar.DAY_OF_MONTH, -8);
+        long lastNotificationTime = now.getTimeInMillis();
+        initSharedPreference(EN_US, uidSet, 0, 2, lastNotificationTime, notificationId);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is not triggered because the notification count threshold, 2, is reached.
+        // In the proto file, en-US's uid list contains 106, the notificationCount equals 2, and
+        // LastNotificationTime > 0.
+        NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+        assertThat(info.getUidCollection().contains(sUid)).isFalse();
+        assertThat(info.getNotificationCount()).isEqualTo(2);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isEqualTo(lastNotificationTime);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void testEvaluateLocaleNotification_appChangedLocales_newLocaleCreated()
+            throws Exception {
+        sUid = 100;
+        initLocaleNotificationEnvironment();
+        // App with uid 100 changed its locale from en-US to ja-JP.
+        Locale locale = Locale.forLanguageTag("ja-JP");
+        when(mLocaleInfo.getLocale()).thenReturn(locale);
+        // Initialize the proto to include en-US locale. Its uid list includes
+        // 100,101,102,103,104,105,106 and the notification count equals 2.
+        int notificationId = (int) SystemClock.uptimeMillis();
+        Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104, 105, 106);
+        Calendar now = Calendar.getInstance();
+        now.add(Calendar.DAY_OF_MONTH, -8);
+        initSharedPreference(EN_US, uidSet, 0, 2, now.getTimeInMillis(),
+                notificationId);
+
+        mActivity.onLocaleSelected(mLocaleInfo);
+
+        // Notification is not triggered
+        // In the proto file, a map for ja-JP is created. Its uid list contains uid1.
+        NotificationInfo info = mDataManager.getNotificationInfo("ja-JP");
+        assertThat(info.getUidCollection()).contains(sUid);
+        assertThat(info.getNotificationCount()).isEqualTo(0);
+        assertThat(info.getDismissCount()).isEqualTo(0);
+        assertThat(info.getLastNotificationTimeMs()).isEqualTo(0);
+
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    private void initLocaleNotificationEnvironment() throws Exception {
+        LocaleList.setDefault(LocaleList.forLanguageTags(EN_CA));
+
+        Locale locale = Locale.forLanguageTag("en-US");
+        when(mLocaleInfo.getLocale()).thenReturn(locale);
+        when(mLocaleInfo.isSystemLocale()).thenReturn(false);
+        when(mLocaleInfo.isAppCurrentLocale()).thenReturn(false);
+
+        ActivityController<TestAppLocalePickerActivity> controller = initActivityController(true);
+        controller.create();
+        mActivity = controller.get();
+        mDataManager = NotificationController.getInstance(mActivity).getDataManager();
+    }
+
+    private void initSharedPreference(String locale, Set<Integer> uidSet, int dismissCount,
+            int notificationCount, long lastNotificationTime, int notificationId)
+            throws Exception {
+        NotificationInfo info = new NotificationInfo(uidSet, notificationCount, dismissCount,
+                lastNotificationTime, notificationId);
+        mDataManager.putNotificationInfo(locale, info);
+    }
+
     private ActivityController<TestAppLocalePickerActivity> initActivityController(
             boolean hasPackageName) {
         Intent data = new Intent();
         if (hasPackageName) {
             data.setData(TEST_PACKAGE_URI);
         }
-        data.putExtra(AppInfoBase.ARG_PACKAGE_UID, Process.myUid());
+        data.putExtra(AppInfoBase.ARG_PACKAGE_UID, sUid);
         ActivityController<TestAppLocalePickerActivity> activityController =
                 Robolectric.buildActivity(TestAppLocalePickerActivity.class, data);
         Activity activity = activityController.get();
@@ -259,6 +570,19 @@
         private static void setNoLaunchEntry(boolean noLaunchEntry) {
             sNoLaunchEntry = noLaunchEntry;
         }
+
+        @Implementation
+        protected ApplicationInfo getApplicationInfo(String packageName, int flags)
+                throws NameNotFoundException {
+            if (packageName.equals(TEST_PACKAGE_NAME)) {
+                ApplicationInfo applicationInfo = new ApplicationInfo();
+                applicationInfo.packageName = TEST_PACKAGE_NAME;
+                applicationInfo.uid = sUid;
+                return applicationInfo;
+            } else {
+                return super.getApplicationInfo(packageName, flags);
+            }
+        }
     }
 
     @Implements(Resources.class)
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java
index 57f2b01..c8637c8 100644
--- a/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java
@@ -36,8 +36,6 @@
 
 import com.android.internal.app.LocaleStore;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settings.utils.ActivityControllerWrapper;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -46,13 +44,14 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 import java.util.Locale;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowAlertDialogCompat.class})
+@LooperMode(LooperMode.Mode.LEGACY)
 public class LocaleDialogFragmentTest {
 
     @Mock
@@ -65,8 +64,7 @@
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mDialogFragment = LocaleDialogFragment.newInstance();
         LocaleStore.LocaleInfo localeInfo = LocaleStore.getLocaleInfo(Locale.ENGLISH);
         Bundle args = new Bundle();
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
index 985f681..e51f9a3 100644
--- a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
@@ -16,11 +16,18 @@
 
 package com.android.settings.localepicker;
 
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.LocaleDialogFragment.DIALOG_ADD_SYSTEM_LOCALE;
+import static com.android.settings.localepicker.LocaleListEditor.EXTRA_SYSTEM_LOCALE_DIALOG_TYPE;
+import static com.android.settings.localepicker.LocaleListEditor.LOCALE_SUGGESTION;
+
 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.anyBoolean;
+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;
@@ -31,8 +38,13 @@
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.res.Configuration;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.LocaleList;
+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.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
@@ -48,6 +60,7 @@
 
 import com.android.internal.app.LocaleStore;
 import com.android.settings.R;
+import com.android.settings.flags.Flags;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowActivityManager;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
@@ -55,6 +68,7 @@
 
 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;
@@ -63,6 +77,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
@@ -70,12 +85,18 @@
 import java.util.Locale;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class, ShadowActivityManager.class})
+@Config(shadows = {
+        ShadowAlertDialogCompat.class,
+        ShadowActivityManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
+@LooperMode(LooperMode.Mode.LEGACY)
 public class LocaleListEditorTest {
 
     private static final String ARG_DIALOG_TYPE = "arg_dialog_type";
     private static final String TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT = "dialog_confirm_system_default";
     private static final String TAG_DIALOG_NOT_AVAILABLE = "dialog_not_available_locale";
+    private static final String TAG_DIALOG_ADD_SYSTEM_LOCALE = "dialog_add_system_locale";
     private static final int DIALOG_CONFIRM_SYSTEM_DEFAULT = 1;
     private static final int REQUEST_CONFIRM_SYSTEM_DEFAULT = 1;
 
@@ -90,6 +111,10 @@
     @Mock
     private LocaleDragAndDropAdapter mAdapter;
     @Mock
+    private View mAddLanguage;
+    @Mock
+    private Resources mResources;
+    @Mock
     private LocaleStore.LocaleInfo mLocaleInfo;
     @Mock
     private FragmentManager mFragmentManager;
@@ -113,6 +138,12 @@
     private TextView mCurrentDefault;
     @Mock
     private ImageView mDragHandle;
+    @Mock
+    private NotificationController mNotificationController;
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule =
+            DeviceFlagsValueProvider.createCheckFlagsRule();
 
     @Before
     public void setUp() throws Exception {
@@ -120,8 +151,10 @@
         mContext = spy(RuntimeEnvironment.application);
         mLocaleListEditor = spy(new LocaleListEditor());
         when(mLocaleListEditor.getContext()).thenReturn(mContext);
-        mActivity = Robolectric.buildActivity(FragmentActivity.class).get();
+        mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
         when(mLocaleListEditor.getActivity()).thenReturn(mActivity);
+        when(mLocaleListEditor.getNotificationController()).thenReturn(
+                mNotificationController);
         ReflectionHelpers.setField(mLocaleListEditor, "mEmptyTextView",
                 new TextView(RuntimeEnvironment.application));
         ReflectionHelpers.setField(mLocaleListEditor, "mRestrictionsManager",
@@ -129,6 +162,7 @@
         ReflectionHelpers.setField(mLocaleListEditor, "mUserManager",
                 RuntimeEnvironment.application.getSystemService(Context.USER_SERVICE));
         ReflectionHelpers.setField(mLocaleListEditor, "mAdapter", mAdapter);
+        ReflectionHelpers.setField(mLocaleListEditor, "mAddLanguage", mAddLanguage);
         ReflectionHelpers.setField(mLocaleListEditor, "mFragmentManager", mFragmentManager);
         ReflectionHelpers.setField(mLocaleListEditor, "mMetricsFeatureProvider",
                 mMetricsFeatureProvider);
@@ -140,6 +174,8 @@
     public void tearDown() {
         ReflectionHelpers.setField(mLocaleListEditor, "mRemoveMode", false);
         ReflectionHelpers.setField(mLocaleListEditor, "mShowingRemoveDialog", false);
+        ReflectionHelpers.setField(mLocaleListEditor, "mLocaleAdditionMode", false);
+        ShadowAlertDialogCompat.reset();
     }
 
     @Test
@@ -319,6 +355,106 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void showDiallogForAddedLocale_showConfirmDialog() {
+        initIntentAndResourceForLocaleDialog();
+        mLocaleListEditor.onViewStateRestored(null);
+
+        verify(mFragmentTransaction).add(any(LocaleDialogFragment.class),
+                eq(TAG_DIALOG_ADD_SYSTEM_LOCALE));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void showDiallogForAddedLocale_clickAdd() {
+        initIntentAndResourceForLocaleDialog();
+        mLocaleListEditor.onViewStateRestored(null);
+        LocaleStore.LocaleInfo info = LocaleStore.fromLocale(Locale.forLanguageTag("en-US"));
+        Bundle bundle = new Bundle();
+        bundle.putInt(ARG_DIALOG_TYPE, DIALOG_ADD_SYSTEM_LOCALE);
+        bundle.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, info);
+        Intent intent = new Intent().putExtras(bundle);
+
+        mLocaleListEditor.onActivityResult(DIALOG_ADD_SYSTEM_LOCALE, Activity.RESULT_OK, intent);
+
+        verify(mAdapter).addLocale(any(LocaleStore.LocaleInfo.class));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void showDiallogForAddedLocale_clickCancel() {
+        initIntentAndResourceForLocaleDialog();
+        mLocaleListEditor.onViewStateRestored(null);
+        LocaleStore.LocaleInfo info = LocaleStore.fromLocale(Locale.forLanguageTag("en-US"));
+        Bundle bundle = new Bundle();
+        bundle.putInt(ARG_DIALOG_TYPE, DIALOG_ADD_SYSTEM_LOCALE);
+        bundle.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, info);
+        Intent intent = new Intent().putExtras(bundle);
+
+        mLocaleListEditor.onActivityResult(DIALOG_ADD_SYSTEM_LOCALE, Activity.RESULT_CANCELED,
+                intent);
+
+        verify(mAdapter, never()).addLocale(any(LocaleStore.LocaleInfo.class));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void showDiallogForAddedLocale_invalidLocale_noDialog() {
+        Intent intent = new Intent("ACTION")
+                .putExtra(EXTRA_APP_LOCALE, "ab-CD") // invalid locale
+                .putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, LOCALE_SUGGESTION);
+        mActivity.setIntent(intent);
+
+        mLocaleListEditor.onViewStateRestored(null);
+
+        verify(mFragmentTransaction, never()).add(any(LocaleDialogFragment.class),
+                eq(TAG_DIALOG_ADD_SYSTEM_LOCALE));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void showDiallogForAddedLocale_noDialogType_noDialog() {
+        Intent intent = new Intent("ACTION")
+                .putExtra(EXTRA_APP_LOCALE, "ja-JP");
+        // no EXTRA_SYSTEM_LOCALE_DIALOG_TYPE  in the extra
+        mActivity.setIntent(intent);
+
+        mLocaleListEditor.onViewStateRestored(null);
+
+        verify(mFragmentTransaction, never()).add(any(LocaleDialogFragment.class),
+                eq(TAG_DIALOG_ADD_SYSTEM_LOCALE));
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_LOCALE_NOTIFICATION_ENABLED)
+    public void showDiallogForAddedLocale_inSystemLocale_noDialog() {
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-US,ar-AE-u-nu-arab"));
+        Intent intent = new Intent("ACTION")
+                .putExtra(EXTRA_APP_LOCALE, "ar-AE")
+                .putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, LOCALE_SUGGESTION);
+        mActivity.setIntent(intent);
+
+        mLocaleListEditor.onViewStateRestored(null);
+
+        verify(mFragmentTransaction, never()).add(any(LocaleDialogFragment.class),
+                eq(TAG_DIALOG_ADD_SYSTEM_LOCALE));
+    }
+
+    private void initIntentAndResourceForLocaleDialog() {
+        Intent intent = new Intent("ACTION")
+                .putExtra(EXTRA_APP_LOCALE, "ja-JP")
+                .putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, LOCALE_SUGGESTION);
+
+        mActivity.setIntent(intent);
+        String[] supportedLocales = new String[]{"en-US", "ja-JP"};
+        View contentView = LayoutInflater.from(mActivity).inflate(R.layout.locale_dialog, null);
+        doReturn(contentView).when(mLocaleListEditor).getLocaleDialogView();
+        when(mLocaleListEditor.getSupportedLocales()).thenReturn(supportedLocales);
+        when(mContext.getPackageName()).thenReturn("com.android.settings");
+        when(mActivity.getCallingPackage()).thenReturn("com.android.settings");
+    }
+
+    @Test
     public void onBindViewHolder_shouldSetCheckedBoxText() {
         ReflectionHelpers.setField(mLocaleListEditor, "mRemoveMode", true);
         mLocaleList = new ArrayList<>();
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleNotificationDataManagerTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleNotificationDataManagerTest.java
new file mode 100644
index 0000000..443c26d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleNotificationDataManagerTest.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.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+
+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 java.util.Map;
+import java.util.Set;
+
+@RunWith(RobolectricTestRunner.class)
+public class LocaleNotificationDataManagerTest {
+    private Context mContext;
+    private LocaleNotificationDataManager mDataManager;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        mDataManager = new LocaleNotificationDataManager(mContext);
+    }
+
+    @After
+    public void tearDown() {
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    public void testPutGetNotificationInfo() {
+        String locale = "en-US";
+        Set<Integer> uidSet = Set.of(101);
+        NotificationInfo info = new NotificationInfo(uidSet, 1, 1, 100L, 1000);
+
+        mDataManager.putNotificationInfo(locale, info);
+        NotificationInfo expected = mDataManager.getNotificationInfo(locale);
+
+        assertThat(info.equals(expected)).isTrue();
+        assertThat(expected.getNotificationId()).isEqualTo(info.getNotificationId());
+        assertThat(expected.getDismissCount()).isEqualTo(info.getDismissCount());
+        assertThat(expected.getNotificationCount()).isEqualTo(info.getNotificationCount());
+        assertThat(expected.getUidCollection()).isEqualTo(info.getUidCollection());
+        assertThat(expected.getLastNotificationTimeMs()).isEqualTo(
+                info.getLastNotificationTimeMs());
+    }
+
+    @Test
+    public void testRemoveNotificationInfo() {
+        String locale = "en-US";
+        Set<Integer> uidSet = Set.of(101);
+        NotificationInfo info = new NotificationInfo(uidSet, 1, 1, 100L, 1000);
+
+        mDataManager.putNotificationInfo(locale, info);
+        assertThat(mDataManager.getNotificationInfo(locale)).isEqualTo(info);
+        mDataManager.removeNotificationInfo(locale);
+        assertThat(mDataManager.getNotificationInfo(locale)).isNull();
+    }
+
+    @Test
+    public void testGetNotificationMap() {
+        String enUS = "en-US";
+        Set<Integer> uidSet1 = Set.of(101, 102);
+        NotificationInfo info1 = new NotificationInfo(uidSet1, 1, 1, 1000L, 1234);
+        String jaJP = "ja-JP";
+        Set<Integer> uidSet2 = Set.of(103, 104);
+        NotificationInfo info2 = new NotificationInfo(uidSet2, 1, 0, 2000L, 5678);
+        mDataManager.putNotificationInfo(enUS, info1);
+        mDataManager.putNotificationInfo(jaJP, info2);
+
+        Map<String, NotificationInfo> map = mDataManager.getLocaleNotificationInfoMap();
+
+        assertThat(map.size()).isEqualTo(2);
+        assertThat(mDataManager.getNotificationInfo(enUS).equals(map.get(enUS))).isTrue();
+        assertThat(mDataManager.getNotificationInfo(jaJP).equals(map.get(jaJP))).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/localepicker/NotificationActionActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/NotificationActionActivityTest.java
new file mode 100644
index 0000000..7364bb4
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/NotificationActionActivityTest.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.localepicker;
+
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.app.settings.SettingsEnums;
+import android.content.Intent;
+
+import androidx.activity.result.ActivityResultLauncher;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.android.controller.ActivityController;
+
+@RunWith(RobolectricTestRunner.class)
+public class NotificationActionActivityTest {
+    private NotificationActionActivity mNotificationActivity;
+    private ActivityController<NotificationActionActivity> mActivityController;
+    private FakeFeatureFactory mFeatureFactory;
+    @Mock
+    private NotificationController mNotificationController;
+    @Mock
+    private ActivityResultLauncher<Intent> mLauncher;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+    }
+
+    @Test
+    public void testOnCreate_launchSystemLanguageSettings() throws Exception {
+        String targetLocale = "ja-JP";
+        int notificationId = 123;
+        Intent intent = new Intent()
+                .putExtra(EXTRA_APP_LOCALE, targetLocale)
+                .putExtra(EXTRA_NOTIFICATION_ID, notificationId);
+
+        mActivityController = Robolectric.buildActivity(NotificationActionActivity.class, intent);
+        mNotificationActivity = spy(mActivityController.get());
+        doReturn(mNotificationController).when(mNotificationActivity).getNotificationController(
+                any());
+        doReturn(notificationId).when(mNotificationController).getNotificationId(eq(targetLocale));
+        doReturn(mLauncher).when(mNotificationActivity).getLauncher();
+
+        mNotificationActivity.onCreate(null);
+
+        verify(mLauncher).launch(any(Intent.class));
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(), eq(SettingsEnums.ACTION_NOTIFICATION_CLICK_FOR_SYSTEM_LOCALE));
+        verify(mNotificationActivity).finish();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/localepicker/NotificationCancelReceiverTest.java b/tests/robotests/src/com/android/settings/localepicker/NotificationCancelReceiverTest.java
new file mode 100644
index 0000000..44906a9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/NotificationCancelReceiverTest.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.localepicker;
+
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.Intent;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+
+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 NotificationCancelReceiverTest {
+    private Context mContext;
+    private NotificationCancelReceiver mReceiver;
+    @Mock
+    private NotificationController mNotificationController;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mReceiver = spy(new NotificationCancelReceiver());
+        mFeatureFactory = FakeFeatureFactory.setupForTest();
+        doReturn(mNotificationController).when(mReceiver).getNotificationController(any());
+    }
+
+    @Test
+    public void testOnReceive_incrementDismissCount() {
+        String locale = "en-US";
+        int notificationId = 100;
+        Intent intent = new Intent()
+                .putExtra(EXTRA_APP_LOCALE, locale)
+                .putExtra(EXTRA_NOTIFICATION_ID, notificationId);
+        when(mNotificationController.getNotificationId(locale)).thenReturn(notificationId);
+
+        mReceiver.onReceive(mContext, intent);
+
+        verify(mNotificationController).incrementDismissCount(eq(locale));
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                any(), eq(SettingsEnums.ACTION_NOTIFICATION_SWIPE_FOR_SYSTEM_LOCALE));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/localepicker/NotificationControllerTest.java b/tests/robotests/src/com/android/settings/localepicker/NotificationControllerTest.java
new file mode 100644
index 0000000..1e37f9b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/NotificationControllerTest.java
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.LocaleList;
+import android.os.SystemClock;
+
+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 java.util.Calendar;
+import java.util.Set;
+
+@RunWith(RobolectricTestRunner.class)
+public class NotificationControllerTest {
+    private Context mContext;
+    private LocaleNotificationDataManager mDataManager;
+    private NotificationController mNotificationController;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mNotificationController = NotificationController.getInstance(mContext);
+        mDataManager = mNotificationController.getDataManager();
+        LocaleList.setDefault(LocaleList.forLanguageTags("en-CA"));
+    }
+
+    @After
+    public void tearDown() {
+        mDataManager.clearLocaleNotificationMap();
+    }
+
+    @Test
+    public void incrementDismissCount_addOne() throws Exception {
+        String enUS = "en-US";
+        Set<Integer> uidSet = Set.of(100, 101);
+        long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+        int id = (int) SystemClock.uptimeMillis();
+        initSharedPreference(enUS, uidSet, 0, 1, lastNotificationTime, id);
+
+        mNotificationController.incrementDismissCount(enUS);
+        NotificationInfo result = mDataManager.getNotificationInfo(enUS);
+
+        assertThat(result.getDismissCount()).isEqualTo(1); // dismissCount increments
+        assertThat(result.getUidCollection()).isEqualTo(uidSet);
+        assertThat(result.getNotificationCount()).isEqualTo(1);
+        assertThat(result.getLastNotificationTimeMs()).isEqualTo(lastNotificationTime);
+        assertThat(result.getNotificationId()).isEqualTo(id);
+    }
+
+    @Test
+    public void testRemoveNotificationInfo_removed() throws Exception {
+        String enUS = "en-US";
+        Set<Integer> uidSet = Set.of(100, 101);
+        long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+        int id = (int) SystemClock.uptimeMillis();
+        initSharedPreference(enUS, uidSet, 0, 1, lastNotificationTime, id);
+
+        mNotificationController.removeNotificationInfo(enUS);
+
+        assertThat(mDataManager.getNotificationInfo(enUS)).isNull();
+    }
+
+    @Test
+    public void testShouldTriggerNotification_inSystemLocale_returnFalse() throws Exception {
+        int uid = 102;
+        // As checking whether app's locales exist in system locales, both app locales and system
+        // locales have to remove the u extension first when doing the comparison. The following
+        // three locales are all in the system locale after removing the u extension so it's
+        // unnecessary to trigger a notification for the suggestion.
+        String locale1 = "en-CA";
+        String locale2 = "ar-JO-u-nu-latn";
+        String locale3 = "ar-JO";
+
+        LocaleList.setDefault(
+                LocaleList.forLanguageTags("en-CA-u-mu-fahrenhe,ar-JO-u-mu-fahrenhe-nu-latn"));
+
+        assertThat(mNotificationController.shouldTriggerNotification(uid, locale1)).isFalse();
+        assertThat(mNotificationController.shouldTriggerNotification(uid, locale2)).isFalse();
+        assertThat(mNotificationController.shouldTriggerNotification(uid, locale3)).isFalse();
+    }
+
+    @Test
+    public void testShouldTriggerNotification_noNotification_returnFalse() throws Exception {
+        int uid = 100;
+        String locale = "en-US";
+
+        boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+        assertThat(triggered).isFalse();
+    }
+
+    @Test
+    public void testShouldTriggerNotification_return1stTrue() throws Exception {
+        // Initialze proto with en-US locale. Its uid contains 100.
+        Set<Integer> uidSet = Set.of(100);
+        String locale = "en-US";
+        long lastNotificationTime = 0L;
+        int notificationId = 0;
+        initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, notificationId);
+
+        // When the second app is configured to "en-US", the notification is triggered.
+        int uid = 101;
+        boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+        assertThat(triggered).isTrue();
+    }
+
+    @Test
+    public void testShouldTriggerNotification_returnFalse_dueToOddCount() throws Exception {
+        // Initialze proto with en-US locale. Its uid contains 100,101.
+        Set<Integer> uidSet = Set.of(100, 101);
+        String locale = "en-US";
+        long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+        int id = (int) SystemClock.uptimeMillis();
+        initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, id);
+
+        // When the other app is configured to "en-US", the notification is not triggered because
+        // the app count is odd.
+        int uid = 102;
+        boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+        assertThat(triggered).isFalse();
+    }
+
+    @Test
+    public void testShouldTriggerNotification_returnFalse_dueToFrequency() throws Exception {
+        // Initialze proto with en-US locale. Its uid contains 100,101,102.
+        Set<Integer> uidSet = Set.of(100, 101, 102);
+        String locale = "en-US";
+        long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+        int id = (int) SystemClock.uptimeMillis();
+        initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, id);
+
+        // When the other app is configured to "en-US", the notification is not triggered because it
+        // is too frequent.
+        int uid = 103;
+        boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+        assertThat(triggered).isFalse();
+    }
+
+    @Test
+    public void testShouldTriggerNotification_return2ndTrue() throws Exception {
+        // Initialze proto with en-US locale. Its uid contains 100,101,102,103,104.
+        Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104);
+        String locale = "en-US";
+        int id = (int) SystemClock.uptimeMillis();
+        Calendar time = Calendar.getInstance();
+        time.add(Calendar.MINUTE, 86400 * 8 * (-1));
+        long lastNotificationTime = time.getTimeInMillis();
+        initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, id);
+
+        // When the other app is configured to "en-US", the notification is triggered.
+        int uid = 105;
+        boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+        assertThat(triggered).isTrue();
+    }
+
+    private void initSharedPreference(String locale, Set<Integer> uidCollection, int dismissCount,
+            int notificationCount, long lastNotificationTime, int notificationId)
+            throws Exception {
+        NotificationInfo info = new NotificationInfo(uidCollection, notificationCount, dismissCount,
+                lastNotificationTime, notificationId);
+        mDataManager.putNotificationInfo(locale, info);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
index 49caa70..43b9839 100644
--- a/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
@@ -38,20 +38,22 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.widget.RestrictedAppPreference;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
+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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
@@ -59,8 +61,10 @@
 import java.util.Map;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUserManager.class)
+@Config(shadows = {ShadowUserManager.class, ShadowDevicePolicyManager.class})
 public class LocationInjectedServicesPreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private static final String KEY_LOCATION_SERVICES = "location_service";
 
@@ -82,8 +86,7 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
+        mContext = spy(ApplicationProvider.getApplicationContext());
         mLifecycleOwner = () -> mLifecycle;
         mLifecycle = new Lifecycle(mLifecycleOwner);
         mController = spy(
@@ -115,7 +118,6 @@
         verify(mContext).unregisterReceiver(mController.mInjectedSettingsReceiver);
     }
 
-    @Ignore
     @Test
     public void workProfileDisallowShareLocationOn_getParentUserLocationServicesOnly() {
         final int fakeWorkProfileId = 123;
@@ -168,7 +170,6 @@
         verify(mSettingsInjector).reloadStatusMessages();
     }
 
-    @Ignore
     @Test
     public void withUserRestriction_shouldDisableLocationAccuracy() {
         final List<Preference> preferences = new ArrayList<>();
diff --git a/tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java
index dacb7cf..f5868c2 100644
--- a/tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java
@@ -23,7 +23,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -50,7 +49,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testLocationScanning_ifDisabled_shouldNotBeShown() {
diff --git a/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java b/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java
index aae8cec..a8a59ff 100644
--- a/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java
@@ -34,8 +34,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class LocationSettingsTest {
 
     @Mock
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/location/RecentLocationAccessPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/RecentLocationAccessPreferenceControllerTest.java
index 225f91b..e9284ee 100644
--- a/tests/robotests/src/com/android/settings/location/RecentLocationAccessPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/RecentLocationAccessPreferenceControllerTest.java
@@ -80,7 +80,7 @@
         mController.init(mDashboardFragment);
         final String key = mController.getPreferenceKey();
         mAppEntitiesHeaderView = LayoutInflater.from(mContext).inflate(
-                R.layout.app_entities_header, null /* root */);
+                com.android.settingslib.widget.entityheader.R.layout.app_entities_header, null /* root */);
         when(mScreen.findPreference(key)).thenReturn(mLayoutPreference);
         when(mLayoutPreference.getKey()).thenReturn(key);
         when(mLayoutPreference.getContext()).thenReturn(mContext);
@@ -108,7 +108,8 @@
         final TextView title = mAppEntitiesHeaderView.findViewById(R.id.header_title);
         assertThat(title.getText()).isEqualTo(
                 mContext.getText(R.string.location_category_recent_location_access));
-        final TextView details = mAppEntitiesHeaderView.findViewById(R.id.header_details);
+        final TextView details = mAppEntitiesHeaderView
+                .findViewById(com.android.settingslib.widget.entityheader.R.id.header_details);
         assertThat(details.getText()).isEqualTo(
                 mContext.getText(R.string.location_recent_location_access_view_details));
         assertThat(details.hasOnClickListeners()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java b/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java
index 7a3243b..e0d76ce 100644
--- a/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaDeviceUpdateWorkerTest.java
@@ -31,6 +31,7 @@
 import android.content.Intent;
 import android.media.AudioManager;
 import android.media.MediaRoute2ProviderService;
+import android.media.MediaRouter2Manager;
 import android.media.RoutingSessionInfo;
 import android.net.Uri;
 
@@ -92,6 +93,7 @@
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI);
+        mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
         mResolver = mock(ContentResolver.class);
         mShadowApplication = ShadowApplication.getInstance();
         mAudioManager = mContext.getSystemService(AudioManager.class);
@@ -216,16 +218,13 @@
         mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class);
         final List<RoutingSessionInfo> routingSessionInfos = new ArrayList<>();
         final RoutingSessionInfo remoteSessionInfo = mock(RoutingSessionInfo.class);
-        final RoutingSessionInfo localSessionInfo = mock(RoutingSessionInfo.class);
         when(remoteSessionInfo.isSystemSession()).thenReturn(false);
-        when(localSessionInfo.isSystemSession()).thenReturn(true);
         routingSessionInfos.add(remoteSessionInfo);
-        routingSessionInfos.add(localSessionInfo);
-        when(mMediaDeviceUpdateWorker.mLocalMediaManager.getActiveMediaSession()).thenReturn(
-                routingSessionInfos);
+        when(mMediaDeviceUpdateWorker.mLocalMediaManager.getRemoteRoutingSessions())
+                .thenReturn(routingSessionInfos);
 
-        assertThat(mMediaDeviceUpdateWorker.getActiveRemoteMediaDevice()).containsExactly(
-                remoteSessionInfo);
+        assertThat(mMediaDeviceUpdateWorker.getActiveRemoteMediaDevices())
+                .containsExactly(remoteSessionInfo);
     }
 
     @Test
@@ -234,6 +233,7 @@
         when(mLocalBluetoothManager.getEventManager()).thenReturn(mBluetoothEventManager);
 
         mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI1);
+        mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
         mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class);
         when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName())
                 .thenReturn(TEST_DEVICE_PACKAGE_NAME1);
@@ -243,6 +243,7 @@
                 TEST_DEVICE_PACKAGE_NAME1);
 
         mMediaDeviceUpdateWorker = new MediaDeviceUpdateWorker(mContext, URI2);
+        mMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
         mMediaDeviceUpdateWorker.mLocalMediaManager = mock(LocalMediaManager.class);
         when(mMediaDeviceUpdateWorker.mLocalMediaManager.getPackageName())
                 .thenReturn(TEST_DEVICE_PACKAGE_NAME2);
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
index 7248ff6..652bd03 100644
--- a/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/MediaOutputIndicatorSliceTest.java
@@ -18,6 +18,7 @@
 package com.android.settings.media;
 
 import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
+import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -38,6 +39,7 @@
 import android.media.session.MediaSession;
 import android.net.Uri;
 import android.os.Process;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.text.TextUtils;
 
 import androidx.slice.Slice;
@@ -54,6 +56,8 @@
 import com.android.settingslib.media.MediaOutputConstants;
 
 import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -95,6 +99,9 @@
     @Mock
     private Drawable mTestDrawable;
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private Context mContext;
     private MediaOutputIndicatorSlice mMediaOutputIndicatorSlice;
     private AudioManager mAudioManager;
@@ -151,6 +158,7 @@
         assertThat(metadata.isErrorSlice()).isFalse();
     }
 
+    @Ignore("b/313605377")
     @Test
     public void getSlice_noConnectedDevice_returnErrorSlice() {
         mDevices.clear();
@@ -163,6 +171,7 @@
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
+    @Ignore("b/313605377")
     @Test
     public void getSlice_audioModeIsInCommunication_returnErrorSlice() {
         mDevices.add(mDevice1);
@@ -177,6 +186,7 @@
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
+    @Ignore("b/313605377")
     @Test
     public void getSlice_audioModeIsRingtone_returnErrorSlice() {
         mDevices.add(mDevice1);
@@ -191,6 +201,7 @@
         assertThat(metadata.isErrorSlice()).isTrue();
     }
 
+    @Ignore("b/313605377")
     @Test
     public void getSlice_audioModeIsInCall_returnErrorSlice() {
         mDevices.add(mDevice1);
@@ -250,6 +261,34 @@
     }
 
     @Test
+    public void onNotifyChange_withoutMediaControllerFlagEnabled_verifyIntentExtra() {
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        doReturn(null).when(sMediaOutputIndicatorWorker)
+                .getActiveLocalMediaController();
+        ArgumentCaptor<Intent> argument = ArgumentCaptor.forClass(Intent.class);
+
+        mMediaOutputIndicatorSlice.onNotifyChange(null);
+        verify(mContext, times(2)).sendBroadcast(argument.capture());
+        List<Intent> intentList = argument.getAllValues();
+        Intent intent = intentList.get(0);
+
+        assertThat(intent.getAction()).isEqualTo(
+                MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG);
+        assertThat(TextUtils.equals(MediaOutputConstants.SYSTEMUI_PACKAGE_NAME,
+                intent.getPackage())).isTrue();
+    }
+
+    @Test
+    public void onNotifyChange_withoutMediaControllerFlagDisabled_doNothing() {
+        mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        doReturn(null).when(sMediaOutputIndicatorWorker)
+                .getActiveLocalMediaController();
+
+        mMediaOutputIndicatorSlice.onNotifyChange(null);
+    }
+
+
+    @Test
     public void isVisible_allConditionMatched_returnTrue() {
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
         mDevices.add(mDevice1);
@@ -263,6 +302,7 @@
 
     @Test
     public void isVisible_noActiveSession_returnFalse() {
+        mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
         mAudioManager.setMode(AudioManager.MODE_NORMAL);
         mDevices.add(mDevice1);
 
@@ -273,6 +313,19 @@
         assertThat(mMediaOutputIndicatorSlice.isVisible()).isFalse();
     }
 
+    @Test
+    public void isVisible_noActiveSession_returnTrue() {
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        mAudioManager.setMode(AudioManager.MODE_NORMAL);
+        mDevices.add(mDevice1);
+
+        when(sMediaOutputIndicatorWorker.getMediaDevices()).thenReturn(mDevices);
+        doReturn(mMediaController).when(sMediaOutputIndicatorWorker)
+                .getActiveLocalMediaController();
+
+        assertThat(mMediaOutputIndicatorSlice.isVisible()).isTrue();
+    }
+
     private void initPackage() {
         mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         mAppInfo = new ApplicationInfo();
diff --git a/tests/robotests/src/com/android/settings/media/RemoteMediaSliceTest.java b/tests/robotests/src/com/android/settings/media/RemoteMediaSliceTest.java
index 81001d7..5188ad4 100644
--- a/tests/robotests/src/com/android/settings/media/RemoteMediaSliceTest.java
+++ b/tests/robotests/src/com/android/settings/media/RemoteMediaSliceTest.java
@@ -89,10 +89,10 @@
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
 
         mRemoteMediaSlice = new RemoteMediaSlice(mContext);
-        mRemoteMediaSlice.mRouterManager = mock(MediaRouter2Manager.class);
         sMediaDeviceUpdateWorker = spy(new MediaDeviceUpdateWorker(mContext,
                 REMOTE_MEDIA_SLICE_URI));
         sMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
+        sMediaDeviceUpdateWorker.mManager = mock(MediaRouter2Manager.class);
         final RoutingSessionInfo remoteSessionInfo = mock(RoutingSessionInfo.class);
         when(remoteSessionInfo.getId()).thenReturn(TEST_SESSION_1_ID);
         when(remoteSessionInfo.getName()).thenReturn(TEST_SESSION_1_NAME);
@@ -100,8 +100,8 @@
         when(remoteSessionInfo.getVolume()).thenReturn(10);
         when(remoteSessionInfo.isSystemSession()).thenReturn(false);
         mRoutingSessionInfos.add(remoteSessionInfo);
-        when(sMediaDeviceUpdateWorker.getActiveRemoteMediaDevice()).thenReturn(
-                mRoutingSessionInfos);
+        when(sMediaDeviceUpdateWorker.getActiveRemoteMediaDevices())
+                .thenReturn(mRoutingSessionInfos);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
deleted file mode 100644
index 15e24e1..0000000
--- a/tests/robotests/src/com/android/settings/network/AllInOneTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,187 +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.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_OFF;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_WIFI_ON;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-import com.android.settingslib.PrimarySwitchPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.ParameterizedRobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(ParameterizedRobolectricTestRunner.class)
-public class AllInOneTetherPreferenceControllerTest {
-
-    @ParameterizedRobolectricTestRunner.Parameters(name = "TetherState: {0}")
-    public static List params() {
-        return Arrays.asList(new Object[][] {
-                {TETHERING_OFF, R.string.tether_settings_summary_off},
-                {TETHERING_WIFI_ON, R.string.tether_settings_summary_hotspot_only},
-                {TETHERING_USB_ON, R.string.tether_settings_summary_usb_tethering_only},
-                {TETHERING_BLUETOOTH_ON, R.string.tether_settings_summary_bluetooth_tethering_only},
-                {TETHERING_ETHERNET_ON, R.string.tether_settings_summary_ethernet_tethering_only},
-                {
-                        TETHERING_WIFI_ON | TETHERING_USB_ON,
-                        R.string.tether_settings_summary_hotspot_and_usb
-                },
-                {
-                        TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON,
-                        R.string.tether_settings_summary_hotspot_and_bluetooth
-                },
-                {
-                        TETHERING_WIFI_ON | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_hotspot_and_ethernet
-                },
-                {
-                        TETHERING_USB_ON | TETHERING_BLUETOOTH_ON,
-                        R.string.tether_settings_summary_usb_and_bluetooth
-                },
-                {
-                        TETHERING_USB_ON | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_usb_and_ethernet
-                },
-                {
-                        TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_bluetooth_and_ethernet
-                },
-                {
-                        TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON,
-                        R.string.tether_settings_summary_hotspot_and_usb_and_bluetooth
-                },
-                {
-                        TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_hotspot_and_usb_and_ethernet
-                },
-                {
-                        TETHERING_WIFI_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_hotspot_and_bluetooth_and_ethernet
-                },
-                {
-                        TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_usb_and_bluetooth_and_ethernet
-                },
-                {
-                        TETHERING_WIFI_ON | TETHERING_USB_ON | TETHERING_BLUETOOTH_ON
-                                | TETHERING_ETHERNET_ON,
-                        R.string.tether_settings_summary_all
-                }
-        });
-    }
-
-    private Context mContext;
-    @Mock
-    private BluetoothAdapter mBluetoothAdapter;
-    @Mock
-    private PrimarySwitchPreference mPreference;
-
-    private static final String PREF_KEY = "tether";
-    private AllInOneTetherPreferenceController mController;
-    private final int mTetherState;
-    private final int mSummaryResId;
-
-    public AllInOneTetherPreferenceControllerTest(int tetherState, int summaryResId) {
-        mTetherState = tetherState;
-        mSummaryResId = summaryResId;
-    }
-
-    @Before
-    public void setUp() {
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        MockitoAnnotations.initMocks(this);
-        doReturn(null).when(mContext)
-                .getSystemService(Context.DEVICE_POLICY_SERVICE);
-        mController = spy(new AllInOneTetherPreferenceController(mContext, /* key= */ "test"));
-        ReflectionHelpers.setField(mController, "mContext", mContext);
-        ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
-        ReflectionHelpers.setField(mController, "mPreferenceKey", PREF_KEY);
-        PreferenceScreen screen = mock(PreferenceScreen.class);
-        when(screen.findPreference(PREF_KEY)).thenReturn(mPreference);
-        doReturn(mController.AVAILABLE).when(mController).getAvailabilityStatus();
-        mController.displayPreference(screen);
-    }
-
-    @Test
-    public void onCreate_shouldInitBluetoothPan() {
-        when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_ON);
-        mController.onCreate();
-
-        verify(mBluetoothAdapter).getState();
-        verify(mBluetoothAdapter).getProfileProxy(mContext, mController.mBtProfileServiceListener,
-                BluetoothProfile.PAN);
-    }
-
-    @Test
-    public void onCreate_shouldNotInitBluetoothPanWhenBluetoothOff() {
-        when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF);
-        mController.onCreate();
-
-        verify(mBluetoothAdapter).getState();
-        verifyNoMoreInteractions(mBluetoothAdapter);
-    }
-
-    @Test
-    public void goThroughLifecycle_shouldDestroyBluetoothProfile() {
-        final BluetoothPan pan = mock(BluetoothPan.class);
-        final AtomicReference<BluetoothPan> panRef =
-                ReflectionHelpers.getField(mController, "mBluetoothPan");
-        panRef.set(pan);
-
-        mController.onDestroy();
-
-        verify(mBluetoothAdapter).closeProfileProxy(BluetoothProfile.PAN, pan);
-    }
-
-    @Test
-    public void getSummary_afterTetherStateChanged() {
-        mController.onTetherStateUpdated(mTetherState);
-        assertThat(mController.getSummary()).isEqualTo(mContext.getString(mSummaryResId));
-
-        verify(mController).updateState(mPreference);
-        verify(mPreference).setSummary(mContext.getString(mSummaryResId));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java
deleted file mode 100644
index d3a3129..0000000
--- a/tests/robotests/src/com/android/settings/network/BluetoothTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,132 +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.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.bluetooth.BluetoothAdapter;
-import android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-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 BluetoothTetherPreferenceControllerTest {
-
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private TetherEnabler mTetherEnabler;
-
-    private SwitchPreference mSwitchPreference;
-    private BluetoothTetherPreferenceController mController;
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        mSwitchPreference = spy(SwitchPreference.class);
-        when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
-        when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[] {""});
-        mController = new BluetoothTetherPreferenceController(mContext, "BLUETOOTH");
-        mController.setTetherEnabler(mTetherEnabler);
-        ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
-    }
-
-    @Test
-    public void lifecycle_shouldRegisterReceiverOnStart() {
-        mController.onStart();
-
-        verify(mContext).registerReceiver(
-                eq(mController.mBluetoothChangeReceiver),
-                any());
-    }
-
-    @Test
-    public void lifecycle_shouldAddListenerOnResume() {
-        mController.onResume();
-        verify(mTetherEnabler).addListener(mController);
-    }
-
-    @Test
-    public void lifecycle_shouldRemoveListenrOnPause() {
-        mController.onPause();
-        verify(mTetherEnabler).removeListener(mController);
-    }
-
-    @Test
-    public void lifecycle_shouldUnregisterReceiverOnStop() {
-        mController.onStart();
-        mController.onStop();
-
-        verify(mContext).unregisterReceiver(
-                eq(mController.mBluetoothChangeReceiver));
-    }
-
-    @Test
-    public void shouldShow_noBluetoothTetherable() {
-        when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[0]);
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void shouldEnable_transientState() {
-        ReflectionHelpers.setField(mController, "mBluetoothState",
-                BluetoothAdapter.STATE_TURNING_OFF);
-        assertThat(mController.shouldEnable()).isFalse();
-    }
-    @Test
-    public void setChecked_shouldStartBluetoothTethering() {
-        mController.setChecked(true);
-        verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_BLUETOOTH);
-    }
-
-    @Test
-    public void setUnchecked_shouldStopBluetoothTethering() {
-        mController.setChecked(false);
-        verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_BLUETOOTH);
-    }
-
-    @Test
-    public void switch_shouldCheckedWhenBluetoothTethering() {
-        mController.onTetherStateUpdated(TetherEnabler.TETHERING_BLUETOOTH_ON);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void switch_shouldUnCheckedWhenBluetoothNotTethering() {
-        mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
-        assertThat(mController.isChecked()).isFalse();
-    }
-}
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/EthernetTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java
deleted file mode 100644
index 68d80d4..0000000
--- a/tests/robotests/src/com/android/settings/network/EthernetTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,143 +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.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.EthernetManager;
-import android.net.TetheringManager;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-@RunWith(RobolectricTestRunner.class)
-public class EthernetTetherPreferenceControllerTest {
-
-    @Rule
-    public MockitoRule mocks = MockitoJUnit.rule();
-
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private EthernetManager mEthernetManager;
-    @Mock
-    private TetherEnabler mTetherEnabler;
-
-    private Context mContext;
-    private EthernetTetherPreferenceController mController;
-    private SwitchPreference mPreference;
-    private static final String ETHERNET_REGEX = "ethernet";
-
-    @Before
-    public void setUp() {
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        mPreference = spy(SwitchPreference.class);
-        when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
-        when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[]{ETHERNET_REGEX});
-        when(mContext.getSystemService(EthernetManager.class)).thenReturn(mEthernetManager);
-        mController = new EthernetTetherPreferenceController(mContext, "ethernet");
-        mController.setTetherEnabler(mTetherEnabler);
-        ReflectionHelpers.setField(mController, "mPreference", mPreference);
-    }
-
-    @Test
-    @Ignore
-    public void lifecycle_shouldRegisterReceiverOnStart() {
-        mController.onStart();
-
-        verify(mEthernetManager).addInterfaceStateListener(any(),
-                eq(mController.mEthernetListener));
-    }
-
-    @Test
-    public void lifecycle_shouldAddListenerOnResume() {
-        mController.onResume();
-        verify(mTetherEnabler).addListener(mController);
-    }
-
-    @Test
-    public void lifecycle_shouldRemoveListenerOnPause() {
-        mController.onPause();
-        verify(mTetherEnabler).removeListener(mController);
-    }
-
-    @Test
-    public void lifecycle_shouldUnregisterReceiverOnStop() {
-        mController.onStart();
-        EthernetManager.InterfaceStateListener listener = mController.mEthernetListener;
-        mController.onStop();
-
-        verify(mEthernetManager).removeInterfaceStateListener(eq(listener));
-    }
-
-    @Test
-    public void shouldEnable_noTetherable() {
-        when(mTetheringManager.getTetherableIfaces()).thenReturn(new String[0]);
-        assertThat(mController.shouldEnable()).isFalse();
-    }
-
-    @Test
-    public void shouldShow_noEthernetInterface() {
-        when(mContext.getSystemService(EthernetManager.class)).thenReturn(null);
-
-        final EthernetTetherPreferenceController controller =
-                new EthernetTetherPreferenceController(mContext, "ethernet");
-        assertThat(controller.shouldShow()).isFalse();
-    }
-
-    @Test
-    public void setChecked_shouldStartEthernetTethering() {
-        mController.setChecked(true);
-        verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_ETHERNET);
-    }
-
-    @Test
-    public void setUnchecked_shouldStopEthernetTethering() {
-        mController.setChecked(false);
-        verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_ETHERNET);
-    }
-
-    @Test
-    public void switch_shouldCheckedWhenEthernetTethering() {
-        mController.onTetherStateUpdated(TetherEnabler.TETHERING_ETHERNET_ON);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void switch_shouldUnCheckedWhenEthernetNotTethering() {
-        mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
-        assertThat(mController.isChecked()).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java b/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java
index 0824680..b232009 100644
--- a/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java
@@ -18,6 +18,7 @@
 
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
 
 import android.content.Context;
 import android.net.Uri;
@@ -30,8 +31,10 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+// import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+// @LooperMode(LooperMode.Mode.LEGACY)
 public class MobileDataEnabledListenerTest {
     private static final int SUB_ID_ONE = 111;
     private static final int SUB_ID_TWO = 222;
@@ -54,6 +57,7 @@
         mListener.start(SUB_ID_ONE);
         final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_ONE);
         mContext.getContentResolver().notifyChange(uri, null);
+        shadowMainLooper().idle();
         verify(mClient).onMobileDataEnabledChange();
     }
 
@@ -63,6 +67,7 @@
         mListener.stop();
         final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_ONE);
         mContext.getContentResolver().notifyChange(uri, null);
+        shadowMainLooper().idle();
         verify(mClient, never()).onMobileDataEnabledChange();
     }
 
@@ -73,6 +78,7 @@
         mListener.start(SUB_ID_TWO);
         final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_TWO);
         mContext.getContentResolver().notifyChange(uri, null);
+        shadowMainLooper().idle();
         verify(mClient).onMobileDataEnabledChange();
     }
 }
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/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
index 8d6d2d9..bf866b2 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
@@ -44,6 +44,8 @@
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.Settings.MobileNetworkActivity;
+import com.android.settings.network.helper.SubscriptionAnnotation;
+import com.android.settings.network.helper.SubscriptionGrouping;
 import com.android.settings.widget.AddPreference;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.core.lifecycle.Lifecycle;
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index cd75bef..fb29e05 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -82,6 +82,7 @@
 import com.android.wifitrackerlib.WifiPickerTracker;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -99,6 +100,9 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class NetworkProviderSettingsTest {
 
     private static final int XML_RES = R.xml.wifi_tether_settings;
@@ -283,7 +287,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);
@@ -314,7 +319,7 @@
         mNetworkProviderSettings.onCreate(Bundle.EMPTY);
 
         verify(mDataUsagePreference).setVisible(true);
-        verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/);
+        verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/);
     }
 
     @Test
@@ -393,6 +398,7 @@
         verify(mContextMenu, never()).add(anyInt(), eq(MENU_ID_SHARE), anyInt(), anyInt());
     }
 
+    @Ignore("b/313585353")
     @Test
     public void onWifiEntriesChanged_shouldChangeNextButtonState() {
         mNetworkProviderSettings.onWifiEntriesChanged();
@@ -479,61 +485,97 @@
         when(mWifiEntry.canConnect()).thenReturn(true);
         final WifiConfigController2 controller = mock(WifiConfigController2.class);
         when(controller.getConfig()).thenReturn(config);
-        final WifiDialog2 wifiDialog2 = spy(WifiDialog2.createModal(mContext, null /* listener */,
-                mWifiEntry, mode));
-        when(wifiDialog2.getController()).thenReturn(controller);
+        WifiDialog2.WifiDialog2Listener listener = mock(WifiDialog2.WifiDialog2Listener.class);
+        final WifiDialog2 wifiDialog2 = spy(new WifiDialog2(mContext, listener, mWifiEntry, mode));
+        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);
@@ -541,6 +583,7 @@
 
     @Test
     public void onAirplaneModeChanged_apmIsOff_hideApmMsg() {
+        setUpForOnCreate();
         mNetworkProviderSettings.onAirplaneModeChanged(false);
 
         verify(mAirplaneModeMsgPreference).setVisible(false);
@@ -797,6 +840,28 @@
     }
 
     @Test
+    public void getNonIndexableKeys_wifiStateEnabled_addWifiNetworkKeyNotReturned() {
+        when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_ENABLED);
+        NetworkProviderSettings.SearchIndexProvider searchIndexProvider =
+                new NetworkProviderSettings.SearchIndexProvider(XML_RES, mWifiRestriction);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        assertThat(keys).doesNotContain(NetworkProviderSettings.PREF_KEY_ADD_WIFI_NETWORK);
+    }
+
+    @Test
+    public void getNonIndexableKeys_wifiStateDisabled_addWifiNetworkKeyReturned() {
+        when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
+        NetworkProviderSettings.SearchIndexProvider searchIndexProvider =
+                new NetworkProviderSettings.SearchIndexProvider(XML_RES, mWifiRestriction);
+
+        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
+
+        assertThat(keys).contains(NetworkProviderSettings.PREF_KEY_ADD_WIFI_NETWORK);
+    }
+
+    @Test
     public void launchConfigNewNetworkFragment_fragmentIsRestricted_ignoreWifiEntry() {
         mNetworkProviderSettings.mIsRestricted = true;
 
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java
index 85a67f6..4580002 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsModeDialogPreferenceTest.java
@@ -38,7 +38,6 @@
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowOs;
 import com.android.settingslib.CustomDialogPreferenceCompat.CustomPreferenceDialogFragment;
 
 import org.junit.Before;
@@ -48,6 +47,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowOs;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
index af292a9..775ac47 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
@@ -67,7 +67,6 @@
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -174,7 +173,6 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAvailabilityStatus_unsupportedWhenSet() {
@@ -211,7 +209,8 @@
         ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOSTNAME);
         mController.updateState(mPreference);
         verify(mController, atLeastOnce()).getSummary();
-        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_off));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_off));
     }
 
     @Test
@@ -221,7 +220,8 @@
         ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOSTNAME);
         mController.updateState(mPreference);
         verify(mController, atLeastOnce()).getSummary();
-        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_opportunistic));
 
         LinkProperties lp = mock(LinkProperties.class);
         when(lp.getValidatedPrivateDnsServers()).thenReturn(NON_EMPTY_ADDRESS_LIST);
@@ -234,7 +234,8 @@
         when(lp.getValidatedPrivateDnsServers()).thenReturn(Collections.emptyList());
         updateLinkProperties(lp);
         mController.updateState(mPreference);
-        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_opportunistic));
     }
 
     @Test
@@ -244,8 +245,8 @@
         ConnectivitySettingsManager.setPrivateDnsHostname(mContext, HOSTNAME);
         mController.updateState(mPreference);
         verify(mController, atLeastOnce()).getSummary();
-        verify(mPreference).setSummary(
-                getResourceString(R.string.private_dns_mode_provider_failure));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_provider_failure));
 
         LinkProperties lp = mock(LinkProperties.class);
         when(lp.getValidatedPrivateDnsServers()).thenReturn(NON_EMPTY_ADDRESS_LIST);
@@ -258,8 +259,8 @@
         when(lp.getValidatedPrivateDnsServers()).thenReturn(Collections.emptyList());
         updateLinkProperties(lp);
         mController.updateState(mPreference);
-        verify(mPreference).setSummary(
-                getResourceString(R.string.private_dns_mode_provider_failure));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_provider_failure));
     }
 
     @Test
@@ -269,7 +270,8 @@
         ConnectivitySettingsManager.setPrivateDnsHostname(mContext, "");
         mController.updateState(mPreference);
         verify(mController, atLeastOnce()).getSummary();
-        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_opportunistic));
 
         reset(mController);
         reset(mPreference);
@@ -277,7 +279,8 @@
         ConnectivitySettingsManager.setPrivateDnsDefaultMode(mContext, PRIVATE_DNS_MODE_OFF);
         mController.updateState(mPreference);
         verify(mController, atLeastOnce()).getSummary();
-        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_off));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_off));
 
         reset(mController);
         reset(mPreference);
@@ -287,10 +290,10 @@
         ConnectivitySettingsManager.setPrivateDnsMode(mContext, PRIVATE_DNS_MODE_OPPORTUNISTIC);
         mController.updateState(mPreference);
         verify(mController, atLeastOnce()).getSummary();
-        verify(mPreference).setSummary(getResourceString(R.string.private_dns_mode_opportunistic));
+        verify(mPreference).setSummary(getResourceString(
+                com.android.settingslib.R.string.private_dns_mode_opportunistic));
     }
 
-    @Ignore
     @Test
     public void isEnabled_canBeDisabledByAdmin() {
         final int userId = UserHandle.myUserId();
diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
index d075655..d805ee6 100644
--- a/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
+++ b/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
@@ -20,12 +20,14 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.atLeastOnce;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
 
 import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
@@ -81,6 +83,7 @@
         final ContentResolver contentResolver = mock(ContentResolver.class);
         when(mContext.getContentResolver()).thenReturn(contentResolver);
         initListener(false);
+        shadowMainLooper().idle();
         verify(contentResolver, never()).registerContentObserver(any(Uri.class), anyBoolean(),
                 any(ContentObserver.class));
         verify(mSubscriptionManager, never()).addOnSubscriptionsChangedListener(any(), any());
@@ -93,6 +96,7 @@
         final ArgumentCaptor<SubscriptionManager.OnSubscriptionsChangedListener> captor =
                 ArgumentCaptor.forClass(SubscriptionManager.OnSubscriptionsChangedListener.class);
         verify(mSubscriptionManager).addOnSubscriptionsChangedListener(any(), captor.capture());
+        shadowMainLooper().idle();
         captor.getValue().onSubscriptionsChanged();
         verify(mClient).onSubscriptionsChanged();
     }
@@ -104,9 +108,11 @@
         mContext.sendStickyBroadcast(intent);
 
         initListener(true);
+        shadowMainLooper().idle();
         verify(mClient, never()).onSubscriptionsChanged();
 
         mContext.sendStickyBroadcast(intent);
+        shadowMainLooper().idle();
         verify(mClient, times(1)).onSubscriptionsChanged();
     }
 
@@ -115,8 +121,10 @@
         initListener(true);
         final ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
                 ArgumentCaptor.forClass(BroadcastReceiver.class);
+        shadowMainLooper().idle();
         verify(mContext).registerReceiver(broadcastReceiverCaptor.capture(), any());
         broadcastReceiverCaptor.getValue().onReceive(mContext, null);
+        shadowMainLooper().idle();
         verify(mClient).onSubscriptionsChanged();
     }
 
@@ -125,7 +133,8 @@
         initListener(true);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
         mListener.onChange(false, mAirplaneModeUri);
-        verify(mClient).onAirplaneModeChanged(true);
+        shadowMainLooper().idle();
+        verify(mClient, atLeastOnce()).onAirplaneModeChanged(true);
         assertThat(mListener.isAirplaneModeOn()).isTrue();
     }
 
@@ -134,7 +143,8 @@
         initListener(true);
         Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
         mListener.onChange(false, mAirplaneModeUri);
-        verify(mClient).onAirplaneModeChanged(false);
+        shadowMainLooper().idle();
+        verify(mClient, atLeastOnce()).onAirplaneModeChanged(false);
         assertThat(mListener.isAirplaneModeOn()).isFalse();
     }
 
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/network/TetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
deleted file mode 100644
index 54d616d..0000000
--- a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,210 +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.network;
-
-import static org.mockito.Mockito.any;
-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.verifyNoInteractions;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothPan;
-import android.bluetooth.BluetoothProfile;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.database.ContentObserver;
-import android.net.TetheringManager;
-import android.provider.Settings;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-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 org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(RobolectricTestRunner.class)
-public class TetherPreferenceControllerTest {
-
-    @Mock
-    private Context mContext;
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private BluetoothAdapter mBluetoothAdapter;
-    @Mock
-    private Preference mPreference;
-
-    private TetherPreferenceController mController;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        doReturn(null).when(mContext)
-                .getSystemService(Context.DEVICE_POLICY_SERVICE);
-        mController = spy(new TetherPreferenceController(mContext, /* lifecycle= */ null));
-        ReflectionHelpers.setField(mController, "mContext", mContext);
-        ReflectionHelpers.setField(mController, "mTetheringManager", mTetheringManager);
-        ReflectionHelpers.setField(mController, "mBluetoothAdapter", mBluetoothAdapter);
-        ReflectionHelpers.setField(mController, "mPreference", mPreference);
-    }
-
-    @Test
-    public void lifeCycle_onCreate_shouldInitBluetoothPan() {
-        when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_ON);
-        mController.onCreate(null);
-
-        verify(mBluetoothAdapter).getState();
-        verify(mBluetoothAdapter).getProfileProxy(mContext, mController.mBtProfileServiceListener,
-                BluetoothProfile.PAN);
-    }
-
-    @Test
-    public void lifeCycle_onCreate_shouldNotInitBluetoothPanWhenBluetoothOff() {
-        when(mBluetoothAdapter.getState()).thenReturn(BluetoothAdapter.STATE_OFF);
-        mController.onCreate(null);
-
-        verify(mBluetoothAdapter).getState();
-        verifyNoMoreInteractions(mBluetoothAdapter);
-    }
-
-    @Test
-    public void goThroughLifecycle_shouldDestoryBluetoothProfile() {
-        final BluetoothPan pan = mock(BluetoothPan.class);
-        final AtomicReference<BluetoothPan> panRef =
-                ReflectionHelpers.getField(mController, "mBluetoothPan");
-        panRef.set(pan);
-
-        mController.onDestroy();
-
-        verify(mBluetoothAdapter).closeProfileProxy(BluetoothProfile.PAN, pan);
-    }
-
-    @Test
-    public void updateSummary_noPreference_noInteractionWithTetheringManager() {
-        ReflectionHelpers.setField(mController, "mPreference", null);
-        mController.updateSummary();
-        verifyNoMoreInteractions(mTetheringManager);
-    }
-
-    @Test
-    public void updateSummary_wifiTethered_shouldShowHotspotMessage() {
-        when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
-        when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"123"});
-
-        mController.updateSummary();
-        verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_off);
-    }
-
-    @Test
-    public void updateSummary_btThetherOn_shouldShowTetherMessage() {
-        when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123"});
-        when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
-
-        mController.updateSummary();
-        verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_off_tether_on);
-    }
-
-    @Ignore
-    @Test
-    public void updateSummary_tetherOff_shouldShowTetherOffMessage() {
-        when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"123"});
-        when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
-
-        mController.updateSummary();
-        verify(mPreference).setSummary(R.string.switch_off_text);
-    }
-
-    @Test
-    public void updateSummary_wifiBtTetherOn_shouldShowHotspotAndTetherMessage() {
-        when(mTetheringManager.getTetheredIfaces()).thenReturn(new String[]{"123", "456"});
-        when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"456"});
-        when(mTetheringManager.getTetherableBluetoothRegexs()).thenReturn(new String[]{"23"});
-
-        mController.updateSummary();
-        verify(mPreference).setSummary(R.string.tether_settings_summary_hotspot_on_tether_on);
-    }
-
-    @Ignore
-    @Test
-    public void airplaneModeOn_shouldUpdateSummaryToOff() {
-        final Context context = RuntimeEnvironment.application;
-        ReflectionHelpers.setField(mController, "mContext", context);
-
-        Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
-
-        mController.onResume();
-
-        verifyNoInteractions(mPreference);
-
-        Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
-
-        final ContentObserver observer =
-            ReflectionHelpers.getField(mController, "mAirplaneModeObserver");
-        observer.onChange(true, Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON));
-
-        verify(mPreference).setSummary(R.string.switch_off_text);
-    }
-
-    @Test
-    public void onResume_shouldRegisterTetherReceiver() {
-        when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
-
-        mController.onResume();
-
-        verify(mContext).registerReceiver(
-                any(TetherPreferenceController.TetherBroadcastReceiver.class),
-                any(IntentFilter.class));
-    }
-
-    @Test
-    public void onPause_shouldUnregisterTetherReceiver() {
-        when(mContext.getContentResolver()).thenReturn(mock(ContentResolver.class));
-        mController.onResume();
-
-        mController.onPause();
-
-        verify(mContext)
-            .unregisterReceiver(any(TetherPreferenceController.TetherBroadcastReceiver.class));
-    }
-
-    @Test
-    public void tetherStatesChanged_shouldUpdateSummary() {
-        final Context context = RuntimeEnvironment.application;
-        ReflectionHelpers.setField(mController, "mContext", context);
-        mController.onResume();
-
-        context.sendBroadcast(new Intent(TetheringManager.ACTION_TETHER_STATE_CHANGED));
-
-        verify(mController).updateSummary();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
index 43b961c..8e0c863 100644
--- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
@@ -29,6 +29,7 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.After;
@@ -39,13 +40,16 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.shadow.api.Shadow;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowUtils.class})
+@Config(shadows = {
+        ShadowRestrictedLockUtilsInternal.class,
+        ShadowUtils.class,
+        ShadowUserManager.class,
+})
 public class TopLevelNetworkEntryPreferenceControllerTest {
 
     @Mock
@@ -58,7 +62,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        final ShadowUserManager um = Shadows.shadowOf(
+        final ShadowUserManager um = Shadow.extract(
                 RuntimeEnvironment.application.getSystemService(UserManager.class));
         um.setIsAdminUser(true);
 
diff --git a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java
deleted file mode 100644
index e02da90..0000000
--- a/tests/robotests/src/com/android/settings/network/UsbTetherPreferenceControllerTest.java
+++ /dev/null
@@ -1,128 +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.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.TetheringManager;
-
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-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 UsbTetherPreferenceControllerTest {
-
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private TetherEnabler mTetherEnabler;
-
-    private Context mContext;
-    private UsbTetherPreferenceController mController;
-    private SwitchPreference mSwitchPreference;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
-        when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{""});
-        mController = new UsbTetherPreferenceController(mContext, "USB");
-        mController.setTetherEnabler(mTetherEnabler);
-        mSwitchPreference = spy(SwitchPreference.class);
-        ReflectionHelpers.setField(mController, "mPreference", mSwitchPreference);
-    }
-
-    @Test
-    public void lifecycle_shouldRegisterReceiverOnStart() {
-        mController.onStart();
-
-        verify(mContext).registerReceiver(eq(mController.mUsbChangeReceiver), any());
-    }
-
-    @Test
-    public void lifecycle_shouldAddListenerOnResume() {
-        mController.onResume();
-        verify(mTetherEnabler).addListener(mController);
-    }
-
-    @Test
-    public void lifecycle_shouldRemoveListenrOnPause() {
-        mController.onPause();
-        verify(mTetherEnabler).removeListener(mController);
-    }
-
-    @Test
-    public void lifecycle_shouldUnregisterReceiverOnStop() {
-        mController.onStart();
-        mController.onStop();
-
-        verify(mContext).unregisterReceiver(eq(mController.mUsbChangeReceiver));
-    }
-
-    @Test
-    public void shouldShow_noTetherableUsb() {
-        when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[0]);
-        assertThat(mController.shouldShow()).isFalse();
-    }
-
-    @Test
-    public void shouldEnable_noUsbConnected() {
-        ReflectionHelpers.setField(mController, "mUsbConnected", false);
-        assertThat(mController.shouldEnable()).isFalse();
-    }
-
-    @Test
-    public void setChecked_shouldStartUsbTethering() {
-        mController.setChecked(true);
-        verify(mTetherEnabler).startTethering(TetheringManager.TETHERING_USB);
-    }
-
-    @Test
-    public void setUnchecked_shouldStopUsbTethering() {
-        mController.setChecked(false);
-        verify(mTetherEnabler).stopTethering(TetheringManager.TETHERING_USB);
-    }
-
-    @Test
-    public void switch_shouldCheckedWhenUsbTethering() {
-        mController.onTetherStateUpdated(TetherEnabler.TETHERING_USB_ON);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void switch_shouldUnCheckedWhenUsbNotTethering() {
-        mController.onTetherStateUpdated(TetherEnabler.TETHERING_OFF);
-        assertThat(mController.isChecked()).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java
deleted file mode 100644
index a82a71f..0000000
--- a/tests/robotests/src/com/android/settings/network/WifiTetherDisablePreferenceControllerTest.java
+++ /dev/null
@@ -1,142 +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.android.settings.AllInOneTetherSettings.WIFI_TETHER_DISABLE_KEY;
-import static com.android.settings.network.TetherEnabler.TETHERING_BLUETOOTH_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_ETHERNET_ON;
-import static com.android.settings.network.TetherEnabler.TETHERING_OFF;
-import static com.android.settings.network.TetherEnabler.TETHERING_USB_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.net.TetheringManager;
-
-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.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.ParameterizedRobolectricTestRunner;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Arrays;
-import java.util.List;
-
-@RunWith(ParameterizedRobolectricTestRunner.class)
-public class WifiTetherDisablePreferenceControllerTest {
-
-    @ParameterizedRobolectricTestRunner.Parameters(name = "TetherState: {0}")
-    public static List params() {
-        return Arrays.asList(new Object[][] {
-                {TETHERING_OFF, R.string.summary_placeholder},
-                {TETHERING_USB_ON, R.string.disable_wifi_hotspot_when_usb_on},
-                {TETHERING_BLUETOOTH_ON, R.string.disable_wifi_hotspot_when_bluetooth_on},
-                {TETHERING_ETHERNET_ON, R.string.disable_wifi_hotspot_when_ethernet_on},
-                {
-                        TETHERING_USB_ON | TETHERING_BLUETOOTH_ON,
-                        R.string.disable_wifi_hotspot_when_usb_and_bluetooth_on
-                },
-                {
-                        TETHERING_USB_ON | TETHERING_ETHERNET_ON,
-                        R.string.disable_wifi_hotspot_when_usb_and_ethernet_on
-                },
-                {
-                        TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
-                        R.string.disable_wifi_hotspot_when_bluetooth_and_ethernet_on
-                },
-                {
-                        TETHERING_USB_ON | TETHERING_BLUETOOTH_ON | TETHERING_ETHERNET_ON,
-                        R.string.disable_wifi_hotspot_when_usb_and_bluetooth_and_ethernet_on
-                }
-        });
-    }
-
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private PreferenceScreen mPreferenceScreen;
-    @Mock
-    private TetherEnabler mTetherEnabler;
-
-    private SwitchPreference mPreference;
-    private Context mContext;
-    private WifiTetherDisablePreferenceController mController;
-    private final int mTetherState;
-    private final int mSummaryResId;
-
-    public WifiTetherDisablePreferenceControllerTest(int tetherState, int summaryResId) {
-        mTetherState = tetherState;
-        mSummaryResId = summaryResId;
-    }
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        mPreference = spy(SwitchPreference.class);
-        when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
-        when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{""});
-        mController = new WifiTetherDisablePreferenceController(mContext, WIFI_TETHER_DISABLE_KEY);
-        mController.setTetherEnabler(mTetherEnabler);
-        ReflectionHelpers.setField(mController, "mScreen", mPreferenceScreen);
-        ReflectionHelpers.setField(mController, "mPreference", mPreference);
-        when(mPreferenceScreen.findPreference(WIFI_TETHER_DISABLE_KEY)).thenReturn(mPreference);
-    }
-
-    @Test
-    public void shouldShow_noTetherableWifi() {
-        when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[0]);
-        assertThat(mController.shouldShow()).isFalse();
-    }
-
-    @Test
-    public void onTetherStateUpdated_visibilityChangeCorrectly() {
-        int state = TetherEnabler.TETHERING_BLUETOOTH_ON;
-        mController.onTetherStateUpdated(state);
-        assertThat(mController.shouldShow()).isTrue();
-
-        state |= TetherEnabler.TETHERING_USB_ON;
-        mController.onTetherStateUpdated(state);
-        assertThat(mController.shouldShow()).isTrue();
-
-        state = TetherEnabler.TETHERING_USB_ON;
-        mController.onTetherStateUpdated(state);
-        assertThat(mController.shouldShow()).isTrue();
-
-        state = TetherEnabler.TETHERING_OFF;
-        mController.onTetherStateUpdated(state);
-        assertThat(mController.shouldShow()).isFalse();
-    }
-
-    @Test
-    public void getSummary_onTetherStateUpdated() {
-        mController.onTetherStateUpdated(mTetherState);
-        assertThat(mController.getSummary()).isEqualTo(mContext.getString(mSummaryResId));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
index 5fd4652..d8895d5 100644
--- a/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
+++ b/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
@@ -17,6 +17,7 @@
 package com.android.settings.network.apn;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
@@ -27,6 +28,7 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import android.content.ContentResolver;
 import android.content.ContentValues;
@@ -42,15 +44,17 @@
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.EditTextPreference;
 import androidx.preference.ListPreference;
 import androidx.preference.MultiSelectListPreference;
 import androidx.preference.SwitchPreference;
+
 import com.android.settings.R;
 import com.android.settings.network.ProxySubscriptionManager;
 import com.android.settings.network.apn.ApnEditor.ApnData;
-import com.android.settings.testutils.shadow.ShadowFragment;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -64,6 +68,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ApnEditorTest {
 
     private static final Object[] APN_DATA = {
@@ -164,6 +171,19 @@
     }
 
     @Test
+    public void getApnDataFromUri_emptyCursor_returnsNull() {
+        var mockContentResolver = mock(ContentResolver.class);
+        var mockCursor = mock(Cursor.class);
+        doReturn(mockContentResolver).when(mActivity).getContentResolver();
+        when(mockContentResolver.query(any(), any(), any(), any(), any())).thenReturn(mockCursor);
+        when(mockCursor.moveToFirst()).thenReturn(false);
+
+        var apnData = mApnEditorUT.getApnDataFromUri(mock(Uri.class));
+
+        assertThat(apnData).isNull();
+    }
+
+    @Test
     public void testSetStringValue_valueChanged_shouldSetValue() {
         // GIVEN an APN value which is different than the APN value in database
         final String apnKey = "apn";
@@ -479,7 +499,6 @@
     }
 
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onCreate_notAdminUser_shouldFinish() {
         doReturn(false).when(mUserManager).isAdminUser();
 
@@ -489,7 +508,6 @@
     }
 
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onCreate_hasUserRestriction_shouldFinish() {
         doReturn(true).when(mUserManager)
                 .hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
@@ -500,7 +518,6 @@
     }
 
     @Test
-    @Config(shadows = ShadowFragment.class)
     public void onCreate_noAction_shouldFinishAndNoCrash() {
         ProxySubscriptionManager proxySubscriptionMgr = mock(ProxySubscriptionManager.class);
         mApnEditorUT.mProxySubscriptionMgr = proxySubscriptionMgr;
diff --git a/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java b/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java
index abea839..bccfe86 100644
--- a/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java
+++ b/tests/robotests/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java
@@ -29,6 +29,7 @@
     private Boolean mIsProvisionedOnDevice;
     private Boolean mIsServiceStateReady;
     private Boolean mIsEnabledByUser;
+    private Boolean mIsReadyToWifiCalling;
 
     /**
      * Constructor
@@ -103,4 +104,16 @@
         return super.isEnabledByUser(subId);
     }
 
+    public void setIsReadyToWifiCalling(boolean isReady) {
+        mIsReadyToWifiCalling = isReady;
+    }
+
+    @Override
+    public boolean isReadyToWifiCalling() {
+        if (mIsReadyToWifiCalling != null) {
+            return mIsReadyToWifiCalling;
+        }
+        return super.isReadyToWifiCalling();
+    }
+
 }
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
index ba37c30..8445fe2 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataSliceTest.java
@@ -114,7 +114,8 @@
 
         mMobileDataSlice.onNotifyChange(intent);
 
-        verify(mTelephonyManager).setDataEnabled(true);
+        verify(mTelephonyManager)
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
     }
 
     @Test
@@ -126,7 +127,8 @@
 
         mMobileDataSlice.onNotifyChange(intent);
 
-        verify(mTelephonyManager).setDataEnabled(false);
+        verify(mTelephonyManager)
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, false);
     }
 
     @Test
@@ -138,7 +140,8 @@
 
         mMobileDataSlice.onNotifyChange(intent);
 
-        verify(mTelephonyManager, times(0)).setDataEnabled(true);
+        verify(mTelephonyManager, times(0))
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 3e219a4..297815b 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -58,7 +58,10 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
+@Config(shadows = {
+        ShadowEntityHeaderController.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class MobileNetworkSettingsTest {
     @Mock
     private TelephonyManager mTelephonyManager;
diff --git a/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java
index 9b44faa..da8958d 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/VideoCallingPreferenceControllerTest.java
@@ -86,7 +86,8 @@
 
         mPreference = new SwitchPreference(mContext);
         mController = spy(new VideoCallingPreferenceController(mContext, "wifi_calling"));
-        mController.init(SUB_ID);
+        mController.init(
+                SUB_ID, new CallingPreferenceCategoryController(mContext, "calling_category"));
         doReturn(mQueryImsState).when(mController).queryImsState(anyInt());
         doReturn(mQueryVoLteState).when(mController).queryVoLteState(anyInt());
         doReturn(true).when(mController).isImsSupported();
diff --git a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
index 7fe1187..4e0fb03 100644
--- a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
@@ -48,7 +48,6 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.util.FeatureFlagUtils;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
@@ -56,7 +55,6 @@
 
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.wifi.tether.WifiTetherPreferenceController;
 import com.android.settingslib.RestrictedSwitchPreference;
 
@@ -76,6 +74,9 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class TetherSettingsTest {
 
     private Context mContext;
@@ -142,7 +143,6 @@
 
     @Test
     public void testTetherNonIndexableKeys_tetherAvailable_keysNotReturned() {
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         // To let TetherUtil.isTetherAvailable return true, select one of the combinations
         setupIsTetherAvailable(true);
 
@@ -187,7 +187,6 @@
 
     @Test
     public void testTetherNonIndexableKeys_usbAvailable_usbKeyNotReturned() {
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         // We can ignore the condition of Utils.isMonkeyRunning()
         // In normal case, monkey and robotest should not execute at the same time
         when(mTetheringManager.getTetherableUsbRegexs()).thenReturn(new String[]{"fakeRegex"});
@@ -210,7 +209,6 @@
 
     @Test
     public void testTetherNonIndexableKeys_bluetoothAvailable_bluetoothKeyNotReturned() {
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         when(mTetheringManager.getTetherableBluetoothRegexs())
                 .thenReturn(new String[]{"fakeRegex"});
 
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 3cb3abf..ea0b2a0 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
@@ -34,26 +34,34 @@
 import android.widget.Switch;
 
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
 import com.android.settingslib.widget.MainSwitchPreference;
 
 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.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowInteractionJankMonitor.class})
+@Config(shadows = {
+        ShadowInteractionJankMonitor.class,
+        ShadowActivityManager.class,
+})
 public class BubbleNotificationPreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
+    private static final String KEY_NOTIFICATION_BUBBLES = "notification_bubbles";
     private Context mContext;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private PreferenceScreen mScreen;
@@ -64,33 +72,29 @@
     private BubbleNotificationPreferenceController mController;
     private MainSwitchPreference mPreference;
 
-    private static final String KEY_NOTIFICATION_BUBBLES = "notification_bubbles";
+    private ShadowActivityManager mActivityManager;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = new BubbleNotificationPreferenceController(mContext,
                 KEY_NOTIFICATION_BUBBLES);
-        mPreference = new MainSwitchPreference(RuntimeEnvironment.application);
+        mPreference = new MainSwitchPreference(mContext);
         mPreference.setKey(mController.getPreferenceKey());
         when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
         mController.displayPreference(mScreen);
+        mActivityManager = Shadow.extract(mContext.getSystemService(ActivityManager.class));
     }
 
     @Test
     public void isAvailable_lowRam_returnsUnsupported() {
-        final ShadowActivityManager activityManager =
-                Shadow.extract(mContext.getSystemService(ActivityManager.class));
-        activityManager.setIsLowRamDevice(true);
+        mActivityManager.setIsLowRamDevice(true);
         assertEquals(UNSUPPORTED_ON_DEVICE, mController.getAvailabilityStatus());
     }
 
     @Test
     public void isAvailable_notLowRam_returnsAvailable() {
-        final ShadowActivityManager activityManager =
-                Shadow.extract(mContext.getSystemService(ActivityManager.class));
-        activityManager.setIsLowRamDevice(false);
+        mActivityManager.setIsLowRamDevice(false);
         assertEquals(AVAILABLE, mController.getAvailabilityStatus());
     }
 
@@ -109,7 +113,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);
@@ -119,7 +123,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/BubbleSummaryNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
index 3b4e90f..a201fdb 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
@@ -30,6 +30,7 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 
@@ -37,26 +38,33 @@
 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.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowActivityManager;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowActivityManager.class,
+})
 public class BubbleSummaryNotificationPreferenceControllerTest {
 
+    private static final String KEY_NOTIFICATION_BUBBLES = "notification_bubbles";
     private Context mContext;
 
     private BubbleSummaryNotificationPreferenceController mController;
     private Preference mPreference;
 
-    private static final String KEY_NOTIFICATION_BUBBLES = "notification_bubbles";
+    private ShadowActivityManager mActivityManager;
+
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mController = new BubbleSummaryNotificationPreferenceController(mContext,
                 KEY_NOTIFICATION_BUBBLES);
-        mPreference = new Preference(RuntimeEnvironment.application);
+        mPreference = new Preference(mContext);
+        mActivityManager =
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
     }
 
     @Test
@@ -76,17 +84,13 @@
 
     @Test
     public void isAvailable_lowRam_returnsUnsupported() {
-        final ShadowActivityManager activityManager =
-                Shadow.extract(mContext.getSystemService(ActivityManager.class));
-        activityManager.setIsLowRamDevice(true);
+        mActivityManager.setIsLowRamDevice(true);
         assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
     public void isAvailable_notLowRam_returnsAvailable() {
-        final ShadowActivityManager activityManager =
-                Shadow.extract(mContext.getSystemService(ActivityManager.class));
-        activityManager.setIsLowRamDevice(false);
+        mActivityManager.setIsLowRamDevice(false);
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java
index aac4a0b..0131bc5 100644
--- a/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java
@@ -31,7 +31,6 @@
 import androidx.preference.SwitchPreference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -41,6 +40,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ChargingSoundPreferenceControllerTest {
 
     @Mock
@@ -73,7 +75,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
index fa95e52..c6511ef 100644
--- a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
@@ -37,8 +37,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class DialPadTonePreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java
index 5e4efd0..097aed7 100644
--- a/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java
@@ -45,8 +45,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class DockAudioMediaPreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java
index 0cfc6b7..7aeddfc 100644
--- a/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java
@@ -39,8 +39,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class DockingSoundPreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java
index 49776de..bae7c4c 100644
--- a/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java
@@ -37,8 +37,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class EmergencyTonePreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
index 982316a..ed93473 100644
--- a/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/MediaVolumePreferenceControllerTest.java
@@ -42,7 +42,6 @@
 import com.android.settingslib.media.MediaOutputConstants;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -89,7 +88,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAccessConfirmationActivityTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAccessConfirmationActivityTest.java
index 86631ff..9b510fb 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAccessConfirmationActivityTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAccessConfirmationActivityTest.java
@@ -22,7 +22,6 @@
 
 import static org.robolectric.Shadows.shadowOf;
 
-import android.annotation.Nullable;
 import android.app.Activity;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -30,6 +29,8 @@
 import android.content.pm.PackageInfo;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
+
 import com.android.settings.R;
 
 import com.google.common.base.Strings;
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java
index e644c29..d19f17d 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java
@@ -53,11 +53,13 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowBluetoothUtils.class})
 public class NotificationAccessSettingsTest {
 
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java
index eef3f04..c4b5e80 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java
@@ -35,8 +35,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class NotificationAssistantDialogFragmentTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
index 1dac399..7606057 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
@@ -16,12 +16,7 @@
 
 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;
@@ -34,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;
@@ -60,15 +50,13 @@
 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)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class NotificationAssistantPreferenceControllerTest {
 
     private static final String KEY = "TEST_KEY";
@@ -82,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);
@@ -113,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
@@ -151,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(),
@@ -225,15 +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, times(1)).setSwitchEnabled(eq(false));
-        assertFalse(mPreference.isEnabled());
-    }
-
 }
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
index 783a36b..1aecad5 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationRingtonePreferenceControllerTest.java
@@ -21,7 +21,6 @@
 import android.media.RingtoneManager;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -45,7 +44,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
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..4d546ec
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/PoliteNotifVibrateUnlockedToggleControllerTest.java
@@ -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.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);
+        mSetFlagsRule.enableFlags(Flags.FLAG_VIBRATE_WHILE_UNLOCKED);
+        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);
+        mSetFlagsRule.enableFlags(Flags.FLAG_VIBRATE_WHILE_UNLOCKED);
+        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);
+        mSetFlagsRule.enableFlags(Flags.FLAG_VIBRATE_WHILE_UNLOCKED);
+        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/RedactionInterstitialTest.java b/tests/robotests/src/com/android/settings/notification/RedactionInterstitialTest.java
index 2668e6d..9d475b8 100644
--- a/tests/robotests/src/com/android/settings/notification/RedactionInterstitialTest.java
+++ b/tests/robotests/src/com/android/settings/notification/RedactionInterstitialTest.java
@@ -27,7 +27,6 @@
 
 import org.junit.After;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -36,7 +35,6 @@
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowUserManager;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ShadowUtils.class,
diff --git a/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java b/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java
index e713963..06bd90b 100644
--- a/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/RemoteVolumeGroupControllerTest.java
@@ -31,6 +31,7 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageStats;
+import android.media.MediaRoute2Info;
 import android.media.MediaRouter2Manager;
 import android.media.RoutingSessionInfo;
 import android.media.session.MediaSessionManager;
@@ -83,6 +84,8 @@
     private SharedPreferences mSharedPreferences;
     @Mock
     private MediaSessionManager mMediaSessionManager;
+    @Mock
+    private MediaRouter2Manager mRouterManager;
 
     private final List<RoutingSessionInfo> mRoutingSessionInfos = new ArrayList<>();
 
@@ -100,9 +103,9 @@
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mMediaSessionManager).when(mContext).getSystemService(
                 Context.MEDIA_SESSION_SERVICE);
-        mController = new RemoteVolumeGroupController(mContext, KEY_REMOTE_VOLUME_GROUP);
-        mController.mLocalMediaManager = mLocalMediaManager;
-        mController.mRouterManager = mock(MediaRouter2Manager.class);
+        mController =
+                new RemoteVolumeGroupController(
+                        mContext, KEY_REMOTE_VOLUME_GROUP, mLocalMediaManager, mRouterManager);
         mPreferenceCategory = spy(new PreferenceCategory(mContext));
         mPreferenceCategory.setKey(mController.getPreferenceKey());
 
@@ -118,7 +121,7 @@
         when(remoteSessionInfo.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
         when(remoteSessionInfo.isSystemSession()).thenReturn(false);
         mRoutingSessionInfos.add(remoteSessionInfo);
-        when(mLocalMediaManager.getActiveMediaSession()).thenReturn(mRoutingSessionInfos);
+        when(mLocalMediaManager.getRemoteRoutingSessions()).thenReturn(mRoutingSessionInfos);
     }
 
     @Test
@@ -178,6 +181,10 @@
 
     @Test
     public void displayPreference_withActiveSession_checkSwitcherPreferenceTitle() {
+        // Preference title needs media output to be enabled.
+        when(mRouterManager.getTransferableRoutes(TEST_PACKAGE_NAME)).thenReturn(List.of(mock(
+                MediaRoute2Info.class)));
+
         initPackage();
         mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
         mController.displayPreference(mScreen);
diff --git a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
index e414929..5fb2d31 100644
--- a/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/RingVolumePreferenceControllerTest.java
@@ -91,26 +91,6 @@
         assertThat(mController.isAvailable()).isFalse();
     }
 
-    /**
-     * Devices that are not voice capable should still show Ring volume, because it is used by apps
-     * that make calls outside the cell network.
-     */
-    @Test
-    public void isAvailable_notSingleVolume_notVoiceCapable_shouldReturnTrue() {
-        when(mHelper.isSingleVolume()).thenReturn(false);
-        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
-
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
-    @Test
-    public void isAvailable_notSingleVolume_VoiceCapable_shouldReturnTrue() {
-        when(mHelper.isSingleVolume()).thenReturn(false);
-        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
-
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
     @Test
     public void getAudioStream_shouldReturnRing() {
         assertThat(mController.getAudioStream()).isEqualTo(AudioManager.STREAM_RING);
diff --git a/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java
index 49742c8..0a1ce1f 100644
--- a/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java
@@ -31,7 +31,6 @@
 import androidx.preference.SwitchPreference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -41,6 +40,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ScreenLockSoundPreferenceControllerTest {
 
     @Mock
@@ -73,7 +75,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java b/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
index 6dec2d9..fc247c4 100644
--- a/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
@@ -42,11 +42,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class SettingPrefControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java b/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java
index 6f8b784..c7a110a 100644
--- a/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java
@@ -38,9 +38,13 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class SoundWorkSettingsTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java
index 50facdd..09fdada 100644
--- a/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java
@@ -32,7 +32,6 @@
 import androidx.preference.SwitchPreference;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -42,6 +41,9 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class TouchSoundPreferenceControllerTest {
 
     @Mock
@@ -77,7 +79,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java
index 47bf99d..942db3f 100644
--- a/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/VolumeSeekBarPreferenceTest.java
@@ -100,6 +100,7 @@
 
     @Test
     public void init_listenerIsCalled() {
+        when(mPreference.isEnabled()).thenReturn(true);
         doCallRealMethod().when(mPreference).setListener(mListener);
         doCallRealMethod().when(mPreference).init();
 
@@ -112,6 +113,19 @@
 
     @Test
     public void init_listenerNotSet_noException() {
+        when(mPreference.isEnabled()).thenReturn(true);
+        doCallRealMethod().when(mPreference).init();
+
+        mPreference.setStream(STREAM);
+        mPreference.init();
+
+        verify(mPreference, never()).updateContentDescription(CONTENT_DESCRIPTION);
+    }
+
+    @Test
+    public void init_preferenceIsDisabled_shouldNotInvokeListener() {
+        when(mPreference.isEnabled()).thenReturn(false);
+        doCallRealMethod().when(mPreference).setListener(mListener);
         doCallRealMethod().when(mPreference).init();
 
         mPreference.setStream(STREAM);
@@ -123,6 +137,7 @@
     @Test
     public void init_changeProgress_overrideStateDescriptionCalled() {
         final int progress = 4;
+        when(mPreference.isEnabled()).thenReturn(true);
         when(mPreference.formatStateDescription(progress)).thenReturn(CONTENT_DESCRIPTION);
         doCallRealMethod().when(mPreference).init();
 
@@ -144,6 +159,7 @@
         when(mAudioManager.getStreamMaxVolume(STREAM)).thenReturn(max);
         when(mAudioManager.getStreamMinVolumeInt(STREAM)).thenReturn(min);
         when(mAudioManager.getStreamVolume(STREAM)).thenReturn(progress);
+        when(mPreference.isEnabled()).thenReturn(true);
         when(mPreference.getMin()).thenReturn(min);
         when(mPreference.getMax()).thenReturn(max);
         when(mPreference.getContext()).thenReturn(mContext);
@@ -155,6 +171,8 @@
         mPreference.setStream(STREAM);
         mPreference.init();
 
+        verify(mSeekBarVolumizerFactory).create(eq(STREAM), eq(null), mSbvc.capture());
+
         // On progress change, Round down the percent to match it with what the talkback says.
         // (b/285458191)
         // when progress is 4, the percent is 0.187. The state description should be set to 18%.
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 bcb641d..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,29 +26,37 @@
 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;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 import java.util.Collections;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class AppChannelsBypassingDndPreferenceControllerTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     @Mock
     private NotificationBackend mBackend;
 
@@ -148,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/AppConversationListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java
index 198c80a..916452c 100644
--- a/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java
@@ -42,12 +42,14 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class AppConversationListPreferenceControllerTest {
 
     private Context mContext;
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/notification/app/BubblePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
index 09f6b7d..893695c 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
@@ -25,8 +25,8 @@
 import static android.app.NotificationManager.IMPORTANCE_NONE;
 import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_OFF;
-import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_ON;
+import static com.android.settings.notification.BubbleHelper.SYSTEM_WIDE_OFF;
+import static com.android.settings.notification.BubbleHelper.SYSTEM_WIDE_ON;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -55,6 +55,7 @@
 import androidx.fragment.app.FragmentTransaction;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.notification.NotificationBackend;
 import com.android.settingslib.RestrictedLockUtils;
@@ -63,13 +64,15 @@
 import com.google.common.collect.ImmutableList;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowActivityManager;
 import org.robolectric.shadows.ShadowApplication;
@@ -78,7 +81,12 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowActivityManager.class,
+})
 public class BubblePreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private Context mContext;
     @Mock
@@ -99,11 +107,10 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         when(mFragmentManager.beginTransaction()).thenReturn(mock(FragmentTransaction.class));
         mController = spy(new BubblePreferenceController(mContext, mFragmentManager, mBackend,
                 false /* isAppPage */, mListener));
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
index 75c53c1..6fbe40e 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
@@ -23,8 +23,8 @@
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
 import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_OFF;
-import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_ON;
+import static com.android.settings.notification.BubbleHelper.SYSTEM_WIDE_OFF;
+import static com.android.settings.notification.BubbleHelper.SYSTEM_WIDE_ON;
 
 import static junit.framework.TestCase.assertEquals;
 
@@ -43,23 +43,30 @@
 import android.provider.Settings;
 
 import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.notification.NotificationBackend;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowActivityManager;
-import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowActivityManager.class,
+})
 public class BubbleSummaryPreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private Context mContext;
     @Mock
@@ -68,16 +75,17 @@
 
     private BubbleSummaryPreferenceController mController;
 
+    private ShadowActivityManager mActivityManager;
+
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        ShadowApplication shadowApplication = ShadowApplication.getInstance();
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         when(mBackend.hasSentValidBubble(anyString(), anyInt())).thenReturn(true);
         mAppRow = new NotificationBackend.AppRow();
         mAppRow.pkg = "pkg";
         mAppRow.uid = 0;
         mController = spy(new BubbleSummaryPreferenceController(mContext, mBackend));
+        mActivityManager = Shadow.extract(mContext.getSystemService(ActivityManager.class));
     }
 
     @Test
@@ -147,9 +155,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         mController.onResume(mAppRow, null, null, null, null, null, null);
 
-        final ShadowActivityManager activityManager =
-                Shadow.extract(mContext.getSystemService(ActivityManager.class));
-        activityManager.setIsLowRamDevice(true);
+        mActivityManager.setIsLowRamDevice(true);
         assertFalse(mController.isAvailable());
     }
 
@@ -158,9 +164,7 @@
         Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         mController.onResume(mAppRow, null, null, null, null, null, null);
 
-        final ShadowActivityManager activityManager =
-               Shadow.extract(mContext.getSystemService(ActivityManager.class));
-        activityManager.setIsLowRamDevice(false);
+        mActivityManager.setIsLowRamDevice(false);
         assertTrue(mController.isAvailable());
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java
index 0591cf2..e5a156e 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java
@@ -46,11 +46,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ConversationDemotePreferenceControllerTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java
index 9a1a3ab..9e67891 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java
@@ -48,11 +48,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ConversationHeaderPreferenceControllerTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationPriorityPreferenceTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationPriorityPreferenceTest.java
index 2d2fcc8..178aee5 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationPriorityPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationPriorityPreferenceTest.java
@@ -21,17 +21,15 @@
 
 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.times;
 import static org.mockito.Mockito.verify;
 
 import android.content.Context;
-import android.graphics.drawable.Drawable;
 import android.util.Pair;
+import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
 
@@ -50,7 +48,8 @@
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        Context context = spy(RuntimeEnvironment.application.getApplicationContext());
+        mContext = new ContextThemeWrapper(context, R.style.Theme_Settings);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
index 1c049be..56df38b 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
@@ -48,12 +48,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
-import java.sql.Array;
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ConversationPromotePreferenceControllerTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt b/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt
index e148f71..89e33ee 100644
--- a/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt
+++ b/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt
@@ -30,6 +30,7 @@
 import android.content.pm.PackageManager
 import android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET
 import android.content.pm.PackageManager.GET_PERMISSIONS
+import android.content.pm.PackageManager.NameNotFoundException
 import android.os.UserHandle
 import android.permission.PermissionManager.PERMISSION_GRANTED
 import android.permission.PermissionManager.PERMISSION_HARD_DENIED
@@ -43,6 +44,7 @@
 import com.android.settings.notification.app.FullScreenIntentPermissionPreferenceController.Companion.KEY_FSI_PERMISSION
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin
 import com.android.settingslib.RestrictedSwitchPreference
+import com.android.settingslib.testutils.shadow.ShadowPermissionChecker
 import org.junit.Assert.assertFalse
 import org.junit.Assert.assertTrue
 import org.junit.Before
@@ -58,11 +60,13 @@
 import org.robolectric.RobolectricTestRunner
 import org.robolectric.annotation.Config
 import org.robolectric.shadows.ShadowApplicationPackageManager
-import org.robolectric.shadows.ShadowPermissionChecker
 import org.mockito.Mockito.`when` as whenever
 
 @RunWith(RobolectricTestRunner::class)
-@Config(shadows = [ShadowApplicationPackageManager::class])
+@Config(shadows = [
+    ShadowApplicationPackageManager::class,
+    ShadowPermissionChecker::class,
+])
 class FullScreenIntentPermissionPreferenceControllerTest {
     @JvmField
     @Rule
@@ -131,6 +135,14 @@
     }
 
     @Test
+    fun testIsAvailable_notWhenPackageNotFound() {
+        setPackageInfoNotFound()
+        initController()
+
+        assertFalse(controller.isAvailable)
+    }
+
+    @Test
     fun testIsEnabled_notWhenDisabledByAdmin() {
         setPermissionRequestedInManifest()
         initController(admin = makeTestAdmin())
@@ -239,6 +251,12 @@
             })
     }
 
+    private fun setPackageInfoNotFound() {
+        whenever(packageManager.getPackageInfo(TEST_PACKAGE, GET_PERMISSIONS)).thenThrow(
+            NameNotFoundException(TEST_PACKAGE)
+        )
+    }
+
     private fun setPermissionResult(@PermissionResult result: Int) {
         ShadowPermissionChecker.setResult(TEST_PACKAGE, USE_FULL_SCREEN_INTENT, result)
     }
diff --git a/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
index 4ca4f8d..05a41a6 100644
--- a/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
@@ -46,11 +46,15 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class HeaderPreferenceControllerTest {
 
     private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/ImportancePreferenceTest.java b/tests/robotests/src/com/android/settings/notification/app/ImportancePreferenceTest.java
index 39a5714..c5733bf 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ImportancePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ImportancePreferenceTest.java
@@ -28,13 +28,15 @@
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.TextView;
 
+import androidx.preference.PreferenceViewHolder;
+
 import com.android.settings.R;
-import com.android.settings.notification.app.ImportancePreference;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -42,8 +44,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-import androidx.preference.PreferenceViewHolder;
-
 @RunWith(RobolectricTestRunner.class)
 public class ImportancePreferenceTest {
 
@@ -51,7 +51,8 @@
 
     @Before
     public void setUp() {
-        mContext = RuntimeEnvironment.application;
+        Context context = spy(RuntimeEnvironment.application.getApplicationContext());
+        mContext = new ContextThemeWrapper(context, R.style.Theme_Settings);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java
index 247d68e..32bf9af 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeBackendTest.java
@@ -16,9 +16,9 @@
 
 import static junit.framework.Assert.assertEquals;
 
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -30,8 +30,6 @@
 import android.provider.Settings;
 import android.service.notification.ZenModeConfig;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -204,7 +202,11 @@
         mBackend.saveConversationSenders(CONVERSATION_SENDERS_NONE);
 
         ArgumentCaptor<Policy> captor = ArgumentCaptor.forClass(Policy.class);
-        verify(mNotificationManager, times(1)).setNotificationPolicy(captor.capture());
+        if (android.app.Flags.modesApi()) {
+            verify(mNotificationManager).setNotificationPolicy(captor.capture(), eq(true));
+        } else {
+            verify(mNotificationManager).setNotificationPolicy(captor.capture());
+        }
 
         Policy expected = new Policy(
                 PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_MESSAGES | PRIORITY_CATEGORY_ALARMS,
@@ -228,7 +230,11 @@
         mBackend.saveConversationSenders(CONVERSATION_SENDERS_ANYONE);
 
         ArgumentCaptor<Policy> captor = ArgumentCaptor.forClass(Policy.class);
-        verify(mNotificationManager, times(1)).setNotificationPolicy(captor.capture());
+        if (android.app.Flags.modesApi()) {
+            verify(mNotificationManager).setNotificationPolicy(captor.capture(), eq(true));
+        } else {
+            verify(mNotificationManager).setNotificationPolicy(captor.capture());
+        }
 
         Policy expected = new Policy(PRIORITY_CATEGORY_CONVERSATIONS
                 | PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_MESSAGES | PRIORITY_CATEGORY_ALARMS,
@@ -253,7 +259,11 @@
         mBackend.saveSenders(PRIORITY_CATEGORY_CALLS, PRIORITY_SENDERS_ANY);
 
         ArgumentCaptor<Policy> captor = ArgumentCaptor.forClass(Policy.class);
-        verify(mNotificationManager, times(1)).setNotificationPolicy(captor.capture());
+        if (android.app.Flags.modesApi()) {
+            verify(mNotificationManager).setNotificationPolicy(captor.capture(), eq(true));
+        } else {
+            verify(mNotificationManager).setNotificationPolicy(captor.capture());
+        }
 
         Policy expected = new Policy(PRIORITY_CATEGORY_CONVERSATIONS
                 | PRIORITY_CATEGORY_CALLS | PRIORITY_CATEGORY_MESSAGES | PRIORITY_CATEGORY_ALARMS,
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java
index eeb53cf..f6df04d 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java
@@ -39,12 +39,16 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowToast;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ZenModeEventRuleSettingsTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java
index a8a551f..4361eb3 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java
@@ -39,9 +39,13 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowToast;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ZenModeScheduleRuleSettingsTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java
index 400543c..3f9e486 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeSliceBuilderTest.java
@@ -17,13 +17,18 @@
 package com.android.settings.notification.zen;
 
 import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
+import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
+import static android.provider.Settings.Global.ZEN_MODE_OFF;
 
 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.NotificationManager;
 import android.content.Context;
 import android.content.Intent;
-import android.provider.Settings;
 
 import androidx.slice.Slice;
 import androidx.slice.SliceMetadata;
@@ -32,32 +37,48 @@
 import androidx.slice.widget.SliceLiveData;
 
 import com.android.settings.R;
-import com.android.settings.notification.zen.ZenModeSliceBuilder;
 import com.android.settings.testutils.shadow.ShadowNotificationManager;
+import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
 
 import java.util.List;
 
-@Config(shadows = ShadowNotificationManager.class)
+@Config(shadows = {ShadowNotificationManager.class, ShadowRestrictedLockUtilsInternal.class})
 @RunWith(RobolectricTestRunner.class)
 public class ZenModeSliceBuilderTest {
 
     private Context mContext;
 
+    @Mock
+    private NotificationManager mNm;
+
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
 
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication shadowApplication = ShadowApplication.getInstance();
+        shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
+
         // Set-up specs for SliceMetadata.
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
     }
 
+    @After
+    public void tearDown() {
+        ShadowRestrictedLockUtilsInternal.reset();
+    }
+
     @Test
     public void getZenModeSlice_correctSliceContent() {
         final Slice dndSlice = ZenModeSliceBuilder.getSlice(mContext);
@@ -74,27 +95,46 @@
     }
 
     @Test
+    public void getZenModeSlice_managedByAdmin_shouldNotHaveToggle() {
+        ShadowRestrictedLockUtilsInternal.setRestricted(true);
+        final Slice dndSlice = ZenModeSliceBuilder.getSlice(mContext);
+
+        final SliceMetadata metadata = SliceMetadata.from(mContext, dndSlice);
+        assertThat(metadata.getTitle()).isEqualTo(
+                mContext.getString(R.string.zen_mode_settings_title));
+
+        final List<SliceAction> toggles = metadata.getToggles();
+        assertThat(toggles).hasSize(0);
+
+        final SliceAction primaryAction = metadata.getPrimaryAction();
+        assertThat(primaryAction.getIcon()).isNull();
+    }
+
+    @Test
     public void handleUriChange_turnOn_zenModeTurnsOn() {
         final Intent intent = new Intent();
         intent.putExtra(EXTRA_TOGGLE_STATE, true);
-        NotificationManager.from(mContext).setZenMode(Settings.Global.ZEN_MODE_OFF, null, "");
 
         ZenModeSliceBuilder.handleUriChange(mContext, intent);
 
-        final int zenMode = NotificationManager.from(mContext).getZenMode();
-        assertThat(zenMode).isEqualTo(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+        if (android.app.Flags.modesApi()) {
+            verify(mNm).setZenMode(eq(ZEN_MODE_IMPORTANT_INTERRUPTIONS), any(), any(), eq(true));
+        } else {
+            verify(mNm).setZenMode(eq(ZEN_MODE_IMPORTANT_INTERRUPTIONS), any(), any());
+        }
     }
 
     @Test
     public void handleUriChange_turnOff_zenModeTurnsOff() {
         final Intent intent = new Intent();
         intent.putExtra(EXTRA_TOGGLE_STATE, false);
-        NotificationManager.from(mContext).setZenMode(
-                Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS, null, "");
 
         ZenModeSliceBuilder.handleUriChange(mContext, intent);
 
-        final int zenMode = NotificationManager.from(mContext).getZenMode();
-        assertThat(zenMode).isEqualTo(Settings.Global.ZEN_MODE_OFF);
+        if (android.app.Flags.modesApi()) {
+            verify(mNm).setZenMode(eq(ZEN_MODE_OFF), any(), any(), eq(true));
+        } else {
+            verify(mNm).setZenMode(eq(ZEN_MODE_OFF), any(), any());
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java
index 257eaaf..01360fd 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenOnboardingActivityTest.java
@@ -21,17 +21,19 @@
 import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_SCREEN_ON;
 
 import static com.android.settings.notification.zen.ZenOnboardingActivity.ALWAYS_SHOW_THRESHOLD;
-import static com.android.settings.notification.zen.ZenOnboardingActivity
-        .PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME;
+import static com.android.settings.notification.zen.ZenOnboardingActivity.PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME;
 import static com.android.settings.notification.zen.ZenOnboardingActivity.isSuggestionComplete;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.app.NotificationManager.Policy;
 import android.content.Context;
@@ -40,7 +42,6 @@
 
 import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.notification.zen.ZenOnboardingActivity;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
@@ -103,7 +104,11 @@
         verify(mMetricsLogger).action(MetricsEvent.ACTION_ZEN_ONBOARDING_OK);
 
         ArgumentCaptor<Policy> captor = ArgumentCaptor.forClass(Policy.class);
-        verify(mNm).setNotificationPolicy(captor.capture());
+        if (android.app.Flags.modesApi()) {
+            verify(mNm).setNotificationPolicy(captor.capture(), eq(true));
+        } else {
+            verify(mNm).setNotificationPolicy(captor.capture());
+        }
 
         Policy actual = captor.getValue();
         assertThat(actual.priorityCategories).isEqualTo(PRIORITY_CATEGORY_ALARMS
@@ -123,7 +128,11 @@
         mActivity.save(null);
 
         verify(mMetricsLogger).action(MetricsEvent.ACTION_ZEN_ONBOARDING_KEEP_CURRENT_SETTINGS);
-        verify(mNm, never()).setNotificationPolicy(any());
+        if (Flags.modesApi()) {
+            verify(mNm, never()).setNotificationPolicy(any(), anyBoolean());
+        } else {
+            verify(mNm, never()).setNotificationPolicy(any());
+        }
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
index 7d0bf99..090bcfb 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
@@ -42,6 +42,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -49,10 +50,17 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 
 import java.util.Objects;
 
+@Ignore("b/313576125")
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class PanelFragmentTest {
 
     private static final String TITLE = "title";
diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
index 9322317..87a798a 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
@@ -43,6 +43,7 @@
 
 import androidx.lifecycle.LiveData;
 import androidx.slice.Slice;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
 import com.android.settings.panel.PanelSlicesAdapter.SliceRowViewHolder;
@@ -50,13 +51,14 @@
 
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
-import org.mockito.MockitoAnnotations;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
@@ -68,6 +70,8 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = PanelSlicesAdapterTest.ShadowLayoutInflater.class)
 public class PanelSlicesAdapterTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private static LayoutInflater sLayoutInflater;
 
@@ -80,8 +84,7 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
 
         mPanelFeatureProvider = spy(new PanelFeatureProviderImpl());
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
@@ -103,8 +106,7 @@
 
     private void addTestLiveData(Uri uri) {
         // Create a slice to return for the LiveData
-        final Slice slice = spy(new Slice());
-        doReturn(uri).when(slice).getUri();
+        final Slice slice = new Slice();
         final LiveData<Slice> liveData = mock(LiveData.class);
         when(liveData.getValue()).thenReturn(slice);
         mData.put(uri, liveData);
diff --git a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
index ea55b90..e550284 100644
--- a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
+++ b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
@@ -47,6 +47,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -55,9 +56,13 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class SettingsPanelActivityTest {
 
     private FakeFeatureFactory mFakeFeatureFactory;
@@ -97,6 +102,7 @@
         mSettingsPanelActivity.getResources().getConfiguration().uiMode = mOriginalUiMode;
     }
 
+    @Ignore("b/313576125")
     @Test
     public void onStart_isNotDebuggable_shouldHideSystemOverlay() {
         ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
@@ -113,6 +119,7 @@
         verify(window).addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
     }
 
+    @Ignore("b/313576125")
     @Test
     public void onStop_isNotDebuggable_shouldRemoveHideSystemOverlay() {
         ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
@@ -140,6 +147,7 @@
                 & SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS).isEqualTo(0);
     }
 
+    @Ignore("b/313576125")
     @Test
     public void onStop_panelIsNotCreating_shouldForceUpdate() {
         mSettingsPanelActivity.mForceCreation = false;
@@ -151,6 +159,7 @@
         assertThat(mSettingsPanelActivity.mForceCreation).isTrue();
     }
 
+    @Ignore("b/313576125")
     @Test
     public void onStop_panelIsCreating_shouldNotForceUpdate() {
         mSettingsPanelActivity.mForceCreation = false;
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/password/ChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
index 5db998a..e7e0b92 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -28,6 +28,8 @@
 import static com.android.internal.widget.LockPatternUtils.CREDENTIAL_TYPE_NONE;
 import static com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment.KEY_LOCK_SETTINGS_FOOTER;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CALLER_APP_NAME;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_DEVICE_PASSWORD_REQUIREMENT_ONLY;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS;
 import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE;
@@ -52,6 +54,7 @@
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.Bundle;
 import android.provider.Settings.Global;
+import android.widget.TextView;
 
 import androidx.annotation.Nullable;
 import androidx.preference.Preference;
@@ -66,6 +69,7 @@
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowPersistentDataBlockManager;
 import com.android.settings.testutils.shadow.ShadowStorageManager;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
@@ -85,7 +89,6 @@
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowPersistentDataBlockManager;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(
@@ -302,6 +305,16 @@
     }
 
     @Test
+    public void onActivityResult_requestcode102_resultCancel_shouldFinish() {
+        initActivity(null);
+
+        mFragment.onActivityResult(ChooseLockGenericFragment.CHOOSE_LOCK_REQUEST,
+                Activity.RESULT_CANCELED, null /* data */);
+
+        assertThat(mActivity.isFinishing()).isTrue();
+    }
+
+    @Test
     public void onActivityResult_requestcode103_shouldFinish() {
         initActivity(null);
 
@@ -380,6 +393,47 @@
     }
 
     @Test
+    public void onSetNewPassword_withTitleAndDescription_displaysPassedTitleAndDescription() {
+        Intent intent =
+                new Intent(ACTION_SET_NEW_PASSWORD)
+                        .putExtra(
+                                EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
+                                R.string.private_space_lock_setup_title)
+                        .putExtra(
+                                EXTRA_KEY_CHOOSE_LOCK_SCREEN_DESCRIPTION,
+                                R.string.private_space_lock_setup_description);
+        initActivity(intent);
+
+        CharSequence expectedTitle = mActivity.getString(R.string.private_space_lock_setup_title);
+        CharSequence expectedDescription =
+                mActivity.getString(R.string.private_space_lock_setup_description);
+        assertThat(mActivity.getTitle().toString().contentEquals(expectedTitle)).isTrue();
+        TextView textView =
+                mFragment.getHeaderView().findViewById(R.id.biometric_header_description);
+        assertThat(textView.getText().toString().contentEquals(expectedDescription)).isTrue();
+    }
+
+    @Test
+    public void onSetNewPassword_withLockScreenTitle_titlePassedOntoNextActivity() {
+        Intent intent =
+                new Intent(ACTION_SET_NEW_PASSWORD)
+                        .putExtra(
+                                EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE,
+                                R.string.private_space_lock_setup_title);
+        initActivity(intent);
+
+        Preference facePref = new Preference(application);
+        facePref.setKey("unlock_skip_biometrics");
+        boolean result = mFragment.onPreferenceTreeClick(facePref);
+
+        assertThat(result).isTrue();
+        Intent actualIntent = shadowOf(mActivity).getNextStartedActivityForResult().intent;
+        assertThat(actualIntent.hasExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE)).isTrue();
+        assertThat(actualIntent.getIntExtra(EXTRA_KEY_CHOOSE_LOCK_SCREEN_TITLE, -1))
+                .isEqualTo(R.string.private_space_lock_setup_title);
+    }
+
+    @Test
     public void testUnifyProfile_IntentPassedToChooseLockPassword() {
         final Bundle arguments = new Bundle();
         arguments.putInt(ChooseLockSettingsHelper.EXTRA_KEY_UNIFICATION_PROFILE_ID, 11);
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
index feea768..dea936d 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
@@ -178,6 +178,24 @@
     }
 
     @Test
+    public void processAndValidatePasswordRequirements_cannotIncludeInvalidChar() {
+        PasswordPolicy policy = new PasswordPolicy();
+        policy.quality = PASSWORD_QUALITY_UNSPECIFIED;
+        // Only ASCII 31–127 should be allowed.  The invalid character error should also take
+        // priority over the error that says the password is too short.
+        String[] passwords = new String[] { "§µ¿¶¥£", "™™™™", "\n\n\n\n", "¡", "é" };
+
+        for (String password : passwords) {
+            assertPasswordValidationResult(
+                    /* minMetrics */ policy.getMinMetrics(),
+                    /* minComplexity= */ PASSWORD_COMPLEXITY_NONE,
+                    /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC,
+                    /* userEnteredPassword= */ LockscreenCredential.createPassword(password),
+                    "This can't include an invalid character");
+        }
+    }
+
+    @Test
     public void processAndValidatePasswordRequirements_noMinPasswordComplexity() {
         PasswordPolicy policy = new PasswordPolicy();
         policy.quality = PASSWORD_QUALITY_ALPHABETIC;
@@ -187,7 +205,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_NONE,
                 /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPassword(""),
                 "Must contain at least 1 non-numerical character",
                 "Must be at least 10 characters");
     }
@@ -201,7 +219,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_HIGH,
                 /* passwordType= */ PASSWORD_QUALITY_NUMERIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPin(""),
                 "PIN must be at least 8 digits");
     }
 
@@ -214,7 +232,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_MEDIUM,
                 /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPassword(""),
                 "Must be at least 4 characters");
     }
 
@@ -228,7 +246,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_LOW,
                 /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPassword(""),
                 "Must contain at least 1 non-numerical character",
                 "Must contain at least 1 numerical digit",
                 "Must be at least 9 characters");
@@ -244,7 +262,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_MEDIUM,
                 /* passwordType= */ PASSWORD_QUALITY_NUMERIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPin(""),
                 "PIN must be at least 11 digits");
     }
 
@@ -258,7 +276,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_HIGH,
                 /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPassword(""),
                 "Must contain at least 2 special symbols",
                 "Must be at least 6 characters",
                 "Must contain at least 1 letter",
@@ -344,7 +362,7 @@
                 /* minMetrics */ policy.getMinMetrics(),
                 /* minComplexity= */ PASSWORD_COMPLEXITY_HIGH,
                 /* passwordType= */ PASSWORD_QUALITY_ALPHABETIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPassword(""),
                 "Must be at least 6 characters",
                 "If using only numbers, must be at least 8 digits");
     }
@@ -424,7 +442,7 @@
                 /* minMetrics */ null,
                 /* minComplexity= */ PASSWORD_COMPLEXITY_HIGH,
                 /* passwordType= */ PASSWORD_QUALITY_NUMERIC,
-                /* userEnteredPassword= */ LockscreenCredential.createNone(),
+                /* userEnteredPassword= */ LockscreenCredential.createPin(""),
                 "PIN must be at least 8 digits");
     }
 
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
index 301a6db..7715c62 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
@@ -39,14 +39,12 @@
 
 import com.google.android.setupdesign.GlifLayout;
 
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowUtils.class)
 public class ChooseLockPatternTest {
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
index de55435..fcab797 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
@@ -24,7 +24,6 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
 import com.google.android.setupdesign.util.ThemeHelper;
@@ -44,8 +43,7 @@
 
     @Test
     public void testLaunchConfirmationActivityWithExternal() {
-        final Activity activity  = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        final Activity activity = Robolectric.setupActivity(Activity.class);
 
         ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(activity);
         builder.setRequestCode(100)
@@ -130,8 +128,7 @@
 
     @Test
     public void launchConfirmPattern_ForceVerify_shouldLaunchInternalActivity() {
-        final Activity activity  = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        final Activity activity = Robolectric.setupActivity(Activity.class);
 
         ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(activity);
         builder.setRequestCode(100)
@@ -151,8 +148,7 @@
 
     @Test
     public void launchConfirmPassword_ForceVerify_shouldLaunchInternalActivity() {
-        final Activity activity  = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        final Activity activity = Robolectric.setupActivity(Activity.class);
 
         ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(activity);
         builder.setRequestCode(100)
@@ -172,8 +168,7 @@
 
     @Test
     public void launchConfirmPassword_remoteValidation_passwordLockType() throws Exception {
-        final Activity activity  = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        Activity activity = Robolectric.setupActivity(Activity.class);
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
         RemoteLockscreenValidationSession request = createRemoteLockscreenValidationSession(
                 KeyguardManager.PASSWORD, VALID_REMAINING_ATTEMPTS);
@@ -202,9 +197,7 @@
 
     @Test
     public void launchConfirmPassword_remoteValidation_pinLockType() throws Exception {
-        Activity activity  = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
-
+        Activity activity = Robolectric.setupActivity(Activity.class);
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
         RemoteLockscreenValidationSession request = createRemoteLockscreenValidationSession(
                 KeyguardManager.PIN, VALID_REMAINING_ATTEMPTS);
@@ -233,8 +226,7 @@
 
     @Test
     public void launchConfirmPattern_remoteValidation_patternLockType() throws Exception {
-        Activity activity  = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        Activity activity = Robolectric.setupActivity(Activity.class);
         ShadowActivity shadowActivity = Shadows.shadowOf(activity);
         RemoteLockscreenValidationSession request = createRemoteLockscreenValidationSession(
                 KeyguardManager.PATTERN, VALID_REMAINING_ATTEMPTS);
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
index 9e8644f..a7c71ad 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
@@ -41,9 +41,11 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowAlertDialogCompat.class, ShadowLockPatternUtils.class})
 public class ChooseLockTypeDialogFragmentTest {
 
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java b/tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java
index 299b1eb..92b2b62 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java
@@ -47,6 +47,7 @@
 import com.android.settings.testutils.shadow.ShadowUtils;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -128,6 +129,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onCreate_remoteValidation_invalidServiceComponentName_finishActivity()
             throws Exception {
         Intent intentWithInvalidComponentName = new Intent()
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
index 2be8aba..4ac375f 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmLockPasswordTest.java
@@ -162,7 +162,6 @@
                 InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
     }
 
-    @Ignore
     @Test
     public void handleNext_normalFlow_doesNotAttemptRemoteLockscreenValidation() {
         ConfirmLockPassword activity = Robolectric.buildActivity(
@@ -177,8 +176,8 @@
         verifyNoInteractions(mRemoteLockscreenValidationClient);
     }
 
-    @Ignore
     @Test
+    @Ignore("b/295325503")
     public void handleNext_remoteValidation_correctGuess_checkboxChecked() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -204,6 +203,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void handleNext_remoteValidation_correctGuess_checkboxUnchecked() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -230,6 +230,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void handleNext_remoteValidation_guessInvalid() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -254,6 +255,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void handleNext_remoteValidation_lockout() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -278,6 +280,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void handleNext_remoteValidation_noRemainingAttempts_finishActivity() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
diff --git a/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
index 68bee68..04a76b8 100644
--- a/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmLockPatternTest.java
@@ -55,7 +55,6 @@
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.After;
 import org.junit.Before;
@@ -145,9 +144,8 @@
 
     @Test
     public void onPatternDetected_normalFlow_doesNotAttemptRemoteLockscreenValidation() {
-        ConfirmLockPattern activity  = (ConfirmLockPattern) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(ConfirmLockPattern.class, new Intent())).get();
-
+        ConfirmLockPattern activity = Robolectric.buildActivity(
+                ConfirmLockPattern.class, new Intent()).setup().get();
         ConfirmDeviceCredentialBaseFragment fragment =
                 getConfirmDeviceCredentialBaseFragment(activity);
         LockPatternView lockPatternView = activity.findViewById(R.id.lockPattern);
@@ -158,8 +156,8 @@
         verifyNoInteractions(mRemoteLockscreenValidationClient);
     }
 
-    @Ignore
     @Test
+    @Ignore("b/295325503")
     public void onPatternDetected_remoteValidation_guessValid_checkboxChecked() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -185,6 +183,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onPatternDetected_remoteValidation_guessValid_checkboxUnchecked() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -211,6 +210,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onPatternDetected_remoteValidation_guessInvalid() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -235,6 +235,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onPatternDetected_remoteValidation_lockout() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
@@ -259,6 +260,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void onPatternDetected_noRemainingAttempts_finishActivity() throws Exception {
         ConfirmDeviceCredentialBaseActivity activity =
                 buildConfirmDeviceCredentialBaseActivity(
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
index af44d39..5e429d9 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
@@ -50,6 +50,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -90,6 +91,7 @@
     }
 
     @Test
+    @Ignore("b/295325503")
     public void testChooseLockGeneric() {
         Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
                 Settings.Global.DEVICE_PROVISIONED, 1);
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
index b04a718..c23ce9b 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
@@ -44,7 +44,6 @@
 import com.android.settings.testutils.shadow.ShadowPasswordUtils;
 import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupdesign.GlifPreferenceLayout;
 
@@ -58,9 +57,8 @@
 import org.mockito.junit.MockitoRule;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
+import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowActivity;
 
 import java.util.List;
 
@@ -107,8 +105,7 @@
         SetupChooseLockGeneric activity =
                 Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).create().get();
 
-        ShadowActivity shadowActivity = Shadows.shadowOf(activity);
-        assertThat(shadowActivity.isFinishing()).isTrue();
+        assertThat(activity.isFinishing()).isTrue();
     }
 
     @Test
@@ -122,8 +119,7 @@
         SetupChooseLockGeneric activity =
                 Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).create().get();
 
-        ShadowActivity shadowActivity = Shadows.shadowOf(activity);
-        assertThat(shadowActivity.isFinishing()).isFalse();
+        assertThat(activity.isFinishing()).isFalse();
     }
 
     @Test
@@ -206,8 +202,8 @@
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FACE, forFace);
         intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_BIOMETRICS, forBiometric);
 
-        SetupChooseLockGeneric activity = (SetupChooseLockGeneric) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(SetupChooseLockGeneric.class, intent)).get();
+        SetupChooseLockGeneric activity = ActivityController.of(
+                new SetupChooseLockGeneric(), intent).setup().get();
 
         List<Fragment> fragments = activity.getSupportFragmentManager().getFragments();
         assertThat(fragments).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
index 8bccf1a..e207d24 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
@@ -40,7 +40,6 @@
 import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settings.widget.ScrollToParentEditText;
 
 import com.google.android.setupcompat.PartnerCustomizationLayout;
@@ -48,15 +47,16 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.Shadows;
 import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowActivity;
 import org.robolectric.shadows.ShadowDialog;
 import org.robolectric.shadows.ShadowInputMethodManager;
@@ -65,6 +65,7 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(
         shadows = {
                 SettingsShadowResources.class,
@@ -94,8 +95,7 @@
                         application,
                         new IntentBuilder(application).build());
 
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(SetupChooseLockPassword.class, intent)).get();
+        ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
     }
 
     @Test
@@ -111,7 +111,7 @@
     public void createActivity_withShowOptionsButtonExtra_shouldShowButtonUnderSudHeader() {
         SetupChooseLockPassword activity = createSetupChooseLockPassword();
         final LinearLayout headerLayout = activity.findViewById(
-                R.id.sud_layout_header);
+                com.google.android.setupdesign.R.id.sud_layout_header);
         assertThat(headerLayout).isNotNull();
 
         final Button optionsButton = headerLayout.findViewById(R.id.screen_lock_options);
@@ -123,6 +123,7 @@
 
     @Test
     @Config(shadows = ShadowChooseLockGenericController.class)
+    @Ignore("b/295325503")
     public void createActivity_withShowOptionsButtonExtra_buttonNotVisibleIfNoVisibleLockTypes() {
         SetupChooseLockPassword activity = createSetupChooseLockPassword();
         Button optionsButton = activity.findViewById(R.id.screen_lock_options);
@@ -216,8 +217,7 @@
                         application,
                         new IntentBuilder(application).build());
         intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
-        return (SetupChooseLockPassword) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(SetupChooseLockPassword.class, intent)).get();
+        return ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
     }
 
     @Implements(ChooseLockGenericController.class)
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
index c5e0813..ce47a9e 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
@@ -45,7 +45,6 @@
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import com.google.android.setupcompat.PartnerCustomizationLayout;
 import com.google.android.setupcompat.template.FooterBarMixin;
@@ -55,10 +54,11 @@
 import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.Shadows;
+import org.robolectric.android.controller.ActivityController;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadows.ShadowPackageManager;
 import org.robolectric.util.ReflectionHelpers;
 import org.robolectric.util.ReflectionHelpers.ClassParameter;
@@ -66,6 +66,7 @@
 import java.util.Arrays;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowUtils.class, ShadowAlertDialogCompat.class, ShadowLockPatternUtils.class})
 public class SetupChooseLockPatternTest {
 
@@ -84,9 +85,7 @@
                         new IntentBuilder(application)
                                 .setUserId(UserHandle.myUserId())
                                 .build());
-
-        mActivity = (SetupChooseLockPattern) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(SetupChooseLockPattern.class, intent)).get();
+        mActivity = ActivityController.of(new SetupChooseLockPattern(), intent).setup().get();
     }
 
     @Test
@@ -100,8 +99,8 @@
         assertThat(componentEnabled).isEqualTo(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
     }
 
-    @Ignore
     @Test
+    @Ignore("b/295325503")
     public void optionsButton_whenPatternSelected_shouldBeVisible() {
         final Button button = mActivity.findViewById(R.id.screen_lock_options);
         assertThat(button).isNotNull();
@@ -126,16 +125,16 @@
         assertWithMessage("List items shown").that(count).isEqualTo(3);
     }
 
-    @Ignore
     @Config(qualifiers = "sw400dp")
     @Test
+    @Ignore("b/295325503")
     public void sw400dp_shouldShowScreenLockOptions() {
         verifyScreenLockOptionsShown();
     }
 
-    @Ignore
     @Config(qualifiers = "sw400dp-land")
     @Test
+    @Ignore("b/295325503")
     public void sw400dpLandscape_shouldShowScreenLockOptions() {
         verifyScreenLockOptionsShown();
     }
@@ -148,18 +147,20 @@
 
     @Config(qualifiers = "sw300dp")
     @Test
+    @Ignore("b/295325503")
     public void smallScreens_shouldHideScreenLockOptions() {
         verifyScreenLockOptionsHidden();
     }
 
     @Config(qualifiers = "sw300dp-land")
     @Test
+    @Ignore("b/295325503")
     public void smallScreensLandscape_shouldHideScreenLockOptions() {
         verifyScreenLockOptionsHidden();
     }
 
-    @Ignore
     @Test
+    @Ignore("b/295325503")
     public void skipButton_shouldBeVisible_duringNonFingerprintFlow() {
         final PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
         final Button skipOrClearButton =
@@ -220,6 +221,14 @@
     }
 
     @Test
+    public void createActivity_patternTitle_shouldShowGenericText() {
+        final CharSequence headerView = mActivity.getTitle();
+
+        assertThat(headerView).isEqualTo(
+                application.getString(R.string.lockpassword_choose_your_pattern_header));
+    }
+
+    @Test
     public void inIntroductionStage_theHeaderHeight_shouldSetMinLinesTwoToPreventFlicker() {
         final PartnerCustomizationLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
         final TextView headerView = layout.findViewById(R.id.sud_layout_subtitle);
@@ -262,7 +271,7 @@
         final TextView headerView = layout.findViewById(R.id.sud_layout_subtitle);
         final TypedValue typedValue = new TypedValue();
         final Resources.Theme theme = mActivity.getTheme();
-        theme.resolveAttribute(R.attr.colorError, typedValue, true);
+        theme.resolveAttribute(androidx.appcompat.R.attr.colorError, typedValue, true);
         final int errorColor = typedValue.data;
 
         enterShortPattern();
diff --git a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
index 813efe9..53a80dc 100644
--- a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
@@ -35,7 +35,6 @@
 import com.android.settings.biometrics.BiometricUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -47,11 +46,13 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAlertDialog;
 import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 @Config(shadows = {ShadowUtils.class, ShadowAlertDialog.class})
 public class SetupSkipDialogTest {
 
@@ -69,8 +70,7 @@
         ShadowUtils.setFingerprintManager(mFingerprintManager);
         ShadowUtils.setFaceManager(mFaceManager);
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
 
         when(mFakeFeatureFactory.mFaceFeatureProvider.isSetupWizardSupported(any())).thenReturn(
                 true);
diff --git a/tests/robotests/src/com/android/settings/password/TestUtils.java b/tests/robotests/src/com/android/settings/password/TestUtils.java
index fa6a11d..ef08f05 100644
--- a/tests/robotests/src/com/android/settings/password/TestUtils.java
+++ b/tests/robotests/src/com/android/settings/password/TestUtils.java
@@ -27,7 +27,6 @@
 
 import com.android.security.SecureBox;
 import com.android.settings.R;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.robolectric.Robolectric;
 
@@ -96,11 +95,7 @@
 
     public static ConfirmDeviceCredentialBaseActivity buildConfirmDeviceCredentialBaseActivity(
             Class<? extends ConfirmDeviceCredentialBaseActivity> impl, Intent intent) {
-
-        return (ConfirmDeviceCredentialBaseActivity) ActivityControllerWrapper.setup(
-                    Robolectric.buildActivity(impl, intent)).get();
-
-        //return Robolectric.buildActivity(impl, intent).setup().get();
+        return Robolectric.buildActivity(impl, intent).setup().get();
     }
 
     public static ConfirmDeviceCredentialBaseFragment getConfirmDeviceCredentialBaseFragment(
diff --git a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
index a983228..b9c80b0 100644
--- a/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/privacy/WorkPolicyInfoPreferenceControllerTest.java
@@ -53,7 +53,7 @@
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
-        mEnterpriseProvider = mFakeFeatureFactory.getEnterprisePrivacyFeatureProvider(mContext);
+        mEnterpriseProvider = mFakeFeatureFactory.getEnterprisePrivacyFeatureProvider();
         SafetyCenterManagerWrapper.sInstance = mock(SafetyCenterManagerWrapper.class);
     }
 
diff --git a/tests/robotests/src/com/android/settings/remoteauth/OWNERS b/tests/robotests/src/com/android/settings/remoteauth/OWNERS
new file mode 100644
index 0000000..ed486d7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/remoteauth/OWNERS
@@ -0,0 +1 @@
+include /src/com/android/settings/remoteauth/OWNERS
diff --git a/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt b/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt
new file mode 100644
index 0000000..3d42f23
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt
@@ -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.remoteauth.enrolling
+
+import android.os.Bundle
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.*
+import com.android.settings.R
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class RemoteAuthEnrollEnrollingTest {
+    @Before
+    fun setup() {
+        launchFragmentInContainer<RemoteAuthEnrollEnrolling>(Bundle(), R.style.SudThemeGlif)
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollEnrolling_headerVisible() {
+        onView(withText(R.string.security_settings_remoteauth_enroll_enrolling_title)).check(
+            matches(
+                withEffectiveVisibility(Visibility.VISIBLE)
+            )
+        )
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollEnrolling_primaryButtonDisabled() {
+        onView(withText(R.string.security_settings_remoteauth_enroll_enrolling_agree)).check(
+            matches(
+                isNotEnabled()
+            )
+        )
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollEnrolling_progressBarNotVisible() {
+        onView(withId(R.id.enrolling_list_progress_bar)).check(
+            matches(
+                withEffectiveVisibility(
+                    Visibility.INVISIBLE
+                )
+            )
+        )
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollEnrolling_errorTextNotVisible() {
+        onView(withId(R.id.error_text)).check(matches(withEffectiveVisibility(Visibility.INVISIBLE)))
+    }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt b/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
new file mode 100644
index 0000000..46ff19c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.remoteauth.finish
+
+import android.os.Bundle
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.*
+import com.android.settings.R
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class RemoteAuthEnrollFinishTest {
+
+    @Before
+    fun setup() {
+        launchFragmentInContainer<RemoteAuthEnrollFinish>(Bundle(), R.style.SudThemeGlif)
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollFinish_headerVisible() {
+        onView(withText(R.string.security_settings_remoteauth_enroll_finish_title)).check(
+            matches(
+                withEffectiveVisibility(Visibility.VISIBLE)
+            )
+        )
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollFinish_descriptionVisible() {
+        onView(withText(R.string.security_settings_remoteauth_enroll_finish_description)).check(
+            matches(
+                withEffectiveVisibility(Visibility.VISIBLE)
+            )
+        )
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/remoteauth/introduction/RemoteAuthEnrollIntroductionTest.kt b/tests/robotests/src/com/android/settings/remoteauth/introduction/RemoteAuthEnrollIntroductionTest.kt
new file mode 100644
index 0000000..6855e9f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/remoteauth/introduction/RemoteAuthEnrollIntroductionTest.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.remoteauth.introduction
+
+import android.os.Bundle
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.*
+import com.android.settings.R
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class RemoteAuthEnrollIntroductionTest {
+    @Before
+    fun setUp() {
+        launchFragmentInContainer<RemoteAuthEnrollIntroduction>(Bundle(), R.style.SudThemeGlif)
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollIntroduction_hasHeader() {
+        onView(withText(R.string.security_settings_remoteauth_enroll_introduction_title)).check(
+            matches(
+                isDisplayed()
+            )
+        )
+    }
+
+    @Test
+    fun testRemoteAuthenticatorEnrollIntroduction_hasDescription() {
+        onView(withText(R.string.security_settings_remoteauth_enroll_introduction_message)).check(
+            matches(
+                isDisplayed()
+            )
+        )
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.kt b/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.kt
new file mode 100644
index 0000000..9b16813
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.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.remoteauth.settings
+
+import android.os.Bundle
+import androidx.fragment.app.testing.launchFragmentInContainer
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.*
+import com.android.settings.R
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+
+@RunWith(RobolectricTestRunner::class)
+class RemoteAuthSettingsTest {
+    @Before
+    fun setUp() {
+        launchFragmentInContainer<RemoteAuthSettings>(Bundle(), R.style.SudThemeGlif)
+    }
+
+    @Test
+    fun testRemoteAuthenticatorSettings_headerVisible() {
+        onView(withText(R.string.security_settings_remoteauth_settings_title)).check(
+            matches(
+                withEffectiveVisibility(Visibility.VISIBLE)
+            )
+        )
+    }
+
+    @Test
+    fun testRemoteAuthenticatorSettings_descriptionVisible() {
+        onView(withText(R.string.security_settings_remoteauth_settings_description)).check(
+            matches(
+                withEffectiveVisibility(Visibility.VISIBLE)
+            )
+        )
+    }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
index 8b8fad0..09b1ea9 100644
--- a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
@@ -31,7 +31,6 @@
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -96,7 +95,6 @@
         assertThat(mIndexProvider.getNonIndexableKeys(mContext)).isEqualTo(Collections.EMPTY_LIST);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getAllPreferenceControllers_shouldCreateControllerFromCodeAndXml() {
@@ -180,7 +178,6 @@
         assertThat(nonIndexableKeys).contains("status_header");
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getNonIndexableKeys_hasSearchableAttributeInXml_shouldSuppressUnsearchable() {
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index 0aa49eb..f349600 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -33,7 +33,6 @@
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Ignore;
@@ -55,11 +54,7 @@
     @Before
     public void setUp() {
         FakeFeatureFactory.setupForTest();
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
-
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mProvider = new SearchFeatureProviderImpl();
         mPackageManager = Shadows.shadowOf(mActivity.getPackageManager());
         Settings.Global.putInt(mActivity.getContentResolver(),
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
index 893b56e..e408cd0 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexableResourcesTest.java
@@ -28,9 +28,9 @@
 import android.database.Cursor;
 import android.text.TextUtils;
 
+import com.android.settings.network.NetworkProviderSettings;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.FakeIndexProvider;
-import com.android.settings.wifi.WifiSettings;
 import com.android.settingslib.search.SearchIndexableData;
 
 import org.junit.After;
@@ -77,16 +77,16 @@
     }
 
     @Test
-    public void testIndexHasWifiSettings() {
-        boolean hasWifi = false;
+    public void testIndexHasNetworkProviderSettings() {
+        boolean hasNetworkProvider = false;
         for (SearchIndexableData bundle :
                 mSearchProvider.getSearchIndexableResources().getProviderValues()) {
-            if (bundle.getTargetClass().getName().equals(WifiSettings.class.getName())) {
-                hasWifi = true;
+            if (bundle.getTargetClass().getName().equals(NetworkProviderSettings.class.getName())) {
+                hasNetworkProvider = true;
                 break;
             }
         }
-        assertThat(hasWifi).isTrue();
+        assertThat(hasNetworkProvider).isTrue();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
index bee2d99..5de64b5 100644
--- a/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/SettingsSearchIndexablesProviderTest.java
@@ -31,7 +31,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -132,7 +131,6 @@
         assertThat(cursor.getString(6)).isNull();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testNonIndexablesColumnFetched() {
diff --git a/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java b/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
index 2a7bd29..aecb3e7 100644
--- a/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
+++ b/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
@@ -33,7 +33,6 @@
 
 import androidx.fragment.app.FragmentActivity;
 
-import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.testutils.shadow.ShadowUtils;
 
@@ -49,7 +48,10 @@
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {
+        ShadowUtils.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class SearchMenuControllerTest {
 
     @Mock
@@ -71,7 +73,8 @@
         Global.putInt(mActivity.getContentResolver(), Global.DEVICE_PROVISIONED, 1);
 
         when(mHost.getActivity()).thenReturn(mActivity);
-        when(mMenu.add(Menu.NONE, MENU_SEARCH, 0 /* order */, R.string.search_menu))
+        when(mMenu.add(Menu.NONE, MENU_SEARCH, 0 /* order */,
+                com.android.settingslib.search.widget.R.string.search_menu))
                 .thenReturn(mock(MenuItem.class));
     }
 
@@ -80,7 +83,8 @@
         SearchMenuController.init(mHost);
         mHost.getSettingsLifecycle().onCreateOptionsMenu(mMenu, null /* inflater */);
 
-        verify(mMenu).add(Menu.NONE, MENU_SEARCH, 0 /* order */, R.string.search_menu);
+        verify(mMenu).add(Menu.NONE, MENU_SEARCH, 0 /* order */,
+                com.android.settingslib.search.widget.R.string.search_menu);
     }
 
     @Test
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..50e9a5c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ContentProtectionTogglePreferenceControllerTest.java
@@ -0,0 +1,212 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.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.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 com.android.settingslib.RestrictedLockUtils;
+
+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 mMockScreen;
+
+    private RestrictedLockUtils.EnforcedAdmin mAdmin;
+    private SettingsMainSwitchPreference mSwitchPreference;
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private ContentProtectionTogglePreferenceController mController;
+    private int mSettingBackupValue;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new TestContentProtectionTogglePreferenceController();
+        mSwitchPreference = new SettingsMainSwitchPreference(mContext);
+        when(mMockScreen.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);
+        ShadowUtils.reset();
+    }
+
+    @Test
+    public void isAvailable_alwaysAvailable() {
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void displayPreference() {
+        setUpFullyManagedMode();
+        SettingsMainSwitchPreference mockSwitchPreference =
+                mock(SettingsMainSwitchPreference.class);
+        when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController = new TestContentProtectionTogglePreferenceController();
+        mController.displayPreference(mMockScreen);
+
+        assertThat(mockSwitchPreference).isNotNull();
+    }
+
+    @Test
+    public void updateState_notFullyManagedMode_enabled() {
+        SettingsMainSwitchPreference mockSwitchPreference =
+                mock(SettingsMainSwitchPreference.class);
+        when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController = new TestContentProtectionTogglePreferenceController();
+        mController.displayPreference(mMockScreen);
+        mController.updateState(mockSwitchPreference);
+
+        verify(mockSwitchPreference, never()).setDisabledByAdmin(any());
+    }
+
+    @Test
+    public void updateState_fullyManagedMode_disabled() {
+        setUpFullyManagedMode();
+        SettingsMainSwitchPreference mockSwitchPreference =
+                mock(SettingsMainSwitchPreference.class);
+        when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController = new TestContentProtectionTogglePreferenceController();
+        mController.displayPreference(mMockScreen);
+        mController.updateState(mockSwitchPreference);
+
+        verify(mockSwitchPreference).setDisabledByAdmin(mAdmin);
+    }
+
+    @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() {
+        setUpFullyManagedMode();
+        Settings.Global.putInt(mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 1);
+        SettingsMainSwitchPreference mockSwitchPreference =
+                mock(SettingsMainSwitchPreference.class);
+        when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
+        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController = new TestContentProtectionTogglePreferenceController();
+        mController.displayPreference(mMockScreen);
+        mController.updateState(mockSwitchPreference);
+
+        assertThat(mController.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.setChecked(false);
+
+        mController.onCheckedChanged(/* switchView= */ null, /* isChecked= */ true);
+
+        assertThat(getContentProtectionGlobalSetting()).isEqualTo(1);
+    }
+
+    @Test
+    public void onSwitchChanged_switchUnchecked_manuallyDisabled() {
+        mController.onCheckedChanged(/* switchView= */ null, /* isChecked= */ false);
+
+        assertThat(getContentProtectionGlobalSetting()).isEqualTo(-1);
+    }
+
+    private int getContentProtectionGlobalSetting() {
+        return Settings.Global.getInt(
+                mContext.getContentResolver(), KEY_CONTENT_PROTECTION_PREFERENCE, 0);
+    }
+
+    private void setUpFullyManagedMode() {
+        mAdmin = new RestrictedLockUtils.EnforcedAdmin();
+    }
+
+    private class TestContentProtectionTogglePreferenceController
+            extends ContentProtectionTogglePreferenceController {
+
+        TestContentProtectionTogglePreferenceController() {
+            super(ContentProtectionTogglePreferenceControllerTest.this.mContext, "key");
+        }
+
+        @Override
+        protected RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() {
+            return mAdmin;
+        }
+    }
+}
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/EncryptionStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
index 67798aa..410198b 100644
--- a/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/EncryptionStatusPreferenceControllerTest.java
@@ -32,7 +32,6 @@
 import com.android.settings.testutils.shadow.ShadowUserManager;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -57,7 +56,6 @@
         mPreference = new Preference(mContext);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_notVisible_false() {
diff --git a/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/MemtagPreferenceControllerTest.java
index 521a939..cca88dd 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;
@@ -42,11 +40,10 @@
 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;
 
-@Ignore
+@Ignore("b/313564061")
 @RunWith(RobolectricTestRunner.class)
 @Config(
         shadows = {
@@ -59,8 +56,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;
@@ -72,17 +69,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
@@ -157,18 +155,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/OwnerInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
index bcf9858..81f4fce 100644
--- a/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
@@ -49,9 +49,13 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class OwnerInfoPreferenceControllerTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java
index 546545c..4f694bc 100644
--- a/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/ScreenPinningPreferenceControllerTest.java
@@ -28,7 +28,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -63,7 +62,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/security/ScreenPinningSettingsTest.java b/tests/robotests/src/com/android/settings/security/ScreenPinningSettingsTest.java
new file mode 100644
index 0000000..045ef65
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/security/ScreenPinningSettingsTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.security;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.os.UserHandle;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settingslib.search.SearchIndexableRaw;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowLockPatternUtils.class)
+public class ScreenPinningSettingsTest {
+
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+    }
+
+    @After
+    public void tearDown() {
+        ShadowLockPatternUtils.reset();
+    }
+
+    @Test
+    public void getDynamicRawDataToIndex_numericPassword_shouldIndexUnlockPinTitle() {
+        ShadowLockPatternUtils.setKeyguardStoredPasswordQuality(
+                DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+
+        final List<SearchIndexableRaw> indexRaws =
+                ScreenPinningSettings.SEARCH_INDEX_DATA_PROVIDER.getDynamicRawDataToIndex(
+                        mContext, /* enabled= */ true);
+
+        assertThat(indexRaws.size()).isEqualTo(1);
+        assertThat(indexRaws.get(0).title).isEqualTo(
+                mContext.getString(R.string.screen_pinning_unlock_pin));
+    }
+
+    @Test
+    public void getDynamicRawDataToIndex_alphabeticPassword_shouldIndexUnlockPasswordTitle() {
+        ShadowLockPatternUtils.setKeyguardStoredPasswordQuality(
+                DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC);
+
+        final List<SearchIndexableRaw> indexRaws =
+                ScreenPinningSettings.SEARCH_INDEX_DATA_PROVIDER.getDynamicRawDataToIndex(
+                        mContext, /* enabled= */ true);
+
+        assertThat(indexRaws.size()).isEqualTo(1);
+        assertThat(indexRaws.get(0).title).isEqualTo(
+                mContext.getString(R.string.screen_pinning_unlock_password));
+    }
+
+    @Test
+    public void getDynamicRawDataToIndex_patternPassword_shouldIndexUnlockPatternTitle() {
+        ShadowLockPatternUtils.setKeyguardStoredPasswordQuality(
+                DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        ShadowLockPatternUtils.setIsLockPatternEnabled(
+                UserHandle.myUserId(), /* isLockPatternEnabled= */ true);
+
+        final List<SearchIndexableRaw> indexRaws =
+                ScreenPinningSettings.SEARCH_INDEX_DATA_PROVIDER.getDynamicRawDataToIndex(
+                        mContext, /* enabled= */ true);
+
+        assertThat(indexRaws.size()).isEqualTo(1);
+        assertThat(indexRaws.get(0).title).isEqualTo(
+                mContext.getString(R.string.screen_pinning_unlock_pattern));
+    }
+
+    @Test
+    public void getDynamicRawDataToIndex_nonePassword_shouldIndexUnlockNoneTitle() {
+        ShadowLockPatternUtils.setKeyguardStoredPasswordQuality(
+                DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED);
+
+        final List<SearchIndexableRaw> indexRaws =
+                ScreenPinningSettings.SEARCH_INDEX_DATA_PROVIDER.getDynamicRawDataToIndex(
+                        mContext, /* enabled= */ true);
+
+        assertThat(indexRaws.size()).isEqualTo(1);
+        assertThat(indexRaws.get(0).title).isEqualTo(
+                mContext.getString(R.string.screen_pinning_unlock_none));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java
index 95e8353..206dee1 100644
--- a/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/ShowPasswordPreferenceControllerTest.java
@@ -18,22 +18,16 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.ContentResolver;
 import android.content.Context;
-import android.os.UserHandle;
 import android.provider.Settings;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.testutils.FakeFeatureFactory;
-
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -46,11 +40,8 @@
 public class ShowPasswordPreferenceControllerTest {
 
     @Mock
-    private LockPatternUtils mLockPatternUtils;
-    @Mock
     private PreferenceScreen mScreen;
 
-    private FakeFeatureFactory mFeatureFactory;
     private Context mContext;
     private ShowPasswordPreferenceController mController;
     private Preference mPreference;
@@ -59,9 +50,6 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        when(mFeatureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
-                .thenReturn(mLockPatternUtils);
         mController = new ShowPasswordPreferenceController(mContext);
         mPreference = new Preference(mContext);
         mPreference.setKey(mController.getPreferenceKey());
@@ -73,7 +61,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
@@ -100,7 +87,6 @@
         mController.onPreferenceChange(mPreference, true);
 
         assertThat(mController.isChecked()).isTrue();
-        verify(mLockPatternUtils).setVisiblePasswordEnabled(true, UserHandle.myUserId());
     }
 
     @Test
@@ -108,6 +94,5 @@
         mController.onPreferenceChange(mPreference, false);
 
         assertThat(mController.isChecked()).isFalse();
-        verify(mLockPatternUtils).setVisiblePasswordEnabled(false, UserHandle.myUserId());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
index f38cc49..10e397c 100644
--- a/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/SimLockPreferenceControllerTest.java
@@ -77,6 +77,7 @@
         ShadowApplication shadowApplication = ShadowApplication.getInstance();
         shadowApplication.setSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE,
                 mSubscriptionManager);
+        when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager);
         shadowApplication.setSystemService(Context.CARRIER_CONFIG_SERVICE, mCarrierManager);
         shadowApplication.setSystemService(Context.USER_SERVICE, mUserManager);
         shadowApplication.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
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/security/screenlock/PinPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java
index 73b4b9b..f7bd108 100644
--- a/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/screenlock/PinPrivacyPreferenceControllerTest.java
@@ -67,14 +67,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
-    @Test
-    public void isAvailable_lockSetToPinOrPw_shouldReturnTrue() {
-        when(mLockPatternUtils.getCredentialTypeForUser(TEST_USER_ID)).thenReturn(
-                CREDENTIAL_TYPE_PASSWORD_OR_PIN);
-        assertThat(mController.isAvailable()).isTrue();
-    }
-
     @Test
     public void isAvailable_lockSetToOther_shouldReturnFalse() {
         when(mLockPatternUtils.getCredentialTypeForUser(TEST_USER_ID)).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceControllerTest.java
index 8884ab8..efbf646 100644
--- a/tests/robotests/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/screenlock/PowerButtonInstantLockPreferenceControllerTest.java
@@ -119,7 +119,7 @@
         mController.updateState(mPreference);
         assertThat(mPreference.isChecked()).isFalse();
         assertThat(mPreference.getSummary()).isEqualTo(mContext.getString(
-                R.string.summary_empty));
+                com.android.settingslib.R.string.summary_empty));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java
index 43f5cfc..33a62f4 100644
--- a/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/trustagent/ManageTrustAgentsPreferenceControllerTest.java
@@ -32,7 +32,6 @@
 import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -76,7 +75,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
diff --git a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentListPreferenceControllerTest.java
index b6b9788..0463e00 100644
--- a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentListPreferenceControllerTest.java
@@ -45,7 +45,6 @@
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -102,7 +101,6 @@
         assertThat(mController).isInstanceOf(PreferenceControllerMixin.class);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_whenNotVisible_isFalse() {
@@ -152,7 +150,6 @@
         verify(mCategory, atLeastOnce()).addPreference(any(Preference.class));
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void onResume_ifNotAvailable_shouldNotAddNewAgents() {
diff --git a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
index d7aa42c..8339798 100644
--- a/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/trustagent/TrustAgentsPreferenceControllerTest.java
@@ -40,6 +40,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -105,6 +106,7 @@
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(0);
     }
 
+    @Ignore("b/313612480")
     @Test
     public void
     onStart_hasAUninstalledTrustAgent_shouldRemoveOnePreferenceAndLeaveTwoPreferences() {
@@ -125,6 +127,7 @@
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(2);
     }
 
+    @Ignore("b/313612480")
     @Test
     public void onStart_hasANewTrustAgent_shouldAddOnePreferenceAndHaveFourPreferences() {
         final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
@@ -145,6 +148,7 @@
         assertThat(mPreferenceScreen.getPreferenceCount()).isEqualTo(4);
     }
 
+    @Ignore("b/313612480")
     @Test
     public void onStart_hasUnrestrictedTrustAgent_shouldAddThreeChangeablePreferences() {
         ShadowRestrictedLockUtilsInternal.setKeyguardDisabledFeatures(0);
@@ -165,6 +169,7 @@
         }
     }
 
+    @Ignore("b/313612480")
     @Test
     public void onStart_hasRestrictedTructAgent_shouldAddThreeUnchangeablePreferences() {
         final List<ResolveInfo> availableAgents = createFakeAvailableAgents();
diff --git a/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java
index fdb7feb..9727dd1 100644
--- a/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java
@@ -45,6 +45,7 @@
 import com.android.settings.testutils.shadow.ShadowConnectivityManager;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -115,6 +116,7 @@
                 .isEqualTo(SHORTCUT_ID_PREFIX + intent.getComponent().flattenToShortString());
     }
 
+    @Ignore("b/314924127")
     @Test
     public void queryShortcuts_shouldOnlyIncludeSystemApp() {
         final ResolveInfo ri1 = new ResolveInfo();
@@ -132,11 +134,13 @@
                 new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
                 Arrays.asList(ri1, ri2));
 
+        doReturn(false).when(mController).canShowWifiHotspot();
         final List<ResolveInfo> info = mController.queryShortcuts();
         assertThat(info).hasSize(1);
         assertThat(info.get(0).activityInfo).isEqualTo(ri2.activityInfo);
     }
 
+    @Ignore("b/314924127")
     @Test
     public void queryShortcuts_shouldSortBasedOnPriority() {
         final ResolveInfo ri1 = new ResolveInfo();
@@ -157,6 +161,7 @@
                 new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
                 Arrays.asList(ri1, ri2));
 
+        doReturn(false).when(mController).canShowWifiHotspot();
         final List<ResolveInfo> info = mController.queryShortcuts();
         assertThat(info).hasSize(2);
         assertThat(info.get(0).activityInfo).isEqualTo(ri2.activityInfo);
@@ -165,6 +170,7 @@
 
     @Test
     public void queryShortcuts_setSupportOneHandedMode_ShouldEnableShortcuts() {
+        doReturn(true).when(mController).canShowWifiHotspot();
         SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "true");
         setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName());
 
@@ -173,6 +179,7 @@
 
     @Test
     public void queryShortcuts_setUnsupportOneHandedMode_ShouldDisableShortcuts() {
+        doReturn(false).when(mController).canShowWifiHotspot();
         SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "false");
         setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName());
 
@@ -181,7 +188,7 @@
 
     @Test
     public void queryShortcuts_configShowWifiHotspot_ShouldEnableShortcuts() {
-        when(mController.canShowWifiHotspot()).thenReturn(true);
+        doReturn(true).when(mController).canShowWifiHotspot();
         setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName());
 
         assertThat(mController.queryShortcuts()).hasSize(1);
@@ -189,13 +196,14 @@
 
     @Test
     public void queryShortcuts_configNotShowWifiHotspot_ShouldDisableShortcuts() {
-        when(mController.canShowWifiHotspot()).thenReturn(false);
+        doReturn(false).when(mController).canShowWifiHotspot();
         setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName());
 
         assertThat(mController.queryShortcuts()).hasSize(0);
     }
 
     @Test
+    @Ignore
     public void queryShortcuts_configShowDataUsage_ShouldEnableShortcuts() {
         doReturn(true).when(mController).canShowDataUsage();
         setupActivityInfo(Settings.DataUsageSummaryActivity.class.getSimpleName());
@@ -204,6 +212,7 @@
     }
 
     @Test
+    @Ignore
     public void queryShortcuts_configNotShowDataUsage_ShouldDisableShortcuts() {
         doReturn(false).when(mController).canShowDataUsage();
         setupActivityInfo(Settings.DataUsageSummaryActivity.class.getSimpleName());
diff --git a/tests/robotests/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragmentTest.java b/tests/robotests/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragmentTest.java
index ad60d06..24b82b2 100644
--- a/tests/robotests/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/sim/EnableAutoDataSwitchDialogFragmentTest.java
@@ -68,6 +68,7 @@
         doReturn(mContext).when(mFragment).getContext();
 
         doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
+        doReturn(mSubscriptionManager).when(mSubscriptionManager).createForAllUserProfiles();
         doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
         doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
index e1b2b4e..cbdcf3c 100644
--- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
+++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
@@ -30,7 +30,6 @@
 
 import static com.android.settings.sim.SimDialogActivity.DATA_PICK;
 import static com.android.settings.sim.SimDialogActivity.INVALID_PICK;
-import static com.android.settings.sim.SimDialogActivity.PICK_DISMISS;
 import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_CHANNEL;
 import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_ID;
 import static com.android.settings.sim.SimSelectNotification.SIM_WARNING_NOTIFICATION_CHANNEL;
@@ -61,6 +60,8 @@
 import android.telephony.TelephonyManager;
 import android.util.DisplayMetrics;
 
+import androidx.test.core.app.ApplicationProvider;
+
 import com.android.settings.R;
 import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
@@ -71,6 +72,7 @@
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
@@ -80,8 +82,8 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowAlertDialogCompat.class)
 public class SimSelectNotificationTest {
-    @Mock
-    private Context mContext;
+    @Spy
+    private Context mContext = ApplicationProvider.getApplicationContext();
     @Mock
     private Executor mExecutor;
     @Mock
@@ -92,8 +94,8 @@
     private SubscriptionManager mSubscriptionManager;
     @Mock
     private PackageManager mPackageManager;
-    @Mock
-    private Resources mResources;
+    @Spy
+    private Resources mResources = mContext.getResources();
     @Mock
     private SubscriptionInfo mSubInfo;
     @Mock
diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
index 4903a28..84c8586 100644
--- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java
@@ -30,6 +30,7 @@
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -200,6 +201,7 @@
                 .registerIntentToUri(eq(FakeToggleController.INTENT_FILTER), eq(INTENT_SLICE_URI));
     }
 
+    @Ignore("b/314925256")
     @Test
     public void loadSlice_registersBackgroundListener() {
         SliceTestUtils.insertSliceToDb(mContext, KEY);
@@ -636,7 +638,6 @@
         verify(mManager, never()).grantSlicePermission(anyString(), any(Uri.class));
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void grantAllowlistedPackagePermissions_hasPackageAllowlist_shouldGrant() {
@@ -664,7 +665,6 @@
         assertThat(mProvider.isPrivateSlicesNeeded(uri)).isFalse();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isPrivateSlicesNeeded_correctUriWithPermissionAndIsSI_returnTrue() {
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
index 45fea57..67a55e6 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
@@ -42,28 +42,33 @@
 import com.android.settings.testutils.FakeToggleController;
 import com.android.settings.testutils.FakeUnavailablePreferenceController;
 import com.android.settings.testutils.SliceTester;
+import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
 
+import org.junit.After;
 import org.junit.Before;
 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 = ShadowRestrictedLockUtilsInternal.class)
 public class SliceBuilderUtilsTest {
 
-    private final String KEY = "KEY";
-    private final String TITLE = "title";
-    private final String SUMMARY = "summary";
-    private final String SCREEN_TITLE = "screen title";
-    private final String KEYWORDS = "a, b, c";
-    private final String FRAGMENT_NAME = "fragment name";
-    private final int ICON = R.drawable.ic_settings_accent;
-    private final Uri URI = Uri.parse("content://com.android.settings.slices/test");
-    private final Class TOGGLE_CONTROLLER = FakeToggleController.class;
-    private final Class SLIDER_CONTROLLER = FakeSliderController.class;
-    private final Class INVALID_SLIDER_CONTROLLER = FakeInvalidSliderController.class;
-    private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class;
+    private static final String KEY = "KEY";
+    private static final String TITLE = "title";
+    private static final String SUMMARY = "summary";
+    private static final String SCREEN_TITLE = "screen title";
+    private static final String KEYWORDS = "a, b, c";
+    private static final String FRAGMENT_NAME = "fragment name";
+    private static final String RESTRICTION = "no_brightness";
+    private static final int ICON = R.drawable.ic_settings_accent;
+    private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
+    private static final Class TOGGLE_CONTROLLER = FakeToggleController.class;
+    private static final Class SLIDER_CONTROLLER = FakeSliderController.class;
+    private static final Class INVALID_SLIDER_CONTROLLER = FakeInvalidSliderController.class;
+    private static final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class;
 
     private Context mContext;
 
@@ -74,6 +79,11 @@
         SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
     }
 
+    @After
+    public void tearDown() {
+        ShadowRestrictedLockUtilsInternal.reset();
+    }
+
     @Test
     public void buildIntentSlice_returnsMatchingSlice() {
         final SliceData sliceData = getMockData(CONTEXT_CONTROLLER, SliceData.SliceType.INTENT);
@@ -99,6 +109,27 @@
     }
 
     @Test
+    public void buildToggleSlice_withUserRestriction_shouldReturnToggleSlice() {
+        final SliceData mockData = getMockData(TOGGLE_CONTROLLER, SliceData.SliceType.SWITCH,
+                RESTRICTION);
+
+        final Slice slice = SliceBuilderUtils.buildSlice(mContext, mockData);
+
+        SliceTester.testSettingsToggleSlice(mContext, slice, mockData);
+    }
+
+    @Test
+    public void buildToggleSlice_withUserRestrictionAndRestricted_shouldReturnIntentSlice() {
+        final SliceData mockData = getMockData(TOGGLE_CONTROLLER, SliceData.SliceType.SWITCH,
+                RESTRICTION);
+        ShadowRestrictedLockUtilsInternal.setRestricted(true);
+
+        final Slice slice = SliceBuilderUtils.buildSlice(mContext, mockData);
+
+        SliceTester.testSettingsIntentSlice(mContext, slice, mockData);
+    }
+
+    @Test
     public void testGetPreferenceController_buildsMatchingController() {
         final BasePreferenceController controller =
                 SliceBuilderUtils.getPreferenceController(mContext, getMockData());
@@ -425,8 +456,19 @@
                 null /* unavailableSliceSubtitle */);
     }
 
+    private SliceData getMockData(Class prefController, int sliceType, String userRestriction) {
+        return getMockData(prefController, SUMMARY, sliceType, SCREEN_TITLE, ICON,
+                null /* unavailableSliceSubtitle */, userRestriction);
+    }
+
     private SliceData getMockData(Class prefController, String summary, int sliceType,
             String screenTitle, int icon, String unavailableSliceSubtitle) {
+        return getMockData(prefController, summary, sliceType, screenTitle, icon,
+                unavailableSliceSubtitle, null /* userRestriction */);
+    }
+
+    private SliceData getMockData(Class prefController, String summary, int sliceType,
+            String screenTitle, int icon, String unavailableSliceSubtitle, String userRestriction) {
         return new SliceData.Builder()
                 .setKey(KEY)
                 .setTitle(TITLE)
@@ -439,6 +481,7 @@
                 .setPreferenceControllerClassName(prefController.getName())
                 .setSliceType(sliceType)
                 .setUnavailableSliceSubtitle(unavailableSliceSubtitle)
+                .setUserRestriction(userRestriction)
                 .build();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
index 93fb25f..e391576 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
@@ -146,8 +146,8 @@
     private List<Integer> getIndexableXml() {
         final List<Integer> xmlResSet = new ArrayList<>();
 
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(
-                mContext).getSearchFeatureProvider().getSearchIndexableResources()
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
+                .getSearchFeatureProvider().getSearchIndexableResources()
                 .getProviderValues();
 
         for (SearchIndexableData bundle : bundles) {
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
index ec828a8..69f1886 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
@@ -41,7 +41,6 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -89,7 +88,6 @@
         mFakeFeatureFactory.searchFeatureProvider = mock(SearchFeatureProvider.class);
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testFakeProvider_convertsFakeData() {
diff --git a/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java
index 56ea33c..c6978b1 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicePreferenceControllerTest.java
@@ -21,10 +21,10 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
-import android.annotation.NonNull;
 import android.content.Context;
 import android.net.Uri;
 
+import androidx.annotation.NonNull;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.Observer;
 import androidx.slice.Slice;
diff --git a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
index 151d1f2..a272d9c 100644
--- a/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/AudioOutputSwitchPreferenceControllerTest.java
@@ -21,10 +21,12 @@
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING;
 
 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.verify;
@@ -38,6 +40,8 @@
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.media.AudioManager;
+import android.media.session.MediaSessionManager;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.util.FeatureFlagUtils;
 
 import androidx.preference.ListPreference;
@@ -61,6 +65,7 @@
 
 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;
@@ -113,6 +118,9 @@
     @Mock
     private CachedBluetoothDevice mCachedBluetoothDeviceR;
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     private Context mContext;
     private PreferenceScreen mScreen;
     private ListPreference mPreference;
@@ -238,6 +246,7 @@
 
     @Test
     public void onStart_shouldRegisterCallbackAndRegisterReceiver() {
+        mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
         mController.onStart();
 
         verify(mLocalBluetoothManager.getEventManager()).registerCallback(
@@ -248,6 +257,7 @@
 
     @Test
     public void onStop_shouldUnregisterCallbackAndUnregisterReceiver() {
+        mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
         mController.onStart();
         mController.onStop();
 
@@ -257,6 +267,45 @@
         verify(mLocalBluetoothManager).setForegroundActivity(null);
     }
 
+    @Test
+    public void onStart_shouldRegisterCallbackAndRegisterReceiverWithDefaultMediaOutput() {
+        MediaSessionManager mediaSessionManager =
+                spy(mContext.getSystemService(MediaSessionManager.class));
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mediaSessionManager);
+        mController = new AudioSwitchPreferenceControllerTestable(mContext, TEST_KEY);
+
+        mController.onStart();
+
+        verify(mLocalBluetoothManager.getEventManager()).registerCallback(
+                any(BluetoothCallback.class));
+        verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class),
+                eq(Context.RECEIVER_NOT_EXPORTED));
+        verify(mLocalBluetoothManager).setForegroundActivity(mContext);
+        verify(mediaSessionManager).addOnActiveSessionsChangedListener(
+                any(MediaSessionManager.OnActiveSessionsChangedListener.class), any(), any());
+    }
+
+
+    @Test
+    public void onStop_shouldUnregisterCallbackAndUnregisterReceiverWithDefaultMediaOutput() {
+        MediaSessionManager mediaSessionManager =
+                spy(mContext.getSystemService(MediaSessionManager.class));
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        when(mContext.getSystemService(MediaSessionManager.class)).thenReturn(mediaSessionManager);
+        mController = new AudioSwitchPreferenceControllerTestable(mContext, TEST_KEY);
+        mController.onStart();
+
+        mController.onStop();
+
+        verify(mLocalBluetoothManager.getEventManager()).unregisterCallback(
+                any(BluetoothCallback.class));
+        verify(mContext).unregisterReceiver(any(BroadcastReceiver.class));
+        verify(mLocalBluetoothManager).setForegroundActivity(null);
+        verify(mediaSessionManager).removeOnActiveSessionsChangedListener(
+                any(MediaSessionManager.OnActiveSessionsChangedListener.class));
+    }
+
     /**
      * Audio stream output to bluetooth sco headset which is the subset of all sco device.
      * isStreamFromOutputDevice should return true.
diff --git a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
index 5a92a08..b9f9b16 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/sound/MediaOutputPreferenceControllerTest.java
@@ -21,6 +21,8 @@
 import static android.media.AudioSystem.DEVICE_OUT_EARPIECE;
 import static android.media.AudioSystem.DEVICE_OUT_HEARING_AID;
 
+import static com.android.settingslib.media.flags.Flags.FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
@@ -45,6 +47,7 @@
 import android.media.session.MediaController;
 import android.media.session.MediaSessionManager;
 import android.media.session.PlaybackState;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
@@ -66,6 +69,7 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -103,6 +107,9 @@
     private static final String TEST_PACKAGE_NAME = "com.test.packagename";
     private static final String TEST_APPLICATION_LABEL = "APP Test Label";
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
     @Mock
     private LocalBluetoothManager mLocalManager;
     @Mock
@@ -227,6 +234,8 @@
         mScreen.addPreference(mPreference);
         mController.displayPreference(mScreen);
         mController.setCallback(mAudioSwitchPreferenceCallback);
+
+        mSetFlagsRule.initAllFlagsToReleaseConfigDefault();
     }
 
     @After
@@ -314,6 +323,7 @@
 
     @Test
     public void updateState_noActiveLocalPlayback_noTitle() {
+        mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
         mPlaybackState = new PlaybackState.Builder()
                 .setState(PlaybackState.STATE_NONE, 0, 1)
                 .build();
@@ -326,6 +336,48 @@
     }
 
     @Test
+    public void updateState_noActiveLocalPlayback_checkTitle() {
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        mPlaybackState = new PlaybackState.Builder()
+                .setState(PlaybackState.STATE_NONE, 0, 1)
+                .build();
+        when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+        mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+        mController.displayPreference(mScreen);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.media_output_title_without_playing,
+                        TEST_APPLICATION_LABEL));
+    }
+
+    @Test
+    public void updateState_withNullMediaController_noTitle() {
+        mSetFlagsRule.disableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        mMediaControllers.clear();
+        mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getTitle()).isNull();
+    }
+
+    @Test
+    public void updateState_withNullMediaController_checkTitle() {
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        mMediaControllers.clear();
+        mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+        mController.displayPreference(mScreen);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getTitle().toString()).isEqualTo(
+                mContext.getString(R.string.media_output_title_without_playing,
+                        TEST_APPLICATION_LABEL));
+    }
+
+    @Test
     public void updateState_withActiveLocalPlayback_checkTitle() {
         initPackage();
         mShadowPackageManager.addPackage(mPackageInfo, mPackageStats);
@@ -349,6 +401,39 @@
                 .isEqualTo(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG);
     }
 
+    @Test
+    public void handlePreferenceTreeClick_WithNoLocalPlaybackFlagEnabled_verifyIntentExtra() {
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        mPlaybackState = new PlaybackState.Builder()
+                .setState(PlaybackState.STATE_NONE, 0, 1)
+                .build();
+        when(mMediaController.getPlaybackState()).thenReturn(mPlaybackState);
+        mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+        mPreference.setKey(TEST_KEY);
+
+        mController.handlePreferenceTreeClick(mPreference);
+
+        verify(mContext).sendBroadcast(intentCaptor.capture());
+        assertThat(intentCaptor.getValue().getAction())
+                .isEqualTo(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG);
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_WithNullControllerFlagEnabled_verifyIntentExtra() {
+        mSetFlagsRule.enableFlags(FLAG_ENABLE_OUTPUT_SWITCHER_FOR_SYSTEM_ROUTING);
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        mMediaControllers.clear();
+        mController = new MediaOutputPreferenceController(mContext, TEST_KEY);
+        mPreference.setKey(TEST_KEY);
+
+        mController.handlePreferenceTreeClick(mPreference);
+
+        verify(mContext).sendBroadcast(intentCaptor.capture());
+        assertThat(intentCaptor.getValue().getAction())
+                .isEqualTo(MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG);
+    }
+
     /**
      * Default status
      * Preference should be invisible
diff --git a/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java b/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java
index d686f50..9f02f1f 100644
--- a/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java
+++ b/tests/robotests/src/com/android/settings/suggestions/SettingsSuggestionsTest.java
@@ -97,7 +97,8 @@
         final ComponentName componentName = new ComponentName(context, activityName);
         final ActivityInfo info;
         try {
-            info = pm.getActivityInfo(componentName, PackageManager.GET_META_DATA);
+            info = pm.getActivityInfo(componentName, PackageManager.GET_META_DATA
+                    | PackageManager.MATCH_DISABLED_COMPONENTS);
         } catch (NameNotFoundException e) {
             throw new RuntimeException(e);
         }
diff --git a/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java b/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java
index f510994..16df9ba 100644
--- a/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java
+++ b/tests/robotests/src/com/android/settings/support/SupportDashboardActivityTest.java
@@ -29,6 +29,7 @@
 import com.android.settingslib.search.SearchIndexableRaw;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -64,6 +65,7 @@
         assertThat(value.intentAction).isEqualTo(ACTION_SUPPORT_SETTINGS);
     }
 
+    @Ignore("b/314927625")
     @Test
     public void shouldHandleIntentAction() {
         PackageManager packageManager = mContext.getPackageManager();
diff --git a/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java
index f095cc8..735dd34 100644
--- a/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java
@@ -28,7 +28,6 @@
 import androidx.preference.Preference;
 
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -47,8 +46,7 @@
 
     @Before
     public void setUp() {
-        mActivity = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mActivity = Robolectric.setupActivity(Activity.class);
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mPreference = new Preference(mActivity);
         mPreference.setKey("test_key");
diff --git a/tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java b/tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java
index 0fc3ca1..635343e 100644
--- a/tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java
+++ b/tests/robotests/src/com/android/settings/survey/SurveyMixinTest.java
@@ -11,9 +11,9 @@
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.overlay.SurveyFeatureProvider;
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -40,11 +40,11 @@
         mProvider = FakeFeatureFactory.setupForTest().getSurveyFeatureProvider(mContext);
     }
 
+    @Ignore("b/314929422")
     @Test
     public void onResume_noActionIfActivityDoesNotExist() {
         // Pretend we are an activity that is starting up
-        FragmentActivity temp  = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        FragmentActivity temp = Robolectric.setupActivity(FragmentActivity.class);
         when(mFragment.getActivity()).thenReturn(null);
         SurveyMixin mixin = new SurveyMixin(mFragment, FAKE_KEY);
         mixin.onResume();
diff --git a/tests/robotests/src/com/android/settings/system/AdditionalSystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/AdditionalSystemUpdatePreferenceControllerTest.java
index a853b9e..0abfc20 100644
--- a/tests/robotests/src/com/android/settings/system/AdditionalSystemUpdatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/AdditionalSystemUpdatePreferenceControllerTest.java
@@ -20,7 +20,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -47,7 +46,6 @@
         assertThat(mController.isAvailable()).isFalse();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void displayPrefs_ifAvailable_shouldDisplay() {
diff --git a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
index 6e6fad8..01d0df9 100644
--- a/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/FactoryResetPreferenceControllerTest.java
@@ -17,73 +17,125 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.Manifest;
 import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
 import android.os.UserHandle;
+import android.os.UserManager;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
 
-import com.android.settings.testutils.shadow.ShadowUserManager;
-import com.android.settings.testutils.shadow.ShadowUtils;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.preference.Preference;
+
+import com.google.common.collect.ImmutableList;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUserManager.class)
 public class FactoryResetPreferenceControllerTest {
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     private static final String FACTORY_RESET_KEY = "factory_reset";
+    private static final String FACTORY_RESET_APP_PACKAGE = "com.frw_app";
 
-    private ShadowUserManager mShadowUserManager;
+    @Mock private ActivityResultLauncher<Intent> mFactoryResetLauncher;
+    @Mock private Preference mPreference;
+    @Mock private Context mContext;
+    @Mock private PackageManager mPackageManager;
+    @Mock private UserManager mUserManager;
+    private ResolveInfo mFactoryResetAppResolveInfo;
+    private PackageInfo mFactoryResetAppPackageInfo;
 
-    private Context mContext;
     private FactoryResetPreferenceController mController;
 
     @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mShadowUserManager = ShadowUserManager.getShadow();
-
+    public void setUp() throws PackageManager.NameNotFoundException {
+        MockitoAnnotations.initMocks(this);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
         mController = new FactoryResetPreferenceController(mContext, FACTORY_RESET_KEY);
+        mFactoryResetAppResolveInfo = new ResolveInfo();
+        mFactoryResetAppResolveInfo.activityInfo = new ActivityInfo();
+        mFactoryResetAppResolveInfo.activityInfo.packageName = FACTORY_RESET_APP_PACKAGE;
+        mFactoryResetAppPackageInfo = new PackageInfo();
+        mFactoryResetAppPackageInfo.requestedPermissions =
+                new String[] {Manifest.permission.PREPARE_FACTORY_RESET};
+        mFactoryResetAppPackageInfo.requestedPermissionsFlags = new int[] {
+                PackageInfo.REQUESTED_PERMISSION_GRANTED
+        };
+        when(mPackageManager.resolveActivity(any(), anyInt()))
+                .thenReturn(mFactoryResetAppResolveInfo);
+        when(mPackageManager.getPackageInfo(anyString(), anyInt()))
+                .thenReturn(mFactoryResetAppPackageInfo);
+        when(mPreference.getKey()).thenReturn(FACTORY_RESET_KEY);
+        mController.mFactoryResetPreparationLauncher = mFactoryResetLauncher;
+
     }
 
     @After
     public void tearDown() {
-        ShadowUtils.reset();
-        mShadowUserManager.setIsAdminUser(false);
-        mShadowUserManager.setIsDemoUser(false);
-        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 0);
+        Mockito.reset(mUserManager, mPackageManager);
+        Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
+                Settings.Global.DEVICE_DEMO_MODE, 0);
     }
 
+    @Ignore("b/314930928")
     @Test
     public void isAvailable_systemUser() {
-        mShadowUserManager.setIsAdminUser(true);
+        when(mUserManager.isAdminUser()).thenReturn(true);
 
         assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
     public void isAvailable_nonSystemUser() {
-        mShadowUserManager.setIsAdminUser(false);
-        mShadowUserManager.setIsDemoUser(false);
+        when(mUserManager.isAdminUser()).thenReturn(false);
+        when(mUserManager.isDemoUser()).thenReturn(false);
 
         assertThat(mController.isAvailable()).isFalse();
     }
 
     @Test
     public void isAvailable_demoUser() {
-        mShadowUserManager.setIsAdminUser(false);
+        when(mUserManager.isAdminUser()).thenReturn(false);
 
         // Place the device in demo mode.
-        Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.DEVICE_DEMO_MODE, 1);
+        Settings.Global.putInt(RuntimeEnvironment.application.getContentResolver(),
+                Settings.Global.DEVICE_DEMO_MODE, 1);
 
         // Indicate the user is a demo user.
-        mShadowUserManager.addUser(UserHandle.myUserId(), "test", UserInfo.FLAG_DEMO);
+        when(mUserManager.getUserProfiles())
+                .thenReturn(ImmutableList.of(new UserHandle(UserHandle.myUserId())));
+        when(mUserManager.getUserInfo(eq(UserHandle.myUserId())))
+                .thenReturn(new UserInfo(UserHandle.myUserId(), "test", UserInfo.FLAG_DEMO));
 
         assertThat(mController.isAvailable()).isFalse();
     }
@@ -92,4 +144,16 @@
     public void getPreferenceKey() {
         assertThat(mController.getPreferenceKey()).isEqualTo(FACTORY_RESET_KEY);
     }
+
+    @Test
+    @RequiresFlagsEnabled(com.android.settings.factory_reset.Flags.FLAG_ENABLE_FACTORY_RESET_WIZARD)
+    public void handlePreference_factoryResetWizardEnabled() {
+        ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class);
+
+        assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
+        verify(mFactoryResetLauncher).launch(intentArgumentCaptor.capture());
+        assertThat(intentArgumentCaptor.getValue()).isNotNull();
+        assertThat(intentArgumentCaptor.getValue().getAction())
+                .isEqualTo(FactoryResetPreferenceController.ACTION_PREPARE_FACTORY_RESET);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java
index 7ceac23..dd95d29 100644
--- a/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java
@@ -20,7 +20,6 @@
 import android.content.Context;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
@@ -46,7 +45,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void isAvailable_ifNotVisible_false() {
diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
index baa4690..e504cd6 100644
--- a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
@@ -18,17 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.os.Bundle;
 
-import com.android.settings.aware.AwareFeatureProvider;
-import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -75,27 +69,4 @@
 
         assertThat(keys).containsAtLeastElementsIn(niks);
     }
-
-    @Test
-    public void showRestrictionDialog_hasValidExtra_shouldShowDialog() {
-        final AwareFeatureProvider mProvider =
-                FakeFeatureFactory.setupForTest().mAwareFeatureProvider;
-        final Bundle bundle = new Bundle();
-        bundle.putBoolean(SystemDashboardFragment.EXTRA_SHOW_AWARE_DISABLED, true);
-        when(mFragment.getArguments()).thenReturn(bundle);
-
-        mFragment.showRestrictionDialog();
-
-        verify(mProvider).showRestrictionDialog(any());
-    }
-
-    @Test
-    public void showRestrictionDialog_hasInvalidExtra_shouldNotShowDialog() {
-        final AwareFeatureProvider mProvider =
-                FakeFeatureFactory.setupForTest().mAwareFeatureProvider;
-
-        mFragment.showRestrictionDialog();
-
-        verify(mProvider, never()).showRestrictionDialog(any());
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
deleted file mode 100644
index 544ba96..0000000
--- a/tests/robotests/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF 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 static android.os.SystemUpdateManager.KEY_STATUS;
-import static android.os.SystemUpdateManager.KEY_TITLE;
-import static android.os.SystemUpdateManager.STATUS_IDLE;
-import static android.os.SystemUpdateManager.STATUS_UNKNOWN;
-import static android.os.SystemUpdateManager.STATUS_WAITING_DOWNLOAD;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.Build;
-import android.os.Bundle;
-import android.os.SystemUpdateManager;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowUserManager;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUserManager.class)
-public class SystemUpdatePreferenceControllerTest {
-
-    @Mock
-    private PreferenceScreen mScreen;
-    @Mock
-    private SystemUpdateManager mSystemUpdateManager;
-
-    private Context mContext;
-    private ShadowUserManager mShadowUserManager;
-    private SystemUpdatePreferenceController mController;
-    private Preference mPreference;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mShadowUserManager = ShadowUserManager.getShadow();
-
-        ShadowApplication.getInstance().setSystemService(Context.SYSTEM_UPDATE_SERVICE,
-                mSystemUpdateManager);
-        mController = new SystemUpdatePreferenceController(mContext);
-        mPreference = new Preference(RuntimeEnvironment.application);
-        mPreference.setKey(mController.getPreferenceKey());
-        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
-    }
-
-    @After
-    public void cleanUp() {
-        mShadowUserManager.setIsAdminUser(false);
-    }
-
-    @Test
-    public void updateNonIndexable_ifAvailable_shouldNotUpdate() {
-        final List<String> keys = new ArrayList<>();
-        mShadowUserManager.setIsAdminUser(true);
-
-        mController.updateNonIndexableKeys(keys);
-
-        assertThat(keys).isEmpty();
-    }
-
-    @Test
-    public void updateNonIndexable_ifNotAvailable_shouldUpdate() {
-        mShadowUserManager.setIsAdminUser(false);
-        final List<String> keys = new ArrayList<>();
-
-        mController.updateNonIndexableKeys(keys);
-
-        assertThat(keys).hasSize(1);
-    }
-
-    @Test
-    public void displayPrefs_ifVisible_butNotAdminUser_shouldNotDisplay() {
-        mShadowUserManager.setIsAdminUser(false);
-        mController.displayPreference(mScreen);
-
-        assertThat(mPreference.isVisible()).isFalse();
-    }
-
-    @Ignore
-    @Test
-    @Config(qualifiers = "mcc999")
-    public void displayPrefs_ifAdminUser_butNotVisible_shouldNotDisplay() {
-        mShadowUserManager.setIsAdminUser(true);
-        mController.displayPreference(mScreen);
-
-        assertThat(mPreference.isVisible()).isFalse();
-    }
-
-    @Test
-    public void displayPrefs_ifAvailable_shouldDisplay() {
-        mShadowUserManager.setIsAdminUser(true);
-
-        mController.displayPreference(mScreen);
-
-        assertThat(mPreference.isVisible()).isTrue();
-    }
-
-    @Test
-    public void updateState_systemUpdateStatusUnknown_shouldSetToAndroidVersion() {
-        final Bundle bundle = new Bundle();
-        bundle.putInt(KEY_STATUS, STATUS_UNKNOWN);
-        when(mSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.android_version_summary,
-                        Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY));
-    }
-
-    @Test
-    public void updateState_systemUpdateStatusIdle_shouldSetToAndroidVersion() {
-        final String testReleaseName = "ANDROID TEST VERSION";
-
-        final Bundle bundle = new Bundle();
-        bundle.putInt(KEY_STATUS, STATUS_IDLE);
-        bundle.putString(KEY_TITLE, testReleaseName);
-        when(mSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.android_version_summary, testReleaseName));
-    }
-
-    @Test
-    public void updateState_systemUpdateInProgress_shouldSetToUpdatePending() {
-        final Bundle bundle = new Bundle();
-        bundle.putInt(KEY_STATUS, STATUS_WAITING_DOWNLOAD);
-        when(mSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.android_version_pending_update_summary));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java b/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.java
new file mode 100644
index 0000000..8cda2d9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/AccessibilityTestUtils.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.testutils;
+
+import static android.provider.Settings.Secure.ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON;
+import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+
+/**
+ * Utility class for common methods used in the accessibility feature related tests
+ */
+public class AccessibilityTestUtils {
+
+    public static void setSoftwareShortcutMode(
+            Context context, boolean gestureNavEnabled, boolean floatingButtonEnabled) {
+        int mode = floatingButtonEnabled ? ACCESSIBILITY_BUTTON_MODE_FLOATING_MENU : -1;
+
+        Settings.Secure.putInt(context.getContentResolver(),
+                Settings.Secure.ACCESSIBILITY_BUTTON_MODE, mode);
+
+        if (gestureNavEnabled) {
+            SettingsShadowResources.overrideResource(
+                    com.android.internal.R.integer.config_navBarInteractionMode,
+                    NAV_BAR_MODE_GESTURAL);
+        } else {
+            SettingsShadowResources.overrideResource(
+                    com.android.internal.R.integer.config_navBarInteractionMode,
+                    NAV_BAR_MODE_3BUTTON);
+        }
+    }
+}
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/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
deleted file mode 100644
index 5891aa1..0000000
--- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.settings.testutils;
-
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-
-import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider;
-import com.android.settings.accessibility.AccessibilitySearchFeatureProvider;
-import com.android.settings.accounts.AccountFeatureProvider;
-import com.android.settings.applications.ApplicationFeatureProvider;
-import com.android.settings.aware.AwareFeatureProvider;
-import com.android.settings.biometrics.face.FaceFeatureProvider;
-import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
-import com.android.settings.bluetooth.BluetoothFeatureProvider;
-import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
-import com.android.settings.dashboard.DashboardFeatureProvider;
-import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
-import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider;
-import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProviderImpl;
-import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
-import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
-import com.android.settings.fuelgauge.BatteryStatusFeatureProvider;
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
-import com.android.settings.gestures.AssistGestureFeatureProvider;
-import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
-import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider;
-import com.android.settings.localepicker.LocaleFeatureProvider;
-import com.android.settings.overlay.DockUpdaterFeatureProvider;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.overlay.SupportFeatureProvider;
-import com.android.settings.overlay.SurveyFeatureProvider;
-import com.android.settings.panel.PanelFeatureProvider;
-import com.android.settings.search.SearchFeatureProvider;
-import com.android.settings.security.SecurityFeatureProvider;
-import com.android.settings.security.SecuritySettingsFeatureProvider;
-import com.android.settings.slices.SlicesFeatureProvider;
-import com.android.settings.users.UserFeatureProvider;
-import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
-import com.android.settings.wifi.WifiTrackerLibProvider;
-import com.android.settings.wifi.factory.WifiFeatureProvider;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import org.mockito.Answers;
-
-/**
- * Test util to provide fake FeatureFactory. To use this factory, call {@code setupForTest} in
- * {@code @Before} method of the test class.
- */
-public class FakeFeatureFactory extends FeatureFactory {
-
-    public final SupportFeatureProvider supportFeatureProvider;
-    public final MetricsFeatureProvider metricsFeatureProvider;
-    public final BatteryStatusFeatureProvider batteryStatusFeatureProvider;
-    public final BatterySettingsFeatureProvider batterySettingsFeatureProvider;
-    public final PowerUsageFeatureProvider powerUsageFeatureProvider;
-    public final DashboardFeatureProvider dashboardFeatureProvider;
-    public final DockUpdaterFeatureProvider dockUpdaterFeatureProvider;
-    public final LocaleFeatureProvider localeFeatureProvider;
-    public final ApplicationFeatureProvider applicationFeatureProvider;
-    public final EnterprisePrivacyFeatureProvider enterprisePrivacyFeatureProvider;
-    public final SurveyFeatureProvider surveyFeatureProvider;
-    public final SecurityFeatureProvider securityFeatureProvider;
-    public final SuggestionFeatureProvider suggestionsFeatureProvider;
-    public final UserFeatureProvider userFeatureProvider;
-    public final AssistGestureFeatureProvider assistGestureFeatureProvider;
-    public final AccountFeatureProvider mAccountFeatureProvider;
-    public final BluetoothFeatureProvider mBluetoothFeatureProvider;
-    public final AwareFeatureProvider mAwareFeatureProvider;
-    public final FaceFeatureProvider mFaceFeatureProvider;
-    public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
-
-    public PanelFeatureProvider panelFeatureProvider;
-    public SlicesFeatureProvider slicesFeatureProvider;
-    public SearchFeatureProvider searchFeatureProvider;
-    public ContextualCardFeatureProvider mContextualCardFeatureProvider;
-
-    public WifiTrackerLibProvider wifiTrackerLibProvider;
-    public SecuritySettingsFeatureProvider securitySettingsFeatureProvider;
-    public AccessibilitySearchFeatureProvider mAccessibilitySearchFeatureProvider;
-    public AccessibilityMetricsFeatureProvider mAccessibilityMetricsFeatureProvider;
-    public AdvancedVpnFeatureProvider mAdvancedVpnFeatureProvider;
-    public WifiFeatureProvider mWifiFeatureProvider;
-    public KeyboardSettingsFeatureProvider mKeyboardSettingsFeatureProvider;
-    public StylusFeatureProvider mStylusFeatureProvider;
-
-    /**
-     * Call this in {@code @Before} method of the test class to use fake factory.
-     */
-    public static FakeFeatureFactory setupForTest() {
-        final Context context = mock(Context.class, Answers.RETURNS_DEEP_STUBS);
-        sFactory = null;
-        when(context.getString(com.android.settings.R.string.config_featureFactory))
-                .thenReturn(FakeFeatureFactory.class.getName());
-        try {
-            Class c = FakeFeatureFactory.class;
-            when(context.getClassLoader().loadClass(anyString())).thenReturn(c);
-        } catch (ClassNotFoundException e) {
-            // Ignore.
-        }
-        return (FakeFeatureFactory) FakeFeatureFactory.getFactory(context);
-    }
-
-    /**
-     * Used by reflection. Do not call directly.
-     */
-    public FakeFeatureFactory() {
-        supportFeatureProvider = mock(SupportFeatureProvider.class);
-        metricsFeatureProvider = mock(MetricsFeatureProvider.class);
-        batteryStatusFeatureProvider = mock(BatteryStatusFeatureProvider.class);
-        batterySettingsFeatureProvider = mock(BatterySettingsFeatureProvider.class);
-        powerUsageFeatureProvider = mock(PowerUsageFeatureProvider.class);
-        dashboardFeatureProvider = mock(DashboardFeatureProvider.class);
-        dockUpdaterFeatureProvider = mock(DockUpdaterFeatureProvider.class);
-        localeFeatureProvider = mock(LocaleFeatureProvider.class);
-        applicationFeatureProvider = mock(ApplicationFeatureProvider.class);
-        enterprisePrivacyFeatureProvider = mock(EnterprisePrivacyFeatureProvider.class);
-        searchFeatureProvider = mock(SearchFeatureProvider.class);
-        surveyFeatureProvider = mock(SurveyFeatureProvider.class);
-        securityFeatureProvider = mock(SecurityFeatureProvider.class);
-        suggestionsFeatureProvider = mock(SuggestionFeatureProvider.class);
-        userFeatureProvider = mock(UserFeatureProvider.class);
-        assistGestureFeatureProvider = mock(AssistGestureFeatureProvider.class);
-        slicesFeatureProvider = mock(SlicesFeatureProvider.class);
-        mAccountFeatureProvider = mock(AccountFeatureProvider.class);
-        mContextualCardFeatureProvider = mock(ContextualCardFeatureProvider.class);
-        panelFeatureProvider = mock(PanelFeatureProvider.class);
-        mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
-        mAwareFeatureProvider = mock(AwareFeatureProvider.class);
-        mFaceFeatureProvider = mock(FaceFeatureProvider.class);
-        mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
-        wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
-        securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
-        mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
-        mAccessibilityMetricsFeatureProvider = mock(AccessibilityMetricsFeatureProvider.class);
-        mAdvancedVpnFeatureProvider = mock(AdvancedVpnFeatureProvider.class);
-        mWifiFeatureProvider = mock(WifiFeatureProvider.class);
-        mKeyboardSettingsFeatureProvider = mock(KeyboardSettingsFeatureProvider.class);
-        mStylusFeatureProvider = mock(StylusFeatureProvider.class);
-    }
-
-    @Override
-    public SuggestionFeatureProvider getSuggestionFeatureProvider() {
-        return suggestionsFeatureProvider;
-    }
-
-    @Override
-    public SupportFeatureProvider getSupportFeatureProvider(Context context) {
-        return supportFeatureProvider;
-    }
-
-    @Override
-    public MetricsFeatureProvider getMetricsFeatureProvider() {
-        return metricsFeatureProvider;
-    }
-
-    @Override
-    public BatteryStatusFeatureProvider getBatteryStatusFeatureProvider(Context context) {
-        return batteryStatusFeatureProvider;
-    }
-
-    @Override
-    public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider() {
-        return batterySettingsFeatureProvider;
-    }
-
-    @Override
-    public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) {
-        return powerUsageFeatureProvider;
-    }
-
-    @Override
-    public DashboardFeatureProvider getDashboardFeatureProvider(Context context) {
-        return dashboardFeatureProvider;
-    }
-
-    @Override
-    public DockUpdaterFeatureProvider getDockUpdaterFeatureProvider() {
-        return dockUpdaterFeatureProvider;
-    }
-
-    @Override
-    public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
-        return applicationFeatureProvider;
-    }
-
-    @Override
-    public LocaleFeatureProvider getLocaleFeatureProvider() {
-        return localeFeatureProvider;
-    }
-
-    @Override
-    public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
-        return enterprisePrivacyFeatureProvider;
-    }
-
-    @Override
-    public SearchFeatureProvider getSearchFeatureProvider() {
-        return searchFeatureProvider;
-    }
-
-    @Override
-    public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
-        return surveyFeatureProvider;
-    }
-
-    @Override
-    public SecurityFeatureProvider getSecurityFeatureProvider() {
-        return securityFeatureProvider;
-    }
-
-    @Override
-    public UserFeatureProvider getUserFeatureProvider(Context context) {
-        return userFeatureProvider;
-    }
-
-    @Override
-    public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
-        return assistGestureFeatureProvider;
-    }
-
-    @Override
-    public SlicesFeatureProvider getSlicesFeatureProvider() {
-        return slicesFeatureProvider;
-    }
-
-    @Override
-    public AccountFeatureProvider getAccountFeatureProvider() {
-        return mAccountFeatureProvider;
-    }
-
-    @Override
-    public PanelFeatureProvider getPanelFeatureProvider() {
-        return panelFeatureProvider;
-    }
-
-    @Override
-    public ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context) {
-        return mContextualCardFeatureProvider;
-    }
-
-    @Override
-    public BluetoothFeatureProvider getBluetoothFeatureProvider() {
-        return mBluetoothFeatureProvider;
-    }
-
-    @Override
-    public AwareFeatureProvider getAwareFeatureProvider() {
-        return mAwareFeatureProvider;
-    }
-
-    @Override
-    public FaceFeatureProvider getFaceFeatureProvider() {
-        return mFaceFeatureProvider;
-    }
-
-    @Override
-    public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
-        return mBiometricsRepositoryProvider;
-    }
-
-    @Override
-    public WifiTrackerLibProvider getWifiTrackerLibProvider() {
-        return wifiTrackerLibProvider;
-    }
-
-    @Override
-    public SecuritySettingsFeatureProvider getSecuritySettingsFeatureProvider() {
-        return securitySettingsFeatureProvider;
-    }
-
-    @Override
-    public AccessibilitySearchFeatureProvider getAccessibilitySearchFeatureProvider() {
-        return mAccessibilitySearchFeatureProvider;
-    }
-
-    @Override
-    public AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider() {
-        return mAccessibilityMetricsFeatureProvider;
-    }
-
-    @Override
-    public HardwareInfoFeatureProvider getHardwareInfoFeatureProvider() {
-        return HardwareInfoFeatureProviderImpl.INSTANCE;
-    }
-
-    @Override
-    public AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider() {
-        return mAdvancedVpnFeatureProvider;
-    }
-
-    @Override
-    public WifiFeatureProvider getWifiFeatureProvider() {
-        return mWifiFeatureProvider;
-    }
-
-    @Override
-    public KeyboardSettingsFeatureProvider getKeyboardSettingsFeatureProvider() {
-        return mKeyboardSettingsFeatureProvider;
-    }
-
-    @Override
-    public StylusFeatureProvider getStylusFeatureProvider() {
-        return mStylusFeatureProvider;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeTimer.java b/tests/robotests/src/com/android/settings/testutils/FakeTimer.java
new file mode 100644
index 0000000..d7934cb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/FakeTimer.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import java.util.PriorityQueue;
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * A fake {@link Timer} that doesn't create a TimerThread which is hard to manage in test.
+ */
+public class FakeTimer extends Timer {
+    private final PriorityQueue<ScheduledTimerTask> mQueue = new PriorityQueue<>();
+
+    public FakeTimer() {
+    }
+
+    @Override
+    public void cancel() {
+        mQueue.clear();
+    }
+
+    @Override
+    public void schedule(TimerTask task, long delay) {
+        mQueue.offer(new ScheduledTimerTask(System.currentTimeMillis() + delay, task));
+    }
+
+    /**
+     * Runs the first task in the queue if there's any.
+     */
+    public void runOneTask() {
+        if (mQueue.size() > 0) {
+            mQueue.poll().mTask.run();
+        }
+    }
+
+    /**
+     * Runs all the queued tasks in order.
+     */
+    public void runAllTasks() {
+        while (mQueue.size() > 0) {
+            mQueue.poll().mTask.run();
+        }
+    }
+
+    /**
+     * Returns number of pending tasks in the timer
+     */
+    public int numOfPendingTasks() {
+        return mQueue.size();
+    }
+
+    private static class ScheduledTimerTask implements Comparable<ScheduledTimerTask> {
+        final long mTimeToRunInMillisSeconds;
+        final TimerTask mTask;
+
+        ScheduledTimerTask(long timeToRunInMilliSeconds, TimerTask task) {
+            this.mTimeToRunInMillisSeconds = timeToRunInMilliSeconds;
+            this.mTask = task;
+        }
+
+        @Override
+        public int compareTo(ScheduledTimerTask other) {
+            return Long.compare(this.mTimeToRunInMillisSeconds, other.mTimeToRunInMillisSeconds);
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
deleted file mode 100644
index 8ca577c..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package com.android.settings.testutils.shadow;
-
-import static org.robolectric.RuntimeEnvironment.application;
-import static org.robolectric.shadow.api.Shadow.directlyOn;
-
-import android.content.res.Resources;
-import android.content.res.Resources.NotFoundException;
-import android.util.SparseArray;
-
-import androidx.annotation.ArrayRes;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.RealObject;
-import org.robolectric.annotation.Resetter;
-import org.robolectric.shadows.ShadowResources;
-import org.robolectric.util.ReflectionHelpers.ClassParameter;
-
-/**
- * Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
- * handle because they are too new or private.
- */
-@Implements(value = Resources.class)
-public class SettingsShadowResources extends ShadowResources {
-
-    @RealObject
-    public Resources realResources;
-
-    private static SparseArray<Object> sResourceOverrides = new SparseArray<>();
-
-    public static void overrideResource(int id, Object value) {
-        sResourceOverrides.put(id, value);
-    }
-
-    public static void overrideResource(String name, Object value) {
-        final Resources res = application.getResources();
-        final int resId = res.getIdentifier(name, null, null);
-        if (resId == 0) {
-            throw new Resources.NotFoundException("Cannot override \"" + name + "\"");
-        }
-        overrideResource(resId, value);
-    }
-
-    @Resetter
-    public static void reset() {
-        sResourceOverrides.clear();
-    }
-
-    @Implementation
-    protected int[] getIntArray(@ArrayRes int id) throws NotFoundException {
-        final Object override = sResourceOverrides.get(id);
-        if (override instanceof int[]) {
-            return (int[]) override;
-        }
-        return directlyOn(realResources, Resources.class).getIntArray(id);
-    }
-
-    @Implementation
-    protected String getString(int id) {
-        final Object override = sResourceOverrides.get(id);
-        if (override instanceof String) {
-            return (String) override;
-        }
-        return directlyOn(
-                realResources, Resources.class, "getString", ClassParameter.from(int.class, id));
-    }
-
-    @Implementation
-    protected int getInteger(int id) {
-        final Object override = sResourceOverrides.get(id);
-        if (override instanceof Integer) {
-            return (Integer) override;
-        }
-        return directlyOn(
-                realResources, Resources.class, "getInteger", ClassParameter.from(int.class, id));
-    }
-
-    @Implementation
-    protected boolean getBoolean(int id) {
-        final Object override = sResourceOverrides.get(id);
-        if (override instanceof Boolean) {
-            return (boolean) override;
-        }
-        return directlyOn(realResources, Resources.class, "getBoolean",
-                ClassParameter.from(int.class, id));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessPoint.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessPoint.java
deleted file mode 100644
index 7d206f4..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessPoint.java
+++ /dev/null
@@ -1,31 +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.testutils.shadow;
-
-import com.android.settingslib.wifi.AccessPoint;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(AccessPoint.class)
-public class ShadowAccessPoint {
-
-    @Implementation
-    protected String getSavedNetworkSummary() {
-        return "saved";
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
index 409c261..aa2961c 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java
@@ -19,7 +19,8 @@
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
-import android.annotation.NonNull;
+
+import androidx.annotation.NonNull;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
@@ -30,7 +31,7 @@
 import java.util.Map;
 
 @Implements(AccountManager.class)
-public class ShadowAccountManager {
+public class ShadowAccountManager extends org.robolectric.shadows.ShadowAccountManager {
 
     private static final Map<String, AuthenticatorDescription> sAuthenticators = new HashMap<>();
     private static final Map<Integer, List<Account>> sAccountsByUserId = new HashMap<>();
@@ -40,7 +41,8 @@
         return sAuthenticators.values().toArray(new AuthenticatorDescription[sAuthenticators.size()]);
     }
 
-    public static void addAuthenticator(AuthenticatorDescription authenticator) {
+    @Override
+    public void addAuthenticator(AuthenticatorDescription authenticator) {
         sAuthenticators.put(authenticator.type, authenticator);
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java
index 76bdaef..dd82e25 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java
@@ -23,7 +23,7 @@
 import org.robolectric.annotation.Implements;
 
 @Implements(ActivityManager.class)
-public class ShadowActivityManager {
+public class ShadowActivityManager extends org.robolectric.shadows.ShadowActivityManager {
     private static int sCurrentUserId = 0;
     private static IActivityManager sService = null;
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAlertDialogCompat.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAlertDialogCompat.java
deleted file mode 100644
index e595cb6..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAlertDialogCompat.java
+++ /dev/null
@@ -1,83 +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.testutils.shadow;
-
-import android.annotation.SuppressLint;
-import android.view.View;
-
-import androidx.appcompat.app.AlertDialog;
-
-import org.robolectric.Shadows;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.RealObject;
-import org.robolectric.annotation.Resetter;
-import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowDialog;
-import org.robolectric.util.ReflectionHelpers;
-
-import javax.annotation.Nullable;
-
-/* Robolectric shadow for the androidx alert dialog. */
-@Implements(AlertDialog.class)
-public class ShadowAlertDialogCompat extends ShadowDialog {
-
-    @SuppressLint("StaticFieldLeak")
-    @Nullable
-    private static ShadowAlertDialogCompat latestSupportAlertDialog;
-    @RealObject
-    private AlertDialog realAlertDialog;
-
-    @Implementation
-    public void show() {
-        super.show();
-        latestSupportAlertDialog = this;
-    }
-
-    public CharSequence getMessage() {
-        final Object alertController = ReflectionHelpers.getField(realAlertDialog, "mAlert");
-        return ReflectionHelpers.getField(alertController, "mMessage");
-    }
-
-    public CharSequence getTitle() {
-        final Object alertController = ReflectionHelpers.getField(realAlertDialog, "mAlert");
-        return ReflectionHelpers.getField(alertController, "mTitle");
-    }
-
-    public View getView() {
-        final Object alertController = ReflectionHelpers.getField(realAlertDialog, "mAlert");
-        return ReflectionHelpers.getField(alertController, "mView");
-    }
-
-    @Nullable
-    public static AlertDialog getLatestAlertDialog() {
-        return latestSupportAlertDialog == null ? null : latestSupportAlertDialog.realAlertDialog;
-    }
-
-    @Resetter
-    public static void reset() {
-        latestSupportAlertDialog = null;
-    }
-
-    public static ShadowAlertDialogCompat shadowOf(AlertDialog alertDialog) {
-        return (ShadowAlertDialogCompat) Shadow.extract(alertDialog);
-    }
-
-    public void clickOnItem(int index) {
-        Shadows.shadowOf(realAlertDialog.getListView()).performItemClick(index);
-    }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAppInfoBase.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAppInfoBase.java
deleted file mode 100644
index f8cdb22..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAppInfoBase.java
+++ /dev/null
@@ -1,36 +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.testutils.shadow;
-
-import com.android.settings.applications.AppInfoBase;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(AppInfoBase.class)
-public class ShadowAppInfoBase {
-
-    @Implementation
-    protected void onResume() {
-        // No-op.
-    }
-
-    @Implementation
-    protected void onPause() {
-        // No-op.
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
new file mode 100644
index 0000000..6408d46
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
@@ -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.testutils.shadow;
+
+import android.app.ApplicationPackageManager;
+import android.content.pm.PackageInfo;
+import android.os.IRemoteCallback;
+
+import androidx.annotation.NonNull;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Implements(ApplicationPackageManager.class)
+public class ShadowApplicationPackageManager
+        extends org.robolectric.shadows.ShadowApplicationPackageManager {
+    static final Map<Integer, List<String>> packagesForUserId = new HashMap<>();
+
+    public void setInstalledPackagesForUserId(int userId, List<String> packages) {
+        packagesForUserId.put(userId, packages);
+        for (String packageName : packages) {
+            addPackage(packageName);
+        }
+    }
+
+    protected List<PackageInfo> getInstalledPackagesAsUser(int flags, int userId) {
+        List<PackageInfo> packages = new ArrayList<>();
+        for (String packageName : packagesForUserId.getOrDefault(userId, new ArrayList<>())) {
+            try {
+                packages.add(getPackageInfo(packageName, flags));
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+        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/ShadowApplicationsState.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationsState.java
deleted file mode 100644
index 8239ed9..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationsState.java
+++ /dev/null
@@ -1,32 +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.testutils.shadow;
-
-import android.os.Looper;
-
-import com.android.settingslib.applications.ApplicationsState;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(ApplicationsState.class)
-public class ShadowApplicationsState {
-    @Implementation
-    protected Looper getBackgroundLooper() {
-        return Looper.getMainLooper();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
index e651baf..9c06665 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
@@ -31,12 +31,12 @@
 import android.media.AudioManager;
 import android.os.Handler;
 
-import java.util.List;
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 
 import java.util.ArrayList;
+import java.util.List;
 
 @Implements(value = AudioManager.class)
 public class ShadowAudioManager extends org.robolectric.shadows.ShadowAudioManager {
@@ -46,7 +46,7 @@
     private List<AudioDeviceCallback> mDeviceCallbacks = new ArrayList<>();
 
     @Implementation
-    private int getRingerModeInternal() {
+    protected int getRingerModeInternal() {
         return mRingerMode;
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java
index cb7da56..d14a089 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java
@@ -33,6 +33,7 @@
     static final String[] LABELS = {"LABEL1", "LABEL2", "LABEL3", "LABEL4"};
     private static String[] sEnabledAccount = TYPES;
 
+    @Implementation
     protected void __constructor__(Context context, UserHandle userHandle,
             AuthenticatorHelper.OnAccountsUpdateListener listener) {
     }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
deleted file mode 100644
index 9de5c7f..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
+++ /dev/null
@@ -1,70 +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.testutils.shadow;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothDevice;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@Implements(value = BluetoothAdapter.class)
-public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
-
-    private int mState;
-    private List<Integer> mSupportedProfiles = new ArrayList<>();
-    private List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
-
-    @Implementation
-    protected List<Integer> getSupportedProfiles() {
-        return mSupportedProfiles;
-    }
-
-    public void addSupportedProfiles(int profile) {
-        mSupportedProfiles.add(profile);
-    }
-
-    public void clearSupportedProfiles() {
-        mSupportedProfiles.clear();
-    }
-
-    @Implementation
-    protected int getConnectionState() {
-        return mState;
-    }
-
-    public void setConnectionState(int state) {
-        mState = state;
-    }
-
-    @Implementation
-    protected boolean factoryReset() {
-        return true;
-    }
-
-    @Implementation
-    protected List<BluetoothDevice> getMostRecentlyConnectedDevices() {
-        return mMostRecentlyConnectedDevices;
-    }
-
-    public void setMostRecentlyConnectedDevices(List<BluetoothDevice> list) {
-        mMostRecentlyConnectedDevices = list;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothUtils.java
deleted file mode 100644
index c009442..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowBluetoothUtils.java
+++ /dev/null
@@ -1,42 +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.testutils.shadow;
-
-import android.content.Context;
-
-import com.android.settings.bluetooth.Utils;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-@Implements(Utils.class)
-public class ShadowBluetoothUtils {
-
-    public static LocalBluetoothManager sLocalBluetoothManager;
-
-    @Implementation
-    protected static LocalBluetoothManager getLocalBtManager(Context context) {
-        return sLocalBluetoothManager;
-    }
-
-    @Resetter
-    public static void reset() {
-        sLocalBluetoothManager = null;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java
index 5d9202f..e259cad 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java
@@ -16,16 +16,10 @@
 
 package com.android.settings.testutils.shadow;
 
-import static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
-
 import android.accounts.Account;
 import android.annotation.UserIdInt;
 import android.content.ContentResolver;
 import android.content.SyncAdapterType;
-import android.database.Cursor;
-import android.database.MatrixCursor;
-import android.net.Uri;
-import android.provider.SearchIndexablesContract;
 import android.text.TextUtils;
 
 import org.robolectric.annotation.Implementation;
@@ -35,7 +29,7 @@
 import java.util.Map;
 
 @Implements(ContentResolver.class)
-public class ShadowContentResolver {
+public class ShadowContentResolver extends org.robolectric.shadows.ShadowContentResolver {
 
     private static SyncAdapterType[] sSyncAdapterTypes = new SyncAdapterType[0];
     private static Map<String, Integer> sSyncable = new HashMap<>();
@@ -48,23 +42,14 @@
     }
 
     @Implementation
-    protected final Cursor query(Uri uri, String[] projection, String selection,
-            String[] selectionArgs, String sortOrder) {
-        MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS);
-        MatrixCursor.RowBuilder builder = cursor.newRow()
-                .add(SearchIndexablesContract.NonIndexableKey.COLUMN_KEY_VALUE, "");
-        return cursor;
-    }
-
-    @Implementation
     protected static int getIsSyncableAsUser(Account account, String authority, int userId) {
-        return sSyncable.containsKey(authority) ? sSyncable.get(authority) : 1;
+        return sSyncable.getOrDefault(authority, 1);
     }
 
     @Implementation
     protected static boolean getSyncAutomaticallyAsUser(Account account, String authority,
             int userId) {
-        return sSyncAutomatically.containsKey(authority) ? sSyncAutomatically.get(authority) : true;
+        return sSyncAutomatically.getOrDefault(authority, true);
     }
 
     @Implementation
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java
new file mode 100644
index 0000000..64a5f11
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.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.testutils.shadow;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.CrossProfileApps;
+import android.content.pm.ICrossProfileApps;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+
+import androidx.annotation.NonNull;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+@Implements(CrossProfileApps.class)
+public class ShadowCrossProfileApps extends org.robolectric.shadows.ShadowCrossProfileApps {
+    private static final Set<String> configurableInteractAcrossProfilePackages = new HashSet<>();
+    private Context mContext;
+    private PackageManager mPackageManager;
+
+    @Implementation
+    protected void __constructor__(Context context, ICrossProfileApps service) {
+        super.__constructor__(context, service);
+        this.mContext = context;
+        this.mPackageManager = context.getPackageManager();
+    }
+    public void addCrossProfilePackage(String packageName) {
+        configurableInteractAcrossProfilePackages.add(packageName);
+    }
+
+    @Implementation
+    protected boolean canConfigureInteractAcrossProfiles(@NonNull String packageName) {
+        return configurableInteractAcrossProfilePackages.contains(packageName);
+    }
+
+    @Implementation
+    protected boolean canUserAttemptToConfigureInteractAcrossProfiles(@NonNull String packageName) {
+        PackageInfo packageInfo;
+        try {
+            packageInfo = mPackageManager.getPackageInfo(packageName, /* flags= */ 0);
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+        if (packageInfo == null || packageInfo.requestedPermissions == null) {
+            return false;
+        }
+        return Arrays.asList(packageInfo.requestedPermissions).contains(
+                Manifest.permission.INTERACT_ACROSS_PROFILES);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataSaverBackend.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataSaverBackend.java
deleted file mode 100644
index 4d1a2ed..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDataSaverBackend.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.android.settings.testutils.shadow;
-
-import com.android.settings.datausage.DataSaverBackend;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(DataSaverBackend.class)
-public class ShadowDataSaverBackend {
-
-    private static boolean isEnabled = true;
-
-    @Implementation
-    protected boolean isDataSaverEnabled() {
-        return isEnabled;
-    }
-
-    @Implementation
-    protected void setDataSaverEnabled(boolean enabled) {
-        isEnabled = enabled;
-    }
-}
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/testutils/shadow/ShadowDateFormat.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDateFormat.java
new file mode 100644
index 0000000..74e6a81
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDateFormat.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.content.Context;
+import android.text.format.DateFormat;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.Locale;
+
+@Implements(DateFormat.class)
+public class ShadowDateFormat {
+
+    @Implementation
+    protected static java.text.DateFormat getDateFormat(Context context) {
+        return new java.text.SimpleDateFormat("MMM-dd-yyyy", Locale.ROOT);
+    }
+
+    @Implementation
+    protected static java.text.DateFormat getLongDateFormat(Context context) {
+        return new java.text.SimpleDateFormat("MMMM dd, yyyy", Locale.ROOT);
+    }
+
+    @Implementation
+    protected static java.text.DateFormat getTimeFormat(Context context) {
+        return new java.text.SimpleDateFormat("HH:mm:ss", Locale.ROOT);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceConfig.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceConfig.java
deleted file mode 100644
index dfd0988..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDeviceConfig.java
+++ /dev/null
@@ -1,50 +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.testutils.shadow;
-
-import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@Implements(android.provider.DeviceConfig.class)
-public class ShadowDeviceConfig {
-
-    private static Map<String, String> sPropertyMaps = new HashMap<>();
-
-    @Resetter
-    public static void reset() {
-        sPropertyMaps.clear();
-    }
-
-    @Implementation
-    public static boolean setProperty(
-            String namespace, String name, String value, boolean makeDefault) {
-        sPropertyMaps.put(name, value);
-        return true;
-    }
-
-    @Implementation
-    public static String getProperty(String namespace, String name) {
-        return sPropertyMaps.get(name);
-    }
-}
-
-
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java
index 0396503..354352e 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java
@@ -1,26 +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.testutils.shadow;
 
 import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_DEFAULT;
 import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+import static android.os.Build.VERSION_CODES.O;
+import static android.os.Build.VERSION_CODES.Q;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.app.admin.DevicePolicyManager;
 import android.app.admin.DevicePolicyManager.DeviceOwnerType;
+import android.app.admin.IDevicePolicyManager;
 import android.app.admin.ManagedSubscriptionsPolicy;
 import android.app.admin.PasswordMetrics;
 import android.app.admin.PasswordPolicy;
 import android.content.ComponentName;
+import android.content.Context;
 
-import org.robolectric.RuntimeEnvironment;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.test.core.app.ApplicationProvider;
+
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
 
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
 
 @Implements(DevicePolicyManager.class)
 public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDevicePolicyManager {
@@ -29,12 +53,21 @@
     private final Map<String, Integer> mDeviceOwnerTypes = new HashMap<>();
     private Map<Integer, CharSequence> mSupportMessagesMap = new HashMap<>();
     private boolean mIsAdminActiveAsUser = false;
+    private ComponentName mProfileOwner;
     private ComponentName mDeviceOwnerComponentName;
     private ManagedSubscriptionsPolicy mManagedSubscriptionsPolicy;
     private int mDeviceOwnerUserId = -1;
     private int mPasswordMinQuality = PASSWORD_QUALITY_UNSPECIFIED;
     private int mPasswordMinLength = 0;
     private int mPasswordMinSymbols = 0;
+    private Set<String> mCrossProfileCalendarPackages = Collections.emptySet();
+
+    private List<String> mPermittedAccessibilityServices = null;
+
+    @Implementation(minSdk = O)
+    protected void __constructor__(Context context, IDevicePolicyManager service) {
+        super.__constructor__(ApplicationProvider.getApplicationContext(), service);
+    }
 
     public void setShortSupportMessageForUser(ComponentName admin, int userHandle, String message) {
         mSupportMessagesMap.put(Objects.hash(admin, userHandle), message);
@@ -122,8 +155,47 @@
         mPasswordMinSymbols = numOfSymbols;
     }
 
+    public void setPermittedAccessibilityServices(List<String> permittedAccessibilityServices) {
+        mPermittedAccessibilityServices = permittedAccessibilityServices;
+    }
+
+    @Implementation
+    @Nullable
+    public List<String> getPermittedAccessibilityServices(int userId) {
+        return mPermittedAccessibilityServices;
+    }
+
     public static ShadowDevicePolicyManager getShadow() {
         return (ShadowDevicePolicyManager) Shadow.extract(
-                RuntimeEnvironment.application.getSystemService(DevicePolicyManager.class));
+                ApplicationProvider.getApplicationContext()
+                        .getSystemService(DevicePolicyManager.class));
+    }
+
+    // BEGIN-INTERNAL
+    @Implementation(minSdk = Q)
+    protected Set<String> getCrossProfileCalendarPackages() {
+        return mCrossProfileCalendarPackages;
+    }
+
+    @Implementation(minSdk = Q)
+    public void setCrossProfileCalendarPackages(ComponentName admin, Set<String> packageNames) {
+        enforceProfileOwner(admin);
+        mCrossProfileCalendarPackages = packageNames;
+    }
+
+    /**
+     * Sets the admin as active admin and profile owner.
+     *
+     * @see DevicePolicyManager#getProfileOwner()
+     */
+    public void setProfileOwner(ComponentName admin) {
+        setActiveAdmin(admin);
+        mProfileOwner = admin;
+    }
+
+    private void enforceProfileOwner(ComponentName admin) {
+        if (!admin.equals(mProfileOwner)) {
+            throw new SecurityException("[" + admin + "] is not a profile owner");
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDrawable.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDrawable.java
new file mode 100644
index 0000000..8dac1f1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDrawable.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(ShadowDrawable.class)
+public class ShadowDrawable extends org.robolectric.shadows.ShadowDrawable {
+    private static int sDefaultIntrinsicWidth = -1;
+    private int mIntrinsicWidth = sDefaultIntrinsicWidth;
+
+    @Implementation
+    public int getIntrinsicWidth() {
+        return mIntrinsicWidth;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java
index c0f7134..b116292 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java
@@ -34,7 +34,7 @@
  * {@link InputManager.InputDeviceListener}s.
  */
 @Implements(value = InputManager.class, callThroughByDefault = false)
-public class ShadowInputManager {
+public class ShadowInputManager extends org.robolectric.shadows.ShadowInputManager {
 
     private List<InputManager.InputDeviceListener> mInputDeviceListeners;
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java
index 098dcfc..99eca0a 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java
@@ -28,7 +28,7 @@
     private static boolean sIsHardwareBacked;
 
     @Resetter
-    public void reset() {
+    public static void reset() {
         sIsHardwareBacked = false;
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java
deleted file mode 100644
index f24b295..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java
+++ /dev/null
@@ -1,249 +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.testutils.shadow;
-
-import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.app.admin.DevicePolicyManager;
-import android.app.admin.PasswordMetrics;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.UserInfo;
-import android.os.UserHandle;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.internal.widget.LockscreenCredential;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-@Implements(LockPatternUtils.class)
-public class ShadowLockPatternUtils {
-
-    private static boolean sDeviceEncryptionEnabled;
-    private static Map<Integer, Integer> sUserToActivePasswordQualityMap = new HashMap<>();
-    private static Map<Integer, Integer> sUserToComplexityMap = new HashMap<>();
-    private static Map<Integer, Integer> sUserToProfileComplexityMap = new HashMap<>();
-    private static Map<Integer, PasswordMetrics> sUserToMetricsMap = new HashMap<>();
-    private static Map<Integer, PasswordMetrics> sUserToProfileMetricsMap = new HashMap<>();
-    private static Map<Integer, Boolean> sUserToIsSecureMap = new HashMap<>();
-    private static Map<Integer, Boolean> sUserToPatternEverChosenMap = new HashMap<>();
-    private static Map<Integer, Boolean> sUserToVisiblePatternEnabledMap = new HashMap<>();
-    private static Map<Integer, Boolean> sUserToBiometricAllowedMap = new HashMap<>();
-    private static Map<Integer, Boolean> sUserToLockPatternEnabledMap = new HashMap<>();
-
-    private static boolean sIsUserOwnsFrpCredential;
-
-    @Resetter
-    public static void reset() {
-        sUserToActivePasswordQualityMap.clear();
-        sUserToComplexityMap.clear();
-        sUserToProfileComplexityMap.clear();
-        sUserToMetricsMap.clear();
-        sUserToProfileMetricsMap.clear();
-        sUserToIsSecureMap.clear();
-        sUserToPatternEverChosenMap.clear();
-        sUserToVisiblePatternEnabledMap.clear();
-        sUserToBiometricAllowedMap.clear();
-        sUserToLockPatternEnabledMap.clear();
-        sDeviceEncryptionEnabled = false;
-        sIsUserOwnsFrpCredential = false;
-    }
-
-    @Implementation
-    protected boolean hasSecureLockScreen() {
-        return true;
-    }
-
-    @Implementation
-    protected boolean isSecure(int userId) {
-        Boolean isSecure = sUserToIsSecureMap.get(userId);
-        if (isSecure == null) {
-            return true;
-        }
-        return isSecure;
-    }
-
-    public static void setIsSecure(int userId, boolean isSecure) {
-        sUserToIsSecureMap.put(userId, isSecure);
-    }
-
-    @Implementation
-    protected int getActivePasswordQuality(int userId) {
-        final Integer activePasswordQuality = sUserToActivePasswordQualityMap.get(userId);
-        if (activePasswordQuality == null) {
-            return DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-        }
-        return activePasswordQuality;
-    }
-
-    @Implementation
-    protected int getKeyguardStoredPasswordQuality(int userHandle) {
-        return 1;
-    }
-
-    @Implementation
-    protected static boolean isDeviceEncryptionEnabled() {
-        return sDeviceEncryptionEnabled;
-    }
-
-    @Implementation
-    protected List<ComponentName> getEnabledTrustAgents(int userId) {
-        return null;
-    }
-
-    public static void setDeviceEncryptionEnabled(boolean deviceEncryptionEnabled) {
-        sDeviceEncryptionEnabled = deviceEncryptionEnabled;
-    }
-
-    @Implementation
-    protected byte[] getPasswordHistoryHashFactor(LockscreenCredential currentPassword,
-            int userId) {
-        return null;
-    }
-
-    @Implementation
-    protected boolean checkPasswordHistory(byte[] passwordToCheck, byte[] hashFactor, int userId) {
-        return false;
-    }
-
-    @Implementation
-    public @DevicePolicyManager.PasswordComplexity int getRequestedPasswordComplexity(int userId) {
-        return getRequestedPasswordComplexity(userId, false);
-    }
-
-    @Implementation
-    public @DevicePolicyManager.PasswordComplexity int getRequestedPasswordComplexity(int userId,
-            boolean deviceWideOnly) {
-        int complexity = sUserToComplexityMap.getOrDefault(userId,
-                DevicePolicyManager.PASSWORD_COMPLEXITY_NONE);
-        if (!deviceWideOnly) {
-            complexity = Math.max(complexity, sUserToProfileComplexityMap.getOrDefault(userId,
-                    DevicePolicyManager.PASSWORD_COMPLEXITY_NONE));
-        }
-        return complexity;
-    }
-
-    @Implementation
-    public static boolean userOwnsFrpCredential(Context context, UserInfo info) {
-        return sIsUserOwnsFrpCredential;
-    }
-
-    public static void setUserOwnsFrpCredential(boolean isUserOwnsFrpCredential) {
-        sIsUserOwnsFrpCredential = isUserOwnsFrpCredential;
-    }
-
-    @Implementation
-    public boolean isVisiblePatternEnabled(int userId) {
-        return sUserToVisiblePatternEnabledMap.getOrDefault(userId, false);
-    }
-
-    public static void setIsVisiblePatternEnabled(int userId, boolean isVisiblePatternEnabled) {
-        sUserToVisiblePatternEnabledMap.put(userId, isVisiblePatternEnabled);
-    }
-
-    @Implementation
-    public boolean isPatternEverChosen(int userId) {
-        return sUserToPatternEverChosenMap.getOrDefault(userId, true);
-    }
-
-    public static void setIsPatternEverChosen(int userId, boolean isPatternEverChosen) {
-        sUserToPatternEverChosenMap.put(userId, isPatternEverChosen);
-    }
-
-    @Implementation
-    public boolean isBiometricAllowedForUser(int userId) {
-        return sUserToBiometricAllowedMap.getOrDefault(userId, false);
-    }
-
-    public static void setIsBiometricAllowedForUser(int userId, boolean isBiometricAllowed) {
-        sUserToBiometricAllowedMap.put(userId, isBiometricAllowed);
-    }
-
-    @Implementation
-    public boolean isLockPatternEnabled(int userId) {
-        return sUserToBiometricAllowedMap.getOrDefault(userId, false);
-    }
-
-    public static void setIsLockPatternEnabled(int userId, boolean isLockPatternEnabled) {
-        sUserToLockPatternEnabledMap.put(userId, isLockPatternEnabled);
-    }
-
-    @Implementation
-    public boolean setLockCredential(@NonNull LockscreenCredential newCredential,
-            @NonNull LockscreenCredential savedCredential, int userHandle) {
-        setIsSecure(userHandle, true);
-        return true;
-    }
-
-    @Implementation
-    public boolean checkCredential(@NonNull LockscreenCredential credential, int userId,
-            @Nullable LockPatternUtils.CheckCredentialProgressCallback progressCallback)
-            throws LockPatternUtils.RequestThrottledException {
-        return true;
-    }
-
-    public static void setRequiredPasswordComplexity(int userHandle, int complexity) {
-        sUserToComplexityMap.put(userHandle, complexity);
-    }
-
-    public static void setRequiredPasswordComplexity(int complexity) {
-        sUserToComplexityMap.put(UserHandle.myUserId(), complexity);
-    }
-
-    public static void setRequiredProfilePasswordComplexity(int complexity) {
-        sUserToProfileComplexityMap.put(UserHandle.myUserId(), complexity);
-    }
-
-    @Implementation
-    public PasswordMetrics getRequestedPasswordMetrics(int userId, boolean deviceWideOnly) {
-        PasswordMetrics metrics = sUserToMetricsMap.getOrDefault(userId,
-                new PasswordMetrics(LockPatternUtils.CREDENTIAL_TYPE_NONE));
-        if (!deviceWideOnly) {
-            metrics.maxWith(sUserToProfileMetricsMap.getOrDefault(userId,
-                    new PasswordMetrics(LockPatternUtils.CREDENTIAL_TYPE_NONE)));
-        }
-        return metrics;
-    }
-
-    public static void setRequestedPasswordMetrics(PasswordMetrics metrics) {
-        sUserToMetricsMap.put(UserHandle.myUserId(), metrics);
-    }
-
-    public static void setRequestedProfilePasswordMetrics(PasswordMetrics metrics) {
-        sUserToProfileMetricsMap.put(UserHandle.myUserId(), metrics);
-    }
-
-    public static void setActivePasswordQuality(int quality) {
-        sUserToActivePasswordQualityMap.put(UserHandle.myUserId(), quality);
-    }
-
-    @Implementation
-    public boolean isLockScreenDisabled(int userId) {
-        return false;
-    }
-
-    @Implementation
-    public boolean isSeparateProfileChallengeEnabled(int userHandle) {
-        return false;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNetworkDetailsTracker.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNetworkDetailsTracker.java
deleted file mode 100644
index 5df9ba5..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNetworkDetailsTracker.java
+++ /dev/null
@@ -1,60 +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.testutils.shadow;
-
-import static org.mockito.Mockito.mock;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.NetworkScoreManager;
-import android.net.wifi.WifiManager;
-import android.os.Handler;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.Lifecycle;
-
-import com.android.wifitrackerlib.NetworkDetailsTracker;
-import com.android.wifitrackerlib.WifiEntry;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.time.Clock;
-
-@Implements(NetworkDetailsTracker.class)
-public class ShadowNetworkDetailsTracker {
-
-    @Implementation
-    public static NetworkDetailsTracker createNetworkDetailsTracker(@NonNull Lifecycle lifecycle,
-            @NonNull Context context,
-            @NonNull WifiManager wifiManager,
-            @NonNull ConnectivityManager connectivityManager,
-            @NonNull NetworkScoreManager networkScoreManager,
-            @NonNull Handler mainHandler,
-            @NonNull Handler workerHandler,
-            @NonNull Clock clock,
-            long maxScanAgeMillis,
-            long scanIntervalMillis,
-            String key) {
-        return mock(NetworkDetailsTracker.class);
-    }
-
-    @Implementation
-    public WifiEntry getWifiEntry() {
-        return mock(WifiEntry.class);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNotificationManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNotificationManager.java
index 78fb23f..7d2a7af 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNotificationManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowNotificationManager.java
@@ -27,7 +27,7 @@
 import java.util.Set;
 
 @Implements(NotificationManager.class)
-public class ShadowNotificationManager {
+public class ShadowNotificationManager extends org.robolectric.shadows.ShadowNotificationManager {
 
     private int mZenMode;
     private ZenModeConfig mZenModeConfig;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowOs.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowOs.java
deleted file mode 100644
index 72dfcb8..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowOs.java
+++ /dev/null
@@ -1,54 +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.testutils.shadow;
-
-import static android.system.OsConstants.AF_INET;
-import static android.system.OsConstants.AF_INET6;
-
-import android.system.Os;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.util.regex.Pattern;
-
-@Implements(Os.class)
-public class ShadowOs {
-    // These are not actually correct, but good enough for the test
-    private static final Pattern IPV4_PATTERN =
-        Pattern.compile("^\\d{1,3}(\\.\\d{1,3}){3}$");
-    private static final Pattern IPV6_PATTERN =
-        Pattern.compile("^[0-9a-f]{1,4}(:[0-9a-f]{0,4}){0,6}$");
-
-    private static final byte[] IPV4_BYTES = new byte[4];
-    private static final byte[] IPV6_BYTES = new byte[16];
-
-    @Implementation
-    protected static InetAddress inet_pton(int family, String address) {
-        if ((AF_INET  == family && IPV4_PATTERN.matcher(address).find()) ||
-            (AF_INET6 == family && IPV6_PATTERN.matcher(address).find())) {
-            try {
-                return InetAddress.getByAddress((AF_INET == family) ? IPV4_BYTES : IPV6_BYTES);
-            } catch (UnknownHostException uhe) {
-                // Shouldn't be reached.
-            }
-        }
-        return null;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowParcel.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowParcel.java
index 665e415..0a9d20d 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowParcel.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowParcel.java
@@ -9,7 +9,7 @@
  * This class provides helpers to test logic that reads from parcels.
  */
 @Implements(Parcel.class)
-public class ShadowParcel {
+public class ShadowParcel extends org.robolectric.shadows.ShadowParcel {
 
     public static int sReadIntResult;
     public static int sWriteIntResult;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPermissionControllerManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPermissionControllerManager.java
deleted file mode 100644
index 6a6f710..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPermissionControllerManager.java
+++ /dev/null
@@ -1,45 +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.testutils.shadow;
-
-import android.annotation.CallbackExecutor;
-import android.content.Context;
-import android.os.Handler;
-import android.permission.PermissionControllerManager;
-
-import androidx.annotation.NonNull;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.util.concurrent.Executor;
-
-@Implements(PermissionControllerManager.class)
-public class ShadowPermissionControllerManager {
-
-    protected void __constructor__(Context contexts, Handler handler) {
-        // no nothing, everything is shadowed
-    }
-
-    @Implementation
-    public void getPermissionUsages(boolean countSystem, long numMillis,
-            @NonNull @CallbackExecutor Executor executor,
-            @NonNull PermissionControllerManager.OnPermissionUsageResultCallback callback) {
-
-        // Do nothing
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java
new file mode 100644
index 0000000..30ed0d1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java
@@ -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.testutils.shadow;
+
+import android.service.persistentdata.PersistentDataBlockManager;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+@Implements(PersistentDataBlockManager.class)
+public class ShadowPersistentDataBlockManager {
+    private static int sDataBlockSize = 0;
+
+    @Resetter
+    public static void reset() {
+        sDataBlockSize = 0;
+    }
+
+    @Implementation
+    protected int getDataBlockSize() {
+        return sDataBlockSize;
+    }
+
+    public static void setDataBlockSize(int dataBlockSize) {
+        sDataBlockSize = dataBlockSize;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java
deleted file mode 100644
index 9a4993e..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java
+++ /dev/null
@@ -1,38 +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.testutils.shadow;
-
-import android.os.PowerManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-@Implements(PowerManager.class)
-public class ShadowPowerManager {
-
-    @Implementation
-    protected int getMinimumScreenBrightnessSetting() {
-        return 0;
-    }
-
-    @Implementation
-    protected int getMaximumScreenBrightnessSetting() {
-        return 0;
-    }
-
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java
index d66aa61..5989d49 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRestrictedLockUtilsInternal.java
@@ -50,7 +50,7 @@
     }
 
     @Implementation
-    protected static EnforcedAdmin checkIfMeteredDataRestricted(Context context,
+    protected static EnforcedAdmin checkIfMeteredDataUsageUserControlDisabled(Context context,
             String packageName, int userId) {
         if (sIsRestricted) {
             return new EnforcedAdmin();
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRotationPolicy.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRotationPolicy.java
index 1f1e2be..d052340 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRotationPolicy.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowRotationPolicy.java
@@ -30,12 +30,13 @@
     private static boolean rotationSupported = true;
 
     @Implementation
-    protected static void setRotationLock(Context context, final boolean enabled) {
+    protected static void setRotationLock(Context context, final boolean enabled, String caller) {
         rotationLockEnabled = enabled;
     }
 
     @Implementation
-    protected static void setRotationLockForAccessibility(Context context, final boolean enabled) {
+    protected static void setRotationLockForAccessibility(
+            Context context, final boolean enabled, String caller) {
         rotationLockEnabled = enabled;
     }
 
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java
index f209942..d773148 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSecureSettings.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.testutils.shadow;
 
+import static android.provider.Settings.DEFAULT_OVERRIDEABLE_BY_RESTORE;
+
 import android.content.ContentResolver;
 import android.provider.Settings;
 
@@ -24,12 +26,13 @@
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
+import org.robolectric.shadows.ShadowSettings;
 
 import java.util.Map;
 import java.util.WeakHashMap;
 
 @Implements(Settings.Secure.class)
-public class ShadowSecureSettings {
+public class ShadowSecureSettings extends ShadowSettings.ShadowSecure {
 
     private static final Map<ContentResolver, Table<Integer, String, Object>> sUserDataMap =
         new WeakHashMap<>();
@@ -48,6 +51,16 @@
         }
     }
 
+    /**
+     * Same implementation as Settings.Secure because robolectric.ShadowSettings.ShadowSecure
+     * overrides this API.
+     */
+    @Implementation
+    public static boolean putString(ContentResolver resolver, String name, String value) {
+        return putStringForUser(resolver, name, value, null, false,
+                resolver.getUserId(), DEFAULT_OVERRIDEABLE_BY_RESTORE);
+    }
+
     @Implementation
     public static String getStringForUser(ContentResolver resolver, String name, int userHandle) {
         final Table<Integer, String, Object> userTable = getUserTable(resolver);
@@ -56,6 +69,15 @@
         }
     }
 
+    /**
+     * Same implementation as Settings.Secure because robolectric.ShadowSettings.ShadowSecure
+     * overrides this API.
+     */
+    @Implementation
+    public static boolean putInt(ContentResolver resolver, String name, int value) {
+        return putIntForUser(resolver, name, value, resolver.getUserId());
+    }
+
     @Implementation
     public static boolean putIntForUser(ContentResolver resolver, String name, int value,
         int userHandle) {
@@ -66,6 +88,15 @@
         }
     }
 
+    /**
+     * Same implementation as Settings.Secure because robolectric.ShadowSettings.ShadowSecure
+     * overrides this API.
+     */
+    @Implementation
+    public static int getInt(ContentResolver resolver, String name, int def) {
+        return getIntForUser(resolver, name, def, resolver.getUserId());
+    }
+
     @Implementation
     public static int getIntForUser(ContentResolver resolver, String name, int def,
         int userHandle) {
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java
index fce0498..8dc3b8f 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java
@@ -16,12 +16,13 @@
 
 package com.android.settings.testutils.shadow;
 
-import android.annotation.NonNull;
 import android.os.storage.DiskInfo;
 import android.os.storage.StorageManager;
 import android.os.storage.VolumeInfo;
 import android.os.storage.VolumeRecord;
 
+import androidx.annotation.NonNull;
+
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.annotation.Resetter;
@@ -30,7 +31,7 @@
 import java.util.List;
 
 @Implements(StorageManager.class)
-public class ShadowStorageManager {
+public class ShadowStorageManager extends org.robolectric.shadows.ShadowStorageManager {
 
     private static boolean sIsUnmountCalled;
     private static boolean sIsForgetCalled;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSystemSettings.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSystemSettings.java
new file mode 100644
index 0000000..3bb046a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSystemSettings.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1;
+
+import android.content.ContentResolver;
+import android.provider.Settings;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+import org.robolectric.shadows.ShadowSettings;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+@Implements(value = Settings.System.class)
+public class ShadowSystemSettings extends ShadowSettings.ShadowSystem {
+    private static final Map<ContentResolver, Map<String, String>> sDataMap = new WeakHashMap<>();
+
+    @Resetter
+    public static void reset() {
+        sDataMap.clear();
+    }
+
+    @Implementation(minSdk = JELLY_BEAN_MR1)
+    protected static boolean putStringForUser(ContentResolver cr, String name, String value,
+            int userHandle) {
+        return putString(cr, name, value);
+    }
+
+    @Implementation(minSdk = JELLY_BEAN_MR1)
+    protected static String getStringForUser(ContentResolver cr, String name, int userHandle) {
+        return getString(cr, name);
+    }
+
+    @Implementation
+    protected static boolean putString(ContentResolver cr, String name, String value) {
+        get(cr).put(name, value);
+        return true;
+    }
+
+    @Implementation
+    protected static String getString(ContentResolver cr, String name) {
+        return get(cr).get(name);
+    }
+
+    private static Map<String, String> get(ContentResolver cr) {
+        Map<String, String> map = sDataMap.get(cr);
+        if (map == null) {
+            map = new HashMap<>();
+            sDataMap.put(cr, map);
+        }
+        return map;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
deleted file mode 100644
index 324a829..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUserManager.java
+++ /dev/null
@@ -1,283 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils.shadow;
-
-import android.annotation.UserIdInt;
-import android.content.pm.UserInfo;
-import android.os.Bundle;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.os.UserManager.EnforcingUser;
-
-import com.google.android.collect.Maps;
-
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-import org.robolectric.shadow.api.Shadow;
-
-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;
-
-@Implements(value = UserManager.class)
-public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager {
-
-    private static boolean sIsSupportsMultipleUsers;
-
-    private static final int PRIMARY_USER_ID = 0;
-
-    private final List<String> mBaseRestrictions = new ArrayList<>();
-    private final Map<String, List<EnforcingUser>> mRestrictionSources = new HashMap<>();
-    private final List<UserInfo> mUserProfileInfos = new ArrayList<>();
-    private final Set<Integer> mManagedProfiles = new HashSet<>();
-    private final Set<String> mEnabledTypes = new HashSet<>();
-    private boolean mIsQuietModeEnabled = false;
-    private int[] profileIdsForUser = new int[0];
-    private boolean mUserSwitchEnabled;
-    private Bundle mDefaultGuestUserRestriction = new Bundle();
-    private boolean mIsGuestUser = false;
-
-    private @UserManager.UserSwitchabilityResult int mSwitchabilityStatus =
-            UserManager.SWITCHABILITY_STATUS_OK;
-    private final Map<Integer, Integer> mSameProfileGroupIds = Maps.newHashMap();
-
-    public void addProfile(UserInfo userInfo) {
-        mUserProfileInfos.add(userInfo);
-    }
-
-    @Resetter
-    public static void reset() {
-        sIsSupportsMultipleUsers = false;
-    }
-
-    @Implementation
-    protected List<UserInfo> getProfiles(@UserIdInt int userHandle) {
-        return mUserProfileInfos;
-    }
-
-    @Implementation
-    protected int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
-        int[] ids = new int[mUserProfileInfos.size()];
-        for (int i = 0; i < mUserProfileInfos.size(); i++) {
-            ids[i] = mUserProfileInfos.get(i).id;
-        }
-        return ids;
-    }
-
-    @Implementation
-    protected int getCredentialOwnerProfile(@UserIdInt int userHandle) {
-        return userHandle;
-    }
-
-    @Implementation
-    protected boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
-        return mBaseRestrictions.contains(restrictionKey);
-    }
-
-    public void addBaseUserRestriction(String restriction) {
-        mBaseRestrictions.add(restriction);
-    }
-
-    @Implementation
-    protected Bundle getDefaultGuestRestrictions() {
-        return mDefaultGuestUserRestriction;
-    }
-
-    @Implementation
-    protected void setDefaultGuestRestrictions(Bundle restrictions) {
-        mDefaultGuestUserRestriction = restrictions;
-    }
-
-    public void addGuestUserRestriction(String restriction) {
-        mDefaultGuestUserRestriction.putBoolean(restriction, true);
-    }
-
-    public boolean hasGuestUserRestriction(String restriction, boolean expectedValue) {
-        return mDefaultGuestUserRestriction.containsKey(restriction)
-                && mDefaultGuestUserRestriction.getBoolean(restriction) == expectedValue;
-    }
-
-
-    @Implementation
-    protected boolean hasUserRestriction(String restrictionKey) {
-        return hasUserRestriction(restrictionKey, UserHandle.of(UserHandle.myUserId()));
-    }
-
-    public static ShadowUserManager getShadow() {
-        return (ShadowUserManager) Shadow.extract(
-                RuntimeEnvironment.application.getSystemService(UserManager.class));
-    }
-
-    @Implementation
-    protected List<EnforcingUser> getUserRestrictionSources(
-            String restrictionKey, UserHandle userHandle) {
-        // Return empty list when there is no enforcing user, otherwise might trigger
-        // NullPointer Exception in RestrictedLockUtils.checkIfRestrictionEnforced.
-        List<EnforcingUser> enforcingUsers =
-                mRestrictionSources.get(restrictionKey + userHandle.getIdentifier());
-        return enforcingUsers == null ? Collections.emptyList() : enforcingUsers;
-    }
-
-    public void setUserRestrictionSources(
-            String restrictionKey, UserHandle userHandle, List<EnforcingUser> enforcers) {
-        mRestrictionSources.put(restrictionKey + userHandle.getIdentifier(), enforcers);
-    }
-
-    @Implementation
-    protected boolean isQuietModeEnabled(UserHandle userHandle) {
-        return mIsQuietModeEnabled;
-    }
-
-    public void setQuietModeEnabled(boolean enabled) {
-        mIsQuietModeEnabled = enabled;
-    }
-
-    @Implementation
-    protected int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
-        return profileIdsForUser;
-    }
-
-    public void setProfileIdsWithDisabled(int[] profileIds) {
-        profileIdsForUser = profileIds;
-    }
-
-    @Implementation
-    protected boolean isUserSwitcherEnabled() {
-        return mUserSwitchEnabled;
-    }
-
-    @Implementation
-    protected boolean isManagedProfile(int userId) {
-        return mManagedProfiles.contains(userId);
-    }
-
-    public void setManagedProfiles(Set<Integer> profileIds) {
-        mManagedProfiles.clear();
-        mManagedProfiles.addAll(profileIds);
-    }
-
-    public void setUserSwitcherEnabled(boolean userSwitchEnabled) {
-        mUserSwitchEnabled = userSwitchEnabled;
-    }
-
-    @Implementation
-    protected static boolean supportsMultipleUsers() {
-        return sIsSupportsMultipleUsers;
-    }
-
-    @Implementation
-    protected boolean isSameProfileGroup(@UserIdInt int userId, int otherUserId) {
-        return mSameProfileGroupIds.containsKey(userId)
-                && mSameProfileGroupIds.get(userId) == otherUserId
-                || mSameProfileGroupIds.containsKey(otherUserId)
-                && mSameProfileGroupIds.get(otherUserId) == userId;
-    }
-
-    public Map<Integer, Integer> getSameProfileGroupIds() {
-        return mSameProfileGroupIds;
-    }
-
-    public void setSupportsMultipleUsers(boolean supports) {
-        sIsSupportsMultipleUsers = supports;
-    }
-
-    @Implementation
-    protected UserInfo getUserInfo(@UserIdInt int userId) {
-        return mUserProfileInfos.stream()
-                .filter(userInfo -> userInfo.id == userId)
-                .findFirst()
-                .orElse(super.getUserInfo(userId));
-    }
-
-    @Implementation
-    protected @UserManager.UserSwitchabilityResult int getUserSwitchability() {
-        return mSwitchabilityStatus;
-    }
-
-    public void setSwitchabilityStatus(@UserManager.UserSwitchabilityResult int newStatus) {
-        mSwitchabilityStatus = newStatus;
-    }
-
-    @Implementation
-    protected boolean isUserTypeEnabled(String userType) {
-        return mEnabledTypes.contains(userType);
-    }
-
-    public void setUserTypeEnabled(String type, boolean enabled) {
-        if (enabled) {
-            mEnabledTypes.add(type);
-        } else {
-            mEnabledTypes.remove(type);
-        }
-    }
-
-    @Implementation
-    protected UserInfo getPrimaryUser() {
-        return new UserInfo(PRIMARY_USER_ID, null, null,
-                UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY);
-    }
-
-    protected boolean setUserEphemeral(@UserIdInt int userId, boolean enableEphemeral) {
-        UserInfo userInfo = mUserProfileInfos.stream()
-                .filter(user -> user.id == userId)
-                .findFirst()
-                .orElse(super.getUserInfo(userId));
-
-        boolean isSuccess = false;
-        boolean isEphemeralUser =
-                        (userInfo.flags & UserInfo.FLAG_EPHEMERAL) != 0;
-        boolean isEphemeralOnCreateUser =
-                (userInfo.flags & UserInfo.FLAG_EPHEMERAL_ON_CREATE)
-                    != 0;
-        // when user is created in ephemeral mode via FLAG_EPHEMERAL
-        // its state cannot be changed.
-        // FLAG_EPHEMERAL_ON_CREATE is used to keep track of this state
-        if (!isEphemeralOnCreateUser) {
-            isSuccess = true;
-            if (isEphemeralUser != enableEphemeral) {
-                if (enableEphemeral) {
-                    userInfo.flags |= UserInfo.FLAG_EPHEMERAL;
-                } else {
-                    userInfo.flags &= ~UserInfo.FLAG_EPHEMERAL;
-                }
-            }
-        }
-        return isSuccess;
-    }
-
-    @Implementation
-    protected void setUserAdmin(@UserIdInt int userId) {
-        for (int i = 0; i < mUserProfileInfos.size(); i++) {
-            mUserProfileInfos.get(i).flags |= UserInfo.FLAG_ADMIN;
-        }
-    }
-
-    @Implementation
-    protected boolean isGuestUser() {
-        return mIsGuestUser;
-    }
-
-    public void setGuestUser(boolean isGuestUser) {
-        mIsGuestUser = isGuestUser;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
deleted file mode 100644
index ea57bf7..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiManager.java
+++ /dev/null
@@ -1,93 +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.testutils.shadow;
-
-import static org.robolectric.RuntimeEnvironment.application;
-
-import android.net.wifi.ScanResult;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiManager;
-import android.net.wifi.hotspot2.PasspointConfiguration;
-
-import org.robolectric.annotation.HiddenApi;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.shadow.api.Shadow;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-@Implements(value = WifiManager.class)
-public class ShadowWifiManager extends org.robolectric.shadows.ShadowWifiManager {
-
-    private List<PasspointConfiguration> mPasspointConfiguration;
-
-    public WifiConfiguration savedWifiConfig;
-    private SoftApConfiguration mSavedApConfig;
-
-    @Implementation
-    protected SoftApConfiguration getSoftApConfiguration() {
-        return mSavedApConfig;
-    }
-
-    @Implementation
-    protected boolean setSoftApConfiguration(SoftApConfiguration softApConfig) {
-        mSavedApConfig = softApConfig;
-        return true;
-    }
-
-    @HiddenApi // @SystemApi
-    @Implementation
-    protected void connect(WifiConfiguration config, WifiManager.ActionListener listener) {
-        savedWifiConfig = config;
-    }
-
-    @HiddenApi
-    @Implementation
-    protected void save(WifiConfiguration config, WifiManager.ActionListener listener) {
-        savedWifiConfig = config;
-    }
-
-    @Implementation
-    protected List<PasspointConfiguration> getPasspointConfigurations() {
-        return mPasspointConfiguration == null ? Collections.emptyList() : mPasspointConfiguration;
-    }
-
-    @Implementation
-    protected void addOrUpdatePasspointConfiguration(PasspointConfiguration config) {
-        if (mPasspointConfiguration == null) {
-            mPasspointConfiguration = new ArrayList<>();
-        }
-        mPasspointConfiguration.add(config);
-    }
-
-    @Implementation
-    protected boolean isDualModeSupported() {
-        return false;
-    }
-
-    @Implementation
-    protected List<ScanResult> getScanResults() {
-        return new ArrayList<ScanResult>();
-    }
-
-    public static ShadowWifiManager get() {
-        return Shadow.extract(application.getSystemService(WifiManager.class));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiP2pManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiP2pManager.java
deleted file mode 100644
index 2fd8f6b..0000000
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowWifiP2pManager.java
+++ /dev/null
@@ -1,55 +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.testutils.shadow;
-
-import android.net.wifi.p2p.WifiP2pManager;
-
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-import org.robolectric.annotation.Resetter;
-
-/**
- * Shadow class for WifiP2pManager.
- */
-@Implements(value = WifiP2pManager.class)
-public class ShadowWifiP2pManager extends org.robolectric.shadows.ShadowWifiP2pManager {
-
-    private static int sFactoryResetCount;
-
-    @Implementation
-    protected void factoryReset(WifiP2pManager.Channel c, WifiP2pManager.ActionListener listener) {
-        if (c != null) {
-            sFactoryResetCount++;
-        } else {
-            throw new IllegalArgumentException("channel must be non-null.");
-        }
-    }
-
-    @Resetter
-    public static void reset() {
-        sFactoryResetCount = 0;
-    }
-
-    /**
-     * Return the count of factoryReset called.
-     *
-     * @return the count of factoryReset called.
-     */
-    public static int getFactoryResetCount() {
-        return sFactoryResetCount;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java
index 8f78df9..d74b6df 100644
--- a/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/theme/ContrastPreferenceControllerTest.java
@@ -74,7 +74,7 @@
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
+    @Ignore("b/313614100")
     @Test
     public void testHandlePreferenceTreeClick() {
         Preference preference = new Preference(mContext);
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/MultiUserPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/MultiUserPreferenceControllerTest.java
new file mode 100644
index 0000000..fd73eab
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/users/MultiUserPreferenceControllerTest.java
@@ -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.users;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+
+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;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
+public class MultiUserPreferenceControllerTest {
+
+    private Context mContext;
+    private ShadowUserManager mUserManager;
+    private MultiUserPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mUserManager = ShadowUserManager.getShadow();
+        mController = new MultiUserPreferenceController(mContext, "test_key");
+    }
+
+    @After
+    public void tearDown() {
+        ShadowUserManager.reset();
+    }
+
+    @Test
+    public void getAvailabilityStatus_multiuserEnabled_shouldReturnAvailable() {
+        mUserManager.setSupportsMultipleUsers(true);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_multiuserDisabled_shouldReturnNotAvailable() {
+        mUserManager.setSupportsMultipleUsers(false);
+
+        assertThat(mController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+    }
+}
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/users/TimeoutToDockUserPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
index 92bdc6d..7bc66c8 100644
--- a/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/TimeoutToDockUserPreferenceControllerTest.java
@@ -33,7 +33,6 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
-import com.android.settings.Utils;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.fuelgauge.BatteryBackupHelperTest.ShadowUserHandle;
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
@@ -127,19 +126,20 @@
                 BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
     }
 
-    @Ignore
+    @Ignore("b/313530297")
     @Test
     public void getAvailabilityStatus_isCurrentlyMainUser_returnDisabledForUser() {
-        when(Utils.canCurrentUserDream(mContext)).thenReturn(true);
+        when(mUserManager.getMainUser()).thenReturn(UserHandle.CURRENT);
+        when(mUserManager.isUserForeground()).thenReturn(true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
                 BasePreferenceController.DISABLED_FOR_USER);
     }
 
-    @Ignore
+    @Ignore("b/313530297")
     @Test
     public void getAvailabilityStatus_featureAndMultiUserEnabledAndNonMainUser_returnAvailable() {
-        when(Utils.canCurrentUserDream(mContext)).thenReturn(false);
+        when(mUserManager.isUserForeground()).thenReturn(true);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
                 BasePreferenceController.AVAILABLE);
diff --git a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
index ca3521b..874b978 100644
--- a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
@@ -82,6 +82,7 @@
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
         ShadowDevicePolicyManager.class
 })
 public class UserDetailsSettingsTest {
@@ -264,6 +265,7 @@
         verify(mSwitchUserPref).setEnabled(false);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_adminWithTelephony_shouldShowPhonePreference() {
         setupSelectedUser();
@@ -309,6 +311,7 @@
         verify(mFragment).removePreference(KEY_APP_AND_CONTENT_ACCESS);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsSecondaryUser_shouldShowRemovePreference() {
         setupSelectedUser();
@@ -321,6 +324,7 @@
         verify(mFragment, never()).removePreference(KEY_REMOVE_USER);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsNewRestrictedUser_shouldOpenAppContentScreen() {
         setupSelectedRestrictedUser();
@@ -343,6 +347,7 @@
                 .isEqualTo(true);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsRestrictedUser_shouldSetupPreferences() {
         setupSelectedRestrictedUser();
@@ -372,6 +377,7 @@
         verify(mActivity, never()).startActivity(any(Intent.class));
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_adminSelectsGuest_shouldShowRemovePreference() {
         setupSelectedGuest();
@@ -415,6 +421,7 @@
         verify(mFragment).removePreference(KEY_REMOVE_USER);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_userHasCallRestriction_shouldSetPhoneSwitchUnChecked() {
         setupSelectedUser();
@@ -427,6 +434,7 @@
         verify(mPhonePref).setChecked(false);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_noCallRestriction_shouldSetPhoneSwitchChecked() {
         setupSelectedUser();
@@ -525,6 +533,7 @@
         verify(mFragment, never()).switchUser();
     }
 
+    @Ignore("b/313530297")
     @Test
     public void onPreferenceClick_removeGuestClicked_canDelete_shouldShowDialog() {
         setupSelectedGuest();
@@ -542,6 +551,7 @@
         verify(mFragment).showDialog(DIALOG_CONFIRM_RESET_GUEST);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void onPreferenceClick_removeRestrictedClicked_canDelete_shouldShowDialog() {
         setupSelectedRestrictedUser();
@@ -560,6 +570,7 @@
         verify(mFragment).showDialog(DIALOG_CONFIRM_REMOVE);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void onPreferenceClick_removeClicked_canDelete_shouldShowDialog() {
         setupSelectedUser();
@@ -651,6 +662,7 @@
         assertThat(result).isFalse();
     }
 
+    @Ignore("b/313530297")
     @Test
     public void canDeleteUser_adminSelectsUser_noRestrictions_shouldReturnTrue() {
         setupSelectedUser();
@@ -662,7 +674,6 @@
         assertThat(result).isTrue();
     }
 
-    @Ignore
     @Test
     public void canDeleteUser_adminSelectsUser_hasRemoveRestriction_shouldReturnFalse() {
         setupSelectedUser();
@@ -685,6 +696,7 @@
         assertThat(result).isFalse();
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_userSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedUser();
@@ -694,6 +706,7 @@
         verify(mFragment, never()).removePreference(KEY_GRANT_ADMIN);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_userSelected_shouldNotShowGrantAdminPref() {
         setupSelectedUser();
@@ -701,6 +714,7 @@
         verify(mFragment).removePreference(KEY_GRANT_ADMIN);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_restrictUserSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedUser();
@@ -711,6 +725,7 @@
         verify(mFragment).removePreference(KEY_GRANT_ADMIN);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_mainUserSelected_shouldShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedMainUser();
@@ -719,6 +734,7 @@
         verify(mFragment).removePreference(KEY_GRANT_ADMIN);
     }
 
+    @Ignore("b/313530297")
     @Test
     public void initialize_guestSelected_shouldNotShowGrantAdminPref_MultipleAdminEnabled() {
         setupSelectedGuest();
diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
index 9d818aa..a399e17 100644
--- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
@@ -47,6 +47,7 @@
 import android.graphics.Bitmap;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.os.Looper;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -97,6 +98,7 @@
         ShadowUserManager.class,
         ShadowDevicePolicyManager.class,
         SettingsShadowResources.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
 })
 public class UserSettingsTest {
 
@@ -211,7 +213,7 @@
     public void testGetRawDataToIndex_returnAllIndexablePreferences() {
         String[] expectedKeys = {KEY_ALLOW_MULTIPLE_USERS};
         List<String> keysResultList = new ArrayList<>();
-
+        ShadowUserManager.getShadow().setSupportsMultipleUsers(true);
         List<SearchIndexableRaw> rawData =
                 UserSettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, true);
 
@@ -261,7 +263,6 @@
                 eq(SettingsEnums.ACTION_USER_GUEST_EXIT_CONFIRMED));
     }
 
-    @Ignore
     @Test
     public void withDisallowRemoveUser_ShouldDisableRemoveUser() {
         // TODO(b/115781615): Tidy robolectric tests
@@ -709,6 +710,7 @@
         verify(mUserManager).getAliveUsers();
     }
 
+    @Ignore
     @Test
     public void updateUserList_userIconMissing_shouldLoadIcon() {
         UserInfo currentUser = getAdminUser(true);
@@ -720,6 +722,7 @@
         doReturn(userIcon).when(mUserManager).getUserIcon(ACTIVE_USER_ID);
 
         mFragment.updateUserList();
+        shadowOf(Looper.getMainLooper()).idle();
 
         verify(mUserManager).getUserIcon(ACTIVE_USER_ID);
         // updateUserList should be called another time after loading the icons
diff --git a/tests/robotests/src/com/android/settings/utils/ActivityControllerWrapper.java b/tests/robotests/src/com/android/settings/utils/ActivityControllerWrapper.java
deleted file mode 100644
index 6ebbc65..0000000
--- a/tests/robotests/src/com/android/settings/utils/ActivityControllerWrapper.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.utils;
-
-import android.os.Bundle;
-
-import org.robolectric.android.controller.ActivityController;
-
-/*
- * b/275023433
- * This class is a workaround for Robolectric, in order to re-enable presubmit
- * We don't use ActivityController#visible() to avoid test crash
- */
-public class ActivityControllerWrapper {
-
-    private static final boolean ENABLE_WORKAROUND = true;
-
-
-    public static ActivityController setup(ActivityController controller) {
-        if (ENABLE_WORKAROUND) {
-            return controller.create().start().postCreate(null).resume();
-        } else {
-            return controller.setup();
-        }
-    }
-
-    public static ActivityController setup(ActivityController controller, Bundle savedState) {
-        return controller.create(savedState)
-                .start()
-                .restoreInstanceState(savedState)
-                .postCreate(savedState)
-                .resume();
-    }
-
-}
diff --git a/tests/robotests/src/com/android/settings/vpn2/AppDialogFragmentTest.java b/tests/robotests/src/com/android/settings/vpn2/AppDialogFragmentTest.java
index 2b81f16..b13ec6a 100644
--- a/tests/robotests/src/com/android/settings/vpn2/AppDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/vpn2/AppDialogFragmentTest.java
@@ -29,8 +29,13 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
+
 public class AppDialogFragmentTest {
 
     @Mock
diff --git a/tests/robotests/src/com/android/settings/wallpaper/FallbackHomeActivityTest.java b/tests/robotests/src/com/android/settings/wallpaper/FallbackHomeActivityTest.java
index b89f4b3..0c2583f 100644
--- a/tests/robotests/src/com/android/settings/wallpaper/FallbackHomeActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wallpaper/FallbackHomeActivityTest.java
@@ -18,8 +18,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.app.Application;
 import android.app.WallpaperColors;
 import android.app.WallpaperManager;
@@ -27,9 +25,13 @@
 import android.content.Context;
 import android.os.Handler;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
 import com.android.settings.FallbackHome;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -42,10 +44,10 @@
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.robolectric.shadows.ShadowApplication;
 
 @RunWith(RobolectricTestRunner.class)
 public class FallbackHomeActivityTest {
@@ -64,6 +66,7 @@
         mController = Robolectric.buildActivity(FallbackHome.class);
     }
 
+    @Ignore("b/315124270")
     @Test
     @Config(shadows = ShadowWallpaperManager.class)
     public void wallpaperColorsChangedListener_ensured_removed() {
diff --git a/tests/robotests/src/com/android/settings/wallpaper/WallpaperSuggestionActivityTest.java b/tests/robotests/src/com/android/settings/wallpaper/WallpaperSuggestionActivityTest.java
index ed63cc0..1fff406 100644
--- a/tests/robotests/src/com/android/settings/wallpaper/WallpaperSuggestionActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wallpaper/WallpaperSuggestionActivityTest.java
@@ -27,12 +27,11 @@
 import android.content.Intent;
 import android.content.res.Resources;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import com.google.android.setupcompat.util.WizardManagerHelper;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -102,6 +101,7 @@
                 .isTrue();
     }
 
+    @Ignore("b/315124270")
     @Test
     public void addExtras_intentFromSetupWizard_extrasHasWallpaperOnlyAndLaunchedSuw() {
         WallpaperSuggestionActivity activity =
@@ -119,15 +119,13 @@
                 .isEqualTo("app_launched_suw");
     }
 
+    @Ignore("b/315124270")
     @Test
     public void addExtras_intentNotFromSetupWizard_extrasHasFocusWallpaper() {
-        WallpaperSuggestionActivity activity =
-                (WallpaperSuggestionActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WallpaperSuggestionActivity.class,
-                        new Intent(Intent.ACTION_MAIN).setComponent(
+        WallpaperSuggestionActivity activity = Robolectric.buildActivity(
+                WallpaperSuggestionActivity.class, new Intent(Intent.ACTION_MAIN).setComponent(
                         new ComponentName(RuntimeEnvironment.application,
-                                PACKAGE_WALLPAPER_ACTIVITY)))).get();
-
+                                PACKAGE_WALLPAPER_ACTIVITY))).setup().get();
         Intent intent = Shadows.shadowOf(activity).getNextStartedActivity();
 
         assertThat(intent).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
index fc6df9c..c88b263 100644
--- a/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wallpaper/WallpaperTypePreferenceControllerTest.java
@@ -25,9 +25,9 @@
 import androidx.preference.Preference;
 
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -45,19 +45,20 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = (Activity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(Activity.class)).get();
+        mContext = Robolectric.setupActivity(Activity.class);
         mController = new WallpaperTypePreferenceController(mContext, "pref_key");
         mIntent = new Intent();
         mPreference = new Preference(mContext);
     }
 
+    @Ignore("b/315124270")
     @Test
     public void getAvailabilityStatus_byDefault_shouldBeShown() {
         assertThat(mController.getAvailabilityStatus())
                 .isEqualTo(BasePreferenceController.AVAILABLE);
     }
 
+    @Ignore("b/315124270")
     @Test
     public void testHandlePreferenceTreeClick_intentNull_shouldDoNothing() {
         mPreference.setIntent(null);
@@ -67,6 +68,7 @@
         assertThat(handled).isFalse();
     }
 
+    @Ignore("b/315124270")
     @Test
     public void testHandlePreferenceTreeClick_shouldLaunchIntent() {
         mPreference.setIntent(mIntent);
diff --git a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
index 9d7fbae..d35b608 100644
--- a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
+++ b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
@@ -41,12 +41,14 @@
 
 import androidx.fragment.app.FragmentActivity;
 
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.applications.DefaultAppInfo;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -54,15 +56,19 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowPackageManager;
-import org.robolectric.shadows.ShadowUserManager;
 import org.robolectric.util.ReflectionHelpers;
 
 import java.util.Arrays;
 import java.util.Collections;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        ShadowUserManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class WebViewAppPickerTest {
 
     private final static String PACKAGE_NAME = "com.example.test";
@@ -202,6 +208,7 @@
         verify(mActivity, times(1)).finish();
     }
 
+    @Ignore("b/313615637")
     @Test
     public void testNotFinishedIfAdmin() {
         mUserManager.setIsAdminUser(true);
diff --git a/tests/robotests/src/com/android/settings/widget/AppCheckBoxPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/AppCheckBoxPreferenceTest.java
index 6340b16..9c4e080 100644
--- a/tests/robotests/src/com/android/settings/widget/AppCheckBoxPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/AppCheckBoxPreferenceTest.java
@@ -24,8 +24,6 @@
 
 import androidx.preference.PreferenceViewHolder;
 
-import com.android.settings.R;
-
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,20 +44,24 @@
         mPreference = new AppCheckBoxPreference(mContext);
         mAttrPreference = new AppCheckBoxPreference(mContext, null /* attrs */);
         mPreferenceViewHolder = PreferenceViewHolder.createInstanceForTests(
-                LayoutInflater.from(mContext).inflate(R.layout.preference_app, null));
+                LayoutInflater.from(mContext)
+                        .inflate(com.android.settingslib.widget.preference.app.R.layout.preference_app, null));
     }
 
     @Test
     public void testGetLayoutResource() {
-        assertThat(mPreference.getLayoutResource()).isEqualTo(R.layout.preference_app);
-        assertThat(mAttrPreference.getLayoutResource()).isEqualTo(R.layout.preference_app);
+        assertThat(mPreference.getLayoutResource())
+                .isEqualTo(com.android.settingslib.widget.preference.app.R.layout.preference_app);
+        assertThat(mAttrPreference.getLayoutResource())
+                .isEqualTo(com.android.settingslib.widget.preference.app.R.layout.preference_app);
     }
 
     @Test
     public void onBindViewHolder_appendixGone() {
         mPreference.onBindViewHolder(mPreferenceViewHolder);
 
-        assertThat(mPreferenceViewHolder.findViewById(R.id.appendix).getVisibility())
-                .isEqualTo(View.GONE);
+        View appendix =
+                mPreferenceViewHolder.findViewById(com.android.settingslib.widget.preference.app.R.id.appendix);
+        assertThat(appendix.getVisibility()).isEqualTo(View.GONE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java
deleted file mode 100644
index e26643f..0000000
--- a/tests/robotests/src/com/android/settings/widget/CardPreferenceTest.java
+++ /dev/null
@@ -1,344 +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
- *Visibility_setGoneForPrimaryButton_buttonGroupIsGone
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF 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 android.view.View.GONE;
-import static android.view.View.VISIBLE;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.content.Context;
-import android.view.View;
-import android.widget.Button;
-
-import androidx.preference.PreferenceViewHolder;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.class)
-public class CardPreferenceTest {
-
-    private CardPreference mCardPreference;
-    private PreferenceViewHolder mHolder;
-
-    @Before
-    public void setUp() {
-        Context context = ApplicationProvider.getApplicationContext();
-        context.setTheme(R.style.Theme_Settings);
-        mCardPreference = new CardPreference(context);
-
-        mHolder = PreferenceViewHolder.createInstanceForTests(
-                View.inflate(context, R.layout.card_preference_layout, /* parent= */ null));
-    }
-
-    @Test
-    public void newACardPreference_layoutResourceShouldBeCardPreferenceLayout() {
-        Context context = ApplicationProvider.getApplicationContext();
-        context.setTheme(R.style.SettingsPreferenceTheme);
-
-        CardPreference cardPreference = new CardPreference(context);
-
-        assertThat(cardPreference.getLayoutResource()).isEqualTo(R.layout.card_preference_layout);
-    }
-
-    @Test
-    public void onBindViewHolder_noButtonVisible_buttonsLayoutIsGone() {
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getCardPreferenceButtonsView().getVisibility()).isEqualTo(GONE);
-    }
-
-    @Test
-    public void onBindViewHolder_setPrimaryButtonVisibility_buttonsLayoutIsVisible() {
-        mCardPreference.setPrimaryButtonVisible(true);
-
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getCardPreferenceButtonsView().getVisibility()).isEqualTo(VISIBLE);
-    }
-
-    @Test
-    public void onBindViewHolder_setPrimaryButtonVisibilityToVisible() {
-        mCardPreference.setPrimaryButtonVisible(true);
-
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getPrimaryButton().getVisibility()).isEqualTo(VISIBLE);
-    }
-
-    @Test
-    public void onBindViewHolder_setSecondaryButtonVisibility_buttonsLayoutIsVisible() {
-        mCardPreference.setSecondaryButtonVisible(true);
-
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getCardPreferenceButtonsView().getVisibility()).isEqualTo(VISIBLE);
-    }
-
-    @Test
-    public void onBindViewHolder_setSecondaryButtonVisibilityToVisible() {
-        mCardPreference.setSecondaryButtonVisible(true);
-
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getSecondaryButton().getVisibility()).isEqualTo(VISIBLE);
-    }
-
-    @Test
-    public void onBindViewHolder_setPrimaryButtonTextToExpectedText() {
-        String expectedText = "primary-button";
-        mCardPreference.setPrimaryButtonText(expectedText);
-
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getPrimaryButton().getText().toString()).isEqualTo(expectedText);
-    }
-
-    @Test
-    public void onBindViewHolder_setSecondaryButtonTextToExpectedText() {
-        String expectedText = "secondary-button";
-        mCardPreference.setSecondaryButtonText(expectedText);
-
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getSecondaryButton().getText().toString()).isEqualTo(expectedText);
-    }
-
-    @Test
-    public void onBindViewHolder_initialTextForPrimaryButtonShouldBeEmpty() {
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getPrimaryButton().getText().toString()).isEqualTo("");
-    }
-
-    @Test
-    public void onBindViewHolder_initialTextForSecondaryButtonShouldBeEmpty() {
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getSecondaryButton().getText().toString()).isEqualTo("");
-    }
-
-    @Test
-    public void performClickOnPrimaryButton_callClickListener() {
-        final boolean[] hasCalled = {false};
-        View.OnClickListener clickListener = v -> hasCalled[0] = true;
-        mCardPreference.setPrimaryButtonClickListener(clickListener);
-
-        mCardPreference.onBindViewHolder(mHolder);
-        getPrimaryButton().performClick();
-
-        assertThat(hasCalled[0]).isTrue();
-    }
-
-    @Test
-    public void performClickOnSecondaryButton_callClickListener() {
-        final boolean[] hasCalled = {false};
-        View.OnClickListener clickListener = v -> hasCalled[0] = true;
-        mCardPreference.setSecondaryButtonClickListener(clickListener);
-
-        mCardPreference.onBindViewHolder(mHolder);
-        getSecondaryButton().performClick();
-
-        assertThat(hasCalled[0]).isTrue();
-    }
-
-    @Test
-    public void onBindViewHolder_primaryButtonDefaultIsGone() {
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getPrimaryButton().getVisibility()).isEqualTo(GONE);
-    }
-
-    @Test
-    public void onBindViewHolder_secondaryButtonDefaultIsGone() {
-        mCardPreference.onBindViewHolder(mHolder);
-
-        assertThat(getSecondaryButton().getVisibility()).isEqualTo(GONE);
-    }
-
-    @Test
-    public void setPrimaryButtonVisibility_setTrueAfterBindViewHolder_isVisible() {
-        mCardPreference.setPrimaryButtonVisible(false);
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setPrimaryButtonVisible(true);
-
-        assertThat(getPrimaryButton().getVisibility()).isEqualTo(VISIBLE);
-    }
-
-    @Test
-    public void setPrimaryButtonText_setAfterBindViewHolder_setOnUi() {
-        String expectedText = "123456";
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setPrimaryButtonText(expectedText);
-
-        assertThat(getPrimaryButton().getText().toString()).isEqualTo(expectedText);
-    }
-
-    @Test
-    public void setPrimaryButtonText_setNull_isEmptyText() {
-        final String emptyString = "";
-        mCardPreference.setPrimaryButtonText("1234");
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setPrimaryButtonText(null);
-
-        assertThat(getPrimaryButton().getText().toString()).isEqualTo(emptyString);
-    }
-
-    @Test
-    public void setPrimaryButtonClickListener_setAfterOnBindViewHolder() {
-        final String[] hasCalled = {""};
-        String expectedClickedResult = "was called";
-        View.OnClickListener clickListener = v -> hasCalled[0] = expectedClickedResult;
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setPrimaryButtonClickListener(clickListener);
-        getPrimaryButton().performClick();
-
-        assertThat(hasCalled[0]).isEqualTo(expectedClickedResult);
-    }
-
-    @Test
-    public void setPrimaryButtonClickListener_setNull_clearTheOnClickListener() {
-        final String[] hasCalled = {"not called"};
-        View.OnClickListener clickListener = v -> hasCalled[0] = "called once";
-        mCardPreference.setPrimaryButtonClickListener(clickListener);
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setPrimaryButtonClickListener(null);
-        getPrimaryButton().performClick();
-
-        assertThat(hasCalled[0]).isEqualTo("not called");
-    }
-
-    @Test
-    public void setSecondaryButtonVisibility_setTrueAfterBindViewHolder_isVisible() {
-        mCardPreference.setSecondaryButtonVisible(false);
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setSecondaryButtonVisible(true);
-
-        assertThat(getSecondaryButton().getVisibility()).isEqualTo(VISIBLE);
-    }
-
-    @Test
-    public void setSecondaryButtonText_setAfterBindViewHolder_setOnUi() {
-        String expectedText = "10101010";
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setSecondaryButtonText(expectedText);
-
-        assertThat(getSecondaryButton().getText().toString()).isEqualTo(expectedText);
-    }
-
-    @Test
-    public void setSecondaryButtonText_setNull_isEmptyText() {
-        String emptyString = "";
-        mCardPreference.setSecondaryButtonText("1234");
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setSecondaryButtonText(null);
-
-        assertThat(getSecondaryButton().getText().toString()).isEqualTo(emptyString);
-    }
-
-    @Test
-    public void setSecondaryButtonClickListener_setAfterOnBindViewHolder() {
-        final String[] hasCalled = {""};
-        String expectedClickedResult = "2nd was called";
-        View.OnClickListener clickListener = v -> hasCalled[0] = expectedClickedResult;
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setSecondaryButtonClickListener(clickListener);
-        getSecondaryButton().performClick();
-
-        assertThat(hasCalled[0]).isEqualTo(expectedClickedResult);
-    }
-
-    @Test
-    public void setSecondaryButtonClickListener_setNull_clearTheOnClickListener() {
-        final String[] hasCalled = {"not called"};
-        View.OnClickListener clickListener = v -> hasCalled[0] = "called once";
-        mCardPreference.setSecondaryButtonClickListener(clickListener);
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.setSecondaryButtonClickListener(null);
-        getSecondaryButton().performClick();
-
-        assertThat(hasCalled[0]).isEqualTo("not called");
-    }
-
-    @Test
-    public void setPrimaryButtonVisibility_setGoneForSecondaryButton_buttonGroupIsGone() {
-        mCardPreference.setPrimaryButtonVisible(true);
-        mCardPreference.setSecondaryButtonVisible(false);
-        mCardPreference.onBindViewHolder(mHolder);
-        assertWithMessage("PreCondition: buttonsView should be Visible")
-                .that(getCardPreferenceButtonsView().getVisibility())
-                .isEqualTo(VISIBLE);
-
-        mCardPreference.setPrimaryButtonVisible(false);
-
-        assertThat(getCardPreferenceButtonsView().getVisibility()).isEqualTo(GONE);
-    }
-
-    @Test
-    public void setSecondaryButtonVisibility_setGoneForPrimaryButton_buttonGroupIsGone() {
-        mCardPreference.setPrimaryButtonVisible(false);
-        mCardPreference.setSecondaryButtonVisible(true);
-        mCardPreference.onBindViewHolder(mHolder);
-        assertWithMessage("PreCondition: buttonsView should be Visible")
-                .that(getCardPreferenceButtonsView().getVisibility())
-                .isEqualTo(VISIBLE);
-
-        mCardPreference.setSecondaryButtonVisible(false);
-
-        assertThat(getCardPreferenceButtonsView().getVisibility()).isEqualTo(GONE);
-    }
-
-    @Test
-    public void resetLayoutState_buttonGroupIsGone() {
-        mCardPreference.setPrimaryButtonVisible(true);
-        mCardPreference.setSecondaryButtonVisible(true);
-        mCardPreference.onBindViewHolder(mHolder);
-
-        mCardPreference.resetLayoutState();
-
-        assertThat(getCardPreferenceButtonsView().getVisibility()).isEqualTo(GONE);
-    }
-
-    private View getCardPreferenceButtonsView() {
-        return mHolder.findViewById(R.id.card_preference_buttons);
-    }
-
-    private Button getPrimaryButton() {
-        return (Button) mHolder.findViewById(android.R.id.button1);
-    }
-
-    private Button getSecondaryButton() {
-        return (Button) mHolder.findViewById(android.R.id.button2);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index 2d90382..c87aeea 100644
--- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -53,8 +53,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class EntityHeaderControllerTest {
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -84,7 +88,7 @@
     @Test
     public void testBuildView_constructedWithoutView_shouldCreateNewView() {
         mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
-        View view = mController.done(mActivity);
+        View view = mController.done();
 
         assertThat(view).isNotNull();
     }
@@ -92,7 +96,7 @@
     @Test
     public void testBuildView_withContext_shouldBuildPreferenceAllowedBelowDivider() {
         mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
-        Preference preference = mController.done(mActivity, mShadowContext);
+        Preference preference = mController.done(mShadowContext);
 
         assertThat(preference instanceof LayoutPreference).isTrue();
         assertThat(((LayoutPreference)preference).isAllowDividerBelow()).isTrue();
@@ -100,9 +104,10 @@
 
     @Test
     public void testBuildView_constructedWithView_shouldReturnSameView() {
-        View inputView = mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        View inputView = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         mController = EntityHeaderController.newInstance(mActivity, mFragment, inputView);
-        View view = mController.done(mActivity);
+        View view = mController.done();
 
         assertThat(view).isSameInstanceAs(inputView);
     }
@@ -110,18 +115,19 @@
     @Test
     public void bindViews_shouldBindAllData() {
         final String testString = "test";
-        final View header =
-                mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        final View header = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         final TextView label = header.findViewById(R.id.entity_header_title);
         final TextView summary = header.findViewById(R.id.entity_header_summary);
-        final TextView secondSummary = header.findViewById(R.id.entity_header_second_summary);
+        final TextView secondSummary = header.findViewById(
+                com.android.settingslib.widget.preference.layout.R.id.entity_header_second_summary);
 
         mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
         mController.setLabel(testString);
         mController.setSummary(testString);
         mController.setSecondSummary(testString);
         mController.setIcon(mShadowContext.getDrawable(R.drawable.ic_add_24dp));
-        mController.done(mActivity);
+        mController.done();
 
         assertThat(label).isNotNull();
         assertThat(label.getText()).isEqualTo(testString);
@@ -137,20 +143,16 @@
         info.activityInfo = new ActivityInfo();
         info.activityInfo.packageName = "123";
         info.activityInfo.name = "321";
-        final View view = mLayoutInflater
-                .inflate(R.layout.settings_entity_header, null /* root */);
+        final View view = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         when(mActivity.getApplicationContext()).thenReturn(mContext);
 
         mController = EntityHeaderController.newInstance(mActivity, mFragment, view);
-        mController.setEditListener(new View.OnClickListener() {
-            public void onClick(View v) {
-                // do nothing
-            }
-        });
+        mController.setEditListener(v -> {/* do nothing */});
         mController.setButtonActions(
                 EntityHeaderController.ActionType.ACTION_EDIT_PREFERENCE,
                 EntityHeaderController.ActionType.ACTION_NONE);
-        mController.done(mActivity);
+        mController.done();
 
         final ImageButton button1 = view.findViewById(android.R.id.button1);
         assertThat(button1).isNotNull();
@@ -165,14 +167,15 @@
         info.activityInfo = new ActivityInfo();
         info.activityInfo.packageName = "123";
         info.activityInfo.name = "321";
-        final View view = mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        final View view = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         when(mActivity.getApplicationContext()).thenReturn(mContext);
 
         mController = EntityHeaderController.newInstance(mActivity, mFragment, view);
         mController.setButtonActions(
                 EntityHeaderController.ActionType.ACTION_EDIT_PREFERENCE,
                 EntityHeaderController.ActionType.ACTION_NONE);
-        mController.done(mActivity);
+        mController.done();
 
         assertThat(view.findViewById(android.R.id.button1).getVisibility()).isEqualTo(View.GONE);
         assertThat(view.findViewById(android.R.id.button2).getVisibility()).isEqualTo(View.GONE);
@@ -181,8 +184,8 @@
 
     @Test
     public void bindButton_noAppInfo_shouldNotAttachClickListener() {
-        final View appLinks =
-                mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        final View appLinks = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         final FragmentActivity activity = mock(FragmentActivity.class);
         when(mFragment.getActivity()).thenReturn(activity);
 
@@ -192,23 +195,24 @@
                 .setButtonActions(
                         EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE);
-        mController.done(mActivity);
+        mController.done();
 
         assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.GONE);
         assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
 
-        appLinks.findViewById(R.id.entity_header_content).performClick();
+        appLinks.findViewById(com.android.settingslib.widget.preference.layout.R.id.entity_header_content)
+                .performClick();
         verify(mFragment, never()).getActivity();
         verify(activity, never()).startActivity(any(Intent.class));
     }
 
-    @Ignore
+    @Ignore("b/313616350")
     @Test
     public void bindButton_hasAppInfo_shouldAttachClickListener() {
-        final View appLinks =
-                mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        final View appLinks = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         final FragmentActivity activity = mock(FragmentActivity.class);
         when(mFragment.getActivity()).thenReturn(activity);
         when(mContext.getString(eq(R.string.application_info_label))).thenReturn("App Info");
@@ -220,51 +224,52 @@
                 .setButtonActions(
                         EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
                         EntityHeaderController.ActionType.ACTION_NONE);
-        mController.done(mActivity);
+        mController.done();
 
-        appLinks.findViewById(R.id.entity_header_content).performClick();
+        appLinks.findViewById(com.android.settingslib.widget.preference.layout.R.id.entity_header_content)
+                .performClick();
         verify(activity)
                 .startActivityForResultAsUser(any(Intent.class), anyInt(), any(UserHandle.class));
     }
 
     @Test
     public void iconContentDescription_shouldWorkWithSetIcon() {
-        final View view =
-                mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        final View view = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         when(mFragment.getActivity()).thenReturn(mock(FragmentActivity.class));
         mController = EntityHeaderController.newInstance(mActivity, mFragment, view);
         String description = "Fake Description";
         mController.setIcon(mShadowContext.getDrawable(R.drawable.ic_add_24dp));
         mController.setIconContentDescription(description);
-        mController.done(mActivity);
+        mController.done();
         assertThat(view.findViewById(R.id.entity_header_icon).getContentDescription().toString())
                 .isEqualTo(description);
     }
 
     @Test
     public void iconContentDescription_shouldWorkWithoutSetIcon() {
-        final View view = mLayoutInflater
-                .inflate(R.layout.settings_entity_header, null /* root */);
+        final View view = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         when(mFragment.getActivity()).thenReturn(mock(FragmentActivity.class));
         mController = EntityHeaderController.newInstance(mActivity, mFragment, view);
         String description = "Fake Description";
         mController.setIconContentDescription(description);
-        mController.done(mActivity);
+        mController.done();
         assertThat(view.findViewById(R.id.entity_header_icon).getContentDescription().toString())
                 .isEqualTo(description);
     }
 
     @Test
     public void bindButton_hasAppNotifIntent_shouldShowButton() {
-        final View appLinks = mLayoutInflater
-                .inflate(R.layout.settings_entity_header, null /* root */);
+        final View appLinks = mLayoutInflater.inflate(
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
 
         mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setAppNotifPrefIntent(new Intent())
                 .setButtonActions(
                         EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
                         EntityHeaderController.ActionType.ACTION_NONE);
-        mController.done(mActivity);
+        mController.done();
 
         assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.VISIBLE);
@@ -277,23 +282,23 @@
     @Test
     public void instantApps_normalAppsDontGetLabel() {
         final View header = mLayoutInflater.inflate(
-                R.layout.settings_entity_header, null /* root */);
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
-        mController.done(mActivity);
+        mController.done();
 
-        assertThat(header.findViewById(R.id.install_type).getVisibility())
-                .isEqualTo(View.GONE);
+        View installType = header.findViewById(com.android.settingslib.widget.preference.layout.R.id.install_type);
+        assertThat(installType.getVisibility()).isEqualTo(View.GONE);
     }
 
     // Test that the "instant apps" label is present in the header when we have an instant app.
     @Test
     public void instantApps_expectedHeaderItem() {
         final View header = mLayoutInflater.inflate(
-                R.layout.settings_entity_header, null /* root */);
+                com.android.settingslib.widget.preference.layout.R.layout.settings_entity_header, null /* root */);
         mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
         mController.setIsInstantApp(true);
-        mController.done(mActivity);
-        TextView label = header.findViewById(R.id.install_type);
+        mController.done();
+        TextView label = header.findViewById(com.android.settingslib.widget.preference.layout.R.id.install_type);
 
         assertThat(label.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(label.getText()).isEqualTo(
diff --git a/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java b/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java
index 1ec222e..29560ab 100644
--- a/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/widget/HighlightablePreferenceGroupAdapterTest.java
@@ -53,9 +53,13 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class HighlightablePreferenceGroupAdapterTest {
 
     private static final String TEST_KEY = "key";
@@ -83,7 +87,7 @@
                 false /* highlighted*/));
         when(mAdapter.getItem(anyInt())).thenReturn(mPreference);
         mViewHolder = PreferenceViewHolder.createInstanceForTests(
-                View.inflate(mContext, R.layout.preference, null));
+                View.inflate(mContext, androidx.preference.R.layout.preference, null));
     }
 
     @Test
@@ -174,6 +178,20 @@
         assertThat(mViewHolder.itemView.getTag(R.id.preference_highlighted)).isNull();
     }
 
+    /**
+     * When background is being updated, we also request the a11y focus on the preference
+     */
+    @Test
+    public void updateBackground_shouldRequestAccessibilityFocus() {
+        View viewItem = mock(View.class);
+        mViewHolder = PreferenceViewHolder.createInstanceForTests(viewItem);
+        ReflectionHelpers.setField(mAdapter, "mHighlightPosition", 10);
+
+        mAdapter.updateBackground(mViewHolder, 10);
+
+        verify(viewItem).requestAccessibilityFocus();
+    }
+
     @Test
     public void updateBackground_highlight_shouldAnimateBackgroundAndSetHighlightedTag() {
         ReflectionHelpers.setField(mAdapter, "mHighlightPosition", 10);
diff --git a/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java
index e5ae840..b33a564 100644
--- a/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/LinkifySummaryPreferenceTest.java
@@ -32,19 +32,22 @@
 import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 @RunWith(RobolectricTestRunner.class)
 public class LinkifySummaryPreferenceTest {
-    @Spy
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
     private PreferenceViewHolder mViewHolder;
     @Mock
     private TextView mSummaryTextView;
@@ -52,9 +55,7 @@
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        final Context context = RuntimeEnvironment.application;
+        final Context context = ApplicationProvider.getApplicationContext();
         mPreference = new LinkifySummaryPreference(context, null /* attrs */);
 
         final View view = spy(View.inflate(context, mPreference.getLayoutResource(),
diff --git a/tests/robotests/src/com/android/settings/widget/PrimaryCheckBoxPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/PrimaryCheckBoxPreferenceTest.java
index a1d74e3..2ed80e8 100644
--- a/tests/robotests/src/com/android/settings/widget/PrimaryCheckBoxPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/PrimaryCheckBoxPreferenceTest.java
@@ -125,7 +125,8 @@
     public void clickWidgetView_shouldToggleCheckBox() {
         final LayoutInflater inflater = LayoutInflater.from(mContext);
         final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
-                inflater.inflate(R.layout.preference_two_target, null));
+                inflater.inflate(
+                        com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target, null));
         final LinearLayout widgetView = holder.itemView.findViewById(android.R.id.widget_frame);
         assertThat(widgetView).isNotNull();
 
@@ -144,7 +145,8 @@
     public void clickWidgetView_shouldNotToggleCheckBoxIfDisabled() {
         final LayoutInflater inflater = LayoutInflater.from(mContext);
         final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
-                inflater.inflate(R.layout.preference_two_target, null));
+                inflater.inflate(
+                        com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target, null));
         final LinearLayout widgetView = holder.itemView.findViewById(android.R.id.widget_frame);
         assertThat(widgetView).isNotNull();
 
@@ -160,7 +162,8 @@
     @Test
     public void clickWidgetView_shouldNotifyPreferenceChanged() {
         final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
-                LayoutInflater.from(mContext).inflate(R.layout.preference_two_target, null));
+                LayoutInflater.from(mContext).inflate(
+                        com.android.settingslib.widget.preference.twotarget.R.layout.preference_two_target, null));
         final View widgetView = holder.findViewById(android.R.id.widget_frame);
         final OnPreferenceChangeListener listener = mock(OnPreferenceChangeListener.class);
         mPreference.setOnPreferenceChangeListener(listener);
diff --git a/tests/robotests/src/com/android/settings/widget/RestrictedButtonTest.java b/tests/robotests/src/com/android/settings/widget/RestrictedButtonTest.java
new file mode 100644
index 0000000..d696342
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/widget/RestrictedButtonTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.os.UserManager.EnforcingUser;
+import android.view.View.OnClickListener;
+
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Ignore("b/315133235")
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class, ShadowDevicePolicyManager.class})
+public class RestrictedButtonTest {
+
+    private RestrictedButton mButton;
+    private OnClickListener mOnClickListener;
+    private UserHandle mUser;
+
+    @Before
+    public void setUp() {
+        mButton = new RestrictedButton(Robolectric.setupActivity(FragmentActivity.class));
+        mOnClickListener = mock(OnClickListener.class);
+        mButton.setOnClickListener(mOnClickListener);
+
+        int userId = UserHandle.myUserId();
+        mUser = UserHandle.of(userId);
+        List<EnforcingUser> enforcingUsers = new ArrayList<>();
+        enforcingUsers.add(new EnforcingUser(userId, UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
+        // Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
+        ShadowUserManager.getShadow().setUserRestrictionSources(
+                UserManager.DISALLOW_MODIFY_ACCOUNTS,
+                mUser,
+                enforcingUsers);
+    }
+
+    @Test
+    public void performClick_buttonIsNotInited_shouldCallListener() {
+        mButton.performClick();
+
+        verify(mOnClickListener).onClick(eq(mButton));
+    }
+
+    @Test
+    public void performClick_noRestriction_shouldCallListener() {
+        mButton.init(mUser, UserManager.DISALLOW_ADJUST_VOLUME);
+
+        mButton.performClick();
+
+        verify(mOnClickListener).onClick(eq(mButton));
+    }
+
+    @Test
+    public void performClick_hasRestriction_shouldNotCallListener() {
+        mButton.init(mUser, UserManager.DISALLOW_MODIFY_ACCOUNTS);
+
+        mButton.performClick();
+
+        verify(mOnClickListener, never()).onClick(eq(mButton));
+    }
+
+    @Test
+    public void updateState_noRestriction_shouldEnableButton() {
+        mButton.init(mUser, UserManager.DISALLOW_ADJUST_VOLUME);
+
+        mButton.updateState();
+
+        assertThat(mButton.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void updateState_noRestriction_shoulddisableButton() {
+        mButton.init(mUser, UserManager.DISALLOW_MODIFY_ACCOUNTS);
+
+        mButton.updateState();
+
+        assertThat(mButton.isEnabled()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java
index 809aa87..732defb 100644
--- a/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/SeekBarPreferenceTest.java
@@ -39,7 +39,6 @@
 import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -49,7 +48,6 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 
-@Ignore
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowInteractionJankMonitor.class})
 public class SeekBarPreferenceTest {
@@ -102,7 +100,6 @@
         assertThat(mSeekBarPreference.isSelectable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc998")
     public void isSelectable_default_returnFalse() {
diff --git a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
index dc69d8e..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.settingslib.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/SettingsMainSwitchPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java
index 33c9fac..a5ebdad 100644
--- a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchPreferenceTest.java
@@ -22,14 +22,10 @@
 
 import android.content.Context;
 import android.view.View;
-import android.widget.ImageView;
 
 import androidx.preference.PreferenceViewHolder;
 
-import com.android.settings.R;
-
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -54,23 +50,11 @@
         mPreference = new SettingsMainSwitchPreference(context);
         ReflectionHelpers.setField(mPreference, "mEnforcedAdmin", mEnforcedAdmin);
         ReflectionHelpers.setField(mPreference, "mMainSwitchBar", switchBar);
-        final View rootView = View.inflate(context, R.layout.preference_widget_main_switch,
+        final View rootView = View.inflate(context, com.android.settings.R.layout.preference_widget_main_switch,
                 null /* parent */);
         mHolder = PreferenceViewHolder.createInstanceForTests(rootView);
     }
 
-    @Ignore
-    @Test
-    public void onBindViewHolder_isRestricted_restrictIconShouldDisplay() {
-        mPreference.onBindViewHolder(mHolder);
-
-        final SettingsMainSwitchBar switchBar = mPreference.getSwitchBar();
-        final ImageView restrictedIcon = switchBar.findViewById(
-                com.android.settingslib.widget.R.id.restricted_icon);
-
-        assertThat(restrictedIcon.getVisibility() == View.VISIBLE).isTrue();
-    }
-
     @Test
     public void show_preferenceShouldDisplay() {
         mPreference.show();
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/widget/UpdatableListPreferenceDialogFragmentTest.java b/tests/robotests/src/com/android/settings/widget/UpdatableListPreferenceDialogFragmentTest.java
new file mode 100644
index 0000000..1c26253
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/widget/UpdatableListPreferenceDialogFragmentTest.java
@@ -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.widget;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.widget.ArrayAdapter;
+
+import androidx.preference.ListPreference;
+
+import com.android.internal.logging.nano.MetricsProto;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+
+@RunWith(RobolectricTestRunner.class)
+public class UpdatableListPreferenceDialogFragmentTest {
+
+    private static final String KEY = "Test_Key";
+    @Mock
+    private UpdatableListPreferenceDialogFragment mUpdatableListPrefDlgFragment;
+    private Context mContext;
+    private ArrayAdapter mAdapter;
+    private ArrayList<CharSequence> mEntries;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+
+        mUpdatableListPrefDlgFragment = spy(UpdatableListPreferenceDialogFragment
+                .newInstance(KEY, MetricsProto.MetricsEvent.DIALOG_SWITCH_A2DP_DEVICES));
+        mEntries = new ArrayList<>();
+        mUpdatableListPrefDlgFragment.setEntries(mEntries);
+        mUpdatableListPrefDlgFragment
+                .setMetricsCategory(mUpdatableListPrefDlgFragment.getArguments());
+        initAdapter();
+    }
+
+    private void initAdapter() {
+        mAdapter = spy(new ArrayAdapter<>(
+                mContext,
+                com.android.internal.R.layout.select_dialog_singlechoice,
+                mEntries));
+        mUpdatableListPrefDlgFragment.setAdapter(mAdapter);
+    }
+
+    @Test
+    public void getMetricsCategory() {
+        assertThat(mUpdatableListPrefDlgFragment.getMetricsCategory())
+                .isEqualTo(MetricsProto.MetricsEvent.DIALOG_SWITCH_A2DP_DEVICES);
+    }
+
+    @Test
+    public void onListPreferenceUpdated_verifyAdapterCanBeUpdate() {
+        assertThat(mUpdatableListPrefDlgFragment.getAdapter().getCount()).isEqualTo(0);
+
+        ListPreference listPreference = new ListPreference(mContext);
+        final CharSequence[] charSequences = {"Test_DEVICE_1", "Test_DEVICE_2"};
+        listPreference.setEntries(charSequences);
+        mUpdatableListPrefDlgFragment.onListPreferenceUpdated(listPreference);
+
+        assertThat(mUpdatableListPrefDlgFragment.getAdapter().getCount()).isEqualTo(2);
+    }
+
+    @Test
+    public void onDialogClosed_emptyPreference() {
+        mUpdatableListPrefDlgFragment.onDialogClosed(false);
+
+        verify(mUpdatableListPrefDlgFragment, never()).getListPreference();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
index e4a4bc1..35dc666 100644
--- a/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/widget/VideoPreferenceTest.java
@@ -72,7 +72,7 @@
 
         mContext = RuntimeEnvironment.application;
         mAnimationController = spy(
-                new MediaAnimationController(mContext, R.raw.accessibility_screen_magnification));
+                new MediaAnimationController(mContext, R.raw.sample_video));
         mVideoPreference = new VideoPreference(mContext, null /* attrs */);
         mVideoPreference.mAnimationController = mAnimationController;
         when(mAnimationController.getVideoWidth()).thenReturn(VIDEO_WIDTH);
@@ -141,7 +141,7 @@
         assertThat(mAnimationController.isPlaying()).isTrue();
     }
 
-    @Ignore
+    @Ignore("b/315133235")
     @Test
     @Config(qualifiers = "mcc999")
     public void onViewVisible_createAnimationController() {
diff --git a/tests/robotests/src/com/android/settings/wifi/ConfigureWifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/ConfigureWifiSettingsTest.java
index bb0ae1a..14227ad 100644
--- a/tests/robotests/src/com/android/settings/wifi/ConfigureWifiSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/ConfigureWifiSettingsTest.java
@@ -12,7 +12,6 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.annotation.Nullable;
 import android.content.Context;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
@@ -20,6 +19,7 @@
 import android.view.View;
 import android.widget.TextView;
 
+import androidx.annotation.Nullable;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -30,7 +30,6 @@
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,6 +45,9 @@
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class ConfigureWifiSettingsTest {
 
     @Rule
@@ -69,7 +71,6 @@
 
     TestConfigureWifiSettings mSettings;
 
-    @Ignore
     @Before
     public void setUp() {
         when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
@@ -148,7 +149,6 @@
         verify(mPreferenceScreen).removeAll();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void getNonIndexableKeys_ifPageDisabled_shouldNotIndexResource() {
diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java
index fb29924..616cb0b 100644
--- a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogActivityTest.java
@@ -37,7 +37,6 @@
 
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settings.wifi.NetworkRequestErrorDialogFragment.ERROR_DIALOG_TYPE;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
@@ -82,8 +81,7 @@
                 .thenReturn(mock(WifiPickerTracker.class));
         mScanResults.add(getScanResult(TEST_SSID, TEST_CAPABILITY));
 
-        mActivity = spy((NetworkRequestDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(NetworkRequestDialogActivity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(NetworkRequestDialogActivity.class));
         when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
     }
 
@@ -183,8 +181,7 @@
     @Test
     public void onAbort_withFakeActivity_callStopAndPopShouldBeTrue() {
         final FakeNetworkRequestDialogActivity fakeActivity =
-                (FakeNetworkRequestDialogActivity) ActivityControllerWrapper.setup(
-                        Robolectric.buildActivity(FakeNetworkRequestDialogActivity.class)).get();
+                Robolectric.setupActivity(FakeNetworkRequestDialogActivity.class);
 
         fakeActivity.onResume();
         fakeActivity.onAbort();
diff --git a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java
index 2679745..386f66d 100644
--- a/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/NetworkRequestDialogFragmentTest.java
@@ -45,7 +45,6 @@
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
@@ -104,11 +103,10 @@
         when(fakeFeatureFactory.wifiTrackerLibProvider.createWifiPickerTracker(
                 any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
                 .thenReturn(mock(WifiPickerTracker.class));
-        Intent intent = new Intent();
-        intent.putExtra(NetworkRequestDialogFragment.EXTRA_APP_NAME,
-                TEST_APP_NAME);
-        mActivity = (WifiDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDialogActivity.class, intent)).get();
+
+        mActivity = Robolectric.buildActivity(FragmentActivity.class,
+                new Intent().putExtra(NetworkRequestDialogFragment.EXTRA_APP_NAME,
+                        TEST_APP_NAME)).setup().get();
         networkRequestDialogFragment = spy(NetworkRequestDialogFragment.newInstance());
         networkRequestDialogFragment.mWifiPickerTracker = mWifiPickerTracker;
     }
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
index faaa0fa..4fcc93d 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigController2Test.java
@@ -21,9 +21,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.Mockito.eq;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -53,7 +55,6 @@
 
 import com.android.settings.R;
 import com.android.settings.network.SubscriptionUtil;
-import com.android.settings.testutils.shadow.ShadowConnectivityManager;
 import com.android.settings.utils.AndroidKeystoreAliasLoader;
 import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2;
 import com.android.wifitrackerlib.WifiEntry;
@@ -69,7 +70,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.Shadows;
-import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowInputMethodManager;
 import org.robolectric.shadows.ShadowSubscriptionManager;
 
@@ -79,7 +79,6 @@
 import java.util.stream.IntStream;
 
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowConnectivityManager.class)
 public class WifiConfigController2Test {
 
     static final String WIFI_EAP_TLS_V1_3 = "TLS v1.3";
@@ -138,6 +137,7 @@
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         when(mContext.getSystemService(eq(WifiManager.class))).thenReturn(mWifiManager);
+        when(mWifiManager.isConnectedMacRandomizationSupported()).thenReturn(true);
         when(mConfigUiBase.getContext()).thenReturn(mContext);
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_PSK);
         mView = LayoutInflater.from(mContext).inflate(R.layout.wifi_dialog, null);
@@ -152,15 +152,17 @@
         ipSettingsSpinner.setSelection(DHCP);
         mShadowSubscriptionManager = shadowOf(mContext.getSystemService(SubscriptionManager.class));
         when(mEapMethodSimSpinner.getSelectedItemPosition()).thenReturn(WIFI_EAP_METHOD_SIM);
+    }
 
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+    private void createController(
+            WifiEntry mWifiEntry, int modeConnect, boolean hideMeteredAndPrivacy) {
+        mController = new WifiConfigController2(mConfigUiBase, mView, mWifiEntry,
+                modeConnect, hideMeteredAndPrivacy, mWifiManager, mAndroidKeystoreAliasLoader);
     }
 
     @Test
     public void ssidExceeds32Bytes_shouldShowSsidTooLongWarning() {
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null /* wifiEntry */,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView ssid = mView.findViewById(R.id.ssid);
         assertThat(ssid).isNotNull();
         ssid.setText("☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎☎");
@@ -172,8 +174,7 @@
 
     @Test
     public void ssidShorterThan32Bytes_shouldNotShowSsidTooLongWarning() {
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null /* wifiEntry */,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
 
         final TextView ssid = mView.findViewById(R.id.ssid);
         assertThat(ssid).isNotNull();
@@ -192,6 +193,7 @@
 
     @Test
     public void isSubmittable_noSSID_shouldReturnFalse() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView ssid = mView.findViewById(R.id.ssid);
         assertThat(ssid).isNotNull();
         ssid.setText("");
@@ -200,6 +202,7 @@
 
     @Test
     public void isSubmittable_longPsk_shouldReturnFalse() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         assertThat(password).isNotNull();
         password.setText(LONG_PSK);
@@ -208,6 +211,7 @@
 
     @Test
     public void isSubmittable_shortPsk_shouldReturnFalse() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         assertThat(password).isNotNull();
         password.setText(SHORT_PSK);
@@ -216,6 +220,7 @@
 
     @Test
     public void isSubmittable_goodPsk_shouldReturnTrue() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         assertThat(password).isNotNull();
         password.setText(GOOD_PSK);
@@ -224,6 +229,7 @@
 
     @Test
     public void isSubmittable_hexPsk_shouldReturnTrue() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         assertThat(password).isNotNull();
         password.setText(HEX_PSK);
@@ -232,6 +238,7 @@
 
     @Test
     public void isSubmittable_savedConfigZeroLengthPassword_shouldReturnTrue() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         assertThat(password).isNotNull();
         password.setText("");
@@ -241,15 +248,13 @@
 
     @Test
     public void isSubmittable_nullWifiEntry_noException() {
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
         mController.isSubmittable();
     }
 
     @Test
     public void isSubmittable_EapToPskWithValidPassword_shouldReturnTrue() {
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView ssid = mView.findViewById(R.id.ssid);
         final TextView password = mView.findViewById(R.id.password);
         final Spinner securitySpinner = mView.findViewById(R.id.security);
@@ -268,6 +273,7 @@
 
     @Test
     public void isSubmittable_EapWithAkaMethod_shouldReturnTrue() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         when(mWifiEntry.isSaved()).thenReturn(true);
         mController.mWifiEntrySecurity = WifiEntry.SECURITY_EAP;
         mView.findViewById(R.id.l_ca_cert).setVisibility(View.GONE);
@@ -278,8 +284,7 @@
     @Test
     public void isSubmittable_caCertWithoutDomain_shouldReturnFalse() {
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
         final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
         eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
@@ -292,8 +297,7 @@
     @Test
     public void isSubmittable_caCertWithDomain_shouldReturnTrue() {
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
         final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
         eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
@@ -306,6 +310,7 @@
 
     @Test
     public void getSignalString_notReachable_shouldHaveNoSignalString() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         when(mWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE);
 
         assertThat(mController.getSignalString()).isNull();
@@ -313,6 +318,7 @@
 
     @Test
     public void loadCertificates_undesiredCertificates_shouldNotLoadUndesiredCertificates() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final Spinner spinner = new Spinner(mContext);
 
         mController.loadCertificates(spinner,
@@ -326,8 +332,7 @@
 
     @Test
     public void ssidGetFocus_addNewNetwork_shouldReturnTrue() {
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null /* wifiEntry */,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView ssid = mView.findViewById(R.id.ssid);
         // Verify ssid text get focus when add new network (wifiEntry is null)
         assertThat(ssid.isFocused()).isTrue();
@@ -335,6 +340,7 @@
 
     @Test
     public void passwordGetFocus_connectSecureWifi_shouldReturnTrue() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         // Verify password get focus when connect to secure wifi without eap type
         assertThat(password.isFocused()).isTrue();
@@ -342,6 +348,7 @@
 
     @Test
     public void hiddenWarning_warningVisibilityProperlyUpdated() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         View warningView = mView.findViewById(R.id.hidden_settings_warning);
         mController.onItemSelected(mHiddenSettingsSpinner, null, mController.HIDDEN_NETWORK, 0);
         assertThat(warningView.getVisibility()).isEqualTo(View.VISIBLE);
@@ -355,8 +362,7 @@
         View hiddenField = mView.findViewById(R.id.hidden_settings_field);
         assertThat(hiddenField.getVisibility()).isEqualTo(View.GONE);
 
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null /* wifiEntry */,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(null, WifiConfigUiBase2.MODE_CONNECT, false);
         assertThat(hiddenField.getVisibility()).isEqualTo(View.VISIBLE);
     }
 
@@ -382,13 +388,11 @@
 
     private void securitySpinnerTestHelper(boolean saeVisible, boolean suitebVisible,
             boolean oweVisible) {
-        WifiManager wifiManager = mock(WifiManager.class);
-        when(wifiManager.isWpa3SaeSupported()).thenReturn(saeVisible);
-        when(wifiManager.isWpa3SuiteBSupported()).thenReturn(suitebVisible);
-        when(wifiManager.isEnhancedOpenSupported()).thenReturn(oweVisible);
+        when(mWifiManager.isWpa3SaeSupported()).thenReturn(saeVisible);
+        when(mWifiManager.isWpa3SuiteBSupported()).thenReturn(suitebVisible);
+        when(mWifiManager.isEnhancedOpenSupported()).thenReturn(oweVisible);
 
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null /* wifiEntry */,
-                WifiConfigUiBase2.MODE_MODIFY, wifiManager);
+        createController(null, WifiConfigUiBase2.MODE_MODIFY, false);
 
         final Spinner securitySpinner = mView.findViewById(R.id.security);
         final ArrayAdapter<String> adapter = (ArrayAdapter) securitySpinner.getAdapter();
@@ -398,15 +402,18 @@
         for (int i = 0; i < adapter.getCount(); i++) {
             String val = adapter.getItem(i);
 
-            if (val.compareTo(mContext.getString(R.string.wifi_security_sae)) == 0) {
+            if (val.compareTo(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_sae)) == 0) {
                 saeFound = true;
             }
 
-            if (val.compareTo(mContext.getString(R.string.wifi_security_eap_suiteb)) == 0) {
+            if (val.compareTo(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap_suiteb)) == 0) {
                 suitebFound = true;
             }
 
-            if (val.compareTo(mContext.getString(R.string.wifi_security_owe)) == 0) {
+            if (val.compareTo(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_owe)) == 0) {
                 oweFound = true;
             }
         }
@@ -428,23 +435,22 @@
         }
     }
 
-    public class TestWifiConfigController2 extends WifiConfigController2 {
+    @Test
+    public void whenHideMeteredAndPrivacy_shouldHideMetered() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, true);
 
-        private TestWifiConfigController2(
-                WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry, int mode) {
-            super(parent, view, wifiEntry, mode, mWifiManager);
-        }
+        View view = mView.findViewById(R.id.metered_settings_fields);
 
-        private TestWifiConfigController2(
-                WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry, int mode,
-                    WifiManager wifiManager) {
-            super(parent, view, wifiEntry, mode, wifiManager);
-        }
+        assertThat(view.getVisibility()).isEqualTo(View.GONE);
+    }
 
-        @Override
-        AndroidKeystoreAliasLoader getAndroidKeystoreAliasLoader() {
-            return mAndroidKeystoreAliasLoader;
-        }
+    @Test
+    public void whenHideMeteredAndPrivacy_shouldHidePrivacy() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, true);
+
+        View view = mView.findViewById(R.id.privacy_settings_fields);
+
+        assertThat(view.getVisibility()).isEqualTo(View.GONE);
     }
 
     @Test
@@ -474,8 +480,7 @@
         when(mockWifiConfig.getIpConfiguration()).thenReturn(mock(IpConfiguration.class));
         when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
         mockWifiConfig.macRandomizationSetting = macRandomizedValue;
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
 
         final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
         final int expectedPrefValue =
@@ -488,6 +493,7 @@
 
     @Test
     public void saveMacRandomizedValue_noChanged_shouldPersistentAsDefault() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         WifiConfiguration config = mController.getConfig();
         assertThat(config.macRandomizationSetting).isEqualTo(
                 WifiConfiguration.RANDOMIZATION_PERSISTENT);
@@ -495,6 +501,7 @@
 
     @Test
     public void saveMacRandomizedValue_ChangedToNone_shouldGetNone() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final Spinner privacySetting = mView.findViewById(R.id.privacy_settings);
         final int prefMacNone =
                 WifiPrivacyPreferenceController2.translateMacRandomizedValueToPrefValue(
@@ -507,6 +514,7 @@
 
     @Test
     public void replaceTtsString_whenTargetMatched_shouldSuccess() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final CharSequence[] display = {"PEAP", "AKA1", "AKA2'"};
         final CharSequence[] target = {"AKA1", "AKA2'"};
         final CharSequence[] ttsString = {"AKA1_TTS", "AKA2_TTS"};
@@ -521,6 +529,7 @@
 
     @Test
     public void replaceTtsString_whenNoTargetStringMatched_originalStringShouldNotChanged() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final CharSequence[] display = {"PEAP", "AKA1", "AKA2"};
         final CharSequence[] target = {"WEP1", "WEP2'"};
         final CharSequence[] ttsString = {"WEP1_TTS", "WEP2_TTS"};
@@ -546,10 +555,8 @@
 
     @Test
     public void selectSecurity_wpa3Eap192bit_eapMethodTls() {
-        final WifiManager wifiManager = mock(WifiManager.class);
-        when(wifiManager.isWpa3SuiteBSupported()).thenReturn(true);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, null /* wifiEntry */,
-                WifiConfigUiBase2.MODE_MODIFY, wifiManager);
+        when(mWifiManager.isWpa3SuiteBSupported()).thenReturn(true);
+        createController(null, WifiConfigUiBase2.MODE_MODIFY, false);
         final Spinner securitySpinner = mView.findViewById(R.id.security);
         final Spinner eapMethodSpinner = mView.findViewById(R.id.method);
         int wpa3Eap192bitPosition = -1;
@@ -570,6 +577,7 @@
 
     @Test
     public void checkImeStatus_whenAdvancedToggled_shouldBeHide() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final InputMethodManager inputMethodManager = mContext
                 .getSystemService(InputMethodManager.class);
         final ShadowInputMethodManager shadowImm = Shadows.shadowOf(inputMethodManager);
@@ -583,6 +591,7 @@
 
     @Test
     public void selectEapMethod_savedWifiEntry_shouldGetCorrectPosition() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
         final Spinner eapMethodSpinner = mView.findViewById(R.id.method);
         final Spinner phase2Spinner = mView.findViewById(R.id.phase2);
@@ -627,6 +636,7 @@
 
     @Test
     public void getWepConfig_withNumberAndCharacterKey_shouldContainTheSameKey() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         password.setText(NUMBER_AND_CHARACTER_KEY);
         mController.mWifiEntrySecurity = WifiEntry.SECURITY_WEP;
@@ -638,6 +648,7 @@
 
     @Test
     public void getWepConfig_withPartialNumberAndCharacterKey_shouldContainDifferentKey() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         password.setText(PARTIAL_NUMBER_AND_CHARACTER_KEY);
         mController.mWifiEntrySecurity = WifiEntry.SECURITY_WEP;
@@ -649,6 +660,7 @@
 
     @Test
     public void getPskConfig_withValidHexKey_shouldContainTheSameKey() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         password.setText(VALID_HEX_PSK);
         mController.mWifiEntrySecurity = WifiEntry.SECURITY_PSK;
@@ -660,6 +672,7 @@
 
     @Test
     public void getPskConfig_withInvalidHexKey_shouldContainDifferentKey() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         final TextView password = mView.findViewById(R.id.password);
         password.setText(INVALID_HEX_PSK);
         mController.mWifiEntrySecurity = WifiEntry.SECURITY_PSK;
@@ -671,6 +684,7 @@
 
     @Test
     public void getEapConfig_withPhase2Gtc_shouldContainGtcMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method PEAP
@@ -688,6 +702,7 @@
 
     @Test
     public void getEapConfig_withPhase2Sim_shouldContainSimMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method PEAP
@@ -705,6 +720,7 @@
 
     @Test
     public void getEapConfig_withPhase2Aka_shouldContainAkaMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method PEAP
@@ -722,6 +738,7 @@
 
     @Test
     public void getEapConfig_withPhase2AkaPrime_shouldContainAkaPrimeMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method PEAP
@@ -740,6 +757,7 @@
 
     @Test
     public void getEapConfig_withPeapPhase2Unknown_shouldContainNoneMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method PEAP
@@ -757,6 +775,7 @@
 
     @Test
     public void getEapConfig_withTTLSPhase2Pap_shouldContainPapMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method TTLS
@@ -774,6 +793,7 @@
 
     @Test
     public void getEapConfig_withTTLSPhase2Mschap_shouldContainMschapMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method TTLS
@@ -791,6 +811,7 @@
 
     @Test
     public void getEapConfig_withTTLSPhase2Gtc_shouldContainGtcMethod() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         setUpModifyingSavedPeapConfigController();
 
         // Test EAP method TTLS
@@ -816,15 +837,13 @@
         when(mockWifiEnterpriseConfig.getEapMethod()).thenReturn(Eap.PEAP);
         mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig;
         when(mWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfig);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_MODIFY);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_MODIFY, false);
     }
 
     @Test
     public void loadSims_noSim_simSpinnerDefaultNoSim() {
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         mController.mEapMethodSpinner = mEapMethodSimSpinner;
 
         mController.loadSims();
@@ -844,8 +863,7 @@
         when(subscriptionInfo.getCarrierName()).thenReturn("FAKE-CARRIER");
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(subscriptionInfo));
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(subscriptionInfo));
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         mController.mEapMethodSpinner = mEapMethodSimSpinner;
 
         mController.loadSims();
@@ -861,8 +879,7 @@
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(sub1, sub2));
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         mController.mEapMethodSpinner = mEapMethodSimSpinner;
         ShadowSubscriptionManager.setDefaultDataSubscriptionId(1);
 
@@ -878,8 +895,7 @@
         SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(sub1, sub2));
         mShadowSubscriptionManager.setActiveSubscriptionInfoList(Arrays.asList(sub1, sub2));
         when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         mController.mEapMethodSpinner = mEapMethodSimSpinner;
         ShadowSubscriptionManager.setDefaultDataSubscriptionId(1);
 
@@ -906,6 +922,7 @@
 
     @Test
     public void onItemSelected_shouldPersistentInstallCertsAndStartInstallActivity() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         String installCertsString = "install_certs";
         Spinner eapCaCertSpinner = mock(Spinner.class);
         AdapterView view = mock(AdapterView.class);
@@ -947,6 +964,7 @@
 
     @Test
     public void getEapMinTlsVerSpinner_isTlsV13Supported_containsTlsV13() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         Spinner spinner = mController.getEapMinTlsVerSpinner(true /* isTlsV13Supported */);
 
         List<Object> list = IntStream.range(0, spinner.getAdapter().getCount())
@@ -957,6 +975,7 @@
 
     @Test
     public void getEapMinTlsVerSpinner_isNotTlsV13Supported_doesNotContainTlsV13() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         Spinner spinner = mController.getEapMinTlsVerSpinner(false /* isTlsV13Supported */);
 
         List<Object> list = IntStream.range(0, spinner.getAdapter().getCount())
@@ -967,6 +986,7 @@
 
     @Test
     public void setAnonymousIdVisible_showAnonymousIdAndSetDefaultId() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
         View anonymousLayout = mView.findViewById(R.id.l_anonymous);
         TextView anonymousId = mView.findViewById(R.id.anonymous);
         mController.mEapAnonymousView = anonymousId;
@@ -979,6 +999,18 @@
         assertThat(anonymousId.getText().toString()).isEqualTo(DEFAULT_ANONYMOUS_ID);
     }
 
+    @Test
+    public void setAnonymousIdVisible_viewIsVisible_doNotSetText() {
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_CONNECT, false);
+        View anonymousLayout = mView.findViewById(R.id.l_anonymous);
+        mController.mEapAnonymousView = mock(TextView.class);
+        anonymousLayout.setVisibility(View.VISIBLE);
+
+        mController.setAnonymousIdVisible();
+
+        verify(mController.mEapAnonymousView, never()).setText(any(String.class));
+    }
+
     private void setUpModifyingSavedCertificateConfigController(String savedCaCertificate,
             String savedUserCertificate) {
         final WifiConfiguration mockWifiConfig = spy(new WifiConfiguration());
@@ -1005,8 +1037,7 @@
                     .thenReturn(ImmutableList.of(savedUserCertificate));
         }
 
-        mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
-                WifiConfigUiBase2.MODE_MODIFY);
+        createController(mWifiEntry, WifiConfigUiBase2.MODE_MODIFY, false);
 
         //  Because Robolectric has a different behavior from normal flow.
         //
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index 8ecbaf6..2ff4596 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -351,15 +351,18 @@
         for (int i = 0; i < adapter.getCount(); i++) {
             String val = adapter.getItem(i);
 
-            if (val.compareTo(mContext.getString(R.string.wifi_security_sae)) == 0) {
+            if (val.compareTo(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_sae)) == 0) {
                 saeFound = true;
             }
 
-            if (val.compareTo(mContext.getString(R.string.wifi_security_eap_suiteb)) == 0) {
+            if (val.compareTo(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_eap_suiteb)) == 0) {
                 suitebFound = true;
             }
 
-            if (val.compareTo(mContext.getString(R.string.wifi_security_owe)) == 0) {
+            if (val.compareTo(mContext.getString(
+                    com.android.settingslib.R.string.wifi_security_owe)) == 0) {
                 oweFound = true;
             }
         }
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialog2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiDialog2Test.java
deleted file mode 100644
index f1ab438..0000000
--- a/tests/robotests/src/com/android/settings/wifi/WifiDialog2Test.java
+++ /dev/null
@@ -1,73 +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;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
-import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener;
-import com.android.wifitrackerlib.WifiEntry;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
-public class WifiDialog2Test {
-    @Mock private WifiEntry mMockWifiEntry;
-
-    private Context mContext = RuntimeEnvironment.application;
-
-    private WifiDialog2Listener mListener = new WifiDialog2Listener() {};
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    public void createModal_usesDefaultTheme() {
-        WifiDialog2 modal = WifiDialog2
-                .createModal(mContext, mListener, mMockWifiEntry, WifiConfigUiBase2.MODE_CONNECT);
-
-        WifiDialog2 wifiDialog2 = new WifiDialog2(mContext, mListener, mMockWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT, 0 /* style */, false /* hideSubmitButton */);
-        assertThat(modal.getContext().getThemeResId())
-                .isEqualTo(wifiDialog2.getContext().getThemeResId());
-    }
-
-    @Test
-    public void createModal_whenSetTheme_shouldBeCustomizedTheme() {
-        WifiDialog2 modal = WifiDialog2.createModal(mContext, mListener, mMockWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT, R.style.SuwAlertDialogThemeCompat_Light);
-
-        WifiDialog2 wifiDialog2 = new WifiDialog2(mContext, mListener, mMockWifiEntry,
-                WifiConfigUiBase2.MODE_CONNECT, R.style.SuwAlertDialogThemeCompat_Light,
-                        false /* hideSubmitButton */);
-        assertThat(modal.getContext().getThemeResId())
-                .isEqualTo(wifiDialog2.getContext().getThemeResId());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
index ad3cfd4..886a4bc 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
@@ -28,7 +28,9 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -42,8 +44,8 @@
 import android.os.UserManager;
 
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.wifi.AccessPoint;
+import com.android.wifitrackerlib.NetworkDetailsTracker;
 import com.android.wifitrackerlib.WifiEntry;
 
 import com.google.android.setupcompat.util.WizardManagerHelper;
@@ -55,20 +57,21 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
 
 @RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
 public class WifiDialogActivityTest {
 
     static final String CALLING_PACKAGE = "calling_package";
     static final int REQUEST_CODE = REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER;
+    private static final String SSID = "SSID";
 
     @Mock
     UserManager mUserManager;
     @Mock
     PackageManager mPackageManager;
     @Mock
-    WifiManager mWifiManager;
-    @Mock
     WifiDialog mWifiDialog;
     @Mock
     WifiConfiguration mWifiConfiguration;
@@ -93,17 +96,22 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         when(mWifiDialog.getController()).thenReturn(mController);
+        mWifiConfiguration.SSID = SSID;
         when(mController.getConfig()).thenReturn(mWifiConfiguration);
         when(mController.getAccessPoint()).thenReturn(mAccessPoint);
         when(mWifiDialog2.getController()).thenReturn(mWifiConfiguration2);
         when(mWifiConfiguration2.getWifiEntry()).thenReturn(mWifiEntry);
         when(mWifiEntry.canConnect()).thenReturn(true);
         FakeFeatureFactory.setupForTest();
+        WifiTrackerLibProvider mockWifiTrackerLibProvider =
+                FakeFeatureFactory.getFeatureFactory().getWifiTrackerLibProvider();
+        when(mockWifiTrackerLibProvider.createNetworkDetailsTracker(
+                any(), any(), any(), any(), any(), anyLong(), anyLong(), any())
+        ).thenReturn(mock(NetworkDetailsTracker.class));
 
-        mActivity = spy((WifiDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDialogActivity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(WifiDialogActivity.class));
         when(mActivity.getSystemService(UserManager.class)).thenReturn(mUserManager);
-        when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+
         when(mActivity.getSystemService(KeyguardManager.class)).thenReturn(mKeyguardManager);
     }
 
@@ -111,7 +119,8 @@
     public void onSubmit_shouldConnectToNetwork() {
         mActivity.onSubmit(mWifiDialog);
 
-        verify(mWifiManager).connect(any(), any());
+        WifiManager wifiManager = mActivity.getSystemService(WifiManager.class);
+        assertThat(wifiManager.getConnectionInfo().getSSID()).isEqualTo("\"SSID\"");
     }
 
     @Test
@@ -157,9 +166,7 @@
         final Intent intent = new Intent("com.android.settings.WIFI_DIALOG");
         intent.putExtra(WifiDialogActivity.KEY_CHOSEN_WIFIENTRY_KEY, "FAKE_KEY");
         intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, true);
-        mActivity = spy((WifiDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDialogActivity.class, intent)).get());
-        when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+        mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get());
 
         mActivity.onSubmit(mWifiDialog2);
 
@@ -170,13 +177,12 @@
     public void onSubmit_whenConnectForCallerIsFalse_shouldNotConnectToNetwork() {
         final Intent intent = new Intent();
         intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, false);
-        mActivity = spy((WifiDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDialogActivity.class, intent)).get());
-        when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+        mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get());
 
         mActivity.onSubmit(mWifiDialog);
 
-        verify(mWifiManager, never()).connect(any(), any());
+        WifiManager wifiManager = mActivity.getSystemService(WifiManager.class);
+        assertThat(wifiManager.getConnectionInfo().getSSID()).isEqualTo(WifiManager.UNKNOWN_SSID);
     }
 
     @Test
@@ -184,9 +190,7 @@
         final Intent intent = new Intent("com.android.settings.WIFI_DIALOG");
         intent.putExtra(WifiDialogActivity.KEY_CHOSEN_WIFIENTRY_KEY, "FAKE_KEY");
         intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, false);
-        mActivity = spy((WifiDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDialogActivity.class, intent)).get());
-        when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+        mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).setup().get());
 
         mActivity.onSubmit(mWifiDialog2);
 
@@ -199,9 +203,7 @@
         intent.putExtra(WifiDialogActivity.KEY_CONNECT_FOR_CALLER, false);
         intent.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true);
         intent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
-        mActivity = spy((WifiDialogActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDialogActivity.class, intent)).get());
-        when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+        mActivity = spy(Robolectric.buildActivity(WifiDialogActivity.class, intent).create().get());
         doNothing().when(mActivity).createDialogWithSuwTheme();
 
         mActivity.onStart();
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiEntryPreferenceTest.java b/tests/robotests/src/com/android/settings/wifi/WifiEntryPreferenceTest.java
index 316beb3..f96570c 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiEntryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiEntryPreferenceTest.java
@@ -19,7 +19,9 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -97,6 +99,9 @@
 
         when(mMockWifiEntry.getTitle()).thenReturn(MOCK_TITLE);
         when(mMockWifiEntry.getSummary(false /* concise */)).thenReturn(MOCK_SUMMARY);
+        when(mMockWifiEntry.getLevel()).thenReturn(0);
+        when(mMockWifiEntry.shouldShowXLevelIcon()).thenReturn(false);
+        when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED);
 
         when(mMockIconInjector.getIcon(false /* showX */, 0)).thenReturn(mMockDrawable0);
         when(mMockIconInjector.getIcon(false /* showX */, 1)).thenReturn(mMockDrawable1);
@@ -115,7 +120,7 @@
         when(mMockIconInjector.getIcon(true /* showX */, 4))
                 .thenReturn(mMockShowXDrawable4);
 
-        mPref = new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector);
+        mPref = spy(new WifiEntryPreference(mContext, mMockWifiEntry, mMockIconInjector));
     }
 
     @Test
@@ -138,6 +143,27 @@
     }
 
     @Test
+    public void setWifiEntry_connectedStateChanged_setIconAndSummary() {
+        when(mMockWifiEntry.getLevel()).thenReturn(4);
+        when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
+
+        mPref.setWifiEntry(mMockWifiEntry);
+
+        verify(mPref).setIcon(any());
+        verify(mPref).setSummary(anyString());
+
+        // Only the connection state changes.
+        when(mMockWifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_DISCONNECTED);
+        reset(mPref);
+
+        mPref.setWifiEntry(mMockWifiEntry);
+
+        // The icon and summary should be set in case.
+        verify(mPref).setIcon(any());
+        verify(mPref).setSummary(anyString());
+    }
+
+    @Test
     public void titleChanged_refresh_shouldUpdateTitle() {
         final String updatedTitle = "updated title";
         when(mMockWifiEntry.getTitle()).thenReturn(updatedTitle);
@@ -254,6 +280,8 @@
 
     @Test
     public void updateIcon_shouldSetTintListForDrawable() {
+        reset(mMockDrawable4);
+
         mPref.updateIcon(false /* showX */, 4 /* level */);
 
         verify(mMockDrawable4).setTintList(any());
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiNoInternetDialogTest.java b/tests/robotests/src/com/android/settings/wifi/WifiNoInternetDialogTest.java
index 1788a0d..64bf525 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiNoInternetDialogTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiNoInternetDialogTest.java
@@ -43,7 +43,6 @@
 import android.os.Bundle;
 
 import com.android.settings.R;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Ignore;
@@ -57,7 +56,7 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-@Ignore
+@Ignore("b/314867581")
 @RunWith(RobolectricTestRunner.class)
 public class WifiNoInternetDialogTest {
 
@@ -87,8 +86,8 @@
 
     @Test
     public void launchActivity_noIntentAction_shouldNotFatalException() {
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiNoInternetDialog.class)).get();
+        WifiNoInternetDialog wifiNoInternetDialog =
+                Robolectric.setupActivity(WifiNoInternetDialog.class);
     }
 
     @Test
@@ -276,7 +275,6 @@
                 RuntimeEnvironment.application.getPackageName(),
                 WifiNoInternetDialog.class.getName());
         intent.putExtra(ConnectivityManager.EXTRA_NETWORK, network);
-        mActivity = spy((WifiNoInternetDialog) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiNoInternetDialog.class, intent)).get());
+        mActivity = spy(Robolectric.buildActivity(WifiNoInternetDialog.class, intent).get());
     }
 }
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
index 2c12517..9204d43 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceControllerTest.java
@@ -46,7 +46,6 @@
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -97,7 +96,6 @@
         assertThat(mController.isAvailable()).isTrue();
     }
 
-    @Ignore
     @Test
     @Config(qualifiers = "mcc999")
     public void testWifiPrimarySwitch_ifDisabled_shouldNotBeShown() {
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiScanModeActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiScanModeActivityTest.java
index 1d3dadf..5937997 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiScanModeActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiScanModeActivityTest.java
@@ -30,7 +30,6 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.wifi.WifiPermissionChecker;
 
 import org.junit.After;
@@ -69,8 +68,7 @@
         when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
         when(mUserManager.isGuestUser()).thenReturn(false);
 
-        mActivity = spy((WifiScanModeActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiScanModeActivity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(WifiScanModeActivity.class));
         when(mActivity.getApplicationContext()).thenReturn(mContext);
         mActivity.mWifiPermissionChecker = mWifiPermissionChecker;
     }
@@ -82,8 +80,8 @@
 
     @Test
     public void launchActivity_noIntentAction_shouldNotFatalException() {
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiScanModeActivity.class)).get();
+        WifiScanModeActivity wifiScanModeActivity =
+                Robolectric.setupActivity(WifiScanModeActivity.class);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java
index 6969e14..f732b5e 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiScanningRequiredFragmentTest.java
@@ -47,8 +47,12 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class WifiScanningRequiredFragmentTest {
 
     private WifiScanningRequiredFragment mFragment;
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
deleted file mode 100644
index 17d8099..0000000
--- a/tests/robotests/src/com/android/settings/wifi/WifiSettingsTest.java
+++ /dev/null
@@ -1,372 +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;
-
-import static com.android.settings.wifi.WifiConfigUiBase2.MODE_CONNECT;
-import static com.android.settings.wifi.WifiConfigUiBase2.MODE_MODIFY;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Activity;
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.Bundle;
-import android.os.PowerManager;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.view.ContextMenu;
-import android.view.View;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.android.settings.R;
-import com.android.settings.datausage.DataUsagePreference;
-import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
-import com.android.settings.testutils.shadow.ShadowFragment;
-import com.android.settingslib.utils.StringUtil;
-import com.android.wifitrackerlib.WifiEntry;
-import com.android.wifitrackerlib.WifiPickerTracker;
-
-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.shadows.ShadowToast;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowRestrictedPreference.class)
-public class WifiSettingsTest {
-
-    private static final int NUM_NETWORKS = 4;
-    private static final String FAKE_URI_STRING = "fakeuri";
-
-    @Mock
-    private PowerManager mPowerManager;
-    @Mock
-    private WifiManager mWifiManager;
-    @Mock
-    private DataUsagePreference mDataUsagePreference;
-    private Context mContext;
-    private WifiSettings mWifiSettings;
-    @Mock
-    private WifiPickerTracker mMockWifiPickerTracker;
-    @Mock
-    private PreferenceManager mPreferenceManager;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        when(mContext.getSystemService(UserManager.class)).thenReturn(mock(UserManager.class));
-
-        mWifiSettings = spy(new WifiSettings());
-        doReturn(mContext).when(mWifiSettings).getContext();
-        doReturn(mPreferenceManager).when(mWifiSettings).getPreferenceManager();
-        doReturn(mPowerManager).when(mContext).getSystemService(PowerManager.class);
-        doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
-        doReturn(mContext).when(mPreferenceManager).getContext();
-        mWifiSettings.mAddWifiNetworkPreference = new AddWifiNetworkPreference(mContext);
-        mWifiSettings.mSavedNetworksPreference = new Preference(mContext);
-        mWifiSettings.mConfigureWifiSettingsPreference = new Preference(mContext);
-        mWifiSettings.mWifiPickerTracker = mMockWifiPickerTracker;
-        mWifiSettings.mWifiManager = mWifiManager;
-        mWifiSettings.IS_ENABLED_PROVIDER_MODEL = false;
-    }
-
-    @Test
-    public void addNetworkFragmentSendResult_onActivityResult_shouldHandleEvent() {
-        final WifiSettings WifiSettings = spy(new WifiSettings());
-        final Intent intent = new Intent();
-        doNothing().when(WifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
-
-        WifiSettings.onActivityResult(WifiSettings.ADD_NETWORK_REQUEST, Activity.RESULT_OK,
-                intent);
-
-        verify(WifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
-    }
-
-    @Test
-    public void setAdditionalSettingsSummaries_hasSavedNetwork_preferenceVisible() {
-        when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
-        when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(0 /* count */);
-
-        mWifiSettings.setAdditionalSettingsSummaries();
-
-        assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue();
-        assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo(
-                StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS,
-                        R.string.wifi_saved_access_points_summary));
-    }
-
-    @Test
-    public void setAdditionalSettingsSummaries_hasSavedPasspointNetwork_preferenceVisible() {
-        when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(0 /* count */);
-        when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(NUM_NETWORKS);
-
-        mWifiSettings.setAdditionalSettingsSummaries();
-
-        assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue();
-        assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo(
-                StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS,
-                        R.string.wifi_saved_passpoint_access_points_summary));
-    }
-
-    @Test
-    public void setAdditionalSettingsSummaries_hasTwoKindsSavedNetwork_preferenceVisible() {
-        when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
-        when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(NUM_NETWORKS);
-
-        mWifiSettings.setAdditionalSettingsSummaries();
-
-        assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue();
-        assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo(
-                StringUtil.getIcuPluralsString(mContext, NUM_NETWORKS * 2,
-                        R.string.wifi_saved_all_access_points_summary));
-    }
-
-    @Test
-    public void setAdditionalSettingsSummaries_noSavedNetwork_preferenceInvisible() {
-        when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(0 /* count */);
-        when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(0 /* count */);
-
-        mWifiSettings.setAdditionalSettingsSummaries();
-
-        assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isFalse();
-    }
-
-    @Test
-    public void setAdditionalSettingsSummaries_wifiWakeupEnabled_displayOn() {
-        final ContentResolver contentResolver = mContext.getContentResolver();
-        when(mWifiManager.isAutoWakeupEnabled()).thenReturn(true);
-        when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
-        Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0);
-        when(mPowerManager.isPowerSaveMode()).thenReturn(false);
-
-        mWifiSettings.setAdditionalSettingsSummaries();
-
-        assertThat(mWifiSettings.mConfigureWifiSettingsPreference.getSummary()).isEqualTo(
-                mContext.getString(R.string.wifi_configure_settings_preference_summary_wakeup_on));
-    }
-
-    @Test
-    public void setAdditionalSettingsSummaries_wifiWakeupDisabled_displayOff() {
-        final ContentResolver contentResolver = mContext.getContentResolver();
-        when(mWifiManager.isAutoWakeupEnabled()).thenReturn(false);
-
-        mWifiSettings.setAdditionalSettingsSummaries();
-
-        assertThat(mWifiSettings.mConfigureWifiSettingsPreference.getSummary()).isEqualTo(
-                mContext.getString(R.string.wifi_configure_settings_preference_summary_wakeup_off));
-    }
-
-    @Test
-    public void checkAddWifiNetworkPrefernce_preferenceVisible() {
-        assertThat(mWifiSettings.mAddWifiNetworkPreference.isVisible()).isTrue();
-        assertThat(mWifiSettings.mAddWifiNetworkPreference.getTitle()).isEqualTo(
-                mContext.getString(R.string.wifi_add_network));
-    }
-
-    private void setUpForOnCreate() {
-        final FragmentActivity activity = mock(FragmentActivity.class);
-        when(mWifiSettings.getActivity()).thenReturn(activity);
-        final Resources.Theme theme = mContext.getTheme();
-        when(activity.getTheme()).thenReturn(theme);
-        UserManager userManager = mock(UserManager.class);
-        when(activity.getSystemService(Context.USER_SERVICE))
-                .thenReturn(userManager);
-
-        when(mWifiSettings.findPreference(WifiSettings.PREF_KEY_DATA_USAGE))
-                .thenReturn(mDataUsagePreference);
-    }
-
-    @Test
-    @Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class})
-    public void checkDataUsagePreference_perferenceInvisibleIfWifiNotSupported() {
-        setUpForOnCreate();
-        ShadowDataUsageUtils.IS_WIFI_SUPPORTED = false;
-
-        mWifiSettings.onCreate(Bundle.EMPTY);
-
-        verify(mDataUsagePreference).setVisible(false);
-    }
-
-    @Test
-    @Config(shadows = {ShadowDataUsageUtils.class, ShadowFragment.class})
-    public void checkDataUsagePreference_perferenceVisibleIfWifiSupported() {
-        setUpForOnCreate();
-        ShadowDataUsageUtils.IS_WIFI_SUPPORTED = true;
-
-        mWifiSettings.onCreate(Bundle.EMPTY);
-
-        verify(mDataUsagePreference).setVisible(true);
-        verify(mDataUsagePreference).setTemplate(any(), eq(0) /*subId*/, eq(null) /*service*/);
-    }
-
-    @Test
-    public void onCreateAdapter_hasStableIdsTrue() {
-        final PreferenceScreen preferenceScreen = mock(PreferenceScreen.class);
-        when(preferenceScreen.getContext()).thenReturn(mContext);
-
-        RecyclerView.Adapter adapter = mWifiSettings.onCreateAdapter(preferenceScreen);
-
-        assertThat(adapter.hasStableIds()).isTrue();
-    }
-
-    @Test
-    public void onCreateContextMenu_shouldHaveForgetAndDisconnectMenuForConnectedWifiEntry() {
-        final FragmentActivity activity = mock(FragmentActivity.class);
-        when(activity.getApplicationContext()).thenReturn(mContext);
-        when(mWifiSettings.getActivity()).thenReturn(activity);
-
-        final WifiEntry wifiEntry = mock(WifiEntry.class);
-        when(wifiEntry.canDisconnect()).thenReturn(true);
-        when(wifiEntry.canForget()).thenReturn(true);
-        when(wifiEntry.isSaved()).thenReturn(true);
-        when(wifiEntry.getConnectedState()).thenReturn(WifiEntry.CONNECTED_STATE_CONNECTED);
-
-        final LongPressWifiEntryPreference connectedWifiEntryPreference =
-                mWifiSettings.createLongPressWifiEntryPreference(wifiEntry);
-        final View view = mock(View.class);
-        when(view.getTag()).thenReturn(connectedWifiEntryPreference);
-
-        final ContextMenu menu = mock(ContextMenu.class);
-        mWifiSettings.onCreateContextMenu(menu, view, null /* info */);
-
-        verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_FORGET), anyInt(), anyInt());
-        verify(menu).add(anyInt(), eq(WifiSettings.MENU_ID_DISCONNECT), anyInt(), anyInt());
-    }
-
-    @Test
-    public void onWifiEntriesChanged_shouldChangeNextButtonState() {
-        final FragmentActivity activity = mock(FragmentActivity.class);
-        doReturn(false).when(activity).isFinishing();
-        doReturn(false).when(activity).isDestroyed();
-        doReturn(activity).when(mWifiSettings).getActivity();
-
-        mWifiSettings.onWifiEntriesChanged();
-
-        verify(mWifiSettings).changeNextButtonState(anyBoolean());
-    }
-
-    @Test
-    public void openSubscriptionHelpPage_shouldCallStartActivityForResult() {
-        doReturn(new Intent()).when(mWifiSettings).getHelpIntent(mContext, FAKE_URI_STRING);
-        doNothing().when(mWifiSettings).startActivityForResult(any(Intent.class), anyInt());
-        final WifiEntry mockWifiEntry = mock(WifiEntry.class);
-        when(mockWifiEntry.getHelpUriString()).thenReturn(FAKE_URI_STRING);
-
-        mWifiSettings.openSubscriptionHelpPage(mockWifiEntry);
-
-        verify(mWifiSettings, times(1)).startActivityForResult(any(), anyInt());
-    }
-
-    @Test
-    public void onNumSavedNetworksChanged_isFinishing_ShouldNotCrash() {
-        final FragmentActivity activity = mock(FragmentActivity.class);
-        when(activity.isFinishing()).thenReturn(true);
-        when(mWifiSettings.getActivity()).thenReturn(activity);
-        when(mWifiSettings.getContext()).thenReturn(null);
-
-        mWifiSettings.onNumSavedNetworksChanged();
-    }
-
-    @Test
-    public void onNumSavedSubscriptionsChanged_isFinishing_ShouldNotCrash() {
-        final FragmentActivity activity = mock(FragmentActivity.class);
-        when(activity.isFinishing()).thenReturn(true);
-        when(mWifiSettings.getActivity()).thenReturn(activity);
-        when(mWifiSettings.getContext()).thenReturn(null);
-
-        mWifiSettings.onNumSavedSubscriptionsChanged();
-    }
-
-    @Test
-    public void onSubmit_modeModifyNoConfig_toastErrorMessage() {
-        WifiDialog2 dialog = createWifiDialog2(MODE_MODIFY, null /* config */);
-
-        mWifiSettings.onSubmit(dialog);
-
-        assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
-                mContext.getString(R.string.wifi_failed_save_message));
-    }
-
-    @Test
-    public void onSubmit_modeModifyHasConfig_saveWifiManager() {
-        final WifiConfiguration config = mock(WifiConfiguration.class);
-        WifiDialog2 dialog = createWifiDialog2(MODE_MODIFY, config);
-
-        mWifiSettings.onSubmit(dialog);
-
-        verify(mWifiManager).save(eq(config), any());
-    }
-
-    @Test
-    public void onSubmit_modeConnectNoConfig_connectWifiEntry() {
-        WifiDialog2 dialog = createWifiDialog2(MODE_CONNECT, null /* config */);
-        final WifiEntry wifiEntry = dialog.getWifiEntry();
-
-        mWifiSettings.onAttach(mContext);
-        mWifiSettings.onSubmit(dialog);
-
-        verify(mWifiSettings).connect(wifiEntry, false /* editIfNoConfig */,
-                false /* fullScreenEdit*/);
-    }
-
-    @Test
-    public void onSubmit_modeConnectHasConfig_connectWifiManager() {
-        final WifiConfiguration config = mock(WifiConfiguration.class);
-        WifiDialog2 dialog = createWifiDialog2(MODE_CONNECT, config);
-
-        mWifiSettings.onSubmit(dialog);
-
-        verify(mWifiManager).connect(eq(config), any(WifiManager.ActionListener.class));
-    }
-
-    private WifiDialog2 createWifiDialog2(int mode, WifiConfiguration config) {
-        final WifiEntry wifiEntry = mock(WifiEntry.class);
-        when(wifiEntry.canConnect()).thenReturn(true);
-        final WifiConfigController2 controller = mock(WifiConfigController2.class);
-        when(controller.getConfig()).thenReturn(config);
-        final WifiDialog2 wifiDialog2 =  spy(WifiDialog2.createModal(mContext, null /* listener */,
-                wifiEntry, mode));
-        when(wifiDialog2.getController()).thenReturn(controller);
-        return wifiDialog2;
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java b/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java
index dccd023..2c4bf9f 100644
--- a/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java
@@ -22,12 +22,12 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
-import android.annotation.Nullable;
 import android.app.IActivityManager;
 import android.content.Context;
 import android.os.RemoteException;
 import android.os.UserManager;
 
+import androidx.annotation.Nullable;
 import androidx.test.core.app.ApplicationProvider;
 
 import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragmentTest.java
index c5f4cd4..699a8e8 100644
--- a/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragmentTest.java
@@ -43,7 +43,6 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
@@ -56,12 +55,16 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 import org.robolectric.shadows.androidx.fragment.FragmentController;
 
 import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class AddAppNetworksFragmentTest {
 
     private static final String FAKE_APP_NAME = "fake_app_name";
@@ -100,8 +103,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mAddAppNetworksFragment = spy(new AddAppNetworksFragment());
-        mActivity = spy((FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(FragmentActivity.class));
         doReturn(mActivity).when(mAddAppNetworksFragment).getActivity();
         when(mWifiManager.isWifiEnabled()).thenReturn(true);
         when(mActivity.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
index da0bdf2..0ece537 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingDisclaimerFragmentTest.java
@@ -40,7 +40,6 @@
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowDisclaimerItemFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
-import com.android.settings.utils.ActivityControllerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -90,8 +89,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mFragment = spy(new WifiCallingDisclaimerFragment());
 
         doReturn(mActivity).when(mFragment).getActivity();
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..4497a0a 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -40,7 +40,10 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.PersistableBundle;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.telephony.CarrierConfigManager;
+import android.telephony.NetworkRegistrationInfo;
+import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 import android.telephony.ims.ImsMmTelManager;
 import android.view.View;
@@ -48,6 +51,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.network.ims.MockWifiCallingQueryImsState;
@@ -57,6 +61,7 @@
 import com.android.settings.widget.SettingsMainSwitchPreference;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -70,6 +75,7 @@
 @Config(shadows = ShadowFragment.class)
 @RunWith(RobolectricTestRunner.class)
 public class WifiCallingSettingsForSubTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     private static final int SUB_ID = 2;
 
     private static final String SWITCH_BAR = "wifi_calling_switch_bar";
@@ -158,6 +164,7 @@
         mFragment.onAttach(mContext);
         mFragment.onCreate(null);
         mFragment.onActivityCreated(null);
+        mSetFlagsRule.disableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG);
     }
 
     private void setDefaultCarrierConfigValues() {
@@ -241,6 +248,31 @@
     }
 
     @Test
+    public void onResume_overrideWfcRoamingModeWhileUsingNTN_shouldDisableWfcRoaming() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG);
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, false);
+        mBundle.putBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, true);
+        mBundle.putBoolean(
+                CarrierConfigManager.KEY_OVERRIDE_WFC_ROAMING_MODE_WHILE_USING_NTN_BOOL, true);
+
+        // Phone connected to non-terrestrial network
+        NetworkRegistrationInfo nri = new NetworkRegistrationInfo.Builder()
+                .setIsNonTerrestrialNetwork(true)
+                .build();
+        ServiceState ss = new ServiceState();
+        ss.addNetworkRegistrationInfo(nri);
+        doReturn(ss).when(mTelephonyManager).getServiceState();
+
+        // Call onResume to update the WFC roaming preference.
+        mFragment.onResume();
+
+        // Check that WFC roaming preference is visible but disabled
+        verify(mButtonWfcRoamingMode, times(1)).setEnabled(false);
+        verify(mButtonWfcRoamingMode, times(1)).setVisible(true);
+    }
+
+    @Test
     public void onResume_useWfcHomeModeConfigTrueAndNotEditable_shouldHideWfcRoaming() {
         mBundle.putBoolean(
                 CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
@@ -292,7 +324,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 +369,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/calling/WifiCallingSliceHelperTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
index 45e4c6b..2d64e16 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSliceHelperTest.java
@@ -47,7 +47,6 @@
 import androidx.slice.widget.SliceContent;
 import androidx.slice.widget.SliceLiveData;
 
-import com.android.ims.ImsManager;
 import com.android.settings.R;
 import com.android.settings.network.ims.MockWifiCallingQueryImsState;
 import com.android.settings.slices.CustomSliceRegistry;
@@ -79,9 +78,6 @@
     private CarrierConfigManager mMockCarrierConfigManager;
 
     @Mock
-    private ImsManager mMockImsManager;
-
-    @Mock
     private ImsMmTelManager mMockImsMmTelManager;
 
     private MockWifiCallingQueryImsState mQueryImsState;
@@ -112,6 +108,7 @@
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsEnabledByPlatform(true);
         mQueryImsState.setIsProvisionedOnDevice(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
 
         mWfcSliceHelper = spy(new FakeWifiCallingSliceHelper(mContext));
         doReturn(mQueryImsState).when(mWfcSliceHelper).queryImsState(anyInt());
@@ -121,20 +118,9 @@
     }
 
     @Test
-    public void test_CreateWifiCallingSlice_invalidSubId() {
-        mQueryImsState.setIsEnabledByUser(true);
+    public void createWifiCallingSlice_notReadyToWifiCalling_wfcNotSupported() {
         mQueryImsState.setIsProvisionedOnDevice(false);
-        mWfcSliceHelper.setDefaultVoiceSubId(-1);
-
-        final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
-                CustomSliceRegistry.WIFI_CALLING_URI);
-
-        assertThat(slice).isNull();
-    }
-
-    @Test
-    public void test_CreateWifiCallingSlice_wfcNotSupported() {
-        mQueryImsState.setIsProvisionedOnDevice(false);
+        mQueryImsState.setIsReadyToWifiCalling(false);
 
         final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
                 CustomSliceRegistry.WIFI_CALLING_URI);
@@ -153,6 +139,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(false);
         mQueryImsState.setIsTtyOnVolteEnabled(false);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
         mWfcSliceHelper.setActivationAppIntent(new Intent()); // unused Intent
 
@@ -170,6 +157,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
 
         final Slice slice = mWfcSliceHelper.createWifiCallingSlice(
@@ -184,6 +172,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
         when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
                 .thenReturn(mWfcSliceHelper);
@@ -200,6 +189,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(false);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
                 .thenReturn(mWfcSliceHelper);
         mWfcSliceHelper.setActivationAppIntent(null);
@@ -225,6 +215,7 @@
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
         mWfcSliceHelper.setIsWifiCallingPrefEditable(false);
+        mQueryImsState.setIsReadyToWifiCalling(false);
 
         final Slice slice = mWfcSliceHelper.createWifiCallingPreferenceSlice(
                 CustomSliceRegistry.WIFI_CALLING_PREFERENCE_URI);
@@ -254,6 +245,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
                 ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
         mWfcSliceHelper.setIsWifiCallingPrefEditable(true);
@@ -271,6 +263,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
                 ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
         when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
@@ -289,6 +282,7 @@
         mQueryImsState.setIsProvisionedOnDevice(true);
         mQueryImsState.setIsEnabledByUser(true);
         mQueryImsState.setIsTtyOnVolteEnabled(true);
+        mQueryImsState.setIsReadyToWifiCalling(true);
         when(mMockImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
                 ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
         when(mSlicesFeatureProvider.getNewWifiCallingSliceHelper(mContext))
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java
index 52a1a6c..8f96e27 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java
@@ -22,7 +22,7 @@
 import static android.net.wifi.sharedconnectivity.app.HotspotNetwork.NETWORK_TYPE_WIFI;
 import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GREAT;
 
-import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID;
+import static com.android.settings.network.NetworkProviderSettings.WIFI_DIALOG_ID;
 import static com.android.settings.wifi.details.WifiNetworkDetailsFragment.KEY_HOTSPOT_CONNECTION_CATEGORY;
 import static com.android.settings.wifi.details.WifiNetworkDetailsFragment.KEY_HOTSPOT_DEVICE_BATTERY;
 import static com.android.settings.wifi.details.WifiNetworkDetailsFragment.KEY_HOTSPOT_DEVICE_CATEGORY;
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
index 406e0c3..3923cf8 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
@@ -94,6 +94,7 @@
 import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
@@ -120,7 +121,10 @@
 
 // TODO(b/143326832): Should add test cases for connect button.
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowDevicePolicyManager.class, ShadowEntityHeaderController.class})
+@Config(shadows = {
+        ShadowDevicePolicyManager.class,
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+        ShadowEntityHeaderController.class})
 public class WifiDetailPreferenceController2Test {
 
     private static final int LEVEL = 1;
@@ -307,8 +311,6 @@
         // builder pattern
         when(mMockHeaderController.setLabel(any(CharSequence.class)))
                 .thenReturn(mMockHeaderController);
-        when(mMockHeaderController.setRecyclerView(mMockFragment.getListView(), mLifecycle))
-                .thenReturn(mMockHeaderController);
         when(mMockHeaderController.setSummary(nullable(String.class)))
                 .thenReturn(mMockHeaderController);
         when(mMockHeaderController.setSecondSummary(nullable(String.class)))
@@ -436,16 +438,6 @@
     }
 
     @Test
-    public void latestWifiInfo_shouldBeFetchedInDisplayPreferenceForConnectedNetwork() {
-        setUpForConnectedNetwork();
-        setUpSpyController();
-
-        displayAndResume();
-
-        verify(mMockWifiManager, times(1)).getConnectionInfo();
-    }
-
-    @Test
     public void latestWifiInfo_shouldNotBeFetchedInDisplayPreferenceForDisconnectedNetwork() {
         setUpForDisconnectedNetwork();
 
@@ -464,16 +456,6 @@
     }
 
     @Test
-    public void latestNetworkInfo_shouldBeFetchedInDisplayPreferenceForConnectedNetwork() {
-        setUpForConnectedNetwork();
-        setUpSpyController();
-
-        displayAndResume();
-
-        verify(mMockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
-    }
-
-    @Test
     public void latestNetworkInfo_shouldNotBeFetchedInDisplayPreferenceForDisconnectedNetwork() {
         setUpForDisconnectedNetwork();
 
@@ -754,6 +736,7 @@
         verify(mMockRxLinkSpeedPref).setSummary("100 Mbps");
     }
 
+    @Ignore("b/313536962")
     @Test
     public void ssidPref_isSubscription_show() {
         setUpForConnectedNetwork();
@@ -953,6 +936,7 @@
         verify(mMockActivity, never()).finish();
     }
 
+    @Ignore("b/313536962")
     @Test
     public void noLinkProperties_allIpDetailsHidden() {
         setUpForConnectedNetwork();
@@ -975,6 +959,7 @@
         verify(mMockDnsPref, never()).setVisible(true);
     }
 
+    @Ignore("b/313536962")
     @Test
     public void disconnectedNetwork_allIpDetailsHidden() {
         setUpForDisconnectedNetwork();
@@ -1024,6 +1009,7 @@
         inOrder.verify(mMockIpv6AddressesPref).setSummary(text);
     }
 
+    @Ignore("b/313536962")
     @Test
     public void onLinkPropertiesChanged_updatesFields() {
         setUpForConnectedNetwork();
@@ -1282,8 +1268,9 @@
 
         displayAndResume();
 
-        verify(mMockConnectivityManager, times(1)).getNetworkInfo(any(Network.class));
-        verify(mMockWifiManager, times(1)).getConnectionInfo();
+        verify(mMockWifiManager, times(1)).getCurrentNetwork();
+        verify(mMockConnectivityManager, times(1)).getLinkProperties(any(Network.class));
+        verify(mMockConnectivityManager, times(1)).getNetworkCapabilities(any(Network.class));
     }
 
     @Test
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/dpp/WifiDppConfiguratorActivityTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
index 56c1ec7..73e4811 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java
@@ -28,9 +28,8 @@
 
 import androidx.test.core.app.ApplicationProvider;
 
-import com.android.settings.utils.ActivityControllerWrapper;
-
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -41,6 +40,7 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 
+@Ignore("b/314867581")
 @RunWith(RobolectricTestRunner.class)
 public class WifiDppConfiguratorActivityTest {
 
@@ -64,15 +64,14 @@
         mIntent.putExtra(WifiDppUtils.EXTRA_WIFI_SECURITY, "WPA");
         mIntent.putExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY, "\\012345678,");
 
-        mActivity = spy((WifiDppConfiguratorActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDppConfiguratorActivity.class)).get());
+        mActivity = spy(Robolectric.setupActivity(WifiDppConfiguratorActivity.class));
         when(mActivity.getApplicationContext()).thenReturn(mContext);
     }
 
     @Test
     public void launchActivity_noIntentAction_shouldNotFatalException() {
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDppConfiguratorActivity.class)).get();
+        WifiDppConfiguratorActivity wifiDppConfiguratorActivity =
+                Robolectric.setupActivity(WifiDppConfiguratorActivity.class);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivityTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivityTest.java
index 717e4a7..c099060 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivityTest.java
@@ -19,12 +19,12 @@
 import static com.android.settings.wifi.dpp.WifiDppEnrolleeActivity.ACTION_ENROLLEE_QR_CODE_SCANNER;
 
 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.Intent;
 
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.wifi.WifiRestrictionsCache;
 
 import org.junit.Before;
@@ -38,6 +38,7 @@
 import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 
+@Ignore("b/314867581")
 @RunWith(RobolectricTestRunner.class)
 public class WifiDppEnrolleeActivityTest {
 
@@ -58,18 +59,16 @@
         when(mIntent.getAction()).thenReturn(ACTION_ENROLLEE_QR_CODE_SCANNER);
         when(mIntent.getStringExtra(WifiDppUtils.EXTRA_WIFI_SSID)).thenReturn(WIFI_SSID);
 
-        mActivity = (WifiDppEnrolleeActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDppEnrolleeActivity.class)).get();
+        mActivity = spy(Robolectric.setupActivity(WifiDppEnrolleeActivity.class));
         mActivity.mWifiRestrictionsCache = mWifiRestrictionsCache;
     }
 
     @Test
     public void launchActivity_noIntentAction_shouldNotFatalException() {
-        ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(WifiDppEnrolleeActivity.class)).get();
+        WifiDppEnrolleeActivity wifiDppEnrolleeActivity =
+                Robolectric.setupActivity(WifiDppEnrolleeActivity.class);
     }
 
-    @Ignore
     @Test
     public void handleIntent_noIntentAction_shouldFinish() {
         when(mIntent.getAction()).thenReturn(null);
@@ -79,7 +78,6 @@
         verify(mActivity).finish();
     }
 
-    @Ignore
     @Test
     public void handleIntent_notAllowedConfigWifi_shouldFinish() {
         when(mWifiRestrictionsCache.isConfigWifiAllowed()).thenReturn(false);
@@ -89,7 +87,6 @@
         verify(mActivity).finish();
     }
 
-    @Ignore
     @Test
     public void handleIntent_hasIntentDataAndAllowedConfigWifi_shouldShowFragment() {
         when(mWifiRestrictionsCache.isConfigWifiAllowed()).thenReturn(true);
diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragmentTest.java
index bf978c7..ff1125d 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragmentTest.java
@@ -43,10 +43,14 @@
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.Arrays;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
 public class WifiDppQrCodeScannerFragmentTest {
 
     static final String WIFI_SSID = "wifi-ssid";
diff --git a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
index 25a59a9..99286cf 100644
--- a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2pSettingsTest.java
@@ -48,10 +48,10 @@
 
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -66,6 +66,7 @@
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowInteractionJankMonitor.class)
+@Ignore
 public class WifiP2pSettingsTest {
 
     private Context mContext;
@@ -90,8 +91,7 @@
         mContext = RuntimeEnvironment.application;
         TestWifiP2pSettings.sMockWifiP2pManager = mWifiP2pManager;
 
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
         mFragment = new TestWifiP2pSettings();
         mFragment.mWifiP2pManager = mWifiP2pManager;
         doReturn(mChannel).when(mWifiP2pManager).initialize(any(), any(), any());
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2Test.java
index 800e2e4..d9bc0b4 100644
--- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsPreferenceController2Test.java
@@ -24,29 +24,29 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
 
-import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.wifi.WifiEntryPreference;
 import com.android.wifitrackerlib.WifiEntry;
 
 import org.junit.Before;
-import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -55,26 +55,38 @@
 @RunWith(RobolectricTestRunner.class)
 public class SavedAccessPointsPreferenceController2Test {
 
+    private static final String PREFERENCE_KEY = "preference_key";
+    private static final String TEST_KEY = "key";
+    private static final String TEST_TITLE = "ssid_title";
+
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Spy
+    private Context mContext = ApplicationProvider.getApplicationContext();
     @Mock
     private PreferenceScreen mPreferenceScreen;
     @Mock
-    private PreferenceCategory mPreferenceCategory;
+    private PreferenceGroup mPreferenceGroup;
+    @Mock
+    private WifiEntryPreference mWifiEntryPreference;
+    @Mock
+    private WifiEntry mWifiEntry;
 
-    private Context mContext;
     private SavedAccessPointsWifiSettings2 mSettings;
     private SavedAccessPointsPreferenceController2 mController;
 
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        mSettings = spy(new SavedAccessPointsWifiSettings2());
-        mController = spy(new SavedAccessPointsPreferenceController2(mContext, "test_key"));
-        mController.setHost(mSettings);
+        when(mPreferenceScreen.findPreference(PREFERENCE_KEY)).thenReturn(mPreferenceGroup);
+        when(mPreferenceGroup.getContext()).thenReturn(mContext);
+        when(mWifiEntryPreference.getKey()).thenReturn(TEST_KEY);
+        when(mWifiEntryPreference.getTitle()).thenReturn(TEST_TITLE);
+        when(mWifiEntry.getKey()).thenReturn(TEST_KEY);
+        when(mWifiEntry.getTitle()).thenReturn(TEST_TITLE);
 
-        when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
-                .thenReturn(mPreferenceCategory);
-        when(mPreferenceCategory.getContext()).thenReturn(mContext);
+        mSettings = spy(new SavedAccessPointsWifiSettings2());
+        mController = spy(new SavedAccessPointsPreferenceController2(mContext, PREFERENCE_KEY));
+        mController.setHost(mSettings);
     }
 
     @Test
@@ -86,64 +98,52 @@
 
     @Test
     public void getAvailability_oneSavedAccessPoint_shouldAvailable() {
-        final WifiEntry mockWifiEntry = mock(WifiEntry.class);
-        mController.mWifiEntries = Arrays.asList(mockWifiEntry);
+        mController.mWifiEntries = Arrays.asList(mWifiEntry);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
-    @Ignore
     @Test
-    public void displayPreference_oneAccessPoint_shouldListIt() {
-        final String title = "ssid_title";
-        final WifiEntry mockWifiEntry = mock(WifiEntry.class);
-        when(mockWifiEntry.getTitle()).thenReturn(title);
-        final ArgumentCaptor<WifiEntryPreference> captor =
+    public void displayPreference_newWifiEntry_addPreference() {
+        when(mPreferenceGroup.getPreferenceCount()).thenReturn(0);
+
+        mController.displayPreference(mPreferenceScreen, Arrays.asList(mWifiEntry));
+
+        ArgumentCaptor<WifiEntryPreference> captor =
                 ArgumentCaptor.forClass(WifiEntryPreference.class);
-
-        mController.displayPreference(mPreferenceScreen, Arrays.asList(mockWifiEntry));
-
-        verify(mPreferenceCategory).addPreference(captor.capture());
-
-        final List<WifiEntryPreference> prefs = captor.getAllValues();
+        verify(mPreferenceGroup).addPreference(captor.capture());
+        List<WifiEntryPreference> prefs = captor.getAllValues();
         assertThat(prefs.size()).isEqualTo(1);
-        assertThat(prefs.get(0).getTitle()).isEqualTo(title);
+        assertThat(prefs.get(0).getTitle()).isEqualTo(TEST_TITLE);
     }
 
-    @Ignore
     @Test
-    public void displayPreference_noAccessPoint_shouldRemoveIt() {
-        final String title = "ssid_title";
-        final String key = "key";
-        final WifiEntry mockWifiEntry = mock(WifiEntry.class);
-        when(mockWifiEntry.getTitle()).thenReturn(title);
-        when(mockWifiEntry.getKey()).thenReturn(key);
-        final WifiEntryPreference preference = new WifiEntryPreference(mContext, mockWifiEntry);
-        preference.setKey(key);
-        mPreferenceCategory.addPreference(preference);
+    public void displayPreference_sameWifiEntry_preferenceSetWifiEntry() {
+        when(mPreferenceGroup.getPreferenceCount()).thenReturn(1);
+        when(mPreferenceGroup.getPreference(0)).thenReturn(mWifiEntryPreference);
+
+        mController.displayPreference(mPreferenceScreen, Arrays.asList(mWifiEntry));
+
+        verify(mWifiEntryPreference).setWifiEntry(mWifiEntry);
+    }
+
+    @Test
+    public void displayPreference_removedWifiEntry_removePreference() {
+        when(mPreferenceGroup.getPreferenceCount()).thenReturn(1);
+        when(mPreferenceGroup.getPreference(0)).thenReturn(mWifiEntryPreference);
 
         mController.displayPreference(mPreferenceScreen, new ArrayList<>());
 
-        assertThat(mPreferenceCategory.getPreferenceCount()).isEqualTo(0);
+        verify(mPreferenceGroup).removePreference(any());
     }
 
-    @Ignore
     @Test
     public void onPreferenceClick_shouldCallShowWifiPage() {
-        mContext = spy(RuntimeEnvironment.application);
         doNothing().when(mContext).startActivity(any());
         doReturn(mContext).when(mSettings).getContext();
 
-        final String title = "ssid_title";
-        final String key = "key";
-        final WifiEntry mockWifiEntry = mock(WifiEntry.class);
-        when(mockWifiEntry.getTitle()).thenReturn(title);
-        when(mockWifiEntry.getKey()).thenReturn(key);
-        final WifiEntryPreference preference = new WifiEntryPreference(mContext, mockWifiEntry);
-        preference.setKey(key);
+        mController.onPreferenceClick(mWifiEntryPreference);
 
-        mController.onPreferenceClick(preference);
-
-        verify(mSettings, times(1)).showWifiPage(key, title);
+        verify(mSettings).showWifiPage(TEST_KEY, TEST_TITLE);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2Test.java
index d26287d..fc0b946 100644
--- a/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2Test.java
@@ -34,7 +34,6 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
-import com.android.settings.utils.ActivityControllerWrapper;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
@@ -48,6 +47,7 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+@Ignore("b/314867581")
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = ShadowInteractionJankMonitor.class)
 public class SavedAccessPointsWifiSettings2Test {
@@ -66,8 +66,7 @@
         MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         mSettings = spy(new TestFragment());
-        mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
-                Robolectric.buildActivity(FragmentActivity.class)).get();
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
 
         doReturn(mSubscribedApController).when(mSettings)
                 .use(SubscribedAccessPointsPreferenceController2.class);
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
deleted file mode 100644
index d9c726a..0000000
--- a/tests/robotests/src/com/android/settings/wifi/slice/ContextualWifiSliceTest.java
+++ /dev/null
@@ -1,190 +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.wifi.slice;
-
-import static com.android.settings.wifi.slice.ContextualWifiSlice.COLLAPSED_ROW_COUNT;
-import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COUNT;
-
-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.ContentResolver;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.Network;
-import android.net.NetworkCapabilities;
-import android.net.wifi.WifiInfo;
-import android.net.wifi.WifiManager;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.SlicesFeatureProviderImpl;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowConnectivityManager;
-import com.android.settings.testutils.shadow.ShadowWifiSlice;
-
-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.shadows.ShadowBinder;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowConnectivityManager.class, ShadowWifiSlice.class})
-public class ContextualWifiSliceTest {
-    private static final String SSID = "123";
-
-    @Mock
-    private WifiManager mWifiManager;
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private WifiInfo mWifiInfo;
-    @Mock
-    private Network mNetwork;
-
-    private Context mContext;
-    private ContentResolver mResolver;
-    private ContextualWifiSlice mWifiSlice;
-    private FakeFeatureFactory mFeatureFactory;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mResolver = mock(ContentResolver.class);
-        mFeatureFactory = FakeFeatureFactory.setupForTest();
-        mFeatureFactory.slicesFeatureProvider = new SlicesFeatureProviderImpl();
-        mFeatureFactory.slicesFeatureProvider.newUiSession();
-        doReturn(mResolver).when(mContext).getContentResolver();
-        doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
-        doReturn(true).when(mWifiManager).isWifiEnabled();
-        doReturn(WifiManager.WIFI_STATE_ENABLED).when(mWifiManager).getWifiState();
-        doReturn(mWifiInfo).when(mWifiManager).getConnectionInfo();
-        doReturn(SSID).when(mWifiInfo).getSSID();
-        doReturn(mNetwork).when(mWifiManager).getCurrentNetwork();
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-
-        // Set-up specs for SliceMetadata.
-        SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
-
-        final String siPackageName =
-                mContext.getString(R.string.config_settingsintelligence_package_name);
-        ShadowBinder.setCallingUid(1);
-        when(mPackageManager.getPackagesForUid(1)).thenReturn(new String[]{siPackageName});
-        when(mPackageManager.getNameForUid(1)).thenReturn(siPackageName);
-        ShadowWifiSlice.setWifiPermissible(true);
-        mWifiSlice = new ContextualWifiSlice(mContext);
-    }
-
-    @Test
-    public void getWifiSlice_newSession_hasActiveConnection_shouldCollapseSlice() {
-        mWifiSlice.sActiveUiSession = ~mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-        connectToWifi(makeValidatedNetworkCapabilities());
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(COLLAPSED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_newSession_noConnection_shouldExpandSlice() {
-        mWifiSlice.sActiveUiSession = ~mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(DEFAULT_EXPANDED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_previousExpanded_hasActiveConnection_shouldExpandSlice() {
-        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-        mWifiSlice.sApRowCollapsed = false;
-        connectToWifi(makeValidatedNetworkCapabilities());
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(DEFAULT_EXPANDED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_previousCollapsed_connectionLoss_shouldCollapseSlice() {
-        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-        mWifiSlice.sApRowCollapsed = true;
-        connectToWifi(makeValidatedNetworkCapabilities());
-
-        doReturn(null).when(mWifiManager).getCurrentNetwork();
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertWifiHeader(wifiSlice);
-        assertThat(ContextualWifiSlice.getApRowCount()).isEqualTo(COLLAPSED_ROW_COUNT);
-    }
-
-    @Test
-    public void getWifiSlice_contextualWifiSlice_shouldReturnContextualWifiSliceUri() {
-        mWifiSlice.sActiveUiSession = mFeatureFactory.slicesFeatureProvider.getUiSessionToken();
-
-        final Slice wifiSlice = mWifiSlice.getSlice();
-
-        assertThat(wifiSlice.getUri()).isEqualTo(CustomSliceRegistry.CONTEXTUAL_WIFI_SLICE_URI);
-    }
-
-    private void connectToWifi(NetworkCapabilities nc) {
-        ShadowConnectivityManager.getShadow().setNetworkCapabilities(mNetwork, nc);
-    }
-
-    private NetworkCapabilities makeValidatedNetworkCapabilities() {
-        final NetworkCapabilities nc = NetworkCapabilities.Builder.withoutDefaultCapabilities()
-                .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
-                .addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED)
-                .build();
-        return nc;
-    }
-
-    private void assertWifiHeader(Slice slice) {
-        final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-        assertThat(metadata.getTitle()).isEqualTo(mContext.getString(R.string.wifi_settings));
-
-        final SliceAction primaryAction = metadata.getPrimaryAction();
-        final IconCompat expectedToggleIcon = IconCompat.createWithResource(mContext,
-                R.drawable.ic_settings_wireless);
-        assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedToggleIcon.toString());
-
-        final List<SliceAction> toggles = metadata.getToggles();
-        assertThat(toggles).hasSize(1);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java
index 9d57d4a..54a546a 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java
@@ -26,19 +26,25 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.net.wifi.WifiManager;
+
 import androidx.lifecycle.Lifecycle;
+import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.wifi.WifiPickerTrackerHelper;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
 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.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
 
 import java.util.Arrays;
 
@@ -47,17 +53,24 @@
 
     private static final int SUB_ID = 2;
 
-    private WifiScanWorker mWifiScanWorker;
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Spy
+    Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock
+    WifiManager mWifiManager;
     @Mock
     WifiPickerTracker mWifiPickerTracker;
     @Mock
     WifiPickerTrackerHelper mWifiPickerTrackerHelper;
 
+    private WifiScanWorker mWifiScanWorker;
+
     @Before
     public void setUp() {
-        MockitoAnnotations.initMocks(this);
+        when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
 
-        mWifiScanWorker = new WifiScanWorker(RuntimeEnvironment.application, WIFI_SLICE_URI);
+        mWifiScanWorker = new WifiScanWorker(mContext, WIFI_SLICE_URI);
         mWifiScanWorker.mWifiPickerTracker = mWifiPickerTracker;
         mWifiScanWorker.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper;
         when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
deleted file mode 100644
index d777a59..0000000
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherApBandPreferenceControllerTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi.tether;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyString;
-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.net.TetheringManager;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class WifiTetherApBandPreferenceControllerTest {
-
-    private static final String ALL_BANDS = "5.0 GHz Band preferred";
-    private static final String TWO_GHZ_STRING = "2.4 GHz Band";
-    private static final String FIVE_GHZ_STRING = "5.0 GHz Band";
-    private static final String VAL_2GHZ_STR  = "1";
-    private static final String VAL_5GHZ_STR = "2";
-    private static final String VAL_2_5_GHZ_STR = "3";
-    private static final int VAL_2GHZ_INT = 1;
-    private static final int VAL_5GHZ_INT = 2;
-    private static final int VAL_2_5_GHZ_INT = 3;
-
-    private Context mContext;
-    @Mock
-    private TetheringManager mTetheringManager;
-    @Mock
-    private WifiManager mWifiManager;
-    @Mock
-    private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
-    @Mock
-    private PreferenceScreen mScreen;
-
-    private WifiTetherApBandPreferenceController mController;
-    private ListPreference mPreference;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        mPreference = new ListPreference(RuntimeEnvironment.application);
-        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
-        when(mContext.getSystemService(Context.TETHERING_SERVICE)).thenReturn(mTetheringManager);
-        when(mTetheringManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
-        when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
-        when(mScreen.findPreference(anyString())).thenReturn(mPreference);
-        when(mWifiManager.getSoftApConfiguration()).thenReturn(
-                new SoftApConfiguration.Builder().build());
-
-        mController = new WifiTetherApBandPreferenceController(mContext, mListener);
-    }
-
-    @Test
-    public void display_5GhzSupported_shouldDisplayFullList() {
-        when(mWifiManager.getCountryCode()).thenReturn("US");
-        when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
-        // Create a new instance
-        mController = new WifiTetherApBandPreferenceController(mContext, mListener);
-
-        mController.displayPreference(mScreen);
-        mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR);
-
-        assertThat(mPreference.getSummary()).isEqualTo(ALL_BANDS);
-    }
-
-    @Test
-    public void display_noCountryCode_shouldDisable() {
-        when(mWifiManager.getCountryCode()).thenReturn(null);
-        when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
-        mController.displayPreference(mScreen);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-        assertThat(mPreference.getSummary())
-                .isEqualTo(RuntimeEnvironment.application.getString(R.string.wifi_ap_choose_2G));
-    }
-
-    @Test
-    public void display_5GhzNotSupported_shouldDisable() {
-        when(mWifiManager.getCountryCode()).thenReturn("US");
-        when(mWifiManager.is5GHzBandSupported()).thenReturn(false);
-
-        mController.displayPreference(mScreen);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-        assertThat(mPreference.getSummary())
-                .isEqualTo(RuntimeEnvironment.application.getString(R.string.wifi_ap_choose_2G));
-    }
-
-    @Test
-    public void changePreference_With5G_shouldUpdateValue() {
-        when(mWifiManager.getCountryCode()).thenReturn("US");
-        when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
-        // Create a new instance to pick the proper value of isDualModeSupported()
-        mController = new WifiTetherApBandPreferenceController(mContext, mListener);
-
-        mController.displayPreference(mScreen);
-
-        // 'Auto' option
-        mController.onPreferenceChange(mPreference, VAL_2_5_GHZ_STR);
-        assertThat(mController.getBandIndex()).isEqualTo(VAL_2_5_GHZ_INT);
-        assertThat(mPreference.getSummary()).isEqualTo(ALL_BANDS);
-        verify(mListener, times(1)).onTetherConfigUpdated(mController);
-
-        // should revert to the default for 5 Ghz only since this is not supported with this config
-        mController.onPreferenceChange(mPreference, VAL_5GHZ_STR);
-        assertThat(mController.getBandIndex()).isEqualTo(VAL_2_5_GHZ_INT);
-        assertThat(mPreference.getSummary()).isEqualTo(ALL_BANDS);
-        verify(mListener, times(2)).onTetherConfigUpdated(mController);
-
-        // set to 2 Ghz
-        mController.onPreferenceChange(mPreference, VAL_2GHZ_STR);
-        assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT);
-        assertThat(mPreference.getSummary()).isEqualTo(TWO_GHZ_STRING);
-        verify(mListener, times(3)).onTetherConfigUpdated(mController);
-    }
-
-    @Test
-    public void updateDisplay_shouldUpdateValue() {
-        when(mWifiManager.getCountryCode()).thenReturn("US");
-        when(mWifiManager.is5GHzBandSupported()).thenReturn(true);
-
-        // Set controller band index to 5GHz and verify is set.
-        mController.displayPreference(mScreen);
-        mController.onPreferenceChange(mPreference, VAL_5GHZ_STR);
-        assertThat(mController.getBandIndex()).isEqualTo(VAL_2_5_GHZ_INT);
-
-        // Disable 5Ghz band
-        when(mWifiManager.is5GHzBandSupported()).thenReturn(false);
-
-        // Call updateDisplay and verify it's changed.
-        mController.updateDisplay();
-        assertThat(mController.getBandIndex()).isEqualTo(VAL_2GHZ_INT);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index e67717d..28fb8b3 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -49,7 +49,6 @@
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
 import android.os.UserManager;
-import android.util.FeatureFlagUtils;
 import android.widget.TextView;
 
 import androidx.fragment.app.FragmentActivity;
@@ -60,7 +59,6 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
-import com.android.settings.core.FeatureFlags;
 import com.android.settings.dashboard.RestrictedDashboardFragment;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowFragment;
@@ -144,7 +142,6 @@
 
     @Before
     public void setUp() {
-        FeatureFlagUtils.setEnabled(mContext, FeatureFlags.TETHER_ALL_IN_ONE, false);
         setCanShowWifiHotspotCached(true);
         doReturn(mWifiManager).when(mContext).getSystemService(WifiManager.class);
         doReturn(mConnectivityManager)
@@ -231,7 +228,7 @@
 
     @Test
     public void onSecuritySummaryChanged_canNotShowWifiHotspot_returnFalse() {
-        int stringResId = R.string.wifi_security_sae;
+        int stringResId = com.android.settingslib.R.string.wifi_security_sae;
         mSettings.mWifiHotspotSecurity = mock(Preference.class);
 
         mSettings.onSecuritySummaryChanged(stringResId);
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/src/com/android/settings/testutils/CustomActivity.java b/tests/robotests/testutils/com/android/settings/testutils/CustomActivity.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/CustomActivity.java
rename to tests/robotests/testutils/com/android/settings/testutils/CustomActivity.java
diff --git a/tests/robotests/src/com/android/settings/testutils/DatabaseTestUtils.java b/tests/robotests/testutils/com/android/settings/testutils/DatabaseTestUtils.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/DatabaseTestUtils.java
rename to tests/robotests/testutils/com/android/settings/testutils/DatabaseTestUtils.java
diff --git a/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
new file mode 100644
index 0000000..5a5008c
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/FakeFeatureFactory.java
@@ -0,0 +1,335 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import static org.mockito.Mockito.mock;
+
+import android.content.Context;
+
+import com.android.settings.accessibility.AccessibilityMetricsFeatureProvider;
+import com.android.settings.accessibility.AccessibilitySearchFeatureProvider;
+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;
+import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
+import com.android.settings.dashboard.DashboardFeatureProvider;
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
+import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProvider;
+import com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFeatureProviderImpl;
+import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
+import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
+import com.android.settings.fuelgauge.BatteryStatusFeatureProvider;
+import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
+import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
+import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider;
+import com.android.settings.localepicker.LocaleFeatureProvider;
+import com.android.settings.onboarding.OnboardingFeatureProvider;
+import com.android.settings.overlay.DockUpdaterFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
+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;
+import com.android.settings.slices.SlicesFeatureProvider;
+import com.android.settings.users.UserFeatureProvider;
+import com.android.settings.vpn2.AdvancedVpnFeatureProvider;
+import com.android.settings.wifi.WifiTrackerLibProvider;
+import com.android.settings.wifi.factory.WifiFeatureProvider;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Test util to provide fake FeatureFactory. To use this factory, call {@code setupForTest} in
+ * {@code @Before} method of the test class.
+ */
+public class FakeFeatureFactory extends FeatureFactory {
+
+    public final SupportFeatureProvider supportFeatureProvider;
+    public final MetricsFeatureProvider metricsFeatureProvider;
+    public final BatteryStatusFeatureProvider batteryStatusFeatureProvider;
+    public final BatterySettingsFeatureProvider batterySettingsFeatureProvider;
+    public final PowerUsageFeatureProvider powerUsageFeatureProvider;
+    public final DashboardFeatureProvider dashboardFeatureProvider;
+    public final DockUpdaterFeatureProvider dockUpdaterFeatureProvider;
+    public final LocaleFeatureProvider localeFeatureProvider;
+    public final ApplicationFeatureProvider applicationFeatureProvider;
+    public final EnterprisePrivacyFeatureProvider enterprisePrivacyFeatureProvider;
+    public final SurveyFeatureProvider surveyFeatureProvider;
+    public final SecurityFeatureProvider securityFeatureProvider;
+    public final SuggestionFeatureProvider suggestionsFeatureProvider;
+    public final UserFeatureProvider userFeatureProvider;
+    public final AccountFeatureProvider mAccountFeatureProvider;
+    public final BluetoothFeatureProvider mBluetoothFeatureProvider;
+    public final FaceFeatureProvider mFaceFeatureProvider;
+    public final FingerprintFeatureProvider mFingerprintFeatureProvider;
+    public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
+
+    public PanelFeatureProvider panelFeatureProvider;
+    public SlicesFeatureProvider slicesFeatureProvider;
+    public SearchFeatureProvider searchFeatureProvider;
+    public ContextualCardFeatureProvider mContextualCardFeatureProvider;
+
+    public WifiTrackerLibProvider wifiTrackerLibProvider;
+    public SecuritySettingsFeatureProvider securitySettingsFeatureProvider;
+    public AccessibilitySearchFeatureProvider mAccessibilitySearchFeatureProvider;
+    public AccessibilityMetricsFeatureProvider mAccessibilityMetricsFeatureProvider;
+    public AdvancedVpnFeatureProvider mAdvancedVpnFeatureProvider;
+    public WifiFeatureProvider mWifiFeatureProvider;
+    public KeyboardSettingsFeatureProvider mKeyboardSettingsFeatureProvider;
+    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.
+     */
+    public static FakeFeatureFactory setupForTest() {
+        FakeFeatureFactory factory = new FakeFeatureFactory();
+        setFactory(getAppContext(), factory);
+        return factory;
+    }
+
+    /**
+     * Used by reflection. Do not call directly.
+     */
+    public FakeFeatureFactory() {
+        supportFeatureProvider = mock(SupportFeatureProvider.class);
+        metricsFeatureProvider = mock(MetricsFeatureProvider.class);
+        batteryStatusFeatureProvider = mock(BatteryStatusFeatureProvider.class);
+        batterySettingsFeatureProvider = mock(BatterySettingsFeatureProvider.class);
+        powerUsageFeatureProvider = mock(PowerUsageFeatureProvider.class);
+        dashboardFeatureProvider = mock(DashboardFeatureProvider.class);
+        dockUpdaterFeatureProvider = mock(DockUpdaterFeatureProvider.class);
+        localeFeatureProvider = mock(LocaleFeatureProvider.class);
+        applicationFeatureProvider = mock(ApplicationFeatureProvider.class);
+        enterprisePrivacyFeatureProvider = mock(EnterprisePrivacyFeatureProvider.class);
+        searchFeatureProvider = mock(SearchFeatureProvider.class);
+        surveyFeatureProvider = mock(SurveyFeatureProvider.class);
+        securityFeatureProvider = mock(SecurityFeatureProvider.class);
+        suggestionsFeatureProvider = mock(SuggestionFeatureProvider.class);
+        userFeatureProvider = mock(UserFeatureProvider.class);
+        slicesFeatureProvider = mock(SlicesFeatureProvider.class);
+        mAccountFeatureProvider = mock(AccountFeatureProvider.class);
+        mContextualCardFeatureProvider = mock(ContextualCardFeatureProvider.class);
+        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);
+        mAccessibilitySearchFeatureProvider = mock(AccessibilitySearchFeatureProvider.class);
+        mAccessibilityMetricsFeatureProvider = mock(AccessibilityMetricsFeatureProvider.class);
+        mAdvancedVpnFeatureProvider = mock(AdvancedVpnFeatureProvider.class);
+        mWifiFeatureProvider = mock(WifiFeatureProvider.class);
+        mKeyboardSettingsFeatureProvider = mock(KeyboardSettingsFeatureProvider.class);
+        mStylusFeatureProvider = mock(StylusFeatureProvider.class);
+        mOnboardingFeatureProvider = mock(OnboardingFeatureProvider.class);
+        mFastPairFeatureProvider = mock(FastPairFeatureProvider.class);
+        mPrivateSpaceLoginFeatureProvider =  mock(PrivateSpaceLoginFeatureProvider.class);
+    }
+
+    @Override
+    public SuggestionFeatureProvider getSuggestionFeatureProvider() {
+        return suggestionsFeatureProvider;
+    }
+
+    @Override
+    public SupportFeatureProvider getSupportFeatureProvider() {
+        return supportFeatureProvider;
+    }
+
+    @Override
+    public MetricsFeatureProvider getMetricsFeatureProvider() {
+        return metricsFeatureProvider;
+    }
+
+    @NotNull
+    @Override
+    public BatteryStatusFeatureProvider getBatteryStatusFeatureProvider() {
+        return batteryStatusFeatureProvider;
+    }
+
+    @Override
+    public BatterySettingsFeatureProvider getBatterySettingsFeatureProvider() {
+        return batterySettingsFeatureProvider;
+    }
+
+    @NotNull
+    @Override
+    public PowerUsageFeatureProvider getPowerUsageFeatureProvider() {
+        return powerUsageFeatureProvider;
+    }
+
+    @NotNull
+    @Override
+    public DashboardFeatureProvider getDashboardFeatureProvider() {
+        return dashboardFeatureProvider;
+    }
+
+    @Override
+    public DockUpdaterFeatureProvider getDockUpdaterFeatureProvider() {
+        return dockUpdaterFeatureProvider;
+    }
+
+    @NotNull
+    @Override
+    public ApplicationFeatureProvider getApplicationFeatureProvider() {
+        return applicationFeatureProvider;
+    }
+
+    @Override
+    public LocaleFeatureProvider getLocaleFeatureProvider() {
+        return localeFeatureProvider;
+    }
+
+    @NotNull
+    @Override
+    public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider() {
+        return enterprisePrivacyFeatureProvider;
+    }
+
+    @Override
+    public SearchFeatureProvider getSearchFeatureProvider() {
+        return searchFeatureProvider;
+    }
+
+    @Override
+    public SurveyFeatureProvider getSurveyFeatureProvider(Context context) {
+        return surveyFeatureProvider;
+    }
+
+    @Override
+    public SecurityFeatureProvider getSecurityFeatureProvider() {
+        return securityFeatureProvider;
+    }
+
+    @NotNull
+    @Override
+    public UserFeatureProvider getUserFeatureProvider() {
+        return userFeatureProvider;
+    }
+
+    @Override
+    public SlicesFeatureProvider getSlicesFeatureProvider() {
+        return slicesFeatureProvider;
+    }
+
+    @Override
+    public AccountFeatureProvider getAccountFeatureProvider() {
+        return mAccountFeatureProvider;
+    }
+
+    @Override
+    public PanelFeatureProvider getPanelFeatureProvider() {
+        return panelFeatureProvider;
+    }
+
+    @Override
+    public ContextualCardFeatureProvider getContextualCardFeatureProvider(Context context) {
+        return mContextualCardFeatureProvider;
+    }
+
+    @Override
+    public BluetoothFeatureProvider getBluetoothFeatureProvider() {
+        return mBluetoothFeatureProvider;
+    }
+
+    @Override
+    public FaceFeatureProvider getFaceFeatureProvider() {
+        return mFaceFeatureProvider;
+    }
+
+    @Override
+    public FingerprintFeatureProvider getFingerprintFeatureProvider() {
+        return mFingerprintFeatureProvider;
+    }
+
+    @Override
+    public BiometricsRepositoryProvider getBiometricsRepositoryProvider() {
+        return mBiometricsRepositoryProvider;
+    }
+
+    @Override
+    public WifiTrackerLibProvider getWifiTrackerLibProvider() {
+        return wifiTrackerLibProvider;
+    }
+
+    @Override
+    public SecuritySettingsFeatureProvider getSecuritySettingsFeatureProvider() {
+        return securitySettingsFeatureProvider;
+    }
+
+    @Override
+    public AccessibilitySearchFeatureProvider getAccessibilitySearchFeatureProvider() {
+        return mAccessibilitySearchFeatureProvider;
+    }
+
+    @Override
+    public AccessibilityMetricsFeatureProvider getAccessibilityMetricsFeatureProvider() {
+        return mAccessibilityMetricsFeatureProvider;
+    }
+
+    @Override
+    public HardwareInfoFeatureProvider getHardwareInfoFeatureProvider() {
+        return HardwareInfoFeatureProviderImpl.INSTANCE;
+    }
+
+    @Override
+    public AdvancedVpnFeatureProvider getAdvancedVpnFeatureProvider() {
+        return mAdvancedVpnFeatureProvider;
+    }
+
+    @Override
+    public WifiFeatureProvider getWifiFeatureProvider() {
+        return mWifiFeatureProvider;
+    }
+
+    @Override
+    public KeyboardSettingsFeatureProvider getKeyboardSettingsFeatureProvider() {
+        return mKeyboardSettingsFeatureProvider;
+    }
+
+    @Override
+    public StylusFeatureProvider getStylusFeatureProvider() {
+        return mStylusFeatureProvider;
+    }
+
+    @Override
+    public OnboardingFeatureProvider getOnboardingFeatureProvider() {
+        return mOnboardingFeatureProvider;
+    }
+
+    @Override
+    public FastPairFeatureProvider getFastPairFeatureProvider() {
+        return mFastPairFeatureProvider;
+    }
+
+    @Override
+    public PrivateSpaceLoginFeatureProvider getPrivateSpaceLoginFeatureProvider() {
+        return mPrivateSpaceLoginFeatureProvider;
+    }
+}
+
diff --git a/tests/robotests/src/com/android/settings/testutils/ResolveInfoBuilder.java b/tests/robotests/testutils/com/android/settings/testutils/ResolveInfoBuilder.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/ResolveInfoBuilder.java
rename to tests/robotests/testutils/com/android/settings/testutils/ResolveInfoBuilder.java
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/SettingsShadowResources.java
new file mode 100644
index 0000000..b2d5484
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import static org.robolectric.RuntimeEnvironment.application;
+import static org.robolectric.shadow.api.Shadow.directlyOn;
+
+import android.content.res.Resources;
+import android.content.res.Resources.NotFoundException;
+import android.util.SparseArray;
+
+import androidx.annotation.ArrayRes;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.RealObject;
+import org.robolectric.annotation.Resetter;
+import org.robolectric.shadows.ShadowResources;
+import org.robolectric.util.ReflectionHelpers.ClassParameter;
+
+/**
+ * Shadow Resources and Theme classes to handle resource references that Robolectric shadows cannot
+ * handle because they are too new or private.
+ */
+@Implements(value = Resources.class)
+public class SettingsShadowResources extends ShadowResources {
+
+    @RealObject
+    public Resources realResources;
+
+    private static SparseArray<Object> sResourceOverrides = new SparseArray<>();
+
+    public static void overrideResource(int id, Object value) {
+        sResourceOverrides.put(id, value);
+    }
+
+    public static void overrideResource(String name, Object value) {
+        final Resources res = application.getResources();
+        final int resId = res.getIdentifier(name, null, null);
+        if (resId == 0) {
+            throw new Resources.NotFoundException("Cannot override \"" + name + "\"");
+        }
+        overrideResource(resId, value);
+    }
+
+    @Resetter
+    public static void reset() {
+        sResourceOverrides.clear();
+    }
+
+    @Implementation
+    protected int[] getIntArray(@ArrayRes int id) throws NotFoundException {
+        final Object override = sResourceOverrides.get(id);
+        if (override instanceof int[]) {
+            return (int[]) override;
+        }
+        return directlyOn(realResources, Resources.class).getIntArray(id);
+    }
+
+    @Implementation
+    protected String getString(int id) {
+        final Object override = sResourceOverrides.get(id);
+        if (override instanceof String) {
+            return (String) override;
+        }
+        return directlyOn(
+                realResources, Resources.class, "getString", ClassParameter.from(int.class, id));
+    }
+
+    @Implementation
+    protected int getInteger(int id) {
+        final Object override = sResourceOverrides.get(id);
+        if (override instanceof Integer) {
+            return (Integer) override;
+        }
+        return directlyOn(
+                realResources, Resources.class, "getInteger", ClassParameter.from(int.class, id));
+    }
+
+    @Implementation
+    protected boolean getBoolean(int id) {
+        final Object override = sResourceOverrides.get(id);
+        if (override instanceof Boolean) {
+            return (boolean) override;
+        }
+        return directlyOn(realResources, Resources.class, "getBoolean",
+                ClassParameter.from(int.class, id));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowAccessibilityServiceInfo.java
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowActivity.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivity.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowActivity.java
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityEmbeddingUtils.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowActivityEmbeddingUtils.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityEmbeddingUtils.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowActivityEmbeddingUtils.java
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowAlertDialogCompat.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowAlertDialogCompat.java
new file mode 100644
index 0000000..d6d17f8
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowAlertDialogCompat.java
@@ -0,0 +1,84 @@
+/*
+ * 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.testutils.shadow;
+
+import android.annotation.SuppressLint;
+import android.view.View;
+
+import androidx.appcompat.app.AlertDialog;
+
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.RealObject;
+import org.robolectric.annotation.Resetter;
+import org.robolectric.shadow.api.Shadow;
+import org.robolectric.shadows.ShadowDialog;
+import org.robolectric.util.ReflectionHelpers;
+
+import javax.annotation.Nullable;
+
+/* Robolectric shadow for the androidx alert dialog. */
+@Implements(AlertDialog.class)
+public class ShadowAlertDialogCompat extends ShadowDialog {
+
+    @SuppressLint("StaticFieldLeak")
+    @Nullable
+    private static ShadowAlertDialogCompat sLatestSupportAlertDialog;
+    @RealObject
+    private AlertDialog mRealAlertDialog;
+
+    @Implementation
+    public void show() {
+        super.show();
+        sLatestSupportAlertDialog = this;
+    }
+
+    public CharSequence getMessage() {
+        final Object alertController = ReflectionHelpers.getField(mRealAlertDialog, "mAlert");
+        return ReflectionHelpers.getField(alertController, "mMessage");
+    }
+
+    public CharSequence getTitle() {
+        final Object alertController = ReflectionHelpers.getField(mRealAlertDialog, "mAlert");
+        return ReflectionHelpers.getField(alertController, "mTitle");
+    }
+
+    public View getView() {
+        final Object alertController = ReflectionHelpers.getField(mRealAlertDialog, "mAlert");
+        return ReflectionHelpers.getField(alertController, "mView");
+    }
+
+    @Nullable
+    public static AlertDialog getLatestAlertDialog() {
+        return sLatestSupportAlertDialog == null
+                ? null : sLatestSupportAlertDialog.mRealAlertDialog;
+    }
+
+    @Resetter
+    public static void reset() {
+        sLatestSupportAlertDialog = null;
+    }
+
+    public static ShadowAlertDialogCompat shadowOf(AlertDialog alertDialog) {
+        return (ShadowAlertDialogCompat) Shadow.extract(alertDialog);
+    }
+
+    public void clickOnItem(int index) {
+        Shadows.shadowOf(mRealAlertDialog.getListView()).performItemClick(index);
+    }
+}
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
new file mode 100644
index 0000000..20021ea
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowBluetoothAdapter.java
@@ -0,0 +1,90 @@
+/*
+ * 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.testutils.shadow;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Implements(value = BluetoothAdapter.class)
+public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
+
+    private int mState;
+    private List<Integer> mSupportedProfiles = new ArrayList<>();
+    private List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
+    private int mIsLeAudioBroadcastSourceSupported;
+    private int mIsLeAudioBroadcastAssistantSupported;
+
+    @Implementation
+    protected List<Integer> getSupportedProfiles() {
+        return mSupportedProfiles;
+    }
+
+    public void addSupportedProfiles(int profile) {
+        mSupportedProfiles.add(profile);
+    }
+
+    public void clearSupportedProfiles() {
+        mSupportedProfiles.clear();
+    }
+
+    @Implementation
+    protected int getConnectionState() {
+        return mState;
+    }
+
+    public void setConnectionState(int state) {
+        mState = state;
+    }
+
+    @Implementation
+    protected boolean factoryReset() {
+        return true;
+    }
+
+    @Implementation
+    protected List<BluetoothDevice> getMostRecentlyConnectedDevices() {
+        return mMostRecentlyConnectedDevices;
+    }
+
+    public void setMostRecentlyConnectedDevices(List<BluetoothDevice> list) {
+        mMostRecentlyConnectedDevices = list;
+    }
+
+    @Implementation
+    protected int isLeAudioBroadcastSourceSupported() {
+        return mIsLeAudioBroadcastSourceSupported;
+    }
+
+    public void setIsLeAudioBroadcastSourceSupported(int isSupported) {
+        mIsLeAudioBroadcastSourceSupported = isSupported;
+    }
+
+    @Implementation
+    protected int isLeAudioBroadcastAssistantSupported() {
+        return mIsLeAudioBroadcastAssistantSupported;
+    }
+
+    public void setIsLeAudioBroadcastAssistantSupported(int isSupported) {
+        mIsLeAudioBroadcastAssistantSupported = isSupported;
+    }
+}
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowBluetoothUtils.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowBluetoothUtils.java
new file mode 100644
index 0000000..4dca749
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowBluetoothUtils.java
@@ -0,0 +1,44 @@
+/*
+ * 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.testutils.shadow;
+
+import android.content.Context;
+
+import com.android.settings.bluetooth.Utils;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+/** Robolectric shadow for the bluetooth utils. */
+@Implements(Utils.class)
+public class ShadowBluetoothUtils {
+
+    public static LocalBluetoothManager sLocalBluetoothManager;
+
+    @Implementation
+    protected static LocalBluetoothManager getLocalBtManager(Context context) {
+        return sLocalBluetoothManager;
+    }
+
+    /** Resets the local bluetooth manager to null. */
+    @Resetter
+    public static void reset() {
+        sLocalBluetoothManager = null;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowDataSaverBackend.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowDataSaverBackend.java
new file mode 100644
index 0000000..f97a70e
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowDataSaverBackend.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.testutils.shadow;
+
+import com.android.settings.datausage.DataSaverBackend;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(DataSaverBackend.class)
+public class ShadowDataSaverBackend {
+
+    private static boolean sIsEnabled = true;
+
+    @Implementation
+    protected boolean isDataSaverEnabled() {
+        return sIsEnabled;
+    }
+
+    @Implementation
+    protected void setDataSaverEnabled(boolean enabled) {
+        sIsEnabled = enabled;
+    }
+}
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowDeviceConfig.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowDeviceConfig.java
new file mode 100644
index 0000000..acb1dd8
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowDeviceConfig.java
@@ -0,0 +1,49 @@
+/*
+ * 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.testutils.shadow;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Implements(android.provider.DeviceConfig.class)
+public class ShadowDeviceConfig extends org.robolectric.shadows.ShadowDeviceConfig {
+
+    private static Map<String, String> sPropertyMaps = new HashMap<>();
+
+    @Resetter
+    public static void reset() {
+        sPropertyMaps.clear();
+    }
+
+    @Implementation
+    public static boolean setProperty(
+            String namespace, String name, String value, boolean makeDefault) {
+        sPropertyMaps.put(name, value);
+        return true;
+    }
+
+    @Implementation
+    public static String getProperty(String namespace, String name) {
+        return sPropertyMaps.get(name);
+    }
+}
+
+
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowFragment.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowFragment.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowFragment.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowFragment.java
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInteractionJankMonitor.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowInteractionJankMonitor.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowInteractionJankMonitor.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowInteractionJankMonitor.java
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java
new file mode 100644
index 0000000..efea6fd
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowLockPatternUtils.java
@@ -0,0 +1,247 @@
+/*
+ * 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.testutils.shadow;
+
+import android.app.admin.DevicePolicyManager;
+import android.app.admin.PasswordMetrics;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.LockscreenCredential;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Implements(LockPatternUtils.class)
+public class ShadowLockPatternUtils {
+
+    private static boolean sDeviceEncryptionEnabled;
+    private static Map<Integer, Integer> sUserToActivePasswordQualityMap = new HashMap<>();
+    private static Map<Integer, Integer> sUserToComplexityMap = new HashMap<>();
+    private static Map<Integer, Integer> sUserToProfileComplexityMap = new HashMap<>();
+    private static Map<Integer, PasswordMetrics> sUserToMetricsMap = new HashMap<>();
+    private static Map<Integer, PasswordMetrics> sUserToProfileMetricsMap = new HashMap<>();
+    private static Map<Integer, Boolean> sUserToIsSecureMap = new HashMap<>();
+    private static Map<Integer, Boolean> sUserToVisiblePatternEnabledMap = new HashMap<>();
+    private static Map<Integer, Boolean> sUserToBiometricAllowedMap = new HashMap<>();
+    private static Map<Integer, Boolean> sUserToLockPatternEnabledMap = new HashMap<>();
+    private static Map<Integer, Integer> sKeyguardStoredPasswordQualityMap = new HashMap<>();
+
+    private static boolean sIsUserOwnsFrpCredential;
+
+    @Resetter
+    public static void reset() {
+        sUserToActivePasswordQualityMap.clear();
+        sUserToComplexityMap.clear();
+        sUserToProfileComplexityMap.clear();
+        sUserToMetricsMap.clear();
+        sUserToProfileMetricsMap.clear();
+        sUserToIsSecureMap.clear();
+        sUserToVisiblePatternEnabledMap.clear();
+        sUserToBiometricAllowedMap.clear();
+        sUserToLockPatternEnabledMap.clear();
+        sDeviceEncryptionEnabled = false;
+        sIsUserOwnsFrpCredential = false;
+        sKeyguardStoredPasswordQualityMap.clear();
+    }
+
+    @Implementation
+    protected boolean hasSecureLockScreen() {
+        return true;
+    }
+
+    @Implementation
+    protected boolean isSecure(int userId) {
+        Boolean isSecure = sUserToIsSecureMap.get(userId);
+        if (isSecure == null) {
+            return true;
+        }
+        return isSecure;
+    }
+
+    public static void setIsSecure(int userId, boolean isSecure) {
+        sUserToIsSecureMap.put(userId, isSecure);
+    }
+
+    @Implementation
+    protected int getActivePasswordQuality(int userId) {
+        final Integer activePasswordQuality = sUserToActivePasswordQualityMap.get(userId);
+        if (activePasswordQuality == null) {
+            return DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+        }
+        return activePasswordQuality;
+    }
+
+    @Implementation
+    protected int getKeyguardStoredPasswordQuality(int userHandle) {
+        return sKeyguardStoredPasswordQualityMap.getOrDefault(userHandle, /* defaultValue= */ 1);
+    }
+
+    @Implementation
+    protected static boolean isDeviceEncryptionEnabled() {
+        return sDeviceEncryptionEnabled;
+    }
+
+    @Implementation
+    protected List<ComponentName> getEnabledTrustAgents(int userId) {
+        return null;
+    }
+
+    public static void setDeviceEncryptionEnabled(boolean deviceEncryptionEnabled) {
+        sDeviceEncryptionEnabled = deviceEncryptionEnabled;
+    }
+
+    @Implementation
+    protected byte[] getPasswordHistoryHashFactor(
+            LockscreenCredential currentPassword, int userId) {
+        return null;
+    }
+
+    @Implementation
+    protected boolean checkPasswordHistory(byte[] passwordToCheck, byte[] hashFactor, int userId) {
+        return false;
+    }
+
+    @Implementation
+    public @DevicePolicyManager.PasswordComplexity int getRequestedPasswordComplexity(int userId) {
+        return getRequestedPasswordComplexity(userId, false);
+    }
+
+    @Implementation
+    @DevicePolicyManager.PasswordComplexity
+    public int getRequestedPasswordComplexity(int userId, boolean deviceWideOnly) {
+        int complexity = sUserToComplexityMap.getOrDefault(userId,
+                DevicePolicyManager.PASSWORD_COMPLEXITY_NONE);
+        if (!deviceWideOnly) {
+            complexity = Math.max(complexity, sUserToProfileComplexityMap.getOrDefault(userId,
+                    DevicePolicyManager.PASSWORD_COMPLEXITY_NONE));
+        }
+        return complexity;
+    }
+
+    @Implementation
+    public static boolean userOwnsFrpCredential(Context context, UserInfo info) {
+        return sIsUserOwnsFrpCredential;
+    }
+
+    public static void setUserOwnsFrpCredential(boolean isUserOwnsFrpCredential) {
+        sIsUserOwnsFrpCredential = isUserOwnsFrpCredential;
+    }
+
+    @Implementation
+    public boolean isVisiblePatternEnabled(int userId) {
+        return sUserToVisiblePatternEnabledMap.getOrDefault(userId, false);
+    }
+
+    public static void setIsVisiblePatternEnabled(int userId, boolean isVisiblePatternEnabled) {
+        sUserToVisiblePatternEnabledMap.put(userId, isVisiblePatternEnabled);
+    }
+
+    @Implementation
+    public boolean isBiometricAllowedForUser(int userId) {
+        return sUserToBiometricAllowedMap.getOrDefault(userId, false);
+    }
+
+    public static void setIsBiometricAllowedForUser(int userId, boolean isBiometricAllowed) {
+        sUserToBiometricAllowedMap.put(userId, isBiometricAllowed);
+    }
+
+    @Implementation
+    public boolean isLockPatternEnabled(int userId) {
+        return sUserToLockPatternEnabledMap.getOrDefault(userId, false);
+    }
+
+    public static void setIsLockPatternEnabled(int userId, boolean isLockPatternEnabled) {
+        sUserToLockPatternEnabledMap.put(userId, isLockPatternEnabled);
+    }
+
+    @Implementation
+    public boolean setLockCredential(
+            @NonNull LockscreenCredential newCredential,
+            @NonNull LockscreenCredential savedCredential, int userHandle) {
+        setIsSecure(userHandle, true);
+        return true;
+    }
+
+    @Implementation
+    public boolean checkCredential(
+            @NonNull LockscreenCredential credential, int userId,
+            @Nullable LockPatternUtils.CheckCredentialProgressCallback progressCallback)
+            throws LockPatternUtils.RequestThrottledException {
+        return true;
+    }
+
+    public static void setRequiredPasswordComplexity(int userHandle, int complexity) {
+        sUserToComplexityMap.put(userHandle, complexity);
+    }
+
+    public static void setRequiredPasswordComplexity(int complexity) {
+        sUserToComplexityMap.put(UserHandle.myUserId(), complexity);
+    }
+
+    public static void setRequiredProfilePasswordComplexity(int complexity) {
+        sUserToProfileComplexityMap.put(UserHandle.myUserId(), complexity);
+    }
+
+    @Implementation
+    public PasswordMetrics getRequestedPasswordMetrics(int userId, boolean deviceWideOnly) {
+        PasswordMetrics metrics = sUserToMetricsMap.getOrDefault(userId,
+                new PasswordMetrics(LockPatternUtils.CREDENTIAL_TYPE_NONE));
+        if (!deviceWideOnly) {
+            metrics.maxWith(sUserToProfileMetricsMap.getOrDefault(userId,
+                    new PasswordMetrics(LockPatternUtils.CREDENTIAL_TYPE_NONE)));
+        }
+        return metrics;
+    }
+
+    public static void setRequestedPasswordMetrics(PasswordMetrics metrics) {
+        sUserToMetricsMap.put(UserHandle.myUserId(), metrics);
+    }
+
+    public static void setRequestedProfilePasswordMetrics(PasswordMetrics metrics) {
+        sUserToProfileMetricsMap.put(UserHandle.myUserId(), metrics);
+    }
+
+    public static void setActivePasswordQuality(int quality) {
+        sUserToActivePasswordQualityMap.put(UserHandle.myUserId(), quality);
+    }
+
+    @Implementation
+    public boolean isLockScreenDisabled(int userId) {
+        return false;
+    }
+
+    @Implementation
+    public boolean isSeparateProfileChallengeEnabled(int userHandle) {
+        return false;
+    }
+
+    public static void setKeyguardStoredPasswordQuality(int quality) {
+        sKeyguardStoredPasswordQualityMap.put(UserHandle.myUserId(), quality);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowThreadUtils.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowThreadUtils.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowThreadUtils.java
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
new file mode 100644
index 0000000..23df4ca
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
@@ -0,0 +1,378 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.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;
+import android.content.pm.UserProperties;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.os.UserManager.EnforcingUser;
+
+import com.google.android.collect.Maps;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+import com.google.common.collect.ImmutableList;
+
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+import org.robolectric.shadow.api.Shadow;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@Implements(value = UserManager.class)
+public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager {
+
+    private static boolean sIsSupportsMultipleUsers;
+    private static boolean sIsMultipleAdminEnabled = false;
+
+    private static final int PRIMARY_USER_ID = 0;
+
+    private final List<String> mBaseRestrictions = new ArrayList<>();
+    private final Map<String, List<EnforcingUser>> mRestrictionSources = new HashMap<>();
+    private final List<UserInfo> mUserProfileInfos = new ArrayList<>();
+    private final Set<Integer> mManagedProfiles = new HashSet<>();
+    private final Map<Integer, Integer> mProfileToParent = new HashMap<>();
+    private final Map<Integer, UserInfo> mUserInfoMap = new HashMap<>();
+    private final Set<String> mEnabledTypes = new HashSet<>();
+    private BiMap<UserHandle, Long> mUserProfiles = HashBiMap.create();
+    private boolean mIsQuietModeEnabled = false;
+    private int[] mProfileIdsForUser = new int[0];
+    private boolean mUserSwitchEnabled;
+    private Bundle mDefaultGuestUserRestriction = new Bundle();
+    private boolean mIsGuestUser = false;
+    private long mNextUserSerial = 0;
+
+    private @UserManager.UserSwitchabilityResult int mSwitchabilityStatus =
+            UserManager.SWITCHABILITY_STATUS_OK;
+    private final Map<Integer, Integer> mSameProfileGroupIds = Maps.newHashMap();
+
+    public void addProfile(UserInfo userInfo) {
+        mUserProfileInfos.add(userInfo);
+    }
+
+    @Resetter
+    public static void reset() {
+        sIsSupportsMultipleUsers = false;
+    }
+
+    /**
+     * Creates a user with the specified name, userId and flags.
+     *
+     * @param id the unique id of user
+     * @param name name of the user
+     * @param flags 16 bits for user type. See {@link UserInfo#flags}
+     */
+    @Override public UserHandle addUser(int id, String name, int flags) {
+        UserHandle userHandle = super.addUser(id, name, flags);
+        mUserInfoMap.put(id, new UserInfo(id, name, flags));
+        return userHandle;
+    }
+
+    /** Add a profile to be returned by {@link #getProfiles(int)}. */
+    public void addProfile(
+            int userHandle, int profileUserHandle, String profileName, int profileFlags) {
+        UserInfo profileUserInfo = new UserInfo(profileUserHandle, profileName, profileFlags);
+        mUserProfileInfos.add(profileUserInfo);
+        mUserInfoMap.put(profileUserHandle, profileUserInfo);
+        mProfileToParent.put(profileUserHandle, userHandle);
+        if (profileFlags == UserInfo.FLAG_MANAGED_PROFILE) {
+            setManagedProfiles(new HashSet<>(Arrays.asList(profileUserHandle)));
+        }
+    }
+
+    @Implementation
+    protected List<UserInfo> getProfiles(@UserIdInt int userHandle) {
+        return mUserProfileInfos;
+    }
+
+    /**
+     * If this profile has been added using {@link #addProfile}, return its parent.
+     */
+    @Implementation(minSdk = LOLLIPOP)
+    protected UserInfo getProfileParent(int userHandle) {
+        if (!mProfileToParent.containsKey(userHandle)) {
+            return null;
+        }
+        return mUserInfoMap.get(mProfileToParent.get(userHandle));
+    }
+
+    @Implementation
+    protected int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
+        int[] ids = new int[mUserProfileInfos.size()];
+        for (int i = 0; i < mUserProfileInfos.size(); i++) {
+            ids[i] = mUserProfileInfos.get(i).id;
+        }
+        return ids;
+    }
+
+    @Implementation
+    protected int getCredentialOwnerProfile(@UserIdInt int userHandle) {
+        return userHandle;
+    }
+
+    @Implementation
+    protected boolean hasBaseUserRestriction(String restrictionKey, UserHandle userHandle) {
+        return mBaseRestrictions.contains(restrictionKey);
+    }
+
+    public void addBaseUserRestriction(String restriction) {
+        mBaseRestrictions.add(restriction);
+    }
+
+    @Implementation
+    protected Bundle getDefaultGuestRestrictions() {
+        return mDefaultGuestUserRestriction;
+    }
+
+    @Implementation
+    protected void setDefaultGuestRestrictions(Bundle restrictions) {
+        mDefaultGuestUserRestriction = restrictions;
+    }
+
+    @Implementation
+    protected UserProperties getUserProperties(UserHandle userHandle) {
+        return new UserProperties.Builder().build();
+    }
+
+
+    public void addGuestUserRestriction(String restriction) {
+        mDefaultGuestUserRestriction.putBoolean(restriction, true);
+    }
+
+    public boolean hasGuestUserRestriction(String restriction, boolean expectedValue) {
+        return mDefaultGuestUserRestriction.containsKey(restriction)
+                && mDefaultGuestUserRestriction.getBoolean(restriction) == expectedValue;
+    }
+
+
+    @Implementation
+    protected boolean hasUserRestriction(String restrictionKey) {
+        return hasUserRestriction(restrictionKey, UserHandle.of(UserHandle.myUserId()));
+    }
+
+    public static ShadowUserManager getShadow() {
+        return (ShadowUserManager) Shadow.extract(
+                RuntimeEnvironment.application.getSystemService(UserManager.class));
+    }
+
+    @Implementation
+    protected List<EnforcingUser> getUserRestrictionSources(
+            String restrictionKey, UserHandle userHandle) {
+        // Return empty list when there is no enforcing user, otherwise might trigger
+        // NullPointer Exception in RestrictedLockUtils.checkIfRestrictionEnforced.
+        List<EnforcingUser> enforcingUsers =
+                mRestrictionSources.get(restrictionKey + userHandle.getIdentifier());
+        return enforcingUsers == null ? Collections.emptyList() : enforcingUsers;
+    }
+
+    public void setUserRestrictionSources(
+            String restrictionKey, UserHandle userHandle, List<EnforcingUser> enforcers) {
+        mRestrictionSources.put(restrictionKey + userHandle.getIdentifier(), enforcers);
+    }
+
+    @Implementation
+    protected boolean isQuietModeEnabled(UserHandle userHandle) {
+        return mIsQuietModeEnabled;
+    }
+
+    public void setQuietModeEnabled(boolean enabled) {
+        mIsQuietModeEnabled = enabled;
+    }
+
+    @Implementation
+    protected int[] getProfileIdsWithDisabled(@UserIdInt int userId) {
+        return mProfileIdsForUser;
+    }
+
+    public void setProfileIdsWithDisabled(int[] profileIds) {
+        mProfileIdsForUser = profileIds;
+    }
+
+    @Implementation
+    protected boolean isUserSwitcherEnabled() {
+        return mUserSwitchEnabled;
+    }
+
+    @Implementation
+    protected boolean isManagedProfile(int userId) {
+        return mManagedProfiles.contains(userId);
+    }
+
+    public void setManagedProfiles(Set<Integer> profileIds) {
+        mManagedProfiles.clear();
+        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;
+    }
+
+    @Implementation
+    protected static boolean supportsMultipleUsers() {
+        return sIsSupportsMultipleUsers;
+    }
+
+    @Implementation
+    protected boolean isSameProfileGroup(@UserIdInt int userId, int otherUserId) {
+        return mSameProfileGroupIds.containsKey(userId)
+                && mSameProfileGroupIds.get(userId) == otherUserId
+                || mSameProfileGroupIds.containsKey(otherUserId)
+                && mSameProfileGroupIds.get(otherUserId) == userId;
+    }
+
+    public Map<Integer, Integer> getSameProfileGroupIds() {
+        return mSameProfileGroupIds;
+    }
+
+    public void setSupportsMultipleUsers(boolean supports) {
+        sIsSupportsMultipleUsers = supports;
+    }
+
+    @Implementation
+    protected UserInfo getUserInfo(@UserIdInt int userId) {
+        return mUserProfileInfos.stream()
+                .filter(userInfo -> userInfo.id == userId)
+                .findFirst()
+                .orElse(super.getUserInfo(userId));
+    }
+
+    @Implementation
+    protected @UserManager.UserSwitchabilityResult int getUserSwitchability() {
+        return mSwitchabilityStatus;
+    }
+
+    public void setSwitchabilityStatus(@UserManager.UserSwitchabilityResult int newStatus) {
+        mSwitchabilityStatus = newStatus;
+    }
+
+    @Implementation
+    protected boolean isUserTypeEnabled(String userType) {
+        return mEnabledTypes.contains(userType);
+    }
+
+    public void setUserTypeEnabled(String type, boolean enabled) {
+        if (enabled) {
+            mEnabledTypes.add(type);
+        } else {
+            mEnabledTypes.remove(type);
+        }
+    }
+
+    @Implementation
+    protected UserInfo getPrimaryUser() {
+        return new UserInfo(PRIMARY_USER_ID, null, null,
+                UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY);
+    }
+
+    protected boolean setUserEphemeral(@UserIdInt int userId, boolean enableEphemeral) {
+        UserInfo userInfo = mUserProfileInfos.stream()
+                .filter(user -> user.id == userId)
+                .findFirst()
+                .orElse(super.getUserInfo(userId));
+
+        boolean isSuccess = false;
+        boolean isEphemeralUser =
+                        (userInfo.flags & UserInfo.FLAG_EPHEMERAL) != 0;
+        boolean isEphemeralOnCreateUser =
+                (userInfo.flags & UserInfo.FLAG_EPHEMERAL_ON_CREATE)
+                    != 0;
+        // when user is created in ephemeral mode via FLAG_EPHEMERAL
+        // its state cannot be changed.
+        // FLAG_EPHEMERAL_ON_CREATE is used to keep track of this state
+        if (!isEphemeralOnCreateUser) {
+            isSuccess = true;
+            if (isEphemeralUser != enableEphemeral) {
+                if (enableEphemeral) {
+                    userInfo.flags |= UserInfo.FLAG_EPHEMERAL;
+                } else {
+                    userInfo.flags &= ~UserInfo.FLAG_EPHEMERAL;
+                }
+            }
+        }
+        return isSuccess;
+    }
+
+    @Implementation
+    protected void setUserAdmin(@UserIdInt int userId) {
+        for (int i = 0; i < mUserProfileInfos.size(); i++) {
+            mUserProfileInfos.get(i).flags |= UserInfo.FLAG_ADMIN;
+        }
+    }
+
+    /**
+     * Sets that the current user is an admin user; controls the return value of
+     * {@link UserManager#isAdminUser}.
+     */
+    public void setIsAdminUser(boolean isAdminUser) {
+        UserInfo userInfo = getUserInfo(UserHandle.myUserId());
+        if (isAdminUser) {
+            userInfo.flags |= UserInfo.FLAG_ADMIN;
+        } else {
+            userInfo.flags &= ~UserInfo.FLAG_ADMIN;
+        }
+    }
+
+    @Implementation
+    protected boolean isGuestUser() {
+        return mIsGuestUser;
+    }
+
+    public void setGuestUser(boolean isGuestUser) {
+        mIsGuestUser = isGuestUser;
+    }
+
+    public static void setIsMultipleAdminEnabled(boolean enableMultipleAdmin) {
+        sIsMultipleAdminEnabled = enableMultipleAdmin;
+    }
+
+    /**
+     * Adds a profile associated for the user that the calling process is running on.
+     *
+     * <p>The user is assigned an arbitrary unique serial number.
+     *
+     * @return the user's serial number
+     * @deprecated use either addUser() or addProfile()
+     */
+    @Deprecated
+    public long addUserProfile(UserHandle userHandle) {
+        long serialNumber = mNextUserSerial++;
+        mUserProfiles.put(userHandle, serialNumber);
+        return serialNumber;
+    }
+
+    protected List<UserHandle> getUserProfiles() {
+        return ImmutableList.copyOf(mUserProfiles.keySet());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUtils.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
rename to tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUtils.java
diff --git a/tests/screenshot/Android.bp b/tests/screenshot/Android.bp
new file mode 100644
index 0000000..5989381
--- /dev/null
+++ b/tests/screenshot/Android.bp
@@ -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.
+
+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",
+        "androidx.test.rules",
+        "androidx.test.ext.junit",
+        "platform-screenshot-diff-core",
+        "Settings-testutils2",
+        "androidx.test.espresso.core",
+        "kotlinx-coroutines-android",
+        "androidx.lifecycle_lifecycle-runtime-testing",
+        "kotlinx_coroutines_test",
+    ],
+    uses_libs: ["org.apache.http.legacy"],
+    aaptflags: ["--extra-packages com.android.settings"],
+    manifest: "AndroidManifest.xml",
+}
+
+// This is a RNG (Robolectric native graphics) test target.
+android_robolectric_test {
+    name: "SettingsScreenshotRNGTests",
+    srcs: [
+        "src/**/*.kt",
+    ],
+    test_suites: ["general-tests"],
+
+    // Do not add any libraries here, instead add them to the ScreenshotTestStub
+    static_libs: [
+        "androidx.compose.runtime_runtime",
+        "androidx.test.uiautomator_uiautomator",
+        "androidx.test.ext.junit",
+        "inline-mockito-robolectric-prebuilt",
+        "platform-parametric-runner-lib",
+        "uiautomator-helpers",
+
+    ],
+    libs: [
+        "android.test.runner",
+        "android.test.base",
+        "android.test.mock",
+        "truth",
+    ],
+
+    upstream: true,
+    instrumentation_for: "ScreenshotTestStub",
+    java_resource_dirs: ["config"],
+}
diff --git a/tests/screenshot/AndroidManifest.xml b/tests/screenshot/AndroidManifest.xml
new file mode 100644
index 0000000..6c8bb88
--- /dev/null
+++ b/tests/screenshot/AndroidManifest.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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+        coreApp="true"
+        package="com.android.settings">
+    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
+
+    <application>
+        <activity android:name="com.android.settings.test.screenshot.ContainerActivity" android:exported="true" />
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/tests/screenshot/assets/robolectric/fp_enroll_intro.png b/tests/screenshot/assets/robolectric/fp_enroll_intro.png
new file mode 100644
index 0000000..308ab55
--- /dev/null
+++ b/tests/screenshot/assets/robolectric/fp_enroll_intro.png
Binary files differ
diff --git a/tests/screenshot/config/robolectric.properties b/tests/screenshot/config/robolectric.properties
new file mode 100644
index 0000000..88443e3
--- /dev/null
+++ b/tests/screenshot/config/robolectric.properties
@@ -0,0 +1,16 @@
+# Copyright (C) 2023 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+sdk=NEWEST_SDK
+graphicsMode=NATIVE
\ No newline at end of file
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/screenshot/src/com/android/settings/tests/screenshot/ContainerActivity.kt b/tests/screenshot/src/com/android/settings/tests/screenshot/ContainerActivity.kt
new file mode 100644
index 0000000..a505ef5
--- /dev/null
+++ b/tests/screenshot/src/com/android/settings/tests/screenshot/ContainerActivity.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.tests.screenshot
+
+import android.os.Bundle
+import androidx.fragment.app.FragmentActivity
+import androidx.fragment.app.FragmentContainerView
+
+/**
+ * This activity is a container for all RNG (Robolectric Native Graphic) Settings screenshot tests.
+ */
+class ContainerActivity : FragmentActivity() {
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        val contentView = FragmentContainerView(this)
+        contentView.setId(CONTAINER_VIEW_ID)
+        setContentView(contentView)
+    }
+
+    companion object {
+        const val CONTAINER_VIEW_ID = 1234
+    }
+}
\ No newline at end of file
diff --git a/tests/shared/Android.bp b/tests/shared/Android.bp
new file mode 100644
index 0000000..27573e8
--- /dev/null
+++ b/tests/shared/Android.bp
@@ -0,0 +1,10 @@
+android_library {
+    name: "Settings-testutils2",
+    srcs: [
+        "src/**/*.kt"
+    ],
+    libs: [
+        "BiometricsSharedLib",
+        "FingerprintManagerInteractor",
+    ],
+}
diff --git a/tests/shared/AndroidManifest.xml b/tests/shared/AndroidManifest.xml
new file mode 100644
index 0000000..7e1842c
--- /dev/null
+++ b/tests/shared/AndroidManifest.xml
@@ -0,0 +1,20 @@
+<?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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.android.settings.testutils2">
+</manifest>
diff --git a/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.kt
new file mode 100644
index 0000000..dd8658c
--- /dev/null
+++ b/tests/shared/src/com/android/settings/testutils2/FakeFingerprintManagerInteractor.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.testutils2
+
+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.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
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.flow
+import kotlinx.coroutines.flow.flowOf
+
+/** Fake to be used by other classes to easily fake the FingerprintManager implementation. */
+class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
+
+  var enrollableFingerprints: Int = 5
+  var enrolledFingerprintsInternal: MutableList<FingerprintData> = mutableListOf()
+  var challengeToGenerate: Pair<Long, ByteArray> = Pair(-1L, byteArrayOf())
+  var authenticateAttempt = FingerprintAuthAttemptModel.Success(1)
+  var enrollStateViewModel: List<FingerEnrollState> =
+    listOf(FingerEnrollState.EnrollProgress(5, 5))
+  var pressToAuthEnabled = true
+
+  var sensorProp =
+    FingerprintSensor(
+      0 /* sensorId */,
+      SensorStrength.STRONG,
+      5,
+      FingerprintSensorType.POWER_BUTTON
+    )
+
+  override suspend fun authenticate(): FingerprintAuthAttemptModel {
+    return authenticateAttempt
+  }
+
+  override suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray> {
+    return challengeToGenerate
+  }
+
+  override val enrolledFingerprints: Flow<List<FingerprintData>> = flow {
+    emit(enrolledFingerprintsInternal)
+  }
+
+  override val canEnrollFingerprints: Flow<Boolean> = flow {
+    emit(enrolledFingerprintsInternal.size < enrollableFingerprints)
+  }
+
+  override val sensorPropertiesInternal: Flow<FingerprintSensor?> = flow { emit(sensorProp) }
+
+  override val maxEnrollableFingerprints: Flow<Int> = flow { emit(enrollableFingerprints) }
+
+  override suspend fun enroll(
+    hardwareAuthToken: ByteArray?,
+    enrollReason: EnrollReason
+  ): Flow<FingerEnrollState> = flowOf(*enrollStateViewModel.toTypedArray())
+
+  override suspend fun removeFingerprint(fp: FingerprintData): Boolean {
+    return enrolledFingerprintsInternal.remove(fp)
+  }
+
+  override suspend fun renameFingerprint(fp: FingerprintData, newName: String) {
+    if (enrolledFingerprintsInternal.remove(fp)) {
+      enrolledFingerprintsInternal.add(FingerprintData(newName, fp.fingerId, fp.deviceId))
+    }
+  }
+
+  override suspend fun hasSideFps(): Boolean {
+    return sensorProp.sensorType == FingerprintSensorType.POWER_BUTTON
+  }
+
+  override suspend fun pressToAuthEnabled(): Boolean {
+    return pressToAuthEnabled
+  }
+}
diff --git a/tests/spa_unit/Android.bp b/tests/spa_unit/Android.bp
index 0bd5613..4df6254 100644
--- a/tests/spa_unit/Android.bp
+++ b/tests/spa_unit/Android.bp
@@ -27,13 +27,15 @@
     srcs: [
         "src/**/*.kt",
     ],
-
+    use_resource_processor: true,
     static_libs: [
         "Settings-core",
         "SpaLibTestUtils",
         "androidx.compose.runtime_runtime",
         "androidx.test.ext.junit",
         "androidx.test.runner",
+        "androidx.fragment_fragment-testing",
+        "flag-junit",
         "mockito-target-extended-minus-junit4",
     ],
     jni_libs: [
diff --git a/tests/spa_unit/AndroidManifest.xml b/tests/spa_unit/AndroidManifest.xml
index 5a7f565..51ac1b7 100644
--- a/tests/spa_unit/AndroidManifest.xml
+++ b/tests/spa_unit/AndroidManifest.xml
@@ -22,6 +22,8 @@
     <uses-permission android:name="android.permission.MANAGE_APPOPS" />
     <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
     <uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG" />
+    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
+    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
 
     <application android:debuggable="true">
         <provider android:name="com.android.settings.slices.SettingsSliceProvider"
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/applications/specialaccess/DataSaverControllerTest.kt b/tests/spa_unit/src/com/android/settings/applications/specialaccess/DataSaverControllerTest.kt
index c2413af..5d3c1c0 100644
--- a/tests/spa_unit/src/com/android/settings/applications/specialaccess/DataSaverControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/applications/specialaccess/DataSaverControllerTest.kt
@@ -29,7 +29,6 @@
 import com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE
 import com.android.settingslib.spaprivileged.model.app.AppListRepository
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
@@ -43,7 +42,6 @@
 import org.mockito.junit.MockitoRule
 import org.mockito.Mockito.`when` as whenever
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @RunWith(AndroidJUnit4::class)
 class DataSaverControllerTest {
     @get:Rule
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
new file mode 100644
index 0000000..4bf3851
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.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
+
+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 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>()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val preference = BillingCyclePreference(context, null, mockBillingCycleRepository)
+
+    @Test
+    fun setTemplate_titleDisplayed() {
+        setTemplate()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.billing_cycle))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    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)
+        composeTestRule.setContent {
+            preference.Content()
+        }
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.kt
new file mode 100644
index 0000000..f061fe1
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/ChartDataUsagePreferenceControllerTest.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.datausage
+
+import android.content.Context
+import androidx.lifecycle.testing.TestLifecycleOwner
+import androidx.preference.PreferenceScreen
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.datausage.lib.NetworkCycleChartData
+import com.android.settings.datausage.lib.NetworkUsageData
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class ChartDataUsagePreferenceControllerTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val preference = mock<ChartDataUsagePreference>()
+    private val preferenceScreen = mock<PreferenceScreen> {
+        onGeneric { findPreference(KEY) } doReturn preference
+    }
+
+    private val controller = ChartDataUsagePreferenceController(context, KEY)
+
+    @Before
+    fun setUp() {
+        controller.displayPreference(preferenceScreen)
+        controller.onViewCreated(TestLifecycleOwner())
+    }
+
+    @Test
+    fun update() {
+        controller.update(CycleChartDate)
+
+        verify(preference).setTime(START_TIME, END_TIME)
+        verify(preference).setNetworkCycleData(CycleChartDate)
+    }
+
+    private companion object {
+        const val KEY = "test_key"
+        const val START_TIME = 1L
+        const val END_TIME = 2L
+
+        val UsageData = NetworkUsageData(startTime = START_TIME, endTime = END_TIME, usage = 10)
+        val CycleChartDate =
+            NetworkCycleChartData(total = UsageData, dailyUsage = listOf(UsageData))
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/DataPlanRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/DataPlanRepositoryTest.kt
new file mode 100644
index 0000000..5ed1486
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/DataPlanRepositoryTest.kt
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage
+
+import android.net.NetworkPolicy
+import android.telephony.SubscriptionPlan
+import android.util.Range
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.datausage.lib.INetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settings.testutils.zonedDateTime
+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
+
+@RunWith(AndroidJUnit4::class)
+class DataPlanRepositoryTest {
+
+    private object FakeNetworkCycleDataRepository : INetworkCycleDataRepository {
+        override fun getCycles(): List<Range<Long>> = emptyList()
+        override fun getPolicy() = null
+
+        override fun queryUsage(range: Range<Long>) = NetworkUsageData(
+            startTime = CYCLE_CYCLE_START_TIME,
+            endTime = CYCLE_CYCLE_END_TIME,
+            usage = CYCLE_BYTES,
+        )
+    }
+
+    private val repository = DataPlanRepositoryImpl(FakeNetworkCycleDataRepository)
+
+    private val policy = mock<NetworkPolicy> {
+        on { cycleIterator() } doReturn listOf(
+            Range(zonedDateTime(CYCLE_CYCLE_START_TIME), zonedDateTime(CYCLE_CYCLE_END_TIME)),
+        ).iterator()
+    }
+
+    @Test
+    fun getDataPlanInfo_hasSubscriptionPlan() {
+        val dataPlanInfo = repository.getDataPlanInfo(policy, listOf(SUBSCRIPTION_PLAN))
+
+        assertThat(dataPlanInfo).isEqualTo(
+            DataPlanInfo(
+                dataPlanCount = 1,
+                dataPlanSize = DATA_LIMIT_BYTES,
+                dataBarSize = DATA_LIMIT_BYTES,
+                dataPlanUse = DATA_USAGE_BYTES,
+                cycleEnd = PLAN_CYCLE_END_TIME,
+                snapshotTime = DATA_USAGE_TIME,
+            )
+        )
+    }
+
+    @Test
+    fun getDataPlanInfo_noSubscriptionPlan() {
+        val dataPlanInfo = repository.getDataPlanInfo(policy, emptyList())
+
+        assertThat(dataPlanInfo).isEqualTo(
+            DataPlanInfo(
+                dataPlanCount = 0,
+                dataPlanSize = SubscriptionPlan.BYTES_UNKNOWN,
+                dataBarSize = CYCLE_BYTES,
+                dataPlanUse = CYCLE_BYTES,
+                cycleEnd = CYCLE_CYCLE_END_TIME,
+                snapshotTime = SubscriptionPlan.TIME_UNKNOWN,
+            )
+        )
+    }
+
+    private companion object {
+        const val CYCLE_CYCLE_START_TIME = 1L
+        const val CYCLE_CYCLE_END_TIME = 2L
+        const val CYCLE_BYTES = 11L
+
+        const val PLAN_CYCLE_START_TIME = 100L
+        const val PLAN_CYCLE_END_TIME = 200L
+        const val DATA_LIMIT_BYTES = 300L
+        const val DATA_USAGE_BYTES = 400L
+        const val DATA_USAGE_TIME = 500L
+
+        val SUBSCRIPTION_PLAN: SubscriptionPlan = SubscriptionPlan.Builder.createNonrecurring(
+            zonedDateTime(PLAN_CYCLE_START_TIME),
+            zonedDateTime(PLAN_CYCLE_END_TIME),
+        ).apply {
+            setDataLimit(DATA_LIMIT_BYTES, SubscriptionPlan.LIMIT_BEHAVIOR_DISABLED)
+            setDataUsage(DATA_USAGE_BYTES, DATA_USAGE_TIME)
+        }.build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/DataUsageListAppsControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListAppsControllerTest.kt
new file mode 100644
index 0000000..2646323
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListAppsControllerTest.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.datausage
+
+import android.content.Context
+import android.content.Intent
+import android.net.NetworkTemplate
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity
+import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settingslib.AppItem
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class DataUsageListAppsControllerTest {
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivity(any())
+    }
+
+    private val controller = DataUsageListAppsController(context, "test_key")
+
+    @Before
+    fun setUp() {
+        controller.init(mock<NetworkTemplate>())
+        val data = NetworkUsageData(START_TIME, END_TIME, 0)
+        controller.updateCycles(listOf(data))
+    }
+
+    @Test
+    fun startAppDataUsage_shouldAddCyclesInfoToLaunchArguments() {
+        controller.startAppDataUsage(AppItem(), END_TIME)
+
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivity(capture())
+        }.firstValue
+        val arguments = intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
+        assertThat(arguments.getLong(AppDataUsage.ARG_SELECTED_CYCLE)).isEqualTo(END_TIME)
+        assertThat(
+            arguments.getSerializable(AppDataUsage.ARG_NETWORK_CYCLES, ArrayList::class.java)
+        ).containsExactly(END_TIME, START_TIME).inOrder()
+    }
+
+    private companion object {
+        const val START_TIME = 1521583200000L
+        const val END_TIME = 1521676800000L
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.kt
new file mode 100644
index 0000000..8c4f315
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListHeaderControllerTest.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.datausage
+
+import android.content.Context
+import android.net.NetworkTemplate
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.Spinner
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.testing.TestLifecycleOwner
+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 kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class DataUsageListHeaderControllerTest {
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivity(any())
+    }
+
+    private val header =
+        LayoutInflater.from(context).inflate(R.layout.apps_filter_spinner, null, false)
+
+    private val configureButton: View = header.requireViewById(R.id.filter_settings)
+
+    private val spinner: Spinner = header.requireViewById(R.id.filter_spinner)
+
+    private val testLifecycleOwner = TestLifecycleOwner(initialState = Lifecycle.State.CREATED)
+
+    private val controller = DataUsageListHeaderController(
+        header = header,
+        template = mock<NetworkTemplate>(),
+        sourceMetricsCategory = 0,
+        viewLifecycleOwner = testLifecycleOwner,
+        cyclesFlow = flowOf(emptyList()),
+        updateSelectedCycle = {},
+    )
+
+    @Test
+    fun onViewCreated_shouldHideCycleSpinner() {
+        assertThat(spinner.visibility).isEqualTo(View.GONE)
+    }
+
+    @Test
+    fun updateCycleData_shouldShowCycleSpinner() = runBlocking {
+        testLifecycleOwner.handleLifecycleEvent(Lifecycle.Event.ON_START)
+        delay(100)
+
+        assertThat(spinner.visibility).isEqualTo(View.VISIBLE)
+    }
+
+    @Test
+    fun setConfigButtonVisible_setToTrue_shouldShowConfigureButton() {
+        controller.setConfigButtonVisible(true)
+
+        assertThat(configureButton.visibility).isEqualTo(View.VISIBLE)
+    }
+
+    @Test
+    fun setConfigButtonVisible_setToFalse_shouldHideConfigureButton() {
+        controller.setConfigButtonVisible(false)
+
+        assertThat(configureButton.visibility).isEqualTo(View.GONE)
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/DataUsageListTest.kt b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListTest.kt
new file mode 100644
index 0000000..29ec0ee
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/DataUsageListTest.kt
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.net.NetworkTemplate
+import android.os.UserManager
+import android.provider.Settings
+import android.telephony.SubscriptionManager
+import androidx.core.os.bundleOf
+import androidx.fragment.app.testing.launchFragment
+import androidx.fragment.app.testing.withFragment
+import androidx.lifecycle.Lifecycle
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+private val mockUserManager: UserManager = mock<UserManager>()
+
+private val mockContext: Context = spy(ApplicationProvider.getApplicationContext()) {
+    on { userManager } doReturn mockUserManager
+}
+
+private var fakeIntent = Intent()
+
+@RunWith(AndroidJUnit4::class)
+class DataUsageListTest {
+
+    @Before
+    fun setUp() {
+        mockUserManager.stub {
+            on { isGuestUser } doReturn false
+        }
+        fakeIntent = Intent()
+    }
+
+    @Test
+    fun launchFragment_withoutArguments_finish() {
+        val scenario = launchFragment<TestDataUsageList>(initialState = Lifecycle.State.CREATED)
+
+        scenario.withFragment {
+            assertThat(template).isNull()
+            assertThat(subId).isEqualTo(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+            assertThat(activity!!.isFinishing).isTrue()
+        }
+    }
+
+    @Test
+    fun launchFragment_isGuestUser_finish() {
+        mockUserManager.stub {
+            on { isGuestUser } doReturn true
+        }
+        val fragmentArgs = bundleOf(
+            DataUsageList.EXTRA_NETWORK_TEMPLATE to mock<NetworkTemplate>(),
+            DataUsageList.EXTRA_SUB_ID to 3,
+        )
+
+        val scenario = launchFragment<TestDataUsageList>(
+            fragmentArgs = fragmentArgs,
+            initialState = Lifecycle.State.CREATED,
+        )
+
+        scenario.withFragment {
+            assertThat(activity!!.isFinishing).isTrue()
+        }
+    }
+
+    @Test
+    fun launchFragment_withArguments_getTemplateFromArgument() {
+        val fragmentArgs = bundleOf(
+            DataUsageList.EXTRA_NETWORK_TEMPLATE to mock<NetworkTemplate>(),
+            DataUsageList.EXTRA_SUB_ID to 3,
+        )
+
+        val scenario = launchFragment<TestDataUsageList>(
+            fragmentArgs = fragmentArgs,
+            initialState = Lifecycle.State.CREATED,
+        )
+
+        scenario.withFragment {
+            assertThat(template).isNotNull()
+            assertThat(subId).isEqualTo(3)
+            assertThat(activity!!.isFinishing).isFalse()
+        }
+    }
+
+    @Test
+    fun launchFragment_withIntent_getTemplateFromIntent() {
+        fakeIntent = Intent().apply {
+            putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mock<NetworkTemplate>())
+            putExtra(Settings.EXTRA_SUB_ID, 2)
+        }
+
+        val scenario = launchFragment<TestDataUsageList>(initialState = Lifecycle.State.CREATED)
+
+        scenario.withFragment {
+            assertThat(template).isNotNull()
+            assertThat(subId).isEqualTo(2)
+            assertThat(activity!!.isFinishing).isFalse()
+        }
+    }
+}
+
+class TestDataUsageList : DataUsageList() {
+    override fun getContext() = mockContext
+
+    override fun getIntent() = fakeIntent
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.kt
new file mode 100644
index 0000000..8ebb9c5
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.kt
@@ -0,0 +1,274 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage
+
+import android.content.Context
+import android.net.NetworkPolicy
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.SubscriptionPlan
+import android.telephony.TelephonyManager
+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.core.BasePreferenceController.AVAILABLE
+import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
+import com.android.settings.datausage.lib.INetworkCycleDataRepository
+import com.android.settings.datausage.lib.NetworkUsageData
+import com.android.settings.network.ProxySubscriptionManager
+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.argumentCaptor
+import org.mockito.kotlin.clearInvocations
+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 DataUsageSummaryPreferenceControllerTest {
+
+    private var policy: NetworkPolicy? = mock<NetworkPolicy>()
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { isDataCapable } doReturn true
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    private val mockSubscriptionManager = mock<SubscriptionManager> {
+        on { getSubscriptionPlans(any()) } doReturn emptyList()
+    }
+
+    private val mockProxySubscriptionManager = mock<ProxySubscriptionManager> {
+        on { get() } doReturn mockSubscriptionManager
+    }
+
+    private val fakeNetworkCycleDataRepository = object : INetworkCycleDataRepository {
+        override fun getCycles(): List<Range<Long>> = emptyList()
+        override fun getPolicy() = policy
+        override fun queryUsage(range: Range<Long>) = NetworkUsageData.AllZero
+    }
+
+    private var dataPlanInfo = EMPTY_DATA_PLAN_INFO
+
+    private val fakeDataPlanRepository = object : DataPlanRepository {
+        override fun getDataPlanInfo(policy: NetworkPolicy, plans: List<SubscriptionPlan>) =
+            dataPlanInfo
+    }
+
+    private val controller = DataUsageSummaryPreferenceController(
+        context = context,
+        subId = SUB_ID,
+        proxySubscriptionManager = mockProxySubscriptionManager,
+        networkCycleDataRepositoryFactory = { fakeNetworkCycleDataRepository },
+        dataPlanRepositoryFactory = { fakeDataPlanRepository },
+    )
+
+    private val preference = mock<DataUsageSummaryPreference> {
+        on { key } doReturn controller.preferenceKey
+    }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+    }
+
+    @Test
+    fun getAvailabilityStatus_noMobileData_conditionallyUnavailable() {
+        mockTelephonyManager.stub {
+            on { isDataCapable } doReturn false
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_hasSubInfoAndPolicy_available() {
+        mockProxySubscriptionManager.stub {
+            on { getAccessibleSubscriptionInfo(SUB_ID) } doReturn SubscriptionInfo.Builder().build()
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_noSubInfo_conditionallyUnavailable() {
+        mockProxySubscriptionManager.stub {
+            on { getAccessibleSubscriptionInfo(SUB_ID) } doReturn null
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_noPolicy_conditionallyUnavailable() {
+        policy = null
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun displayPreference_policyHasNoLimitInfo() {
+        policy = mock<NetworkPolicy>().apply {
+            warningBytes = NetworkPolicy.WARNING_DISABLED
+            limitBytes = NetworkPolicy.LIMIT_DISABLED
+        }
+
+        controller.displayPreference(preferenceScreen)
+
+        verify(preference).setLimitInfo(null)
+        verify(preference, never()).setLabels(any(), any())
+    }
+
+    @Test
+    fun displayPreference_policyWarningOnly() {
+        policy = mock<NetworkPolicy>().apply {
+            warningBytes = 1L
+            limitBytes = NetworkPolicy.LIMIT_DISABLED
+        }
+
+        controller.displayPreference(preferenceScreen)
+
+        val limitInfo = argumentCaptor {
+            verify(preference).setLimitInfo(capture())
+        }.firstValue.toString()
+        assertThat(limitInfo).isEqualTo("1 B data warning")
+        verify(preference).setLabels("0 B", "1 B")
+    }
+
+    @Test
+    fun displayPreference_policyLimitOnly() {
+        policy = mock<NetworkPolicy>().apply {
+            warningBytes = NetworkPolicy.WARNING_DISABLED
+            limitBytes = 1L
+        }
+
+        controller.displayPreference(preferenceScreen)
+
+        val limitInfo = argumentCaptor {
+            verify(preference).setLimitInfo(capture())
+        }.firstValue.toString()
+        assertThat(limitInfo).isEqualTo("1 B data limit")
+        verify(preference).setLabels("0 B", "1 B")
+    }
+
+    @Test
+    fun displayPreference_policyHasWarningAndLimit() {
+        policy = mock<NetworkPolicy>().apply {
+            warningBytes = BillingCycleSettings.GIB_IN_BYTES / 2
+            limitBytes = BillingCycleSettings.GIB_IN_BYTES
+        }
+
+        controller.displayPreference(preferenceScreen)
+
+        val limitInfo = argumentCaptor {
+            verify(preference).setLimitInfo(capture())
+        }.firstValue.toString()
+        assertThat(limitInfo).isEqualTo("512 MB data warning / 1.00 GB data limit")
+        verify(preference).setLabels("0 B", "1.00 GB")
+    }
+
+    @Test
+    fun onViewCreated_emptyDataPlanInfo() = runBlocking {
+        dataPlanInfo = EMPTY_DATA_PLAN_INFO
+        controller.displayPreference(preferenceScreen)
+        clearInvocations(preference)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        verify(preference).setUsageNumbers(
+            EMPTY_DATA_PLAN_INFO.dataPlanUse,
+            EMPTY_DATA_PLAN_INFO.dataPlanSize,
+        )
+        verify(preference).setChartEnabled(false)
+        verify(preference).setUsageInfo(
+            EMPTY_DATA_PLAN_INFO.cycleEnd,
+            EMPTY_DATA_PLAN_INFO.snapshotTime,
+            null,
+            EMPTY_DATA_PLAN_INFO.dataPlanCount,
+        )
+    }
+
+    @Test
+    fun onViewCreated_positiveDataPlanInfo() = runBlocking {
+        dataPlanInfo = POSITIVE_DATA_PLAN_INFO
+        controller.displayPreference(preferenceScreen)
+        clearInvocations(preference)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        verify(preference).setUsageNumbers(
+            POSITIVE_DATA_PLAN_INFO.dataPlanUse,
+            POSITIVE_DATA_PLAN_INFO.dataPlanSize,
+        )
+        verify(preference).setChartEnabled(true)
+        verify(preference).setLabels("0 B", "9 B")
+        val progress = argumentCaptor {
+            verify(preference).setProgress(capture())
+        }.firstValue
+        assertThat(progress).isEqualTo(0.8888889f)
+        verify(preference).setUsageInfo(
+            POSITIVE_DATA_PLAN_INFO.cycleEnd,
+            POSITIVE_DATA_PLAN_INFO.snapshotTime,
+            null,
+            POSITIVE_DATA_PLAN_INFO.dataPlanCount,
+        )
+    }
+
+    private companion object {
+        const val SUB_ID = 1234
+        val EMPTY_DATA_PLAN_INFO = DataPlanInfo(
+            dataPlanCount = 0,
+            dataPlanSize = SubscriptionPlan.BYTES_UNKNOWN,
+            dataBarSize = SubscriptionPlan.BYTES_UNKNOWN,
+            dataPlanUse = 0,
+            cycleEnd = null,
+            snapshotTime = SubscriptionPlan.TIME_UNKNOWN,
+        )
+        val POSITIVE_DATA_PLAN_INFO = DataPlanInfo(
+            dataPlanCount = 0,
+            dataPlanSize = 10L,
+            dataBarSize = 9L,
+            dataPlanUse = 8L,
+            cycleEnd = 7L,
+            snapshotTime = 6L,
+        )
+    }
+}
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..fda3dc9
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageDetailsRepositoryTest.kt
@@ -0,0 +1,137 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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,
+                    bytes = BACKGROUND_USAGE,
+                    state = NetworkStats.Bucket.STATE_DEFAULT,
+                    startTimeStamp = 0L,
+                    endTimeStamp = 0L,
+                ),
+                Bucket(
+                    uid = UID,
+                    bytes = FOREGROUND_USAGE,
+                    state = NetworkStats.Bucket.STATE_FOREGROUND,
+                    startTimeStamp = 0L,
+                    endTimeStamp = 0L,
+                ),
+            )
+        }
+        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,
+                    bytes = BACKGROUND_USAGE,
+                    state = NetworkStats.Bucket.STATE_DEFAULT,
+                    startTimeStamp = 0L,
+                    endTimeStamp = 0L,
+                ),
+                Bucket(
+                    uid = UID,
+                    bytes = FOREGROUND_USAGE,
+                    state = NetworkStats.Bucket.STATE_FOREGROUND,
+                    startTimeStamp = 0L,
+                    endTimeStamp = 0L,
+                ),
+            )
+        }
+        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
new file mode 100644
index 0000000..3f517a9
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppDataUsageRepositoryTest.kt
@@ -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.datausage.lib
+
+import android.content.Context
+import android.content.pm.UserInfo
+import android.content.res.Resources
+import android.net.NetworkPolicyManager
+import android.net.NetworkTemplate
+import android.os.UserHandle
+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.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
+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.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+
+@RunWith(AndroidJUnit4::class)
+class AppDataUsageRepositoryTest {
+    @get:Rule
+    val mockito: MockitoRule = MockitoJUnit.rule()
+
+    private val mockUserManager = mock<UserManager> {
+        on { userProfiles } doReturn listOf(UserHandle.of(USER_ID))
+        on { getUserInfo(USER_ID) } doReturn UserInfo(USER_ID, "", 0)
+    }
+
+    private val mockNetworkPolicyManager = mock<NetworkPolicyManager> {
+        on { getUidsWithPolicy(NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND) } doReturn
+            intArrayOf()
+    }
+
+    private val mockResources = mock<Resources> {
+        on { getIntArray(R.array.datausage_hiding_carrier_service_carrier_id) } doReturn
+            intArrayOf(HIDING_CARRIER_ID)
+
+        on { getStringArray(R.array.datausage_hiding_carrier_service_package_names) } doReturn
+            arrayOf(HIDING_PACKAGE_NAME)
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { userManager } doReturn mockUserManager
+        on { getSystemService(NetworkPolicyManager::class.java) } doReturn mockNetworkPolicyManager
+        on { resources } doReturn mockResources
+    }
+
+    @Test
+    fun getAppPercent_noAppToHide() {
+        val repository = AppDataUsageRepository(
+            context = context,
+            currentUserId = USER_ID,
+            template = Template,
+            getPackageName = { null },
+        )
+        val buckets = listOf(
+            Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
+            Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+        )
+
+        val appPercentList = repository.getAppPercent(null, buckets)
+
+        assertThat(appPercentList).hasSize(2)
+        appPercentList[0].first.apply {
+            assertThat(key).isEqualTo(APP_ID_2)
+            assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+            assertThat(total).isEqualTo(2)
+        }
+        assertThat(appPercentList[0].second).isEqualTo(100)
+        appPercentList[1].first.apply {
+            assertThat(key).isEqualTo(APP_ID_1)
+            assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+            assertThat(total).isEqualTo(1)
+        }
+        assertThat(appPercentList[1].second).isEqualTo(50)
+    }
+
+    @Test
+    fun getAppPercent_hasAppToHide() {
+        val repository = AppDataUsageRepository(
+            context = context,
+            currentUserId = USER_ID,
+            template = Template,
+            getPackageName = { if (it.key == APP_ID_1) HIDING_PACKAGE_NAME else null },
+        )
+        val buckets = listOf(
+            Bucket(uid = APP_ID_1, bytes = 1, startTimeStamp = 0, endTimeStamp = 0),
+            Bucket(uid = APP_ID_2, bytes = 2, startTimeStamp = 0, endTimeStamp = 0),
+        )
+
+        val appPercentList = repository.getAppPercent(HIDING_CARRIER_ID, buckets)
+
+        assertThat(appPercentList).hasSize(1)
+        appPercentList[0].first.apply {
+            assertThat(key).isEqualTo(APP_ID_2)
+            assertThat(category).isEqualTo(AppItem.CATEGORY_APP)
+            assertThat(total).isEqualTo(2)
+        }
+        assertThat(appPercentList[0].second).isEqualTo(100)
+    }
+
+    private companion object {
+        const val USER_ID = 1
+        const val APP_ID_1 = 110001
+        const val APP_ID_2 = 110002
+        const val HIDING_CARRIER_ID = 4
+        const val HIDING_PACKAGE_NAME = "hiding.package.name"
+
+        val Template: NetworkTemplate = mock<NetworkTemplate>()
+    }
+}
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..05fce8f
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/AppPreferenceRepositoryTest.kt
@@ -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.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 android.util.IconDrawableFactory
+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 mockIconDrawableFactory = mock<IconDrawableFactory>()
+
+    private val repository = AppPreferenceRepository(context, mockIconDrawableFactory)
+
+    @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 { loadLabel(any()) } doReturn LABEL
+        }
+        mockIconDrawableFactory.stub {
+            on { getBadgedIcon(app) } doReturn UNBADGED_ICON
+        }
+        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/BillingCycleRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/BillingCycleRepositoryTest.kt
new file mode 100644
index 0000000..deaaf2d
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/BillingCycleRepositoryTest.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.datausage.lib
+
+import android.content.Context
+import android.os.INetworkManagementService
+import android.os.UserManager
+import android.telephony.TelephonyManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+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.whenever
+
+@RunWith(AndroidJUnit4::class)
+class BillingCycleRepositoryTest {
+
+    private val mockNetworkManagementService = mock<INetworkManagementService> {
+        on { isBandwidthControlEnabled } doReturn true
+    }
+
+    private val mockUserManager = mock<UserManager> {
+        on { isAdminUser } doReturn true
+    }
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+        on { isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER) } doReturn false
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { userManager } doReturn mockUserManager
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    private val repository = BillingCycleRepository(context, mockNetworkManagementService)
+
+    @Test
+    fun isModifiable_bandwidthControlDisabled_returnFalse() {
+        whenever(mockNetworkManagementService.isBandwidthControlEnabled).thenReturn(false)
+
+        val modifiable = repository.isModifiable(SUB_ID)
+
+        assertThat(modifiable).isFalse()
+    }
+
+    @Test
+    fun isModifiable_notAdminUser_returnFalse() {
+        whenever(mockUserManager.isAdminUser).thenReturn(false)
+
+        val modifiable = repository.isModifiable(SUB_ID)
+
+        assertThat(modifiable).isFalse()
+    }
+
+    @Test
+    fun isModifiable_dataDisabled_returnFalse() {
+        whenever(
+            mockTelephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
+        ).thenReturn(false)
+
+        val modifiable = repository.isModifiable(SUB_ID)
+
+        assertThat(modifiable).isFalse()
+    }
+
+    @Test
+    fun isModifiable_meetAllRequirements_returnTrue() {
+        whenever(mockNetworkManagementService.isBandwidthControlEnabled).thenReturn(true)
+        whenever(mockUserManager.isAdminUser).thenReturn(true)
+        whenever(
+            mockTelephonyManager.isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER)
+        ).thenReturn(true)
+
+        val modifiable = repository.isModifiable(SUB_ID)
+
+        assertThat(modifiable).isTrue()
+    }
+
+    @Test
+    fun isBandwidthControlEnabled_bandwidthControlDisabled_returnFalse() {
+        whenever(mockNetworkManagementService.isBandwidthControlEnabled).thenReturn(false)
+
+        val enabled = repository.isBandwidthControlEnabled()
+
+        assertThat(enabled).isFalse()
+    }
+
+    @Test
+    fun isBandwidthControlEnabled_bandwidthControlEnabled_returnTrue() {
+        whenever(mockNetworkManagementService.isBandwidthControlEnabled).thenReturn(true)
+
+        val enabled = repository.isBandwidthControlEnabled()
+
+        assertThat(enabled).isTrue()
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/DataUsageLibTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/DataUsageLibTest.kt
new file mode 100644
index 0000000..e3ec90a
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/DataUsageLibTest.kt
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.NetworkStats
+import android.net.NetworkTemplate
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class DataUsageLibTest {
+
+    @get:Rule
+    val mockito: MockitoRule = MockitoJUnit.rule()
+
+    @Spy
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    @Mock
+    private lateinit var telephonyManager: TelephonyManager
+
+    @Mock
+    private lateinit var subscriptionManager: SubscriptionManager
+
+    @Before
+    fun setUp() {
+        whenever(context.getSystemService(TelephonyManager::class.java))
+            .thenReturn(telephonyManager)
+        whenever(context.getSystemService(SubscriptionManager::class.java))
+            .thenReturn(subscriptionManager)
+
+        whenever(telephonyManager.subscriptionId).thenReturn(DEFAULT_SUB_ID)
+        whenever(telephonyManager.getSubscriberId(SUB_ID)).thenReturn(SUBSCRIBER_ID)
+        whenever(telephonyManager.getSubscriberId(DEFAULT_SUB_ID)).thenReturn(DEFAULT_SUBSCRIBER_ID)
+        whenever(telephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(telephonyManager)
+    }
+
+    @Test
+    fun getMobileTemplate_availableSubscriptionInfoListIsNull_returnDefaultSub() {
+        whenever(subscriptionManager.availableSubscriptionInfoList).thenReturn(null)
+
+        val mobileTemplate = DataUsageLib.getMobileTemplate(context, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_CARRIER)
+        assertThat(mobileTemplate.subscriberIds).containsExactly(DEFAULT_SUBSCRIBER_ID)
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    @Test
+    fun getMobileTemplate_subscriptionNotActive_returnDefaultSub() {
+        whenever(subscriptionManager.availableSubscriptionInfoList).thenReturn(listOf(null))
+
+        val mobileTemplate = DataUsageLib.getMobileTemplate(context, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_CARRIER)
+        assertThat(mobileTemplate.subscriberIds).containsExactly(DEFAULT_SUBSCRIBER_ID)
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    @Test
+    fun getMobileTemplate_mergedImsisFromGroupEmpty_returnRequestedSub() {
+        whenever(subscriptionManager.availableSubscriptionInfoList)
+            .thenReturn(listOf(SUBSCRIBER_INFO))
+        whenever(telephonyManager.mergedImsisFromGroup).thenReturn(emptyArray())
+
+        val mobileTemplate = DataUsageLib.getMobileTemplate(context, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_CARRIER)
+        assertThat(mobileTemplate.subscriberIds).containsExactly(SUBSCRIBER_ID)
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    @Test
+    fun getMobileTemplate_mergedImsisFromGroupNotContainSub_returnRequestedSub() {
+        whenever(subscriptionManager.availableSubscriptionInfoList)
+            .thenReturn(listOf(SUBSCRIBER_INFO))
+        whenever(telephonyManager.mergedImsisFromGroup).thenReturn(arrayOf(DEFAULT_SUBSCRIBER_ID))
+
+        val mobileTemplate = DataUsageLib.getMobileTemplate(context, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_CARRIER)
+        assertThat(mobileTemplate.subscriberIds).containsExactly(SUBSCRIBER_ID)
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    @Test
+    fun getMobileTemplate_mergedImsisFromGroupContainSub_returnRequestedSub() {
+        whenever(subscriptionManager.availableSubscriptionInfoList)
+            .thenReturn(listOf(SUBSCRIBER_INFO))
+        whenever(telephonyManager.mergedImsisFromGroup)
+            .thenReturn(arrayOf(DEFAULT_SUBSCRIBER_ID, SUBSCRIBER_ID))
+
+        val mobileTemplate = DataUsageLib.getMobileTemplate(context, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_CARRIER)
+        assertThat(mobileTemplate.subscriberIds)
+            .containsExactly(SUBSCRIBER_ID, DEFAULT_SUBSCRIBER_ID)
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    @Test
+    fun getMobileTemplateForSubId_subscriberIdNotNull() {
+        whenever(telephonyManager.getSubscriberId(SUB_ID)).thenReturn(SUBSCRIBER_ID)
+
+        val mobileTemplate = DataUsageLib.getMobileTemplateForSubId(telephonyManager, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_CARRIER)
+        assertThat(mobileTemplate.subscriberIds).containsExactly(SUBSCRIBER_ID)
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    @Test
+    fun getMobileTemplateForSubId_subscriberIdIsNull() {
+        whenever(telephonyManager.getSubscriberId(SUB_ID)).thenReturn(null)
+
+        val mobileTemplate = DataUsageLib.getMobileTemplateForSubId(telephonyManager, SUB_ID)
+
+        assertThat(mobileTemplate.matchRule).isEqualTo(NetworkTemplate.MATCH_MOBILE)
+        assertThat(mobileTemplate.subscriberIds).isEmpty()
+        assertThat(mobileTemplate.meteredness).isEqualTo(NetworkStats.METERED_YES)
+    }
+
+    private companion object {
+        const val DEFAULT_SUB_ID = 0
+        const val SUB_ID = 1
+        const val DEFAULT_SUBSCRIBER_ID = "Default Test Subscriber"
+        const val SUBSCRIBER_ID = "Test Subscriber"
+        val SUBSCRIBER_INFO: SubscriptionInfo = SubscriptionInfo.Builder().setId(SUB_ID).build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleBucketRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleBucketRepositoryTest.kt
new file mode 100644
index 0000000..f83b85f
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleBucketRepositoryTest.kt
@@ -0,0 +1,178 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.NetworkPolicy
+import android.net.NetworkTemplate
+import android.text.format.DateUtils
+import android.util.Range
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.datausage.lib.NetworkStatsRepository.Companion.Bucket
+import com.google.common.truth.Truth.assertThat
+import java.time.Instant
+import java.time.ZoneId
+import java.time.ZonedDateTime
+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 NetworkCycleBucketRepositoryTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val template = mock<NetworkTemplate>()
+
+    private val mockNetworkCycleDataRepository = mock<NetworkCycleDataRepository>()
+
+    @Test
+    fun loadCycles_byPolicy() {
+        val policy = mock<NetworkPolicy> {
+            on { cycleIterator() } doReturn listOf(
+                Range(zonedDateTime(CYCLE1_START_TIME), zonedDateTime(CYCLE1_END_TIME)),
+            ).iterator()
+        }
+        mockNetworkCycleDataRepository.stub {
+            on { getPolicy() } doReturn policy
+        }
+        val repository = NetworkCycleBucketRepository(
+            context = context,
+            networkTemplate = template,
+            buckets = listOf(
+                Bucket(
+                    uid = 0,
+                    bytes = CYCLE1_BYTES,
+                    startTimeStamp = CYCLE1_START_TIME,
+                    endTimeStamp = CYCLE1_END_TIME,
+                )
+            ),
+            networkCycleDataRepository = mockNetworkCycleDataRepository,
+        )
+
+        val cycles = repository.loadCycles()
+
+        assertThat(cycles).containsExactly(
+            NetworkUsageData(
+                startTime = CYCLE1_START_TIME,
+                endTime = CYCLE1_END_TIME,
+                usage = CYCLE1_BYTES,
+            ),
+        )
+    }
+
+    @Test
+    fun loadCycles_asFourWeeks() {
+        mockNetworkCycleDataRepository.stub {
+            on { getPolicy() } doReturn null
+        }
+        val repository = NetworkCycleBucketRepository(
+            context = context,
+            networkTemplate = template,
+            buckets = listOf(
+                Bucket(
+                    uid = 0,
+                    bytes = CYCLE2_BYTES,
+                    startTimeStamp = CYCLE2_START_TIME,
+                    endTimeStamp = CYCLE2_END_TIME,
+                )
+            ),
+            networkCycleDataRepository = mockNetworkCycleDataRepository,
+        )
+
+        val cycles = repository.loadCycles()
+
+        assertThat(cycles).containsExactly(
+            NetworkUsageData(
+                startTime = CYCLE2_END_TIME - DateUtils.WEEK_IN_MILLIS * 4,
+                endTime = CYCLE2_END_TIME,
+                usage = CYCLE2_BYTES,
+            ),
+        )
+    }
+
+    @Test
+    fun queryChartData() {
+        val cycle = NetworkUsageData(
+            startTime = CYCLE3_START_TIME,
+            endTime = CYCLE4_END_TIME,
+            usage = CYCLE3_BYTES + CYCLE4_BYTES,
+        )
+        val repository = NetworkCycleBucketRepository(
+            context = context,
+            networkTemplate = template,
+            buckets = listOf(
+                Bucket(
+                    uid = 0,
+                    bytes = CYCLE3_BYTES,
+                    startTimeStamp = CYCLE3_START_TIME,
+                    endTimeStamp = CYCLE3_END_TIME,
+                ),
+                Bucket(
+                    uid = 0,
+                    bytes = CYCLE4_BYTES,
+                    startTimeStamp = CYCLE4_START_TIME,
+                    endTimeStamp = CYCLE4_END_TIME,
+                ),
+            ),
+            networkCycleDataRepository = mockNetworkCycleDataRepository,
+        )
+
+        val summary = repository.queryChartData(cycle)
+
+        assertThat(summary).isEqualTo(
+            NetworkCycleChartData(
+                total = cycle,
+                dailyUsage = listOf(
+                    NetworkUsageData(
+                        startTime = CYCLE3_START_TIME,
+                        endTime = CYCLE3_END_TIME,
+                        usage = CYCLE3_BYTES,
+                    ),
+                    NetworkUsageData(
+                        startTime = CYCLE4_START_TIME,
+                        endTime = CYCLE4_END_TIME,
+                        usage = CYCLE4_BYTES,
+                    ),
+                ),
+            )
+        )
+    }
+
+    private fun zonedDateTime(epochMilli: Long): ZonedDateTime? =
+        ZonedDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault())
+
+    private companion object {
+        const val CYCLE1_START_TIME = 1L
+        const val CYCLE1_END_TIME = 2L
+        const val CYCLE1_BYTES = 11L
+
+        const val CYCLE2_START_TIME = 1695555555000L
+        const val CYCLE2_END_TIME = 1695566666000L
+        const val CYCLE2_BYTES = 22L
+
+        const val CYCLE3_START_TIME = 1695555555000L
+        const val CYCLE3_END_TIME = CYCLE3_START_TIME + DateUtils.DAY_IN_MILLIS
+        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
+        const val CYCLE4_BYTES = 44L
+    }
+}
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
new file mode 100644
index 0000000..77fe843
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/datausage/lib/NetworkCycleDataRepositoryTest.kt
@@ -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.datausage.lib
+
+import android.content.Context
+import android.net.NetworkPolicy
+import android.net.NetworkTemplate
+import android.text.format.DateUtils
+import android.util.Range
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.testutils.zonedDateTime
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.test.runTest
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class NetworkCycleDataRepositoryTest {
+    private val mockNetworkStatsRepository = mock<NetworkStatsRepository> {
+        on { querySummaryForDevice(CYCLE1_START_TIME, CYCLE1_END_TIME) } doReturn CYCLE1_BYTES
+
+        on {
+            querySummaryForDevice(
+                startTime = CYCLE2_END_TIME - DateUtils.WEEK_IN_MILLIS * 4,
+                endTime = CYCLE2_END_TIME,
+            )
+        } doReturn CYCLE2_BYTES
+
+        on { querySummaryForDevice(CYCLE3_START_TIME, CYCLE4_END_TIME) } doReturn
+            CYCLE3_BYTES + CYCLE4_BYTES
+
+        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 = ApplicationProvider.getApplicationContext()
+
+    private val template = mock<NetworkTemplate>()
+
+    private val repository =
+        spy(NetworkCycleDataRepository(context, template, mockNetworkStatsRepository))
+
+    @Test
+    fun loadFirstCycle_byPolicy() = runTest {
+        val policy = mock<NetworkPolicy> {
+            on { cycleIterator() } doReturn listOf(
+                Range(zonedDateTime(CYCLE1_START_TIME), zonedDateTime(CYCLE1_END_TIME))
+            ).iterator()
+        }
+        doReturn(policy).whenever(repository).getPolicy()
+
+        val firstCycle = repository.loadFirstCycle()
+
+        assertThat(firstCycle).isEqualTo(
+            NetworkUsageData(startTime = 1, endTime = 2, usage = CYCLE1_BYTES),
+        )
+    }
+
+    @Test
+    fun loadFirstCycle_asFourWeeks() = runTest {
+        doReturn(null).whenever(repository).getPolicy()
+        mockNetworkStatsRepository.stub {
+            on { getTimeRange() } doReturn Range(CYCLE2_START_TIME, CYCLE2_END_TIME)
+        }
+
+        val firstCycle = repository.loadFirstCycle()
+
+        assertThat(firstCycle).isEqualTo(
+            NetworkUsageData(
+                startTime = CYCLE2_END_TIME - DateUtils.WEEK_IN_MILLIS * 4,
+                endTime = CYCLE2_END_TIME,
+                usage = CYCLE2_BYTES,
+            ),
+        )
+    }
+
+    private companion object {
+        const val CYCLE1_START_TIME = 1L
+        const val CYCLE1_END_TIME = 2L
+        const val CYCLE1_BYTES = 11L
+
+        const val CYCLE2_START_TIME = 1695555555000L
+        const val CYCLE2_END_TIME = 1695566666000L
+        const val CYCLE2_BYTES = 22L
+
+        const val CYCLE3_START_TIME = 1695555555000L
+        const val CYCLE3_END_TIME = CYCLE3_START_TIME + DateUtils.DAY_IN_MILLIS
+        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
+        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/SubscriptionInfoListViewModelTest.kt b/tests/spa_unit/src/com/android/settings/network/SubscriptionInfoListViewModelTest.kt
new file mode 100644
index 0000000..020a470
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/SubscriptionInfoListViewModelTest.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.network
+
+import android.telephony.SubscriptionManager.PROFILE_CLASS_PROVISIONING
+
+import android.app.Application
+import android.content.Context
+import android.platform.test.flag.junit.SetFlagsRule
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyCallback
+import android.telephony.TelephonyManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.internal.telephony.flags.Flags
+import com.android.settings.network.telephony.CallStateFlowTest
+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.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class SubscriptionInfoListViewModelTest {
+    @get:Rule
+    val mSetFlagsRule = SetFlagsRule()
+    private var subInfoListener: SubscriptionManager.OnSubscriptionsChangedListener? = null
+    private val mockSubscriptionManager = mock<SubscriptionManager> {
+        on { activeSubscriptionInfoList } doAnswer { activeSubscriptionInfoList }
+        on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer {
+            subInfoListener =
+                it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener
+            subInfoListener?.onSubscriptionsChanged()
+        }
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
+    }
+
+    private val subscriptionInfoListViewModel: SubscriptionInfoListViewModel =
+        SubscriptionInfoListViewModel(context as Application);
+
+    private var activeSubscriptionInfoList: List<SubscriptionInfo>? = null
+
+    @Test
+    fun onSubscriptionsChanged_noProvisioning_resultSameAsInput() = runBlocking {
+        activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2)
+
+        val listDeferred = async {
+            subscriptionInfoListViewModel.subscriptionInfoListFlow.toListWithTimeout()
+        }
+        delay(100)
+        subInfoListener?.onSubscriptionsChanged()
+
+        assertThat(listDeferred.await()).contains(activeSubscriptionInfoList)
+    }
+
+    @Test
+    fun onSubscriptionsChanged_hasProvisioning_filterProvisioning() = runBlocking {
+        activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_3)
+        val expectation = listOf(SUB_INFO_1, SUB_INFO_2)
+
+        val listDeferred = async {
+            subscriptionInfoListViewModel.subscriptionInfoListFlow.toListWithTimeout()
+        }
+        delay(100)
+        subInfoListener?.onSubscriptionsChanged()
+
+        assertThat(listDeferred.await()).contains(expectation)
+    }
+
+    @Test
+    fun onSubscriptionsChanged_flagOffHasNonTerrestrialNetwork_filterNonTerrestrialNetwork() =
+        runBlocking {
+            mSetFlagsRule.disableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
+
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_4)
+            val expectation = listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_4)
+
+            val listDeferred = async {
+                subscriptionInfoListViewModel.subscriptionInfoListFlow.toListWithTimeout()
+            }
+            delay(100)
+            subInfoListener?.onSubscriptionsChanged()
+
+            assertThat(listDeferred.await()).contains(expectation)
+        }
+
+    @Test
+    fun onSubscriptionsChanged_flagOnHasNonTerrestrialNetwork_filterNonTerrestrialNetwork() =
+        runBlocking {
+            mSetFlagsRule.enableFlags(Flags.FLAG_OEM_ENABLED_SATELLITE_FLAG)
+
+            activeSubscriptionInfoList = listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_4)
+            val expectation = listOf(SUB_INFO_1, SUB_INFO_2)
+
+            val listDeferred = async {
+                subscriptionInfoListViewModel.subscriptionInfoListFlow.toListWithTimeout()
+            }
+            delay(100)
+            subInfoListener?.onSubscriptionsChanged()
+
+            assertThat(listDeferred.await()).contains(expectation)
+        }
+
+    private companion object {
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(1)
+        }.build()
+
+        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(2)
+        }.build()
+
+        val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(3)
+            setEmbedded(true)
+            setProfileClass(PROFILE_CLASS_PROVISIONING)
+            setOnlyNonTerrestrialNetwork(false)
+        }.build()
+
+        val SUB_INFO_4: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(4)
+            setEmbedded(true)
+            setOnlyNonTerrestrialNetwork(true)
+        }.build()
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/network/TetherPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/TetherPreferenceControllerTest.kt
new file mode 100644
index 0000000..51d2c87
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/TetherPreferenceControllerTest.kt
@@ -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.network
+
+import android.content.Context
+import android.net.TetheringManager
+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.settings.core.BasePreferenceController
+import com.android.settingslib.TetherUtil
+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.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class TetherPreferenceControllerTest {
+    private lateinit var mockSession: MockitoSession
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val controller = TetherPreferenceController(context, TEST_KEY)
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .mockStatic(TetherUtil::class.java)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+
+        ExtendedMockito.doReturn(true).`when` { TetherUtil.isTetherAvailable(context) }
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun getAvailabilityStatus_whenTetherAvailable() {
+        ExtendedMockito.doReturn(true).`when` { TetherUtil.isTetherAvailable(context) }
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_whenTetherNotAvailable() {
+        ExtendedMockito.doReturn(false).`when` { TetherUtil.isTetherAvailable(context) }
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getSummaryResId_bothWifiAndBluetoothOn() {
+        val summaryResId = controller.getSummaryResId(
+            setOf(TetheringManager.TETHERING_WIFI, TetheringManager.TETHERING_BLUETOOTH)
+        )
+
+        assertThat(summaryResId).isEqualTo(R.string.tether_settings_summary_hotspot_on_tether_on)
+    }
+
+    @Test
+    fun getSummaryResId_onlyWifiHotspotOn() {
+        val summaryResId = controller.getSummaryResId(setOf(TetheringManager.TETHERING_WIFI))
+
+        assertThat(summaryResId).isEqualTo(R.string.tether_settings_summary_hotspot_on_tether_off)
+    }
+
+    @Test
+    fun getSummaryResId_onlyBluetoothTetheringOn() {
+        val summaryResId = controller.getSummaryResId(setOf(TetheringManager.TETHERING_BLUETOOTH))
+
+        assertThat(summaryResId).isEqualTo(R.string.tether_settings_summary_hotspot_off_tether_on)
+    }
+
+    @Test
+    fun getSummaryResId_allOff() {
+        val summaryResId = controller.getSummaryResId(emptySet())
+
+        assertThat(summaryResId).isEqualTo(R.string.tether_preference_summary_off)
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/TetheredRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/TetheredRepositoryTest.kt
new file mode 100644
index 0000000..5bd5210
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/TetheredRepositoryTest.kt
@@ -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.network
+
+import android.bluetooth.BluetoothAdapter
+import android.bluetooth.BluetoothManager
+import android.bluetooth.BluetoothPan
+import android.bluetooth.BluetoothProfile
+import android.content.Context
+import android.net.TetheringInterface
+import android.net.TetheringManager
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.async
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.mapNotNull
+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.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class TetheredRepositoryTest {
+
+    private var tetheringInterfaces: Set<TetheringInterface> = emptySet()
+
+    private var tetheringEventCallback: TetheringManager.TetheringEventCallback? = null
+
+    private val mockTetheringManager = mock<TetheringManager> {
+        on { registerTetheringEventCallback(any(), any()) } doAnswer {
+            tetheringEventCallback = it.arguments[1] as TetheringManager.TetheringEventCallback
+            tetheringEventCallback?.onTetheredInterfacesChanged(tetheringInterfaces)
+        }
+    }
+
+    private val mockBluetoothPan = mock<BluetoothPan> {
+        on { isTetheringOn } doReturn false
+    }
+
+    private val mockBluetoothAdapter = mock<BluetoothAdapter> {
+        on { getProfileProxy(any(), any(), eq(BluetoothProfile.PAN)) } doAnswer {
+            val listener = it.arguments[1] as BluetoothProfile.ServiceListener
+            listener.onServiceConnected(BluetoothProfile.PAN, mockBluetoothPan)
+            true
+        }
+    }
+
+    private val mockBluetoothManager = mock<BluetoothManager> {
+        on { adapter } doReturn mockBluetoothAdapter
+    }
+
+    private val context = mock<Context> {
+        on { getSystemService(TetheringManager::class.java) } doReturn mockTetheringManager
+        on { getSystemService(BluetoothManager::class.java) } doReturn mockBluetoothManager
+    }
+
+    private val repository = TetheredRepository(context)
+
+    @Test
+    fun tetheredTypesFlow_allOff() = runBlocking {
+        val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+        assertThat(tetheredTypes).isEmpty()
+    }
+
+    @Test
+    fun tetheredTypesFlow_wifiHotspotOn(): Unit = runBlocking {
+        tetheringInterfaces = setOf(TetheringInterface(TetheringManager.TETHERING_WIFI, ""))
+
+        val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+        assertThat(tetheredTypes).containsExactly(TetheringManager.TETHERING_WIFI)
+    }
+
+    @Test
+    fun tetheredTypesFlow_usbTetheringTurnOnLater(): Unit = runBlocking {
+        val tetheredTypeDeferred = async {
+            repository.tetheredTypesFlow().mapNotNull {
+                it.singleOrNull()
+            }.firstWithTimeoutOrNull()
+        }
+        delay(100)
+
+        tetheringEventCallback?.onTetheredInterfacesChanged(
+            setOf(TetheringInterface(TetheringManager.TETHERING_USB, ""))
+        )
+
+        assertThat(tetheredTypeDeferred.await()).isEqualTo(TetheringManager.TETHERING_USB)
+    }
+
+    @Test
+    fun tetheredTypesFlow_bluetoothOff(): Unit = runBlocking {
+        mockBluetoothAdapter.stub {
+            on { state } doReturn BluetoothAdapter.STATE_OFF
+        }
+
+        val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+        assertThat(tetheredTypes).isEmpty()
+    }
+
+    @Test
+    fun tetheredTypesFlow_bluetoothOnTetheringOff(): Unit = runBlocking {
+        mockBluetoothAdapter.stub {
+            on { state } doReturn BluetoothAdapter.STATE_ON
+        }
+
+        val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+        assertThat(tetheredTypes).isEmpty()
+    }
+
+    @Test
+    fun tetheredTypesFlow_bluetoothTetheringOn(): Unit = runBlocking {
+        mockBluetoothAdapter.stub {
+            on { state } doReturn BluetoothAdapter.STATE_ON
+        }
+        mockBluetoothPan.stub {
+            on { isTetheringOn } doReturn true
+        }
+
+        val tetheredTypes = repository.tetheredTypesFlow().firstWithTimeoutOrNull()
+
+        assertThat(tetheredTypes).containsExactly(TetheringManager.TETHERING_BLUETOOTH)
+    }
+}
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
new file mode 100644
index 0000000..03fddb5
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/apn/ApnEditPageProviderTest.kt
@@ -0,0 +1,223 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.apn
+
+import android.content.Context
+import android.net.Uri
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsOff
+import androidx.compose.ui.test.assertIsOn
+import androidx.compose.ui.test.hasText
+import androidx.compose.ui.test.isFocused
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onAllNodesWithText
+import androidx.compose.ui.test.onChild
+import androidx.compose.ui.test.onChildAt
+import androidx.compose.ui.test.onLast
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.onRoot
+import androidx.compose.ui.test.performClick
+import androidx.compose.ui.test.performScrollToNode
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.google.common.truth.Truth
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class ApnEditPageProviderTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val apnName = "apn_name"
+    private val proxy = "proxy"
+    private val port = "port"
+    private val apnType = context.resources.getString(R.string.apn_type)
+    private val apnRoaming = "IPv4"
+    private val apnEnable = context.resources.getString(R.string.carrier_enabled)
+    private val apnProtocolOptions =
+        context.resources.getStringArray(R.array.apn_protocol_entries).toList()
+    private val networkType = context.resources.getString(R.string.network_type)
+    private val passwordTitle = context.resources.getString(R.string.apn_password)
+    private val apnInit = ApnData(
+        name = apnName,
+        proxy = proxy,
+        port = port,
+        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("ApnEdit")
+    }
+
+    @Test
+    fun title_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onNodeWithText(context.getString(R.string.apn_edit)).assertIsDisplayed()
+    }
+
+    @Test
+    fun name_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onNodeWithText(apnName, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun proxy_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(proxy, true))
+        composeTestRule.onNodeWithText(proxy, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun port_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(port, true))
+        composeTestRule.onNodeWithText(port, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun apn_type_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(apnType, true))
+        composeTestRule.onNodeWithText(apnType, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun apn_roaming_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(apnRoaming, true))
+        composeTestRule.onNodeWithText(apnRoaming, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun carrier_enabled_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(apnEnable, true))
+        composeTestRule.onNodeWithText(apnEnable, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun carrier_enabled_isChecked() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(apnEnable, true))
+        composeTestRule.onNodeWithText(apnEnable, true).assertIsOn()
+    }
+
+    @Test
+    fun carrier_enabled_checkChanged() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(apnEnable, true))
+        composeTestRule.onNodeWithText(apnEnable, true).performClick()
+        composeTestRule.onNodeWithText(apnEnable, true).assertIsOff()
+    }
+
+    @Test
+    fun network_type_displayed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .performScrollToNode(hasText(networkType, true))
+        composeTestRule.onNodeWithText(networkType, true).assertIsDisplayed()
+    }
+
+    @Test
+    fun network_type_changed() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .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 network_type_changed_back2Default() {
+        composeTestRule.setContent {
+            ApnPage(apnInit, remember { apnData }, uri)
+        }
+        composeTestRule.onRoot().onChild().onChildAt(0)
+            .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(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/AllowedNetworkTypesFlowTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/AllowedNetworkTypesFlowTest.kt
new file mode 100644
index 0000000..288018d
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/AllowedNetworkTypesFlowTest.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.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 AllowedNetworkTypesFlowTest {
+
+    private var allowedNetworkTypesListener: TelephonyCallback.AllowedNetworkTypesListener? = null
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+        on { registerTelephonyCallback(any(), any()) } doAnswer {
+            allowedNetworkTypesListener =
+                it.arguments[1] as TelephonyCallback.AllowedNetworkTypesListener
+        }
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    @Test
+    fun allowedNetworkTypesFlow_initial_notSndInitialValue() = runBlocking {
+        val flow = context.allowedNetworkTypesFlow(SUB_ID)
+
+        val state = flow.firstWithTimeoutOrNull()
+
+        assertThat(state).isNull()
+    }
+
+    @Test
+    fun allowedNetworkTypesFlow_userReasonChanged_sendChanged(): Unit = runBlocking {
+        val listDeferred = async {
+            context.allowedNetworkTypesFlow(SUB_ID).toListWithTimeout()
+        }
+        delay(100)
+
+        allowedNetworkTypesListener?.onAllowedNetworkTypesChanged(
+            TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER,
+            ALLOWED_NETWORK_TYPE,
+        )
+
+        assertThat(listDeferred.await()).containsExactly(ALLOWED_NETWORK_TYPE)
+    }
+
+    @Test
+    fun allowedNetworkTypesFlow_carrierReasonChanged_sendChanged(): Unit = runBlocking {
+        val listDeferred = async {
+            context.allowedNetworkTypesFlow(SUB_ID).toListWithTimeout()
+        }
+        delay(100)
+
+        allowedNetworkTypesListener?.onAllowedNetworkTypesChanged(
+            TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER,
+            ALLOWED_NETWORK_TYPE,
+        )
+
+        assertThat(listDeferred.await()).containsExactly(ALLOWED_NETWORK_TYPE)
+    }
+
+    @Test
+    fun allowedNetworkTypesFlow_powerReasonChanged_notSendChanged() = runBlocking {
+        val listDeferred = async {
+            context.allowedNetworkTypesFlow(SUB_ID).toListWithTimeout()
+        }
+        delay(100)
+
+        allowedNetworkTypesListener?.onAllowedNetworkTypesChanged(
+            TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_POWER,
+            ALLOWED_NETWORK_TYPE,
+        )
+
+        assertThat(listDeferred.await()).isEmpty()
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+        const val ALLOWED_NETWORK_TYPE = 10L
+    }
+}
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/CallingPreferenceCategoryControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/CallingPreferenceCategoryControllerTest.kt
new file mode 100644
index 0000000..81d17d2
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/CallingPreferenceCategoryControllerTest.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 androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.spa.preference.ComposePreference
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class CallingPreferenceCategoryControllerTest {
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private val preference = ComposePreference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    private val controller = CallingPreferenceCategoryController(context, TEST_KEY)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @Test
+    fun updateChildVisible_singleChildVisible_categoryVisible() {
+        controller.updateChildVisible(CHILD_A_KEY, true)
+
+        assertThat(preference.isVisible).isTrue()
+    }
+
+    @Test
+    fun updateChildVisible_singleChildNotVisible_categoryNotVisible() {
+        controller.updateChildVisible(CHILD_A_KEY, false)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    @Test
+    fun updateChildVisible_oneChildVisible_categoryVisible() {
+        controller.updateChildVisible(CHILD_A_KEY, true)
+        controller.updateChildVisible(CHILD_B_KEY, false)
+
+        assertThat(preference.isVisible).isTrue()
+    }
+
+    @Test
+    fun updateChildVisible_nonChildNotVisible_categoryNotVisible() {
+        controller.updateChildVisible(CHILD_A_KEY, false)
+        controller.updateChildVisible(CHILD_B_KEY, false)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val CHILD_A_KEY = "a"
+        const val CHILD_B_KEY = "b"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/CarrierConfigManagerExtTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/CarrierConfigManagerExtTest.kt
new file mode 100644
index 0000000..5a82f99
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/CarrierConfigManagerExtTest.kt
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import androidx.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.doReturn
+import org.mockito.kotlin.doThrow
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class CarrierConfigManagerExtTest {
+
+    private val mockCarrierConfigManager = mock<CarrierConfigManager>()
+
+    private val context = mock<Context> {
+        on { getSystemService(CarrierConfigManager::class.java) } doReturn mockCarrierConfigManager
+    }
+
+    @Test
+    fun safeGetConfig_managerReturnKeyValue_returnNonEmptyBundle() {
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), eq(KEY)) } doReturn persistableBundleOf(KEY to VALUE)
+        }
+        val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!!
+
+        val bundle = carrierConfigManager.safeGetConfig(listOf(KEY))
+
+        assertThat(bundle.getString(KEY)).isEqualTo(VALUE)
+    }
+
+    @Test
+    fun safeGetConfig_managerThrowIllegalStateException_returnEmptyBundle() {
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), eq(KEY)) } doThrow IllegalStateException()
+        }
+        val carrierConfigManager = context.getSystemService(CarrierConfigManager::class.java)!!
+
+        val bundle = carrierConfigManager.safeGetConfig(listOf(KEY))
+
+        assertThat(bundle.containsKey(KEY)).isFalse()
+    }
+
+    private companion object {
+        const val KEY = "key"
+        const val VALUE = "value"
+    }
+}
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 a42e41e..6cd9151 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
@@ -22,10 +22,9 @@
 import android.provider.Settings
 import android.telephony.SubscriptionManager
 import android.util.DataUnit
-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,71 +32,66 @@
 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.ExperimentalCoroutinesApi
-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
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @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() {
         mockSession = ExtendedMockito.mockitoSession()
             .initMocks(this)
-            .mockStatic(SubscriptionManager::class.java)
             .spyStatic(DataUsageUtils::class.java)
             .spyStatic(DataUsageLib::class.java)
             .strictness(Strictness.LENIENT)
             .startMocking()
 
-        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
@@ -112,63 +106,68 @@
 
     @Test
     fun getAvailabilityStatus_invalidSubId_returnUnsearchable() {
-        controller.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
+        val availabilityStatus =
+            controller.getAvailabilityStatus(SubscriptionManager.INVALID_SUBSCRIPTION_ID)
 
-        assertThat(controller.availabilityStatus).isEqualTo(AVAILABLE_UNSEARCHABLE)
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE_UNSEARCHABLE)
     }
 
     @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.whenViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
         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.whenViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
 
         waitUntil { !preference.isEnabled }
     }
 
     @Test
-    fun updateState_noUsageData_shouldDisablePreference() = runTest {
-        val usageInfo = DataUsageInfo()
-        whenever(dataUsageController.getDataUsageInfo(networkTemplate)).thenReturn(usageInfo)
-
-        controller.whenViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
-
-        waitUntil { !preference.isEnabled }
-    }
-
-    @Test
-    fun updateState_shouldUseIecUnit() = runTest {
-        val usageInfo = DataUsageInfo().apply {
-            usageLevel = DataUnit.MEBIBYTES.toBytes(1)
+    fun updateState_noUsageData_shouldEnablePreference() = runBlocking {
+        val usageData = NetworkUsageData(START_TIME, END_TIME, 0L)
+        repository.stub {
+            on { loadFirstCycle() } doReturn usageData
         }
-        whenever(dataUsageController.getDataUsageInfo(networkTemplate)).thenReturn(usageInfo)
 
-        controller.whenViewCreated(TestLifecycleOwner(initialState = Lifecycle.State.STARTED))
+        controller.onViewCreated(TestLifecycleOwner())
 
-        waitUntil { preference.summary?.contains("1.00 MB") == true }
+        waitUntil { preference.isEnabled }
+        waitUntil { preference.summary?.contains("0 B used") == true }
+    }
+
+    @Test
+    fun updateState_shouldUseIecUnit() = runBlocking {
+        val usageData = NetworkUsageData(START_TIME, END_TIME, DataUnit.MEBIBYTES.toBytes(1))
+        repository.stub {
+            on { loadFirstCycle() } doReturn usageData
+        }
+
+        controller.onViewCreated(TestLifecycleOwner())
+
+        waitUntil { preference.summary?.contains("1.00 MB used") == true }
     }
 
     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..c132273
--- /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.app.KeyguardManager
+import android.content.Context
+import android.os.UserManager
+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.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 val mockKeyguardManager = mock<KeyguardManager>() {
+        on { isKeyguardSecure() } doReturn false
+    }
+
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivity(any())
+        on { getSystemService(Context.KEYGUARD_SERVICE) } doReturn mockKeyguardManager
+    }
+
+    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)
+
+        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..a2f635d
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
@@ -0,0 +1,207 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.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 mockTelephonyManager1: TelephonyManager = mock<TelephonyManager> {
+        on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+    }
+
+    private val mockTelephonyManager2: TelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_1_ID) } doReturn mockTelephonyManager1
+        on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn true
+    }
+
+    private val mockTelephonyManager: TelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_1_ID) } doReturn mockTelephonyManager1
+        on { createForSubscriptionId(SUB_2_ID) } doReturn mockTelephonyManager2
+        on { createForSubscriptionId(INVALID_SUBSCRIPTION_ID) } doReturn mock
+    }
+
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    private var defaultDataSubId = SUB_1_ID
+
+    private val controller = MmsMessagePreferenceController(
+        context = context,
+        key = KEY,
+        getDefaultDataSubId = { defaultDataSubId },
+    ).apply { init(SUB_2_ID) }
+
+    @Test
+    fun getAvailabilityStatus_invalidSubscription_unavailable() {
+        controller.init(INVALID_SUBSCRIPTION_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus(INVALID_SUBSCRIPTION_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_mobileDataOn_unavailable() {
+        mockTelephonyManager2.stub {
+            on { isDataEnabled } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_meteredOff_unavailable() {
+        mockTelephonyManager2.stub {
+            on { isApnMetered(ApnSetting.TYPE_MMS) } doReturn false
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_isDefaultDataAndDataOnAndAutoDataSwitchOn_unavailable() {
+        defaultDataSubId = SUB_2_ID
+        mockTelephonyManager2.stub {
+            on { isDataEnabled } doReturn true
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_isDefaultDataAndDataOffAndAutoDataSwitchOn_available() {
+        defaultDataSubId = SUB_2_ID
+        mockTelephonyManager2.stub {
+            on { isDataEnabled } doReturn false
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_defaultDataOnAndAutoDataSwitchOn_unavailable() {
+        mockTelephonyManager1.stub {
+            on { isDataEnabled } doReturn true
+        }
+        mockTelephonyManager2.stub {
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_defaultDataOffAndAutoDataSwitchOn_available() {
+        mockTelephonyManager1.stub {
+            on { isDataEnabled } doReturn false
+        }
+        mockTelephonyManager2.stub {
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus(SUB_2_ID)
+
+        assertThat(availabilityStatus).isEqualTo(AVAILABLE)
+    }
+
+    @Test
+    fun isChecked_whenMmsNotAlwaysAllowed_returnFalse() {
+        mockTelephonyManager2.stub {
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED)
+            } doReturn false
+        }
+
+        val isChecked = controller.isChecked()
+
+        assertThat(isChecked).isFalse()
+    }
+
+    @Test
+    fun isChecked_whenMmsAlwaysAllowed_returnTrue() {
+        mockTelephonyManager2.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(mockTelephonyManager2).setMobileDataPolicyEnabled(
+            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, true
+        )
+    }
+
+    @Test
+    fun setChecked_setFalse_setDataIntoSubscriptionManager() {
+        controller.setChecked(false)
+
+        verify(mockTelephonyManager2).setMobileDataPolicyEnabled(
+            TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false
+        )
+    }
+
+    private companion object {
+        const val KEY = "mms_message"
+        const val SUB_1_ID = 1
+        const val SUB_2_ID = 2
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceControllerTest.kt
new file mode 100644
index 0000000..b035af5
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkEidPreferenceControllerTest.kt
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.platform.test.flag.junit.SetFlagsRule
+import android.telephony.SubscriptionInfo
+import android.telephony.TelephonyManager
+import android.telephony.euicc.EuiccManager
+import androidx.fragment.app.Fragment
+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
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.flags.Flags
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.android.settingslib.CustomDialogPreferenceCompat
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.After
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoSession
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.whenever
+import org.mockito.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkEidPreferenceControllerTest {
+    @get:Rule val setFlagsRule: SetFlagsRule = SetFlagsRule()
+
+    private lateinit var mockSession: MockitoSession
+
+    private val mockViewModels =  mock<Lazy<SubscriptionInfoListViewModel>>()
+    private val mockFragment = mock<Fragment>{
+        val viewmodel = mockViewModels
+    }
+
+    private var mockEid = String()
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on {uiccCardsInfo} doReturn listOf()
+        on { createForSubscriptionId(any()) } doReturn mock
+    }
+    private val mockEuiccManager = mock<EuiccManager> {
+        on {isEnabled} doReturn true
+        on {eid} doReturn mockEid
+    }
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+        on { getSystemService(EuiccManager::class.java) } doReturn mockEuiccManager
+    }
+
+    private val controller = MobileNetworkEidPreferenceController(context, TEST_KEY)
+    private val preference = CustomDialogPreferenceCompat(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .mockStatic(SubscriptionUtil::class.java)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun refreshData_getEmptyEid_preferenceIsNotVisible() = runBlocking {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
+        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
+            listOf(
+                SUB_INFO_1,
+                SUB_INFO_2
+            )
+        )
+        var mockSubId = 2
+        controller.init(mockFragment, mockSubId)
+        mockEid = String()
+
+        controller.refreshData(SUB_INFO_2)
+
+        assertThat(preference.isVisible).isEqualTo(false)
+    }
+
+    @Test
+    fun refreshData_getEmptyEid_preferenceSummaryIsExpected() = runBlocking {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
+        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
+            listOf(
+                SUB_INFO_1,
+                SUB_INFO_2
+            )
+        )
+        var mockSubId = 2
+        controller.init(mockFragment, mockSubId)
+        mockEid = "test eid"
+        mockEuiccManager.stub {
+            on {eid} doReturn mockEid
+        }
+
+        controller.refreshData(SUB_INFO_2)
+
+        assertThat(preference.summary).isEqualTo(mockEid)
+    }
+
+    @Test
+    fun getAvailabilityStatus_notSimHardwareVisible() {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false)
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
+    }
+
+    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/telephony/MobileNetworkImeiPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceControllerTest.kt
new file mode 100644
index 0000000..2f67846
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkImeiPreferenceControllerTest.kt
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import android.telephony.TelephonyManager
+import android.telephony.euicc.EuiccManager
+import androidx.fragment.app.Fragment
+import androidx.preference.Preference
+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
+import com.android.internal.telephony.PhoneConstants
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.android.settingslib.CustomDialogPreferenceCompat
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoSession
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+import org.mockito.kotlin.whenever
+import org.mockito.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkImeiPreferenceControllerTest {
+    private lateinit var mockSession: MockitoSession
+
+    private val mockViewModels =  mock<Lazy<SubscriptionInfoListViewModel>>()
+    private val mockFragment = mock<Fragment>{
+        val viewmodel = mockViewModels
+    }
+
+    private var mockImei = String()
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { uiccCardsInfo } doReturn listOf()
+        on { createForSubscriptionId(any()) } doReturn mock
+        on { currentPhoneType } doReturn TelephonyManager.PHONE_TYPE_GSM
+        on { imei } doReturn mockImei
+        on { meid } doReturn mockImei
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    private val controller = MobileNetworkImeiPreferenceController(context, TEST_KEY)
+    private val preference = Preference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .mockStatic(SubscriptionUtil::class.java)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun refreshData_getPhoneNumber_preferenceSummaryIsExpected() = runBlocking {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
+        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
+            listOf(
+                SUB_INFO_1,
+                SUB_INFO_2
+            )
+        )
+        var mockSubId = 2
+        controller.init(mockFragment, mockSubId)
+        mockImei = "test imei"
+        mockTelephonyManager.stub {
+            on { imei } doReturn mockImei
+        }
+
+        controller.refreshData(SUB_INFO_2)
+
+        assertThat(preference.summary).isEqualTo(mockImei)
+    }
+
+    @Test
+    fun getAvailabilityStatus_notSimHardwareVisible() {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false)
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
+    }
+
+    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/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
new file mode 100644
index 0000000..38c47c2
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkPhoneNumberPreferenceControllerTest.kt
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import androidx.fragment.app.Fragment
+import androidx.preference.Preference
+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
+import com.android.settings.R
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoSession
+import org.mockito.kotlin.any
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.whenever
+import org.mockito.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkPhoneNumberPreferenceControllerTest {
+    private lateinit var mockSession: MockitoSession
+
+    private val mockViewModels =  mock<Lazy<SubscriptionInfoListViewModel>>()
+    private val mockFragment = mock<Fragment>{
+        val viewmodel = mockViewModels
+    }
+
+    private var mockPhoneNumber = String()
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val controller = MobileNetworkPhoneNumberPreferenceController(context, TEST_KEY)
+    private val preference = Preference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .mockStatic(SubscriptionUtil::class.java)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+
+        whenever(SubscriptionUtil.getBidiFormattedPhoneNumber(any(),any())).thenReturn(mockPhoneNumber)
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun refreshData_getEmptyPhoneNumber_preferenceIsNotVisible() = runBlocking {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
+        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
+            listOf(
+                SUB_INFO_1,
+                SUB_INFO_2
+            )
+        )
+        var mockSubId = 2
+        controller.init(mockFragment, mockSubId)
+        mockPhoneNumber = String()
+
+        controller.refreshData(SUB_INFO_2)
+
+        assertThat(preference.summary).isEqualTo(
+            context.getString(R.string.device_info_default))
+    }
+
+    @Test
+    fun refreshData_getPhoneNumber_preferenceSummaryIsExpected() = runBlocking {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(true)
+        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(
+            listOf(
+                SUB_INFO_1,
+                SUB_INFO_2
+            )
+        )
+        var mockSubId = 2
+        controller.init(mockFragment, mockSubId)
+        mockPhoneNumber = "test phone number"
+        whenever(SubscriptionUtil.getBidiFormattedPhoneNumber(any(),any())).thenReturn(mockPhoneNumber)
+
+        controller.refreshData(SUB_INFO_2)
+
+        assertThat(preference.summary).isEqualTo(mockPhoneNumber)
+    }
+
+    @Test
+    fun getAvailabilityStatus_notSimHardwareVisible() {
+        whenever(SubscriptionUtil.isSimHardwareVisible(context)).thenReturn(false)
+
+        val availabilityStatus = controller.availabilityStatus
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE)
+    }
+
+    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/telephony/MobileNetworkSpnPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSpnPreferenceControllerTest.kt
new file mode 100644
index 0000000..f5592c1
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MobileNetworkSpnPreferenceControllerTest.kt
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import android.telephony.TelephonyManager
+import android.telephony.euicc.EuiccManager
+import androidx.fragment.app.Fragment
+import androidx.preference.Preference
+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
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.network.SubscriptionInfoListViewModel
+import com.android.settings.network.SubscriptionUtil
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.MockitoSession
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
+import org.mockito.quality.Strictness
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkSpnPreferenceControllerTest {
+    private lateinit var mockSession: MockitoSession
+
+    private val mockViewModels =  mock<Lazy<SubscriptionInfoListViewModel>>()
+    private val mockFragment = mock<Fragment>{
+        val viewmodel = mockViewModels
+    }
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val controller = MobileNetworkSpnPreferenceController(context, TEST_KEY)
+    private val preference = Preference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    @Before
+    fun setUp() {
+        mockSession = ExtendedMockito.mockitoSession()
+            .initMocks(this)
+            .mockStatic(SubscriptionUtil::class.java)
+            .strictness(Strictness.LENIENT)
+            .startMocking()
+
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @After
+    fun tearDown() {
+        mockSession.finishMocking()
+    }
+
+    @Test
+    fun refreshData_getCarrierName_preferenceSummaryIsExpected() = runBlocking {
+        var testList = listOf(
+            SUB_INFO_1,
+            SUB_INFO_2
+        )
+        whenever(SubscriptionUtil.getActiveSubscriptions(any())).thenReturn(testList)
+        var mockSubId = 2
+        controller.init(mockFragment, mockSubId)
+
+        controller.refreshData(testList)
+
+        assertThat(preference.summary).isEqualTo(CARRIER_NAME_2)
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val CARRIER_NAME_1 = "Sub 1"
+        const val CARRIER_NAME_2 = "Sub 2"
+
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(1)
+            setCarrierName(CARRIER_NAME_1)
+        }.build()
+
+        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(2)
+            setCarrierName(CARRIER_NAME_2)
+        }.build()
+
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/ServiceStateFlowTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/ServiceStateFlowTest.kt
new file mode 100644
index 0000000..4ffc267
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/ServiceStateFlowTest.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.ServiceState
+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 ServiceStateFlowTest {
+
+    private var serviceStateListener: TelephonyCallback.ServiceStateListener? = null
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+        on { registerTelephonyCallback(any(), any()) } doAnswer {
+            serviceStateListener = it.arguments[1] as TelephonyCallback.ServiceStateListener
+            serviceStateListener?.onServiceStateChanged(ServiceState())
+        }
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    @Test
+    fun serviceStateFlow_initial_sndInitialValue() = runBlocking {
+        val flow = context.serviceStateFlow(SUB_ID)
+
+        val state = flow.firstWithTimeoutOrNull()
+
+        assertThat(state).isNotNull()
+    }
+
+    @Test
+    fun serviceStateFlow_changed_sendChanged(): Unit = runBlocking {
+        val listDeferred = async {
+            context.serviceStateFlow(SUB_ID).toListWithTimeout()
+        }
+        delay(100)
+
+        serviceStateListener?.onServiceStateChanged(ServiceState())
+
+        assertThat(listDeferred.await()).hasSize(2)
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
new file mode 100644
index 0000000..2887134
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/SubscriptionRepositoryTest.kt
@@ -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.network.telephony
+
+import android.content.Context
+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.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 SubscriptionRepositoryTest {
+    private var subInfoListener: SubscriptionManager.OnSubscriptionsChangedListener? = null
+
+    private val mockSubscriptionManager = mock<SubscriptionManager> {
+        on { addOnSubscriptionsChangedListener(any(), any()) } doAnswer {
+            subInfoListener = it.arguments[1] as SubscriptionManager.OnSubscriptionsChangedListener
+            subInfoListener?.onSubscriptionsChanged()
+        }
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
+    }
+
+    @Test
+    fun subscriptionsChangedFlow_hasInitialValue() = runBlocking {
+        val initialValue = context.subscriptionsChangedFlow().firstWithTimeoutOrNull()
+
+        assertThat(initialValue).isSameInstanceAs(Unit)
+    }
+
+    @Test
+    fun subscriptionsChangedFlow_changed() = runBlocking {
+        val listDeferred = async {
+            context.subscriptionsChangedFlow().toListWithTimeout()
+        }
+        delay(100)
+
+        subInfoListener?.onSubscriptionsChanged()
+
+        assertThat(listDeferred.await()).hasSize(2)
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.kt
new file mode 100644
index 0000000..b7e1dcc
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyRepositoryTest.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.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.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.runBlocking
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class TelephonyRepositoryTest {
+    private var telephonyCallback: TelephonyCallback? = null
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+        on { registerTelephonyCallback(any(), any()) } doAnswer {
+            telephonyCallback = it.arguments[1] as TelephonyCallback
+        }
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+    }
+
+    @Test
+    fun telephonyCallbackFlow_callbackRegistered() = runBlocking {
+        val flow = context.telephonyCallbackFlow<Unit>(SUB_ID) {
+            object : TelephonyCallback() {}
+        }
+
+        flow.firstWithTimeoutOrNull()
+
+        assertThat(telephonyCallback).isNotNull()
+    }
+
+    @Test
+    fun telephonyCallbackFlow_callbackUnregistered() = runBlocking {
+        val flow = context.telephonyCallbackFlow<Unit>(SUB_ID) {
+            object : TelephonyCallback() {}
+        }
+
+        flow.firstWithTimeoutOrNull()
+
+        verify(mockTelephonyManager).unregisterTelephonyCallback(telephonyCallback!!)
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyStatusControlSessionTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyStatusControlSessionTest.kt
index 7e6a91b..cf6b919 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyStatusControlSessionTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/TelephonyStatusControlSessionTest.kt
@@ -23,12 +23,10 @@
 import com.android.settings.core.BasePreferenceController
 import com.android.settingslib.spa.testutils.waitUntil
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.test.runTest
 import org.junit.Test
 import org.junit.runner.RunWith
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @RunWith(AndroidJUnit4::class)
 class TelephonyStatusControlSessionTest {
     private val context: Context = ApplicationProvider.getApplicationContext()
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.kt
new file mode 100644
index 0000000..fc53049
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.kt
@@ -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.network.telephony
+
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.provider.Settings
+import android.telecom.PhoneAccountHandle
+import android.telecom.TelecomManager
+import android.telephony.TelephonyManager
+import android.telephony.ims.ImsMmTelManager
+import androidx.lifecycle.testing.TestLifecycleOwner
+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.telephony.ims.ImsMmTelRepository
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class WifiCallingPreferenceControllerTest {
+    private val mockTelecomManager = mock<TelecomManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelecomManager::class.java) } doReturn mockTelecomManager
+    }
+
+    private val preferenceIntent = Intent()
+
+    private val preference = Preference(context).apply {
+        key = TEST_KEY
+        intent = preferenceIntent
+    }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    private var callState = TelephonyManager.CALL_STATE_IDLE
+
+    private object FakeImsMmTelRepository : ImsMmTelRepository {
+        var wiFiMode = ImsMmTelManager.WIFI_MODE_UNKNOWN
+        override fun getWiFiCallingMode() = wiFiMode
+    }
+
+    private val callingPreferenceCategoryController =
+        CallingPreferenceCategoryController(context, "calling_category")
+
+    private val controller = WifiCallingPreferenceController(
+        context = context,
+        key = TEST_KEY,
+        callStateFlowFactory = { flowOf(callState) },
+        imsMmTelRepositoryFactory = { FakeImsMmTelRepository },
+    ).init(subId = SUB_ID, callingPreferenceCategoryController)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @Test
+    fun summary_noSimCallManager_setCorrectSummary() = runBlocking {
+        mockTelecomManager.stub {
+            on { getSimCallManagerForSubscription(SUB_ID) } doReturn null
+        }
+        FakeImsMmTelRepository.wiFiMode = ImsMmTelManager.WIFI_MODE_WIFI_ONLY
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.summary)
+            .isEqualTo(context.getString(com.android.internal.R.string.wfc_mode_wifi_only_summary))
+    }
+
+    @Test
+    fun summary_hasSimCallManager_summaryIsNull() = runBlocking {
+        mockTelecomManager.stub {
+            on { getSimCallManagerForSubscription(SUB_ID) } doReturn
+                PhoneAccountHandle(ComponentName("", ""), "")
+        }
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.summary).isNull()
+    }
+
+    @Test
+    fun isEnabled_callIdle_enabled() = runBlocking {
+        callState = TelephonyManager.CALL_STATE_IDLE
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isEnabled).isTrue()
+    }
+
+    @Test
+    fun isEnabled_notCallIdle_disabled() = runBlocking {
+        callState = TelephonyManager.CALL_STATE_RINGING
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.isEnabled).isFalse()
+    }
+
+    @Test
+    fun displayPreference_setsSubscriptionIdOnIntent() = runBlocking {
+        assertThat(preference.intent!!.getIntExtra(Settings.EXTRA_SUB_ID, 0)).isEqualTo(SUB_ID)
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val SUB_ID = 2
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.kt
new file mode 100644
index 0000000..f821e1a
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.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.telephony.gsm
+
+import android.content.Context
+import android.content.Intent
+import android.provider.Settings
+import android.telephony.CarrierConfigManager
+import android.telephony.ServiceState
+import android.telephony.TelephonyManager
+import androidx.compose.ui.test.assertIsEnabled
+import androidx.compose.ui.test.assertIsNotEnabled
+import androidx.compose.ui.test.assertIsOff
+import androidx.compose.ui.test.assertIsOn
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.onRoot
+import androidx.compose.ui.test.performClick
+import androidx.core.os.persistableBundleOf
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.Settings.NetworkSelectActivity
+import com.android.settings.spa.preference.ComposePreference
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.emptyFlow
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+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.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class AutoSelectPreferenceControllerTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+        on { simOperatorName } doReturn OPERATOR_NAME
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+        doNothing().whenever(mock).startActivity(any())
+    }
+
+    private val preference = ComposePreference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    private val serviceState = ServiceState()
+
+    private val carrierConfig = persistableBundleOf()
+
+    private val controller = AutoSelectPreferenceController(
+        context = context,
+        key = TEST_KEY,
+        allowedNetworkTypesFlowFactory = { emptyFlow() },
+        serviceStateFlowFactory = { flowOf(serviceState) },
+        getConfigForSubId = { carrierConfig },
+    ).init(subId = SUB_ID)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @Test
+    fun isChecked_isAutoSelection_on() {
+        serviceState.isManualSelection = false
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.select_automatically))
+            .assertIsOn()
+    }
+
+    @Test
+    fun isChecked_isManualSelection_off() {
+        serviceState.isManualSelection = true
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.select_automatically))
+            .assertIsOff()
+    }
+
+
+    @Test
+    fun isEnabled_isRoaming_enabled() {
+        serviceState.roaming = true
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.select_automatically))
+            .assertIsEnabled()
+    }
+
+    @Test
+    fun isEnabled_notOnlyAutoSelectInHome_enabled() {
+        serviceState.roaming = false
+        carrierConfig.putBoolean(
+            CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL, false
+        )
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.select_automatically))
+            .assertIsEnabled()
+    }
+
+    @Test
+    fun isEnabled_onlyAutoSelectInHome_notEnabled() {
+        serviceState.roaming = false
+        carrierConfig.putBoolean(
+            CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL, true
+        )
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onNodeWithText("Unavailable when connected to T-mobile")
+            .assertIsNotEnabled()
+    }
+
+    @Test
+    fun onClick_turnOff_startNetworkSelectActivity() {
+        serviceState.isManualSelection = false
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+        composeTestRule.onRoot().performClick()
+
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivity(capture())
+        }.firstValue
+        assertThat(intent.component!!.className).isEqualTo(NetworkSelectActivity::class.java.name)
+        assertThat(intent.getIntExtra(Settings.EXTRA_SUB_ID, 0)).isEqualTo(SUB_ID)
+    }
+
+    @Test
+    fun onClick_turnOn_setNetworkSelectionModeAutomatic() = runBlocking {
+        serviceState.isManualSelection = true
+        controller.progressDialog = mock()
+
+        composeTestRule.setContent {
+            controller.Content()
+        }
+        composeTestRule.onRoot().performClick()
+        delay(100)
+
+        verify(controller.progressDialog!!).show()
+        verify(mockTelephonyManager).setNetworkSelectionModeAutomatic()
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val SUB_ID = 2
+        const val OPERATOR_NAME = "T-mobile"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt
new file mode 100644
index 0000000..466a5d1
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.gsm
+
+import android.content.Context
+import android.telephony.ServiceState
+import android.telephony.SubscriptionInfo
+import android.telephony.SubscriptionManager
+import android.telephony.TelephonyManager
+import androidx.lifecycle.testing.TestLifecycleOwner
+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.R
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.emptyFlow
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.runBlocking
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+
+@RunWith(AndroidJUnit4::class)
+class OpenNetworkSelectPagePreferenceControllerTest {
+
+    private val subscriptionInfo = mock<SubscriptionInfo> {
+        on { subscriptionId } doReturn SUB_ID
+        on { carrierName } doReturn OPERATOR_NAME
+    }
+
+    private val mockSubscriptionManager = mock<SubscriptionManager> {
+        on { createForAllUserProfiles() } doReturn mock
+        on { getActiveSubscriptionInfo(SUB_ID) } doReturn subscriptionInfo
+    }
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(SubscriptionManager::class.java) } doReturn mockSubscriptionManager
+    }
+
+    private val preference = Preference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+    private val serviceState = ServiceState()
+
+    private val controller = OpenNetworkSelectPagePreferenceController(
+        context = context,
+        key = TEST_KEY,
+        allowedNetworkTypesFlowFactory = { emptyFlow() },
+        serviceStateFlowFactory = { flowOf(serviceState) },
+    ).init(subId = SUB_ID)
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @Test
+    fun isEnabled_modeManual_enabled() {
+        controller.onNetworkSelectModeUpdated(TelephonyManager.NETWORK_SELECTION_MODE_MANUAL)
+
+        assertThat(preference.isEnabled).isTrue()
+    }
+
+    @Test
+    fun isEnabled_modeAuto_disabled() {
+        controller.onNetworkSelectModeUpdated(TelephonyManager.NETWORK_SELECTION_MODE_AUTO)
+
+        assertThat(preference.isEnabled).isFalse()
+    }
+
+    @Test
+    fun summary_inService_isOperatorName() = runBlocking {
+        serviceState.state = ServiceState.STATE_IN_SERVICE
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.summary).isEqualTo(OPERATOR_NAME)
+    }
+
+    @Test
+    fun summary_notInService_isDisconnect() = runBlocking {
+        serviceState.state = ServiceState.STATE_OUT_OF_SERVICE
+
+        controller.onViewCreated(TestLifecycleOwner())
+        delay(100)
+
+        assertThat(preference.summary).isEqualTo(context.getString(R.string.network_disconnected))
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+        const val SUB_ID = 2
+        const val OPERATOR_NAME = "T-mobile"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsMmTelRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsMmTelRepositoryTest.kt
new file mode 100644
index 0000000..d5142fa
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/ims/ImsMmTelRepositoryTest.kt
@@ -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.network.telephony.ims
+
+import android.content.Context
+import android.telephony.CarrierConfigManager
+import android.telephony.CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL
+import android.telephony.TelephonyManager
+import android.telephony.ims.ImsMmTelManager
+import androidx.core.os.persistableBundleOf
+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.doThrow
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class ImsMmTelRepositoryTest {
+    private val mockTelephonyManager = mock<TelephonyManager> {
+        on { createForSubscriptionId(SUB_ID) } doReturn mock
+    }
+
+    private val mockCarrierConfigManager = mock<CarrierConfigManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(TelephonyManager::class.java) } doReturn mockTelephonyManager
+        on { getSystemService(CarrierConfigManager::class.java) } doReturn mockCarrierConfigManager
+    }
+
+    private val mockImsMmTelManager = mock<ImsMmTelManager> {
+        on { isVoWiFiSettingEnabled } doReturn true
+        on { getVoWiFiRoamingModeSetting() } doReturn ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED
+        on { getVoWiFiModeSetting() } doReturn ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED
+    }
+
+    private val repository = ImsMmTelRepositoryImpl(context, SUB_ID, mockImsMmTelManager)
+
+    @Test
+    fun getWiFiCallingMode_voWiFiSettingNotEnabled_returnUnknown() {
+        mockImsMmTelManager.stub {
+            on { isVoWiFiSettingEnabled } doReturn false
+        }
+
+        val wiFiCallingMode = repository.getWiFiCallingMode()
+
+        assertThat(wiFiCallingMode).isEqualTo(ImsMmTelManager.WIFI_MODE_UNKNOWN)
+    }
+
+    @Test
+    fun getWiFiCallingMode_roamingAndNotUseWfcHomeModeForRoaming_returnRoamingSetting() {
+        mockTelephonyManager.stub {
+            on { isNetworkRoaming } doReturn true
+        }
+        mockUseWfcHomeModeForRoaming(false)
+
+        val wiFiCallingMode = repository.getWiFiCallingMode()
+
+        assertThat(wiFiCallingMode).isEqualTo(mockImsMmTelManager.getVoWiFiRoamingModeSetting())
+    }
+
+    @Test
+    fun getWiFiCallingMode_roamingAndUseWfcHomeModeForRoaming_returnHomeSetting() {
+        mockTelephonyManager.stub {
+            on { isNetworkRoaming } doReturn true
+        }
+        mockUseWfcHomeModeForRoaming(true)
+
+        val wiFiCallingMode = repository.getWiFiCallingMode()
+
+        assertThat(wiFiCallingMode).isEqualTo(mockImsMmTelManager.getVoWiFiModeSetting())
+    }
+
+    @Test
+    fun getWiFiCallingMode_notRoaming_returnHomeSetting() {
+        mockTelephonyManager.stub {
+            on { isNetworkRoaming } doReturn false
+        }
+
+        val wiFiCallingMode = repository.getWiFiCallingMode()
+
+        assertThat(wiFiCallingMode).isEqualTo(mockImsMmTelManager.getVoWiFiModeSetting())
+    }
+
+    @Test
+    fun getWiFiCallingMode_illegalArgumentException_returnUnknown() {
+        mockImsMmTelManager.stub {
+            on { isVoWiFiSettingEnabled } doThrow IllegalArgumentException()
+        }
+
+        val wiFiCallingMode = repository.getWiFiCallingMode()
+
+        assertThat(wiFiCallingMode).isEqualTo(ImsMmTelManager.WIFI_MODE_UNKNOWN)
+    }
+
+    private fun mockUseWfcHomeModeForRoaming(config: Boolean) {
+        mockCarrierConfigManager.stub {
+            on {
+                getConfigForSubId(SUB_ID, KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL)
+            } doReturn persistableBundleOf(
+                KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL to config,
+            )
+        }
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+    }
+}
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/SpaDestinationTest.kt b/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
new file mode 100644
index 0000000..0b9eb22
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/SpaDestinationTest.kt
@@ -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.spa
+
+import android.app.Activity
+import android.content.ComponentName
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
+import android.os.Bundle
+import androidx.core.os.bundleOf
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity.META_DATA_KEY_HIGHLIGHT_MENU_KEY
+import com.android.settings.spa.SpaDestination.Companion.META_DATA_KEY_DESTINATION
+import com.android.settings.spa.SpaDestination.Companion.getDestination
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+
+@RunWith(AndroidJUnit4::class)
+class SpaDestinationTest {
+    private var activityMetadata: Bundle = bundleOf()
+
+    private val mockPackageManager = mock<PackageManager> {
+        on {
+            getActivityInfo(
+                eq(COMPONENT_NAME),
+                any<PackageManager.ComponentInfoFlags>()
+            )
+        } doAnswer {
+            ActivityInfo().apply { metaData = activityMetadata }
+        }
+    }
+
+    private val activity = mock<Activity> {
+        on { componentName } doReturn COMPONENT_NAME
+        on { packageManager } doReturn mockPackageManager
+    }
+
+    @Test
+    fun getDestination_noDestination_returnNull() {
+        activityMetadata = bundleOf()
+
+        val destination = activity.getDestination()
+
+        assertThat(destination).isNull()
+    }
+
+    @Test
+    fun getDestination_withoutHighlightMenuKey() {
+        activityMetadata = bundleOf(META_DATA_KEY_DESTINATION to DESTINATION)
+
+        val (destination, highlightMenuKey) = activity.getDestination()!!
+
+        assertThat(destination).isEqualTo(DESTINATION)
+        assertThat(highlightMenuKey).isNull()
+    }
+
+    @Test
+    fun getDestination_withHighlightMenuKey() {
+        activityMetadata = bundleOf(
+            META_DATA_KEY_DESTINATION to DESTINATION,
+            META_DATA_KEY_HIGHLIGHT_MENU_KEY to HIGHLIGHT_MENU_KEY,
+        )
+
+        val (destination, highlightMenuKey) = activity.getDestination()!!
+
+        assertThat(destination).isEqualTo(DESTINATION)
+        assertThat(highlightMenuKey).isEqualTo(HIGHLIGHT_MENU_KEY)
+    }
+
+    private companion object {
+        const val PACKAGE_NAME = "package.name"
+        const val ACTIVITY_NAME = "ActivityName"
+        val COMPONENT_NAME = ComponentName(PACKAGE_NAME, ACTIVITY_NAME)
+        const val DESTINATION = "Destination"
+        const val HIGHLIGHT_MENU_KEY = "apps"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/AllAppListTest.kt
index 2e7752e..0ec8754 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
@@ -30,25 +31,37 @@
 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.framework.compose.getPlaceholder
 import com.android.settingslib.spaprivileged.template.app.AppListInput
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
 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")
@@ -118,7 +131,6 @@
             .isEqualTo("AppInfoSettings/package.name/0")
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun allAppListModel_transform() = runTest {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
@@ -131,19 +143,31 @@
     }
 
     @Test
-    fun allAppListModel_getSummary() {
+    fun listModelGetSummary_regular() {
         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
-    fun allAppListModel_getSummaryWhenDisabled() {
+    fun listModelGetSummary_emptyStorage() {
+        val listModel = AllAppListModel(context) { stateOf("") }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
+        }
+
+        assertThat(summary()).isEqualTo(context.getPlaceholder())
+    }
+
+    @Test
+    fun listModelGetSummary_disabled() {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
         val disabledApp = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
@@ -151,32 +175,95 @@
             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
-    fun allAppListModel_getSummaryWhenNotInstalled() {
+    fun listModelGetSummary_emptyStorageAndDisabled() {
+        val listModel = AllAppListModel(context) { stateOf("") }
+        val disabledApp = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
+            enabled = false
+        }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary =
+                listModel.getSummary(option = 0, record = AppRecordWithSize(app = disabledApp))
+        }
+
+        assertThat(summary())
+            .isEqualTo(context.getString(com.android.settingslib.R.string.disabled))
+    }
+
+    @Test
+    fun listModelGetSummary_notInstalled() {
         val listModel = AllAppListModel(context) { stateOf(SUMMARY) }
         val notInstalledApp = ApplicationInfo().apply {
             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 {
@@ -196,7 +283,7 @@
                     AppListItemModel(
                         record = AppRecordWithSize(app = APP),
                         label = LABEL,
-                        summary = stateOf(SUMMARY),
+                        summary = { SUMMARY },
                     ).AppItem()
                 }
             }
@@ -208,6 +295,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/ResetAppPreferencesTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/ResetAppPreferencesTest.kt
index ffd5831..b63c281 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/ResetAppPreferencesTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/ResetAppPreferencesTest.kt
@@ -45,7 +45,7 @@
     }
 
     private fun setResetAppPreferences() {
-        val fakeMoreOptionsScope = object : MoreOptionsScope {
+        val fakeMoreOptionsScope = object : MoreOptionsScope() {
             override fun dismiss() {}
         }
         composeTestRule.setContent {
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..537764a 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,13 +18,9 @@
 
 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
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
@@ -40,9 +36,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 +244,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 {
@@ -273,7 +269,7 @@
 private class FakeAppOpsController(private val fakeMode: Int) : IAppOpsController {
     var setAllowedCalledWith: Boolean? = null
 
-    override val mode = MutableLiveData(fakeMode)
+    override val mode = flowOf(fakeMode)
 
     override fun setAllowed(allowed: Boolean) {
         setAllowedCalledWith = allowed
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt
index dd5b929..15fe091 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt
@@ -22,6 +22,8 @@
 import android.content.pm.LauncherApps
 import android.content.pm.PackageManager
 import android.provider.DeviceConfig.NAMESPACE_WINDOW_MANAGER
+import android.view.WindowManager.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE
+import android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
 import android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.platform.LocalContext
@@ -96,6 +98,8 @@
         whenever(launcherApps.getActivityList(anyString(), any())).thenReturn(launcherActivities)
         // True is ignored but need this here or getBoolean will complain null object
         mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true)
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE, true)
+        mockProperty(PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE, true)
     }
 
     @After
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 1126cc5..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,12 +28,10 @@
 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
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
 import org.junit.Rule
@@ -105,7 +102,6 @@
         composeTestRule.onNodeWithText(LABEL).assertIsDisplayed()
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun aspectRatioAppListModel_transform() = runTest {
         val listModel = UserAspectRatioAppListModel(context)
@@ -116,7 +112,6 @@
         assertThat(recordList[0].app).isSameInstanceAs(APP)
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun aspectRatioAppListModel_filter() = runTest {
         val listModel = UserAspectRatioAppListModel(context)
@@ -135,7 +130,7 @@
                     AppListItemModel(
                         record = APP_RECORD_SUGGESTED,
                         label = LABEL,
-                        summary = stateOf(SUMMARY)
+                        summary = { SUMMARY }
                     ).AppItem()
                 }
             }
@@ -144,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,
@@ -168,7 +163,7 @@
                     canDisplay = true,
                 ))
         }
-        return summaryState
+        return summary()
     }
 
 
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppArchiveButtonTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppArchiveButtonTest.kt
new file mode 100644
index 0000000..2afb3f1
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppArchiveButtonTest.kt
@@ -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.spa.app.appinfo
+
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageInstaller
+import android.content.pm.PackageManager
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.CloudUpload
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settingslib.spa.testutils.delay
+import com.android.settingslib.spa.widget.button.ActionButton
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.MutableStateFlow
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class AppArchiveButtonTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {}
+
+    private val packageInfoPresenter = mock<PackageInfoPresenter>()
+
+    private val userPackageManager = mock<PackageManager>()
+
+    private val packageInstaller = mock<PackageInstaller>()
+
+    private val isHibernationSwitchEnabledStateFlow = MutableStateFlow(true)
+
+    private lateinit var appArchiveButton: AppArchiveButton
+
+    @Before
+    fun setUp() {
+        whenever(packageInfoPresenter.context).thenReturn(context)
+        whenever(packageInfoPresenter.userPackageManager).thenReturn(userPackageManager)
+        whenever(userPackageManager.packageInstaller).thenReturn(packageInstaller)
+        whenever(userPackageManager.getApplicationLabel(any())).thenReturn(APP_LABEL)
+        whenever(packageInfoPresenter.packageName).thenReturn(PACKAGE_NAME)
+        appArchiveButton =
+            AppArchiveButton(packageInfoPresenter, isHibernationSwitchEnabledStateFlow)
+    }
+
+    @Test
+    fun appArchiveButton_whenIsArchived_isDisabled() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = true
+        }
+        whenever(userPackageManager.isAppArchivable(app.packageName)).thenReturn(true)
+
+        val actionButton = setContent(app)
+
+        assertThat(actionButton.enabled).isFalse()
+    }
+
+    @Test
+    fun appArchiveButton_whenIsNotAppArchivable_isDisabled() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = false
+        }
+        whenever(userPackageManager.isAppArchivable(app.packageName)).thenReturn(false)
+
+        val actionButton = setContent(app)
+
+        assertThat(actionButton.enabled).isFalse()
+    }
+
+    @Test
+    fun appArchiveButton_whenIsHibernationSwitchDisabled_isDisabled() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = false
+            flags = ApplicationInfo.FLAG_INSTALLED
+        }
+        whenever(userPackageManager.isAppArchivable(app.packageName)).thenReturn(true)
+        isHibernationSwitchEnabledStateFlow.value = false
+        val enabledActionButton = setContent(app)
+
+        assertThat(enabledActionButton.enabled).isFalse()
+    }
+
+    @Test
+    fun appArchiveButton_displaysRightTextAndIcon() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = false
+        }
+        whenever(userPackageManager.isAppArchivable(app.packageName)).thenReturn(true)
+
+        val actionButton = setContent(app)
+
+        assertThat(actionButton.text).isEqualTo(context.getString(R.string.archive))
+        assertThat(actionButton.imageVector).isEqualTo(Icons.Outlined.CloudUpload)
+    }
+
+    @Test
+    fun appArchiveButton_clicked() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = false
+        }
+        whenever(userPackageManager.isAppArchivable(app.packageName)).thenReturn(true)
+
+        val actionButton = setContent(app)
+        actionButton.onClick()
+
+        verify(packageInstaller).requestArchive(
+            eq(PACKAGE_NAME),
+            any()
+        )
+    }
+
+    private fun setContent(app: ApplicationInfo): ActionButton {
+        lateinit var actionButton: ActionButton
+        composeTestRule.setContent {
+            actionButton = appArchiveButton.getActionButton(app)
+        }
+        composeTestRule.delay()
+        return actionButton
+    }
+
+    private companion object {
+        const val PACKAGE_NAME = "package.name"
+        const val APP_LABEL = "App label"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt
index a7a54e6..b7b96b0 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppBatteryPreferenceTest.kt
@@ -163,6 +163,8 @@
                 "10%",
                 null,
                 false,
+                null,
+                null
             )
         }
     }
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonRepositoryTest.kt
index 49b60fb..1eb1a7f 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppButtonRepositoryTest.kt
@@ -20,8 +20,11 @@
 import android.content.ComponentName
 import android.content.Context
 import android.content.pm.ActivityInfo
+import android.content.pm.ApplicationInfo
+import android.content.pm.Flags
 import android.content.pm.PackageManager
 import android.content.pm.ResolveInfo
+import android.platform.test.annotations.RequiresFlagsEnabled
 import androidx.core.os.bundleOf
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -126,9 +129,62 @@
         assertThat(homePackageInfo.homePackages).containsExactly(PACKAGE_NAME)
     }
 
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_IMPROVE_HOME_APP_BEHAVIOR)
+    fun uninstallDisallowedDueToHomeApp_isNotSystemAndIsCurrentHomeAndHasOnlyOneHomeApp() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+        }
+
+        mockGetHomeActivities(
+            homeActivities = listOf(RESOLVE_INFO),
+            currentDefaultHome = COMPONENT_NAME,
+        )
+
+        val value = appButtonRepository.uninstallDisallowedDueToHomeApp(app)
+
+        assertThat(value).isTrue()
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_IMPROVE_HOME_APP_BEHAVIOR)
+    fun uninstallDisallowedDueToHomeApp_isNotSystemAndIsCurrentHomeAndHasOtherHomeApps() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+        }
+
+        mockGetHomeActivities(
+            homeActivities = listOf(RESOLVE_INFO, RESOLVE_INFO_FAKE),
+            currentDefaultHome = COMPONENT_NAME,
+        )
+
+        val value = appButtonRepository.uninstallDisallowedDueToHomeApp(app)
+
+        assertThat(value).isFalse()
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_IMPROVE_HOME_APP_BEHAVIOR)
+    fun uninstallDisallowedDueToHomeApp_isSystemAndIsCurrentHomeAndHasOtherHomeApps() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_SYSTEM
+        }
+
+        mockGetHomeActivities(
+            homeActivities = listOf(RESOLVE_INFO, RESOLVE_INFO_FAKE),
+            currentDefaultHome = COMPONENT_NAME,
+        )
+
+        val value = appButtonRepository.uninstallDisallowedDueToHomeApp(app)
+
+        assertThat(value).isTrue()
+    }
+
     private companion object {
         const val PACKAGE_NAME = "packageName"
         const val PACKAGE_NAME_ALTERNATE = "packageName.alternate"
+        const val PACKAGE_NAME_FAKE = "packageName.fake"
         const val ACTIVITY_NAME = "activityName"
         val COMPONENT_NAME = ComponentName(PACKAGE_NAME, ACTIVITY_NAME)
         val RESOLVE_INFO = ResolveInfo().apply {
@@ -136,6 +192,11 @@
                 packageName = PACKAGE_NAME
             }
         }
+        val RESOLVE_INFO_FAKE = ResolveInfo().apply {
+            activityInfo = ActivityInfo().apply {
+                packageName = PACKAGE_NAME_FAKE
+            }
+        }
         val RESOLVE_INFO_WITH_ALTERNATE = ResolveInfo().apply {
             activityInfo = ActivityInfo().apply {
                 packageName = PACKAGE_NAME
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..c742bd7 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,23 @@
 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.PackageInstaller
 import android.content.pm.PackageManager
 import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsEnabled
 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
@@ -38,6 +45,7 @@
 import org.mockito.Mock
 import org.mockito.MockitoSession
 import org.mockito.Spy
+import org.mockito.kotlin.any
 import org.mockito.quality.Strictness
 import org.mockito.Mockito.`when` as whenever
 
@@ -57,6 +65,12 @@
     @Mock
     private lateinit var packageManager: PackageManager
 
+    @Mock
+    private lateinit var packageInstaller: PackageInstaller
+
+    private val featureFlags = FakeFeatureFlagsImpl()
+    private val isHibernationSwitchEnabledStateFlow = MutableStateFlow(true)
+
     @Before
     fun setUp() {
         mockSession = ExtendedMockito.mockitoSession()
@@ -67,8 +81,11 @@
         whenever(packageInfoPresenter.context).thenReturn(context)
         whenever(packageInfoPresenter.packageName).thenReturn(PACKAGE_NAME)
         whenever(packageInfoPresenter.userPackageManager).thenReturn(packageManager)
+        whenever(packageManager.getApplicationLabel(any())).thenReturn(APP_LABEL)
+        whenever(packageManager.packageInstaller).thenReturn(packageInstaller)
         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 +109,78 @@
         composeTestRule.onRoot().assertIsDisplayed()
     }
 
-    private fun setContent() {
-        whenever(packageInfoPresenter.flow).thenReturn(MutableStateFlow(PACKAGE_INFO))
+    @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()
+    }
+
+    @Test
+    fun uninstallButton_enabled_whenAppIsArchived() {
+        whenever(packageManager.getLaunchIntentForPackage(PACKAGE_NAME)).thenReturn(Intent())
+        featureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
+        val packageInfo = PackageInfo().apply {
+            applicationInfo = ApplicationInfo().apply {
+                packageName = PACKAGE_NAME
+                isArchived = true
+            }
+            packageName = PACKAGE_NAME
+        }
+        setContent(packageInfo)
+
+        composeTestRule.onNodeWithText(context.getString(R.string.uninstall_text)).assertIsEnabled()
+    }
+
+    @Test
+    fun archiveButton_displayed_whenAppIsNotArchived() {
+        featureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
+        val packageInfo = PackageInfo().apply {
+            applicationInfo = ApplicationInfo().apply {
+                packageName = PACKAGE_NAME
+                isArchived = false
+            }
+            packageName = PACKAGE_NAME
+        }
+        setContent(packageInfo)
+
+        composeTestRule.onNodeWithText(context.getString(R.string.archive)).assertIsDisplayed()
+        composeTestRule.onNodeWithText(context.getString(R.string.restore)).assertIsNotDisplayed()
+    }
+
+    @Test
+    fun restoreButton_displayed_whenAppIsArchived() {
+        featureFlags.setFlag(Flags.FLAG_ARCHIVING, true)
+        val packageInfo = PackageInfo().apply {
+            applicationInfo = ApplicationInfo().apply {
+                packageName = PACKAGE_NAME
+                isArchived = true
+            }
+            packageName = PACKAGE_NAME
+        }
+        setContent(packageInfo)
+
+        composeTestRule.onNodeWithText(context.getString(R.string.restore)).assertIsDisplayed()
+        composeTestRule.onNodeWithText(context.getString(R.string.archive)).assertIsNotDisplayed()
+    }
+
+    private fun setContent(packageInfo: PackageInfo = PACKAGE_INFO) {
+        whenever(packageInfoPresenter.flow).thenReturn(MutableStateFlow(packageInfo))
         composeTestRule.setContent {
-            AppButtons(packageInfoPresenter)
+            AppButtons(packageInfoPresenter, isHibernationSwitchEnabledStateFlow, featureFlags)
         }
 
         composeTestRule.delay()
@@ -103,6 +188,7 @@
 
     private companion object {
         const val PACKAGE_NAME = "package.name"
+        const val APP_LABEL = "App label"
         val PACKAGE_INFO = PackageInfo().apply {
             applicationInfo = ApplicationInfo().apply {
                 packageName = PACKAGE_NAME
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/AppForceStopButtonTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppForceStopButtonTest.kt
index c093863..84d6651 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppForceStopButtonTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppForceStopButtonTest.kt
@@ -17,79 +17,82 @@
 package com.android.settings.spa.app.appinfo
 
 import android.app.admin.DevicePolicyManager
+import android.content.ComponentName
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
+import android.os.UserHandle
+import android.os.UserManager
+import androidx.compose.material3.Button
+import androidx.compose.material3.Text
+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.settingslib.spa.widget.button.ActionButton
+import com.android.settings.R
+import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spaprivileged.framework.common.devicePolicyManager
 import com.android.settingslib.spaprivileged.model.app.userId
 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.Mock
-import org.mockito.Spy
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
+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 AppForceStopButtonTest {
     @get:Rule
     val composeTestRule = createComposeRule()
 
-    @get:Rule
-    val mockito: MockitoRule = MockitoJUnit.rule()
+    private val mockPackageManager = mock<PackageManager>()
 
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val mockDevicePolicyManager = mock<DevicePolicyManager>()
 
-    @Mock
-    private lateinit var packageInfoPresenter: PackageInfoPresenter
-
-    @Mock
-    private lateinit var packageManager: PackageManager
-
-    @Mock
-    private lateinit var devicePolicyManager: DevicePolicyManager
-
-    private lateinit var appForceStopButton: AppForceStopButton
-
-    @Before
-    fun setUp() {
-        whenever(packageInfoPresenter.context).thenReturn(context)
-        whenever(context.packageManager).thenReturn(packageManager)
-        whenever(context.devicePolicyManager).thenReturn(devicePolicyManager)
-        appForceStopButton = AppForceStopButton(packageInfoPresenter)
+    private val mockUserManager = mock<UserManager> {
+        on { getUserRestrictionSources(any(), any()) } doReturn emptyList()
     }
 
-    @Test
-    fun getActionButton() {
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn mockPackageManager
+        on { devicePolicyManager } doReturn mockDevicePolicyManager
+        on { getSystemService(Context.DEVICE_POLICY_SERVICE) } doReturn mockDevicePolicyManager
+        on { getSystemService(Context.USER_SERVICE) } doReturn mockUserManager
     }
 
+    private val packageInfoPresenter = mock<PackageInfoPresenter> {
+        on { context } doReturn context
+    }
+
+    private val appForceStopButton = AppForceStopButton(packageInfoPresenter)
+
     @Test
     fun getActionButton_isActiveAdmin_buttonDisabled() {
         val app = createApp()
-        whenever(devicePolicyManager.packageHasActiveAdmins(PACKAGE_NAME, app.userId))
-            .thenReturn(true)
+        mockDevicePolicyManager.stub {
+            on { packageHasActiveAdmins(PACKAGE_NAME, app.userId) } doReturn true
+        }
 
-        val actionButton = setForceStopButton(app)
+        setForceStopButton(app)
 
-        assertThat(actionButton.enabled).isFalse()
+        composeTestRule.onNodeWithText(context.getString(R.string.force_stop)).assertIsNotEnabled()
     }
 
     @Test
     fun getActionButton_isUninstallInQueue_buttonDisabled() {
         val app = createApp()
-        whenever(devicePolicyManager.isUninstallInQueue(PACKAGE_NAME)).thenReturn(true)
+        mockDevicePolicyManager.stub {
+            on { isUninstallInQueue(PACKAGE_NAME) } doReturn true
+        }
 
-        val actionButton = setForceStopButton(app)
+        setForceStopButton(app)
 
-        assertThat(actionButton.enabled).isFalse()
+        composeTestRule.onNodeWithText(context.getString(R.string.force_stop)).assertIsNotEnabled()
     }
 
     @Test
@@ -98,35 +101,79 @@
             flags = ApplicationInfo.FLAG_STOPPED
         }
 
-        val actionButton = setForceStopButton(app)
+        setForceStopButton(app)
 
-        assertThat(actionButton.enabled).isFalse()
+        composeTestRule.onNodeWithText(context.getString(R.string.force_stop)).assertIsNotEnabled()
     }
 
     @Test
     fun getActionButton_regularApp_buttonEnabled() {
         val app = createApp()
 
-        val actionButton = setForceStopButton(app)
+        setForceStopButton(app)
 
-        assertThat(actionButton.enabled).isTrue()
+        composeTestRule.onNodeWithText(context.getString(R.string.force_stop)).assertIsEnabled()
     }
 
-    private fun setForceStopButton(app: ApplicationInfo): ActionButton {
-        lateinit var actionButton: ActionButton
-        composeTestRule.setContent {
-            actionButton = appForceStopButton.getActionButton(app)
+    @Test
+    fun getAdminRestriction_packageNotProtected() {
+        mockPackageManager.stub {
+            on { isPackageStateProtected(PACKAGE_NAME, UserHandle.getUserId(UID)) } doReturn false
         }
-        return actionButton
+
+        val admin = appForceStopButton.getAdminRestriction(createApp())
+
+        assertThat(admin).isNull()
+    }
+
+    @Test
+    fun getAdminRestriction_packageProtectedAndHaveOwner() {
+        mockPackageManager.stub {
+            on { isPackageStateProtected(PACKAGE_NAME, UserHandle.getUserId(UID)) } doReturn true
+        }
+        mockDevicePolicyManager.stub {
+            on { deviceOwnerComponentOnAnyUser } doReturn DEVICE_OWNER
+        }
+
+        val admin = appForceStopButton.getAdminRestriction(createApp())!!
+
+        assertThat(admin.component).isEqualTo(DEVICE_OWNER)
+    }
+
+    @Test
+    fun getAdminRestriction_packageProtectedAndNotHaveOwner() {
+        mockPackageManager.stub {
+            on { isPackageStateProtected(PACKAGE_NAME, UserHandle.getUserId(UID)) } doReturn true
+        }
+        mockDevicePolicyManager.stub {
+            on { deviceOwnerComponentOnAnyUser } doReturn null
+        }
+
+        val admin = appForceStopButton.getAdminRestriction(createApp())!!
+
+        assertThat(admin.component).isNull()
+    }
+
+    private fun setForceStopButton(app: ApplicationInfo) {
+        composeTestRule.setContent {
+            val actionButton = appForceStopButton.getActionButton(app)
+            Button(onClick = {}, enabled = actionButton.enabled) {
+                Text(actionButton.text)
+            }
+        }
+        composeTestRule.delay()
     }
 
     private fun createApp(builder: ApplicationInfo.() -> Unit = {}) =
         ApplicationInfo().apply {
             packageName = PACKAGE_NAME
+            uid = UID
             enabled = true
         }.apply(builder)
 
     private companion object {
         const val PACKAGE_NAME = "package.name"
+        const val UID = 10000
+        val DEVICE_OWNER = ComponentName("device", "Owner")
     }
-}
\ No newline at end of file
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
index 53a1868..31722c9 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppInstallerInfoPreferenceTest.kt
@@ -19,19 +19,15 @@
 import android.content.Context
 import android.content.Intent
 import android.content.pm.ApplicationInfo
-import android.os.UserManager
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.test.assertIsDisplayed
-import androidx.compose.ui.test.assertIsEnabled
 import androidx.compose.ui.test.assertIsNotDisplayed
-import androidx.compose.ui.test.assertIsNotEnabled
 import androidx.compose.ui.test.hasText
+import androidx.compose.ui.test.isEnabled
+import androidx.compose.ui.test.isNotEnabled
 import androidx.compose.ui.test.junit4.createComposeRule
-import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
 import androidx.compose.ui.test.performClick
-import androidx.compose.ui.test.printToLog
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
@@ -39,23 +35,22 @@
 import com.android.settings.Utils
 import com.android.settings.applications.AppStoreUtil
 import com.android.settingslib.applications.AppUtils
+import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spa.testutils.waitUntilExists
-import com.android.settingslib.spaprivileged.framework.common.userManager
 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.Mock
-import org.mockito.Mockito.any
-import org.mockito.Mockito.anyInt
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.verify
 import org.mockito.MockitoSession
-import org.mockito.Spy
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.spy
+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 AppInstallerInfoPreferenceTest {
@@ -64,11 +59,9 @@
 
     private lateinit var mockSession: MockitoSession
 
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
-
-    @Mock
-    private lateinit var userManager: UserManager
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivityAsUser(any(), any())
+    }
 
     @Before
     fun setUp() {
@@ -79,16 +72,13 @@
             .mockStatic(AppUtils::class.java)
             .strictness(Strictness.LENIENT)
             .startMocking()
-        whenever(context.userManager).thenReturn(userManager)
-        whenever(userManager.isManagedProfile(anyInt())).thenReturn(false)
         whenever(AppStoreUtil.getInstallerPackageName(any(), eq(PACKAGE_NAME)))
             .thenReturn(INSTALLER_PACKAGE_NAME)
         whenever(AppStoreUtil.getAppStoreLink(context, INSTALLER_PACKAGE_NAME, PACKAGE_NAME))
             .thenReturn(STORE_LINK)
         whenever(Utils.getApplicationLabel(context, INSTALLER_PACKAGE_NAME))
             .thenReturn(INSTALLER_PACKAGE_LABEL)
-        whenever(AppUtils.isMainlineModule(any(), eq(PACKAGE_NAME)))
-            .thenReturn(false)
+        whenever(AppUtils.isMainlineModule(any(), eq(PACKAGE_NAME))).thenReturn(false)
     }
 
     @After
@@ -115,15 +105,6 @@
     }
 
     @Test
-    fun whenIsManagedProfile_notDisplayed() {
-        whenever(userManager.isManagedProfile(anyInt())).thenReturn(true)
-
-        setContent()
-
-        composeTestRule.onRoot().assertIsNotDisplayed()
-    }
-
-    @Test
     fun whenIsMainlineModule_notDisplayed() {
         whenever(AppUtils.isMainlineModule(any(), eq(PACKAGE_NAME))).thenReturn(true)
 
@@ -138,9 +119,8 @@
             .thenReturn(null)
 
         setContent()
-        waitUntilDisplayed()
 
-        composeTestRule.onNode(preferenceNode).assertIsNotEnabled()
+        composeTestRule.waitUntilExists(preferenceNode.and(isNotEnabled()))
     }
 
     @Test
@@ -152,30 +132,25 @@
         }
 
         setContent(instantApp)
-        waitUntilDisplayed()
 
-        composeTestRule.onRoot().printToLog("AAA")
-        composeTestRule.onNodeWithText("More info on installer label")
-            .assertIsDisplayed()
-            .assertIsEnabled()
+        composeTestRule.waitUntilExists(hasText("More info on installer label").and(isEnabled()))
     }
 
     @Test
     fun whenNotInstantApp() {
         setContent()
-        waitUntilDisplayed()
 
-        composeTestRule.onRoot().printToLog("AAA")
-        composeTestRule.onNodeWithText("App installed from installer label")
-            .assertIsDisplayed()
-            .assertIsEnabled()
+        composeTestRule.waitUntilExists(hasText("App installed from installer label"))
+        composeTestRule.waitUntilExists(preferenceNode.and(isEnabled()))
     }
 
     @Test
     fun whenClick_startActivity() {
         setContent()
-        waitUntilDisplayed()
+        composeTestRule.delay()
+
         composeTestRule.onRoot().performClick()
+        composeTestRule.delay()
 
         verify(context).startActivityAsUser(STORE_LINK, APP.userHandle)
     }
@@ -188,14 +163,10 @@
         }
     }
 
-    private fun waitUntilDisplayed() {
-        composeTestRule.waitUntilExists(preferenceNode)
-    }
-
     private val preferenceNode = hasText(context.getString(R.string.app_install_details_title))
 
     private companion object {
-        const val PACKAGE_NAME = "packageName"
+        const val PACKAGE_NAME = "package.name"
         const val INSTALLER_PACKAGE_NAME = "installer"
         const val INSTALLER_PACKAGE_LABEL = "installer label"
         val STORE_LINK = Intent("store/link")
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt
index 1646851..11d4b9a 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionPreferenceTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2023 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -26,35 +26,32 @@
 import androidx.compose.ui.test.onNodeWithText
 import androidx.compose.ui.test.onRoot
 import androidx.compose.ui.test.performClick
-import androidx.lifecycle.MutableLiveData
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
 import com.android.settingslib.spa.testutils.delay
 import com.android.settingslib.spaprivileged.model.app.userHandle
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.flowOf
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doNothing
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.verify
-import org.mockito.Spy
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.doNothing
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 class AppPermissionPreferenceTest {
     @get:Rule
     val composeTestRule = createComposeRule()
 
-    @get:Rule
-    val mockito: MockitoRule = MockitoJUnit.rule()
-
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        doNothing().whenever(mock).startActivityAsUser(any(), any())
+    }
 
     @Test
     fun title_display() {
@@ -66,15 +63,13 @@
 
     @Test
     fun whenClick_startActivity() {
-        doNothing().`when`(context).startActivityAsUser(any(), any())
-
         setContent()
         composeTestRule.onRoot().performClick()
         composeTestRule.delay()
 
-        val intentCaptor = ArgumentCaptor.forClass(Intent::class.java)
-        verify(context).startActivityAsUser(intentCaptor.capture(), eq(APP.userHandle))
-        val intent = intentCaptor.value
+        val intent = argumentCaptor {
+            verify(context).startActivityAsUser(capture(), eq(APP.userHandle))
+        }.firstValue
         assertThat(intent.action).isEqualTo(Intent.ACTION_MANAGE_APP_PERMISSIONS)
         assertThat(intent.getStringExtra(Intent.EXTRA_PACKAGE_NAME)).isEqualTo(PACKAGE_NAME)
         assertThat(intent.getBooleanExtra(EXTRA_HIDE_INFO_BUTTON, false)).isEqualTo(true)
@@ -85,7 +80,7 @@
             CompositionLocalProvider(LocalContext provides context) {
                 AppPermissionPreference(
                     app = APP,
-                    summaryLiveData = MutableLiveData(
+                    summaryFlow = flowOf(
                         AppPermissionSummaryState(summary = SUMMARY, enabled = true)
                     ),
                 )
@@ -103,4 +98,4 @@
             packageName = PACKAGE_NAME
         }
     }
-}
\ No newline at end of file
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt
index c82da1a..0735e3b 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppPermissionSummaryTest.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,6 @@
 import android.content.Context
 import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession
@@ -27,50 +26,42 @@
 import com.android.settings.testutils.mockAsUser
 import com.android.settingslib.applications.PermissionsSummaryHelper
 import com.android.settingslib.applications.PermissionsSummaryHelper.PermissionsResultCallback
-import com.android.settingslib.spa.testutils.getOrAwaitValue
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.first
+import kotlinx.coroutines.runBlocking
 import org.junit.After
 import org.junit.Before
-import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.Mock
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doReturn
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.never
-import org.mockito.Mockito.verify
 import org.mockito.MockitoSession
-import org.mockito.Spy
+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.whenever
 import org.mockito.quality.Strictness
-import org.mockito.Mockito.`when` as whenever
 
 @RunWith(AndroidJUnit4::class)
 class AppPermissionSummaryTest {
-    @get:Rule
-    val instantTaskExecutorRule = InstantTaskExecutorRule()
 
     private lateinit var mockSession: MockitoSession
 
-    @Spy
-    private var context: Context = ApplicationProvider.getApplicationContext()
+    private val mockPackageManager = mock<PackageManager>()
 
-    @Mock
-    private lateinit var packageManager: PackageManager
+    private var context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        mock.mockAsUser()
+        on { packageManager } doReturn mockPackageManager
+    }
 
-    private lateinit var summaryLiveData: AppPermissionSummaryLiveData
+    private val summaryRepository = AppPermissionSummaryRepository(context, APP)
 
     @Before
     fun setUp() {
         mockSession = mockitoSession()
-            .initMocks(this)
             .mockStatic(PermissionsSummaryHelper::class.java)
             .strictness(Strictness.LENIENT)
             .startMocking()
-        context.mockAsUser()
-        whenever(context.packageManager).thenReturn(packageManager)
-
-        summaryLiveData = AppPermissionSummaryLiveData(context, APP)
     }
 
     private fun mockGetPermissionSummary(
@@ -95,22 +86,10 @@
     }
 
     @Test
-    fun permissionsChangeListener() {
-        mockGetPermissionSummary()
-
-        summaryLiveData.getOrAwaitValue {
-            verify(packageManager).addOnPermissionsChangeListener(any())
-            verify(packageManager, never()).removeOnPermissionsChangeListener(any())
-        }
-
-        verify(packageManager).removeOnPermissionsChangeListener(any())
-    }
-
-    @Test
-    fun summary_noPermissionsRequested() {
+    fun summary_noPermissionsRequested() = runBlocking {
         mockGetPermissionSummary(requestedPermissionCount = 0)
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo(
             context.getString(R.string.runtime_permissions_summary_no_permissions_requested)
@@ -119,10 +98,10 @@
     }
 
     @Test
-    fun summary_noPermissionsGranted() {
+    fun summary_noPermissionsGranted() = runBlocking {
         mockGetPermissionSummary(requestedPermissionCount = 1, grantedGroupLabels = emptyList())
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo(
             context.getString(R.string.runtime_permissions_summary_no_permissions_granted)
@@ -131,34 +110,34 @@
     }
 
     @Test
-    fun onPermissionSummaryResult_hasRuntimePermission_shouldSetPermissionAsSummary() {
+    fun summary_hasRuntimePermission_usePermissionAsSummary() = runBlocking {
         mockGetPermissionSummary(
             requestedPermissionCount = 1,
             grantedGroupLabels = listOf(PERMISSION),
         )
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo(PERMISSION)
         assertThat(enabled).isTrue()
     }
 
     @Test
-    fun onPermissionSummaryResult_hasAdditionalPermission_shouldSetAdditionalSummary() {
+    fun summary_hasAdditionalPermission_containsAdditionalSummary() = runBlocking {
         mockGetPermissionSummary(
             requestedPermissionCount = 5,
             additionalGrantedPermissionCount = 2,
             grantedGroupLabels = listOf(PERMISSION),
         )
 
-        val (summary, enabled) = summaryLiveData.getOrAwaitValue()!!
+        val (summary, enabled) = summaryRepository.flow.first()
 
         assertThat(summary).isEqualTo("Storage and 2 additional permissions")
         assertThat(enabled).isTrue()
     }
 
     private companion object {
-        const val PACKAGE_NAME = "packageName"
+        const val PACKAGE_NAME = "package.name"
         const val PERMISSION = "Storage"
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppRestoreButtonTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppRestoreButtonTest.kt
new file mode 100644
index 0000000..9d30521
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/AppRestoreButtonTest.kt
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.pm.ApplicationInfo
+import android.content.pm.PackageInstaller
+import android.content.pm.PackageManager
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.outlined.CloudDownload
+import androidx.compose.ui.test.junit4.createComposeRule
+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.settingslib.spa.widget.button.ActionButton
+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.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class AppRestoreButtonTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {}
+
+    private val packageInfoPresenter = mock<PackageInfoPresenter>()
+
+    private val userPackageManager = mock<PackageManager>()
+
+    private val packageInstaller = mock<PackageInstaller>()
+
+    private lateinit var appRestoreButton: AppRestoreButton
+
+    @Before
+    fun setUp() {
+        whenever(packageInfoPresenter.context).thenReturn(context)
+        whenever(packageInfoPresenter.userPackageManager).thenReturn(userPackageManager)
+        whenever(userPackageManager.packageInstaller).thenReturn(packageInstaller)
+        whenever(packageInfoPresenter.packageName).thenReturn(PACKAGE_NAME)
+        appRestoreButton = AppRestoreButton(packageInfoPresenter)
+    }
+
+    @Test
+    fun appRestoreButton_whenIsNotArchived_isDisabled() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = false
+        }
+
+        val actionButton = setContent(app)
+
+        assertThat(actionButton.enabled).isFalse()
+    }
+
+    @Test
+    fun appRestoreButton_whenIsArchived_isEnabled() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = true
+        }
+
+        val actionButton = setContent(app)
+
+        assertThat(actionButton.enabled).isTrue()
+    }
+
+    @Test
+    fun appRestoreButton_displaysRightTextAndIcon() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = false
+        }
+
+        val actionButton = setContent(app)
+
+        assertThat(actionButton.text).isEqualTo(context.getString(R.string.restore))
+        assertThat(actionButton.imageVector).isEqualTo(Icons.Outlined.CloudDownload)
+    }
+
+    @Test
+    @UiThreadTest
+    fun appRestoreButton_clicked() {
+        val app = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            isArchived = true
+        }
+
+        val actionButton = setContent(app)
+        actionButton.onClick()
+
+        verify(packageInstaller).requestUnarchive(
+            eq(PACKAGE_NAME),
+            any()
+        )
+    }
+
+    private fun setContent(app: ApplicationInfo): ActionButton {
+        lateinit var actionButton: ActionButton
+        composeTestRule.setContent {
+            actionButton = appRestoreButton.getActionButton(app)
+        }
+        return actionButton
+    }
+
+    private companion object {
+        const val PACKAGE_NAME = "package.name"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreferenceTest.kt
index 6acdcf5..cc2c1e1 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appinfo/HibernationSwitchPreferenceTest.kt
@@ -24,8 +24,8 @@
 import android.apphibernation.AppHibernationManager
 import android.content.Context
 import android.content.pm.ApplicationInfo
+import android.content.pm.Flags
 import android.os.Build
-import android.os.UserHandle
 import android.permission.PermissionControllerManager
 import android.permission.PermissionControllerManager.HIBERNATION_ELIGIBILITY_ELIGIBLE
 import android.permission.PermissionControllerManager.HIBERNATION_ELIGIBILITY_EXEMPT_BY_SYSTEM
@@ -63,7 +63,6 @@
 import org.mockito.Mockito.anyBoolean
 import org.mockito.Mockito.anyString
 import org.mockito.Mockito.doAnswer
-import org.mockito.Mockito.doReturn
 import org.mockito.Mockito.eq
 import org.mockito.Mockito.never
 import org.mockito.Mockito.verify
@@ -71,6 +70,7 @@
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoRule
 import java.util.function.IntConsumer
+import kotlinx.coroutines.flow.MutableStateFlow
 import org.mockito.Mockito.`when` as whenever
 
 @RunWith(AndroidJUnit4::class)
@@ -100,6 +100,8 @@
     private val hibernationTargetsPreSConfig =
         TestDeviceConfig(NAMESPACE_APP_HIBERNATION, PROPERTY_HIBERNATION_TARGETS_PRE_S_APPS)
 
+    private val isHibernationSwitchEnabledStateFlow = MutableStateFlow(true)
+
     @Before
     fun setUp() {
         hibernationEnabledConfig.override(true)
@@ -147,12 +149,20 @@
 
         setContent()
 
-        composeTestRule.onNodeWithText(context.getString(R.string.unused_apps_switch))
+        val text = if (isArchivingEnabled()) {
+            context.getString(R.string.unused_apps_switch_v2)
+        } else {
+            context.getString(R.string.unused_apps_switch)
+        }
+        composeTestRule.onNodeWithText(text)
             .assertIsDisplayed()
             .assertIsNotEnabled()
             .assertIsOff()
     }
 
+    private fun isArchivingEnabled() =
+            Flags.archiving() || "true" == System.getProperty("pm.archiving.enabled")
+
     @Test
     fun `An app targets Q with ops mode default when hibernation targets pre S - not exempted`() {
         mockOpsMode(MODE_DEFAULT)
@@ -227,7 +237,7 @@
     private fun setContent(app: ApplicationInfo = TARGET_R_APP) {
         composeTestRule.setContent {
             CompositionLocalProvider(LocalContext provides context) {
-                HibernationSwitchPreference(app)
+                HibernationSwitchPreference(app, isHibernationSwitchEnabledStateFlow)
             }
         }
     }
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 3bfa90e..5dd66e8 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,7 +20,9 @@
 import android.app.settings.SettingsEnums
 import android.content.Context
 import android.content.Intent
+import android.content.pm.PackageInfo
 import android.content.pm.PackageManager
+import android.net.Uri
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.testutils.FakeFeatureFactory
@@ -28,93 +30,120 @@
 import com.android.settingslib.spaprivileged.framework.common.activityManager
 import com.android.settingslib.spaprivileged.model.app.IPackageManagers
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
-import kotlinx.coroutines.coroutineScope
-import kotlinx.coroutines.test.runTest
-import org.junit.Before
-import org.junit.Rule
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.runBlocking
+import kotlinx.coroutines.test.TestScope
 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.Spy
-import org.mockito.junit.MockitoJUnit
-import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
+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.verify
+import org.mockito.kotlin.whenever
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @RunWith(AndroidJUnit4::class)
 class PackageInfoPresenterTest {
-    @get:Rule
-    val mockito: MockitoRule = MockitoJUnit.rule()
 
-    @Spy
-    private val context: Context = ApplicationProvider.getApplicationContext()
+    private val mockPackageManager = mock<PackageManager>()
 
-    @Mock
-    private lateinit var packageManager: PackageManager
+    private val mockActivityManager = mock<ActivityManager>()
 
-    @Mock
-    private lateinit var activityManager: ActivityManager
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn mockPackageManager
+        on { activityManager } doReturn mockActivityManager
+        doNothing().whenever(mock).startActivityAsUser(any(), any())
+        mock.mockAsUser()
+    }
 
-    @Mock
-    private lateinit var packageManagers: IPackageManagers
+    private val packageManagers = mock<IPackageManagers>()
 
     private val fakeFeatureFactory = FakeFeatureFactory()
     private val metricsFeatureProvider = fakeFeatureFactory.metricsFeatureProvider
 
-    @Before
-    fun setUp() {
-        context.mockAsUser()
-        whenever(context.packageManager).thenReturn(packageManager)
-        whenever(context.activityManager).thenReturn(activityManager)
+    private val packageInfoPresenter =
+        PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, TestScope(), packageManagers)
+
+    @Test
+    fun isInterestedAppChange_packageChanged_isInterested() {
+        val intent = Intent(Intent.ACTION_PACKAGE_CHANGED).apply {
+            data = Uri.parse("package:$PACKAGE_NAME")
+        }
+
+        val isInterestedAppChange = packageInfoPresenter.isInterestedAppChange(intent)
+
+        assertThat(isInterestedAppChange).isTrue()
     }
 
     @Test
-    fun enable() = runTest {
-        coroutineScope {
-            val packageInfoPresenter =
-                PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
-
-            packageInfoPresenter.enable()
+    fun isInterestedAppChange_fullyRemoved_notInterested() {
+        val intent = Intent(Intent.ACTION_PACKAGE_REMOVED).apply {
+            data = Uri.parse("package:$PACKAGE_NAME")
+            putExtra(Intent.EXTRA_DATA_REMOVED, true)
         }
 
+        val isInterestedAppChange = packageInfoPresenter.isInterestedAppChange(intent)
+
+        assertThat(isInterestedAppChange).isFalse()
+    }
+
+    @Test
+    fun isInterestedAppChange_removedBeforeReplacing_notInterested() {
+        val intent = Intent(Intent.ACTION_PACKAGE_REMOVED).apply {
+            data = Uri.parse("package:$PACKAGE_NAME")
+            putExtra(Intent.EXTRA_REPLACING, true)
+        }
+
+        val isInterestedAppChange = packageInfoPresenter.isInterestedAppChange(intent)
+
+        assertThat(isInterestedAppChange).isFalse()
+    }
+
+    @Test
+    fun isInterestedAppChange_archived_interested() {
+        val intent = Intent(Intent.ACTION_PACKAGE_REMOVED).apply {
+            data = Uri.parse("package:$PACKAGE_NAME")
+            putExtra(Intent.EXTRA_ARCHIVAL, true)
+        }
+
+        val isInterestedAppChange = packageInfoPresenter.isInterestedAppChange(intent)
+
+        assertThat(isInterestedAppChange).isTrue()
+    }
+
+    @Test
+    fun enable() = runBlocking {
+        packageInfoPresenter.enable()
+        delay(100)
+
         verifyAction(SettingsEnums.ACTION_SETTINGS_ENABLE_APP)
-        verify(packageManager).setApplicationEnabledSetting(
+        verify(mockPackageManager).setApplicationEnabledSetting(
             PACKAGE_NAME, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, 0
         )
     }
 
     @Test
-    fun disable() = runTest {
-        coroutineScope {
-            val packageInfoPresenter =
-                PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
-
-            packageInfoPresenter.disable()
-        }
+    fun disable() = runBlocking {
+        packageInfoPresenter.disable()
+        delay(100)
 
         verifyAction(SettingsEnums.ACTION_SETTINGS_DISABLE_APP)
-        verify(packageManager).setApplicationEnabledSetting(
+        verify(mockPackageManager).setApplicationEnabledSetting(
             PACKAGE_NAME, PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER, 0
         )
     }
 
     @Test
-    fun startUninstallActivity() = runTest {
-        doNothing().`when`(context).startActivityAsUser(any(), any())
-        val packageInfoPresenter =
-            PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
-
+    fun startUninstallActivity() = runBlocking {
         packageInfoPresenter.startUninstallActivity()
 
         verifyAction(SettingsEnums.ACTION_SETTINGS_UNINSTALL_APP)
-        val intentCaptor = ArgumentCaptor.forClass(Intent::class.java)
-        verify(context).startActivityAsUser(intentCaptor.capture(), any())
-        with(intentCaptor.value) {
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivityAsUser(capture(), any())
+        }.firstValue
+        with(intent) {
             assertThat(action).isEqualTo(Intent.ACTION_UNINSTALL_PACKAGE)
             assertThat(data?.schemeSpecificPart).isEqualTo(PACKAGE_NAME)
             assertThat(getBooleanExtra(Intent.EXTRA_UNINSTALL_ALL_USERS, true)).isEqualTo(false)
@@ -122,36 +151,25 @@
     }
 
     @Test
-    fun clearInstantApp() = runTest {
-        coroutineScope {
-            val packageInfoPresenter =
-                PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
-
-            packageInfoPresenter.clearInstantApp()
-        }
+    fun clearInstantApp() = runBlocking {
+        packageInfoPresenter.clearInstantApp()
+        delay(100)
 
         verifyAction(SettingsEnums.ACTION_SETTINGS_CLEAR_INSTANT_APP)
-        verify(packageManager).deletePackageAsUser(PACKAGE_NAME, null, 0, USER_ID)
+        verify(mockPackageManager).deletePackageAsUser(PACKAGE_NAME, null, 0, USER_ID)
     }
 
     @Test
-    fun forceStop() = runTest {
-        coroutineScope {
-            val packageInfoPresenter =
-                PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
-
-            packageInfoPresenter.forceStop()
-        }
+    fun forceStop() = runBlocking {
+        packageInfoPresenter.forceStop()
+        delay(100)
 
         verifyAction(SettingsEnums.ACTION_APP_FORCE_STOP)
-        verify(activityManager).forceStopPackageAsUser(PACKAGE_NAME, USER_ID)
+        verify(mockActivityManager).forceStopPackageAsUser(PACKAGE_NAME, USER_ID)
     }
 
     @Test
-    fun logAction() = runTest {
-        val packageInfoPresenter =
-            PackageInfoPresenter(context, PACKAGE_NAME, USER_ID, this, packageManagers)
-
+    fun logAction() = runBlocking {
         packageInfoPresenter.logAction(123)
 
         verifyAction(123)
@@ -164,5 +182,6 @@
     private companion object {
         const val PACKAGE_NAME = "package.name"
         const val USER_ID = 0
+        val PACKAGE_INFO = PackageInfo()
     }
 }
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 b3e29af..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,12 +29,9 @@
 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.any
 import com.android.settingslib.spaprivileged.template.app.AppListItemModel
-import com.google.common.truth.Truth
-import kotlinx.coroutines.ExperimentalCoroutinesApi
+import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
@@ -42,12 +39,13 @@
 import org.junit.Rule
 import org.junit.Test
 import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.ArgumentMatchers.eq
 import org.mockito.Mock
-import org.mockito.Mockito
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.whenever
 
 @RunWith(AndroidJUnit4::class)
 class BackgroundInstalledAppsPageProviderTest {
@@ -68,26 +66,25 @@
     @Mock
     private lateinit var mockBackgroundInstallControlService: IBackgroundInstallControlService
 
-    private var packageInfoFlagsCaptor =
-        ArgumentCaptor.forClass(PackageManager.PackageInfoFlags::class.java)
+    private var packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
 
     private val fakeNavControllerWrapper = FakeNavControllerWrapper()
 
     @Before
     fun setup() {
-        Mockito.`when`(mockContext.packageManager).thenReturn(mockPackageManager)
+        whenever(mockContext.packageManager).thenReturn(mockPackageManager)
     }
     @Test
     fun allAppListPageProvider_name() {
-        Truth.assertThat(BackgroundInstalledAppsPageProvider.name)
+        assertThat(BackgroundInstalledAppsPageProvider.name)
             .isEqualTo(EXPECTED_PROVIDER_NAME)
     }
 
     @Test
     fun injectEntry_title() {
-        Mockito.`when`(mockBackgroundInstallControlService
-            .getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
+        whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
             .thenReturn(ParceledListSlice(listOf()))
+
         setInjectEntry(false)
 
         composeTestRule.onNodeWithText(
@@ -104,9 +101,9 @@
 
     @Test
     fun injectEntry_summary() {
-        Mockito.`when`(mockBackgroundInstallControlService
-            .getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
+        whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
             .thenReturn(ParceledListSlice(listOf()))
+
         setInjectEntry(false)
 
         composeTestRule.onNodeWithText("0 apps").assertIsDisplayed()
@@ -121,15 +118,14 @@
 
     @Test
     fun injectEntry_onClick_navigate() {
-        Mockito.`when`(mockBackgroundInstallControlService
-            .getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
+        whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
             .thenReturn(ParceledListSlice(listOf()))
         setInjectEntry(false)
 
         composeTestRule.onNodeWithText(
             context.getString(R.string.background_install_title)).performClick()
 
-        Truth.assertThat(fakeNavControllerWrapper.navigateCalledWith)
+        assertThat(fakeNavControllerWrapper.navigateCalledWith)
             .isEqualTo(EXPECTED_PROVIDER_NAME)
     }
 
@@ -167,11 +163,10 @@
 
         composeTestRule.onNodeWithText(TEST_LABEL).performClick()
 
-        Truth.assertThat(fakeNavControllerWrapper.navigateCalledWith)
+        assertThat(fakeNavControllerWrapper.navigateCalledWith)
             .isEqualTo("AppInfoSettings/package.name/0")
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun backgroundInstalledAppsWithGroupingListModel_getGroupTitleOne() = runTest {
         val listModel = BackgroundInstalledAppsWithGroupingListModel(context)
@@ -183,10 +178,9 @@
                     System.currentTimeMillis()
                 ))
 
-        Truth.assertThat(actualGroupTitle).isEqualTo("Apps installed in the last 6 months")
+        assertThat(actualGroupTitle).isEqualTo("Apps installed in the last 6 months")
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun backgroundInstalledAppsWithGroupingListModel_getGroupTitleTwo() = runTest {
         val listModel = BackgroundInstalledAppsWithGroupingListModel(context)
@@ -198,14 +192,13 @@
                     0L
         ))
 
-        Truth.assertThat(actualGroupTitle).isEqualTo("Apps installed more than 6 months ago")
+        assertThat(actualGroupTitle).isEqualTo("Apps installed more than 6 months ago")
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun backgroundInstalledAppsWithGroupingListModel_transform() = runTest {
         val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
-        Mockito.`when`(mockPackageManager.getPackageInfoAsUser(
+        whenever(mockPackageManager.getPackageInfoAsUser(
             eq(TEST_PACKAGE_NAME),
             packageInfoFlagsCaptor.capture(),
             eq(TEST_USER_ID))
@@ -215,17 +208,16 @@
 
         val recordList = recordListFlow.first()
 
-        Truth.assertThat(recordList).hasSize(1)
-        Truth.assertThat(recordList[0].app).isSameInstanceAs(APP)
-        Truth.assertThat(packageInfoFlagsCaptor.value.value).isEqualTo(EXPECTED_PACKAGE_INFO_FLAG)
+        assertThat(recordList).hasSize(1)
+        assertThat(recordList[0].app).isSameInstanceAs(APP)
+        assertThat(packageInfoFlagsCaptor.firstValue.value).isEqualTo(EXPECTED_PACKAGE_INFO_FLAG)
     }
 
-    @OptIn(ExperimentalCoroutinesApi::class)
     @Test
     fun backgroundInstalledAppsWithGroupingListModel_filter() = runTest {
         val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
         listModel.setBackgroundInstallControlService(mockBackgroundInstallControlService)
-        Mockito.`when`(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
+        whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
             PackageManager.MATCH_ALL.toLong(),
             TEST_USER_ID
         )).thenReturn(ParceledListSlice(listOf(PACKAGE_INFO)))
@@ -236,10 +228,9 @@
             flowOf(listOf(APP_RECORD_WITH_PACKAGE_MATCH, APP_RECORD_WITHOUT_PACKAGE_MATCH))
         )
 
-
         val recordList = recordListFlow.first()
-        Truth.assertThat(recordList).hasSize(1)
-        Truth.assertThat(recordList[0]).isSameInstanceAs(APP_RECORD_WITH_PACKAGE_MATCH)
+        assertThat(recordList).hasSize(1)
+        assertThat(recordList[0]).isSameInstanceAs(APP_RECORD_WITH_PACKAGE_MATCH)
     }
 
     private fun setItemContent() {
@@ -252,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/battery/BatteryOptimizationModeAppListPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProviderTest.kt
new file mode 100644
index 0000000..da1e94c
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProviderTest.kt
@@ -0,0 +1,295 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.app
+
+import android.content.Context
+import android.content.Intent
+import android.content.pm.ApplicationInfo
+import android.content.pm.PackageManager
+import android.graphics.drawable.Drawable
+import androidx.compose.runtime.SideEffect
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.DisplaySettings
+import com.android.settings.R
+import com.android.settings.SettingsActivity
+import com.android.settings.fuelgauge.AdvancedPowerUsageDetail
+import com.android.settings.spa.app.battery.BatteryOptimizationModeAppList
+import com.android.settings.spa.app.battery.BatteryOptimizationModeAppListModel
+import com.android.settings.spa.app.battery.BatteryOptimizationModeAppListPageProvider
+import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
+import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
+import com.android.settingslib.spaprivileged.framework.compose.getPlaceholder
+import com.android.settingslib.spaprivileged.template.app.AppListInput
+import com.android.settingslib.spaprivileged.template.app.AppListItemModel
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.test.runTest
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+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
+
+@RunWith(AndroidJUnit4::class)
+class BatteryOptimizationModeAppListPageProviderTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    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 batteryOptimizationModeAppListPageProvider_name() {
+        assertThat(BatteryOptimizationModeAppListPageProvider.name)
+            .isEqualTo("BatteryOptimizationModeAppList")
+    }
+
+    @Test
+    fun injectEntry_title() {
+        setInjectEntry()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.app_battery_usage_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun injectEntry_onClick_navigate() {
+        setInjectEntry()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.app_battery_usage_title))
+            .performClick()
+
+        assertThat(fakeNavControllerWrapper.navigateCalledWith)
+            .isEqualTo("BatteryOptimizationModeAppList")
+    }
+
+    @Test
+    fun title_displayed() {
+        composeTestRule.setContent {
+            BatteryOptimizationModeAppList {}
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.app_battery_usage_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun showInstantApps_isFalse() {
+        val input = getAppListInput()
+
+        assertThat(input.config.showInstantApps).isFalse()
+    }
+
+    @Test
+    fun item_labelDisplayed() {
+        setItemContent()
+
+        composeTestRule.onNodeWithText(LABEL).assertIsDisplayed()
+    }
+
+    @Test
+    fun item_summaryDisplayed() {
+        setItemContent()
+
+        composeTestRule.onNodeWithText(SUMMARY).assertIsDisplayed()
+    }
+
+    @Test
+    fun item_onClick_navigate() {
+        setItemContent()
+        doNothing().whenever(context).startActivity(any())
+
+        composeTestRule.onNodeWithText(LABEL).performClick()
+
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivity(capture())
+        }.firstValue
+
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))!!
+            .isEqualTo(AdvancedPowerUsageDetail::class.java.name)
+        val arguments = intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)!!
+        assertThat(arguments.getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME))
+            .isEqualTo(PACKAGE_NAME)
+    }
+
+    @Test
+    fun BatteryOptimizationModeAppListModel_transform() = runTest {
+        val listModel = BatteryOptimizationModeAppListModel(context)
+
+        val recordListFlow = listModel.transform(flowOf(USER_ID), flowOf(listOf(APP)))
+
+        val recordList = recordListFlow.firstWithTimeoutOrNull()!!
+        assertThat(recordList).hasSize(1)
+        assertThat(recordList[0].app).isSameInstanceAs(APP)
+    }
+
+    @Test
+    fun listModelGetSummary_regular() {
+        val listModel = BatteryOptimizationModeAppListModel(context)
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary = listModel.getSummary(option = 0, record = AppRecordWithSize(app = APP))
+        }
+
+        assertThat(summary()).isEmpty()
+    }
+
+    @Test
+    fun listModelGetSummary_disabled() {
+        val listModel = BatteryOptimizationModeAppListModel(context)
+        val disabledApp = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
+            enabled = false
+        }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary =
+                listModel.getSummary(option = 0, record = AppRecordWithSize(app = disabledApp))
+        }
+
+        assertThat(summary())
+            .isEqualTo(context.getString(com.android.settingslib.R.string.disabled))
+    }
+
+    @Test
+    fun listModelGetSummary_notInstalled() {
+        val listModel = BatteryOptimizationModeAppListModel(context)
+        val notInstalledApp = ApplicationInfo().apply {
+            packageName = PACKAGE_NAME
+        }
+
+        lateinit var summary: () -> String
+        composeTestRule.setContent {
+            summary =
+                listModel.getSummary(option = 0, record = AppRecordWithSize(app = notInstalledApp))
+        }
+
+        assertThat(summary()).isEqualTo(context.getString(R.string.not_installed))
+    }
+
+    @Test
+    fun batteryOptimizationModeAppListModel_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(BatteryOptimizationModeAppListModel(context)) {
+                    AppListItemModel(
+                        record = AppRecordWithSize(app = app),
+                        label = LABEL,
+                        summary = { SUMMARY },
+                    ).AppItem()
+                }
+            }
+        }
+
+        composeTestRule.onNodeWithText(LABEL).assertIsDisplayed()
+    }
+
+    @Test
+    fun batteryOptimizationModeAppListModel_NoStorageSummary() {
+        val listModel = BatteryOptimizationModeAppListModel(context)
+        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()).isEmpty()
+    }
+
+    private fun setInjectEntry() {
+        composeTestRule.setContent {
+            fakeNavControllerWrapper.Wrapper {
+                BatteryOptimizationModeAppListPageProvider.buildInjectEntry().build().UiLayout()
+            }
+        }
+    }
+
+    private fun getAppListInput(): AppListInput<AppRecordWithSize> {
+        lateinit var input: AppListInput<AppRecordWithSize>
+        composeTestRule.setContent {
+            BatteryOptimizationModeAppList {
+                SideEffect {
+                    input = this
+                }
+            }
+        }
+        return input
+    }
+
+    private fun setItemContent() {
+        composeTestRule.setContent {
+            fakeNavControllerWrapper.Wrapper {
+                with(BatteryOptimizationModeAppListModel(context)) {
+                    AppListItemModel(
+                        record = AppRecordWithSize(app = APP),
+                        label = LABEL,
+                        summary = { SUMMARY },
+                    ).AppItem()
+                }
+            }
+        }
+    }
+
+    private companion object {
+        const val USER_ID = 0
+        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/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/MediaRoutingControlTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/MediaRoutingControlTest.kt
new file mode 100644
index 0000000..990ec5c
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/specialaccess/MediaRoutingControlTest.kt
@@ -0,0 +1,240 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.role.RoleManager
+import android.app.settings.SettingsEnums
+import android.companion.AssociationRequest
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.platform.test.flag.junit.SetFlagsRule
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.media.flags.Flags
+import com.android.settings.R
+import com.android.settings.testutils.FakeFeatureFactory
+import com.android.settingslib.spaprivileged.model.app.IAppOpsController
+import com.android.settingslib.spaprivileged.template.app.AppOpPermissionRecord
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.MutableStateFlow
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito.verify
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
+
+@RunWith(AndroidJUnit4::class)
+class MediaRoutingControlTest {
+    @get:Rule
+    val mockito: MockitoRule = MockitoJUnit.rule()
+
+    @get:Rule val setFlagsRule: SetFlagsRule = SetFlagsRule();
+
+    @Spy
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    private lateinit var listModel: MediaRoutingControlAppsListModel
+
+    @Mock
+    private lateinit var mockRoleManager: RoleManager
+
+    private val fakeFeatureFactory = FakeFeatureFactory()
+    private val metricsFeatureProvider = fakeFeatureFactory.metricsFeatureProvider
+
+    @Before
+    fun setUp() {
+        whenever(context.getSystemService(RoleManager::class.java))
+                .thenReturn(mockRoleManager)
+        listModel = MediaRoutingControlAppsListModel(context)
+    }
+
+    @Test
+    fun modelResourceIdAndProperties() {
+        assertThat(listModel.pageTitleResId).isEqualTo(R.string.media_routing_control_title)
+        assertThat(listModel.switchTitleResId).isEqualTo(R.string.allow_media_routing_control)
+        assertThat(listModel.footerResId).isEqualTo(R.string.allow_media_routing_description)
+        assertThat(listModel.appOp).isEqualTo(AppOpsManager.OP_MEDIA_ROUTING_CONTROL)
+        assertThat(listModel.permission).isEqualTo(Manifest.permission.MEDIA_ROUTING_CONTROL)
+        assertThat(listModel.setModeByUid).isTrue()
+    }
+
+    @Test
+    fun setAllowed_callWithNewStatusAsTrue_shouldChangeAppControllerModeToAllowed() {
+        val fakeAppOpController = FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController = fakeAppOpController,
+                )
+
+        listModel.setAllowed(permissionRequestedRecord, true)
+
+        assertThat(fakeAppOpController.getMode()).isEqualTo(AppOpsManager.MODE_ALLOWED)
+    }
+
+    @Test
+    fun setAllowed_callWithNewStatusAsTrue_shouldLogPermissionToggleActionAsAllowed() {
+        val fakeAppOpController = FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController = fakeAppOpController,
+                )
+
+        listModel.setAllowed(permissionRequestedRecord, true)
+
+        verify(metricsFeatureProvider)
+                .action(context, SettingsEnums.MEDIA_ROUTING_CONTROL, VALUE_LOGGING_ALLOWED)
+    }
+
+    @Test
+    fun setAllowed_callWithNewStatusAsFalse_shouldChangeAppControllerModeToErrored() {
+        val fakeAppOpController = FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController = fakeAppOpController,
+                )
+
+        listModel.setAllowed(permissionRequestedRecord, false)
+
+        assertThat(fakeAppOpController.getMode()).isEqualTo(AppOpsManager.MODE_ERRORED)
+    }
+
+    @Test
+    fun setAllowed_callWithNewStatusAsFalse_shouldLogPermissionToggleActionAsDenied() {
+        val fakeAppOpController = FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController = fakeAppOpController,
+                )
+
+        listModel.setAllowed(permissionRequestedRecord, false)
+
+        verify(metricsFeatureProvider)
+                .action(context, SettingsEnums.MEDIA_ROUTING_CONTROL, VALUE_LOGGING_DENIED)
+    }
+
+    @Test
+    fun isChangeable_permissionRequestedByAppAndWatchCompanionRoleAssigned_shouldReturnTrue() {
+        setFlagsRule.enableFlags(Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController =
+                            FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT),
+                )
+        whenever(mockRoleManager.getRoleHolders(AssociationRequest.DEVICE_PROFILE_WATCH))
+                .thenReturn(listOf(PACKAGE_NAME))
+
+        val isSpecialAccessChangeable = listModel.isChangeable(permissionRequestedRecord)
+
+        assertThat(isSpecialAccessChangeable).isTrue()
+    }
+
+    @Test
+    fun isChangeable_permissionNotRequestedByAppButWatchCompanionRoleAssigned_shouldReturnFalse() {
+        setFlagsRule.enableFlags(Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
+        val permissionNotRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = false,
+                        hasRequestBroaderPermission = false,
+                        appOpsController =
+                            FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT),
+                )
+        whenever(mockRoleManager.getRoleHolders(AssociationRequest.DEVICE_PROFILE_WATCH))
+                .thenReturn(listOf(PACKAGE_NAME))
+
+        val isSpecialAccessChangeable = listModel.isChangeable(permissionNotRequestedRecord)
+
+        assertThat(isSpecialAccessChangeable).isFalse()
+    }
+
+    @Test
+    fun isChangeable_permissionRequestedByAppButWatchCompanionRoleNotAssigned_shouldReturnFalse() {
+        setFlagsRule.enableFlags(Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController =
+                            FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT),
+                )
+        whenever(mockRoleManager.getRoleHolders(AssociationRequest.DEVICE_PROFILE_WATCH))
+                .thenReturn(listOf("other.package.name"))
+
+        val isSpecialAccessChangeable = listModel.isChangeable(permissionRequestedRecord)
+
+        assertThat(isSpecialAccessChangeable).isFalse()
+    }
+
+    @Test
+    fun isChangeable_withFlagDisabled_shouldReturnFalse() {
+        setFlagsRule.disableFlags(Flags.FLAG_ENABLE_PRIVILEGED_ROUTING_FOR_MEDIA_ROUTING_CONTROL)
+        val permissionRequestedRecord =
+                AppOpPermissionRecord(
+                        app = ApplicationInfo().apply { packageName = PACKAGE_NAME },
+                        hasRequestPermission = true,
+                        hasRequestBroaderPermission = false,
+                        appOpsController =
+                        FakeAppOpsController(fakeMode = AppOpsManager.MODE_DEFAULT),
+                )
+        whenever(mockRoleManager.getRoleHolders(AssociationRequest.DEVICE_PROFILE_WATCH))
+                .thenReturn(listOf(PACKAGE_NAME))
+
+        val isSpecialAccessChangeable = listModel.isChangeable(permissionRequestedRecord)
+
+        assertThat(isSpecialAccessChangeable).isFalse()
+    }
+
+    private class FakeAppOpsController(fakeMode: Int) : IAppOpsController {
+
+        override val mode = MutableStateFlow(fakeMode)
+
+        override fun setAllowed(allowed: Boolean) {
+            mode.value = if (allowed) AppOpsManager.MODE_ALLOWED else AppOpsManager.MODE_ERRORED
+        }
+
+        override fun getMode(): Int = mode.value
+    }
+
+    companion object {
+        const val PACKAGE_NAME = "test.package.name"
+        const val VALUE_LOGGING_ALLOWED = 1
+        const val VALUE_LOGGING_DENIED = 0
+    }
+}
\ 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 fb0fb69..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
@@ -29,7 +29,6 @@
 import com.android.settings.R
 import com.android.settingslib.spaprivileged.model.app.AppOpsController
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
@@ -46,7 +45,6 @@
 import org.mockito.junit.MockitoRule
 import org.mockito.Mockito.`when` as whenever
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @RunWith(AndroidJUnit4::class)
 class PictureInPictureTest {
     @get:Rule
@@ -69,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/app/storage/StorageAppListTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/storage/StorageAppListTest.kt
new file mode 100644
index 0000000..836bf09
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/app/storage/StorageAppListTest.kt
@@ -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.spa.app.storage
+
+import android.content.Context
+import android.content.pm.ApplicationInfo
+import android.icu.text.CollationKey
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spa.testutils.firstWithTimeoutOrNull
+import com.android.settingslib.spaprivileged.model.app.AppEntry
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.test.runTest
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class StorageAppListTest {
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    @Test
+    fun storageAppListPageProvider_apps_name() {
+        assertThat(StorageAppListPageProvider.Apps.name).isEqualTo("StorageAppList")
+    }
+
+    @Test
+    fun storageAppListPageProvider_games_name() {
+        assertThat(StorageAppListPageProvider.Games.name).isEqualTo("GameStorageAppList")
+    }
+
+    @Test
+    fun transform_containsSize() = runTest {
+        val listModel = StorageAppListModel(context, StorageType.Apps)
+        val recordListFlow = listModel.transform(flowOf(0), flowOf(listOf(APP)))
+        val recordList = recordListFlow.firstWithTimeoutOrNull()!!
+        assertThat(recordList).hasSize(1)
+        assertThat(recordList.first().app).isSameInstanceAs(APP)
+        assertThat(recordList.first().size).isEqualTo(0L)
+    }
+
+    @Test
+    fun filter_apps_appWithoutGame() = runTest {
+        val listModel = StorageAppListModel(context, StorageType.Apps)
+        val recordListFlow = listModel.filter(
+            flowOf(0),
+            0,
+            flowOf(
+                listOf(
+                    AppRecordWithSize(APP, 1L),
+                    AppRecordWithSize(APP2, 1L),
+                    AppRecordWithSize(GAME, 1L)
+                )
+            )
+        )
+        val recordList = recordListFlow.firstWithTimeoutOrNull()!!
+        assertThat(recordList).hasSize(2)
+        assertThat(recordList.none { it.app === GAME }).isTrue()
+    }
+
+    @Test
+    fun filter_games_gameWithoutApp() = runTest {
+        val listModel = StorageAppListModel(context, StorageType.Games)
+        val recordListFlow = listModel.filter(
+            flowOf(0),
+            0,
+            flowOf(
+                listOf(
+                    AppRecordWithSize(APP, 1L),
+                    AppRecordWithSize(APP2, 1L),
+                    AppRecordWithSize(GAME, 1L)
+                )
+            )
+        )
+        val recordList = recordListFlow.firstWithTimeoutOrNull()!!
+        assertThat(recordList).hasSize(1)
+        assertThat(recordList.all { it.app === GAME }).isTrue()
+    }
+
+    @Test
+    fun getComparator_sortsByDescendingSize() {
+        val listModel = StorageAppListModel(context, StorageType.Apps)
+        val source = listOf(
+            AppEntry(
+                AppRecordWithSize(app = APP, size = 1L),
+                "app1",
+                CollationKey("first", byteArrayOf(0))
+            ),
+            AppEntry(
+                AppRecordWithSize(app = APP2, size = 3L),
+                "app2",
+                CollationKey("second", byteArrayOf(0))
+            ),
+            AppEntry(
+                AppRecordWithSize(app = APP3, size = 3L),
+                "app3",
+                CollationKey("third", byteArrayOf(0))
+            )
+        )
+
+        val result = source.sortedWith(listModel.getComparator(0))
+
+        assertThat(result[0].record.app).isSameInstanceAs(APP2)
+        assertThat(result[1].record.app).isSameInstanceAs(APP3)
+        assertThat(result[2].record.app).isSameInstanceAs(APP)
+    }
+
+    private companion object {
+        const val APP_PACKAGE_NAME = "app.package.name"
+        const val APP_PACKAGE_NAME2 = "app.package.name2"
+        const val APP_PACKAGE_NAME3 = "app.package.name3"
+        const val GAME_PACKAGE_NAME = "game.package.name"
+        val APP = ApplicationInfo().apply {
+            packageName = APP_PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED
+        }
+        val APP2 = ApplicationInfo().apply {
+            packageName = APP_PACKAGE_NAME2
+            flags = ApplicationInfo.FLAG_INSTALLED
+        }
+        val APP3 = ApplicationInfo().apply {
+            packageName = APP_PACKAGE_NAME3
+            flags = ApplicationInfo.FLAG_INSTALLED
+        }
+        val GAME = ApplicationInfo().apply {
+            packageName = GAME_PACKAGE_NAME
+            flags = ApplicationInfo.FLAG_INSTALLED or ApplicationInfo.FLAG_IS_GAME
+        }
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/spa/core/instrumentation/SpaLogDataTest.kt b/tests/spa_unit/src/com/android/settings/spa/core/instrumentation/SpaLogDataTest.kt
index 19be10e..162f8ea 100644
--- a/tests/spa_unit/src/com/android/settings/spa/core/instrumentation/SpaLogDataTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/core/instrumentation/SpaLogDataTest.kt
@@ -53,7 +53,7 @@
         bundle.putString(LOG_DATA_SESSION_NAME, SESSION_BROWSE)
         val spaLogData = SpaLogData(TEST_PID, LogEvent.PAGE_ENTER, bundle, dataModel)
 
-        assertThat(spaLogData.getSessionType()).isEqualTo(SettingsEnums.BROWSE)
+        assertThat(spaLogData.getSessionType()).isEqualTo(SettingsEnums.SESSION_BROWSE)
     }
 
     @Test
@@ -61,7 +61,7 @@
         bundle.putString(LOG_DATA_SESSION_NAME, SESSION_SEARCH)
         val spaLogData = SpaLogData(TEST_PID, LogEvent.PAGE_ENTER, bundle, dataModel)
 
-        assertThat(spaLogData.getSessionType()).isEqualTo(SettingsEnums.SEARCH)
+        assertThat(spaLogData.getSessionType()).isEqualTo(SettingsEnums.SESSION_SEARCH)
     }
 
     @Test
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 78aca85..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,12 +20,10 @@
 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
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
@@ -41,7 +39,6 @@
 import org.mockito.junit.MockitoRule
 import org.mockito.Mockito.`when` as whenever
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @RunWith(AndroidJUnit4::class)
 class PlatformCompatAppListModelTest {
     @get:Rule
@@ -81,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/network/SimOnboardingLabelSimTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt
new file mode 100644
index 0000000..dace5e9
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingLabelSimTest.kt
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+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
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class SimOnboardingLabelSimTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private var mockSimOnboardingService = mock<SimOnboardingService> {
+        on { targetSubId }.doReturn(-1)
+        on { targetSubInfo }.doReturn(null)
+        on { availableSubInfoList }.doReturn(listOf())
+        on { activeSubInfoList }.doReturn(listOf())
+        on { slotInfoList }.doReturn(listOf())
+        on { uiccCardInfoList }.doReturn(listOf())
+        on { selectedSubInfoList }.doReturn(mutableListOf())
+
+        on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimTexts }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimMobileData }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+    }
+
+    private val nextAction: () -> Unit = mock()
+    private val cancelAction: () -> Unit = mock()
+
+    @Test
+    fun simOnboardingLabelSimImpl_showTitle() {
+        composeTestRule.setContent {
+            SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_label_sim_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingLabelSimImpl_showSubTitle() {
+        composeTestRule.setContent {
+            SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_label_sim_msg))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingLabelSimImpl_clickNextAction_verifyNextAction() {
+        composeTestRule.setContent {
+            SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
+            .performClick()
+
+        verify(nextAction)
+    }
+
+    @Test
+    fun simOnboardingLabelSimImpl_clickCancelAction_verifyCancelAction() {
+        composeTestRule.setContent {
+            SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.cancel))
+            .performClick()
+
+        verify(cancelAction)
+    }
+
+    @Test
+    fun simOnboardingLabelSimImpl_showItem_show3Items() {
+        mockSimOnboardingService.stub {
+            on { targetSubId }.doReturn(SUB_ID_1)
+            on { targetSubInfo }.doReturn(SUB_INFO_1)
+            on { availableSubInfoList }.doReturn(listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_3))
+            on { activeSubInfoList }.doReturn(listOf(SUB_INFO_2, SUB_INFO_3))
+            on { getSelectableSubscriptionInfo() }.doReturn(
+                listOf(
+                    SUB_INFO_1,
+                    SUB_INFO_2,
+                    SUB_INFO_3
+                )
+            )
+            on { getSubscriptionInfoDisplayName(SUB_INFO_1) }.doReturn(DISPLAY_NAME_1)
+            on { getSubscriptionInfoDisplayName(SUB_INFO_2) }.doReturn(DISPLAY_NAME_2)
+            on { getSubscriptionInfoDisplayName(SUB_INFO_3) }.doReturn(DISPLAY_NAME_3)
+        }
+
+        composeTestRule.setContent {
+            SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed()
+        composeTestRule.onNodeWithText(NUMBER_1).assertIsDisplayed()
+        composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed()
+        composeTestRule.onNodeWithText(NUMBER_2).assertIsDisplayed()
+        composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed()
+        composeTestRule.onNodeWithText(NUMBER_3).assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingLabelSimImpl_showDialog_checkTitle() {
+        mockSimOnboardingService.stub {
+            on { targetSubId }.doReturn(SUB_ID_1)
+            on { targetSubInfo }.doReturn(SUB_INFO_1)
+            on { availableSubInfoList }.doReturn(listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_3))
+            on { activeSubInfoList }.doReturn(listOf(SUB_INFO_2, SUB_INFO_3))
+            on { getSelectableSubscriptionInfo() }.doReturn(
+                listOf(
+                    SUB_INFO_1,
+                    SUB_INFO_2,
+                    SUB_INFO_3
+                )
+            )
+            on { getSubscriptionInfoDisplayName(SUB_INFO_1) }.doReturn(DISPLAY_NAME_1)
+            on { getSubscriptionInfoDisplayName(SUB_INFO_2) }.doReturn(DISPLAY_NAME_2)
+            on { getSubscriptionInfoDisplayName(SUB_INFO_3) }.doReturn(DISPLAY_NAME_3)
+        }
+
+        composeTestRule.setContent {
+            SimOnboardingLabelSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+
+        composeTestRule.onNodeWithText(DISPLAY_NAME_1).performClick()
+
+        composeTestRule.onNodeWithText(
+            context.getString(R.string.sim_onboarding_label_sim_dialog_title)
+        )
+            .assertIsDisplayed()
+    }
+
+    private companion object {
+        const val SUB_ID_1 = 1
+        const val SUB_ID_2 = 2
+        const val SUB_ID_3 = 3
+        const val DISPLAY_NAME_1 = "Sub 1"
+        const val DISPLAY_NAME_2 = "Sub 2"
+        const val DISPLAY_NAME_3 = "Sub 3"
+        const val NUMBER_1 = "000000001"
+        const val NUMBER_2 = "000000002"
+        const val NUMBER_3 = "000000003"
+        const val PRIMARY_SIM_ASK_EVERY_TIME = -1
+
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_1)
+            setDisplayName(DISPLAY_NAME_1)
+            setNumber(NUMBER_1)
+        }.build()
+
+        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_2)
+            setDisplayName(DISPLAY_NAME_2)
+            setNumber(NUMBER_2)
+        }.build()
+
+        val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_3)
+            setDisplayName(DISPLAY_NAME_3)
+            setNumber(NUMBER_3)
+        }.build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt
new file mode 100644
index 0000000..35f1968
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPageProviderTest.kt
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import android.content.Context
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.navigation.compose.rememberNavController
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+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 SimOnboardingPageProviderTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private var mockSimOnboardingService = mock<SimOnboardingService> {
+        on { targetSubId }.doReturn(SUB_ID)
+        on { targetSubInfo }.doReturn(null)
+        on { availableSubInfoList }.doReturn(listOf())
+        on { activeSubInfoList }.doReturn(listOf())
+        on { slotInfoList }.doReturn(listOf())
+        on { uiccCardInfoList }.doReturn(listOf())
+        on { selectedSubInfoList }.doReturn(mutableListOf())
+
+        on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimTexts }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimMobileData }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+    }
+
+    @Test
+    fun simOnboardingPageProvider_name() {
+        assertThat(SimOnboardingPageProvider.name).isEqualTo("SimOnboardingPageProvider")
+    }
+
+    @Test
+    fun simOnboardingPage_labelSim() {
+        composeTestRule.setContent {
+            val navHostController = rememberNavController()
+            PageImpl(mockSimOnboardingService, navHostController)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_label_sim_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingPage_nextAction_fromLabelSimToPrimarySim() {
+        mockSimOnboardingService.stub {
+            on { isMultipleEnabledProfilesSupported }.thenReturn(false)
+        }
+        composeTestRule.setContent {
+            val navHostController = rememberNavController()
+            PageImpl(mockSimOnboardingService, navHostController)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
+            .performClick()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_primary_sim_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingPage_nextAction_fromLabelSimToSelectSim() {
+        mockSimOnboardingService.stub {
+            on { isMultipleEnabledProfilesSupported }.thenReturn(true)
+        }
+
+        composeTestRule.setContent {
+            val navHostController = rememberNavController()
+            PageImpl(mockSimOnboardingService, navHostController)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
+            .performClick()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_select_sim_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingPage_nextAction_fromSelectSimToPrimarySim() {
+        composeTestRule.setContent {
+            val navHostController = rememberNavController()
+            PageImpl(mockSimOnboardingService, navHostController)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
+            .performClick()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_primary_sim_title))
+            .assertIsDisplayed()
+    }
+
+    private companion object {
+        const val SUB_ID = 1
+        const val PRIMARY_SIM_ASK_EVERY_TIME = -1
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt
new file mode 100644
index 0000000..9cb8909
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingPrimarySimTest.kt
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+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
+import org.mockito.kotlin.verify
+
+
+@RunWith(AndroidJUnit4::class)
+class SimOnboardingPrimarySimTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private var mockSimOnboardingService = mock<SimOnboardingService> {
+        on { targetSubId }.doReturn(-1)
+        on { targetSubInfo }.doReturn(null)
+        on { availableSubInfoList }.doReturn(listOf())
+        on { activeSubInfoList }.doReturn(listOf())
+        on { slotInfoList }.doReturn(listOf())
+        on { uiccCardInfoList }.doReturn(listOf())
+        on { selectedSubInfoList }.doReturn(mutableListOf())
+
+        on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimTexts }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimMobileData }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+    }
+
+    private val nextAction: () -> Unit = mock()
+    private val cancelAction: () -> Unit = mock()
+
+    @Test
+    fun simOnboardingPrimarySimImpl_showTitle() {
+        composeTestRule.setContent {
+            SimOnboardingPrimarySimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_primary_sim_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingPrimarySimImpl_showSubTitle() {
+        composeTestRule.setContent {
+            SimOnboardingPrimarySimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_primary_sim_msg))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingPrimarySimImpl_clickCancelAction_verifyCancelAction() {
+        composeTestRule.setContent {
+            SimOnboardingPrimarySimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.cancel))
+            .performClick()
+
+        verify(cancelAction)
+    }
+
+    private companion object {
+        const val SUB_ID_1 = 1
+        const val SUB_ID_2 = 2
+        const val SUB_ID_3 = 3
+        const val DISPLAY_NAME_1 = "Sub 1"
+        const val DISPLAY_NAME_2 = "Sub 2"
+        const val DISPLAY_NAME_3 = "Sub 3"
+        const val NUMBER_1 = "000000001"
+        const val NUMBER_2 = "000000002"
+        const val NUMBER_3 = "000000003"
+        const val PRIMARY_SIM_ASK_EVERY_TIME = -1
+
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_1)
+            setDisplayName(DISPLAY_NAME_1)
+            setNumber(NUMBER_1)
+        }.build()
+
+        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_2)
+            setDisplayName(DISPLAY_NAME_2)
+            setNumber(NUMBER_2)
+        }.build()
+
+        val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_3)
+            setDisplayName(DISPLAY_NAME_3)
+            setNumber(NUMBER_3)
+        }.build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt
new file mode 100644
index 0000000..5d7465f
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/spa/network/SimOnboardingSelectSimTest.kt
@@ -0,0 +1,165 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.spa.network
+
+import android.content.Context
+import android.telephony.SubscriptionInfo
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.network.SimOnboardingService
+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
+import org.mockito.kotlin.verify
+
+@RunWith(AndroidJUnit4::class)
+class SimOnboardingSelectSimTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val context: Context = ApplicationProvider.getApplicationContext()
+    private var mockSimOnboardingService = mock<SimOnboardingService> {
+        on { targetSubId }.doReturn(-1)
+        on { targetSubInfo }.doReturn(null)
+        on { availableSubInfoList }.doReturn(listOf())
+        on { activeSubInfoList }.doReturn(listOf())
+        on { slotInfoList }.doReturn(listOf())
+        on { uiccCardInfoList }.doReturn(listOf())
+        on { selectedSubInfoList }.doReturn(mutableListOf())
+
+        on { targetPrimarySimCalls }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimTexts }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+        on { targetPrimarySimMobileData }.doReturn(PRIMARY_SIM_ASK_EVERY_TIME)
+    }
+
+    private val nextAction: () -> Unit = mock()
+    private val cancelAction: () -> Unit = mock()
+
+    @Test
+    fun simOnboardingSelectSimImpl_showTitle() {
+        composeTestRule.setContent {
+            SimOnboardingSelectSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_select_sim_title))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingSelectSimImpl_showSubTitle() {
+        composeTestRule.setContent {
+            SimOnboardingSelectSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_select_sim_msg))
+            .assertIsDisplayed()
+    }
+
+    @Test
+    fun simOnboardingSelectSimImpl_clickNextAction_verifyNextAction() {
+        composeTestRule.setContent {
+            SimOnboardingSelectSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.sim_onboarding_next))
+            .performClick()
+
+        verify(nextAction)
+    }
+
+    @Test
+    fun simOnboardingSelectSimImpl_clickCancelAction_verifyCancelAction() {
+        composeTestRule.setContent {
+            SimOnboardingSelectSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(context.getString(R.string.cancel))
+            .performClick()
+
+        verify(cancelAction)
+    }
+
+    @Test
+    fun simOnboardingSelectSimImpl_showItem_show3Items() {
+        mockSimOnboardingService.stub {
+            on { targetSubId }.doReturn(SUB_ID_1)
+            on { targetSubInfo }.doReturn(SUB_INFO_1)
+            on { availableSubInfoList }.doReturn(listOf(SUB_INFO_1, SUB_INFO_2, SUB_INFO_3))
+            on { activeSubInfoList }.doReturn(listOf(SUB_INFO_2, SUB_INFO_3))
+            on { getSelectableSubscriptionInfo() }.doReturn(
+                listOf(
+                    SUB_INFO_1,
+                    SUB_INFO_2,
+                    SUB_INFO_3
+                )
+            )
+            on { getSubscriptionInfoDisplayName(SUB_INFO_1) }.doReturn(DISPLAY_NAME_1)
+            on { getSubscriptionInfoDisplayName(SUB_INFO_2) }.doReturn(DISPLAY_NAME_2)
+            on { getSubscriptionInfoDisplayName(SUB_INFO_3) }.doReturn(DISPLAY_NAME_3)
+        }
+
+        composeTestRule.setContent {
+            SimOnboardingSelectSimImpl(nextAction, cancelAction, mockSimOnboardingService)
+        }
+
+        composeTestRule.onNodeWithText(DISPLAY_NAME_1).assertIsDisplayed()
+        composeTestRule.onNodeWithText(NUMBER_1).assertIsDisplayed()
+        composeTestRule.onNodeWithText(DISPLAY_NAME_2).assertIsDisplayed()
+        composeTestRule.onNodeWithText(NUMBER_2).assertIsDisplayed()
+        composeTestRule.onNodeWithText(DISPLAY_NAME_3).assertIsDisplayed()
+        composeTestRule.onNodeWithText(NUMBER_3).assertIsDisplayed()
+    }
+
+    private companion object {
+        const val SUB_ID_1 = 1
+        const val SUB_ID_2 = 2
+        const val SUB_ID_3 = 3
+        const val DISPLAY_NAME_1 = "Sub 1"
+        const val DISPLAY_NAME_2 = "Sub 2"
+        const val DISPLAY_NAME_3 = "Sub 3"
+        const val NUMBER_1 = "000000001"
+        const val NUMBER_2 = "000000002"
+        const val NUMBER_3 = "000000003"
+        const val PRIMARY_SIM_ASK_EVERY_TIME = -1
+
+        val SUB_INFO_1: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_1)
+            setDisplayName(DISPLAY_NAME_1)
+            setNumber(NUMBER_1)
+        }.build()
+
+        val SUB_INFO_2: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_2)
+            setDisplayName(DISPLAY_NAME_2)
+            setNumber(NUMBER_2)
+        }.build()
+
+        val SUB_INFO_3: SubscriptionInfo = SubscriptionInfo.Builder().apply {
+            setId(SUB_ID_3)
+            setDisplayName(DISPLAY_NAME_3)
+            setNumber(NUMBER_3)
+        }.build()
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt
index 12fdc23..5dcc671 100644
--- a/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt
@@ -30,11 +30,9 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.settings.R
-import com.android.settingslib.spa.testutils.any
 import com.android.settingslib.spaprivileged.model.app.IPackageManagers
 import com.android.settingslib.spaprivileged.model.app.userId
 import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.first
 import kotlinx.coroutines.flow.flowOf
 import kotlinx.coroutines.test.runTest
@@ -43,13 +41,13 @@
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.Mock
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.verify
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
 
-@OptIn(ExperimentalCoroutinesApi::class)
 @RunWith(AndroidJUnit4::class)
 class AppNotificationRepositoryTest {
     @get:Rule
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..2f52031
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/ClientInitiatedActionRepositoryTest.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.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.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 { getConfigForSubId(any(), any()) } doReturn persistableBundleOf()
+        }
+
+        repository.onSystemUpdate()
+
+        verify(context, never()).sendBroadcast(any())
+    }
+
+    @Test
+    fun onSystemUpdate_enabled() {
+        mockCarrierConfigManager.stub {
+            on { getConfigForSubId(any(), any()) } 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/system/DeveloperOptionsControllerTest.kt b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.kt
new file mode 100644
index 0000000..ad2fbae
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/DeveloperOptionsControllerTest.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.system
+
+import android.content.Context
+import android.content.Intent
+import android.os.UserManager
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.SettingsActivity
+import com.android.settings.core.BasePreferenceController
+import com.android.settings.development.DevelopmentSettingsDashboardFragment
+import com.android.settingslib.spaprivileged.framework.common.userManager
+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.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
+
+@RunWith(AndroidJUnit4::class)
+class DeveloperOptionsControllerTest {
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private val mockUserManager = mock<UserManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { userManager } doReturn mockUserManager
+        doNothing().whenever(mock).startActivity(any())
+    }
+
+    private val controller = DeveloperOptionsController(context, TEST_KEY)
+
+    @Test
+    fun getAvailabilityStatus_isAdminUser_returnAvailable() {
+        mockUserManager.stub {
+            on { isAdminUser } doReturn true
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.AVAILABLE)
+    }
+
+    @Test
+    fun getAvailabilityStatus_notAdminUser_returnDisabledForUser() {
+        mockUserManager.stub {
+            on { isAdminUser } doReturn false
+        }
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(BasePreferenceController.DISABLED_FOR_USER)
+    }
+
+    @Test
+    fun title_isDisplayed() {
+        composeTestRule.setContent {
+            controller.DeveloperOptionsPreference()
+        }
+
+        composeTestRule.onNodeWithText(
+            context.getString(com.android.settingslib.R.string.development_settings_title)
+        ).assertIsDisplayed()
+    }
+
+    @Test
+    fun onClick_launchDevelopmentSettingsDashboardFragment() {
+        composeTestRule.setContent {
+            controller.DeveloperOptionsPreference()
+        }
+
+        composeTestRule.onNodeWithText(
+            context.getString(com.android.settingslib.R.string.development_settings_title)
+        ).performClick()
+
+        val intent = argumentCaptor<Intent> {
+            verify(context).startActivity(capture())
+        }.firstValue
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+            .isEqualTo(DevelopmentSettingsDashboardFragment::class.qualifiedName)
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/system/SystemUpdateManagerExtKtTest.kt b/tests/spa_unit/src/com/android/settings/system/SystemUpdateManagerExtKtTest.kt
new file mode 100644
index 0000000..0ba91df
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/SystemUpdateManagerExtKtTest.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.system
+
+import android.content.Context
+import android.os.Bundle
+import android.os.SystemUpdateManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.test.runTest
+
+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.whenever
+
+@RunWith(AndroidJUnit4::class)
+class SystemUpdateManagerExtKtTest {
+
+    private val mockSystemUpdateManager = mock<SystemUpdateManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { getSystemService(SystemUpdateManager::class.java) } doReturn mockSystemUpdateManager
+    }
+
+    @Test
+    fun getSystemUpdateInfo() = runTest {
+        val bundle = Bundle()
+        whenever(mockSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle)
+
+        val info = context.getSystemUpdateInfo()
+
+        assertThat(info).isSameInstanceAs(bundle)
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.kt
new file mode 100644
index 0000000..17cdf04
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/SystemUpdatePreferenceControllerTest.kt
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.os.Build
+import android.os.Bundle
+import android.os.SystemClock
+import android.os.SystemUpdateManager
+import android.os.UserManager
+import androidx.lifecycle.testing.TestLifecycleOwner
+import androidx.preference.Preference
+import androidx.preference.PreferenceScreen
+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.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.whenever
+
+@RunWith(AndroidJUnit4::class)
+class SystemUpdatePreferenceControllerTest {
+    private val mockUserManager = mock<UserManager>()
+    private val mockSystemUpdateManager = mock<SystemUpdateManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { userManager } doReturn mockUserManager
+        on { getSystemService(SystemUpdateManager::class.java) } doReturn mockSystemUpdateManager
+    }
+
+    private val resources = spy(context.resources) {
+        on { getBoolean(R.bool.config_show_system_update_settings) } doReturn true
+    }
+
+    private val preference = Preference(context).apply { key = KEY }
+    private val preferenceScreen = mock<PreferenceScreen> {
+        onGeneric { findPreference(KEY) } doReturn preference
+    }
+    private val controller = SystemUpdatePreferenceController(context, KEY)
+
+    @Before
+    fun setUp() {
+        whenever(context.resources).thenReturn(resources)
+    }
+
+    @Test
+    fun updateNonIndexable_ifAvailable_shouldNotUpdate() {
+        whenever(mockUserManager.isAdminUser).thenReturn(true)
+        val keys = mutableListOf<String>()
+
+        controller.updateNonIndexableKeys(keys)
+
+        assertThat(keys).isEmpty()
+    }
+
+    @Test
+    fun updateNonIndexable_ifNotAvailable_shouldUpdate() {
+        whenever(mockUserManager.isAdminUser).thenReturn(false)
+        val keys = mutableListOf<String>()
+
+        controller.updateNonIndexableKeys(keys)
+
+        assertThat(keys).containsExactly(KEY)
+    }
+
+    @Test
+    fun displayPrefs_ifVisible_butNotAdminUser_shouldNotDisplay() {
+        whenever(mockUserManager.isAdminUser).thenReturn(false)
+
+        controller.displayPreference(preferenceScreen)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    @Test
+    fun displayPrefs_ifAdminUser_butNotVisible_shouldNotDisplay() {
+        whenever(mockUserManager.isAdminUser).thenReturn(true)
+        whenever(resources.getBoolean(R.bool.config_show_system_update_settings)).thenReturn(false)
+
+        controller.displayPreference(preferenceScreen)
+
+        assertThat(preference.isVisible).isFalse()
+    }
+
+    @Test
+    fun displayPrefs_ifAvailable_shouldDisplay() {
+        whenever(mockUserManager.isAdminUser).thenReturn(true)
+
+        controller.displayPreference(preferenceScreen)
+
+        assertThat(preference.isVisible).isTrue()
+    }
+
+    @Test
+    fun updateState_systemUpdateStatusUnknown_shouldSetToAndroidVersion() {
+        val bundle = Bundle().apply {
+            putInt(SystemUpdateManager.KEY_STATUS, SystemUpdateManager.STATUS_UNKNOWN)
+        }
+        whenever(mockSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle)
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        SystemClock.sleep(100)
+
+        assertThat(preference.summary).isEqualTo(
+            context.getString(
+                R.string.android_version_summary,
+                Build.VERSION.RELEASE_OR_PREVIEW_DISPLAY,
+            )
+        )
+    }
+
+    @Test
+    fun updateState_systemUpdateStatusIdle_shouldSetToAndroidVersion() {
+        val testReleaseName = "ANDROID TEST VERSION"
+        val bundle = Bundle().apply {
+            putInt(SystemUpdateManager.KEY_STATUS, SystemUpdateManager.STATUS_IDLE)
+            putString(SystemUpdateManager.KEY_TITLE, testReleaseName)
+        }
+        whenever(mockSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle)
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        SystemClock.sleep(100)
+
+        assertThat(preference.summary)
+            .isEqualTo(context.getString(R.string.android_version_summary, testReleaseName))
+    }
+
+    @Test
+    fun updateState_systemUpdateInProgress_shouldSetToUpdatePending() {
+        val bundle = Bundle().apply {
+            putInt(SystemUpdateManager.KEY_STATUS, SystemUpdateManager.STATUS_WAITING_DOWNLOAD)
+        }
+        whenever(mockSystemUpdateManager.retrieveSystemUpdateInfo()).thenReturn(bundle)
+        controller.displayPreference(preferenceScreen)
+
+        controller.onViewCreated(TestLifecycleOwner())
+        SystemClock.sleep(100)
+
+        assertThat(preference.summary)
+            .isEqualTo(context.getString(R.string.android_version_pending_update_summary))
+    }
+
+    private companion object {
+        const val KEY = "test_key"
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/system/SystemUpdateRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/system/SystemUpdateRepositoryTest.kt
new file mode 100644
index 0000000..ea4617a
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/system/SystemUpdateRepositoryTest.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.system
+
+import android.content.Context
+import android.content.pm.ActivityInfo
+import android.content.pm.PackageManager
+import android.content.pm.ResolveInfo
+import android.provider.Settings
+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.ArgumentMatchers.eq
+import org.mockito.kotlin.argThat
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class SystemUpdateRepositoryTest {
+    private val mockPackageManager = mock<PackageManager>()
+
+    private val context: Context = spy(ApplicationProvider.getApplicationContext()) {
+        on { packageManager } doReturn mockPackageManager
+    }
+
+    private val repository = SystemUpdateRepository(context)
+
+    @Test
+    fun getSystemUpdateIntent_noResolveActivity_returnNull() {
+        val intent = repository.getSystemUpdateIntent()
+
+        assertThat(intent).isNull()
+    }
+
+    @Test
+    fun getSystemUpdateIntent_hasResolveActivity_returnIntent() {
+        mockPackageManager.stub {
+            on {
+                resolveActivity(
+                    argThat { action == Settings.ACTION_SYSTEM_UPDATE_SETTINGS },
+                    eq(PackageManager.MATCH_SYSTEM_ONLY),
+                )
+            } doReturn RESOLVE_INFO
+        }
+
+        val intent = repository.getSystemUpdateIntent()
+
+        assertThat(intent?.component?.packageName).isEqualTo(PACKAGE_NAME)
+        assertThat(intent?.component?.className).isEqualTo(ACTIVITY_NAME)
+    }
+
+    private companion object {
+        const val PACKAGE_NAME = "package.name"
+        const val ACTIVITY_NAME = "ActivityName"
+        val RESOLVE_INFO = ResolveInfo().apply {
+            activityInfo = ActivityInfo().apply {
+                packageName = PACKAGE_NAME
+                name = ACTIVITY_NAME
+            }
+        }
+    }
+}
diff --git a/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt b/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt
index 43b7a20..a2b479c 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/ContextTestUtil.kt
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2022 The Android Open Source Project
+ * Copyright (C) 2024 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,10 +17,11 @@
 package com.android.settings.testutils
 
 import android.content.Context
-import org.mockito.Mockito.any
-import org.mockito.Mockito.doReturn
-import org.mockito.Mockito.eq
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.whenever
 
 fun Context.mockAsUser() {
-    doReturn(this).`when`(this).createContextAsUser(any(), eq(0))
+    doReturn(this).whenever(this).createContextAsUser(any(), eq(0))
 }
diff --git a/tests/spa_unit/src/com/android/settings/testutils/DateTimeTestUtil.kt b/tests/spa_unit/src/com/android/settings/testutils/DateTimeTestUtil.kt
new file mode 100644
index 0000000..2a5f137
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/testutils/DateTimeTestUtil.kt
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils
+
+import java.time.Instant
+import java.time.ZoneId
+import java.time.ZonedDateTime
+
+fun zonedDateTime(epochMilli: Long): ZonedDateTime? =
+    ZonedDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneId.systemDefault())
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 6320fc7..9b098a7 100644
--- a/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
+++ b/tests/spa_unit/src/com/android/settings/testutils/FakeFeatureFactory.kt
@@ -21,10 +21,11 @@
 import com.android.settings.accessibility.AccessibilitySearchFeatureProvider
 import com.android.settings.accounts.AccountFeatureProvider
 import com.android.settings.applications.ApplicationFeatureProvider
-import com.android.settings.aware.AwareFeatureProvider
 import com.android.settings.biometrics.face.FaceFeatureProvider
+import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider
 import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider
 import com.android.settings.bluetooth.BluetoothFeatureProvider
+import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider
 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider
 import com.android.settings.dashboard.DashboardFeatureProvider
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider
@@ -33,15 +34,14 @@
 import com.android.settings.fuelgauge.BatterySettingsFeatureProvider
 import com.android.settings.fuelgauge.BatteryStatusFeatureProvider
 import com.android.settings.fuelgauge.PowerUsageFeatureProvider
-import com.android.settings.gestures.AssistGestureFeatureProvider
 import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider
 import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider
 import com.android.settings.localepicker.LocaleFeatureProvider
 import com.android.settings.overlay.DockUpdaterFeatureProvider
 import com.android.settings.overlay.FeatureFactory
-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
@@ -49,7 +49,7 @@
 import com.android.settings.users.UserFeatureProvider
 import com.android.settings.vpn2.AdvancedVpnFeatureProvider
 import com.android.settings.wifi.WifiTrackerLibProvider
-import com.android.settings.wifi.factory.WifiFeatureProvider;
+import com.android.settings.wifi.factory.WifiFeatureProvider
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider
 import org.mockito.Mockito.mock
 
@@ -61,138 +61,89 @@
         mock(ApplicationFeatureProvider::class.java)
 
     init {
-        sFactory = this
+        setFactory(appContext, this)
     }
 
-    override fun getAssistGestureFeatureProvider(): AssistGestureFeatureProvider {
+    override val suggestionFeatureProvider: SuggestionFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val hardwareInfoFeatureProvider: HardwareInfoFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val metricsFeatureProvider = mockMetricsFeatureProvider
+
+    override val powerUsageFeatureProvider: PowerUsageFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val batteryStatusFeatureProvider: BatteryStatusFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val batterySettingsFeatureProvider: BatterySettingsFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val dashboardFeatureProvider: DashboardFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val dockUpdaterFeatureProvider: DockUpdaterFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val applicationFeatureProvider = mockApplicationFeatureProvider
+
+    override val localeFeatureProvider: LocaleFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val enterprisePrivacyFeatureProvider: EnterprisePrivacyFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val searchFeatureProvider: SearchFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override fun getSurveyFeatureProvider(context: Context): SurveyFeatureProvider? {
         TODO("Not yet implemented")
     }
 
-    override fun getSuggestionFeatureProvider(): SuggestionFeatureProvider {
+    override val securityFeatureProvider: SecurityFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val userFeatureProvider: UserFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override val slicesFeatureProvider: SlicesFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val accountFeatureProvider: AccountFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val panelFeatureProvider: PanelFeatureProvider
+        get() = TODO("Not yet implemented")
+
+    override fun getContextualCardFeatureProvider(context: Context): ContextualCardFeatureProvider {
         TODO("Not yet implemented")
     }
 
-    override fun getSupportFeatureProvider(context: Context?): SupportFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getMetricsFeatureProvider(): MetricsFeatureProvider = mockMetricsFeatureProvider
-
-    override fun getPowerUsageFeatureProvider(context: Context?): PowerUsageFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getBatteryStatusFeatureProvider(context: Context?): BatteryStatusFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getBatterySettingsFeatureProvider(): BatterySettingsFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getDashboardFeatureProvider(context: Context?): DashboardFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getDockUpdaterFeatureProvider(): DockUpdaterFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getApplicationFeatureProvider(context: Context?) = mockApplicationFeatureProvider
-
-    override fun getLocaleFeatureProvider(): LocaleFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getEnterprisePrivacyFeatureProvider(
-        context: Context?,
-    ): EnterprisePrivacyFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getSearchFeatureProvider(): SearchFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getSurveyFeatureProvider(context: Context?): SurveyFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getSecurityFeatureProvider(): SecurityFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getUserFeatureProvider(context: Context?): UserFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getSlicesFeatureProvider(): SlicesFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getAccountFeatureProvider(): AccountFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getPanelFeatureProvider(): PanelFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getContextualCardFeatureProvider(
-        context: Context?,
-    ): ContextualCardFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getBluetoothFeatureProvider(): BluetoothFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getAwareFeatureProvider(): AwareFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getFaceFeatureProvider(): FaceFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getBiometricsRepositoryProvider(): BiometricsRepositoryProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getWifiTrackerLibProvider(): WifiTrackerLibProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getSecuritySettingsFeatureProvider(): SecuritySettingsFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getAccessibilitySearchFeatureProvider(): AccessibilitySearchFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getAccessibilityMetricsFeatureProvider(): AccessibilityMetricsFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getHardwareInfoFeatureProvider(): HardwareInfoFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getAdvancedVpnFeatureProvider(): AdvancedVpnFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getWifiFeatureProvider(): WifiFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getKeyboardSettingsFeatureProvider(): KeyboardSettingsFeatureProvider {
-        TODO("Not yet implemented")
-    }
-
-    override fun getStylusFeatureProvider(): StylusFeatureProvider {
-        TODO("Not yet implemented")
-    }
+    override val bluetoothFeatureProvider: BluetoothFeatureProvider
+        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
+        get() = TODO("Not yet implemented")
+    override val securitySettingsFeatureProvider: SecuritySettingsFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val accessibilitySearchFeatureProvider: AccessibilitySearchFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val accessibilityMetricsFeatureProvider: AccessibilityMetricsFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val advancedVpnFeatureProvider: AdvancedVpnFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val wifiFeatureProvider: WifiFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val keyboardSettingsFeatureProvider: KeyboardSettingsFeatureProvider
+        get() = TODO("Not yet implemented")
+    override val stylusFeatureProvider: StylusFeatureProvider
+        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/widget/CardPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/widget/CardPreferenceTest.kt
new file mode 100644
index 0000000..0483e36
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/widget/CardPreferenceTest.kt
@@ -0,0 +1,240 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget
+
+import android.content.Context
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.test.assertContentDescriptionEquals
+import androidx.compose.ui.test.assertIsDisplayed
+import androidx.compose.ui.test.assertIsNotDisplayed
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithContentDescription
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.performClick
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class CardPreferenceTest {
+
+    @get:Rule val composeTestRule = createComposeRule()
+    private lateinit var context: Context
+
+    @Before
+    fun setUp() {
+        context = ApplicationProvider.getApplicationContext()
+    }
+
+    @Test
+    fun enableDismiss_whenEnable_shouldBeDisplayed() {
+        composeTestRule.setContent { buildCardPreference(enableDismiss = true) }
+
+        composeTestRule.onNodeWithContentDescription("Dismiss").assertIsDisplayed()
+    }
+
+    @Test
+    fun enableDismiss_whenDisable_shouldBeDisplayed() {
+        composeTestRule.setContent { buildCardPreference(enableDismiss = false) }
+
+        composeTestRule.onNodeWithContentDescription("Dismiss").assertIsNotDisplayed()
+    }
+
+    @Test
+    fun primaryButton_whenVisible_shouldBeDisplayed() {
+        val expectedPrimaryButtonText = "You can see me"
+        composeTestRule.setContent {
+            buildCardPreference(
+                primaryButtonText = expectedPrimaryButtonText,
+                primaryButtonVisibility = true,
+            )
+        }
+
+        composeTestRule.onNodeWithText(expectedPrimaryButtonText).assertIsDisplayed()
+    }
+
+    @Test
+    fun primaryButton_whenInvisible_shouldBeDisplayed() {
+        val expectedButtonText = "You cannot see me"
+        composeTestRule.setContent {
+            buildCardPreference(
+                primaryButtonText = expectedButtonText,
+                primaryButtonVisibility = false,
+            )
+        }
+
+        composeTestRule.onNodeWithText(expectedButtonText).assertIsNotDisplayed()
+    }
+
+    @Test
+    fun primaryButtonAction_whenClick_performAction() {
+        val buttonText = "click me"
+        var clicked = false
+        composeTestRule.setContent {
+            buildCardPreference(
+                primaryButtonText = buttonText,
+                primaryButtonVisibility = true,
+                primaryButtonAction = { clicked = true }
+            )
+        }
+
+        composeTestRule.onNodeWithText(buttonText).performClick()
+
+        assertThat(clicked).isTrue()
+    }
+
+    @Test
+    fun primaryButtonContentDescription_whenSet_shouldBeExists() {
+        val expectedText = "this is a content description"
+        val buttonText = "primary-button"
+        composeTestRule.setContent {
+            buildCardPreference(
+                primaryButtonText = buttonText,
+                primaryButtonContentDescription = expectedText,
+                primaryButtonVisibility = true,
+            )
+        }
+
+        composeTestRule.onNodeWithText(buttonText).assertContentDescriptionEquals(expectedText)
+    }
+
+    @Test
+    fun secondaryButton_whenVisible_shouldBeDisplayed() {
+        val expectedSecondaryButtonText = "You can see me"
+        composeTestRule.setContent {
+            buildCardPreference(
+                secondaryButtonText = expectedSecondaryButtonText,
+                secondaryButtonVisibility = true,
+            )
+        }
+
+        composeTestRule.onNodeWithText(expectedSecondaryButtonText).assertIsDisplayed()
+    }
+
+    @Test
+    fun secondaryButton_whenInvisible_shouldBeDisplayed() {
+        val expectedButtonText = "You cannot see me"
+        composeTestRule.setContent {
+            buildCardPreference(
+                secondaryButtonText = expectedButtonText,
+                secondaryButtonVisibility = false,
+            )
+        }
+
+        composeTestRule.onNodeWithText(expectedButtonText).assertIsNotDisplayed()
+    }
+
+    @Test
+    fun secondaryButtonAction_whenClick_performAction() {
+        val buttonText = "click me2"
+        var clicked = false
+        composeTestRule.setContent {
+            buildCardPreference(
+                secondaryButtonText = buttonText,
+                secondaryButtonVisibility = true,
+                secondaryButtonAction = { clicked = true }
+            )
+        }
+
+        composeTestRule.onNodeWithText(buttonText).performClick()
+
+        assertThat(clicked).isTrue()
+    }
+
+    @Test
+    fun secondaryButtonContentDescription_whenSet_shouldBeExists() {
+        val expectedText = "found bug yay"
+        val buttonText = "secondary-button"
+        composeTestRule.setContent {
+            buildCardPreference(
+                secondaryButtonText = buttonText,
+                secondaryButtonContentDescription = expectedText,
+                secondaryButtonVisibility = true,
+            )
+        }
+
+        composeTestRule.onNodeWithText(buttonText).assertContentDescriptionEquals(expectedText)
+    }
+
+    @Test
+    fun resetLayoutState_shouldRemoveThePrimaryButton() {
+        val buttonText = "9527"
+        val cardPreference =
+            CardPreference(context)
+                .apply {
+                    primaryButtonText = buttonText
+                    primaryButtonVisibility = true
+                }
+                .also { it.buildContent() }
+
+        cardPreference.resetLayoutState()
+        composeTestRule.setContent { cardPreference.Content() }
+
+        composeTestRule.onNodeWithText(buttonText).assertDoesNotExist()
+    }
+
+    @Test
+    fun resetLayoutState_shouldRemoveTheSecondaryButton() {
+        val buttonText = "4567"
+        val cardPreference =
+            CardPreference(context)
+                .apply {
+                    secondaryButtonText = buttonText
+                    secondaryButtonVisibility = true
+                }
+                .also { it.buildContent() }
+
+        cardPreference.resetLayoutState()
+        composeTestRule.setContent { cardPreference.Content() }
+
+        composeTestRule.onNodeWithText(buttonText).assertDoesNotExist()
+    }
+
+    @Composable
+    private fun buildCardPreference(
+        iconResId: Int? = R.drawable.ic_battery_status_protected_24dp,
+        primaryButtonText: String = "primary text",
+        primaryButtonContentDescription: String? = "primary description",
+        primaryButtonAction: () -> Unit = {},
+        primaryButtonVisibility: Boolean = false,
+        secondaryButtonText: String = "secondary button",
+        secondaryButtonContentDescription: String? = null,
+        secondaryButtonAction: () -> Unit = {},
+        secondaryButtonVisibility: Boolean = false,
+        enableDismiss: Boolean = true,
+    ) =
+        CardPreference(context)
+            .apply {
+                this.iconResId = iconResId
+                this.primaryButtonText = primaryButtonText
+                this.primaryButtonContentDescription = primaryButtonContentDescription
+                this.primaryButtonAction = primaryButtonAction
+                this.primaryButtonVisibility = primaryButtonVisibility
+                this.secondaryButtonText = secondaryButtonText
+                this.secondaryButtonContentDescription = secondaryButtonContentDescription
+                this.secondaryButtonAction = secondaryButtonAction
+                this.secondaryButtonVisibility = secondaryButtonVisibility
+                this.enableDismiss(enableDismiss)
+            }
+            .also { it.buildContent() }
+            .Content()
+}
diff --git a/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
new file mode 100644
index 0000000..994abbf
--- /dev/null
+++ b/tests/spa_unit/src/com/android/settings/wifi/WepNetworksPreferenceControllerTest.kt
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi
+
+import android.content.Context
+import android.net.wifi.WifiManager
+import androidx.compose.ui.test.assertIsOff
+import androidx.compose.ui.test.assertIsOn
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.test.onNodeWithText
+import androidx.compose.ui.test.onRoot
+import androidx.compose.ui.test.performClick
+import androidx.preference.PreferenceManager
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.spa.preference.ComposePreference
+import java.util.function.Consumer
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.any
+import org.mockito.kotlin.doAnswer
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.spy
+
+@RunWith(AndroidJUnit4::class)
+class WepNetworksPreferenceControllerTest {
+
+    @get:Rule
+    val composeTestRule = createComposeRule()
+
+    private var wepAllowed = true
+
+    private val mockWifiManager = mock<WifiManager> {
+        on { queryWepAllowed(any(), any()) } doAnswer {
+            @Suppress("UNCHECKED_CAST")
+            val consumer = it.arguments[1] as Consumer<Boolean>
+            consumer.accept(wepAllowed)
+        }
+        on { it.isWepSupported } doReturn true
+    }
+
+    private var context: Context =
+        spy(ApplicationProvider.getApplicationContext()) {
+            on { getSystemService(WifiManager::class.java) } doReturn mockWifiManager
+        }
+    private var controller = WepNetworksPreferenceController(context, TEST_KEY)
+
+    private val preference = ComposePreference(context).apply { key = TEST_KEY }
+    private val preferenceScreen = PreferenceManager(context).createPreferenceScreen(context)
+
+
+    @Before
+    fun setUp() {
+        preferenceScreen.addPreference(preference)
+        controller.displayPreference(preferenceScreen)
+    }
+
+    @Test
+    fun wepAllowedTrue_turnOn() {
+        wepAllowed = true
+        composeTestRule.setContent {
+            controller.Content()
+        }
+        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+            .assertIsOn()
+    }
+
+    @Test
+    fun wepAllowedFalse_turnOff() {
+        wepAllowed = false
+        composeTestRule.setContent {
+            controller.Content()
+        }
+        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+            .assertIsOff()
+    }
+
+    @Test
+    fun onClick_turnOn() {
+        wepAllowed = false
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onRoot().performClick()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+            .assertIsOn()
+    }
+
+    @Test
+    fun onClick_turnOff() {
+        wepAllowed = true
+        composeTestRule.setContent {
+            controller.Content()
+        }
+
+        composeTestRule.onRoot().performClick()
+
+        composeTestRule.onNodeWithText(context.getString(R.string.wifi_allow_wep_networks))
+            .assertIsOff()
+    }
+
+    private companion object {
+        const val TEST_KEY = "test_key"
+    }
+}
\ No newline at end of file
diff --git a/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt b/tests/spa_unit/src/com/android/settings/wifi/details2/WifiPrivacyPreferenceController2Test.kt
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 8636c81..f3f5201 100644
--- a/tests/uitests/Android.bp
+++ b/tests/uitests/Android.bp
@@ -26,7 +26,10 @@
     platform_apis: true,
     certificate: "platform",
     test_suites: ["device-tests"],
-    srcs: ["src/**/*.java"],
+    srcs: [
+        "src/**/*.java",
+        "src/**/*.kt",
+    ],
 
     libs: [
         "android.test.runner",
@@ -34,7 +37,9 @@
     ],
 
     static_libs: [
+        "androidx.test.ext.junit",
         "androidx.test.rules",
+        "androidx.test.uiautomator_uiautomator",
         "app-helpers-core",
         "launcher-helper-lib",
         "metrics-helper-lib",
@@ -42,8 +47,8 @@
         "settings-helper",
         "sysui-helper",
         "timeresult-helper-lib",
-        "truth-prebuilt",
-        "ub-uiautomator",
+        "truth",
+        "flag-junit",
     ],
 
     //sdk_version: "current",
diff --git a/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java b/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java
deleted file mode 100644
index 3cd0009..0000000
--- a/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.java
+++ /dev/null
@@ -1,613 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.view;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assume.assumeFalse;
-import static org.junit.Assume.assumeTrue;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.hardware.fingerprint.FingerprintManager;
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
-import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback;
-import android.os.UserHandle;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-import androidx.annotation.NonNull;
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.internal.widget.LockPatternChecker;
-import com.android.internal.widget.LockPatternUtils;
-import com.android.internal.widget.LockscreenCredential;
-import com.android.settings.biometrics2.utils.LockScreenUtil;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.List;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollmentActivityTest {
-
-    private static final String SETTINGS_PACKAGE_NAME = "com.android.settings";
-    private static final String ACTIVITY_CLASS_NAME =
-            "com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity";
-    private static final String EXTRA_IS_SETUP_FLOW = "isSetupFlow";
-    private static final String EXTRA_SKIP_INTRO = "skip_intro";
-    private static final String EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor";
-    private static final String EXTRA_FROM_SETTINGS_SUMMARY = "from_settings_summary";
-    private static final String EXTRA_PAGE_TRANSITION_TYPE = "page_transition_type";
-    private static final String EXTRA_KEY_GK_PW_HANDLE = "gk_pw_handle";
-    private static final String TEST_PIN = "1234";
-
-    private static final String DO_IT_LATER = "Do it later";
-
-    private static final String UDFPS_ENROLLING_TITLE = "Touch & hold the fingerprint sensor";
-    private static final String SFPS_ENROLLING_TITLE =
-            "Lift, then touch. Move your finger slightly each time.";
-    private static final String RFPS_ENROLLING_TITLE = "Lift, then touch again";
-
-    private UiDevice mDevice;
-    private byte[] mToken = new byte[]{};
-    private Context mContext;
-    private boolean mFingerprintPropCallbackLaunched;
-    private boolean mCanAssumeUdfps;
-    private boolean mCanAssumeSfps;
-    private String mEnrollingTitle;
-
-    private static final int IDLE_TIMEOUT = 10000;
-
-    @Before
-    public void setUp() throws InterruptedException {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-
-        mContext = InstrumentationRegistry.getContext();
-
-        // Stop every test if it is not a fingerprint device
-        assumeTrue(mContext.getPackageManager().hasSystemFeature(
-                PackageManager.FEATURE_FINGERPRINT));
-
-        final FingerprintManager fingerprintManager = mContext.getSystemService(
-                FingerprintManager.class);
-        mFingerprintPropCallbackLaunched = false;
-        fingerprintManager.addAuthenticatorsRegisteredCallback(
-                new IFingerprintAuthenticatorsRegisteredCallback.Stub() {
-                    @Override
-                    public void onAllAuthenticatorsRegistered(
-                            List<FingerprintSensorPropertiesInternal> list) {
-                        mFingerprintPropCallbackLaunched = true;
-
-                        assertThat(list).isNotNull();
-                        assertThat(list).isNotEmpty();
-                        final FingerprintSensorPropertiesInternal prop = list.get(0);
-                        mCanAssumeUdfps = prop.isAnyUdfpsType();
-                        mCanAssumeSfps = prop.isAnySidefpsType();
-                        if (mCanAssumeUdfps) {
-                            mEnrollingTitle = UDFPS_ENROLLING_TITLE;
-                        } else if (mCanAssumeSfps) {
-                            mEnrollingTitle = SFPS_ENROLLING_TITLE;
-                        } else {
-                            mEnrollingTitle = RFPS_ENROLLING_TITLE;
-                        }
-                    }
-                });
-
-        for (long i = 0; i < IDLE_TIMEOUT && !mFingerprintPropCallbackLaunched; i += 100L) {
-            Thread.sleep(100L);
-        }
-        assertThat(mFingerprintPropCallbackLaunched).isTrue();
-
-        mDevice.pressHome();
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        LockScreenUtil.resetLockscreen(TEST_PIN);
-        mDevice.pressHome();
-    }
-
-    @Test
-    public void testIntroChooseLock() {
-        final Intent intent = newActivityIntent();
-        mContext.startActivity(intent);
-        assertThat(mDevice.wait(Until.hasObject(By.text("Choose your backup screen lock method")),
-                IDLE_TIMEOUT)).isTrue();
-    }
-
-    private void verifyIntroPage() {
-        mDevice.waitForIdle();
-        for (long i = 0; i < IDLE_TIMEOUT; i += 100L) {
-            if (mDevice.wait(Until.hasObject(By.text("More")), 50L)) {
-                break;
-            } else if (mDevice.wait(Until.hasObject(By.text("I agree")), 50L)) {
-                break;
-            }
-        }
-
-        // Click more btn at most twice and the introduction should stay in the last page
-        UiObject2 moreBtn;
-        for (int i = 0; i < 2 && (moreBtn = mDevice.findObject(By.text("More"))) != null; ++i) {
-            moreBtn.click();
-            mDevice.waitForIdle();
-            mDevice.wait(Until.hasObject(By.text("More")), IDLE_TIMEOUT);
-        }
-
-        assertThat(mDevice.wait(Until.hasObject(By.text("No thanks")), IDLE_TIMEOUT)).isTrue();
-        assertThat(mDevice.wait(Until.hasObject(By.text("I agree")), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_withUdfps_clickStart() {
-        assumeTrue(mCanAssumeUdfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(false);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindUdfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-        assertThat(lottie.isClickable()).isTrue();
-        final UiObject2 startBtn = mDevice.findObject(By.text("Start"));
-        assertThat(startBtn.isClickable()).isTrue();
-        startBtn.click();
-
-        // Enrolling page
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_withUdfps_clickLottie() {
-        assumeTrue(mCanAssumeUdfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(false);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindUdfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-        assertThat(lottie.isClickable()).isTrue();
-        final UiObject2 startBtn = mDevice.findObject(By.text("Start"));
-        assertThat(startBtn.isClickable()).isTrue();
-        lottie.click();
-
-        // Enrolling page
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_withSfps() {
-        assumeTrue(mCanAssumeSfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(false);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindSfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-
-        // We don't have view which can be clicked to run to next page, stop at here.
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_withRfps() {
-        assumeFalse(mCanAssumeUdfps || mCanAssumeSfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(false);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindRfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        if (lottie == null) {
-            // FindSfps page shall have an animation view if no lottie view
-            assertThat(mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                    "fingerprint_sensor_location_animation"))).isNotNull();
-        }
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_clickNoThanksInIntroPage() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(false);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 noThanksBtn = mDevice.findObject(By.text("No thanks"));
-        assertThat(noThanksBtn).isNotNull();
-        noThanksBtn.click();
-
-        // Back to home
-        mDevice.waitForWindowUpdate("com.android.settings", IDLE_TIMEOUT);
-        assertThat(mDevice.findObject(By.text("No thanks"))).isNull();
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_clickSkipInFindSensor() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(false);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindSensor page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 doItLaterBtn = mDevice.findObject(By.text(DO_IT_LATER));
-        assertThat(doItLaterBtn).isNotNull();
-        assertThat(doItLaterBtn.isClickable()).isTrue();
-        doItLaterBtn.click();
-
-        // Back to home
-        mDevice.waitForWindowUpdate("com.android.settings", IDLE_TIMEOUT);
-        assertThat(mDevice.findObject(By.text(DO_IT_LATER))).isNull();
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_clickSkipAnywayInFindFpsDialog_whenIsSuw() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(true);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindSensor page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 doItLaterBtn = mDevice.findObject(By.text(DO_IT_LATER));
-        assertThat(doItLaterBtn).isNotNull();
-        assertThat(doItLaterBtn.isClickable()).isTrue();
-        doItLaterBtn.click();
-
-        // SkipSetupFindFpsDialog
-        assertThat(mDevice.wait(Until.hasObject(By.text("Skip fingerprint?")),
-                IDLE_TIMEOUT)).isTrue();
-        final UiObject2 skipAnywayBtn = mDevice.findObject(By.text("Skip anyway"));
-        assertThat(skipAnywayBtn).isNotNull();
-        assertThat(skipAnywayBtn.isClickable()).isTrue();
-        skipAnywayBtn.click();
-
-        // Back to home
-        mDevice.waitForWindowUpdate("com.android.settings", IDLE_TIMEOUT);
-        assertThat(mDevice.findObject(By.text("Skip anyway"))).isNull();
-        assertThat(mDevice.findObject(By.text(DO_IT_LATER))).isNull();
-    }
-
-    @Test
-    public void testIntroWithGkPwHandle_clickGoBackInFindFpsDialog_whenIsSuw() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchIntroWithGkPwHandle(true);
-
-        // Intro page
-        verifyIntroPage();
-        final UiObject2 agreeBtn = mDevice.findObject(By.text("I agree"));
-        assertThat(agreeBtn).isNotNull();
-        agreeBtn.click();
-
-        // FindSensor page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 doItLaterBtn = mDevice.findObject(By.text(DO_IT_LATER));
-        assertThat(doItLaterBtn).isNotNull();
-        assertThat(doItLaterBtn.isClickable()).isTrue();
-        doItLaterBtn.click();
-
-        // SkipSetupFindFpsDialog
-        assertThat(mDevice.wait(Until.hasObject(By.text("Skip fingerprint?")), IDLE_TIMEOUT))
-                .isTrue();
-        final UiObject2 goBackBtn = mDevice.findObject(By.text("Go back"));
-        assertThat(goBackBtn).isNotNull();
-        assertThat(goBackBtn.isClickable()).isTrue();
-        goBackBtn.click();
-
-        // FindSensor page again
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testIntroCheckPin() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-        final Intent intent = newActivityIntent();
-        mContext.startActivity(intent);
-        assertThat(mDevice.wait(Until.hasObject(By.text("Enter your device PIN to continue")),
-                IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testEnrollingWithGkPwHandle() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchEnrollingWithGkPwHandle();
-
-        // Enrolling screen
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testEnrollingIconTouchDialog_withSfps() {
-        assumeTrue(mCanAssumeSfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchEnrollingWithGkPwHandle();
-
-        // Enrolling screen
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-
-        lottie.click();
-        lottie.click();
-        lottie.click();
-
-        // IconTouchDialog
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text("Touch the sensor instead")), IDLE_TIMEOUT))
-                .isTrue();
-        final UiObject2 okButton = mDevice.findObject(By.text("OK"));
-        assertThat(okButton).isNotNull();
-
-        okButton.click();
-
-        // Enrolling screen again
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testEnrollingIconTouchDialog_withRfps() {
-        assumeFalse(mCanAssumeUdfps || mCanAssumeSfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchEnrollingWithGkPwHandle();
-
-        // Enrolling screen
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "fingerprint_progress_bar"));
-        assertThat(lottie).isNotNull();
-
-        lottie.click();
-        lottie.click();
-        lottie.click();
-
-        // IconTouchDialog
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text("Whoops, that\u2019s not the sensor")),
-                IDLE_TIMEOUT)).isTrue();
-        final UiObject2 okButton = mDevice.findObject(By.text("OK"));
-        assertThat(okButton).isNotNull();
-
-        okButton.click();
-
-        // Enrolling screen again
-        mDevice.waitForIdle();
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testFindUdfpsWithGkPwHandle_clickStart() {
-        assumeTrue(mCanAssumeUdfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchFindSensorWithGkPwHandle();
-
-        // FindUdfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-        assertThat(lottie.isClickable()).isTrue();
-        final UiObject2 startBtn = mDevice.findObject(By.text("Start"));
-        assertThat(startBtn.isClickable()).isTrue();
-        startBtn.click();
-
-        // Enrolling page
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testFindUdfpsWithGkPwHandle_clickLottie() {
-        assumeTrue(mCanAssumeUdfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchFindSensorWithGkPwHandle();
-
-        // FindUdfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-        assertThat(lottie.isClickable()).isTrue();
-        final UiObject2 startBtn = mDevice.findObject(By.text("Start"));
-        assertThat(startBtn.isClickable()).isTrue();
-        lottie.click();
-
-        // Enrolling page
-        assertThat(mDevice.wait(Until.hasObject(By.text(mEnrollingTitle)), IDLE_TIMEOUT)).isTrue();
-    }
-
-    @Test
-    public void testFindSfpsWithGkPwHandle() {
-        assumeTrue(mCanAssumeSfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchFindSensorWithGkPwHandle();
-
-        // FindSfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        assertThat(lottie).isNotNull();
-
-        // We don't have view which can be clicked to run to next page, stop at here.
-    }
-
-    @Test
-    public void testFindRfpsWithGkPwHandle() {
-        assumeFalse(mCanAssumeUdfps || mCanAssumeSfps);
-
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchFindSensorWithGkPwHandle();
-
-        // FindRfps page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 lottie = mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                "illustration_lottie"));
-        if (lottie == null) {
-            // FindSfps page shall have an animation view if no lottie view
-            assertThat(mDevice.findObject(By.res(SETTINGS_PACKAGE_NAME,
-                    "fingerprint_sensor_location_animation"))).isNotNull();
-        }
-    }
-
-
-    @Test
-    public void testFindSensorWithGkPwHandle_clickSkipInFindSensor() {
-        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true);
-
-        launchFindSensorWithGkPwHandle();
-
-        // FindSensor page
-        assertThat(mDevice.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue();
-        final UiObject2 doItLaterBtn = mDevice.findObject(By.text(DO_IT_LATER));
-        assertThat(doItLaterBtn).isNotNull();
-        assertThat(doItLaterBtn.isClickable()).isTrue();
-        doItLaterBtn.click();
-
-        // Back to home
-        mDevice.waitForWindowUpdate("com.android.settings", IDLE_TIMEOUT);
-        assertThat(mDevice.findObject(By.text(DO_IT_LATER))).isNull();
-    }
-
-    private void launchIntroWithGkPwHandle(boolean isSuw) {
-        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
-        final LockscreenCredential lockscreenCredential = LockscreenCredential.createPin(TEST_PIN);
-        final int userId = UserHandle.myUserId();
-        final LockPatternChecker.OnVerifyCallback onVerifyCallback = (response, timeoutMs) -> {
-            final Intent intent = newActivityIntent();
-            if (isSuw) {
-                intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
-            }
-            intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.getGatekeeperPasswordHandle());
-            mContext.startActivity(intent);
-        };
-        LockPatternChecker.verifyCredential(lockPatternUtils, lockscreenCredential,
-                userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback);
-    }
-
-    private void launchFindSensorWithGkPwHandle() {
-        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
-        final LockscreenCredential lockscreenCredential = LockscreenCredential.createPin(TEST_PIN);
-        final int userId = UserHandle.myUserId();
-        final LockPatternChecker.OnVerifyCallback onVerifyCallback = (response, timeoutMs) -> {
-            final Intent intent = newActivityIntent();
-            intent.putExtra(EXTRA_SKIP_INTRO, true);
-            intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.getGatekeeperPasswordHandle());
-            mContext.startActivity(intent);
-        };
-        LockPatternChecker.verifyCredential(lockPatternUtils, lockscreenCredential,
-                userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback);
-    }
-
-    private void launchEnrollingWithGkPwHandle() {
-        LockPatternUtils lockPatternUtils = new LockPatternUtils(mContext);
-        final LockscreenCredential lockscreenCredential = LockscreenCredential.createPin(TEST_PIN);
-        final int userId = UserHandle.myUserId();
-        final LockPatternChecker.OnVerifyCallback onVerifyCallback = (response, timeoutMs) -> {
-            final Intent intent = newActivityIntent();
-            intent.putExtra(EXTRA_SKIP_FIND_SENSOR, true);
-            intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.getGatekeeperPasswordHandle());
-            mContext.startActivity(intent);
-        };
-        LockPatternChecker.verifyCredential(lockPatternUtils, lockscreenCredential,
-                userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback);
-    }
-
-    @NonNull
-    private Intent newActivityIntent() {
-        Intent intent = new Intent();
-        intent.setClassName(SETTINGS_PACKAGE_NAME, ACTIVITY_CLASS_NAME);
-        intent.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, true);
-        intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, 1);
-        intent.putExtra(Intent.EXTRA_USER_ID, mContext.getUserId());
-        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
-        return intent;
-
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.kt b/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.kt
new file mode 100644
index 0000000..be96fe5
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollmentActivityTest.kt
@@ -0,0 +1,825 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.view
+
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager.FEATURE_FINGERPRINT
+import android.hardware.fingerprint.FingerprintManager
+import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
+import android.hardware.fingerprint.IFingerprintAuthenticatorsRegisteredCallback
+import android.os.UserHandle
+import android.util.Log
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.UiObject2
+import androidx.test.uiautomator.Until
+import com.android.internal.widget.LockPatternChecker
+import com.android.internal.widget.LockPatternUtils
+import com.android.internal.widget.LockscreenCredential
+import com.android.internal.widget.VerifyCredentialResponse
+import com.android.settings.biometrics2.utils.LockScreenUtil
+import com.google.common.truth.Truth.assertThat
+import org.junit.After
+import org.junit.Assume
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.io.IOException
+
+@Ignore
+@RunWith(AndroidJUnit4::class)
+class FingerprintEnrollmentActivityTest {
+
+    private val context: Context by lazy {
+        InstrumentationRegistry.getInstrumentation().context
+    }
+
+    private val fingerprintManager: FingerprintManager by lazy {
+        context.getSystemService(FingerprintManager::class.java)!!
+    }
+
+    private var fingerprintPropCallbackLaunched = false
+    private var canAssumeUdfps = false
+    private var canAssumeSfps = false
+    private var enrollingPageTitle: String = ""
+    private var runAsLandscape = false
+
+    private val device: UiDevice by lazy {
+        UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+    }
+
+    @Before
+    @Throws(InterruptedException::class)
+    fun setUp() {
+        // Stop every test if it is not a fingerprint device
+        Assume.assumeTrue(context.packageManager.hasSystemFeature(FEATURE_FINGERPRINT))
+
+        fingerprintPropCallbackLaunched = false
+        fingerprintManager.addAuthenticatorsRegisteredCallback(
+            object : IFingerprintAuthenticatorsRegisteredCallback.Stub() {
+                override fun onAllAuthenticatorsRegistered(
+                    list: List<FingerprintSensorPropertiesInternal>
+                ) {
+                    fingerprintPropCallbackLaunched = true
+                    assertThat(list).isNotNull()
+                    assertThat(list).isNotEmpty()
+                    val prop = list[0]
+                    canAssumeUdfps = prop.isAnyUdfpsType
+                    canAssumeSfps = prop.isAnySidefpsType
+                    enrollingPageTitle = if (canAssumeUdfps) {
+                        UDFPS_ENROLLING_TITLE
+                    } else if (canAssumeSfps) {
+                        SFPS_ENROLLING_TITLE
+                    } else {
+                        RFPS_ENROLLING_TITLE
+                    }
+                }
+            })
+        var i: Long = 0
+        while (i < IDLE_TIMEOUT && !fingerprintPropCallbackLaunched) {
+            Thread.sleep(100L)
+            i += 100L
+        }
+        assertThat(fingerprintPropCallbackLaunched).isTrue()
+        device.pressHome()
+
+        // Stop settings before performing test
+        try {
+            device.executeShellCommand("am force-stop $SETTINGS_PACKAGE_NAME")
+        } catch (e: IOException) {
+            Log.e(TAG, "Fail to stop settings app", e)
+        }
+    }
+
+    @After
+    @Throws(Exception::class)
+    fun tearDown() {
+        runAsLandscape = false
+        setDeviceOrientation()
+
+        LockScreenUtil.resetLockscreen(TEST_PIN)
+        device.pressHome()
+    }
+
+    @Test
+    fun testIntroChooseLock() {
+        setDeviceOrientation()
+        val intent = newActivityIntent(false)
+        context.startActivity(intent)
+        assertThat(
+            device.wait(
+                Until.hasObject(By.text("Choose your backup screen lock method")),
+                IDLE_TIMEOUT
+            )
+        ).isTrue()
+    }
+
+    @Test
+    fun testIntroChooseLock_runAslandscape() {
+        runAsLandscape = true
+        testIntroChooseLock()
+    }
+
+    private fun verifyIntroPage() {
+        device.waitForIdle()
+        run {
+            var i: Long = 0
+            while (i < IDLE_TIMEOUT) {
+                if (device.wait(Until.hasObject(By.text("More")), 50L)) {
+                    break
+                } else if (device.wait(Until.hasObject(By.text("I agree")), 50L)) {
+                    break
+                }
+                i += 100L
+            }
+        }
+
+        // Click more btn at most twice and the introduction should stay in the last page
+        var moreBtn: UiObject2? = null
+        var i = 0
+        val more = if (runAsLandscape) 5 else 2
+        while (i < more && device.findObject(By.text("More")).also { moreBtn = it } != null) {
+            moreBtn!!.click()
+            device.waitForIdle()
+            device.wait(Until.hasObject(By.text("More")), IDLE_TIMEOUT)
+            ++i
+        }
+        assertThat(device.wait(Until.hasObject(By.text("No thanks")), IDLE_TIMEOUT)).isTrue()
+        assertThat(device.wait(Until.hasObject(By.text("I agree")), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withUdfps_clickStart() {
+        Assume.assumeTrue(canAssumeUdfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(false)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindUdfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+        assertThat(lottie.isClickable).isTrue()
+        val startBtn = device.findObject(By.text("Start"))
+        assertThat(startBtn.isClickable).isTrue()
+        startBtn.click()
+
+        // Enrolling page
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withUdfps_clickStart_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_withUdfps_clickStart()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withUdfps_clickLottie() {
+        Assume.assumeTrue(canAssumeUdfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(false)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindUdfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie"))
+        assertThat(lottie).isNotNull()
+        assertThat(lottie.isClickable).isTrue()
+        val startBtn = device.findObject(By.text("Start"))
+        assertThat(startBtn.isClickable).isTrue()
+        lottie.click()
+
+        // Enrolling page
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withUdfps_clickLottie_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_withUdfps_clickLottie()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withSfps() {
+        Assume.assumeTrue(canAssumeSfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(false)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindSfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME,"illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+
+        // We don't have view which can be clicked to run to next page, stop at here.
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withSfps_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_withSfps()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withRfps() {
+        Assume.assumeFalse(canAssumeUdfps || canAssumeSfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(false)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindRfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        if (lottie == null) {
+            // FindSfps page shall have an animation view if no lottie view
+            assertThat(
+                device.findObject(
+                    By.res(SETTINGS_PACKAGE_NAME, "fingerprint_sensor_location_animation")
+                )
+            ).isNotNull()
+        }
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_withRfps_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_withRfps()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickNoThanksInIntroPage() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(false)
+
+        // Intro page
+        verifyIntroPage()
+        val noThanksBtn = device.findObject(By.text("No thanks"))
+        assertThat(noThanksBtn).isNotNull()
+        noThanksBtn.click()
+
+        // Back to home
+        device.waitForWindowUpdate(SETTINGS_PACKAGE_NAME, IDLE_TIMEOUT)
+        assertThat(device.findObject(By.text("No thanks"))).isNull()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickNoThanksInIntroPage_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_clickNoThanksInIntroPage()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickSkipInFindSensor() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(false)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindSensor page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val doItLaterBtn = device.findObject(By.text(DO_IT_LATER))
+        assertThat(doItLaterBtn).isNotNull()
+        assertThat(doItLaterBtn.isClickable).isTrue()
+        doItLaterBtn.click()
+
+        // Back to home
+        device.waitForWindowUpdate(SETTINGS_PACKAGE_NAME, IDLE_TIMEOUT)
+        assertThat(device.findObject(By.text(DO_IT_LATER))).isNull()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickSkipInFindSensor_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_clickSkipInFindSensor()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickSkipAnywayInFindFpsDialog_whenIsSuw() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(true)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindSensor page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val doItLaterBtn = device.findObject(By.text(DO_IT_LATER))
+        assertThat(doItLaterBtn).isNotNull()
+        assertThat(doItLaterBtn.isClickable).isTrue()
+        doItLaterBtn.click()
+
+        // SkipSetupFindFpsDialog
+        assertThat(device.wait(Until.hasObject(By.text("Skip fingerprint?")), IDLE_TIMEOUT)).isTrue()
+        val skipAnywayBtn = device.findObject(By.text("Skip anyway"))
+        assertThat(skipAnywayBtn).isNotNull()
+        assertThat(skipAnywayBtn.isClickable).isTrue()
+        skipAnywayBtn.click()
+
+        // Back to home
+        device.waitForWindowUpdate(SETTINGS_PACKAGE_NAME, IDLE_TIMEOUT)
+        assertThat(device.findObject(By.text("Skip anyway"))).isNull()
+        assertThat(device.findObject(By.text(DO_IT_LATER))).isNull()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickSkipAnywayInFindFpsDialog_whenIsSuw_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_clickSkipAnywayInFindFpsDialog_whenIsSuw()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickGoBackInFindFpsDialog_whenIsSuw() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchIntroWithGkPwHandle(true)
+
+        // Intro page
+        verifyIntroPage()
+        val agreeBtn = device.findObject(By.text("I agree"))
+        assertThat(agreeBtn).isNotNull()
+        agreeBtn.click()
+
+        // FindSensor page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val doItLaterBtn = device.findObject(By.text(DO_IT_LATER))
+        assertThat(doItLaterBtn).isNotNull()
+        assertThat(doItLaterBtn.isClickable).isTrue()
+        doItLaterBtn.click()
+
+        // SkipSetupFindFpsDialog
+        assertThat(device.wait(Until.hasObject(By.text("Skip fingerprint?")), IDLE_TIMEOUT)).isTrue()
+        val goBackBtn = device.findObject(By.text("Go back"))
+        assertThat(goBackBtn).isNotNull()
+        assertThat(goBackBtn.isClickable).isTrue()
+        goBackBtn.click()
+
+        // FindSensor page again
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testIntroWithGkPwHandle_clickGoBackInFindFpsDialog_whenIsSuw_runAslandscape() {
+        runAsLandscape = true
+        testIntroWithGkPwHandle_clickGoBackInFindFpsDialog_whenIsSuw()
+    }
+
+    @Test
+    fun testIntroCheckPin() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        val intent = newActivityIntent(false)
+        context.startActivity(intent)
+        assertThat(
+            device.wait(
+                Until.hasObject(By.text("Enter your device PIN to continue")),
+                IDLE_TIMEOUT
+            )
+        ).isTrue()
+    }
+
+    @Test
+    fun testEnrollingWithGkPwHandle() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchEnrollingWithGkPwHandle()
+
+        // Enrolling screen
+        device.waitForIdle()
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testEnrollingWithGkPwHandle_runAslandscape() {
+        runAsLandscape = true
+        testEnrollingWithGkPwHandle()
+    }
+
+    @Test
+    fun testEnrollingIconTouchDialog_withSfps() {
+        Assume.assumeTrue(canAssumeSfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchEnrollingWithGkPwHandle()
+
+        // Enrolling screen
+        device.waitForIdle()
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+        lottie.click()
+        lottie.click()
+        lottie.click()
+
+        // IconTouchDialog
+        device.waitForIdle()
+        assertThat(
+            device.wait(
+                Until.hasObject(By.text("Touch the sensor instead")),
+                IDLE_TIMEOUT
+            )
+        )
+            .isTrue()
+        val okButton = device.findObject(By.text("OK"))
+        assertThat(okButton).isNotNull()
+        okButton.click()
+
+        // Enrolling screen again
+        device.waitForIdle()
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testEnrollingIconTouchDialog_withSfps_runAslandscape() {
+        runAsLandscape = true
+        testEnrollingIconTouchDialog_withSfps()
+    }
+
+    @Test
+    fun testEnrollingIconTouchDialog_withRfps() {
+        Assume.assumeFalse(canAssumeUdfps || canAssumeSfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchEnrollingWithGkPwHandle()
+
+        // Enrolling screen
+        device.waitForIdle()
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "fingerprint_progress_bar")
+        )
+        assertThat(lottie).isNotNull()
+        lottie.click()
+        lottie.click()
+        lottie.click()
+
+        // IconTouchDialog
+        device.waitForIdle()
+        assertThat(
+            device.wait(
+                Until.hasObject(By.text("Whoops, that\u2019s not the sensor")),
+                IDLE_TIMEOUT
+            )
+        ).isTrue()
+        val okButton = device.findObject(By.text("OK"))
+        assertThat(okButton).isNotNull()
+        okButton.click()
+
+        // Enrolling screen again
+        device.waitForIdle()
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testEnrollingIconTouchDialog_withRfps_runAslandscape() {
+        runAsLandscape = true
+        testEnrollingIconTouchDialog_withRfps()
+    }
+
+    @Test
+    fun testFindUdfpsWithGkPwHandle_clickStart() {
+        Assume.assumeTrue(canAssumeUdfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchFindSensorWithGkPwHandle()
+
+        // FindUdfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+        assertThat(lottie.isClickable).isTrue()
+        val startBtn = device.findObject(By.text("Start"))
+        assertThat(startBtn.isClickable).isTrue()
+        startBtn.click()
+
+        // Enrolling page
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testFindUdfpsWithGkPwHandle_clickStart_runAslandscape() {
+        runAsLandscape = true
+        testFindUdfpsWithGkPwHandle_clickStart()
+    }
+
+    @Test
+    fun testFindUdfpsLandscapeWithGkPwHandle_clickStartThenBack() {
+        Assume.assumeTrue(canAssumeUdfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchFindSensorWithGkPwHandle()
+
+        // FindUdfps page (portrait)
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+
+        // rotate device
+        if (runAsLandscape) {
+            device.setOrientationPortrait()
+        } else {
+            device.setOrientationLandscape()
+        }
+        device.waitForIdle()
+
+        // FindUdfps page (landscape)
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+        assertThat(lottie.isClickable).isTrue()
+        val startBtn = device.findObject(By.text("Start"))
+        assertThat(startBtn.isClickable).isTrue()
+        startBtn.click()
+
+        // Enrolling page
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+
+        // Press back
+        device.pressBack()
+        device.waitForIdle()
+
+        // FindUdfps page (landscape-again)
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testFindUdfpsLandscapeWithGkPwHandle_clickStartThenBack_runAslandscape() {
+        runAsLandscape = true
+        testFindUdfpsLandscapeWithGkPwHandle_clickStartThenBack()
+    }
+
+    @Test
+    fun testFindUdfpsWithGkPwHandle_clickLottie() {
+        Assume.assumeTrue(canAssumeUdfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchFindSensorWithGkPwHandle()
+
+        // FindUdfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+        assertThat(lottie.isClickable).isTrue()
+        val startBtn = device.findObject(By.text("Start"))
+        assertThat(startBtn.isClickable).isTrue()
+        lottie.click()
+
+        // Enrolling page
+        assertThat(device.wait(Until.hasObject(By.text(enrollingPageTitle)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testFindUdfpsWithGkPwHandle_clickLottie_runAslandscape() {
+        runAsLandscape = true
+        testFindUdfpsWithGkPwHandle_clickLottie()
+    }
+
+    @Test
+    fun testFindSfpsWithGkPwHandle() {
+        Assume.assumeTrue(canAssumeSfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchFindSensorWithGkPwHandle()
+
+        // FindSfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(SETTINGS_PACKAGE_NAME, "illustration_lottie")
+        )
+        assertThat(lottie).isNotNull()
+
+        // We don't have view which can be clicked to run to next page, stop at here.
+    }
+
+    @Test
+    fun testFindSfpsWithGkPwHandle_runAslandscape() {
+        runAsLandscape = true
+        testFindSfpsWithGkPwHandle()
+    }
+
+    @Test
+    fun testFindRfpsWithGkPwHandle() {
+        Assume.assumeFalse(canAssumeUdfps || canAssumeSfps)
+
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchFindSensorWithGkPwHandle()
+
+        // FindRfps page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val lottie = device.findObject(
+            By.res(
+                SETTINGS_PACKAGE_NAME,
+                "illustration_lottie"
+            )
+        )
+        if (lottie == null) {
+            // FindSfps page shall have an animation view if no lottie view
+            assertThat(
+                device.findObject(
+                    By.res(
+                        SETTINGS_PACKAGE_NAME,
+                        "fingerprint_sensor_location_animation"
+                    )
+                )
+            ).isNotNull()
+        }
+    }
+
+    @Test
+    fun testFindRfpsWithGkPwHandle_runAslandscape() {
+        runAsLandscape = true
+        testFindRfpsWithGkPwHandle()
+    }
+
+    @Test
+    fun testFindSensorWithGkPwHandle_clickSkipInFindSensor() {
+        setDeviceOrientation()
+        LockScreenUtil.setLockscreen(LockScreenUtil.LockscreenType.PIN, TEST_PIN, true)
+        launchFindSensorWithGkPwHandle()
+
+        // FindSensor page
+        assertThat(device.wait(Until.hasObject(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+        val doItLaterBtn = device.findObject(By.text(DO_IT_LATER))
+        assertThat(doItLaterBtn).isNotNull()
+        assertThat(doItLaterBtn.isClickable).isTrue()
+        doItLaterBtn.click()
+
+        // Back to home
+        device.waitForWindowUpdate(SETTINGS_PACKAGE_NAME, IDLE_TIMEOUT)
+        assertThat(device.wait(Until.gone(By.text(DO_IT_LATER)), IDLE_TIMEOUT)).isTrue()
+    }
+
+    @Test
+    fun testFindSensorWithGkPwHandle_clickSkipInFindSensor_runAslandscape() {
+        runAsLandscape = true
+        testFindSensorWithGkPwHandle_clickSkipInFindSensor()
+    }
+
+    private fun launchIntroWithGkPwHandle(isSuw: Boolean) {
+        val lockPatternUtils = LockPatternUtils(context)
+        val lockscreenCredential = LockscreenCredential.createPin(TEST_PIN)
+        val userId = UserHandle.myUserId()
+        val onVerifyCallback =
+            LockPatternChecker.OnVerifyCallback { response: VerifyCredentialResponse, _: Int ->
+                val intent = newActivityIntent(isSuw)
+                intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.gatekeeperPasswordHandle)
+                context.startActivity(intent)
+            }
+        LockPatternChecker.verifyCredential(
+            lockPatternUtils, lockscreenCredential,
+            userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback
+        )
+    }
+
+    private fun launchFindSensorWithGkPwHandle() {
+        val lockPatternUtils = LockPatternUtils(context)
+        val lockscreenCredential = LockscreenCredential.createPin(TEST_PIN)
+        val userId = UserHandle.myUserId()
+        val onVerifyCallback =
+            LockPatternChecker.OnVerifyCallback { response: VerifyCredentialResponse, _: Int ->
+                val intent = newActivityIntent(false)
+                intent.putExtra(EXTRA_SKIP_INTRO, true)
+                intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.gatekeeperPasswordHandle)
+                context.startActivity(intent)
+            }
+        LockPatternChecker.verifyCredential(
+            lockPatternUtils, lockscreenCredential,
+            userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback
+        )
+    }
+
+    private fun launchEnrollingWithGkPwHandle() {
+        val lockPatternUtils = LockPatternUtils(context)
+        val lockscreenCredential = LockscreenCredential.createPin(TEST_PIN)
+        val userId = UserHandle.myUserId()
+        val onVerifyCallback =
+            LockPatternChecker.OnVerifyCallback { response: VerifyCredentialResponse, _: Int ->
+                val intent = newActivityIntent(false)
+                intent.putExtra(EXTRA_SKIP_FIND_SENSOR, true)
+                intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, response.gatekeeperPasswordHandle)
+                context.startActivity(intent)
+            }
+        LockPatternChecker.verifyCredential(
+            lockPatternUtils, lockscreenCredential,
+            userId, LockPatternUtils.VERIFY_FLAG_REQUEST_GK_PW_HANDLE, onVerifyCallback
+        )
+    }
+
+    private fun newActivityIntent(isSuw: Boolean): Intent {
+        val intent = Intent()
+        intent.setClassName(
+            SETTINGS_PACKAGE_NAME,
+            if (isSuw) SUW_ACTIVITY_CLASS_NAME else ACTIVITY_CLASS_NAME
+        )
+        if (isSuw) {
+            intent.putExtra(EXTRA_IS_SETUP_FLOW, true)
+        }
+        intent.putExtra(EXTRA_PAGE_TRANSITION_TYPE, 1)
+        intent.putExtra(Intent.EXTRA_USER_ID, context.userId)
+        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK)
+        return intent
+    }
+
+    private fun setDeviceOrientation() {
+        if (runAsLandscape) {
+            device.setOrientationLandscape()
+        } else {
+            device.setOrientationPortrait()
+        }
+        device.waitForIdle()
+    }
+
+    companion object {
+        private const val TAG = "FingerprintEnrollmentActivityTest"
+        const val SETTINGS_PACKAGE_NAME = "com.android.settings"
+        private const val ACTIVITY_CLASS_NAME =
+            "com.android.settings.biometrics2.ui.view.FingerprintEnrollmentActivity"
+        private const val SUW_ACTIVITY_CLASS_NAME = "$ACTIVITY_CLASS_NAME\$SetupActivity"
+        private const val EXTRA_IS_SETUP_FLOW = "isSetupFlow"
+        private const val EXTRA_SKIP_INTRO = "skip_intro"
+        private const val EXTRA_SKIP_FIND_SENSOR = "skip_find_sensor"
+        private const val EXTRA_PAGE_TRANSITION_TYPE = "page_transition_type"
+        private const val EXTRA_KEY_GK_PW_HANDLE = "gk_pw_handle"
+        private const val TEST_PIN = "1234"
+        private const val DO_IT_LATER = "Do it later"
+        private const val UDFPS_ENROLLING_TITLE = "Touch & hold the fingerprint sensor"
+        private const val SFPS_ENROLLING_TITLE =
+            "Lift, then touch. Move your finger slightly each time."
+        private const val RFPS_ENROLLING_TITLE = "Lift, then touch again"
+        private const val IDLE_TIMEOUT = 10000L
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/biometrics2/utils/LockScreenUtil.java b/tests/uitests/src/com/android/settings/biometrics2/utils/LockScreenUtil.java
index 23606e5..3505afa 100644
--- a/tests/uitests/src/com/android/settings/biometrics2/utils/LockScreenUtil.java
+++ b/tests/uitests/src/com/android/settings/biometrics2/utils/LockScreenUtil.java
@@ -22,10 +22,10 @@
 import android.app.KeyguardManager;
 import android.content.Context;
 import android.os.SystemClock;
-import android.support.test.uiautomator.UiDevice;
 import android.util.Log;
 
 import androidx.test.InstrumentationRegistry;
+import androidx.test.uiautomator.UiDevice;
 
 import org.junit.Assert;
 
diff --git a/tests/uitests/src/com/android/settings/ui/AboutPhoneSettingsTests.java b/tests/uitests/src/com/android/settings/ui/AboutPhoneSettingsTests.java
deleted file mode 100644
index a73a5a8..0000000
--- a/tests/uitests/src/com/android/settings/ui/AboutPhoneSettingsTests.java
+++ /dev/null
@@ -1,155 +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.ui;
-
-import static com.android.settings.ui.testutils.SettingsTestUtils.SETTINGS_PACKAGE;
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-import android.text.TextUtils;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-
-/** Verifies basic functionality of the About Phone screen */
-@RunWith(AndroidJUnit4.class)
-@SmallTest
-public class AboutPhoneSettingsTests {
-    private static final int TIMEOUT = 2000;
-
-    // TODO: retrieve using name/ids from com.android.settings package
-    private static final String[] sResourceTexts = {
-            "Phone number",
-            "Legal information",
-            "Regulatory labels"
-    };
-
-    private UiDevice mDevice;
-    private Instrumentation mInstrumentation;
-
-    @Before
-    public void setUp() throws Exception {
-        mInstrumentation = InstrumentationRegistry.getInstrumentation();
-        mDevice = UiDevice.getInstance(mInstrumentation);
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("Failed to freeze device orientaion", e);
-        }
-
-        // make sure we are in a clean state before starting the test
-        mDevice.pressHome();
-        Thread.sleep(TIMEOUT * 2);
-        launchAboutPhoneSettings(Settings.ACTION_DEVICE_INFO_SETTINGS);
-        // TODO: make sure we are always at the top of the app
-        // currently this will fail if the user has navigated into submenus
-        UiObject2 view =
-                mDevice.wait(
-                        Until.findObject(By.res(SETTINGS_PACKAGE + ":id/main_content")), TIMEOUT);
-        assertThat(view).isNotNull();
-        view.scroll(Direction.UP, 1.0f);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Adding an extra pressBack so we exit About Phone Settings
-        // and finish the test cleanly
-        mDevice.pressBack();
-        mDevice.pressHome(); // finish settings activity
-        mDevice.waitForIdle(TIMEOUT * 2); // give UI time to finish animating
-    }
-
-    @Test
-    public void testAllMenuEntriesExist() {
-        searchForItemsAndTakeAction(mDevice, sResourceTexts);
-    }
-
-    private void launchAboutPhoneSettings(String aboutSetting) {
-        Intent aboutIntent = new Intent(aboutSetting);
-        aboutIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        InstrumentationRegistry.getTargetContext().startActivity(aboutIntent);
-    }
-
-    /**
-     * Removes items found in the view and optionally takes some action.
-     */
-    private void removeItemsAndTakeAction(UiDevice device, ArrayList<String> itemsLeftToFind) {
-        for (Iterator<String> iterator = itemsLeftToFind.iterator(); iterator.hasNext(); ) {
-            String itemText = iterator.next();
-            UiObject2 item = device.wait(Until.findObject(By.text(itemText)), TIMEOUT);
-            if (item != null) {
-                iterator.remove();
-            }
-        }
-    }
-
-    /**
-     * Searches for UI elements in the current view and optionally takes some action.
-     *
-     * <p>Will scroll down the screen until it has found all elements or reached the bottom.
-     * This allows elements to be found and acted on even if they change order.
-     */
-    private void searchForItemsAndTakeAction(UiDevice device, String[] itemsToFind) {
-
-        ArrayList<String> itemsLeftToFind = new ArrayList<>(Arrays.asList(itemsToFind));
-        assertWithMessage("There must be at least one item to search for on the screen!")
-                .that(itemsLeftToFind)
-                .isNotEmpty();
-
-        boolean canScrollDown = true;
-        while (canScrollDown && !itemsLeftToFind.isEmpty()) {
-            removeItemsAndTakeAction(device, itemsLeftToFind);
-
-            // when we've finished searching the current view, scroll down
-            UiObject2 view =
-                    device.wait(
-                            Until.findObject(By.res(SETTINGS_PACKAGE + ":id/main_content")),
-                            TIMEOUT * 2);
-            if (view != null) {
-                canScrollDown = view.scroll(Direction.DOWN, 1.0f);
-            } else {
-                canScrollDown = false;
-            }
-        }
-        // check the last items once we have reached the bottom of the view
-        removeItemsAndTakeAction(device, itemsLeftToFind);
-
-        assertWithMessage("The following items were not found on the screen: "
-                + TextUtils.join(", ", itemsLeftToFind))
-                .that(itemsLeftToFind)
-                .isEmpty();
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/AboutPhoneSettingsTests.kt b/tests/uitests/src/com/android/settings/ui/AboutPhoneSettingsTests.kt
new file mode 100644
index 0000000..0cb03fe
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/AboutPhoneSettingsTests.kt
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+/** Verifies basic functionality of the About Phone screen  */
+@RunWith(AndroidJUnit4::class)
+@SmallTest
+class AboutPhoneSettingsTests {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_DEVICE_INFO_SETTINGS)
+    }
+
+    @Test
+    fun testAllMenuEntriesExist() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf(
+            "Device name",
+            "Legal information",
+            "Regulatory labels"
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/AppsSettingsRetainFilterTests.java b/tests/uitests/src/com/android/settings/ui/AppsSettingsRetainFilterTests.java
deleted file mode 100644
index 4698b9a..0000000
--- a/tests/uitests/src/com/android/settings/ui/AppsSettingsRetainFilterTests.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.ui;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Intent;
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-import android.system.helpers.ActivityHelper;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class AppsSettingsRetainFilterTests {
-    private static final int TIMEOUT = 2000;
-    private UiDevice mDevice;
-    private ActivityHelper mActivityHelper = null;
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        mActivityHelper = ActivityHelper.getInstance();
-
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientation", e);
-        }
-
-        mDevice.pressHome();
-        mDevice.waitForIdle(TIMEOUT);
-    }
-
-    @Test
-    public void testDisablingSystemAppAndRotateDevice() throws Exception {
-        launchAppsSettings();
-
-        UiObject2 calculator = mDevice.wait(
-                Until.findObject(By.text("Calculator")), TIMEOUT);
-        assertThat(calculator).isNotNull();
-        calculator.click();
-        mDevice.waitForIdle(TIMEOUT);
-
-        UiObject2 disableButton = mDevice.wait(
-                Until.findObject(By.text("DISABLE")), TIMEOUT);
-        assertThat(disableButton).isNotNull();
-        disableButton.click();
-        mDevice.waitForIdle(TIMEOUT);
-
-        // Click on "Disable App" on dialog.
-        UiObject2 dialogDisableButton = mDevice.wait(
-                Until.findObject(By.text("DISABLE APP")), TIMEOUT);
-        assertThat(dialogDisableButton).isNotNull();
-        dialogDisableButton.click();
-        mDevice.waitForIdle(TIMEOUT);
-
-        UiObject2 enableButton = mDevice.wait(
-                Until.findObject(By.text("ENABLE")), TIMEOUT);
-        assertThat(enableButton).isNotNull();
-
-        mDevice.pressBack();
-        mDevice.waitForIdle(TIMEOUT);
-
-        UiObject2 spinnerHeader =  mDevice.wait(
-                Until.findObject(By.text("All apps")), TIMEOUT);
-        assertThat(spinnerHeader).isNotNull();
-        spinnerHeader.click();
-
-        UiObject2 optionDisabledApps =  mDevice.wait(
-                Until.findObject(By.text("Disabled apps")), TIMEOUT);
-        assertThat(optionDisabledApps).isNotNull();
-        optionDisabledApps.click();
-        mDevice.waitForIdle(TIMEOUT);
-
-        try {
-            mDevice.setOrientationLeft();
-            mDevice.waitForIdle(TIMEOUT);
-        } catch (RemoteException e) {
-            throw new RuntimeException("Failed to freeze device orientation", e);
-        }
-
-        try {
-            mDevice.unfreezeRotation();
-            mDevice.waitForIdle(TIMEOUT);
-        } catch (RemoteException e) {
-            throw new RuntimeException("Failed to un-freeze device orientation", e);
-        }
-
-        UiObject2 spinnerDisabledApps =  mDevice.wait(
-                Until.findObject(By.text("Disabled apps")), TIMEOUT);
-        assertThat(spinnerDisabledApps).isNotNull();
-    }
-
-    private void launchAppsSettings() throws Exception {
-        Intent appsSettingsIntent = new
-                Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
-        mActivityHelper.launchIntent(appsSettingsIntent);
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/AppsSettingsRetainFilterTests.kt b/tests/uitests/src/com/android/settings/ui/AppsSettingsRetainFilterTests.kt
new file mode 100644
index 0000000..43610ec
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/AppsSettingsRetainFilterTests.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.ui
+
+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.assertObject
+import com.android.settings.ui.testutils.SettingsTestUtils.clickObject
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class AppsSettingsRetainFilterTests {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS)
+    }
+
+    @Test
+    fun testDisablingSystemAppAndRotateDevice() {
+        device.clickObject(By.text("Calculator"))
+        device.clickObject(By.text("Disable"))
+        device.clickObject(By.text("Disable app"))  // Click on "Disable App" on dialog.
+        device.assertObject(By.text("Enable"))
+        device.pressBack()
+        device.clickObject(By.text("All apps"))
+        device.clickObject(By.text("Disabled apps"))
+        device.setOrientationLeft()
+        device.assertObject(By.text("Disabled apps"))
+        device.setOrientationNatural()
+        device.assertObject(By.text("Disabled apps"))
+        device.clickObject(By.text("Calculator"))
+        device.clickObject(By.text("Enable"))
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/AppsSettingsTests.java b/tests/uitests/src/com/android/settings/ui/AppsSettingsTests.java
deleted file mode 100644
index 81532b1..0000000
--- a/tests/uitests/src/com/android/settings/ui/AppsSettingsTests.java
+++ /dev/null
@@ -1,131 +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.ui;
-
-import android.content.Intent;
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-import android.system.helpers.ActivityHelper;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-
-/** Verifies basic functionality of the About Phone screen */
-public class AppsSettingsTests extends InstrumentationTestCase {
-    private static final boolean LOCAL_LOGV = false;
-    private static final String SETTINGS_PACKAGE = "com.android.settings";
-    private static final String TAG = "AboutPhoneSettingsTest";
-    private static final int TIMEOUT = 2000;
-    private ActivityHelper mActivityHelper = null;
-
-    private UiDevice mDevice;
-
-    private static final String[] sResourceTexts = {
-        "Storage",
-        "Data usage",
-        "Permissions",
-        "App notifications",
-        "Open by default",
-        "Battery",
-        "Memory"
-    };
-
-    @Override
-    public void setUp() throws Exception {
-        if (LOCAL_LOGV) {
-            Log.d(TAG, "-------");
-        }
-        super.setUp();
-        mDevice = UiDevice.getInstance(getInstrumentation());
-        mActivityHelper = ActivityHelper.getInstance();
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("Failed to freeze device orientaion", e);
-        }
-
-        // make sure we are in a clean state before starting the test
-        mDevice.pressHome();
-        Thread.sleep(TIMEOUT * 2);
-        launchAppsSettings();
-        UiObject2 view =
-                mDevice.wait(
-                        Until.findObject(By.text("All apps")), TIMEOUT);
-        assertNotNull("Could not find Settings > Apps screen", view);
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        mDevice.pressBack();
-        mDevice.pressHome(); // finish settings activity
-        mDevice.waitForIdle(TIMEOUT * 2); // give UI time to finish animating
-        super.tearDown();
-    }
-
-    @MediumTest
-    public void testAppSettingsListForCalculator() {
-        UiObject2 calculator = mDevice.wait(
-                Until.findObject(By.text("Calculator")), TIMEOUT);
-        calculator.click();
-        for (String setting : sResourceTexts) {
-            UiObject2 appSetting =
-                mDevice.wait(
-                        Until.findObject(By.text(setting)), TIMEOUT);
-            assertNotNull("Missing setting for Calculator: " + setting, appSetting);
-            appSetting.scroll(Direction.DOWN, 10.0f);
-        }
-    }
-
-    @MediumTest
-    public void testDisablingAndEnablingSystemApp() throws Exception {
-        launchAppsSettings();
-        UiObject2 calculator = mDevice.wait(
-                Until.findObject(By.text("Calculator")), TIMEOUT);
-        calculator.click();
-        mDevice.waitForIdle(TIMEOUT);
-        UiObject2 appInfoList = mDevice.wait(
-            Until.findObject(By.res(SETTINGS_PACKAGE, "list")), TIMEOUT);
-        appInfoList.scroll(Direction.DOWN, 100.0f);
-        UiObject2 disableButton = mDevice.wait(
-                Until.findObject(By.text("DISABLE")), TIMEOUT);
-        disableButton.click();
-        mDevice.waitForIdle(TIMEOUT);
-        // Click on "Disable App" on dialog.
-        mDevice.wait(
-                Until.findObject(By.text("DISABLE APP")), TIMEOUT).click();
-        mDevice.waitForIdle(TIMEOUT);
-        UiObject2 enableButton = mDevice.wait(
-                Until.findObject(By.text("ENABLE")), TIMEOUT);
-        assertNotNull("App not disabled successfully", enableButton);
-        enableButton.click();
-        mDevice.waitForIdle(TIMEOUT);
-        disableButton = mDevice.wait(
-                Until.findObject(By.text("DISABLE")), TIMEOUT);
-        assertNotNull("App not enabled successfully", disableButton);
-    }
-
-    private void launchAppsSettings() throws Exception {
-        Intent appsSettingsIntent = new
-                Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
-        mActivityHelper.launchIntent(appsSettingsIntent);
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/AppsSettingsTests.kt b/tests/uitests/src/com/android/settings/ui/AppsSettingsTests.kt
new file mode 100644
index 0000000..9c22247
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/AppsSettingsTests.kt
@@ -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.ui
+
+import android.provider.Settings
+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.assertObject
+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.Test
+
+/** Verifies basic functionality of the About Phone screen  */
+class AppsSettingsTests {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS)
+        device.assertObject(By.text("All apps"))
+    }
+
+    @Test
+    fun testAppSettingsListForCalculator() {
+        device.clickObject(By.text("Calculator"))
+        device.waitObject(By.text("Open"))
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    @Test
+    fun testDisablingAndEnablingSystemApp() {
+        device.clickObject(By.text("Calculator"))
+        device.clickObject(By.text("Disable"))
+        device.clickObject(By.text("Disable app"))  // Click on "Disable app" on dialog.
+        device.clickObject(By.text("Enable"))
+        device.assertObject(By.text("Disable"))
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf(
+            "Notifications",
+            "Permissions",
+            "Storage & cache",
+            "Mobile data & Wi‑Fi",
+            "Screen time",
+            "App battery usage",
+            "Language",
+            "Unused app settings",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/BatterySettingsTest.kt b/tests/uitests/src/com/android/settings/ui/BatterySettingsTest.kt
new file mode 100644
index 0000000..d677fb5
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/BatterySettingsTest.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.ui
+
+import android.content.Intent
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class BatterySettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Intent.ACTION_POWER_USAGE_SUMMARY)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        // Items we really want to always show
+        val ON_SCREEN_TEXTS = listOf(
+            "Battery usage",
+            "Battery Saver",
+            "Battery percentage",
+            "Remaining battery life is approximate and can change based on usage"
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/BatterySettingsUITest.java b/tests/uitests/src/com/android/settings/ui/BatterySettingsUITest.java
deleted file mode 100644
index 3cf1e96..0000000
--- a/tests/uitests/src/com/android/settings/ui/BatterySettingsUITest.java
+++ /dev/null
@@ -1,75 +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.ui;
-
-import android.content.Intent;
-import android.os.RemoteException;
-import android.support.test.uiautomator.UiDevice;
-import android.system.helpers.SettingsHelper;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.settings.ui.testutils.SettingsTestUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@MediumTest
-@RunWith(AndroidJUnit4.class)
-public class BatterySettingsUITest {
-    // Items we really want to always show
-    private static final String[] CATEGORIES = new String[] {
-            "Battery Saver",
-            "Battery percentage",
-            "Battery usage data is approximate and can change based on usage",
-    };
-
-    private UiDevice mDevice;
-    private SettingsHelper mHelper;
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        mHelper = SettingsHelper.getInstance();
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientaion", e);
-        }
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Go back to home for next test.
-        mDevice.pressHome();
-    }
-
-    @Test
-    public void launchSecuritySettings() throws Exception {
-        // Launch Settings
-        SettingsHelper.launchSettingsPage(
-                InstrumentationRegistry.getTargetContext(), Intent.ACTION_POWER_USAGE_SUMMARY);
-        mHelper.scrollVert(false);
-        for (String category : CATEGORIES) {
-            SettingsTestUtils.assertTitleMatch(mDevice, category);
-        }
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/ConnectedDeviceTests.java b/tests/uitests/src/com/android/settings/ui/ConnectedDeviceTests.java
deleted file mode 100644
index ef0dacc..0000000
--- a/tests/uitests/src/com/android/settings/ui/ConnectedDeviceTests.java
+++ /dev/null
@@ -1,93 +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.ui;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-import android.content.Context;
-import android.content.Intent;
-import android.nfc.NfcAdapter;
-import android.nfc.NfcManager;
-import android.os.RemoteException;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@MediumTest
-@RunWith(AndroidJUnit4.class)
-public class ConnectedDeviceTests {
-
-    private static final String SETTINGS_PACKAGE = "com.android.settings";
-    private static final int TIMEOUT = 2000;
-    private UiDevice mDevice;
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientation", e);
-        }
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        mDevice.pressBack();
-        mDevice.pressHome();
-    }
-
-    // This NFC toggle test is set up this way since there's no way to set
-    // the NFC flag to enabled or disabled without touching UI.
-    // This way, we get coverage for whether or not the toggle button works.
-    @Test
-    public void testNFCToggle() throws Exception {
-        NfcManager manager = (NfcManager) InstrumentationRegistry.getTargetContext()
-                .getSystemService(Context.NFC_SERVICE);
-        NfcAdapter nfcAdapter = manager.getDefaultAdapter();
-        boolean nfcInitiallyEnabled = nfcAdapter.isEnabled();
-        InstrumentationRegistry.getContext().startActivity(new Intent()
-                .setClassName(
-                        SETTINGS_PACKAGE,
-                        "com.android.settings.Settings$ConnectedDeviceDashboardActivity"));
-        UiObject2 nfcSetting = mDevice.wait(Until.findObject(By.text("NFC")), TIMEOUT);
-        nfcSetting.click();
-        Thread.sleep(TIMEOUT * 2);
-        if (nfcInitiallyEnabled) {
-            assertFalse("NFC wasn't disabled on toggle", nfcAdapter.isEnabled());
-            nfcSetting.click();
-            Thread.sleep(TIMEOUT * 2);
-            assertTrue("NFC wasn't enabled on toggle", nfcAdapter.isEnabled());
-        } else {
-            assertTrue("NFC wasn't enabled on toggle", nfcAdapter.isEnabled());
-            nfcSetting.click();
-            Thread.sleep(TIMEOUT * 2);
-            assertFalse("NFC wasn't disabled on toggle", nfcAdapter.isEnabled());
-        }
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/DataSaverSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/DataSaverSettingsTest.kt
new file mode 100644
index 0000000..f3d2d9d
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/DataSaverSettingsTest.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.ui
+
+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.assertObject
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class DataSaverSettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_DATA_SAVER_SETTINGS)
+    }
+
+    @Test
+    fun hasSwitchBar() {
+        device.assertObject(By.text("Use Data Saver"))
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/DataUsageSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/DataUsageSettingsTest.kt
new file mode 100644
index 0000000..413fae7
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/DataUsageSettingsTest.kt
@@ -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.ui
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class DataUsageSettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_DATA_USAGE_SETTINGS)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf(
+            "0 B",
+            "Data Saver",
+            "Wi‑Fi data usage",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/DataUsageSettingsTests.java b/tests/uitests/src/com/android/settings/ui/DataUsageSettingsTests.java
deleted file mode 100644
index eddc771..0000000
--- a/tests/uitests/src/com/android/settings/ui/DataUsageSettingsTests.java
+++ /dev/null
@@ -1,83 +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.ui;
-
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
-import android.system.helpers.SettingsHelper;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-public class DataUsageSettingsTests extends InstrumentationTestCase {
-
-    private static final String SETTINGS_PACKAGE = "com.android.settings";
-    private static final int TIMEOUT = 2000;
-    private UiDevice mDevice;
-
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        mDevice = UiDevice.getInstance(getInstrumentation());
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientaion", e);
-        }
-    }
-
-    @Override
-    protected void tearDown() throws Exception {
-        // Need to finish settings activity
-        mDevice.pressBack();
-        mDevice.pressHome();
-        super.tearDown();
-    }
-
-    @MediumTest
-    public void testElementsOnDataUsageScreen() throws Exception {
-        launchDataUsageSettings();
-        assertNotNull("Data usage element not found",
-                mDevice.wait(Until.findObject(By.text("Usage")),
-                TIMEOUT));
-        assertNotNull("Data usage bar not found",
-                mDevice.wait(Until.findObject(By.res(SETTINGS_PACKAGE,
-                "color_bar")), TIMEOUT));
-        assertNotNull("WiFi Data usage element not found",
-                mDevice.wait(Until.findObject(By.text("Wi-Fi data usage")),
-                TIMEOUT));
-        assertNotNull("Network restrictions element not found",
-                mDevice.wait(Until.findObject(By.text("Network restrictions")),
-                TIMEOUT));
-    }
-
-    public void launchDataUsageSettings() throws Exception {
-        SettingsHelper.launchSettingsPage(getInstrumentation().getContext(),
-                Settings.ACTION_SETTINGS);
-        mDevice.wait(Until
-                .findObject(By.text("Network & Internet")), TIMEOUT)
-                .click();
-        Thread.sleep(TIMEOUT * 2);
-        assertNotNull("Network & internet screen not loaded", mDevice.wait(
-                Until.findObject(By.text("Data usage")), TIMEOUT));
-        mDevice.wait(Until
-                .findObject(By.text("Data usage")), TIMEOUT)
-                .click();
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/DevelopmentSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/DevelopmentSettingsTest.kt
new file mode 100644
index 0000000..1215383
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/DevelopmentSettingsTest.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.ui
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+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 org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+@SmallTest
+class DevelopmentSettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_DEVICE_INFO_SETTINGS)
+        device.assertHasTexts(listOf(BUILD_NUMBER))
+        repeat(7) {  // Enable development mode
+            device.clickObject(By.text(BUILD_NUMBER))
+        }
+        device.startMainActivityFromHomeScreen(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        private const val BUILD_NUMBER = "Build number"
+        val ON_SCREEN_TEXTS = listOf(
+            "Use developer options",
+            "Memory",
+            "Stay awake",
+            "USB debugging",
+            "App Compatibility Changes",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/HomepageDisplayTests.java b/tests/uitests/src/com/android/settings/ui/HomepageDisplayTests.java
deleted file mode 100644
index 807ac6f..0000000
--- a/tests/uitests/src/com/android/settings/ui/HomepageDisplayTests.java
+++ /dev/null
@@ -1,99 +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.ui;
-
-import static com.android.settings.ui.testutils.SettingsTestUtils.SETTINGS_PACKAGE;
-import static com.android.settings.ui.testutils.SettingsTestUtils.TIMEOUT;
-
-import android.os.RemoteException;
-import android.platform.test.annotations.Presubmit;
-import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-import android.system.helpers.SettingsHelper;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.settings.ui.testutils.SettingsTestUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@MediumTest
-@RunWith(AndroidJUnit4.class)
-public class HomepageDisplayTests {
-
-    private static final String[] HOMEPAGE_ITEMS = {
-            "Network & internet",
-            "Connected devices",
-            "Apps & notifications",
-            "Battery",
-            "Display",
-            "Sound",
-            "Storage",
-            "Security",
-            "Location",
-            "Privacy",
-            "Accounts",
-            "Accessibility",
-            "System"
-    };
-
-    private UiDevice mDevice;
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientaion", e);
-        }
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Need to finish settings activity
-        mDevice.pressHome();
-    }
-
-    @Presubmit
-    @Test
-    public void testHomepageCategory() throws Exception {
-        // Launch Settings
-        SettingsHelper.launchSettingsPage(
-                InstrumentationRegistry.getContext(), Settings.ACTION_SETTINGS);
-
-        // Scroll to top
-        final UiObject2 view = mDevice.wait(
-                Until.findObject(By.res(SETTINGS_PACKAGE, "main_content")),
-                TIMEOUT);
-        view.scroll(Direction.UP, 100f);
-
-        // Inspect each item
-        for (String item : HOMEPAGE_ITEMS) {
-            SettingsTestUtils.assertTitleMatch(mDevice, item);
-        }
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/HomepageDisplayTests.kt b/tests/uitests/src/com/android/settings/ui/HomepageDisplayTests.kt
new file mode 100644
index 0000000..72a84dc
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/HomepageDisplayTests.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class HomepageDisplayTests {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_SETTINGS)
+    }
+
+    @Test
+    fun hasHomepageItems() {
+        device.assertHasTexts(HOMEPAGE_ITEMS)
+    }
+
+    private companion object {
+        val HOMEPAGE_ITEMS = listOf(
+            "Network & internet",
+            "Connected devices",
+            "Apps",
+            "Notifications",
+            "Battery",
+            "Storage",
+            "Sound & vibration",
+            "Display",
+            "Accessibility",
+            "Security & privacy",
+            "Location",
+            "Passwords & accounts",
+            "System",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/LocationSettingsTests.java b/tests/uitests/src/com/android/settings/ui/LocationSettingsTests.java
index 8e391f3..da15c56 100644
--- a/tests/uitests/src/com/android/settings/ui/LocationSettingsTests.java
+++ b/tests/uitests/src/com/android/settings/ui/LocationSettingsTests.java
@@ -19,16 +19,19 @@
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.SettingsHelper;
 import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
 
+import androidx.test.filters.MediumTest;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.Direction;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
 
+import org.junit.Ignore;
+
+@Ignore
 public class LocationSettingsTests extends InstrumentationTestCase {
 
     private static final String SETTINGS_PACKAGE = "com.android.settings";
diff --git a/tests/uitests/src/com/android/settings/ui/MemorySettingsTest.kt b/tests/uitests/src/com/android/settings/ui/MemorySettingsTest.kt
new file mode 100644
index 0000000..312e2c6
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/MemorySettingsTest.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.ui
+
+import android.os.Flags
+import android.platform.test.annotations.RequiresFlagsDisabled
+import android.platform.test.annotations.RequiresFlagsEnabled
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.SmallTest
+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 org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+@SmallTest
+class MemorySettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_DEVICE_INFO_SETTINGS)
+        device.assertHasTexts(listOf(BUILD_NUMBER))
+        repeat(7) {  // Enable development mode
+            device.clickObject(By.text(BUILD_NUMBER))
+        }
+        device.startMainActivityFromHomeScreen(Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS)
+        device.clickObject(By.text(MEMORY_PAGE))
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_REMOVE_APP_PROFILER_PSS_COLLECTION)
+    fun memoryPageIfPssFlagDisabled() {
+        device.assertHasTexts(ON_SCREEN_TEXTS_DEFAULT)
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_REMOVE_APP_PROFILER_PSS_COLLECTION)
+    fun memoryPageIfPssFlagEnabled() {
+        device.assertHasTexts(ON_SCREEN_TEXTS_PSS_PROFILING_DISABLED)
+    }
+
+    private companion object {
+        private const val BUILD_NUMBER = "Build number"
+        private const val MEMORY_PAGE = "Memory"
+        val ON_SCREEN_TEXTS_DEFAULT = listOf(
+            "Performance",
+            "Total memory",
+            "Average used (%)",
+            "Free",
+        )
+        val ON_SCREEN_TEXTS_PSS_PROFILING_DISABLED = listOf(
+            "Enable memory usage profiling",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTest2.java b/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTest2.java
index c18583b..2dfcbbe 100644
--- a/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTest2.java
+++ b/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTest2.java
@@ -20,23 +20,27 @@
 import android.net.wifi.WifiManager;
 import android.os.RemoteException;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.BySelector;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.StaleObjectException;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.CommandsHelper;
 import android.system.helpers.SettingsHelper;
 import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.Suppress;
 import android.util.Log;
 
+import androidx.test.filters.MediumTest;
+import androidx.test.filters.Suppress;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.Direction;
+import androidx.test.uiautomator.StaleObjectException;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Ignore;
+
 /**
  * Additional tests for Wifi Settings.
  */
+@Ignore
 public class MoreWirelessSettingsTest2 extends InstrumentationTestCase {
     // These back button presses are performed in tearDown() to exit Wifi
     // Settings sub-menus that a test might finish in. This number should be
diff --git a/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTests.java b/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTests.java
index 2523686..fd65b83 100644
--- a/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTests.java
+++ b/tests/uitests/src/com/android/settings/ui/MoreWirelessSettingsTests.java
@@ -19,14 +19,15 @@
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.SettingsHelper;
 import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
 
+import androidx.test.filters.MediumTest;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.Direction;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
 
 public class MoreWirelessSettingsTests extends InstrumentationTestCase {
 
@@ -85,8 +86,8 @@
     public void testVPNMenuLoad() throws Exception {
         SettingsHelper.launchSettingsPage(getInstrumentation().getContext(),
                 Settings.ACTION_WIRELESS_SETTINGS);
-        mDevice.wait(Until
-                 .findObject(By.text("VPN")), TIMEOUT)
+        mDevice.findObject(By.res(SETTINGS_PACKAGE, "main_content"))
+                .scrollUntil(Direction.DOWN, Until.findObject(By.text("VPN")))
                  .click();
         Thread.sleep(TIMEOUT);
         UiObject2 usbTethering = mDevice.wait(Until
diff --git a/tests/uitests/src/com/android/settings/ui/NetworkOperatorSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/NetworkOperatorSettingsTest.kt
new file mode 100644
index 0000000..701ba2f
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/NetworkOperatorSettingsTest.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.ui
+
+import android.provider.Settings
+import android.telephony.SubscriptionManager
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import com.google.common.truth.TruthJUnit.assume
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class NetworkOperatorSettingsTest {
+    private val instrumentation = InstrumentationRegistry.getInstrumentation()
+    private val device = UiDevice.getInstance(instrumentation)
+
+    @Before
+    fun setUp() {
+        assume().that(
+            instrumentation.context.getSystemService(SubscriptionManager::class.java)!!
+                .availableSubscriptionInfoList
+        ).isNotEmpty()
+        device.startMainActivityFromHomeScreen(Settings.ACTION_NETWORK_OPERATOR_SETTINGS)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf(
+            "Use SIM",
+            "0 B",
+            "Calls preference",
+            "SMS preference",
+            "Mobile data",
+            "Roaming",
+            "App data usage",
+            "Data warning & limit",
+            "Preferred network type",
+            "Carrier settings version",
+            "Automatically select network",
+            "Choose network",
+            "Access Point Names",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/NfcSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/NfcSettingsTest.kt
new file mode 100644
index 0000000..2fbbfe5
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/NfcSettingsTest.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.ui
+
+import android.nfc.NfcAdapter
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import com.google.common.truth.TruthJUnit.assume
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class NfcSettingsTest {
+    private val instrumentation = InstrumentationRegistry.getInstrumentation()
+    private val device = UiDevice.getInstance(instrumentation)
+
+    @Before
+    fun setUp() {
+        assume().that(NfcAdapter.getDefaultAdapter(instrumentation.context)).isNotNull()
+        device.startMainActivityFromHomeScreen(Settings.ACTION_NFC_SETTINGS)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf(
+            "Use NFC",
+            "Require device unlock for NFC",
+            "Contactless payments",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/NotificationSettingsTests.java b/tests/uitests/src/com/android/settings/ui/NotificationSettingsTests.java
index e25005c..b44f5ca 100644
--- a/tests/uitests/src/com/android/settings/ui/NotificationSettingsTests.java
+++ b/tests/uitests/src/com/android/settings/ui/NotificationSettingsTests.java
@@ -19,21 +19,25 @@
 import android.content.Intent;
 import android.os.RemoteException;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.BySelector;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.ActivityHelper;
 import android.system.helpers.SettingsHelper;
 import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 import android.widget.ListView;
 
+import androidx.test.filters.MediumTest;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.Direction;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Ignore;
+
 /** Verifies that you can get to the notification app listing page from the apps & notifications
  * page */
+@Ignore
 public class NotificationSettingsTests extends InstrumentationTestCase {
     private static final boolean LOCAL_LOGV = false;
     private static final String TAG = "NotifiSettingsTests";
diff --git a/tests/uitests/src/com/android/settings/ui/SecuritySettingsLaunchTest.java b/tests/uitests/src/com/android/settings/ui/SecuritySettingsLaunchTest.java
deleted file mode 100644
index 5efb7e8..0000000
--- a/tests/uitests/src/com/android/settings/ui/SecuritySettingsLaunchTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.ui;
-
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.UiDevice;
-import android.system.helpers.SettingsHelper;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.settings.ui.testutils.SettingsTestUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@MediumTest
-@RunWith(AndroidJUnit4.class)
-public class SecuritySettingsLaunchTest {
-
-    // Items we really want to always show
-    private static final String[] CATEGORIES = new String[]{
-            "Security status",
-            "Device security",
-            "Privacy",
-    };
-
-    private UiDevice mDevice;
-    private SettingsHelper mHelper;
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        mHelper = SettingsHelper.getInstance();
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientaion", e);
-        }
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Go back to home for next test.
-        mDevice.pressHome();
-    }
-
-    @Test
-    public void launchSecuritySettings() throws Exception {
-        // Launch Settings
-        SettingsHelper.launchSettingsPage(
-                InstrumentationRegistry.getTargetContext(), Settings.ACTION_SECURITY_SETTINGS);
-        mHelper.scrollVert(false);
-        for (String category : CATEGORIES) {
-            SettingsTestUtils.assertTitleMatch(mDevice, category);
-        }
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt b/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt
new file mode 100644
index 0000000..b5a4fe9
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/SecuritySettingsTest.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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
+
+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.UiDevice
+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)
+    }
+
+    @Test
+    fun hasTexts() {
+        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(
+            "Device unlock",
+            "Privacy",
+            "More security & privacy",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/SoundSettingsTest.java b/tests/uitests/src/com/android/settings/ui/SoundSettingsTest.java
index 0c2a33f..f981f7f 100644
--- a/tests/uitests/src/com/android/settings/ui/SoundSettingsTest.java
+++ b/tests/uitests/src/com/android/settings/ui/SoundSettingsTest.java
@@ -19,18 +19,22 @@
 import android.content.ContentResolver;
 import android.os.SystemClock;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.SettingsHelper;
 import android.system.helpers.SettingsHelper.SettingsType;
 import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.Suppress;
+
+import androidx.test.filters.MediumTest;
+import androidx.test.filters.Suppress;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.Until;
+
+import org.junit.Ignore;
 
 import java.util.Map;
 
+@Ignore
 public class SoundSettingsTest extends InstrumentationTestCase {
     private static final String PAGE = Settings.ACTION_SOUND_SETTINGS;
     private static final int TIMEOUT = 2000;
diff --git a/tests/uitests/src/com/android/settings/ui/StorageSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/StorageSettingsTest.kt
new file mode 100644
index 0000000..771512a
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/StorageSettingsTest.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.ui
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class StorageSettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_INTERNAL_STORAGE_SETTINGS)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf(
+            "System",
+            "Documents & other",
+            "Games",
+            "Apps",
+            "Audio",
+            "Videos",
+            "Images",
+        )
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/StorageSettingsUITest.java b/tests/uitests/src/com/android/settings/ui/StorageSettingsUITest.java
deleted file mode 100644
index b21da71..0000000
--- a/tests/uitests/src/com/android/settings/ui/StorageSettingsUITest.java
+++ /dev/null
@@ -1,80 +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.ui;
-
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.UiDevice;
-import android.system.helpers.SettingsHelper;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import com.android.settings.ui.testutils.SettingsTestUtils;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class StorageSettingsUITest {
-
-    private static final String[] TITLES = {
-            "Photos & videos",
-            "Music & audio",
-            "Games",
-            "Movie & TV apps",
-            "Other apps",
-            "Files",
-            "System",
-    };
-    private UiDevice mDevice;
-    private SettingsHelper mHelper;
-
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-        mHelper = SettingsHelper.getInstance();
-
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientation", e);
-        }
-    }
-
-    @After
-    public void tearDown() {
-        mDevice.pressHome();
-    }
-
-    @Test
-    public void launchStorageSettings() throws Exception {
-        // Launch Settings
-        SettingsHelper.launchSettingsPage(
-                InstrumentationRegistry.getTargetContext(),
-                Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
-        mHelper.scrollVert(false);
-        for (String category : TITLES) {
-            SettingsTestUtils.assertTitleMatch(mDevice, category);
-        }
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/StorageWizardTest.java b/tests/uitests/src/com/android/settings/ui/StorageWizardTest.java
index eefd1eb..9d5c28b 100644
--- a/tests/uitests/src/com/android/settings/ui/StorageWizardTest.java
+++ b/tests/uitests/src/com/android/settings/ui/StorageWizardTest.java
@@ -20,18 +20,19 @@
 import android.os.SystemClock;
 import android.os.storage.DiskInfo;
 import android.os.storage.VolumeInfo;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.BySelector;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.UiObjectNotFoundException;
-import android.support.test.uiautomator.Until;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.UiObjectNotFoundException;
+import androidx.test.uiautomator.Until;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -42,6 +43,7 @@
  * Verify storage wizard flows. Temporarily enables a virtual disk which enables
  * testing on all devices, regardless of physical SD card support.
  */
+@Ignore
 @RunWith(AndroidJUnit4.class)
 public class StorageWizardTest {
     private static final String ANDROID_PACKAGE = "android";
diff --git a/tests/uitests/src/com/android/settings/ui/SyncSettingsTest.java b/tests/uitests/src/com/android/settings/ui/SyncSettingsTest.java
deleted file mode 100644
index 58a2fd3..0000000
--- a/tests/uitests/src/com/android/settings/ui/SyncSettingsTest.java
+++ /dev/null
@@ -1,71 +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.ui;
-
-import static junit.framework.Assert.assertTrue;
-
-import android.os.RemoteException;
-import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-import android.system.helpers.SettingsHelper;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@MediumTest
-@RunWith(AndroidJUnit4.class)
-public class SyncSettingsTest {
-    private static final int TIMEOUT = 2000;
-
-    private UiDevice mDevice;
-
-    @Before
-    public void setUp() throws Exception {
-        mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
-
-        try {
-            mDevice.setOrientationNatural();
-        } catch (RemoteException e) {
-            throw new RuntimeException("failed to freeze device orientaion", e);
-        }
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        // Need to finish settings activity
-        mDevice.pressHome();
-    }
-
-    @Test
-    public void syncPageShouldHaveAddAccountButton() throws Exception {
-        // Launch Settings
-        SettingsHelper.launchSettingsPage(
-                InstrumentationRegistry.getContext(), Settings.ACTION_SYNC_SETTINGS);
-        UiObject2 addAccount = mDevice.wait(
-                Until.findObject(By.text("Add account")), TIMEOUT);
-        assertTrue(addAccount != null);
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/SyncSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/SyncSettingsTest.kt
new file mode 100644
index 0000000..5de5ba5
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/SyncSettingsTest.kt
@@ -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.
+ */
+
+package com.android.settings.ui
+
+import android.provider.Settings
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.UiDevice
+import com.android.settings.ui.testutils.SettingsTestUtils.assertHasTexts
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class SyncSettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Settings.ACTION_SYNC_SETTINGS)
+    }
+
+    @Test
+    fun hasTexts() {
+        device.assertHasTexts(ON_SCREEN_TEXTS)
+    }
+
+    private companion object {
+        val ON_SCREEN_TEXTS = listOf("Add account")
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/WirelessNetworkSettingsTests.java b/tests/uitests/src/com/android/settings/ui/WirelessNetworkSettingsTests.java
index d637c53..22c73a9 100644
--- a/tests/uitests/src/com/android/settings/ui/WirelessNetworkSettingsTests.java
+++ b/tests/uitests/src/com/android/settings/ui/WirelessNetworkSettingsTests.java
@@ -17,6 +17,7 @@
 package com.android.settings.ui;
 
 import static com.android.settings.ui.testutils.SettingsTestUtils.SETTINGS_PACKAGE;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
@@ -24,25 +25,27 @@
 import android.os.RemoteException;
 import android.platform.test.annotations.Presubmit;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.CommandsHelper;
 import android.system.helpers.SettingsHelper;
-import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 
 import androidx.test.InstrumentationRegistry;
+import androidx.test.filters.MediumTest;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.Until;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 /**
  * Core tests for Wifi Settings.
  */
+@Ignore
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public class WirelessNetworkSettingsTests {
diff --git a/tests/uitests/src/com/android/settings/ui/ZonePickerSettingsTest.java b/tests/uitests/src/com/android/settings/ui/ZonePickerSettingsTest.java
index 4cb7ad9..bf13dfc 100644
--- a/tests/uitests/src/com/android/settings/ui/ZonePickerSettingsTest.java
+++ b/tests/uitests/src/com/android/settings/ui/ZonePickerSettingsTest.java
@@ -25,29 +25,31 @@
 import android.os.RemoteException;
 import android.os.SystemProperties;
 import android.provider.Settings;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.BySelector;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.UiObjectNotFoundException;
-import android.support.test.uiautomator.UiScrollable;
-import android.support.test.uiautomator.UiSelector;
-import android.support.test.uiautomator.Until;
 import android.system.helpers.SettingsHelper;
 import android.system.helpers.SettingsHelper.SettingsType;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.MediumTest;
 import androidx.test.runner.AndroidJUnit4;
+import androidx.test.uiautomator.By;
+import androidx.test.uiautomator.BySelector;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject;
+import androidx.test.uiautomator.UiObject2;
+import androidx.test.uiautomator.UiObjectNotFoundException;
+import androidx.test.uiautomator.UiScrollable;
+import androidx.test.uiautomator.UiSelector;
+import androidx.test.uiautomator.Until;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.util.TimeZone;
 
+@Ignore
 @MediumTest
 @RunWith(AndroidJUnit4.class)
 public class ZonePickerSettingsTest {
diff --git a/tests/uitests/src/com/android/settings/ui/inputmethods/DataSaverSummaryUITest.java b/tests/uitests/src/com/android/settings/ui/inputmethods/DataSaverSummaryUITest.java
deleted file mode 100644
index fd8c054..0000000
--- a/tests/uitests/src/com/android/settings/ui/inputmethods/DataSaverSummaryUITest.java
+++ /dev/null
@@ -1,70 +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.ui.inputmethods;
-
-import static com.android.settings.ui.testutils.SettingsTestUtils.TIMEOUT;
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class DataSaverSummaryUITest {
-
-    private Instrumentation mInstrumentation;
-    private Intent mIntent;
-    private UiDevice mUiDevice;
-
-    @Before
-    public void setUp() {
-        mInstrumentation = InstrumentationRegistry.getInstrumentation();
-        mUiDevice = UiDevice.getInstance(mInstrumentation);
-        mIntent = new Intent().setClassName("com.android.settings",
-                "com.android.settings.Settings$DataUsageSummaryActivity")
-                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-    }
-
-    @Test
-    public void launchSettings_hasSwitchBar() throws Exception {
-        launchDataSaverSettings();
-        final UiObject2 switchBar =
-                mUiDevice.wait(Until.findObject(By.text("Use Data Saver")), TIMEOUT);
-
-        assertThat(switchBar).isNotNull();
-    }
-
-    private void launchDataSaverSettings() throws InterruptedException {
-        mInstrumentation.getContext().startActivity(mIntent);
-        final UiObject2 prefDataSaver =
-                mUiDevice.wait(Until.findObject(By.text("Data Saver")), TIMEOUT);
-
-        assertThat(prefDataSaver).isNotNull();
-        prefDataSaver.click();
-        Thread.sleep(TIMEOUT * 2);
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsTest.kt b/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsTest.kt
new file mode 100644
index 0000000..d65efb7
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsTest.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.inputmethods
+
+import android.content.Intent
+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.SETTINGS_PACKAGE
+import com.android.settings.ui.testutils.SettingsTestUtils.assertObject
+import com.android.settings.ui.testutils.SettingsTestUtils.startMainActivityFromHomeScreen
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class SpellCheckerSettingsTest {
+    private val device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
+
+    @Before
+    fun setUp() {
+        device.startMainActivityFromHomeScreen(Intent().apply {
+            setClassName(
+                SETTINGS_PACKAGE,
+                "com.android.settings.Settings\$SpellCheckersSettingsActivity",
+            )
+        })
+    }
+
+    @Test
+    fun hasSwitchBar() {
+        device.assertObject(By.text("Use spell checker"))
+    }
+}
diff --git a/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsUITest.java b/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsUITest.java
deleted file mode 100644
index 9c18da5..0000000
--- a/tests/uitests/src/com/android/settings/ui/inputmethods/SpellCheckerSettingsUITest.java
+++ /dev/null
@@ -1,60 +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.ui.inputmethods;
-
-import static com.android.settings.ui.testutils.SettingsTestUtils.TIMEOUT;
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Instrumentation;
-import android.content.Intent;
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class SpellCheckerSettingsUITest {
-
-    private Instrumentation mInstrumentation;
-    private Intent mIntent;
-    private UiDevice mUiDevice;
-
-    @Before
-    public void setUp() {
-        mInstrumentation = InstrumentationRegistry.getInstrumentation();
-        mUiDevice = UiDevice.getInstance(mInstrumentation);
-        mIntent = new Intent().setClassName("com.android.settings",
-                "com.android.settings.Settings$SpellCheckersSettingsActivity")
-                .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-    }
-
-    @Test
-    public void launchSettings_hasSwitchBar() {
-        mInstrumentation.getContext().startActivity(mIntent);
-        final UiObject2 switchBar =
-                mUiDevice.wait(Until.findObject(By.text("Use spell checker")), TIMEOUT);
-
-        assertThat(switchBar).isNotNull();
-    }
-}
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/uitests/src/com/android/settings/ui/testutils/SettingsTestUtils.java b/tests/uitests/src/com/android/settings/ui/testutils/SettingsTestUtils.java
deleted file mode 100644
index 9b1be14..0000000
--- a/tests/uitests/src/com/android/settings/ui/testutils/SettingsTestUtils.java
+++ /dev/null
@@ -1,61 +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.ui.testutils;
-
-import static org.junit.Assert.assertNotNull;
-
-import android.support.test.uiautomator.By;
-import android.support.test.uiautomator.Direction;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject2;
-import android.support.test.uiautomator.Until;
-
-public class SettingsTestUtils {
-
-    public static final String SETTINGS_PACKAGE = "com.android.settings";
-    public static final int TIMEOUT = 2000;
-
-    private void scrollToTop(UiDevice device) throws Exception {
-        int count = 5;
-        UiObject2 view = null;
-        while (count >= 0) {
-            view = device.wait(
-                    Until.findObject(By.res(SETTINGS_PACKAGE, "main_content")),
-                    TIMEOUT);
-            view.scroll(Direction.UP, 1.0f);
-            count--;
-        }
-    }
-
-    public static void assertTitleMatch(UiDevice device, String title) {
-        int maxAttempt = 5;
-        UiObject2 item = null;
-        UiObject2 view = null;
-        while (maxAttempt-- > 0) {
-            item = device.wait(Until.findObject(By.res("android:id/title").text(title)), TIMEOUT);
-            if (item == null) {
-                view = device.wait(
-                        Until.findObject(By.res(SETTINGS_PACKAGE, "main_content")),
-                        TIMEOUT);
-                view.scroll(Direction.DOWN, 1.0f);
-            } else {
-                return;
-            }
-        }
-        assertNotNull(String.format("%s in Setting has not been loaded correctly", title), item);
-    }
-}
diff --git a/tests/uitests/src/com/android/settings/ui/testutils/SettingsTestUtils.kt b/tests/uitests/src/com/android/settings/ui/testutils/SettingsTestUtils.kt
new file mode 100644
index 0000000..1dd07cd
--- /dev/null
+++ b/tests/uitests/src/com/android/settings/ui/testutils/SettingsTestUtils.kt
@@ -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.ui.testutils
+
+import android.content.Context
+import android.content.Intent
+import android.view.KeyEvent
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.BySelector
+import androidx.test.uiautomator.Direction
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.UiObject2
+import androidx.test.uiautomator.Until
+import com.google.common.truth.Truth.assertWithMessage
+
+object SettingsTestUtils {
+    const val SETTINGS_PACKAGE = "com.android.settings"
+    const val TIMEOUT = 2000L
+
+    fun UiDevice.waitObject(bySelector: BySelector): UiObject2? =
+        wait(Until.findObject(bySelector), TIMEOUT)
+
+    fun UiDevice.assertObject(bySelector: BySelector): UiObject2 =
+        checkNotNull(waitObject(bySelector)) { "$bySelector not found" }
+
+    fun UiDevice.clickObject(bySelector: BySelector) = assertObject(bySelector).click()
+
+    fun UiDevice.startMainActivityFromHomeScreen(action: String) {
+        startMainActivityFromHomeScreen(Intent(action))
+    }
+
+    fun UiDevice.startMainActivityFromHomeScreen(intent: Intent) {
+        pressKeyCodes(intArrayOf(KeyEvent.KEYCODE_MENU, KeyEvent.KEYCODE_MENU))  // unlock
+
+        // Start from the home screen
+        pressHome()
+
+        // Wait for launcher
+        waitObject(By.pkg(launcherPackageName).depth(0))
+
+        // Launch the app
+        ApplicationProvider.getApplicationContext<Context>().startActivity(Intent(intent).apply {
+            addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
+            addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+        })
+
+        // Wait for the app to appear
+        waitObject(By.pkg(SETTINGS_PACKAGE).depth(0))
+    }
+
+    fun UiDevice.assertHasTexts(texts: List<String>) {
+        val scrollableObj =
+            findObject(By.res(SETTINGS_PACKAGE, "main_content"))
+                ?: findObject(By.scrollable(true))
+        for (text in texts) {
+            val selector = By.text(text)
+            assertWithMessage("Missing text: $text").that(
+                findObject(selector)
+                    ?: scrollableObj.scrollUntil(Direction.DOWN, Until.findObject(selector))
+                    ?: waitObject(selector)
+            ).isNotNull()
+        }
+    }
+}
diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp
index 30e8bc1..9d2d686 100644
--- a/tests/unit/Android.bp
+++ b/tests/unit/Android.bp
@@ -13,42 +13,39 @@
     certificate: "platform",
 
     libs: [
-        "android.test.runner",
         "telephony-common",
         "ims-common",
-        "android.test.base",
-        "android.test.mock",
     ],
 
     static_libs: [
-	"androidx.arch.core_core-testing",
+        "aconfig_settings_flags_lib",
+        "androidx.arch.core_core-testing",
         "androidx.test.core",
-        "androidx.test.rules",
         "androidx.test.espresso.core",
-        "androidx.test.espresso.contrib-nodeps",
-        "androidx.test.espresso.intents-nodeps",
+        "androidx.test.rules",
         "androidx.test.ext.junit",
         "androidx.preference_preference",
         "mockito-target-minus-junit4",
         "platform-test-annotations",
         "platform-test-rules",
-        "truth-prebuilt",
-        "ub-uiautomator",
+        "truth",
         "kotlinx_coroutines_test",
+        "flag-junit",
+        "Settings-testutils2",
+        "MediaDrmSettingsFlagsLib",
         // Don't add SettingsLib libraries here - you can use them directly as they are in the
         // instrumented Settings app.
     ],
 
     errorprone: {
-        javacflags: ["-Xep:CheckReturnValue:WARN"]
+        javacflags: ["-Xep:CheckReturnValue:WARN"],
     },
-
     // Include all test java/kotlin files.
     srcs: [
         "src/**/*.java",
         "src/**/*.kt",
     ],
-
+    use_resource_processor: true,
     platform_apis: true,
     test_suites: ["device-tests"],
 
diff --git a/tests/unit/res/drawable/credman_icon_1_1.xml b/tests/unit/res/drawable/credman_icon_1_1.xml
new file mode 100644
index 0000000..49f2d2e
--- /dev/null
+++ b/tests/unit/res/drawable/credman_icon_1_1.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ff0000"/>
+    <size android:width="1dp" android:height="1dp" />
+</shape>
diff --git a/tests/unit/res/drawable/credman_icon_32_32.xml b/tests/unit/res/drawable/credman_icon_32_32.xml
new file mode 100644
index 0000000..2612ed2
--- /dev/null
+++ b/tests/unit/res/drawable/credman_icon_32_32.xml
@@ -0,0 +1,20 @@
+<!--
+  ~ Copyright (C) 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ff0000"/>
+    <size android:width="128dp" android:height="128dp" />
+</shape>
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/accessibility/DisableAnimationsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
index 2933055..88ffdfe 100644
--- a/tests/unit/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
@@ -22,10 +22,16 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.content.ContentResolver;
 import android.content.Context;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
 import android.os.Looper;
+import android.os.UserHandle;
 import android.provider.Settings;
 
+import androidx.annotation.Nullable;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.preference.SwitchPreference;
@@ -34,15 +40,21 @@
 
 import com.android.settings.core.BasePreferenceController;
 
+import org.junit.After;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
 @RunWith(AndroidJUnit4.class)
 public class DisableAnimationsPreferenceControllerTest {
 
     private static final String TEST_PREFERENCE_KEY = "disable_animation";
     private final Context mContext = ApplicationProvider.getApplicationContext();
+    private Looper mLooper;
 
     private PreferenceScreen mScreen;
     private SwitchPreference mPreference;
@@ -53,10 +65,12 @@
         if (Looper.myLooper() == null) {
             Looper.prepare();
         }
+        mLooper = Looper.myLooper();
         PreferenceManager preferenceManager = new PreferenceManager(mContext);
         mScreen = preferenceManager.createPreferenceScreen(mContext);
         final SwitchPreference preference = new SwitchPreference(mContext);
         preference.setKey(TEST_PREFERENCE_KEY);
+        preference.setPersistent(false);
         mScreen.addPreference(preference);
 
         mController = new DisableAnimationsPreferenceController(mContext, TEST_PREFERENCE_KEY);
@@ -64,6 +78,14 @@
         mPreference = mScreen.findPreference(TEST_PREFERENCE_KEY);
     }
 
+    @After
+    public void cleanUp() {
+        // calling Settings.Global.resetToDefaults doesn't work somehow
+        // one could check if it works by running the test ones, and see if the settings
+        // that were changed being restored to default
+        setAnimationScaleAndWaitForUpdate(ANIMATION_ON_VALUE);
+    }
+
     @Test
     public void getAvailabilityStatus_shouldReturnAvailable() {
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
@@ -72,7 +94,7 @@
 
     @Test
     public void isChecked_enabledAnimation_shouldReturnFalse() {
-        setAnimationScale(ANIMATION_ON_VALUE);
+        setAnimationScaleAndWaitForUpdate(ANIMATION_ON_VALUE);
 
         mController.updateState(mPreference);
 
@@ -82,7 +104,7 @@
 
     @Test
     public void isChecked_disabledAnimation_shouldReturnTrue() {
-        setAnimationScale(ANIMATION_OFF_VALUE);
+        setAnimationScaleAndWaitForUpdate(ANIMATION_OFF_VALUE);
 
         mController.updateState(mPreference);
 
@@ -116,7 +138,7 @@
     public void onStart_enabledAnimation_shouldReturnFalse() {
         mController.onStart();
 
-        setAnimationScale(ANIMATION_ON_VALUE);
+        setAnimationScaleAndWaitForUpdate(ANIMATION_ON_VALUE);
 
         assertThat(mController.isChecked()).isFalse();
         assertThat(mPreference.isChecked()).isFalse();
@@ -126,7 +148,7 @@
     public void onStart_disabledAnimation_shouldReturnTrue() {
         mController.onStart();
 
-        setAnimationScale(ANIMATION_OFF_VALUE);
+        setAnimationScaleAndWaitForUpdate(ANIMATION_OFF_VALUE);
 
         assertThat(mController.isChecked()).isTrue();
         assertThat(mPreference.isChecked()).isTrue();
@@ -138,15 +160,34 @@
         mController.onStart();
         mController.onStop();
 
-        setAnimationScale(ANIMATION_ON_VALUE);
+        setAnimationScaleAndWaitForUpdate(ANIMATION_ON_VALUE);
 
         assertThat(mPreference.isChecked()).isTrue();
     }
 
-    private void setAnimationScale(float newValue) {
-        for (String animationPreference : TOGGLE_ANIMATION_TARGETS) {
-            Settings.Global.putFloat(mContext.getContentResolver(), animationPreference,
-                    newValue);
+    private void setAnimationScaleAndWaitForUpdate(float newValue) {
+        ContentResolver resolver = mContext.getContentResolver();
+        CountDownLatch countDownLatch = new CountDownLatch(TOGGLE_ANIMATION_TARGETS.size());
+        ContentObserver settingsObserver = new ContentObserver(new Handler(mLooper)) {
+            @Override
+            public void onChange(boolean selfChange, @Nullable Uri uri) {
+                countDownLatch.countDown();
+
+            }
+        };
+
+        try {
+            for (String key : TOGGLE_ANIMATION_TARGETS) {
+                resolver.registerContentObserver(Settings.Global.getUriFor(key),
+                        false, settingsObserver, UserHandle.USER_ALL);
+                Settings.Global.putFloat(mContext.getContentResolver(), key,
+                        newValue);
+            }
+            countDownLatch.await(5, TimeUnit.SECONDS);
+        } catch (InterruptedException e) {
+            Assert.fail(e.getMessage());
+        } finally {
+            resolver.unregisterContentObserver(settingsObserver);
         }
     }
 }
\ No newline at end of file
diff --git a/tests/unit/src/com/android/settings/accessibility/DisplaySizeDataTest.java b/tests/unit/src/com/android/settings/accessibility/DisplaySizeDataTest.java
new file mode 100644
index 0000000..3e0ea3a
--- /dev/null
+++ b/tests/unit/src/com/android/settings/accessibility/DisplaySizeDataTest.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.AsyncTask;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Assume;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+@RunWith(AndroidJUnit4.class)
+public class DisplaySizeDataTest {
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private DisplaySizeData mDisplaySizeData;
+    private int mInitialIndex;
+
+    @Before
+    public void setUp() {
+        mDisplaySizeData = new DisplaySizeData(mContext);
+        mInitialIndex = mDisplaySizeData.getInitialIndex();
+    }
+
+    @After
+    public void cleanUp() throws InterruptedException {
+        mDisplaySizeData.commit(mInitialIndex);
+        waitForDisplayChangesSynchronously();
+    }
+
+    @Test
+    public void commit_success() throws InterruptedException {
+        final int progress = mDisplaySizeData.getValues().size() - 1;
+        Assume.assumeTrue("We need more default display size to make the test effective",
+                mInitialIndex != progress && progress > 0);
+
+        mDisplaySizeData.commit(progress);
+        waitForDisplayChangesSynchronously();
+
+        final int density = mContext.getResources().getDisplayMetrics().densityDpi;
+        assertThat(density).isEqualTo(mDisplaySizeData.getValues().get(progress));
+    }
+
+    /**
+     * Wait for the display change propagated synchronously.
+     * <p/>
+     * Note: Currently, DisplayDensityUtils uses AsyncTask to change the display density
+     * asynchronously. If in the future we stop using the deprecated AsyncTask, we will need to
+     * update the wait mechanism in the test.
+     */
+    private void waitForDisplayChangesSynchronously() throws InterruptedException {
+        // The default AsyncTask.execute run tasks in serial order.
+        // Posting a new runnable and wait for it to finish means the previous tasks are all done.
+        CountDownLatch latch = new CountDownLatch(1);
+        AsyncTask.execute(latch::countDown);
+        latch.await(5, TimeUnit.SECONDS);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
index e3d2408..9a6bf70 100644
--- a/tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
@@ -27,6 +27,7 @@
 
 import com.android.settings.core.BasePreferenceController;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -51,6 +52,11 @@
                 mContext, "font_weight_adjustment");
     }
 
+    @After
+    public void teardown() {
+        Settings.Secure.resetToDefaults(mContext.getContentResolver(), /* tag= */ null);
+    }
+
     @Test
     public void getAvailabilityStatus_byDefault_shouldReturnAvailable() {
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
diff --git a/tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java b/tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java
index 95a0b83..e3c07ef 100644
--- a/tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java
@@ -16,17 +16,30 @@
 
 package com.android.settings.accessibility;
 
+import static com.android.internal.accessibility.AccessibilityShortcutController.COLOR_INVERSION_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
+import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.ComponentName;
+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.internal.accessibility.common.ShortcutConstants;
+import com.android.internal.accessibility.util.ShortcutUtils;
+
+import org.junit.AfterClass;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.Set;
+
 /** Tests for {@link PreferredShortcuts} */
 @RunWith(AndroidJUnit4.class)
 public class PreferredShortcutsTest {
@@ -39,8 +52,20 @@
     private static final String CLASS_NAME_2 = PACKAGE_NAME_2 + ".test2";
     private static final ComponentName COMPONENT_NAME_2 = new ComponentName(PACKAGE_NAME_2,
             CLASS_NAME_2);
+    private static final ContentResolver sContentResolver =
+            ApplicationProvider.getApplicationContext().getContentResolver();
 
-    private Context mContext = ApplicationProvider.getApplicationContext();
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+
+    @Before
+    public void setUp() {
+        clearShortcuts();
+    }
+
+    @AfterClass
+    public static void cleanUp() {
+        clearShortcuts();
+    }
 
     @Test
     public void retrieveUserShortcutType_fromSingleData_matchSavedType() {
@@ -50,7 +75,7 @@
 
         PreferredShortcuts.saveUserShortcutType(mContext, shortcut);
         final int retrieveType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                COMPONENT_NAME_1.flattenToString(), 0);
+                COMPONENT_NAME_1.flattenToString());
 
         assertThat(retrieveType).isEqualTo(type);
     }
@@ -67,8 +92,92 @@
         PreferredShortcuts.saveUserShortcutType(mContext, shortcut1);
         PreferredShortcuts.saveUserShortcutType(mContext, shortcut2);
         final int retrieveType = PreferredShortcuts.retrieveUserShortcutType(mContext,
-                COMPONENT_NAME_1.flattenToString(), 0);
+                COMPONENT_NAME_1.flattenToString());
 
         assertThat(retrieveType).isEqualTo(type1);
     }
+
+    @Test
+    public void updatePreferredShortcutsFromSetting_magnificationWithTripleTapAndVolumeKeyShortcuts_preferredShortcutsMatches() {
+        ShortcutUtils.optInValueToSettings(mContext, ShortcutConstants.UserShortcutType.HARDWARE,
+                MAGNIFICATION_CONTROLLER_NAME);
+        Settings.Secure.putInt(
+                sContentResolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                AccessibilityUtil.State.ON);
+
+        PreferredShortcuts.updatePreferredShortcutsFromSettings(mContext,
+                Set.of(MAGNIFICATION_CONTROLLER_NAME));
+        int expectedShortcutTypes = ShortcutConstants.UserShortcutType.HARDWARE
+                | ShortcutConstants.UserShortcutType.TRIPLETAP;
+
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, MAGNIFICATION_CONTROLLER_NAME
+                ))
+                .isEqualTo(expectedShortcutTypes);
+    }
+
+    @Test
+    public void updatePreferredShortcutsFromSetting_magnificationWithNoActiveShortcuts_noChangesOnPreferredShortcutTypes() {
+        int expectedShortcutTypes = ShortcutConstants.UserShortcutType.HARDWARE
+                | ShortcutConstants.UserShortcutType.SOFTWARE;
+        PreferredShortcuts.saveUserShortcutType(mContext,
+                new PreferredShortcut(MAGNIFICATION_CONTROLLER_NAME, expectedShortcutTypes));
+
+
+        PreferredShortcuts.updatePreferredShortcutsFromSettings(mContext,
+                Set.of(MAGNIFICATION_CONTROLLER_NAME));
+
+
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, MAGNIFICATION_CONTROLLER_NAME
+                ))
+                .isEqualTo(expectedShortcutTypes);
+    }
+
+    @Test
+    public void updatePreferredShortcutsFromSetting_multipleComponents_preferredShortcutsMatches() {
+        String target1 = COLOR_INVERSION_COMPONENT_NAME.flattenToString();
+        String target2 = DALTONIZER_COMPONENT_NAME.flattenToString();
+
+        Settings.Secure.putString(sContentResolver,
+                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, target1);
+        Settings.Secure.putString(sContentResolver,
+                Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE,
+                target1 + ShortcutConstants.SERVICES_SEPARATOR + target2);
+
+        int target1ShortcutTypes = ShortcutConstants.UserShortcutType.HARDWARE
+                | ShortcutConstants.UserShortcutType.SOFTWARE;
+        int target2ShortcutTypes = ShortcutConstants.UserShortcutType.HARDWARE;
+
+        PreferredShortcuts.updatePreferredShortcutsFromSettings(mContext, Set.of(target1, target2));
+
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, target1
+                ))
+                .isEqualTo(target1ShortcutTypes);
+        assertThat(
+                PreferredShortcuts.retrieveUserShortcutType(
+                        mContext, target2
+                ))
+                .isEqualTo(target2ShortcutTypes);
+    }
+
+    private static void clearShortcuts() {
+        Settings.Secure.putString(sContentResolver,
+                Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS, "");
+        Settings.Secure.putString(sContentResolver,
+                Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE, "");
+        Settings.Secure.putInt(
+                sContentResolver,
+                Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
+                AccessibilityUtil.State.OFF);
+        Settings.Secure.putInt(
+                sContentResolver,
+                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_TWO_FINGER_TRIPLE_TAP_ENABLED,
+                AccessibilityUtil.State.OFF);
+    }
 }
diff --git a/tests/unit/src/com/android/settings/accessibility/TEST_MAPPING b/tests/unit/src/com/android/settings/accessibility/TEST_MAPPING
new file mode 100644
index 0000000..5a89112
--- /dev/null
+++ b/tests/unit/src/com/android/settings/accessibility/TEST_MAPPING
@@ -0,0 +1,7 @@
+{
+  "imports": [
+    {
+      "path": "packages/apps/Settings/src/com/android/settings/accessibility/TEST_MAPPING"
+    }
+  ]
+}
\ 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 cf2a1f0..342212a 100644
--- a/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
+++ b/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
@@ -17,20 +17,29 @@
 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_APP_DEFAULT;
+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;
+import static android.platform.test.flag.junit.SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT;
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE;
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE;
 import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE;
 
 import static com.android.settings.applications.appcompat.UserAspectRatioManager.KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN;
 import static com.android.settings.applications.appcompat.UserAspectRatioManager.KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS;
+import static com.android.window.flags.Flags.FLAG_USER_MIN_ASPECT_RATIO_APP_DEFAULT;
 
 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;
@@ -39,16 +48,16 @@
 
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.IPackageManager;
 import android.content.pm.LauncherActivityInfo;
 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.os.RemoteException;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.DeviceConfig;
 
+import androidx.annotation.NonNull;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
@@ -59,7 +68,6 @@
 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;
@@ -68,36 +76,37 @@
  * To run this test: atest SettingsUnitTests:UserAspectRatioManagerTest
  */
 @RunWith(AndroidJUnit4.class)
-@LargeScreenOnly
 public class UserAspectRatioManagerTest {
-
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(DEVICE_DEFAULT);
+    private final String mPackageName = "com.test.mypackage";
     private Context mContext;
     private Resources mResources;
-    private UserAspectRatioManager mUtils;
+    private FakeUserAspectRatioManager mUtils;
     private String mOriginalSettingsFlag;
     private String mOriginalFullscreenFlag;
-    private String mPackageName = "com.test.mypackage";
-    private LauncherApps mLauncherApps;
+    private IPackageManager mIPm;
+    private PackageManager mPm;
     private List<LauncherActivityInfo> mLauncherActivities;
 
-    @Rule
-    public TestRule mDeviceTypeRule = new DeviceTypeRule();
-
     @Before
-    public void setUp() {
+    public void setUp() throws RemoteException, PackageManager.NameNotFoundException {
         mContext = spy(ApplicationProvider.getApplicationContext());
-        mResources = spy(mContext.getResources());
-        mLauncherApps = mock(LauncherApps.class);
+        mResources = mock(Resources.class);
+        final LauncherApps launcherApps = mock(LauncherApps.class);
         mLauncherActivities = mock(List.class);
-        mUtils = new UserAspectRatioManager(mContext) {
-            @Override
-            LauncherApps getLauncherApps() {
-                return mLauncherApps;
-            }
-        };
+        mIPm = mock(IPackageManager.class);
+        mPm = mock(PackageManager.class);
+        when(mContext.getPackageManager()).thenReturn(mPm);
 
         when(mContext.getResources()).thenReturn(mResources);
-        doReturn(mLauncherActivities).when(mLauncherApps).getActivityList(anyString(), any());
+        when(mContext.getSystemService(LauncherApps.class)).thenReturn(launcherApps);
+        enableAllDefaultAspectRatioOptions();
+        mSetFlagsRule.disableFlags(FLAG_USER_MIN_ASPECT_RATIO_APP_DEFAULT);
+
+        mUtils = new FakeUserAspectRatioManager(mContext, mIPm);
+
+        doReturn(mLauncherActivities).when(launcherApps).getActivityList(anyString(), any());
 
         mOriginalSettingsFlag = DeviceConfig.getProperty(
                 DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS);
@@ -108,6 +117,10 @@
                 DeviceConfig.NAMESPACE_WINDOW_MANAGER, KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN);
         setAspectRatioFullscreenBuildTimeFlagEnabled(true);
         setAspectRatioFullscreenDeviceConfigEnabled("true" /* enabled */, false /* makeDefault */);
+
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE, true);
+        mockProperty(PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE, true);
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true);
     }
 
     @After
@@ -120,13 +133,13 @@
     @Test
     public void testCanDisplayAspectRatioUi() {
         final ApplicationInfo canDisplay = new ApplicationInfo();
-        canDisplay.packageName = "com.app.candisplay";
+        canDisplay.packageName = mPackageName;
 
         doReturn(false).when(mLauncherActivities).isEmpty();
         assertTrue(mUtils.canDisplayAspectRatioUi(canDisplay));
 
         final ApplicationInfo noLauncherEntry = new ApplicationInfo();
-        noLauncherEntry.packageName = "com.app.nolauncherentry";
+        noLauncherEntry.packageName = mPackageName;
 
         doReturn(true).when(mLauncherActivities).isEmpty();
         assertFalse(mUtils.canDisplayAspectRatioUi(noLauncherEntry));
@@ -136,7 +149,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;
@@ -227,64 +240,199 @@
                 mPackageName));
     }
 
-    @Test
-    @FoldableOnly
-    public void testGetUserMinAspectRatioEntry_Foldable() {
-        // 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"));
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
-                        "user_aspect_ratio_fullscreen"));
+    private String getUserMinAspectRatioEntry(int aspectRatio, String packageName) {
+        return mUtils.getUserMinAspectRatioEntry(aspectRatio, packageName, mContext.getUserId());
     }
 
     @Test
-    @TabletOnly
-    public void testGetUserMinAspectRatioEntry_Tablet() {
+    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))
+        assertThat(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))
+        assertThat(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"));
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_16_9, mPackageName))
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext, "user_aspect_ratio_16_9"));
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(context,
+                        "user_aspect_ratio_half_screen"));
+        // R.string.user_aspect_ratio_display_size
+        assertThat(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(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_16_9, mPackageName))
+                .isEqualTo(ResourcesUtils.getResourcesString(context, "user_aspect_ratio_16_9"));
+        // R.string.user_aspect_ratio_4_3
+        assertThat(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(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,
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(context,
                 "user_aspect_ratio_fullscreen"));
     }
 
     @Test
     public void testGetUserMinAspectRatioEntry_fullscreenDisabled_shouldReturnDefault() {
         setAspectRatioFullscreenBuildTimeFlagEnabled(false);
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
-                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                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 FakeUserAspectRatioManager(mContext, mIPm);
+
+        assertThat(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 FakeUserAspectRatioManager(mContext, mIPm));
+    }
+
+    @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 FakeUserAspectRatioManager(mContext, mIPm));
+    }
+
+    @Test
+    public void testGetUserMinAspectRatioMapping_appDefaultFlagEnabled() {
+        // Flag is disabled by default, app default not loaded
+        assertFalse(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_APP_DEFAULT, mPackageName));
+
+        mSetFlagsRule.enableFlags(FLAG_USER_MIN_ASPECT_RATIO_APP_DEFAULT);
+        mUtils = new FakeUserAspectRatioManager(mContext, mIPm);
+
+        assertTrue(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_APP_DEFAULT, mPackageName));
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_APP_DEFAULT, mPackageName))
+                .isEqualTo(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName));
+    }
+
+    @Test
+    public void testGetUserMinAspectRatioEntry_enabledFullscreenOverride_returnsFullscreen() {
+        setIsOverrideToFullscreenEnabled(true);
+        // Fullscreen option is pre-selected
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName))
+                .isEqualTo(ResourcesUtils.getResourcesString(
+                        ApplicationProvider.getApplicationContext(),
+                        "user_aspect_ratio_fullscreen"));
+
+        // App default exists
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_APP_DEFAULT, mPackageName))
+                .isEqualTo(ResourcesUtils.getResourcesString(
+                        ApplicationProvider.getApplicationContext(),
+                        "user_aspect_ratio_app_default"));
+    }
+
+    @Test
+    public void testGetUserMinAspectRatioEntry_disabledFullscreenOverride_returnsUnchanged() {
+        setIsOverrideToFullscreenEnabled(false);
+        // Fullscreen option is not pre-selected
+        assertThat(getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName))
+                .isEqualTo(ResourcesUtils.getResourcesString(
+                        ApplicationProvider.getApplicationContext(),
+                        "user_aspect_ratio_app_default"));
+    }
+
+    @Test
+    public void testIsOverrideToFullscreenEnabled_returnsTrue()
+            throws PackageManager.NameNotFoundException {
+        setIsOverrideToFullscreenEnabled(true);
+        assertTrue(mUtils.isOverrideToFullscreenEnabled(mPackageName, mContext.getUserId()));
+
+        mockProperty(PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE, true);
+        assertTrue(mUtils.isOverrideToFullscreenEnabled(mPackageName, mContext.getUserId()));
+    }
+
+    @Test
+    public void testIsOverrideToFullscreenEnabled_optOut_returnsFalse()
+            throws PackageManager.NameNotFoundException {
+        setIsOverrideToFullscreenEnabled(true);
+        mockProperty(PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE, false);
+        assertFalse(mUtils.isOverrideToFullscreenEnabled(mPackageName, mContext.getUserId()));
+    }
+
+    @Test
+    public void testIsOverrideToFullscreenEnabled_flagDisabled_returnsFalse() {
+        mUtils.setFullscreenCompatChange(true);
+        assertFalse(mUtils.isOverrideToFullscreenEnabled(mPackageName, mContext.getUserId()));
+    }
+
+    @Test
+    public void testIsOverrideToFullscreenEnabled_optionDisabled_returnsFalse() {
+        mUtils.setFullscreenCompatChange(true);
+        when(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN, mPackageName))
+                .thenReturn(false);
+        assertFalse(mUtils.isOverrideToFullscreenEnabled(mPackageName, mContext.getUserId()));
+    }
+
+    private void setIsOverrideToFullscreenEnabled(boolean enabled) {
+        if (enabled) {
+            mSetFlagsRule.enableFlags(FLAG_USER_MIN_ASPECT_RATIO_APP_DEFAULT);
+            mUtils = new FakeUserAspectRatioManager(mContext, mIPm);
+        }
+        mUtils.setFullscreenCompatChange(enabled);
+        when(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN, mPackageName))
+                .thenReturn(enabled);
+    }
+
+    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(
                 propertyName, value, mPackageName, "" /* className */);
-        PackageManager pm = mock(PackageManager.class);
-        when(mContext.getPackageManager()).thenReturn(pm);
-        when(pm.getProperty(propertyName, mPackageName)).thenReturn(prop);
+        when(mPm.getProperty(propertyName, mPackageName)).thenReturn(prop);
     }
 
     private void setAspectRatioSettingsBuildTimeFlagEnabled(boolean enabled) {
@@ -306,4 +454,21 @@
         DeviceConfig.setProperty(DeviceConfig.NAMESPACE_WINDOW_MANAGER,
                 KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN, enabled, makeDefault);
     }
+
+    private static class FakeUserAspectRatioManager extends UserAspectRatioManager {
+        private boolean mFullscreenCompatChange = false;
+
+        private FakeUserAspectRatioManager(@NonNull Context context, IPackageManager pm) {
+            super(context, pm);
+        }
+
+        @Override
+        boolean isFullscreenCompatChangeEnabled(String pkgName, int userId) {
+            return mFullscreenCompatChange;
+        }
+
+        void setFullscreenCompatChange(boolean enabled) {
+            mFullscreenCompatChange = enabled;
+        }
+    }
 }
diff --git a/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java b/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java
index e369f52..b5aeac7 100644
--- a/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/applications/credentials/CredentialManagerPreferenceControllerTest.java
@@ -18,10 +18,10 @@
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 
 import android.app.Activity;
@@ -30,20 +30,22 @@
 import android.content.Intent;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ServiceInfo;
+import android.content.res.Resources;
 import android.credentials.CredentialProviderInfo;
+import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Looper;
-import android.os.UserHandle;
 import android.provider.Settings;
 
-import androidx.lifecycle.Lifecycle;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 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 androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.settings.tests.unit.R;
 
 import com.google.android.collect.Lists;
 
@@ -64,14 +66,13 @@
     private PreferenceScreen mScreen;
     private PreferenceCategory mCredentialsPreferenceCategory;
     private CredentialManagerPreferenceController.Delegate mDelegate;
-    private Optional<Integer> mReceivedResultCode;
 
     private static final String TEST_PACKAGE_NAME_A = "com.android.providerA";
     private static final String TEST_PACKAGE_NAME_B = "com.android.providerB";
     private static final String TEST_PACKAGE_NAME_C = "com.android.providerC";
     private static final String TEST_TITLE_APP_A = "test app A";
     private static final String TEST_TITLE_APP_B = "test app B";
-    private static final String TEST_TITLE_SERVICE_C = "test service C1";
+    private static final String TEST_TITLE_APP_C = "test app C1";
     private static final String PRIMARY_INTENT = "android.settings.CREDENTIAL_PROVIDER";
     private static final String ALTERNATE_INTENT = "android.settings.SYNC_SETTINGS";
 
@@ -85,24 +86,27 @@
         mCredentialsPreferenceCategory = new PreferenceCategory(mContext);
         mCredentialsPreferenceCategory.setKey("credentials_test");
         mScreen.addPreference(mCredentialsPreferenceCategory);
-        mReceivedResultCode = Optional.empty();
-        mDelegate = new CredentialManagerPreferenceController.Delegate() {
-                public void setActivityResult(int resultCode) {
-                    mReceivedResultCode = Optional.of(resultCode);
-                }
-                public void forceDelegateRefresh() {}
-            };
+        mDelegate =
+                new CredentialManagerPreferenceController.Delegate() {
+                    public void setActivityResult(int resultCode) {}
+
+                    public void forceDelegateRefresh() {}
+                };
     }
 
     @Test
     // Tests that getAvailabilityStatus() does not throw an exception if it's called before the
     // Controller is initialized (this can happen during indexing).
     public void getAvailabilityStatus_withoutInit_returnsUnavailable() {
+        if (Looper.myLooper() == null) {
+            Looper.prepare(); // needed to create the preference screen
+        }
+
         CredentialManagerPreferenceController controller =
                 new CredentialManagerPreferenceController(
                         mContext, mCredentialsPreferenceCategory.getKey());
         assertThat(controller.isConnected()).isFalse();
-        assertThat(controller.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+        assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
@@ -110,23 +114,43 @@
         CredentialManagerPreferenceController controller =
                 createControllerWithServices(Collections.emptyList());
         assertThat(controller.isConnected()).isFalse();
-        assertThat(controller.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+        assertThat(controller.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
     }
 
     @Test
     public void getAvailabilityStatus_withServices_returnsAvailable() {
         CredentialManagerPreferenceController controller =
                 createControllerWithServices(Lists.newArrayList(createCredentialProviderInfo()));
-        assertThat(controller.isConnected()).isFalse();
+        controller.setSimulateConnectedForTests(true);
+        assertThat(controller.isConnected()).isTrue();
+        controller.setSimulateHiddenForTests(Optional.of(false));
+        assertThat(controller.isHiddenDueToNoProviderSet()).isFalse();
         assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
+    public void getAvailabilityStatus_isHidden_returnsConditionallyUnavailable() {
+        CredentialManagerPreferenceController controller =
+                createControllerWithServices(Lists.newArrayList(createCredentialProviderInfo()));
+        controller.setSimulateConnectedForTests(true);
+        assertThat(controller.isConnected()).isTrue();
+        controller.setSimulateHiddenForTests(Optional.of(true));
+        assertThat(controller.isHiddenDueToNoProviderSet()).isTrue();
+        assertThat(controller.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
     public void displayPreference_withServices_preferencesAdded() {
         CredentialManagerPreferenceController controller =
                 createControllerWithServices(Lists.newArrayList(createCredentialProviderInfo()));
+        controller.setSimulateConnectedForTests(true);
+        controller.setSimulateHiddenForTests(Optional.of(false));
+
+        assertThat(controller.isHiddenDueToNoProviderSet()).isFalse();
+        assertThat(controller.isConnected()).isTrue();
+        assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+
         controller.displayPreference(mScreen);
-        assertThat(controller.isConnected()).isFalse();
         assertThat(mCredentialsPreferenceCategory.getPreferenceCount()).isEqualTo(1);
 
         Preference pref = mCredentialsPreferenceCategory.getPreference(0);
@@ -134,7 +158,7 @@
     }
 
     @Test
-    public void buildSwitchPreference() {
+    public void buildPreference() {
         CredentialProviderInfo providerInfo1 =
                 createCredentialProviderInfoWithSubtitle(
                         "com.android.provider1", "ClassA", "Service Title", null);
@@ -143,8 +167,11 @@
                         "com.android.provider2", "ClassA", "Service Title", "Summary Text");
         CredentialManagerPreferenceController controller =
                 createControllerWithServices(Lists.newArrayList(providerInfo1, providerInfo2));
+        controller.setSimulateConnectedForTests(true);
+        assertThat(controller.isConnected()).isTrue();
+        controller.setSimulateHiddenForTests(Optional.of(false));
+        assertThat(controller.isHiddenDueToNoProviderSet()).isFalse();
         assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-        assertThat(controller.isConnected()).isFalse();
 
         // Test the data is correct.
         assertThat(providerInfo1.isEnabled()).isFalse();
@@ -158,13 +185,15 @@
         assertThat(enabledProviders.contains("com.android.provider1")).isTrue();
 
         // Create the pref (checked).
-        SwitchPreference pref = controller.createPreference(mContext, providerInfo1);
+        CredentialManagerPreferenceController.CombiPreference pref =
+                controller.createPreference(mContext, providerInfo1);
         assertThat(pref.getTitle().toString()).isEqualTo("Service Title");
         assertThat(pref.isChecked()).isTrue();
         assertThat(pref.getSummary()).isNull();
 
         // Create the pref (not checked).
-        SwitchPreference pref2 = controller.createPreference(mContext, providerInfo2);
+        CredentialManagerPreferenceController.CombiPreference pref2 =
+                controller.createPreference(mContext, providerInfo2);
         assertThat(pref2.getTitle().toString()).isEqualTo("Service Title");
         assertThat(pref2.isChecked()).isFalse();
         assertThat(pref2.getSummary().toString()).isEqualTo("Summary Text");
@@ -182,8 +211,11 @@
                                 createCredentialProviderInfo("com.android.provider4", "ClassA"),
                                 createCredentialProviderInfo("com.android.provider5", "ClassA"),
                                 createCredentialProviderInfo("com.android.provider6", "ClassA")));
+        controller.setSimulateConnectedForTests(true);
+        assertThat(controller.isConnected()).isTrue();
+        controller.setSimulateHiddenForTests(Optional.of(false));
+        assertThat(controller.isHiddenDueToNoProviderSet()).isFalse();
         assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-        assertThat(controller.isConnected()).isFalse();
 
         // Ensure that we stay under 5 providers.
         assertThat(controller.togglePackageNameEnabled("com.android.provider1")).isTrue();
@@ -248,8 +280,11 @@
                         "com.android.provider2", "ClassA", "Service Title", true);
         CredentialManagerPreferenceController controller =
                 createControllerWithServices(Lists.newArrayList(providerInfo1, providerInfo2));
+        controller.setSimulateConnectedForTests(true);
+        assertThat(controller.isConnected()).isTrue();
+        controller.setSimulateHiddenForTests(Optional.of(false));
+        assertThat(controller.isHiddenDueToNoProviderSet()).isFalse();
         assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-        assertThat(controller.isConnected()).isFalse();
 
         // Test the data is correct.
         assertThat(providerInfo1.isEnabled()).isFalse();
@@ -284,34 +319,33 @@
                         "test service B");
         CredentialProviderInfo serviceC1 =
                 createCredentialProviderInfoWithAppLabel(
-                        TEST_PACKAGE_NAME_C,
-                        "CredManProviderC1",
-                        "test app C1",
-                        TEST_TITLE_SERVICE_C);
+                        TEST_PACKAGE_NAME_C, "CredManProviderC1", "test app C1", TEST_TITLE_APP_C);
         CredentialProviderInfo serviceC2 =
                 createCredentialProviderInfoWithAppLabel(
-                        TEST_PACKAGE_NAME_C,
-                        "CredManProviderC2",
-                        "test app C2",
-                        TEST_TITLE_SERVICE_C);
+                        TEST_PACKAGE_NAME_C, "CredManProviderC2", "test app C2", TEST_TITLE_APP_C);
         CredentialProviderInfo serviceC3 =
                 createCredentialProviderInfoBuilder(
                                 TEST_PACKAGE_NAME_C,
                                 "CredManProviderC3",
                                 "test app C3",
-                                TEST_TITLE_SERVICE_C)
+                                TEST_TITLE_APP_C)
                         .setEnabled(true)
                         .build();
 
         CredentialManagerPreferenceController controller =
                 createControllerWithServices(
                         Lists.newArrayList(serviceA1, serviceB1, serviceC1, serviceC2, serviceC3));
-        controller.displayPreference(mScreen);
+        controller.setSimulateConnectedForTests(true);
+        controller.setSimulateHiddenForTests(Optional.of(false));
 
-        assertThat(controller.isConnected()).isFalse();
+        assertThat(controller.isHiddenDueToNoProviderSet()).isFalse();
+        assertThat(controller.isConnected()).isTrue();
+        assertThat(controller.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+
+        controller.displayPreference(mScreen);
         assertThat(mCredentialsPreferenceCategory.getPreferenceCount()).isEqualTo(3);
 
-        Map<String, SwitchPreference> prefs =
+        Map<String, CredentialManagerPreferenceController.CombiPreference> prefs =
                 controller.buildPreferenceList(mContext, mCredentialsPreferenceCategory);
         assertThat(prefs.keySet())
                 .containsExactly(TEST_PACKAGE_NAME_A, TEST_PACKAGE_NAME_B, TEST_PACKAGE_NAME_C);
@@ -323,7 +357,7 @@
         assertThat(prefs.get(TEST_PACKAGE_NAME_B).getTitle()).isEqualTo(TEST_TITLE_APP_B);
         assertThat(prefs.get(TEST_PACKAGE_NAME_B).isChecked()).isFalse();
         assertThat(prefs.containsKey(TEST_PACKAGE_NAME_C)).isTrue();
-        assertThat(prefs.get(TEST_PACKAGE_NAME_C).getTitle()).isEqualTo(TEST_TITLE_SERVICE_C);
+        assertThat(prefs.get(TEST_PACKAGE_NAME_C).getTitle()).isEqualTo(TEST_TITLE_APP_C);
         assertThat(prefs.get(TEST_PACKAGE_NAME_C).isChecked()).isTrue();
     }
 
@@ -349,8 +383,10 @@
         Intent intent = new Intent(PRIMARY_INTENT);
         intent.setData(Uri.parse("package:" + packageName));
         assertThat(controller.verifyReceivedIntent(intent)).isTrue();
-        controller.completeEnableProviderDialogBox(DialogInterface.BUTTON_POSITIVE, packageName, true);
-        assertThat(mReceivedResultCode.get()).isEqualTo(Activity.RESULT_OK);
+        int resultCode =
+                controller.completeEnableProviderDialogBox(
+                        DialogInterface.BUTTON_POSITIVE, packageName, true);
+        assertThat(resultCode).isEqualTo(Activity.RESULT_OK);
     }
 
     @Test
@@ -364,8 +400,10 @@
         Intent intent = new Intent(PRIMARY_INTENT);
         intent.setData(Uri.parse("package:" + packageName));
         assertThat(controller.verifyReceivedIntent(intent)).isTrue();
-        controller.completeEnableProviderDialogBox(DialogInterface.BUTTON_NEGATIVE, packageName, true);
-        assertThat(mReceivedResultCode.get()).isEqualTo(Activity.RESULT_CANCELED);
+        int resultCode =
+                controller.completeEnableProviderDialogBox(
+                        DialogInterface.BUTTON_NEGATIVE, packageName, true);
+        assertThat(resultCode).isEqualTo(Activity.RESULT_CANCELED);
     }
 
     @Test
@@ -390,8 +428,10 @@
         Intent intent = new Intent(ALTERNATE_INTENT);
         intent.setData(Uri.parse("package:" + packageName));
         assertThat(controller.verifyReceivedIntent(intent)).isTrue();
-        controller.completeEnableProviderDialogBox(DialogInterface.BUTTON_POSITIVE, packageName, true);
-        assertThat(mReceivedResultCode.get()).isEqualTo(Activity.RESULT_OK);
+        int resultCode =
+                controller.completeEnableProviderDialogBox(
+                        DialogInterface.BUTTON_POSITIVE, packageName, true);
+        assertThat(resultCode).isEqualTo(Activity.RESULT_OK);
     }
 
     @Test
@@ -405,8 +445,10 @@
         Intent intent = new Intent(ALTERNATE_INTENT);
         intent.setData(Uri.parse("package:" + packageName));
         assertThat(controller.verifyReceivedIntent(intent)).isTrue();
-        controller.completeEnableProviderDialogBox(DialogInterface.BUTTON_NEGATIVE, packageName, true);
-        assertThat(mReceivedResultCode.get()).isEqualTo(Activity.RESULT_CANCELED);
+        int resultCode =
+                controller.completeEnableProviderDialogBox(
+                        DialogInterface.BUTTON_NEGATIVE, packageName, true);
+        assertThat(resultCode).isEqualTo(Activity.RESULT_CANCELED);
     }
 
     @Test
@@ -420,7 +462,6 @@
         Intent intent = new Intent(Settings.ACTION_REQUEST_SET_AUTOFILL_SERVICE);
         intent.setData(Uri.parse("package:" + packageName));
         assertThat(controller.verifyReceivedIntent(intent)).isFalse();
-        assertThat(mReceivedResultCode.isPresent()).isFalse();
     }
 
     @Test
@@ -431,7 +472,65 @@
 
         // Use a null intent.
         assertThat(controller.verifyReceivedIntent(null)).isFalse();
-        assertThat(mReceivedResultCode.isPresent()).isFalse();
+    }
+
+    @Test
+    public void testIconResizer_resizeLargeImage() throws Throwable {
+        CredentialProviderInfo cpi = createCredentialProviderInfo();
+        CredentialManagerPreferenceController controller =
+                createControllerWithServices(Lists.newArrayList(cpi));
+
+        final Drawable d =
+                InstrumentationRegistry.getInstrumentation()
+                        .getContext()
+                        .getResources()
+                        .getDrawable(R.drawable.credman_icon_32_32);
+        assertThat(d).isNotNull();
+        assertThat(d.getIntrinsicHeight() >= 0).isTrue();
+        assertThat(d.getIntrinsicWidth() >= 0).isTrue();
+
+        Drawable thumbnail = controller.processIcon(d);
+        assertThat(thumbnail).isNotNull();
+        assertThat(thumbnail.getIntrinsicHeight()).isEqualTo(getIconSize());
+        assertThat(thumbnail.getIntrinsicWidth()).isEqualTo(getIconSize());
+    }
+
+    @Test
+    public void testIconResizer_resizeNullImage() throws Throwable {
+        CredentialProviderInfo cpi = createCredentialProviderInfo();
+        CredentialManagerPreferenceController controller =
+                createControllerWithServices(Lists.newArrayList(cpi));
+
+        Drawable thumbnail = controller.processIcon(null);
+        assertThat(thumbnail).isNotNull();
+        assertThat(thumbnail.getIntrinsicHeight()).isEqualTo(getIconSize());
+        assertThat(thumbnail.getIntrinsicWidth()).isEqualTo(getIconSize());
+    }
+
+    @Test
+    public void testIconResizer_resizeSmallImage() throws Throwable {
+        CredentialProviderInfo cpi = createCredentialProviderInfo();
+        CredentialManagerPreferenceController controller =
+                createControllerWithServices(Lists.newArrayList(cpi));
+
+        final Drawable d =
+                InstrumentationRegistry.getInstrumentation()
+                        .getContext()
+                        .getResources()
+                        .getDrawable(R.drawable.credman_icon_1_1);
+        assertThat(d).isNotNull();
+        assertThat(d.getIntrinsicHeight() >= 0).isTrue();
+        assertThat(d.getIntrinsicWidth() >= 0).isTrue();
+
+        Drawable thumbnail = controller.processIcon(null);
+        assertThat(thumbnail).isNotNull();
+        assertThat(thumbnail.getIntrinsicHeight()).isEqualTo(getIconSize());
+        assertThat(thumbnail.getIntrinsicWidth()).isEqualTo(getIconSize());
+    }
+
+    private int getIconSize() {
+        final Resources resources = mContext.getResources();
+        return (int) resources.getDimension(android.R.dimen.app_icon_size);
     }
 
     private CredentialManagerPreferenceController createControllerWithServices(
@@ -441,6 +540,10 @@
 
     private CredentialManagerPreferenceController createControllerWithServicesAndAddServiceOverride(
             List<CredentialProviderInfo> availableServices, String addServiceOverride) {
+        if (Looper.myLooper() == null) {
+            Looper.prepare(); // needed to create the preference screen
+        }
+
         CredentialManagerPreferenceController controller =
                 new CredentialManagerPreferenceController(
                         mContext, mCredentialsPreferenceCategory.getKey());
diff --git a/tests/unit/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceControllerTest.java b/tests/unit/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceControllerTest.java
new file mode 100644
index 0000000..301fcfa
--- /dev/null
+++ b/tests/unit/src/com/android/settings/applications/credentials/DefaultCombinedPreferenceControllerTest.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.credentials;
+
+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.graphics.drawable.Drawable;
+import android.os.Looper;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.preference.PreferenceViewHolder;
+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 org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DefaultCombinedPreferenceControllerTest {
+
+    private Context mContext;
+    private PrimaryProviderPreference.Delegate mDelegate;
+    private AttributeSet mAttributes;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        if (Looper.myLooper() == null) {
+            Looper.prepare(); // needed to create the preference screen
+        }
+        mDelegate =
+                new PrimaryProviderPreference.Delegate() {
+                    public void onOpenButtonClicked() {}
+
+                    public void onChangeButtonClicked() {}
+                };
+    }
+
+    @Test
+    public void ensureSettingIntentNullForNewDesign() {
+        if (!PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        // The setting intent should be null for the new design since this
+        // is handled by the delegate for the PrimaryProviderPreference.
+        DefaultCombinedPreferenceController dcpc =
+                new DefaultCombinedPreferenceController(mContext);
+        assertThat(dcpc.getSettingIntent(null).getPackage()).isNull();
+    }
+
+    @Test
+    public void ensureSettingIntentNotNullForOldDesign() {
+        if (PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        // For the old design the setting intent should still be used.
+        DefaultCombinedPreferenceController dcpc =
+                new DefaultCombinedPreferenceController(mContext);
+        assertThat(dcpc.getSettingIntent(null).getPackage()).isNotNull();
+    }
+
+    @Test
+    public void ensureSettingsActivityIntentCreatedSuccessfully() {
+        DefaultCombinedPreferenceController dcpc =
+                new DefaultCombinedPreferenceController(mContext);
+
+        // Ensure that the settings activity is only created if we haved the right combination
+        // of package and class name.
+        assertThat(dcpc.createSettingsActivityIntent(null, null)).isNull();
+        assertThat(dcpc.createSettingsActivityIntent("", null)).isNull();
+        assertThat(dcpc.createSettingsActivityIntent("", "")).isNull();
+        assertThat(dcpc.createSettingsActivityIntent("com.test", "")).isNull();
+        assertThat(dcpc.createSettingsActivityIntent("com.test", "ClassName")).isNotNull();
+    }
+
+    @Test
+    public void ensureUpdatePreferenceForProviderPopulatesInfo() {
+        if (!PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        DefaultCombinedPreferenceController dcpc =
+                new DefaultCombinedPreferenceController(mContext);
+        PrimaryProviderPreference ppp = createTestPreference();
+        Drawable appIcon = mContext.getResources().getDrawable(R.drawable.ic_settings_delete);
+
+        // Update the preference to use the provider and make sure the view
+        // was updated.
+        dcpc.updatePreferenceForProvider(ppp, "App Name", "Subtitle", appIcon, null);
+        assertThat(ppp.getTitle().toString()).isEqualTo("App Name");
+        assertThat(ppp.getSummary().toString()).isEqualTo("Subtitle");
+        assertThat(ppp.getIcon()).isEqualTo(appIcon);
+
+        // Set the preference back to none and make sure the view was updated.
+        dcpc.updatePreferenceForProvider(ppp, null, null, null, null);
+        assertThat(ppp.getTitle().toString()).isEqualTo("None");
+        assertThat(ppp.getSummary()).isNull();
+        assertThat(ppp.getIcon()).isNull();
+    }
+
+    private PrimaryProviderPreference createTestPreference() {
+        int layoutId =
+                ResourcesUtils.getResourcesId(
+                        mContext, "layout", "preference_credential_manager_with_buttons");
+        PreferenceViewHolder holder =
+                PreferenceViewHolder.createInstanceForTests(
+                        LayoutInflater.from(mContext).inflate(layoutId, null));
+        PreferenceViewHolder holderForTest = spy(holder);
+        View gearView = new View(mContext, null);
+        int gearId = ResourcesUtils.getResourcesId(mContext, "id", "settings_button");
+        when(holderForTest.findViewById(gearId)).thenReturn(gearView);
+
+        PrimaryProviderPreference ppp = new PrimaryProviderPreference(mContext, mAttributes);
+        ppp.setDelegate(mDelegate);
+        ppp.onBindViewHolder(holderForTest);
+        return ppp;
+    }
+}
diff --git a/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java b/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java
new file mode 100644
index 0000000..51a1fc4
--- /dev/null
+++ b/tests/unit/src/com/android/settings/applications/credentials/PrimaryProviderPreferenceTest.java
@@ -0,0 +1,182 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications.credentials;
+
+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.Looper;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.testutils.ResourcesUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class PrimaryProviderPreferenceTest {
+
+    private Context mContext;
+    private PrimaryProviderPreference.Delegate mDelegate;
+    private boolean mReceivedOpenButtonClicked = false;
+    private boolean mReceivedChangeButtonClicked = false;
+    private AttributeSet mAttributes;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        if (Looper.myLooper() == null) {
+            Looper.prepare(); // needed to create the preference screen
+        }
+        mReceivedOpenButtonClicked = false;
+        mReceivedChangeButtonClicked = false;
+        mDelegate =
+                new PrimaryProviderPreference.Delegate() {
+                    public void onOpenButtonClicked() {
+                        mReceivedOpenButtonClicked = true;
+                    }
+
+                    public void onChangeButtonClicked() {
+                        mReceivedChangeButtonClicked = true;
+                    }
+                };
+    }
+
+    @Test
+    public void ensureButtonsClicksCallDelegate_newDesign() {
+        if (!PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        PrimaryProviderPreference ppp = createTestPreferenceWithNewLayout();
+
+        // Test that all the views & buttons are bound correctly.
+        assertThat(ppp.getOpenButton()).isNotNull();
+        assertThat(ppp.getChangeButton()).isNotNull();
+        assertThat(ppp.getButtonFrameView()).isNotNull();
+
+        // Test that clicking the open button results in the delegate being
+        // called.
+        assertThat(mReceivedOpenButtonClicked).isFalse();
+        ppp.getOpenButton().performClick();
+        assertThat(mReceivedOpenButtonClicked).isTrue();
+
+        // Test that clicking the change button results in the delegate being
+        // called.
+        assertThat(mReceivedChangeButtonClicked).isFalse();
+        ppp.getChangeButton().performClick();
+        assertThat(mReceivedChangeButtonClicked).isTrue();
+    }
+
+    @Test
+    public void ensureButtonsClicksCallDelegate_newDesign_openButtonVisibility() {
+        if (!PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        PrimaryProviderPreference ppp = createTestPreferenceWithNewLayout();
+
+        // Test that the open button is visible.
+        assertThat(ppp.getOpenButton()).isNotNull();
+        assertThat(ppp.getOpenButton().getVisibility()).isEqualTo(View.GONE);
+
+        // Show the button and make sure the view was updated.
+        ppp.setOpenButtonVisible(true);
+        assertThat(ppp.getOpenButton().getVisibility()).isEqualTo(View.VISIBLE);
+
+        // Hide the button and make sure the view was updated.
+        ppp.setOpenButtonVisible(false);
+        assertThat(ppp.getOpenButton().getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void ensureButtonsClicksCallDelegate_newDesign_buttonsHidden() {
+        if (!PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        PrimaryProviderPreference ppp = createTestPreferenceWithNewLayout();
+
+        // Test that the buttons are visible.
+        assertThat(ppp.getButtonFrameView()).isNotNull();
+        assertThat(ppp.getButtonFrameView().getVisibility()).isEqualTo(View.GONE);
+        assertThat(mReceivedChangeButtonClicked).isFalse();
+
+        // If we show the buttons the visiblility should be updated.
+        ppp.setButtonsVisible(true);
+        assertThat(ppp.getButtonFrameView().getVisibility()).isEqualTo(View.VISIBLE);
+
+        // If we hide the buttons the visibility should be updated.
+        ppp.setButtonsVisible(false);
+        assertThat(ppp.getButtonFrameView().getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void ensureButtonsClicksCallDelegate_oldDesign() {
+        if (PrimaryProviderPreference.shouldUseNewSettingsUi()) {
+            return;
+        }
+
+        PrimaryProviderPreference ppp = createTestPreference("preference_widget_gear");
+
+        // Test that clicking the preference results in the delegate being
+        // called.
+        assertThat(mReceivedOpenButtonClicked).isFalse();
+        ppp.getOnPreferenceClickListener().onPreferenceClick(ppp);
+        assertThat(mReceivedOpenButtonClicked).isTrue();
+
+        // Test that the gear button is present and visible.
+        assertThat(ppp.getGearView()).isNotNull();
+        assertThat(ppp.getGearView().getVisibility()).isEqualTo(View.VISIBLE);
+
+        // Test that clicking the gear button results in the delegate being
+        // called.
+        assertThat(mReceivedChangeButtonClicked).isFalse();
+        ppp.getGearView().performClick();
+        assertThat(mReceivedChangeButtonClicked).isTrue();
+    }
+
+    private PrimaryProviderPreference createTestPreferenceWithNewLayout() {
+        return createTestPreference("preference_credential_manager_with_buttons");
+    }
+
+    private PrimaryProviderPreference createTestPreference(String layoutName) {
+        int layoutId = ResourcesUtils.getResourcesId(mContext, "layout", layoutName);
+        PreferenceViewHolder holder =
+                PreferenceViewHolder.createInstanceForTests(
+                        LayoutInflater.from(mContext).inflate(layoutId, null));
+        PreferenceViewHolder holderForTest = spy(holder);
+        View gearView = new View(mContext, null);
+        int gearId = ResourcesUtils.getResourcesId(mContext, "id", "settings_button");
+        when(holderForTest.findViewById(gearId)).thenReturn(gearView);
+
+        PrimaryProviderPreference ppp = new PrimaryProviderPreference(mContext, mAttributes);
+        ppp.setDelegate(mDelegate);
+        ppp.onBindViewHolder(holderForTest);
+        return ppp;
+    }
+}
diff --git a/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java b/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java
index 4601a1c..fa5af6d 100644
--- a/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/applications/specialaccess/notificationaccess/ApprovalPreferenceControllerTest.java
@@ -20,6 +20,7 @@
 
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -27,12 +28,15 @@
 import static org.mockito.Mockito.when;
 
 import android.app.AppOpsManager;
+import android.app.Flags;
 import android.app.NotificationManager;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -42,6 +46,7 @@
 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;
@@ -50,6 +55,10 @@
 @RunWith(AndroidJUnit4.class)
 public class ApprovalPreferenceControllerTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(
+            SetFlagsRule.DefaultInitValueType.DEVICE_DEFAULT);
+
     private Context mContext;
     private FakeFeatureFactory mFeatureFactory;
     @Mock
@@ -80,7 +89,6 @@
         mController.setNm(mNm);
         mController.setParent(mFragment);
         mController.setPkgInfo(mPkgInfo);
-
     }
 
     @Test
@@ -165,6 +173,7 @@
     }
 
     @Test
+    @EnableFlags(Flags.FLAG_MODES_API)
     public void disable() {
         mController.disable(mCn);
         verify(mFeatureFactory.metricsFeatureProvider).action(
@@ -172,6 +181,7 @@
                 MetricsProto.MetricsEvent.APP_SPECIAL_PERMISSION_NOTIVIEW_ALLOW,
                 "a");
 
+        verify(mNm).removeAutomaticZenRules(eq(mCn.getPackageName()), eq(true));
         verify(mNm).setNotificationListenerAccessGranted(mCn, false);
     }
 }
diff --git a/tests/unit/src/com/android/settings/biometrics/GatekeeperPasswordProviderTest.java b/tests/unit/src/com/android/settings/biometrics/GatekeeperPasswordProviderTest.java
index ab7a5af..40a01f8 100644
--- a/tests/unit/src/com/android/settings/biometrics/GatekeeperPasswordProviderTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/GatekeeperPasswordProviderTest.java
@@ -29,9 +29,9 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.annotation.NonNull;
 import android.content.Intent;
 
+import androidx.annotation.NonNull;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.android.internal.widget.LockPatternUtils;
diff --git a/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java
index 706aeda..a671a45 100644
--- a/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/combination/CombinedBiometricStatusUtilsTest.java
@@ -34,6 +34,7 @@
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -44,6 +45,7 @@
 import com.android.settingslib.utils.StringUtil;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -71,6 +73,8 @@
 
     private Context mApplicationContext;
     private CombinedBiometricStatusUtils mCombinedBiometricStatusUtils;
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
     public void setUp() {
@@ -301,6 +305,17 @@
                 .isEqualTo(Settings.CombinedBiometricProfileSettingsActivity.class.getName());
     }
 
+    @Test
+    public void getPrivateProfileSettingsClassName_returnsPrivateSpaceBiometricSettings() {
+        when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
+        mSetFlagsRule.enableFlags(
+                android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE);
+
+        assertThat(mCombinedBiometricStatusUtils.getPrivateProfileSettingsClassName())
+                .isEqualTo(Settings.PrivateSpaceBiometricSettingsActivity.class.getName());
+    }
+
     private List<Fingerprint> createFingerprintList(int size) {
         final List<Fingerprint> fingerprintList = new ArrayList<>(size);
         for (int i = 0; i < size; i++) {
diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java
index 0738a3c..4d21364 100644
--- a/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsEnrollButtonPreferenceControllerTest.java
@@ -19,9 +19,7 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.widget.Button;
@@ -61,20 +59,10 @@
     }
 
     @Test
-    public void testOnClick_inFullScreen() {
-        when(mListener.onShowSplitScreenDialog()).thenReturn(false);
+    public void testOnClick() {
         mController.onClick(mButton);
 
         assertThat(mController.isClicked()).isTrue();
         verify(mListener).onStartEnrolling(any());
     }
-
-    @Test
-    public void testOnClick_inMultiWindow() {
-        when(mListener.onShowSplitScreenDialog()).thenReturn(true);
-        mController.onClick(mButton);
-
-        assertThat(mController.isClicked()).isFalse();
-        verify(mListener, never()).onStartEnrolling(any());
-    }
 }
diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceUpdaterTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceUpdaterTest.java
index 66514ac..9190d0a 100644
--- a/tests/unit/src/com/android/settings/biometrics/face/FaceUpdaterTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/face/FaceUpdaterTest.java
@@ -39,7 +39,6 @@
 import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
 
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -100,7 +99,9 @@
                 same(HARDWARE_AUTH_TOKEN),
                 same(CANCELLATION_SIGNAL),
                 callbackCaptor.capture(),
-                same(DISABLED_FEATURES));
+                same(DISABLED_FEATURES),
+                same(null),
+                eq(false));
         FaceManager.EnrollmentCallback callback = callbackCaptor.getValue();
 
         callback.onEnrollmentError(ERR_MSG_ID, ERR_STRING);
@@ -126,12 +127,14 @@
                 same(HARDWARE_AUTH_TOKEN),
                 same(CANCELLATION_SIGNAL),
                 callbackCaptor.capture(),
-                same(DISABLED_FEATURES));
+                same(DISABLED_FEATURES),
+                same(null),
+                eq(false));
         FaceManager.EnrollmentCallback callback = callbackCaptor.getValue();
 
         callback.onEnrollmentProgress(/* remaining= */ 0);
 
-        verify(mSafetyCenterManagerWrapper).isEnabled(mContext);
+        verify(mSafetyCenterManagerWrapper, atLeast(1)).isEnabled(mContext);
     }
 
     @Test
@@ -145,7 +148,9 @@
                 same(HARDWARE_AUTH_TOKEN),
                 same(CANCELLATION_SIGNAL),
                 callbackCaptor.capture(),
-                same(DISABLED_FEATURES));
+                same(DISABLED_FEATURES),
+                same(null),
+                eq(false));
         FaceManager.EnrollmentCallback callback = callbackCaptor.getValue();
 
         callback.onEnrollmentProgress(/* remaining= */ 1);
@@ -153,7 +158,6 @@
         verify(mSafetyCenterManagerWrapper, never()).isEnabled(any());
     }
 
-    @Ignore("b/282413778")
     @Test
     public void enroll_secondVersion_onEnrollmentCallbacks_triggerGivenCallback() {
         ArgumentCaptor<FaceManager.EnrollmentCallback> callbackCaptor =
@@ -182,7 +186,6 @@
                 .onEnrollmentFrame(HELP_CODE, HELP_MESSAGE, CELL, STAGE, PAN, TILT, DISTANCE);
     }
 
-    @Ignore("b/282413778")
     @Test
     public void enroll_secondVersion_onEnrollmentSuccess_invokedInteractionWithSafetyCenter() {
         ArgumentCaptor<FaceManager.EnrollmentCallback> callbackCaptor =
@@ -204,7 +207,6 @@
         verify(mSafetyCenterManagerWrapper).isEnabled(mContext);
     }
 
-    @Ignore("b/282413778")
     @Test
     public void enroll_secondVersion_onEnrollmentNotYetFinished_didntInvokeInteractionWithSafetyCenter() {
         ArgumentCaptor<FaceManager.EnrollmentCallback> callbackCaptor =
diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImplTest.kt b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImplTest.kt
new file mode 100644
index 0000000..788c907
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProviderImplTest.kt
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint
+
+import android.content.Context
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeatureImpl
+import com.android.settings.biometrics.fingerprint.feature.SfpsRestToUnlockFeatureImpl
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.MockitoAnnotations
+
+@RunWith(AndroidJUnit4::class)
+class FingerprintFeatureProviderImplTest {
+
+    @Mock
+    private lateinit var mContext: Context
+
+    private lateinit var mFingerprintFeatureProviderImpl: FingerprintFeatureProviderImpl
+
+    @Before
+    fun setUp() {
+        MockitoAnnotations.initMocks(this)
+        mFingerprintFeatureProviderImpl = FingerprintFeatureProviderImpl()
+    }
+
+    @Test
+    fun getSfpsEnrollmentFeature_returnDefaultImpl() {
+        assertThat(mFingerprintFeatureProviderImpl.sfpsEnrollmentFeature)
+            .isInstanceOf(SfpsEnrollmentFeatureImpl::class.java)
+    }
+
+    @Test
+    fun getSfpsRestToUnlockFeature_returnDefaultImpl() {
+        assertThat(mFingerprintFeatureProviderImpl.getSfpsRestToUnlockFeature(mContext))
+            .isInstanceOf(SfpsRestToUnlockFeatureImpl::class.java)
+    }
+}
\ No newline at end of file
diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeatureImplTest.kt b/tests/unit/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeatureImplTest.kt
new file mode 100644
index 0000000..1f390d4
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/feature/SfpsRestToUnlockFeatureImplTest.kt
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint.feature
+
+import android.content.Context
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.RestrictedSwitchPreference
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+
+import org.junit.runner.RunWith
+import org.mockito.Mockito
+
+@RunWith(AndroidJUnit4::class)
+class SfpsRestToUnlockFeatureImplTest {
+
+    private lateinit var mContext: Context
+
+    private lateinit var mSfpsRestToUnlockFeatureImpl: SfpsRestToUnlockFeatureImpl
+
+    private lateinit var mRestrictedSwitchPreferenceSpy: RestrictedSwitchPreference
+
+    @Before
+    fun setUp() {
+        mContext = ApplicationProvider.getApplicationContext()
+        mSfpsRestToUnlockFeatureImpl = SfpsRestToUnlockFeatureImpl()
+        mRestrictedSwitchPreferenceSpy = Mockito.spy(RestrictedSwitchPreference(mContext))
+    }
+
+    @Test
+    fun getDescriptionForSfps_isNotNull() {
+        assertThat(mSfpsRestToUnlockFeatureImpl)
+            .isInstanceOf(SfpsRestToUnlockFeatureImpl::class.java)
+        assertThat(mSfpsRestToUnlockFeatureImpl.getDescriptionForSfps(mContext))
+            .isNotNull()
+    }
+
+    @Test
+    fun getRestToUnlockLayout_isNull() {
+        assertThat(mSfpsRestToUnlockFeatureImpl)
+            .isInstanceOf(SfpsRestToUnlockFeatureImpl::class.java)
+        assertThat(mSfpsRestToUnlockFeatureImpl.getRestToUnlockLayout(mContext))
+            .isNull()
+    }
+
+    @Test
+    fun fingerprint_settings_setupFingerprintUnlockCategoryPreferences() {
+        assertThat(mSfpsRestToUnlockFeatureImpl.getRestToUnlockPreference(mContext))
+            .isNull()
+    }
+}
\ No newline at end of file
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.java
deleted file mode 100644
index 8dfca01..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.model;
-
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_SENSOR_ID;
-import static com.android.settings.biometrics2.ui.model.CredentialModel.INVALID_CHALLENGE;
-import static com.android.settings.biometrics2.ui.model.CredentialModel.INVALID_GK_PW_HANDLE;
-import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import android.annotation.NonNull;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.SystemClock;
-import android.os.UserHandle;
-
-import androidx.annotation.Nullable;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.password.ChooseLockSettingsHelper;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.time.Clock;
-import java.util.Arrays;
-import java.util.Set;
-
-@RunWith(AndroidJUnit4.class)
-public class CredentialModelTest {
-
-    private final Clock mClock = SystemClock.elapsedRealtimeClock();
-
-    public static Bundle newCredentialModelIntentExtras(int userId, long challenge,
-            @Nullable byte[] token, long gkPwHandle) {
-        final Bundle bundle = new Bundle();
-        bundle.putInt(Intent.EXTRA_USER_ID, userId);
-        bundle.putLong(EXTRA_KEY_CHALLENGE, challenge);
-        bundle.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token);
-        bundle.putLong(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
-        return bundle;
-    }
-
-    public static Bundle newValidTokenCredentialIntentExtras(int userId) {
-        return newCredentialModelIntentExtras(userId, 1L, new byte[] { 0, 1, 2 },
-                INVALID_GK_PW_HANDLE);
-    }
-
-    public static Bundle newOnlySensorValidCredentialIntentExtras(int userId) {
-        return newCredentialModelIntentExtras(userId, INVALID_CHALLENGE, null,
-                INVALID_GK_PW_HANDLE);
-    }
-
-    public static Bundle newGkPwHandleCredentialIntentExtras(int userId, long gkPwHandle) {
-        return newCredentialModelIntentExtras(userId, INVALID_CHALLENGE, null, gkPwHandle);
-    }
-
-    private static void checkBundleLongValue(@NonNull Bundle bundle1, @NonNull Bundle bundle2,
-            @NonNull String key) {
-        if (!bundle1.containsKey(key)) {
-            return;
-        }
-        final int value1 = bundle1.getInt(key);
-        final int value2 = bundle2.getInt(key);
-        assertWithMessage("bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
-                + value2).that(value1).isEqualTo(value2);
-    }
-
-    private static void checkBundleIntValue(@NonNull Bundle bundle1, @NonNull Bundle bundle2,
-            @NonNull String key) {
-        if (!bundle1.containsKey(key)) {
-            return;
-        }
-        final long value1 = bundle1.getLong(key);
-        final long value2 = bundle2.getLong(key);
-        assertWithMessage("bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
-                + value2).that(value1).isEqualTo(value2);
-    }
-
-    private static void checkBundleByteArrayValue(@NonNull Bundle bundle1, @NonNull Bundle bundle2,
-            @NonNull String key) {
-        if (!bundle1.containsKey(key)) {
-            return;
-        }
-        final byte[] value1 = bundle1.getByteArray(key);
-        final byte[] value2 = bundle2.getByteArray(key);
-        final String errMsg = "bundle not match, key:" + key + ", value1:" + Arrays.toString(value1)
-                + ", value2:" + Arrays.toString(value2);
-        if (value1 == null) {
-            assertWithMessage(errMsg).that(value2).isNull();
-        } else {
-            assertWithMessage(errMsg).that(value1.length).isEqualTo(value2.length);
-            for (int i = 0; i < value1.length; ++i) {
-                assertWithMessage(errMsg).that(value1[i]).isEqualTo(value2[i]);
-            }
-        }
-    }
-
-    public static void verifySameCredentialModels(@NonNull CredentialModel model1,
-            @NonNull CredentialModel model2) {
-
-        assertThat(model1.getUserId()).isEqualTo(model2.getUserId());
-        assertThat(model1.getChallenge()).isEqualTo(model2.getChallenge());
-        assertThat(model1.getGkPwHandle()).isEqualTo(model2.getGkPwHandle());
-
-        final byte[] token1 = model1.getToken();
-        final byte[] token2 = model2.getToken();
-        if (token1 == null) {
-            assertThat(token2).isNull();
-        } else {
-            assertThat(token2).isNotNull();
-            assertThat(token1.length).isEqualTo(token2.length);
-            for (int i = 0; i < token1.length; ++i) {
-                assertThat(token1[i]).isEqualTo(token2[i]);
-            }
-        }
-
-        final Bundle bundle1 = model1.getBundle();
-        final Bundle bundle2 = model2.getBundle();
-        final Set<String> keySet1 = bundle1.keySet();
-        assertThat(keySet1.equals(bundle2.keySet())).isTrue();
-        checkBundleIntValue(bundle1, bundle2, Intent.EXTRA_USER_ID);
-        checkBundleIntValue(bundle1, bundle2, EXTRA_KEY_SENSOR_ID);
-        checkBundleLongValue(bundle1, bundle2, EXTRA_KEY_CHALLENGE);
-        checkBundleByteArrayValue(bundle1, bundle2, EXTRA_KEY_CHALLENGE);
-        checkBundleLongValue(bundle1, bundle2, EXTRA_KEY_GK_PW_HANDLE);
-    }
-
-    @Test
-    public void testNullBundle() {
-        final CredentialModel credentialModel = new CredentialModel(null, mClock);
-
-        assertThat(credentialModel.getUserId()).isEqualTo(UserHandle.myUserId());
-    }
-
-    @Test
-    public void testSameValueFromBundle() {
-        final Bundle bundle = newCredentialModelIntentExtras(1234, 6677L,
-                new byte[] { 33, 44, 55 }, 987654321);
-
-        final CredentialModel model1 = new CredentialModel(bundle, mClock);
-        final CredentialModel model2 = new CredentialModel(model1.getBundle(), mClock);
-
-        verifySameCredentialModels(model1, model2);
-    }
-
-    @Test
-    public void testSameValueFromBundle_nullToken() {
-        final Bundle bundle = newCredentialModelIntentExtras(22, 33L, null, 21L);
-
-        final CredentialModel model1 = new CredentialModel(bundle, mClock);
-        final CredentialModel model2 = new CredentialModel(model1.getBundle(), mClock);
-
-        verifySameCredentialModels(model1, model2);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt
new file mode 100644
index 0000000..ac62232
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/model/CredentialModelTest.kt
@@ -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.biometrics2.ui.model
+
+import android.content.Intent
+import android.os.Bundle
+import android.os.SystemClock
+import android.os.UserHandle
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.password.ChooseLockSettingsHelper
+import com.google.common.truth.Truth
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.util.Arrays
+
+@RunWith(AndroidJUnit4::class)
+class CredentialModelTest {
+
+    private val clock = SystemClock.elapsedRealtimeClock()
+
+    @Test
+    fun testNullBundle() {
+        val credentialModel = CredentialModel(null, clock)
+        Truth.assertThat(credentialModel.userId).isEqualTo(UserHandle.myUserId())
+    }
+
+    companion object {
+        @JvmStatic
+        fun newCredentialModelIntentExtras(
+            userId: Int, challenge: Long,
+            token: ByteArray?, gkPwHandle: Long
+        ): Bundle {
+            val bundle = Bundle()
+            bundle.putInt(Intent.EXTRA_USER_ID, userId)
+            bundle.putLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge)
+            bundle.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, token)
+            bundle.putLong(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
+            return bundle
+        }
+
+        @JvmStatic
+        fun newValidTokenCredentialIntentExtras(userId: Int): Bundle {
+            return newCredentialModelIntentExtras(
+                userId, 1L, byteArrayOf(0, 1, 2),
+                CredentialModel.INVALID_GK_PW_HANDLE
+            )
+        }
+
+        @JvmStatic
+        fun newOnlySensorValidCredentialIntentExtras(userId: Int): Bundle {
+            return newCredentialModelIntentExtras(
+                userId, CredentialModel.INVALID_CHALLENGE, null,
+                CredentialModel.INVALID_GK_PW_HANDLE
+            )
+        }
+
+        @JvmStatic
+        fun newGkPwHandleCredentialIntentExtras(userId: Int, gkPwHandle: Long): Bundle {
+            return newCredentialModelIntentExtras(
+                userId,
+                CredentialModel.INVALID_CHALLENGE,
+                null,
+                gkPwHandle
+            )
+        }
+
+        private fun checkBundleLongValue(
+            bundle1: Bundle, bundle2: Bundle,
+            key: String
+        ) {
+            if (!bundle1.containsKey(key)) {
+                return
+            }
+            val value1 = bundle1.getInt(key)
+            val value2 = bundle2.getInt(key)
+            Truth.assertWithMessage(
+                "bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
+                        + value2
+            ).that(value1).isEqualTo(value2)
+        }
+
+        private fun checkBundleIntValue(
+            bundle1: Bundle, bundle2: Bundle,
+            key: String
+        ) {
+            if (!bundle1.containsKey(key)) {
+                return
+            }
+            val value1 = bundle1.getLong(key)
+            val value2 = bundle2.getLong(key)
+            Truth.assertWithMessage(
+                "bundle not match, key:" + key + ", value1:" + value1 + ", value2:"
+                        + value2
+            ).that(value1).isEqualTo(value2)
+        }
+
+        private fun checkBundleByteArrayValue(
+            bundle1: Bundle, bundle2: Bundle,
+            key: String
+        ) {
+            if (!bundle1.containsKey(key)) {
+                return
+            }
+            val value1 = bundle1.getByteArray(key)
+            val value2 = bundle2.getByteArray(key)
+            val errMsg = ("bundle not match, key:" + key + ", value1:" + Arrays.toString(value1)
+                    + ", value2:" + Arrays.toString(value2))
+            if (value1 == null) {
+                Truth.assertWithMessage(errMsg).that(value2).isNull()
+            } else {
+                Truth.assertWithMessage(errMsg).that(value1.size).isEqualTo(
+                    value2!!.size
+                )
+                for (i in value1.indices) {
+                    Truth.assertWithMessage(errMsg).that(value1[i]).isEqualTo(
+                        value2[i]
+                    )
+                }
+            }
+        }
+    }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt
new file mode 100644
index 0000000..b301433
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/model/EnrollmentRequestTest.kt
@@ -0,0 +1,175 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.model
+
+import android.content.Context
+import android.content.Intent
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.biometrics.BiometricEnrollActivity
+import com.google.android.setupcompat.util.WizardManagerHelper
+import com.google.common.truth.Truth
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class EnrollmentRequestTest {
+
+    private val context = ApplicationProvider.getApplicationContext<Context>()
+
+    @Test
+    fun testIsSuw() {
+        // Default false
+        Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSuw).isFalse()
+        Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSuw).isFalse()
+        val trueIntent = Intent()
+        trueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
+        Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSuw).isTrue()
+        Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSuw).isFalse()
+        val falseIntent = Intent()
+        trueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, false)
+        Truth.assertThat(EnrollmentRequest(falseIntent, context, true).isSuw).isFalse()
+        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSuw).isFalse()
+    }
+
+    @Test
+    fun testIsAfterSuwOrSuwSuggestedAction() {
+        // Default false
+        Truth.assertThat(
+            EnrollmentRequest(Intent(), context, true)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        Truth.assertThat(
+            EnrollmentRequest(Intent(), context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        val deferredTrueIntent = Intent()
+        deferredTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, true)
+        Truth.assertThat(
+            EnrollmentRequest(deferredTrueIntent, context, true)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isTrue()
+        Truth.assertThat(
+            EnrollmentRequest(deferredTrueIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        val deferredFalseIntent = Intent()
+        deferredFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, false)
+        Truth.assertThat(
+            EnrollmentRequest(deferredFalseIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        Truth.assertThat(
+            EnrollmentRequest(deferredFalseIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        val portalTrueIntent = Intent()
+        portalTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, true)
+        Truth.assertThat(
+            EnrollmentRequest(portalTrueIntent, context, true)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isTrue()
+        Truth.assertThat(
+            EnrollmentRequest(portalTrueIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        val portalFalseIntent = Intent()
+        portalFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, false)
+        Truth.assertThat(
+            EnrollmentRequest(portalFalseIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        Truth.assertThat(
+            EnrollmentRequest(portalFalseIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        val suggestedTrueIntent = Intent()
+        suggestedTrueIntent.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, true)
+        Truth.assertThat(
+            EnrollmentRequest(suggestedTrueIntent, context, true)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isTrue()
+        Truth.assertThat(
+            EnrollmentRequest(suggestedTrueIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        val suggestedFalseIntent = Intent()
+        suggestedFalseIntent.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false)
+        Truth.assertThat(
+            EnrollmentRequest(suggestedFalseIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+        Truth.assertThat(
+            EnrollmentRequest(suggestedFalseIntent, context, false)
+                .isAfterSuwOrSuwSuggestedAction
+        ).isFalse()
+    }
+
+    @Test
+    fun testGetSuwExtras_inSuw() {
+        val suwIntent = Intent()
+        suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
+        val setupRequest = EnrollmentRequest(suwIntent, context, true)
+        val bundle = setupRequest.suwExtras
+        Truth.assertThat(bundle).isNotNull()
+        Truth.assertThat(bundle.size()).isAtLeast(1)
+        Truth.assertThat(bundle.getBoolean(WizardManagerHelper.EXTRA_IS_SETUP_FLOW)).isTrue()
+    }
+
+    @Test
+    fun testGetSuwExtras_notInSuw() {
+        val suwIntent = Intent()
+        suwIntent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
+        val setupRequest = EnrollmentRequest(suwIntent, context, false)
+        val bundle = setupRequest.suwExtras
+        Truth.assertThat(bundle).isNotNull()
+        Truth.assertThat(bundle.size()).isEqualTo(0)
+    }
+
+    @Test
+    fun testIsSkipIntro() {
+        // Default false
+        Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSkipIntro).isFalse()
+        Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSkipIntro).isFalse()
+        val trueIntent = Intent()
+        trueIntent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true)
+        Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSkipIntro).isTrue()
+        Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSkipIntro).isTrue()
+        val falseIntent = Intent()
+        falseIntent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, false)
+        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipIntro).isFalse()
+        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipIntro).isFalse()
+    }
+
+    @Test
+    fun testIsSkipFindSensor() {
+        // Default false
+        Truth.assertThat(EnrollmentRequest(Intent(), context, true).isSkipFindSensor)
+            .isFalse()
+        Truth.assertThat(EnrollmentRequest(Intent(), context, false).isSkipFindSensor)
+            .isFalse()
+        val trueIntent = Intent()
+        trueIntent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true)
+        Truth.assertThat(EnrollmentRequest(trueIntent, context, true).isSkipFindSensor).isTrue()
+        Truth.assertThat(EnrollmentRequest(trueIntent, context, false).isSkipFindSensor).isTrue()
+        val falseIntent = Intent()
+        falseIntent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, false)
+        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipFindSensor)
+            .isFalse()
+        Truth.assertThat(EnrollmentRequest(falseIntent, context, false).isSkipFindSensor)
+            .isFalse()
+    }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.java
deleted file mode 100644
index 05a7239..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.java
+++ /dev/null
@@ -1,596 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
-import static com.android.settings.biometrics2.ui.model.CredentialModel.INVALID_CHALLENGE;
-import static com.android.settings.biometrics2.ui.model.CredentialModel.INVALID_GK_PW_HANDLE;
-import static com.android.settings.biometrics2.ui.model.CredentialModelTest.newCredentialModelIntentExtras;
-import static com.android.settings.biometrics2.ui.model.CredentialModelTest.newGkPwHandleCredentialIntentExtras;
-import static com.android.settings.biometrics2.ui.model.CredentialModelTest.newOnlySensorValidCredentialIntentExtras;
-import static com.android.settings.biometrics2.ui.model.CredentialModelTest.newValidTokenCredentialIntentExtras;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_IS_GENERATING_CHALLENGE;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CREDENTIAL_VALID;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.CredentialAction;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.GenerateChallengeCallback;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.KEY_CREDENTIAL_MODEL;
-import static com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL;
-import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN;
-import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
-
-import static com.google.common.truth.Truth.assertThat;
-import static com.google.common.truth.Truth.assertWithMessage;
-
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
-
-import android.annotation.NonNull;
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.UserHandle;
-
-import androidx.activity.result.ActivityResult;
-import androidx.annotation.Nullable;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.internal.widget.LockPatternUtils;
-import com.android.internal.widget.VerifyCredentialResponse;
-import com.android.settings.password.ChooseLockPattern;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-@RunWith(AndroidJUnit4.class)
-public class AutoCredentialViewModelTest {
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    @Mock private LockPatternUtils mLockPatternUtils;
-    private TestChallengeGenerator mChallengeGenerator = null;
-    private AutoCredentialViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        mChallengeGenerator = new TestChallengeGenerator();
-        mViewModel = new AutoCredentialViewModel(
-                ApplicationProvider.getApplicationContext(),
-                mLockPatternUtils,
-                mChallengeGenerator);
-    }
-
-    private void setupGenerateChallenge(int userId, int newSensorId, long newChallenge) {
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-        mChallengeGenerator.mUserId = userId;
-        mChallengeGenerator.mSensorId = newSensorId;
-        mChallengeGenerator.mChallenge = newChallenge;
-    }
-
-    @Test
-    public void testSetCredentialModel_sameResultFromSavedInstanceOrIntent() {
-        final Bundle extras = newCredentialModelIntentExtras(12, 33, new byte[] { 2, 3 }, 3L);
-
-        AutoCredentialViewModel viewModel2 = new AutoCredentialViewModel(
-                ApplicationProvider.getApplicationContext(),
-                mLockPatternUtils,
-                mChallengeGenerator);
-
-        mViewModel.setCredentialModel(null, new Intent().putExtras(extras));
-        final Bundle savedInstance = new Bundle();
-        mViewModel.onSaveInstanceState(savedInstance);
-        viewModel2.setCredentialModel(savedInstance, new Intent());
-
-        assertThat(mViewModel.getUserId()).isEqualTo(viewModel2.getUserId());
-        final byte[] token1 = mViewModel.getToken();
-        final byte[] token2 = viewModel2.getToken();
-        assertThat(token1).isNotNull();
-        assertThat(token2).isNotNull();
-        assertThat(token1.length).isEqualTo(token2.length);
-        for (int i = 0; i < token2.length; ++i) {
-            assertThat(token1[i]).isEqualTo(token2[i]);
-        }
-    }
-
-    @Test
-    public void testSetCredentialModel_sameResultFromSavedInstanceOrIntent_invalidValues() {
-        final Bundle extras = newCredentialModelIntentExtras(UserHandle.USER_NULL,
-                INVALID_CHALLENGE, null, INVALID_GK_PW_HANDLE);
-
-        AutoCredentialViewModel viewModel2 = new AutoCredentialViewModel(
-                ApplicationProvider.getApplicationContext(),
-                mLockPatternUtils,
-                mChallengeGenerator);
-
-        mViewModel.setCredentialModel(null, new Intent().putExtras(extras));
-        final Bundle savedInstance = new Bundle();
-        mViewModel.onSaveInstanceState(savedInstance);
-        viewModel2.setCredentialModel(savedInstance, new Intent());
-
-        assertThat(mViewModel.getUserId()).isEqualTo(UserHandle.USER_NULL);
-        assertThat(viewModel2.getUserId()).isEqualTo(UserHandle.USER_NULL);
-        assertThat(mViewModel.getToken()).isNull();
-        assertThat(viewModel2.getToken()).isNull();
-    }
-
-    @Test
-    public void testCheckCredential_validCredentialCase() {
-        final int userId = 99;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newValidTokenCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CREDENTIAL_VALID);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isFalse();
-    }
-
-    @Test
-    public void testCheckCredential_needToChooseLock() {
-        final int userId = 100;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_UNSPECIFIED);
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CREDENTIAL_FAIL_NEED_TO_CHOOSE_LOCK);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isFalse();
-    }
-
-    @Test
-    public void testCheckCredential_needToConfirmLockForSomething() {
-        final int userId = 101;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isFalse();
-    }
-
-    @Test
-    public void testCheckCredential_needToConfirmLockForNumeric() {
-        final int userId = 102;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_NUMERIC);
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isFalse();
-    }
-
-    @Test
-    public void testCheckCredential_needToConfirmLockForAlphabetic() {
-        final int userId = 103;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_ALPHABETIC);
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CREDENTIAL_FAIL_NEED_TO_CONFIRM_LOCK);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isFalse();
-    }
-
-    @Test
-    public void testCheckCredential_generateChallenge() {
-        final int userId = 104;
-        final long gkPwHandle = 1111L;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-
-        final int newSensorId = 10;
-        final long newChallenge = 20L;
-        setupGenerateChallenge(userId, newSensorId, newChallenge);
-        when(mLockPatternUtils.verifyGatekeeperPasswordHandle(gkPwHandle, newChallenge, userId))
-                .thenReturn(newGoodCredential(gkPwHandle, new byte[] { 1 }));
-
-        final AtomicBoolean hasCalledRemoveGkPwHandle = new AtomicBoolean();
-        doAnswer(invocation -> {
-            hasCalledRemoveGkPwHandle.set(true);
-            return null;
-        }).when(mLockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle);
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        // Check viewModel behavior
-        assertThat(action).isEqualTo(CREDENTIAL_IS_GENERATING_CHALLENGE);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-
-        // Check data inside CredentialModel
-        assertThat(mViewModel.getToken()).isNotNull();
-        assertThat(mChallengeGenerator.mCallbackRunCount).isEqualTo(1);
-        assertThat(hasCalledRemoveGkPwHandle.get()).isFalse();
-
-        // Check createGeneratingChallengeExtras()
-        final Bundle generatingChallengeExtras = mViewModel.createGeneratingChallengeExtras();
-        assertThat(generatingChallengeExtras).isNotNull();
-        assertThat(generatingChallengeExtras.getLong(EXTRA_KEY_CHALLENGE)).isEqualTo(newChallenge);
-        final byte[] tokens = generatingChallengeExtras.getByteArray(EXTRA_KEY_CHALLENGE_TOKEN);
-        assertThat(tokens).isNotNull();
-        assertThat(tokens.length).isEqualTo(1);
-        assertThat(tokens[0]).isEqualTo(1);
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isTrue();
-    }
-
-    @Test
-    public void testCheckCredential_generateChallengeFail() {
-        final int userId = 104;
-        final long gkPwHandle = 1111L;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-
-        final int newSensorId = 10;
-        final long newChallenge = 20L;
-        setupGenerateChallenge(userId, newSensorId, newChallenge);
-        when(mLockPatternUtils.verifyGatekeeperPasswordHandle(gkPwHandle, newChallenge, userId))
-                .thenReturn(newBadCredential(0));
-
-        // Run credential check
-        @CredentialAction final int action = mViewModel.checkCredential();
-
-        assertThat(action).isEqualTo(CREDENTIAL_IS_GENERATING_CHALLENGE);
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isTrue();
-        assertThat(mChallengeGenerator.mCallbackRunCount).isEqualTo(1);
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-
-        // Check onSaveInstanceState()
-        final Bundle actualBundle = new Bundle();
-        mViewModel.onSaveInstanceState(actualBundle);
-        assertThat(actualBundle.getBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL))
-                .isTrue();
-    }
-
-    @Test
-    public void testGetUserId_fromIntent() {
-        final int userId = 106;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-
-        // Get userId
-        assertThat(mViewModel.getUserId()).isEqualTo(userId);
-    }
-
-    @Test
-    public void testGetUserId_fromSavedInstance() {
-        final int userId = 106;
-        final Bundle savedInstance = new Bundle();
-        savedInstance.putBundle(KEY_CREDENTIAL_MODEL,
-                newOnlySensorValidCredentialIntentExtras(userId));
-        mViewModel.setCredentialModel(savedInstance, new Intent());
-
-        // Get userId
-        assertThat(mViewModel.getUserId()).isEqualTo(userId);
-    }
-
-    @Test
-    public void testCreateGeneratingChallengeExtras_generateChallenge() {
-        final Bundle credentialExtras = newValidTokenCredentialIntentExtras(200);
-        final Bundle savedInstance = new Bundle();
-        savedInstance.putBundle(KEY_CREDENTIAL_MODEL, credentialExtras);
-        savedInstance.putBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL, true);
-        mViewModel.setCredentialModel(savedInstance, new Intent());
-
-        // Check createGeneratingChallengeExtras()
-        final Bundle actualExtras = mViewModel.createGeneratingChallengeExtras();
-        assertThat(actualExtras).isNotNull();
-        assertThat(actualExtras.getLong(EXTRA_KEY_CHALLENGE))
-                .isEqualTo(credentialExtras.getLong(EXTRA_KEY_CHALLENGE));
-        final byte[] actualToken = actualExtras.getByteArray(EXTRA_KEY_CHALLENGE_TOKEN);
-        final byte[] expectedToken = credentialExtras.getByteArray(EXTRA_KEY_CHALLENGE_TOKEN);
-        assertThat(actualToken).isNotNull();
-        assertThat(expectedToken).isNotNull();
-        assertThat(actualToken.length).isEqualTo(expectedToken.length);
-        for (int i = 0; i < actualToken.length; ++i) {
-            assertWithMessage("tokens[" + i + "] not match").that(actualToken[i])
-                    .isEqualTo(expectedToken[i]);
-        }
-    }
-
-    @Test
-    public void testCreateGeneratingChallengeExtras_notGenerateChallenge() {
-        final Bundle credentialExtras = newValidTokenCredentialIntentExtras(201);
-        final Bundle savedInstance = new Bundle();
-        savedInstance.putBundle(KEY_CREDENTIAL_MODEL, credentialExtras);
-        savedInstance.putBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL, false);
-        mViewModel.setCredentialModel(savedInstance, new Intent());
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-    }
-
-    @Test
-    public void testCreateGeneratingChallengeExtras_invalidToken() {
-        final Bundle credentialExtras = newOnlySensorValidCredentialIntentExtras(202);
-        final Bundle savedInstance = new Bundle();
-        savedInstance.putBundle(KEY_CREDENTIAL_MODEL, credentialExtras);
-        savedInstance.putBoolean(KEY_IS_GENERATING_CHALLENGE_DURING_CHECKING_CREDENTIAL, true);
-        mViewModel.setCredentialModel(savedInstance, new Intent());
-
-        // Check createGeneratingChallengeExtras()
-        assertThat(mViewModel.createGeneratingChallengeExtras()).isNull();
-    }
-
-    @Test
-    public void testCheckNewCredentialFromActivityResult_invalidChooseLock() {
-        final int userId = 107;
-        final long gkPwHandle = 3333L;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle)));
-        final Intent intent = new Intent();
-        intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
-
-        // run checkNewCredentialFromActivityResult()
-        final boolean ret = mViewModel.checkNewCredentialFromActivityResult(true,
-                new ActivityResult(ChooseLockPattern.RESULT_FINISHED + 1, intent));
-
-        assertThat(ret).isFalse();
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-    }
-
-    @Test
-    public void testCheckNewCredentialFromActivityResult_invalidConfirmLock() {
-        final int userId = 107;
-        final long gkPwHandle = 3333L;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle)));
-        final Intent intent = new Intent();
-        intent.putExtra(EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
-
-        // run checkNewCredentialFromActivityResult()
-        final boolean ret = mViewModel.checkNewCredentialFromActivityResult(false,
-                new ActivityResult(Activity.RESULT_OK + 1, intent));
-
-        assertThat(ret).isFalse();
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-    }
-
-    @Test
-    public void testCheckNewCredentialFromActivityResult_nullDataChooseLock() {
-        final int userId = 108;
-        final long gkPwHandle = 4444L;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle)));
-
-        // run checkNewCredentialFromActivityResult()
-        final boolean ret = mViewModel.checkNewCredentialFromActivityResult(true,
-                new ActivityResult(ChooseLockPattern.RESULT_FINISHED, null));
-
-        assertThat(ret).isFalse();
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-    }
-
-    @Test
-    public void testCheckNewCredentialFromActivityResult_nullDataConfirmLock() {
-        final int userId = 109;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-
-        // run checkNewCredentialFromActivityResult()
-        final boolean ret = mViewModel.checkNewCredentialFromActivityResult(false,
-                new ActivityResult(Activity.RESULT_OK, null));
-
-        assertThat(ret).isFalse();
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-    }
-
-    @Test
-    public void testCheckNewCredentialFromActivityResult_validChooseLock() {
-        final int userId = 108;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-
-        final long gkPwHandle = 6666L;
-        final int newSensorId = 50;
-        final long newChallenge = 60L;
-        setupGenerateChallenge(userId, newSensorId, newChallenge);
-        when(mLockPatternUtils.verifyGatekeeperPasswordHandle(gkPwHandle, newChallenge, userId))
-                .thenReturn(newGoodCredential(gkPwHandle, new byte[] { 1 }));
-
-        final AtomicBoolean hasCalledRemoveGkPwHandle = new AtomicBoolean();
-        doAnswer(invocation -> {
-            hasCalledRemoveGkPwHandle.set(true);
-            return null;
-        }).when(mLockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle);
-
-        // Run checkNewCredentialFromActivityResult()
-        final Intent intent = new Intent().putExtra(EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
-        final boolean ret = mViewModel.checkNewCredentialFromActivityResult(true,
-                new ActivityResult(ChooseLockPattern.RESULT_FINISHED, intent));
-
-        assertThat(ret).isTrue();
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-        assertThat(mViewModel.getToken()).isNotNull();
-        assertThat(mChallengeGenerator.mCallbackRunCount).isEqualTo(1);
-        assertThat(hasCalledRemoveGkPwHandle.get()).isTrue();
-    }
-
-    @Test
-    public void testCheckNewCredentialFromActivityResult_validConfirmLock() {
-        final int userId = 109;
-        mViewModel.setCredentialModel(null,
-                new Intent().putExtras(newOnlySensorValidCredentialIntentExtras(userId)));
-        when(mLockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
-                PASSWORD_QUALITY_SOMETHING);
-
-        final long gkPwHandle = 5555L;
-        final int newSensorId = 80;
-        final long newChallenge = 90L;
-        setupGenerateChallenge(userId, newSensorId, newChallenge);
-        when(mLockPatternUtils.verifyGatekeeperPasswordHandle(gkPwHandle, newChallenge, userId))
-                .thenReturn(newGoodCredential(gkPwHandle, new byte[] { 1 }));
-
-        final AtomicBoolean hasCalledRemoveGkPwHandle = new AtomicBoolean();
-        doAnswer(invocation -> {
-            hasCalledRemoveGkPwHandle.set(true);
-            return null;
-        }).when(mLockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle);
-
-        // Run checkNewCredentialFromActivityResult()
-        final Intent intent = new Intent().putExtra(EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
-        final boolean ret = mViewModel.checkNewCredentialFromActivityResult(false,
-                new ActivityResult(Activity.RESULT_OK, intent));
-
-        assertThat(ret).isTrue();
-        assertThat(mViewModel.getGenerateChallengeFailedLiveData().getValue()).isNull();
-        assertThat(mViewModel.getToken()).isNotNull();
-        assertThat(mChallengeGenerator.mCallbackRunCount).isEqualTo(1);
-        assertThat(hasCalledRemoveGkPwHandle.get()).isTrue();
-    }
-
-    public static class TestChallengeGenerator implements ChallengeGenerator {
-        public int mSensorId = -1;
-        public int mUserId = UserHandle.myUserId();
-        public long mChallenge = INVALID_CHALLENGE;
-        public int mCallbackRunCount = 0;
-        private GenerateChallengeCallback mCallback;
-
-        @Nullable
-        @Override
-        public GenerateChallengeCallback getCallback() {
-            return mCallback;
-        }
-
-        @Override
-        public void setCallback(@Nullable GenerateChallengeCallback callback) {
-            mCallback = callback;
-        }
-
-        @Override
-        public void generateChallenge(int userId) {
-            final GenerateChallengeCallback callback = mCallback;
-            if (callback == null) {
-                return;
-            }
-            callback.onChallengeGenerated(mSensorId, mUserId, mChallenge);
-            ++mCallbackRunCount;
-        }
-    }
-
-    private VerifyCredentialResponse newGoodCredential(long gkPwHandle, @NonNull byte[] hat) {
-        return new VerifyCredentialResponse.Builder()
-                .setGatekeeperPasswordHandle(gkPwHandle)
-                .setGatekeeperHAT(hat)
-                .build();
-    }
-
-    private VerifyCredentialResponse newBadCredential(int timeout) {
-        if (timeout > 0) {
-            return VerifyCredentialResponse.fromTimeout(timeout);
-        } else {
-            return VerifyCredentialResponse.fromError();
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt
new file mode 100644
index 0000000..e708f3b
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/AutoCredentialViewModelTest.kt
@@ -0,0 +1,519 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Activity
+import android.app.admin.DevicePolicyManager
+import android.content.Intent
+import android.os.Bundle
+import android.os.SystemClock
+import android.os.UserHandle
+import androidx.activity.result.ActivityResult
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.internal.widget.LockPatternUtils
+import com.android.internal.widget.VerifyCredentialResponse
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics2.ui.model.CredentialModel
+import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newGkPwHandleCredentialIntentExtras
+import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newOnlySensorValidCredentialIntentExtras
+import com.android.settings.biometrics2.ui.model.CredentialModelTest.Companion.newValidTokenCredentialIntentExtras
+import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator
+import com.android.settings.password.ChooseLockPattern
+import com.android.settings.password.ChooseLockSettingsHelper
+import com.google.common.truth.Truth.assertThat
+import java.util.concurrent.atomic.AtomicBoolean
+import kotlinx.coroutines.flow.toList
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
+
+@RunWith(AndroidJUnit4::class)
+class AutoCredentialViewModelTest {
+
+    @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
+
+    @Mock private lateinit var lockPatternUtils: LockPatternUtils
+
+    private var challengeGenerator: TestChallengeGenerator = TestChallengeGenerator()
+
+    private lateinit var viewModel: AutoCredentialViewModel
+    private fun newAutoCredentialViewModel(bundle: Bundle?): AutoCredentialViewModel {
+        return AutoCredentialViewModel(
+            ApplicationProvider.getApplicationContext(),
+            lockPatternUtils,
+            challengeGenerator,
+            CredentialModel(bundle, SystemClock.elapsedRealtimeClock())
+        )
+    }
+
+    @Before
+    fun setUp() {
+        challengeGenerator = TestChallengeGenerator()
+    }
+
+    private fun setupGenerateChallenge(userId: Int, newSensorId: Int, newChallenge: Long) {
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+        )
+        challengeGenerator.userId = userId
+        challengeGenerator.sensorId = newSensorId
+        challengeGenerator.challenge = newChallenge
+    }
+
+    @Test
+    fun testCheckCredential_validCredentialCase() = runTest {
+        val userId = 99
+        viewModel = newAutoCredentialViewModel(newValidTokenCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+        )
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run credential check
+        val action = viewModel.checkCredential(backgroundScope)
+        runCurrent()
+
+        // Check viewModel behavior
+        assertThat(action).isEqualTo(CredentialAction.CREDENTIAL_VALID)
+        assertThat(generateFails.size).isEqualTo(0)
+
+        // Check createGeneratingChallengeExtras()
+        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
+    }
+
+    @Test
+    fun testCheckCredential_needToChooseLock() = runTest {
+        val userId = 100
+        viewModel = newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED
+        )
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run credential check
+        val action = viewModel.checkCredential(backgroundScope)
+        runCurrent()
+
+        // Check viewModel behavior
+        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CHOOSE_LOCK)
+        assertThat(generateFails.size).isEqualTo(0)
+
+        // Check createGeneratingChallengeExtras()
+        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
+    }
+
+    @Test
+    fun testCheckCredential_needToConfirmLockForSomething() = runTest {
+        val userId = 101
+        viewModel =
+            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+        )
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run credential check
+        val action = viewModel.checkCredential(backgroundScope)
+        runCurrent()
+
+        // Check viewModel behavior
+        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
+        assertThat(generateFails.size).isEqualTo(0)
+
+        // Check createGeneratingChallengeExtras()
+        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
+    }
+
+    @Test
+    fun testCheckCredential_needToConfirmLockForNumeric() = runTest {
+        val userId = 102
+        viewModel =
+            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_NUMERIC
+        )
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run credential check
+        val action = viewModel.checkCredential(backgroundScope)
+        runCurrent()
+
+        // Check viewModel behavior
+        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
+        assertThat(generateFails.size).isEqualTo(0)
+
+        // Check createGeneratingChallengeExtras()
+        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
+    }
+
+    @Test
+    fun testCheckCredential_needToConfirmLockForAlphabetic() = runTest {
+        val userId = 103
+        viewModel =
+            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC
+        )
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run credential check
+        val action = viewModel.checkCredential(this)
+        runCurrent()
+
+        // Check viewModel behavior
+        assertThat(action).isEqualTo(CredentialAction.FAIL_NEED_TO_CONFIRM_LOCK)
+        assertThat(generateFails.size).isEqualTo(0)
+
+        // Check createGeneratingChallengeExtras()
+        assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
+    }
+
+    @Test
+    fun testCheckCredential_generateChallenge() = runTest {
+        val userId = 104
+        val gkPwHandle = 1111L
+        viewModel =
+            newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+        )
+        val newSensorId = 10
+        val newChallenge = 20L
+        setupGenerateChallenge(userId, newSensorId, newChallenge)
+        whenever(
+            lockPatternUtils.verifyGatekeeperPasswordHandle(
+                gkPwHandle,
+                newChallenge,
+                userId
+            )
+        )
+            .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
+        val hasCalledRemoveGkPwHandle = AtomicBoolean()
+        Mockito.doAnswer {
+            hasCalledRemoveGkPwHandle.set(true)
+            null
+        }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run credential check
+        val action = viewModel.checkCredential(backgroundScope)
+        runCurrent()
+
+        // Check viewModel behavior
+        assertThat(action).isEqualTo(CredentialAction.IS_GENERATING_CHALLENGE)
+        assertThat(generateFails.size).isEqualTo(0)
+
+        // Check data inside CredentialModel
+        assertThat(viewModel.token).isNotNull()
+        assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
+        assertThat(hasCalledRemoveGkPwHandle.get()).isFalse()
+
+        // Check createGeneratingChallengeExtras()
+        val generatingChallengeExtras = viewModel.createGeneratingChallengeExtras()
+        assertThat(generatingChallengeExtras).isNotNull()
+        assertThat(generatingChallengeExtras!!.getLong(BiometricEnrollBase.EXTRA_KEY_CHALLENGE))
+            .isEqualTo(newChallenge)
+        val tokens =
+            generatingChallengeExtras.getByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
+        assertThat(tokens).isNotNull()
+        assertThat(tokens!!.size).isEqualTo(1)
+        assertThat(tokens[0]).isEqualTo(1)
+    }
+
+    @Test
+    fun testCheckCredential_generateChallengeFail() = runTest {
+        backgroundScope.launch {
+            val userId = 104
+            val gkPwHandle = 1111L
+            viewModel =
+                newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
+            whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+                DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+            )
+            val newSensorId = 10
+            val newChallenge = 20L
+            setupGenerateChallenge(userId, newSensorId, newChallenge)
+            whenever(
+                lockPatternUtils.verifyGatekeeperPasswordHandle(
+                    gkPwHandle,
+                    newChallenge,
+                    userId
+                )
+            )
+                .thenReturn(newBadCredential(0))
+
+            val generateFails = listOfGenerateChallengeFailedFlow()
+
+            // Run credential check
+            val action = viewModel.checkCredential(this)
+            runCurrent()
+
+            assertThat(action).isEqualTo(CredentialAction.IS_GENERATING_CHALLENGE)
+            assertThat(generateFails.size).isEqualTo(1)
+            assertThat(generateFails[0]).isEqualTo(true)
+            assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
+
+            // Check createGeneratingChallengeExtras()
+            assertThat(viewModel.createGeneratingChallengeExtras()).isNull()
+        }
+    }
+
+    @Test
+    fun testGetUserId_fromIntent() {
+        val userId = 106
+        viewModel = newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+
+        // Get userId
+        assertThat(viewModel.userId).isEqualTo(userId)
+    }
+
+    @Test
+    fun testGenerateChallengeAsCredentialActivityResult_invalidChooseLock() = runTest {
+        backgroundScope.launch {
+            val userId = 107
+            val gkPwHandle = 3333L
+            viewModel =
+                newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
+            val intent = Intent()
+            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
+
+            val generateFails = listOfGenerateChallengeFailedFlow()
+
+            // Run generateChallengeAsCredentialActivityResult()
+            val ret = viewModel.generateChallengeAsCredentialActivityResult(
+                true,
+                ActivityResult(ChooseLockPattern.RESULT_FINISHED + 1, intent),
+                backgroundScope
+            )
+            runCurrent()
+
+            assertThat(ret).isFalse()
+            assertThat(generateFails.size).isEqualTo(0)
+        }
+    }
+
+    @Test
+    fun testGenerateChallengeAsCredentialActivityResult_invalidConfirmLock() = runTest {
+        backgroundScope.launch {
+            val userId = 107
+            val gkPwHandle = 3333L
+            viewModel =
+                newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
+            val intent = Intent()
+            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
+
+            val generateFails = listOfGenerateChallengeFailedFlow()
+
+            // Run generateChallengeAsCredentialActivityResult()
+            val ret = viewModel.generateChallengeAsCredentialActivityResult(
+                false,
+                ActivityResult(Activity.RESULT_OK + 1, intent),
+                backgroundScope
+            )
+            runCurrent()
+
+            assertThat(ret).isFalse()
+            assertThat(generateFails.size).isEqualTo(0)
+        }
+    }
+
+    @Test
+    fun testGenerateChallengeAsCredentialActivityResult_nullDataChooseLock() = runTest {
+        val userId = 108
+        val gkPwHandle = 4444L
+        viewModel =
+            newAutoCredentialViewModel(newGkPwHandleCredentialIntentExtras(userId, gkPwHandle))
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run generateChallengeAsCredentialActivityResult()
+        val ret = viewModel.generateChallengeAsCredentialActivityResult(
+            true,
+            ActivityResult(ChooseLockPattern.RESULT_FINISHED, null),
+            backgroundScope
+        )
+        runCurrent()
+
+        assertThat(ret).isFalse()
+        assertThat(generateFails.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testGenerateChallengeAsCredentialActivityResult_nullDataConfirmLock() = runTest {
+        val userId = 109
+        viewModel =
+            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run generateChallengeAsCredentialActivityResult()
+        val ret = viewModel.generateChallengeAsCredentialActivityResult(
+            false,
+            ActivityResult(Activity.RESULT_OK, null),
+            backgroundScope
+        )
+        runCurrent()
+
+        assertThat(ret).isFalse()
+        assertThat(generateFails.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testGenerateChallengeAsCredentialActivityResult_validChooseLock() = runTest {
+        val userId = 108
+        viewModel =
+            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+        )
+        val gkPwHandle = 6666L
+        val newSensorId = 50
+        val newChallenge = 60L
+        setupGenerateChallenge(userId, newSensorId, newChallenge)
+        whenever(
+            lockPatternUtils.verifyGatekeeperPasswordHandle(
+                gkPwHandle,
+                newChallenge,
+                userId
+            )
+        )
+            .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
+        val hasCalledRemoveGkPwHandle = AtomicBoolean()
+        Mockito.doAnswer {
+            hasCalledRemoveGkPwHandle.set(true)
+            null
+        }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run generateChallengeAsCredentialActivityResult()
+        val intent =
+            Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
+        val ret = viewModel.generateChallengeAsCredentialActivityResult(
+            true,
+            ActivityResult(ChooseLockPattern.RESULT_FINISHED, intent),
+            backgroundScope
+        )
+        runCurrent()
+
+        assertThat(ret).isTrue()
+        assertThat(generateFails.size).isEqualTo(0)
+        assertThat(viewModel.token).isNotNull()
+        assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
+        assertThat(hasCalledRemoveGkPwHandle.get()).isTrue()
+    }
+
+    @Test
+    fun testGenerateChallengeAsCredentialActivityResult_validConfirmLock() = runTest {
+        val userId = 109
+        viewModel =
+            newAutoCredentialViewModel(newOnlySensorValidCredentialIntentExtras(userId))
+        whenever(lockPatternUtils.getActivePasswordQuality(userId)).thenReturn(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING
+        )
+        val gkPwHandle = 5555L
+        val newSensorId = 80
+        val newChallenge = 90L
+        setupGenerateChallenge(userId, newSensorId, newChallenge)
+        whenever(
+            lockPatternUtils.verifyGatekeeperPasswordHandle(
+                gkPwHandle,
+                newChallenge,
+                userId
+            )
+        )
+            .thenReturn(newGoodCredential(gkPwHandle, byteArrayOf(1)))
+        val hasCalledRemoveGkPwHandle = AtomicBoolean()
+        Mockito.doAnswer {
+            hasCalledRemoveGkPwHandle.set(true)
+            null
+        }.`when`(lockPatternUtils).removeGatekeeperPasswordHandle(gkPwHandle)
+
+        val generateFails = listOfGenerateChallengeFailedFlow()
+
+        // Run generateChallengeAsCredentialActivityResult()
+        val intent =
+            Intent().putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle)
+        val ret = viewModel.generateChallengeAsCredentialActivityResult(
+            false,
+            ActivityResult(Activity.RESULT_OK, intent),
+            backgroundScope
+        )
+        runCurrent()
+
+        assertThat(ret).isTrue()
+        assertThat(generateFails.size).isEqualTo(0)
+        assertThat(viewModel.token).isNotNull()
+        assertThat(challengeGenerator.callbackRunCount).isEqualTo(1)
+        assertThat(hasCalledRemoveGkPwHandle.get()).isTrue()
+    }
+
+    private fun TestScope.listOfGenerateChallengeFailedFlow(): List<Boolean> =
+        mutableListOf<Boolean>().also {
+            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                viewModel.generateChallengeFailedFlow.toList(it)
+            }
+        }
+
+    class TestChallengeGenerator : ChallengeGenerator {
+        var sensorId = -1
+        var userId = UserHandle.myUserId()
+        var challenge = CredentialModel.INVALID_CHALLENGE
+        var callbackRunCount = 0
+
+        override var callback: AutoCredentialViewModel.GenerateChallengeCallback? = null
+
+        override fun generateChallenge(userId: Int) {
+            callback?.let {
+                it.onChallengeGenerated(sensorId, this.userId, challenge)
+                ++callbackRunCount
+            }
+        }
+    }
+
+    private fun newGoodCredential(gkPwHandle: Long, hat: ByteArray): VerifyCredentialResponse {
+        return VerifyCredentialResponse.Builder()
+            .setGatekeeperPasswordHandle(gkPwHandle)
+            .setGatekeeperHAT(hat)
+            .build()
+    }
+
+    private fun newBadCredential(timeout: Int): VerifyCredentialResponse {
+        return if (timeout > 0) {
+            VerifyCredentialResponse.fromTimeout(timeout)
+        } else {
+            VerifyCredentialResponse.fromError()
+        }
+    }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
index fb0937e..d4fae60 100644
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
@@ -16,18 +16,11 @@
 
 package com.android.settings.biometrics2.ui.viewmodel;
 
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
 import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC;
 
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.ErrorDialogData;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintErrorDialogAction;
 import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -81,20 +74,11 @@
         mViewModel = new FingerprintEnrollEnrollingViewModel(
                 mApplication,
                 TEST_USER_ID,
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5)
+                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL,  5)
             );
     }
 
     @Test
-    public void testShowErrorDialogLiveData() {
-        assertThat(mViewModel.getErrorDialogLiveData().getValue()).isEqualTo(null);
-
-        final ErrorDialogData data = new ErrorDialogData("errMsg", "errTitle", 0);
-        mViewModel.showErrorDialog(data);
-        assertThat(mViewModel.getErrorDialogLiveData().getValue()).isEqualTo(data);
-    }
-
-    @Test
     public void testIconTouchDialog() {
         final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
         assertThat(actionLiveData.getValue()).isEqualTo(null);
@@ -105,23 +89,6 @@
     }
 
     @Test
-    public void testErrorDialogActionLiveData() {
-        assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(null);
-
-        @FingerprintErrorDialogAction int action = FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
-        mViewModel.onErrorDialogAction(action);
-        assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
-
-        action = FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
-        mViewModel.onErrorDialogAction(action);
-        assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
-
-        action = FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
-        mViewModel.onErrorDialogAction(action);
-        assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
-    }
-
-    @Test
     public void tesBackPressedScenario() {
         final LiveData<Integer> actionLiveData = mViewModel.getActionLiveData();
         assertThat(actionLiveData.getValue()).isEqualTo(null);
@@ -152,26 +119,6 @@
     }
 
     @Test
-    public void testCanAssumeUdfps_forUdfpsUltrasonicSensor() {
-        mViewModel = new FingerprintEnrollEnrollingViewModel(
-                mApplication,
-                TEST_USER_ID,
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_ULTRASONIC, 5)
-        );
-        assertThat(mViewModel.canAssumeUdfps()).isEqualTo(true);
-    }
-
-    @Test
-    public void testCanAssumeUdfps_forRearSensor() {
-        mViewModel = new FingerprintEnrollEnrollingViewModel(
-                mApplication,
-                TEST_USER_ID,
-                newFingerprintRepository(mFingerprintManager,  TYPE_REAR, 5)
-        );
-        assertThat(mViewModel.canAssumeUdfps()).isEqualTo(false);
-    }
-
-    @Test
     public void testGetFirstFingerprintSensorPropertiesInternal() {
         final ArrayList<FingerprintSensorPropertiesInternal> props = new ArrayList<>();
         final FingerprintSensorPropertiesInternal prop = new FingerprintSensorPropertiesInternal(
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt
new file mode 100644
index 0000000..379a5c1
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollErrorDialogViewModelTest.kt
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Application
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintErrorDialogSetResultAction.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.toList
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class FingerprintEnrollErrorDialogViewModelTest {
+
+    private val application = ApplicationProvider.getApplicationContext<Application>()
+    private var viewModel: FingerprintEnrollErrorDialogViewModel =
+        FingerprintEnrollErrorDialogViewModel(application, false)
+
+    @Before
+    fun setUp() {
+        // Make sure viewModel is new for each test
+        viewModel = FingerprintEnrollErrorDialogViewModel(application, false)
+    }
+
+    @Test
+    fun testIsDialogNotShownDefaultFalse() {
+        assertThat(viewModel.isDialogShown).isFalse()
+    }
+
+    @Test
+    fun testIsSuw() {
+        assertThat(FingerprintEnrollErrorDialogViewModel(application, false).isSuw).isFalse()
+        assertThat(FingerprintEnrollErrorDialogViewModel(application, true).isSuw).isTrue()
+    }
+
+    @Test
+    fun testNewDialog() = runTest {
+        val newDialogs: List<Int> = mutableListOf<Int>().also {
+            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                viewModel.newDialogFlow.toList(it)
+            }
+        }
+
+        runCurrent()
+
+        // Default values
+        assertThat(viewModel.isDialogShown).isFalse()
+        assertThat(newDialogs.size).isEqualTo(0)
+
+        val testErrorMsgId = 3456
+        viewModel.newDialog(testErrorMsgId)
+        runCurrent()
+
+        // verify after emit
+        assertThat(viewModel.isDialogShown).isTrue()
+        assertThat(newDialogs.size).isEqualTo(1)
+        assertThat(newDialogs[0]).isEqualTo(testErrorMsgId)
+    }
+
+    @Test
+    fun testTriggerRetry() = runTest {
+        val triggerRetries: List<Any> = mutableListOf<Any>().also {
+            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                viewModel.triggerRetryFlow.toList(it)
+            }
+        }
+
+        runCurrent()
+
+        // Default values
+        assertThat(triggerRetries.size).isEqualTo(0)
+
+        viewModel.triggerRetry()
+        runCurrent()
+
+        // verify after emit
+        assertThat(triggerRetries.size).isEqualTo(1)
+    }
+
+    @Test
+    fun testSetResultFinish() = runTest {
+        val setResults: List<FingerprintErrorDialogSetResultAction> =
+            mutableListOf<FingerprintErrorDialogSetResultAction>().also {
+                backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                    viewModel.setResultFlow.toList(it)
+                }
+            }
+
+        runCurrent()
+
+        // Default values
+        assertThat(setResults.size).isEqualTo(0)
+
+        viewModel.setResultAndFinish(FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
+        runCurrent()
+
+        // verify after emit
+        assertThat(setResults.size).isEqualTo(1)
+        assertThat(setResults[0]).isEqualTo(FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
+    }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
index a72175d..18bd61a 100644
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFindSensorViewModelTest.java
@@ -18,6 +18,7 @@
 
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_DIALOG;
 import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_SKIP;
+import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollFindSensorViewModel.FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -71,6 +72,13 @@
     }
 
     @Test
+    public void testClickStartDialogButton() {
+        mViewModel.onStartButtonClick();
+        assertThat(mViewModel.getActionLiveData().getValue()).isEqualTo(
+                FINGERPRINT_ENROLL_FIND_SENSOR_ACTION_START);
+    }
+
+    @Test
     public void testClearActionLiveData() {
         assertThat(mViewModel.getActionLiveData().getValue()).isNull();
 
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
index 34ef801..ac97e72 100644
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollFinishViewModelTest.java
@@ -64,7 +64,7 @@
     @Before
     public void setUp() {
         mApplication = ApplicationProvider.getApplicationContext();
-        mRequest = new EnrollmentRequest(new Intent(), mApplication);
+        mRequest = new EnrollmentRequest(new Intent(), mApplication, true);
         mViewModel = new FingerprintEnrollFinishViewModel(mApplication, USER_ID, mRequest,
                 newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, MAX_ENROLLABLE));
     }
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.java
deleted file mode 100644
index 41d8226..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.java
+++ /dev/null
@@ -1,329 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_REAR;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL;
-import static android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC;
-
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX;
-import static com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus.FINGERPRINT_ENROLLABLE_OK;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroViewModel.FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL;
-import static com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest;
-import static com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwDeferredRequest;
-import static com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwPortalRequest;
-import static com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest;
-import static com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwSuggestedActionFlowRequest;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints;
-import static com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupSuwMaxFingerprintsEnrollable;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import android.app.Application;
-import android.content.res.Resources;
-import android.hardware.fingerprint.FingerprintManager;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.MutableLiveData;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollIntroViewModelTest {
-
-    private static final int TEST_USER_ID = 33;
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    @Mock private Resources mResources;
-    @Mock private FingerprintManager mFingerprintManager;
-
-    private Application mApplication;
-
-    private FingerprintEnrollIntroViewModel newFingerprintEnrollIntroViewModel(
-            @NonNull FingerprintRepository fingerprintRepository,
-            @NonNull EnrollmentRequest enrollmentRequest) {
-        final FingerprintEnrollIntroViewModel viewModel =
-                new FingerprintEnrollIntroViewModel(mApplication, fingerprintRepository,
-                        enrollmentRequest, TEST_USER_ID);
-        // MediatorLiveData won't update itself unless observed
-        viewModel.getPageStatusLiveData().observeForever(event -> {});
-        return viewModel;
-    }
-
-    @Before
-    public void setUp() {
-        mApplication = ApplicationProvider.getApplicationContext();
-    }
-
-    @Test
-    public void testPageStatusLiveDataDefaultValue() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newAllFalseRequest(mApplication));
-        final FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.hasScrollToBottom()).isFalse();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_OK);
-    }
-
-    @Test
-    public void testClearActionLiveData() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newAllFalseRequest(mApplication));
-
-        final MutableLiveData<Integer> actionLiveData =
-                (MutableLiveData<Integer>) viewModel.getActionLiveData();
-        actionLiveData.postValue(1);
-        assertThat(actionLiveData.getValue()).isEqualTo(1);
-
-        viewModel.clearActionLiveData();
-
-        assertThat(actionLiveData.getValue()).isNull();
-    }
-
-    @Test
-    public void testGetEnrollmentRequest() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newAllFalseRequest(mApplication));
-
-        assertThat(viewModel.getRequest()).isNotNull();
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusOk_isSuw() {
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, TEST_USER_ID, 0);
-        setupSuwMaxFingerprintsEnrollable(mApplication, mResources, 1);
-
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newIsSuwRequest(mApplication));
-        final FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_OK);
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusReachMax_isSuw() {
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, TEST_USER_ID, 1);
-        setupSuwMaxFingerprintsEnrollable(mApplication, mResources, 1);
-
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newIsSuwRequest(mApplication));
-        final FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX);
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusOk_isNotSuw() {
-        testOnStartToUpdateEnrollableStatusOk(newAllFalseRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusReachMax_isNotSuw() {
-        testOnStartToUpdateEnrollableStatusReachMax(newAllFalseRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusOk_isSuwDeferred() {
-        testOnStartToUpdateEnrollableStatusOk(newIsSuwDeferredRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusReachMax_isSuwDeferred() {
-        testOnStartToUpdateEnrollableStatusReachMax(newIsSuwDeferredRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusOk_isSuwPortal() {
-        testOnStartToUpdateEnrollableStatusOk(newIsSuwPortalRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusReachMax_isSuwPortal() {
-        testOnStartToUpdateEnrollableStatusReachMax(newIsSuwPortalRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusOk_isSuwSuggestedActionFlow() {
-        testOnStartToUpdateEnrollableStatusOk(newIsSuwSuggestedActionFlowRequest(mApplication));
-    }
-
-    @Test
-    public void testOnStartToUpdateEnrollableStatusReachMax_isSuwSuggestedActionFlow() {
-        testOnStartToUpdateEnrollableStatusReachMax(
-                newIsSuwSuggestedActionFlowRequest(mApplication));
-    }
-
-    private void testOnStartToUpdateEnrollableStatusOk(@NonNull EnrollmentRequest request) {
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, TEST_USER_ID, 0);
-
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                request);
-        FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_OK);
-    }
-
-    private void testOnStartToUpdateEnrollableStatusReachMax(@NonNull EnrollmentRequest request) {
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, TEST_USER_ID, 5);
-
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                request);
-        FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX);
-    }
-
-    @Test
-    public void testCanAssumeUdfps_forUdfpsUltrasonicSensor() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_ULTRASONIC, 5),
-                newAllFalseRequest(mApplication));
-
-        assertThat(viewModel.canAssumeUdfps()).isEqualTo(true);
-    }
-
-    @Test
-    public void testCanAssumeUdfps_forRearSensor() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_REAR, 5),
-                newAllFalseRequest(mApplication));
-
-        assertThat(viewModel.canAssumeUdfps()).isEqualTo(false);
-    }
-
-    @Test
-    public void testIsParentalConsentRequired() {
-        // We shall not mock FingerprintRepository, but
-        // FingerprintRepository.isParentalConsentRequired() calls static method inside, we can't
-        // mock static method
-        final FingerprintRepository fingerprintRepository = mock(FingerprintRepository.class);
-        final FingerprintEnrollIntroViewModel viewModel = new FingerprintEnrollIntroViewModel(
-                mApplication, fingerprintRepository, newAllFalseRequest(mApplication),
-                TEST_USER_ID);
-
-        when(fingerprintRepository.isParentalConsentRequired(mApplication)).thenReturn(true);
-        assertThat(viewModel.isParentalConsentRequired()).isEqualTo(true);
-
-        when(fingerprintRepository.isParentalConsentRequired(mApplication)).thenReturn(false);
-        assertThat(viewModel.isParentalConsentRequired()).isEqualTo(false);
-    }
-
-    @Test
-    public void testIsBiometricUnlockDisabledByAdmin() {
-        // We shall not mock FingerprintRepository, but
-        // FingerprintRepository.isDisabledByAdmin() calls static method inside, we can't mock
-        // static method
-        final FingerprintRepository fingerprintRepository = mock(FingerprintRepository.class);
-        final FingerprintEnrollIntroViewModel viewModel = new FingerprintEnrollIntroViewModel(
-                mApplication, fingerprintRepository, newAllFalseRequest(mApplication),
-                TEST_USER_ID);
-
-        when(fingerprintRepository.isDisabledByAdmin(mApplication, TEST_USER_ID)).thenReturn(true);
-        assertThat(viewModel.isBiometricUnlockDisabledByAdmin()).isEqualTo(true);
-
-        when(fingerprintRepository.isDisabledByAdmin(mApplication, TEST_USER_ID)).thenReturn(false);
-        assertThat(viewModel.isBiometricUnlockDisabledByAdmin()).isEqualTo(false);
-    }
-
-    @Test
-    public void testSetHasScrolledToBottom() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newAllFalseRequest(mApplication));
-
-        viewModel.setHasScrolledToBottom(true);
-        FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.hasScrollToBottom()).isEqualTo(true);
-
-        viewModel.setHasScrolledToBottom(false);
-        status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.hasScrollToBottom()).isEqualTo(false);
-    }
-
-    @Test
-    public void testOnNextButtonClick_enrollNext() {
-        // Set latest status to FINGERPRINT_ENROLLABLE_OK
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, TEST_USER_ID, 0);
-        setupSuwMaxFingerprintsEnrollable(mApplication, mResources, 1);
-
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newIsSuwRequest(mApplication));
-        FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_OK);
-
-        // Perform click on `next`
-        viewModel.onNextButtonClick();
-
-        assertThat(viewModel.getActionLiveData().getValue())
-                .isEqualTo(FINGERPRINT_ENROLL_INTRO_ACTION_CONTINUE_ENROLL);
-    }
-
-    @Test
-    public void testOnNextButtonClick_doneAndFinish() {
-        // Set latest status to FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
-        setupFingerprintEnrolledFingerprints(mFingerprintManager, TEST_USER_ID, 1);
-        setupSuwMaxFingerprintsEnrollable(mApplication, mResources, 1);
-
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newIsSuwRequest(mApplication));
-        FingerprintEnrollIntroStatus status = viewModel.getPageStatusLiveData().getValue();
-        assertThat(status.getEnrollableStatus()).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX);
-
-        // Perform click on `next`
-        viewModel.onNextButtonClick();
-
-        assertThat(viewModel.getActionLiveData().getValue())
-                .isEqualTo(FINGERPRINT_ENROLL_INTRO_ACTION_DONE_AND_FINISH);
-    }
-
-    @Test
-    public void testOnSkipOrCancelButtonClick() {
-        final FingerprintEnrollIntroViewModel viewModel = newFingerprintEnrollIntroViewModel(
-                newFingerprintRepository(mFingerprintManager, TYPE_UDFPS_OPTICAL, 5),
-                newAllFalseRequest(mApplication));
-
-        viewModel.onSkipOrCancelButtonClick();
-
-        assertThat(viewModel.getActionLiveData().getValue())
-                .isEqualTo(FINGERPRINT_ENROLL_INTRO_ACTION_SKIP_OR_CANCEL);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt
new file mode 100644
index 0000000..7494aef
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollIntroViewModelTest.kt
@@ -0,0 +1,357 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Application
+import android.content.res.Resources
+import android.hardware.fingerprint.FingerprintManager
+import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_UDFPS_OPTICAL
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.biometrics2.data.repository.FingerprintRepository
+import com.android.settings.biometrics2.ui.model.EnrollmentRequest
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollIntroStatus
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+import com.android.settings.biometrics2.ui.model.FingerprintEnrollable.FINGERPRINT_ENROLLABLE_OK
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.CONTINUE_ENROLL
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.DONE_AND_FINISH
+import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollIntroAction.SKIP_OR_CANCEL
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwDeferredRequest
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwPortalRequest
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwSuggestedActionFlowRequest
+import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository
+import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints
+import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupSuwMaxFingerprintsEnrollable
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.toList
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Mockito
+import org.mockito.junit.MockitoJUnit
+
+@RunWith(AndroidJUnit4::class)
+class FingerprintEnrollIntroViewModelTest {
+
+    @get:Rule val mockito = MockitoJUnit.rule()
+
+    @Mock private lateinit var resources: Resources
+    @Mock private lateinit var fingerprintManager: FingerprintManager
+
+    private var application: Application = ApplicationProvider.getApplicationContext()
+
+    private fun newFingerprintEnrollIntroViewModel(
+        fingerprintRepository: FingerprintRepository,
+        enrollmentRequest: EnrollmentRequest
+    ) = FingerprintEnrollIntroViewModel(
+        application,
+        fingerprintRepository,
+        enrollmentRequest,
+        TEST_USER_ID
+    )
+
+    @Before
+    fun setUp() {
+        application = ApplicationProvider.getApplicationContext()
+    }
+
+    @Test
+    fun testPageStatusFlowDefaultAndUpdate() = runTest {
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 1),
+            newAllFalseRequest(application)
+        )
+
+        val statusList = listOfPageStatusFlow(viewModel)
+
+        runCurrent()
+
+        // assert default values
+        assertThat(statusList.size).isEqualTo(1)
+        assertThat(statusList[0].hasScrollToBottom()).isFalse()
+        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
+
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
+        viewModel.updateEnrollableStatus(backgroundScope)
+        runCurrent()
+
+        // assert new updated value
+        assertThat(statusList.size).isEqualTo(2)
+        assertThat(statusList[1].hasScrollToBottom()).isFalse()
+        assertThat(statusList[1].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
+    }
+
+    fun testOnStartToUpdateEnrollableStatusOk_isSuw() = runTest {
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
+        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            newIsSuwRequest(application)
+        )
+
+        val statusList = listOfPageStatusFlow(viewModel)
+
+        runCurrent()
+
+        assertThat(statusList.size).isEqualTo(1)
+        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusReachMax_isSuw() = runTest {
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
+        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            newIsSuwRequest(application)
+        )
+
+        val statusList = listOfPageStatusFlow(viewModel)
+
+        runCurrent()
+
+        assertThat(statusList.size).isEqualTo(1)
+        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusOk_isNotSuw() = runTest {
+        testOnStartToUpdateEnrollableStatusOk(newAllFalseRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusReachMax_isNotSuw() = runTest {
+        testOnStartToUpdateEnrollableStatusReachMax(newAllFalseRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusOk_isSuwDeferred() = runTest {
+        testOnStartToUpdateEnrollableStatusOk(newIsSuwDeferredRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusReachMax_isSuwDeferred() = runTest {
+        testOnStartToUpdateEnrollableStatusReachMax(newIsSuwDeferredRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusOk_isSuwPortal() = runTest {
+        testOnStartToUpdateEnrollableStatusOk(newIsSuwPortalRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusReachMax_isSuwPortal() = runTest {
+        testOnStartToUpdateEnrollableStatusReachMax(newIsSuwPortalRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusOk_isSuwSuggestedActionFlow() = runTest {
+        testOnStartToUpdateEnrollableStatusOk(newIsSuwSuggestedActionFlowRequest(application))
+    }
+
+    @Test
+    fun testOnStartToUpdateEnrollableStatusReachMax_isSuwSuggestedActionFlow() = runTest {
+        testOnStartToUpdateEnrollableStatusReachMax(
+            newIsSuwSuggestedActionFlowRequest(application)
+        )
+    }
+
+    private fun TestScope.testOnStartToUpdateEnrollableStatusOk(request: EnrollmentRequest) {
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            request
+        )
+
+        val statusList = listOfPageStatusFlow(viewModel)
+
+        runCurrent()
+
+        assertThat(statusList.size).isEqualTo(1)
+        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_OK)
+    }
+
+    private fun TestScope.testOnStartToUpdateEnrollableStatusReachMax(request: EnrollmentRequest) {
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 5)
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            request
+        )
+
+        val statusList = listOfPageStatusFlow(viewModel)
+
+        runCurrent()
+
+        assertThat(statusList.size).isEqualTo(1)
+        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
+    }
+
+    @Test
+    fun testIsParentalConsentRequired() {
+        // We shall not mock FingerprintRepository, but
+        // FingerprintRepository.isParentalConsentRequired() calls static method inside, we can't
+        // mock static method
+        val fingerprintRepository = Mockito.mock(
+            FingerprintRepository::class.java
+        )
+        val viewModel = FingerprintEnrollIntroViewModel(
+            application,
+            fingerprintRepository,
+            newAllFalseRequest(application),
+            TEST_USER_ID
+        )
+        Mockito.`when`(
+            fingerprintRepository.isParentalConsentRequired(application)
+        ).thenReturn(true)
+        assertThat(viewModel.isParentalConsentRequired).isEqualTo(true)
+        Mockito.`when`(
+            fingerprintRepository.isParentalConsentRequired(application)
+        ).thenReturn(false)
+        assertThat(viewModel.isParentalConsentRequired).isEqualTo(false)
+    }
+
+    @Test
+    fun testIsBiometricUnlockDisabledByAdmin() {
+        // We shall not mock FingerprintRepository, but
+        // FingerprintRepository.isDisabledByAdmin() calls static method inside, we can't mock
+        // static method
+        val fingerprintRepository = Mockito.mock(FingerprintRepository::class.java)
+        val viewModel = FingerprintEnrollIntroViewModel(
+            application,
+            fingerprintRepository,
+            newAllFalseRequest(application),
+            TEST_USER_ID
+        )
+        Mockito.`when`(
+            fingerprintRepository.isDisabledByAdmin(application, TEST_USER_ID)
+        ).thenReturn(true)
+        assertThat(viewModel.isBiometricUnlockDisabledByAdmin).isEqualTo(true)
+        Mockito.`when`(
+            fingerprintRepository.isDisabledByAdmin(application, TEST_USER_ID)
+        ).thenReturn(false)
+        assertThat(viewModel.isBiometricUnlockDisabledByAdmin).isEqualTo(false)
+    }
+
+    @Test
+    fun testSetHasScrolledToBottom() = runTest {
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            newAllFalseRequest(application)
+        )
+
+        val pageStatusList = listOfPageStatusFlow(viewModel)
+
+        viewModel.setHasScrolledToBottom(true, backgroundScope)
+        runCurrent()
+
+        assertThat(pageStatusList[pageStatusList.size-1].hasScrollToBottom()).isEqualTo(true)
+    }
+
+    @Test
+    fun testOnNextButtonClick_enrollNext() = runTest {
+        // Set latest status to FINGERPRINT_ENROLLABLE_OK
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 0)
+        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            newIsSuwRequest(application)
+        )
+
+        val actions = listOfActionFlow(viewModel)
+
+        // Perform click on `next`
+        viewModel.onNextButtonClick(backgroundScope)
+        runCurrent()
+
+        assertThat(actions.size).isEqualTo(1)
+        assertThat(actions[0]).isEqualTo(CONTINUE_ENROLL)
+    }
+
+    @Test
+    fun testOnNextButtonClick_doneAndFinish() = runTest {
+        // Set latest status to FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX
+        setupFingerprintEnrolledFingerprints(fingerprintManager, TEST_USER_ID, 1)
+        setupSuwMaxFingerprintsEnrollable(application, resources, 1)
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            newIsSuwRequest(application)
+        )
+
+        val statusList = listOfPageStatusFlow(viewModel)
+        val actionList = listOfActionFlow(viewModel)
+
+        runCurrent()
+
+        assertThat(statusList.size).isEqualTo(1)
+        assertThat(statusList[0].enrollableStatus).isEqualTo(FINGERPRINT_ENROLLABLE_ERROR_REACH_MAX)
+
+        val actions = listOfActionFlow(viewModel)
+
+        // Perform click on `next`
+        viewModel.onNextButtonClick(backgroundScope)
+        runCurrent()
+
+        assertThat(actionList.size).isEqualTo(1)
+        assertThat(actionList[0]).isEqualTo(DONE_AND_FINISH)
+    }
+
+    @Test
+    fun testOnSkipOrCancelButtonClick() = runTest {
+        val viewModel = newFingerprintEnrollIntroViewModel(
+            newFingerprintRepository(fingerprintManager, TYPE_UDFPS_OPTICAL, 5),
+            newAllFalseRequest(application)
+        )
+
+        val actions = listOfActionFlow(viewModel)
+
+        viewModel.onSkipOrCancelButtonClick(backgroundScope)
+        runCurrent()
+
+        assertThat(actions.size).isEqualTo(1)
+        assertThat(actions[0]).isEqualTo(SKIP_OR_CANCEL)
+    }
+
+    private fun TestScope.listOfActionFlow(
+        viewModel: FingerprintEnrollIntroViewModel
+    ): List<FingerprintEnrollIntroAction> =
+        mutableListOf<FingerprintEnrollIntroAction>().also {
+            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                viewModel.actionFlow.toList(it)
+            }
+        }
+
+    private fun TestScope.listOfPageStatusFlow(
+        viewModel: FingerprintEnrollIntroViewModel
+    ): List<FingerprintEnrollIntroStatus> =
+        mutableListOf<FingerprintEnrollIntroStatus>().also {
+            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                viewModel.pageStatusFlow.toList(it)
+            }
+        }
+
+    companion object {
+        private const val TEST_USER_ID = 33
+    }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
index 2c830ad..418db04 100644
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollProgressViewModelTest.java
@@ -108,9 +108,9 @@
         mViewModel.setToken(token);
 
         // Start enrollment
-        final boolean ret = mViewModel.startEnrollment(enrollReason);
+        final Object ret = mViewModel.startEnrollment(enrollReason);
 
-        assertThat(ret).isTrue();
+        assertThat(ret).isNotNull();
         verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
                 eq(TEST_USER_ID), any(EnrollmentCallback.class), eq(enrollReason));
         assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isFalse();
@@ -123,9 +123,9 @@
         mViewModel.setToken(token);
 
         // Start enrollment
-        final boolean ret = mViewModel.startEnrollment(enrollReason);
+        final Object ret = mViewModel.startEnrollment(enrollReason);
 
-        assertThat(ret).isTrue();
+        assertThat(ret).isNotNull();
         verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
                 eq(TEST_USER_ID), any(EnrollmentCallback.class), eq(enrollReason));
         assertThat(mCallbackWrapper.mValue instanceof MessageDisplayController).isFalse();
@@ -142,9 +142,9 @@
         mViewModel.setToken(token);
 
         // Start enrollment
-        final boolean ret = mViewModel.startEnrollment(enrollReason);
+        final Object ret = mViewModel.startEnrollment(enrollReason);
 
-        assertThat(ret).isTrue();
+        assertThat(ret).isNotNull();
         verify(mFingerprintUpdater, only()).enroll(eq(token), any(CancellationSignal.class),
                 eq(TEST_USER_ID), any(MessageDisplayController.class), eq(enrollReason));
         assertThat(mCallbackWrapper.mValue).isNotNull();
@@ -166,9 +166,9 @@
     @Test
     public void testStartEnrollmentFailBecauseOfNoToken() {
         // Start enrollment
-        final boolean ret = mViewModel.startEnrollment(ENROLL_FIND_SENSOR);
+        final Object ret = mViewModel.startEnrollment(ENROLL_FIND_SENSOR);
 
-        assertThat(ret).isFalse();
+        assertThat(ret).isNull();
         verify(mFingerprintUpdater, never()).enroll(any(byte[].class),
                 any(CancellationSignal.class), anyInt(), any(EnrollmentCallback.class), anyInt());
     }
@@ -177,8 +177,8 @@
     public void testCancelEnrollment() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCancellationSignalWrapper.mValue).isNotNull();
 
         // Cancel enrollment
@@ -191,8 +191,8 @@
     public void testProgressUpdate() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Test default value
@@ -228,8 +228,8 @@
     public void testProgressUpdateClearHelpMessage() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
         final LiveData<EnrollmentProgress> progressLiveData = mViewModel.getProgressLiveData();
         final LiveData<EnrollmentStatusMessage> helpMsgLiveData =
@@ -271,8 +271,8 @@
         mViewModel.setToken(new byte[] { 1, 2, 3 });
 
         // Start enrollment
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Test default value
@@ -308,8 +308,8 @@
     public void testGetErrorMessageLiveData() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Check default value
@@ -330,8 +330,8 @@
     public void testGetHelpMessageLiveData() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Check default value
@@ -352,8 +352,8 @@
     public void testGetAcquireLiveData() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Check default value
@@ -369,8 +369,8 @@
     public void testGetPointerDownLiveData() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Check default value
@@ -387,8 +387,8 @@
     public void testGetPointerUpLiveData() {
         // Start enrollment
         mViewModel.setToken(new byte[] { 1, 2, 3 });
-        final boolean ret = mViewModel.startEnrollment(ENROLL_ENROLL);
-        assertThat(ret).isTrue();
+        final Object ret = mViewModel.startEnrollment(ENROLL_ENROLL);
+        assertThat(ret).isNotNull();
         assertThat(mCallbackWrapper.mValue).isNotNull();
 
         // Check default value
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.java
deleted file mode 100644
index 945ce8a..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.ui.viewmodel;
-
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel.SAVED_STATE_IS_NEW_FINGERPRINT_ADDED;
-import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollmentViewModel.SAVED_STATE_IS_WAITING_ACTIVITY_RESULT;
-import static com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.Application;
-import android.hardware.fingerprint.FingerprintManager;
-import android.os.Bundle;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.biometrics2.data.repository.FingerprintRepository;
-import com.android.settings.testutils.InstantTaskExecutorRule;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class FingerprintEnrollmentViewModelTest {
-
-    @Rule public final MockitoRule mockito = MockitoJUnit.rule();
-    @Rule public final InstantTaskExecutorRule mTaskExecutorRule = new InstantTaskExecutorRule();
-
-    @Mock private FingerprintManager mFingerprintManager;
-
-    private Application mApplication;
-    private FingerprintRepository mFingerprintRepository;
-    private FingerprintEnrollmentViewModel mViewModel;
-
-    @Before
-    public void setUp() {
-        mApplication = ApplicationProvider.getApplicationContext();
-        mFingerprintRepository = new FingerprintRepository(mFingerprintManager);
-        mViewModel = new FingerprintEnrollmentViewModel(mApplication, mFingerprintRepository,
-                newAllFalseRequest(mApplication));
-    }
-
-    @Test
-    public void testGetRequest() {
-        assertThat(mViewModel.getRequest()).isNotNull();
-    }
-
-    @Test
-    public void testSetSavedInstanceState() {
-        // setSavedInstanceState() as false
-        final Bundle bundle = new Bundle();
-        final Bundle outBundle = new Bundle();
-
-        // Set SAVED_STATE_IS_WAITING_ACTIVITY_RESULT to true
-        bundle.putBoolean(SAVED_STATE_IS_WAITING_ACTIVITY_RESULT, false);
-        mViewModel.setSavedInstanceState(bundle);
-        assertThat(mViewModel.isWaitingActivityResult().get()).isFalse();
-
-        // Set SAVED_STATE_IS_WAITING_ACTIVITY_RESULT to true
-        bundle.clear();
-        bundle.putBoolean(SAVED_STATE_IS_WAITING_ACTIVITY_RESULT, true);
-        mViewModel.setSavedInstanceState(bundle);
-        assertThat(mViewModel.isWaitingActivityResult().get()).isTrue();
-
-        // Set SAVED_STATE_IS_NEW_FINGERPRINT_ADDED to false
-        bundle.clear();
-        bundle.putBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED, false);
-        mViewModel.setSavedInstanceState(bundle);
-        outBundle.clear();
-        mViewModel.onSaveInstanceState(outBundle);
-        assertThat(outBundle.getBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED)).isFalse();
-
-        // Set SAVED_STATE_IS_NEW_FINGERPRINT_ADDED to true
-        bundle.clear();
-        bundle.putBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED, true);
-        mViewModel.setSavedInstanceState(bundle);
-        outBundle.clear();
-        mViewModel.onSaveInstanceState(outBundle);
-        assertThat(outBundle.getBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED)).isTrue();
-    }
-
-    @Test
-    public void testOnSaveInstanceState() {
-        // Test isWaitingActivityResult false
-        mViewModel.isWaitingActivityResult().set(false);
-        final Bundle bundle = new Bundle();
-        mViewModel.onSaveInstanceState(bundle);
-        assertThat(bundle.getBoolean(SAVED_STATE_IS_WAITING_ACTIVITY_RESULT)).isFalse();
-
-        // Test isWaitingActivityResult true
-        mViewModel.isWaitingActivityResult().set(true);
-        bundle.clear();
-        mViewModel.onSaveInstanceState(bundle);
-        assertThat(bundle.getBoolean(SAVED_STATE_IS_WAITING_ACTIVITY_RESULT)).isTrue();
-
-        // Test isNewFingerprintAdded default false
-        bundle.clear();
-        mViewModel.onSaveInstanceState(bundle);
-        assertThat(bundle.getBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED)).isFalse();
-
-        // Test isNewFingerprintAdded true
-        mViewModel.setIsNewFingerprintAdded();
-        bundle.clear();
-        mViewModel.onSaveInstanceState(bundle);
-        assertThat(bundle.getBoolean(SAVED_STATE_IS_NEW_FINGERPRINT_ADDED)).isTrue();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt
new file mode 100644
index 0000000..6d04f35
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollmentViewModelTest.kt
@@ -0,0 +1,322 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.biometrics2.ui.viewmodel
+
+import android.app.Application
+import android.content.Intent
+import android.hardware.fingerprint.FingerprintManager
+import android.hardware.fingerprint.FingerprintSensorProperties
+import android.os.Bundle
+import androidx.activity.result.ActivityResult
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics2.data.repository.FingerprintRepository
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newAllFalseRequest
+import com.android.settings.biometrics2.utils.EnrollmentRequestUtils.newIsSuwRequest
+import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.newFingerprintRepository
+import com.android.settings.biometrics2.utils.FingerprintRepositoryUtils.setupFingerprintEnrolledFingerprints
+import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.flow.toList
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.UnconfinedTestDispatcher
+import kotlinx.coroutines.test.runCurrent
+import kotlinx.coroutines.test.runTest
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+
+@RunWith(AndroidJUnit4::class)
+class FingerprintEnrollmentViewModelTest {
+
+    @get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
+
+    private val application: Application
+        get() = ApplicationProvider.getApplicationContext()
+
+    @Mock
+    private lateinit var fingerprintManager: FingerprintManager
+
+    private lateinit var fingerprintRepository: FingerprintRepository
+    private lateinit var viewModel: FingerprintEnrollmentViewModel
+
+    @Before
+    fun setUp() {
+        fingerprintRepository = newFingerprintRepository(
+            fingerprintManager,
+            FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
+            5
+        )
+        viewModel = FingerprintEnrollmentViewModel(
+            application,
+            fingerprintRepository,
+            newAllFalseRequest(application)
+        )
+    }
+
+    @Test
+    fun testGetRequest() {
+        assertThat(viewModel.request).isNotNull()
+    }
+
+    @Test
+    fun testIsWaitingActivityResultDefaultFalse() {
+        assertThat(viewModel.isWaitingActivityResult.value).isFalse()
+    }
+
+
+    @Test
+    fun testOverrideActivityResult_shallKeepNullIntent_woChallengeExtra() {
+        val retResult = viewModel.getOverrideActivityResult(
+            ActivityResult(22, null), null
+        )
+        assertThat(retResult).isNotNull()
+        assertThat(retResult.data).isNull()
+    }
+
+    @Test
+    fun testOverrideActivityResult_shallKeepNullIntent_noIntent_woChallengeExtra() {
+        val intent = Intent()
+        val retResult = viewModel.getOverrideActivityResult(
+            ActivityResult(33, intent), null
+        )
+        assertThat(retResult).isNotNull()
+        assertThat(retResult.data).isEqualTo(intent)
+    }
+
+    @Test
+    fun testOverrideActivityResult_shallKeepNull_woAdded_woIntent_withChallenge() {
+        val extra = Bundle()
+        extra.putString("test1", "test123")
+
+        val retResult = viewModel.getOverrideActivityResult(
+            ActivityResult(33, null), extra
+        )
+
+        assertThat(retResult).isNotNull()
+        assertThat(retResult.data).isNull()
+    }
+
+    @Test
+    fun testOverrideActivityResult_shallCreateNew_woIntent_withChallenge() {
+        val key1 = "test1"
+        val key2 = "test2"
+        val extra = Bundle().apply {
+            putString(key1, "test123")
+            putInt(key2, 9999)
+        }
+
+        viewModel.isNewFingerprintAdded = true
+
+        val retResult = viewModel.getOverrideActivityResult(
+            ActivityResult(33, null), extra
+        )
+        assertThat(retResult).isNotNull()
+
+        val retIntent = retResult.data
+        assertThat(retIntent).isNotNull()
+
+        val retExtra = retIntent!!.extras
+        assertThat(retExtra).isNotNull()
+        assertThat(retExtra!!.size).isEqualTo(extra.size)
+        assertThat(retExtra.getString(key1)).isEqualTo(extra.getString(key1))
+        assertThat(retExtra.getInt(key2)).isEqualTo(extra.getInt(key2))
+    }
+
+    @Test
+    fun testOverrideActivityResult_shallNotMerge_nonAdded_woIntent_withChallenge() {
+        val extra = Bundle().apply {
+            putString("test2", "test123")
+        }
+
+        val key2 = "test2"
+        val intent = Intent().apply {
+            putExtra(key2, 3456L)
+        }
+
+        val retResult = viewModel.getOverrideActivityResult(ActivityResult(33, intent), extra)
+
+        assertThat(retResult).isNotNull()
+
+        val retIntent = retResult.data
+        assertThat(retIntent).isNotNull()
+
+        val retExtra = retIntent!!.extras
+        assertThat(retExtra).isNotNull()
+        assertThat(retExtra!!.size).isEqualTo(intent.extras!!.size)
+        assertThat(retExtra.getString(key2)).isEqualTo(intent.extras!!.getString(key2))
+    }
+
+    @Test
+    fun testOverrideActivityResult_shallMerge_added_woIntent_withChallenge() {
+        val key1 = "test1"
+        val key2 = "test2"
+        val extra = Bundle().apply {
+            putString(key1, "test123")
+            putInt(key2, 9999)
+        }
+
+        val key3 = "test3"
+        val intent = Intent().apply {
+            putExtra(key3, 3456L)
+        }
+
+        viewModel.isNewFingerprintAdded = true
+
+        val retResult = viewModel.getOverrideActivityResult(ActivityResult(33, intent), extra)
+        assertThat(retResult).isNotNull()
+
+        val retIntent = retResult.data
+        assertThat(retIntent).isNotNull()
+
+        val retExtra = retIntent!!.extras
+        assertThat(retExtra).isNotNull()
+        assertThat(retExtra!!.size).isEqualTo(extra.size + intent.extras!!.size)
+        assertThat(retExtra.getString(key1)).isEqualTo(extra.getString(key1))
+        assertThat(retExtra.getInt(key2)).isEqualTo(extra.getInt(key2))
+        assertThat(retExtra.getLong(key3)).isEqualTo(intent.extras!!.getLong(key3))
+    }
+
+    @Test
+    fun testIsMaxEnrolledReached() {
+        val uid = 100
+        fingerprintRepository = newFingerprintRepository(
+            fingerprintManager,
+            FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
+            3
+        )
+        viewModel = FingerprintEnrollmentViewModel(
+            application,
+            fingerprintRepository,
+            newAllFalseRequest(application)
+        )
+
+        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 0)
+        assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
+
+        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 1)
+        assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
+
+        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 2)
+        assertThat(viewModel.isMaxEnrolledReached(uid)).isFalse()
+
+        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 3)
+        assertThat(viewModel.isMaxEnrolledReached(uid)).isTrue()
+
+        setupFingerprintEnrolledFingerprints(fingerprintManager, uid, 4)
+        assertThat(viewModel.isMaxEnrolledReached(uid)).isTrue()
+    }
+
+    @Test
+    fun testSetResultFlow_defaultEmpty() = runTest {
+        val activityResults = listOfSetResultFlow()
+
+        runCurrent()
+
+        assertThat(activityResults.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testCheckFinishActivityDuringOnPause_doNothingIfIsSuw() = runTest {
+        viewModel = FingerprintEnrollmentViewModel(
+            application,
+            fingerprintRepository,
+            newIsSuwRequest(application)
+        )
+
+        val activityResults = listOfSetResultFlow()
+
+        viewModel.checkFinishActivityDuringOnPause(
+            isActivityFinishing = false,
+            isChangingConfigurations = false,
+            scope = this
+        )
+        runCurrent()
+
+        assertThat(activityResults.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testCheckFinishActivityDuringOnPause_doNothingIfIsWaitingActivity() = runTest {
+        val activityResults = listOfSetResultFlow()
+
+        viewModel.isWaitingActivityResult.value = true
+        viewModel.checkFinishActivityDuringOnPause(
+            isActivityFinishing = false,
+            isChangingConfigurations = false,
+            scope = this
+        )
+        runCurrent()
+
+        assertThat(activityResults.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testCheckFinishActivityDuringOnPause_doNothingIfIsActivityFinishing() = runTest {
+        val activityResults = listOfSetResultFlow()
+
+        viewModel.checkFinishActivityDuringOnPause(
+            isActivityFinishing = true,
+            isChangingConfigurations = false,
+            scope = this
+        )
+        runCurrent()
+
+        assertThat(activityResults.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testCheckFinishActivityDuringOnPause_doNothingIfIsChangingConfigurations() = runTest {
+        val activityResults = listOfSetResultFlow()
+
+        viewModel.checkFinishActivityDuringOnPause(
+            isActivityFinishing = false,
+            isChangingConfigurations = true,
+            scope = this
+        )
+        runCurrent()
+
+        assertThat(activityResults.size).isEqualTo(0)
+    }
+
+    @Test
+    fun testCheckFinishActivityDuringOnPause_defaultFinishSelf() = runTest {
+        val activityResults = listOfSetResultFlow()
+
+        viewModel.checkFinishActivityDuringOnPause(
+            isActivityFinishing = false,
+            isChangingConfigurations = false,
+            scope = backgroundScope
+        )
+        runCurrent()
+
+        assertThat(activityResults.size).isEqualTo(1)
+        assertThat(activityResults[0].resultCode).isEqualTo(BiometricEnrollBase.RESULT_TIMEOUT)
+        assertThat(activityResults[0].data).isEqualTo(null)
+    }
+
+    private fun TestScope.listOfSetResultFlow(): List<ActivityResult> =
+        mutableListOf<ActivityResult>().also {
+            backgroundScope.launch(UnconfinedTestDispatcher(testScheduler)) {
+                viewModel.setResultFlow.toList(it)
+            }
+        }
+}
diff --git a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.java b/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.java
deleted file mode 100644
index ced6deb..0000000
--- a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.biometrics2.utils;
-
-import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;
-
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP;
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_FIRST_RUN;
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_PORTAL_SETUP;
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW;
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW;
-import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_THEME;
-
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-
-import androidx.annotation.NonNull;
-
-import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
-
-public class EnrollmentRequestUtils {
-
-    @NonNull
-    public static EnrollmentRequest newAllFalseRequest(@NonNull Context context) {
-        return newRequest(context, false, false, false, false, false, false, null);
-    }
-
-    @NonNull
-    public static EnrollmentRequest newIsSuwRequest(@NonNull Context context) {
-        return newRequest(context, true, false, false, false, false, false, null);
-    }
-
-    @NonNull
-    public static EnrollmentRequest newIsSuwDeferredRequest(@NonNull Context context) {
-        return newRequest(context, true, true, false, false, false, false, null);
-    }
-
-    @NonNull
-    public static EnrollmentRequest newIsSuwPortalRequest(@NonNull Context context) {
-        return newRequest(context, true, false, true, false, false, false, null);
-    }
-
-    @NonNull
-    public static EnrollmentRequest newIsSuwSuggestedActionFlowRequest(
-            @NonNull Context context) {
-        return newRequest(context, true, false, false, true, false, false, null);
-    }
-
-    @NonNull
-    public static EnrollmentRequest newRequest(@NonNull Context context, boolean isSuw,
-            boolean isSuwDeferred, boolean isSuwPortal, boolean isSuwSuggestedActionFlow,
-            boolean isSuwFirstRun, boolean isFromSettingsSummery, String theme) {
-        Intent i = new Intent();
-        i.putExtra(EXTRA_IS_SETUP_FLOW, isSuw);
-        i.putExtra(EXTRA_IS_DEFERRED_SETUP, isSuwDeferred);
-        i.putExtra(EXTRA_IS_PORTAL_SETUP, isSuwPortal);
-        i.putExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, isSuwSuggestedActionFlow);
-        i.putExtra(EXTRA_IS_FIRST_RUN, isSuwFirstRun);
-        i.putExtra(EXTRA_FROM_SETTINGS_SUMMARY, isFromSettingsSummery);
-        if (!TextUtils.isEmpty(theme)) {
-            i.putExtra(EXTRA_THEME, theme);
-        }
-        return new EnrollmentRequest(i, context);
-    }
-
-}
diff --git a/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt b/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt
new file mode 100644
index 0000000..755f6d0
--- /dev/null
+++ b/tests/unit/src/com/android/settings/biometrics2/utils/EnrollmentRequestUtils.kt
@@ -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.biometrics2.utils
+
+import android.content.Context
+import android.content.Intent
+import android.text.TextUtils
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics2.ui.model.EnrollmentRequest
+import com.google.android.setupcompat.util.WizardManagerHelper
+
+object EnrollmentRequestUtils {
+    @JvmStatic
+    fun newAllFalseRequest(context: Context): EnrollmentRequest {
+        return newRequest(
+            context = context,
+            isSuw = false,
+            isSuwDeferred = false,
+            isSuwPortal = false,
+            isSuwSuggestedActionFlow = false,
+            isSuwFirstRun = false,
+            isFromSettingsSummery = false)
+    }
+
+    @JvmStatic
+    fun newIsSuwRequest(context: Context): EnrollmentRequest {
+        return newRequest(
+            context = context,
+            isSuw = true,
+            isSuwDeferred = false,
+            isSuwPortal = false,
+            isSuwSuggestedActionFlow = false,
+            isSuwFirstRun = false,
+            isFromSettingsSummery = false)
+    }
+
+    @JvmStatic
+    fun newIsSuwDeferredRequest(context: Context): EnrollmentRequest {
+        return newRequest(
+            context = context,
+            isSuw = true,
+            isSuwDeferred = true,
+            isSuwPortal = false,
+            isSuwSuggestedActionFlow = false,
+            isSuwFirstRun = false,
+            isFromSettingsSummery = false, null)
+    }
+
+    @JvmStatic
+    fun newIsSuwPortalRequest(context: Context): EnrollmentRequest {
+        return newRequest(
+            context = context,
+            isSuw = true,
+            isSuwDeferred = false,
+            isSuwPortal = true,
+            isSuwSuggestedActionFlow = false,
+            isSuwFirstRun = false,
+            isFromSettingsSummery = false)
+    }
+
+    @JvmStatic
+    fun newIsSuwSuggestedActionFlowRequest(
+        context: Context
+    ): EnrollmentRequest {
+        return newRequest(
+            context = context,
+            isSuw = true,
+            isSuwDeferred = false,
+            isSuwPortal = false,
+            isSuwSuggestedActionFlow = true,
+            isSuwFirstRun = false,
+            isFromSettingsSummery = false)
+    }
+
+    fun newRequest(
+        context: Context,
+        isSuw: Boolean,
+        isSuwDeferred: Boolean,
+        isSuwPortal: Boolean,
+        isSuwSuggestedActionFlow: Boolean,
+        isSuwFirstRun: Boolean,
+        isFromSettingsSummery: Boolean,
+        theme: String? = null
+    ): EnrollmentRequest {
+        val i = Intent()
+        i.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, isSuw)
+        i.putExtra(WizardManagerHelper.EXTRA_IS_DEFERRED_SETUP, isSuwDeferred)
+        i.putExtra(WizardManagerHelper.EXTRA_IS_PORTAL_SETUP, isSuwPortal)
+        i.putExtra(WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, isSuwSuggestedActionFlow)
+        i.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, isSuwFirstRun)
+        i.putExtra(BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY, isFromSettingsSummery)
+        if (!TextUtils.isEmpty(theme)) {
+            i.putExtra(WizardManagerHelper.EXTRA_THEME, theme)
+        }
+        return EnrollmentRequest(i, context, true)
+    }
+}
diff --git a/tests/unit/src/com/android/settings/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/datausage/BillingCyclePreferenceTest.java b/tests/unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.java
deleted file mode 100644
index f74768f..0000000
--- a/tests/unit/src/com/android/settings/datausage/BillingCyclePreferenceTest.java
+++ /dev/null
@@ -1,78 +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.datausage;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-
-import android.content.Context;
-import android.os.INetworkManagementService;
-import android.os.RemoteException;
-import android.os.UserManager;
-import android.telephony.TelephonyManager;
-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 BillingCyclePreferenceTest {
-
-    private Context mContext;
-    private BillingCyclePreference mPreference;
-    private TemplatePreference.NetworkServices mServices;
-    @Mock
-    private INetworkManagementService mNetManageSerice;
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private UserManager mUserManager;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        mServices = new TemplatePreference.NetworkServices();
-        mServices.mNetworkService = mNetManageSerice;
-        mServices.mTelephonyManager = mTelephonyManager;
-        mServices.mUserManager = mUserManager;
-
-        doReturn(mTelephonyManager).when(mTelephonyManager)
-                .createForSubscriptionId(anyInt());
-
-        mPreference = spy(new BillingCyclePreference(mContext, null /* attrs */));
-        mPreference.setTemplate(null, 0, mServices);
-    }
-
-    @Test
-    public void testPreferenceUpdate_onMobileDataEnabledChange_accessDataEnabledApi() {
-        try {
-            doReturn(true).when(mNetManageSerice).isBandwidthControlEnabled();
-        } catch (RemoteException exception) {}
-        doReturn(true).when(mUserManager).isAdminUser();
-        mPreference.onMobileDataEnabledChange();
-
-        verify(mTelephonyManager)
-                .isDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER);
-    }
-}
\ No newline at end of file
diff --git a/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java b/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
index b80e9d2..cb5860a 100644
--- a/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
+++ b/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
@@ -18,9 +18,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.net.NetworkPolicy;
-import android.net.NetworkTemplate;
-
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.android.settingslib.net.DataUsageController.DataUsageInfo;
@@ -32,7 +29,6 @@
 @RunWith(AndroidJUnit4.class)
 public class DataUsageInfoControllerTest {
 
-    private static final int NEGATIVE = -1;
     private static final int ZERO = 0;
     private static final int POSITIVE_SMALL = 1;
     private static final int POSITIVE_LARGE = 5;
@@ -99,80 +95,4 @@
 
         assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.usageLevel);
     }
-
-    private NetworkPolicy getDefaultNetworkPolicy() {
-        NetworkTemplate template = new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build();
-        int cycleDay  = -1;
-        String cycleTimezone = "UTC";
-        long warningBytes = -1;
-        long limitBytes = -1;
-        return new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, limitBytes, true);
-    }
-
-    @Test
-    public void updateDataLimit_NullArguments_NoError() {
-        mInfoController.updateDataLimit(null, null);
-        mInfoController.updateDataLimit(info, null);
-        mInfoController.updateDataLimit(null, getDefaultNetworkPolicy());
-    }
-
-    @Test
-    public void updateDataLimit_NegativeWarning_UpdatedToZero() {
-        NetworkPolicy policy = getDefaultNetworkPolicy();
-        policy.warningBytes = NEGATIVE;
-
-        mInfoController.updateDataLimit(info, policy);
-
-        assertThat(info.warningLevel).isEqualTo(ZERO);
-    }
-
-    @Test
-    public void updateDataLimit_WarningZero_UpdatedToZero() {
-        NetworkPolicy policy = getDefaultNetworkPolicy();
-        policy.warningBytes = ZERO;
-
-        mInfoController.updateDataLimit(info, policy);
-
-        assertThat(info.warningLevel).isEqualTo(ZERO);
-    }
-
-    @Test
-    public void updateDataLimit_WarningPositive_UpdatedToWarning() {
-        NetworkPolicy policy = getDefaultNetworkPolicy();
-        policy.warningBytes = POSITIVE_SMALL;
-
-        mInfoController.updateDataLimit(info, policy);
-
-        assertThat(info.warningLevel).isEqualTo(policy.warningBytes);
-    }
-
-    @Test
-    public void updateDataLimit_LimitNegative_UpdatedToZero() {
-        NetworkPolicy policy = getDefaultNetworkPolicy();
-        policy.limitBytes = NEGATIVE;
-
-        mInfoController.updateDataLimit(info, policy);
-
-        assertThat(info.limitLevel).isEqualTo(ZERO);
-    }
-
-    @Test
-    public void updateDataLimit_LimitZero_UpdatedToZero() {
-        NetworkPolicy policy = getDefaultNetworkPolicy();
-        policy.limitBytes = ZERO;
-
-        mInfoController.updateDataLimit(info, policy);
-
-        assertThat(info.limitLevel).isEqualTo(ZERO);
-    }
-
-    @Test
-    public void updateDataLimit_LimitPositive_UpdatedToLimit() {
-        NetworkPolicy policy = getDefaultNetworkPolicy();
-        policy.limitBytes = POSITIVE_SMALL;
-
-        mInfoController.updateDataLimit(info, policy);
-        
-        assertThat(info.limitLevel).isEqualTo(policy.limitBytes);
-    }
 }
diff --git a/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index b27591e..d80c16a 100644
--- a/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -18,39 +18,28 @@
 
 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 android.content.Context;
-import android.content.Intent;
 import android.content.res.Resources;
 import android.graphics.Typeface;
-import android.net.ConnectivityManager;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.telephony.SubscriptionManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.MeasureSpec;
 import android.widget.TextView;
 
 import androidx.preference.PreferenceViewHolder;
-import androidx.test.annotation.UiThreadTest;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.ResourcesUtils;
 import com.android.settingslib.Utils;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
 import org.mockito.MockitoAnnotations;
 
 import java.util.concurrent.TimeUnit;
@@ -91,31 +80,9 @@
         mUpdateTime = now - UPDATE_LAG_MILLIS;
     }
 
-    @UiThreadTest
-    @Test
-    public void testSetUsageInfo_withLaunchIntent_launchButtonShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
-
-        mSummaryPreference.onBindViewHolder(mHolder);
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
-                .isEqualTo(View.VISIBLE);
-    }
-
-    @Test
-    public void testSetUsageInfo_withoutLaunchIntent_launchButtonNotShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                null /* launchIntent */);
-
-        mSummaryPreference.onBindViewHolder(mHolder);
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
-                .isEqualTo(View.GONE);
-    }
-
     @Test
     public void testSetUsageInfo_withDataPlans_carrierInfoShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility())
@@ -124,8 +91,7 @@
 
     @Test
     public void testSetUsageInfo_withNoDataPlans_carrierInfoNotShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility())
@@ -138,8 +104,7 @@
         int smudge = 6;
         final long updateTime = System.currentTimeMillis()
                 - TimeUnit.DAYS.toMillis(baseUnit) - TimeUnit.HOURS.toMillis(smudge);
-        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
@@ -152,8 +117,7 @@
         int smudge = 6;
         final long updateTime = System.currentTimeMillis()
                 - TimeUnit.HOURS.toMillis(baseUnit) - TimeUnit.MINUTES.toMillis(smudge);
-        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
@@ -166,8 +130,7 @@
         int smudge = 6;
         final long updateTime = System.currentTimeMillis()
                 - TimeUnit.MINUTES.toMillis(baseUnit) - TimeUnit.SECONDS.toMillis(smudge);
-        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
@@ -177,8 +140,7 @@
     @Test
     public void testCarrierUpdateTime_shouldFormatLessThanMinuteCorrectly() {
         final long updateTime = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(45);
-        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
@@ -189,7 +151,7 @@
     public void testCarrierUpdateTimeWithNoCarrier_shouldSayJustNow() {
         final long updateTime = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(45);
         mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, null /* carrier */,
-                1 /* numPlans */, new Intent());
+                1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
@@ -200,7 +162,7 @@
     public void testCarrierUpdateTimeWithNoCarrier_shouldFormatTime() {
         final long updateTime = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(2);
         mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, null /* carrier */,
-                1 /* numPlans */, new Intent());
+                1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
@@ -210,8 +172,7 @@
     @Test
     public void setUsageInfo_withRecentCarrierUpdate_doesNotSetCarrierInfoWarningColorAndFont() {
         final long updateTime = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1);
-        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         TextView carrierInfo = mSummaryPreference.getCarrierInfo(mHolder);
@@ -224,8 +185,7 @@
     @Test
     public void testSetUsageInfo_withStaleCarrierUpdate_setsCarrierInfoWarningColorAndFont() {
         final long updateTime = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(7);
-        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         TextView carrierInfo = mSummaryPreference.getCarrierInfo(mHolder);
@@ -238,8 +198,7 @@
 
     @Test
     public void testSetUsageInfo_withNoDataPlans_usageTitleNotShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility()).isEqualTo(View.GONE);
@@ -247,8 +206,7 @@
 
     @Test
     public void testSetUsageInfo_withMultipleDataPlans_usageTitleShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 2 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 2 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility())
@@ -259,8 +217,7 @@
     public void testSetUsageInfo_cycleRemainingTimeIsLessOneDay() {
         // just under one day
         final long cycleEnd = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(23);
-        mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(cycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
@@ -273,8 +230,7 @@
     @Test
     public void testSetUsageInfo_cycleRemainingTimeNegativeDaysLeft_shouldDisplayNoneLeft() {
         final long cycleEnd = System.currentTimeMillis() - 1L;
-        mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(cycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
@@ -288,8 +244,7 @@
         final int daysLeft = 3;
         final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
                 + TimeUnit.HOURS.toMillis(1);
-        mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(cycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
@@ -372,12 +327,10 @@
 
     @Test
     public void testSetUsageAndRemainingInfo_withUsageInfo_dataUsageAndRemainingShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
         mSummaryPreference.setUsageNumbers(
                 BillingCycleSettings.MIB_IN_BYTES,
-                10 * BillingCycleSettings.MIB_IN_BYTES,
-                true /* hasMobileData */);
+                10 * BillingCycleSettings.MIB_IN_BYTES);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
@@ -393,12 +346,10 @@
 
     @Test
     public void testSetUsageInfo_withDataOverusage() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
         mSummaryPreference.setUsageNumbers(
                 11 * BillingCycleSettings.MIB_IN_BYTES,
-                10 * BillingCycleSettings.MIB_IN_BYTES,
-                true /* hasMobileData */);
+                10 * BillingCycleSettings.MIB_IN_BYTES);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
@@ -412,10 +363,9 @@
 
     @Test
     public void testSetUsageInfo_withUsageInfo_dataUsageShown() {
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, -1, FAKE_CARRIER, 0 /* numPlans */);
         mSummaryPreference.setUsageNumbers(
-                BillingCycleSettings.MIB_IN_BYTES, -1L, true /* hasMobileData */);
+                BillingCycleSettings.MIB_IN_BYTES, -1L);
 
         mSummaryPreference.onBindViewHolder(mHolder);
         assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
@@ -424,46 +374,15 @@
     }
 
     @Test
-    public void testSetAppIntent_toMdpApp_intentCorrect() {
-        final Intent intent = new Intent(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
-        intent.setPackage("test-owner.example.com");
-        intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, 42);
-
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                intent);
-
-        mSummaryPreference.onBindViewHolder(mHolder);
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
-                .isEqualTo(View.VISIBLE);
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).getText())
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext, "launch_mdp_app_text"));
-
-        doNothing().when(mContext).startActivity(any(Intent.class));
-        mSummaryPreference.getLaunchButton(mHolder).callOnClick();
-        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(
-                Intent.class);
-        verify(mContext).startActivity(intentCaptor.capture());
-        final Intent startedIntent = intentCaptor.getValue();
-
-        assertThat(startedIntent.getAction())
-                .isEqualTo(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
-        assertThat(startedIntent.getPackage()).isEqualTo("test-owner.example.com");
-        assertThat(startedIntent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, -1))
-                .isEqualTo(42);
-    }
-
-    @Test
     public void testSetUsageInfo_withOverflowStrings_dataRemainingNotShown() {
         LayoutInflater inflater = LayoutInflater.from(mContext);
         View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
                 false /* attachToRoot */);
 
-        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
-                new Intent());
+        mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */);
         mSummaryPreference.setUsageNumbers(
                 BillingCycleSettings.MIB_IN_BYTES,
-                10 * BillingCycleSettings.MIB_IN_BYTES,
-                true /* hasMobileData */);
+                10 * BillingCycleSettings.MIB_IN_BYTES);
 
         int data_used_formatted_id = ResourcesUtils.getResourcesId(
                 mContext, "string", "data_used_formatted");
@@ -493,79 +412,4 @@
         // TODO(b/175389659): re-enable this line once cuttlefish device specs are verified.
         // assertThat(dataRemaining.getVisibility()).isEqualTo(View.GONE);
     }
-
-    @Test
-    public void testSetWifiMode_withUsageInfo_dataUsageShown() {
-        final int daysLeft = 3;
-        final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
-                + TimeUnit.HOURS.toMillis(1);
-        mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
-                new Intent());
-        mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
-        final String cycleText = "The quick fox";
-        mSummaryPreference.setWifiMode(true /* isWifiMode */, cycleText, false /* isSingleWifi */);
-        doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
-
-        mSummaryPreference.onBindViewHolder(mHolder);
-        assertThat(mSummaryPreference.getUsageTitle(mHolder).getText().toString())
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext, "data_usage_wifi_title"));
-        assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility())
-                .isEqualTo(View.VISIBLE);
-        assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
-                .isEqualTo(View.VISIBLE);
-        assertThat(mSummaryPreference.getCycleTime(mHolder).getText()).isEqualTo(cycleText);
-        assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility()).isEqualTo(View.GONE);
-        assertThat(mSummaryPreference.getDataLimits(mHolder).getVisibility()).isEqualTo(View.GONE);
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
-                .isEqualTo(View.VISIBLE);
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).getText())
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext, "launch_wifi_text"));
-
-        doNothing().when(mContext).startActivity(any(Intent.class));
-        mSummaryPreference.getLaunchButton(mHolder).callOnClick();
-
-        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(
-                Intent.class);
-        verify(mContext).startActivity(intentCaptor.capture());
-        final Intent startedIntent = intentCaptor.getValue();
-
-        final Bundle expect = new Bundle(1);
-        expect.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
-                new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-        final Bundle actual = startedIntent
-                .getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
-        assertThat((NetworkTemplate) actual.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE))
-                .isEqualTo(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build());
-
-        assertThat(startedIntent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
-                .isEqualTo(ResourcesUtils.getResourcesId(mContext, "string", "wifi_data_usage"));
-    }
-
-    @UiThreadTest
-    @Test
-    public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
-        mSummaryPreference.setWifiMode(true /* isWifiMode */, "Test cycle text",
-                false /* isSingleWifi */);
-        doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
-
-        mSummaryPreference.onBindViewHolder(mHolder);
-
-        assertThat(mSummaryPreference.getLaunchButton(mHolder).isEnabled()).isFalse();
-    }
-
-    @Test
-    public void launchWifiDataUsage_shouldSetWifiNetworkTypeInIntentExtra() {
-        doNothing().when(mContext).startActivity(any(Intent.class));
-        mSummaryPreference.launchWifiDataUsage(mContext);
-
-        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(
-                Intent.class);
-        verify(mContext).startActivity(intentCaptor.capture());
-        final Intent launchIntent = intentCaptor.getValue();
-        final Bundle args =
-                launchIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
-
-        assertThat(args.getInt(DataUsageList.EXTRA_NETWORK_TYPE))
-            .isEqualTo(ConnectivityManager.TYPE_WIFI);
-    }
 }
diff --git a/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java
index 3669358..1d93e88 100644
--- a/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/BackAnimationPreferenceControllerTest.java
@@ -29,6 +29,10 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.UserHandle;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.annotations.RequiresFlagsEnabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.provider.Settings;
 
 import androidx.preference.PreferenceManager;
@@ -37,8 +41,11 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
+import com.android.window.flags.Flags;
+
 import org.junit.Assert;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.MockitoAnnotations;
@@ -58,6 +65,9 @@
     private BackAnimationPreferenceController mController;
     private Looper mLooper;
 
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -81,6 +91,18 @@
     }
 
     @Test
+    @RequiresFlagsEnabled(Flags.FLAG_PREDICTIVE_BACK_SYSTEM_ANIMS)
+    public void controllerNotAvailable_whenAconfigFlagEnabled() {
+        assertFalse(mController.isAvailable());
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_PREDICTIVE_BACK_SYSTEM_ANIMS)
+    public void controllerAvailable_whenAconfigFlagDisabled() {
+        assertTrue(mController.isAvailable());
+    }
+
+    @Test
     public void onPreferenceChange_switchEnabled_shouldEnableBackAnimations() {
         mController.onPreferenceChange(mPreference, true /* new value */);
 
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/development/quarantine/QuarantinedAppStateBridgeTest.java b/tests/unit/src/com/android/settings/development/quarantine/QuarantinedAppStateBridgeTest.java
new file mode 100644
index 0000000..707d2b9
--- /dev/null
+++ b/tests/unit/src/com/android/settings/development/quarantine/QuarantinedAppStateBridgeTest.java
@@ -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.development.quarantine;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.os.UserHandle;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+
+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 QuarantinedAppStateBridgeTest {
+    private static final String TEST_PACKAGE = "com.example.test.pkg";
+    private static final int TEST_APP_ID = 1234;
+    private static final int TEST_USER_ID_1 = 0;
+    private static final int TEST_USER_ID_2 = 10;
+
+    @Mock
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void updateExtraInfo_packageQuarantined() throws Exception {
+        setPackageQuarantined(TEST_PACKAGE, TEST_USER_ID_1, false);
+        setPackageQuarantined(TEST_PACKAGE, TEST_USER_ID_2, true);
+
+        final QuarantinedAppStateBridge bridge =
+                new QuarantinedAppStateBridge(mContext, null, null);
+        final AppEntry entry = mock(AppEntry.class);
+
+        bridge.updateExtraInfo(entry, TEST_PACKAGE, UserHandle.getUid(TEST_USER_ID_2, TEST_APP_ID));
+        assertThat(entry.extraInfo).isEqualTo(true);
+    }
+
+    @Test
+    public void updateExtraInfo_packageNotQuarantined() throws Exception {
+        setPackageQuarantined(TEST_PACKAGE, TEST_USER_ID_1, false);
+        setPackageQuarantined(TEST_PACKAGE, TEST_USER_ID_2, false);
+
+        final QuarantinedAppStateBridge bridge =
+                new QuarantinedAppStateBridge(mContext, null, null);
+        final AppEntry entry = mock(AppEntry.class);
+
+        bridge.updateExtraInfo(entry, TEST_PACKAGE, UserHandle.getUid(TEST_USER_ID_2, TEST_APP_ID));
+        assertThat(entry.extraInfo).isEqualTo(false);
+    }
+
+    private void setPackageQuarantined(String packageName, int userId, boolean quarantined)
+            throws Exception {
+        final Context userContext = mock(Context.class);
+        when(mContext.createContextAsUser(eq(UserHandle.of(userId)), anyInt()))
+                .thenReturn(userContext);
+        final PackageManager packageManager = mock(PackageManager.class);
+        when(userContext.getPackageManager()).thenReturn(packageManager);
+        when(packageManager.isPackageQuarantined(packageName)).thenReturn(quarantined);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/development/quarantine/QuarantinedAppsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/quarantine/QuarantinedAppsPreferenceControllerTest.java
new file mode 100644
index 0000000..33e4392
--- /dev/null
+++ b/tests/unit/src/com/android/settings/development/quarantine/QuarantinedAppsPreferenceControllerTest.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.development.quarantine;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static org.junit.Assert.assertEquals;
+
+import android.content.Context;
+import android.content.pm.Flags;
+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.test.ext.junit.runners.AndroidJUnit4;
+
+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 QuarantinedAppsPreferenceControllerTest {
+
+    private static final String PREF_KEY = "quarantined_apps";
+
+    @Rule
+    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
+
+    @Mock
+    private Context mContext;
+    private QuarantinedAppsPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new QuarantinedAppsPreferenceController(mContext, PREF_KEY);
+    }
+
+    @Test
+    @RequiresFlagsEnabled(Flags.FLAG_QUARANTINED_ENABLED)
+    public void testAvailabilityStatus_flagEnabled() {
+        assertEquals(mController.getAvailabilityStatus(), AVAILABLE);
+    }
+
+    @Test
+    @RequiresFlagsDisabled(Flags.FLAG_QUARANTINED_ENABLED)
+    public void testAvailabilityStatus_flagDisabled() {
+        assertEquals(mController.getAvailabilityStatus(), CONDITIONALLY_UNAVAILABLE);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/development/widevine/ForceL3FallbackPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/widevine/ForceL3FallbackPreferenceControllerTest.java
new file mode 100644
index 0000000..f67a4af
--- /dev/null
+++ b/tests/unit/src/com/android/settings/development/widevine/ForceL3FallbackPreferenceControllerTest.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.development.widevine;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assume.assumeTrue;
+import static org.junit.Assume.assumeNoException;
+
+import android.content.Context;
+import android.media.MediaDrm;
+import android.media.UnsupportedSchemeException;
+import android.media.NotProvisionedException;
+import android.sysprop.WidevineProperties;
+import android.util.Log;
+import android.content.Context;
+
+import com.android.settings.media_drm.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.UUID;
+
+@RunWith(AndroidJUnit4.class)
+public class ForceL3FallbackPreferenceControllerTest {
+
+    private static final String PREF_KEY = "force_l3_fallback";
+    private static final UUID WIDEVINE_UUID =
+        new UUID(0xEDEF8BA979D64ACEL, 0xA3C827DCD51D21EDL);
+    private static final String TAG = "ForceL3FallbackPreferenceControllerTest";
+
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    private Context mContext;
+    private ForceL3FallbackPreferenceController mController;
+    private SwitchPreference mPreference;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mController = new ForceL3FallbackPreferenceController(mContext, PREF_KEY);
+        mPreference = new SwitchPreference(mContext);
+        WidevineProperties.forcel3_enabled(false);
+    }
+
+    @Test
+    public void updateState_flagEnabled_checkPreference() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.isChecked()).isFalse();
+        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
+
+        // Toggle to true
+        mController.setChecked(true);
+        mController.updateState(mPreference);
+        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isTrue();
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.isChecked()).isTrue();
+
+        // Toggle to false
+        mController.setChecked(false);
+        mController.updateState(mPreference);
+        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.isChecked()).isFalse();
+
+        // Test flag rollback
+        mController.setChecked(true);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isChecked()).isTrue();
+        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isTrue();
+        mSetFlagsRule.disableFlags(Flags.FLAG_FORCE_L3_ENABLED);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isFalse();
+        assertThat(mPreference.isChecked()).isFalse();
+        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isFalse();
+    }
+
+    @Test
+    public void updateState_flagDisabled_checkPreference() {
+        mSetFlagsRule.disableFlags(Flags.FLAG_FORCE_L3_ENABLED);
+        mController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void updateState_checkWidevine() throws Exception {
+        MediaDrm drm;
+        try {
+            drm = new MediaDrm(WIDEVINE_UUID);
+            assumeTrue(drm.getPropertyString("securityLevel").equals("L1"));
+            mSetFlagsRule.enableFlags(Flags.FLAG_FORCE_L3_ENABLED);
+            drm.close();
+        } catch (UnsupportedSchemeException ex) {
+            assumeNoException(ex);
+        }
+
+        // L3 enforced
+        mController.setChecked(true);
+        mController.updateState(mPreference);
+        assertThat(WidevineProperties.forcel3_enabled().orElse(false)).isTrue();
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.isChecked()).isTrue();
+        drm = new MediaDrm(WIDEVINE_UUID);
+        assertThat(drm.getPropertyString("securityLevel")).isEqualTo("L3");
+
+        // Switch back to L1
+        mController.setChecked(false);
+        mController.updateState(mPreference);
+        drm.close();
+        drm = new MediaDrm(WIDEVINE_UUID);
+        assertThat(drm.getPropertyString("securityLevel")).isEqualTo("L1");
+    }
+}
diff --git a/tests/unit/src/com/android/settings/deviceinfo/BrandedAccountPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/BrandedAccountPreferenceControllerTest.java
index 6e78d05..0c57400 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/BrandedAccountPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/BrandedAccountPreferenceControllerTest.java
@@ -17,7 +17,6 @@
 package com.android.settings.deviceinfo;
 
 import static com.google.common.truth.Truth.assertThat;
-
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
@@ -26,6 +25,9 @@
 import android.content.Context;
 import android.content.res.Resources;
 
+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;
 
@@ -46,17 +48,21 @@
     private Context mContext;
     private FakeFeatureFactory mFakeFeatureFactory;
 
+    private PreferenceScreen mScreen;
+    private Preference mPreference;
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getResources()).thenReturn(mResources);
         mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
-
+        mScreen = new PreferenceManager(mContext).createPreferenceScreen(mContext);
+        mPreference = new Preference(mContext);
     }
 
     @Test
     public void isAvailable_configOn_noAccount_off() {
+        when(mContext.getResources()).thenReturn(mResources);
         final int boolId = ResourcesUtils.getResourcesId(
                 ApplicationProvider.getApplicationContext(), "bool",
                 "config_show_branded_account_in_device_info");
@@ -69,6 +75,7 @@
 
     @Test
     public void isAvailable_accountIsAvailable_on() {
+        when(mContext.getResources()).thenReturn(mResources);
         final int boolId = ResourcesUtils.getResourcesId(
                 ApplicationProvider.getApplicationContext(), "bool",
                 "config_show_branded_account_in_device_info");
@@ -84,6 +91,7 @@
 
     @Test
     public void isAvailable_configOff_hasAccount_off() {
+        when(mContext.getResources()).thenReturn(mResources);
         final int boolId = ResourcesUtils.getResourcesId(
                 ApplicationProvider.getApplicationContext(), "bool",
                 "config_show_branded_account_in_device_info");
@@ -96,4 +104,42 @@
 
         assertThat(controller.isAvailable()).isFalse();
     }
+
+    /**
+     *  Test displayPreference has one account.
+     */
+    @Test
+    public void displayPreference_hasOneAccount_showAccount() {
+        when(mFakeFeatureFactory.mAccountFeatureProvider.getAccounts(any(Context.class)))
+                .thenReturn(new Account[]{new Account("teresaikeda@gmail.com",
+                    "com.google")});
+
+        mPreference.setKey("test_key");
+        mScreen.addPreference(mPreference);
+        final BrandedAccountPreferenceController controller =
+                new BrandedAccountPreferenceController(mContext, "test_key");
+
+        controller.displayPreference(mScreen);
+
+        assertThat(mPreference.getSummary()).isEqualTo("teresaikeda@gmail.com");
+    }
+
+    /**
+     *  Test displayPreference has two accounts.
+     */
+    @Test
+    public void displayPreference_hasTwoAccounts_showTwoAccountSummary() {
+        when(mFakeFeatureFactory.mAccountFeatureProvider.getAccounts(any(Context.class)))
+                .thenReturn(new Account[]{new Account("teresa@gmail.com", "com.google"),
+                                          new Account("reno@gmail.com", "com.google") });
+
+        mPreference.setKey("test_key");
+        mScreen.addPreference(mPreference);
+        final BrandedAccountPreferenceController controller =
+                new BrandedAccountPreferenceController(mContext, "test_key");
+
+        controller.displayPreference(mScreen);
+
+        assertThat(mPreference.getSummary()).isEqualTo("2 accounts");
+    }
 }
diff --git a/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
index 5f02b04..9a5399c 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
@@ -37,7 +37,6 @@
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.android.settings.core.BasePreferenceController;
 import com.android.settings.testutils.ResourcesUtils;
 
 import org.junit.Before;
@@ -89,27 +88,10 @@
         mCategory.setKey(categoryKey);
         mScreen.addPreference(mCategory);
 
-        doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
         doReturn(mSecondPreference).when(mController).createNewPreference(mContext);
     }
 
     @Test
-    public void getAvailabilityStatus_isVoiceCapable_shouldBeAVAILABLE() {
-        when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_isNotVoiceCapable_shouldBeUNSUPPORTED_ON_DEVICE() {
-        when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
-    }
-
-    @Test
     public void displayPreference_multiSim_shouldAddSecondPreference() {
         when(mTelephonyManager.getPhoneCount()).thenReturn(2);
 
@@ -123,6 +105,7 @@
     @Test
     public void updateState_singleSim_shouldUpdateTitleAndPhoneNumber() {
         final String phoneNumber = "1111111111";
+        doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
         doReturn(phoneNumber).when(mController).getFormattedPhoneNumber(mSubscriptionInfo);
         when(mTelephonyManager.getPhoneCount()).thenReturn(1);
         mController.displayPreference(mScreen);
@@ -136,6 +119,7 @@
     @Test
     public void updateState_multiSim_shouldUpdateTitleAndPhoneNumberOfMultiplePreferences() {
         final String phoneNumber = "1111111111";
+        doReturn(mSubscriptionInfo).when(mController).getSubscriptionInfo(anyInt());
         doReturn(phoneNumber).when(mController).getFormattedPhoneNumber(mSubscriptionInfo);
         when(mTelephonyManager.getPhoneCount()).thenReturn(2);
         mController.displayPreference(mScreen);
@@ -153,11 +137,11 @@
     @Test
     public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowUnknown() {
         when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
+        mController.displayPreference(mScreen);
 
-        CharSequence primaryNumber = mController.getSummary();
+        mController.updateState(mPreference);
 
-        assertThat(primaryNumber).isNotNull();
-        assertThat(primaryNumber).isEqualTo(ResourcesUtils.getResourcesString(
+        verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
                 mContext, "device_info_default"));
     }
 
@@ -166,9 +150,10 @@
         List<SubscriptionInfo> infos = new ArrayList<>();
         when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(infos);
 
-        CharSequence primaryNumber = mController.getSummary();
+        mController.displayPreference(mScreen);
+        mController.updateState(mPreference);
 
-        assertThat(primaryNumber).isEqualTo(ResourcesUtils.getResourcesString(
+        verify(mPreference).setSummary(ResourcesUtils.getResourcesString(
                 mContext, "device_info_default"));
     }
 }
diff --git a/tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
index 8c24cbb..1eb670f 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
@@ -35,7 +35,6 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -53,7 +52,6 @@
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.telephony.UiccCardInfo;
-import android.telephony.UiccPortInfo;
 import android.telephony.euicc.EuiccManager;
 
 import androidx.lifecycle.LifecycleOwner;
@@ -61,7 +59,6 @@
 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.core.lifecycle.Lifecycle;
 
@@ -73,13 +70,10 @@
 import org.mockito.MockitoAnnotations;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicReference;
 
 @RunWith(AndroidJUnit4.class)
 public class SimStatusDialogControllerTest {
@@ -405,7 +399,7 @@
         mController.initialize();
 
         verify(mDialog).setText(IMS_REGISTRATION_STATE_VALUE_ID,
-                mContext.getString(R.string.ims_reg_status_registered));
+                mContext.getString(com.android.settingslib.R.string.ims_reg_status_registered));
     }
 
     @Test
@@ -418,7 +412,7 @@
         mController.initialize();
 
         verify(mDialog).setText(IMS_REGISTRATION_STATE_VALUE_ID,
-                mContext.getString(R.string.ims_reg_status_not_registered));
+                mContext.getString(com.android.settingslib.R.string.ims_reg_status_not_registered));
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt
deleted file mode 100644
index 0509d8a..0000000
--- a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt
+++ /dev/null
@@ -1,82 +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.fingerprint2.domain.interactor
-
-import android.hardware.biometrics.SensorProperties
-import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.flow
-
-/** Fake to be used by other classes to easily fake the FingerprintManager implementation. */
-class FakeFingerprintManagerInteractor : FingerprintManagerInteractor {
-
-  var enrollableFingerprints: Int = 5
-  var enrolledFingerprintsInternal: MutableList<FingerprintViewModel> = mutableListOf()
-  var challengeToGenerate: Pair<Long, ByteArray> = Pair(-1L, byteArrayOf())
-  var authenticateAttempt = FingerprintAuthAttemptViewModel.Success(1)
-  var pressToAuthEnabled = true
-
-  var sensorProps =
-    listOf(
-      FingerprintSensorPropertiesInternal(
-        0 /* sensorId */,
-        SensorProperties.STRENGTH_STRONG,
-        5 /* maxEnrollmentsPerUser */,
-        emptyList() /* ComponentInfoInternal */,
-        TYPE_POWER_BUTTON,
-        true /* resetLockoutRequiresHardwareAuthToken */
-      )
-    )
-
-  override suspend fun authenticate(): FingerprintAuthAttemptViewModel {
-    return authenticateAttempt
-  }
-
-  override suspend fun generateChallenge(gateKeeperPasswordHandle: Long): Pair<Long, ByteArray> {
-    return challengeToGenerate
-  }
-  override val enrolledFingerprints: Flow<List<FingerprintViewModel>> = flow {
-    emit(enrolledFingerprintsInternal)
-  }
-
-  override fun canEnrollFingerprints(numFingerprints: Int): Flow<Boolean> = flow {
-    emit(numFingerprints < enrollableFingerprints)
-  }
-
-  override val maxEnrollableFingerprints: Flow<Int> = flow { emit(enrollableFingerprints) }
-
-  override suspend fun removeFingerprint(fp: FingerprintViewModel): Boolean {
-    return enrolledFingerprintsInternal.remove(fp)
-  }
-
-  override suspend fun renameFingerprint(fp: FingerprintViewModel, newName: String) {}
-
-  override suspend fun hasSideFps(): Boolean {
-    return sensorProps.any { it.isAnySidefpsType }
-  }
-
-  override suspend fun pressToAuthEnabled(): Boolean {
-    return pressToAuthEnabled
-  }
-
-  override suspend fun sensorPropertiesInternal(): List<FingerprintSensorPropertiesInternal> =
-    sensorProps
-}
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 7af740a..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
@@ -18,7 +18,6 @@
 
 import android.content.Context
 import android.content.Intent
-import android.content.res.Resources
 import android.hardware.fingerprint.Fingerprint
 import android.hardware.fingerprint.FingerprintManager
 import android.hardware.fingerprint.FingerprintManager.CryptoObject
@@ -27,10 +26,14 @@
 import android.os.Handler
 import androidx.test.core.app.ApplicationProvider
 import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
 import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+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.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
@@ -51,8 +54,11 @@
 import org.mockito.ArgumentMatchers.nullable
 import org.mockito.Mock
 import org.mockito.Mockito
+import org.mockito.Mockito.verify
+import org.mockito.Mockito.`when`
 import org.mockito.junit.MockitoJUnit
 import org.mockito.junit.MockitoJUnitRunner
+import org.mockito.stubbing.OngoingStubbing
 
 @RunWith(MockitoJUnitRunner::class)
 class FingerprintManagerInteractorTest {
@@ -65,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() {
@@ -76,14 +86,14 @@
         fingerprintManager,
         gateKeeperPasswordProvider,
         pressToAuthProvider,
+        Default,
       )
   }
 
   @Test
   fun testEmptyFingerprints() =
     testScope.runTest {
-      Mockito.`when`(fingerprintManager.getEnrolledFingerprints(Mockito.anyInt()))
-        .thenReturn(emptyList())
+      whenever(fingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(emptyList())
 
       val emptyFingerprintList: List<Fingerprint> = emptyList()
       assertThat(underTest.enrolledFingerprints.last()).isEqualTo(emptyFingerprintList)
@@ -94,8 +104,7 @@
     testScope.runTest {
       val expected = Fingerprint("Finger 1,", 2, 3L)
       val fingerprintList: List<Fingerprint> = listOf(expected)
-      Mockito.`when`(fingerprintManager.getEnrolledFingerprints(Mockito.anyInt()))
-        .thenReturn(fingerprintList)
+      whenever(fingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(fingerprintList)
 
       val list = underTest.enrolledFingerprints.last()
       assertThat(list.size).isEqualTo(fingerprintList.size)
@@ -108,21 +117,22 @@
   @Test
   fun testCanEnrollFingerprint() =
     testScope.runTest {
-      val mockContext = Mockito.mock(Context::class.java)
-      val resources = Mockito.mock(Resources::class.java)
-      Mockito.`when`(mockContext.resources).thenReturn(resources)
-      Mockito.`when`(resources.getInteger(anyInt())).thenReturn(3)
-      underTest =
-        FingerprintManagerInteractorImpl(
-          mockContext,
-          backgroundDispatcher,
-          fingerprintManager,
-          gateKeeperPasswordProvider,
-          pressToAuthProvider,
+      val fingerprintList1: List<Fingerprint> =
+        listOf(
+          Fingerprint("Finger 1,", 2, 3L),
+          Fingerprint("Finger 2,", 3, 3L),
+          Fingerprint("Finger 3,", 4, 3L)
         )
+      val fingerprintList2: List<Fingerprint> =
+        fingerprintList1.plus(
+          listOf(Fingerprint("Finger 4,", 5, 3L), Fingerprint("Finger 5,", 6, 3L))
+        )
+      whenever(fingerprintManager.getEnrolledFingerprints(anyInt()))
+        .thenReturn(fingerprintList1)
+        .thenReturn(fingerprintList2)
 
-      assertThat(underTest.canEnrollFingerprints(2).last()).isTrue()
-      assertThat(underTest.canEnrollFingerprints(3).last()).isFalse()
+      assertThat(underTest.canEnrollFingerprints.last()).isTrue()
+      assertThat(underTest.canEnrollFingerprints.last()).isFalse()
     }
 
   @Test
@@ -132,7 +142,7 @@
       val challenge = 100L
       val intent = Intent()
       intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, challenge)
-      Mockito.`when`(
+      whenever(
           gateKeeperPasswordProvider.requestGatekeeperHat(
             any(Intent::class.java),
             anyLong(),
@@ -142,14 +152,13 @@
         .thenReturn(byteArray)
 
       val generateChallengeCallback: ArgumentCaptor<FingerprintManager.GenerateChallengeCallback> =
-        ArgumentCaptor.forClass(FingerprintManager.GenerateChallengeCallback::class.java)
+        argumentCaptor()
 
       var result: Pair<Long, ByteArray?>? = null
       val job = testScope.launch { result = underTest.generateChallenge(1L) }
       runCurrent()
 
-      Mockito.verify(fingerprintManager)
-        .generateChallenge(anyInt(), capture(generateChallengeCallback))
+      verify(fingerprintManager).generateChallenge(anyInt(), capture(generateChallengeCallback))
       generateChallengeCallback.value.onChallengeGenerated(1, 2, challenge)
 
       runCurrent()
@@ -162,18 +171,17 @@
   @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.forClass(FingerprintManager.RemovalCallback::class.java)
+      val removalCallback: ArgumentCaptor<FingerprintManager.RemovalCallback> = argumentCaptor()
 
       var result: Boolean? = null
       val job =
         testScope.launch { result = underTest.removeFingerprint(fingerprintViewModelToRemove) }
       runCurrent()
 
-      Mockito.verify(fingerprintManager)
+      verify(fingerprintManager)
         .remove(any(Fingerprint::class.java), anyInt(), capture(removalCallback))
       removalCallback.value.onRemovalSucceeded(fingerprintToRemove, 1)
 
@@ -186,18 +194,17 @@
   @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.forClass(FingerprintManager.RemovalCallback::class.java)
+      val removalCallback: ArgumentCaptor<FingerprintManager.RemovalCallback> = argumentCaptor()
 
       var result: Boolean? = null
       val job =
         testScope.launch { result = underTest.removeFingerprint(fingerprintViewModelToRemove) }
       runCurrent()
 
-      Mockito.verify(fingerprintManager)
+      verify(fingerprintManager)
         .remove(any(Fingerprint::class.java), anyInt(), capture(removalCallback))
       removalCallback.value.onRemovalError(
         fingerprintToRemove,
@@ -214,12 +221,11 @@
   @Test
   fun testRenameFingerprint_succeeds() =
     testScope.runTest {
-      val fingerprintToRename = FingerprintViewModel("Finger 2", 1, 2L)
+      val fingerprintToRename = FingerprintData("Finger 2", 1, 2L)
 
       underTest.renameFingerprint(fingerprintToRename, "Woo")
 
-      Mockito.verify(fingerprintManager)
-        .rename(eq(fingerprintToRename.fingerId), anyInt(), safeEq("Woo"))
+      verify(fingerprintManager).rename(eq(fingerprintToRename.fingerId), anyInt(), safeEq("Woo"))
     }
 
   @Test
@@ -227,15 +233,14 @@
     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.forClass(FingerprintManager.AuthenticationCallback::class.java)
+      val authCallback: ArgumentCaptor<FingerprintManager.AuthenticationCallback> = argumentCaptor()
 
       runCurrent()
 
-      Mockito.verify(fingerprintManager)
+      verify(fingerprintManager)
         .authenticate(
           nullable(CryptoObject::class.java),
           any(CancellationSignal::class.java),
@@ -249,21 +254,20 @@
 
       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.forClass(FingerprintManager.AuthenticationCallback::class.java)
+      val authCallback: ArgumentCaptor<FingerprintManager.AuthenticationCallback> = argumentCaptor()
 
       runCurrent()
 
-      Mockito.verify(fingerprintManager)
+      verify(fingerprintManager)
         .authenticate(
           nullable(CryptoObject::class.java),
           any(CancellationSignal::class.java),
@@ -277,11 +281,89 @@
       job.cancelAndJoin()
       assertThat(result)
         .isEqualTo(
-          FingerprintAuthAttemptViewModel.Error(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "Lockout!!")
+          FingerprintAuthAttemptModel.Error(FINGERPRINT_ERROR_LOCKOUT_PERMANENT, "Lockout!!")
         )
     }
 
+  @Test
+  fun testEnroll_progress() =
+    testScope.runTest {
+      val token = byteArrayOf(5, 3, 2)
+      var result: FingerEnrollState? = null
+      val job = launch { underTest.enroll(token, EnrollReason.FindSensor).collect { result = it } }
+      val enrollCallback: ArgumentCaptor<FingerprintManager.EnrollmentCallback> = argumentCaptor()
+      runCurrent()
+
+      verify(fingerprintManager)
+        .enroll(
+          eq(token),
+          any(CancellationSignal::class.java),
+          anyInt(),
+          capture(enrollCallback),
+          eq(FingerprintManager.ENROLL_FIND_SENSOR)
+        )
+      enrollCallback.value.onEnrollmentProgress(1)
+      runCurrent()
+      job.cancelAndJoin()
+
+      assertThat(result).isEqualTo(FingerEnrollState.EnrollProgress(1, 2))
+    }
+
+  @Test
+  fun testEnroll_help() =
+    testScope.runTest {
+      val token = byteArrayOf(5, 3, 2)
+      var result: FingerEnrollState? = null
+      val job = launch { underTest.enroll(token, EnrollReason.FindSensor).collect { result = it } }
+      val enrollCallback: ArgumentCaptor<FingerprintManager.EnrollmentCallback> = argumentCaptor()
+      runCurrent()
+
+      verify(fingerprintManager)
+        .enroll(
+          eq(token),
+          any(CancellationSignal::class.java),
+          anyInt(),
+          capture(enrollCallback),
+          eq(FingerprintManager.ENROLL_FIND_SENSOR)
+        )
+      enrollCallback.value.onEnrollmentHelp(-1, "help")
+      runCurrent()
+      job.cancelAndJoin()
+
+      assertThat(result).isEqualTo(FingerEnrollState.EnrollHelp(-1, "help"))
+    }
+
+  @Test
+  fun testEnroll_error() =
+    testScope.runTest {
+      val token = byteArrayOf(5, 3, 2)
+      var result: FingerEnrollState? = null
+      val job = launch { underTest.enroll(token, EnrollReason.FindSensor).collect { result = it } }
+      val enrollCallback: ArgumentCaptor<FingerprintManager.EnrollmentCallback> = argumentCaptor()
+      runCurrent()
+
+      verify(fingerprintManager)
+        .enroll(
+          eq(token),
+          any(CancellationSignal::class.java),
+          anyInt(),
+          capture(enrollCallback),
+          eq(FingerprintManager.ENROLL_FIND_SENSOR)
+        )
+      enrollCallback.value.onEnrollmentError(-1, "error")
+      runCurrent()
+      job.cancelAndJoin()
+      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
new file mode 100644
index 0000000..064e087
--- /dev/null
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsNavigationViewModelTest.kt
@@ -0,0 +1,353 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.settings
+
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+import com.android.settings.biometrics.BiometricEnrollBase
+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
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.NextStepViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
+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 FingerprintSettingsNavigationViewModelTest {
+
+  @JvmField @Rule var rule = MockitoJUnit.rule()
+
+  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
+
+  private lateinit var underTest: FingerprintSettingsNavigationViewModel
+  private val defaultUserId = 0
+  private var backgroundDispatcher = StandardTestDispatcher()
+  private var testScope = TestScope(backgroundDispatcher)
+  private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
+
+  @Before
+  fun setup() {
+    fakeFingerprintManagerInteractor = FakeFingerprintManagerInteractor()
+    backgroundDispatcher = StandardTestDispatcher()
+    testScope = TestScope(backgroundDispatcher)
+    Dispatchers.setMain(backgroundDispatcher)
+
+    underTest =
+      FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          null,
+          null,
+        )
+        .create(FingerprintSettingsNavigationViewModel::class.java)
+  }
+
+  @After
+  fun tearDown() {
+    Dispatchers.resetMain()
+  }
+
+  @Test
+  fun testNoGateKeeper_launchesConfirmDeviceCredential() =
+    testScope.runTest {
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      runCurrent()
+      assertThat(nextStep).isEqualTo(LaunchConfirmDeviceCredential(defaultUserId))
+      job.cancel()
+    }
+
+  @Test
+  fun testConfirmDevice_fails() =
+    testScope.runTest {
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(false, null)
+      runCurrent()
+
+      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
+      job.cancel()
+    }
+
+  @Test
+  fun confirmDeviceSuccess_noGateKeeper() =
+    testScope.runTest {
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(true, null)
+      runCurrent()
+
+      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
+      job.cancel()
+    }
+
+  @Test
+  fun confirmDeviceSuccess_launchesEnrollment_ifNoPreviousEnrollments() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(true, 10L)
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(EnrollFirstFingerprint(defaultUserId, 10L, null, null))
+      job.cancel()
+    }
+
+  @Test
+  fun firstEnrollment_failsWithReason() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      val failStr = "We failed!!"
+      val failReason = 101
+
+      underTest.onConfirmDevice(true, 10L)
+      underTest.onEnrollFirstFailure(failStr, failReason)
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(FinishSettingsWithResult(failReason, failStr))
+      job.cancel()
+    }
+
+  @Test
+  fun firstEnrollmentSucceeds_noToken() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(true, 10L)
+      underTest.onEnrollFirst(null, null)
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(FinishSettings("Error, empty token"))
+      job.cancel()
+    }
+
+  @Test
+  fun firstEnrollmentSucceeds_noKeyChallenge() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      val byteArray = ByteArray(1) { 3 }
+
+      underTest.onConfirmDevice(true, 10L)
+      underTest.onEnrollFirst(byteArray, null)
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(FinishSettings("Error, empty keyChallenge"))
+      job.cancel()
+    }
+
+  @Test
+  fun firstEnrollment_succeeds() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = testScope.launch { underTest.nextStep.collect { nextStep = it } }
+
+      val byteArray = ByteArray(1) { 3 }
+      val keyChallenge = 89L
+
+      underTest.onConfirmDevice(true, 10L)
+      underTest.onEnrollFirst(byteArray, keyChallenge)
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(ShowSettings)
+      job.cancel()
+    }
+
+  @Test
+  fun enrollAdditionalFingerprints_fails() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+      fakeFingerprintManagerInteractor.challengeToGenerate = Pair(4L, byteArrayOf(3, 3, 1))
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(true, 10L)
+      runCurrent()
+      underTest.onEnrollAdditionalFailure()
+      runCurrent()
+
+      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
+      job.cancel()
+    }
+
+  @Test
+  fun enrollAdditional_success() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(true, 10L)
+      underTest.onEnrollSuccess()
+
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(ShowSettings)
+      job.cancel()
+    }
+
+  @Test
+  fun confirmDeviceCredential_withEnrolledFingerprint_showsSettings() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+      fakeFingerprintManagerInteractor.challengeToGenerate = Pair(10L, byteArrayOf(1, 2, 3))
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      underTest.onConfirmDevice(true, 10L)
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(ShowSettings)
+      job.cancel()
+    }
+
+  @Test
+  fun enrollWithToken_andNoUsers_startsFingerprintEnrollment() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      val token = byteArrayOf(1)
+      val challenge = 5L
+
+      underTest =
+        FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
+            defaultUserId,
+            fakeFingerprintManagerInteractor,
+            backgroundDispatcher,
+            token,
+            challenge,
+          )
+          .create(FingerprintSettingsNavigationViewModel::class.java)
+
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(EnrollFirstFingerprint(defaultUserId, null, challenge, token))
+      job.cancel()
+    }
+
+  @Test
+  fun enroll_shouldNotFinish() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      val token = byteArrayOf(1)
+      val challenge = 5L
+
+      underTest =
+        FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
+            defaultUserId,
+            fakeFingerprintManagerInteractor,
+            backgroundDispatcher,
+            token,
+            challenge,
+          )
+          .create(FingerprintSettingsNavigationViewModel::class.java)
+
+      runCurrent()
+
+      assertThat(nextStep).isEqualTo(EnrollFirstFingerprint(defaultUserId, null, challenge, token))
+      underTest.maybeFinishActivity(false)
+
+      runCurrent()
+      assertThat(nextStep).isEqualTo(EnrollFirstFingerprint(defaultUserId, null, challenge, token))
+      job.cancel()
+    }
+
+  @Test
+  fun showSettings_shouldFinish() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+
+      var nextStep: NextStepViewModel? = null
+      val job = launch { underTest.nextStep.collect { nextStep = it } }
+
+      val token = byteArrayOf(1)
+      val challenge = 5L
+
+      underTest =
+        FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
+            defaultUserId,
+            fakeFingerprintManagerInteractor,
+            backgroundDispatcher,
+            token,
+            challenge,
+          )
+          .create(FingerprintSettingsNavigationViewModel::class.java)
+
+      runCurrent()
+      assertThat(nextStep).isEqualTo(ShowSettings)
+
+      underTest.maybeFinishActivity(false)
+
+      runCurrent()
+      assertThat(nextStep)
+        .isEqualTo(
+          FinishSettingsWithResult(BiometricEnrollBase.RESULT_TIMEOUT, "onStop finishing settings")
+        )
+      job.cancel()
+    }
+}
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
new file mode 100644
index 0000000..4bd9121
--- /dev/null
+++ b/tests/unit/src/com/android/settings/fingerprint2/ui/settings/FingerprintSettingsViewModelTest.kt
@@ -0,0 +1,398 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.settings
+
+import androidx.arch.core.executor.testing.InstantTaskExecutorRule
+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
+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.flow.take
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.test.StandardTestDispatcher
+import kotlinx.coroutines.test.TestScope
+import kotlinx.coroutines.test.advanceTimeBy
+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 FingerprintSettingsViewModelTest {
+
+  @JvmField @Rule var rule = MockitoJUnit.rule()
+
+  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
+
+  private lateinit var underTest: FingerprintSettingsViewModel
+  private lateinit var navigationViewModel: FingerprintSettingsNavigationViewModel
+  private val defaultUserId = 0
+  private var backgroundDispatcher = StandardTestDispatcher()
+  private var testScope = TestScope(backgroundDispatcher)
+  private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
+
+  @Before
+  fun setup() {
+    fakeFingerprintManagerInteractor = FakeFingerprintManagerInteractor()
+    backgroundDispatcher = StandardTestDispatcher()
+    testScope = TestScope(backgroundDispatcher)
+    Dispatchers.setMain(backgroundDispatcher)
+
+    navigationViewModel =
+      FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          null,
+          null,
+        )
+        .create(FingerprintSettingsNavigationViewModel::class.java)
+
+    underTest =
+      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          navigationViewModel,
+        )
+        .create(FingerprintSettingsViewModel::class.java)
+  }
+
+  @After
+  fun tearDown() {
+    Dispatchers.resetMain()
+  }
+
+  @Test
+  fun authenticate_DoesNotRun_ifOptical() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.sensorProp =
+        FingerprintSensor(
+          0 /* sensorId */,
+          SensorStrength.STRONG,
+          5 /* maxEnrollmentsPerUser */,
+          FingerprintSensorType.UDFPS_OPTICAL,
+        )
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+
+      underTest =
+        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+            defaultUserId,
+            fakeFingerprintManagerInteractor,
+            backgroundDispatcher,
+            navigationViewModel,
+          )
+          .create(FingerprintSettingsViewModel::class.java)
+
+      var authAttempt: FingerprintAuthAttemptModel? = null
+      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
+
+      underTest.shouldAuthenticate(true)
+      // Ensure we are showing settings
+      navigationViewModel.onConfirmDevice(true, 10L)
+
+      runCurrent()
+      advanceTimeBy(400)
+
+      assertThat(authAttempt).isNull()
+      job.cancel()
+    }
+
+  @Test
+  fun authenticate_DoesNotRun_ifUltrasonic() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.sensorProp =
+        FingerprintSensor(
+          0 /* sensorId */,
+          SensorStrength.STRONG,
+          5 /* maxEnrollmentsPerUser */,
+          FingerprintSensorType.UDFPS_ULTRASONIC,
+        )
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+
+      underTest =
+        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+            defaultUserId,
+            fakeFingerprintManagerInteractor,
+            backgroundDispatcher,
+            navigationViewModel,
+          )
+          .create(FingerprintSettingsViewModel::class.java)
+
+      var authAttempt: FingerprintAuthAttemptModel? = null
+      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
+
+      underTest.shouldAuthenticate(true)
+      navigationViewModel.onConfirmDevice(true, 10L)
+      advanceTimeBy(400)
+      runCurrent()
+
+      assertThat(authAttempt).isNull()
+      job.cancel()
+    }
+
+  @Test
+  fun authenticate_DoesRun_ifNotUdfps() =
+    testScope.runTest {
+      fakeFingerprintManagerInteractor.sensorProp =
+        FingerprintSensor(
+          0 /* sensorId */,
+          SensorStrength.STRONG,
+          5 /* maxEnrollmentsPerUser */,
+          FingerprintSensorType.POWER_BUTTON
+        )
+      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+        mutableListOf(FingerprintData("a", 1, 3L))
+      val success = FingerprintAuthAttemptModel.Success(1)
+      fakeFingerprintManagerInteractor.authenticateAttempt = success
+
+      underTest =
+        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+            defaultUserId,
+            fakeFingerprintManagerInteractor,
+            backgroundDispatcher,
+            navigationViewModel,
+          )
+          .create(FingerprintSettingsViewModel::class.java)
+
+      var authAttempt: FingerprintAuthAttemptModel? = null
+
+      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
+      underTest.shouldAuthenticate(true)
+      navigationViewModel.onConfirmDevice(true, 10L)
+      advanceTimeBy(400)
+      runCurrent()
+
+      assertThat(authAttempt).isEqualTo(success)
+      job.cancel()
+    }
+
+  @Test
+  fun deleteDialog_showAndDismiss() = runTest {
+    val fingerprintToDelete = FingerprintData("A", 1, 10L)
+    fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+      mutableListOf(fingerprintToDelete)
+
+    underTest =
+      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          navigationViewModel,
+        )
+        .create(FingerprintSettingsViewModel::class.java)
+
+    var dialog: PreferenceViewModel? = null
+    val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
+
+    // Move to the ShowSettings state
+    navigationViewModel.onConfirmDevice(true, 10L)
+    runCurrent()
+    underTest.onDeleteClicked(fingerprintToDelete)
+    runCurrent()
+
+    assertThat(dialog is PreferenceViewModel.DeleteDialog)
+    assertThat(dialog).isEqualTo(PreferenceViewModel.DeleteDialog(fingerprintToDelete))
+
+    underTest.deleteFingerprint(fingerprintToDelete)
+    underTest.onDeleteDialogFinished()
+    runCurrent()
+
+    assertThat(dialog).isNull()
+
+    dialogJob.cancel()
+  }
+
+  @Test
+  fun renameDialog_showAndDismiss() = runTest {
+    val fingerprintToRename = FingerprintData("World", 1, 10L)
+    fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+      mutableListOf(fingerprintToRename)
+
+    underTest =
+      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          navigationViewModel,
+        )
+        .create(FingerprintSettingsViewModel::class.java)
+
+    var dialog: PreferenceViewModel? = null
+    val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
+
+    // Move to the ShowSettings state
+    navigationViewModel.onConfirmDevice(true, 10L)
+    runCurrent()
+    underTest.onPrefClicked(fingerprintToRename)
+    runCurrent()
+
+    assertThat(dialog is PreferenceViewModel.DeleteDialog)
+    assertThat(dialog).isEqualTo(PreferenceViewModel.RenameDialog(fingerprintToRename))
+
+    underTest.renameFingerprint(fingerprintToRename, "Hello")
+    underTest.onRenameDialogFinished()
+    runCurrent()
+
+    assertThat(dialog).isNull()
+    assertThat(fakeFingerprintManagerInteractor.enrolledFingerprintsInternal.first().name)
+      .isEqualTo("Hello")
+
+    dialogJob.cancel()
+  }
+
+  @Test
+  fun testTwoDialogsCannotShow_atSameTime() = runTest {
+    val fingerprintToDelete = FingerprintData("A", 1, 10L)
+    fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
+      mutableListOf(fingerprintToDelete)
+
+    underTest =
+      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          navigationViewModel,
+        )
+        .create(FingerprintSettingsViewModel::class.java)
+
+    var dialog: PreferenceViewModel? = null
+    val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
+
+    // Move to the ShowSettings state
+    navigationViewModel.onConfirmDevice(true, 10L)
+    runCurrent()
+    underTest.onDeleteClicked(fingerprintToDelete)
+    runCurrent()
+
+    assertThat(dialog is PreferenceViewModel.DeleteDialog)
+    assertThat(dialog).isEqualTo(PreferenceViewModel.DeleteDialog(fingerprintToDelete))
+
+    underTest.onPrefClicked(fingerprintToDelete)
+    runCurrent()
+    assertThat(dialog is PreferenceViewModel.DeleteDialog)
+    assertThat(dialog).isEqualTo(PreferenceViewModel.DeleteDialog(fingerprintToDelete))
+
+    dialogJob.cancel()
+  }
+
+  @Test
+  fun authenticatePauses_whenPaused() =
+    testScope.runTest {
+      val fingerprints = setupAuth()
+      val success = FingerprintAuthAttemptModel.Success(fingerprints.first().fingerId)
+
+      var authAttempt: FingerprintAuthAttemptModel? = null
+
+      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
+
+      underTest.shouldAuthenticate(true)
+      navigationViewModel.onConfirmDevice(true, 10L)
+
+      advanceTimeBy(400)
+      runCurrent()
+      assertThat(authAttempt).isEqualTo(success)
+
+      fakeFingerprintManagerInteractor.authenticateAttempt =
+        FingerprintAuthAttemptModel.Success(10)
+      underTest.shouldAuthenticate(false)
+      advanceTimeBy(400)
+      runCurrent()
+
+      // The most recent auth attempt shouldn't have changed.
+      assertThat(authAttempt).isEqualTo(success)
+      job.cancel()
+    }
+
+  @Test
+  fun dialog_pausesAuth() =
+    testScope.runTest {
+      val fingerprints = setupAuth()
+
+      var authAttempt: FingerprintAuthAttemptModel? = null
+      val job = launch { underTest.authFlow.take(1).collectLatest { authAttempt = it } }
+      underTest.shouldAuthenticate(true)
+      navigationViewModel.onConfirmDevice(true, 10L)
+
+      underTest.onPrefClicked(fingerprints[0])
+      advanceTimeBy(400)
+
+      job.cancel()
+      assertThat(authAttempt).isEqualTo(null)
+    }
+
+  @Test
+  fun cannotAuth_when_notShowingSettings() =
+    testScope.runTest {
+      val fingerprints = setupAuth()
+
+      var authAttempt: FingerprintAuthAttemptModel? = null
+      val job = launch { underTest.authFlow.take(1).collectLatest { authAttempt = it } }
+      underTest.shouldAuthenticate(true)
+      navigationViewModel.onConfirmDevice(true, 10L)
+
+      // This should cause the state to change to FingerprintEnrolling
+      navigationViewModel.onAddFingerprintClicked()
+      advanceTimeBy(400)
+
+      job.cancel()
+      assertThat(authAttempt).isEqualTo(null)
+    }
+
+  private fun setupAuth(): MutableList<FingerprintData> {
+    fakeFingerprintManagerInteractor.sensorProp =
+      FingerprintSensor(
+        0 /* sensorId */,
+        SensorStrength.STRONG,
+        5 /* maxEnrollmentsPerUser */,
+        FingerprintSensorType.POWER_BUTTON
+      )
+    val fingerprints =
+      mutableListOf(FingerprintData("a", 1, 3L), FingerprintData("b", 2, 5L))
+    fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = fingerprints
+    val success = FingerprintAuthAttemptModel.Success(1)
+    fakeFingerprintManagerInteractor.authenticateAttempt = success
+
+    underTest =
+      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
+          defaultUserId,
+          fakeFingerprintManagerInteractor,
+          backgroundDispatcher,
+          navigationViewModel,
+        )
+        .create(FingerprintSettingsViewModel::class.java)
+
+    return fingerprints
+  }
+}
diff --git a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsNavigationViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
deleted file mode 100644
index 4e1f6b1..0000000
--- a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
+++ /dev/null
@@ -1,275 +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.fingerprint2.viewmodel
-
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.NextStepViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
-import com.android.settings.fingerprint2.domain.interactor.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 FingerprintSettingsNavigationViewModelTest {
-
-  @JvmField @Rule var rule = MockitoJUnit.rule()
-
-  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
-
-  private lateinit var underTest: FingerprintSettingsNavigationViewModel
-  private val defaultUserId = 0
-  private var backgroundDispatcher = StandardTestDispatcher()
-  private var testScope = TestScope(backgroundDispatcher)
-  private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
-
-  @Before
-  fun setup() {
-    fakeFingerprintManagerInteractor = FakeFingerprintManagerInteractor()
-    backgroundDispatcher = StandardTestDispatcher()
-    testScope = TestScope(backgroundDispatcher)
-    Dispatchers.setMain(backgroundDispatcher)
-
-    underTest =
-      FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          null,
-          null,
-        )
-        .create(FingerprintSettingsNavigationViewModel::class.java)
-  }
-
-  @After
-  fun tearDown() {
-    Dispatchers.resetMain()
-  }
-
-  @Test
-  fun testNoGateKeeper_launchesConfirmDeviceCredential() =
-    testScope.runTest {
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      runCurrent()
-      assertThat(nextStep).isEqualTo(LaunchConfirmDeviceCredential(defaultUserId))
-      job.cancel()
-    }
-
-  @Test
-  fun testConfirmDevice_fails() =
-    testScope.runTest {
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(false, null)
-      runCurrent()
-
-      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
-      job.cancel()
-    }
-
-  @Test
-  fun confirmDeviceSuccess_noGateKeeper() =
-    testScope.runTest {
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, null)
-      runCurrent()
-
-      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
-      job.cancel()
-    }
-
-  @Test
-  fun confirmDeviceSuccess_launchesEnrollment_ifNoPreviousEnrollments() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, 10L)
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(EnrollFirstFingerprint(defaultUserId, 10L, null, null))
-      job.cancel()
-    }
-
-  @Test
-  fun firstEnrollment_fails() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, 10L)
-      underTest.onEnrollFirstFailure("We failed!!")
-      runCurrent()
-
-      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
-      job.cancel()
-    }
-
-  @Test
-  fun firstEnrollment_failsWithReason() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      val failStr = "We failed!!"
-      val failReason = 101
-
-      underTest.onConfirmDevice(true, 10L)
-      underTest.onEnrollFirstFailure(failStr, failReason)
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(FinishSettingsWithResult(failReason, failStr))
-      job.cancel()
-    }
-
-  @Test
-  fun firstEnrollmentSucceeds_noToken() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, 10L)
-      underTest.onEnrollFirst(null, null)
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(FinishSettings("Error, empty token"))
-      job.cancel()
-    }
-
-  @Test
-  fun firstEnrollmentSucceeds_noKeyChallenge() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      val byteArray = ByteArray(1) { 3 }
-
-      underTest.onConfirmDevice(true, 10L)
-      underTest.onEnrollFirst(byteArray, null)
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(FinishSettings("Error, empty keyChallenge"))
-      job.cancel()
-    }
-
-  @Test
-  fun firstEnrollment_succeeds() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf()
-
-      var nextStep: NextStepViewModel? = null
-      val job = testScope.launch { underTest.nextStep.collect { nextStep = it } }
-
-      val byteArray = ByteArray(1) { 3 }
-      val keyChallenge = 89L
-
-      underTest.onConfirmDevice(true, 10L)
-      underTest.onEnrollFirst(byteArray, keyChallenge)
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(ShowSettings)
-      job.cancel()
-    }
-
-  @Test
-  fun enrollAdditionalFingerprints_fails() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-      fakeFingerprintManagerInteractor.challengeToGenerate = Pair(4L, byteArrayOf(3, 3, 1))
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, 10L)
-      runCurrent()
-      underTest.onEnrollAdditionalFailure()
-      runCurrent()
-
-      assertThat(nextStep).isInstanceOf(FinishSettings::class.java)
-      job.cancel()
-    }
-
-  @Test
-  fun enrollAdditional_success() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, 10L)
-      underTest.onEnrollSuccess()
-
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(ShowSettings)
-      job.cancel()
-    }
-
-  @Test
-  fun confirmDeviceCredential_withEnrolledFingerprint_showsSettings() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-      fakeFingerprintManagerInteractor.challengeToGenerate = Pair(10L, byteArrayOf(1, 2, 3))
-
-      var nextStep: NextStepViewModel? = null
-      val job = launch { underTest.nextStep.collect { nextStep = it } }
-
-      underTest.onConfirmDevice(true, 10L)
-      runCurrent()
-
-      assertThat(nextStep).isEqualTo(ShowSettings)
-      job.cancel()
-    }
-}
diff --git a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsViewModelTest.kt
deleted file mode 100644
index d430827..0000000
--- a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsViewModelTest.kt
+++ /dev/null
@@ -1,247 +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.fingerprint2.viewmodel
-
-import android.hardware.biometrics.SensorProperties
-import android.hardware.fingerprint.FingerprintSensorProperties
-import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
-import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
-import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
-import com.google.common.truth.Truth.assertThat
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.flow.take
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.test.StandardTestDispatcher
-import kotlinx.coroutines.test.TestScope
-import kotlinx.coroutines.test.advanceTimeBy
-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 FingerprintSettingsViewModelTest {
-
-  @JvmField @Rule var rule = MockitoJUnit.rule()
-
-  @get:Rule val instantTaskRule = InstantTaskExecutorRule()
-
-  private lateinit var underTest: FingerprintSettingsViewModel
-  private lateinit var navigationViewModel: FingerprintSettingsNavigationViewModel
-  private val defaultUserId = 0
-  private var backgroundDispatcher = StandardTestDispatcher()
-  private var testScope = TestScope(backgroundDispatcher)
-  private lateinit var fakeFingerprintManagerInteractor: FakeFingerprintManagerInteractor
-
-  @Before
-  fun setup() {
-    fakeFingerprintManagerInteractor = FakeFingerprintManagerInteractor()
-    backgroundDispatcher = StandardTestDispatcher()
-    testScope = TestScope(backgroundDispatcher)
-    Dispatchers.setMain(backgroundDispatcher)
-
-    navigationViewModel =
-      FingerprintSettingsNavigationViewModel.FingerprintSettingsNavigationModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          null,
-          null,
-        )
-        .create(FingerprintSettingsNavigationViewModel::class.java)
-
-    underTest =
-      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-        .create(FingerprintSettingsViewModel::class.java)
-  }
-
-  @After
-  fun tearDown() {
-    Dispatchers.resetMain()
-  }
-
-  @Test
-  fun authenticate_DoesNotRun_ifOptical() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.sensorProps =
-        listOf(
-          FingerprintSensorPropertiesInternal(
-            0 /* sensorId */,
-            SensorProperties.STRENGTH_STRONG,
-            5 /* maxEnrollmentsPerUser */,
-            emptyList() /* ComponentInfoInternal */,
-            FingerprintSensorProperties.TYPE_UDFPS_OPTICAL,
-            true /* resetLockoutRequiresHardwareAuthToken */
-          )
-        )
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-
-      underTest =
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-            defaultUserId,
-            fakeFingerprintManagerInteractor,
-            backgroundDispatcher,
-            navigationViewModel,
-          )
-          .create(FingerprintSettingsViewModel::class.java)
-
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
-      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
-
-      underTest.shouldAuthenticate(true)
-      // Ensure we are showing settings
-      navigationViewModel.onConfirmDevice(true, 10L)
-
-      runCurrent()
-      advanceTimeBy(400)
-
-      assertThat(authAttempt).isNull()
-      job.cancel()
-    }
-
-  @Test
-  fun authenticate_DoesNotRun_ifUltrasonic() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.sensorProps =
-        listOf(
-          FingerprintSensorPropertiesInternal(
-            0 /* sensorId */,
-            SensorProperties.STRENGTH_STRONG,
-            5 /* maxEnrollmentsPerUser */,
-            emptyList() /* ComponentInfoInternal */,
-            FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC,
-            true /* resetLockoutRequiresHardwareAuthToken */
-          )
-        )
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-
-      underTest =
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-            defaultUserId,
-            fakeFingerprintManagerInteractor,
-            backgroundDispatcher,
-            navigationViewModel,
-          )
-          .create(FingerprintSettingsViewModel::class.java)
-
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
-      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
-
-      underTest.shouldAuthenticate(true)
-      navigationViewModel.onConfirmDevice(true, 10L)
-      advanceTimeBy(400)
-      runCurrent()
-
-      assertThat(authAttempt).isNull()
-      job.cancel()
-    }
-
-  @Test
-  fun authenticate_DoesRun_ifNotUdfps() =
-    testScope.runTest {
-      fakeFingerprintManagerInteractor.sensorProps =
-        listOf(
-          FingerprintSensorPropertiesInternal(
-            0 /* sensorId */,
-            SensorProperties.STRENGTH_STRONG,
-            5 /* maxEnrollmentsPerUser */,
-            emptyList() /* ComponentInfoInternal */,
-            FingerprintSensorProperties.TYPE_POWER_BUTTON,
-            true /* resetLockoutRequiresHardwareAuthToken */
-          )
-        )
-      fakeFingerprintManagerInteractor.enrolledFingerprintsInternal =
-        mutableListOf(FingerprintViewModel("a", 1, 3L))
-      val success = FingerprintAuthAttemptViewModel.Success(1)
-      fakeFingerprintManagerInteractor.authenticateAttempt = success
-
-      underTest =
-        FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-            defaultUserId,
-            fakeFingerprintManagerInteractor,
-            backgroundDispatcher,
-            navigationViewModel,
-          )
-          .create(FingerprintSettingsViewModel::class.java)
-
-      var authAttempt: FingerprintAuthAttemptViewModel? = null
-
-      val job = launch { underTest.authFlow.take(5).collectLatest { authAttempt = it } }
-      underTest.shouldAuthenticate(true)
-      navigationViewModel.onConfirmDevice(true, 10L)
-      advanceTimeBy(400)
-      runCurrent()
-
-      assertThat(authAttempt).isEqualTo(success)
-      job.cancel()
-    }
-
-  @Test
-  fun deleteDialog_showAndDismiss() = runTest {
-    val fingerprintToDelete = FingerprintViewModel("A", 1, 10L)
-    fakeFingerprintManagerInteractor.enrolledFingerprintsInternal = mutableListOf(fingerprintToDelete)
-
-    underTest =
-      FingerprintSettingsViewModel.FingerprintSettingsViewModelFactory(
-          defaultUserId,
-          fakeFingerprintManagerInteractor,
-          backgroundDispatcher,
-          navigationViewModel,
-        )
-        .create(FingerprintSettingsViewModel::class.java)
-
-    var dialog: PreferenceViewModel? = null
-    val dialogJob = launch { underTest.isShowingDialog.collect { dialog = it } }
-
-    // Move to the ShowSettings state
-    navigationViewModel.onConfirmDevice(true, 10L)
-    runCurrent()
-    underTest.onDeleteClicked(fingerprintToDelete)
-    runCurrent()
-
-    assertThat(dialog is PreferenceViewModel.DeleteDialog)
-    assertThat(dialog).isEqualTo(PreferenceViewModel.DeleteDialog(fingerprintToDelete))
-
-    underTest.deleteFingerprint(fingerprintToDelete)
-    underTest.onDeleteDialogFinished()
-    runCurrent()
-
-    assertThat(dialog).isNull()
-
-    dialogJob.cancel()
-  }
-}
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/localepicker/TermsOfAddressCategoryControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.java
new file mode 100644
index 0000000..e316b25
--- /dev/null
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressCategoryControllerTest.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.localepicker;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Looper;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Locale;
+
+@RunWith(AndroidJUnit4.class)
+public class TermsOfAddressCategoryControllerTest {
+
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
+
+    private Context mContext;
+    private TermsOfAddressCategoryController mTermsOfAddressCategoryController;
+    private Locale mCacheLocale;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        mTermsOfAddressCategoryController = new TermsOfAddressCategoryController(mContext,
+                KEY_CATEGORY_TERMS_OF_ADDRESS);
+        mCacheLocale = Locale.getDefault(Locale.Category.FORMAT);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        Locale.setDefault(mCacheLocale);
+    }
+
+    @Test
+    public void getAvailabilityStatus_returnUnavailable() {
+        Locale.setDefault(Locale.forLanguageTag("fr-CA"));
+
+        assertThat(mTermsOfAddressCategoryController.getAvailabilityStatus()).isEqualTo(
+                CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_returnAvailable() {
+        Locale.setDefault(Locale.forLanguageTag("fr-FR"));
+
+        assertThat(mTermsOfAddressCategoryController.getAvailabilityStatus()).isEqualTo(
+                AVAILABLE);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressFeminineControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressFeminineControllerTest.java
new file mode 100644
index 0000000..c04e5f9
--- /dev/null
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressFeminineControllerTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.Looper;
+
+import com.android.settings.widget.TickButtonPreference;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class TermsOfAddressFeminineControllerTest {
+
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
+    private static final String KEY_FEMININE = "key_terms_of_address_feminine";
+    private static final String KEY_MASCULINE = "key_terms_of_address_masculine";
+    private static final String KEY_NEUTRAL = "key_terms_of_address_neutral";
+    private static final String KEY_NOT_SPECIFIED = "key_terms_of_address_not_specified";
+
+    private Context mContext;
+    private PreferenceManager mPreferenceManager;
+    private PreferenceCategory mPreferenceCategory;
+    private PreferenceScreen mPreferenceScreen;
+    private TermsOfAddressFeminineController mController;
+    private TickButtonPreference mFemininePreference;
+    private TickButtonPreference mMasculinePreference;
+    private TickButtonPreference mNotSpecifiedPreference;
+    private TickButtonPreference mNeutralPreference;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        mPreferenceManager = new PreferenceManager(mContext);
+        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        mPreferenceCategory = new PreferenceCategory(mContext);
+        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
+        mNotSpecifiedPreference = new TickButtonPreference(mContext);
+        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
+        mFemininePreference = new TickButtonPreference(mContext);
+        mFemininePreference.setKey(KEY_FEMININE);
+        mMasculinePreference = new TickButtonPreference(mContext);
+        mMasculinePreference.setKey(KEY_MASCULINE);
+        mNeutralPreference = new TickButtonPreference(mContext);
+        mNeutralPreference.setKey(KEY_NEUTRAL);
+        mPreferenceScreen.addPreference(mPreferenceCategory);
+        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
+        mPreferenceScreen.addPreference(mFemininePreference);
+        mPreferenceScreen.addPreference(mMasculinePreference);
+        mPreferenceScreen.addPreference(mNeutralPreference);
+        mController = new TermsOfAddressFeminineController(mContext, KEY_FEMININE);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void displayPreference_setGrammaticalGenderIsFeminine_FeminineIsSelected() {
+        TickButtonPreference selectedPreference =
+                (TickButtonPreference) mPreferenceScreen.getPreference(2);
+        TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(1);
+
+        selectedPreference.performClick();
+
+        assertThat(selectedPreference.getKey()).isEqualTo(KEY_FEMININE);
+        assertThat(selectedPreference.isSelected()).isTrue();
+        assertThat(pref.isSelected()).isFalse();
+    }
+}
diff --git a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressMasculineControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressMasculineControllerTest.java
new file mode 100644
index 0000000..c2298be
--- /dev/null
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressMasculineControllerTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.Looper;
+
+import com.android.settings.widget.TickButtonPreference;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class TermsOfAddressMasculineControllerTest {
+
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
+    private static final String KEY_FEMININE = "key_terms_of_address_feminine";
+    private static final String KEY_MASCULINE = "key_terms_of_address_masculine";
+    private static final String KEY_NEUTRAL = "key_terms_of_address_neutral";
+    private static final String KEY_NOT_SPECIFIED = "key_terms_of_address_not_specified";
+
+    private Context mContext;
+    private PreferenceManager mPreferenceManager;
+    private PreferenceCategory mPreferenceCategory;
+    private PreferenceScreen mPreferenceScreen;
+    private TermsOfAddressMasculineController mController;
+    private TickButtonPreference mFemininePreference;
+    private TickButtonPreference mMasculinePreference;
+    private TickButtonPreference mNotSpecifiedPreference;
+    private TickButtonPreference mNeutralPreference;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        mPreferenceManager = new PreferenceManager(mContext);
+        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        mPreferenceCategory = new PreferenceCategory(mContext);
+        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
+        mNotSpecifiedPreference = new TickButtonPreference(mContext);
+        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
+        mFemininePreference = new TickButtonPreference(mContext);
+        mFemininePreference.setKey(KEY_FEMININE);
+        mMasculinePreference = new TickButtonPreference(mContext);
+        mMasculinePreference.setKey(KEY_MASCULINE);
+        mNeutralPreference = new TickButtonPreference(mContext);
+        mNeutralPreference.setKey(KEY_NEUTRAL);
+        mPreferenceScreen.addPreference(mPreferenceCategory);
+        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
+        mPreferenceScreen.addPreference(mFemininePreference);
+        mPreferenceScreen.addPreference(mMasculinePreference);
+        mPreferenceScreen.addPreference(mNeutralPreference);
+        mController = new TermsOfAddressMasculineController(mContext, KEY_MASCULINE);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void displayPreference_setGrammaticalGenderIsMasculine_MasculineIsSelected() {
+        TickButtonPreference selectedPreference =
+                (TickButtonPreference) mPreferenceScreen.getPreference(3);
+        TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(1);
+
+        selectedPreference.performClick();
+
+        assertThat(selectedPreference.getKey()).isEqualTo(KEY_MASCULINE);
+        assertThat(selectedPreference.isSelected()).isTrue();
+        assertThat(pref.isSelected()).isFalse();
+    }
+}
diff --git a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressNeutralControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressNeutralControllerTest.java
new file mode 100644
index 0000000..fb207fc
--- /dev/null
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressNeutralControllerTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.Looper;
+
+import com.android.settings.widget.TickButtonPreference;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class TermsOfAddressNeutralControllerTest {
+
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
+    private static final String KEY_FEMININE = "key_terms_of_address_feminine";
+    private static final String KEY_MASCULINE = "key_terms_of_address_masculine";
+    private static final String KEY_NEUTRAL = "key_terms_of_address_neutral";
+    private static final String KEY_NOT_SPECIFIED = "key_terms_of_address_not_specified";
+
+    private Context mContext;
+    private PreferenceManager mPreferenceManager;
+    private PreferenceCategory mPreferenceCategory;
+    private PreferenceScreen mPreferenceScreen;
+    private TermsOfAddressNeutralController mController;
+    private TickButtonPreference mFemininePreference;
+    private TickButtonPreference mMasculinePreference;
+    private TickButtonPreference mNotSpecifiedPreference;
+    private TickButtonPreference mNeutralPreference;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        mPreferenceManager = new PreferenceManager(mContext);
+        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        mPreferenceCategory = new PreferenceCategory(mContext);
+        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
+        mNotSpecifiedPreference = new TickButtonPreference(mContext);
+        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
+        mFemininePreference = new TickButtonPreference(mContext);
+        mFemininePreference.setKey(KEY_FEMININE);
+        mMasculinePreference = new TickButtonPreference(mContext);
+        mMasculinePreference.setKey(KEY_MASCULINE);
+        mNeutralPreference = new TickButtonPreference(mContext);
+        mNeutralPreference.setKey(KEY_NEUTRAL);
+        mPreferenceScreen.addPreference(mPreferenceCategory);
+        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
+        mPreferenceScreen.addPreference(mFemininePreference);
+        mPreferenceScreen.addPreference(mMasculinePreference);
+        mPreferenceScreen.addPreference(mNeutralPreference);
+        mController = new TermsOfAddressNeutralController(mContext, KEY_NEUTRAL);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void displayPreference_setGrammaticalGenderIsNotSpecified_NotSpecifiedIsSelected() {
+        TickButtonPreference selectedPreference =
+                (TickButtonPreference) mPreferenceScreen.getPreference(4);
+        TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(1);
+
+        selectedPreference.performClick();
+
+        assertThat(selectedPreference.getKey()).isEqualTo(KEY_NEUTRAL);
+        assertThat(selectedPreference.isSelected()).isTrue();
+        assertThat(pref.isSelected()).isFalse();
+    }
+}
diff --git a/tests/unit/src/com/android/settings/localepicker/TermsOfAddressNotSpecifiedControllerTest.java b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressNotSpecifiedControllerTest.java
new file mode 100644
index 0000000..8492c3b
--- /dev/null
+++ b/tests/unit/src/com/android/settings/localepicker/TermsOfAddressNotSpecifiedControllerTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.os.Looper;
+
+import com.android.settings.widget.TickButtonPreference;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class TermsOfAddressNotSpecifiedControllerTest {
+
+    private static final String KEY_CATEGORY_TERMS_OF_ADDRESS = "key_category_terms_of_address";
+    private static final String KEY_FEMININE = "key_terms_of_address_feminine";
+    private static final String KEY_MASCULINE = "key_terms_of_address_masculine";
+    private static final String KEY_NEUTRAL = "key_terms_of_address_neutral";
+    private static final String KEY_NOT_SPECIFIED = "key_terms_of_address_not_specified";
+
+    private Context mContext;
+    private PreferenceManager mPreferenceManager;
+    private PreferenceCategory mPreferenceCategory;
+    private PreferenceScreen mPreferenceScreen;
+    private TermsOfAddressNotSpecifiedController mController;
+    private TickButtonPreference mFemininePreference;
+    private TickButtonPreference mMasculinePreference;
+    private TickButtonPreference mNotSpecifiedPreference;
+    private TickButtonPreference mNeutralPreference;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+
+        mPreferenceManager = new PreferenceManager(mContext);
+        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
+        mPreferenceCategory = new PreferenceCategory(mContext);
+        mPreferenceCategory.setKey(KEY_CATEGORY_TERMS_OF_ADDRESS);
+        mNotSpecifiedPreference = new TickButtonPreference(mContext);
+        mNotSpecifiedPreference.setKey(KEY_NOT_SPECIFIED);
+        mFemininePreference = new TickButtonPreference(mContext);
+        mFemininePreference.setKey(KEY_FEMININE);
+        mMasculinePreference = new TickButtonPreference(mContext);
+        mMasculinePreference.setKey(KEY_MASCULINE);
+        mNeutralPreference = new TickButtonPreference(mContext);
+        mNeutralPreference.setKey(KEY_NEUTRAL);
+        mPreferenceScreen.addPreference(mPreferenceCategory);
+        mPreferenceScreen.addPreference(mNotSpecifiedPreference);
+        mPreferenceScreen.addPreference(mFemininePreference);
+        mPreferenceScreen.addPreference(mMasculinePreference);
+        mPreferenceScreen.addPreference(mNeutralPreference);
+        mController = new TermsOfAddressNotSpecifiedController(mContext, KEY_NOT_SPECIFIED);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void displayPreference_setGrammaticalGenderIsNotSpecified_NotSpecifiedIsSelected() {
+        TickButtonPreference selectedPreference =
+                (TickButtonPreference) mPreferenceScreen.getPreference(1);
+        TickButtonPreference pref = (TickButtonPreference) mPreferenceScreen.getPreference(2);
+
+        selectedPreference.performClick();
+
+        assertThat(selectedPreference.getKey()).isEqualTo(KEY_NOT_SPECIFIED);
+        assertThat(selectedPreference.isSelected()).isTrue();
+        assertThat(pref.isSelected()).isFalse();
+    }
+}
diff --git a/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java b/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java
index 27bc40c..40649a9 100644
--- a/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java
+++ b/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java
@@ -77,6 +77,7 @@
 
         mContext = spy(ApplicationProvider.getApplicationContext());
         when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+        doReturn(mSubscriptionManager).when(mSubscriptionManager).createForAllUserProfiles();
 
         mActiveSubscriptions = new ArrayList<SubscriptionInfo>();
         addMockSubscription(SUB_ID1);
diff --git a/tests/unit/src/com/android/settings/network/AllowedNetworkTypesListenerTest.java b/tests/unit/src/com/android/settings/network/AllowedNetworkTypesListenerTest.java
index c18477a..ba824d2 100644
--- a/tests/unit/src/com/android/settings/network/AllowedNetworkTypesListenerTest.java
+++ b/tests/unit/src/com/android/settings/network/AllowedNetworkTypesListenerTest.java
@@ -28,7 +28,6 @@
 import android.telephony.RadioAccessFamily;
 import android.telephony.TelephonyCallback;
 import android.telephony.TelephonyManager;
-import android.test.mock.MockContentResolver;
 
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.core.app.ApplicationProvider;
@@ -46,7 +45,6 @@
     private static final int SUB_ID = 1;
 
     private Context mContext;
-    private MockContentResolver mResolver;
     private AllowedNetworkTypesListener mAllowedNetworkTypesListener;
 
     @Mock
diff --git a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java
deleted file mode 100644
index 7f170b5..0000000
--- a/tests/unit/src/com/android/settings/network/EnabledNetworkModePreferenceControllerTest.java
+++ /dev/null
@@ -1,517 +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.telephony;
-
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFromNetworkType;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.CDMA;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.EVDO;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.GSM;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.LTE;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.NR;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.RAF_TD_SCDMA;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.WCDMA;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.ListPreference;
-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.network.CarrierConfigCache;
-import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-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 EnabledNetworkModePreferenceControllerTest {
-    private static final int SUB_ID = 2;
-    public static final String KEY = "enabled_network";
-
-    private static final long ALLOWED_ALL_NETWORK_TYPE = -1;
-    private static final long DISABLED_5G_NETWORK_TYPE = ~TelephonyManager.NETWORK_TYPE_BITMASK_NR;
-
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private TelephonyManager mInvalidTelephonyManager;
-    @Mock
-    private CarrierConfigCache mCarrierConfigCache;
-    @Mock
-    private ServiceState mServiceState;
-
-    private PersistableBundle mPersistableBundle;
-    private EnabledNetworkModePreferenceController mController;
-    private ListPreference mPreference;
-    private Context mContext;
-    private LifecycleOwner mLifecycleOwner;
-    private Lifecycle mLifecycle;
-
-    @UiThreadTest
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mLifecycleOwner = () -> mLifecycle;
-        mLifecycle = new Lifecycle(mLifecycleOwner);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache);
-        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
-        doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
-        doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        doReturn(mServiceState).when(mTelephonyManager).getServiceState();
-        mPersistableBundle = new PersistableBundle();
-        doReturn(mPersistableBundle).when(mCarrierConfigCache).getConfig();
-        doReturn(mPersistableBundle).when(mCarrierConfigCache).getConfigForSubId(SUB_ID);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
-        mPreference = new ListPreference(mContext);
-        mController = new EnabledNetworkModePreferenceController(mContext, KEY);
-        mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
-        mockAccessFamily(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
-        mController.init(SUB_ID);
-        mPreference.setKey(mController.getPreferenceKey());
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
-        mPersistableBundle.putBoolean(
-                CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
-                true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
-                true);
-
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-        when(mServiceState.getDataRegistrationState()).thenReturn(
-                ServiceState.STATE_OUT_OF_SERVICE);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-        when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
-        when(mServiceState.getRoaming()).thenReturn(false);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
-        when(mServiceState.getRoaming()).thenReturn(true);
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_carrierConfigNotReady_returnUnavailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_notWorldPhone_returnAvailable() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
-                false);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_callStateIsIdle_returnAvailable() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
-        mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_IDLE);
-
-        mController.updateState(mPreference);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
-        assertTrue(mPreference.isEnabled());
-    }
-
-    @UiThreadTest
-    @Test
-    public void getAvailabilityStatus_duringCalling_returnAvailable() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
-        mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_OFFHOOK);
-
-        mController.updateState(mPreference);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
-        assertFalse(mPreference.isEnabled());
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_LteWorldPhone_GlobalHasLte() {
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getEntryValues())
-                .asList()
-                .contains(String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_5gWorldPhone_GlobalHasNr() {
-        mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
-        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
-        mController.init(SUB_ID);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getEntryValues())
-                .asList()
-                .contains(String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_selectedOn5gItem() {
-        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);
-
-        // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA));
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(
-                        TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_disAllowed5g_5gOptionHidden() {
-        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);
-
-        // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA));
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getEntryValues())
-                .asList()
-                .doesNotContain(
-                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_disAllowed5g_selectOn4gOption() {
-        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);
-
-        // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA));
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(
-                        TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_NrEnableBoolFalse_5gOptionHidden() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
-        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
-        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-
-        mController.init(SUB_ID);
-
-        // NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (LTE | CDMA | EVDO | GSM | WCDMA));
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(
-                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-        assertThat(mPreference.getEntryValues())
-                .asList()
-                .doesNotContain(
-                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
-        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
-        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-        mController.init(SUB_ID);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
-
-        // NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = NR | LTE | CDMA | EVDO | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (NR | LTE | CDMA | EVDO | GSM | WCDMA));
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getEntryValues())
-                .asList()
-                .doesNotContain(
-                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_GlobalDisAllowed5g_SelectOnGlobal() {
-        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
-        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
-        mController.init(SUB_ID);
-        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
-
-        // NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA = NR | LTE | CDMA | EVDO | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (NR | LTE | CDMA | EVDO | GSM | WCDMA));
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(
-                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_updateByNetworkMode() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
-
-        // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (RAF_TD_SCDMA | GSM | WCDMA));
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
-        assertThat(mPreference.getSummary()).isEqualTo("3G");
-    }
-
-    @UiThreadTest
-    @Test
-    public void updateState_updateByNetworkMode_useDefaultValue() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
-
-        // NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (LTE | CDMA | EVDO | GSM | WCDMA));
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void onPreferenceChange_updateSuccess() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
-        doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
-                getRafFromNetworkType(
-                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-
-        mController.updateState(mPreference);
-        mController.onPreferenceChange(mPreference,
-                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-
-        assertThat(mPreference.getValue()).isEqualTo(
-                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void onPreferenceChange_updateFail() {
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
-        doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
-                getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
-
-        mController.updateState(mPreference);
-        mController.onPreferenceChange(mPreference,
-                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
-
-        assertThat(mPreference.getValue()).isNotEqualTo(
-                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
-    }
-
-    @UiThreadTest
-    @Test
-    public void preferredNetworkModeNotification_preferenceUpdates() {
-
-        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
-        PreferenceScreen screen = preferenceManager.createPreferenceScreen(mContext);
-        mPreference.setKey(KEY);
-        screen.addPreference(mPreference);
-        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
-
-        // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
-        when(mTelephonyManager.getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
-                (long) (RAF_TD_SCDMA | GSM | WCDMA));
-
-        mController.displayPreference(screen);
-        mController.updateState(mPreference);
-        mLifecycle.handleLifecycleEvent(ON_START);
-
-        assertThat(Integer.parseInt(mPreference.getValue())).isEqualTo(
-                TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
-        assertThat(mPreference.getSummary()).isEqualTo("3G");
-    }
-
-    @UiThreadTest
-    @Test
-    public void checkResource_stringArrayLength() {
-        int id = mController.getResourcesForSubId().getIdentifier("enabled_networks_cdma_values",
-                "array", mContext.getPackageName());
-        String[] entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(4, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_cdma_no_lte_values",
-                "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(2, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier(
-                "enabled_networks_cdma_only_lte_values", "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(2, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_tdscdma_values",
-                "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(3, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier(
-                "enabled_networks_except_gsm_lte_values", "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(1, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_except_gsm_values",
-                "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(2, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_except_lte_values",
-                "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(2, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_values", "array",
-                mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(3, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_values", "array",
-                mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(3, entryValues.length);
-
-        id = mController.getResourcesForSubId().getIdentifier(
-                "preferred_network_mode_values_world_mode", "array", mContext.getPackageName());
-        entryValues = mController.getResourcesForSubId().getStringArray(id);
-        assertEquals(3, entryValues.length);
-    }
-
-    private void mockEnabledNetworkMode(int networkMode) {
-        if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
-            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
-            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
-        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA
-                || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) {
-            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
-            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
-            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
-        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
-            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
-            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
-        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA
-                || networkMode
-                == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA) {
-            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
-            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
-            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
-        }
-        mController.init(SUB_ID);
-    }
-
-    private void mockAllowedNetworkTypes(long allowedNetworkType) {
-        doReturn(allowedNetworkType).when(mTelephonyManager).getAllowedNetworkTypesForReason(
-                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER);
-    }
-
-    private void mockAccessFamily(int networkMode) {
-        doReturn(MobileNetworkUtils.getRafFromNetworkType(networkMode))
-                .when(mTelephonyManager)
-                .getSupportedRadioAccessFamily();
-    }
-
-    private void mockPhoneType(int phoneType) {
-        doReturn(phoneType).when(mTelephonyManager).getPhoneType();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
index 4e9339f..4ba12cb 100644
--- a/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetPreferenceControllerTest.java
@@ -22,9 +22,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.Mockito.mock;
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -38,7 +36,6 @@
 import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.os.Looper;
-import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 
@@ -53,13 +50,19 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.android.settings.testutils.ResourcesUtils;
+import com.android.settings.wifi.WifiPickerTrackerHelper;
+import com.android.settings.wifi.WifiSummaryUpdater;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
+import com.android.wifitrackerlib.HotspotNetworkEntry;
+import com.android.wifitrackerlib.StandardWifiEntry;
+import com.android.wifitrackerlib.WifiPickerTracker;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 
@@ -70,6 +73,7 @@
 public class InternetPreferenceControllerTest {
 
     private static final String TEST_SUMMARY = "test summary";
+    private static final String TEST_ALTERNATE_SUMMARY = "test alternate summary";
     private static final String NOT_CONNECTED = "Not connected";
     private static final String SUB_ID_1 = "1";
     private static final String SUB_ID_2 = "2";
@@ -85,6 +89,8 @@
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Spy
+    private Context mContext = ApplicationProvider.getApplicationContext();
     @Mock
     private SubscriptionInfoEntity mActiveSubInfo;
     @Mock
@@ -93,10 +99,19 @@
     private ConnectivityManager mConnectivityManager;
     @Mock
     private LifecycleOwner mLifecycleOwner;
+    @Mock
+    private WifiManager mWifiManager;
+    @Mock
+    private WifiSummaryUpdater mSummaryHelper;
+    @Mock
+    private WifiPickerTrackerHelper mWifiPickerTrackerHelper;
+    @Mock
+    private WifiPickerTracker mWifiPickerTracker;
+    @Mock
+    private HotspotNetworkEntry mHotspotNetworkEntry;
 
     private LifecycleRegistry mLifecycleRegistry;
 
-    private Context mContext;
     private MockInternetPreferenceController mController;
     private PreferenceScreen mScreen;
     private Preference mPreference;
@@ -104,13 +119,15 @@
 
     @Before
     public void setUp() {
-        mContext = spy(ApplicationProvider.getApplicationContext());
         when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
         when(mContext.getSystemService(NetworkScoreManager.class))
                 .thenReturn(mock(NetworkScoreManager.class));
-        final WifiManager wifiManager = mock(WifiManager.class);
-        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(wifiManager);
-        when(wifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
+        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
+        when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
+        when(mWifiPickerTrackerHelper.getWifiPickerTracker()).thenReturn(mWifiPickerTracker);
+        when(mWifiPickerTracker.getConnectedWifiEntry()).thenReturn(null /* WifiEntry */);
+        when(mHotspotNetworkEntry.getAlternateSummary()).thenReturn(TEST_ALTERNATE_SUMMARY);
+
         if (Looper.myLooper() == null) {
             Looper.prepare();
         }
@@ -119,6 +136,7 @@
         mController = new MockInternetPreferenceController(mContext, mock(Lifecycle.class),
                 mLifecycleOwner);
         mController.sIconMap.put(INTERNET_WIFI, 0);
+        mController.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper;
 
         final PreferenceManager preferenceManager = new PreferenceManager(mContext);
         mScreen = preferenceManager.createPreferenceScreen(mContext);
@@ -200,6 +218,8 @@
 
     @Test
     public void onSummaryChanged_internetWifi_updateSummary() {
+        when(mSummaryHelper.getSummary()).thenReturn(TEST_SUMMARY);
+        mController.mSummaryHelper = mSummaryHelper;
         mController.onInternetTypeChanged(INTERNET_WIFI);
         mController.displayPreference(mScreen);
 
@@ -210,6 +230,8 @@
 
     @Test
     public void onSummaryChanged_internetNetworksAvailable_notUpdateSummary() {
+        when(mSummaryHelper.getSummary()).thenReturn(TEST_SUMMARY);
+        mController.mSummaryHelper = mSummaryHelper;
         mController.onInternetTypeChanged(INTERNET_NETWORKS_AVAILABLE);
         mController.displayPreference(mScreen);
         mPreference.setSummary(NOT_CONNECTED);
@@ -252,4 +274,35 @@
         mController.updateCellularSummary();
         assertThat(mPreference.getSummary()).isEqualTo(expectedSummary);
     }
+
+    @Test
+    public void updateHotspotNetwork_isHotspotNetworkEntry_updateAlternateSummary() {
+        when(mWifiPickerTracker.getConnectedWifiEntry()).thenReturn(mHotspotNetworkEntry);
+        mController.onInternetTypeChanged(INTERNET_WIFI);
+        mController.displayPreference(mScreen);
+        mPreference.setSummary(TEST_SUMMARY);
+
+        mController.updateHotspotNetwork();
+
+        assertThat(mPreference.getSummary().toString()).isEqualTo(TEST_ALTERNATE_SUMMARY);
+    }
+
+    @Test
+    public void updateHotspotNetwork_notHotspotNetworkEntry_notChangeSummary() {
+        when(mWifiPickerTracker.getConnectedWifiEntry()).thenReturn(mock(StandardWifiEntry.class));
+        mController.onInternetTypeChanged(INTERNET_WIFI);
+        mController.displayPreference(mScreen);
+        mPreference.setSummary(TEST_SUMMARY);
+
+        mController.updateHotspotNetwork();
+
+        assertThat(mPreference.getSummary().toString()).isEqualTo(TEST_SUMMARY);
+    }
+
+    @Test
+    public void updateHotspotNetwork_hotspotNetworkNotEnabled_returnFalse() {
+        mController.mWifiPickerTrackerHelper = null;
+
+        assertThat(mController.updateHotspotNetwork()).isFalse();
+    }
 }
diff --git a/tests/unit/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
deleted file mode 100644
index 9b38e5b..0000000
--- a/tests/unit/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.ResourcesUtils;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class MobilePlanPreferenceControllerTest {
-
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
-    }
-
-    @Test
-    public void testNoProvisionStringFormattedCorrectly() {
-        final String operator = "test_operator";
-
-        assertThat(
-                ResourcesUtils.getResourcesString(mContext, "mobile_no_provisioning_url", operator))
-                .contains(operator);
-    }
-}
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/ResetNetworkOperationBuilderTest.java b/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java
index 6f5440b..6213f8e 100644
--- a/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java
+++ b/tests/unit/src/com/android/settings/network/ResetNetworkOperationBuilderTest.java
@@ -16,13 +16,20 @@
 
 package com.android.settings.network;
 
-import static org.mockito.Mockito.any;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
 import static org.mockito.Mockito.anyInt;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+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.ContentProvider;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.net.ConnectivityManager;
 import android.net.NetworkPolicyManager;
@@ -34,6 +41,8 @@
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import com.android.settings.ResetNetworkRequest;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -57,6 +66,9 @@
     private TelephonyManager mTelephonyManager;
     @Mock
     private NetworkPolicyManager mNetworkPolicyManager;
+    @Mock
+    private ContentProvider mContentProvider;;
+
 
     private Context mContext;
     private ResetNetworkOperationBuilder mBuilder;
@@ -65,6 +77,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = spy(ApplicationProvider.getApplicationContext());
+        doReturn(ContentResolver.wrap(mContentProvider)).when(mContext).getContentResolver();
 
         mBuilder = spy(new ResetNetworkOperationBuilder(mContext));
     }
@@ -129,4 +142,82 @@
         verify(mTelephonyManager).resetSettings();
         verify(mNetworkPolicyManager).factoryReset(imsi);
     }
+
+    @Test
+    public void resetIms_performReset_whenBuildAndRun_withSingleValidSubId() {
+        final int subId = 1;
+        doReturn(mTelephonyManager).when(mTelephonyManager)
+                .createForSubscriptionId(anyInt());
+        doReturn(mTelephonyManager).when(mContext)
+                .getSystemService(Context.TELEPHONY_SERVICE);
+
+        mBuilder.resetIms(subId).build().run();
+
+        verify(mTelephonyManager).resetIms(anyInt());
+    }
+
+    @Test
+    public void resetIms_performReset_whenBuildAndRun_withInvalidSubId() {
+        final int subId = ResetNetworkRequest.INVALID_SUBSCRIPTION_ID;
+        doReturn(mTelephonyManager).when(mTelephonyManager)
+                .createForSubscriptionId(anyInt());
+        doReturn(mTelephonyManager).when(mContext)
+                .getSystemService(Context.TELEPHONY_SERVICE);
+
+        mBuilder.resetIms(subId).build().run();
+
+        verify(mTelephonyManager, never()).resetIms(anyInt());
+    }
+
+    @Test
+    public void resetIms_performReset_whenBuildAndRun_withAllValidSubId() {
+        final int subId = ResetNetworkRequest.ALL_SUBSCRIPTION_ID;
+        doReturn(mTelephonyManager).when(mTelephonyManager)
+                .createForSubscriptionId(anyInt());
+        doReturn(mTelephonyManager).when(mContext)
+                .getSystemService(Context.TELEPHONY_SERVICE);
+        doReturn(2).when(mTelephonyManager).getActiveModemCount();
+
+        mBuilder.resetIms(subId).build().run();
+
+        verify(mTelephonyManager, times(2)).resetIms(anyInt());
+    }
+
+    @Test
+    public void restartPhoneProcess_withoutTelephonyContentProvider_shouldNotCrash() {
+        doThrow(new IllegalArgumentException()).when(mContentProvider).call(
+                anyString(), anyString(), anyString(), any());
+
+        mBuilder.restartPhoneProcess();
+    }
+
+    @Test
+    public void restartRild_withoutTelephonyContentProvider_shouldNotCrash() {
+        doThrow(new IllegalArgumentException()).when(mContentProvider).call(
+                anyString(), anyString(), anyString(), any());
+
+        mBuilder.restartRild();
+    }
+
+    @Test
+    public void restartPhoneProcess_withTelephonyContentProvider_shouldCallRestartPhoneProcess() {
+        mBuilder.restartPhoneProcess();
+
+        verify(mContentProvider).call(
+                eq(mBuilder.getResetTelephonyContentProviderAuthority()),
+                eq(ResetNetworkOperationBuilder.METHOD_RESTART_PHONE_PROCESS),
+                isNull(),
+                isNull());
+    }
+
+    @Test
+    public void restartRild_withTelephonyContentProvider_shouldCallRestartRild() {
+        mBuilder.restartRild();
+
+        verify(mContentProvider).call(
+                eq(mBuilder.getResetTelephonyContentProviderAuthority()),
+                eq(ResetNetworkOperationBuilder.METHOD_RESTART_RILD),
+                isNull(),
+                isNull());
+    }
 }
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/UiccSlotUtilTest.java b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
index 5261b3e..75c49b3 100644
--- a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
+++ b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java
@@ -77,6 +77,7 @@
         when(mTelephonyManager.getUiccCardsInfo()).thenReturn(mUiccCardInfo);
 
         when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+        when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager);
         when(mSubscriptionManager.getAllSubscriptionInfoList()).thenReturn(mSubscriptionInfoList);
     }
 
diff --git a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackAdapterTest.java b/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackAdapterTest.java
deleted file mode 100644
index ddeb3f8..0000000
--- a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackAdapterTest.java
+++ /dev/null
@@ -1,111 +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.helper;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class LifecycleCallbackAdapterTest implements LifecycleOwner {
-
-    private final LifecycleRegistry mRegistry = LifecycleRegistry.createUnsafe(this);
-
-    private TestObj mTarget;
-
-    @Before
-    public void setUp() {
-        mTarget = new TestObj(getLifecycle());
-    }
-
-    public Lifecycle getLifecycle() {
-        return mRegistry;
-    }
-
-    @Test
-    public void lifecycle_get_lifecycleToMonitor() {
-        assertThat(mTarget.getLifecycle()).isEqualTo(mRegistry);
-    }
-
-    @Test
-    public void lifecycle_stateChangeToStart_callbackActive() {
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        assertThat(mTarget.getCallbackCount()).isEqualTo(0);
-        assertThat(mTarget.isCallbackActive()).isEqualTo(Boolean.FALSE);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        assertThat(mTarget.getCallbackCount()).isEqualTo(1);
-        assertThat(mTarget.isCallbackActive()).isEqualTo(Boolean.TRUE);
-    }
-
-    @Test
-    public void lifecycle_stateChangeToStop_callbackInActive() {
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        assertThat(mTarget.getCallbackCount()).isEqualTo(2);
-        assertThat(mTarget.isCallbackActive()).isEqualTo(Boolean.FALSE);
-    }
-
-    @Test
-    public void lifecycle_stateChangeToDestroy_noFurtherActive() {
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY);
-
-        assertThat(mTarget.getCallbackCount()).isEqualTo(2);
-        assertThat(mTarget.isCallbackActive()).isEqualTo(Boolean.FALSE);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        assertThat(mTarget.getCallbackCount()).isEqualTo(2);
-        assertThat(mTarget.isCallbackActive()).isEqualTo(Boolean.FALSE);
-    }
-
-    public static class TestObj extends LifecycleCallbackAdapter {
-        boolean mIsActive;
-        int mNumberOfCallback;
-
-        public TestObj(Lifecycle lifecycle) {
-            super(lifecycle);
-        }
-
-        public boolean isCallbackActive() {
-            return mIsActive;
-        }
-
-        public void setCallbackActive(boolean isActive) {
-            mIsActive = isActive;
-            mNumberOfCallback ++;
-        }
-
-        protected int getCallbackCount() {
-            return mNumberOfCallback;
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackConverterTest.java b/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackConverterTest.java
deleted file mode 100644
index 2237746..0000000
--- a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackConverterTest.java
+++ /dev/null
@@ -1,127 +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.helper;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.concurrent.Phaser;
-import java.util.concurrent.atomic.AtomicReference;
-import java.util.function.Consumer;
-
-@RunWith(AndroidJUnit4.class)
-public class LifecycleCallbackConverterTest implements LifecycleOwner {
-
-    private final LifecycleRegistry mRegistry = LifecycleRegistry.createUnsafe(this);
-
-    private Object mTestData;
-    private TestConsumer mConsumer;
-    private LifecycleCallbackConverter<Object> mConverter;
-
-    @Before
-    public void setUp() {
-        mTestData = new Object();
-        mConsumer = new TestConsumer();
-    }
-
-    private void initEnvPerTestCase() {
-        mConverter = new LifecycleCallbackConverter<Object>(getLifecycle(), mConsumer);
-    }
-
-    public Lifecycle getLifecycle() {
-        return mRegistry;
-    }
-
-    @Test
-    public void converter_dropResult_whenInActive() {
-        initEnvPerTestCase();
-        mConverter.postResult(mTestData);
-
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(0);
-    }
-
-    @Test
-    public void converter_callbackResult_whenActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        mConverter.postResult(mTestData);
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(1);
-        assertThat(mConsumer.getData()).isEqualTo(mTestData);
-    }
-
-    @Test
-    public void converter_dropResult_whenBackToInActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        mConverter.postResult(mTestData);
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(0);
-    }
-
-    @Test
-    public void converter_passResultToUiThread_whenActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        final Phaser phaser = new Phaser(1);
-        Thread executionThread = new Thread(() -> {
-            mConverter.postResult(phaser);
-        });
-        executionThread.start();
-        phaser.awaitAdvance(0);
-
-        assertThat(mConsumer.getData()).isEqualTo(phaser);
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(1);
-    }
-
-    public static class TestConsumer implements Consumer<Object> {
-        long mNumberOfCallback;
-        AtomicReference<Object> mLatestData;
-
-        public TestConsumer() {
-            mLatestData = new AtomicReference<Object>();
-        }
-
-        public void accept(Object data) {
-            mLatestData.set(data);
-            mNumberOfCallback ++;
-            if ((data != null) && (data instanceof Phaser)) {
-                ((Phaser)data).arrive();
-            }
-        }
-
-        protected long getCallbackCount() {
-            return mNumberOfCallback;
-        }
-
-        protected Object getData() {
-            return mLatestData.get();
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackIntentReceiverTest.java b/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackIntentReceiverTest.java
deleted file mode 100644
index 780ee55..0000000
--- a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackIntentReceiverTest.java
+++ /dev/null
@@ -1,190 +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.helper;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Handler;
-import android.os.HandlerThread;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-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 java.util.function.Consumer;
-
-@RunWith(AndroidJUnit4.class)
-public class LifecycleCallbackIntentReceiverTest implements LifecycleOwner {
-
-    private final LifecycleRegistry mRegistry = LifecycleRegistry.createUnsafe(this);
-
-    private static final String TEST_SCHEDULER_HANDLER = "testScheduler";
-    private static final String TEST_INTENT_ACTION = "testAction";
-    private static final String TEST_INTENT_PERMISSION = "testPermission";
-
-    private Context mContext;
-    private Intent mIntent;
-    private IntentFilter mIntentFilter;
-    private Handler mHandler;
-    private TestConsumer mConsumer;
-
-    private TestObj mTarget;
-
-    @Before
-    public void setUp() {
-        mContext = ApplicationProvider.getApplicationContext();
-
-        mIntentFilter = new IntentFilter(TEST_INTENT_ACTION);
-        mIntent = new Intent(TEST_INTENT_ACTION);
-
-        HandlerThread thread = new HandlerThread(TEST_SCHEDULER_HANDLER);
-        thread.start();
-
-        mHandler = new Handler(thread.getLooper());
-        mConsumer = new TestConsumer();
-    }
-
-    public Lifecycle getLifecycle() {
-        return mRegistry;
-    }
-
-    private void initEnvPerTestCase() {
-        mTarget = new TestObj(getLifecycle(), mContext,
-                mIntentFilter, TEST_INTENT_PERMISSION,
-                mHandler, mConsumer);
-    }
-
-    @Test
-    public void receiver_register_whenActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        assertThat(mTarget.getCallbackActiveCount(true)
-                + mTarget.getCallbackActiveCount(false)).isEqualTo(0);
-
-        mTarget.mReceiver.onReceive(mContext, mIntent);
-
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(0);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        assertThat(mTarget.getCallbackActiveCount(true)).isEqualTo(1);
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(0);
-
-        mTarget.mReceiver.onReceive(mContext, mIntent);
-
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(1);
-        assertThat(mConsumer.getData()).isEqualTo(mIntent);
-    }
-
-    @Test
-    public void receiver_unregister_whenInActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        assertThat(mTarget.getCallbackActiveCount(false)).isEqualTo(1);
-
-        mTarget.mReceiver.onReceive(mContext, mIntent);
-
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(0);
-    }
-
-    @Test
-    public void receiver_register_whenReActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        assertThat(mTarget.getCallbackActiveCount(true)).isEqualTo(2);
-
-        mTarget.mReceiver.onReceive(mContext, mIntent);
-
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(1);
-        assertThat(mConsumer.getData()).isEqualTo(mIntent);
-    }
-
-    @Test
-    public void receiver_close_whenDestroy() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY);
-
-        assertThat(mTarget.getCallbackActiveCount(false)).isEqualTo(1);
-
-        mTarget.mReceiver.onReceive(mContext, mIntent);
-
-        assertThat(mConsumer.getCallbackCount()).isEqualTo(0);
-    }
-
-    public static class TestConsumer implements Consumer<Intent> {
-        long mNumberOfCallback;
-        Intent mLatestData;
-
-        public TestConsumer() {}
-
-        public void accept(Intent data) {
-            mLatestData = data;
-            mNumberOfCallback ++;
-        }
-
-        protected long getCallbackCount() {
-            return mNumberOfCallback;
-        }
-
-        protected Intent getData() {
-            return mLatestData;
-        }
-    }
-
-    public static class TestObj extends LifecycleCallbackIntentReceiver {
-        long mCallbackActiveCount;
-        long mCallbackInActiveCount;
-
-        public TestObj(Lifecycle lifecycle, Context context, IntentFilter filter,
-                String broadcastPermission, Handler scheduler, Consumer<Intent> resultCallback) {
-            super(lifecycle, context, filter, broadcastPermission, scheduler, resultCallback);
-        }
-
-        @Override
-        public void setCallbackActive(boolean isActive) {
-            if (isActive) {
-                mCallbackActiveCount ++;
-            } else {
-                mCallbackInActiveCount ++;
-            }
-            super.setCallbackActive(isActive);
-        }
-
-        protected long getCallbackActiveCount(boolean forActive) {
-            return forActive ? mCallbackActiveCount : mCallbackInActiveCount;
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackTelephonyAdapterTest.java b/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackTelephonyAdapterTest.java
deleted file mode 100644
index 3968a03..0000000
--- a/tests/unit/src/com/android/settings/network/helper/LifecycleCallbackTelephonyAdapterTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.network.helper;
-
-import static org.mockito.ArgumentMatchers.anyObject;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import android.telephony.TelephonyCallback;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-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;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(AndroidJUnit4.class)
-public class LifecycleCallbackTelephonyAdapterTest implements LifecycleOwner {
-
-    private final LifecycleRegistry mRegistry = LifecycleRegistry.createUnsafe(this);
-
-    @Mock
-    private TelephonyManager mTelMgr;
-
-    private TestCallback mTestCallback;
-    private AtomicReference<Object> mResult;
-    private LifecycleCallbackTelephonyAdapter<Object> mAdapter;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mResult = new AtomicReference<Object>();
-        mTestCallback = new TestCallback();
-
-        doNothing().when(mTelMgr).registerTelephonyCallback(null, mTestCallback);
-        doNothing().when(mTelMgr).unregisterTelephonyCallback(mTestCallback);
-    }
-
-    public Lifecycle getLifecycle() {
-        return mRegistry;
-    }
-
-    private void initEnvPerTestCase() {
-        mAdapter = new LifecycleCallbackTelephonyAdapter<Object>(getLifecycle(), mTelMgr,
-                mTestCallback, null, result -> mResult.set(result));
-    }
-
-    @Test
-    public void telephonyCallback_register_whenActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        verify(mTelMgr, never()).registerTelephonyCallback(anyObject(), anyObject());
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        verify(mTelMgr).registerTelephonyCallback(anyObject(), anyObject());
-    }
-
-    @Test
-    public void telephonyCallback_unregister_whenInActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        verify(mTelMgr, never()).unregisterTelephonyCallback(anyObject());
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        verify(mTelMgr, never()).unregisterTelephonyCallback(anyObject());
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        verify(mTelMgr).unregisterTelephonyCallback(anyObject());
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY);
-
-        verify(mTelMgr, times(1)).unregisterTelephonyCallback(anyObject());
-    }
-
-    protected static class TestCallback extends TelephonyCallback
-            implements TelephonyCallback.CallStateListener {
-        @Override
-        public void onCallStateChanged(int state) {}
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/helper/ServiceStateStatusTest.java b/tests/unit/src/com/android/settings/network/helper/ServiceStateStatusTest.java
deleted file mode 100644
index 133c338..0000000
--- a/tests/unit/src/com/android/settings/network/helper/ServiceStateStatusTest.java
+++ /dev/null
@@ -1,99 +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.helper;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.telephony.ServiceState;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-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;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(AndroidJUnit4.class)
-public class ServiceStateStatusTest implements LifecycleOwner {
-
-    private final LifecycleRegistry mRegistry = LifecycleRegistry.createUnsafe(this);
-
-    @Mock
-    private TelephonyManager mTelMgr;
-    @Mock
-    private ServiceState mTestData;
-
-    private AtomicReference<ServiceState> mStatusStorage;
-    private ServiceStateStatus mServiceStateStatus;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mStatusStorage = new AtomicReference<ServiceState>();
-    }
-
-    private void initEnvPerTestCase() {
-        mServiceStateStatus = new ServiceStateStatus(getLifecycle(), mTelMgr, null) {
-            @Override
-            protected void setValue(ServiceState status) {
-                mStatusStorage.set(status);
-            }
-        };
-    }
-
-    public Lifecycle getLifecycle() {
-        return mRegistry;
-    }
-
-    @Test
-    public void telephonyCallback_updateStatus_whenActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        mServiceStateStatus.mServiceStateProducer.onServiceStateChanged(mTestData);
-
-        assertThat(mStatusStorage.get()).isEqualTo(null);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        mServiceStateStatus.mServiceStateProducer.onServiceStateChanged(mTestData);
-
-        assertThat(mStatusStorage.get()).isEqualTo(mTestData);
-    }
-
-    @Test
-    public void telephonyCallback_updateStatusToNull_whenInActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        mServiceStateStatus.mServiceStateProducer.onServiceStateChanged(mTestData);
-
-        assertThat(mStatusStorage.get()).isEqualTo(mTestData);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        assertThat(mStatusStorage.get()).isEqualTo(null);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/helper/VoiceCallStatusTest.java b/tests/unit/src/com/android/settings/network/helper/VoiceCallStatusTest.java
deleted file mode 100644
index dd4e28a..0000000
--- a/tests/unit/src/com/android/settings/network/helper/VoiceCallStatusTest.java
+++ /dev/null
@@ -1,100 +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.helper;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.LifecycleRegistry;
-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;
-
-import java.util.concurrent.atomic.AtomicReference;
-
-@RunWith(AndroidJUnit4.class)
-public class VoiceCallStatusTest implements LifecycleOwner {
-
-    private final LifecycleRegistry mRegistry = LifecycleRegistry.createUnsafe(this);
-
-    @Mock
-    private TelephonyManager mTelMgr;
-
-    private AtomicReference<Integer> mStatusStorage;
-    private VoiceCallStatus mVoiceCallStatus;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mStatusStorage = new AtomicReference<Integer>();
-    }
-
-    private void initEnvPerTestCase() {
-        mVoiceCallStatus = new VoiceCallStatus(getLifecycle(), mTelMgr, null) {
-                //ArchTaskExecutor.getMainThreadExecutor()) {
-            @Override
-            protected void setValue(Integer status) {
-                mStatusStorage.set(status);
-            }
-        };
-    }
-
-    public Lifecycle getLifecycle() {
-        return mRegistry;
-    }
-
-    @Test
-    public void telephonyCallback_updateStatus_whenActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-
-        mVoiceCallStatus.mCallStateProducer.onCallStateChanged(
-                TelephonyManager.CALL_STATE_RINGING);
-
-        assertThat(mStatusStorage.get()).isEqualTo(null);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        mVoiceCallStatus.mCallStateProducer.onCallStateChanged(
-                TelephonyManager.CALL_STATE_OFFHOOK);
-
-        assertThat(mStatusStorage.get()).isEqualTo(TelephonyManager.CALL_STATE_OFFHOOK);
-    }
-
-    @Test
-    public void telephonyCallback_updateStatusToNull_whenInActive() {
-        initEnvPerTestCase();
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_START);
-
-        mVoiceCallStatus.mCallStateProducer.onCallStateChanged(
-                TelephonyManager.CALL_STATE_OFFHOOK);
-
-        assertThat(mStatusStorage.get()).isEqualTo(TelephonyManager.CALL_STATE_OFFHOOK);
-
-        mRegistry.handleLifecycleEvent(Lifecycle.Event.ON_STOP);
-
-        assertThat(mStatusStorage.get()).isEqualTo(null);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/BackupCallingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/BackupCallingPreferenceControllerTest.java
deleted file mode 100644
index 4e110f0..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/BackupCallingPreferenceControllerTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.core.BasePreferenceController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-public class BackupCallingPreferenceControllerTest {
-    private static final int SUB_ID = 2;
-
-    private BackupCallingPreferenceController mController;
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        mController = new BackupCallingPreferenceController(mContext, "backup_calling_key");
-        mController.init(SUB_ID);
-    }
-
-    @Test
-    public void controller_isUnavailable() {
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/CellInfoUtilTest.kt b/tests/unit/src/com/android/settings/network/telephony/CellInfoUtilTest.kt
new file mode 100644
index 0000000..c3c6188
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/telephony/CellInfoUtilTest.kt
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony
+
+import android.telephony.CellIdentityCdma
+import android.telephony.CellIdentityGsm
+import android.telephony.CellInfoCdma
+import android.telephony.CellInfoGsm
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.internal.telephony.OperatorInfo
+import com.android.settings.network.telephony.CellInfoUtil.getNetworkTitle
+import com.android.settings.network.telephony.CellInfoUtil.getOperatorNumeric
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class CellInfoUtilTest {
+
+    @Test
+    fun getNetworkTitle_alphaLong() {
+        val networkTitle = CELL_IDENTITY_GSM.getNetworkTitle()
+
+        assertThat(networkTitle).isEqualTo(LONG)
+    }
+
+    @Test
+    fun getNetworkTitle_alphaShort() {
+        val cellIdentity = CellIdentityGsm(
+            /* lac = */ 1,
+            /* cid = */ 2,
+            /* arfcn = */ 3,
+            /* bsic = */ 4,
+            /* mccStr = */ "123",
+            /* mncStr = */ "01",
+            /* alphal = */ "",
+            /* alphas = */ SHORT,
+            /* additionalPlmns = */ emptyList(),
+        )
+
+        val networkTitle = cellIdentity.getNetworkTitle()
+
+        assertThat(networkTitle).isEqualTo(SHORT)
+    }
+
+    @Test
+    fun getNetworkTitle_operatorNumeric() {
+        val cellIdentity = CellIdentityGsm(
+            /* lac = */ 1,
+            /* cid = */ 2,
+            /* arfcn = */ 3,
+            /* bsic = */ 4,
+            /* mccStr = */ "123",
+            /* mncStr = */ "01",
+            /* alphal = */ "",
+            /* alphas = */ "",
+            /* additionalPlmns = */ emptyList(),
+        )
+
+        val networkTitle = cellIdentity.getNetworkTitle()
+
+        assertThat(networkTitle).isEqualTo("12301")
+    }
+
+    @Test
+    fun getNetworkTitle_null() {
+        val cellIdentity = CellIdentityGsm(
+            /* lac = */ 1,
+            /* cid = */ 2,
+            /* arfcn = */ 3,
+            /* bsic = */ 4,
+            /* mccStr = */ null,
+            /* mncStr = */ null,
+            /* alphal = */ null,
+            /* alphas = */ null,
+            /* additionalPlmns = */ emptyList(),
+        )
+
+        val networkTitle = cellIdentity.getNetworkTitle()
+
+        assertThat(networkTitle).isNull()
+    }
+
+    @Test
+    fun convertOperatorInfoToCellInfo() {
+        val operatorInfo = OperatorInfo(LONG, SHORT, "12301")
+
+        val cellInfo = CellInfoUtil.convertOperatorInfoToCellInfo(operatorInfo)
+
+        assertThat(cellInfo.cellIdentity.mccString).isEqualTo("123")
+        assertThat(cellInfo.cellIdentity.mncString).isEqualTo("01")
+        assertThat(cellInfo.cellIdentity.operatorAlphaLong).isEqualTo(LONG)
+        assertThat(cellInfo.cellIdentity.operatorAlphaShort).isEqualTo(SHORT)
+    }
+
+    @Test
+    fun cellInfoListToString() {
+        val cellInfoList =
+            listOf(
+                CellInfoCdma().apply {
+                    cellIdentity = CELL_IDENTITY_CDMA
+                },
+                CellInfoGsm().apply {
+                    isRegistered = true
+                    cellIdentity = CELL_IDENTITY_GSM
+                },
+            )
+
+        val string = CellInfoUtil.cellInfoListToString(cellInfoList)
+
+        assertThat(string).isEqualTo(
+            "{CellType = CellInfoCdma, isRegistered = false, " +
+                "mcc = null, mnc = null, alphaL = Long, alphaS = Short}, " +
+                "{CellType = CellInfoGsm, isRegistered = true, " +
+                "mcc = 123, mnc = 01, alphaL = Long, alphaS = Short}"
+        )
+    }
+
+    @Test
+    fun getOperatorNumeric_cdma() {
+        val operatorNumeric = CELL_IDENTITY_CDMA.getOperatorNumeric()
+
+        assertThat(operatorNumeric).isNull()
+    }
+
+    @Test
+    fun getOperatorNumeric_gsm() {
+        val operatorNumeric = CELL_IDENTITY_GSM.getOperatorNumeric()
+
+        assertThat(operatorNumeric).isEqualTo("12301")
+    }
+
+    private companion object {
+        const val LONG = "Long"
+        const val SHORT = "Short"
+
+        val CELL_IDENTITY_GSM = CellIdentityGsm(
+            /* lac = */ 1,
+            /* cid = */ 2,
+            /* arfcn = */ 3,
+            /* bsic = */ 4,
+            /* mccStr = */ "123",
+            /* mncStr = */ "01",
+            /* alphal = */ LONG,
+            /* alphas = */ SHORT,
+            /* additionalPlmns = */ emptyList(),
+        )
+
+        val CELL_IDENTITY_CDMA = CellIdentityCdma(
+            /* nid = */ 1,
+            /* sid = */ 2,
+            /* bid = */ 3,
+            /* lon = */ 4,
+            /* lat = */ 5,
+            /* alphal = */ LONG,
+            /* alphas = */ SHORT,
+        )
+    }
+}
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/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
new file mode 100644
index 0000000..1b337ca
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -0,0 +1,523 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.telephony;
+
+import static androidx.lifecycle.Lifecycle.Event.ON_START;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFromNetworkType;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.CDMA;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.EVDO;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.GSM;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.LTE;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.NR;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.RAF_TD_SCDMA;
+import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.WCDMA;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+import android.telephony.ServiceState;
+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;
+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.network.CarrierConfigCache;
+import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+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;
+    public static final String KEY = "enabled_network";
+
+    private static final long ALLOWED_ALL_NETWORK_TYPE = -1;
+    private static final long DISABLED_5G_NETWORK_TYPE = ~TelephonyManager.NETWORK_TYPE_BITMASK_NR;
+
+    @Mock
+    private TelephonyManager mTelephonyManager;
+    @Mock
+    private TelephonyManager mInvalidTelephonyManager;
+    @Mock
+    private CarrierConfigCache mCarrierConfigCache;
+    @Mock
+    private ServiceState mServiceState;
+    @Mock
+    private FragmentManager mFragmentManager;
+
+    private PersistableBundle mPersistableBundle;
+    private EnabledNetworkModePreferenceController mController;
+    private ListPreference mPreference;
+    private Context mContext;
+    private LifecycleOwner mLifecycleOwner;
+    private Lifecycle mLifecycle;
+
+    @UiThreadTest
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mLifecycleOwner = () -> mLifecycle;
+        mLifecycle = new Lifecycle(mLifecycleOwner);
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache);
+        when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
+        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
+        doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
+        doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+        doReturn(mServiceState).when(mTelephonyManager).getServiceState();
+        mPersistableBundle = new PersistableBundle();
+        doReturn(mPersistableBundle).when(mCarrierConfigCache).getConfig();
+        doReturn(mPersistableBundle).when(mCarrierConfigCache).getConfigForSubId(SUB_ID);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, true);
+        mPreference = new ListPreference(mContext);
+        mController = new EnabledNetworkModePreferenceController(mContext, KEY);
+        mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
+        when(mFragmentManager.getFragments()).thenReturn(Collections.emptyList());
+        mController.init(SUB_ID, mFragmentManager);
+        mPreference.setKey(mController.getPreferenceKey());
+    }
+
+    @UiThreadTest
+    @Test
+    public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
+        mPersistableBundle.putBoolean(
+                CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+                true);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @UiThreadTest
+    @Test
+    public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
+                true);
+
+        when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
+        when(mServiceState.getDataRegistrationState()).thenReturn(
+                ServiceState.STATE_OUT_OF_SERVICE);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+
+        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
+        when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
+
+        when(mServiceState.getRoaming()).thenReturn(false);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+
+        when(mServiceState.getRoaming()).thenReturn(true);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @UiThreadTest
+    @Test
+    public void getAvailabilityStatus_carrierConfigNotReady_returnUnavailable() {
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_CONFIG_APPLIED_BOOL, false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @UiThreadTest
+    @Test
+    public void getAvailabilityStatus_notWorldPhone_returnAvailable() {
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
+                false);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, false);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @UiThreadTest
+    @Test
+    public void getAvailabilityStatus_callStateIsIdle_returnAvailable() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
+        mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_IDLE);
+
+        mController.updateState(mPreference);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+        assertTrue(mPreference.isEnabled());
+    }
+
+    @UiThreadTest
+    @Test
+    public void getAvailabilityStatus_duringCalling_returnAvailable() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
+        mController.getTelephonyCallback().onCallStateChanged(TelephonyManager.CALL_STATE_OFFHOOK);
+
+        mController.updateState(mPreference);
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
+        assertFalse(mPreference.isEnabled());
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_LteWorldPhone_GlobalHasLte() {
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .contains(String.valueOf(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_5gWorldPhone_GlobalHasNr() {
+        mockAllowedNetworkTypes(ALLOWED_ALL_NETWORK_TYPE);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mController.init(SUB_ID, mFragmentManager);
+        mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .contains(String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_selectedOn5gItem() {
+        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, mFragmentManager);
+
+        // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA));
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_disAllowed5g_5gOptionHidden() {
+        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, mFragmentManager);
+
+        // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA));
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_disAllowed5g_selectOn4gOption() {
+        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, mFragmentManager);
+
+        // NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA = NR | LTE | RAF_TD_SCDMA | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA));
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_NrEnableBoolFalse_5gOptionHidden() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA);
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+
+        mController.init(SUB_ID, mFragmentManager);
+
+        // NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (LTE | CDMA | EVDO | GSM | WCDMA));
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_GlobalDisAllowed5g_GlobalWithoutNR() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        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
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (NR | LTE | CDMA | EVDO | GSM | WCDMA));
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getEntryValues())
+                .asList()
+                .doesNotContain(
+                        String.valueOf(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_GlobalDisAllowed5g_SelectOnGlobal() {
+        mockAccessFamily(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA);
+        mockAllowedNetworkTypes(DISABLED_5G_NETWORK_TYPE);
+        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
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (NR | LTE | CDMA | EVDO | GSM | WCDMA));
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_updateByNetworkMode() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+
+        // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (RAF_TD_SCDMA | GSM | WCDMA));
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
+        assertThat(mPreference.getSummary()).isEqualTo("3G");
+    }
+
+    @UiThreadTest
+    @Test
+    public void updateState_updateByNetworkMode_useDefaultValue() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+
+        // NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = LTE | CDMA | EVDO | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (LTE | CDMA | EVDO | GSM | WCDMA));
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void onPreferenceChange_updateSuccess() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+        doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
+                getRafFromNetworkType(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+
+        mController.updateState(mPreference);
+        mController.onPreferenceChange(mPreference,
+                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+
+        assertThat(mPreference.getValue()).isEqualTo(
+                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void onPreferenceChange_updateFail() {
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
+        doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
+                getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+
+        mController.updateState(mPreference);
+        mController.onPreferenceChange(mPreference,
+                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+
+        assertThat(mPreference.getValue()).isNotEqualTo(
+                String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+    }
+
+    @UiThreadTest
+    @Test
+    public void preferredNetworkModeNotification_preferenceUpdates() {
+
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        PreferenceScreen screen = preferenceManager.createPreferenceScreen(mContext);
+        mPreference.setKey(KEY);
+        screen.addPreference(mPreference);
+        mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+
+        // NETWORK_MODE_TDSCDMA_GSM_WCDMA = RAF_TD_SCDMA | GSM | WCDMA
+        when(mTelephonyManager.getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER)).thenReturn(
+                (long) (RAF_TD_SCDMA | GSM | WCDMA));
+
+        mController.displayPreference(screen);
+        mController.updateState(mPreference);
+        mLifecycle.handleLifecycleEvent(ON_START);
+
+        assertThat(Integer.parseInt(mPreference.getValue())).isEqualTo(
+                TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
+        assertThat(mPreference.getSummary()).isEqualTo("3G");
+    }
+
+    @UiThreadTest
+    @Test
+    public void checkResource_stringArrayLength() {
+        int id = mController.getResourcesForSubId().getIdentifier("enabled_networks_cdma_values",
+                "array", mContext.getPackageName());
+        String[] entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(4, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_cdma_no_lte_values",
+                "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(2, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier(
+                "enabled_networks_cdma_only_lte_values", "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(2, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_tdscdma_values",
+                "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(3, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier(
+                "enabled_networks_except_gsm_lte_values", "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(1, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_except_gsm_values",
+                "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(2, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_except_lte_values",
+                "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(2, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_values", "array",
+                mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(3, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier("enabled_networks_values", "array",
+                mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(3, entryValues.length);
+
+        id = mController.getResourcesForSubId().getIdentifier(
+                "preferred_network_mode_values_world_mode", "array", mContext.getPackageName());
+        entryValues = mController.getResourcesForSubId().getStringArray(id);
+        assertEquals(3, entryValues.length);
+    }
+
+    private void mockEnabledNetworkMode(int networkMode) {
+        if (networkMode == TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
+        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA
+                || networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
+        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
+        } else if (networkMode == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA
+                || networkMode
+                == TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA) {
+            mockPhoneType(TelephonyManager.PHONE_TYPE_GSM);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL, true);
+            mPersistableBundle.putBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL, true);
+        }
+        mController.init(SUB_ID, mFragmentManager);
+    }
+
+    private void mockAllowedNetworkTypes(long allowedNetworkType) {
+        doReturn(allowedNetworkType).when(mTelephonyManager).getAllowedNetworkTypesForReason(
+                TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_CARRIER);
+    }
+
+    private void mockAccessFamily(int networkMode) {
+        doReturn(MobileNetworkUtils.getRafFromNetworkType(networkMode))
+                .when(mTelephonyManager)
+                .getSupportedRadioAccessFamily();
+    }
+
+    private void mockPhoneType(int phoneType) {
+        doReturn(phoneType).when(mTelephonyManager).getPhoneType();
+    }
+}
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/MobileDataPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
index 4d48025..11a490e 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
@@ -98,6 +98,7 @@
         doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
 
         when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+        when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager);
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
         doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID);
@@ -182,7 +183,8 @@
 
         mController.onPreferenceChange(mPreference, true);
 
-        verify(mTelephonyManager).setDataEnabled(true);
+        verify(mTelephonyManager).setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER
+                ,true);
     }
 
     @Test
@@ -195,7 +197,8 @@
 
         mController.onPreferenceChange(mPreference, true);
 
-        verify(mTelephonyManager).setDataEnabled(true);
+        verify(mTelephonyManager).setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER
+                ,true);
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
index 1043fdf..947ba75 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
@@ -113,6 +113,7 @@
 
         mContext = spy(ApplicationProvider.getApplicationContext());
         when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+        when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager);
         when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
         when(mTelephonyManager.createForSubscriptionId(SUB_ID_1)).thenReturn(mTelephonyManager);
         when(mTelephonyManager.createForSubscriptionId(SUB_ID_2)).thenReturn(mTelephonyManager2);
@@ -147,24 +148,30 @@
     public void setMobileDataEnabled_setEnabled_enabled() {
         MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, false);
 
-        verify(mTelephonyManager).setDataEnabled(true);
-        verify(mTelephonyManager2, never()).setDataEnabled(anyBoolean());
+        verify(mTelephonyManager)
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
+        verify(mTelephonyManager2, never())
+                .setDataEnabledForReason(anyInt(), anyBoolean());
     }
 
     @Test
     public void setMobileDataEnabled_setDisabled_disabled() {
         MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_2, true, false);
 
-        verify(mTelephonyManager2).setDataEnabled(true);
-        verify(mTelephonyManager, never()).setDataEnabled(anyBoolean());
+        verify(mTelephonyManager2)
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
+        verify(mTelephonyManager, never())
+                .setDataEnabledForReason(anyInt(), anyBoolean());
     }
 
     @Test
     public void setMobileDataEnabled_disableOtherSubscriptions() {
         MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, true);
 
-        verify(mTelephonyManager).setDataEnabled(true);
-        verify(mTelephonyManager2).setDataEnabled(false);
+        verify(mTelephonyManager)
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, true);
+        verify(mTelephonyManager2)
+                .setDataEnabledForReason(TelephonyManager.DATA_ENABLED_REASON_USER, false);
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderBackupCallingGroupTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderBackupCallingGroupTest.java
deleted file mode 100644
index a5717ef..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderBackupCallingGroupTest.java
+++ /dev/null
@@ -1,168 +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.telephony;
-
-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.os.Looper;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.PreferenceGroup;
-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 com.android.settings.network.CarrierConfigCache;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.List;
-
-@RunWith(AndroidJUnit4.class)
-public class NetworkProviderBackupCallingGroupTest {
-
-    private static final int SUB_ID_1 = 1;
-    private static final int SUB_ID_2 = 2;
-
-    private static final String KEY_PREFERENCE_CATEGORY_BACKUP_CALLING =
-            "provider_model_backup_calling_category";
-    private static final String DISPLAY_NAME_1 = "Test Display Name 1";
-    private static final String DISPLAY_NAME_2 = "Test Display Name 2";
-
-    @Mock
-    private PreferenceGroup mPreferenceGroup;
-    @Mock
-    private CarrierConfigCache mCarrierConfigCache;
-    @Mock
-    private Lifecycle mLifecycle;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo1;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo2;
-    @Mock
-    private List<SubscriptionInfo> mSubscriptionInfoList;
-    @Mock
-    private TelephonyManager mTelephonyManager1;
-    @Mock
-    private TelephonyManager mTelephonyManager2;
-
-    @Mock
-    private NetworkProviderBackupCallingGroup mNetworkProviderBackupCallingGroup;
-    private Context mContext;
-    private PersistableBundle mCarrierConfig;
-    private PreferenceManager mPreferenceManager;
-    private PreferenceScreen mPreferenceScreen;
-    private SwitchPreference mSwitchPreference1;
-    private SwitchPreference mSwitchPreference2;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager1);
-        when(mTelephonyManager1.createForSubscriptionId(SUB_ID_1)).thenReturn(mTelephonyManager1);
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager2);
-        when(mTelephonyManager2.createForSubscriptionId(SUB_ID_2)).thenReturn(mTelephonyManager2);
-        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
-        when(mSubscriptionInfo1.getSubscriptionId()).thenReturn(SUB_ID_1);
-        when(mSubscriptionInfo1.getDisplayName()).thenReturn(DISPLAY_NAME_1);
-        doReturn(true).when(mNetworkProviderBackupCallingGroup).isCrossSimEnabledByPlatform(
-                mContext, SUB_ID_1);
-        mSubscriptionInfoList.add(mSubscriptionInfo1);
-        when(mSubscriptionInfo2.getSubscriptionId()).thenReturn(SUB_ID_2);
-        when(mSubscriptionInfo2.getDisplayName()).thenReturn(DISPLAY_NAME_2);
-        doReturn(true).when(mNetworkProviderBackupCallingGroup).isCrossSimEnabledByPlatform(
-                mContext, SUB_ID_2);
-        mSubscriptionInfoList.add(mSubscriptionInfo2);
-        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
-                mSubscriptionInfoList);
-
-        CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache);
-        mCarrierConfig = new PersistableBundle();
-        doReturn(mCarrierConfig).when(mCarrierConfigCache).getConfigForSubId(SUB_ID_1);
-        mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
-                true);
-        doReturn(mCarrierConfig).when(mCarrierConfigCache).getConfigForSubId(SUB_ID_2);
-        mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
-                true);
-
-        if (Looper.myLooper() == null) {
-            Looper.prepare();
-        }
-
-        mPreferenceManager = new PreferenceManager(mContext);
-        mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext);
-        when(mPreferenceGroup.getKey()).thenReturn(KEY_PREFERENCE_CATEGORY_BACKUP_CALLING);
-        when(mPreferenceGroup.getPreferenceCount()).thenReturn(2);
-        mPreferenceScreen.addPreference(mPreferenceGroup);
-
-        mNetworkProviderBackupCallingGroup = spy(new NetworkProviderBackupCallingGroup(
-                mContext, mLifecycle, mSubscriptionInfoList,
-                KEY_PREFERENCE_CATEGORY_BACKUP_CALLING));
-    }
-
-    @Test
-    public void shouldShowBackupCallingForSub_invalidSubId_returnFalse() {
-        assertThat(mNetworkProviderBackupCallingGroup.hasBackupCallingFeature(
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID)).isEqualTo(false);
-    }
-
-    @Test
-    public void shouldShowBackupCallingForSub_carrierConfigIsUnavailable_returnFalse() {
-        mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
-                false);
-
-        assertThat(mNetworkProviderBackupCallingGroup.hasBackupCallingFeature(SUB_ID_1))
-                .isEqualTo(false);
-    }
-
-    @Test
-    public void
-    shouldShowBackupCallingForSub_crossSimDisabled_returnFalse() {
-        doReturn(false).when(mNetworkProviderBackupCallingGroup).isCrossSimEnabledByPlatform(
-                mContext, SUB_ID_1);
-
-        assertThat(mNetworkProviderBackupCallingGroup.hasBackupCallingFeature(SUB_ID_1))
-                .isEqualTo(false);
-    }
-
-    @Test
-    public void shouldBackupCallingForSub_crossSimEnabled_returnTrue() {
-        doReturn(true).when(mNetworkProviderBackupCallingGroup).isCrossSimEnabledByPlatform(
-                mContext, SUB_ID_1);
-
-        assertThat(mNetworkProviderBackupCallingGroup.hasBackupCallingFeature(SUB_ID_1))
-                .isEqualTo(true);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java
index 9cd12fe..95f8390 100644
--- a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java
@@ -37,7 +37,6 @@
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.util.FeatureFlagUtils;
 
 import androidx.preference.PreferenceCategory;
 import androidx.preference.PreferenceManager;
@@ -100,6 +99,7 @@
         when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
                 mCarrierConfigManager);
         when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+        when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager);
         when(mContext.getSystemService(TelecomManager.class)).thenReturn(mTelecomManager);
         when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
         when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
index 404f56c..080534e 100644
--- a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
@@ -17,13 +17,14 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
 import android.content.res.Resources;
-import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
 import android.telephony.CellIdentity;
@@ -32,6 +33,7 @@
 import android.telephony.CellInfo;
 import android.telephony.CellInfoGsm;
 import android.telephony.CellInfoLte;
+import android.telephony.CellSignalStrength;
 import android.telephony.CellSignalStrengthGsm;
 import android.telephony.CellSignalStrengthLte;
 import android.telephony.TelephonyManager;
@@ -39,7 +41,6 @@
 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;
 
@@ -50,6 +51,7 @@
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -68,10 +70,6 @@
     @Mock
     public MetricsFeatureProvider mMetricsFeatureProvider;
     @Mock
-    public NetworkOperatorPreference mNetworkOperatorPreference1;
-    @Mock
-    public NetworkOperatorPreference mNetworkOperatorPreference2;
-    @Mock
     private CellInfo mCellInfo1;
     @Mock
     private CellIdentity mCellId1;
@@ -80,7 +78,6 @@
     @Mock
     private CellIdentity mCellId2;
 
-    private PreferenceScreen mPreferenceScreen;
     @Mock
     public PreferenceManager mPreferenceManager;
 
@@ -88,7 +85,6 @@
     public PreferenceCategory mPreferenceCategory;
     public boolean mIsAggregationEnabled = true;
 
-    private Bundle mInitArguments;
     private TargetClass mNetworkSelectSettings;
 
     @Before
@@ -103,8 +99,10 @@
         mPreferenceCategory = spy(new PreferenceCategory(mContext));
         doReturn(mPreferenceManager).when(mPreferenceCategory).getPreferenceManager();
         doReturn(mCellId1).when(mCellInfo1).getCellIdentity();
+        doReturn(mock(CellSignalStrength.class)).when(mCellInfo1).getCellSignalStrength();
         doReturn(CARRIER_NAME1).when(mCellId1).getOperatorAlphaLong();
         doReturn(mCellId2).when(mCellInfo2).getCellIdentity();
+        doReturn(mock(CellSignalStrength.class)).when(mCellInfo2).getCellSignalStrength();
         doReturn(CARRIER_NAME2).when(mCellId2).getOperatorAlphaLong();
         mIsAggregationEnabled = true;
         mNetworkSelectSettings = spy(new TargetClass(this));
@@ -116,8 +114,8 @@
         doReturn(TelephonyManager.DATA_CONNECTED).when(mTelephonyManager).getDataState();
     }
 
-    public class TargetClass extends NetworkSelectSettings {
-        private NetworkSelectSettingsTest mTestEnv;
+    public static class TargetClass extends NetworkSelectSettings {
+        private final NetworkSelectSettingsTest mTestEnv;
         private boolean mIsPreferenceScreenEnabled;
 
         public TargetClass(NetworkSelectSettingsTest env) {
@@ -281,11 +279,106 @@
         assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected);
     }
 
+    @Test
+    public void doAggregation_filterOutSatellitePlmn_whenKeyIsTrue() {
+        PersistableBundle config = new PersistableBundle();
+        config.putBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL, true);
+        doReturn(config).when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID),
+                eq(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL),
+                eq(CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL));
+
+        List<String> testSatellitePlmn = new ArrayList<>(Arrays.asList("123232", "123235"));
+        doReturn(testSatellitePlmn).when(
+                mNetworkSelectSettings).getSatellitePlmnsForCarrierWrapper();
+
+        /* Expect filter out satellite plmns when
+           KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL is true, and there is available
+           satellite plmns. */
+        mNetworkSelectSettings.onCreateInitialization();
+        List<CellInfo> testList = Arrays.asList(
+                createLteCellInfo(true, 123, "123", "232", "CarrierA"),
+                createGsmCellInfo(false, 123, "123", "233", "CarrierB"),
+                createLteCellInfo(false, 1234, "123", "234", "CarrierC"),
+                createGsmCellInfo(false, 1234, "123", "235", "CarrierD"));
+        List<CellInfo> expected = Arrays.asList(
+                createGsmCellInfo(false, 123, "123", "233", "CarrierB"),
+                createLteCellInfo(false, 1234, "123", "234", "CarrierC"));
+        assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected);
+    }
+
+    @Test
+    public void doAggregation_filterOutSatellitePlmn_whenNoSatellitePlmnIsAvailable() {
+        PersistableBundle config = new PersistableBundle();
+        config.putBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL, true);
+        doReturn(config).when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID),
+                eq(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL),
+                eq(CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL));
+
+        List<String> testSatellitePlmn = new ArrayList<>(Arrays.asList("123232", "123235"));
+        doReturn(testSatellitePlmn).when(
+                mNetworkSelectSettings).getSatellitePlmnsForCarrierWrapper();
+
+        // Expect no filter out when there is no available satellite plmns.
+        mNetworkSelectSettings.onCreateInitialization();
+        testSatellitePlmn = new ArrayList<>();
+        doReturn(testSatellitePlmn).when(
+                mNetworkSelectSettings).getSatellitePlmnsForCarrierWrapper();
+        mNetworkSelectSettings.onCreateInitialization();
+        List<CellInfo> testList = Arrays.asList(
+                createLteCellInfo(true, 123, "123", "232", "CarrierA"),
+                createGsmCellInfo(false, 123, "123", "233", "CarrierB"),
+                createLteCellInfo(false, 1234, "123", "234", "CarrierC"),
+                createGsmCellInfo(false, 12345, "123", "235", "CarrierD"));
+        List<CellInfo> expected = Arrays.asList(
+                createLteCellInfo(true, 123, "123", "232", "CarrierA"),
+                createGsmCellInfo(false, 123, "123", "233", "CarrierB"),
+                createLteCellInfo(false, 1234, "123", "234", "CarrierC"),
+                createGsmCellInfo(false, 12345, "123", "235", "CarrierD"));
+        assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected);
+
+        // Expect no filter out when KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL is false.
+        config.putBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL, false);
+        mNetworkSelectSettings.onCreateInitialization();
+        assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected);
+    }
+
+    @Test
+    public void doAggregation_filterOutSatellitePlmn_whenKeyIsFalse() {
+        PersistableBundle config = new PersistableBundle();
+        config.putBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL, true);
+        doReturn(config).when(mCarrierConfigManager).getConfigForSubId(eq(SUB_ID),
+                eq(CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL),
+                eq(CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL));
+
+        List<String> testSatellitePlmn = new ArrayList<>(Arrays.asList("123232", "123235"));
+        doReturn(testSatellitePlmn).when(
+                mNetworkSelectSettings).getSatellitePlmnsForCarrierWrapper();
+
+        // Expect no filter out when KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL is false.
+        config.putBoolean(
+                CarrierConfigManager.KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL, false);
+        mNetworkSelectSettings.onCreateInitialization();
+        List<CellInfo> testList = Arrays.asList(
+                createLteCellInfo(true, 123, "123", "232", "CarrierA"),
+                createGsmCellInfo(false, 123, "123", "233", "CarrierB"),
+                createLteCellInfo(false, 1234, "123", "234", "CarrierC"),
+                createGsmCellInfo(false, 12345, "123", "235", "CarrierD"));
+        List<CellInfo> expected = Arrays.asList(
+                createLteCellInfo(true, 123, "123", "232", "CarrierA"),
+                createGsmCellInfo(false, 123, "123", "233", "CarrierB"),
+                createLteCellInfo(false, 1234, "123", "234", "CarrierC"),
+                createGsmCellInfo(false, 12345, "123", "235", "CarrierD"));
+        assertThat(mNetworkSelectSettings.doAggregation(testList)).isEqualTo(expected);
+    }
+
     private CellInfoLte createLteCellInfo(boolean registered, int cellId, String mcc, String mnc,
             String plmnName) {
         CellIdentityLte cil = new CellIdentityLte(
-                cellId, 5, 200, 2000, new int[]{1, 2}, 10000, new String(mcc),
-                new String(mnc), new String(plmnName), new String(plmnName),
+                cellId, 5, 200, 2000, new int[]{1, 2}, 10000, mcc, mnc, plmnName, plmnName,
                 Collections.emptyList(), null);
         CellSignalStrengthLte cssl = new CellSignalStrengthLte(15, 16, 17, 18, 19, 20);
 
@@ -299,8 +392,7 @@
 
     private CellInfoGsm createGsmCellInfo(boolean registered, int cellId, String mcc, String mnc,
             String plmnName) {
-        CellIdentityGsm cig = new CellIdentityGsm(1, cellId, 40, 5, new String(mcc),
-                new String(mnc), new String(plmnName), new String(plmnName),
+        CellIdentityGsm cig = new CellIdentityGsm(1, cellId, 40, 5, mcc, mnc, plmnName, plmnName,
                 Collections.emptyList());
         CellSignalStrengthGsm cssg = new CellSignalStrengthGsm(5, 6, 7);
         CellInfoGsm cellInfoGsm = new CellInfoGsm();
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/network/telephony/TelephonyBasePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java
index 4fb31f2..3588d38 100644
--- a/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java
@@ -55,6 +55,7 @@
         mContext = spy(ApplicationProvider.getApplicationContext());
         when(mContext.getSystemService(SubscriptionManager.class))
                 .thenReturn(mSubscriptionManager);
+        when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager);
         when(mSubscriptionInfo.getSubscriptionId()).thenReturn(VALID_SUB_ID);
         mPreferenceController = new TestPreferenceController(mContext, "prefKey");
     }
diff --git a/tests/unit/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
deleted file mode 100644
index 5827516..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/WifiCallingPreferenceControllerTest.java
+++ /dev/null
@@ -1,227 +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.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.assertNull;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.ims.ImsMmTelManager;
-
-import androidx.preference.Preference;
-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.internal.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.network.ims.MockWifiCallingQueryImsState;
-import com.android.settings.network.ims.WifiCallingQueryImsState;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-@RunWith(AndroidJUnit4.class)
-public class WifiCallingPreferenceControllerTest {
-    private static final int SUB_ID = 2;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private CarrierConfigManager mCarrierConfigManager;
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private ImsMmTelManager mImsMmTelManager;
-
-    private PreferenceScreen mScreen;
-    private PreferenceManager mPreferenceManager;
-
-    private MockWifiCallingQueryImsState mQueryImsState;
-
-    private TestWifiCallingPreferenceController mController;
-    private Preference mPreference;
-    private Context mContext;
-    private PersistableBundle mCarrierConfig;
-
-    @Before
-    @UiThreadTest
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
-
-        mQueryImsState = new MockWifiCallingQueryImsState(mContext, SUB_ID);
-        mQueryImsState.setIsEnabledByUser(true);
-        mQueryImsState.setIsProvisionedOnDevice(true);
-
-        mController = new TestWifiCallingPreferenceController(mContext, "wifi_calling");
-        mController.mCarrierConfigManager = mCarrierConfigManager;
-        mController.init(SUB_ID);
-        mController.mCallState = TelephonyManager.CALL_STATE_IDLE;
-        mCarrierConfig = new PersistableBundle();
-        when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
-        mPreferenceManager = new PreferenceManager(mContext);
-        mScreen = mPreferenceManager.createPreferenceScreen(mContext);
-        mPreference = new Preference(mContext);
-        mPreference.setKey(mController.getPreferenceKey());
-        mScreen.addPreference(mPreference);
-    }
-
-    @Test
-    @UiThreadTest
-    public void updateState_noSimCallManager_setCorrectSummary() {
-        mController.mSimCallManager = null;
-        mQueryImsState.setIsEnabledByUser(true);
-        when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
-                ImsMmTelManager.WIFI_MODE_WIFI_ONLY);
-        when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
-                ImsMmTelManager.WIFI_MODE_WIFI_ONLY);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.getSummary()).isEqualTo(
-                mContext.getString(com.android.internal.R.string.wfc_mode_wifi_only_summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void updateState_notCallIdle_disable() {
-        mController.mCallState = TelephonyManager.CALL_STATE_RINGING;
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    @UiThreadTest
-    public void updateState_invalidPhoneAccountHandle_shouldNotCrash() {
-        mController.mSimCallManager = new PhoneAccountHandle(null /* invalid */, "");
-
-        //Should not crash
-        mController.updateState(mPreference);
-    }
-
-    @Test
-    @UiThreadTest
-    public void updateState_wfcNonRoamingByConfig() {
-        assertNull(mController.mSimCallManager);
-        mCarrierConfig.putBoolean(
-                CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL, true);
-        mController.init(SUB_ID);
-
-        when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
-                ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
-        when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
-                ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
-        mQueryImsState.setIsEnabledByUser(true);
-        when(mTelephonyManager.isNetworkRoaming()).thenReturn(true);
-
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.wfc_mode_cellular_preferred_summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void updateState_wfcRoamingByConfig() {
-        assertNull(mController.mSimCallManager);
-        // useWfcHomeModeForRoaming is false by default. In order to check wfc in roaming mode. We
-        // need the device roaming, and not using home mode in roaming network.
-        when(mImsMmTelManager.getVoWiFiRoamingModeSetting()).thenReturn(
-                ImsMmTelManager.WIFI_MODE_WIFI_PREFERRED);
-        when(mImsMmTelManager.getVoWiFiModeSetting()).thenReturn(
-                ImsMmTelManager.WIFI_MODE_CELLULAR_PREFERRED);
-        mQueryImsState.setIsEnabledByUser(true);
-        when(mTelephonyManager.isNetworkRoaming()).thenReturn(true);
-
-        mController.updateState(mPreference);
-        assertThat(mPreference.getSummary())
-                .isEqualTo(mContext.getString(R.string.wfc_mode_wifi_preferred_summary));
-    }
-
-    @Test
-    @UiThreadTest
-    public void displayPreference_notAvailable_setPreferenceInvisible() {
-        mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
-
-        mController.displayPreference(mScreen);
-
-        assertThat(mController.getPreferenceKey()).isEqualTo("wifi_calling");
-        assertThat(mScreen.findPreference(mController.getPreferenceKey()).isVisible()).isFalse();
-    }
-
-    @Test
-    @Ignore
-    public void displayPreference_available_setsSubscriptionIdOnIntent() {
-        final Intent intent = new Intent();
-        mPreference.setIntent(intent);
-        mController.displayPreference(mScreen);
-        assertThat(intent.getIntExtra(Settings.EXTRA_SUB_ID,
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID)).isEqualTo(SUB_ID);
-    }
-
-    @Test
-    @UiThreadTest
-    public void getAvailabilityStatus_noWiFiCalling_shouldReturnUnsupported() {
-        mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.UNSUPPORTED_ON_DEVICE);
-    }
-
-    private class TestWifiCallingPreferenceController extends WifiCallingPreferenceController {
-        TestWifiCallingPreferenceController(Context context, String preferenceKey) {
-            super(context, preferenceKey);
-        }
-
-        @Override
-        protected ImsMmTelManager getImsMmTelManager(int subId) {
-            return mImsMmTelManager;
-        }
-
-        @Override
-        protected TelephonyManager getTelephonyManager(Context context, int subId) {
-            return mTelephonyManager;
-        }
-
-        @Override
-        protected WifiCallingQueryImsState queryImsState(int subId) {
-            return mQueryImsState;
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java
deleted file mode 100644
index 39f2050..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java
+++ /dev/null
@@ -1,186 +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.gsm;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.ProgressDialog;
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.Lifecycle;
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.network.CarrierConfigCache;
-import com.android.settings.testutils.ResourcesUtils;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
-
-@RunWith(AndroidJUnit4.class)
-public class AutoSelectPreferenceControllerTest {
-    private static final int SUB_ID = 2;
-    private static final String OPERATOR_NAME = "T-mobile";
-
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private CarrierConfigCache mCarrierConfigCache;
-    @Mock
-    private ProgressDialog mProgressDialog;
-    @Mock
-    private ServiceState mTestServiceState;
-    @Mock
-    private Lifecycle mLifecycle;
-
-    private PersistableBundle mCarrierConfig;
-    private AutoSelectPreferenceController mController;
-    private SwitchPreference mSwitchPreference;
-    private Context mContext;
-
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(ApplicationProvider.getApplicationContext());
-
-        when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
-        when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
-        CarrierConfigCache.setTestInstance(mContext, mCarrierConfigCache);
-        when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
-
-        mCarrierConfig = new PersistableBundle();
-        mCarrierConfig.putBoolean(CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL,
-            true);
-        when(mCarrierConfigCache.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
-        mSwitchPreference = new SwitchPreference(mContext);
-        mController = new AutoSelectPreferenceController(mContext, "auto_select");
-        mController.mProgressDialog = mProgressDialog;
-        mController.mSwitchPreference = mSwitchPreference;
-        mController.init(mLifecycle, SUB_ID);
-        sleepAfterInit();
-    }
-
-    private void sleepAfterInit() {
-        try {
-            Thread.sleep(2000);
-        } catch (Exception e) {
-            fail("Sleep timeout " + e);
-        }
-    }
-
-    @Test
-    public void setChecked_isChecked_showProgressDialog() {
-        when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
-            TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-
-        // Wait for asynchronous thread to finish, otherwise test will flake.
-        Future thread = mController.setAutomaticSelectionMode();
-        try {
-            thread.get();
-        } catch (ExecutionException | InterruptedException e) {
-            e.printStackTrace();
-            fail("Exception during automatic selection");
-        }
-
-        verify(mProgressDialog).show();
-        verify(mTelephonyManager).setNetworkSelectionModeAutomatic();
-    }
-
-    @Test
-    public void updateState_isRoaming_enabled() {
-        when(mTelephonyManager.getServiceState()).thenReturn(mTestServiceState);
-        when(mTestServiceState.getRoaming()).thenReturn(true);
-
-        mController.updateState(mSwitchPreference);
-
-        assertThat(mSwitchPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void updateState_notRoamingWithAutoSelectOn_disabled() {
-        when(mTelephonyManager.getServiceState()).thenReturn(mTestServiceState);
-        when(mTestServiceState.getRoaming()).thenReturn(false);
-        doReturn(OPERATOR_NAME).when(mTelephonyManager).getSimOperatorName();
-
-        mController.updateState(mSwitchPreference);
-
-        assertThat(mSwitchPreference.isEnabled()).isFalse();
-        assertThat(mSwitchPreference.getSummary()).isEqualTo(
-                ResourcesUtils.getResourcesString(mContext, "manual_mode_disallowed_summary",
-                mTelephonyManager.getSimOperatorName()));
-    }
-
-    @Test
-    public void init_carrierConfigNull_shouldNotCrash() {
-        when(mCarrierConfigCache.getConfigForSubId(SUB_ID)).thenReturn(null);
-
-        // Should not crash
-        mController.init(mLifecycle, SUB_ID);
-    }
-
-    @Test
-    public void updateUiAutoSelectValue_serviceStateGetIsManualSelection_isCheckedFalse() {
-        when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
-                TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-        when(mTestServiceState.getIsManualSelection()).thenReturn(true);
-        mController.init(mLifecycle, SUB_ID);
-        sleepAfterInit();
-
-        mController.updateUiAutoSelectValue(mTestServiceState);
-
-        assertThat(mController.isChecked()).isFalse();
-        assertThat(mSwitchPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void updateUiAutoSelectValue_serviceStateGetIsAutoSelection_isCheckedTrue() {
-        when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
-                TelephonyManager.NETWORK_SELECTION_MODE_MANUAL);
-        when(mTestServiceState.getIsManualSelection()).thenReturn(false);
-        mController.init(mLifecycle, SUB_ID);
-        sleepAfterInit();
-
-        mController.updateUiAutoSelectValue(mTestServiceState);
-
-        assertThat(mController.isChecked()).isTrue();
-        assertThat(mSwitchPreference.isChecked()).isTrue();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java
deleted file mode 100644
index b4d49b2..0000000
--- a/tests/unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java
+++ /dev/null
@@ -1,124 +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.gsm;
-
-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.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.Preference;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import com.android.settings.testutils.ResourcesUtils;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-
-import java.util.Arrays;
-
-@RunWith(AndroidJUnit4.class)
-public class OpenNetworkSelectPagePreferenceControllerTest {
-    private static final int SUB_ID = 2;
-    private static final String OPERATOR_NAME = "T-mobile";
-
-    @Mock
-    private TelephonyManager mTelephonyManager;
-    @Mock
-    private SubscriptionManager mSubscriptionManager;
-    @Mock
-    private CarrierConfigManager mCarrierConfigManager;
-    @Mock
-    private ServiceState mServiceState;
-    @Mock
-    private SubscriptionInfo mSubscriptionInfo;
-
-    private PersistableBundle mCarrierConfig;
-    private OpenNetworkSelectPagePreferenceController mController;
-    private Preference 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(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
-        when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
-                mCarrierConfigManager);
-        when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
-        when(mTelephonyManager.getServiceState()).thenReturn(mServiceState);
-
-        mCarrierConfig = new PersistableBundle();
-        when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
-        when(mSubscriptionInfo.getSubscriptionId()).thenReturn(SUB_ID);
-        when(mSubscriptionInfo.getCarrierName()).thenReturn(OPERATOR_NAME);
-
-        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
-                Arrays.asList(mSubscriptionInfo));
-
-        when(mTelephonyManager.getNetworkOperatorName()).thenReturn(OPERATOR_NAME);
-
-        mPreference = new Preference(mContext);
-        mController = new OpenNetworkSelectPagePreferenceController(mContext,
-                "open_network_select") {
-            @Override
-            public void updateState(Preference preference) {
-                super.updateState(mPreference);
-            }
-        };
-        mController.init(SUB_ID);
-    }
-
-    @Test
-    public void updateState_modeAuto_disabled() {
-        mController.onNetworkSelectModeUpdated(TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void getSummary_inService_returnOperatorName() {
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
-        assertThat(mController.getSummary()).isEqualTo(OPERATOR_NAME);
-    }
-
-    @Test
-    public void getSummary_notInService_returnDisconnect() {
-        when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-
-        assertThat(mController.getSummary()).isEqualTo(
-                ResourcesUtils.getResourcesString(mContext, "network_disconnected"));
-    }
-}
diff --git a/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.java b/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.java
new file mode 100644
index 0000000..f1da363
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/FaceFingerprintUnlockControllerTest.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.privatespace;
+
+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.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.FaceFingerprintUnlockController;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+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 FaceFingerprintUnlockControllerTest {
+    @Mock private Context mContext;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    @Mock Lifecycle mLifecycle;
+    @Mock LockPatternUtils mLockPatternUtils;
+
+    private Preference mPreference;
+    private FaceFingerprintUnlockController mFaceFingerprintUnlockController;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        final String preferenceKey = "private_space_biometrics";
+
+        mPreference = new Preference(ApplicationProvider.getApplicationContext());
+        mPreference.setKey(preferenceKey);
+
+        final FakeFeatureFactory featureFactory = FakeFeatureFactory.setupForTest();
+        when(featureFactory.securityFeatureProvider.getLockPatternUtils(mContext))
+                .thenReturn(mLockPatternUtils);
+
+        mFaceFingerprintUnlockController =
+                new FaceFingerprintUnlockController(mContext, mLifecycle);
+    }
+
+    /** Tests that the controller is always available. */
+    @Test
+    public void getAvailabilityStatus_whenFlagsEnabled_returnsAvailable() {
+        mSetFlagsRule.enableFlags(
+                android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE);
+
+        assertThat(mFaceFingerprintUnlockController.isAvailable()).isEqualTo(true);
+    }
+
+    /** Tests that the controller is not available when Biometrics flag is not enabled. */
+    @Test
+    public void getAvailabilityStatus_whenBiometricFlagDisabled_returnsFalse() {
+        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mSetFlagsRule.disableFlags(
+                android.multiuser.Flags.FLAG_ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE);
+
+        assertThat(mFaceFingerprintUnlockController.isAvailable()).isEqualTo(false);
+    }
+
+    /** Tests that the controller is not available when private feature flag is not enabled. */
+    @Test
+    public void getAvailabilityStatus_whenPrivateFlagDisabled_returnsFalse() {
+        mSetFlagsRule.disableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mSetFlagsRule.enableFlags(
+                android.multiuser.Flags.FLAG_ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE);
+
+        assertThat(mFaceFingerprintUnlockController.isAvailable()).isEqualTo(false);
+    }
+
+    /** 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(
+                android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE);
+
+        mFaceFingerprintUnlockController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isFalse();
+        assertThat(mPreference.getSummary().toString()).isEqualTo("Same as device screen lock");
+    }
+
+    /** Tests that preference is enabled and summary is not same as device lock. */
+    @Test
+    public void getSummary_whenSeparateProfileLock() {
+        doReturn(true).when(mLockPatternUtils).isSeparateProfileChallengeEnabled(anyInt());
+        mSetFlagsRule.enableFlags(
+                android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_ENABLE_BIOMETRICS_TO_UNLOCK_PRIVATE_SPACE);
+
+        mFaceFingerprintUnlockController.updateState(mPreference);
+        assertThat(mPreference.isEnabled()).isTrue();
+        assertThat(mPreference.getSummary().toString()).isNotEqualTo("Same as device screen lock");
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.java b/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.java
new file mode 100644
index 0000000..0abe314
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/HidePrivateSpaceControllerTest.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.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 HidePrivateSpaceControllerTest {
+    @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 = 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);
+    }
+
+    @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(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..4bb5d43
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceMaintainerTest.java
@@ -0,0 +1,290 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.PRIVATE_SPACE_AUTO_LOCK;
+
+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.android.settings.privatespace.PrivateSpaceMaintainer.PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.ActivityManager;
+import android.app.IActivityManager;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.os.Flags;
+import android.os.RemoteException;
+import android.platform.test.flag.junit.SetFlagsRule;
+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.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceMaintainerTest {
+    private static final String TAG = "PSMaintainerTest";
+    private Context mContext;
+    private ContentResolver mContentResolver;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        mContentResolver = mContext.getContentResolver();
+    }
+
+    @After
+    public void tearDown() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.deletePrivateSpace();
+    }
+
+    /** 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 hide
+     * PS Settings.
+     */
+    @Test
+    public void createPrivateSpace_psDoesNotExist_resetsHidePSSettings() {
+        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
+     * hide PS Settings.
+     */
+    @Test
+    public void createPrivateSpace_psExists_doesNotResetHidePSSettings() {
+        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);
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when PS exists and is running
+     * locks the private profile.
+     */
+    @Test
+    public void lockPrivateSpace_psExistsAndPrivateProfileRunning_locksCreatedPrivateSpace() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
+        assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isTrue();
+        assertThat(privateSpaceMaintainer.isPrivateSpaceLocked()).isFalse();
+        assertThat(privateSpaceMaintainer.lockPrivateSpace()).isTrue();
+        assertThat(privateSpaceMaintainer.isPrivateSpaceLocked()).isTrue();
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when PS exist and private
+     * profile not running returns false.
+     */
+    @Test
+    public void lockPrivateSpace_psExistsAndPrivateProfileNotRunning_returnsFalse() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isTrue();
+        assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isTrue();
+        IActivityManager am = ActivityManager.getService();
+        try {
+            am.stopProfile(privateSpaceMaintainer.getPrivateProfileHandle().getIdentifier());
+        } catch (RemoteException e) {
+            Assert.fail("Stop profile failed with exception " + e.getMessage());
+        }
+        assertThat(privateSpaceMaintainer.isPrivateProfileRunning()).isFalse();
+        assertThat(privateSpaceMaintainer.lockPrivateSpace()).isFalse();
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#lockPrivateSpace()} when no PS exists returns false.
+     */
+    @Test
+    public void lockPrivateSpace_psDoesNotExist_returnsFalse() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        assertThat(privateSpaceMaintainer.doesPrivateSpaceExist()).isFalse();
+        assertThat(privateSpaceMaintainer.lockPrivateSpace()).isFalse();
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when no PS exists sets
+     * USER_SETUP_COMPLETE setting.
+     */
+    @Test
+    public void createPrivateSpace_psDoesNotExist_setsUserSetupComplete() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(getSecureUserSetupComplete()).isEqualTo(1);
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when PS exists does not change
+     * USER_SETUP_COMPLETE setting.
+     */
+    @Test
+    public void createPrivateSpace_pSExists_doesNotChangeUserSetupSetting() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(getSecureUserSetupComplete()).isEqualTo(1);
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(getSecureUserSetupComplete()).isEqualTo(1);
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when no PS exists resets PS
+     * auto lock Settings.
+     */
+    @Test
+    public void createPrivateSpace_psDoesNotExist_resetsPSAutoLockSettings() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+        final int autoLockOption = 2;
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        Settings.Secure.putInt(
+                mContentResolver, Settings.Secure.PRIVATE_SPACE_AUTO_LOCK, autoLockOption);
+
+        privateSpaceMaintainer.deletePrivateSpace();
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(privateSpaceMaintainer.getPrivateSpaceAutoLockSetting())
+                .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);
+        assertThat(Settings.Secure.getInt(mContentResolver, PRIVATE_SPACE_AUTO_LOCK, -1))
+                .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);
+    }
+
+    /**
+     * Tests that {@link PrivateSpaceMaintainer#createPrivateSpace()} when PS exist does not reset
+     * PS auto lock setting.
+     */
+    @Test
+    public void createPrivateSpace_psExists_doesNotResetPSAutoLockSettings() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+        final int privateSpaceAutLockValue = 1;
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        privateSpaceMaintainer.createPrivateSpace();
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK,
+                privateSpaceAutLockValue);
+
+        privateSpaceMaintainer.createPrivateSpace();
+        assertThat(privateSpaceMaintainer.getPrivateSpaceAutoLockSetting())
+                .isEqualTo(privateSpaceAutLockValue);
+    }
+
+    private int getSecureUserSetupComplete() {
+        PrivateSpaceMaintainer privateSpaceMaintainer =
+                PrivateSpaceMaintainer.getInstance(mContext);
+        return Settings.Secure.getIntForUser(
+                mContentResolver,
+                Settings.Secure.USER_SETUP_COMPLETE,
+                0,
+                privateSpaceMaintainer.getPrivateProfileHandle().getIdentifier());
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.java b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.java
new file mode 100644
index 0000000..cf9ea05
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/PrivateSpaceSafetySourceTest.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.privatespace;
+
+
+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;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.safetycenter.SafetyEvent;
+import android.safetycenter.SafetySourceData;
+import android.safetycenter.SafetySourceStatus;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.safetycenter.SafetyCenterManagerWrapper;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceSafetySourceTest {
+    private static final SafetyEvent EVENT_TYPE_DEVICE_REBOOTED =
+            new SafetyEvent.Builder(SAFETY_EVENT_TYPE_DEVICE_REBOOTED).build();
+    private Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        SafetyCenterManagerWrapper.sInstance = mSafetyCenterManagerWrapper;
+    }
+
+    /** Required setup after a test. */
+    @After
+    public void tearDown() {
+        SafetyCenterManagerWrapper.sInstance = null;
+    }
+
+    /** Tests that when SC is disabled we don't set any data. */
+    @Test
+    public void onDeviceRebootedEvent_whenSafetyCenterDisabled_doesNotSetData() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mContext)).thenReturn(false);
+
+        PrivateSpaceSafetySource.setSafetySourceData(mContext, EVENT_TYPE_DEVICE_REBOOTED);
+
+        verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData(
+                any(), any(), any(), any());
+    }
+
+    /** Tests that when SC is enabled we set data. */
+    @Test
+    public void onDeviceRebootedEvent_whenSafetyCenterEnabled_setsData() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mContext)).thenReturn(true);
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        PrivateSpaceSafetySource.setSafetySourceData(mContext, EVENT_TYPE_DEVICE_REBOOTED);
+
+        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
+                any(), eq(SAFETY_SOURCE_ID), any(), eq(EVENT_TYPE_DEVICE_REBOOTED));
+    }
+
+    /** Tests that when the feature is disabled null data is set. */
+    @Test
+    public void setSafetySourceData_whenFeatureDisabled_setsNullData() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mContext)).thenReturn(true);
+        mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        PrivateSpaceSafetySource.setSafetySourceData(mContext, EVENT_TYPE_DEVICE_REBOOTED);
+
+        ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
+        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
+                any(), eq(SAFETY_SOURCE_ID), captor.capture(), eq(EVENT_TYPE_DEVICE_REBOOTED));
+        SafetySourceData safetySourceData = captor.getValue();
+        assertThat(safetySourceData).isNull();
+    }
+
+    /** Tests that setSafetySourceData sets the source status enabled. */
+    @Test
+    public void setSafetySourceData_setsEnabled() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mContext)).thenReturn(true);
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        PrivateSpaceSafetySource.setSafetySourceData(mContext, EVENT_TYPE_DEVICE_REBOOTED);
+
+        ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
+        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
+                any(), eq(SAFETY_SOURCE_ID), captor.capture(), eq(EVENT_TYPE_DEVICE_REBOOTED));
+        SafetySourceData safetySourceData = captor.getValue();
+        SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
+        assertThat(safetySourceStatus.isEnabled()).isTrue();
+    }
+
+    /** Tests that setSafetySourceData sets the PS settings page authenticator intent. */
+    @Test
+    public void setSafetySourceData_setsPsAuthenticatorIntent() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mContext)).thenReturn(true);
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        PrivateSpaceSafetySource.setSafetySourceData(mContext, EVENT_TYPE_DEVICE_REBOOTED);
+
+        ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
+        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
+                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
new file mode 100644
index 0000000..744a8ec
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/UseOneLockControllerTest.java
@@ -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.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 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/privatespace/autolock/AutoLockPreferenceControllerTest.java b/tests/unit/src/com/android/settings/privatespace/autolock/AutoLockPreferenceControllerTest.java
new file mode 100644
index 0000000..01381d8
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/autolock/AutoLockPreferenceControllerTest.java
@@ -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.privatespace.autolock;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL;
+
+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.flag.junit.SetFlagsRule;
+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)
+public class AutoLockPreferenceControllerTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private static final String KEY = "private_space_auto_lock";
+    private Context mContext;
+    private AutoLockPreferenceController mAutoLockPreferenceController;
+    private ContentResolver mContentResolver;
+    @Settings.Secure.PrivateSpaceAutoLockOption private int mOriginalAutoLockValue;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mContentResolver = mContext.getContentResolver();
+        mAutoLockPreferenceController = new AutoLockPreferenceController(mContext, KEY);
+        mOriginalAutoLockValue =
+                Settings.Secure.getInt(
+                        mContentResolver,
+                        Settings.Secure.PRIVATE_SPACE_AUTO_LOCK,
+                        PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);
+    }
+
+    @After
+    public void tearDown() {
+        Settings.Secure.putInt(
+                mContentResolver, Settings.Secure.PRIVATE_SPACE_AUTO_LOCK, mOriginalAutoLockValue);
+    }
+
+    /**
+     * Tests that the controller is available when both allow private profile and auto lock support
+     * flags are enabled.
+     */
+    @Test
+    public void getAvailabilityStatus_withAutoLockFlagEnabled_returnsAvailable() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        assertThat(mAutoLockPreferenceController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    /** Tests that the controller is not available when auto lock flag is off. */
+    @Test
+    public void getAvailabilityStatus_withAutoLockFlagDisabled_returnsNull() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mSetFlagsRule.disableFlags(android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        assertThat(mAutoLockPreferenceController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+
+    /**
+     * Tests that auto lock preference displays the correct summary for option - every time device
+     * locks.
+     */
+    @Test
+    public void getSummary_whenOptionEveryTimeDeviceLocks_returnsEveryTimeDeviceLocks() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_ON_DEVICE_LOCK);
+        assertThat(mAutoLockPreferenceController.getSummary().toString())
+                .isEqualTo("Every time device locks");
+    }
+
+    /**
+     * Tests that auto lock preference displays the correct summary for option - lock after 5
+     * minutes of inactivity.
+     */
+    @Test
+    public void getSummary_whenOptionAfter5MinutesOfInactivity_returnsAfter5MinutesOfInactivity() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY);
+        assertThat(mAutoLockPreferenceController.getSummary().toString())
+                .isEqualTo("After 5 minutes of inactivity");
+    }
+
+    /** Tests that auto lock preference displays the correct summary for option - Never. */
+    @Test
+    public void getSummary_whenOptionNever_returnsNever() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        Settings.Secure.putInt(
+                mContentResolver,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK,
+                Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_NEVER);
+        assertThat(mAutoLockPreferenceController.getSummary().toString()).isEqualTo("Never");
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/autolock/AutoLockSettingsFragmentTest.java b/tests/unit/src/com/android/settings/privatespace/autolock/AutoLockSettingsFragmentTest.java
new file mode 100644
index 0000000..971ca40
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/autolock/AutoLockSettingsFragmentTest.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace.autolock;
+
+import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK;
+import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY;
+import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_NEVER;
+import static android.provider.Settings.Secure.PRIVATE_SPACE_AUTO_LOCK_ON_DEVICE_LOCK;
+
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.settings.SettingsEnums;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+import android.provider.Settings;
+
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settingslib.widget.CandidateInfo;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class AutoLockSettingsFragmentTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private AutoLockSettingsFragment mFragment;
+    private Context mContext;
+    private Resources mResources;
+    private ContentResolver mContentResolver;
+    @Settings.Secure.PrivateSpaceAutoLockOption private int mOriginalAutoLockValue;
+
+    @Before
+    @UiThreadTest
+    public void setup() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mFragment = spy(new AutoLockSettingsFragment());
+        mContentResolver = mContext.getContentResolver();
+        mResources = spy(mContext.getResources());
+        mOriginalAutoLockValue =
+                Settings.Secure.getInt(
+                        mContentResolver,
+                        Settings.Secure.PRIVATE_SPACE_AUTO_LOCK,
+                        PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);
+        when(mResources.getStringArray(
+                        com.android.settings.R.array.private_space_auto_lock_options))
+                .thenReturn(
+                        new String[] {
+                            "Every time device locks", "After 5 minutes of inactivity", "Never"
+                        });
+        when(mResources.getStringArray(
+                        com.android.settings.R.array.private_space_auto_lock_options_values))
+                .thenReturn(new String[] {"0", "1", "2"});
+        doReturn(mResources).when(mContext).getResources();
+    }
+
+    @After
+    public void tearDown() {
+        Settings.Secure.putInt(
+                mContentResolver, Settings.Secure.PRIVATE_SPACE_AUTO_LOCK, mOriginalAutoLockValue);
+    }
+
+    @Test
+    public void verifyMetricsConstant() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(SettingsEnums.PRIVATE_SPACE_SETTINGS);
+    }
+
+    @Test
+    @UiThreadTest
+    public void getCandidates_returnsCandidateInfoListWithAllKeys() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+        mFragment.onAttach(mContext);
+
+        final List<? extends CandidateInfo> candidates = mFragment.getCandidates();
+
+        assertThat(candidates.size()).isEqualTo(3);
+
+        assertThat(candidates.get(0).getKey()).isEqualTo("0");
+        assertThat(candidates.get(1).getKey()).isEqualTo("1");
+        assertThat(candidates.get(2).getKey()).isEqualTo("2");
+    }
+
+    @Test
+    @UiThreadTest
+    public void getDefaultKey_returnsStoredAutoLockOptionsValue() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        mFragment.onAttach(mContext);
+
+        Settings.Secure.putInt(
+                mContentResolver, PRIVATE_SPACE_AUTO_LOCK, PRIVATE_SPACE_AUTO_LOCK_NEVER);
+        assertThat(mFragment.getDefaultKey()).isEqualTo("2");
+
+        Settings.Secure.putInt(
+                mContentResolver, PRIVATE_SPACE_AUTO_LOCK, PRIVATE_SPACE_AUTO_LOCK_ON_DEVICE_LOCK);
+        assertThat(mFragment.getDefaultKey()).isEqualTo("0");
+
+        Settings.Secure.putInt(
+                mContentResolver,
+                PRIVATE_SPACE_AUTO_LOCK,
+                PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY);
+        assertThat(mFragment.getDefaultKey()).isEqualTo("1");
+    }
+
+    @Test
+    @UiThreadTest
+    public void setDefaultKey_storesCorrectAutoLockOptionValue() {
+        mSetFlagsRule.enableFlags(
+                Flags.FLAG_ALLOW_PRIVATE_PROFILE,
+                android.multiuser.Flags.FLAG_SUPPORT_AUTOLOCK_FOR_PRIVATE_SPACE);
+
+        mFragment.onAttach(mContext);
+        mFragment.setDefaultKey("2");
+        assertThat(Settings.Secure.getInt(mContentResolver, PRIVATE_SPACE_AUTO_LOCK, -1))
+                .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_NEVER);
+
+        mFragment.setDefaultKey("1");
+        assertThat(Settings.Secure.getInt(mContentResolver, PRIVATE_SPACE_AUTO_LOCK, -1))
+                .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_AFTER_INACTIVITY);
+
+        mFragment.setDefaultKey("0");
+        assertThat(Settings.Secure.getInt(mContentResolver, PRIVATE_SPACE_AUTO_LOCK, -1))
+                .isEqualTo(PRIVATE_SPACE_AUTO_LOCK_ON_DEVICE_LOCK);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/delete/DeletePrivateSpaceControllerTest.java b/tests/unit/src/com/android/settings/privatespace/delete/DeletePrivateSpaceControllerTest.java
new file mode 100644
index 0000000..371ca24
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/delete/DeletePrivateSpaceControllerTest.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace.delete;
+
+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 android.content.Context;
+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 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 DeletePrivateSpaceControllerTest {
+    @Mock private Context mContext;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private Preference mPreference;
+    private DeletePrivateSpaceController mDeletePrivateSpaceController;
+
+    /** Required setup before a test. */
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        final String preferenceKey = "private_space_delete";
+
+        mPreference = new Preference(ApplicationProvider.getApplicationContext());
+        mPreference.setKey(preferenceKey);
+
+        mDeletePrivateSpaceController = new DeletePrivateSpaceController(mContext, preferenceKey);
+    }
+
+    /** Tests that the controller is available when private space flag is enabled. */
+    @Test
+    public void getAvailabilityStatus_whenPrivateFlagEnabled_returnsAvailable() {
+        mSetFlagsRule.enableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        assertThat(mDeletePrivateSpaceController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    /** Tests that the controller is not available when private space flag is disabled. */
+    @Test
+    public void getAvailabilityStatus_whenPrivateFlagDisabled_returnsUnsupportedOnDevice() {
+        mSetFlagsRule.disableFlags(android.os.Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        assertThat(mDeletePrivateSpaceController.getAvailabilityStatus())
+                .isEqualTo(UNSUPPORTED_ON_DEVICE);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteFragmentTest.java b/tests/unit/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteFragmentTest.java
new file mode 100644
index 0000000..16ccbc4
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/delete/PrivateSpaceDeleteFragmentTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace.delete;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.app.settings.SettingsEnums;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceDeleteFragmentTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private PrivateSpaceDeleteFragment mFragment;
+
+    @Test
+    @UiThreadTest
+    public void verifyMetricsConstant() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        mFragment = spy(new PrivateSpaceDeleteFragment());
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(SettingsEnums.PRIVATE_SPACE_SETTINGS);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/privatespace/delete/PrivateSpaceDeletionProgressFragmentTest.java b/tests/unit/src/com/android/settings/privatespace/delete/PrivateSpaceDeletionProgressFragmentTest.java
new file mode 100644
index 0000000..5c2ef23
--- /dev/null
+++ b/tests/unit/src/com/android/settings/privatespace/delete/PrivateSpaceDeletionProgressFragmentTest.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.privatespace.delete;
+
+import static com.android.settings.privatespace.PrivateSpaceMaintainer.ErrorDeletingPrivateSpace.DELETE_PS_ERROR_INTERNAL;
+
+import static com.google.common.truth.Truth.assertThat;
+
+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 android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.privatespace.PrivateSpaceMaintainer;
+
+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;
+
+@RunWith(AndroidJUnit4.class)
+public class PrivateSpaceDeletionProgressFragmentTest {
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private Context mContext;
+    private PrivateSpaceDeletionProgressFragment mFragment;
+    private PrivateSpaceMaintainer mPrivateSpaceMaintainer;
+    @Mock private PrivateSpaceMaintainer mPrivateSpaceMaintainerMock;
+
+    @UiThreadTest
+    @Before
+    public void setup() {
+        MockitoAnnotations.initMocks(this);
+        mContext = ApplicationProvider.getApplicationContext();
+        mFragment = new PrivateSpaceDeletionProgressFragment();
+        PrivateSpaceDeletionProgressFragment.Injector injector =
+                new PrivateSpaceDeletionProgressFragment.Injector() {
+                    @Override
+                    public PrivateSpaceMaintainer injectPrivateSpaceMaintainer(Context context) {
+                        return mPrivateSpaceMaintainer;
+                    }
+                };
+        mPrivateSpaceMaintainer = PrivateSpaceMaintainer.getInstance(mContext);
+        mFragment.setPrivateSpaceMaintainer(injector);
+    }
+
+    @After
+    public void tearDown() {
+        mPrivateSpaceMaintainer.deletePrivateSpace();
+    }
+
+    @Test
+    @UiThreadTest
+    public void verifyMetricsConstant() {
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+        assertThat(mFragment.getMetricsCategory()).isEqualTo(SettingsEnums.PRIVATE_SPACE_SETTINGS);
+    }
+
+    /** Tests that deletePrivateSpace() deletes the private space. */
+    @Test
+    @UiThreadTest
+    public void deletePrivateSpace_deletesPS() {
+        PrivateSpaceDeletionProgressFragment spyFragment = spy(mFragment);
+        doNothing().when(spyFragment).showSuccessfulDeletionToast();
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mPrivateSpaceMaintainer.createPrivateSpace();
+        spyFragment.deletePrivateSpace();
+        assertThat(mPrivateSpaceMaintainer.doesPrivateSpaceExist()).isFalse();
+    }
+
+    /** Tests that on deletion of the private space relevant toast is shown. */
+    @Test
+    @UiThreadTest
+    public void deletePrivateSpace_onDeletion_showsDeletedToast() {
+        PrivateSpaceDeletionProgressFragment spyFragment = spy(mFragment);
+        doNothing().when(spyFragment).showSuccessfulDeletionToast();
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        mPrivateSpaceMaintainer.createPrivateSpace();
+        spyFragment.deletePrivateSpace();
+        verify(spyFragment).showSuccessfulDeletionToast();
+    }
+
+    /** Tests that on failing to delete the private space relevant toast is shown. */
+    @Test
+    @UiThreadTest
+    public void deletePrivateSpace_onDeletionError_showsDeletionFailedToast() {
+        PrivateSpaceDeletionProgressFragment spyFragment =
+                spy(new PrivateSpaceDeletionProgressFragment());
+        PrivateSpaceDeletionProgressFragment.Injector injector =
+                new PrivateSpaceDeletionProgressFragment.Injector() {
+                    @Override
+                    PrivateSpaceMaintainer injectPrivateSpaceMaintainer(Context context) {
+                        return mPrivateSpaceMaintainerMock;
+                    }
+                };
+        spyFragment.setPrivateSpaceMaintainer(injector);
+        doReturn(DELETE_PS_ERROR_INTERNAL).when(mPrivateSpaceMaintainerMock).deletePrivateSpace();
+        doNothing().when(spyFragment).showDeletionInternalErrorToast();
+        mSetFlagsRule.enableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        spyFragment.deletePrivateSpace();
+
+        verify(spyFragment).showDeletionInternalErrorToast();
+    }
+}
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
index 0a67824..50e21fe 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,9 @@
         }
 
         assertTrue(isCallingStartActivity);
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                mApplicationContext,
+                SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES);
     }
 
     @Test
@@ -114,6 +120,8 @@
         mController.handlePreferenceTreeClick(preference);
 
         verify(mFragment).setArguments(any());
+        verify(mFeatureFactory.metricsFeatureProvider).action(
+                mApplicationContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES);
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java
index 01c2143..f6356bc 100644
--- a/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/BiometricsSafetySourceTest.java
@@ -67,24 +67,18 @@
 @RunWith(AndroidJUnit4.class)
 public class BiometricsSafetySourceTest {
 
-    private static final ComponentName COMPONENT_NAME =
-            new ComponentName("package", "class");
+    private static final ComponentName COMPONENT_NAME = new ComponentName("package", "class");
     private static final UserHandle USER_HANDLE = new UserHandle(UserHandle.myUserId());
     private static final SafetyEvent EVENT_SOURCE_STATE_CHANGED =
             new SafetyEvent.Builder(SAFETY_EVENT_TYPE_SOURCE_STATE_CHANGED).build();
 
     private Context mApplicationContext;
 
-    @Mock
-    private PackageManager mPackageManager;
-    @Mock
-    private DevicePolicyManager mDevicePolicyManager;
-    @Mock
-    private FingerprintManager mFingerprintManager;
-    @Mock
-    private FaceManager mFaceManager;
-    @Mock
-    private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
+    @Mock private PackageManager mPackageManager;
+    @Mock private DevicePolicyManager mDevicePolicyManager;
+    @Mock private FingerprintManager mFingerprintManager;
+    @Mock private FaceManager mFaceManager;
+    @Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
 
     @Before
     public void setUp() {
@@ -119,15 +113,16 @@
     }
 
     @Test
-    public void setSafetySourceData_whenSafetyCenterIsEnabled_withoutBiometrics_doesNotSetData() {
+    public void setSafetySourceData_whenSafetyCenterIsEnabled_withoutBiometrics_setsNullData() {
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(false);
         when(mFingerprintManager.isHardwareDetected()).thenReturn(false);
         when(mFaceManager.isHardwareDetected()).thenReturn(false);
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
-        verify(mSafetyCenterManagerWrapper, never())
-                .setSafetySourceData(any(), any(), any(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), eq(null), any());
     }
 
     @Test
@@ -140,8 +135,9 @@
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), any(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), any(), any());
     }
 
     @Test
@@ -225,7 +221,8 @@
 
         assertSafetySourceEnabledDataSetWithPluralSummary(
                 "security_settings_fingerprint_preference_title",
-                "security_settings_fingerprint_preference_summary", enrolledFingerprintsCount,
+                "security_settings_fingerprint_preference_summary",
+                enrolledFingerprintsCount,
                 FingerprintSettings.class.getName());
     }
 
@@ -346,8 +343,9 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mDevicePolicyManager.getKeyguardDisabledFeatures(COMPONENT_NAME))
-                .thenReturn(DevicePolicyManager.KEYGUARD_DISABLE_FACE
-                        | DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
+                .thenReturn(
+                        DevicePolicyManager.KEYGUARD_DISABLE_FACE
+                                | DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT);
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
@@ -363,8 +361,8 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
-        when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
-                createFingerprintList(enrolledFingerprintsCount));
+        when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
+                .thenReturn(createFingerprintList(enrolledFingerprintsCount));
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
@@ -381,8 +379,8 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
-        when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
-                createFingerprintList(enrolledFingerprintsCount));
+        when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
+                .thenReturn(createFingerprintList(enrolledFingerprintsCount));
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
@@ -398,8 +396,8 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
-        when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
-                Collections.emptyList());
+        when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
+                .thenReturn(Collections.emptyList());
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
@@ -415,8 +413,8 @@
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(false);
-        when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
-                createFingerprintList(enrolledFingerprintsCount));
+        when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
+                .thenReturn(createFingerprintList(enrolledFingerprintsCount));
 
         ActiveUnlockTestUtils.enable(mApplicationContext);
 
@@ -452,8 +450,8 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
-        when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
-                createFingerprintList(enrolledFingerprintsCount));
+        when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
+                .thenReturn(createFingerprintList(enrolledFingerprintsCount));
         ActiveUnlockTestUtils.enable(mApplicationContext);
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
@@ -462,7 +460,6 @@
                 "security_settings_biometric_preference_title",
                 "security_settings_biometric_preference_summary_both_fp_single",
                 Settings.CombinedBiometricSettingsActivity.class.getName());
-
     }
 
     @Test
@@ -472,14 +469,15 @@
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
-        when(mFingerprintManager.getEnrolledFingerprints(anyInt())).thenReturn(
-                createFingerprintList(enrolledFingerprintsCount));
+        when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
+                .thenReturn(createFingerprintList(enrolledFingerprintsCount));
 
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         assertSafetySourceEnabledDataSetWithPluralSummary(
                 "security_settings_biometric_preference_title",
-                "security_settings_fingerprint_preference_summary", enrolledFingerprintsCount,
+                "security_settings_fingerprint_preference_summary",
+                enrolledFingerprintsCount,
                 Settings.CombinedBiometricSettingsActivity.class.getName());
     }
 
@@ -494,8 +492,12 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_INFORMATION);
@@ -512,8 +514,12 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_INFORMATION);
@@ -530,8 +536,12 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED);
@@ -547,8 +557,12 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_INFORMATION);
@@ -564,8 +578,12 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED);
@@ -581,8 +599,12 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_INFORMATION);
@@ -598,61 +620,74 @@
         BiometricsSafetySource.setSafetySourceData(mApplicationContext, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceStatus safetySourceStatus = captor.getValue().getStatus();
         assertThat(safetySourceStatus.getSeverityLevel())
                 .isEqualTo(SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED);
     }
 
-    private void assertSafetySourceDisabledDataSetWithSingularSummary(String expectedTitleResName,
-            String expectedSummaryResName) {
+    private void assertSafetySourceDisabledDataSetWithSingularSummary(
+            String expectedTitleResName, String expectedSummaryResName) {
         assertSafetySourceDisabledDataSet(
                 ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
-                ResourcesUtils.getResourcesString(mApplicationContext, expectedSummaryResName)
-        );
+                ResourcesUtils.getResourcesString(mApplicationContext, expectedSummaryResName));
     }
 
-    private void assertSafetySourceEnabledDataSetWithSingularSummary(String expectedTitleResName,
+    private void assertSafetySourceEnabledDataSetWithSingularSummary(
+            String expectedTitleResName,
             String expectedSummaryResName,
             String expectedSettingsClassName) {
         assertSafetySourceEnabledDataSet(
                 ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
                 ResourcesUtils.getResourcesString(mApplicationContext, expectedSummaryResName),
-                expectedSettingsClassName
-        );
+                expectedSettingsClassName);
     }
 
-    private void assertSafetySourceDisabledDataSetWithPluralSummary(String expectedTitleResName,
-            String expectedSummaryResName, int expectedSummaryQuantity) {
-        final int stringResId = ResourcesUtils.getResourcesId(
-                ApplicationProvider.getApplicationContext(), "string",
-                expectedSummaryResName);
+    private void assertSafetySourceDisabledDataSetWithPluralSummary(
+            String expectedTitleResName,
+            String expectedSummaryResName,
+            int expectedSummaryQuantity) {
+        final int stringResId =
+                ResourcesUtils.getResourcesId(
+                        ApplicationProvider.getApplicationContext(),
+                        "string",
+                        expectedSummaryResName);
         assertSafetySourceDisabledDataSet(
                 ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
-                StringUtil.getIcuPluralsString(mApplicationContext,
-                        expectedSummaryQuantity, stringResId)
-        );
+                StringUtil.getIcuPluralsString(
+                        mApplicationContext, expectedSummaryQuantity, stringResId));
     }
 
-    private void assertSafetySourceEnabledDataSetWithPluralSummary(String expectedTitleResName,
-            String expectedSummaryResName, int expectedSummaryQuantity,
+    private void assertSafetySourceEnabledDataSetWithPluralSummary(
+            String expectedTitleResName,
+            String expectedSummaryResName,
+            int expectedSummaryQuantity,
             String expectedSettingsClassName) {
-        final int stringResId = ResourcesUtils.getResourcesId(
-                ApplicationProvider.getApplicationContext(), "string",
-                expectedSummaryResName);
+        final int stringResId =
+                ResourcesUtils.getResourcesId(
+                        ApplicationProvider.getApplicationContext(),
+                        "string",
+                        expectedSummaryResName);
         assertSafetySourceEnabledDataSet(
                 ResourcesUtils.getResourcesString(mApplicationContext, expectedTitleResName),
-                StringUtil.getIcuPluralsString(mApplicationContext,
-                        expectedSummaryQuantity, stringResId),
-                expectedSettingsClassName
-        );
+                StringUtil.getIcuPluralsString(
+                        mApplicationContext, expectedSummaryQuantity, stringResId),
+                expectedSettingsClassName);
     }
 
     private void assertSafetySourceDisabledDataSet(String expectedTitle, String expectedSummary) {
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -667,11 +702,15 @@
         assertThat(clickIntent.getAction()).isEqualTo(ACTION_SHOW_ADMIN_SUPPORT_DETAILS);
     }
 
-    private void assertSafetySourceEnabledDataSet(String expectedTitle, String expectedSummary,
-            String expectedSettingsClassName) {
+    private void assertSafetySourceEnabledDataSet(
+            String expectedTitle, String expectedSummary, String expectedSettingsClassName) {
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(BiometricsSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -680,10 +719,8 @@
         assertThat(safetySourceStatus.isEnabled()).isTrue();
         final Intent clickIntent = safetySourceStatus.getPendingIntent().getIntent();
         assertThat(clickIntent).isNotNull();
-        assertThat(clickIntent.getComponent().getPackageName())
-                .isEqualTo("com.android.settings");
-        assertThat(clickIntent.getComponent().getClassName())
-                .isEqualTo(expectedSettingsClassName);
+        assertThat(clickIntent.getComponent().getPackageName()).isEqualTo("com.android.settings");
+        assertThat(clickIntent.getComponent().getClassName()).isEqualTo(expectedSettingsClassName);
     }
 
     private List<Fingerprint> createFingerprintList(int size) {
diff --git a/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java
index 9dc39da..3538727 100644
--- a/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/LockScreenSafetySourceTest.java
@@ -64,14 +64,11 @@
 
     private Context mApplicationContext;
 
-    @Mock
-    private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
+    @Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
 
-    @Mock
-    private ScreenLockPreferenceDetailsUtils mScreenLockPreferenceDetailsUtils;
+    @Mock private ScreenLockPreferenceDetailsUtils mScreenLockPreferenceDetailsUtils;
 
-    @Mock
-    private LockPatternUtils mLockPatternUtils;
+    @Mock private LockPatternUtils mLockPatternUtils;
 
     @Before
     public void setUp() {
@@ -94,23 +91,24 @@
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(false);
         when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
-        verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData(
-                any(), any(), any(), any());
+        verify(mSafetyCenterManagerWrapper, never())
+                .setSafetySourceData(any(), any(), any(), any());
     }
 
     @Test
-    public void setSafetySourceData_whenScreenLockIsDisabled_doesNotSetData() {
+    public void setSafetySourceData_whenScreenLockIsDisabled_setsNullData() {
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
         when(mScreenLockPreferenceDetailsUtils.isAvailable()).thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
-        verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData(
-                any(), any(), any(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), eq(null), any());
     }
 
     @Test
@@ -118,11 +116,12 @@
         whenScreenLockIsEnabled();
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), any(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), any(), any());
     }
 
     @Test
@@ -130,11 +129,11 @@
         whenScreenLockIsEnabled();
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), any(), any(), eq(EVENT_SOURCE_STATE_CHANGED));
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(any(), any(), any(), eq(EVENT_SOURCE_STATE_CHANGED));
     }
 
     @Test
@@ -142,26 +141,28 @@
         whenScreenLockIsEnabled();
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), any(), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(any(), any(), captor.capture(), any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
         assertThat(safetySourceStatus.getTitle().toString())
-                .isEqualTo(ResourcesUtils.getResourcesString(
-                        mApplicationContext,
-                        "unlock_set_unlock_launch_picker_title"));
-        assertThat(safetySourceStatus.getSummary().toString())
-                .isEqualTo(SUMMARY);
+                .isEqualTo(
+                        ResourcesUtils.getResourcesString(
+                                mApplicationContext, "unlock_set_unlock_launch_picker_title"));
+        assertThat(safetySourceStatus.getSummary().toString()).isEqualTo(SUMMARY);
         assertThat(safetySourceStatus.getPendingIntent().getIntent()).isNotNull();
         assertThat(safetySourceStatus.getPendingIntent().getIntent().getAction())
                 .isEqualTo(FAKE_ACTION_OPEN_SUB_SETTING);
         assertThat(
-                safetySourceStatus.getPendingIntent().getIntent().getStringExtra(EXTRA_DESTINATION))
+                        safetySourceStatus
+                                .getPendingIntent()
+                                .getIntent()
+                                .getStringExtra(EXTRA_DESTINATION))
                 .isEqualTo(FAKE_CHOOSE_LOCK_GENERIC_FRAGMENT);
     }
 
@@ -173,12 +174,16 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -194,12 +199,16 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -215,12 +224,16 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -236,12 +249,16 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -257,12 +274,12 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), any(), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(any(), any(), captor.capture(), any());
         SafetySourceData safetySourceData = captor.getValue();
 
         assertThat(safetySourceData.getIssues()).isEmpty();
@@ -276,34 +293,41 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
 
         assertThat(safetySourceData.getIssues()).hasSize(1);
         SafetySourceIssue issue = safetySourceData.getIssues().get(0);
         assertThat(issue.getId()).isEqualTo(LockScreenSafetySource.NO_SCREEN_LOCK_ISSUE_ID);
-        assertThat(issue.getTitle().toString()).isEqualTo(
-                ResourcesUtils.getResourcesString(mApplicationContext,
-                        "no_screen_lock_issue_title"));
-        assertThat(issue.getSummary().toString()).isEqualTo(
-                ResourcesUtils.getResourcesString(mApplicationContext,
-                        "no_screen_lock_issue_summary"));
-        assertThat(issue.getSeverityLevel()).isEqualTo(
-                SafetySourceData.SEVERITY_LEVEL_RECOMMENDATION);
-        assertThat(issue.getIssueTypeId()).isEqualTo(
-                LockScreenSafetySource.NO_SCREEN_LOCK_ISSUE_TYPE_ID);
+        assertThat(issue.getTitle().toString())
+                .isEqualTo(
+                        ResourcesUtils.getResourcesString(
+                                mApplicationContext, "no_screen_lock_issue_title"));
+        assertThat(issue.getSummary().toString())
+                .isEqualTo(
+                        ResourcesUtils.getResourcesString(
+                                mApplicationContext, "no_screen_lock_issue_summary"));
+        assertThat(issue.getSeverityLevel())
+                .isEqualTo(SafetySourceData.SEVERITY_LEVEL_RECOMMENDATION);
+        assertThat(issue.getIssueTypeId())
+                .isEqualTo(LockScreenSafetySource.NO_SCREEN_LOCK_ISSUE_TYPE_ID);
         assertThat(issue.getIssueCategory()).isEqualTo(SafetySourceIssue.ISSUE_CATEGORY_DEVICE);
         assertThat(issue.getActions()).hasSize(1);
         SafetySourceIssue.Action action = issue.getActions().get(0);
         assertThat(action.getId()).isEqualTo(LockScreenSafetySource.SET_SCREEN_LOCK_ACTION_ID);
-        assertThat(action.getLabel().toString()).isEqualTo(
-                ResourcesUtils.getResourcesString(mApplicationContext,
-                        "no_screen_lock_issue_action_label"));
+        assertThat(action.getLabel().toString())
+                .isEqualTo(
+                        ResourcesUtils.getResourcesString(
+                                mApplicationContext, "no_screen_lock_issue_action_label"));
         assertThat(action.getPendingIntent().getIntent().getAction())
                 .isEqualTo(FAKE_ACTION_OPEN_SUB_SETTING);
         assertThat(action.getPendingIntent().getIntent().getStringExtra(EXTRA_DESTINATION))
@@ -318,12 +342,12 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), any(), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(any(), any(), captor.capture(), any());
         SafetySourceData safetySourceData = captor.getValue();
 
         assertThat(safetySourceData.getIssues()).isEmpty();
@@ -337,12 +361,16 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
 
         assertThat(safetySourceData.getIssues()).isEmpty();
@@ -355,16 +383,28 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
         assertThat(safetySourceStatus.isEnabled()).isFalse();
+        assertThat(safetySourceStatus.getPendingIntent()).isNull();
+        assertThat(safetySourceStatus.getIconAction()).isNull();
+        assertThat(safetySourceStatus.getSeverityLevel())
+                .isEqualTo(SafetySourceData.SEVERITY_LEVEL_UNSPECIFIED);
+        assertThat(safetySourceStatus.getSummary().toString())
+                .isEqualTo(
+                        ResourcesUtils.getResourcesString(
+                                mApplicationContext, "disabled_by_policy_title"));
     }
 
     @Test
@@ -374,16 +414,25 @@
         when(mScreenLockPreferenceDetailsUtils.isPasswordQualityManaged(anyInt(), any()))
                 .thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
         assertThat(safetySourceStatus.isEnabled()).isTrue();
+        assertThat(safetySourceStatus.getPendingIntent()).isNotNull();
+        assertThat(safetySourceStatus.getIconAction()).isNotNull();
+        assertThat(safetySourceStatus.getSeverityLevel())
+                .isEqualTo(SafetySourceData.SEVERITY_LEVEL_INFORMATION);
+        assertThat(safetySourceStatus.getSummary().toString()).isEqualTo(SUMMARY);
     }
 
     @Test
@@ -392,20 +441,23 @@
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
         when(mScreenLockPreferenceDetailsUtils.shouldShowGearMenu()).thenReturn(true);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
-        final ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(
-                SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        final ArgumentCaptor<SafetySourceData> captor =
+                ArgumentCaptor.forClass(SafetySourceData.class);
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         final IconAction iconAction = captor.getValue().getStatus().getIconAction();
 
         assertThat(iconAction.getIconType()).isEqualTo(IconAction.ICON_TYPE_GEAR);
         assertThat(iconAction.getPendingIntent().getIntent().getAction())
                 .isEqualTo(FAKE_ACTION_OPEN_SUB_SETTING);
-        assertThat(
-                iconAction.getPendingIntent().getIntent().getStringExtra(EXTRA_DESTINATION))
+        assertThat(iconAction.getPendingIntent().getIntent().getStringExtra(EXTRA_DESTINATION))
                 .isEqualTo(FAKE_SCREEN_LOCK_SETTINGS);
     }
 
@@ -415,12 +467,16 @@
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
         when(mScreenLockPreferenceDetailsUtils.shouldShowGearMenu()).thenReturn(false);
 
-        LockScreenSafetySource.setSafetySourceData(mApplicationContext,
-                mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
+        LockScreenSafetySource.setSafetySourceData(
+                mApplicationContext, mScreenLockPreferenceDetailsUtils, EVENT_SOURCE_STATE_CHANGED);
 
         ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), captor.capture(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(),
+                        eq(LockScreenSafetySource.SAFETY_SOURCE_ID),
+                        captor.capture(),
+                        any());
         SafetySourceData safetySourceData = captor.getValue();
         SafetySourceStatus safetySourceStatus = safetySourceData.getStatus();
 
@@ -434,10 +490,12 @@
 
         LockScreenSafetySource.onLockScreenChange(mApplicationContext);
 
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), any(), any());
-        verify(mSafetyCenterManagerWrapper).setSafetySourceData(
-                any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), any(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(), eq(LockScreenSafetySource.SAFETY_SOURCE_ID), any(), any());
+        verify(mSafetyCenterManagerWrapper)
+                .setSafetySourceData(
+                        any(), eq(BiometricsSafetySource.SAFETY_SOURCE_ID), any(), any());
     }
 
     @Test
@@ -447,8 +505,8 @@
 
         LockScreenSafetySource.onLockScreenChange(mApplicationContext);
 
-        verify(mSafetyCenterManagerWrapper, never()).setSafetySourceData(
-                any(), any(), any(), any());
+        verify(mSafetyCenterManagerWrapper, never())
+                .setSafetySourceData(any(), any(), any(), any());
     }
 
     private void whenScreenLockIsEnabled() {
@@ -456,8 +514,8 @@
         when(mScreenLockPreferenceDetailsUtils.getSummary(anyInt())).thenReturn(SUMMARY);
 
         Intent launchChooseLockGenericFragment = new Intent(FAKE_ACTION_OPEN_SUB_SETTING);
-        launchChooseLockGenericFragment.putExtra(EXTRA_DESTINATION,
-                FAKE_CHOOSE_LOCK_GENERIC_FRAGMENT);
+        launchChooseLockGenericFragment.putExtra(
+                EXTRA_DESTINATION, FAKE_CHOOSE_LOCK_GENERIC_FRAGMENT);
         when(mScreenLockPreferenceDetailsUtils.getLaunchChooseLockGenericFragmentIntent(anyInt()))
                 .thenReturn(launchChooseLockGenericFragment);
 
diff --git a/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java b/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java
index 3ad1874..85bd0e2 100644
--- a/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/SafetySourceBroadcastReceiverTest.java
@@ -21,9 +21,7 @@
 import static android.safetycenter.SafetyCenterManager.EXTRA_REFRESH_SAFETY_SOURCE_IDS;
 import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_DEVICE_REBOOTED;
 import static android.safetycenter.SafetyEvent.SAFETY_EVENT_TYPE_REFRESH_REQUESTED;
-
 import static com.google.common.truth.Truth.assertThat;
-
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
@@ -32,16 +30,21 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.Flags;
+import android.platform.test.flag.junit.SetFlagsRule;
 import android.safetycenter.SafetyEvent;
+import android.safetycenter.SafetySourceData;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.privatespace.PrivateSpaceSafetySource;
 import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.ArgumentCaptor;
@@ -61,6 +64,7 @@
     @Mock private SafetyCenterManagerWrapper mSafetyCenterManagerWrapper;
 
     @Mock private LockPatternUtils mLockPatternUtils;
+    @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
 
     @Before
     public void setUp() {
@@ -216,6 +220,51 @@
         assertThat(captor.getValue()).isEqualTo(BiometricsSafetySource.SAFETY_SOURCE_ID);
     }
 
+    /**
+     *  Tests that on receiving the refresh broadcast request with the PS source id, the PS data
+     * is set.
+     */
+    @Test
+    public void onReceive_onRefresh_withPrivateSpaceSourceId_setsPrivateSpaceData() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
+        Intent intent =
+                new Intent()
+                        .setAction(ACTION_REFRESH_SAFETY_SOURCES)
+                        .putExtra(
+                                EXTRA_REFRESH_SAFETY_SOURCE_IDS,
+                                new String[] {PrivateSpaceSafetySource.SAFETY_SOURCE_ID})
+                        .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID);
+
+        new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
+        ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
+        verify(mSafetyCenterManagerWrapper, times(1))
+                .setSafetySourceData(any(), captor.capture(), any(), any());
+
+        assertThat(captor.getValue()).isEqualTo(PrivateSpaceSafetySource.SAFETY_SOURCE_ID);
+    }
+
+    /** Tests that the PS source sets null data when it's disabled. */
+    @Test
+    public void onReceive_onRefresh_withPrivateSpaceFeatureDisabled_setsNullData() {
+        when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
+        mSetFlagsRule.disableFlags(Flags.FLAG_ALLOW_PRIVATE_PROFILE);
+
+        Intent intent =
+                new Intent()
+                        .setAction(ACTION_REFRESH_SAFETY_SOURCES)
+                        .putExtra(
+                                EXTRA_REFRESH_SAFETY_SOURCE_IDS,
+                                new String[] {PrivateSpaceSafetySource.SAFETY_SOURCE_ID})
+                        .putExtra(EXTRA_REFRESH_SAFETY_SOURCES_BROADCAST_ID, REFRESH_BROADCAST_ID);
+
+        new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
+        ArgumentCaptor<SafetySourceData> captor = ArgumentCaptor.forClass(SafetySourceData.class);
+        verify(mSafetyCenterManagerWrapper, times(1))
+                .setSafetySourceData(any(), any(), captor.capture(), any());
+
+        assertThat(captor.getValue()).isEqualTo(null);
+    }
+
     @Test
     public void onReceive_onBootCompleted_setsBootCompleteEvent() {
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
@@ -223,22 +272,22 @@
 
         new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
         ArgumentCaptor<SafetyEvent> captor = ArgumentCaptor.forClass(SafetyEvent.class);
-        verify(mSafetyCenterManagerWrapper, times(2))
+        verify(mSafetyCenterManagerWrapper, times(3))
                 .setSafetySourceData(any(), any(), any(), captor.capture());
 
         SafetyEvent bootEvent = new SafetyEvent.Builder(SAFETY_EVENT_TYPE_DEVICE_REBOOTED).build();
         assertThat(captor.getAllValues())
-                .containsExactlyElementsIn(Arrays.asList(bootEvent, bootEvent));
+                .containsExactlyElementsIn(Arrays.asList(bootEvent, bootEvent, bootEvent));
     }
 
     @Test
-    public void onReceive_onBootCompleted_sendsBiometricAndLockscreenData() {
+    public void onReceive_onBootCompleted_sendsAllSafetySourcesData() {
         when(mSafetyCenterManagerWrapper.isEnabled(mApplicationContext)).thenReturn(true);
         Intent intent = new Intent().setAction(Intent.ACTION_BOOT_COMPLETED);
 
         new SafetySourceBroadcastReceiver().onReceive(mApplicationContext, intent);
         ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
-        verify(mSafetyCenterManagerWrapper, times(2))
+        verify(mSafetyCenterManagerWrapper, times(3))
                 .setSafetySourceData(any(), captor.capture(), any(), any());
         List<String> safetySourceIdList = captor.getAllValues();
 
@@ -246,5 +295,7 @@
                 id -> id.equals(LockScreenSafetySource.SAFETY_SOURCE_ID))).isTrue();
         assertThat(safetySourceIdList.stream().anyMatch(
                 id -> id.equals(BiometricsSafetySource.SAFETY_SOURCE_ID))).isTrue();
+        assertThat(safetySourceIdList.stream().anyMatch(
+                id -> id.equals(PrivateSpaceSafetySource.SAFETY_SOURCE_ID))).isTrue();
     }
 }
diff --git a/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java b/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
index a3090c6..a6ed5c7 100644
--- a/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
+++ b/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
@@ -29,13 +29,11 @@
 import com.android.settings.gestures.SystemNavigationGestureSettings;
 import com.android.settings.location.LocationSettings;
 import com.android.settings.location.RecentLocationAccessSeeAllFragment;
-import com.android.settings.network.NetworkDashboardFragment;
 import com.android.settings.notification.zen.ZenModeBlockedEffectsSettings;
 import com.android.settings.notification.zen.ZenModeRestrictNotificationsSettings;
 import com.android.settings.security.SecuritySettings;
 import com.android.settings.security.screenlock.ScreenLockSettings;
 import com.android.settings.system.SystemDashboardFragment;
-import com.android.settings.wifi.WifiSettings;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -50,12 +48,6 @@
     }
 
     @Test
-    public void shouldContainWifiSettingsPairs() {
-        assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get(WifiSettings.class.getName()))
-                .isEqualTo(NetworkDashboardFragment.class.getName());
-    }
-
-    @Test
     public void shouldContainPowerUsageAdvancedPairs() {
         assertThat(CustomSiteMapRegistry.CUSTOM_SITE_MAP.get(PowerUsageAdvanced.class.getName()))
                 .isEqualTo(PowerUsageSummary.class.getName());
diff --git a/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.java b/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.java
deleted file mode 100644
index a232034..0000000
--- a/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.java
+++ /dev/null
@@ -1,87 +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.sim;
-
-import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.UserManager;
-
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-@UiThreadTest
-public class SimDialogActivityTest {
-    @Rule
-    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-    @Spy
-    private final Context mContext = ApplicationProvider.getApplicationContext();
-    @Mock
-    private UserManager mUserManager;
-
-    private MockSimDialogActivity mActivity;
-
-    @Before
-    public void setUp() {
-        when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
-        when(mUserManager.isGuestUser()).thenReturn(false);
-        when(mUserManager.hasUserRestriction(DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(false);
-
-        mActivity = new MockSimDialogActivity();
-    }
-
-    @Test
-    public void isUiRestricted_normally_returnFalse() {
-        assertThat(mActivity.isUiRestricted()).isFalse();
-    }
-
-    @Test
-    public void isUiRestricted_isGuestUser_returnTrue() {
-        when(mUserManager.isGuestUser()).thenReturn(true);
-
-        assertThat(mActivity.isUiRestricted()).isTrue();
-    }
-
-    @Test
-    public void isUiRestricted_hasUserRestriction_returnTrue() {
-        when(mUserManager.hasUserRestriction(DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(true);
-
-        assertThat(mActivity.isUiRestricted()).isTrue();
-    }
-
-    public class MockSimDialogActivity extends SimDialogActivity {
-        @Override
-        public Context getApplicationContext() {
-            return mContext;
-        }
-    }
-}
diff --git a/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.kt b/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.kt
new file mode 100644
index 0000000..9546d69
--- /dev/null
+++ b/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.sim
+
+import android.content.Context
+import android.os.UserManager
+import androidx.test.annotation.UiThreadTest
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spaprivileged.framework.common.userManager
+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.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
+
+@RunWith(AndroidJUnit4::class)
+@UiThreadTest
+class SimDialogActivityTest {
+    @get:Rule
+    val mockito: MockitoRule = MockitoJUnit.rule()
+
+    @Spy
+    private val context: Context = ApplicationProvider.getApplicationContext()
+
+    @Mock
+    private lateinit var userManager: UserManager
+
+    private var activity = MockSimDialogActivity()
+
+    @Before
+    fun setUp() {
+        whenever(context.userManager).thenReturn(userManager)
+        whenever(userManager.isGuestUser).thenReturn(false)
+        whenever(userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS))
+            .thenReturn(false)
+    }
+
+    @Test
+    fun isUiRestricted_normally_returnFalse() {
+        assertThat(activity.isUiRestricted).isFalse()
+    }
+
+    @Test
+    fun isUiRestricted_isGuestUser_returnTrue() {
+        whenever(userManager.isGuestUser).thenReturn(true)
+
+        assertThat(activity.isUiRestricted).isTrue()
+    }
+
+    @Test
+    fun isUiRestricted_hasUserRestriction_returnTrue() {
+        whenever(userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS))
+            .thenReturn(true)
+
+        assertThat(activity.isUiRestricted).isTrue()
+    }
+
+    inner class MockSimDialogActivity : SimDialogActivity() {
+        override fun getApplicationContext() = context
+    }
+}
diff --git a/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java b/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
index ce8338c..53581eb 100644
--- a/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
+++ b/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
@@ -146,8 +146,8 @@
     private List<Integer> getIndexableXml() {
         final List<Integer> xmlResSet = new ArrayList<>();
 
-        final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(
-                mContext).getSearchFeatureProvider().getSearchIndexableResources()
+        final Collection<SearchIndexableData> bundles = FeatureFactory.getFeatureFactory()
+                .getSearchFeatureProvider().getSearchIndexableResources()
                 .getProviderValues();
 
         for (SearchIndexableData bundle : bundles) {
diff --git a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
deleted file mode 100644
index 020bde2..0000000
--- a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
+++ /dev/null
@@ -1,85 +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.slices;
-
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.database.sqlite.SQLiteDatabase;
-import android.net.Uri;
-import android.provider.SettingsSlicesContract;
-
-import com.android.settings.testutils.FakeIndexProvider;
-import com.android.settings.testutils.FakeToggleController;
-
-class SliceTestUtils {
-
-    public static final String FAKE_TITLE = "title";
-    public static final String FAKE_SUMMARY = "summary";
-    public static final String FAKE_SCREEN_TITLE = "screen_title";
-    public static final String FAKE_KEYWORDS = "a, b, c";
-    public static final int FAKE_ICON = 1234;
-    public static final String FAKE_FRAGMENT_NAME = FakeIndexProvider.class.getName();
-    public static final String FAKE_CONTROLLER_NAME = FakeToggleController.class.getName();
-    public static final int FAKE_HIGHLIGHT_MENU_RES = FakeToggleController.HIGHLIGHT_MENU_RES;
-
-
-    public static void insertSliceToDb(Context context, String key) {
-        insertSliceToDb(context, key, true /* isPlatformSlice */);
-    }
-
-    public static void insertSliceToDb(Context context, String key, boolean isPlatformSlice) {
-        insertSliceToDb(context, key, isPlatformSlice, null /*customizedUnavailableSliceSubtitle*/);
-    }
-
-    public static void insertSliceToDb(Context context, String key, boolean isPlatformSlice,
-            String customizedUnavailableSliceSubtitle) {
-        insertSliceToDb(context, key, isPlatformSlice, customizedUnavailableSliceSubtitle, false);
-    }
-
-    public static void insertSliceToDb(Context context, String key, boolean isPlatformSlice,
-            String customizedUnavailableSliceSubtitle, boolean isPublicSlice) {
-        final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(context).getWritableDatabase();
-        ContentValues values = new ContentValues();
-        values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
-        values.put(SlicesDatabaseHelper.IndexColumns.SLICE_URI,
-                new Uri.Builder()
-                        .scheme(ContentResolver.SCHEME_CONTENT)
-                        .authority(isPlatformSlice
-                                ? SettingsSlicesContract.AUTHORITY
-                                : SettingsSliceProvider.SLICE_AUTHORITY)
-                        .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
-                        .appendPath(key)
-                        .build().toString());
-        values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE);
-        values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, FAKE_SUMMARY);
-        values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, FAKE_SCREEN_TITLE);
-        values.put(SlicesDatabaseHelper.IndexColumns.KEYWORDS, FAKE_KEYWORDS);
-        values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, FAKE_ICON);
-        values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, FAKE_FRAGMENT_NAME);
-        values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, FAKE_CONTROLLER_NAME);
-        values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
-        values.put(SlicesDatabaseHelper.IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
-                customizedUnavailableSliceSubtitle);
-        values.put(SlicesDatabaseHelper.IndexColumns.PUBLIC_SLICE, isPublicSlice);
-        values.put(SlicesDatabaseHelper.IndexColumns.HIGHLIGHT_MENU_RESOURCE,
-                FAKE_HIGHLIGHT_MENU_RES);
-
-        db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
-        db.close();
-    }
-}
diff --git a/tests/unit/src/com/android/settings/testutils/AirplaneModeRule.java b/tests/unit/src/com/android/settings/testutils/AirplaneModeRule.java
deleted file mode 100644
index 459ac15..0000000
--- a/tests/unit/src/com/android/settings/testutils/AirplaneModeRule.java
+++ /dev/null
@@ -1,71 +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.testutils;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.provider.Settings;
-import android.util.Log;
-
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.rules.ExternalResource;
-
-/** A test rule that is used to manager the Airplane Mode resource for testing. */
-public final class AirplaneModeRule extends ExternalResource {
-
-    private static final String TAG = "AirplaneModeRule";
-
-    private Context mContext;
-    private ContentResolver mContentResolver;
-    private boolean mBackupValue;
-    private boolean mShouldRestore;
-
-    @Override
-    protected void before() throws Throwable {
-        mContext = ApplicationProvider.getApplicationContext();
-        mContentResolver = mContext.getContentResolver();
-    }
-
-    @Override
-    protected void after() {
-        if (!mShouldRestore) {
-            return;
-        }
-        Log.d(TAG, "Restore Airplane Mode value:" + mBackupValue);
-        Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON,
-                mBackupValue ? 1 : 0);
-    }
-
-    public void setAirplaneMode(boolean enable) {
-        if (enable == isAirplaneModeOn()) {
-            return;
-        }
-        if (!mShouldRestore) {
-            mShouldRestore = true;
-            mBackupValue = !enable;
-            Log.d(TAG, "Backup Airplane Mode value:" + mBackupValue);
-        }
-        Log.d(TAG, "Set Airplane Mode enable:" + enable);
-        Settings.Global.putInt(mContentResolver, Settings.Global.AIRPLANE_MODE_ON, enable ? 1 : 0);
-    }
-
-    public boolean isAirplaneModeOn() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-            Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
-    }
-}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
index 49ce2cc..bf2c84a 100644
--- a/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/unit/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -23,10 +23,11 @@
 import com.android.settings.accessibility.AccessibilitySearchFeatureProvider;
 import com.android.settings.accounts.AccountFeatureProvider;
 import com.android.settings.applications.ApplicationFeatureProvider;
-import com.android.settings.aware.AwareFeatureProvider;
 import com.android.settings.biometrics.face.FaceFeatureProvider;
+import com.android.settings.biometrics.fingerprint.FingerprintFeatureProvider;
 import com.android.settings.biometrics2.factory.BiometricsRepositoryProvider;
 import com.android.settings.bluetooth.BluetoothFeatureProvider;
+import com.android.settings.connecteddevice.fastpair.FastPairFeatureProvider;
 import com.android.settings.connecteddevice.stylus.StylusFeatureProvider;
 import com.android.settings.dashboard.DashboardFeatureProvider;
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
@@ -36,15 +37,16 @@
 import com.android.settings.fuelgauge.BatterySettingsFeatureProvider;
 import com.android.settings.fuelgauge.BatteryStatusFeatureProvider;
 import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
-import com.android.settings.gestures.AssistGestureFeatureProvider;
 import com.android.settings.homepage.contextualcards.ContextualCardFeatureProvider;
 import com.android.settings.inputmethod.KeyboardSettingsFeatureProvider;
 import com.android.settings.localepicker.LocaleFeatureProvider;
+import com.android.settings.onboarding.OnboardingFeatureProvider;
 import com.android.settings.overlay.DockUpdaterFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 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;
@@ -55,6 +57,8 @@
 import com.android.settings.wifi.factory.WifiFeatureProvider;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
+import org.jetbrains.annotations.NotNull;
+
 /**
  * Test util to provide fake FeatureFactory. To use this factory, call {@code setupForTest} in
  * {@code @Before} method of the test class.
@@ -74,11 +78,10 @@
     public final SecurityFeatureProvider securityFeatureProvider;
     public final SuggestionFeatureProvider suggestionsFeatureProvider;
     public final UserFeatureProvider userFeatureProvider;
-    public final AssistGestureFeatureProvider assistGestureFeatureProvider;
     public final AccountFeatureProvider mAccountFeatureProvider;
     public final BluetoothFeatureProvider mBluetoothFeatureProvider;
-    public final AwareFeatureProvider mAwareFeatureProvider;
     public final FaceFeatureProvider mFaceFeatureProvider;
+    public final FingerprintFeatureProvider mFingerprintFeatureProvider;
     public final BiometricsRepositoryProvider mBiometricsRepositoryProvider;
 
     public PanelFeatureProvider panelFeatureProvider;
@@ -94,18 +97,22 @@
     public WifiFeatureProvider mWifiFeatureProvider;
     public KeyboardSettingsFeatureProvider mKeyboardSettingsFeatureProvider;
     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.
      */
     public static FakeFeatureFactory setupForTest() {
-        sFactory = new FakeFeatureFactory();
-        return (FakeFeatureFactory) sFactory;
+        FakeFeatureFactory factory = new FakeFeatureFactory();
+        setFactory(getAppContext(), factory);
+        return factory;
     }
 
-  /**
-   * FeatureFactory constructor.
-   */
+    /**
+     * FeatureFactory constructor.
+     */
     public FakeFeatureFactory() {
         supportFeatureProvider = mock(SupportFeatureProvider.class);
         metricsFeatureProvider = mock(MetricsFeatureProvider.class);
@@ -122,14 +129,13 @@
         securityFeatureProvider = mock(SecurityFeatureProvider.class);
         suggestionsFeatureProvider = mock(SuggestionFeatureProvider.class);
         userFeatureProvider = mock(UserFeatureProvider.class);
-        assistGestureFeatureProvider = mock(AssistGestureFeatureProvider.class);
         slicesFeatureProvider = mock(SlicesFeatureProvider.class);
         mAccountFeatureProvider = mock(AccountFeatureProvider.class);
         mContextualCardFeatureProvider = mock(ContextualCardFeatureProvider.class);
         panelFeatureProvider = mock(PanelFeatureProvider.class);
         mBluetoothFeatureProvider = mock(BluetoothFeatureProvider.class);
-        mAwareFeatureProvider = mock(AwareFeatureProvider.class);
         mFaceFeatureProvider = mock(FaceFeatureProvider.class);
+        mFingerprintFeatureProvider = mock(FingerprintFeatureProvider.class);
         mBiometricsRepositoryProvider = mock(BiometricsRepositoryProvider.class);
         wifiTrackerLibProvider = mock(WifiTrackerLibProvider.class);
         securitySettingsFeatureProvider = mock(SecuritySettingsFeatureProvider.class);
@@ -139,6 +145,9 @@
         mWifiFeatureProvider = mock(WifiFeatureProvider.class);
         mKeyboardSettingsFeatureProvider = mock(KeyboardSettingsFeatureProvider.class);
         mStylusFeatureProvider = mock(StylusFeatureProvider.class);
+        mOnboardingFeatureProvider = mock(OnboardingFeatureProvider.class);
+        mFastPairFeatureProvider = mock(FastPairFeatureProvider.class);
+        mPrivateSpaceLoginFeatureProvider = mock(PrivateSpaceLoginFeatureProvider.class);
     }
 
     @Override
@@ -147,7 +156,7 @@
     }
 
     @Override
-    public SupportFeatureProvider getSupportFeatureProvider(Context context) {
+    public SupportFeatureProvider getSupportFeatureProvider() {
         return supportFeatureProvider;
     }
 
@@ -156,8 +165,9 @@
         return metricsFeatureProvider;
     }
 
+    @NotNull
     @Override
-    public BatteryStatusFeatureProvider getBatteryStatusFeatureProvider(Context context) {
+    public BatteryStatusFeatureProvider getBatteryStatusFeatureProvider() {
         return batteryStatusFeatureProvider;
     }
 
@@ -166,13 +176,15 @@
         return batterySettingsFeatureProvider;
     }
 
+    @NotNull
     @Override
-    public PowerUsageFeatureProvider getPowerUsageFeatureProvider(Context context) {
+    public PowerUsageFeatureProvider getPowerUsageFeatureProvider() {
         return powerUsageFeatureProvider;
     }
 
+    @NotNull
     @Override
-    public DashboardFeatureProvider getDashboardFeatureProvider(Context context) {
+    public DashboardFeatureProvider getDashboardFeatureProvider() {
         return dashboardFeatureProvider;
     }
 
@@ -181,8 +193,9 @@
         return dockUpdaterFeatureProvider;
     }
 
+    @NotNull
     @Override
-    public ApplicationFeatureProvider getApplicationFeatureProvider(Context context) {
+    public ApplicationFeatureProvider getApplicationFeatureProvider() {
         return applicationFeatureProvider;
     }
 
@@ -191,8 +204,9 @@
         return localeFeatureProvider;
     }
 
+    @NotNull
     @Override
-    public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider(Context context) {
+    public EnterprisePrivacyFeatureProvider getEnterprisePrivacyFeatureProvider() {
         return enterprisePrivacyFeatureProvider;
     }
 
@@ -211,17 +225,13 @@
         return securityFeatureProvider;
     }
 
+    @NotNull
     @Override
-    public UserFeatureProvider getUserFeatureProvider(Context context) {
+    public UserFeatureProvider getUserFeatureProvider() {
         return userFeatureProvider;
     }
 
     @Override
-    public AssistGestureFeatureProvider getAssistGestureFeatureProvider() {
-        return assistGestureFeatureProvider;
-    }
-
-    @Override
     public SlicesFeatureProvider getSlicesFeatureProvider() {
         return slicesFeatureProvider;
     }
@@ -247,13 +257,13 @@
     }
 
     @Override
-    public AwareFeatureProvider getAwareFeatureProvider() {
-        return mAwareFeatureProvider;
+    public FaceFeatureProvider getFaceFeatureProvider() {
+        return mFaceFeatureProvider;
     }
 
     @Override
-    public FaceFeatureProvider getFaceFeatureProvider() {
-        return mFaceFeatureProvider;
+    public FingerprintFeatureProvider getFingerprintFeatureProvider() {
+        return mFingerprintFeatureProvider;
     }
 
     @Override
@@ -305,4 +315,19 @@
     public StylusFeatureProvider getStylusFeatureProvider() {
         return mStylusFeatureProvider;
     }
+
+    @Override
+    public OnboardingFeatureProvider getOnboardingFeatureProvider() {
+        return mOnboardingFeatureProvider;
+    }
+
+    @Override
+    public FastPairFeatureProvider getFastPairFeatureProvider() {
+        return mFastPairFeatureProvider;
+    }
+
+    @Override
+    public PrivateSpaceLoginFeatureProvider getPrivateSpaceLoginFeatureProvider() {
+        return mPrivateSpaceLoginFeatureProvider;
+    }
 }
diff --git a/tests/unit/src/com/android/settings/testutils/FakeIndexProvider.java b/tests/unit/src/com/android/settings/testutils/FakeIndexProvider.java
deleted file mode 100644
index 5cbfb54..0000000
--- a/tests/unit/src/com/android/settings/testutils/FakeIndexProvider.java
+++ /dev/null
@@ -1,46 +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.testutils;
-
-import android.content.Context;
-
-import com.android.settings.R;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.Indexable;
-
-import java.util.List;
-
-public class FakeIndexProvider implements Indexable {
-
-    public static final String KEY = "TestKey";
-
-    /**
-     * The fake SearchIndexProvider. Note that the use of location_settings below implies that tests
-     * using this should be using the res/xml-mcc999/location_settings.xml or
-     * res/xml-mcc998/location_settings.xml. Annotate tests with
-     * {@code @Config(qualifiers = "mcc999")}.
-     */
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.location_settings) {
-
-                @Override
-                public List<String> getNonIndexableKeys(Context context) {
-                    List<String> result = super.getNonIndexableKeys(context);
-                    result.add(KEY);
-                    return result;
-                }
-            };
-}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeUnavailablePreferenceController.java b/tests/unit/src/com/android/settings/testutils/FakeUnavailablePreferenceController.java
deleted file mode 100644
index 97379e3..0000000
--- a/tests/unit/src/com/android/settings/testutils/FakeUnavailablePreferenceController.java
+++ /dev/null
@@ -1,40 +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.testutils;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.settings.core.BasePreferenceController;
-
-public class FakeUnavailablePreferenceController extends BasePreferenceController {
-
-    public static final String AVAILABILITY_KEY = "fake_availability_key";
-
-    public FakeUnavailablePreferenceController(Context context) {
-        super(context, "key");
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return Settings.Global.getInt(mContext.getContentResolver(), AVAILABILITY_KEY, 0);
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return true;
-    }
-}
diff --git a/tests/unit/src/com/android/settings/testutils/ResolveInfoBuilder.java b/tests/unit/src/com/android/settings/testutils/ResolveInfoBuilder.java
deleted file mode 100644
index 5eaf2a4..0000000
--- a/tests/unit/src/com/android/settings/testutils/ResolveInfoBuilder.java
+++ /dev/null
@@ -1,71 +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.testutils;
-
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.ProviderInfo;
-import android.content.pm.ResolveInfo;
-
-import com.google.common.base.Preconditions;
-
-/**
- * Helper for building {@link ResolveInfo}s to be used in Robolectric tests.
- *
- * <p>The resulting {@link PackageInfo}s should typically be added to {@link
- * org.robolectric.shadows.ShadowPackageManager#addResolveInfoForIntent(Intent, ResolveInfo)}.
- */
-public final class ResolveInfoBuilder {
-
-    private final String mPackageName;
-    private ActivityInfo mActivityInfo;
-    private ProviderInfo mProviderInfo;
-
-    public ResolveInfoBuilder(String packageName) {
-        this.mPackageName = Preconditions.checkNotNull(packageName);
-    }
-
-    public ResolveInfoBuilder setActivity(String packageName, String className) {
-        mActivityInfo = new ActivityInfo();
-        mActivityInfo.packageName = packageName;
-        mActivityInfo.name = className;
-        return this;
-    }
-
-    public ResolveInfoBuilder setProvider(
-            String packageName, String className, String authority, boolean isSystemApp) {
-        mProviderInfo = new ProviderInfo();
-        mProviderInfo.authority = authority;
-        mProviderInfo.applicationInfo = new ApplicationInfo();
-        if (isSystemApp) {
-            mProviderInfo.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
-        }
-        mProviderInfo.packageName = mPackageName;
-        mProviderInfo.applicationInfo.packageName  = mPackageName;
-        mProviderInfo.name = className;
-        return this;
-    }
-
-    public ResolveInfo build() {
-        ResolveInfo info = new ResolveInfo();
-        info.activityInfo = mActivityInfo;
-        info.resolvePackageName = mPackageName;
-        info.providerInfo = mProviderInfo;
-        return info;
-    }
-}
diff --git a/tests/unit/src/com/android/settings/testutils/SliceTester.java b/tests/unit/src/com/android/settings/testutils/SliceTester.java
deleted file mode 100644
index be13e13..0000000
--- a/tests/unit/src/com/android/settings/testutils/SliceTester.java
+++ /dev/null
@@ -1,324 +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.testutils;
-
-import static android.app.slice.Slice.HINT_TITLE;
-import static android.app.slice.Slice.SUBTYPE_COLOR;
-import static android.app.slice.SliceItem.FORMAT_IMAGE;
-import static android.app.slice.SliceItem.FORMAT_INT;
-import static android.app.slice.SliceItem.FORMAT_TEXT;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.text.TextUtils;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.SliceItem;
-import androidx.slice.SliceMetadata;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.core.SliceAction;
-import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.EventInfo;
-
-import com.android.settings.Utils;
-import com.android.settings.slices.SettingsSliceProvider;
-import com.android.settings.slices.SliceBuilderUtils;
-import com.android.settings.slices.SliceData;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Testing utility class to verify the contents of the different Settings Slices.
- *
- * TODO (77712944) check Summary, range (metadata.getRange()), toggle icons.
- */
-public class SliceTester {
-
-    /**
-     * Test the contents of an intent based slice, including:
-     * - No toggles
-     * - Correct intent
-     * - Correct title
-     * - Correct keywords
-     * - TTL
-     * - Color
-     */
-    public static void testSettingsIntentSlice(Context context, Slice slice, SliceData sliceData) {
-        final SliceMetadata metadata = SliceMetadata.from(context, slice);
-
-        final long sliceTTL = metadata.getExpiry();
-        assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
-
-        final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
-        final int color = colorItem.getInt();
-        assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
-
-        final List<SliceAction> toggles = metadata.getToggles();
-        assertThat(toggles).isEmpty();
-
-        final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
-        assertThat(primaryPendingIntent).isEqualTo(
-                SliceBuilderUtils.getContentPendingIntent(context, sliceData));
-
-        assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
-
-        assertKeywords(metadata, sliceData);
-    }
-
-    /**
-     * Test the contents of an toggle based slice, including:
-     * - Contains one toggle
-     * - Correct toggle intent
-     * - Correct content intent
-     * - Correct title
-     * - Correct keywords
-     * - TTL
-     * - Color
-     */
-    public static void testSettingsToggleSlice(Context context, Slice slice, SliceData sliceData) {
-        final SliceMetadata metadata = SliceMetadata.from(context, slice);
-
-        final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
-        final int color = colorItem.getInt();
-        assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
-
-        final List<SliceAction> toggles = metadata.getToggles();
-        assertThat(toggles).hasSize(1);
-
-        final long sliceTTL = metadata.getExpiry();
-        assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
-
-        final SliceAction mainToggleAction = toggles.get(0);
-
-        assertThat(mainToggleAction.getIcon()).isNull();
-
-        // Check intent in Toggle Action
-        final PendingIntent togglePendingIntent = mainToggleAction.getAction();
-        assertThat(togglePendingIntent).isEqualTo(SliceBuilderUtils.getActionIntent(context,
-                SettingsSliceProvider.ACTION_TOGGLE_CHANGED, sliceData));
-
-        // Check primary intent
-        final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
-        assertThat(primaryPendingIntent).isEqualTo(
-                SliceBuilderUtils.getContentPendingIntent(context, sliceData));
-
-        assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
-
-        assertKeywords(metadata, sliceData);
-    }
-
-    /**
-     * Test the contents of an slider based slice, including:
-     * - No intent
-     * - Correct title
-     * - Correct keywords
-     * - TTL
-     * - Color
-     */
-    public static void testSettingsSliderSlice(Context context, Slice slice, SliceData sliceData) {
-        final SliceMetadata metadata = SliceMetadata.from(context, slice);
-        final SliceAction primaryAction = metadata.getPrimaryAction();
-
-        final IconCompat icon = primaryAction.getIcon();
-        if (icon == null) {
-            final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
-            final int color = colorItem.getInt();
-            assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
-
-        } else {
-            final IconCompat expectedIcon = IconCompat.createWithResource(context,
-                    sliceData.getIconResource());
-            assertThat(expectedIcon.toString()).isEqualTo(icon.toString());
-        }
-
-        final long sliceTTL = metadata.getExpiry();
-        assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
-
-        final int headerType = metadata.getHeaderType();
-        assertThat(headerType).isEqualTo(EventInfo.ROW_TYPE_SLIDER);
-
-        // Check primary intent
-        final PendingIntent primaryPendingIntent = primaryAction.getAction();
-        assertThat(primaryPendingIntent).isEqualTo(
-                SliceBuilderUtils.getContentPendingIntent(context, sliceData));
-
-        assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
-
-        assertKeywords(metadata, sliceData);
-    }
-
-    /**
-     * Test the copyable slice, including:
-     * - No intent
-     * - Correct title
-     * - Correct intent
-     * - Correct keywords
-     * - TTL
-     * - Color
-     */
-    public static void testSettingsCopyableSlice(Context context, Slice slice,
-            SliceData sliceData) {
-        final SliceMetadata metadata = SliceMetadata.from(context, slice);
-
-        final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
-        final int color = colorItem.getInt();
-        assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
-
-        final SliceAction primaryAction = metadata.getPrimaryAction();
-
-        final IconCompat expectedIcon = IconCompat.createWithResource(context,
-                sliceData.getIconResource());
-        assertThat(expectedIcon.toString()).isEqualTo(primaryAction.getIcon().toString());
-
-        final long sliceTTL = metadata.getExpiry();
-        assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
-
-        // Check primary intent
-        final PendingIntent primaryPendingIntent = primaryAction.getAction();
-        assertThat(primaryPendingIntent).isEqualTo(
-                SliceBuilderUtils.getContentPendingIntent(context, sliceData));
-
-        assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
-
-        assertKeywords(metadata, sliceData);
-    }
-
-    /**
-     * Test the contents of an unavailable slice, including:
-     * - No toggles
-     * - Correct title
-     * - Correct intent
-     * - Correct keywords
-     * - Color
-     * - TTL
-     */
-    public static void testSettingsUnavailableSlice(Context context, Slice slice,
-            SliceData sliceData) {
-        final SliceMetadata metadata = SliceMetadata.from(context, slice);
-
-        final long sliceTTL = metadata.getExpiry();
-        assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
-
-        final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
-        final int color = colorItem.getInt();
-        assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
-
-        final List<SliceAction> toggles = metadata.getToggles();
-        assertThat(toggles).isEmpty();
-
-        final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
-        assertThat(primaryPendingIntent).isEqualTo(SliceBuilderUtils.getContentPendingIntent(
-                context, sliceData));
-
-        assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
-
-        assertKeywords(metadata, sliceData);
-    }
-
-    /**
-     * Assert any slice item contains title.
-     *
-     * @param sliceItems All slice items of a Slice.
-     * @param title Title for asserting.
-     */
-    public static void assertAnySliceItemContainsTitle(List<SliceItem> sliceItems, String title) {
-        assertThat(hasText(sliceItems, title, HINT_TITLE)).isTrue();
-    }
-
-    /**
-     * Assert any slice item contains subtitle.
-     *
-     * @param sliceItems All slice items of a Slice.
-     * @param subtitle Subtitle for asserting.
-     */
-    public static void assertAnySliceItemContainsSubtitle(List<SliceItem> sliceItems,
-            String subtitle) {
-        // Subtitle has no hints
-        assertThat(hasText(sliceItems, subtitle, null /* hints */)).isTrue();
-    }
-
-    /**
-     * Assert no slice item contains subtitle.
-     *
-     * @param sliceItems All slice items of a Slice.
-     * @param subtitle Subtitle for asserting.
-     */
-    public static void assertNoSliceItemContainsSubtitle(List<SliceItem> sliceItems,
-            String subtitle) {
-        // Subtitle has no hints
-        assertThat(hasText(sliceItems, subtitle, null /* hints */)).isFalse();
-    }
-
-    private static boolean hasText(List<SliceItem> sliceItems, String text, String hints) {
-        boolean hasText = false;
-        for (SliceItem item : sliceItems) {
-            List<SliceItem> textItems = SliceQuery.findAll(item, FORMAT_TEXT, hints,
-                    null /* non-hints */);
-            if (textItems == null) {
-                continue;
-            }
-
-            for (SliceItem textItem : textItems) {
-                if (TextUtils.equals(textItem.getText(), text)) {
-                    hasText = true;
-                    break;
-                }
-            }
-        }
-        return hasText;
-    }
-
-    /**
-     * Assert any slice item contains icon.
-     *
-     * @param sliceItems All slice items of a Slice.
-     * @param icon Icon for asserting.
-     */
-    public static void assertAnySliceItemContainsIcon(List<SliceItem> sliceItems, IconCompat icon) {
-        boolean hasIcon = false;
-        for (SliceItem item : sliceItems) {
-            List<SliceItem> iconItems = SliceQuery.findAll(item, FORMAT_IMAGE,
-                    (String) null /* hints */, null /* non-hints */);
-            if (iconItems == null) {
-                continue;
-            }
-
-            for (SliceItem iconItem : iconItems) {
-                if (icon.toString().equals(iconItem.getIcon().toString())) {
-                    hasIcon = true;
-                    break;
-                }
-            }
-        }
-        assertThat(hasIcon).isTrue();
-    }
-
-    private static void assertKeywords(SliceMetadata metadata, SliceData data) {
-        final List<String> keywords = metadata.getSliceKeywords();
-        final Set<String> expectedKeywords = Arrays.stream(data.getKeywords().split(","))
-                .map(s -> s = s.trim())
-                .collect(Collectors.toSet());
-        expectedKeywords.add(data.getTitle());
-        expectedKeywords.add(data.getScreenTitle().toString());
-        assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
-    }
-}
diff --git a/tests/unit/src/com/android/settings/wifi/RequestToggleWiFiActivityTest.java b/tests/unit/src/com/android/settings/wifi/RequestToggleWiFiActivityTest.java
index 0e3dd40..3d2d9a8 100644
--- a/tests/unit/src/com/android/settings/wifi/RequestToggleWiFiActivityTest.java
+++ b/tests/unit/src/com/android/settings/wifi/RequestToggleWiFiActivityTest.java
@@ -21,13 +21,13 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.when;
 
-import android.annotation.Nullable;
 import android.app.IActivityManager;
 import android.content.Context;
 import android.content.Intent;
 import android.net.wifi.WifiManager;
 import android.os.RemoteException;
 
+import androidx.annotation.Nullable;
 import androidx.test.core.app.ActivityScenario;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
diff --git a/tests/unit/src/com/android/settings/wifi/WifiDialog2Test.kt b/tests/unit/src/com/android/settings/wifi/WifiDialog2Test.kt
new file mode 100644
index 0000000..ef50433
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/WifiDialog2Test.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.wifi
+
+import androidx.activity.ComponentActivity
+import androidx.test.ext.junit.rules.ActivityScenarioRule
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener
+import com.android.wifitrackerlib.WifiEntry
+import com.google.common.truth.Truth.assertThat
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+
+@RunWith(AndroidJUnit4::class)
+class WifiDialog2Test {
+    @get:Rule
+    val activityScenarioRule = ActivityScenarioRule(ComponentActivity::class.java)
+
+    @get:Rule
+    val mockito: MockitoRule = MockitoJUnit.rule()
+
+    @Mock
+    private lateinit var mockWifiEntry: WifiEntry
+
+    private val listener = object : WifiDialog2Listener {}
+
+    @Test
+    fun constructor_usesDefaultTheme() {
+        activityScenarioRule.scenario.onActivity { activity ->
+            val wifiDialog2 = WifiDialog2(
+                context = activity,
+                listener = listener,
+                wifiEntry = mockWifiEntry,
+                mode = WifiConfigUiBase2.MODE_CONNECT,
+                style = 0,
+                hideSubmitButton = false
+            )
+
+            val modal = WifiDialog2(
+                context = activity,
+                listener = listener,
+                wifiEntry = mockWifiEntry,
+                mode = WifiConfigUiBase2.MODE_CONNECT,
+            )
+
+            assertThat(modal.context.themeResId).isEqualTo(wifiDialog2.context.themeResId)
+        }
+    }
+
+    @Test
+    fun constructor_whenSetTheme_shouldBeCustomizedTheme() {
+        activityScenarioRule.scenario.onActivity { activity ->
+            val wifiDialog2 = WifiDialog2(
+                context = activity,
+                listener = listener,
+                wifiEntry = mockWifiEntry,
+                mode = WifiConfigUiBase2.MODE_CONNECT,
+                style = R.style.SuwAlertDialogThemeCompat_Light,
+                hideSubmitButton = false,
+            )
+
+            val modal = WifiDialog2(
+                context = activity,
+                listener = listener,
+                wifiEntry = mockWifiEntry,
+                mode = WifiConfigUiBase2.MODE_CONNECT,
+                style = R.style.SuwAlertDialogThemeCompat_Light,
+            )
+
+            assertThat(modal.context.themeResId).isEqualTo(wifiDialog2.context.themeResId)
+        }
+    }
+}